aboutsummaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-extended
diff options
context:
space:
mode:
Diffstat (limited to 'meta-oe/recipes-extended')
-rw-r--r--meta-oe/recipes-extended/beep/beep_1.2.2.bb25
-rw-r--r--meta-oe/recipes-extended/beep/beep_1.4.9.bb32
-rw-r--r--meta-oe/recipes-extended/beep/files/0001-Do-not-use-Werror-as-it-fails-with-newer-clang-11.patch63
-rw-r--r--meta-oe/recipes-extended/beep/files/linux-input.patch155
-rw-r--r--meta-oe/recipes-extended/bitwise/bitwise_0.50.bb (renamed from meta-oe/recipes-extended/bitwise/bitwise_0.41.bb)14
-rw-r--r--meta-oe/recipes-extended/bitwise/files/0001-makefile.am-Fix-build-when-build-dir-is-not-same-as-.patch2
-rw-r--r--meta-oe/recipes-extended/bitwise/files/ptest.out.expected13
-rwxr-xr-xmeta-oe/recipes-extended/bitwise/files/run-ptest11
-rw-r--r--meta-oe/recipes-extended/boinc/boinc-client/0001-Do-not-undefine-_FILE_OFFSET_BITS.patch59
-rw-r--r--meta-oe/recipes-extended/boinc/boinc-client/0001-scripts-Do-not-check-for-files-on-build-host.patch52
-rw-r--r--meta-oe/recipes-extended/boinc/boinc-client/boinc-AM_CONDITIONAL.patch11
-rw-r--r--meta-oe/recipes-extended/boinc/boinc-client/gtk-configure.patch36
-rw-r--r--meta-oe/recipes-extended/boinc/boinc-client/opengl_m4_check.patch28
-rw-r--r--meta-oe/recipes-extended/boinc/boinc-client_7.20.5.bb (renamed from meta-oe/recipes-extended/boinc/boinc-client_7.16.bb)51
-rw-r--r--meta-oe/recipes-extended/brotli/brotli_1.0.9.bb4
-rw-r--r--meta-oe/recipes-extended/byacc/byacc.inc2
-rw-r--r--meta-oe/recipes-extended/byacc/byacc/0001-byacc-do-not-reorder-CC-and-CFLAGS.patch70
-rw-r--r--meta-oe/recipes-extended/byacc/byacc_20230219.bb (renamed from meta-oe/recipes-extended/byacc/byacc_20200910.bb)5
-rw-r--r--meta-oe/recipes-extended/cfengine/cfengine-masterfiles/python3.patch16
-rw-r--r--meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.21.0.bb (renamed from meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.15.0.bb)13
-rw-r--r--meta-oe/recipes-extended/cfengine/cfengine/0001-Fixed-with-libxml2-no-case-in-configure.ac.patch89
-rw-r--r--meta-oe/recipes-extended/cfengine/cfengine_3.21.0.bb (renamed from meta-oe/recipes-extended/cfengine/cfengine_3.15.0.bb)22
-rw-r--r--meta-oe/recipes-extended/cmatrix/cmatrix_2.0.bb15
-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.bb8
-rw-r--r--meta-oe/recipes-extended/collectd/collectd/0001-configure-Check-for-Wno-error-format-truncation-comp.patch2
-rw-r--r--meta-oe/recipes-extended/collectd/collectd/0005-Disable-new-gcc8-warnings.patch2
-rw-r--r--meta-oe/recipes-extended/collectd/collectd/no-gcrypt-badpath.patch2
-rw-r--r--meta-oe/recipes-extended/collectd/collectd_5.12.0.bb13
-rw-r--r--meta-oe/recipes-extended/ddrescue/ddrescue_1.27.bb (renamed from meta-oe/recipes-extended/ddrescue/ddrescue_1.25.bb)8
-rw-r--r--meta-oe/recipes-extended/dialog/dialog_1.3-20210509.bb (renamed from meta-oe/recipes-extended/dialog/dialog_1.3-20201126.bb)8
-rw-r--r--meta-oe/recipes-extended/dlt-daemon/dlt-daemon/241.patch30
-rw-r--r--meta-oe/recipes-extended/dlt-daemon/dlt-daemon/245.patch74
-rw-r--r--meta-oe/recipes-extended/dlt-daemon/dlt-daemon/275.patch38
-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.bb (renamed from meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.5.bb)48
-rw-r--r--meta-oe/recipes-extended/docopt.cpp/docopt.cpp_git.bb2
-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.5.bb (renamed from meta-oe/recipes-extended/dumb-init/dumb-init_1.2.2.bb)4
-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.bb5
-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_git.bb2
-rw-r--r--meta-oe/recipes-extended/flatpak/flatpak-xdg-utils_1.0.5.bb14
-rw-r--r--meta-oe/recipes-extended/flatpak/flatpak/0001-flatpak-pc-add-pc_sysrootdir.patch28
-rw-r--r--meta-oe/recipes-extended/flatpak/flatpak_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-monkey-Define-_GNU_SOURCE-for-memmem-API-check.patch28
-rw-r--r--meta-oe/recipes-extended/fluentbit/fluentbit/0001-ppc-Fix-signature-for-co_create-API.patch38
-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/builtin-nan.patch27
-rw-r--r--meta-oe/recipes-extended/fluentbit/fluentbit/cross-build-init-system-detection.patch38
-rw-r--r--meta-oe/recipes-extended/fluentbit/fluentbit/jemalloc.patch16
-rw-r--r--meta-oe/recipes-extended/fluentbit/fluentbit_1.3.5.bb63
-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.4.3.bb (renamed from meta-oe/recipes-extended/gnuplot/gnuplot_5.2.8.bb)48
-rw-r--r--meta-oe/recipes-extended/haveged/haveged_1.9.13.bb47
-rw-r--r--meta-oe/recipes-extended/haveged/haveged_1.9.18.bb26
-rw-r--r--meta-oe/recipes-extended/hexedit/hexedit_1.6.bb (renamed from meta-oe/recipes-extended/hexedit/hexedit_1.4.2.bb)8
-rw-r--r--meta-oe/recipes-extended/hiredis/files/0001-Makefile-remove-hardcoding-of-CC.patch28
-rw-r--r--meta-oe/recipes-extended/hiredis/hiredis/run-ptest3
-rw-r--r--meta-oe/recipes-extended/hiredis/hiredis_0.14.0.bb23
-rw-r--r--meta-oe/recipes-extended/hiredis/hiredis_1.2.0.bb39
-rw-r--r--meta-oe/recipes-extended/hplip/hplip/0001-Drop-using-register-storage-classifier.patch309
-rw-r--r--meta-oe/recipes-extended/hplip/hplip/0001-Fix-installing-ipp-usb-quirk.patch40
-rw-r--r--meta-oe/recipes-extended/hplip/hplip/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.patch2
-rw-r--r--meta-oe/recipes-extended/hplip/hplip/050-fix-glibcisms.patch2
-rw-r--r--meta-oe/recipes-extended/hplip/hplip/600-fix.patch2
-rw-r--r--meta-oe/recipes-extended/hplip/hplip/999-remove-lImageProcessor.patch69
-rw-r--r--meta-oe/recipes-extended/hplip/hplip/configure.patch9
-rw-r--r--meta-oe/recipes-extended/hplip/hplip/fix-libusb-paths.patch76
-rw-r--r--meta-oe/recipes-extended/hplip/hplip/hplip-3.19.6-fix-return.patch2
-rw-r--r--meta-oe/recipes-extended/hplip/hplip_3.22.10.bb (renamed from meta-oe/recipes-extended/hplip/hplip_3.19.12.bb)51
-rw-r--r--meta-oe/recipes-extended/hwloc/hwloc_2.9.2.bb (renamed from meta-oe/recipes-extended/hwloc/hwloc_1.11.13.bb)19
-rw-r--r--meta-oe/recipes-extended/icewm/icewm/0001-configure.ac-skip-running-test-program-when-cross-co.patch31
-rw-r--r--meta-oe/recipes-extended/icewm/icewm_2.9.9.bb (renamed from meta-oe/recipes-extended/icewm/icewm_1.6.5.bb)16
-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_2.2.12.bb5
-rw-r--r--meta-oe/recipes-extended/inputattach-config/inputattach-config.bb4
-rw-r--r--meta-oe/recipes-extended/iotop/iotop_0.6.bb29
-rw-r--r--meta-oe/recipes-extended/iotop/iotop_1.21.bb24
-rw-r--r--meta-oe/recipes-extended/isomd5sum/isomd5sum_1.2.3.bb10
-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.13.1.bb14
-rw-r--r--meta-oe/recipes-extended/jansson/jansson_2.14.bb20
-rw-r--r--meta-oe/recipes-extended/jpnevulator/jpnevulator_git.bb4
-rw-r--r--meta-oe/recipes-extended/konkretcmpi/konkretcmpi/0001-CMakeLists.txt-fix-lib64-can-not-be-shiped-in-64bit-.patch2
-rw-r--r--meta-oe/recipes-extended/konkretcmpi/konkretcmpi/0001-drop-including-rpath-cmake-module.patch2
-rw-r--r--meta-oe/recipes-extended/konkretcmpi/konkretcmpi_0.9.2.bb14
-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/libbacktrace/libbacktrace_git.bb30
-rw-r--r--meta-oe/recipes-extended/libblockdev/libblockdev_2.28.bb (renamed from meta-oe/recipes-extended/libblockdev/libblockdev_2.24.bb)21
-rwxr-xr-xmeta-oe/recipes-extended/libcbor/libcbor_0.10.2.bb14
-rw-r--r--meta-oe/recipes-extended/libcec/libcec/0001-Remove-buggy-test-confusing-host-and-target.patch2
-rw-r--r--meta-oe/recipes-extended/libcec/libcec/0001-cecloader-Match-return-type-of-function-LibCecBootlo.patch41
-rw-r--r--meta-oe/recipes-extended/libcec/libcec_6.0.2.bb26
-rw-r--r--meta-oe/recipes-extended/libconfig/libconfig_1.7.3.bb (renamed from meta-oe/recipes-extended/libconfig/libconfig_1.7.2.bb)12
-rw-r--r--meta-oe/recipes-extended/libdeflate/libdeflate_1.18.bb15
-rw-r--r--meta-oe/recipes-extended/libdivecomputer/libdivecomputer_git.bb8
-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.bb6
-rw-r--r--meta-oe/recipes-extended/libidn/libidn/0001-idn-format-security-warnings.patch180
-rw-r--r--meta-oe/recipes-extended/libidn/libidn/0001-largefile.m4-Sync-with-latest-gnulib.patch390
-rw-r--r--meta-oe/recipes-extended/libidn/libidn/dont-depend-on-help2man.patch24
-rw-r--r--meta-oe/recipes-extended/libidn/libidn_1.41.bb (renamed from meta-oe/recipes-extended/libidn/libidn_1.36.bb)27
-rw-r--r--meta-oe/recipes-extended/libimobiledevice/libplist_2.3.0.bb (renamed from meta-oe/recipes-extended/libimobiledevice/libplist_2.2.0.bb)25
-rw-r--r--meta-oe/recipes-extended/libimobiledevice/libplist_git.bb39
-rw-r--r--meta-oe/recipes-extended/libimobiledevice/libusbmuxd_2.0.2.bb6
-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_2.0.2.bb4
-rw-r--r--meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-add-DESTDIR.patch6
-rw-r--r--meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-fix-install-failure-on-host-without-ldco.patch63
-rw-r--r--meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-install-nfslock-libs.patch10
-rw-r--r--meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-redefine-LOCKPROG.patch51
-rw-r--r--meta-oe/recipes-extended/liblockfile/liblockfile/configure.patch24
-rw-r--r--meta-oe/recipes-extended/liblockfile/liblockfile/liblockfile-fix-install-so-to-man-dir.patch8
-rw-r--r--meta-oe/recipes-extended/liblockfile/liblockfile_1.17.bb (renamed from meta-oe/recipes-extended/liblockfile/liblockfile_1.14.bb)21
-rw-r--r--meta-oe/recipes-extended/liblognorm/liblognorm.inc2
-rw-r--r--meta-oe/recipes-extended/libmodbus/libmodbus.inc2
-rw-r--r--meta-oe/recipes-extended/libmodbus/libmodbus/Fix-float-endianness-issue-on-big-endian-arch.patch2
-rw-r--r--meta-oe/recipes-extended/libmodbus/libmodbus/Fix-typo.patch52
-rw-r--r--meta-oe/recipes-extended/libmodbus/libmodbus/f1eb4bc7ccb09cd8d19ab641ee37637f8c34d16d.patch32
-rw-r--r--meta-oe/recipes-extended/libmodbus/libmodbus_3.1.6.bb12
-rw-r--r--meta-oe/recipes-extended/libmodbus/libmodbus_3.1.7.bb9
-rw-r--r--meta-oe/recipes-extended/libnss-nisplus/libnss-nisplus.bb31
-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.patch2
-rw-r--r--meta-oe/recipes-extended/libpwquality/libpwquality_1.4.4.bb14
-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.5.bb37
-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.patch18
-rw-r--r--meta-oe/recipes-extended/libreport/files/0003-without-build-plugins.patch16
-rw-r--r--meta-oe/recipes-extended/libreport/files/0004-configure.ac-remove-prog-test-of-augparse.patch29
-rw-r--r--meta-oe/recipes-extended/libreport/libreport_2.17.8.bb (renamed from meta-oe/recipes-extended/libreport/libreport_2.10.0.bb)22
-rw-r--r--meta-oe/recipes-extended/libserialport/libserialport_0.1.1.bb2
-rw-r--r--meta-oe/recipes-extended/libstatgrab/libstatgrab_0.92.1.bb (renamed from meta-oe/recipes-extended/libstatgrab/libstatgrab_0.92.bb)21
-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.bb12
-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/libzip/libzip_1.7.3.bb18
-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_1.7.1.bb (renamed from meta-oe/recipes-extended/linuxconsole/linuxconsole_1.7.0.bb)54
-rw-r--r--meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.19.bb (renamed from meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.18.bb)7
-rw-r--r--meta-oe/recipes-extended/logwatch/logwatch_7.8.bb (renamed from meta-oe/recipes-extended/logwatch/logwatch_7.5.3.bb)7
-rw-r--r--meta-oe/recipes-extended/lprng/lprng_3.8.C.bb6
-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/0001-support-openssl-1.1.x.patch72
-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.bb54
-rw-r--r--meta-oe/recipes-extended/md5deep/files/wrong-variable-expansion.patch2
-rw-r--r--meta-oe/recipes-extended/md5deep/md5deep_git.bb4
-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-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-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/fix-libressl-avoid-BSWAP-assembly-for-ARM-v6.patch2
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/fix-libressl-compile.patch2
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/fix-minifi-compile.patch2
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/fix-osspuuid-compile.patch2
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/fix-osspuuid-cross-compile.patch2
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/fix-osspuuid-musl-compile.patch2
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/fix-rocksdb-cross-compile.patch2
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/remove_const_due_to_std_lock_guard.patch2
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.7.0.bb58
-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/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/mraa/mraa/0001-cmake-Use-a-regular-expression-to-match-x86-architec.patch2
-rw-r--r--meta-oe/recipes-extended/mraa/mraa_git.bb24
-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.bb5
-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.bb6
-rw-r--r--meta-oe/recipes-extended/openwsman/openwsman/0001-Link-with-libm-for-floor-function.patch71
-rw-r--r--meta-oe/recipes-extended/openwsman/openwsman/0001-lock.c-Define-PTHREAD_MUTEX_RECURSIVE_NP-if-undefine.patch2
-rw-r--r--meta-oe/recipes-extended/openwsman/openwsman/libssl-is-required-if-eventint-supported.patch2
-rw-r--r--meta-oe/recipes-extended/openwsman/openwsman_2.7.2.bb (renamed from meta-oe/recipes-extended/openwsman/openwsman_2.6.11.bb)19
-rw-r--r--meta-oe/recipes-extended/ostree/ostree_2023.5.bb (renamed from meta-oe/recipes-extended/ostree/ostree_2020.8.bb)137
-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.bb25
-rw-r--r--meta-oe/recipes-extended/p8platform/files/0001-Make-resulting-cmake-config-relocatable.patch64
-rw-r--r--meta-oe/recipes-extended/p8platform/p8platform_git.bb13
-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_11.bb8
-rw-r--r--meta-oe/recipes-extended/pam/pam-plugin-ldapdb/0001-include-stdexcept-for-std-invalid_argument.patch25
-rw-r--r--meta-oe/recipes-extended/pam/pam-plugin-ldapdb_1.3.1.bb (renamed from meta-oe/recipes-extended/pam/pam-plugin-ldapdb_1.3.bb)8
-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_0.10.3.bb9
-rw-r--r--meta-oe/recipes-extended/pegtl/pegtl_3.2.7.bb (renamed from meta-oe/recipes-extended/pegtl/pegtl_2.8.3.bb)7
-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.bb (renamed from meta-oe/recipes-extended/pmdk/pmdk_1.9.bb)26
-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.inc4
-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.patch (renamed from meta-oe/recipes-extended/polkit/polkit/0003-make-netgroup-support-optional.patch)121
-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_0.119.bb (renamed from meta-oe/recipes-extended/polkit/polkit_0.116.bb)42
-rw-r--r--meta-oe/recipes-extended/polkit/polkit_122.bb49
-rw-r--r--meta-oe/recipes-extended/properties-cpp/properties-cpp_git.bb8
-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.2.1.bb18
-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.patch10
-rw-r--r--meta-oe/recipes-extended/redis/redis/0006-Define-correct-gregs-for-RISCV32.patch (renamed from meta-oe/recipes-extended/redis/redis/riscv32.patch)33
-rw-r--r--meta-oe/recipes-extended/redis/redis/GNU_SOURCE.patch14
-rw-r--r--meta-oe/recipes-extended/redis/redis/hiredis-use-default-CC-if-it-is-set.patch2
-rw-r--r--meta-oe/recipes-extended/redis/redis/ilp32.patch29
-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_6.2.13.bb (renamed from meta-oe/recipes-extended/redis/redis_6.0.9.bb)25
-rw-r--r--meta-oe/recipes-extended/redis/redis_7.0.12.bb70
-rw-r--r--meta-oe/recipes-extended/rrdtool/rrdtool_1.8.0.bb (renamed from meta-oe/recipes-extended/rrdtool/rrdtool_1.7.2.bb)38
-rw-r--r--meta-oe/recipes-extended/rsyslog/libfastjson/0001-fix-jump-misses-init-gcc-8-warning.patch46
-rw-r--r--meta-oe/recipes-extended/rsyslog/libfastjson_0.99.9.bb (renamed from meta-oe/recipes-extended/rsyslog/libfastjson_0.99.8.bb)5
-rw-r--r--meta-oe/recipes-extended/rsyslog/librelp_1.11.0.bb (renamed from meta-oe/recipes-extended/rsyslog/librelp_1.6.0.bb)10
-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.service21
-rw-r--r--meta-oe/recipes-extended/rsyslog/rsyslog/run-ptest6
-rw-r--r--meta-oe/recipes-extended/rsyslog/rsyslog_8.2306.0.bb (renamed from meta-oe/recipes-extended/rsyslog/rsyslog_8.2006.0.bb)83
-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_3.8.2.bb45
-rw-r--r--meta-oe/recipes-extended/sanlock/sanlock_3.8.5.bb48
-rw-r--r--meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/0001-Replace-need-for-error.h-when-it-does-not-exist.patch27
-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.patch2
-rw-r--r--meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.15-fix-provider-debugging.patch2
-rw-r--r--meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.16-maxMsgLen.patch2
-rw-r--r--meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.16-multilib-man-cfg.patch2
-rw-r--r--meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.9-sfcbrepos-schema-location.patch2
-rw-r--r--meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.4.5-service.patch2
-rw-r--r--meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.4.8-default-ecdh-curve-name.patch2
-rw-r--r--meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.4.9-fix-ftbfs.patch2
-rw-r--r--meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb21
-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.bb25
-rw-r--r--meta-oe/recipes-extended/sedutil/files/0001-DtaAnnotatedDump-Add-typedef-name-to-the-union.patch34
-rw-r--r--meta-oe/recipes-extended/sedutil/files/0001-Fix-build-on-big-endian-architectures.patch2
-rw-r--r--meta-oe/recipes-extended/sedutil/files/0001-include-missing-cstdint.patch32
-rw-r--r--meta-oe/recipes-extended/sedutil/sedutil_git.bb15
-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.bb4
-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_0.5.3.bb6
-rw-r--r--meta-oe/recipes-extended/sigrok/sigrok-cli_0.7.2.bb (renamed from meta-oe/recipes-extended/sigrok/sigrok-cli_0.7.1.bb)8
-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/smartmontools_7.3.bb (renamed from meta-oe/recipes-extended/smartmontools/smartmontools_7.1.bb)12
-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.bb (renamed from meta-oe/recipes-extended/snappy/snappy_1.1.8.bb)11
-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.bb20
-rw-r--r--meta-oe/recipes-extended/socketcan/canutils_4.0.6.bb8
-rw-r--r--meta-oe/recipes-extended/socketcan/libsocketcan_0.0.12.bb4
-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.patch49
-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-fix-build-with-LuaJIT-2.1-betas.patch96
-rw-r--r--meta-oe/recipes-extended/sysdig/sysdig/aarch64.patch359
-rw-r--r--meta-oe/recipes-extended/sysdig/sysdig/fix-uint64-const.patch16
-rw-r--r--meta-oe/recipes-extended/sysdig/sysdig_0.28.0.bb62
-rw-r--r--meta-oe/recipes-extended/sysdig/sysdig_git.bb54
-rw-r--r--meta-oe/recipes-extended/tipcutils/tipcutils/0001-include-sys-select.h-for-FD_-definitions.patch2
-rw-r--r--meta-oe/recipes-extended/tipcutils/tipcutils/0002-replace-non-standard-uint-with-unsigned-int.patch2
-rw-r--r--meta-oe/recipes-extended/tipcutils/tipcutils_git.bb14
-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_2.3.1.bb12
-rw-r--r--meta-oe/recipes-extended/tmate/tmate_2.4.0.bb17
-rw-r--r--meta-oe/recipes-extended/tmux/tmux_3.3a.bb (renamed from meta-oe/recipes-extended/tmux/tmux_3.1c.bb)6
-rw-r--r--meta-oe/recipes-extended/triggerhappy/triggerhappy_git.bb12
-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.bb14
-rw-r--r--meta-oe/recipes-extended/upm/upm/0001-CMakeLists.txt-Use-SWIG_SUPPORT_FILES-to-find-the-li.patch2
-rw-r--r--meta-oe/recipes-extended/upm/upm/0001-include-missing-cstdint.patch43
-rw-r--r--meta-oe/recipes-extended/upm/upm_git.bb23
-rw-r--r--meta-oe/recipes-extended/vlock/vlock_2.2.3.bb6
-rw-r--r--meta-oe/recipes-extended/volume_key/volume-key_0.3.12.bb8
-rw-r--r--meta-oe/recipes-extended/wipe/wipe_0.24.bb4
-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/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.bb (renamed from meta-oe/recipes-extended/wxwidgets/wxwidgets_git.bb)71
-rw-r--r--meta-oe/recipes-extended/zlog/zlog_1.2.16.bb (renamed from meta-oe/recipes-extended/zlog/zlog_1.2.15.bb)6
-rwxr-xr-xmeta-oe/recipes-extended/zram/zram/zram-swap-init7
-rw-r--r--meta-oe/recipes-extended/zram/zram_0.2.bb14
-rw-r--r--meta-oe/recipes-extended/zstd/zstd/0001-Fix-legacy-build-after-2103.patch27
-rw-r--r--meta-oe/recipes-extended/zstd/zstd_1.4.5.bb37
-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
424 files changed, 15322 insertions, 3923 deletions
diff --git a/meta-oe/recipes-extended/beep/beep_1.2.2.bb b/meta-oe/recipes-extended/beep/beep_1.2.2.bb
deleted file mode 100644
index cafc869645..0000000000
--- a/meta-oe/recipes-extended/beep/beep_1.2.2.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-DESCRIPTION = "beep is a command line tool for linux that beeps the PC speaker"
-LICENSE = "GPL-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
-
-SRC_URI = "\
- http://johnath.com/beep/beep-${PV}.tar.gz \
- file://linux-input.patch \
-"
-
-SRC_URI[sha256sum] = "5c0445dac43950b7c7c3f235c6fb21f620ab3fd2f3aafaf09896e5730fcf49a1"
-
-S = "${WORKDIR}/${BPN}-${PV}"
-
-EXTRA_OEMAKE += 'CC="${CC}"'
-EXTRA_OEMAKE += 'FLAGS="${CFLAGS} ${LDFLAGS}"'
-
-do_configure[noexec] = "1"
-
-do_compile() {
- oe_runmake
-}
-
-do_install() {
- install -Dm 0755 ${B}/${PN} ${D}${bindir}/${PN}
-}
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/beep/files/linux-input.patch b/meta-oe/recipes-extended/beep/files/linux-input.patch
deleted file mode 100644
index 1b38ba72a3..0000000000
--- a/meta-oe/recipes-extended/beep/files/linux-input.patch
+++ /dev/null
@@ -1,155 +0,0 @@
-# the diff between Alessandro Zummo's copy of beep.c and the original
-# one...
-
---- beep-1.2.2/beep.c.orig 2006-01-29 12:13:36.994560551 -0800
-+++ beep-1.2.2/beep.c 2006-01-29 12:35:02.950558713 -0800
-@@ -26,6 +26,7 @@
- #include <sys/ioctl.h>
- #include <sys/types.h>
- #include <linux/kd.h>
-+#include <linux/input.h>
-
- /* I don't know where this number comes from, I admit that freely. A
- wonderful human named Raine M. Ekman used it in a program that played
-@@ -86,18 +87,28 @@ typedef struct beep_parms_t {
- struct beep_parms_t *next; /* in case -n/--new is used. */
- } beep_parms_t;
-
-+enum { BEEP_TYPE_CONSOLE, BEEP_TYPE_EVDEV };
-+
- /* Momma taught me never to use globals, but we need something the signal
- handlers can get at.*/
- int console_fd = -1;
-+int console_type = BEEP_TYPE_CONSOLE;
-+char *console_device = NULL;
-+
-+void do_beep(int freq);
-
- /* If we get interrupted, it would be nice to not leave the speaker beeping in
- perpetuity. */
- void handle_signal(int signum) {
-+
-+ if(console_device)
-+ free(console_device);
-+
- switch(signum) {
- case SIGINT:
- if(console_fd >= 0) {
- /* Kill the sound, quit gracefully */
-- ioctl(console_fd, KIOCSOUND, 0);
-+ do_beep(0);
- close(console_fd);
- exit(signum);
- } else {
-@@ -110,7 +121,7 @@ void handle_signal(int signum) {
- /* print usage and exit */
- void usage_bail(const char *executable_name) {
- printf("Usage:\n%s [-f freq] [-l length] [-r reps] [-d delay] "
-- "[-D delay] [-s] [-c]\n",
-+ "[-D delay] [-s] [-c] [-e device]\n",
- executable_name);
- printf("%s [Options...] [-n] [--new] [Options...] ... \n", executable_name);
- printf("%s [-h] [--help]\n", executable_name);
-@@ -141,11 +152,12 @@ void usage_bail(const char *executable_n
- void parse_command_line(int argc, char **argv, beep_parms_t *result) {
- int c;
-
-- struct option opt_list[4] = {{"help", 0, NULL, 'h'},
-+ struct option opt_list[] = {{"help", 0, NULL, 'h'},
- {"version", 0, NULL, 'V'},
- {"new", 0, NULL, 'n'},
-+ {"device", 1, NULL, 'e'},
- {0,0,0,0}};
-- while((c = getopt_long(argc, argv, "f:l:r:d:D:schvVn", opt_list, NULL))
-+ while((c = getopt_long(argc, argv, "f:l:r:d:D:schvVne:", opt_list, NULL))
- != EOF) {
- int argval = -1; /* handle parsed numbers for various arguments */
- float argfreq = -1;
-@@ -207,6 +219,9 @@ void parse_command_line(int argc, char *
- result->next->next = NULL;
- result = result->next; /* yes, I meant to do that. */
- break;
-+ case 'e' : /* also --device */
-+ console_device = strdup(optarg);
-+ break;
- case 'h' : /* notice that this is also --help */
- default :
- usage_bail(argv[0]);
-@@ -214,26 +229,61 @@ void parse_command_line(int argc, char *
- }
- }
-
-+void do_beep(int freq)
-+{
-+ if (console_type == BEEP_TYPE_CONSOLE)
-+ {
-+ if(ioctl(console_fd, KIOCSOUND, freq != 0
-+ ? (int)(CLOCK_TICK_RATE/freq)
-+ : freq) < 0) {
-+ printf("\a"); /* Output the only beep we can, in an effort to fall back on usefulness */
-+ perror("ioctl");
-+ }
-+ }
-+ else
-+ {
-+ /* BEEP_TYPE_EVDEV */
-+ struct input_event e;
-+
-+ e.type = EV_SND;
-+ e.code = SND_TONE;
-+ e.value = freq;
-+
-+ write(console_fd, &e, sizeof(struct input_event));
-+ }
-+}
-+
- void play_beep(beep_parms_t parms) {
- int i; /* loop counter */
-
- /* try to snag the console */
-- if((console_fd = open("/dev/console", O_WRONLY)) == -1) {
-- fprintf(stderr, "Could not open /dev/console for writing.\n");
-+
-+ if(console_device)
-+ console_fd = open(console_device, O_WRONLY);
-+ else
-+ if((console_fd = open("/dev/input/event0", O_WRONLY)) == -1)
-+ if((console_fd = open("/dev/tty0", O_WRONLY)) == -1)
-+ console_fd = open("/dev/vc/0", O_WRONLY);
-+
-+ if(console_fd == -1) {
-+ fprintf(stderr, "Could not open %s for writing\n",
-+ console_device != NULL ? console_device : "/dev/tty0 or /dev/vc/0");
- printf("\a"); /* Output the only beep we can, in an effort to fall back on usefulness */
- perror("open");
- exit(1);
- }
-
-+ if (ioctl(console_fd, EVIOCGSND(0)) != -1)
-+ console_type = BEEP_TYPE_EVDEV;
-+ else
-+ console_type = BEEP_TYPE_CONSOLE;
-+
- /* Beep */
- for (i = 0; i < parms.reps; i++) { /* start beep */
-- if(ioctl(console_fd, KIOCSOUND, (int)(CLOCK_TICK_RATE/parms.freq)) < 0) {
-- printf("\a"); /* Output the only beep we can, in an effort to fall back on usefulness */
-- perror("ioctl");
-- }
-+ do_beep(parms.freq);
- /* Look ma, I'm not ansi C compatible! */
- usleep(1000*parms.length); /* wait... */
-- ioctl(console_fd, KIOCSOUND, 0); /* stop beep */
-+ do_beep(0);
- if(parms.end_delay || (i+1 < parms.reps))
- usleep(1000*parms.delay); /* wait... */
- } /* repeat. */
-@@ -295,5 +345,8 @@ int main(int argc, char **argv) {
- parms = next;
- }
-
-+ if(console_device)
-+ free(console_device);
-+
- return EXIT_SUCCESS;
- }
diff --git a/meta-oe/recipes-extended/bitwise/bitwise_0.41.bb b/meta-oe/recipes-extended/bitwise/bitwise_0.50.bb
index 0378227817..5cd20c5b1c 100644
--- a/meta-oe/recipes-extended/bitwise/bitwise_0.41.bb
+++ b/meta-oe/recipes-extended/bitwise/bitwise_0.50.bb
@@ -7,13 +7,15 @@ kernel developers and device drivers developers."
HOMEPAGE = "https://github.com/mellowcandle/bitwise"
SECTION = "console/utils"
-LICENSE = "GPLv3"
+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] = "33ce934fb99dadf7652224152cc135a0abf6a211adde53d96e9be7067567749c"
+SRC_URI[sha256sum] = "806271fa5bf31de0600315e8720004a8f529954480e991ca84a9868dc1cae97e"
UPSTREAM_CHECK_URI = "https://github.com/mellowcandle/bitwise/releases"
@@ -21,4 +23,10 @@ S = "${WORKDIR}/${BPN}-v${PV}"
DEPENDS = "ncurses readline"
-inherit autotools
+inherit autotools ptest
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}
+ install -m 0644 ${WORKDIR}/ptest.out.expected ${D}${PTEST_PATH}/ptest.out.expected
+}
+
diff --git a/meta-oe/recipes-extended/bitwise/files/0001-makefile.am-Fix-build-when-build-dir-is-not-same-as-.patch b/meta-oe/recipes-extended/bitwise/files/0001-makefile.am-Fix-build-when-build-dir-is-not-same-as-.patch
index ad3f0bb1fd..76d12f9cd8 100644
--- a/meta-oe/recipes-extended/bitwise/files/0001-makefile.am-Fix-build-when-build-dir-is-not-same-as-.patch
+++ b/meta-oe/recipes-extended/bitwise/files/0001-makefile.am-Fix-build-when-build-dir-is-not-same-as-.patch
@@ -8,6 +8,8 @@ This ensures right include paths are added to compiler
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-extended/bitwise/files/ptest.out.expected b/meta-oe/recipes-extended/bitwise/files/ptest.out.expected
new file mode 100644
index 0000000000..c5ca3e5215
--- /dev/null
+++ b/meta-oe/recipes-extended/bitwise/files/ptest.out.expected
@@ -0,0 +1,13 @@
+Unsigned decimal: 66
+Signed decimal: 66
+Hexadecimal: 0x42
+Octal: 0102
+Human: 66
+Radix64: 0/
+IPv4 (Network byte order - Big): 66.0.0.0
+IPv4 (Reverwsed byte order - Little): 0.0.0.66
+ASCII: .......B
+Binary:
+0 1 0 0 0 0 1 0
+ 7 - 0
+
diff --git a/meta-oe/recipes-extended/bitwise/files/run-ptest b/meta-oe/recipes-extended/bitwise/files/run-ptest
new file mode 100755
index 0000000000..c29e1eaddc
--- /dev/null
+++ b/meta-oe/recipes-extended/bitwise/files/run-ptest
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+# Test 1: Basic bitwise operation
+bitwise --no-color -w b 0x42 > test.out
+
+# Compare expected output with actual output
+
+if ! cmp test.out ptest.out.expected; then
+ echo "[FAIL] Test 1: Basic bitwise operation"
+ exit 1
+fi
diff --git a/meta-oe/recipes-extended/boinc/boinc-client/0001-Do-not-undefine-_FILE_OFFSET_BITS.patch b/meta-oe/recipes-extended/boinc/boinc-client/0001-Do-not-undefine-_FILE_OFFSET_BITS.patch
new file mode 100644
index 0000000000..846fb099dc
--- /dev/null
+++ b/meta-oe/recipes-extended/boinc/boinc-client/0001-Do-not-undefine-_FILE_OFFSET_BITS.patch
@@ -0,0 +1,59 @@
+From 4e5c5a245f248976ea55fe1f805badb0cb1bb072 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 30 Dec 2022 23:41:36 -0800
+Subject: [PATCH] Do not undefine _FILE_OFFSET_BITS
+
+This does not work when we want to use 64bit time_t in glibc
+therefore let system decide on defining these macros
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ client/client_types.cpp | 9 ---------
+ client/hostinfo_unix.cpp | 9 ---------
+ 2 files changed, 18 deletions(-)
+
+diff --git a/client/client_types.cpp b/client/client_types.cpp
+index 2977ef7863..7653517302 100644
+--- a/client/client_types.cpp
++++ b/client/client_types.cpp
+@@ -22,15 +22,6 @@
+ #include "zlib.h"
+ #else
+ #include "config.h"
+-// Somehow having config.h define _FILE_OFFSET_BITS or _LARGE_FILES is
+-// causing open to be redefined to open64 which somehow, in some versions
+-// of zlib.h causes gzopen to be redefined as gzopen64 which subsequently gets
+-// reported as a linker error. So for this file, we compile in small files
+-// mode, regardless of these settings
+-#undef _FILE_OFFSET_BITS
+-#undef _LARGE_FILES
+-#undef _LARGEFILE_SOURCE
+-#undef _LARGEFILE64_SOURCE
+ #include <sys/stat.h>
+ #include <sys/types.h>
+ #include <zlib.h>
+diff --git a/client/hostinfo_unix.cpp b/client/hostinfo_unix.cpp
+index ff0b596221..0ad6841b39 100644
+--- a/client/hostinfo_unix.cpp
++++ b/client/hostinfo_unix.cpp
+@@ -26,15 +26,6 @@
+
+ #if !defined(_WIN32) || defined(__CYGWIN32__)
+
+-// Access to binary files in /proc filesystem doesn't work in the 64bit
+-// files environment on some systems.
+-// None of the functions here need 64bit file functions,
+-// so undefine _FILE_OFFSET_BITS and _LARGE_FILES.
+-//
+-#undef _FILE_OFFSET_BITS
+-#undef _LARGE_FILES
+-#undef _LARGEFILE_SOURCE
+-#undef _LARGEFILE64_SOURCE
+ #include <iostream>
+ #include <vector>
+ #include <string>
+--
+2.39.0
+
diff --git a/meta-oe/recipes-extended/boinc/boinc-client/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 7c3b0325dd..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
@@ -14,7 +14,7 @@ diff --git a/configure.ac b/configure.ac
index d81d795de4..7beeb34ae2 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -63,6 +63,7 @@ m4_pattern_allow([AC_PROG_OBJCXX])
+@@ -59,6 +59,7 @@ m4_pattern_allow([AC_PROG_OBJCXX])
m4_ifdef([AC_PROG_OBJCXX],[AC_PROG_OBJCXX],)
dnl ------
AC_PROG_CPP
@@ -22,12 +22,3 @@ index d81d795de4..7beeb34ae2 100644
AC_PROG_MAKE_SET
SAH_LINKS
AC_LANG_PUSH(C)
-@@ -1068,6 +1069,8 @@ AM_CONDITIONAL(ENABLE_BOINCCRYPT, [test "x${enable_server}" = xyes || test "x${
- 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/gtk-configure.patch b/meta-oe/recipes-extended/boinc/boinc-client/gtk-configure.patch
deleted file mode 100644
index e060b1a40c..0000000000
--- a/meta-oe/recipes-extended/boinc/boinc-client/gtk-configure.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From d53e9617fb6446780478bb13907efd111f241cd1 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 3 Nov 2016 01:20:33 -0700
-Subject: [PATCH] Check for gtk2+ only when manager is enabled
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Pending
-
----
- configure.ac | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 7beeb34ae2..35234c2762 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1018,6 +1018,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])
-@@ -1069,7 +1074,6 @@ AM_CONDITIONAL(ENABLE_BOINCCRYPT, [test "x${enable_server}" = xyes || test "x${
- 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 ad4493f0b6..0000000000
--- a/meta-oe/recipes-extended/boinc/boinc-client/opengl_m4_check.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 4f2dd929618f149087249f3c90cc056d5080b1e4 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] boinc: Add recipe for boinc-client
-
-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]
-
----
- m4/ax_check_gl.m4 | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/m4/ax_check_gl.m4 b/m4/ax_check_gl.m4
-index e26ce5b930..1e60c9266a 100644
---- a/m4/ax_check_gl.m4
-+++ b/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.16.bb b/meta-oe/recipes-extended/boinc/boinc-client_7.20.5.bb
index db90f06f46..4e35283dd2 100644
--- a/meta-oe/recipes-extended/boinc/boinc-client_7.16.bb
+++ b/meta-oe/recipes-extended/boinc/boinc-client_7.20.5.bb
@@ -16,7 +16,7 @@ global warming, discover sources of gravitational waves, and many other types \
of scientific and mathematical research."
HOMEPAGE = "http://boinc.berkeley.edu/"
-LICENSE = "LGPLv2+ & GPLv3"
+LICENSE = "LGPL-2.0-or-later & GPL-3.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
file://COPYING.LESSER;md5=6a6a8e020838b23406c81b19c1d46df6"
SECTION = "applications"
@@ -24,17 +24,17 @@ DEPENDS = "curl \
jpeg \
openssl \
sqlite3 \
- virtual/libgl \
+ virtual/egl \
${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'libnotify', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk+ libnotify xcb-util libxscrnsaver', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk+3 wxwidgets libnotify xcb-util libxscrnsaver', '', d)} \
nettle \
"
-SRCREV = "e0e033af9fca3cca84a3417ea6531ae25be73a7a"
-BRANCH = "client_release/7/${PV}"
+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://opengl_m4_check.patch \
- file://gtk-configure.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
@@ -56,36 +56,27 @@ EXTRA_OECONF += "\
--without-wxdir \
--without-x \
--with-boinc-platform=${TARGET_SYS} \
+ ac_cv_c_undeclared_builtin_options='none' \
"
export PKG_CONFIG = "${STAGING_BINDIR_NATIVE}/pkg-config"
-do_configure_prepend () {
- if "${@bb.utils.contains('DEPENDS', 'gtk+', '1', '0', d)}" = "0"
- then
- export GTK2_CFLAGS=""
- export GTK2_LIBS=""
- fi
-}
-
-do_compile_prepend () {
+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
+ 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_append() {
- if [ -e ${D}${nonarch_libdir}/systemd/system/boinc-client.service ]; then
- install -d ${D}${systemd_system_unitdir}
- mv \
- ${D}${nonarch_libdir}/systemd/system/boinc-client.service \
- ${D}${systemd_system_unitdir}/boinc-client.service
- rmdir --ignore-fail-on-non-empty ${D}${nonarch_libdir}/systemd/system \
- ${D}${nonarch_libdir}/systemd \
- ${D}${nonarch_libdir}
+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"
+SYSTEMD_SERVICE:${PN} = "boinc-client.service"
-FILES_${PN} += "${libdir}/systemd"
+FILES:${PN} += "${libdir}/systemd"
diff --git a/meta-oe/recipes-extended/brotli/brotli_1.0.9.bb b/meta-oe/recipes-extended/brotli/brotli_1.0.9.bb
index 0038ba74d2..4e2813dded 100644
--- a/meta-oe/recipes-extended/brotli/brotli_1.0.9.bb
+++ b/meta-oe/recipes-extended/brotli/brotli_1.0.9.bb
@@ -6,7 +6,7 @@ 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 \
+SRC_URI = "git://github.com/google/brotli.git;branch=master;protocol=https \
file://838.patch "
# tag 1.0.9
SRCREV= "e61745a6b7add50d380cfd7d3883dd6c62fc2c71"
@@ -14,7 +14,7 @@ S = "${WORKDIR}/git"
inherit cmake lib_package
-do_install_append () {
+do_install:append () {
for lib in $(ls ${D}${libdir}/*-static.a); do
mv -v "${lib}" "$(echo ${lib} | sed s/-static//)"
done
diff --git a/meta-oe/recipes-extended/byacc/byacc.inc b/meta-oe/recipes-extended/byacc/byacc.inc
index cffa7f5dcd..a3d9bfdb70 100644
--- a/meta-oe/recipes-extended/byacc/byacc.inc
+++ b/meta-oe/recipes-extended/byacc/byacc.inc
@@ -6,7 +6,7 @@ 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"
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 5dcc6afdfe..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
@@ -18,16 +18,22 @@ 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 | 259 -----------------------------------------------------
2 files changed, 260 deletions(-)
diff --git a/aclocal.m4 b/aclocal.m4
-index 1c6a3ee..2f7e9b5 100644
+index 832d0c8..63b03f2 100644
--- a/aclocal.m4
+++ b/aclocal.m4
-@@ -1317,7 +1317,6 @@ CF_GCC_VERSION
+@@ -1421,7 +1421,6 @@ CF_GCC_VERSION
CF_ACVERSION_CHECK(2.52,
[AC_PROG_CC_STDC],
[CF_ANSI_CC_REQD])
@@ -36,20 +42,20 @@ index 1c6a3ee..2f7e9b5 100644
dnl ---------------------------------------------------------------------------
dnl CF_PROG_GROFF version: 3 updated: 2018/01/07 13:16:19
diff --git a/configure b/configure
-index 378f27d..8f40229 100755
+index cb47b4c..c72b6e4 100755
--- a/configure
+++ b/configure
-@@ -2066,265 +2066,6 @@ esac
+@@ -2144,265 +2144,6 @@ esac
# This should have been defined by AC_PROG_CC
- : ${CC:=cc}
+ : "${CC:=cc}"
--echo "$as_me:2069: checking \$CFLAGS variable" >&5
+-echo "$as_me:2147: checking \$CFLAGS variable" >&5
-echo $ECHO_N "checking \$CFLAGS variable... $ECHO_C" >&6
-case "x$CFLAGS" in
-(*-[IUD]*)
-- echo "$as_me:2073: result: broken" >&5
+- echo "$as_me:2151: result: broken" >&5
-echo "${ECHO_T}broken" >&6
-- { echo "$as_me:2075: WARNING: your environment uses the CFLAGS variable to hold CPPFLAGS options" >&5
+- { echo "$as_me:2153: WARNING: your environment uses the CFLAGS variable to hold CPPFLAGS options" >&5
-echo "$as_me: WARNING: your environment uses the CFLAGS variable to hold CPPFLAGS options" >&2;}
- cf_flags="$CFLAGS"
- CFLAGS=
@@ -63,19 +69,19 @@ index 378f27d..8f40229 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"
@@ -94,7 +100,7 @@ index 378f27d..8f40229 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/=.*//'`
-
@@ -124,7 +130,7 @@ index 378f27d..8f40229 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}" \
@@ -157,18 +163,18 @@ index 378f27d..8f40229 100755
- done
- ;;
-(*)
-- echo "$as_me:2183: result: ok" >&5
+- echo "$as_me:2261: result: ok" >&5
-echo "${ECHO_T}ok" >&6
- ;;
-esac
-
--echo "$as_me:2188: checking \$CC variable" >&5
+-echo "$as_me:2266: checking \$CC variable" >&5
-echo $ECHO_N "checking \$CC variable... $ECHO_C" >&6
-case "$CC" in
-(*[\ \ ]-*)
-- echo "$as_me:2192: result: broken" >&5
+- echo "$as_me:2270: result: broken" >&5
-echo "${ECHO_T}broken" >&6
-- { echo "$as_me:2194: WARNING: your environment uses the CC variable to hold CFLAGS/CPPFLAGS options" >&5
+- { echo "$as_me:2272: WARNING: your environment uses the CC variable to hold CFLAGS/CPPFLAGS options" >&5
-echo "$as_me: WARNING: your environment uses the CC variable to hold CFLAGS/CPPFLAGS options" >&2;}
- # humor him...
- cf_prog=`echo "$CC" | sed -e 's/ / /g' -e 's/[ ]* / /g' -e 's/[ ]*[ ]-[^ ].*//'`
@@ -186,19 +192,19 @@ index 378f27d..8f40229 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"
@@ -217,7 +223,7 @@ index 378f27d..8f40229 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/=.*//'`
-
@@ -247,7 +253,7 @@ index 378f27d..8f40229 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}" \
@@ -285,26 +291,26 @@ index 378f27d..8f40229 100755
- done
- test -n "$verbose" && echo " resulting CC: '$CC'" 1>&6
-
--echo "${as_me:-configure}:2311: 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}:2315: 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}:2319: testing resulting CPPFLAGS: '$CPPFLAGS' ..." 1>&5
+-echo "${as_me:-configure}:2397: testing resulting CPPFLAGS: '$CPPFLAGS' ..." 1>&5
-
- ;;
-(*)
-- echo "$as_me:2323: result: ok" >&5
+- echo "$as_me:2401: result: ok" >&5
-echo "${ECHO_T}ok" >&6
- ;;
-esac
-
- echo "$as_me:2328: checking whether ${MAKE-make} sets \${MAKE}" >&5
+ echo "$as_me:2406: checking whether ${MAKE-make} sets \${MAKE}" >&5
echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6
set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
--
-2.25.1
+2.34.1
diff --git a/meta-oe/recipes-extended/byacc/byacc_20200910.bb b/meta-oe/recipes-extended/byacc/byacc_20230219.bb
index b7640ffca6..614bcaf646 100644
--- a/meta-oe/recipes-extended/byacc/byacc_20200910.bb
+++ b/meta-oe/recipes-extended/byacc/byacc_20230219.bb
@@ -4,8 +4,7 @@
# Setting to PD as this is what the upstream has it as.
LICENSE = "PD"
-LIC_FILES_CHKSUM = "file://package/debian/copyright;md5=262857ec5923f073fa06a1f1812225ea"
+LIC_FILES_CHKSUM = "file://package/debian/copyright;md5=b56b7454f5f865de2e6e35ee2185b461"
require byacc.inc
-SRC_URI[md5sum] = "5726a5a655c6fd4e8f950552cceeae29"
-SRC_URI[sha256sum] = "0a5906073aeaf23ddc20aaac0ea61cb5ccc18572870b113375dec4ffe85ecf30"
+SRC_URI[sha256sum] = "36b972a6d4ae97584dd186925fbbc397d26cb20632a76c2f52ac7653cd081b58"
diff --git a/meta-oe/recipes-extended/cfengine/cfengine-masterfiles/python3.patch b/meta-oe/recipes-extended/cfengine/cfengine-masterfiles/python3.patch
deleted file mode 100644
index a6f6701261..0000000000
--- a/meta-oe/recipes-extended/cfengine/cfengine-masterfiles/python3.patch
+++ /dev/null
@@ -1,16 +0,0 @@
---- a/modules/packages/apt_get
-+++ b/modules/packages/apt_get
-@@ -1,4 +1,4 @@
--#!/var/cfengine/bin/python
-+#!/var/cfengine/bin/python3
-
- import sys
- import os
---- a/modules/packages/apt_get.in
-+++ b/modules/packages/apt_get.in
-@@ -1,4 +1,4 @@
--#!@bindir@/python
-+#!@bindir@/python3
-
- import sys
- import os
diff --git a/meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.15.0.bb b/meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.21.0.bb
index 35ac855989..68d4042554 100644
--- a/meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.15.0.bb
+++ b/meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.21.0.bb
@@ -18,13 +18,12 @@ or wherever `$(sys.masterdir)` points. \
HOMEPAGE = "http://cfengine.com"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=9f76426f9ef8c6f6739fadd21d817a4f"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=bb843e794feb6890f7697637b461c36e"
SRC_URI = "https://cfengine-package-repos.s3.amazonaws.com/tarballs/${BP}.tar.gz \
- file://python3.patch \
"
-SRC_URI[md5sum] = "6d456fdd9bd24ff6617eeaa05efae602"
-SRC_URI[sha256sum] = "4a071c0c4ba7df9bad93144cff5fbc0566e5172afd66201072e3193b76c55a38"
+#SRC_URI[md5sum] = "5df2f85c75efc351ffadebcc11046a98"
+SRC_URI[sha256sum] = "013ebe68599915cedb4bf753b471713d91901a991623358b9a967d9a779bcc16"
inherit autotools
@@ -32,10 +31,10 @@ export EXPLICIT_VERSION="${PV}"
EXTRA_OECONF = "--prefix=${datadir}/cfengine"
-do_install_append() {
+do_install:append() {
rm -rf ${D}${datadir}/cfengine/modules/packages/zypper ${D}${datadir}/cfengine/modules/packages/yum
}
-FILES_${PN} = "${datadir}/cfengine"
+FILES:${PN} = "${datadir}/cfengine"
-RDEPENDS_${PN} += "python3-core"
+RDEPENDS:${PN} += "python3-core"
diff --git a/meta-oe/recipes-extended/cfengine/cfengine/0001-Fixed-with-libxml2-no-case-in-configure.ac.patch b/meta-oe/recipes-extended/cfengine/cfengine/0001-Fixed-with-libxml2-no-case-in-configure.ac.patch
new file mode 100644
index 0000000000..78f36bde45
--- /dev/null
+++ b/meta-oe/recipes-extended/cfengine/cfengine/0001-Fixed-with-libxml2-no-case-in-configure.ac.patch
@@ -0,0 +1,89 @@
+From a08acdfadb5eba2a3201209c6da3ad6f2ca4ae79 Mon Sep 17 00:00:00 2001
+From: Craig Comstock <craig.comstock@northern.tech>
+Date: Fri, 27 Jan 2023 15:19:48 -0600
+Subject: [PATCH] Fixed --with-libxml2=no case in configure.ac
+
+The CF3_WITH_LIBRARY and AC_CHECK_HEADERS were moved to outside of the check for with-libxml2=no
+
+Ticket: CFE-4023
+Changelog: title
+---
+Upstream-Status: Pending
+
+ configure.ac | 21 +++++++++++----------
+ libntech/configure.ac | 21 +++++++++++----------
+ 2 files changed, 22 insertions(+), 20 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index e189b10..f6b8226 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -659,19 +659,20 @@ if test "x$with_libxml2" != "xno"; then
+ LIBXML2_CPPFLAGS=-I$with_libxml2/include/libxml2
+ fi
+ fi
+-fi
+
+-CF3_WITH_LIBRARY(libxml2,
+- [AC_CHECK_LIB(xml2, xmlFirstElementChild,
+- [],
+- [if test "x$with_libxml2" != xcheck; then
+- AC_MSG_ERROR(Cannot find libxml2); fi]
+- )
+- AC_CHECK_HEADERS([libxml/xmlwriter.h], [break],
++ CF3_WITH_LIBRARY(libxml2,
++ [AC_CHECK_LIB(xml2, xmlFirstElementChild,
++ [],
+ [if test "x$with_libxml2" != xcheck; then
+ AC_MSG_ERROR(Cannot find libxml2); fi]
+- )]
+-)
++ )
++ AC_CHECK_HEADERS([libxml/xmlwriter.h], [break],
++ [if test "x$with_libxml2" != xcheck; then
++ AC_MSG_ERROR(Cannot find libxml2); fi]
++ )]
++ )
++
++fi
+
+ AM_CONDITIONAL([HAVE_LIBXML2],
+ [test "x$with_libxml2" != xno &&
+diff --git a/libntech/configure.ac b/libntech/configure.ac
+index 7bb8787..28b3683 100644
+--- a/libntech/configure.ac
++++ b/libntech/configure.ac
+@@ -571,19 +571,20 @@ if test "x$with_libxml2" != "xno"; then
+ LIBXML2_CPPFLAGS=-I$with_libxml2/include/libxml2
+ fi
+ fi
+-fi
+
+-CF3_WITH_LIBRARY(libxml2,
+- [AC_CHECK_LIB(xml2, xmlFirstElementChild,
+- [],
+- [if test "x$with_libxml2" != xcheck; then
+- AC_MSG_ERROR(Cannot find libxml2); fi]
+- )
+- AC_CHECK_HEADERS([libxml/xmlwriter.h], [break],
++ CF3_WITH_LIBRARY(libxml2,
++ [AC_CHECK_LIB(xml2, xmlFirstElementChild,
++ [],
+ [if test "x$with_libxml2" != xcheck; then
+ AC_MSG_ERROR(Cannot find libxml2); fi]
+- )]
+-)
++ )
++ AC_CHECK_HEADERS([libxml/xmlwriter.h], [break],
++ [if test "x$with_libxml2" != xcheck; then
++ AC_MSG_ERROR(Cannot find libxml2); fi]
++ )]
++ )
++
++fi
+
+ AM_CONDITIONAL([HAVE_LIBXML2],
+ [test "x$with_libxml2" != xno &&
+--
+2.39.1
+
diff --git a/meta-oe/recipes-extended/cfengine/cfengine_3.15.0.bb b/meta-oe/recipes-extended/cfengine/cfengine_3.21.0.bb
index 2d146bf88c..6fa5d2743a 100644
--- a/meta-oe/recipes-extended/cfengine/cfengine_3.15.0.bb
+++ b/meta-oe/recipes-extended/cfengine/cfengine_3.21.0.bb
@@ -10,26 +10,30 @@ its lifecycle. CFEngine takes systems from Build to Deploy, Manage and Audit."
HOMEPAGE = "http://cfengine.com"
-LICENSE = "GPLv3"
+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"
+DEPENDS += "attr tokyocabinet bison-native libxml2"
+#RDEPENDS:cfengine += "attr tokyocabinet bison-native libxml2"
-SRC_URI = "https://cfengine-package-repos.s3.amazonaws.com/tarballs/${BP}.tar.gz \
+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] = "d4dabfa46d8afa151be5610f184354e7"
-SRC_URI[sha256sum] = "fa53e137f850eb268a8e7ae4578b5db5dc383656341f5053dc1a353ed0288265"
+#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 \
+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"
+SYSTEMD_AUTO_ENABLE:${PN} = "disable"
PACKAGECONFIG ??= "libpcre openssl \
${@bb.utils.filter('DISTRO_FEATURES', 'pam systemd', d)} \
@@ -48,7 +52,7 @@ 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() {
+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/
@@ -69,4 +73,4 @@ EOF
rm -rf ${D}${datadir}/cfengine/modules/packages/zypper
}
-RDEPENDS_${PN} += "${BPN}-masterfiles"
+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-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
index 6c71d534be..3b7453536b 100644
--- 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
@@ -6,7 +6,7 @@ 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 \
+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 \
@@ -30,13 +30,13 @@ EXTRA_OECMAKE = "-DLIB='${baselib}' \
# ninja: error: build.ninja:282: bad $-escape (literal $ must be written as $$)
OECMAKE_GENERATOR = "Unix Makefiles"
-do_configure_prepend() {
+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"
+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-configure-Check-for-Wno-error-format-truncation-comp.patch b/meta-oe/recipes-extended/collectd/collectd/0001-configure-Check-for-Wno-error-format-truncation-comp.patch
index 8d31e12f94..f42461e322 100644
--- a/meta-oe/recipes-extended/collectd/collectd/0001-configure-Check-for-Wno-error-format-truncation-comp.patch
+++ b/meta-oe/recipes-extended/collectd/collectd/0001-configure-Check-for-Wno-error-format-truncation-comp.patch
@@ -14,6 +14,8 @@ client.c:834:23: error: '%s' directive output may be truncated writing up to 102
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
configure.ac | 1 +
m4/ax_check_compile_flag.m4 | 74 +++++++++++++++++++++++++++++++++++++
2 files changed, 75 insertions(+)
diff --git a/meta-oe/recipes-extended/collectd/collectd/0005-Disable-new-gcc8-warnings.patch b/meta-oe/recipes-extended/collectd/collectd/0005-Disable-new-gcc8-warnings.patch
index 13510cdea0..459bbd4e5a 100644
--- a/meta-oe/recipes-extended/collectd/collectd/0005-Disable-new-gcc8-warnings.patch
+++ b/meta-oe/recipes-extended/collectd/collectd/0005-Disable-new-gcc8-warnings.patch
@@ -9,6 +9,8 @@ already in place
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
src/libcollectdclient/network_parse.c | 7 +++++++
src/write_sensu.c | 7 +++++++
2 files changed, 14 insertions(+)
diff --git a/meta-oe/recipes-extended/collectd/collectd/no-gcrypt-badpath.patch b/meta-oe/recipes-extended/collectd/collectd/no-gcrypt-badpath.patch
index f12b16cb91..409f8dea02 100644
--- a/meta-oe/recipes-extended/collectd/collectd/no-gcrypt-badpath.patch
+++ b/meta-oe/recipes-extended/collectd/collectd/no-gcrypt-badpath.patch
@@ -3,6 +3,8 @@ From: Paul Eggleton <paul.eggleton@linux.intel.com>
Date: Mon, 22 Apr 2013 16:28:16 +0000
---
+Upstream-Status: Pending
+
configure.ac | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/meta-oe/recipes-extended/collectd/collectd_5.12.0.bb b/meta-oe/recipes-extended/collectd/collectd_5.12.0.bb
index f84a91adf1..5dc64588d2 100644
--- a/meta-oe/recipes-extended/collectd/collectd_5.12.0.bb
+++ b/meta-oe/recipes-extended/collectd/collectd_5.12.0.bb
@@ -1,6 +1,6 @@
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"
+LICENSE = "GPL-2.0-only & MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=1bd21f19f7f0c61a7be8ecacb0e28854"
DEPENDS = "rrdtool curl libpcap libxml2 yajl libgcrypt libtool lvm2"
@@ -20,7 +20,7 @@ SRC_URI[sha256sum] = "5bae043042c19c31f77eb8464e56a01a5454e0b39fa07cf7ad0f1bfc9c
inherit autotools python3native update-rc.d pkgconfig systemd
-SYSTEMD_SERVICE_${PN} = "collectd.service"
+SYSTEMD_SERVICE:${PN} = "collectd.service"
# Floatingpoint layout, architecture dependent
# 'nothing', 'endianflip' or 'intswap'
@@ -51,6 +51,7 @@ PACKAGECONFIG[libatasmart] = "--with-libatasmart,--without-libatasmart,libatasma
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} \
@@ -59,7 +60,7 @@ EXTRA_OECONF = " \
--disable-notify_desktop --disable-werror \
"
-do_install_append() {
+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
@@ -70,8 +71,8 @@ do_install_append() {
# 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}"
+ 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
@@ -80,7 +81,7 @@ do_install_append() {
${D}${systemd_unitdir}/system/collectd.service
}
-CONFFILES_${PN} = "${sysconfdir}/collectd.conf"
+CONFFILES:${PN} = "${sysconfdir}/collectd.conf"
INITSCRIPT_NAME = "collectd"
INITSCRIPT_PARAMS = "defaults"
diff --git a/meta-oe/recipes-extended/ddrescue/ddrescue_1.25.bb b/meta-oe/recipes-extended/ddrescue/ddrescue_1.27.bb
index cf24354f29..7a71d02dc1 100644
--- a/meta-oe/recipes-extended/ddrescue/ddrescue_1.25.bb
+++ b/meta-oe/recipes-extended/ddrescue/ddrescue_1.27.bb
@@ -4,14 +4,14 @@ DESCRIPTION = "GNU ddrescue is a data recovery tool. It copies data \
trying hard to rescue data in case of read errors."
HOMEPAGE = "http://www.gnu.org/software/ddrescue/ddrescue.html"
SECTION = "console"
-LICENSE = "GPLv2+"
+LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=76d6e300ffd8fb9d18bd9b136a9bba13 \
- file://main_common.cc;beginline=5;endline=16;md5=3ec288b2676528cd2b069364e313016f"
+ file://main_common.cc;beginline=5;endline=16;md5=ad099df052bdd8297f490712285069da \
+ "
SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.lz"
-SRC_URI[md5sum] = "99fd7a28bf9953d88534c7ee9ab5bd2a"
-SRC_URI[sha256sum] = "ce538ebd26a09f45da67d3ad3f7431932428231ceec7a2d255f716fa231a1063"
+SRC_URI[sha256sum] = "38c80c98c5a44f15e53663e4510097fd68d6ec20758efdf3a925037c183232eb"
# This isn't already added by base.bbclass
do_unpack[depends] += "lzip-native:do_populate_sysroot"
diff --git a/meta-oe/recipes-extended/dialog/dialog_1.3-20201126.bb b/meta-oe/recipes-extended/dialog/dialog_1.3-20210509.bb
index 5097788ed2..0b1e7e6088 100644
--- a/meta-oe/recipes-extended/dialog/dialog_1.3-20201126.bb
+++ b/meta-oe/recipes-extended/dialog/dialog_1.3-20210509.bb
@@ -5,13 +5,11 @@ script (or any scripting language)."
HOMEPAGE = "http://invisible-island.net/dialog/"
SECTION = "console/utils"
DEPENDS = "ncurses"
-LICENSE = "LGPL-2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343"
-SRC_URI = "ftp://ftp.invisible-island.net/${BPN}/${BP}.tgz \
- "
-SRC_URI[md5sum] = "14bf3b33de348838ff30aff0aa9d1c2e"
-SRC_URI[sha256sum] = "c9233a6c8ea33a59e2378e5146ae2bd13b519744cfdb647af7420adac5ad3866"
+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}"
diff --git a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/241.patch b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/241.patch
deleted file mode 100644
index 7d8f22ec78..0000000000
--- a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/241.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From b8f9919f000e642fc8970d0a42c1bdadf5a9d720 Mon Sep 17 00:00:00 2001
-From: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
-Date: Mon, 10 Aug 2020 08:30:34 +0200
-Subject: [PATCH] sd-daemon.c: Fix build with newer glibc and musl libc
-
-Reported by Khem Raj on meta-oe list
-
-TOPDIR/build/tmp/work/armv7vet2hf-neon-yoe-linux-musleabi/dlt-daemon/2.18.5-r0/recipe-sysroot/usr/include/sys/fcntl.h:1:2: error: redirecting incorrect #include <sys/fcntl.h> to <fcntl.h> [-Werror,-W#warnings]
- ^
-1 error generated.
-
-Signed-off-by: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
-Signed-off-by: Gianfranco Costamagna <locutusofborg@debian.org>
----
- systemd/3rdparty/sd-daemon.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/systemd/3rdparty/sd-daemon.c b/systemd/3rdparty/sd-daemon.c
-index 88936d2..de3f985 100644
---- a/systemd/3rdparty/sd-daemon.c
-+++ b/systemd/3rdparty/sd-daemon.c
-@@ -35,7 +35,7 @@
- #ifdef __BIONIC__
- #include <linux/fcntl.h>
- #else
--#include <sys/fcntl.h>
-+#include <fcntl.h>
- #endif
- #include <netinet/in.h>
- #include <stdlib.h>
diff --git a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/245.patch b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/245.patch
deleted file mode 100644
index 43057489c9..0000000000
--- a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/245.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From 57fd61ea5c58a4f9fcd7140b53ac6cd6e971ef47 Mon Sep 17 00:00:00 2001
-From: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
-Date: Fri, 31 Jul 2020 15:16:02 +0200
-Subject: [PATCH] dlt_offline: fix build failures with gcc-10
-
-see bug report: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=957140
-
-/usr/bin/ld: CMakeFiles/dlt-daemon.dir/dlt_daemon_client.c.o:./obj-x86_64-linux-gnu/src/daemon/./src/offlinelogstorage/dlt_offline_logstorage.h:116: multiple definition of `g_logstorage_cache_max'; CMakeFiles/dlt-daemon.dir/dlt-daemon.c.o:./obj-x86_64-linux-gnu/src/daemon/./src/offlinelogstorage/dlt_offline_logstorage.h:116: first defined here
-/usr/bin/ld: CMakeFiles/dlt-daemon.dir/dlt_daemon_common.c.o:./obj-x86_64-linux-gnu/src/daemon/./src/offlinelogstorage/dlt_offline_logstorage.h:118: multiple definition of `g_logstorage_cache_size'; CMakeFiles/dlt-daemon.dir/dlt-daemon.c.o:./obj-x86_64-linux-gnu/src/daemon/./src/offlinelogstorage/dlt_offline_logstorage.h:118: first defined here
-/usr/bin/ld: CMakeFiles/dlt-daemon.dir/dlt_daemon_common.c.o:./obj-x86_64-linux-gnu/src/daemon/./src/offlinelogstorage/dlt_offline_logstorage.h:116: multiple definition of `g_logstorage_cache_max'; CMakeFiles/dlt-daemon.dir/dlt-daemon.c.o:./obj-x86_64-linux-gnu/src/daemon/./src/offlinelogstorage/dlt_offline_logstorage.h:116: first defined here
-/usr/bin/ld: CMakeFiles/dlt-daemon.dir/dlt_daemon_connection.c.o:./obj-x86_64-linux-gnu/src/daemon/./src/offlinelogstorage/dlt_offline_logstorage.h:118: multiple definition of `g_logstorage_cache_size'; CMakeFiles/dlt-daemon.dir/dlt-daemon.c.o:./obj-x86_64-linux-gnu/src/daemon/./src/offlinelogstorage/dlt_offline_logstorage.h:118: first defined here
-/usr/bin/ld: CMakeFiles/dlt-daemon.dir/dlt_daemon_connection.c.o:./obj-x86_64-linux-gnu/src/daemon/./src/offlinelogstorage/dlt_offline_logstorage.h:116: multiple definition of `g_logstorage_cache_max'; CMakeFiles/dlt-daemon.dir/dlt-daemon.c.o:./obj-x86_64-linux-gnu/src/daemon/./src/offlinelogstorage/dlt_offline_logstorage.h:116: first defined here
-/usr/bin/ld: CMakeFiles/dlt-daemon.dir/dlt_daemon_event_handler.c.o:./obj-x86_64-linux-gnu/src/daemon/./src/offlinelogstorage/dlt_offline_logstorage.h:118: multiple definition of `g_logstorage_cache_size'; CMakeFiles/dlt-daemon.dir/dlt-daemon.c.o:./obj-x86_64-linux-gnu/src/daemon/./src/offlinelogstorage/dlt_offline_logstorage.h:118: first defined here
-/usr/bin/ld: CMakeFiles/dlt-daemon.dir/dlt_daemon_event_handler.c.o:./obj-x86_64-linux-gnu/src/daemon/./src/offlinelogstorage/dlt_offline_logstorage.h:116: multiple definition of `g_logstorage_cache_max'; CMakeFiles/dlt-daemon.dir/dlt-daemon.c.o:./obj-x86_64-linux-gnu/src/daemon/./src/offlinelogstorage/dlt_offline_logstorage.h:116: first defined here
-/usr/bin/ld: CMakeFiles/dlt-daemon.dir/dlt_daemon_offline_logstorage.c.o:./obj-x86_64-linux-gnu/src/daemon/./src/offlinelogstorage/dlt_offline_logstorage.h:116: multiple definition of `g_logstorage_cache_max'; CMakeFiles/dlt-daemon.dir/dlt-daemon.c.o:./obj-x86_64-linux-gnu/src/daemon/./src/offlinelogstorage/dlt_offline_logstorage.h:116: first defined here
----
- src/daemon/dlt_daemon_offline_logstorage.c | 1 +
- src/offlinelogstorage/dlt_offline_logstorage.h | 4 ++--
- src/offlinelogstorage/dlt_offline_logstorage_behavior.c | 1 +
- tests/gtest_dlt_daemon_offline_log.cpp | 1 +
- 4 files changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/src/daemon/dlt_daemon_offline_logstorage.c b/src/daemon/dlt_daemon_offline_logstorage.c
-index 0b3c14f..db9637e 100644
---- a/src/daemon/dlt_daemon_offline_logstorage.c
-+++ b/src/daemon/dlt_daemon_offline_logstorage.c
-@@ -56,6 +56,7 @@ DLT_STATIC DltReturnValue dlt_logstorage_split_ecuid(char *key,
- return DLT_RETURN_OK;
- }
-
-+unsigned int g_logstorage_cache_max;
- /**
- * dlt_logstorage_split_ctid
- *
-diff --git a/src/offlinelogstorage/dlt_offline_logstorage.h b/src/offlinelogstorage/dlt_offline_logstorage.h
-index b58da70..c9bc93b 100644
---- a/src/offlinelogstorage/dlt_offline_logstorage.h
-+++ b/src/offlinelogstorage/dlt_offline_logstorage.h
-@@ -114,9 +114,9 @@
- #define DLT_OFFLINE_LOGSTORAGE_IS_STRATEGY_SET(S, s) ((S)&(s))
-
- /* logstorage max cache */
--unsigned int g_logstorage_cache_max;
-+extern unsigned int g_logstorage_cache_max;
- /* current logstorage cache size */
--unsigned int g_logstorage_cache_size;
-+extern unsigned int g_logstorage_cache_size;
-
- typedef struct
- {
-diff --git a/src/offlinelogstorage/dlt_offline_logstorage_behavior.c b/src/offlinelogstorage/dlt_offline_logstorage_behavior.c
-index afbf8c4..edef482 100644
---- a/src/offlinelogstorage/dlt_offline_logstorage_behavior.c
-+++ b/src/offlinelogstorage/dlt_offline_logstorage_behavior.c
-@@ -32,6 +32,7 @@
- #include "dlt_offline_logstorage_behavior.h"
- #include "dlt_offline_logstorage_behavior_internal.h"
-
-+unsigned int g_logstorage_cache_size;
- /**
- * dlt_logstorage_log_file_name
- *
-diff --git a/tests/gtest_dlt_daemon_offline_log.cpp b/tests/gtest_dlt_daemon_offline_log.cpp
-index b8965de..0bd4d5e 100644
---- a/tests/gtest_dlt_daemon_offline_log.cpp
-+++ b/tests/gtest_dlt_daemon_offline_log.cpp
-@@ -29,6 +29,7 @@ extern "C"
- #include <fcntl.h>
- }
-
-+unsigned int g_logstorage_cache_max;
- /* Begin Method: dlt_logstorage::t_dlt_logstorage_list_add*/
- TEST(t_dlt_logstorage_list_add, normal)
- {
diff --git a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/275.patch b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/275.patch
deleted file mode 100644
index 75065eb054..0000000000
--- a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/275.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-Upstream-status: Backport
-CVE: CVE-2020-29394
-From 7f5cd5404a03fa330e192084f6bdafb2dc9bdcb7 Mon Sep 17 00:00:00 2001
-From: GwanYeong Kim <gy741.kim@gmail.com>
-Date: Sat, 28 Nov 2020 12:24:46 +0900
-Subject: [PATCH] dlt_common: Fix buffer overflow in dlt_filter_load
-
-A buffer overflow in the dlt_filter_load function in dlt_common.c in dlt-daemon allows arbitrary code execution via an unsafe usage of fscanf, because it does not limit the number of characters to be read in a format argument.
-
-Fixed: #274
-
-Signed-off-by: GwanYeong Kim <gy741.kim@gmail.com>
----
- src/shared/dlt_common.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/shared/dlt_common.c b/src/shared/dlt_common.c
-index 254f4ce4..d15b1cec 100644
---- a/src/shared/dlt_common.c
-+++ b/src/shared/dlt_common.c
-@@ -404,7 +404,7 @@ DltReturnValue dlt_filter_load(DltFilter *filter, const char *filename, int verb
- while (!feof(handle)) {
- str1[0] = 0;
-
-- if (fscanf(handle, "%s", str1) != 1)
-+ if (fscanf(handle, "%254s", str1) != 1)
- break;
-
- if (str1[0] == 0)
-@@ -419,7 +419,7 @@ DltReturnValue dlt_filter_load(DltFilter *filter, const char *filename, int verb
-
- str1[0] = 0;
-
-- if (fscanf(handle, "%s", str1) != 1)
-+ if (fscanf(handle, "%254s", str1) != 1)
- break;
-
- if (str1[0] == 0)
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.5.bb b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.9.bb
index 5066e76d34..2d6d1879a7 100644
--- a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.5.bb
+++ b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.9.bb
@@ -1,31 +1,31 @@
SUMMARY = "Diagnostic Log and Trace"
DESCRIPTION = "This component provides a standardised log and trace interface, \
based on the standardised protocol specified in the AUTOSAR standard 4.0 DLT. \
-This component can be used by GENIVI components and other applications as \
+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.genivi.org/"
+HOMEPAGE = "https://www.covesa.global/"
SECTION = "console/utils"
-LICENSE = "MPLv2"
+LICENSE = "MPL-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=8184208060df880fe3137b93eb88aeea"
-DEPENDS = "zlib gzip-native"
+DEPENDS = "zlib gzip-native json-c"
-SRC_URI = "git://github.com/GENIVI/${BPN}.git;protocol=https \
- file://0002-Don-t-execute-processes-as-a-specific-user.patch \
- file://0004-Modify-systemd-config-directory.patch \
- file://241.patch \
- file://245.patch \
- file://275.patch \
-"
-SRCREV = "f1ac087c766827b1d0ed9c3a814b3cc052e948f2"
+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-console ', '', d)} \
+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
@@ -33,7 +33,7 @@ PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', ' systemd s
PACKAGECONFIG[dlt-examples] = "-DWITH_DLT_EXAMPLES=ON,-DWITH_DLT_EXAMPLES=OFF,,dlt-daemon-systemd"
# Linux options
-PACKAGECONFIG[systemd] = "-DWITH_SYSTEMD=ON,-DWITH_SYSTEMD=OFF,systemd"
+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"
@@ -42,28 +42,30 @@ PACKAGECONFIG[udp-connection] = "-DWITH_UDP_CONNECTION=ON,-DWITH_UDP_CONNECTION=
# 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 systemd
+inherit autotools gettext cmake pkgconfig systemd
-EXTRA_OECMAKE += "-DSYSTEMD_UNITDIR=${systemd_system_unitdir}"
+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)} \
+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', 'dlt-adaptor-udp.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"
+SYSTEMD_AUTO_ENABLE:${PN}-systemd = "disable"
-FILES_${PN}-doc += "${datadir}/dlt-filetransfer"
+FILES:${PN}-doc += "${datadir}/dlt-filetransfer"
-do_install_append() {
+do_install:append() {
rm -f ${D}${bindir}/dlt-test-*
}
diff --git a/meta-oe/recipes-extended/docopt.cpp/docopt.cpp_git.bb b/meta-oe/recipes-extended/docopt.cpp/docopt.cpp_git.bb
index 7a6b0bf95d..28db39ac20 100644
--- a/meta-oe/recipes-extended/docopt.cpp/docopt.cpp_git.bb
+++ b/meta-oe/recipes-extended/docopt.cpp/docopt.cpp_git.bb
@@ -18,7 +18,7 @@ SRCREV = "42ebcec9dc2c99a1b3a4542787572045763ad196"
PV = "0.6.3+git${SRCPV}"
SRC_URI = "\
- git://github.com/docopt/docopt.cpp.git;protocol=https \
+ git://github.com/docopt/docopt.cpp.git;protocol=https;branch=master \
"
S = "${WORKDIR}/git"
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.2.bb b/meta-oe/recipes-extended/dumb-init/dumb-init_1.2.5.bb
index 09eab9dcd0..310081b822 100644
--- a/meta-oe/recipes-extended/dumb-init/dumb-init_1.2.2.bb
+++ b/meta-oe/recipes-extended/dumb-init/dumb-init_1.2.5.bb
@@ -3,8 +3,8 @@ HOMEPAGE = "https://github.com/Yelp/dumb-init/"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=5940d39995ea6857d01b8227109c2e9c"
-SRCREV = "b1e978e486114797347deefcc03ab12629a13cc3"
-SRC_URI = "git://github.com/Yelp/dumb-init"
+SRCREV = "89c1502b9d40b5cb4a844498b14d74ba1dd559bf"
+SRC_URI = "git://github.com/Yelp/dumb-init;branch=master;protocol=https"
S = "${WORKDIR}/git"
EXTRA_OEMAKE = "CC='${CC}' CFLAGS='${CFLAGS} ${LDFLAGS}'"
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 82791f5794..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,13 @@ 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
@@ -22,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_git.bb b/meta-oe/recipes-extended/figlet/figlet_git.bb
index 4611646b9b..61b050aac6 100644
--- a/meta-oe/recipes-extended/figlet/figlet_git.bb
+++ b/meta-oe/recipes-extended/figlet/figlet_git.bb
@@ -4,7 +4,7 @@ HOMEPAGE = "http://www.figlet.org/"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=1688bcd97b27704f1afcac7336409857"
-SRC_URI = "git://github.com/cmatsuoka/figlet.git \
+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"
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-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/0001-ppc-Fix-signature-for-co_create-API.patch b/meta-oe/recipes-extended/fluentbit/fluentbit/0001-ppc-Fix-signature-for-co_create-API.patch
deleted file mode 100644
index 1f36c657ed..0000000000
--- a/meta-oe/recipes-extended/fluentbit/fluentbit/0001-ppc-Fix-signature-for-co_create-API.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From be4032079c931704f52e29f5da5c01cde24ac842 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 16 Jan 2020 10:44:58 -0800
-Subject: [PATCH] ppc: Fix signature for co_create API
-
-Upstream-Status: Submitted [https://github.com/fluent/fluent-bit/pull/1886]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- lib/flb_libco/ppc.c | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/lib/flb_libco/ppc.c b/lib/flb_libco/ppc.c
-index e6536d56..533256b3 100644
---- a/lib/flb_libco/ppc.c
-+++ b/lib/flb_libco/ppc.c
-@@ -279,7 +279,9 @@ static uint32_t* co_create_(unsigned size, uintptr_t entry) {
- return t;
- }
-
--cothread_t co_create(unsigned int size, void (*entry_)(void)) {
-+cothread_t co_create(unsigned int size, void (*entry_)(void),
-+ size_t *out_size) {
-+
- uintptr_t entry = (uintptr_t)entry_;
- uint32_t* t = 0;
-
-@@ -325,7 +327,7 @@ cothread_t co_create(unsigned int size, void (*entry_)(void)) {
- t[10] = (uint32_t)(sp >> shift >> shift);
- t[11] = (uint32_t)sp;
- }
--
-+ *out_size = size;
- return t;
- }
-
---
-2.25.0
-
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/builtin-nan.patch b/meta-oe/recipes-extended/fluentbit/fluentbit/builtin-nan.patch
deleted file mode 100644
index 8ffc3be3ef..0000000000
--- a/meta-oe/recipes-extended/fluentbit/fluentbit/builtin-nan.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-help complier to use intrinsics, clang in few cases e.g. aarch64 can not
-and then requires linking with libm, its the only function needed from libm then
-its good to avoid needing it.
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
---- a/include/fluent-bit/stream_processor/flb_sp_timeseries.h
-+++ b/include/fluent-bit/stream_processor/flb_sp_timeseries.h
-@@ -207,7 +207,7 @@ void cb_forecast_calc(struct timeseries
- result = b0 + b1 * (val->f64 + *forecast->latest_x);
- break;
- default:
-- result = nan("");
-+ result = __builtin_nan("");
- break;
- }
-
-@@ -283,7 +283,7 @@ void cb_forecast_r_calc(struct timeserie
- result = ((val->i64 - b0) / b1) - *forecast->latest_x;
- break;
- default:
-- result = nan("");
-+ result = __builtin_nan("");
- break;
- }
-
diff --git a/meta-oe/recipes-extended/fluentbit/fluentbit/cross-build-init-system-detection.patch b/meta-oe/recipes-extended/fluentbit/fluentbit/cross-build-init-system-detection.patch
deleted file mode 100644
index a185789992..0000000000
--- a/meta-oe/recipes-extended/fluentbit/fluentbit/cross-build-init-system-detection.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-Define CMake variables to indicate init system for target
-incase of cross compile, detecting systemd support based on
-host directory structure is not right thing to do
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.kheem@gmail.com>
-
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -317,7 +317,7 @@ if(FLB_BINARY)
- install(TARGETS fluent-bit-bin RUNTIME DESTINATION ${FLB_INSTALL_BINDIR})
-
- # Detect init system, install upstart, systemd or init.d script
-- if(IS_DIRECTORY /lib/systemd/system)
-+ if(IS_DIRECTORY /lib/systemd/system OR FLB_SYSTEMD)
- set(FLB_SYSTEMD_SCRIPT "${PROJECT_SOURCE_DIR}/init/${FLB_OUT_NAME}.service")
- configure_file(
- "${PROJECT_SOURCE_DIR}/init/systemd.in"
-@@ -325,7 +325,7 @@ if(FLB_BINARY)
- )
- install(FILES ${FLB_SYSTEMD_SCRIPT} DESTINATION /lib/systemd/system)
- install(DIRECTORY DESTINATION ${FLB_INSTALL_CONFDIR})
-- elseif(IS_DIRECTORY /usr/share/upstart)
-+ elseif(IS_DIRECTORY /usr/share/upstart OR FLB_UPSTART)
- set(FLB_UPSTART_SCRIPT "${PROJECT_SOURCE_DIR}/init/${FLB_OUT_NAME}.conf")
- configure_file(
- "${PROJECT_SOURCE_DIR}/init/upstart.in"
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -70,6 +70,8 @@ option(FLB_RECORD_ACCESSOR "Enable re
- option(FLB_SYSTEM_STRPTIME "Use strptime in system libc" Yes)
- option(FLB_STATIC_CONF "Build binary using static configuration")
- option(FLB_STREAM_PROCESSOR "Enable Stream Processor" Yes)
-+option(FLB_SYSTEMD "Enable systemd init system" No)
-+option(FLB_UPSTART "Enable upstart init system" No)
- option(FLB_CORO_STACK_SIZE "Set coroutine stack size")
-
- # Metrics: Experimental Feature, disabled by default on 0.12 series
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 67b3397a6f..0000000000
--- a/meta-oe/recipes-extended/fluentbit/fluentbit/jemalloc.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Add --with-jemalloc-prefix=je_ so it compiles on musl
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Pending
-
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -523,7 +523,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-5.2.1
-- CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/lib/jemalloc-5.2.1/configure ${AUTOCONF_HOST_OPT} --with-lg-quantum=3 --enable-cc-silence --prefix=<INSTALL_DIR>
-+ CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/lib/jemalloc-5.2.1/configure ${AUTOCONF_HOST_OPT} --with-jemalloc-prefix=je_ --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_1.3.5.bb b/meta-oe/recipes-extended/fluentbit/fluentbit_1.3.5.bb
deleted file mode 100644
index bc4cd0cf9c..0000000000
--- a/meta-oe/recipes-extended/fluentbit/fluentbit_1.3.5.bb
+++ /dev/null
@@ -1,63 +0,0 @@
-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 = "http://fluentbit.io/releases/1.3/fluent-bit-${PV}.tar.gz \
- file://jemalloc.patch \
- file://cross-build-init-system-detection.patch \
- file://builtin-nan.patch \
- file://0001-ppc-Fix-signature-for-co_create-API.patch \
- "
-SRC_URI[md5sum] = "6eae6dfd0a874e5dd270c36e9c68f747"
-SRC_URI[sha256sum] = "e037c76c89269c8dc4027a08e442fefd2751b0f1e0f9c38f9a4b12d781a9c789"
-
-S = "${WORKDIR}/fluent-bit-${PV}"
-DEPENDS = "zlib bison-native flex-native"
-DEPENDS_append_libc-musl = " fts "
-
-INSANE_SKIP_${PN}-dev += "dev-elf"
-
-LTO = ""
-
-# Use CMake 'Unix Makefiles' generator
-OECMAKE_GENERATOR ?= "Unix Makefiles"
-
-# Fluent Bit build options
-# ========================
-
-# Host related setup
-EXTRA_OECMAKE += "-DGNU_HOST=${HOST_SYS} -DFLB_ALL=ON -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 -DFLB_EXAMPLES=Off "
-
-EXTRA_OECMAKE += "${@bb.utils.contains('DISTRO_FEATURES','systemd','-DFLB_SYSTEMD=On','',d)}"
-
-EXTRA_OECMAKE_append_riscv64 = " -DFLB_DEPS='atomic'"
-EXTRA_OECMAKE_append_riscv32 = " -DFLB_DEPS='atomic'"
-
-# Kafka Output plugin (disabled by default): note that when
-# enabling Kafka output plugin, the backend library librdkafka
-# requires 'openssl' as a dependency.
-#
-# DEPENDS += "openssl "
-# EXTRA_OECMAKE += "-DFLB_OUT_KAFKA=On "
-
-inherit cmake systemd
-
-CFLAGS += "-fcommon"
-
-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.8.bb b/meta-oe/recipes-extended/gnuplot/gnuplot_5.4.3.bb
index b2c41756e5..fe5e5c067d 100644
--- a/meta-oe/recipes-extended/gnuplot/gnuplot_5.2.8.bb
+++ b/meta-oe/recipes-extended/gnuplot/gnuplot_5.4.3.bb
@@ -7,34 +7,32 @@ LICENSE = "gnuplot"
LIC_FILES_CHKSUM = "file://Copyright;md5=243a186fc2fd3b992125d60d5b1bab8f"
DEPENDS = "${BPN}-native virtual/libx11 gd readline"
-inherit autotools features_check
+inherit autotools features_check pkgconfig
# 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 = " \
+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.md5sum] = "2df8767c7399bee57a96296d46b4d5fb"
-SRC_URI[archive.sha256sum] = "60a6764ccf404a1668c140f11cc1f699290ab70daa1151bb58fed6139a28ac37"
-SRC_URI[qtplot.md5sum] = "0a481885a496092c77eb4017540b5cf6"
+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 = ""
+DEPENDS:class-native = "readline-native"
+PACKAGECONFIG:class-native = ""
-SRC_URI_append_class-native = " file://0001-reduce-build-to-conversion-tools-for-native-build.patch"
+SRC_URI:append:class-native = " file://0001-reduce-build-to-conversion-tools-for-native-build.patch"
-do_install_class-native() {
+do_install:class-native() {
install -d ${D}${bindir}
install ${B}/docs/*doc* ${D}${bindir}
rm ${D}${bindir}/*.o
@@ -45,15 +43,17 @@ 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"
+EXTRA_OECONF = " \
+ --with-readline=${STAGING_LIBDIR}/.. \
+ --disable-wxwidgets \
+ --without-libcerf \
+"
-do_compile_prepend() {
+do_compile:prepend() {
install -m 0644 ${WORKDIR}/qtplot-0.2/qtopia.trm ${S}/term/
}
-do_install_append_class-target() {
+do_install:append:class-target() {
install -d ${D}${datadir}/applications/
install -m 0644 ${WORKDIR}/gnuplot.desktop ${D}${datadir}/applications/
install -d ${D}${datadir}/pixmaps/
@@ -62,10 +62,10 @@ do_install_append_class-target() {
PACKAGES =+ "${PN}-x11"
-RPROVIDES_${PN}-dbg += "${PN}-x11-dbg"
+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 "
+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} += "${datadir}/texmf"
diff --git a/meta-oe/recipes-extended/haveged/haveged_1.9.13.bb b/meta-oe/recipes-extended/haveged/haveged_1.9.13.bb
deleted file mode 100644
index 50326ea2f4..0000000000
--- a/meta-oe/recipes-extended/haveged/haveged_1.9.13.bb
+++ /dev/null
@@ -1,47 +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"
-
-# v1.9.9
-SRCREV = "1283a65c541c4a83e152024a63faf7b267b9b1cd"
-SRC_URI = "git://github.com/jirka-h/haveged.git \
-"
-S = "${WORKDIR}/git"
-
-UPSTREAM_CHECK_URI = "https://github.com/jirka-h/haveged/releases"
-
-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.fedora --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
- # Hybrid systemd-sysvinit distros must install the initscript manually
- if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
- install -d ${D}${INIT_D_DIR}
- sed -e "s,@SBINDIR@,${sbindir},g" <${S}/init.d/sysv.redhat >${D}${INIT_D_DIR}/haveged
- chmod 755 ${D}${INIT_D_DIR}/haveged
- fi
- fi
-}
-
-MIPS_INSTRUCTION_SET = "mips"
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/hexedit/hexedit_1.4.2.bb b/meta-oe/recipes-extended/hexedit/hexedit_1.6.bb
index 3e7fb2a076..d2b23b41b4 100644
--- a/meta-oe/recipes-extended/hexedit/hexedit_1.4.2.bb
+++ b/meta-oe/recipes-extended/hexedit/hexedit_1.6.bb
@@ -1,20 +1,20 @@
SUMMARY = "view and edit files in hexadecimal or in ASCII"
HOMEPAGE = "http://rigaux.org/hexedit.html"
SECTION = "console/utils"
-LICENSE = "GPLv2+"
+LICENSE = "GPL-2.0-or-later"
DEPENDS = "ncurses"
LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
-SRC_URI = "git://github.com/pixel/hexedit.git \
+SRC_URI = "git://github.com/pixel/hexedit.git;branch=master;protocol=https \
"
-SRCREV = "800e4b2e6280531a84fd23ee0b48e16baeb90878"
+SRCREV = "eab92dcaa34b66bc5182772afc9fda4ac8a27597"
S = "${WORKDIR}/git"
inherit autotools-brokensep update-alternatives
-ALTERNATIVE_${PN} = "hexedit"
+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 1af5d26ac0..0000000000
--- a/meta-oe/recipes-extended/hiredis/files/0001-Makefile-remove-hardcoding-of-CC.patch
+++ /dev/null
@@ -1,28 +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(-)
-
---- a/Makefile
-+++ b/Makefile
-@@ -35,12 +35,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')
--CXX:=$(shell sh -c 'type $${CXX%% *} >/dev/null 2>/dev/null && echo $(CXX) || echo g++')
--OPTIMIZATION?=-O3
--WARNINGS=-Wall -W -Wstrict-prototypes -Wwrite-strings
--DEBUG_FLAGS?= -g -ggdb
- REAL_CFLAGS=$(OPTIMIZATION) -fPIC $(CFLAGS) $(WARNINGS) $(DEBUG_FLAGS)
- REAL_LDFLAGS=$(LDFLAGS)
-
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.14.0.bb b/meta-oe/recipes-extended/hiredis/hiredis_0.14.0.bb
deleted file mode 100644
index 29f8de8d2f..0000000000
--- a/meta-oe/recipes-extended/hiredis/hiredis_0.14.0.bb
+++ /dev/null
@@ -1,23 +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"
-SRCREV = "685030652cd98c5414ce554ff5b356dfe8437870"
-SRC_URI = "git://github.com/redis/hiredis;protocol=git \
- file://0001-Makefile-remove-hardcoding-of-CC.patch"
-
-S = "${WORKDIR}/git"
-
-inherit autotools-brokensep pkgconfig
-
-EXTRA_OEMAKE = "PREFIX=${prefix} LIBRARY_PATH=${baselib}"
-
-# 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/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
index 2babb2b67a..e8ca8b2d6c 100644
--- a/meta-oe/recipes-extended/hplip/hplip/030-replace_unsafe_memcpy_with_memmove.patch
+++ b/meta-oe/recipes-extended/hplip/hplip/030-replace_unsafe_memcpy_with_memmove.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
https://bugs.launchpad.net/hplip/+bug/1672256
memcpy should never be used with overlapping memory regions
diff --git a/meta-oe/recipes-extended/hplip/hplip/050-fix-glibcisms.patch b/meta-oe/recipes-extended/hplip/hplip/050-fix-glibcisms.patch
index e020bd4642..93fdcf4bfd 100644
--- a/meta-oe/recipes-extended/hplip/hplip/050-fix-glibcisms.patch
+++ b/meta-oe/recipes-extended/hplip/hplip/050-fix-glibcisms.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
diff --git a/scan/sane/OrbliteScan/LinuxCommon.h b/scan/sane/OrbliteScan/LinuxCommon.h
index 6605dd9..55c7110 100644
--- a/scan/sane/OrbliteScan/LinuxCommon.h
diff --git a/meta-oe/recipes-extended/hplip/hplip/600-fix.patch b/meta-oe/recipes-extended/hplip/hplip/600-fix.patch
index 91a5035ae9..cddc5e0065 100644
--- a/meta-oe/recipes-extended/hplip/hplip/600-fix.patch
+++ b/meta-oe/recipes-extended/hplip/hplip/600-fix.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
--- a/configure.in
+++ b/configure.in
@@ -254,7 +254,6 @@ if test "$class_driver" = "yes"; then
diff --git a/meta-oe/recipes-extended/hplip/hplip/999-remove-lImageProcessor.patch b/meta-oe/recipes-extended/hplip/hplip/999-remove-lImageProcessor.patch
deleted file mode 100644
index aee4ac50cc..0000000000
--- a/meta-oe/recipes-extended/hplip/hplip/999-remove-lImageProcessor.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-# ../bin/ld: cannot find -lImageProcessor
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -590,11 +590,10 @@ hpcups_SOURCES = prnt/hpcups/HPCupsFilte
- prnt/hpcups/flate_colorspace.h prnt/hpcups/RunLenEncoding.h prnt/hpcups/common_defines.h \
- prnt/hpcups/genPCLm.h \
- common/utils.c common/utils.h prnt/hpcups/Hbpl1_Wrapper.cpp prnt/hpcups/genPCLm.cpp \
-- prnt/hpcups/genJPEGStrips.cpp prnt/hpcups/RunLenEncoding.cpp \
-- prnt/hpcups/ImageProcessor.h
-+ prnt/hpcups/genJPEGStrips.cpp prnt/hpcups/RunLenEncoding.cpp
-
- 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)
- #else
- #hpcupsdir = $(cupsfilterdir)
- #hpcups_PROGRAMS = hpcups
---- a/prnt/hpcups/HPCupsFilter.cpp
-+++ b/prnt/hpcups/HPCupsFilter.cpp
-@@ -637,16 +637,10 @@ int HPCupsFilter::processRasterData(cups
-
-
- sprintf(hpPreProcessedRasterFile, "%s/hp_%s_cups_SwapedPagesXXXXXX",CUPS_TMP_DIR, m_JA.user_name);
-- image_processor_t* imageProcessor = imageProcessorCreate();
-
- while (cupsRasterReadHeader2(cups_raster, &cups_header))
- {
-
-- IMAGE_PROCESSOR_ERROR result = imageProcessorStartPage(imageProcessor, &cups_header);
-- if (result != IPE_SUCCESS){
-- dbglog("DEBUG: imageProcessorStartPage failed result = %d\n", result);
-- }
--
- current_page_number++;
-
- if (current_page_number == 1) {
-@@ -745,11 +739,6 @@ int HPCupsFilter::processRasterData(cups
- color_raster = rgbRaster;
- black_raster = kRaster;
-
-- result = imageProcessorProcessLine(imageProcessor, m_pPrinterBuffer, cups_header.cupsBytesPerLine);
-- if (result != IPE_SUCCESS){
-- dbglog("DEBUG: imageProcessorProcessLine failed result = %d\n", result);
-- }
--
-
- if ((y == 0) && !is_ljmono) {
- //For ljmono, make sure that first line is not a blankRaster line.Otherwise printer
-@@ -780,11 +769,6 @@ int HPCupsFilter::processRasterData(cups
- }
- } // for() loop end
-
-- result = imageProcessorEndPage(imageProcessor);
-- if (result != IPE_SUCCESS){
-- dbglog("DEBUG: imageProcessorEndPage failed result = %d\n", result);
-- }
--
-
- m_Job.NewPage();
- if (err != NO_ERROR) {
-@@ -800,8 +784,6 @@ int HPCupsFilter::processRasterData(cups
- rgbRaster = NULL;
- }
-
-- imageProcessorDestroy(imageProcessor);
--
- unlink(hpPreProcessedRasterFile);
- return ret_status;
- }
diff --git a/meta-oe/recipes-extended/hplip/hplip/configure.patch b/meta-oe/recipes-extended/hplip/hplip/configure.patch
index 8fe77c5edf..0e0fd47fa1 100644
--- a/meta-oe/recipes-extended/hplip/hplip/configure.patch
+++ b/meta-oe/recipes-extended/hplip/hplip/configure.patch
@@ -1,10 +1,11 @@
+Upstream-Status: Pending
+
--- a/configure.in
+++ b/configure.in
-@@ -27,8 +27,7 @@
+@@ -30,7 +30,7 @@
+ AC_INIT([HP Linux Imaging and Printing], [3.22.10], [3.22.10], [hplip])
- #AC_PREREQ(2.59)
- AC_INIT([HP Linux Imaging and Printing], [3.19.12], [3.19.12], [hplip])
--#AM_INIT_AUTOMAKE([1.9 foreign])
+ #AM_INIT_AUTOMAKE([1.9 foreign])
-AM_INIT_AUTOMAKE
+AM_INIT_AUTOMAKE([foreign])
AC_DISABLE_STATIC
diff --git a/meta-oe/recipes-extended/hplip/hplip/fix-libusb-paths.patch b/meta-oe/recipes-extended/hplip/hplip/fix-libusb-paths.patch
index 6aa1de0a8a..f2cd2be60d 100644
--- a/meta-oe/recipes-extended/hplip/hplip/fix-libusb-paths.patch
+++ b/meta-oe/recipes-extended/hplip/hplip/fix-libusb-paths.patch
@@ -1,33 +1,69 @@
-Upstream-Status: Inappropriate [configuration]
+Don't hardcode paths to libusb, instead use pkg-config.
---- a/configure.in
-+++ b/configure.in
-@@ -599,6 +599,8 @@ if test "$class_driver" = "no" && test "
- AC_CHECK_HEADERS(usb.h, ,[AC_MSG_ERROR([cannot find libusb-devel support], 11)])
- else
- AC_CHECK_LIB([usb-1.0], [libusb_init], [LIBS="$LIBS"], [AC_MSG_ERROR([cannot find libusb 1.0 support], 2)])
-+ LIBUSBINCLUDEROOT?="/usr/include/"
-+ AC_ARG_VAR(LIBUSBINCLUDEROOT, [path to libusb-1.0 folder])
- AC_CHECK_HEADERS(libusb-1.0/libusb.h, ,[AC_MSG_ERROR([cannot find libusb-1.0-devel support], 11)])
- fi
- fi
+Upstream-Status: Pending
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+diff --git a/Makefile.am b/Makefile.am
+index b77327f..29e838a 100644
--- a/Makefile.am
+++ b/Makefile.am
-@@ -109,7 +109,7 @@ libhpmud_la_SOURCES += io/hpmud/musb_lib
- libhpmud_la_LDFLAGS += -lusb
+@@ -107,12 +107,11 @@ libhpmud_la_SOURCES = io/hpmud/hpmud.c io/hpmud/mlc.c io/hpmud/model.c io/hpmud/
+
+ if LIBUSB01_BUILD
+ libhpmud_la_SOURCES += io/hpmud/musb_libusb01.c
+-libhpmud_la_LDFLAGS += -lusb
else
libhpmud_la_SOURCES += io/hpmud/musb.c
-libhpmud_la_CFLAGS += -I/usr/include/libusb-1.0
-+libhpmud_la_CFLAGS += -I$(LIBUSBINCLUDEROOT)/libusb-1.0
- libhpmud_la_LDFLAGS += -lusb-1.0
+-libhpmud_la_LDFLAGS += -lusb-1.0
endif
++libhpmud_la_CFLAGS += $(USB_CFLAGS)
++libhpmud_la_LDFLAGS += $(USB_LIBS)
+
+
+ if NETWORK_BUILD
+@@ -356,7 +355,7 @@ hpmudextdir = $(pyexecdir)
+ hpmudext_LTLIBRARIES = hpmudext.la
+ hpmudext_la_LDFLAGS = -module -avoid-version
+ hpmudext_la_SOURCES = io/mudext/hpmudext.c
+-hpmudext_la_CFLAGS = -I$(PYTHONINCLUDEDIR)
++hpmudext_la_CFLAGS = -I$(PYTHONINCLUDEDIR) $(USB_CFLAGS)
+ hpmudext_la_LIBADD = libhpmud.la
-@@ -362,7 +362,7 @@ hpmudext_la_CFLAGS += -Iprotocol/discove
+ if NETWORK_BUILD
+@@ -364,9 +363,6 @@ hpmudext_la_LIBADD += libhpdiscovery.la
+ hpmudext_la_CFLAGS += -Iprotocol/discovery
endif
- if !LIBUSB01_BUILD
+-if !LIBUSB01_BUILD
-hpmudext_la_CFLAGS +=-I/usr/include/libusb-1.0
-+hpmudext_la_CFLAGS +=-I$(LIBUSBINCLUDEROOT)/libusb-1.0
- endif
+-endif
endif #!HPLIP_CLASS_DRIVER
# ui (qt3)
+ if GUI_BUILD
+diff --git a/configure.in b/configure.in
+index b1c690c..4a65c97 100644
+--- a/configure.in
++++ b/configure.in
+@@ -36,6 +36,7 @@ AC_PROG_CXX
+ AC_PROG_CC
+ AC_PROG_INSTALL
+ AC_PROG_LIBTOOL
++PKG_PROG_PKG_CONFIG
+
+ # Checks for required libraries, don't set global -lpthread, -lm, -ljpeg, ... here, set in Makefile.
+ AC_CHECK_LIB([pthread], [pthread_create], [LIBS="$LIBS"], [AC_MSG_ERROR([cannot find libpthread support], 7)])
+@@ -620,11 +621,9 @@ if test "$class_driver" = "no" && test "$hpijs_only_build" = "no" && test "$hpcu
+ AC_CHECK_LIB([cups], [cupsDoFileRequest], [LIBS="$LIBS"], [AC_MSG_ERROR([cannot find libcups support], 9)])
+ AC_CHECK_HEADERS(cups/cups.h, ,[AC_MSG_ERROR([cannot find cups-devel support], 3)])
+ if test "$libusb01_build" = "yes"; then
+- AC_CHECK_LIB([usb], [usb_init], [LIBS="$LIBS"], [AC_MSG_ERROR([cannot find libusb support], 2)])
+- AC_CHECK_HEADERS(usb.h, ,[AC_MSG_ERROR([cannot find libusb-devel support], 11)])
++ PKG_CHECK_MODULES([USB], [libusb])
+ else
+- AC_CHECK_LIB([usb-1.0], [libusb_init], [LIBS="$LIBS"], [AC_MSG_ERROR([cannot find libusb 1.0 support], 2)])
+- AC_CHECK_HEADERS(libusb-1.0/libusb.h, ,[AC_MSG_ERROR([cannot find libusb-1.0-devel support], 11)])
++ PKG_CHECK_MODULES([USB], [libusb-1.0])
+ fi
+ fi
+
diff --git a/meta-oe/recipes-extended/hplip/hplip/hplip-3.19.6-fix-return.patch b/meta-oe/recipes-extended/hplip/hplip/hplip-3.19.6-fix-return.patch
index 67546b07dc..45b25c5e76 100644
--- a/meta-oe/recipes-extended/hplip/hplip/hplip-3.19.6-fix-return.patch
+++ b/meta-oe/recipes-extended/hplip/hplip/hplip-3.19.6-fix-return.patch
@@ -4,6 +4,8 @@ Date: Wed, 14 Aug 2019 15:47:38 -0700
Subject: [PATCH] Fixing invalid return in void function
---
+Upstream-Status: Pending
+
prnt/hpps/hppsfilter.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-extended/hplip/hplip_3.19.12.bb b/meta-oe/recipes-extended/hplip/hplip_3.22.10.bb
index 457a974534..ed9f28e073 100644
--- a/meta-oe/recipes-extended/hplip/hplip_3.19.12.bb
+++ b/meta-oe/recipes-extended/hplip/hplip_3.22.10.bb
@@ -1,22 +1,27 @@
SUMMARY = "HP Linux Imaging and Printing"
-LICENSE="GPLv2"
+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://999-remove-lImageProcessor.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 \
-"
-SRC_URI[md5sum] = "d72bc77d791c150c2c22b84e9553bab3"
-SRC_URI[sha256sum] = "b7f398502fb659e0de8e54976237e3c6a64fec0b3c36054a515876f7b006b255"
+ 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 libusb"
+DEPENDS += "cups python3 libusb1"
-inherit autotools-brokensep python3-dir python3native pkgconfig systemd
+inherit autotools-brokensep python3-dir python3native python3targetconfig pkgconfig systemd
export STAGING_INCDIR
export STAGING_LIBDIR
@@ -24,7 +29,7 @@ export STAGING_LIBDIR
CFLAGS += "-I${STAGING_INCDIR}/python${PYTHON_BASEVERSION}${PYTHON_ABI}"
EXTRA_OECONF += "\
- LIBUSBINCLUDEROOT=${STAGING_INCDIR} \
+ --enable-cups-drv-install \
--enable-cups-ppd-install \
--disable-network-build \
--disable-doc-build \
@@ -39,13 +44,14 @@ EXTRA_OECONF += "\
--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() {
+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
@@ -54,7 +60,7 @@ do_install_append() {
PACKAGE_BEFORE_PN += "${PN}-ppd ${PN}-cups ${PN}-backend ${PN}-filter ${PN}-hal"
-RDEPENDS_${PN} += " \
+RDEPENDS:${PN} += " \
python3\
python3-syslog \
python3-pprint \
@@ -66,23 +72,18 @@ RDEPENDS_${PN} += " \
python3-resource \
python3-terminal \
"
-RDEPENDS_${PN}-filter += "perl"
-
-# need to snag the debug file or OE will fail on backend package
-FILES_${PN}-dbg += "\
- ${libexecdir}/cups/backend/.debug \
- ${PYTHON_SITEPACKAGES_DIR}/.debug \
- ${libexecdir}/cups/filter/.debug "
+RDEPENDS:${PN}-filter += "perl ghostscript"
-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} += "${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"
+FILES:${PN} += "${PYTHON_SITEPACKAGES_DIR}/*.so"
-SYSTEMD_SERVICE_${PN} = "hplip-printer@.service"
+SYSTEMD_SERVICE:${PN} = "hplip-printer@.service"
CLEANBROKEN = "1"
diff --git a/meta-oe/recipes-extended/hwloc/hwloc_1.11.13.bb b/meta-oe/recipes-extended/hwloc/hwloc_2.9.2.bb
index 2b0dfe4ea5..487b7da130 100644
--- a/meta-oe/recipes-extended/hwloc/hwloc_1.11.13.bb
+++ b/meta-oe/recipes-extended/hwloc/hwloc_2.9.2.bb
@@ -5,27 +5,24 @@ DESCRIPTION = "The Portable Hardware Locality (hwloc) software package \
HOMEPAGE = "https://www.open-mpi.org/software/hwloc/"
SECTION = "base"
LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=3282e20dc3cec311deda3c6d4b1f990b"
+LIC_FILES_CHKSUM = "file://COPYING;md5=79179bb373cd55cbd834463a514fb714"
-SRC_URI = "https://www.open-mpi.org/software/${BPN}/v1.11/downloads/${BP}.tar.bz2"
-SRC_URI[md5sum] = "3c792e23c209e9e1bafe9bdbc613d401"
-SRC_URI[sha256sum] = "a4494b7765f517c0990d1c7f09d98cb87755bb6b841e4e2cbfebca1b14bac9c8"
+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/"
-UPSTREAM_CHECK_URI = "https://www.open-mpi.org/software/hwloc/v1.11/"
-
-inherit autotools pkgconfig
+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[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})"
+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
index 7943948550..c5e210afcd 100644
--- 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
@@ -10,11 +10,9 @@ Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
configure.ac | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
-diff --git a/configure.ac b/configure.ac
-index c5e3ca03..4b89396a 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -140,7 +140,7 @@ AC_CHECK_FUNC([getloadavg],[AC_DEFINE([HAVE_GETLOADAVG2], 1, [getloadavg() is av
+@@ -160,7 +160,7 @@ AC_CHECK_FUNCS([backtrace_symbols_fd mem
AC_FUNC_SELECT_ARGTYPES
AC_MSG_CHECKING([for strlcpy])
@@ -23,7 +21,7 @@ index c5e3ca03..4b89396a 100644
char a[2];
if (strlcpy(a, "yes", 2) != 3)
return 1;]])],
-@@ -156,7 +156,7 @@ AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include <string.h>]],[[
+@@ -176,7 +176,7 @@ AC_RUN_IFELSE([AC_LANG_PROGRAM([[#includ
])
AC_MSG_CHECKING([for strlcat])
@@ -32,6 +30,25 @@ index c5e3ca03..4b89396a 100644
char a[4] = "no";
if (strlcat(a, "yes", 4) != 5)
return 1;]])],
---
-2.17.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_1.6.5.bb b/meta-oe/recipes-extended/icewm/icewm_2.9.9.bb
index 241a2b30f3..ecb0dbe73f 100644
--- a/meta-oe/recipes-extended/icewm/icewm_1.6.5.bb
+++ b/meta-oe/recipes-extended/icewm/icewm_2.9.9.bb
@@ -1,11 +1,11 @@
DESCRIPTION = "Ice Window Manager (IceWM)"
-LICENSE = "GPLv2"
+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] = "d41e6abf842ff3f8705a81d352be7c5b181c587549c183de0641c3820234a7b2"
+SRC_URI[sha256sum] = "af7bab3472189febf50753eaecfac586901419d282cbcbff92e860d4b74894b3"
UPSTREAM_CHECK_URI = "https://github.com/ice-wm/${BPN}/releases"
@@ -19,13 +19,13 @@ EXTRA_OECONF += "--with-libdir=${datadir}/icewm \
--enable-xinerama \
--enable-shape"
-DEPENDS = "asciidoc-native fontconfig gdk-pixbuf libxft libxpm libxrandr \
+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"
+DEPENDS:append = " qemu-native"
+RDEPENDS:${PN} = "perl fribidi imlib2 imlib2-loaders"
-do_compile_prepend_class-target() {
+do_compile:prepend:class-target() {
cd ${B}
oe_runmake -C src genpref
@@ -39,8 +39,8 @@ EOF
./qemuwrapper > src/preferences
}
-ALTERNATIVE_${PN} = "x-session-manager"
+ALTERNATIVE:${PN} = "x-session-manager"
ALTERNATIVE_TARGET[x-session-manager] = "${bindir}/icewm-session"
ALTERNATIVE_PRIORITY_${PN} = "100"
-FILES_${PN} += "${datadir}/xsessions"
+FILES:${PN} += "${datadir}/xsessions"
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_2.2.12.bb b/meta-oe/recipes-extended/indent/indent_2.2.12.bb
index 90ba8a2e65..1a7d61abc0 100644
--- a/meta-oe/recipes-extended/indent/indent_2.2.12.bb
+++ b/meta-oe/recipes-extended/indent/indent_2.2.12.bb
@@ -7,7 +7,7 @@ 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"
+LICENSE = "GPL-3.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
DEPENDS = "virtual/gettext"
@@ -16,12 +16,13 @@ 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"
+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
index 68beec670b..84ed3b052b 100644
--- a/meta-oe/recipes-extended/inputattach-config/inputattach-config.bb
+++ b/meta-oe/recipes-extended/inputattach-config/inputattach-config.bb
@@ -1,6 +1,6 @@
SUMMARY = "inputattach configuration file"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6"
SRC_URI = "file://inputattach.conf"
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 3a597218db..0000000000
--- a/meta-oe/recipes-extended/iotop/iotop_0.6.bb
+++ /dev/null
@@ -1,29 +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"
-
-PV .= "+git${SRCPV}"
-
-SRCREV = "1bfb3bc70febb1ffb95146b6dcd65257228099a3"
-SRC_URI = "git://repo.or.cz/iotop.git"
-
-S = "${WORKDIR}/git"
-
-UPSTREAM_CHECK_URI = "http://repo.or.cz/iotop.git/tags"
-UPSTREAM_CHECK_REGEX = "iotop-(?P<pver>\d+(\.\d+)+)"
-
-inherit distutils3
-
-do_install_append() {
- rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/site.pyo || true
- rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/site.py || true
-}
-
-RDEPENDS_${PN} = "python3-curses \
- python3-codecs python3-ctypes python3-pprint \
- python3-shell python3-core"
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/isomd5sum_1.2.3.bb b/meta-oe/recipes-extended/isomd5sum/isomd5sum_1.2.3.bb
index b7899a11b6..4f8ea64a26 100644
--- a/meta-oe/recipes-extended/isomd5sum/isomd5sum_1.2.3.bb
+++ b/meta-oe/recipes-extended/isomd5sum/isomd5sum_1.2.3.bb
@@ -2,12 +2,12 @@ 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"
+RDEPENDS:${BPN} = "openssl curl"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
-SRC_URI = "git://github.com/rhinstaller/isomd5sum.git;branch=master \
+SRC_URI = "git://github.com/rhinstaller/isomd5sum.git;branch=master;protocol=https \
file://0001-tweak-install-prefix.patch \
file://0002-fix-parallel-error.patch \
"
@@ -27,9 +27,9 @@ do_install () {
PACKAGES += "${PYTHON_PN}-${BPN}"
-RPROVIDES_${BPN}-dbg += "${PYTHON_PN}-${BPN}-dbg"
+RPROVIDES:${BPN}-dbg += "${PYTHON_PN}-${BPN}-dbg"
-FILES_${PYTHON_PN}-${BPN} = "${PYTHON_SITEPACKAGES_DIR}/pyisomd5sum.so"
+FILES:${PYTHON_PN}-${BPN} = "${PYTHON_SITEPACKAGES_DIR}/pyisomd5sum.so"
SRCREV = "7860901f726f5d92689cb67243cc7f981f21f74b"
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.13.1.bb b/meta-oe/recipes-extended/jansson/jansson_2.13.1.bb
deleted file mode 100644
index d6e56ea768..0000000000
--- a/meta-oe/recipes-extended/jansson/jansson_2.13.1.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-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 = "http://www.digip.org/jansson/releases/${BPN}-${PV}.tar.gz"
-
-SRC_URI[md5sum] = "570af45b8203e95876d71fecd56cee20"
-SRC_URI[sha256sum] = "f4f377da17b10201a60c1108613e78ee15df6b12016b116b6de42209f47a474f"
-
-inherit autotools pkgconfig
-
-BBCLASSEXTEND = "native"
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
index f2805a1b8d..39d6459227 100644
--- a/meta-oe/recipes-extended/jpnevulator/jpnevulator_git.bb
+++ b/meta-oe/recipes-extended/jpnevulator/jpnevulator_git.bb
@@ -1,10 +1,10 @@
SUMMARY = "A handy serial sniffer"
-LICENSE = "GPL-2.0"
+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=http"
+SRC_URI = "git://github.com/snarlistic/jpnevulator.git;protocol=https;branch=master"
SRCREV = "bc1d4f6587a4a4829b5d55e3ca7ad584da6de545"
S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-extended/konkretcmpi/konkretcmpi/0001-CMakeLists.txt-fix-lib64-can-not-be-shiped-in-64bit-.patch b/meta-oe/recipes-extended/konkretcmpi/konkretcmpi/0001-CMakeLists.txt-fix-lib64-can-not-be-shiped-in-64bit-.patch
index 40a064307e..2671111b79 100644
--- a/meta-oe/recipes-extended/konkretcmpi/konkretcmpi/0001-CMakeLists.txt-fix-lib64-can-not-be-shiped-in-64bit-.patch
+++ b/meta-oe/recipes-extended/konkretcmpi/konkretcmpi/0001-CMakeLists.txt-fix-lib64-can-not-be-shiped-in-64bit-.patch
@@ -5,6 +5,8 @@ Subject: [PATCH] CMakeLists.txt: fix lib64 can not be shiped in 64bit target
Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
---
+Upstream-Status: Pending
+
CMakeLists.txt | 7 -------
1 file changed, 7 deletions(-)
diff --git a/meta-oe/recipes-extended/konkretcmpi/konkretcmpi/0001-drop-including-rpath-cmake-module.patch b/meta-oe/recipes-extended/konkretcmpi/konkretcmpi/0001-drop-including-rpath-cmake-module.patch
index 342017bedc..293706d889 100644
--- a/meta-oe/recipes-extended/konkretcmpi/konkretcmpi/0001-drop-including-rpath-cmake-module.patch
+++ b/meta-oe/recipes-extended/konkretcmpi/konkretcmpi/0001-drop-including-rpath-cmake-module.patch
@@ -8,6 +8,8 @@ Fixes cross compilation QA errors e.g.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
src/konkret/CMakeLists.txt | 1 -
src/program/CMakeLists.txt | 1 -
2 files changed, 2 deletions(-)
diff --git a/meta-oe/recipes-extended/konkretcmpi/konkretcmpi_0.9.2.bb b/meta-oe/recipes-extended/konkretcmpi/konkretcmpi_0.9.2.bb
index e6d5663f85..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 python3"
-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,16 +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"
-RPROVIDES_${PN}-dbg += "${PN}-python-dbg"
+RPROVIDES:${PN}-dbg += "${PN}-python-dbg"
-FILES_${PN}-python = "${libdir}/python*/site-packages/konkretmof.py* ${libdir}/python*/site-packages/_konkretmof.so"
+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/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/libblockdev_2.24.bb b/meta-oe/recipes-extended/libblockdev/libblockdev_2.28.bb
index 99cdee5bba..2e7412e823 100644
--- a/meta-oe/recipes-extended/libblockdev/libblockdev_2.24.bb
+++ b/meta-oe/recipes-extended/libblockdev/libblockdev_2.28.bb
@@ -3,38 +3,41 @@ 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+"
+LICENSE = "LGPL-2.0-or-later"
SECTION = "devel/lib"
LIC_FILES_CHKSUM = "file://LICENSE;md5=c07cb499d259452f324bb90c3067d85c"
-inherit autotools gobject-introspection
+inherit autotools gobject-introspection pkgconfig lib_package
-SRC_URI = "git://github.com/storaged-project/libblockdev;branch=2.x-branch"
-SRCREV = "f5a4ba8bb298f8cbc435707d0b19b4b2ff836a8e"
+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"
+FILES:${PN} += "${libdir}/python2.7/dist-packages ${libdir}/python3.*/site-packages"
-PACKAGECONFIG ??= "python3 lvm dm kmod parted fs escrow btrfs crypto mdraid kbd mpath nvdimm"
+PACKAGECONFIG ??= "python3 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, kmod"
+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"
+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/libcec/0001-Remove-buggy-test-confusing-host-and-target.patch b/meta-oe/recipes-extended/libcec/libcec/0001-Remove-buggy-test-confusing-host-and-target.patch
index 7c29e15e20..07277f7064 100644
--- a/meta-oe/recipes-extended/libcec/libcec/0001-Remove-buggy-test-confusing-host-and-target.patch
+++ b/meta-oe/recipes-extended/libcec/libcec/0001-Remove-buggy-test-confusing-host-and-target.patch
@@ -4,6 +4,8 @@ Date: Mon, 7 Sep 2020 18:17:21 +0200
Subject: [PATCH] Remove buggy test confusing host and target
---
+Upstream-Status: Pending
+
src/libcec/cmake/CheckPlatformSupport.cmake | 8 --------
1 file changed, 8 deletions(-)
diff --git a/meta-oe/recipes-extended/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
index 48be1fdac5..599416cb2a 100644
--- a/meta-oe/recipes-extended/libcec/libcec_6.0.2.bb
+++ b/meta-oe/recipes-extended/libcec/libcec_6.0.2.bb
@@ -1,19 +1,20 @@
SUMMARY = "USB CEC Adaptor communication Library"
HOMEPAGE = "http://libcec.pulse-eight.com/"
-LICENSE = "GPLv2+"
+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)}"
+DEPENDS:append:rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', ' userland', d)}"
SRCREV = "29d82c80bcc62be2878a9ac080de7eb286c4beb9"
-SRC_URI = "git://github.com/Pulse-Eight/libcec.git;branch=release \
+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"
@@ -26,18 +27,21 @@ 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}"
-RDEPENDS_${PN}-examples-python = "python3-${BPN} python3-core"
+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"
+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"
+FILES:${PN} += "${libdir}/*.so"
+INSANE_SKIP:${PN} = "dev-so"
# Adapter shows up as a CDC-ACM device
-RRECOMMENDS_${PN} = "kernel-module-cdc-acm"
+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.3.bb
index 148e85ce11..6382569923 100644
--- a/meta-oe/recipes-extended/libconfig/libconfig_1.7.2.bb
+++ b/meta-oe/recipes-extended/libconfig/libconfig_1.7.3.bb
@@ -4,12 +4,18 @@ HOMEPAGE = "https://hyperrealm.github.io/libconfig/"
BUGTRACKER = "https://github.com/hyperrealm/libconfig/issues"
SECTION = "libs"
-LICENSE = "LGPLv2.1"
+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] = "6bd98ee3a6e6b9126c82c916d7a9e690"
-SRC_URI[sha256sum] = "7c3c7a9c73ff3302084386e96f903eb62ce06953bb1666235fac74363a16fad9"
+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/libdivecomputer_git.bb b/meta-oe/recipes-extended/libdivecomputer/libdivecomputer_git.bb
index b7c1958eef..87778c6314 100644
--- a/meta-oe/recipes-extended/libdivecomputer/libdivecomputer_git.bb
+++ b/meta-oe/recipes-extended/libdivecomputer/libdivecomputer_git.bb
@@ -1,17 +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.6.0"
+PV = "0.8.0"
-SRCREV = "1195abc2f4acc7b10175d570ec73549d0938c83e"
-SRC_URI = "git://github.com/libdivecomputer/libdivecomputer.git;protocol=https \
+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 8a2886b8cd..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,12 +19,12 @@ 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 features_check autotools pkgconfig gettext
diff --git a/meta-oe/recipes-extended/libidn/libidn/0001-idn-format-security-warnings.patch b/meta-oe/recipes-extended/libidn/libidn/0001-idn-format-security-warnings.patch
deleted file mode 100644
index d5fb8e7c82..0000000000
--- a/meta-oe/recipes-extended/libidn/libidn/0001-idn-format-security-warnings.patch
+++ /dev/null
@@ -1,180 +0,0 @@
-Subject: [PATCH] idn: fix printf() format security warnings
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-| ../../libidn-1.32/src/idn.c: In function 'main':
-| ../../libidn-1.32/src/idn.c:172:7: error: format not a string literal and no format arguments [-Werror=format-security]
-| error (0, 0, _("only one of -s, -e, -d, -a, -u or -n can be specified"));
-| ^~~~~
-| ../../libidn-1.32/src/idn.c:187:5: error: format not a string literal and no format arguments [-Werror=format-security]
-| fprintf (stderr, _("Type each input string on a line by itself, "
-| ^~~~~~~
-| ../../libidn-1.32/src/idn.c:202:4: error: format not a string literal and no format arguments [-Werror=format-security]
-| error (EXIT_FAILURE, errno, _("input error"));
-| ^~~~~
-| ../../libidn-1.32/src/idn.c:220:8: error: format not a string literal and no format arguments [-Werror=format-security]
-| _("could not convert from UTF-8 to UCS-4"));
-| ^
-| ../../libidn-1.32/src/idn.c:245:8: error: format not a string literal and no format arguments [-Werror=format-security]
-| _("could not convert from UTF-8 to UCS-4"));
-| ^
-| ../../libidn-1.32/src/idn.c:281:6: error: format not a string literal and no format arguments [-Werror=format-security]
-| _("could not convert from UTF-8 to UCS-4"));
-| ^
-| ../../libidn-1.32/src/idn.c:340:6: error: format not a string literal and no format arguments [-Werror=format-security]
-| _("could not convert from UCS-4 to UTF-8"));
-| ^
-| ../../libidn-1.32/src/idn.c:364:6: error: format not a string literal and no format arguments [-Werror=format-security]
-| _("could not convert from UCS-4 to UTF-8"));
-| ^
-| ../../libidn-1.32/src/idn.c:442:8: error: format not a string literal and no format arguments [-Werror=format-security]
-| _("could not convert from UCS-4 to UTF-8"));
-| ^
-| ../../libidn-1.32/src/idn.c:498:6: error: format not a string literal and no format arguments [-Werror=format-security]
-| _("could not convert from UTF-8 to UCS-4"));
-| ^
-| ../../libidn-1.32/src/idn.c:527:5: error: format not a string literal and no format arguments [-Werror=format-security]
-| _("could not convert from UTF-8 to UCS-4"));
-| ^
-| ../../libidn-1.32/src/idn.c:540:6: error: format not a string literal and no format arguments [-Werror=format-security]
-| error (EXIT_FAILURE, 0, _("could not do NFKC normalization"));
-| ^~~~~
-| ../../libidn-1.32/src/idn.c:551:5: error: format not a string literal and no format arguments [-Werror=format-security]
-| _("could not convert from UTF-8 to UCS-4"));
-| ^
-
-Signed-off-by: André Draszik <adraszik@tycoint.com>
-Signed-off-by: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
-
-Upstream-Status: Pending
-
----
- src/idn.c | 27 ++++++++++++++-------------
- 1 file changed, 14 insertions(+), 13 deletions(-)
-
-diff --git a/src/idn.c b/src/idn.c
-index f2fee11..c6e5caa 100644
---- a/src/idn.c
-+++ b/src/idn.c
-@@ -169,7 +169,7 @@ main (int argc, char *argv[])
- (args_info.idna_to_unicode_given ? 1 : 0) +
- (args_info.nfkc_given ? 1 : 0) != 1)
- {
-- error (0, 0,
-+ error (0, 0, "%s",
- _("only one of -s, -e, -d, -a, -u or -n can be specified"));
- usage (EXIT_FAILURE);
- }
-@@ -183,7 +183,7 @@ main (int argc, char *argv[])
-
- if (!args_info.quiet_given
- && args_info.inputs_num == 0 && isatty (fileno (stdin)))
-- fprintf (stderr, _("Type each input string on a line by itself, "
-+ fprintf (stderr, "%s", _("Type each input string on a line by itself, "
- "terminated by a newline character.\n"));
-
- do
-@@ -195,7 +195,7 @@ main (int argc, char *argv[])
- if (feof (stdin))
- break;
-
-- error (EXIT_FAILURE, errno, _("input error"));
-+ error (EXIT_FAILURE, errno, "%s", _("input error"));
- }
-
- if (strlen (line) > 0)
-@@ -213,7 +213,7 @@ main (int argc, char *argv[])
- if (!q)
- {
- free (p);
-- error (EXIT_FAILURE, 0,
-+ error (EXIT_FAILURE, 0, "%s",
- _("could not convert from UTF-8 to UCS-4"));
- }
-
-@@ -238,7 +238,7 @@ main (int argc, char *argv[])
- if (!q)
- {
- free (r);
-- error (EXIT_FAILURE, 0,
-+ error (EXIT_FAILURE, 0, "%s",
- _("could not convert from UTF-8 to UCS-4"));
- }
-
-@@ -275,7 +275,7 @@ main (int argc, char *argv[])
- q = stringprep_utf8_to_ucs4 (p, -1, &len);
- free (p);
- if (!q)
-- error (EXIT_FAILURE, 0,
-+ error (EXIT_FAILURE, 0, "%s",
- _("could not convert from UTF-8 to UCS-4"));
-
- if (args_info.debug_given)
-@@ -334,7 +334,7 @@ main (int argc, char *argv[])
- r = stringprep_ucs4_to_utf8 (q, -1, NULL, NULL);
- free (q);
- if (!r)
-- error (EXIT_FAILURE, 0,
-+ error (EXIT_FAILURE, 0, "%s",
- _("could not convert from UCS-4 to UTF-8"));
-
- p = stringprep_utf8_to_locale (r);
-@@ -358,7 +358,7 @@ main (int argc, char *argv[])
- q = stringprep_utf8_to_ucs4 (p, -1, NULL);
- free (p);
- if (!q)
-- error (EXIT_FAILURE, 0,
-+ error (EXIT_FAILURE, 0, "%s",
- _("could not convert from UCS-4 to UTF-8"));
-
- if (args_info.debug_given)
-@@ -436,7 +436,7 @@ main (int argc, char *argv[])
- if (!q)
- {
- free (p);
-- error (EXIT_FAILURE, 0,
-+ error (EXIT_FAILURE, 0, "%s",
- _("could not convert from UCS-4 to UTF-8"));
- }
-
-@@ -492,7 +492,7 @@ main (int argc, char *argv[])
- r = stringprep_ucs4_to_utf8 (q, -1, NULL, NULL);
- free (q);
- if (!r)
-- error (EXIT_FAILURE, 0,
-+ error (EXIT_FAILURE, 0, "%s",
- _("could not convert from UTF-8 to UCS-4"));
-
- p = stringprep_utf8_to_locale (r);
-@@ -521,7 +521,7 @@ main (int argc, char *argv[])
- if (!q)
- {
- free (p);
-- error (EXIT_FAILURE, 0,
-+ error (EXIT_FAILURE, 0, "%s",
- _("could not convert from UTF-8 to UCS-4"));
- }
-
-@@ -535,7 +535,8 @@ main (int argc, char *argv[])
- r = stringprep_utf8_nfkc_normalize (p, -1);
- free (p);
- if (!r)
-- error (EXIT_FAILURE, 0, _("could not do NFKC normalization"));
-+ error (EXIT_FAILURE, 0, "%s",
-+ _("could not do NFKC normalization"));
-
- if (args_info.debug_given)
- {
-@@ -545,7 +546,7 @@ main (int argc, char *argv[])
- if (!q)
- {
- free (r);
-- error (EXIT_FAILURE, 0,
-+ error (EXIT_FAILURE, 0, "%s",
- _("could not convert from UTF-8 to UCS-4"));
- }
-
---
-2.25.1
-
diff --git a/meta-oe/recipes-extended/libidn/libidn/0001-largefile.m4-Sync-with-latest-gnulib.patch b/meta-oe/recipes-extended/libidn/libidn/0001-largefile.m4-Sync-with-latest-gnulib.patch
new file mode 100644
index 0000000000..1dbf2955c9
--- /dev/null
+++ b/meta-oe/recipes-extended/libidn/libidn/0001-largefile.m4-Sync-with-latest-gnulib.patch
@@ -0,0 +1,390 @@
+From 66c1646a3f12836846a054ebd2c427e30c93d3a5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 2 Apr 2023 10:37:15 -0700
+Subject: [PATCH] largefile.m4: Sync with latest gnulib
+
+This ensures it can work with latest autoconf 2.72 release ( upcoming )
+
+Upstream-Status: Backport [it will be not needed with 1.42 release]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ gl/m4/largefile.m4 | 330 ++++++++++++++++++++++++++++++++++++---------
+ 1 file changed, 263 insertions(+), 67 deletions(-)
+
+diff --git a/gl/m4/largefile.m4 b/gl/m4/largefile.m4
+index 3e8b5e3..7fb81b8 100644
+--- a/gl/m4/largefile.m4
++++ b/gl/m4/largefile.m4
+@@ -1,7 +1,7 @@
+ # Enable large files on systems where this is not the default.
+ # Enable support for files on Linux file systems with 64-bit inode numbers.
+
+-# Copyright 1992-1996, 1998-2022 Free Software Foundation, Inc.
++# Copyright 1992-1996, 1998-2023 Free Software Foundation, Inc.
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+@@ -10,8 +10,9 @@
+ # It does not set _LARGEFILE_SOURCE=1 on HP-UX/ia64 32-bit, although this
+ # setting of _LARGEFILE_SOURCE is needed so that <stdio.h> declares fseeko
+ # and ftello in C++ mode as well.
++# Fixed in Autoconf 2.72, which has AC_SYS_YEAR2038.
+ AC_DEFUN([gl_SET_LARGEFILE_SOURCE],
+-[
++ m4_ifndef([AC_SYS_YEAR2038], [[
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_FUNC_FSEEKO
+ case "$host_os" in
+@@ -20,10 +21,10 @@ AC_DEFUN([gl_SET_LARGEFILE_SOURCE],
+ [Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2).])
+ ;;
+ esac
+-])
++ ]])
++)
+
+-# Work around a problem in Autoconf through at least 2.71 on glibc 2.34+
+-# with _TIME_BITS. Also, work around a problem in autoconf <= 2.69:
++# Work around a problem in autoconf <= 2.69:
+ # AC_SYS_LARGEFILE does not configure for large inodes on Mac OS X 10.5,
+ # or configures them incorrectly in some cases.
+ m4_version_prereq([2.70], [], [
+@@ -43,33 +44,258 @@ m4_define([_AC_SYS_LARGEFILE_TEST_INCLUDES],
+ ])
+ ])# m4_version_prereq 2.70
+
++# Support AC_SYS_YEAR2038, even if Autoconf 2.71 or earlier.
++# This code is taken from Autoconf master.
++m4_ifndef([AC_SYS_YEAR2038], [
++
++# _AC_SYS_YEAR2038_TEST_CODE
++# --------------------------
++# C code used to probe for time_t that can represent time points more
++# than 2**31 - 1 seconds after the epoch. With the usual Unix epoch,
++# these correspond to dates after 2038-01-18 22:14:07 +0000 (Gregorian),
++# hence the name.
++AC_DEFUN([_AC_SYS_YEAR2038_TEST_CODE],
++[[
++ #include <time.h>
++ /* Check that time_t can represent 2**32 - 1 correctly. */
++ #define LARGE_TIME_T \\
++ ((time_t) (((time_t) 1 << 30) - 1 + 3 * ((time_t) 1 << 30)))
++ int verify_time_t_range[(LARGE_TIME_T / 65537 == 65535
++ && LARGE_TIME_T % 65537 == 0)
++ ? 1 : -1];
++]])
++
++# _AC_SYS_YEAR2038_OPTIONS
++# ------------------------
++# List of known ways to enable support for large time_t. If you change
++# this list you probably also need to change the AS_CASE at the end of
++# _AC_SYS_YEAR2038_PROBE.
++m4_define([_AC_SYS_YEAR2038_OPTIONS], m4_normalize(
++ ["none needed"] dnl 64-bit and newer 32-bit Unix
++ ["-D_TIME_BITS=64"] dnl glibc 2.34 with some 32-bit ABIs
++ ["-D__MINGW_USE_VC2005_COMPAT"] dnl 32-bit MinGW
++ ["-U_USE_32_BIT_TIME_T -D__MINGW_USE_VC2005_COMPAT"]
++ dnl 32-bit MinGW (misconfiguration)
++))
++
++# _AC_SYS_YEAR2038_PROBE([IF-NOT-DETECTED])
++# -----------------------------------------
++# Subroutine of AC_SYS_YEAR2038. Probe for time_t that can represent
++# time points more than 2**31 - 1 seconds after the epoch (dates after
++# 2038-01-18, see above) and set the cache variable ac_cv_sys_year2038_opts
++# to one of the values in the _AC_SYS_YEAR2038_OPTIONS list, or to
++# "support not detected" if none of them worked. Then, set compilation
++# options and #defines as necessary to enable large time_t support.
++#
++# Note that we do not test whether mktime, localtime, etc. handle
++# large values of time_t correctly, as that would require use of
++# AC_TRY_RUN. Note also that some systems only support large time_t
++# together with large off_t.
++#
++# If support is not detected, the behavior depends on which of the
++# top-level AC_SYS_YEAR2038 macros was used (see below).
++#
++# If you change this macro you may also need to change
++# _AC_SYS_YEAR2038_OPTIONS.
++AC_DEFUN([_AC_SYS_YEAR2038_PROBE],
++[AC_CACHE_CHECK([for $CC option to enable timestamps after Jan 2038],
++ [ac_cv_sys_year2038_opts],
++ [ac_save_CPPFLAGS="$CPPFLAGS"
++ ac_opt_found=no
++ for ac_opt in _AC_SYS_YEAR2038_OPTIONS; do
++ AS_IF([test x"$ac_opt" != x"none needed"],
++ [CPPFLAGS="$ac_save_CPPFLAGS $ac_opt"])
++ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([_AC_SYS_YEAR2038_TEST_CODE])],
++ [ac_cv_sys_year2038_opts="$ac_opt"
++ ac_opt_found=yes])
++ test $ac_opt_found = no || break
++ done
++ CPPFLAGS="$ac_save_CPPFLAGS"
++ test $ac_opt_found = yes || ac_cv_sys_year2038_opts="support not detected"])
++
++ac_have_year2038=yes
++AS_CASE([$ac_cv_sys_year2038_opts],
++ ["none needed"], [],
++ ["support not detected"],
++ [ac_have_year2038=no
++ AS_CASE([$enable_year2038],
++ [yes],
++ [# If we're not cross compiling and 'touch' works with a large
++ # timestamp, then we can presume the system supports wider time_t
++ # *somehow* and we just weren't able to detect it. One common
++ # case that we deliberately *don't* probe for is a system that
++ # supports both 32- and 64-bit ABIs but only the 64-bit ABI offers
++ # wide time_t. (It would be inappropriate for us to override an
++ # intentional use of -m32.) Error out, demanding use of
++ # --disable-year2038 if this is intentional.
++ AS_IF([test $cross_compiling = no],
++ [AS_IF([TZ=UTC0 touch -t 210602070628.15 conftest.time 2>/dev/null],
++ [AS_CASE([`TZ=UTC0 LC_ALL=C ls -l conftest.time 2>/dev/null`],
++ [*'Feb 7 2106'* | *'Feb 7 17:10'*],
++ [AC_MSG_FAILURE(m4_text_wrap(
++ [this system appears to support timestamps after January 2038,
++ but no mechanism for enabling wide 'time_t' was detected.
++ Did you mean to build a 64-bit binary? (e.g. 'CC="${CC} -m64"'.)
++ To proceed with 32-bit time_t, configure with '--disable-year2038'.],
++ [], [], [55]))])])])])],
++
++ ["-D_TIME_BITS=64"],
++ [AC_DEFINE([_TIME_BITS], [64],
++ [Number of bits in time_t, on hosts where this is settable.])],
++
++ ["-D__MINGW_USE_VC2005_COMPAT=1"],
++ [AC_DEFINE([__MINGW_USE_VC2005_COMPAT], [1],
++ [Define to 1 on platforms where this makes time_t a 64-bit type.])],
+
+-# _AC_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, VALUE,
+-# CACHE-VAR,
+-# DESCRIPTION,
+-# PROLOGUE, [FUNCTION-BODY])
+-# --------------------------------------------------------
+-m4_define([_AC_SYS_LARGEFILE_MACRO_VALUE],
+-[AC_CACHE_CHECK([for $1 value needed for large files], [$3],
+-[while :; do
+- m4_ifval([$6], [AC_LINK_IFELSE], [AC_COMPILE_IFELSE])(
+- [AC_LANG_PROGRAM([$5], [$6])],
+- [$3=no; break])
+- m4_ifval([$6], [AC_LINK_IFELSE], [AC_COMPILE_IFELSE])(
+- [AC_LANG_PROGRAM([#undef $1
+-#define $1 $2
+-$5], [$6])],
+- [$3=$2; break])
+- $3=unknown
+- break
+-done])
+-case $$3 in #(
+- no | unknown) ;;
+- *) AC_DEFINE_UNQUOTED([$1], [$$3], [$4]);;
+-esac
+-rm -rf conftest*[]dnl
+-])# _AC_SYS_LARGEFILE_MACRO_VALUE
++ ["-U_USE_32_BIT_TIME_T"*],
++ [AC_MSG_FAILURE(m4_text_wrap(
++ [the 'time_t' type is currently forced to be 32-bit.
++ It will stop working after January 2038.
++ Remove _USE_32BIT_TIME_T from the compiler flags.],
++ [], [], [55]))],
++
++ [AC_MSG_ERROR(
++ [internal error: bad value for \$ac_cv_sys_year2038_opts])])
++])
++
++# _AC_SYS_YEAR2038_ENABLE
++# -----------------------
++# Subroutine of AC_SYS_YEAR2038 and _AC_SYS_YEAR2038_OPT_IN.
++# Depending on which of the YEAR2038 macros was used, add either an
++# --enable-year2038, or a --disable-year2038, or no option at all to
++# the configure script. Note that this is expanded very late and
++# therefore there cannot be any code in the AC_ARG_ENABLE. The
++# default value for enable_year2038 is emitted unconditionally
++# because the generated code always looks at this variable.
++m4_define([_AC_SYS_YEAR2038_ENABLE],
++[m4_divert_text([DEFAULTS],
++ m4_provide_if([AC_SYS_YEAR2038],
++ [enable_year2038=yes],
++ [enable_year2038=no]))]dnl
++[AC_ARG_ENABLE([year2038],
++ m4_provide_if([AC_SYS_YEAR2038],
++ [AS_HELP_STRING([--disable-year2038],
++ [do not support timestamps after 2038])],
++ [AS_HELP_STRING([--enable-year2038],
++ [support timestamps after 2038])]))])
++
++# _AC_SYS_YEAR2038_OPT_IN
++# -----------------------
++# If the --enable-year2038 option is given to configure, attempt to
++# detect and activate support for large time_t on 32-bit systems.
++# This macro is automatically invoked by AC_SYS_LARGEFILE when large
++# *file* support is detected. It does not AC_REQUIRE AC_SYS_LARGEFILE
++# to avoid a dependency loop, and is therefore unsafe to expose as a
++# documented macro.
++AC_DEFUN([_AC_SYS_YEAR2038_OPT_IN],
++[m4_provide_if([_AC_SYS_YEAR2038_PROBE], [], [dnl
++ AS_IF([test "$enable_year2038" != no], [_AC_SYS_YEAR2038_PROBE])
++ AC_CONFIG_COMMANDS_PRE([_AC_SYS_YEAR2038_ENABLE])
++])])
++
++# AC_SYS_YEAR2038
++# ---------------
++# Attempt to detect and activate support for large time_t.
++# On systems where time_t is not always 64 bits, this probe can be
++# skipped by passing the --disable-year2038 option to configure.
++AC_DEFUN([AC_SYS_YEAR2038],
++[AC_REQUIRE([AC_SYS_LARGEFILE])]dnl
++[m4_provide_if([_AC_SYS_YEAR2038_PROBE], [], [dnl
++ AS_IF([test "$enable_year2038" != no], [_AC_SYS_YEAR2038_PROBE])
++ AC_CONFIG_COMMANDS_PRE([_AC_SYS_YEAR2038_ENABLE])
++])])
++
++# _AC_SYS_LARGEFILE_TEST_CODE
++# ---------------------------
++# C code used to probe for large file support.
++m4_define([_AC_SYS_LARGEFILE_TEST_CODE],
++[@%:@include <sys/types.h>
++ /* Check that off_t can represent 2**63 - 1 correctly.
++ We can't simply define LARGE_OFF_T to be 9223372036854775807,
++ since some C++ compilers masquerading as C compilers
++ incorrectly reject 9223372036854775807. */
++@%:@define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
++ int off_t_is_large[[(LARGE_OFF_T % 2147483629 == 721
++ && LARGE_OFF_T % 2147483647 == 1)
++ ? 1 : -1]];[]dnl
++])
++
++# _AC_SYS_LARGEFILE_OPTIONS
++# -------------------------
++# List of known ways to enable support for large files. If you change
++# this list you probably also need to change the AS_CASE at the end of
++# _AC_SYS_LARGEFILE_PROBE.
++m4_define([_AC_SYS_LARGEFILE_OPTIONS], m4_normalize(
++ ["none needed"] dnl Most current systems
++ ["-D_FILE_OFFSET_BITS=64"] dnl X/Open LFS spec
++ ["-D_LARGE_FILES=1"] dnl AIX (which versions?)
++ ["-n32"] dnl Irix 6.2 w/ SGI compiler
++))
++
++# _AC_SYS_LARGEFILE_PROBE
++# -----------------------
++# Subroutine of AC_SYS_LARGEFILE. Probe for large file support and set
++# the cache variable ac_cv_sys_largefile_opts to one of the values in
++# the _AC_SYS_LARGEFILE_OPTIONS list, or to "support not detected" if
++# none of the options in that list worked. Then, set compilation
++# options and #defines as necessary to enable large file support.
++#
++# If large file support is not detected, the behavior depends on which of
++# the top-level AC_SYS_LARGEFILE macros was used (see below).
++#
++# If you change this macro you may also need to change
++# _AC_SYS_LARGEFILE_OPTIONS.
++AC_DEFUN([_AC_SYS_LARGEFILE_PROBE],
++[AC_CACHE_CHECK([for $CC option to enable large file support],
++ [ac_cv_sys_largefile_opts],
++ [ac_save_CC="$CC"
++ ac_opt_found=no
++ for ac_opt in _AC_SYS_LARGEFILE_OPTIONS; do
++ AS_IF([test x"$ac_opt" != x"none needed"],
++ [CC="$ac_save_CC $ac_opt"])
++ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([_AC_SYS_LARGEFILE_TEST_CODE])],
++ [ac_cv_sys_largefile_opts="$ac_opt"
++ ac_opt_found=yes])
++ test $ac_opt_found = no || break
++ done
++ CC="$ac_save_CC"
++ test $ac_opt_found = yes || ac_cv_sys_largefile_opts="support not detected"])
++
++ac_have_largefile=yes
++AS_CASE([$ac_cv_sys_largefile_opts],
++ ["none needed"], [],
++ ["support not detected"],
++ [ac_have_largefile=no],
++
++ ["-D_FILE_OFFSET_BITS=64"],
++ [AC_DEFINE([_FILE_OFFSET_BITS], [64],
++ [Number of bits in a file offset, on hosts where this is settable.])],
++
++ ["-D_LARGE_FILES=1"],
++ [AC_DEFINE([_LARGE_FILES], [1],
++ [Define to 1 on platforms where this makes off_t a 64-bit type.])],
++
++ ["-n32"],
++ [CC="$CC -n32"],
++
++ [AC_MSG_ERROR(
++ [internal error: bad value for \$ac_cv_sys_largefile_opts])])
++
++_AC_SYS_YEAR2038_OPT_IN
++])
+
++# _AC_SYS_LARGEFILE_ENABLE
++# ------------------------
++# Subroutine of AC_SYS_LARGEFILE. Note that this
++# is expanded very late and therefore there cannot be any code in the
++# AC_ARG_ENABLE. The default value for enable_largefile is emitted
++# unconditionally because the generated shell code always looks at
++# this variable.
++m4_define([_AC_SYS_LARGEFILE_ENABLE],
++[m4_divert_text([DEFAULTS],
++ enable_largefile=yes)]dnl
++[AC_ARG_ENABLE([largefile],
++ [AS_HELP_STRING([--disable-largefile], [omit support for large files])])])
+
+ # AC_SYS_LARGEFILE
+ # ----------------
+@@ -80,44 +306,14 @@ rm -rf conftest*[]dnl
+ # Additionally, on Linux file systems with 64-bit inodes a file that happens
+ # to have a 64-bit inode number cannot be accessed by 32-bit applications on
+ # Linux x86/x86_64. This can occur with file systems such as XFS and NFS.
++# This macro allows configuration to continue if the system doesn't support
++# large files.
+ AC_DEFUN([AC_SYS_LARGEFILE],
+-[AC_ARG_ENABLE(largefile,
+- [ --disable-largefile omit support for large files])
+-AS_IF([test "$enable_largefile" != no],
+- [AC_CACHE_CHECK([for special C compiler options needed for large files],
+- ac_cv_sys_largefile_CC,
+- [ac_cv_sys_largefile_CC=no
+- if test "$GCC" != yes; then
+- ac_save_CC=$CC
+- while :; do
+- # IRIX 6.2 and later do not support large files by default,
+- # so use the C compiler's -n32 option if that helps.
+- AC_LANG_CONFTEST([AC_LANG_PROGRAM([_AC_SYS_LARGEFILE_TEST_INCLUDES])])
+- AC_COMPILE_IFELSE([], [break])
+- CC="$CC -n32"
+- AC_COMPILE_IFELSE([], [ac_cv_sys_largefile_CC=' -n32'; break])
+- break
+- done
+- CC=$ac_save_CC
+- rm -f conftest.$ac_ext
+- fi])
+- if test "$ac_cv_sys_largefile_CC" != no; then
+- CC=$CC$ac_cv_sys_largefile_CC
+- fi
+-
+- _AC_SYS_LARGEFILE_MACRO_VALUE(_FILE_OFFSET_BITS, 64,
+- ac_cv_sys_file_offset_bits,
+- [Number of bits in a file offset, on hosts where this is settable.],
+- [_AC_SYS_LARGEFILE_TEST_INCLUDES])
+- AS_CASE([$ac_cv_sys_file_offset_bits],
+- [unknown],
+- [_AC_SYS_LARGEFILE_MACRO_VALUE([_LARGE_FILES], [1],
+- [ac_cv_sys_large_files],
+- [Define for large files, on AIX-style hosts.],
+- [_AC_SYS_LARGEFILE_TEST_INCLUDES])],
+- [64],
+- [gl_YEAR2038_BODY([])])])
+-])# AC_SYS_LARGEFILE
++[m4_provide_if([_AC_SYS_LARGEFILE_PROBE], [], [dnl
++ AS_IF([test "$enable_largefile" != no], [_AC_SYS_LARGEFILE_PROBE])
++ AC_CONFIG_COMMANDS_PRE([_AC_SYS_LARGEFILE_ENABLE])
++])])
++])# m4_ifndef AC_SYS_YEAR2038
+
+ # Enable large files on systems where this is implemented by Gnulib, not by the
+ # system headers.
+--
+2.40.0
+
diff --git a/meta-oe/recipes-extended/libidn/libidn/dont-depend-on-help2man.patch b/meta-oe/recipes-extended/libidn/libidn/dont-depend-on-help2man.patch
index 0863530f29..46938bccf6 100644
--- a/meta-oe/recipes-extended/libidn/libidn/dont-depend-on-help2man.patch
+++ b/meta-oe/recipes-extended/libidn/libidn/dont-depend-on-help2man.patch
@@ -1,23 +1,23 @@
Upstream-Status: Inappropriate [disable feature]
Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
-diff -Nurdd libidn-1.26/doc/Makefile.am libidn-1.26/doc/Makefile.am
---- libidn-1.26/doc/Makefile.am 2012-09-18 11:25:45.000000000 +0300
-+++ libidn-1.26/doc/Makefile.am 2013-02-08 07:41:24.591431462 +0200
-@@ -49,15 +49,9 @@
-
+--- libidn-1.41.orig/doc/Makefile.am
++++ libidn-1.41/doc/Makefile.am
+@@ -73,16 +73,9 @@ BUILT_SOURCES = example.txt example2.txt
+
# Man pages.
-
+
-dist_man_MANS = idn.1 $(gdoc_MANS)
+dist_man_MANS = $(gdoc_MANS)
MAINTAINERCLEANFILES = $(dist_man_MANS)
-
--idn.1: $(top_srcdir)/src/idn.c $(top_srcdir)/src/idn.ggo \
-- $(top_srcdir)/configure.ac
-- $(HELP2MAN) \
+
+-idn.1: $(top_srcdir)/src/idn.c $(top_srcdir)/src/idn.ggo $(top_srcdir)/.version
+- $(MAKE) -C ../lib
+- $(MAKE) -C ../src
+- $(AM_V_GEN)$(HELP2MAN) \
- --name="Internationalized Domain Names command line tool" \
- --output=$@ $(top_builddir)/src/idn$(EXEEXT)
-
# GDOC
-
- GDOC_BIN = $(srcdir)/gdoc
+
+ gdoc_TEXINFOS =
diff --git a/meta-oe/recipes-extended/libidn/libidn_1.36.bb b/meta-oe/recipes-extended/libidn/libidn_1.41.bb
index 4c6c8fde4a..17ffc6cdc5 100644
--- a/meta-oe/recipes-extended/libidn/libidn_1.36.bb
+++ b/meta-oe/recipes-extended/libidn/libidn_1.41.bb
@@ -2,37 +2,40 @@ 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 = "(LGPLv2.1+ | LGPLv3) & GPLv3+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=df4be47940a91ee69556f5f71eed4aec \
+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=d32239bcb673463ab874e80d47fae504 \
- file://lib/idna.h;endline=21;md5=c381d797e2d7fbdace7c147b1285d076 \
- file://src/idn.c;endline=20;md5=7d88aa87b0494d690bdf7748fe08d536"
+ 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-idn-format-security-warnings.patch \
+ file://0001-largefile.m4-Sync-with-latest-gnulib.patch \
"
-SRC_URI[md5sum] = "813c7b268d1051ca02c3610986126f38"
-SRC_URI[sha256sum] = "14b67108344d81ba844631640df77c9071d9fb0659b080326ff5424e86b14038"
+#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}/*"
+FILES:idn = "${bindir}/*"
-LICENSE_${PN} = "LGPLv2.1+ | LGPLv3"
-LICENSE_idn = "GPLv3+"
+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() {
+do_install:append() {
rm -rf ${D}${datadir}/emacs
}
diff --git a/meta-oe/recipes-extended/libimobiledevice/libplist_2.2.0.bb b/meta-oe/recipes-extended/libimobiledevice/libplist_2.3.0.bb
index 6ef5b4f432..f636990f89 100644
--- a/meta-oe/recipes-extended/libimobiledevice/libplist_2.2.0.bb
+++ b/meta-oe/recipes-extended/libimobiledevice/libplist_2.3.0.bb
@@ -1,6 +1,6 @@
SUMMARY = "A library to handle Apple Property List format whereas it's binary or XML"
HOMEPAGE = "https://github.com/libimobiledevice/libplist"
-LICENSE = "GPLv2 & LGPLv2.1"
+LICENSE = "GPL-2.0-only & LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=ebb5c50ab7cab4baeffba14977030c07 \
file://COPYING.LESSER;md5=6ab17b41640564434dda85c06b7124f7"
@@ -8,12 +8,21 @@ DEPENDS = "libxml2 glib-2.0 swig python3"
inherit autotools pkgconfig python3native python3targetconfig
-SRCREV = "c5a30e9267068436a75b5d00fcbf95cb9c1f4dcd"
-SRC_URI = "git://github.com/libimobiledevice/libplist;protocol=https"
+SRCREV = "b8fcc89b74c9128a13b07cc15a0ce25dca0cd97e"
+SRC_URI = "git://github.com/libimobiledevice/libplist;protocol=https;branch=master"
S = "${WORKDIR}/git"
+PR = "r1"
-do_install_append () {
+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
@@ -23,7 +32,7 @@ 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/*"
+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
index 343d0bc63f..a586f49f96 100644
--- a/meta-oe/recipes-extended/libimobiledevice/libusbmuxd_2.0.2.bb
+++ b/meta-oe/recipes-extended/libimobiledevice/libusbmuxd_2.0.2.bb
@@ -1,5 +1,5 @@
DESCRIPTION = "This daemon is in charge of multiplexing connections over USB to an iPhone or iPod touch."
-LICENSE = "LGPL-2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=6ab17b41640564434dda85c06b7124f7"
DEPENDS = "udev libusb1 libplist"
@@ -9,8 +9,8 @@ inherit autotools pkgconfig gitpkgv
PKGV = "${GITPKGVTAG}"
SRCREV = "ce98c346b7c1dc2a21faea4fd3f32c88e27ca2af"
-SRC_URI = "git://github.com/libimobiledevice/libusbmuxd;protocol=https"
+SRC_URI = "git://github.com/libimobiledevice/libusbmuxd;protocol=https;branch=master"
S = "${WORKDIR}/git"
-FILES_${PN} += "${base_libdir}/udev/rules.d/"
+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_2.0.2.bb b/meta-oe/recipes-extended/liblightmodbus/liblightmodbus_2.0.2.bb
index 7fc5997983..1d650ac63b 100644
--- a/meta-oe/recipes-extended/liblightmodbus/liblightmodbus_2.0.2.bb
+++ b/meta-oe/recipes-extended/liblightmodbus/liblightmodbus_2.0.2.bb
@@ -2,12 +2,12 @@ SUMMARY = "A cross-platform, lightweight Modbus RTU library"
DESCRIPTION = "liblightmodbus is a very lightweight, highly configurable, \
platform-independent Modbus RTU library."
-LICENSE = "GPLv3"
+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 \
+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"
diff --git a/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-add-DESTDIR.patch b/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-add-DESTDIR.patch
index ea415dd8ba..2533b3a008 100644
--- a/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-add-DESTDIR.patch
+++ b/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-add-DESTDIR.patch
@@ -1,4 +1,4 @@
-From 67843dabe1177840697839b916fd899218893ec7 Mon Sep 17 00:00:00 2001
+From 8e370a2f35d0c3472ddc9068fab19d0077434c61 Mon Sep 17 00:00:00 2001
From: Mingli Yu <mingli.yu@windriver.com>
Date: Thu, 19 Jul 2018 00:25:23 -0700
Subject: [PATCH] Makefile.in: add DESTDIR
@@ -29,7 +29,7 @@ Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/Makefile.in b/Makefile.in
-index 36a6d23..1e4130e 100644
+index 9c74b35..8cbda1d 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -12,11 +12,11 @@ CC = @CC@
@@ -50,5 +50,5 @@ index 36a6d23..1e4130e 100644
MAILGROUP = @MAILGROUP@
--
-2.17.1
+2.25.1
diff --git a/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-fix-install-failure-on-host-without-ldco.patch b/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-fix-install-failure-on-host-without-ldco.patch
new file mode 100644
index 0000000000..1fd5c827ba
--- /dev/null
+++ b/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-fix-install-failure-on-host-without-ldco.patch
@@ -0,0 +1,63 @@
+From 8b3a5916fff4004b5b2f1e8a1d3a051346ba3901 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Fri, 10 Mar 2023 08:59:39 +0800
+Subject: [PATCH] Makefile.in: fix install failure on host without ldconfig
+
+fix syntax error when ldconfig is not installed on host
+
+when ldconfig is not installed on the build host, install will failed with
+error:
+ln -sf nfslock.so.0.1 /mnt/tmp-glibc/work/core2-64-wrs-linux/liblockfile/1.14-r0/image/usr/lib64/nfslock.so.0
+install -m 644 lockfile.h maillock.h /mnt/tmp-glibc/work/core2-64-wrs-linux/liblockfile/1.14-r0/image/usr/include
+if test "/mnt/tmp-glibc/work/core2-64-wrs-linux/liblockfile/1.14-r0/image" = ""; then ; fi
+if [ "mail" != "" ]; then\
+ install -g mail -m 2755 dotlockfile /mnt/tmp-glibc/work/core2-64-wrs-linux/liblockfile/1.14-r0/image/usr/bin;\
+ else \
+ install -g root -m 755 dotlockfile /mnt/tmp-glibc/work/core2-64-wrs-linux/liblockfile/1.14-r0/image/usr/bin; \
+ fi
+/bin/sh: -c: line 1: syntax error near unexpected token `;'
+/bin/sh: -c: line 1: `if test "/mnt/tmp-glibc/work/core2-64-wrs-linux/liblockfile/1.14-r0/image" = ""; then ; fi'
+
+Upstream-Status: Submitted [https://github.com/miquels/liblockfile/pull/20]
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ Makefile.in | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index e02d75e..5fc5b5a 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -9,6 +9,10 @@ NFSVER = 0.1
+ CFLAGS = @CFLAGS@ -I.
+ LDFLAGS = @LDFLAGS@
+ CC = @CC@
++LDCONFIG = @LDCONFIG@
++ifeq ($(LDCONFIG),)
++ LDCONFIG = ":"
++endif
+
+ prefix = $(DESTDIR)@prefix@
+ exec_prefix = @exec_prefix@
+@@ -69,7 +73,7 @@ install_shared: shared install_static install_common
+ $(libdir)/liblockfile.so.$(SOVER)
+ ln -s liblockfile.so.$(SOVER) $(libdir)/liblockfile.so.$(MAJOR)
+ ln -s liblockfile.so.$(SOVER) $(libdir)/liblockfile.so
+- if test "$(DESTDIR)" = ""; then @LDCONFIG@; fi
++ if test "$(DESTDIR)" = ""; then $(LDCONFIG); fi
+
+ install_common:
+ install -d -m 755 -g root -p $(includedir)
+@@ -90,7 +94,7 @@ install_nfslib: nfslib
+ install -m 755 nfslock.so.$(NFSVER) $(nfslockdir)
+ ln -sf nfslock.so.$(NFSVER) $(libdir)/nfslock.so
+ ln -sf nfslock.so.$(NFSVER) $(libdir)/nfslock.so.0
+- if test "$(DESTDIR)" = ""; then @LDCONFIG@; fi
++ if test "$(DESTDIR)" = ""; then $(LDCONFIG); fi
+
+ test: test-stamp
+ @:
+--
+2.25.1
+
diff --git a/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-install-nfslock-libs.patch b/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-install-nfslock-libs.patch
index a6b297b592..f99ac2bf7a 100644
--- a/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-install-nfslock-libs.patch
+++ b/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-install-nfslock-libs.patch
@@ -1,4 +1,4 @@
-From 631d46efff2a6d8970e202ba5422ebedd17a8d2f Mon Sep 17 00:00:00 2001
+From 0f34d1d91d641c3d5c5bb2eb11bd6eec7cfaf738 Mon Sep 17 00:00:00 2001
From: Mingli Yu <mingli.yu@windriver.com>
Date: Thu, 19 Jul 2018 01:00:10 -0700
Subject: [PATCH] Makefile.in: install nfslock.so and nfslock.so.0
@@ -14,10 +14,10 @@ Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
1 file changed, 2 insertions(+)
diff --git a/Makefile.in b/Makefile.in
-index 1e4130e..0f1b506 100644
+index 8cbda1d..3a74811 100644
--- a/Makefile.in
+++ b/Makefile.in
-@@ -77,6 +77,8 @@ install_common:
+@@ -88,6 +88,8 @@ install_common:
install_nfslib: nfslib
install -d -m 755 -g root -p $(nfslockdir)
install -m 755 nfslock.so.$(NFSVER) $(nfslockdir)
@@ -25,7 +25,7 @@ index 1e4130e..0f1b506 100644
+ ln -sf nfslock.so.$(NFSVER) $(libdir)/nfslock.so.0
if test "$(DESTDIR)" = ""; then @LDCONFIG@; fi
- clean:
+ test: test-stamp
--
-2.17.1
+2.25.1
diff --git a/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-redefine-LOCKPROG.patch b/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-redefine-LOCKPROG.patch
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
index ea13e11d25..2bdf96e639 100644
--- a/meta-oe/recipes-extended/liblockfile/liblockfile/configure.patch
+++ b/meta-oe/recipes-extended/liblockfile/liblockfile/configure.patch
@@ -1,10 +1,19 @@
+From fd3fce8c1a3d0c70a0ffd461fbbe7e2ef71dd3a7 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Tue, 7 Mar 2023 11:05:45 +0800
+Subject: [PATCH] Update patch for 1.17
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+Upstream-Status: Pending
---- liblockfile-1.05/./configure.in~configure
-+++ liblockfile-1.05/./configure.in
+ configure.ac | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index df26cee..76e9165 100644
+--- a/configure.ac
++++ b/configure.ac
@@ -1,4 +1,5 @@
-AC_INIT(lockfile.c)
+AC_INIT
@@ -12,7 +21,7 @@
AC_CONFIG_HEADER(autoconf.h)
AC_REVISION($Revision: 1.0 $)dnl
-@@ -111,7 +112,8 @@
+@@ -111,7 +112,8 @@ AC_SUBST(TARGETS)
AC_SUBST(INSTALL_TARGETS)
AC_SUBST(nfslockdir)
@@ -23,3 +32,6 @@
-)
+])
+AC_OUTPUT
+--
+2.25.1
+
diff --git a/meta-oe/recipes-extended/liblockfile/liblockfile/liblockfile-fix-install-so-to-man-dir.patch b/meta-oe/recipes-extended/liblockfile/liblockfile/liblockfile-fix-install-so-to-man-dir.patch
index da25033393..046cd8e693 100644
--- a/meta-oe/recipes-extended/liblockfile/liblockfile/liblockfile-fix-install-so-to-man-dir.patch
+++ b/meta-oe/recipes-extended/liblockfile/liblockfile/liblockfile-fix-install-so-to-man-dir.patch
@@ -1,4 +1,4 @@
-From 363eb1aaeca914c7d36a2cdaf1417e4f87af4c22 Mon Sep 17 00:00:00 2001
+From 079d04c187800e22f18723c74e41c4e46eef67f8 Mon Sep 17 00:00:00 2001
From: Mingli Yu <mingli.yu@windriver.com>
Date: Thu, 19 Jul 2018 01:12:47 -0700
Subject: [PATCH] Makefile.in: define dotlockfile.1 installed to man
@@ -16,10 +16,10 @@ Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile.in b/Makefile.in
-index 0f1b506..6e53179 100644
+index 3a74811..e447cb2 100644
--- a/Makefile.in
+++ b/Makefile.in
-@@ -71,7 +71,7 @@ install_common:
+@@ -82,7 +82,7 @@ install_common:
else \
install -g root -m 755 dotlockfile $(bindir); \
fi
@@ -29,5 +29,5 @@ index 0f1b506..6e53179 100644
install_nfslib: nfslib
--
-2.17.1
+2.25.1
diff --git a/meta-oe/recipes-extended/liblockfile/liblockfile_1.14.bb b/meta-oe/recipes-extended/liblockfile/liblockfile_1.17.bb
index 10d88a3b5a..b094337e90 100644
--- a/meta-oe/recipes-extended/liblockfile/liblockfile_1.14.bb
+++ b/meta-oe/recipes-extended/liblockfile/liblockfile_1.17.bb
@@ -1,24 +1,23 @@
SUMMARY = "File locking library"
HOMEPAGE = "http://packages.qa.debian.org/libl/liblockfile.html"
SECTION = "libs"
-LICENSE = "LGPLv2+ & GPLv2+"
+LICENSE = "LGPL-2.0-or-later & GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=f4ba6ad04fcb05cc30a4cfa5062c55a3"
-SRC_URI = "${DEBIAN_MIRROR}/main/libl/liblockfile/liblockfile_1.14.orig.tar.gz \
- ${DEBIAN_MIRROR}/main/libl/liblockfile/liblockfile_1.14-1.debian.tar.bz2;name=1.14-1 \
+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[md5sum] = "420c056ba0cc4d1477e402f70ba2f5eb"
-SRC_URI[sha256sum] = "ab40d4a3e8cbc204f7e87fea637a4e4ddf9a1149aaa0a723a4267febd0b1d060"
+SRC_URI[sha256sum] = "6e937f3650afab4aac198f348b89b1ca42edceb17fb6bb0918f642143ccfd15e"
+SRC_URI[1.17-1.sha256sum] = "e3657c0e3facfeccb58900c0b48d56cd68ad5f9f24d1b4c6eaa69c26490fb673"
-SRC_URI[1.14-1.md5sum] = "f9a44928c3477d218c56252712ebc479"
-SRC_URI[1.14-1.sha256sum] = "73f9be769e602149391588c28f0f4f5cda131e30fb94c0777dbb23d811ac21ff"
-
-S = "${WORKDIR}/${BPN}"
+S = "${WORKDIR}/${BP}"
inherit autotools-brokensep
@@ -33,5 +32,5 @@ EXTRA_OECONF = "--enable-shared \
# at https://github.com/miquels/liblockfile.git
EXTRA_OEMAKE += "DESTDIR=${D}"
-FILES_${PN} += "${libdir}/nfslock.so.*"
-FILES_${PN}-dev += "${libdir}/nfslock.so"
+FILES:${PN} += "${libdir}/nfslock.so.*"
+FILES:${PN}-dev += "${libdir}/nfslock.so"
diff --git a/meta-oe/recipes-extended/liblognorm/liblognorm.inc b/meta-oe/recipes-extended/liblognorm/liblognorm.inc
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 b502177aa4..0857cc455b 100644
--- a/meta-oe/recipes-extended/libmodbus/libmodbus.inc
+++ b/meta-oe/recipes-extended/libmodbus/libmodbus.inc
@@ -5,7 +5,7 @@ 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"
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
index 5372a23b6a..e7fbb0389f 100644
--- 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
@@ -9,6 +9,8 @@ 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 ++++++++++++++++--
diff --git a/meta-oe/recipes-extended/libmodbus/libmodbus/Fix-typo.patch b/meta-oe/recipes-extended/libmodbus/libmodbus/Fix-typo.patch
deleted file mode 100644
index 384a4a40bd..0000000000
--- a/meta-oe/recipes-extended/libmodbus/libmodbus/Fix-typo.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From: =?utf-8?b?IlNaIExpbiAo5p6X5LiK5pm6KSI=?= <szlin@debian.org>
-Date: Thu, 27 Sep 2018 14:51:32 +0800
-Subject: Fix typo
-
----
- doc/modbus_mapping_new_start_address.txt | 4 ++--
- doc/modbus_reply.txt | 2 +-
- doc/modbus_reply_exception.txt | 2 +-
- 3 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/doc/modbus_mapping_new_start_address.txt b/doc/modbus_mapping_new_start_address.txt
-index 4fa196a..94a81fb 100644
---- a/doc/modbus_mapping_new_start_address.txt
-+++ b/doc/modbus_mapping_new_start_address.txt
-@@ -21,9 +21,9 @@ The _modbus_mapping_new_start_address()_ function shall allocate four arrays to
- store bits, input bits, registers and inputs registers. The pointers are stored
- in modbus_mapping_t structure. All values of the arrays are initialized to zero.
-
--The different starting adresses make it possible to place the mapping at any
-+The different starting addresses make it possible to place the mapping at any
- address in each address space. This way, you can give access to values stored
--at high adresses without allocating memory from the address zero, for eg. to
-+at high addresses without allocating memory from the address zero, for eg. to
- make available registers from 10000 to 10009, you can use:
-
- [source,c]
-diff --git a/doc/modbus_reply.txt b/doc/modbus_reply.txt
-index 0b29d6f..6b71d11 100644
---- a/doc/modbus_reply.txt
-+++ b/doc/modbus_reply.txt
-@@ -3,7 +3,7 @@ modbus_reply(3)
-
- NAME
- ----
--modbus_reply - send a reponse to the received request
-+modbus_reply - send a response to the received request
-
-
- SYNOPSIS
-diff --git a/doc/modbus_reply_exception.txt b/doc/modbus_reply_exception.txt
-index 7e6324f..b2170be 100644
---- a/doc/modbus_reply_exception.txt
-+++ b/doc/modbus_reply_exception.txt
-@@ -3,7 +3,7 @@ modbus_reply_exception(3)
-
- NAME
- ----
--modbus_reply_exception - send an exception reponse
-+modbus_reply_exception - send an exception response
-
-
- SYNOPSIS
diff --git a/meta-oe/recipes-extended/libmodbus/libmodbus/f1eb4bc7ccb09cd8d19ab641ee37637f8c34d16d.patch b/meta-oe/recipes-extended/libmodbus/libmodbus/f1eb4bc7ccb09cd8d19ab641ee37637f8c34d16d.patch
deleted file mode 100644
index 7fae34e7d3..0000000000
--- a/meta-oe/recipes-extended/libmodbus/libmodbus/f1eb4bc7ccb09cd8d19ab641ee37637f8c34d16d.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From f1eb4bc7ccb09cd8d19ab641ee37637f8c34d16d Mon Sep 17 00:00:00 2001
-From: i-ky <gl.ivanovsky@gmail.com>
-Date: Tue, 10 Jul 2018 15:58:45 +0300
-Subject: [PATCH] Fixed MODBUS_GET_* macros in case of negative values
-
-In case resulting value should be negative it is incorrect to use '+' operator to construct it from pieces, because highest bytes will result in negative number after bitwise shift while others will stay positive. Replacing addition with '|' should solve the issue.
----
- src/modbus.h | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/src/modbus.h b/src/modbus.h
-index f6e9a5f5..c63f5ceb 100644
---- a/src/modbus.h
-+++ b/src/modbus.h
-@@ -245,12 +245,12 @@ MODBUS_API int modbus_reply_exception(modbus_t *ctx, const uint8_t *req,
- #define MODBUS_GET_HIGH_BYTE(data) (((data) >> 8) & 0xFF)
- #define MODBUS_GET_LOW_BYTE(data) ((data) & 0xFF)
- #define MODBUS_GET_INT64_FROM_INT16(tab_int16, index) \
-- (((int64_t)tab_int16[(index) ] << 48) + \
-- ((int64_t)tab_int16[(index) + 1] << 32) + \
-- ((int64_t)tab_int16[(index) + 2] << 16) + \
-+ (((int64_t)tab_int16[(index) ] << 48) | \
-+ ((int64_t)tab_int16[(index) + 1] << 32) | \
-+ ((int64_t)tab_int16[(index) + 2] << 16) | \
- (int64_t)tab_int16[(index) + 3])
--#define MODBUS_GET_INT32_FROM_INT16(tab_int16, index) ((tab_int16[(index)] << 16) + tab_int16[(index) + 1])
--#define MODBUS_GET_INT16_FROM_INT8(tab_int8, index) ((tab_int8[(index)] << 8) + tab_int8[(index) + 1])
-+#define MODBUS_GET_INT32_FROM_INT16(tab_int16, index) ((tab_int16[(index)] << 16) | tab_int16[(index) + 1])
-+#define MODBUS_GET_INT16_FROM_INT8(tab_int8, index) ((tab_int8[(index)] << 8) | tab_int8[(index) + 1])
- #define MODBUS_SET_INT16_TO_INT8(tab_int8, index, value) \
- do { \
- tab_int8[(index)] = (value) >> 8; \
diff --git a/meta-oe/recipes-extended/libmodbus/libmodbus_3.1.6.bb b/meta-oe/recipes-extended/libmodbus/libmodbus_3.1.6.bb
deleted file mode 100644
index 075487ae90..0000000000
--- a/meta-oe/recipes-extended/libmodbus/libmodbus_3.1.6.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-require libmodbus.inc
-
-SRC_URI += "file://f1eb4bc7ccb09cd8d19ab641ee37637f8c34d16d.patch \
- file://Fix-float-endianness-issue-on-big-endian-arch.patch \
- file://Fix-typo.patch"
-SRC_URI[md5sum] = "15c84c1f7fb49502b3efaaa668cfd25e"
-SRC_URI[sha256sum] = "d7d9fa94a16edb094e5fdf5d87ae17a0dc3f3e3d687fead81835d9572cf87c16"
-
-# 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/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/libnss-nisplus/libnss-nisplus.bb b/meta-oe/recipes-extended/libnss-nisplus/libnss-nisplus.bb
deleted file mode 100644
index c9d259b1a0..0000000000
--- a/meta-oe/recipes-extended/libnss-nisplus/libnss-nisplus.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright (C) 2019 Ruslan Bilovol <rbilovol@cisco.com>
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-SUMMARY = "NSS module for glibc, to provide NIS+ support for glibc"
-
-DESCRIPTION = "This package contains the NSS NIS+ plugin for glibc.\
-This code was formerly part of glibc, but is now standalone to\
-be able to link against TI-RPC for IPv6 support."
-
-HOMEPAGE = "https://github.com/thkukuk/libnss_nisplus"
-LICENSE = "LGPL-2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-SECTION = "libs"
-DEPENDS += "libtirpc libnsl2"
-
-PV = "1.3+git${SRCPV}"
-
-SRCREV = "116219e215858f4af9370171d3ead63baca8fdb4"
-
-SRC_URI = "git://github.com/thkukuk/libnss_nisplus \
- "
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
-
-BBCLASSEXTEND += "native nativesdk"
-#
-# We will skip parsing this packagegeoup for non-glibc systems
-#
-COMPATIBLE_HOST_libc-musl = 'null'
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 ec8672107f..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>
---
diff --git a/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.4.bb b/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.4.bb
index ee75a9847c..b50c0f7de7 100644
--- a/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.4.bb
+++ b/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.4.bb
@@ -1,13 +1,14 @@
DESCRIPTION = "Library for password quality checking and generating random passwords"
HOMEPAGE = "https://github.com/libpwquality/libpwquality"
SECTION = "devel/lib"
-LICENSE = "GPLv2"
+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"
@@ -18,7 +19,7 @@ S = "${WORKDIR}/${SRCNAME}-${PV}"
DEPENDS = "cracklib virtual/gettext"
-inherit autotools distutils3-base gettext
+inherit autotools setuptools3-base gettext
B = "${S}"
@@ -30,12 +31,13 @@ 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} += "${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:${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.5.bb b/meta-oe/recipes-extended/libqb/libqb_1.0.5.bb
deleted file mode 100644
index cd4019666d..0000000000
--- a/meta-oe/recipes-extended/libqb/libqb_1.0.5.bb
+++ /dev/null
@@ -1,37 +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
-
-# v1.0.5
-SRCREV = "d08dbcf08b0da418bce9b5427dfd89522916322a"
-SRC_URI = "git://github.com/ClusterLabs/${BPN}.git;branch=version_1 \
- 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
-NOSECTION_FALLBACK = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', '--enable-nosection-fallback', '', d)}"
-NOSECTION_FALLBACK_toolchain-clang_mips64 = "--enable-nosection-fallback"
-
-EXTRA_OECONF += "${NOSECTION_FALLBACK}"
-
-CFLAGS += "-pthread -D_REENTRANT"
-
-do_configure_prepend() {
- ( cd ${S}
- ${S}/autogen.sh )
-}
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-extended/libqb/libqb_2.0.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 97fb097fef..934dd1778a 100644
--- a/meta-oe/recipes-extended/libreport/files/0001-Makefile.am-remove-doc-and-apidoc.patch
+++ b/meta-oe/recipes-extended/libreport/files/0001-Makefile.am-remove-doc-and-apidoc.patch
@@ -1,28 +1,32 @@
-From 1f7d106c7d982fe055addc8d883b161202233175 Mon Sep 17 00:00:00 2001
+From 73dc0c2cd942e30f5f7cb40cb5828895b96f0fb1 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Wed, 26 Apr 2017 03:47:58 -0400
-Subject: [PATCH 1/4] Makefile.am: remove doc and apidoc
+Subject: [PATCH] Makefile.am: remove doc and apidoc
There was a failure at do_install time, so remove doc to workaround.
-Upstream-Status: Inappropriate workaround
+Upstream-Status: Inappropriate [workaround]
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
+Context modified to apply to v2.17.8.
+
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
---
Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile.am b/Makefile.am
-index 9ad827c..34364a8 100644
+index 4ff2f5c5..d4e30bc2 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,5 +1,5 @@
ACLOCAL_AMFLAGS = -I m4
--SUBDIRS = po src tests doc apidoc
-+SUBDIRS = po src tests
+-SUBDIRS = data po src tests doc apidoc
++SUBDIRS = data po src tests
EXTRA_DIST = \
libreport.pc.in \
--
-2.7.4
+2.25.1
diff --git a/meta-oe/recipes-extended/libreport/files/0002-configure.ac-remove-prog-test-of-xmlto-and-asciidoc.patch b/meta-oe/recipes-extended/libreport/files/0002-configure.ac-remove-prog-test-of-xmlto-and-asciidoc.patch
index 7f5895ea12..4fdf69c73a 100644
--- a/meta-oe/recipes-extended/libreport/files/0002-configure.ac-remove-prog-test-of-xmlto-and-asciidoc.patch
+++ b/meta-oe/recipes-extended/libreport/files/0002-configure.ac-remove-prog-test-of-xmlto-and-asciidoc.patch
@@ -1,24 +1,28 @@
-From 9beadcdfca9198548f06bf18f3f26e1d11542e53 Mon Sep 17 00:00:00 2001
+From 276c45d0663124c9ccab0ddc8b97fb5cdc8b3867 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Tue, 31 Jul 2018 16:53:04 +0800
-Subject: [PATCH 2/4] configure.ac: remove prog test of xmlto and asciidoc
+Subject: [PATCH] configure.ac: remove prog test of xmlto and asciidoc
The prog of xmlto and asciidoc were used to generate documents,
and since the doc module has already been disabled, so we should
remove the prog test.
-Upstream-Status: Inappropriate workaround
+Upstream-Status: Inappropriate [workaround]
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
+Modify to apply to v 2.17.8.
+
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
---
configure.ac | 18 ------------------
1 file changed, 18 deletions(-)
diff --git a/configure.ac b/configure.ac
-index feafc28..aceccf4 100644
+index da8cf898..17ece200 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -56,24 +56,6 @@ IT_PROG_INTLTOOL([0.35.0])
+@@ -57,24 +57,6 @@ IT_PROG_INTLTOOL([0.35.0])
dnl ****** END ****************************************
@@ -42,7 +46,7 @@ index feafc28..aceccf4 100644
-
AC_ARG_WITH(bugzilla,
AS_HELP_STRING([--with-bugzilla],[use Bugzilla plugin (default is YES)]),
- LIBREPORT_PARSE_WITH([bugzilla]))
+ LIBREPORT_PARSE_WITH([bugzilla]),
--
-2.7.4
+2.25.1
diff --git a/meta-oe/recipes-extended/libreport/files/0003-without-build-plugins.patch b/meta-oe/recipes-extended/libreport/files/0003-without-build-plugins.patch
index 2ff1731be6..f6ff860408 100644
--- a/meta-oe/recipes-extended/libreport/files/0003-without-build-plugins.patch
+++ b/meta-oe/recipes-extended/libreport/files/0003-without-build-plugins.patch
@@ -1,26 +1,30 @@
-From 41bce1de2fd2a0f79c266f245ae3e3720ccaf46a Mon Sep 17 00:00:00 2001
+From f46610901dbac56d9631df012374c600db08453e Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Wed, 26 Apr 2017 03:51:03 -0400
-Subject: [PATCH 3/4] without build plugins
+Subject: [PATCH] without build plugins
-Upstream-Status: Inappropriate workaround
+Upstream-Status: Inappropriate [workaround]
Rebase to 2.9.1
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
+Modify to apply to v2.17.8.
+
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
---
src/Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Makefile.am b/src/Makefile.am
-index c15928c..bac02b1 100644
+index 410bfcb0..bac02b16 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -8,4 +8,4 @@ if BUILD_NEWT
sub_dirs += report-newt
endif
--SUBDIRS = include lib plugins report-python cli client-python workflows $(sub_dirs)
+-SUBDIRS = include lib report-python cli client-python plugins workflows $(sub_dirs)
+SUBDIRS = include lib report-python cli client-python workflows $(sub_dirs)
--
-2.7.4
+2.25.1
diff --git a/meta-oe/recipes-extended/libreport/files/0004-configure.ac-remove-prog-test-of-augparse.patch b/meta-oe/recipes-extended/libreport/files/0004-configure.ac-remove-prog-test-of-augparse.patch
index 4ba69c793d..998ae6b50e 100644
--- a/meta-oe/recipes-extended/libreport/files/0004-configure.ac-remove-prog-test-of-augparse.patch
+++ b/meta-oe/recipes-extended/libreport/files/0004-configure.ac-remove-prog-test-of-augparse.patch
@@ -1,25 +1,29 @@
-From c1c301502a8f69b9889197744b301a136082f09d Mon Sep 17 00:00:00 2001
+From 62c922f43b54585d25ba89be36c10612b479270b Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Thu, 27 Apr 2017 02:15:02 -0400
-Subject: [PATCH 4/4] configure.ac: remove prog test of augparse
+Subject: [PATCH] configure.ac: remove prog test of augparse
The build time does not require it.
-Upstream-Status: Inappropriate workaround
+Upstream-Status: Inappropriate [workaround]
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
+Modify to apply to v2.17.8.
+
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
---
- configure.ac | 8 --------
- 1 file changed, 8 deletions(-)
+ configure.ac | 9 ---------
+ 1 file changed, 9 deletions(-)
diff --git a/configure.ac b/configure.ac
-index aceccf4..83c101b 100644
+index 17ece200..89b463a4 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -350,14 +350,6 @@ AC_ARG_WITH(augeaslenslibdir,
- [Directory for librepor lens (default: /usr/share/augeas/lenses)])],
- [], [with_augeaslenslibdir="/usr/share/augeas/lenses"])
- AC_SUBST([AUGEAS_LENS_LIB_DIR], [$with_augeaslenslibdir])
+@@ -287,15 +287,6 @@ AC_ARG_WITH(largedatatmpdir,
+ [], [with_largedatatmpdir="/var/tmp"])
+ AC_SUBST([LARGE_DATA_TMP_DIR], [$with_largedatatmpdir])
+
-AC_PATH_PROG(AUGPARSE, augparse, no)
-[if test "$AUGPARSE" = "no"]
-[then]
@@ -28,9 +32,10 @@ index aceccf4..83c101b 100644
- [echo "Then run configure again before attempting to build libreport."]
- [exit 1]
-[fi]
-
+-
AC_ARG_WITH([defaultdumpdirmode],
AS_HELP_STRING([--with-defaultdumpdirmode=OCTAL-MODE],
+ [Default dump dir mode (default: 0x1A0 (0640))]),
--
-2.7.4
+2.25.1
diff --git a/meta-oe/recipes-extended/libreport/libreport_2.10.0.bb b/meta-oe/recipes-extended/libreport/libreport_2.17.8.bb
index 4276c49173..1f2c55c699 100644
--- a/meta-oe/recipes-extended/libreport/libreport_2.10.0.bb
+++ b/meta-oe/recipes-extended/libreport/libreport_2.17.8.bb
@@ -2,22 +2,24 @@ DESCRIPTION = "Libraries providing API for reporting different problems in appli
to different bug targets like Bugzilla, ftp, trac, etc..."
SUMMARY = "Generic library for reporting various problems"
HOMEPAGE = "https://abrt.readthedocs.org/"
-LICENSE = "GPLv2+"
+LICENSE = "GPL-2.0-or-later"
DEPENDS = "xmlrpc-c xmlrpc-c-native intltool-native \
- json-c libtar libnewt libproxy rpm \
+ 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"
+SRC_URI = "git://github.com/abrt/libreport.git;protocol=https;branch=master"
SRC_URI += "file://0001-Makefile.am-remove-doc-and-apidoc.patch \
file://0002-configure.ac-remove-prog-test-of-xmlto-and-asciidoc.patch \
file://0003-without-build-plugins.patch \
file://0004-configure.ac-remove-prog-test-of-augparse.patch \
"
-SRCREV = "eaff08f38d771d9362923765bb404b1514c5ca0a"
+
+# 2.17.8
+SRCREV = "46a99a14adba7276e5697b7c613d918796792345"
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
@@ -26,14 +28,14 @@ S = "${WORKDIR}/git"
inherit features_check
REQUIRED_DISTRO_FEATURES = "systemd"
-inherit gettext autotools python3native pkgconfig
+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 += "--without-python2 --with-python3"
+EXTRA_OECONF += "--with-python3"
-RDEPENDS_python3-libreport += "${PN}"
+RDEPENDS:python3-libreport += "${PN}"
do_patch[prefuncs] += "do_gen_version"
do_gen_version() {
@@ -43,7 +45,7 @@ do_gen_version() {
PACKAGES += "python3-libreport"
-FILES_${PN} += "${datadir}/*"
-FILES_${PN}-dbg += "${PYTHON_SITEPACKAGES_DIR}/*/.debug"
-FILES_python3-libreport = "${PYTHON_SITEPACKAGES_DIR}/*"
+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
index 192d4bce6f..4190338c1f 100644
--- a/meta-oe/recipes-extended/libserialport/libserialport_0.1.1.bb
+++ b/meta-oe/recipes-extended/libserialport/libserialport_0.1.1.bb
@@ -1,7 +1,7 @@
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+"
+LICENSE = "LGPL-3.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02"
inherit autotools
diff --git a/meta-oe/recipes-extended/libstatgrab/libstatgrab_0.92.bb b/meta-oe/recipes-extended/libstatgrab/libstatgrab_0.92.1.bb
index 27fe0e2c40..7498a57049 100644
--- a/meta-oe/recipes-extended/libstatgrab/libstatgrab_0.92.bb
+++ b/meta-oe/recipes-extended/libstatgrab/libstatgrab_0.92.1.bb
@@ -1,18 +1,17 @@
DESCRIPTION = "Utilities to collect and visualise system statistics"
HOMEPAGE = "http://www.i-scream.org/libstatgrab/"
-LICENSE = "GPL-2.0+"
+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 "
+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/libstatgrab-0.92.tar.gz \
+SRC_URI = "https://github.com/libstatgrab/libstatgrab/releases/download/LIBSTATGRAB_0_92_1/libstatgrab-${PV}.tar.gz \
"
-SRC_URI[md5sum] = "5362b2ddbec54b3901e7d70c22cda249"
-SRC_URI[sha256sum] = "5bf1906aff9ffc3eeacf32567270f4d819055d8386d98b9c8c05519012d5a196"
+SRC_URI[sha256sum] = "5688aa4a685547d7174a8a373ea9d8ee927e766e3cc302bdee34523c2c5d6c11"
UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases"
@@ -26,9 +25,9 @@ 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"
+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 401c2c4dab..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,12 +2,12 @@ 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"
@@ -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/libzip/libzip_1.7.3.bb b/meta-oe/recipes-extended/libzip/libzip_1.7.3.bb
deleted file mode 100644
index e903de3da3..0000000000
--- a/meta-oe/recipes-extended/libzip/libzip_1.7.3.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-DESCRIPTION = "libzip is a C library for reading, creating, and modifying zip archives."
-HOMEPAGE = "https://libzip.org/"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=067e9870bba57e1ce20695c4d5672f30"
-
-DEPENDS = "zlib bzip2"
-
-PACKAGECONFIG[ssl] = "-DENABLE_OPENSSL=ON,-DENABLE_OPENSSL=OFF,openssl"
-PACKAGECONFIG[lzma] = "-DENABLE_LZMA=ON,-DENABLE_LZMA=OFF,xz"
-
-PACKAGECONFIG ?= "ssl lzma"
-
-inherit cmake
-
-SRC_URI = "https://libzip.org/download/libzip-${PV}.tar.xz"
-
-SRC_URI[sha256sum] = "a60473ffdb7b4260c08bfa19c2ccea0438edac11193c3afbbb1f17fbcf6c6132"
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_1.7.0.bb b/meta-oe/recipes-extended/linuxconsole/linuxconsole_1.7.1.bb
index c4cd1d609b..5716817e95 100644
--- a/meta-oe/recipes-extended/linuxconsole/linuxconsole_1.7.0.bb
+++ b/meta-oe/recipes-extended/linuxconsole/linuxconsole_1.7.1.bb
@@ -5,21 +5,21 @@ input subsystem (providing support for serial mice, touchscreens etc.), and test
the input event layer."
HOMEPAGE = "https://sourceforge.net/projects/linuxconsole"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-DEPENDS = "libsdl2"
-DEPENDS += "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+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] = "95d112f06393806116341d593bda002c8bc44119c1538407623268fed90d8c34"
+SRC_URI[sha256sum] = "bd4d4b7e37da02fc67e47ddf20b6f1243c0a7af7b02b918d5e72138ea8727547"
S = "${WORKDIR}/linuxconsoletools-${PV}"
@@ -29,55 +29,69 @@ 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"
+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}${base_libdir}/udev/rules.d/51-these-are-not-joysticks-rm.rules
- install -Dm 0644 ${WORKDIR}/60-joystick.rules ${D}${base_libdir}/udev/rules.d/60-joystick.rules
+ 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"
+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:${PN} = ""
-FILES_inputattach += "\
+FILES:inputattach += "\
${bindir}/inputattach \
${bindir}/inputattachctl \
${systemd_system_unitdir}/inputattach.service \
"
-FILES_joystick += "\
+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 \
- ${bindir}/jstest \
- ${datadir}/joystick \
- ${base_libdir}/udev/rules.d/51-these-are-not-joysticks-rm.rules \
- ${base_libdir}/udev/js-set-enum-leds \
- ${base_libdir}/udev/rules.d/60-joystick.rules \
- ${base_libdir}/udev/rules.d/80-stelladaptor-joystick.rules \
"
-RDEPENDS_inputattach += "inputattach-config"
+RDEPENDS:inputattach += "inputattach-config"
-RDEPENDS_joystick += "\
+RDEPENDS:joystick-jscal += "\
bash \
gawk \
"
diff --git a/meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.18.bb b/meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.19.bb
index a82f10b919..834687b43b 100644
--- a/meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.18.bb
+++ b/meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.19.bb
@@ -4,16 +4,15 @@ 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"
+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[md5sum] = "4eb83bdf88016db836b7cc09591fb0f3"
-SRC_URI[sha256sum] = "a42995a4b97e6188efc90fcc1a761163c4b2cff5c81b936f85c84301ddb05ce6"
+SRC_URI[sha256sum] = "2c5704b01c8f474f82921780e4592a927b2bf6a6d7616354a6c5d7cd5664857e"
do_compile() {
- oe_runmake CFLAGS=' -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -fasynchronous-unwind-tables'
+ oe_runmake CFLAGS=' -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -fasynchronous-unwind-tables ${DEBUG_PREFIX_MAP}'
}
do_install() {
diff --git a/meta-oe/recipes-extended/logwatch/logwatch_7.5.3.bb b/meta-oe/recipes-extended/logwatch/logwatch_7.8.bb
index 644e420711..187e794b3d 100644
--- a/meta-oe/recipes-extended/logwatch/logwatch_7.5.3.bb
+++ b/meta-oe/recipes-extended/logwatch/logwatch_7.8.bb
@@ -8,12 +8,11 @@ the package on many systems.\
SECTION = "devel"
HOMEPAGE = "http://www.logwatch.org/"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ad199c8aca74e70f296f731ad9a1521c"
-RDEPENDS_${PN} = "perl"
+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[md5sum] = "8bcf3edc5a4687c8aad1b9c01e2be54b"
-SRC_URI[sha256sum] = "1b2b96879dec01cd02754fe00f8989b11ff16158c3dc7c4aff0faa4b1d34974b"
+SRC_URI[sha256sum] = "b1df31779306c2c87d595816305c89c19c382edf9ebbfce03143f567e580be42"
do_install() {
install -m 0755 -d ${D}${sysconfdir}/logwatch/scripts
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 4432342366..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,6 +1,6 @@
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 \
@@ -12,12 +12,12 @@ SRC_URI[sha256sum] = "694a1747a96385b89e93f43343bf35cee5c8c73353a83814106911c99f
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/0001-support-openssl-1.1.x.patch b/meta-oe/recipes-extended/mailx/files/0001-support-openssl-1.1.x.patch
deleted file mode 100644
index 6a8911daf7..0000000000
--- a/meta-oe/recipes-extended/mailx/files/0001-support-openssl-1.1.x.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From 7db6d8a657d13bb562a27c6181accaf3e53c0efd Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Tue, 25 Sep 2018 14:03:10 +0800
-Subject: [PATCH] support openssl 1.1.x
-
-Long time no maintain from upstream since 2013-06-04
-(https://sourceforge.net/projects/nail/), backport a
-fix from openSUSE
-
-Upstream-Status: Backport [openSUSE]
-https://build.opensuse.org/package/view_file/openSUSE:Leap:15.0/mailx/mailx-12.5-openssl-1.1.0f.patch?expand=1
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- openssl.c | 25 ++++++++++++++++++++++++-
- 1 file changed, 24 insertions(+), 1 deletion(-)
-
-diff --git a/openssl.c b/openssl.c
-index 44fe4e5..0ccc517 100644
---- a/openssl.c
-+++ b/openssl.c
-@@ -137,7 +137,12 @@ ssl_rand_init(void)
-
- if ((cp = value("ssl-rand-egd")) != NULL) {
- cp = expand(cp);
-- if (RAND_egd(cp) == -1) {
-+#ifndef OPENSSL_NO_EGD
-+ if (RAND_egd(cp) == -1)
-+#else
-+ if (1)
-+#endif
-+ {
- fprintf(stderr, catgets(catd, CATSET, 245,
- "entropy daemon at \"%s\" not available\n"),
- cp);
-@@ -216,6 +221,7 @@ ssl_select_method(const char *uhp)
-
- cp = ssl_method_string(uhp);
- if (cp != NULL) {
-+#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER < 0x1010006fL
- if (equal(cp, "ssl3"))
- method = SSLv3_client_method();
- else if (equal(cp, "tls1"))
-@@ -225,8 +231,25 @@ ssl_select_method(const char *uhp)
- "Invalid SSL method \"%s\"\n"), cp);
- method = SSLv23_client_method();
- }
-+#else
-+ method = NULL;
-+ if (equal(cp, "tls"))
-+ method = TLS_client_method();
-+ else if (equal(cp, "dtls"))
-+ method = DTLS_client_method();
-+
-+ if (!method) {
-+ fprintf(stderr, catgets(catd, CATSET, 244,
-+ "Invalid SSL method \"%s\"\n"), cp);
-+ method = TLS_client_method();
-+ }
-+#endif
- } else
-+#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER < 0x1010006fL
- method = SSLv23_client_method();
-+#else
-+ method = TLS_client_method();
-+#endif
- return method;
- }
-
---
-2.7.4
-
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 4161ea6750..0000000000
--- a/meta-oe/recipes-extended/mailx/mailx_12.5-5.bb
+++ /dev/null
@@ -1,54 +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 = "openssl"
-
-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 \
- file://0001-support-openssl-1.1.x.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/wrong-variable-expansion.patch b/meta-oe/recipes-extended/md5deep/files/wrong-variable-expansion.patch
index 73c6cb126a..b637d81e9e 100644
--- a/meta-oe/recipes-extended/md5deep/files/wrong-variable-expansion.patch
+++ b/meta-oe/recipes-extended/md5deep/files/wrong-variable-expansion.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Index: git/configure.ac
===================================================================
--- git.orig/configure.ac
diff --git a/meta-oe/recipes-extended/md5deep/md5deep_git.bb b/meta-oe/recipes-extended/md5deep/md5deep_git.bb
index e8c6864c1f..3cbe785a52 100644
--- a/meta-oe/recipes-extended/md5deep/md5deep_git.bb
+++ b/meta-oe/recipes-extended/md5deep/md5deep_git.bb
@@ -2,14 +2,14 @@ SUMMARY = "md5deep and hashdeep to compute and audit hashsets of amounts of file
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"
+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 \
+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 \
"
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-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-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/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
index d0febfd534..a7dc35ae57 100644
--- 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
@@ -1,3 +1,5 @@
+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
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
index 84b8c8cb0e..32bcfbd2b9 100644
--- a/meta-oe/recipes-extended/minifi-cpp/files/fix-libressl-compile.patch
+++ b/meta-oe/recipes-extended/minifi-cpp/files/fix-libressl-compile.patch
@@ -1,3 +1,5 @@
+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
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
index 9653ba3426..d5b4449b82 100644
--- a/meta-oe/recipes-extended/minifi-cpp/files/fix-minifi-compile.patch
+++ b/meta-oe/recipes-extended/minifi-cpp/files/fix-minifi-compile.patch
@@ -1,3 +1,5 @@
+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
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
index 42e1e583c3..903e72e07b 100644
--- a/meta-oe/recipes-extended/minifi-cpp/files/fix-osspuuid-compile.patch
+++ b/meta-oe/recipes-extended/minifi-cpp/files/fix-osspuuid-compile.patch
@@ -1,3 +1,5 @@
+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
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
index dc354d9ac7..add1f6f2d5 100644
--- 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
@@ -1,3 +1,5 @@
+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
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
index 7caf848eb5..f8ba89dc3c 100644
--- 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
@@ -1,3 +1,5 @@
+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
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
index 8c5db7c9e3..0a3194da94 100644
--- 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
@@ -1,3 +1,5 @@
+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
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
index 2d66576f6e..365dec9d44 100644
--- 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
@@ -20,6 +20,8 @@ Compiling this on FreeBSD with CLang fails due to:
1 error generated.
```
---
+Upstream-Status: Pending
+
thirdparty/rocksdb/util/channel.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
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
index b3ea44c3c3..0986fdec07 100644
--- 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
@@ -8,10 +8,10 @@ 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"
+RDEPENDS:${PN} = "python3-core"
SRCREV = "aa42957a2e227df41510047cece3cd606dc1cb6a"
-SRC_URI = "git://github.com/apache/nifi-minifi-cpp.git \
+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 \
@@ -28,6 +28,13 @@ SRC_URI = "git://github.com/apache/nifi-minifi-cpp.git \
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 \
@@ -45,7 +52,7 @@ S = "${WORKDIR}/git"
inherit pkgconfig cmake systemd
SYSTEMD_PACKAGES = "minifi-cpp"
-SYSTEMD_SERVICE_${PN} = "minifi.service"
+SYSTEMD_SERVICE:${PN} = "minifi.service"
SYSTEMD_AUTO_ENABLE = "disable"
OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH"
@@ -55,26 +62,42 @@ EXTRA_OECMAKE += " \
-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"
+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"
+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).*"
+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"
+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}
@@ -86,6 +109,7 @@ do_install() {
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/
@@ -99,6 +123,8 @@ do_install() {
${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
@@ -124,7 +150,7 @@ do_install() {
fi
}
-pkg_postinst_${PN}() {
+pkg_postinst:${PN}() {
if [ -z "$D" ]; then
if type systemd-tmpfiles >/dev/null; then
systemd-tmpfiles --create
@@ -133,3 +159,5 @@ pkg_postinst_${PN}() {
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/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/mraa/mraa/0001-cmake-Use-a-regular-expression-to-match-x86-architec.patch b/meta-oe/recipes-extended/mraa/mraa/0001-cmake-Use-a-regular-expression-to-match-x86-architec.patch
index 0cae02f061..dedb4adf9b 100644
--- a/meta-oe/recipes-extended/mraa/mraa/0001-cmake-Use-a-regular-expression-to-match-x86-architec.patch
+++ b/meta-oe/recipes-extended/mraa/mraa/0001-cmake-Use-a-regular-expression-to-match-x86-architec.patch
@@ -13,6 +13,8 @@ So using a wildcard helps in using any x86 arch
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
CMakeLists.txt | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/meta-oe/recipes-extended/mraa/mraa_git.bb b/meta-oe/recipes-extended/mraa/mraa_git.bb
index 9b3289f174..f1cdf66fc2 100644
--- a/meta-oe/recipes-extended/mraa/mraa_git.bb
+++ b/meta-oe/recipes-extended/mraa/mraa_git.bb
@@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=91e7de50a8d3cf01057f318d72460acd"
SRCREV = "7786c7ded5c9ce7773890d0e3dc27632898fc6b1"
PV = "2.2.0+git${SRCPV}"
-SRC_URI = "git://github.com/eclipse/${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 \
"
@@ -18,11 +18,11 @@ 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 -DPYTHON2_LIBRARY=OFF \
+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} \
@@ -31,20 +31,20 @@ EXTRA_OECMAKE_append = " -DINSTALLTOOLS:BOOL=ON -DFIRMATA=ON -DCMAKE_SKIP_RPATH=
# 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)}"
@@ -53,11 +53,11 @@ 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)}"
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 4235006984..c109d4f0fc 100644
--- a/meta-oe/recipes-extended/nana/nana_2.5.bb
+++ b/meta-oe/recipes-extended/nana/nana_2.5.bb
@@ -7,6 +7,7 @@ SECTION = "Development/Languages/C and C++"
SRC_URI = "http://download.savannah.gnu.org/releases/${BPN}/${BP}.tar.gz \
file://change-mandir-to-DESTDIR.patch \
file://modify-acinclude.m4-and-configure.in.patch \
+ file://0001-Include-stdlib.h-for-exit-and-abort-prototypes.patch \
"
SRC_URI[md5sum] = "66c88aa0ad095b2e67673773135475f1"
SRC_URI[sha256sum] = "fd1819ffea94b209513959447e4802afe2719600e7d161cd78b265a42812affa"
@@ -19,14 +20,14 @@ 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 04f82d2bcd..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,12 +1,14 @@
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+"
+LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://../COPYING;md5=75859989545e37968a99b631ef42722e"
SECTION = "System/Management"
inherit ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", "setuptools", "", d)}
+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 \
@@ -16,7 +18,7 @@ SRC_URI[sha256sum] = "292b8f5f2250655a4add8183c529b73358bc980bd4f23cfa484a940953
S = "${WORKDIR}/${BP}/cli"
-do_configure_prepend() {
+do_configure:prepend() {
sed 's/@@VERSION@@/$(VERSION)/g' ${S}/setup.py.skel > ${S}/setup.py
}
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.11.bb b/meta-oe/recipes-extended/openwsman/openwsman_2.7.2.bb
index 9d5a2307e7..1c68b5f432 100644
--- a/meta-oe/recipes-extended/openwsman/openwsman_2.6.11.bb
+++ b/meta-oe/recipes-extended/openwsman/openwsman_2.7.2.bb
@@ -15,12 +15,13 @@ DEPENDS = "curl libxml2 openssl libpam"
inherit features_check
REQUIRED_DISTRO_FEATURES = "pam"
-SRCREV = "d8eba6cb6682b59d84ca1da67a523520b879ade6"
+SRCREV = "0120e256faa255d997d9a49d5207662c0b73d430"
-SRC_URI = "git://github.com/Openwsman/openwsman.git \
+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"
@@ -30,10 +31,10 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d4f53d4c6cf73b9d43186ce3be6dd0ba"
inherit systemd cmake pkgconfig python3native perlnative
-SYSTEMD_SERVICE_${PN} = "openwsmand.service"
+SYSTEMD_SERVICE:${PN} = "openwsmand.service"
SYSTEMD_AUTO_ENABLE = "disable"
-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)}"
EXTRA_OECMAKE = "-DBUILD_BINDINGS=NO \
-DBUILD_LIBCIM=NO \
@@ -44,12 +45,12 @@ EXTRA_OECMAKE = "-DBUILD_BINDINGS=NO \
-DLIB=${baselib} \
"
-do_configure_prepend() {
+do_configure:prepend() {
export STAGING_INCDIR=${STAGING_INCDIR}
export STAGING_LIBDIR=${STAGING_LIBDIR}
}
-do_install_append() {
+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
@@ -64,9 +65,9 @@ do_install_append() {
fi
}
-FILES_${PN}-dbg += "${libdir}/openwsman/plugins/.debug/ \
+FILES:${PN}-dbg += "${libdir}/openwsman/plugins/.debug/ \
${libdir}/openwsman/authenticators/.debug/ \
"
-INSANE_SKIP_${PN} = "dev-so"
-RDEPENDS_${PN} = "ruby"
+INSANE_SKIP:${PN} = "dev-so"
+RDEPENDS:${PN} = "ruby"
diff --git a/meta-oe/recipes-extended/ostree/ostree_2020.8.bb b/meta-oe/recipes-extended/ostree/ostree_2023.5.bb
index 4f0f719fb3..3028c4c92a 100644
--- a/meta-oe/recipes-extended/ostree/ostree_2020.8.bb
+++ b/meta-oe/recipes-extended/ostree/ostree_2023.5.bb
@@ -4,11 +4,12 @@ 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 = "LGPLv2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
DEPENDS = " \
+ glib-2.0-native \
glib-2.0 \
e2fsprogs \
libcap \
@@ -17,61 +18,76 @@ DEPENDS = " \
bison-native \
"
-# The Yocto mirror has an old export of ostree:
-# http://downloads.yoctoproject.org/mirror/sources/git2_github.com.ostreedev.ostree.tar.gz
-PREMIRRORS = ""
+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"
-SRC_URI = " \
- gitsm://github.com/ostreedev/ostree \
- file://run-ptest \
-"
-SRCREV = "3e289b19345e30d2da193cd208e109f7d7aaa2a1"
+S = "${WORKDIR}/libostree-${PV}"
-UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+\.\d+)"
+inherit autotools bash-completion gobject-introspection github-releases gtk-doc manpages pkgconfig ptest-gnome systemd
-S = "${WORKDIR}/git"
+UNKNOWN_CONFIGURE_OPT_IGNORE = "--disable-introspection --enable-introspection"
-inherit autotools bash-completion gobject-introspection gtk-doc manpages pkgconfig ptest-gnome systemd
+# Workaround compile failure:
+# |../git/src/libotutil/zbase32.c:37:1: error: function returns an aggregate [-Werror=aggregate-return]
+# so remove -Og and use -O2 as workaround
+DEBUG_OPTIMIZATION:remove = "-Og"
+DEBUG_OPTIMIZATION:append = " -O2"
+BUILD_OPTIMIZATION:remove = "-Og"
+BUILD_OPTIMIZATION:append = " -O2"
# Package configuration - match ostree defaults, but without rofiles-fuse
-# otherwise we introduce a dependendency on meta-filesystems
+# 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 \
- soup \
+ curl \
"
-# We include soup because ostree can't (currently) be built without
+# We include curl because ostree can't (currently) be built without
# soup or curl - https://github.com/ostreedev/ostree/issues/1897
-PACKAGECONFIG_class-native ??= " \
+PACKAGECONFIG:class-native ??= " \
${@bb.utils.filter('DISTRO_FEATURES', 'selinux smack', d)} \
builtin-grub2-mkconfig \
gpgme \
- soup \
+ 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[glib] = "--with-crypto=glib"
+PACKAGECONFIG[ed25519-libsodium] = "--with-ed25519-libsodium, --without-ed25519-libsodium, libsodium"
PACKAGECONFIG[gjs] = "ac_cv_path_GJS=${bindir}/gjs"
-PACKAGECONFIG[gnutls] = "--with-crypto=gnutls, , gnutls"
+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"
-PACKAGECONFIG[rofiles-fuse] = "--enable-rofiles-fuse, --disable-rofiles-fuse, fuse"
-PACKAGECONFIG[selinux] = "--with-selinux, --without-selinux, libselinux"
+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[soup] = "--with-soup, --without-soup --disable-glibtest, libsoup-2.4"
+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_unitdir}/system, --without-libsystemd, systemd"
+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 = " \
@@ -84,7 +100,12 @@ EXTRA_OEMAKE = " \
INTROSPECTION_SCANNER_ENV= \
"
-EXTRA_OECONF_class-native = " \
+EXTRA_OECONF:class-native = " \
+ --enable-wrpseudo-compat \
+ --disable-otmpfile \
+"
+
+EXTRA_OECONF:class-nativesdk = " \
--enable-wrpseudo-compat \
--disable-otmpfile \
"
@@ -92,20 +113,24 @@ EXTRA_OECONF_class-native = " \
# 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}"
+SYSROOT_DIR:class-native = "${STAGING_DIR_NATIVE}"
do_configure[vardeps] += "SYSROOT_DIR"
-do_configure_prepend() {
+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() {
+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 \
@@ -114,38 +139,38 @@ PACKAGE_BEFORE_PN = " \
${PN}-trivial-httpd \
"
-FILES_${PN} += " \
+FILES:${PN} += " \
${nonarch_libdir}/${BPN} \
${nonarch_libdir}/tmpfiles.d \
- ${systemd_unitdir}/system \
+ ${systemd_system_unitdir} \
${systemd_unitdir}/system-generators \
"
-FILES_${PN}-dracut = " \
+FILES:${PN}-dracut = " \
${sysconfdir}/dracut.conf.d \
${libdir}/dracut \
"
-FILES_${PN}-grub = " \
+FILES:${PN}-grub = " \
${sysconfdir}/grub.d \
${libexecdir}/libostree/grub2-15_ostree \
"
-FILES_${PN}-mkinitcpio = " \
+FILES:${PN}-mkinitcpio = " \
${sysconfdir}/ostree-mkinitcpio.conf \
${libdir}/initcpio \
"
-FILES_${PN}-switchroot = " \
+FILES:${PN}-switchroot = " \
${nonarch_libdir}/${BPN}/ostree-prepare-root \
- ${systemd_unitdir}/system/ostree-prepare-root.service \
+ ${systemd_system_unitdir}/ostree-prepare-root.service \
"
-FILES_${PN}-trivial-httpd = " \
+FILES:${PN}-trivial-httpd = " \
${libexecdir}/libostree/ostree-trivial-httpd \
"
-RDEPENDS_${PN} = " \
+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 = " \
+RDEPENDS:${PN}-dracut = "bash"
+RDEPENDS:${PN}-mkinitcpio = "bash"
+RDEPENDS:${PN}:class-target = " \
${@bb.utils.contains('PACKAGECONFIG', 'gpgme', 'gnupg', '', d)} \
${PN}-switchroot \
"
@@ -153,15 +178,21 @@ RDEPENDS_${PN}_class-target = " \
#
# Note that to get ptest to pass you also need:
#
-# xattr in DISTRO_FEATURES
-# static ostree-prepare-root (PACKAGECONFIG_append_pn-ostree = " static")
-# meta-python in your layers
-# overlayfs in your kernel (KERNEL_EXTRA_FEATURES += "features/overlayfs/overlayfs.scc")
+# 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
-# /var/tmp as a real filesystem (not a tmpfs)
-# Sufficient disk space (IMAGE_ROOTFS_SIZE = "524288") and RAM (QB_MEM = "-m 1024")
+# 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 += " \
+RDEPENDS:${PN}-ptest += " \
attr \
bash \
coreutils \
@@ -176,14 +207,14 @@ RDEPENDS_${PN}-ptest += " \
util-linux \
xz \
${PN}-trivial-httpd \
- ${@bb.utils.contains('BBFILE_COLLECTIONS', 'meta-python', 'python3-pyyaml', '', d)} \
+ python3-pyyaml \
${@bb.utils.contains('PACKAGECONFIG', 'gjs', 'gjs', '', d)} \
"
-RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-utils glibc-localedata-en-us"
+RDEPENDS:${PN}-ptest:append:libc-glibc = " glibc-utils glibc-localedata-en-us"
-RRECOMMENDS_${PN} += "kernel-module-overlay"
+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"
+SYSTEMD_SERVICE:${PN} = "ostree-remount.service ostree-finalize-staged.path"
+SYSTEMD_SERVICE:${PN}-switchroot = "ostree-prepare-root.service"
-BBCLASSEXTEND = "native"
+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 13479a90fe..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,10 +19,26 @@ SRC_URI[sha256sum] = "5eb20ac0e2944f6cb9c2d51dd6c4518941c185347d4089ea89087ffdd6
S = "${WORKDIR}/${BPN}_${PV}"
+do_compile:append() {
+ oe_runmake 7z
+}
+FILES:${PN} += "${libdir}/* ${bindir}/7z"
+
+FILES_SOLIBSDEV = ""
+INSANE_SKIP:${PN} += "dev-so"
+
do_install() {
install -d ${D}${bindir}
- install -m 0755 ${S}/bin/* ${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/files/0001-Make-resulting-cmake-config-relocatable.patch b/meta-oe/recipes-extended/p8platform/files/0001-Make-resulting-cmake-config-relocatable.patch
deleted file mode 100644
index 9ff85b12a3..0000000000
--- a/meta-oe/recipes-extended/p8platform/files/0001-Make-resulting-cmake-config-relocatable.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From 2650bb3bd3644784359be373252b0436873ca8cb Mon Sep 17 00:00:00 2001
-From: Pascal Bach <pascal.bach@siemens.com>
-Date: Fri, 28 Sep 2018 16:44:37 +0200
-Subject: [PATCH] Make resulting cmake config relocatable
-
-This change avoids hardcoded install prefix in the p8-platform-config.cmake.
-Especially important when doing cross compilation with Yocto for example.
-
-Upstream-Status: Submitted [https://github.com/Pulse-Eight/platform/pull/38]
-
----
- CMakeLists.txt | 4 ----
- p8-platform-config.cmake.in | 13 +++++++++----
- 2 files changed, 9 insertions(+), 8 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 7144b0b..f2db66e 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -22,10 +22,6 @@ if(WIN32)
- src/windows/os-threads.cpp)
- endif()
-
--set(p8-platform_INCLUDE_DIRS "${CMAKE_INSTALL_PREFIX}/include/p8-platform")
--IF(WIN32)
-- LIST(APPEND p8-platform_INCLUDE_DIRS "${CMAKE_INSTALL_PREFIX}/include/p8-platform/windows")
--ENDIF(WIN32)
- set(p8-platform_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
-
- if(NOT ${CORE_SYSTEM_NAME} STREQUAL "")
-diff --git a/p8-platform-config.cmake.in b/p8-platform-config.cmake.in
-index 47f30f1..b08e96c 100644
---- a/p8-platform-config.cmake.in
-+++ b/p8-platform-config.cmake.in
-@@ -9,17 +9,22 @@
- # p8-platform_LIBRARY_DIRS - directories in which the libraries are situated
- #
- # propagate these properties from one build system to the other
-+get_filename_component(_p8-platform_rootdir ${CMAKE_CURRENT_LIST_DIR}/../ ABSOLUTE)
-+
- set (p8-platform_VERSION "@p8-platform_VERSION_MAJOR@.@p8-platform_VERSION_MINOR@")
--set (p8-platform_INCLUDE_DIRS @p8-platform_INCLUDE_DIRS@ @CMAKE_INSTALL_PREFIX@/include)
--set (p8-platform_LIBRARY_DIRS "@CMAKE_LIBRARY_OUTPUT_DIRECTORY@")
-+set (p8-platform_INCLUDE_DIRS "${_p8-platform_rootdir}/include" "${_p8-platform_rootdir}/include/p8-platform")
-+if(WIN32)
-+ list(APPEND p8-platform_INCLUDE_DIRS "${_p8-platform_rootdir}/include/p8-platform/windows")
-+endif(WIN32)
-+set (p8-platform_LIBRARY_DIRS "${_p8-platform_rootdir}")
- set (p8-platform_LINKER_FLAGS "@p8-platform_LINKER_FLAGS@")
- set (p8-platform_CONFIG_VARS "@p8-platform_CONFIG_VARS@")
-
- # libraries come from the build tree where this file was generated
- if(WIN32)
-- set (p8-platform_LIBRARY "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/p8-platform.lib")
-+ set (p8-platform_LIBRARY "${_p8-platform_rootdir}/p8-platform.lib")
- else(WIN32)
-- set (p8-platform_LIBRARY "-L@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@ -lp8-platform")
-+ set (p8-platform_LIBRARY "-L${_p8-platform_rootdir} -lp8-platform")
- endif(WIN32)
- set (p8-platform_LIBRARIES ${p8-platform_LIBRARY} "@p8-platform_LIBRARIES@")
- mark_as_advanced (p8-platform_LIBRARY)
---
-2.11.0
-
diff --git a/meta-oe/recipes-extended/p8platform/p8platform_git.bb b/meta-oe/recipes-extended/p8platform/p8platform_git.bb
index 0690d4ba3c..bb9574feb2 100644
--- a/meta-oe/recipes-extended/p8platform/p8platform_git.bb
+++ b/meta-oe/recipes-extended/p8platform/p8platform_git.bb
@@ -1,14 +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.1"
+PV = "2.1.0.1+git${SRCPV}"
-SRC_URI = "git://github.com/Pulse-Eight/platform.git \
- file://0001-Make-resulting-cmake-config-relocatable.patch"
-SRCREV = "2d90f98620e25f47702c9e848380c0d93f29462b"
+SRC_URI = "git://github.com/Pulse-Eight/platform.git;branch=master;protocol=https"
+SRCREV = "a7cd0d5780ed80a4e70480d1650749f29e8a1fb2"
S = "${WORKDIR}/git"
@@ -16,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_11.bb b/meta-oe/recipes-extended/pam/pam-plugin-ccreds_11.bb
index 9838e75ef5..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,7 +1,7 @@
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"
@@ -11,7 +11,9 @@ REQUIRED_DISTRO_FEATURES = "pam"
SRCREV = "e2145df09469bf84878e4729b4ecd814efb797d1"
-SRC_URI = "git://github.com/PADL/pam_ccreds"
+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"
@@ -19,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/0001-include-stdexcept-for-std-invalid_argument.patch b/meta-oe/recipes-extended/pam/pam-plugin-ldapdb/0001-include-stdexcept-for-std-invalid_argument.patch
deleted file mode 100644
index 0a93411533..0000000000
--- a/meta-oe/recipes-extended/pam/pam-plugin-ldapdb/0001-include-stdexcept-for-std-invalid_argument.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 3e97c9004f4ec58ca3696ee6298f91e6eeb76e04 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 23 Dec 2019 14:46:25 -0800
-Subject: [PATCH] include <stdexcept> for std::invalid_argument
-
-Upstream-Status: Submitted [https://github.com/rmbreak/pam_ldapdb/pull/11]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- pam_ldapdb.cpp | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/pam_ldapdb.cpp b/pam_ldapdb.cpp
-index 9baf1e6..be5d85c 100644
---- a/pam_ldapdb.cpp
-+++ b/pam_ldapdb.cpp
-@@ -1,5 +1,6 @@
- #include <map>
- #include <string>
-+#include <stdexcept>
- #include <utility>
- #include <syslog.h>
- #include <pwd.h>
---
-2.24.1
-
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.1.bb
index 626b22fe48..d5137f80af 100644
--- a/meta-oe/recipes-extended/pam/pam-plugin-ldapdb_1.3.bb
+++ b/meta-oe/recipes-extended/pam/pam-plugin-ldapdb_1.3.1.bb
@@ -10,10 +10,8 @@ DEPENDS = "libpam openldap"
inherit features_check
REQUIRED_DISTRO_FEATURES = "pam"
-SRCREV = "84d7b260f1ae6857ae36e014c9a5968e8aa1cbe8"
-SRC_URI = "git://github.com/rmbreak/pam_ldapdb \
- file://0001-include-stdexcept-for-std-invalid_argument.patch \
-"
+SRCREV = "3e026863cad1fd45c760ee1bc93ef4f0606cc852"
+SRC_URI = "git://github.com/rmbreak/pam_ldapdb;branch=master;protocol=https"
S = "${WORKDIR}/git"
@@ -21,4 +19,4 @@ do_install () {
oe_runmake install DESTDIR=${D} PAMDIR=${base_libdir}/security
}
-FILES_${PN} += "${base_libdir}/security/pam_ldapdb.so"
+FILES:${PN} += "${base_libdir}/security/pam_ldapdb.so"
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_0.10.3.bb b/meta-oe/recipes-extended/pam/pam-ssh-agent-auth_0.10.3.bb
index 7871801b6b..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,7 +2,7 @@ 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 \
"
@@ -10,6 +10,7 @@ LIC_FILES_CHKSUM = "file://LICENSE.OpenSSL;md5=8ab01146141ded59b75f8ba7811ed05a
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"
@@ -21,7 +22,7 @@ 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.
#
@@ -50,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_2.8.3.bb b/meta-oe/recipes-extended/pegtl/pegtl_3.2.7.bb
index 01233699a5..237828dbfc 100644
--- a/meta-oe/recipes-extended/pegtl/pegtl_2.8.3.bb
+++ b/meta-oe/recipes-extended/pegtl/pegtl_3.2.7.bb
@@ -1,11 +1,10 @@
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=6a5195f720a8d436a4148e0cb8660400"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=dccf35ef30bf912bb07b01d469965293"
-SRCREV = "47e878ad4fd72c91253c9d47b6f17e001ca2dfcf"
-SRC_URI = "git://github.com/taocpp/PEGTL.git;protocol=https;branch=2.x \
- "
+SRC_URI = "git://github.com/taocpp/PEGTL.git;protocol=https;branch=3.x"
+SRCREV = "cf639f7f4ee125f68e1ccfba8d99ebc0de57b9fe"
inherit cmake
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.9.bb b/meta-oe/recipes-extended/pmdk/pmdk_1.12.1.bb
index 8bb89f418c..5261922cdd 100644
--- a/meta-oe/recipes-extended/pmdk/pmdk_1.9.bb
+++ b/meta-oe/recipes-extended/pmdk/pmdk_1.12.1.bb
@@ -4,16 +4,16 @@ HOMEPAGE = "http://pmem.io"
SECTION = "libs"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=b44ee63f162f9cdb18fff1224877aafd"
-DEPENDS = "ndctl"
+DEPENDS = "ndctl cmake-native"
# Required to have the fts.h header for musl
-DEPENDS_append_libc-musl = " fts"
+DEPENDS:append:libc-musl = " fts"
S = "${WORKDIR}/git"
-SRC_URI = "git://github.com/pmem/pmdk.git"
-
-SRCREV = "1926ffb8f3f5f0617b3b3ed32029d437c272f187"
+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
@@ -25,9 +25,9 @@ inherit autotools-brokensep pkgconfig
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'"
+EXTRA_OEMAKE:append:libc-musl = " EXTRA_LIBS='-lfts'"
-do_configure_prepend() {
+do_configure:prepend() {
touch .skip-doc
}
@@ -39,11 +39,11 @@ do_install() {
}
# 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"
+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 e38e344c14..4aeeb77d04 100644
--- a/meta-oe/recipes-extended/polkit/polkit-group-rule.inc
+++ b/meta-oe/recipes-extended/polkit/polkit-group-rule.inc
@@ -6,8 +6,8 @@ REQUIRED_DISTRO_FEATURES = "polkit"
inherit useradd
-do_install_prepend() {
+do_install:prepend() {
install -m 700 -d ${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-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/0003-make-netgroup-support-optional.patch b/meta-oe/recipes-extended/polkit/polkit/0004-Make-netgroup-support-optional.patch
index fd7251369e..181aca16ca 100644
--- a/meta-oe/recipes-extended/polkit/polkit/0003-make-netgroup-support-optional.patch
+++ b/meta-oe/recipes-extended/polkit/polkit/0004-Make-netgroup-support-optional.patch
@@ -1,36 +1,46 @@
-From 21aa2747e8f0048759aab184b07dd6389666d5e6 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 22 May 2019 13:18:55 -0700
-Subject: [PATCH] make netgroup support optional
+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.
+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.
-Fixes bug 50145.
+(sam: rebased for Meson and Duktape.)
-Closes polkit/polkit#14.
+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>
-Signed-off-by: Khem Raj <raj.khem@gmail.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 +-
- src/polkit/polkitidentity.c | 16 ++++++++++++++++
- src/polkit/polkitunixnetgroup.c | 3 +++
- .../polkitbackendinteractiveauthority.c | 14 ++++++++------
- src/polkitbackend/polkitbackendjsauthority.cpp | 2 ++
- test/polkit/polkitidentitytest.c | 9 ++++++++-
- test/polkit/polkitunixnetgrouptest.c | 3 +++
- .../test-polkitbackendjsauthority.c | 2 ++
- 8 files changed, 43 insertions(+), 8 deletions(-)
+ 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
-@@ -99,7 +99,7 @@ AC_CHECK_LIB(expat,XML_ParserCreate,[EXP
+@@ -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)
@@ -39,9 +49,23 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
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 gcha
+@@ -182,7 +182,15 @@ polkit_identity_from_string (const gchar *str,
}
else if (g_str_has_prefix (str, "unix-netgroup:"))
{
@@ -57,7 +81,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
}
if (identity == NULL && (error != NULL && *error == NULL))
-@@ -344,6 +352,13 @@ polkit_identity_new_for_gvariant (GVaria
+@@ -344,6 +352,14 @@ polkit_identity_new_for_gvariant (GVariant *variant,
GVariant *v;
const char *name;
@@ -68,10 +92,11 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
+ "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 +368,7 @@ polkit_identity_new_for_gvariant (GVaria
+@@ -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);
@@ -79,9 +104,11 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
}
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 (PolkitUni
+@@ -194,6 +194,9 @@ polkit_unix_netgroup_set_name (PolkitUnixNetgroup *group,
PolkitIdentity *
polkit_unix_netgroup_new (const gchar *name)
{
@@ -91,9 +118,11 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
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
+@@ -2233,25 +2233,26 @@ get_users_in_net_group (PolkitIdentity *group,
GList *ret;
ret = NULL;
@@ -126,7 +155,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
PolkitIdentity *user;
GError *error = NULL;
-@@ -2282,6 +2283,7 @@ get_users_in_net_group (PolkitIdentity
+@@ -2282,6 +2283,7 @@ get_users_in_net_group (PolkitIdentity *group,
out:
endnetgrent ();
@@ -134,9 +163,11 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
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
-@@ -1502,6 +1502,7 @@ js_polkit_user_is_in_netgroup (JSContext
+@@ -1524,6 +1524,7 @@ js_polkit_user_is_in_netgroup (JSContext *cx,
JS::CallArgs args = JS::CallArgsFromVp (argc, vp);
@@ -144,25 +175,19 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
JS::RootedString usrstr (authority->priv->cx);
usrstr = args[0].toString();
user = JS_EncodeStringToUTF8 (cx, usrstr);
-@@ -1519,6 +1520,7 @@ js_polkit_user_is_in_netgroup (JSContext
-
- JS_free (cx, netgroup);
- JS_free (cx, user);
+@@ -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
-@@ -19,6 +19,7 @@
- * Author: Nikki VonHollen <vonhollen@google.com>
- */
-
-+#include "config.h"
- #include "glib.h"
- #include <polkit/polkit.h>
- #include <polkit/polkitprivate.h>
-@@ -145,11 +146,15 @@ struct ComparisonTestData comparison_tes
+@@ -145,11 +145,15 @@ struct ComparisonTestData comparison_test_data [] = {
{"unix-group:root", "unix-group:jane", FALSE},
{"unix-group:jane", "unix-group:jane", TRUE},
@@ -178,7 +203,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
{NULL},
};
-@@ -181,11 +186,13 @@ main (int argc, char *argv[])
+@@ -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);
@@ -193,17 +218,11 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
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
-@@ -19,6 +19,7 @@
- * Author: Nikki VonHollen <vonhollen@google.com>
- */
-
-+#include "config.h"
- #include "glib.h"
- #include <polkit/polkit.h>
- #include <string.h>
-@@ -69,7 +70,9 @@ int
+@@ -69,7 +69,9 @@ int
main (int argc, char *argv[])
{
g_test_init (&argc, &argv, NULL);
@@ -213,6 +232,8 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
+#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)
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_0.116.bb b/meta-oe/recipes-extended/polkit/polkit_0.119.bb
index ad1973b136..c4d3d25afc 100644
--- a/meta-oe/recipes-extended/polkit/polkit_0.116.bb
+++ b/meta-oe/recipes-extended/polkit/polkit_0.119.bb
@@ -1,11 +1,11 @@
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+"
+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 mozjs"
+DEPENDS = "expat glib-2.0 intltool-native"
inherit autotools gtk-doc pkgconfig useradd systemd gobject-introspection features_check
@@ -14,6 +14,7 @@ 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"
@@ -21,26 +22,47 @@ PACKAGECONFIG[systemd] = "--enable-libsystemd-login=yes --with-systemdsystemunit
# 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)} \
- file://0003-make-netgroup-support-optional.patch \
+ ${@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[md5sum] = "4b37258583393e83069a0e2e89c0162a"
-SRC_URI[sha256sum] = "88170c9e711e8db305a12fdb8234fac5706c61969b94e084d0f117d8ec5d34b1"
+SRC_URI[sha256sum] = "c8579fdb86e94295404211285fee0722ad04893f0213e571bd75c00972fd1f5c"
EXTRA_OECONF = "--with-os-type=moblin \
--disable-man-pages \
--disable-libelogind \
"
-do_compile_prepend () {
+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 = " \
+FILES:${PN}:append = " \
${libdir}/${BPN}-1 \
${nonarch_libdir}/${BPN}-1 \
${datadir}/dbus-1 \
@@ -48,10 +70,10 @@ FILES_${PN}_append = " \
${datadir}/gettext \
"
-FILES_${PN}-examples = "${bindir}/*example*"
+FILES:${PN}-examples = "${bindir}/*example*"
USERADD_PACKAGES = "${PN}"
-USERADD_PARAM_${PN} = "--system --no-create-home --user-group --home-dir ${sysconfdir}/${BPN}-1 polkitd"
+USERADD_PARAM:${PN} = "--system --no-create-home --user-group --home-dir ${sysconfdir}/${BPN}-1 --shell /bin/nologin polkitd"
-SYSTEMD_SERVICE_${PN} = "${BPN}.service"
+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
index 5db38ac987..88a18aa137 100644
--- a/meta-oe/recipes-extended/properties-cpp/properties-cpp_git.bb
+++ b/meta-oe/recipes-extended/properties-cpp/properties-cpp_git.bb
@@ -3,20 +3,20 @@
SUMMARY = "A very simple convenience library for handling properties and signals in C++11."
SECTION = "libs"
-LICENSE = "LGPLv3"
+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"
+SRC_URI = "git://github.com/lib-cpp/${BPN}.git;branch=master;protocol=https"
S = "${WORKDIR}/git"
-do_configure_prepend() {
+do_configure:prepend() {
echo " " > ${S}/tests/CMakeLists.txt
}
inherit cmake pkgconfig
-RDEPENDS_${PN}-dev = ""
+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.2.1.bb b/meta-oe/recipes-extended/redis-plus-plus/redis-plus-plus_1.2.1.bb
deleted file mode 100644
index 4059fd47e8..0000000000
--- a/meta-oe/recipes-extended/redis-plus-plus/redis-plus-plus_1.2.1.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-DESCRIPTION = "C++ client for Redis based on hiredis"
-HOMEPAGE = "https://github.com/sewenew/redis-plus-plus"
-SECTION = "libs"
-
-DEPENDS += "hiredis"
-RDEPENDS_${PN} += "hiredis"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
-SRCREV = "a9f9c301f8de1c181e6d45c573b5d1fe7b8200b1"
-SRC_URI = "git://github.com/sewenew/redis-plus-plus"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-FILES_SOLIBSDEV = ""
-FILES_${PN} += " ${libdir}/libredis++.so"
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
index b5c4133e31..66ab0ee33c 100644
--- 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
@@ -10,15 +10,16 @@ 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 7f7c625..c71dd3b 100644
+index 5564351..83ccd76 100644
--- a/src/Makefile
+++ b/src/Makefile
-@@ -75,7 +75,7 @@ endif
+@@ -91,7 +91,7 @@ endif
FINAL_CFLAGS=$(STD) $(WARN) $(OPT) $(DEBUG) $(CFLAGS) $(REDIS_CFLAGS)
FINAL_LDFLAGS=$(LDFLAGS) $(REDIS_LDFLAGS) $(DEBUG)
@@ -26,7 +27,4 @@ index 7f7c625..c71dd3b 100644
+FINAL_LIBS+=-lm
DEBUG=-g -ggdb
- # Linux ARM needs -latomic at linking time
---
-2.23.0
-
+ # Linux ARM32 needs -latomic at linking time
diff --git a/meta-oe/recipes-extended/redis/redis/riscv32.patch b/meta-oe/recipes-extended/redis/redis/0006-Define-correct-gregs-for-RISCV32.patch
index 79ec7423da..9d7e502717 100644
--- a/meta-oe/recipes-extended/redis/redis/riscv32.patch
+++ b/meta-oe/recipes-extended/redis/redis/0006-Define-correct-gregs-for-RISCV32.patch
@@ -1,21 +1,33 @@
-Define correct gregs for RISCV32
+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
-@@ -942,7 +942,9 @@ static void *getMcontextEip(ucontext_t *
+@@ -1055,7 +1055,9 @@ static void* getAndSetMcontextEip(ucontext_t *uc, void *eip) {
#endif
#elif defined(__linux__)
/* Linux */
-- #if defined(__i386__) || defined(__ILP32__)
+- #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(__ILP32__)
- return (void*) uc->uc_mcontext.gregs[14]; /* Linux 32 */
++ #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__)
- return (void*) uc->uc_mcontext.gregs[16]; /* Linux 64 */
-@@ -1102,8 +1104,28 @@ void logRegisters(ucontext_t *uc) {
+ GET_SET_RETURN(uc->uc_mcontext.gregs[16], eip);
+@@ -1222,8 +1224,28 @@ void logRegisters(ucontext_t *uc) {
#endif
/* Linux */
#elif defined(__linux__)
@@ -40,8 +52,11 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
+ );
+ logStackContent((void**)uc->uc_mcontext.__gregs[REG_SP]);
/* Linux x86 */
-- #if defined(__i386__) || defined(__ILP32__)
-+ #elif defined(__i386__) || defined(__ILP32__)
+- #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
index 9a40d832f1..20f689bd0b 100644
--- a/meta-oe/recipes-extended/redis/redis/GNU_SOURCE.patch
+++ b/meta-oe/recipes-extended/redis/redis/GNU_SOURCE.patch
@@ -1,4 +1,7 @@
-Define _GNU_SOURCE to get PTHREAD_MUTEX_INITIALIZER
+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)
@@ -7,6 +10,12 @@ Fixes
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 @@
@@ -17,3 +26,6 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
#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 878cd36973..d2a1b45e66 100644
--- a/meta-oe/recipes-extended/redis/redis/hiredis-use-default-CC-if-it-is-set.patch
+++ b/meta-oe/recipes-extended/redis/redis/hiredis-use-default-CC-if-it-is-set.patch
@@ -14,6 +14,8 @@ Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Reworked for 6.0.4
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
+Upstream-Status: Pending
+
deps/hiredis/Makefile | 2 --
1 file changed, 2 deletions(-)
diff --git a/meta-oe/recipes-extended/redis/redis/ilp32.patch b/meta-oe/recipes-extended/redis/redis/ilp32.patch
deleted file mode 100644
index 48d01a1d62..0000000000
--- a/meta-oe/recipes-extended/redis/redis/ilp32.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-__ILP32__ is defined for all 32bit architectures with clang e.g.
-which is right but it is causing issues on non-x86 architectures
-where this condition becomes true and wrongly starts using this
-code, this issue is hidden with gcc becuase gcc does not define
-__ILP32__ for all 32bit architectures but for selected 64bit arches
-who choose to use 32bit ABI e.g. x32
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
---- a/src/debug.c
-+++ b/src/debug.c
-@@ -944,7 +944,7 @@ static void *getMcontextEip(ucontext_t *
- /* Linux */
- #if defined(__riscv) && __riscv_xlen == 32
- return (void*) uc->uc_mcontext.__gregs[REG_PC];
-- #elif defined(__i386__) || defined(__ILP32__)
-+ #elif defined(__i386__) || (defined(__X86_64__) && defined(__ILP32__))
- return (void*) uc->uc_mcontext.gregs[14]; /* Linux 32 */
- #elif defined(__X86_64__) || defined(__x86_64__)
- return (void*) uc->uc_mcontext.gregs[16]; /* Linux 64 */
-@@ -1125,7 +1125,7 @@ void logRegisters(ucontext_t *uc) {
- );
- logStackContent((void**)uc->uc_mcontext.__gregs[REG_SP]);
- /* Linux x86 */
-- #elif defined(__i386__) || defined(__ILP32__)
-+ #elif defined(__i386__) || ( defined(__X86_64__) && defined(__ILP32__))
- serverLog(LL_WARNING,
- "\n"
- "EAX:%08lx EBX:%08lx ECX:%08lx EDX:%08lx\n"
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_6.0.9.bb b/meta-oe/recipes-extended/redis/redis_6.2.13.bb
index 50571ed550..640831c525 100644
--- a/meta-oe/recipes-extended/redis/redis_6.0.9.bb
+++ b/meta-oe/recipes-extended/redis/redis_6.2.13.bb
@@ -15,28 +15,27 @@ SRC_URI = "http://download.redis.io/releases/${BP}.tar.gz \
file://oe-use-libc-malloc.patch \
file://0001-src-Do-not-reset-FINAL_LIBS.patch \
file://GNU_SOURCE.patch \
- file://riscv32.patch \
- file://ilp32.patch \
+ file://0006-Define-correct-gregs-for-RISCV32.patch \
"
-SRC_URI[sha256sum] = "dc2bdcf81c620e9f09cfd12e85d3bc631c897b2db7a55218fd8a65eaa37f86dd"
+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"
+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"
+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() {
+do_compile:prepend() {
(cd deps && oe_runmake hiredis lua linenoise)
}
@@ -59,9 +58,9 @@ do_install() {
fi
}
-CONFFILES_${PN} = "${sysconfdir}/redis/redis.conf"
+CONFFILES:${PN} = "${sysconfdir}/redis/redis.conf"
INITSCRIPT_NAME = "redis-server"
INITSCRIPT_PARAMS = "defaults 87"
-SYSTEMD_SERVICE_${PN} = "redis.service"
+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.2.bb b/meta-oe/recipes-extended/rrdtool/rrdtool_1.8.0.bb
index 5662e63474..f0c083c6db 100644
--- a/meta-oe/recipes-extended/rrdtool/rrdtool_1.7.2.bb
+++ b/meta-oe/recipes-extended/rrdtool/rrdtool_1.8.0.bb
@@ -1,30 +1,30 @@
SUMMARY = "High performance data logging and graphing system for time series data"
HOMEPAGE = "http://oss.oetiker.ch/rrdtool/"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=39df84cfd8a5e18bf988f277f7946676"
-DEPENDS = "libpng zlib cairo pango glib-2.0 libxml2 groff-native python3-setuptools-native"
+DEPENDS = "libpng zlib glib-2.0 libxml2 groff-native python3-setuptools-native"
-SRCREV = "56a83f4f52e6745cd4352f9ee008be3183a6dedf"
-PV = "1.7.2"
+SRCREV = "3af04acd38bbc61bbdcdd931dcf234c971aa5336"
+PV = "1.8.0"
SRC_URI = "\
- git://github.com/oetiker/rrdtool-1.x.git;branch=master;protocol=http; \
+ git://github.com/oetiker/rrdtool-1.x.git;protocol=https;branch=master \
"
S = "${WORKDIR}/git"
-inherit cpan autotools-brokensep gettext python3native python3-dir systemd
+inherit cpan autotools-brokensep gettext pkgconfig python3native python3-dir systemd
BBCLASSEXTEND = "native"
SYSTEMD_PACKAGES = "rrdcached"
-SYSTEMD_SERVICE_rrdcached = "rrdcached.socket rrdcached.service"
+SYSTEMD_SERVICE:rrdcached = "rrdcached.socket rrdcached.service"
EXTRA_AUTORECONF = "-I m4 --exclude=autopoint"
-PACKAGECONFIG ??= "perl ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+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 \
@@ -40,6 +40,8 @@ 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 \
@@ -104,26 +106,26 @@ do_configure() {
PACKAGES =+ "${PN}-perl ${PN}-python"
PACKAGES =+ "rrdcached"
-DESCRIPTION_rrdcached = \
+DESCRIPTION:rrdcached = \
"The rrdcached package contains the data caching daemon for RRDtool."
-FILES_rrdcached = "${bindir}/rrdcached \
+FILES:rrdcached = "${bindir}/rrdcached \
${systemd_unitdir}/system/rrdcached.service \
${systemd_unitdir}/system/rrdcached.socket"
-FILES_${PN}-doc += "${datadir}/rrdtool/examples"
+FILES:${PN}-doc += "${datadir}/rrdtool/examples"
-DESCRIPTION_${PN}-perl = \
+DESCRIPTION:${PN}-perl = \
"The ${PN}-perl package includes RRDtool bindings for perl."
-FILES_${PN}-perl = "${libdir}/perl/vendor_perl/*/*.pm \
+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 \
+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 = \
+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}-python = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/*"
+RDEPENDS:${PN}-python = "python3"
-FILES_${PN}-dbg += "${libdir}/perl/vendor_perl/*/auto/RRDs/.debug \
+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/0001-fix-jump-misses-init-gcc-8-warning.patch b/meta-oe/recipes-extended/rsyslog/libfastjson/0001-fix-jump-misses-init-gcc-8-warning.patch
deleted file mode 100644
index 25e5efa4b6..0000000000
--- a/meta-oe/recipes-extended/rsyslog/libfastjson/0001-fix-jump-misses-init-gcc-8-warning.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From d697182f18a421b7f80ea9de4914251b55d82532 Mon Sep 17 00:00:00 2001
-From: Rainer Gerhards <rgerhards@adiscon.com>
-Date: Sun, 15 Jul 2018 17:24:59 +0200
-Subject: [PATCH] "fix" "jump-misses-init" gcc-8 warning
-
-Actually, that warning is overly conservative, and so we
-have changed the code in a somewhat suboptimal way to "fix"
-it. In this spots, it's not that bad and we wanted to avoid
-totally disabling this warning.
-
-If it were more costly in terms of cleanness, we would probaly
-have done that. Just mention it to tell anyone else the
-cure is not really a good one, just selected due to the
-circumstances in this special case.
-
-Upstream-Status: Backport
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
----
- json_object.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/json_object.c b/json_object.c
-index 35338e1..6e67891 100644
---- a/json_object.c
-+++ b/json_object.c
-@@ -396,6 +396,7 @@ fjson_child_get_empty_etry(struct fjson_object *const __restrict__ jso)
- {
- struct _fjson_child *chld = NULL;
- struct _fjson_child_pg *pg;
-+ int pg_idx;
-
- if (jso->o.c_obj.ndeleted > 0) {
- /* we first fill deleted spots */
-@@ -415,7 +416,7 @@ fjson_child_get_empty_etry(struct fjson_object *const __restrict__ jso)
- goto done;
- }
-
-- const int pg_idx = jso->o.c_obj.nelem % FJSON_OBJECT_CHLD_PG_SIZE;
-+ pg_idx = jso->o.c_obj.nelem % FJSON_OBJECT_CHLD_PG_SIZE;
- if (jso->o.c_obj.nelem > 0 && pg_idx == 0) {
- if((pg = calloc(1, sizeof(struct _fjson_child_pg))) == NULL) {
- errno = ENOMEM;
---
-2.11.0
-
diff --git a/meta-oe/recipes-extended/rsyslog/libfastjson_0.99.8.bb b/meta-oe/recipes-extended/rsyslog/libfastjson_0.99.9.bb
index b84dde3d37..24ad172674 100644
--- a/meta-oe/recipes-extended/rsyslog/libfastjson_0.99.8.bb
+++ b/meta-oe/recipes-extended/rsyslog/libfastjson_0.99.9.bb
@@ -6,10 +6,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a958bb07122368f3e1d9b2efe07d231f"
DEPENDS = ""
-SRC_URI = "git://github.com/rsyslog/libfastjson.git;protocol=https \
- file://0001-fix-jump-misses-init-gcc-8-warning.patch"
+SRC_URI = "git://github.com/rsyslog/libfastjson.git;protocol=https;branch=master"
-SRCREV = "4758b1caf69ada911ef79e1d80793fe489b98dff"
+SRCREV = "0293afb3913f760c449348551cca4d2df59c1a00"
S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-extended/rsyslog/librelp_1.6.0.bb b/meta-oe/recipes-extended/rsyslog/librelp_1.11.0.bb
index f3933f930c..e7b79ad03f 100644
--- a/meta-oe/recipes-extended/rsyslog/librelp_1.6.0.bb
+++ b/meta-oe/recipes-extended/rsyslog/librelp_1.11.0.bb
@@ -1,18 +1,20 @@
SUMMARY = "A reliable logging library"
HOMEPAGE = "https://github.com/rsyslog/librelp"
-LICENSE = "GPLv3"
+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 \
+SRC_URI = "git://github.com/rsyslog/librelp.git;protocol=https;branch=stable \
"
-SRCREV = "fe366f3770320cbe76bac7e84b26a48491d14531"
+SRCREV = "b421f56d9ee31a966058d23bd23c966221c91396"
S = "${WORKDIR}/git"
inherit autotools pkgconfig
-CPPFLAGS += "-Wno-error"
+DEBUG_OPTIMIZATION:append = " -Wno-error=inline"
+
+
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.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 aa698d85ce..efa9ba3ed0 100644
--- a/meta-oe/recipes-extended/rsyslog/rsyslog/run-ptest
+++ b/meta-oe/recipes-extended/rsyslog/rsyslog/run-ptest
@@ -5,4 +5,8 @@ set -o pipefail
SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )"
cd ${SCRIPTPATH}
-make -C tests -k check-TESTS
+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_8.2006.0.bb b/meta-oe/recipes-extended/rsyslog/rsyslog_8.2306.0.bb
index b6c2a991fc..c639e81473 100644
--- a/meta-oe/recipes-extended/rsyslog/rsyslog_8.2006.0.bb
+++ b/meta-oe/recipes-extended/rsyslog/rsyslog_8.2306.0.bb
@@ -11,26 +11,27 @@ Rsyslog is an enhanced syslogd supporting, among others, MySQL,\
DEPENDS = "zlib libestr libfastjson bison-native flex-native liblogging"
HOMEPAGE = "http://www.rsyslog.com/"
-LICENSE = "GPLv3 & LGPLv3 & Apache-2.0"
+LICENSE = "GPL-3.0-only & LGPL-3.0-only & Apache-2.0"
LIC_FILES_CHKSUM = "file://COPYING;md5=51d9635e646fb75e1b74c074f788e973 \
file://COPYING.LESSER;md5=cb7903f1e5c39ae838209e130dca270a \
file://COPYING.ASL20;md5=052f8a09206615ab07326ff8ce2d9d32\
"
-SRC_URI = "http://www.rsyslog.com/download/files/download/rsyslog/${BPN}-${PV}.tar.gz \
+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 = " \
+SRC_URI:append:libc-musl = " \
file://0001-Include-sys-time-h.patch \
"
-SRC_URI[md5sum] = "33de768941953ceeca9d1a437b47891b"
-SRC_URI[sha256sum] = "d9589e64866f2fdc5636af4cae9d60ebf1e3257bb84b81ee953ede6a05878e97"
+SRC_URI[sha256sum] = "f6283efaadc609540a56e6bec88a362c966e77f29fe48e6b734bd6c1123e0be5"
UPSTREAM_CHECK_URI = "https://github.com/rsyslog/rsyslog/releases"
UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)"
@@ -39,9 +40,9 @@ 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"
+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 ??= " \
@@ -75,14 +76,12 @@ 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,"
-do_configure_prepend() {
- sed -i -e 's|python |python3 |g' ${S}/tests/*.sh
- sed -i -e 's|/usr/bin/env python|/usr/bin/env python3|g' ${S}/tests/*.py
- sed -i -e 's|/usr/bin/env python|/usr/bin/env python3|g' ${S}/tests/testsuites/*.py
-}
TESTDIR = "tests"
do_compile_ptest() {
@@ -95,6 +94,10 @@ do_install_ptest() {
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)
@@ -130,7 +133,7 @@ do_install_ptest() {
sed -i -e s:${HOSTTOOLS_DIR}:${bindir}:g ${D}${PTEST_PATH}/tests/set-envvars
}
-do_install_append() {
+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
@@ -147,53 +150,57 @@ do_install_append() {
echo '$ModLoad mmjsonparse' >> ${D}${sysconfdir}/rsyslog.d/mmjsonparse.conf
fi
if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
- sed -i -e "s#;Requires=syslog.socket#Requires=syslog.socket#g" ${D}${systemd_system_unitdir}/rsyslog.service
- sed -i -e "s#;Alias=syslog.service#Alias=syslog.service#g" ${D}${systemd_system_unitdir}/rsyslog.service
+ 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}"
+FILES:${PN} += "${bindir}"
INITSCRIPT_NAME = "syslog"
INITSCRIPT_PARAMS = "defaults"
-CONFFILES_${PN} = "${sysconfdir}/rsyslog.conf"
+CONFFILES:${PN} = "${sysconfdir}/rsyslog.conf"
-RCONFLICTS_${PN} = "busybox-syslog sysklogd syslog-ng"
+RCONFLICTS:${PN} = "busybox-syslog sysklogd syslog-ng"
-RPROVIDES_${PN} += "${PN}-systemd"
-RREPLACES_${PN} += "${PN}-systemd"
-RCONFLICTS_${PN} += "${PN}-systemd"
-SYSTEMD_SERVICE_${PN} = "${BPN}.service"
+RPROVIDES:${PN} += "${PN}-systemd"
+RREPLACES:${PN} += "${PN}-systemd"
+RCONFLICTS:${PN} += "${PN}-systemd"
+SYSTEMD_SERVICE:${PN} = "${BPN}.service"
-RDEPENDS_${PN} += "logrotate"
+RDEPENDS:${PN} += "logrotate"
# for rsyslog-ptest
VALGRIND = "valgrind"
# valgrind supports armv7 and above
-VALGRIND_armv4 = ''
-VALGRIND_armv5 = ''
-VALGRIND_armv6 = ''
+VALGRIND:armv4 = ''
+VALGRIND:armv5 = ''
+VALGRIND:armv6 = ''
# X32 isn't supported by valgrind at this time
-VALGRIND_linux-gnux32 = ''
-VALGRIND_linux-muslx32 = ''
+VALGRIND:linux-gnux32 = ''
+VALGRIND:linux-muslx32 = ''
# Disable for some MIPS variants
-VALGRIND_mipsarchr6 = ''
-VALGRIND_linux-gnun32 = ''
+VALGRIND:mipsarchr6 = ''
+VALGRIND:linux-gnun32 = ''
# Disable for powerpc64 with musl
-VALGRIND_libc-musl_powerpc64 = ''
-VALGRIND_libc-musl_powerpc64le = ''
+VALGRIND:libc-musl:powerpc64 = ''
+VALGRIND:libc-musl:powerpc64le = ''
# RISC-V support for valgrind is not there yet
-VALGRIND_riscv64 = ""
-VALGRIND_riscv32 = ""
+VALGRIND:riscv64 = ""
+VALGRIND:riscv32 = ""
-RDEPENDS_${PN}-ptest += "\
+# util-linux: logger needs the -d option
+RDEPENDS:${PN}-ptest += "\
make diffutils gzip bash gawk coreutils procps \
- libgcc python3-core python3-io \
+ libgcc python3-core python3-io python3-json \
+ curl util-linux shadow \
"
-RRECOMMENDS_${PN}-ptest += "${TCLIBC}-dbg ${VALGRIND}"
+
+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_3.8.2.bb b/meta-oe/recipes-extended/sanlock/sanlock_3.8.2.bb
deleted file mode 100644
index 6f3685c4b0..0000000000
--- a/meta-oe/recipes-extended/sanlock/sanlock_3.8.2.bb
+++ /dev/null
@@ -1,45 +0,0 @@
-SUMMARY = "A shared storage lock manager"
-DESCRIPTION = "sanlock is a lock manager built on shared storage. Hosts with access \
-to the storage can perform locking. An application running on the \
-hosts is given a small amount of space on the shared block device or \
-file, and uses sanlock for its own application-specific synchronization. \
-Internally, the sanlock daemon manages locks using two disk-based \
-lease algorithms: delta leases and paxos leases."
-HOMEPAGE = "https://pagure.io/sanlock"
-SECTION = "utils"
-
-LICENSE = "LGPLv2+ & GPLv2 & GPLv2+"
-LIC_FILES_CHKSUM = "file://../README.license;md5=60487bf0bf429d6b5aa72b6d37a0eb22"
-
-PV .= "+git${SRCPV}"
-
-SRC_URI = "git://pagure.io/sanlock.git;protocol=http \
- file://0001-sanlock-Replace-cp-a-with-cp-R-no-dereference-preser.patch;patchdir=../ \
- "
-SRCREV = "01b727adf1ce3c0ed5b95299d60f62bc66d98eb5"
-
-S = "${WORKDIR}/git/python"
-
-DEPENDS = "libaio util-linux"
-
-inherit distutils3 useradd
-
-do_configure[noexec] = "1"
-
-do_compile_prepend () {
- oe_runmake -C ${S}/../wdmd CMD_LDFLAGS="${LDFLAGS}" LIB_LDFLAGS="${LDFLAGS}"
- oe_runmake -C ${S}/../src CMD_LDFLAGS="${LDFLAGS}" LIB_ENTIRE_LDFLAGS="${LDFLAGS}" LIB_CLIENT_LDFLAGS="${LDFLAGS}"
-}
-
-do_install_prepend () {
- oe_runmake -C ${S}/../wdmd DESTDIR=${D} LIBDIR=${libdir} install
- oe_runmake -C ${S}/../src DESTDIR=${D} LIBDIR=${libdir} install
-}
-
-SANLOCKGROUP ?= "sanlock"
-SANLOCKUSER ?= "sanlock"
-USERADD_PACKAGES = "${PN}"
-GROUPADD_PARAM_${PN} = "--system ${SANLOCKGROUP}"
-USERADD_PARAM_${PN} = "--system -g ${SANLOCKGROUP} -G disk \
- --home-dir /run/${SANLOCKUSER} --no-create-home \
- --shell /sbin/nologin ${SANLOCKUSER}"
diff --git a/meta-oe/recipes-extended/sanlock/sanlock_3.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-sfcb/sblim-sfcb/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/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/0001-include-stdint.h-system-header-for-UINT16_MAX.patch b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/0001-include-stdint.h-system-header-for-UINT16_MAX.patch
index c2111a2c10..1c93d42f3c 100644
--- a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/0001-include-stdint.h-system-header-for-UINT16_MAX.patch
+++ b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/0001-include-stdint.h-system-header-for-UINT16_MAX.patch
@@ -9,6 +9,8 @@ error: 'UINT16_MAX' undeclared (first use in this function)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
interopServerProvider.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.15-fix-provider-debugging.patch b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.15-fix-provider-debugging.patch
index 4fbecaa63f..f21b3b9a5b 100644
--- a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.15-fix-provider-debugging.patch
+++ b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.15-fix-provider-debugging.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
diff -up sblim-sfcb-1.4.5/providerDrv.c.orig sblim-sfcb-1.4.5/providerDrv.c
--- sblim-sfcb-1.4.5/providerDrv.c.orig 2013-09-04 12:59:22.140813239 +0200
+++ sblim-sfcb-1.4.5/providerDrv.c 2013-09-04 12:59:40.511870274 +0200
diff --git a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.16-maxMsgLen.patch b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.16-maxMsgLen.patch
index a0dd81653d..941b522b17 100644
--- a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.16-maxMsgLen.patch
+++ b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.16-maxMsgLen.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
diff -up sblim-sfcb-1.3.16/sfcb.cfg.pre.in.old sblim-sfcb-1.3.16/sfcb.cfg.pre.in
--- sblim-sfcb-1.3.16/sfcb.cfg.pre.in.old 2012-06-13 23:21:09.000000000 +0200
+++ sblim-sfcb-1.3.16/sfcb.cfg.pre.in 2013-06-24 15:34:38.881992781 +0200
diff --git a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.16-multilib-man-cfg.patch b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.16-multilib-man-cfg.patch
index c8cece2c20..a175d1b063 100644
--- a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.16-multilib-man-cfg.patch
+++ b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.16-multilib-man-cfg.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
diff -up sblim-sfcb-1.3.16/man/sfcbd.1.pre.in.orig sblim-sfcb-1.3.16/man/sfcbd.1.pre.in
--- sblim-sfcb-1.3.16/man/sfcbd.1.pre.in.orig 2014-02-26 14:05:32.213091734 +0100
+++ sblim-sfcb-1.3.16/man/sfcbd.1.pre.in 2014-02-26 15:10:54.476196379 +0100
diff --git a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.9-sfcbrepos-schema-location.patch b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.9-sfcbrepos-schema-location.patch
index 7f95a9da3f..83d4bbcd1e 100644
--- a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.9-sfcbrepos-schema-location.patch
+++ b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.9-sfcbrepos-schema-location.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
diff -up sblim-sfcb-1.3.9/man/sfcbrepos.1.pre.in.orig sblim-sfcb-1.3.9/man/sfcbrepos.1.pre.in
--- sblim-sfcb-1.3.9/man/sfcbrepos.1.pre.in.orig 2009-10-13 21:54:13.000000000 +0200
+++ sblim-sfcb-1.3.9/man/sfcbrepos.1.pre.in 2010-09-06 14:01:57.294564062 +0200
diff --git a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.4.5-service.patch b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.4.5-service.patch
index eaccfa594c..08b9a1403b 100644
--- a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.4.5-service.patch
+++ b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.4.5-service.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
diff -up sblim-sfcb-1.4.6/Makefile.in.orig sblim-sfcb-1.4.6/Makefile.in
--- sblim-sfcb-1.4.6/Makefile.in.orig 2013-10-07 10:43:34.783228137 +0200
+++ sblim-sfcb-1.4.6/Makefile.in 2013-10-07 10:44:30.178533289 +0200
diff --git a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.4.8-default-ecdh-curve-name.patch b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.4.8-default-ecdh-curve-name.patch
index 3268d49f43..f11cf925f5 100644
--- a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.4.8-default-ecdh-curve-name.patch
+++ b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.4.8-default-ecdh-curve-name.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
diff -up sblim-sfcb-1.4.8/control.c.orig sblim-sfcb-1.4.8/control.c
--- sblim-sfcb-1.4.8/control.c.orig 2014-03-27 00:46:28.000000000 +0100
+++ sblim-sfcb-1.4.8/control.c 2014-05-15 12:31:38.304169409 +0200
diff --git a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.4.9-fix-ftbfs.patch b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.4.9-fix-ftbfs.patch
index 9548b3c063..fd2d076b85 100644
--- a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.4.9-fix-ftbfs.patch
+++ b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.4.9-fix-ftbfs.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
diff -up sblim-sfcb-1.4.9/control.c.orig sblim-sfcb-1.4.9/control.c
--- sblim-sfcb-1.4.9/control.c.orig 2015-07-13 15:06:21.331660336 +0200
+++ sblim-sfcb-1.4.9/control.c 2015-07-13 15:08:38.031308917 +0200
diff --git a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb
index 9a3a66c2a8..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
@@ -27,19 +27,24 @@ SRC_URI = "http://downloads.sourceforge.net/sblim/${BP}.tar.bz2 \
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 \
@@ -50,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() {
@@ -68,16 +73,16 @@ do_install() {
rm -rf ${D}${libdir}/sfcb/*.la
}
-pkg_postinst_${PN} () {
+pkg_postinst:${PN} () {
$INTERCEPT_DIR/postinst_intercept delay_to_first_boot ${PKG} mlprefix=${MLPREFIX}
}
-pkg_postinst_ontarget_${PN} () {
+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 2b7571e232..4fefd5169b 100644
--- a/meta-oe/recipes-extended/scsirastools/scsirastools_1.6.6.bb
+++ b/meta-oe/recipes-extended/scsirastools/scsirastools_1.6.6.bb
@@ -20,28 +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"
PACKAGES =+ "${PN}-raidmon"
-RPROVIDES_${PN}-dbg += "${PN}-diskmon-dbg ${PN}-raidmon-dbg"
+RPROVIDES:${PN}-dbg += "${PN}-diskmon-dbg ${PN}-raidmon-dbg"
-FILES_${PN}-diskmon = "${sbindir}/sgdiskmon ${sysconfdir}/init.d/sgdisk"
+FILES:${PN}-diskmon = "${sbindir}/sgdiskmon ${sysconfdir}/init.d/sgdisk"
-FILES_${PN}-raidmon = "${sbindir}/sgraidmon ${sysconfdir}/init.d/sgraid"
+FILES:${PN}-raidmon = "${sbindir}/sgraidmon ${sysconfdir}/init.d/sgraid"
-RDEPENDS_${PN} += "bash"
-RDEPENDS_${PN}-diskmon += "${PN} bash"
-RDEPENDS_${PN}-raidmon += "${PN} bash"
+RDEPENDS:${PN} += "bash"
+RDEPENDS:${PN}-diskmon += "${PN} bash"
+RDEPENDS:${PN}-raidmon += "${PN} bash"
diff --git a/meta-oe/recipes-extended/sedutil/files/0001-DtaAnnotatedDump-Add-typedef-name-to-the-union.patch b/meta-oe/recipes-extended/sedutil/files/0001-DtaAnnotatedDump-Add-typedef-name-to-the-union.patch
deleted file mode 100644
index 4be3353c66..0000000000
--- a/meta-oe/recipes-extended/sedutil/files/0001-DtaAnnotatedDump-Add-typedef-name-to-the-union.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 9db49b94336f65453e06fb6a6bc4e6edf9403fea Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 17 Aug 2020 17:22:09 -0700
-Subject: [PATCH] DtaAnnotatedDump: Add typedef name to the union
-
-This is found with clang
-error: anonymous non-C-compatible type given name for linkage purposes by
-typedef declaration; add a tag name here [-Werror,-Wnon-c-typedef-for-linkage]
-| typedef union
-| ^
-| CAtomHeader
-
-Upstream-Status: Submitted [https://github.com/Drive-Trust-Alliance/sedutil/pull/332]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- Common/DtaAnnotatedDump.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Common/DtaAnnotatedDump.h b/Common/DtaAnnotatedDump.h
-index 2749365..734c8eb 100644
---- a/Common/DtaAnnotatedDump.h
-+++ b/Common/DtaAnnotatedDump.h
-@@ -20,7 +20,7 @@ along with sedutil. If not, see <http://www.gnu.org/licenses/>.
-
- #pragma pack(push,1)
-
--typedef union
-+typedef union CAtomHeader_t
- {
- // four bytes in big endian (network) byte order
- uint8_t all[4];
---
-2.28.0
-
diff --git a/meta-oe/recipes-extended/sedutil/files/0001-Fix-build-on-big-endian-architectures.patch b/meta-oe/recipes-extended/sedutil/files/0001-Fix-build-on-big-endian-architectures.patch
index 7351197e4f..0b78d238bb 100644
--- a/meta-oe/recipes-extended/sedutil/files/0001-Fix-build-on-big-endian-architectures.patch
+++ b/meta-oe/recipes-extended/sedutil/files/0001-Fix-build-on-big-endian-architectures.patch
@@ -5,6 +5,8 @@ Subject: [PATCH] Fix build on big endian architectures
Signed-off-by: Primoz Fiser <primoz.fiser@norik.com>
---
+Upstream-Status: Pending
+
Common/DtaEndianFixup.h | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/meta-oe/recipes-extended/sedutil/files/0001-include-missing-cstdint.patch b/meta-oe/recipes-extended/sedutil/files/0001-include-missing-cstdint.patch
new file mode 100644
index 0000000000..8afcb1fa48
--- /dev/null
+++ b/meta-oe/recipes-extended/sedutil/files/0001-include-missing-cstdint.patch
@@ -0,0 +1,32 @@
+From 927cd88cad7bea94c2eebecc18f7881f0defaccb Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 26 Jan 2023 23:36:29 -0800
+Subject: [PATCH] include missing <cstdint>
+
+gcc 13 moved some includes around and as a result <cstdint>
+is no longer transitively included [1]. Explicitly include
+it for uint{32,64}_t.
+
+[1] https://gcc.gnu.org/gcc-13/porting_to.html#header-dep-changes
+
+Upstream-Status: Submitted [https://github.com/Drive-Trust-Alliance/sedutil/pull/425]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Common/DtaOptions.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Common/DtaOptions.h b/Common/DtaOptions.h
+index c012af1..7530a0b 100644
+--- a/Common/DtaOptions.h
++++ b/Common/DtaOptions.h
+@@ -21,6 +21,7 @@ along with sedutil. If not, see <http://www.gnu.org/licenses/>.
+ #ifndef _DTAOPTIONS_H
+ #define _DTAOPTIONS_H
+
++#include <cstdint>
+ /** Output modes */
+ typedef enum _sedutiloutput {
+ sedutilNormal,
+--
+2.39.1
+
diff --git a/meta-oe/recipes-extended/sedutil/sedutil_git.bb b/meta-oe/recipes-extended/sedutil/sedutil_git.bb
index 1e7a393193..972a33c742 100644
--- a/meta-oe/recipes-extended/sedutil/sedutil_git.bb
+++ b/meta-oe/recipes-extended/sedutil/sedutil_git.bb
@@ -3,17 +3,16 @@ 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 = "GPLv3"
+LICENSE = "GPL-3.0-only"
LIC_FILES_CHKSUM = "file://Common/LICENSE.txt;md5=d32239bcb673463ab874e80d47fae504"
-BASEPV = "1.15.1"
-PV = "${BASEPV}+git${SRCPV}"
-SRCREV = "358cc758948be788284d5faba46ccf4cc1813796"
-SRC_URI = "git://github.com/Drive-Trust-Alliance/sedutil.git \
- file://0001-Fix-build-on-big-endian-architectures.patch \
- file://0001-DtaAnnotatedDump-Add-typedef-name-to-the-union.patch \
-"
+PV = "1.20.0"
+SRCREV = "d3de8e45e06a21d31cca0046ceb16ced1ef3563a"
+SRC_URI = "git://github.com/Drive-Trust-Alliance/sedutil.git;branch=master;protocol=https \
+ file://0001-Fix-build-on-big-endian-architectures.patch \
+ file://0001-include-missing-cstdint.patch \
+ "
S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-extended/sgpio/sgpio/0001-makefile-Add-LDFLAGS-to-linking-rule.patch b/meta-oe/recipes-extended/sgpio/sgpio/0001-makefile-Add-LDFLAGS-to-linking-rule.patch
index 87fdd6058a..895916ceab 100644
--- a/meta-oe/recipes-extended/sgpio/sgpio/0001-makefile-Add-LDFLAGS-to-linking-rule.patch
+++ b/meta-oe/recipes-extended/sgpio/sgpio/0001-makefile-Add-LDFLAGS-to-linking-rule.patch
@@ -8,6 +8,8 @@ No GNU_HASH in the elf binary
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-extended/sgpio/sgpio/Makefile-error-fix.patch b/meta-oe/recipes-extended/sgpio/sgpio/Makefile-error-fix.patch
index 709f8316f1..40c85e2ce8 100644
--- a/meta-oe/recipes-extended/sgpio/sgpio/Makefile-error-fix.patch
+++ b/meta-oe/recipes-extended/sgpio/sgpio/Makefile-error-fix.patch
@@ -3,7 +3,7 @@ Fix Makefile:
* change the file format from dos to unix to avoid do_patch failed.
* override gcc,SBIN_DIR and INSTALL for cross-compilation.
-Upstream-Status: pending
+Upstream-Status: Pending
Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
---
diff --git a/meta-oe/recipes-extended/sgpio/sgpio_1.2.0.10.bb b/meta-oe/recipes-extended/sgpio/sgpio_1.2.0.10.bb
index 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
index e8c36a81d7..1e5ffdd856 100644
--- a/meta-oe/recipes-extended/sigrok/libsigrok_0.5.2.bb
+++ b/meta-oe/recipes-extended/sigrok/libsigrok_0.5.2.bb
@@ -1,7 +1,7 @@
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 = "GPLv3"
+LICENSE = "GPL-3.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
DEPENDS = "glib-2.0 libzip"
@@ -22,4 +22,4 @@ SRC_URI = "http://sigrok.org/download/source/libsigrok/libsigrok-${PV}.tar.gz"
SRC_URI[md5sum] = "e258d471b6d5eaa58daf927a0dc3ba67"
SRC_URI[sha256sum] = "4d341f90b6220d3e8cb251dacf726c41165285612248f2c52d15df4590a1ce3c"
-FILES_${PN} += "${datadir}/*"
+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_0.5.3.bb b/meta-oe/recipes-extended/sigrok/libsigrokdecode_0.5.3.bb
index d78d2770c6..24091bcf90 100644
--- a/meta-oe/recipes-extended/sigrok/libsigrokdecode_0.5.3.bb
+++ b/meta-oe/recipes-extended/sigrok/libsigrokdecode_0.5.3.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "libsigrokdecode is a shared library written in C, which provides (streaming) protocol decoding functionality."
HOMEPAGE = "http://sigrok.org/wiki/Main_Page"
-LICENSE = "GPLv3"
+LICENSE = "GPL-3.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
DEPENDS = "glib-2.0 python3"
@@ -9,7 +9,9 @@ DEPENDS = "glib-2.0 python3"
inherit autotools pkgconfig
SRC_URI = "http://sigrok.org/download/source/libsigrokdecode/libsigrokdecode-${PV}.tar.gz \
- file://python39.patch"
+ 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.1.bb b/meta-oe/recipes-extended/sigrok/sigrok-cli_0.7.2.bb
index 369e2f6f4a..48f96cc435 100644
--- a/meta-oe/recipes-extended/sigrok/sigrok-cli_0.7.1.bb
+++ b/meta-oe/recipes-extended/sigrok/sigrok-cli_0.7.2.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "sigrok-cli is a command-line frontend for sigrok."
HOMEPAGE = "http://sigrok.org/wiki/Main_Page"
-LICENSE = "GPLv3"
+LICENSE = "GPL-3.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
DEPENDS = "libsigrok"
@@ -13,7 +13,7 @@ PACKAGECONFIG ??= "decode"
inherit autotools pkgconfig mime-xdg
SRC_URI = "http://sigrok.org/download/source/sigrok-cli/sigrok-cli-${PV}.tar.gz"
-SRC_URI[md5sum] = "3f45ce664bad529d8b3f78a61b017d75"
-SRC_URI[sha256sum] = "f52413429f47d457c333db0fd068416ab7a3f9e35ca76de8624dc5ac6fb07797"
+SRC_URI[md5sum] = "856fd496cd99d1091aa128405c522a36"
+SRC_URI[sha256sum] = "71d0443f36897bf565732dec206830dbea0f2789b6601cf10536b286d1140ab8"
-FILES_${PN} += "${datadir}/icons/hicolor"
+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/smartmontools_7.1.bb b/meta-oe/recipes-extended/smartmontools/smartmontools_7.3.bb
index b401272d24..1bf55bfcfd 100644
--- a/meta-oe/recipes-extended/smartmontools/smartmontools_7.1.bb
+++ b/meta-oe/recipes-extended/smartmontools/smartmontools_7.3.bb
@@ -9,28 +9,28 @@ utilities will provide advanced warning of disk degradation and failure."
HOMEPAGE = "http://smartmontools.sourceforge.net/"
SECTION = "console/utils"
-LICENSE = "GPLv2"
+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[md5sum] = "430cd5f64caa4524018b536e5ecd9c29"
-SRC_URI[sha256sum] = "3f734d2c99deb1e4af62b25d944c6252de70ca64d766c4c7294545a2e659b846"
+SRC_URI[sha256sum] = "a544f8808d0c58cfb0e7424ca1841cb858a974922b035d505d4e4c248be3a22b"
inherit autotools update-rc.d systemd
-SYSTEMD_SERVICE_${PN} = "smartd.service"
+SYSTEMD_SERVICE:${PN} = "smartd.service"
SYSTEMD_AUTO_ENABLE = "disable"
-do_install_append () {
+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
@@ -49,4 +49,4 @@ do_install_append () {
INITSCRIPT_NAME = "smartd"
INITSCRIPT_PARAMS = "start 60 2 3 4 5 . stop 60 0 1 6 ."
-RDEPENDS_${PN} += "mailx"
+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.8.bb b/meta-oe/recipes-extended/snappy/snappy_1.1.9.bb
index d6d1e4110a..0d58345d7a 100644
--- a/meta-oe/recipes-extended/snappy/snappy_1.1.8.bb
+++ b/meta-oe/recipes-extended/snappy/snappy_1.1.9.bb
@@ -10,10 +10,12 @@ compression ratio."
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=f62f3080324a97b3159a7a7e61812d0c"
-SRC_URI = "https://src.fedoraproject.org/repo/pkgs/snappy/snappy-1.1.8.tar.gz/sha512/efe18ff1b3edda1b4b6cefcbc6da8119c05d63afdbf7a784f3490353c74dced76baed7b5f1aa34b99899729192b9d657c33c76de4b507a51553fa8001ae75c1c/snappy-1.1.8.tar.gz"
+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"
-SRC_URI[md5sum] = "70e48cba7fecf289153d009791c9977f"
-SRC_URI[sha256sum] = "16b677f07832a612b0836178db7f374e414f94657c138e6993cbfc5dcc58651f"
inherit cmake pkgconfig
@@ -21,5 +23,4 @@ PACKAGECONFIG ??= ""
PACKAGECONFIG[lzo] = "-DHAVE_LIBLZO2=1,-DHAVE_LIBLZO2=0,lzo,"
TARGET_CFLAGS += "-fPIC"
-EXTRA_OECMAKE += '-DBUILD_SHARED_LIBS="ON" \
- '
+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 eca8dfc7b7..993efab395 100644
--- a/meta-oe/recipes-extended/socketcan/can-isotp_git.bb
+++ b/meta-oe/recipes-extended/socketcan/can-isotp_git.bb
@@ -1,9 +1,10 @@
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=72d977d697c3c05830fdff00a7448931"
-SRCREV = "b31bce98d65f894aad6427bcf6f3f7822e261a59"
+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"
@@ -11,4 +12,8 @@ inherit module
EXTRA_OEMAKE += "KERNELDIR=${STAGING_KERNEL_DIR}"
-PNBLACKLIST[can-isotp] ?= "Kernel module Needs forward porting to kernel 5.2+"
+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 b44942303e..0000000000
--- a/meta-oe/recipes-extended/socketcan/can-utils_git.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "Linux CAN network development utilities"
-LICENSE = "GPLv2 & 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=git"
-
-SRCREV = "856d0a662a02dd2dc0b83a7ad1de9fd120e82c4b"
-
-PV = "2020.11.0"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig update-alternatives
-
-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/canutils_4.0.6.bb b/meta-oe/recipes-extended/socketcan/canutils_4.0.6.bb
index 8b13daea1c..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,13 +2,13 @@ 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 \
"
@@ -19,10 +19,10 @@ 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:${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.12.bb b/meta-oe/recipes-extended/socketcan/libsocketcan_0.0.12.bb
index b7a7f6f471..9f6ef85c87 100644
--- a/meta-oe/recipes-extended/socketcan/libsocketcan_0.0.12.bb
+++ b/meta-oe/recipes-extended/socketcan/libsocketcan_0.0.12.bb
@@ -2,12 +2,12 @@ SUMMARY = "Control basic functions in socketcan from userspace"
HOMEPAGE = "http://www.pengutronix.de"
SECTION = "libs/network"
-LICENSE = "LGPLv2.1"
+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"
+SRC_URI = "git://git.pengutronix.de/git/tools/libsocketcan.git;protocol=git;branch=master"
S = "${WORKDIR}/git"
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 cb80611578..0000000000
--- a/meta-oe/recipes-extended/sysdig/sysdig/0001-Fix-build-with-musl-backtrace-APIs-are-glibc-specifi.patch
+++ /dev/null
@@ -1,49 +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(-)
-
---- a/userspace/libsinsp/utils.cpp
-+++ b/userspace/libsinsp/utils.cpp
-@@ -22,7 +22,7 @@ limitations under the License.
- #include <limits.h>
- #include <stdlib.h>
- #include <sys/time.h>
--#ifndef CYGWING_AGENT
-+#if !defined(CYGWING_AGENT) || defined(__GLIBC__)
- #include <execinfo.h>
- #endif
- #include <unistd.h>
-@@ -780,6 +780,7 @@ bool sinsp_utils::glob_match(const char
-
- #ifndef CYGWING_AGENT
- #ifndef _WIN32
-+#ifdef __GLIBC__
- void sinsp_utils::bt(void)
- {
- static const char start[] = "BACKTRACE ------------";
-@@ -801,6 +802,7 @@ void sinsp_utils::bt(void)
-
- free(bt_syms);
- }
-+#endif // Glibc
- #endif // _WIN32
- #endif // CYGWING_AGENT
-
---- a/userspace/libsinsp/utils.h
-+++ b/userspace/libsinsp/utils.h
-@@ -104,7 +104,7 @@ public:
-
- static bool glob_match(const char *pattern, const char *string);
-
--#ifndef _WIN32
-+#if not defined(_WIN32) && defined(__GLIBC__)
- //
- // Print the call stack
- //
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-fix-build-with-LuaJIT-2.1-betas.patch b/meta-oe/recipes-extended/sysdig/sysdig/0001-fix-build-with-LuaJIT-2.1-betas.patch
deleted file mode 100644
index 71b0b8c8b9..0000000000
--- a/meta-oe/recipes-extended/sysdig/sysdig/0001-fix-build-with-LuaJIT-2.1-betas.patch
+++ /dev/null
@@ -1,96 +0,0 @@
-From ae82de664a6ba6ab2654adf9bed81f22b6fdc19d Mon Sep 17 00:00:00 2001
-From: Evgeni Golov <evgeni@golov.de>
-Date: Sun, 27 Aug 2017 13:51:19 +0200
-Subject: [PATCH] fix build with LuaJIT 2.1 betas
-
-LuaJIT 2.1 drops some compat symbols [1]. And while I think that this is
-wrong, as it breaks compatibility with Lua 5.1 [2], it is quite easy to
-adopt the code to work with both versions (2.0 and 2.1) of LuaJIT and
-remain Lua 5.1 compatible.
-
-[1] https://github.com/LuaJIT/LuaJIT/commit/dc320ca70f2c5bb3977b82853bcee6dad2523d01
-[2] https://github.com/LuaJIT/LuaJIT/issues/325
-
-Upstream-Status: Submitted [https://github.com/LuaJIT/LuaJIT/issues/325]
-Signed-off-by: Evgeni Golov <evgeni@golov.de>
-sysdig-CLA-1.0-signed-off-by: Evgeni Golov <evgeni@golov.de>
----
- CMakeLists.txt | 2 +-
- userspace/libsinsp/chisel.cpp | 6 +++---
- userspace/libsinsp/lua_parser.cpp | 2 +-
- userspace/libsinsp/lua_parser_api.cpp | 2 +-
- 4 files changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index d7020493..33e524f5 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -140,7 +140,7 @@ option(USE_BUNDLED_DEPS "Enable bundled dependencies instead of using the system
- option(USE_BUNDLED_LUAJIT "Enable building of the bundled LuaJIT" ${USE_BUNDLED_DEPS})
-
- if(NOT USE_BUNDLED_LUAJIT)
-- find_path(LUAJIT_INCLUDE luajit.h PATH_SUFFIXES luajit-2.0 luajit)
-+ find_path(LUAJIT_INCLUDE luajit.h PATH_SUFFIXES luajit-2.1 luajit-2.0 luajit)
- find_library(LUAJIT_LIB NAMES luajit luajit-5.1)
- if(LUAJIT_INCLUDE AND LUAJIT_LIB)
- message(STATUS "Found LuaJIT: include: ${LUAJIT_INCLUDE}, lib: ${LUAJIT_LIB}")
-diff --git a/userspace/libsinsp/chisel.cpp b/userspace/libsinsp/chisel.cpp
-index 0a6e3cf8..0c2e255a 100644
---- a/userspace/libsinsp/chisel.cpp
-+++ b/userspace/libsinsp/chisel.cpp
-@@ -98,7 +98,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},
-@@ -134,7 +134,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},
-@@ -146,7 +146,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},
-diff --git a/userspace/libsinsp/lua_parser.cpp b/userspace/libsinsp/lua_parser.cpp
-index 0e26617d..78810d96 100644
---- a/userspace/libsinsp/lua_parser.cpp
-+++ b/userspace/libsinsp/lua_parser.cpp
-@@ -32,7 +32,7 @@ extern "C" {
- #include "lauxlib.h"
- }
-
--const static struct luaL_reg ll_filter [] =
-+const static struct luaL_Reg ll_filter [] =
- {
- {"rel_expr", &lua_parser_cbacks::rel_expr},
- {"bool_op", &lua_parser_cbacks::bool_op},
-diff --git a/userspace/libsinsp/lua_parser_api.cpp b/userspace/libsinsp/lua_parser_api.cpp
-index c89e9126..e0169fe1 100644
---- a/userspace/libsinsp/lua_parser_api.cpp
-+++ b/userspace/libsinsp/lua_parser_api.cpp
-@@ -266,7 +266,7 @@ int lua_parser_cbacks::rel_expr(lua_State *ls)
- string err = "Got non-table as in-expression operand\n";
- throw sinsp_exception("parser API error");
- }
-- int n = luaL_getn(ls, 4); /* get size of table */
-+ int n = (int)lua_objlen(ls, 4); /* get size of table */
- for (i=1; i<=n; i++)
- {
- lua_rawgeti(ls, 4, i);
---
-2.25.1
-
diff --git a/meta-oe/recipes-extended/sysdig/sysdig/aarch64.patch b/meta-oe/recipes-extended/sysdig/sysdig/aarch64.patch
deleted file mode 100644
index f16b0eca50..0000000000
--- a/meta-oe/recipes-extended/sysdig/sysdig/aarch64.patch
+++ /dev/null
@@ -1,359 +0,0 @@
-Check if legacy syscalls exist
-
-A lot of legacy syscalls are replaced with *at and are not implemented in newer
-architectures like aarch64
-
-Upstream-Status: Submitted [https://github.com/draios/sysdig/pull/1601]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
---- a/driver/syscall_table.c
-+++ b/driver/syscall_table.c
-@@ -42,26 +42,46 @@ or GPL2.txt for full copies of the licen
- * SYSCALL TABLE
- */
- const struct syscall_evt_pair g_syscall_table[SYSCALL_TABLE_SIZE] = {
-+#ifdef __NR_open
- [__NR_open - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP, PPME_SYSCALL_OPEN_E, PPME_SYSCALL_OPEN_X},
-+#endif
-+#ifdef __NR_creat
- [__NR_creat - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP, PPME_SYSCALL_CREAT_E, PPME_SYSCALL_CREAT_X},
-+#endif
- [__NR_close - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP | UF_SIMPLEDRIVER_KEEP, PPME_SYSCALL_CLOSE_E, PPME_SYSCALL_CLOSE_X},
- [__NR_brk - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_SYSCALL_BRK_4_E, PPME_SYSCALL_BRK_4_X},
- [__NR_read - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_READ_E, PPME_SYSCALL_READ_X},
- [__NR_write - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_WRITE_E, PPME_SYSCALL_WRITE_X},
- [__NR_execve - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP | UF_SIMPLEDRIVER_KEEP, PPME_SYSCALL_EXECVE_19_E, PPME_SYSCALL_EXECVE_19_X},
- [__NR_clone - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP | UF_SIMPLEDRIVER_KEEP, PPME_SYSCALL_CLONE_20_E, PPME_SYSCALL_CLONE_20_X},
-+#ifdef __NR_fork
- [__NR_fork - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP | UF_SIMPLEDRIVER_KEEP, PPME_SYSCALL_FORK_20_E, PPME_SYSCALL_FORK_20_X},
-+#endif
-+#ifdef __NR_vfork
- [__NR_vfork - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP | UF_SIMPLEDRIVER_KEEP, PPME_SYSCALL_VFORK_20_E, PPME_SYSCALL_VFORK_20_X},
-+#endif
-+#ifdef __NR_pipe
- [__NR_pipe - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP, PPME_SYSCALL_PIPE_E, PPME_SYSCALL_PIPE_X},
-+#endif
- [__NR_pipe2 - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP, PPME_SYSCALL_PIPE_E, PPME_SYSCALL_PIPE_X},
-+#ifdef __NR_eventfd
- [__NR_eventfd - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP, PPME_SYSCALL_EVENTFD_E, PPME_SYSCALL_EVENTFD_X},
-+#endif
- [__NR_eventfd2 - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP, PPME_SYSCALL_EVENTFD_E, PPME_SYSCALL_EVENTFD_X},
- [__NR_futex - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_SYSCALL_FUTEX_E, PPME_SYSCALL_FUTEX_X},
-+#ifdef __NR_stat
- [__NR_stat - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_SYSCALL_STAT_E, PPME_SYSCALL_STAT_X},
-+#endif
-+#ifdef __NR_lstat
- [__NR_lstat - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_SYSCALL_LSTAT_E, PPME_SYSCALL_LSTAT_X},
-+#endif
- [__NR_fstat - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_SYSCALL_FSTAT_E, PPME_SYSCALL_FSTAT_X},
-+#ifdef __NR_epoll_wait
- [__NR_epoll_wait - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_SYSCALL_EPOLLWAIT_E, PPME_SYSCALL_EPOLLWAIT_X},
-+#endif
-+#ifdef __NR_poll
- [__NR_poll - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_SYSCALL_POLL_E, PPME_SYSCALL_POLL_X},
-+#endif
- #ifdef __NR_select
- [__NR_select - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_SYSCALL_SELECT_E, PPME_SYSCALL_SELECT_X},
- #endif
-@@ -70,13 +90,21 @@ const struct syscall_evt_pair g_syscall_
- [__NR_getcwd - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_SYSCALL_GETCWD_E, PPME_SYSCALL_GETCWD_X},
- [__NR_chdir - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP | UF_SIMPLEDRIVER_KEEP, PPME_SYSCALL_CHDIR_E, PPME_SYSCALL_CHDIR_X},
- [__NR_fchdir - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP | UF_SIMPLEDRIVER_KEEP, PPME_SYSCALL_FCHDIR_E, PPME_SYSCALL_FCHDIR_X},
-+#ifdef __NR_mkdir
- [__NR_mkdir - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_MKDIR_2_E, PPME_SYSCALL_MKDIR_2_X},
-+#endif
-+#ifdef __NR_rmdir
- [__NR_rmdir - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_RMDIR_2_E, PPME_SYSCALL_RMDIR_2_X},
-+#endif
- [__NR_openat - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP, PPME_SYSCALL_OPENAT_2_E, PPME_SYSCALL_OPENAT_2_X},
- [__NR_mkdirat - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_MKDIRAT_E, PPME_SYSCALL_MKDIRAT_X},
-+#ifdef __NR_link
- [__NR_link - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_LINK_2_E, PPME_SYSCALL_LINK_2_X},
-+#endif
- [__NR_linkat - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_LINKAT_2_E, PPME_SYSCALL_LINKAT_2_X},
-+#ifdef __NR_unlink
- [__NR_unlink - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_UNLINK_2_E, PPME_SYSCALL_UNLINK_2_X},
-+#endif
- [__NR_unlinkat - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_UNLINKAT_2_E, PPME_SYSCALL_UNLINKAT_2_X},
- [__NR_pread64 - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_PREAD_E, PPME_SYSCALL_PREAD_X},
- [__NR_pwrite64 - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_PWRITE_E, PPME_SYSCALL_PWRITE_X},
-@@ -85,16 +113,22 @@ const struct syscall_evt_pair g_syscall_
- [__NR_preadv - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_PREADV_E, PPME_SYSCALL_PREADV_X},
- [__NR_pwritev - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_PWRITEV_E, PPME_SYSCALL_PWRITEV_X},
- [__NR_dup - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP | UF_SIMPLEDRIVER_KEEP, PPME_SYSCALL_DUP_E, PPME_SYSCALL_DUP_X},
-+#ifdef __NR_dup2
- [__NR_dup2 - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP | UF_SIMPLEDRIVER_KEEP, PPME_SYSCALL_DUP_E, PPME_SYSCALL_DUP_X},
-+#endif
- [__NR_dup3 - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP | UF_SIMPLEDRIVER_KEEP, PPME_SYSCALL_DUP_E, PPME_SYSCALL_DUP_X},
-+#ifdef __NR_signalfd
- [__NR_signalfd - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP, PPME_SYSCALL_SIGNALFD_E, PPME_SYSCALL_SIGNALFD_X},
-+#endif
- [__NR_signalfd4 - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP, PPME_SYSCALL_SIGNALFD_E, PPME_SYSCALL_SIGNALFD_X},
- [__NR_kill - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_KILL_E, PPME_SYSCALL_KILL_X},
- [__NR_tkill - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_TKILL_E, PPME_SYSCALL_TKILL_X},
- [__NR_tgkill - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_TGKILL_E, PPME_SYSCALL_TGKILL_X},
- [__NR_nanosleep - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_SYSCALL_NANOSLEEP_E, PPME_SYSCALL_NANOSLEEP_X},
- [__NR_timerfd_create - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP, PPME_SYSCALL_TIMERFD_CREATE_E, PPME_SYSCALL_TIMERFD_CREATE_X},
-+#ifdef __NR_inotify_init
- [__NR_inotify_init - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP, PPME_SYSCALL_INOTIFY_INIT_E, PPME_SYSCALL_INOTIFY_INIT_X},
-+#endif
- [__NR_inotify_init1 - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP, PPME_SYSCALL_INOTIFY_INIT_E, PPME_SYSCALL_INOTIFY_INIT_X},
- [__NR_fchmodat - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_FCHMODAT_E, PPME_SYSCALL_FCHMODAT_X},
- [__NR_fchmod - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_FCHMOD_E, PPME_SYSCALL_FCHMOD_X},
-@@ -114,14 +148,22 @@ const struct syscall_evt_pair g_syscall_
- #endif
- /* [__NR_old_select - SYSCALL_TABLE_ID0] = {UF_USED, PPME_GENERIC_E, PPME_GENERIC_X}, */
- [__NR_pselect6 - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_GENERIC_E, PPME_GENERIC_X},
-+#ifdef __NR_epoll_create
- [__NR_epoll_create - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_GENERIC_E, PPME_GENERIC_X},
-+#endif
- [__NR_epoll_ctl - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_GENERIC_E, PPME_GENERIC_X},
-+#ifdef __NR_uselib
- [__NR_uselib - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_GENERIC_E, PPME_GENERIC_X},
-+#endif
- [__NR_sched_setparam - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_GENERIC_E, PPME_GENERIC_X},
- [__NR_sched_getparam - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_GENERIC_E, PPME_GENERIC_X},
- [__NR_syslog - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_GENERIC_E, PPME_GENERIC_X},
-+#ifdef __NR_chmod
- [__NR_chmod - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_CHMOD_E, PPME_SYSCALL_CHMOD_X},
-+#endif
-+#ifdef __NR_lchown
- [__NR_lchown - SYSCALL_TABLE_ID0] = {UF_USED, PPME_GENERIC_E, PPME_GENERIC_X},
-+#endif
- #ifdef __NR_utime
- [__NR_utime - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_GENERIC_E, PPME_GENERIC_X},
- #endif
-@@ -131,8 +173,9 @@ const struct syscall_evt_pair g_syscall_
- #ifdef __NR_alarm
- [__NR_alarm - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_GENERIC_E, PPME_GENERIC_X},
- #endif
-+#ifdef __NR_pause
- [__NR_pause - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_GENERIC_E, PPME_GENERIC_X},
--
-+#endif
- #ifndef __NR_socketcall
- [__NR_socket - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP | UF_SIMPLEDRIVER_KEEP, PPME_SOCKET_SOCKET_E, PPME_SOCKET_SOCKET_X},
- [__NR_bind - SYSCALL_TABLE_ID0] = {UF_USED | UF_NEVER_DROP, PPME_SOCKET_BIND_E, PPME_SOCKET_BIND_X},
-@@ -184,9 +227,13 @@ const struct syscall_evt_pair g_syscall_
- [__NR_process_vm_writev - SYSCALL_TABLE_ID0] = {UF_USED, PPME_GENERIC_E, PPME_GENERIC_X},
- #endif
-
-+#ifdef __NR_rename
- [__NR_rename - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_RENAME_E, PPME_SYSCALL_RENAME_X},
-+#endif
- [__NR_renameat - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_RENAMEAT_E, PPME_SYSCALL_RENAMEAT_X},
-+#ifdef __NR_symlink
- [__NR_symlink - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_SYMLINK_E, PPME_SYSCALL_SYMLINK_X},
-+#endif
- [__NR_symlinkat - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_SYMLINKAT_E, PPME_SYSCALL_SYMLINKAT_X},
- [__NR_sendfile - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_SENDFILE_E, PPME_SYSCALL_SENDFILE_X},
- #ifdef __NR_sendfile64
-@@ -255,7 +302,9 @@ const struct syscall_evt_pair g_syscall_
- #ifdef __NR_getresgid32
- [__NR_getresgid32 - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_GETRESGID_E, PPME_SYSCALL_GETRESGID_X },
- #endif
-+#ifdef __NR_getdents
- [__NR_getdents - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_SYSCALL_GETDENTS_E, PPME_SYSCALL_GETDENTS_X},
-+#endif
- [__NR_getdents64 - SYSCALL_TABLE_ID0] = {UF_USED | UF_ALWAYS_DROP, PPME_SYSCALL_GETDENTS64_E, PPME_SYSCALL_GETDENTS64_X},
- #ifdef __NR_setns
- [__NR_setns - SYSCALL_TABLE_ID0] = {UF_USED, PPME_SYSCALL_SETNS_E, PPME_SYSCALL_SETNS_X},
-@@ -298,19 +347,33 @@ const enum ppm_syscall_code g_syscall_co
- [__NR_exit - SYSCALL_TABLE_ID0] = PPM_SC_EXIT,
- [__NR_read - SYSCALL_TABLE_ID0] = PPM_SC_READ,
- [__NR_write - SYSCALL_TABLE_ID0] = PPM_SC_WRITE,
-+#ifdef __NR_open
- [__NR_open - SYSCALL_TABLE_ID0] = PPM_SC_OPEN,
-+#endif
- [__NR_close - SYSCALL_TABLE_ID0] = PPM_SC_CLOSE,
-+#ifdef __NR_creat
- [__NR_creat - SYSCALL_TABLE_ID0] = PPM_SC_CREAT,
-+#endif
-+#ifdef __NR_link
- [__NR_link - SYSCALL_TABLE_ID0] = PPM_SC_LINK,
-+#endif
-+#ifdef __NR_unlink
- [__NR_unlink - SYSCALL_TABLE_ID0] = PPM_SC_UNLINK,
-+#endif
- [__NR_chdir - SYSCALL_TABLE_ID0] = PPM_SC_CHDIR,
- #ifdef __NR_time
- [__NR_time - SYSCALL_TABLE_ID0] = PPM_SC_TIME,
- #endif
-+#ifdef __NR_mknod
- [__NR_mknod - SYSCALL_TABLE_ID0] = PPM_SC_MKNOD,
-+#endif
-+#ifdef __NR_chmod
- [__NR_chmod - SYSCALL_TABLE_ID0] = PPM_SC_CHMOD,
-+#endif
- /* [__NR_lchown16 - SYSCALL_TABLE_ID0] = PPM_SC_NR_LCHOWN16, */
-+#ifdef __NR_stat
- [__NR_stat - SYSCALL_TABLE_ID0] = PPM_SC_STAT,
-+#endif
- [__NR_lseek - SYSCALL_TABLE_ID0] = PPM_SC_LSEEK,
- [__NR_getpid - SYSCALL_TABLE_ID0] = PPM_SC_GETPID,
- [__NR_mount - SYSCALL_TABLE_ID0] = PPM_SC_MOUNT,
-@@ -322,17 +385,27 @@ const enum ppm_syscall_code g_syscall_co
- [__NR_alarm - SYSCALL_TABLE_ID0] = PPM_SC_ALARM,
- #endif
- [__NR_fstat - SYSCALL_TABLE_ID0] = PPM_SC_FSTAT,
-+#ifdef __NR_pause
- [__NR_pause - SYSCALL_TABLE_ID0] = PPM_SC_PAUSE,
-+#endif
- #ifdef __NR_utime
- [__NR_utime - SYSCALL_TABLE_ID0] = PPM_SC_UTIME,
- #endif
- [__NR_sync - SYSCALL_TABLE_ID0] = PPM_SC_SYNC,
- [__NR_kill - SYSCALL_TABLE_ID0] = PPM_SC_KILL,
-+#ifdef __NR_rename
- [__NR_rename - SYSCALL_TABLE_ID0] = PPM_SC_RENAME,
-+#endif
-+#ifdef __NR_mkdir
- [__NR_mkdir - SYSCALL_TABLE_ID0] = PPM_SC_MKDIR,
-+#endif
-+#ifdef __NR_rmdir
- [__NR_rmdir - SYSCALL_TABLE_ID0] = PPM_SC_RMDIR,
-+#endif
- [__NR_dup - SYSCALL_TABLE_ID0] = PPM_SC_DUP,
-+#ifdef __NR_pipe
- [__NR_pipe - SYSCALL_TABLE_ID0] = PPM_SC_PIPE,
-+#endif
- [__NR_times - SYSCALL_TABLE_ID0] = PPM_SC_TIMES,
- [__NR_brk - SYSCALL_TABLE_ID0] = PPM_SC_BRK,
- /* [__NR_setgid16 - SYSCALL_TABLE_ID0] = PPM_SC_NR_SETGID16, */
-@@ -345,10 +418,16 @@ const enum ppm_syscall_code g_syscall_co
- [__NR_setpgid - SYSCALL_TABLE_ID0] = PPM_SC_SETPGID,
- [__NR_umask - SYSCALL_TABLE_ID0] = PPM_SC_UMASK,
- [__NR_chroot - SYSCALL_TABLE_ID0] = PPM_SC_CHROOT,
-+#ifdef __NR_ustat
- [__NR_ustat - SYSCALL_TABLE_ID0] = PPM_SC_USTAT,
-+#endif
-+#ifdef __NR_dup2
- [__NR_dup2 - SYSCALL_TABLE_ID0] = PPM_SC_DUP2,
-+#endif
- [__NR_getppid - SYSCALL_TABLE_ID0] = PPM_SC_GETPPID,
-+#ifdef __NR_getpgrp
- [__NR_getpgrp - SYSCALL_TABLE_ID0] = PPM_SC_GETPGRP,
-+#endif
- [__NR_setsid - SYSCALL_TABLE_ID0] = PPM_SC_SETSID,
- [__NR_sethostname - SYSCALL_TABLE_ID0] = PPM_SC_SETHOSTNAME,
- [__NR_setrlimit - SYSCALL_TABLE_ID0] = PPM_SC_SETRLIMIT,
-@@ -359,10 +438,18 @@ const enum ppm_syscall_code g_syscall_co
- /* [__NR_getgroups16 - SYSCALL_TABLE_ID0] = PPM_SC_NR_GETGROUPS16, */
- /* [__NR_setgroups16 - SYSCALL_TABLE_ID0] = PPM_SC_NR_SETGROUPS16, */
- /* [__NR_old_select - SYSCALL_TABLE_ID0] = PPM_SC_NR_OLD_SELECT, */
-+#ifdef __NR_symlink
- [__NR_symlink - SYSCALL_TABLE_ID0] = PPM_SC_SYMLINK,
-+#endif
-+#ifdef __NR_lstat
- [__NR_lstat - SYSCALL_TABLE_ID0] = PPM_SC_LSTAT,
-+#endif
-+#ifdef __NR_readlink
- [__NR_readlink - SYSCALL_TABLE_ID0] = PPM_SC_READLINK,
-+#endif
-+#ifdef __NR_uselib
- [__NR_uselib - SYSCALL_TABLE_ID0] = PPM_SC_USELIB,
-+#endif
- [__NR_swapon - SYSCALL_TABLE_ID0] = PPM_SC_SWAPON,
- [__NR_reboot - SYSCALL_TABLE_ID0] = PPM_SC_REBOOT,
- /* [__NR_old_readdir - SYSCALL_TABLE_ID0] = PPM_SC_NR_OLD_READDIR, */
-@@ -399,12 +486,16 @@ const enum ppm_syscall_code g_syscall_co
- [__NR_delete_module - SYSCALL_TABLE_ID0] = PPM_SC_DELETE_MODULE,
- [__NR_getpgid - SYSCALL_TABLE_ID0] = PPM_SC_GETPGID,
- [__NR_fchdir - SYSCALL_TABLE_ID0] = PPM_SC_FCHDIR,
-+#ifdef __NR_sysfs
- [__NR_sysfs - SYSCALL_TABLE_ID0] = PPM_SC_SYSFS,
-+#endif
- [__NR_personality - SYSCALL_TABLE_ID0] = PPM_SC_PERSONALITY,
- /* [__NR_setfsuid16 - SYSCALL_TABLE_ID0] = PPM_SC_NR_SETFSUID16, */
- /* [__NR_setfsgid16 - SYSCALL_TABLE_ID0] = PPM_SC_NR_SETFSGID16, */
- /* [__NR_llseek - SYSCALL_TABLE_ID0] = PPM_SC_NR_LLSEEK, */
-+#ifdef __NR_getdents
- [__NR_getdents - SYSCALL_TABLE_ID0] = PPM_SC_GETDENTS,
-+#endif
- #ifdef __NR_select
- [__NR_select - SYSCALL_TABLE_ID0] = PPM_SC_SELECT,
- #endif
-@@ -431,7 +522,9 @@ const enum ppm_syscall_code g_syscall_co
- [__NR_mremap - SYSCALL_TABLE_ID0] = PPM_SC_MREMAP,
- /* [__NR_setresuid16 - SYSCALL_TABLE_ID0] = PPM_SC_NR_SETRESUID16, */
- /* [__NR_getresuid16 - SYSCALL_TABLE_ID0] = PPM_SC_NR_GETRESUID16, */
-+#ifdef __NR_poll
- [__NR_poll - SYSCALL_TABLE_ID0] = PPM_SC_POLL,
-+#endif
- /* [__NR_setresgid16 - SYSCALL_TABLE_ID0] = PPM_SC_NR_SETRESGID16, */
- /* [__NR_getresgid16 - SYSCALL_TABLE_ID0] = PPM_SC_NR_GETRESGID16, */
- [__NR_prctl - SYSCALL_TABLE_ID0] = PPM_SC_PRCTL,
-@@ -453,13 +546,17 @@ const enum ppm_syscall_code g_syscall_co
- [__NR_getrlimit - SYSCALL_TABLE_ID0] = PPM_SC_GETRLIMIT,
- #endif
- /* [__NR_mmap_pgoff - SYSCALL_TABLE_ID0] = PPM_SC_NR_MMAP_PGOFF, */
-+#ifdef __NR_lchown
- [__NR_lchown - SYSCALL_TABLE_ID0] = PPM_SC_LCHOWN,
-+#endif
- [__NR_setreuid - SYSCALL_TABLE_ID0] = PPM_SC_SETREUID,
- [__NR_setregid - SYSCALL_TABLE_ID0] = PPM_SC_SETREGID,
- [__NR_getgroups - SYSCALL_TABLE_ID0] = PPM_SC_GETGROUPS,
- [__NR_setgroups - SYSCALL_TABLE_ID0] = PPM_SC_SETGROUPS,
- [__NR_fchown - SYSCALL_TABLE_ID0] = PPM_SC_FCHOWN,
-+#ifdef __NR_chown
- [__NR_chown - SYSCALL_TABLE_ID0] = PPM_SC_CHOWN,
-+#endif
- [__NR_setfsuid - SYSCALL_TABLE_ID0] = PPM_SC_SETFSUID,
- [__NR_setfsgid - SYSCALL_TABLE_ID0] = PPM_SC_SETFSGID,
- [__NR_pivot_root - SYSCALL_TABLE_ID0] = PPM_SC_PIVOT_ROOT,
-@@ -494,9 +591,13 @@ const enum ppm_syscall_code g_syscall_co
- [__NR_io_submit - SYSCALL_TABLE_ID0] = PPM_SC_IO_SUBMIT,
- [__NR_io_cancel - SYSCALL_TABLE_ID0] = PPM_SC_IO_CANCEL,
- [__NR_exit_group - SYSCALL_TABLE_ID0] = PPM_SC_EXIT_GROUP,
-+#ifdef __NR_epoll_create
- [__NR_epoll_create - SYSCALL_TABLE_ID0] = PPM_SC_EPOLL_CREATE,
-+#endif
- [__NR_epoll_ctl - SYSCALL_TABLE_ID0] = PPM_SC_EPOLL_CTL,
-+#ifdef __NR_epoll_wait
- [__NR_epoll_wait - SYSCALL_TABLE_ID0] = PPM_SC_EPOLL_WAIT,
-+#endif
- [__NR_remap_file_pages - SYSCALL_TABLE_ID0] = PPM_SC_REMAP_FILE_PAGES,
- [__NR_set_tid_address - SYSCALL_TABLE_ID0] = PPM_SC_SET_TID_ADDRESS,
- [__NR_timer_create - SYSCALL_TABLE_ID0] = PPM_SC_TIMER_CREATE,
-@@ -509,7 +610,9 @@ const enum ppm_syscall_code g_syscall_co
- [__NR_clock_getres - SYSCALL_TABLE_ID0] = PPM_SC_CLOCK_GETRES,
- [__NR_clock_nanosleep - SYSCALL_TABLE_ID0] = PPM_SC_CLOCK_NANOSLEEP,
- [__NR_tgkill - SYSCALL_TABLE_ID0] = PPM_SC_TGKILL,
-+#ifdef __NR_utimes
- [__NR_utimes - SYSCALL_TABLE_ID0] = PPM_SC_UTIMES,
-+#endif
- [__NR_mq_open - SYSCALL_TABLE_ID0] = PPM_SC_MQ_OPEN,
- [__NR_mq_unlink - SYSCALL_TABLE_ID0] = PPM_SC_MQ_UNLINK,
- [__NR_mq_timedsend - SYSCALL_TABLE_ID0] = PPM_SC_MQ_TIMEDSEND,
-@@ -523,14 +626,18 @@ const enum ppm_syscall_code g_syscall_co
- [__NR_keyctl - SYSCALL_TABLE_ID0] = PPM_SC_KEYCTL,
- [__NR_ioprio_set - SYSCALL_TABLE_ID0] = PPM_SC_IOPRIO_SET,
- [__NR_ioprio_get - SYSCALL_TABLE_ID0] = PPM_SC_IOPRIO_GET,
-+#ifdef __NR_inotify_init
- [__NR_inotify_init - SYSCALL_TABLE_ID0] = PPM_SC_INOTIFY_INIT,
-+#endif
- [__NR_inotify_add_watch - SYSCALL_TABLE_ID0] = PPM_SC_INOTIFY_ADD_WATCH,
- [__NR_inotify_rm_watch - SYSCALL_TABLE_ID0] = PPM_SC_INOTIFY_RM_WATCH,
- [__NR_openat - SYSCALL_TABLE_ID0] = PPM_SC_OPENAT,
- [__NR_mkdirat - SYSCALL_TABLE_ID0] = PPM_SC_MKDIRAT,
- [__NR_mknodat - SYSCALL_TABLE_ID0] = PPM_SC_MKNODAT,
- [__NR_fchownat - SYSCALL_TABLE_ID0] = PPM_SC_FCHOWNAT,
-+#ifdef __NR_futimesat
- [__NR_futimesat - SYSCALL_TABLE_ID0] = PPM_SC_FUTIMESAT,
-+#endif
- [__NR_unlinkat - SYSCALL_TABLE_ID0] = PPM_SC_UNLINKAT,
- [__NR_renameat - SYSCALL_TABLE_ID0] = PPM_SC_RENAMEAT,
- [__NR_linkat - SYSCALL_TABLE_ID0] = PPM_SC_LINKAT,
-@@ -551,9 +658,13 @@ const enum ppm_syscall_code g_syscall_co
- #endif
- [__NR_epoll_pwait - SYSCALL_TABLE_ID0] = PPM_SC_EPOLL_PWAIT,
- [__NR_utimensat - SYSCALL_TABLE_ID0] = PPM_SC_UTIMENSAT,
-+#ifdef __NR_signalfd
- [__NR_signalfd - SYSCALL_TABLE_ID0] = PPM_SC_SIGNALFD,
-+#endif
- [__NR_timerfd_create - SYSCALL_TABLE_ID0] = PPM_SC_TIMERFD_CREATE,
-+#ifdef __NR_eventfd
- [__NR_eventfd - SYSCALL_TABLE_ID0] = PPM_SC_EVENTFD,
-+#endif
- [__NR_timerfd_settime - SYSCALL_TABLE_ID0] = PPM_SC_TIMERFD_SETTIME,
- [__NR_timerfd_gettime - SYSCALL_TABLE_ID0] = PPM_SC_TIMERFD_GETTIME,
- [__NR_signalfd4 - SYSCALL_TABLE_ID0] = PPM_SC_SIGNALFD4,
diff --git a/meta-oe/recipes-extended/sysdig/sysdig/fix-uint64-const.patch b/meta-oe/recipes-extended/sysdig/sysdig/fix-uint64-const.patch
deleted file mode 100644
index 5c756294b9..0000000000
--- a/meta-oe/recipes-extended/sysdig/sysdig/fix-uint64-const.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Fix x86 build
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
---- a/userspace/libsinsp/cgroup_limits.cpp
-+++ b/userspace/libsinsp/cgroup_limits.cpp
-@@ -9,7 +9,7 @@ namespace {
- // This reports extremely large values (e.g. almost-but-not-quite 9EiB as set by k8s) as unlimited.
- // Note: we use the same maximum value for cpu shares/quotas as well; the typical values are much lower
- // and so should never exceed CGROUP_VAL_MAX either
--constexpr const int64_t CGROUP_VAL_MAX = (1UL << 42u) - 1;
-+constexpr const int64_t CGROUP_VAL_MAX = (1ULL << 42u) - 1;
-
- /**
- * \brief Read a single int64_t value from cgroupfs
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 04a022af4f..0000000000
--- a/meta-oe/recipes-extended/sysdig/sysdig_git.bb
+++ /dev/null
@@ -1,54 +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 = "Apache-2.0 & (MIT | GPL-2.0)"
-LIC_FILES_CHKSUM = "file://COPYING;md5=f8fee3d59797546cffab04f3b88b2d44"
-
-inherit cmake pkgconfig
-
-#OECMAKE_GENERATOR = "Unix Makefiles"
-JIT ?= "jit"
-JIT_mipsarchn32 = ""
-JIT_mipsarchn64 = ""
-JIT_riscv64 = ""
-JIT_riscv32 = ""
-
-DEPENDS += "lua${JIT} zlib c-ares grpc-native grpc curl ncurses jsoncpp tbb jq openssl elfutils protobuf protobuf-native jq-native"
-RDEPENDS_${PN} = "bash"
-
-SRC_URI = "git://github.com/draios/sysdig.git;branch=dev \
- file://0001-fix-build-with-LuaJIT-2.1-betas.patch \
- file://0001-Fix-build-with-musl-backtrace-APIs-are-glibc-specifi.patch \
- file://fix-uint64-const.patch \
- file://aarch64.patch \
- "
-SRCREV = "8daeef8da752c5f07f439391bc20c5948eb11470"
-PV = "0.26.6"
-
-S = "${WORKDIR}/git"
-
-EXTRA_OECMAKE = "\
- -DBUILD_DRIVER=OFF \
- -DUSE_BUNDLED_DEPS=OFF \
- -DUSE_BUNDLED_B64=ON \
- -DCREATE_TEST_TARGETS=OFF \
- -DDIR_ETC=${sysconfdir} \
- -DLUA_INCLUDE_DIR=${STAGING_INCDIR}/luajit-2.1 \
- -DLUA_LIBRARY=libluajit-5.1.so \
-"
-
-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"
diff --git a/meta-oe/recipes-extended/tipcutils/tipcutils/0001-include-sys-select.h-for-FD_-definitions.patch b/meta-oe/recipes-extended/tipcutils/tipcutils/0001-include-sys-select.h-for-FD_-definitions.patch
index 6c8ba9074a..9f0604892d 100644
--- a/meta-oe/recipes-extended/tipcutils/tipcutils/0001-include-sys-select.h-for-FD_-definitions.patch
+++ b/meta-oe/recipes-extended/tipcutils/tipcutils/0001-include-sys-select.h-for-FD_-definitions.patch
@@ -5,6 +5,8 @@ Subject: [PATCH 1/2] include sys/select.h for FD_* definitions
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
demos/inventory_sim/inventory_sim.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta-oe/recipes-extended/tipcutils/tipcutils/0002-replace-non-standard-uint-with-unsigned-int.patch b/meta-oe/recipes-extended/tipcutils/tipcutils/0002-replace-non-standard-uint-with-unsigned-int.patch
index 03e711e9a4..89eae015c6 100644
--- a/meta-oe/recipes-extended/tipcutils/tipcutils/0002-replace-non-standard-uint-with-unsigned-int.patch
+++ b/meta-oe/recipes-extended/tipcutils/tipcutils/0002-replace-non-standard-uint-with-unsigned-int.patch
@@ -7,6 +7,8 @@ make it portable on musl
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
demos/benchmark/client_tipc.c | 34 +++++++++++++++++-----------------
demos/benchmark/common_tipc.h | 2 +-
demos/benchmark/server_tipc.c | 10 +++++-----
diff --git a/meta-oe/recipes-extended/tipcutils/tipcutils_git.bb b/meta-oe/recipes-extended/tipcutils/tipcutils_git.bb
index 637770af24..fc64ec0fcb 100644
--- a/meta-oe/recipes-extended/tipcutils/tipcutils_git.bb
+++ b/meta-oe/recipes-extended/tipcutils/tipcutils_git.bb
@@ -1,8 +1,8 @@
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 \
@@ -15,15 +15,15 @@ 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
@@ -44,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_2.3.1.bb b/meta-oe/recipes-extended/tiptop/tiptop_2.3.1.bb
index cf67a08b3e..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,23 +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 = "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[md5sum] = "46ca0fdf0236f02dd2b96d347626d2a2"
SRC_URI[sha256sum] = "51c4449c95bba34f16b429729c2f58431490665d8093efaa8643b2e1d1084182"
+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_3.1c.bb b/meta-oe/recipes-extended/tmux/tmux_3.3a.bb
index 7cac48eb6c..5187222838 100644
--- a/meta-oe/recipes-extended/tmux/tmux_3.1c.bb
+++ b/meta-oe/recipes-extended/tmux/tmux_3.3a.bb
@@ -8,8 +8,8 @@ LIC_FILES_CHKSUM = "file://tmux.c;beginline=3;endline=17;md5=f256b76d52e7b4d02bf
DEPENDS = "ncurses libevent"
SRC_URI = "https://github.com/tmux/tmux/releases/download/${PV}/tmux-${PV}.tar.gz"
-SRC_URI[md5sum] = "7301d3fa12f35051edb185496766c745"
-SRC_URI[sha256sum] = "918f7220447bef33a1902d4faff05317afd9db4ae1c9971bef5c787ac6c88386"
+SRC_URI[md5sum] = "8eee5883b9f6550fa4efaad0c9ec38f3"
+SRC_URI[sha256sum] = "e4fd347843bd0772c4f48d6dde625b0b109b7a380ff15db21e97c11a4dcdf93f"
UPSTREAM_CHECK_URI = "https://github.com/tmux/tmux/releases"
@@ -18,7 +18,7 @@ inherit autotools pkgconfig
PACKAGECONFIG ??= ""
PACKAGECONFIG[utempter] = "ac_cv_header_utempter_h=yes,ac_cv_header_utempter_h=no,libutempter,"
-do_configure_prepend() {
+do_configure:prepend() {
# The 'compat' directory is needed for output during the build but it's
# not automatically created when building outside the source directory.
mkdir -p ${B}/compat
diff --git a/meta-oe/recipes-extended/triggerhappy/triggerhappy_git.bb b/meta-oe/recipes-extended/triggerhappy/triggerhappy_git.bb
index 38ce4f5571..3a3dd192be 100644
--- a/meta-oe/recipes-extended/triggerhappy/triggerhappy_git.bb
+++ b/meta-oe/recipes-extended/triggerhappy/triggerhappy_git.bb
@@ -1,13 +1,13 @@
SUMMARY = "A lightweight hotkey daemon"
HOMEPAGE = "https://github.com/wertarbyte/triggerhappy"
-LICENSE = "GPLv3"
+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"
+SRC_URI = "git://github.com/wertarbyte/${BPN}.git;branch=debian;protocol=https"
S = "${WORKDIR}/git"
@@ -18,9 +18,9 @@ PACKAGECONFIG[systemd] = ",,systemd"
INITSCRIPT_NAME = "triggerhappy"
INITSCRIPT_PARAMS = "defaults"
-SYSTEMD_SERVICE_${PN} = "triggerhappy.service triggerhappy.socket"
+SYSTEMD_SERVICE:${PN} = "triggerhappy.service triggerhappy.socket"
-FILES_${PN} = "\
+FILES:${PN} = "\
${sbindir}/thd \
${sbindir}/th-cmd \
${sysconfdir}/triggerhappy/triggers.d \
@@ -28,9 +28,9 @@ FILES_${PN} = "\
${sysconfdir}/init.d/triggerhappy \
${systemd_unitdir}/system \
"
-CONFFILES_${PN} = "${sysconfdir}/udev/rules.d/80-triggerhappy.rules"
+CONFFILES:${PN} = "${sysconfdir}/udev/rules.d/80-triggerhappy.rules"
-do_install_append() {
+do_install:append() {
install -d ${D}${sysconfdir}/triggerhappy/triggers.d
install -d ${D}${nonarch_base_libdir}/udev/rules.d
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 8e00cb3ea4..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"
@@ -18,15 +21,14 @@ 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:${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
index 4b9a195e02..8c3b148369 100644
--- a/meta-oe/recipes-extended/upm/upm/0001-CMakeLists.txt-Use-SWIG_SUPPORT_FILES-to-find-the-li.patch
+++ b/meta-oe/recipes-extended/upm/upm/0001-CMakeLists.txt-Use-SWIG_SUPPORT_FILES-to-find-the-li.patch
@@ -10,6 +10,8 @@ cmake version 3.12 or higher
Signed-off-by: Manjukumar Matha <manjukumar.harthikote-matha@xilinx.com>
---
+Upstream-Status: Pending
+
src/CMakeLists.txt | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/meta-oe/recipes-extended/upm/upm/0001-include-missing-cstdint.patch b/meta-oe/recipes-extended/upm/upm/0001-include-missing-cstdint.patch
new file mode 100644
index 0000000000..59f81bf3a2
--- /dev/null
+++ b/meta-oe/recipes-extended/upm/upm/0001-include-missing-cstdint.patch
@@ -0,0 +1,43 @@
+From 64f75806c04c2ee819cf2f92cb564ad316354823 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 29 Jan 2023 00:27:47 -0800
+Subject: [PATCH] include missing <cstdint>
+
+gcc 13 moved some includes around and as a result <cstdint> is no longer transitively included [1]. Explicitly include it for uint{32,64}_t.
+
+[1] https://gcc.gnu.org/gcc-13/porting_to.html#header-dep-changes
+
+Upstream-Status: Submitted [https://github.com/eclipse/upm/pull/704]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/mcp9808/mcp9808.hpp | 1 +
+ src/micsv89/micsv89.hpp | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/src/mcp9808/mcp9808.hpp b/src/mcp9808/mcp9808.hpp
+index b9e138d7..2509cd30 100644
+--- a/src/mcp9808/mcp9808.hpp
++++ b/src/mcp9808/mcp9808.hpp
+@@ -13,6 +13,7 @@
+
+ #pragma once
+
++#include <cstdint>
+ #include <iostream>
+ #include <string>
+ #include <interfaces/iTemperature.hpp>
+diff --git a/src/micsv89/micsv89.hpp b/src/micsv89/micsv89.hpp
+index 2f97dbce..c6e22ad8 100644
+--- a/src/micsv89/micsv89.hpp
++++ b/src/micsv89/micsv89.hpp
+@@ -11,6 +11,7 @@
+
+ #pragma once
+
++#include <cstdint>
+ #include <iostream>
+ #include <string>
+
+--
+2.39.1
+
diff --git a/meta-oe/recipes-extended/upm/upm_git.bb b/meta-oe/recipes-extended/upm/upm_git.bb
index 6a7611f382..0695f99695 100644
--- a/meta-oe/recipes-extended/upm/upm_git.bb
+++ b/meta-oe/recipes-extended/upm/upm_git.bb
@@ -10,35 +10,36 @@ DEPENDS = "libjpeg-turbo mraa"
SRCREV = "5cf20df96c6b35c19d5b871ba4e319e96b4df72d"
PV = "2.0.0+git${SRCPV}"
-SRC_URI = "git://github.com/eclipse/${BPN}.git;protocol=http \
+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 "
+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 pkgconfig
+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)}"
@@ -46,15 +47,15 @@ PACKAGECONFIG ??= "${@bb.utils.contains('PACKAGES', 'node-${PN}', 'nodejs', '',
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,"
-do_configure_prepend() {
+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:${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/volume-key_0.3.12.bb b/meta-oe/recipes-extended/volume_key/volume-key_0.3.12.bb
index e036f714ba..aff555ad54 100644
--- a/meta-oe/recipes-extended/volume_key/volume-key_0.3.12.bb
+++ b/meta-oe/recipes-extended/volume_key/volume-key_0.3.12.bb
@@ -1,7 +1,7 @@
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"
+LICENSE = "GPL-2.0-only"
SECTION = "devel/lib"
HOMEPAGE = "https://pagure.io/volume_key"
@@ -16,7 +16,7 @@ SRC_URI[sha256sum] = "6ca3748fc1dad22c450bbf6601d4e706cb11c5e662d11bb4aeb473a9cd
SRCNAME = "volume_key"
S = "${WORKDIR}/${SRCNAME}-${PV}"
-inherit autotools python3native gettext
+inherit autotools python3native python3targetconfig gettext pkgconfig
DEPENDS += " \
util-linux \
@@ -32,7 +32,7 @@ PACKAGECONFIG[python3] = "--with-python3,--without-python3,python3,python3"
EXTRA_OECONF = "--without-python"
-RDEPENDS_python3-${BPN} += "${PN}"
+RDEPENDS:python3-${BPN} += "${PN}"
PACKAGES += "python3-${BPN}"
-FILES_python3-${BPN} = "${PYTHON_SITEPACKAGES_DIR}/*"
+FILES:python3-${BPN} = "${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
index 831d514a4e..ad32cb0e72 100644
--- a/meta-oe/recipes-extended/wipe/wipe_0.24.bb
+++ b/meta-oe/recipes-extended/wipe/wipe_0.24.bb
@@ -6,10 +6,10 @@ including Linux 2. * , (Open, Net, Free)BSD, aix 4.1, SunOS \
packages are available on most Linux distributions. \
Under Debian, the package name is wipe"
HOMEPAGE = "http://lambda-diode.com/software/wipe/"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://GPL;md5=0636e73ff0215e8d672dc4c32c317bb3"
-SRC_URI = "git://github.com/berke/wipe.git;branch=master \
+SRC_URI = "git://github.com/berke/wipe.git;branch=master;protocol=https \
file://support-cross-compile-for-linux.patch \
file://makefile-add-ldflags.patch \
"
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/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_git.bb b/meta-oe/recipes-extended/wxwidgets/wxwidgets_3.2.1.bb
index 26a9004fb7..91653e2852 100644
--- a/meta-oe/recipes-extended/wxwidgets/wxwidgets_git.bb
+++ b/meta-oe/recipes-extended/wxwidgets/wxwidgets_3.2.1.bb
@@ -3,17 +3,14 @@ DESCRIPTION = "wxWidgets is a free and open source cross-platform C++ framework
HOMEPAGE = "https://www.wxwidgets.org/"
BUGTRACKER = "https://trac.wxwidgets.org/"
-# wxWidgets licence is a modified version of LGPL explicitly allowing not
+# 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 = "wxWidgets"
+LICENSE = "WXwindows"
LIC_FILES_CHKSUM = "file://docs/licence.txt;md5=981f50a934828620b08f44d75db557c6"
inherit ${@bb.utils.contains('PACKAGECONFIG', 'qt', 'cmake_qt5', 'cmake', d)}
-inherit features_check lib_package binconfig
-
-# All toolkit-configs except 'no_gui' require x11 explicitly (see toolkit.cmake)
-REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains('PACKAGECONFIG', 'no_gui', '', 'x11', d)}"
+inherit lib_package binconfig pkgconfig
DEPENDS += " \
jpeg \
@@ -21,32 +18,41 @@ DEPENDS += " \
tiff \
"
-SRC_URI = " \
- git://github.com/wxWidgets/wxWidgets.git \
- file://0001-wx-config.in-Disable-cross-magic-it-does-not-work-fo.patch \
-"
-PV = "3.1.4"
-SRCREV= "6cdaedd42ba59331b3dc4ead50e0bac76ae14c19"
+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_libc-musl = " \
- -DHAVE_LOCALE_T=OFF \
+EXTRA_OECMAKE:append:class-target = ' -DEGREP="/bin/grep -E"'
+
+# OpenGL support currently seems tied to using libglu, which requires x11
+PACKAGECONFIG ?= "${@bb.utils.contains_any('DISTRO_FEATURES', 'x11 wayland', 'gtk', 'no_gui', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'opengl', '', d)} \
"
-PACKAGECONFIG ?= "gtk ${@bb.utils.filter('DISTRO_FEATURES', '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,,gtk+3,,,no_gui qt"
+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')
@@ -66,11 +72,15 @@ PACKAGECONFIG[gstreamer] = "-DwxUSE_MEDIACTRL=ON,-DwxUSE_MEDIACTRL=OFF,gstreamer
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] = ",,libglu"
+PACKAGECONFIG[opengl] = "-DwxUSE_OPENGL=ON,-DwxUSE_OPENGL=OFF,libglu"
PACKAGECONFIG[sdl_audio] = "-DwxUSE_LIBSDL=ON,-DwxUSE_LIBSDL=OFF,libsdl2"
-PACKAGECONFIG[webkit] = "-DwxUSE_WEBVIEW_WEBKIT=ON,-DwxUSE_WEBVIEW_WEBKIT=OFF,webkitgtk,,,no_gui"
+PACKAGECONFIG[webkit] = "-DwxUSE_WEBVIEW_WEBKIT=ON,-DwxUSE_WEBVIEW_WEBKIT=OFF,webkitgtk3,,,no_gui"
+PACKAGECONFIG[curl] = "-DwxUSE_WEBREQUEST_CURL=ON,-DwxUSE_WEBREQUEST_CURL=OFF,curl"
-do_compile_append() {
+# 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
@@ -88,17 +98,26 @@ do_compile_append() {
${B}/wx-config
}
-do_install_append() {
+do_install:append() {
# do not ship bindir if empty
rmdir --ignore-fail-on-non-empty ${D}${bindir}
-}
-# lib names are not canonical
-FILES_SOLIBSDEV = ""
+ # 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}/libwx_*.so \
+FILES:${PN} += " \
${libdir}/wx/ \
"
-FILES_${PN}-dev += "${libdir}/wx/include/"
+FILES:${PN}-dev += " \
+ ${libdir}/wx/include/ \
+ ${libdir}/wx/config/ \
+"
+
+RDEPENDS:${PN}-dev += "grep"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-extended/zlog/zlog_1.2.15.bb b/meta-oe/recipes-extended/zlog/zlog_1.2.16.bb
index 7dde4182fb..b75802f09f 100644
--- a/meta-oe/recipes-extended/zlog/zlog_1.2.15.bb
+++ b/meta-oe/recipes-extended/zlog/zlog_1.2.16.bb
@@ -1,10 +1,10 @@
DESCRIPTION = "Zlog is a pure C logging library"
HOMEPAGE = "https://github.com/HardySimpson/zlog"
-LICENSE = "LGPLv2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-SRCREV = "876099f3c66033f3de11d79f63814766b1021dbe"
-SRC_URI = "git://github.com/HardySimpson/zlog"
+SRCREV = "dc2c284664757fce6ef8f96f8b3ab667a53ef489"
+SRC_URI = "git://github.com/HardySimpson/zlog;branch=master;protocol=https"
S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-extended/zram/zram/zram-swap-init b/meta-oe/recipes-extended/zram/zram/zram-swap-init
index 0643dbca23..28082f7ff0 100755
--- a/meta-oe/recipes-extended/zram/zram/zram-swap-init
+++ b/meta-oe/recipes-extended/zram/zram/zram-swap-init
@@ -14,7 +14,7 @@ fi
ZRAM_SIZE_PERCENT=100
ZRAM_ALGORITHM=lz4
-[ -f /etc/default/zram ] && ./etc/default/zram || true
+[ -f /etc/default/zram ] && . /etc/default/zram || true
memtotal=$(grep MemTotal /proc/meminfo | awk ' { print $2 } ')
memzram=$(($memtotal*${ZRAM_SIZE_PERCENT}/100))
@@ -24,3 +24,8 @@ 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_0.2.bb b/meta-oe/recipes-extended/zram/zram_0.2.bb
index 98c47af7ac..97db34134e 100644
--- a/meta-oe/recipes-extended/zram/zram_0.2.bb
+++ b/meta-oe/recipes-extended/zram/zram_0.2.bb
@@ -4,9 +4,9 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda
inherit update-rc.d systemd
-RDEPENDS_${PN} = "kmod \
+RDEPENDS:${PN} = "kmod \
${@bb.utils.contains('DISTRO_FEATURES','systemd','util-linux','util-linux-swaponoff',d)}"
-RRECOMMENDS_${PN} = "kernel-module-zram"
+RRECOMMENDS:${PN} = "kernel-module-zram"
PR = "r3"
@@ -36,7 +36,7 @@ do_install () {
fi
}
-FILES_${PN} = " \
+FILES:${PN} = " \
${sysconfdir} \
${systemd_unitdir} \
${libexecdir} \
@@ -44,7 +44,7 @@ FILES_${PN} = " \
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"
+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/zstd/zstd/0001-Fix-legacy-build-after-2103.patch b/meta-oe/recipes-extended/zstd/zstd/0001-Fix-legacy-build-after-2103.patch
deleted file mode 100644
index c701554b8b..0000000000
--- a/meta-oe/recipes-extended/zstd/zstd/0001-Fix-legacy-build-after-2103.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 93cec0c1d6d0be8dd3a9d01d3e7f2099f1728df7 Mon Sep 17 00:00:00 2001
-From: Orivej Desh <orivej@gmx.fr>
-Date: Fri, 22 May 2020 12:48:02 +0000
-Subject: [PATCH] Fix legacy build after #2103
-
-Upstream-Status: Backport
-Signed-of-by: Alex Kiernan <alex.kiernan@gmail.com>
----
- lib/legacy/zstd_v04.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/lib/legacy/zstd_v04.c b/lib/legacy/zstd_v04.c
-index 56bf45222498..19fda8980abf 100644
---- a/lib/legacy/zstd_v04.c
-+++ b/lib/legacy/zstd_v04.c
-@@ -74,7 +74,7 @@ extern "C" {
- /*-*************************************
- * Debug
- ***************************************/
--#include "debug.h"
-+#include "../common/debug.h"
- #ifndef assert
- # define assert(condition) ((void)0)
- #endif
---
-2.17.1
-
diff --git a/meta-oe/recipes-extended/zstd/zstd_1.4.5.bb b/meta-oe/recipes-extended/zstd/zstd_1.4.5.bb
deleted file mode 100644
index cd0b471e17..0000000000
--- a/meta-oe/recipes-extended/zstd/zstd_1.4.5.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-SUMMARY = "Zstandard - Fast real-time compression algorithm"
-DESCRIPTION = "Zstandard is a fast lossless compression algorithm, targeting \
-real-time compression scenarios at zlib-level and better compression ratios. \
-It's backed by a very fast entropy stage, provided by Huff0 and FSE library."
-HOMEPAGE = "http://www.zstd.net/"
-SECTION = "console/utils"
-
-LICENSE = "BSD-3-Clause & GPLv2"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c7f0b161edbe52f5f345a3d1311d0b32 \
- file://COPYING;md5=39bba7d2cf0ba1036f2a6e2be52fe3f0"
-
-SRC_URI = "git://github.com/facebook/zstd.git;nobranch=1 \
- file://0001-Fix-legacy-build-after-2103.patch \
- "
-
-SRCREV = "b706286adbba780006a47ef92df0ad7a785666b6"
-UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
-
-S = "${WORKDIR}/git"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[lz4] = "HAVE_LZ4=1,HAVE_LZ4=0,lz4"
-PACKAGECONFIG[lzma] = "HAVE_LZMA=1,HAVE_LZMA=0,xz"
-PACKAGECONFIG[zlib] = "HAVE_ZLIB=1,HAVE_ZLIB=0,zlib"
-
-# See programs/README.md for how to use this
-ZSTD_LEGACY_SUPPORT ??= "4"
-
-do_compile () {
- oe_runmake ${PACKAGECONFIG_CONFARGS} ZSTD_LEGACY_SUPPORT=${ZSTD_LEGACY_SUPPORT}
-}
-
-do_install () {
- oe_runmake install 'DESTDIR=${D}'
-}
-
-BBCLASSEXTEND = "native nativesdk"
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"