summaryrefslogtreecommitdiffstats
path: root/meta-openembedded/meta-oe/recipes-support
diff options
context:
space:
mode:
Diffstat (limited to 'meta-openembedded/meta-oe/recipes-support')
-rw-r--r--meta-openembedded/meta-oe/recipes-support/asio/asio/0001-Automatically-handle-glibc-variant-of-strerror_r-wit.patch46
-rw-r--r--meta-openembedded/meta-oe/recipes-support/asio/asio/0001-use-POSIX-poll.h-instead-of-sys-poll.h.patch64
-rw-r--r--meta-openembedded/meta-oe/recipes-support/asio/asio_1.10.6.bb11
-rw-r--r--meta-openembedded/meta-oe/recipes-support/asio/asio_1.12.1.bb (renamed from meta-openembedded/meta-oe/recipes-support/asio/asio.inc)7
-rw-r--r--meta-openembedded/meta-oe/recipes-support/atop/atop/0001-add-sys-sysmacros.h-for-major-minor-macros.patch26
-rw-r--r--meta-openembedded/meta-oe/recipes-support/atop/atop/0001-include-missing-header-files.patch97
-rw-r--r--meta-openembedded/meta-oe/recipes-support/atop/atop_2.3.0.bb (renamed from meta-openembedded/meta-oe/recipes-support/atop/atop_2.2.3.bb)28
-rw-r--r--meta-openembedded/meta-oe/recipes-support/augeas/augeas.inc2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/augeas/augeas_1.10.1.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/augeas/augeas_1.5.0.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/ceres-solver/ceres-solver_1.14.bb11
-rw-r--r--meta-openembedded/meta-oe/recipes-support/ckermit/ckermit_302.bb8
-rw-r--r--meta-openembedded/meta-oe/recipes-support/cpprest/cpprest-2.10.2/fix-cmake-install.patch17
-rw-r--r--meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/950-fix.patch26
-rw-r--r--meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-float-tests.patch25
-rw-r--r--meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-outside-tests.patch142
-rw-r--r--meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-test-timeouts.patch103
-rw-r--r--meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/system-brotli.patch38
-rw-r--r--meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.2.bb17
-rw-r--r--meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.7.bb23
-rw-r--r--meta-openembedded/meta-oe/recipes-support/dos2unix/dos2unix_7.4.0.bb34
-rw-r--r--meta-openembedded/meta-oe/recipes-support/eject/eject/0001-eject-Include-sys-sysmacros.h-for-major-minor.patch27
-rw-r--r--meta-openembedded/meta-oe/recipes-support/eject/eject_2.1.5.bb3
-rw-r--r--meta-openembedded/meta-oe/recipes-support/espeak/espeak-data_1.48.04.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/espeak/espeak.inc3
-rw-r--r--meta-openembedded/meta-oe/recipes-support/espeak/espeak_1.48.04.bb3
-rw-r--r--meta-openembedded/meta-oe/recipes-support/espeak/files/0001-Fix-build-of-shared-library-on-architectures-needing.patch31
-rw-r--r--meta-openembedded/meta-oe/recipes-support/espeak/files/espeak-1.48-gcc-6-fix.patch12
-rw-r--r--meta-openembedded/meta-oe/recipes-support/espeak/files/gcc-narrowing-warning-fix.patch56
-rw-r--r--meta-openembedded/meta-oe/recipes-support/eventlog/eventlog_0.2.13.bb21
-rw-r--r--meta-openembedded/meta-oe/recipes-support/farsight/libnice_0.1.14.bb (renamed from meta-openembedded/meta-oe/recipes-support/farsight/libnice_0.1.13.bb)18
-rw-r--r--meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.8.bb (renamed from meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.7.bb)7
-rw-r--r--meta-openembedded/meta-oe/recipes-support/fltk/fltk.inc6
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gd/gd/0001-annotate.c-gdft.c-Replace-strncpy-with-memccpy-to-fi.patch46
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2018-1000222.patch82
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.5.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gflags/gflags_2.2.0.bb7
-rw-r--r--meta-openembedded/meta-oe/recipes-support/glog/glog/0001-Rework-CMake-glog-VERSION-management.patch71
-rw-r--r--meta-openembedded/meta-oe/recipes-support/glog/glog/0001-configure.ac-Allow-user-to-disable-gflags.patch35
-rw-r--r--meta-openembedded/meta-oe/recipes-support/glog/glog/0002-Find-Libunwind-during-configure.patch120
-rw-r--r--meta-openembedded/meta-oe/recipes-support/glog/glog/0003-installation-path-fix.patch65
-rw-r--r--meta-openembedded/meta-oe/recipes-support/glog/glog_0.3.5.bb (renamed from meta-openembedded/meta-oe/recipes-support/glog/glog_0.3.4.bb)15
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gnulib/gnulib/CVE-2018-17942.patch88
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_2017-08-20.18.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-Use-ucontext_t-instead-of-struct-ucontext.patch34
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-fix-build-with-musl-libc.patch8
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-include-fcntl.h-for-loff_t-definition.patch26
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.7.bb (renamed from meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.6.1.bb)8
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gpm/gpm_git.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gradm/gradm_3.1.bb6
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.51.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/htop/htop_2.2.0.bb (renamed from meta-openembedded/meta-oe/recipes-support/htop/htop_2.1.0.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_git.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.7.bb3
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.11.bb25
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libbytesize/files/0001-remove-python2-support.patch30
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_1.3.bb (renamed from meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_0.10.bb)6
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.3.5.bb (renamed from meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.3.4.bb)10
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libestr/libestr_0.1.11.bb (renamed from meta-openembedded/meta-oe/recipes-support/libestr/libestr_0.1.10.bb)6
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.4.bb10
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libgit2/libgit2_0.27.4.bb (renamed from meta-openembedded/meta-oe/recipes-support/libgit2/libgit2_0.24.3.bb)11
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.0.1.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.2.bb16
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb3
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.59.bb (renamed from meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.55.bb)9
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libmxml/libmxml_git.bb41
-rw-r--r--meta-openembedded/meta-oe/recipes-support/liboauth/liboauth/0001-Support-OpenSSL-1.1.0.patch151
-rw-r--r--meta-openembedded/meta-oe/recipes-support/liboauth/liboauth_1.0.3.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.7.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf/use.pkg-config.for.freetype2.patch62
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf_2.0.11.bb29
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf/automake_foreign.patch21
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf/use.pkg-config.for.freetype2.patch62
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf_2.0.14.bb30
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libssh/libssh_0.8.4.bb (renamed from meta-openembedded/meta-oe/recipes-support/libssh/libssh_0.7.3.bb)21
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_7.0.1.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libusb/libusb-compat/0001-usb.h-Include-sys-types.h.patch30
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libusb/libusb-compat_0.1.5.bb42
-rw-r--r--meta-openembedded/meta-oe/recipes-support/links/files/ac-prog-cxx.patch24
-rw-r--r--meta-openembedded/meta-oe/recipes-support/links/links-x11_2.16.bb53
-rw-r--r--meta-openembedded/meta-oe/recipes-support/links/links-x11_2.7.bb31
-rw-r--r--meta-openembedded/meta-oe/recipes-support/links/links.inc2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/links/links_2.16.bb (renamed from meta-openembedded/meta-oe/recipes-support/links/links_2.7.bb)6
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lockdev/lockdev/0001-include-sys-sysmacros.h-for-major-minor-definitions.patch30
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lockdev/lockdev_git.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lvm2/files/0001-Avoid-bashisms-in-init-scripts.patch83
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lvm2/files/0001-implement-libc-specific-reopen_stream.patch29
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lvm2/files/0002-Guard-use-of-mallinfo-with-__GLIBC__.patch13
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lvm2/files/0004-tweak-MODPROBE_CMD-for-cross-compile.patch28
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lvm2/files/0005-do-not-build-manual.patch39
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.02.180.bb (renamed from meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.02.171.bb)5
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc8
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-explicitly-do-not-install-libdm.patch28
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.02.180.bb (renamed from meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.02.171.bb)12
-rw-r--r--meta-openembedded/meta-oe/recipes-support/mcelog/mce-inject_git.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_161.bb (renamed from meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_1.49.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-kpartx-include-limits.h-for-PATH_MAX.patch29
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-multipath-attempt-at-common-multipath.rules.patch107
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-multipath-tools-add-RDAC-SUN-ArrayStorage-to-hwtable.patch42
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0002-RH-fixup-udev-rules-for-redhat.patch110
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0002-multipath-tools-remove-c-from-__cpluscplus-misspelle.patch33
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0003-multipath-tools-remove-emacs-autoconfig-of-kpartx-gp.patch43
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0004-multipath-tools-replace-FSF-address-with-a-www-point.patch191
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0005-multipath-tools-Remove-trailing-leading-whitespaces-.patch156
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0006-multipath-tools-fix-compilation-with-musl-libc.patch58
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0007-RH-trigger-change-uevent-on-new-device-creation.patch138
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0007-multipath-tools-add-x-to-doc-preclean.pl-and-split-m.patch27
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0008-libmultipath-change-how-RADOS-checker-is-enabled.patch56
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0008-multipath-tools-refresh-kernel-doc-from-kernel-sourc.patch784
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0009-multipath-set-verbosity-to-default-during-config.patch40
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0009-multipath-tools-configure-hitachi-ams2000-and-hus100.patch56
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0010-libmultipath-don-t-reject-maps-with-undefined-prio.patch42
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0010-mpath-skip-device-configs-without-vendor-product.patch37
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0011-multipathd-fix-show-maps-json-crash.patch38
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0011-multipathd-handle-errors-in-uxlsnr-as-fatal.patch57
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0012-libmultipath-fix-error-parsing-find_multipaths-stric.patch36
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0012-multipath-tools-modify-Makefile.inc-for-cross-compil.patch58
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0013-libmultipath-print-correct-default-for-delay_-_check.patch40
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0014-multipath.conf.5-clarify-property-whitelist-handling.patch31
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0015-mpathpersist-add-all_tg_pt-option.patch317
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0016-libmultipath-remove-rbd-code.patch1093
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0017-mpathpersist-fix-aptpl-support.patch543
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0018-multipath-don-t-check-timestamps-without-a-path.patch34
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0019-libmultipath-fix-detect-alua-corner-case.patch35
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0020-multipath-fix-setting-conf-version.patch39
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0021-RH-fixup-udev-rules-for-redhat.patch82
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0022-RH-Remove-the-property-blacklist-exception-builtin.patch (renamed from meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0003-RH-Remove-the-property-blacklist-exception-builtin.patch)31
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0023-RH-don-t-start-without-a-config-file.patch (renamed from meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0004-RH-don-t-start-without-a-config-file.patch)40
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0024-RH-use-rpm-optflags-if-present.patch52
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0025-RH-add-mpathconf.patch (renamed from meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0005-RH-add-mpathconf.patch)20
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0026-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch (renamed from meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0006-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch)55
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0027-RH-warn-on-invalid-regex-instead-of-failing.patch121
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0028-RH-reset-default-find_mutipaths-value-to-off.patch29
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0029-multipath-tools-modify-Makefile.inc-for-cross-compil.patch49
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0030-Always-use-devmapper.patch (renamed from meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0013-Always-use-devmapper.patch)16
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0031-Always-use-devmapper-for-kpartx.patch (renamed from meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0014-Always-use-devmapper-for-kpartx.patch)15
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.7.7.bb (renamed from meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.7.1.bb)50
-rw-r--r--meta-openembedded/meta-oe/recipes-support/nano/nano_2.9.3.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/nano/nano_3.0.bb (renamed from meta-openembedded/meta-oe/recipes-support/nano/nano.inc)7
-rw-r--r--meta-openembedded/meta-oe/recipes-support/ne10/ne10_1.2.1.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/numactl/numactl/0001-fix-NULL-pointer-problem.patch35
-rw-r--r--meta-openembedded/meta-oe/recipes-support/numactl/numactl/fix-null-pointer.patch28
-rw-r--r--meta-openembedded/meta-oe/recipes-support/numactl/numactl_git.bb9
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Remove-assumptions-about-glibc-being-only-libc-imple.patch45
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Use-off64_t-instead-of-__off64_t.patch31
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch17
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-include-poll.h-instead-of-sys-poll.h.patch26
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-Rename-poll.h-to-vm_poll.h.patch115
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-include-poll.h-instead-of-obsolete-sys-poll.h.patch24
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0003-Rename-poll.h-to-vm_poll.h.patch756
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0003-use-posix-strerror_r-unless-on-gnu-libc-system.patch39
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0004-Add-Wno-incompatible-pointer-types-and-Wno-error-add.patch31
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0004-Use-uintmax_t-for-handling-rlim_t.patch29
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0007-Use-configure-to-test-for-feature-instead-of-platfor.patch13
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0008-use-posix-strerror_r-unless-gnu.patch30
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0009-Add-support-for-building-with-system-libtirpc.patch342
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0010-gnu-ucontext.patch65
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/fix-subdir-objects-configure-error.patch12
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/tools.conf (renamed from meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/tools.conf)0
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/vmtoolsd.init (renamed from meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/vmtoolsd.init)0
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/vmtoolsd.service (renamed from meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/vmtoolsd.service)0
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.3.0.bb (renamed from meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.1.5.bb)22
-rw-r--r--meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Add-missing-multi-line-separator.patch36
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Check-for-clang-before-using-isystem.patch32
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Dont-use-isystem.patch30
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Temporarliy-work-around-deprecated-ffmpeg-RAW-functi.patch33
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-build-workaround-GCC-7.1.1-compilation-issue-with-sa.patch127
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-carotene-don-t-use-__asm__-with-aarch64.patch1250
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-Do-not-enable-asm-with-clang.patch993
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-imgcodecs-refactoring-improve-code-quality.patch656
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opencv/opencv/0003-To-fix-errors-as-following.patch49
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opencv/opencv/0003-imgproc-test-add-checks-for-remove-call.patch186
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opencv/opencv/CVE-2017-14136.patch288
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opencv/opencv/already-exists.patch394
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opencv/opencv/fixpkgconfig.patch21
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opencv/opencv/javagen.patch16
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opencv/opencv/protobuf.patch57
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opencv/opencv/tinydnn.patch34
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.4.3.bb (renamed from meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.3.bb)41
-rw-r--r--meta-openembedded/meta-oe/recipes-support/openldap/openldap/install-strip.patch3
-rw-r--r--meta-openembedded/meta-oe/recipes-support/openldap/openldap/kill-icu.patch2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-2.4.28-gnutls-gcrypt.patch2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-CVE-2015-3276.patch2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-m4-pthread.patch2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/openldap/openldap/remove-user-host-pwd-from-version.patch29
-rw-r--r--meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.46.bb (renamed from meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.45.bb)11
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opensc/opensc/0001-Fixed-gcc-8-compilation-errors-1353.patch73
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.18.0.bb (renamed from meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.16.0.bb)9
-rw-r--r--meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.22.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.12.0.bb9
-rw-r--r--meta-openembedded/meta-oe/recipes-support/poco/poco/0001-Don-t-try-to-install-non-existing-Encodings-testsuit.patch31
-rw-r--r--meta-openembedded/meta-oe/recipes-support/poco/poco_1.9.0.bb (renamed from meta-openembedded/meta-oe/recipes-support/poco/poco_1.8.0.1.bb)87
-rw-r--r--meta-openembedded/meta-oe/recipes-support/poppler/poppler-data_0.4.9.bb (renamed from meta-openembedded/meta-oe/recipes-support/poppler/poppler-data_0.4.8.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/poppler/poppler/basename-include.patch20
-rw-r--r--meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.70.1.bb (renamed from meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.64.0.bb)5
-rw-r--r--meta-openembedded/meta-oe/recipes-support/pps-tools/pps-tools_1.0.2.bb (renamed from meta-openembedded/meta-oe/recipes-support/pps-tools/pps-tools_git.bb)5
-rw-r--r--meta-openembedded/meta-oe/recipes-support/procmail/procmail_3.22.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/satyr/files/0001-do-not-support-python2.patch84
-rw-r--r--meta-openembedded/meta-oe/recipes-support/satyr/files/0002-fix-compile-failure-against-musl-C-library.patch2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.26.bb (renamed from meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.23.bb)5
-rw-r--r--meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.10.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils/glibc-2.28.patch24
-rw-r--r--meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.42.bb6
-rw-r--r--meta-openembedded/meta-oe/recipes-support/sharutils/sharutils/CVE-2018-1000097.patch61
-rw-r--r--meta-openembedded/meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb1
-rw-r--r--meta-openembedded/meta-oe/recipes-support/spitools/spitools_git.bb7
-rw-r--r--meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0001-Add-linux-musleabi-to-ostable.patch39
-rw-r--r--meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.17.25.bb1
-rw-r--r--meta-openembedded/meta-oe/recipes-support/stm32flash/stm32flash_0.5.bb16
-rw-r--r--meta-openembedded/meta-oe/recipes-support/synergy/synergy_git.bb27
-rw-r--r--meta-openembedded/meta-oe/recipes-support/syslog-ng/files/0001-syslog-ng-fix-segment-fault-during-service-start.patch75
-rw-r--r--meta-openembedded/meta-oe/recipes-support/syslog-ng/files/Fix-the-memory-leak-problem-when-HAVE_ENVIRON-defined.patch29
-rw-r--r--meta-openembedded/meta-oe/recipes-support/syslog-ng/files/configure.ac-add-option-enable-thread-tls-to-manage-.patch16
-rw-r--r--meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.systemd155
-rw-r--r--meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.sysvinit (renamed from meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf)2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch39
-rw-r--r--meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc51
-rw-r--r--meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_3.16.1.bb16
-rw-r--r--meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_3.8.1.bb11
-rw-r--r--meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/files/0001-do-not-strip-pdata_tools-at-do_install.patch12
-rw-r--r--meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/files/0001-fix-compile-failed-with-libc-musl.patch42
-rw-r--r--[-rwxr-xr-x]meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.7.6.bb (renamed from meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.6.3.bb)5
-rw-r--r--meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-include-sys-sysmacros.h.patch77
-rw-r--r--meta-openembedded/meta-oe/recipes-support/udisks/udisks2/0001-data-fix-out-of-tree-build.patch35
-rw-r--r--meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.7.8.bb (renamed from meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.7.6.bb)5
-rw-r--r--meta-openembedded/meta-oe/recipes-support/udisks/udisks_1.0.5.bb14
-rw-r--r--meta-openembedded/meta-oe/recipes-support/uhubctl/uhubctl_2.0.0.bb21
-rw-r--r--meta-openembedded/meta-oe/recipes-support/unixodbc/unixodbc_2.3.6.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/upower/upower/0001-linux-lower-severity-of-unhandled-action-messages.patch31
-rw-r--r--meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.7.bb5
-rw-r--r--meta-openembedded/meta-oe/recipes-support/uriparser/uriparser_0.8.4.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/kernel-4.18.patch33
-rw-r--r--meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.2.18.bb (renamed from meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.2.8.bb)6
-rw-r--r--meta-openembedded/meta-oe/recipes-support/vim/files/CVE-2017-17087.patch70
-rw-r--r--meta-openembedded/meta-oe/recipes-support/vim/files/disable_acl_header_check.patch28
-rw-r--r--meta-openembedded/meta-oe/recipes-support/vim/files/vim-add-knob-whether-elf.h-are-checked.patch16
-rw-r--r--meta-openembedded/meta-oe/recipes-support/vim/vim-tiny_8.1.0347.bb (renamed from meta-openembedded/meta-oe/recipes-support/vim/vim-tiny_8.0.0983.bb)6
-rw-r--r--meta-openembedded/meta-oe/recipes-support/vim/vim_8.1.0347.bb (renamed from meta-openembedded/meta-oe/recipes-support/vim/vim_8.0.0983.bb)15
-rw-r--r--meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-Fix-issue-599.patch (renamed from meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/0001-Fix-issue-599.patch)0
-rw-r--r--meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch (renamed from meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch)0
-rw-r--r--meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/9ddb300d874a30db35e3ad58f188944bef0bf31b.patch (renamed from meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/9ddb300d874a30db35e3ad58f188944bef0bf31b.patch)0
-rw-r--r--meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/disable-tests.patch (renamed from meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/disable-tests.patch)0
-rw-r--r--meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp_0.8.1.bb (renamed from meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp_0.7.0.bb)10
246 files changed, 7206 insertions, 7547 deletions
diff --git a/meta-openembedded/meta-oe/recipes-support/asio/asio/0001-Automatically-handle-glibc-variant-of-strerror_r-wit.patch b/meta-openembedded/meta-oe/recipes-support/asio/asio/0001-Automatically-handle-glibc-variant-of-strerror_r-wit.patch
deleted file mode 100644
index 4244b97a8..000000000
--- a/meta-openembedded/meta-oe/recipes-support/asio/asio/0001-Automatically-handle-glibc-variant-of-strerror_r-wit.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 45c855400842fd40f200ae9b7abf9debf4ab5436 Mon Sep 17 00:00:00 2001
-From: Christopher Kohlhoff <chris@kohlhoff.com>
-Date: Sun, 28 Aug 2016 09:21:53 +1000
-Subject: [PATCH] Automatically handle glibc variant of strerror_r without
- #ifdefs.
-
----
-Upstream-Status: Backport https://github.com/chriskohlhoff/asio/commit/443bc17d13eb5e37de780ea6e23157493cf7b3b9
- include/asio/impl/error_code.ipp | 16 +++++++---------
- 1 file changed, 7 insertions(+), 9 deletions(-)
-
-diff --git a/include/asio/impl/error_code.ipp b/include/asio/impl/error_code.ipp
-index ccb70dd..a117658 100644
---- a/include/asio/impl/error_code.ipp
-+++ b/include/asio/impl/error_code.ipp
-@@ -97,20 +97,18 @@ public:
- #if defined(__sun) || defined(__QNX__) || defined(__SYMBIAN32__)
- using namespace std;
- return strerror(value);
--#elif defined(__MACH__) && defined(__APPLE__) \
-- || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) \
-- || defined(_AIX) || defined(__hpux) || defined(__osf__) \
-- || defined(__ANDROID__)
-- char buf[256] = "";
-- using namespace std;
-- strerror_r(value, buf, sizeof(buf));
-- return buf;
- #else
- char buf[256] = "";
-- return strerror_r(value, buf, sizeof(buf));
-+ using namespace std;
-+ return strerror_result(strerror_r(value, buf, sizeof(buf)), buf);
- #endif
- #endif // defined(ASIO_WINDOWS)
- }
-+
-+private:
-+ // Helper function to adapt the result from glibc's variant of strerror_r.
-+ static const char* strerror_result(int, const char* s) { return s; }
-+ static const char* strerror_result(const char* s, const char*) { return s; }
- };
-
- } // namespace detail
---
-2.9.3
-
diff --git a/meta-openembedded/meta-oe/recipes-support/asio/asio/0001-use-POSIX-poll.h-instead-of-sys-poll.h.patch b/meta-openembedded/meta-oe/recipes-support/asio/asio/0001-use-POSIX-poll.h-instead-of-sys-poll.h.patch
deleted file mode 100644
index 7f95f5a25..000000000
--- a/meta-openembedded/meta-oe/recipes-support/asio/asio/0001-use-POSIX-poll.h-instead-of-sys-poll.h.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From dac36a170188917e2f61b0394ba8a2f6509ddf3a Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <adraszik@tycoint.com>
-Date: Tue, 8 Nov 2016 20:39:55 +0000
-Subject: [PATCH] use POSIX poll.h instead of sys/poll.h
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-POSIX specifies that <poll.h> is the correct header to
-include for poll()
- http://pubs.opengroup.org/onlinepubs/009695399/functions/poll.html
-whereas <sys/poll.h> is only needed for ancient glibc (<2.3),
-so let's follow POSIX instead.
-
-As a side-effect, this silences numerous compilation warnings
-when compiling against the musl C-library:
-
-In file included from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/socket_types.hpp:57:0,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/impl/error_code.ipp:29,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/error_code.hpp:185,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/throw_error.hpp:19,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/impl/posix_tss_ptr.ipp:23,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/posix_tss_ptr.hpp:74,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/tss_ptr.hpp:27,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/call_stack.hpp:20,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/impl/handler_alloc_hook.ipp:19,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/handler_alloc_hook.hpp:78,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/handler_alloc_helpers.hpp:21,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/bind_handler.hpp:19,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/wrapped_handler.hpp:18,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/io_service.hpp:24,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/basic_io_object.hpp:19,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/basic_socket.hpp:20,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/basic_datagram_socket.hpp:20,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio.hpp:19,
- from ../../../../asio-1.10.6/src/examples/cpp03/buffers/reference_counted.cpp:11:
-<sysroot>/usr/include/sys/poll.h:1:2: warning: #warning redirecting incorrect #include <sys/poll.h> to <poll.h> [-Wcpp]
- #warning redirecting incorrect #include <sys/poll.h> to <poll.h>
- ^~~~~~~
-
-etc.
-
-Signed-off-by: André Draszik <adraszik@tycoint.com>
----
-Upstream-Status: Submitted https://svn.boost.org/trac/boost/ticket/12419
- include/asio/detail/socket_types.hpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/include/asio/detail/socket_types.hpp b/include/asio/detail/socket_types.hpp
-index f2600c2..cb61b8e 100644
---- a/include/asio/detail/socket_types.hpp
-+++ b/include/asio/detail/socket_types.hpp
-@@ -54,7 +54,7 @@
- #else
- # include <sys/ioctl.h>
- # if !defined(__SYMBIAN32__)
--# include <sys/poll.h>
-+# include <poll.h>
- # endif
- # include <sys/types.h>
- # include <sys/stat.h>
---
-2.10.2
-
diff --git a/meta-openembedded/meta-oe/recipes-support/asio/asio_1.10.6.bb b/meta-openembedded/meta-oe/recipes-support/asio/asio_1.10.6.bb
deleted file mode 100644
index 565603984..000000000
--- a/meta-openembedded/meta-oe/recipes-support/asio/asio_1.10.6.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-require asio.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=fede5286a78559dd646e355ab0cc8f04"
-
-SRC_URI[md5sum] = "85d014a356a6e004cd30ccd4c9b6a5c2"
-SRC_URI[sha256sum] = "e0d71c40a7b1f6c1334008fb279e7361b32a063e020efd21e40d9d8ff037195e"
-
-SRC_URI += "\
- file://0001-Automatically-handle-glibc-variant-of-strerror_r-wit.patch \
- file://0001-use-POSIX-poll.h-instead-of-sys-poll.h.patch \
-"
diff --git a/meta-openembedded/meta-oe/recipes-support/asio/asio.inc b/meta-openembedded/meta-oe/recipes-support/asio/asio_1.12.1.bb
index 54f78e41d..28cd9c0e1 100644
--- a/meta-openembedded/meta-oe/recipes-support/asio/asio.inc
+++ b/meta-openembedded/meta-oe/recipes-support/asio/asio_1.12.1.bb
@@ -13,3 +13,10 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/asio/${BP}.tar.bz2"
inherit autotools
ALLOW_EMPTY_${PN} = "1"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=3e73f311a3af69e6df275e8c3b1c09b5"
+
+SRC_URI[md5sum] = "037854d113024f57c9753d6326b339bc"
+SRC_URI[sha256sum] = "a9091b4de847539fa5b2259bf76a5355339c7eaaa5e33d7d4ae74d614c21965a"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/asio/${BP}.tar.bz2"
diff --git a/meta-openembedded/meta-oe/recipes-support/atop/atop/0001-add-sys-sysmacros.h-for-major-minor-macros.patch b/meta-openembedded/meta-oe/recipes-support/atop/atop/0001-add-sys-sysmacros.h-for-major-minor-macros.patch
new file mode 100644
index 000000000..564606197
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/atop/atop/0001-add-sys-sysmacros.h-for-major-minor-macros.patch
@@ -0,0 +1,26 @@
+From 13f3771655f859d5e0332dd65b9c43f572f6359d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 11 Aug 2018 16:02:06 -0700
+Subject: [PATCH] add sys/sysmacros.h for major/minor macros
+
+photosyst.c:1465:19: error: called object 'major' is not a function or function pointer
+ dmp->major = major(statbuf.st_rdev);
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ photosyst.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/photosyst.c b/photosyst.c
+index 38828ec..caed352 100644
+--- a/photosyst.c
++++ b/photosyst.c
+@@ -152,6 +152,7 @@
+ static const char rcsid[] = "$Id: photosyst.c,v 1.38 2010/11/19 07:40:40 gerlof Exp $";
+
+ #include <sys/types.h>
++#include <sys/sysmacros.h>
+ #include <stdio.h>
+ #include <string.h>
+ #include <unistd.h>
diff --git a/meta-openembedded/meta-oe/recipes-support/atop/atop/0001-include-missing-header-files.patch b/meta-openembedded/meta-oe/recipes-support/atop/atop/0001-include-missing-header-files.patch
deleted file mode 100644
index 3708f60ba..000000000
--- a/meta-openembedded/meta-oe/recipes-support/atop/atop/0001-include-missing-header-files.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From 7b651793269b6b86f12c43c30b751b86def27222 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 18 Mar 2017 17:56:40 -0700
-Subject: [PATCH] include missing header files
-
-fixes build with musl
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- deviate.c | 1 +
- procdbase.c | 2 +-
- showgeneric.c | 2 +-
- showlinux.c | 2 +-
- showprocs.c | 2 +-
- showsys.c | 2 +-
- 6 files changed, 6 insertions(+), 5 deletions(-)
-
-diff --git a/deviate.c b/deviate.c
-index 7cf1b49..8e615af 100644
---- a/deviate.c
-+++ b/deviate.c
-@@ -178,6 +178,7 @@ static const char rcsid[] = "$Id: deviate.c,v 1.45 2010/10/23 14:02:03 gerlof Ex
- #include <stdio.h>
- #include <errno.h>
- #include <fcntl.h>
-+#include <stdlib.h>
- #include <unistd.h>
- #include <limits.h>
- #include <memory.h>
-diff --git a/procdbase.c b/procdbase.c
-index 9cab347..0487d26 100644
---- a/procdbase.c
-+++ b/procdbase.c
-@@ -67,7 +67,7 @@ static const char rcsid[] = "$Id: procdbase.c,v 1.8 2010/04/23 12:19:35 gerlof E
- #include <fcntl.h>
- #include <unistd.h>
- #include <string.h>
--#include <malloc.h>
-+#include <stdlib.h>
-
- #include "atop.h"
- #include "photoproc.h"
-diff --git a/showgeneric.c b/showgeneric.c
-index 775afa8..3d5be0e 100644
---- a/showgeneric.c
-+++ b/showgeneric.c
-@@ -268,7 +268,7 @@ static const char rcsid[] = "$Id: showgeneric.c,v 1.71 2010/10/25 19:08:32 gerlo
- #include <errno.h>
- #include <fcntl.h>
- #include <string.h>
--#include <termio.h>
-+#include <termios.h>
- #include <unistd.h>
- #include <stdarg.h>
- #include <curses.h>
-diff --git a/showlinux.c b/showlinux.c
-index 6e60754..aba2ee6 100644
---- a/showlinux.c
-+++ b/showlinux.c
-@@ -274,7 +274,7 @@ static const char rcsid[] = "$Id: showlinux.c,v 1.70 2010/10/23 14:04:12 gerlof
- #include <string.h>
- #include <errno.h>
- #include <fcntl.h>
--#include <termio.h>
-+#include <termios.h>
- #include <unistd.h>
- #include <stdarg.h>
- #include <curses.h>
-diff --git a/showprocs.c b/showprocs.c
-index 5194524..f0169ad 100644
---- a/showprocs.c
-+++ b/showprocs.c
-@@ -94,7 +94,7 @@ static const char rcsid[] = "$Id: showprocs.c,v 1.15 2011/09/05 11:44:16 gerlof
- #include <string.h>
- #include <errno.h>
- #include <fcntl.h>
--#include <termio.h>
-+#include <termios.h>
- #include <unistd.h>
- #include <stdarg.h>
- #include <curses.h>
-diff --git a/showsys.c b/showsys.c
-index 26331be..5a05fe5 100644
---- a/showsys.c
-+++ b/showsys.c
-@@ -80,7 +80,7 @@ static const char rcsid[] = "XXXXXX";
- #include <string.h>
- #include <errno.h>
- #include <fcntl.h>
--#include <termio.h>
-+#include <termios.h>
- #include <unistd.h>
- #include <stdarg.h>
- #include <curses.h>
---
-2.12.0
-
diff --git a/meta-openembedded/meta-oe/recipes-support/atop/atop_2.2.3.bb b/meta-openembedded/meta-oe/recipes-support/atop/atop_2.3.0.bb
index 1ab9e7cf9..302813c2e 100644
--- a/meta-openembedded/meta-oe/recipes-support/atop/atop_2.2.3.bb
+++ b/meta-openembedded/meta-oe/recipes-support/atop/atop_2.3.0.bb
@@ -15,21 +15,15 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833"
DEPENDS = "ncurses zlib"
-ATOP_VER = "${@'-'.join(d.getVar('PV').rsplit('.', 1))}"
-
-SRC_URI = " \
- http://www.atoptool.nl/download/${BPN}-${ATOP_VER}.tar.gz \
- ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'file://volatiles.atop.conf', 'file://volatiles.99_atop', d)} \
- file://0001-include-missing-header-files.patch \
- file://remove-bashisms.patch \
- file://fix-permissions.patch \
- file://sysvinit-implement-status.patch \
-"
-
-SRC_URI[md5sum] = "034dc1544f2ec4e4d2c739d320dc326d"
-SRC_URI[sha256sum] = "c785b8a2355be28b3de6b58a8ea4c4fcab8fadeaa57a99afeb03c66fac8e055d"
-
-S = "${WORKDIR}/${BPN}-${ATOP_VER}"
+SRC_URI = "http://www.atoptool.nl/download/${BP}.tar.gz \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'file://volatiles.atop.conf', 'file://volatiles.99_atop', d)} \
+ file://remove-bashisms.patch \
+ file://fix-permissions.patch \
+ file://sysvinit-implement-status.patch \
+ file://0001-add-sys-sysmacros.h-for-major-minor-macros.patch \
+ "
+SRC_URI[md5sum] = "48e1dbef8c7d826e68829a8d5fc920fc"
+SRC_URI[sha256sum] = "73e4725de0bafac8c63b032e8479e2305e3962afbe977ec1abd45f9e104eb264"
do_compile() {
oe_runmake all
@@ -37,13 +31,13 @@ do_compile() {
do_install() {
if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- make DESTDIR=${D} VERS=${ATOP_VER} SYSDPATH=${systemd_system_unitdir} \
+ make DESTDIR=${D} VERS=${PV} SYSDPATH=${systemd_system_unitdir} \
PMPATHD=${systemd_unitdir}/system-sleep systemdinstall
install -d ${D}${sysconfdir}/tmpfiles.d
install -m 644 ${WORKDIR}/volatiles.atop.conf ${D}${sysconfdir}/tmpfiles.d/atop.conf
rm -f ${D}${systemd_system_unitdir}/atopacct.service
else
- make DESTDIR=${D} VERS=${ATOP_VER} sysvinstall
+ make DESTDIR=${D} VERS=${PV} sysvinstall
install -d ${D}${sysconfdir}/default/volatiles
install -m 644 ${WORKDIR}/volatiles.99_atop ${D}${sysconfdir}/default/volatiles/99_atop
rm -f ${D}${sysconfdir}/init.d/atopacct
diff --git a/meta-openembedded/meta-oe/recipes-support/augeas/augeas.inc b/meta-openembedded/meta-oe/recipes-support/augeas/augeas.inc
index 185abae18..c939d4b89 100644
--- a/meta-openembedded/meta-oe/recipes-support/augeas/augeas.inc
+++ b/meta-openembedded/meta-oe/recipes-support/augeas/augeas.inc
@@ -31,3 +31,5 @@ do_install_append() {
PACKAGECONFIG ??= ""
PACKAGECONFIG[libselinux] = "--with-selinux,--without-selinux,libselinux"
+
+EXTRA_AUTORECONF += "-I ${S}/gnulib/m4"
diff --git a/meta-openembedded/meta-oe/recipes-support/augeas/augeas_1.10.1.bb b/meta-openembedded/meta-oe/recipes-support/augeas/augeas_1.10.1.bb
new file mode 100644
index 000000000..26e191bd3
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/augeas/augeas_1.10.1.bb
@@ -0,0 +1,4 @@
+require augeas.inc
+
+SRC_URI[md5sum] = "6c0b2ea6eec45e8bc374b283aedf27ce"
+SRC_URI[sha256sum] = "52db256afab261d31cc147eaa1a71795a5fec59e888dfd0b65a84c7aacd6364d"
diff --git a/meta-openembedded/meta-oe/recipes-support/augeas/augeas_1.5.0.bb b/meta-openembedded/meta-oe/recipes-support/augeas/augeas_1.5.0.bb
deleted file mode 100644
index c4f62e747..000000000
--- a/meta-openembedded/meta-oe/recipes-support/augeas/augeas_1.5.0.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-require augeas.inc
-
-SRC_URI[md5sum] = "01190e455c513124a2dae29a1182c113"
-SRC_URI[sha256sum] = "223bb6e6fe3e9e92277dafd5d34e623733eb969a72a382998d204feab253f73f"
diff --git a/meta-openembedded/meta-oe/recipes-support/ceres-solver/ceres-solver_1.14.bb b/meta-openembedded/meta-oe/recipes-support/ceres-solver/ceres-solver_1.14.bb
index 29917c8a1..a62e5ef23 100644
--- a/meta-openembedded/meta-oe/recipes-support/ceres-solver/ceres-solver_1.14.bb
+++ b/meta-openembedded/meta-oe/recipes-support/ceres-solver/ceres-solver_1.14.bb
@@ -1,20 +1,19 @@
DESCRIPTION = "Ceres Solver is an open source C++ library for modeling and solving large, complicated optimization problems."
AUTHOR = "Sameer Agarwal and Keir Mierle and Others"
HOMEPAGE = "http://ceres-solver.org/"
-
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=35e00f0c4c96a0820a03e0b31e6416be"
+DEPENDS = "libeigen glog"
+
SRC_URI = "git://github.com/ceres-solver/ceres-solver.git"
SRCREV = "facb199f3eda902360f9e1d5271372b7e54febe1"
S = "${WORKDIR}/git"
-DEPENDS = "libeigen glog"
-
inherit cmake
# Only a static library and headers are created
-ALLOW_EMPTY_${PN} = "1"
-
-FILES_${PN}-dev += "${libdir}/cmake/*"
+RDEPENDS_${PN}-dev = ""
+RRECOMMENDS_${PN}-dev = "${PN}-staticdev"
+RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})"
diff --git a/meta-openembedded/meta-oe/recipes-support/ckermit/ckermit_302.bb b/meta-openembedded/meta-oe/recipes-support/ckermit/ckermit_302.bb
index 61c08ee27..abeeeccd1 100644
--- a/meta-openembedded/meta-oe/recipes-support/ckermit/ckermit_302.bb
+++ b/meta-openembedded/meta-oe/recipes-support/ckermit/ckermit_302.bb
@@ -20,12 +20,6 @@ export INFODIR = "${infodir}"
EXTRA_OEMAKE = "-e MAKEFLAGS="
-# Additional flags. For uclibc we add -DNOARROWKEYS which stops ckermit
-# trying to look inside the stdio headers.
-CKERMIT_ADDITIONAL = ""
-CKERMIT_ADDITIONAL_libc-uclibc = "-DNOARROWKEYS"
-CKERMIT_ADDITIONAL_libc-musl = "-DNOARROWKEYS"
-
TARGET_CC_ARCH += "${LDFLAGS}"
do_compile () {
@@ -49,7 +43,7 @@ do_compile () {
-DNORESEND -DNOAUTODL -DNOSTREAMING -DNOHINTS -DNOCKXYZ -DNOLEARN \
-DNOMKDIR -DNOPERMS -DNOCKTIMERS -DNOCKREGEX -DNOREALPATH \
-DCK_SMALL -DNOLOGDIAL -DNORENAME -DNOWHATAMI \
- ${CKERMIT_ADDITIONAL}"
+ -DNOARROWKEYS"
}
do_install () {
diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest-2.10.2/fix-cmake-install.patch b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest-2.10.2/fix-cmake-install.patch
deleted file mode 100644
index 0feafef5b..000000000
--- a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest-2.10.2/fix-cmake-install.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Description: install cmake files into /usr/lib/cmake/cpprestsdk
-Author: Gianfranco Costamagna <locutusofborg@debian.org>
-Upstream-Status: https://github.com/Microsoft/cpprestsdk/pull/737
-Forwarded: https://github.com/Microsoft/cpprestsdk/pull/737
-Last-Update: 2018-04-19
-
---- cpprest-2.10.2.orig/CMakeLists.txt
-+++ cpprest-2.10.2/CMakeLists.txt
-@@ -18,7 +18,7 @@ enable_testing()
- set(WERROR ON CACHE BOOL "Treat Warnings as Errors.")
- set(CPPREST_EXCLUDE_WEBSOCKETS OFF CACHE BOOL "Exclude websockets functionality.")
- set(CPPREST_EXCLUDE_COMPRESSION OFF CACHE BOOL "Exclude compression functionality.")
--set(CPPREST_EXPORT_DIR lib/cpprestsdk CACHE STRING "Directory to install CMake config files.")
-+set(CPPREST_EXPORT_DIR lib/cmake/cpprestsdk CACHE STRING "Directory to install CMake config files.")
- set(CPPREST_INSTALL_HEADERS ON CACHE BOOL "Install header files.")
- set(CPPREST_INSTALL ON CACHE BOOL "Add install commands.")
-
diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/950-fix.patch b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/950-fix.patch
new file mode 100644
index 000000000..3ae46a115
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/950-fix.patch
@@ -0,0 +1,26 @@
+Origin: upstream
+Bug: https://github.com/Microsoft/cpprestsdk/issues/950
+Last-Update: 2018-11-04
+
+Index: cpprest/Release/src/utilities/asyncrt_utils.cpp
+===================================================================
+--- cpprest.orig/Release/src/utilities/asyncrt_utils.cpp
++++ cpprest/Release/src/utilities/asyncrt_utils.cpp
+@@ -356,7 +356,7 @@
+ inline size_t count_utf8_to_utf16(const std::string& s)
+ {
+ const size_t sSize = s.size();
+- auto sData = reinterpret_cast<const UtilCharInternal_t* const>(s.data());
++ auto const sData = reinterpret_cast<const UtilCharInternal_t*>(s.data());
+ size_t result{ sSize };
+
+ for (size_t index = 0; index < sSize;)
+@@ -441,7 +441,7 @@
+ {
+ // Save repeated heap allocations, use the length of resulting sequence.
+ const size_t srcSize = s.size();
+- auto srcData = reinterpret_cast<const UtilCharInternal_t* const>(s.data());
++ auto const srcData = reinterpret_cast<const UtilCharInternal_t*>(s.data());
+ utf16string dest(count_utf8_to_utf16(s), L'\0');
+ utf16string::value_type* const destData = &dest[0];
+ size_t destIndex = 0;
diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-float-tests.patch b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-float-tests.patch
new file mode 100644
index 000000000..75f74ec65
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-float-tests.patch
@@ -0,0 +1,25 @@
+Description: new toolchain might have increased the float precision
+Author: Gianfranco Costamagna <locutusofborg@debian.org>
+Last-Update: 2017-10-28
+Forwarded: https://github.com/Microsoft/cpprestsdk/issues/576
+
+--- casablanca-2.10.0.orig/Release/tests/functional/streams/istream_tests.cpp
++++ casablanca-2.10.0/Release/tests/functional/streams/istream_tests.cpp
+@@ -1302,7 +1302,7 @@ void compare_float(float expected, float
+ {
+ compare_floating(expected, actual, FLT_EPSILON);
+ }
+-
++/*
+ TEST(extract_floating_point)
+ {
+ std::string test_string;
+@@ -1349,7 +1349,7 @@ TEST(extract_floating_point)
+ VERIFY_ARE_EQUAL(1 / expected, 1 / actual);
+ } while (!std_istream.eof());
+ }
+-
++*/
+ TEST(extract_floating_point_with_exceptions)
+ {
+ std::vector<std::pair<std::string, std::string>> tests;
diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-outside-tests.patch b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-outside-tests.patch
new file mode 100644
index 000000000..2dff0d97c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-outside-tests.patch
@@ -0,0 +1,142 @@
+Description: Debian forbids calls to external websites.
+
+Author: Gianfranco Costamagna <locutus@debian.org>
+Origin: Debian
+Forwarded: not-needed
+Reviewed-By: Gianfranco Costamagna <locutusofborg@debian.org>
+Last-Update: 2015-11-25
+
+Index: casablanca/Release/tests/functional/http/client/CMakeLists.txt
+===================================================================
+--- casablanca.orig/Release/tests/functional/http/client/CMakeLists.txt
++++ casablanca/Release/tests/functional/http/client/CMakeLists.txt
+@@ -12,7 +12,6 @@
+ multiple_requests.cpp
+ oauth1_tests.cpp
+ oauth2_tests.cpp
+- outside_tests.cpp
+ pipeline_stage_tests.cpp
+ progress_handler_tests.cpp
+ proxy_tests.cpp
+Index: casablanca/Release/tests/functional/http/client/authentication_tests.cpp
+===================================================================
+--- casablanca.orig/Release/tests/functional/http/client/authentication_tests.cpp
++++ casablanca/Release/tests/functional/http/client/authentication_tests.cpp
+@@ -663,15 +663,19 @@
+ VERIFY_ARE_EQUAL(return_code, response.status_code());
+ }
+
++/*
+ TEST(auth_no_data)
+ {
+ auth_test_impl(false);
+ }
++*/
+
++/*
+ TEST(unsuccessful_auth_with_basic_cred)
+ {
+ auth_test_impl(true);
+ }
++*/
+
+ TEST_FIXTURE(uri_address, set_user_options_asio_http)
+ {
+@@ -692,7 +696,7 @@
+ auto response = client.request(methods::GET).get();
+ VERIFY_ARE_EQUAL(200, response.status_code());
+ }
+-
++/*
+ TEST_FIXTURE(uri_address, set_user_options_asio_https)
+ {
+ handle_timeout([]
+@@ -714,7 +718,7 @@
+ VERIFY_IS_FALSE(v.empty());
+ });
+ }
+-
++*/
+ #endif
+
+ } // SUITE(authentication_tests)
+Index: casablanca/Release/tests/functional/websockets/client/authentication_tests.cpp
+===================================================================
+--- casablanca.orig/Release/tests/functional/websockets/client/authentication_tests.cpp
++++ casablanca/Release/tests/functional/websockets/client/authentication_tests.cpp
+@@ -86,7 +86,7 @@
+ }
+ return false;
+ }
+-
++/*
+ TEST(ssl_test)
+ {
+ websocket_client client;
+@@ -122,7 +122,7 @@
+ throw;
+ }
+ }
+-
++*/
+ // These tests are specific to our websocketpp based implementation.
+ #if !defined(__cplusplus_winrt)
+
+@@ -153,14 +153,15 @@
+ throw;
+ }
+ }
+-
++/*
+ // Test specifically for server SignalR team hit interesting cases with.
+ TEST(sni_with_older_server_test)
+ {
+ websocket_client client;
+ sni_test_impl(client);
+ }
+-
++*/
++/*
+ // WinRT doesn't expose option for disabling.
+ // No stable server is available to reliably test this.
+ // The configuration below relies on a timeout in the success case.
+@@ -188,7 +189,8 @@
+ throw;
+ }
+ }
+-
++*/
++/*
+ // Winrt doesn't allow explicitly setting server host for SNI.
+ TEST(sni_explicit_hostname)
+ {
+@@ -199,7 +201,7 @@
+ websocket_client client(config);
+ sni_test_impl(client);
+ }
+-
++*/
+ void handshake_error_test_impl(const ::utility::string_t &host)
+ {
+ websocket_client client;
+Index: casablanca/Release/tests/functional/http/client/connections_and_errors.cpp
+===================================================================
+--- casablanca.orig/Release/tests/functional/http/client/connections_and_errors.cpp
++++ casablanca/Release/tests/functional/http/client/connections_and_errors.cpp
+@@ -415,6 +415,7 @@
+ }
+ #endif
+
++/*
+ // Try to connect to a server on a closed port and cancel the operation.
+ TEST_FIXTURE(uri_address, cancel_bad_port)
+ {
+@@ -446,7 +447,7 @@
+
+ VERIFY_THROWS_HTTP_ERROR_CODE(t.get(), std::errc::operation_canceled);
+ }
+-
++*/
+ } // SUITE(connections_and_errors)
+
+ }}}}
diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-test-timeouts.patch b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-test-timeouts.patch
new file mode 100644
index 000000000..93c3e8a26
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-test-timeouts.patch
@@ -0,0 +1,103 @@
+Description: Some tests takes too long on slow architectures and timeouts
+ We can safely disable them.
+ e.g.
+ Release/tests/functional/http/client/connections_and_errors.cpp:142: error: Failure in request_timeout_microsecond: Test case timed out and is hung. Aborting all remaining test cases. Expected under 180000ms. FAILED
+
+Index: casablanca/Release/tests/functional/http/client/connections_and_errors.cpp
+===================================================================
+--- casablanca.orig/Release/tests/functional/http/client/connections_and_errors.cpp
++++ casablanca/Release/tests/functional/http/client/connections_and_errors.cpp
+@@ -127,7 +127,7 @@
+ // Try sending another request.
+ VERIFY_THROWS(client.request(methods::GET).wait(), web::http::http_exception);
+ }
+-
++/*
+ TEST_FIXTURE(uri_address, request_timeout)
+ {
+ test_http_server::scoped_server scoped(m_uri);
+@@ -146,7 +146,8 @@
+ #endif
+ t.get();
+ }
+-
++*/
++/*
+ TEST_FIXTURE(uri_address, request_timeout_microsecond)
+ {
+ pplx::task<test_request*> t;
+@@ -168,7 +169,7 @@
+ try { t.get(); }
+ catch (...) {}
+ }
+-
++*/
+ TEST_FIXTURE(uri_address, invalid_method)
+ {
+ web::http::uri uri(U("http://www.bing.com/"));
+Index: casablanca/Release/tests/functional/http/listener/requests_tests.cpp
+===================================================================
+--- casablanca.orig/Release/tests/functional/http/listener/requests_tests.cpp
++++ casablanca/Release/tests/functional/http/listener/requests_tests.cpp
+@@ -173,7 +173,7 @@
+
+ listener.close().wait();
+ }
+-
++/*
+ TEST_FIXTURE(uri_address, response_order)
+ {
+ http_listener listener(m_uri);
+@@ -217,7 +217,7 @@
+
+ listener.close().wait();
+ }
+-
++*/
+ TEST_FIXTURE(uri_address, uri_encoding, "Ignore", "Codeplex 201")
+ {
+ http_listener listener(m_uri);
+Index: casablanca/Release/tests/functional/websockets/client/authentication_tests.cpp
+===================================================================
+--- casablanca.orig/Release/tests/functional/websockets/client/authentication_tests.cpp
++++ casablanca/Release/tests/functional/websockets/client/authentication_tests.cpp
+@@ -221,7 +221,7 @@
+ VERIFY_ARE_EQUAL("TLS handshake failed", e.error_code().message());
+ }
+ }
+-
++/*
+ TEST(self_signed_cert)
+ {
+ handshake_error_test_impl(U("wss://self-signed.badssl.com/"));
+@@ -236,7 +236,7 @@
+ {
+ handshake_error_test_impl(U("wss://expired.badssl.com/"));
+ }
+-
++*/
+ #endif
+
+ } // SUITE(authentication_tests)
+Index: casablanca/Release/tests/functional/websockets/client/client_construction.cpp
+===================================================================
+--- casablanca.orig/Release/tests/functional/websockets/client/client_construction.cpp
++++ casablanca/Release/tests/functional/websockets/client/client_construction.cpp
+@@ -81,7 +81,7 @@
+ VERIFY_ARE_EQUAL(config2.credentials().username(), cred.username());
+ }
+
+-
++/*
+ // Verify that we can get the baseuri from websocket_client connect.
+ TEST_FIXTURE(uri_address, uri_test)
+ {
+@@ -101,7 +101,7 @@
+ VERIFY_ARE_EQUAL(client2.uri(), m_uri);
+ client2.close().wait();
+ }
+-
++*/
+ TEST_FIXTURE(uri_address, move_operations)
+ {
+ std::string body("hello");
diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/system-brotli.patch b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/system-brotli.patch
new file mode 100644
index 000000000..e6f64772d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/system-brotli.patch
@@ -0,0 +1,38 @@
+Description: Find system brotli
+Author: Gianfranco Costamagna <locutusofborg@debian.org>
+Forwarded: https://github.com/Microsoft/cpprestsdk/pull/952
+Last-Update: 2018-11-05
+
+--- cpprest-2.10.7.orig/Release/cmake/cpprest_find_brotli.cmake
++++ cpprest-2.10.7/Release/cmake/cpprest_find_brotli.cmake
+@@ -3,8 +3,17 @@ function(cpprest_find_brotli)
+ return()
+ endif()
+
+- find_package(unofficial-brotli REQUIRED)
+
+- add_library(cpprestsdk_brotli_internal INTERFACE)
+- target_link_libraries(cpprestsdk_brotli_internal INTERFACE unofficial::brotli::brotlienc unofficial::brotli::brotlidec unofficial::brotli::brotlicommon)
++ find_package(PkgConfig)
++ pkg_check_modules(BROTLIENC libbrotlienc)
++ pkg_check_modules(BROTLIDEC libbrotlidec)
++ if(BROTLIDEC_FOUND AND BROTLIENC_FOUND)
++ target_link_libraries(cpprest PRIVATE ${BROTLIDEC_LDFLAGS} ${BROTLIENC_LDFLAGS})
++ else(BROTLIDEC_FOUND AND BROTLIENC_FOUND)
++ find_package(unofficial-brotli REQUIRED)
++ add_library(cpprestsdk_brotli_internal INTERFACE)
++ target_link_libraries(cpprestsdk_brotli_internal INTERFACE unofficial::brotli::brotlienc unofficial::brotli::brotlidec unofficial::brotli::brotlicommon)
++ target_link_libraries(cpprest PRIVATE cpprestsdk_brotli_internal)
++ endif(BROTLIDEC_FOUND AND BROTLIENC_FOUND)
++
+ endfunction()
+--- cpprest-2.10.7.orig/Release/src/CMakeLists.txt
++++ cpprest-2.10.7/Release/src/CMakeLists.txt
+@@ -84,7 +84,6 @@ else()
+ target_compile_definitions(cpprest PRIVATE -DCPPREST_EXCLUDE_BROTLI=1)
+ else()
+ cpprest_find_brotli()
+- target_link_libraries(cpprest PRIVATE cpprestsdk_brotli_internal)
+ endif()
+ endif()
+
diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.2.bb b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.2.bb
deleted file mode 100644
index 2ba6fc66c..000000000
--- a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.2.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design."
-SECTION = "libs/network"
-HOMEPAGE = "https://github.com/Microsoft/cpprestsdk/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${S}/../license.txt;md5=a2e15b954769218ff912468eecd6a02f"
-DEPENDS = "openssl websocketpp zlib boost"
-
-SRC_URI = "git://github.com/Microsoft/cpprestsdk.git;protocol=https;branch=master"
-
-SRC_URI += "file://fix-cmake-install.patch"
-
-# tag 2.10.2
-SRCREV= "fea848e2a77563cf2a6f28f8eab396fd6e787fbf"
-
-S = "${WORKDIR}/git/Release"
-
-inherit cmake
diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.7.bb b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.7.bb
new file mode 100644
index 000000000..5cc6385df
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.7.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design."
+SECTION = "libs/network"
+HOMEPAGE = "https://github.com/Microsoft/cpprestsdk/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${S}/license.txt;md5=a2e15b954769218ff912468eecd6a02f"
+DEPENDS = "openssl websocketpp zlib boost brotli"
+
+EXTRA_OECMAKE = "-DCPPREST_EXPORT_DIR=cmake -DCPPREST_EXCLUDE_BROTLI=OFF"
+
+SRC_URI = "git://github.com/Microsoft/cpprestsdk.git;protocol=https;branch=master \
+ file://disable-outside-tests.patch \
+ file://disable-test-timeouts.patch \
+ file://disable-float-tests.patch \
+ file://950-fix.patch \
+ file://system-brotli.patch \
+ "
+
+# tag 2.10.7
+SRCREV= "c4cef129e880a3f9c23a480e8c983793963173bb"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
diff --git a/meta-openembedded/meta-oe/recipes-support/dos2unix/dos2unix_7.4.0.bb b/meta-openembedded/meta-oe/recipes-support/dos2unix/dos2unix_7.4.0.bb
deleted file mode 100644
index 8d3c578d0..000000000
--- a/meta-openembedded/meta-oe/recipes-support/dos2unix/dos2unix_7.4.0.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "Convert text file line endings between CRLF and LF"
-DESCRIPTION = "The Dos2unix package includes utilities dos2unix and \
-unix2dos to convert plain text files in DOS or Mac format to Unix \
-format and vice versa."
-HOMEPAGE = "http://waterlan.home.xs4all.nl/dos2unix.html"
-SECTION = "support"
-
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://COPYING.txt;md5=1b78fca784db24f4a40e30b300787f3f"
-
-SRC_URI = "git://git.code.sf.net/p/dos2unix/dos2unix"
-
-# Release 7.4.0
-SRCREV = "1182533bde3c1fe65be2ead465e87671faa2c027"
-
-S = "${WORKDIR}/git/dos2unix"
-
-inherit gettext perlnative
-
-# The dos2unix NLS relies on po4a-native, while po4a recipe is
-# provided by meta-perl layer, so make it optional here, you
-# need have meta-perl in bblayers.conf before enabling nls in
-# PACKAGECONFIG.
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[nls] = "ENABLE_NLS=1,ENABLE_NLS=,po4a-native"
-
-EXTRA_OEMAKE = "${PACKAGECONFIG_CONFARGS} LDFLAGS_USER='${LDFLAGS}'"
-EXTRA_OEMAKE_class-native = "ENABLE_NLS="
-
-do_install () {
- oe_runmake DESTDIR="${D}${base_prefix}" install
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-support/eject/eject/0001-eject-Include-sys-sysmacros.h-for-major-minor.patch b/meta-openembedded/meta-oe/recipes-support/eject/eject/0001-eject-Include-sys-sysmacros.h-for-major-minor.patch
new file mode 100644
index 000000000..055128706
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/eject/eject/0001-eject-Include-sys-sysmacros.h-for-major-minor.patch
@@ -0,0 +1,27 @@
+From 433ffb21119a0f39e882dd3fea4742e64aadcc40 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 11 Aug 2018 09:56:40 -0700
+Subject: [PATCH] eject: Include sys/sysmacros.h for major/minor
+
+Fixes
+arm-bec-linux-gnueabi/gcc/arm-bec-linux-gnueabi/8.2.0/ld: eject.o: in function `GetMajorMinor':
+/usr/src/debug/eject/2.1.5-r1/eject-2.1.5/../../../../../../../workspace/sources/eject/eject.c:866: undefined reference to `major'
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ eject.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/eject.c b/eject.c
+index 47e09fe..b171218 100644
+--- a/eject.c
++++ b/eject.c
+@@ -54,6 +54,7 @@
+ #include <sys/wait.h>
+ #include <sys/mtio.h>
+ #include <sys/mount.h>
++#include <sys/sysmacros.h>
+
+ #if defined(__linux__)
+ #include <linux/version.h>
diff --git a/meta-openembedded/meta-oe/recipes-support/eject/eject_2.1.5.bb b/meta-openembedded/meta-oe/recipes-support/eject/eject_2.1.5.bb
index 49a3d74f6..dec2e7ab4 100644
--- a/meta-openembedded/meta-oe/recipes-support/eject/eject_2.1.5.bb
+++ b/meta-openembedded/meta-oe/recipes-support/eject/eject_2.1.5.bb
@@ -10,7 +10,8 @@ SRC_URI = "http://sources.openembedded.org/${BP}.tar.gz \
file://eject-2.1.1-verbose.patch \
file://eject-2.1.5-spaces.patch \
file://eject-timeout.patch \
-"
+ file://0001-eject-Include-sys-sysmacros.h-for-major-minor.patch \
+ "
SRC_URI[md5sum] = "b96a6d4263122f1711db12701d79f738"
SRC_URI[sha256sum] = "ef9f7906484cfde4ba223b2682a37058f9a3c7d3bb1adda7a34a67402e2ffe55"
diff --git a/meta-openembedded/meta-oe/recipes-support/espeak/espeak-data_1.48.04.bb b/meta-openembedded/meta-oe/recipes-support/espeak/espeak-data_1.48.04.bb
index 79b2cc1f4..a4e5d14d1 100644
--- a/meta-openembedded/meta-oe/recipes-support/espeak/espeak-data_1.48.04.bb
+++ b/meta-openembedded/meta-oe/recipes-support/espeak/espeak-data_1.48.04.bb
@@ -14,7 +14,7 @@ do_compile() {
sed -i '/^ *CC *=/d' Makefile
sed -i 's/\(.*BYTE_ORDER\)/#undef BYTE_ORDER\n#define BYTE_ORDER BIG_ENDIAN\n\1/' espeak-phoneme-data.c
oe_runmake
- ./espeak-phoneme-data "${S}/espeak-data"
+ ./espeak-phoneme-data "${S}/espeak-data" "." "${S}/espeak-data/phondata-manifest"
cp -f phondata phonindex phontab "${S}/espeak-data"
}
diff --git a/meta-openembedded/meta-oe/recipes-support/espeak/espeak.inc b/meta-openembedded/meta-oe/recipes-support/espeak/espeak.inc
index 60b3f73c8..f45455c7e 100644
--- a/meta-openembedded/meta-oe/recipes-support/espeak/espeak.inc
+++ b/meta-openembedded/meta-oe/recipes-support/espeak/espeak.inc
@@ -4,7 +4,8 @@ LICENSE = "GPLv3"
LIC_FILES_CHKSUM = "file://License.txt;md5=cb7a20edb4c9f5f478de6523dcd7362c"
SRC_URI = "http://downloads.sourceforge.net/espeak/espeak-1.48.04-source.zip \
- file://gcc-narrowing-warning-fix.patch \
+ file://0001-Fix-build-of-shared-library-on-architectures-needing.patch \
+ file://espeak-1.48-gcc-6-fix.patch \
"
SRC_URI[md5sum] = "cadd7482eaafe9239546bdc09fa244c3"
SRC_URI[sha256sum] = "bf9a17673adffcc28ff7ea18764f06136547e97bbd9edf2ec612f09b207f0659"
diff --git a/meta-openembedded/meta-oe/recipes-support/espeak/espeak_1.48.04.bb b/meta-openembedded/meta-oe/recipes-support/espeak/espeak_1.48.04.bb
index 552f40413..57e30f071 100644
--- a/meta-openembedded/meta-oe/recipes-support/espeak/espeak_1.48.04.bb
+++ b/meta-openembedded/meta-oe/recipes-support/espeak/espeak_1.48.04.bb
@@ -36,6 +36,5 @@ do_install() {
rm -f ${S}/espeak-data/phon*
fi
- cp -prf ${S}/espeak-data/* ${D}${datadir}/espeak-data
- chown -R root:root ${D}${datadir}/espeak-data
+ cp -R --no-dereference --preserve=mode,links ${S}/espeak-data/* ${D}${datadir}/espeak-data
}
diff --git a/meta-openembedded/meta-oe/recipes-support/espeak/files/0001-Fix-build-of-shared-library-on-architectures-needing.patch b/meta-openembedded/meta-oe/recipes-support/espeak/files/0001-Fix-build-of-shared-library-on-architectures-needing.patch
new file mode 100644
index 000000000..2590e1584
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/espeak/files/0001-Fix-build-of-shared-library-on-architectures-needing.patch
@@ -0,0 +1,31 @@
+From 08a464e2b6bd31bb2bf4e258ebfa9b9d65805abf Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Fri, 27 Nov 2015 15:17:02 +0100
+Subject: [PATCH] Fix build of shared library on architectures needing -fPIC
+
+Certain architectures, like Sparc and Sparc64 require objects to be
+built with -fPIC (and not just -fpic) to be usable in shared
+libraries. On other architectures, -fPIC is the same as -fpic so this
+patch doesn't affect such architectures.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ src/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/Makefile b/src/Makefile
+index 95fe549..c293611 100755
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -110,7 +110,7 @@ $(BIN2_NAME): $(OBJS3) $(LIB_NAME)
+
+
+ x_%.o: %.cpp
+- $(CXX) $(CXXFLAGS) $(USE_AUDIO) -D PATH_ESPEAK_DATA=\"$(DATADIR)\" -Wall -fpic -fvisibility=hidden -pedantic \
++ $(CXX) $(CXXFLAGS) $(USE_AUDIO) -D PATH_ESPEAK_DATA=\"$(DATADIR)\" -Wall -fPIC -fvisibility=hidden -pedantic \
+ -I. -D LIBRARY -c -fno-exceptions $< -o x_$*.o
+
+ $(LIB_NAME): $(OBJS2)
+--
+2.6.3
+
diff --git a/meta-openembedded/meta-oe/recipes-support/espeak/files/espeak-1.48-gcc-6-fix.patch b/meta-openembedded/meta-oe/recipes-support/espeak/files/espeak-1.48-gcc-6-fix.patch
new file mode 100644
index 000000000..6e59c7892
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/espeak/files/espeak-1.48-gcc-6-fix.patch
@@ -0,0 +1,12 @@
+diff --git a/src/tr_languages.cpp b/src/tr_languages.cpp
+--- a/src/tr_languages.cpp
++++ b/src/tr_languages.cpp
+@@ -198,7 +198,7 @@ static const unsigned short chars_ignore_zwnj_hyphen[] = {
+ 0x200d, 1, // zero width joiner
+ 0, 0 };
+
+-const char string_ordinal[] = {0xc2,0xba,0}; // masculine ordinal character, UTF-8
++const char string_ordinal[] = {'\xc2','\xba',0}; // masculine ordinal character, UTF-8
+
+
+ static Translator* NewTranslator(void)
diff --git a/meta-openembedded/meta-oe/recipes-support/espeak/files/gcc-narrowing-warning-fix.patch b/meta-openembedded/meta-oe/recipes-support/espeak/files/gcc-narrowing-warning-fix.patch
deleted file mode 100644
index 2a9b4607d..000000000
--- a/meta-openembedded/meta-oe/recipes-support/espeak/files/gcc-narrowing-warning-fix.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From f09c83640b9173552fd9277c3a48619b903fa436 Mon Sep 17 00:00:00 2001
-From: "Reece H. Dunn" <msclrhd@gmail.com>
-Date: Wed, 20 Jan 2016 20:48:29 +0000
-Subject: [PATCH] Fix GCC -Wnarrowing warnings.
-
----
- src/tr_languages.cpp | 7 ++++---
- src/translate.h | 2 +-
- 2 files changed, 5 insertions(+), 4 deletions(-)
-
-Index: espeak-1.48.04-source/src/tr_languages.cpp
-===================================================================
---- espeak-1.48.04-source.orig/src/tr_languages.cpp
-+++ espeak-1.48.04-source/src/tr_languages.cpp
-@@ -198,8 +198,8 @@ static const unsigned short chars_ignore
- 0x200d, 1, // zero width joiner
- 0, 0 };
-
--const char string_ordinal[] = {0xc2,0xba,0}; // masculine ordinal character, UTF-8
--
-+const unsigned char string_ordinal[] = {0xc2,0xba,0}; // masculine ordinal character, UTF-8
-+const unsigned char utf8_null[] = { 0 }; // null string, UTF-8
-
- static Translator* NewTranslator(void)
- {//===================================
-@@ -296,7 +296,7 @@ static const char transpose_map_latin[]
- tr->langopts.replace_chars = NULL;
- tr->langopts.ascii_language[0] = 0; // Non-Latin alphabet languages, use this language to speak Latin words, default is English
- tr->langopts.alt_alphabet_lang = L('e','n');
-- tr->langopts.roman_suffix = "";
-+ tr->langopts.roman_suffix = utf8_null;
-
- SetLengthMods(tr,201);
- // tr->langopts.length_mods = length_mods_en;
-@@ -758,7 +758,7 @@ Translator *SelectTranslator(const char
- tr->langopts.stress_flags = S_FINAL_SPANISH | S_FINAL_DIM_ONLY | S_FINAL_NO_2;
- tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_DECIMAL_COMMA | NUM_AND_UNITS | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_ROMAN | NUM_ROMAN_ORDINAL;
- tr->langopts.numbers2 = NUM2_ORDINAL_NO_AND;
-- tr->langopts.roman_suffix = string_ordinal;
-+ tr->langopts.roman_suffix = utf8_null;
- }
- else
- if(name2 == L_pap)
-Index: espeak-1.48.04-source/src/translate.h
-===================================================================
---- espeak-1.48.04-source.orig/src/translate.h
-+++ espeak-1.48.04-source/src/translate.h
-@@ -545,7 +545,7 @@ typedef struct {
- int decimal_sep;
- int max_digits; // max number of digits which can be spoken as an integer number (rather than individual digits)
- const char *ordinal_indicator; // UTF-8 string
-- const char *roman_suffix; // add this (ordinal) suffix to Roman numbers (LANG=an)
-+ const unsigned char *roman_suffix; // add this (ordinal) suffix to Roman numbers (LANG=an)
-
- // bit 0, accent name before the letter name, bit 1 "capital" after letter name
- int accents;
diff --git a/meta-openembedded/meta-oe/recipes-support/eventlog/eventlog_0.2.13.bb b/meta-openembedded/meta-oe/recipes-support/eventlog/eventlog_0.2.13.bb
deleted file mode 100644
index 13eb7943f..000000000
--- a/meta-openembedded/meta-oe/recipes-support/eventlog/eventlog_0.2.13.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Replacement syslog API"
-HOMEPAGE = "http://www.balabit.com/network-security/syslog-ng/opensource-logging-system"
-DESCRIPTION = "The EventLog library aims to be a replacement of the \
- simple syslog() API provided on UNIX systems. The \
- major difference between EventLog and syslog is that \
- EventLog tries to add structure to messages. EventLog \
- provides an interface to build, format and output an \
- event record. The exact format and output method can \
- be customized by the administrator via a configuration \
- file. his package is the runtime part of the library. \
-"
-
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b8ba8e77bcda9a53fac0fe39fe957767"
-
-SRC_URI = "https://www.balabit.com/downloads/syslog-ng/open-source-edition/3.4.2/source/${BPN}_${PV}.tar.gz"
-
-inherit autotools pkgconfig
-
-SRC_URI[md5sum] = "68ec8d1ea3b98fa35002bb756227c315"
-SRC_URI[sha256sum] = "7cb4e6f316daede4fa54547371d5c986395177c12dbdec74a66298e684ac8b85"
diff --git a/meta-openembedded/meta-oe/recipes-support/farsight/libnice_0.1.13.bb b/meta-openembedded/meta-oe/recipes-support/farsight/libnice_0.1.14.bb
index 48c8221a3..775257f93 100644
--- a/meta-openembedded/meta-oe/recipes-support/farsight/libnice_0.1.13.bb
+++ b/meta-openembedded/meta-oe/recipes-support/farsight/libnice_0.1.14.bb
@@ -2,8 +2,8 @@ SUMMARY = "Interactive Connectivity Establishment library"
DESCRIPTION = "Libnice is an implementation of the IETF's draft Interactive Connectivity Establishment standard (ICE)."
HOMEPAGE = "http://nice.freedesktop.org/wiki/"
SRC_URI = "http://nice.freedesktop.org/releases/libnice-${PV}.tar.gz"
-SRC_URI[md5sum] = "3226faeaf48a9150ada00da2e2865959"
-SRC_URI[sha256sum] = "61112d9f3be933a827c8365f20551563953af6718057928f51f487bfe88419e1"
+SRC_URI[md5sum] = "c9b9b74b8ae1b3890e4bd93f1b70e8ff"
+SRC_URI[sha256sum] = "be120ba95d4490436f0da077ffa8f767bf727b82decf2bf499e39becc027809c"
LICENSE = "LGPLv2.1 & MPLv1.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=9c42325015702feda4f4d2f19a55b767 \
@@ -11,17 +11,19 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=9c42325015702feda4f4d2f19a55b767 \
file://COPYING.MPL;md5=3c617710e51cdbe0fc00716f056dfb1a \
"
-DEPENDS = "glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base"
+DEPENDS = "glib-2.0 gnutls"
-PACKAGECONFIG ??= ""
+PACKAGECONFIG ??= "gstreamer1.0"
PACKAGECONFIG[gupnp] = "--enable-gupnp,--disable-gupnp,gupnp-igd"
+PACKAGECONFIG[gstreamer0.10] = "--with-gstreamer-0.10,--without-gstreamer-0.10,gstreamer gst-plugins-base"
+PACKAGECONFIG[gstreamer1.0] = "--with-gstreamer,--without-gstreamer,gstreamer1.0 gstreamer1.0-plugins-base"
inherit autotools pkgconfig gtk-doc gobject-introspection
-FILES_${PN} += "${libdir}/gstreamer-1.0/*.so"
-FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la"
-FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a"
-FILES_${PN}-dbg += "${libdir}/gstreamer-1.0/.debug"
+FILES_${PN} += "${libdir}/gstreamer-0.10/*.so ${libdir}/gstreamer-1.0/*.so"
+FILES_${PN}-dev += "${libdir}/gstreamer-0.10/*.la ${libdir}/gstreamer-1.0/*.la"
+FILES_${PN}-staticdev += "${libdir}/gstreamer-0.10/*.a ${libdir}/gstreamer-1.0/*.a"
+FILES_${PN}-dbg += "${libdir}/gstreamer-0.10/.debug ${libdir}/gstreamer-1.0/.debug"
do_configure_prepend() {
mkdir ${S}/m4 || true
diff --git a/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes.bb b/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes.bb
index 5f6f9909b..b76855332 100644
--- a/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes.bb
+++ b/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes.bb
@@ -14,8 +14,6 @@ do_install() {
install -m 0644 ${WORKDIR}/fb.modes ${D}${sysconfdir}
}
-inherit allarch
-
# fb.modes file is MACHINE_ARCH, base.bbclass correctly changes it to MACHINE_ARCH, but too late for allarch.bbclass
# to disable "all" behavior (found when comparing qemuarm and qemux86 signatures)
PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.7.bb b/meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.8.bb
index aae6ec952..d9e0ea340 100644
--- a/meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.7.bb
+++ b/meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.8.bb
@@ -7,8 +7,8 @@ SRC_URI = " \
http://www.fftw.org/fftw-${PV}.tar.gz \
file://0001-NEON-autodetection-segfaults-assume-neon-present.patch \
"
-SRC_URI[md5sum] = "0d5915d7d39b3253c1cc05030d79ac47"
-SRC_URI[sha256sum] = "3b609b7feba5230e8f6dd8d245ddbefac324c5a6ae4186947670d9ac2cd25573"
+SRC_URI[md5sum] = "8aac833c943d8e90d51b697b27d4384d"
+SRC_URI[sha256sum] = "6113262f6e92c5bd474f2875fa1b01054c4ad5040f6b0da7c03c98821d9ae303"
inherit autotools pkgconfig
@@ -19,7 +19,10 @@ EXTRA_OECONF = "--disable-fortran --enable-shared --enable-threads"
CFLAGS += "-D_GNU_SOURCE"
+# neon is optional for arm version < 8 -> check tune features
FFTW_NEON = "${@bb.utils.contains('TUNE_FEATURES', 'neon', '--enable-neon', '', d)}"
+# neon is suppored for arm version = 8 -> enable
+FFTW_NEON_aarch64 = "--enable-neon"
FFTW_NEON_class-native = ""
do_configure() {
diff --git a/meta-openembedded/meta-oe/recipes-support/fltk/fltk.inc b/meta-openembedded/meta-oe/recipes-support/fltk/fltk.inc
index dbe700af0..d3416c8bc 100644
--- a/meta-openembedded/meta-oe/recipes-support/fltk/fltk.inc
+++ b/meta-openembedded/meta-oe/recipes-support/fltk/fltk.inc
@@ -12,9 +12,9 @@ SRC_URI = " \
file://0002-always-build-fluid-and-export-pointers.patch \
"
-PV = "1.3.4-1"
-SRC_URI[md5sum] = "d7fcd27ab928648e1a1366dd2e273970"
-SRC_URI[sha256sum] = "7fb2c8882433ce694e6900c94fda505e8f4ed3fa9c7e597007098a33b85c53f4"
+PV = "1.3.4-2"
+SRC_URI[md5sum] = "b8e291343357e49dd81a22408744e400"
+SRC_URI[sha256sum] = "25d349c18c99508737d48f225a2eb26a43338f9247551cab72a317fa42cda910"
inherit cmake pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-support/gd/gd/0001-annotate.c-gdft.c-Replace-strncpy-with-memccpy-to-fi.patch b/meta-openembedded/meta-oe/recipes-support/gd/gd/0001-annotate.c-gdft.c-Replace-strncpy-with-memccpy-to-fi.patch
new file mode 100644
index 000000000..c377b370e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/gd/gd/0001-annotate.c-gdft.c-Replace-strncpy-with-memccpy-to-fi.patch
@@ -0,0 +1,46 @@
+From 85c7694a5cf34597909bdd1ca6931b0f99904c2e Mon Sep 17 00:00:00 2001
+From: Robert Yang <liezhi.yang@windriver.com>
+Date: Tue, 19 Jun 2018 00:40:49 -0700
+Subject: [PATCH] annotate.c/gdft.c: Replace strncpy with memccpy to fix
+ -Wstringop-truncation.
+
+Fixed for gcc8:
+git/src/gdft.c:1699:2: error: 'strncpy' output truncated before terminating nul copying as many bytes from a string as its length [-Werror=stringop-truncation]
+
+Upstream-Status: Submitted [https://github.com/libgd/libgd/pull/442]
+
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+---
+ src/annotate.c | 2 +-
+ src/gdft.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/annotate.c b/src/annotate.c
+index 00aaf49..17df813 100644
+--- a/src/annotate.c
++++ b/src/annotate.c
+@@ -104,7 +104,7 @@ int main(int argc, char *argv[])
+ fprintf(stderr, "Font maximum length is 1024, %d given\n", font_len);
+ goto badLine;
+ }
+- strncpy(font, st, font_len);
++ memcpy(font, st, font_len);
+ }
+ } else if(!strcmp(st, "align")) {
+ char *st = strtok(0, " \t\r\n");
+diff --git a/src/gdft.c b/src/gdft.c
+index 9fa8295..81dbe41 100644
+--- a/src/gdft.c
++++ b/src/gdft.c
+@@ -1696,7 +1696,7 @@ static char * font_path(char **fontpath, char *name_list)
+ gdFree(path);
+ return "could not alloc full list of fonts";
+ }
+- strncpy(fontlist, name_list, name_list_len);
++ memcpy(fontlist, name_list, name_list_len);
+ fontlist[name_list_len] = 0;
+
+ /*
+--
+2.10.2
+
diff --git a/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2018-1000222.patch b/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2018-1000222.patch
new file mode 100644
index 000000000..25924d1aa
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2018-1000222.patch
@@ -0,0 +1,82 @@
+From 4b1e18a00ce7c4b7e6919c3b3109a034393b805a Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Sat, 14 Jul 2018 13:54:08 -0400
+Subject: [PATCH] bmp: check return value in gdImageBmpPtr
+
+Closes #447.
+
+(cherry picked from commit ac16bdf2d41724b5a65255d4c28fb0ec46bc42f5)
+
+Upstream-Status: Backport [https://github.com/libgd/libgd/commit/4b1e18a00ce7c4b7e6919c3b3109a034393b805a]
+CVE: CVE-2018-1000222
+Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
+---
+ src/gd_bmp.c | 17 ++++++++++++++---
+ 1 file changed, 14 insertions(+), 3 deletions(-)
+
+diff --git a/src/gd_bmp.c b/src/gd_bmp.c
+index ccafdcd..d625da1 100644
+--- a/src/gd_bmp.c
++++ b/src/gd_bmp.c
+@@ -48,6 +48,8 @@ static int bmp_read_4bit(gdImagePtr im, gdIOCtxPtr infile, bmp_info_t *info, bmp
+ static int bmp_read_8bit(gdImagePtr im, gdIOCtxPtr infile, bmp_info_t *info, bmp_hdr_t *header);
+ static int bmp_read_rle(gdImagePtr im, gdIOCtxPtr infile, bmp_info_t *info);
+
++static int _gdImageBmpCtx(gdImagePtr im, gdIOCtxPtr out, int compression);
++
+ #define BMP_DEBUG(s)
+
+ static int gdBMPPutWord(gdIOCtx *out, int w)
+@@ -88,8 +90,10 @@ BGD_DECLARE(void *) gdImageBmpPtr(gdImagePtr im, int *size, int compression)
+ void *rv;
+ gdIOCtx *out = gdNewDynamicCtx(2048, NULL);
+ if (out == NULL) return NULL;
+- gdImageBmpCtx(im, out, compression);
+- rv = gdDPExtractData(out, size);
++ if (!_gdImageBmpCtx(im, out, compression))
++ rv = gdDPExtractData(out, size);
++ else
++ rv = NULL;
+ out->gd_free(out);
+ return rv;
+ }
+@@ -142,6 +146,11 @@ BGD_DECLARE(void) gdImageBmp(gdImagePtr im, FILE *outFile, int compression)
+ compression - whether to apply RLE or not.
+ */
+ BGD_DECLARE(void) gdImageBmpCtx(gdImagePtr im, gdIOCtxPtr out, int compression)
++{
++ _gdImageBmpCtx(im, out, compression);
++}
++
++static int _gdImageBmpCtx(gdImagePtr im, gdIOCtxPtr out, int compression)
+ {
+ int bitmap_size = 0, info_size, total_size, padding;
+ int i, row, xpos, pixel;
+@@ -149,6 +158,7 @@ BGD_DECLARE(void) gdImageBmpCtx(gdImagePtr im, gdIOCtxPtr out, int compression)
+ unsigned char *uncompressed_row = NULL, *uncompressed_row_start = NULL;
+ FILE *tmpfile_for_compression = NULL;
+ gdIOCtxPtr out_original = NULL;
++ int ret = 1;
+
+ /* No compression if its true colour or we don't support seek */
+ if (im->trueColor) {
+@@ -326,6 +336,7 @@ BGD_DECLARE(void) gdImageBmpCtx(gdImagePtr im, gdIOCtxPtr out, int compression)
+ out_original = NULL;
+ }
+
++ ret = 0;
+ cleanup:
+ if (tmpfile_for_compression) {
+ #ifdef _WIN32
+@@ -339,7 +350,7 @@ cleanup:
+ if (out_original) {
+ out_original->gd_free(out_original);
+ }
+- return;
++ return ret;
+ }
+
+ static int compress_row(unsigned char *row, int length)
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.5.bb b/meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.5.bb
index 63d9acf05..548d2c578 100644
--- a/meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.5.bb
+++ b/meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.5.bb
@@ -14,6 +14,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=07384b3aa2e0d39afca0d6c40286f545"
DEPENDS = "freetype libpng jpeg zlib tiff"
SRC_URI = "git://github.com/libgd/libgd.git;branch=GD-2.2 \
+ file://0001-annotate.c-gdft.c-Replace-strncpy-with-memccpy-to-fi.patch \
+ file://CVE-2018-1000222.patch \
"
SRCREV = "8255231b68889597d04d451a72438ab92a405aba"
diff --git a/meta-openembedded/meta-oe/recipes-support/gflags/gflags_2.2.0.bb b/meta-openembedded/meta-oe/recipes-support/gflags/gflags_2.2.0.bb
index 28b652a64..29a1125cd 100644
--- a/meta-openembedded/meta-oe/recipes-support/gflags/gflags_2.2.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/gflags/gflags_2.2.0.bb
@@ -1,7 +1,5 @@
DESCRIPTION = "The gflags package contains a C++ library that implements commandline flags processing. It includes built-in support for standard types such as string and the ability to define flags in the source file in which they are used"
-
HOMEPAGE = "https://github.com/gflags/gflags"
-
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING.txt;md5=c80d1a3b623f72bb85a4c75b556551df"
@@ -10,14 +8,13 @@ SRCREV = "f8a0efe03aa69b3336d8e228b37d4ccb17324b88"
S = "${WORKDIR}/git"
-FILES_${PN}-dev += "${libdir}/cmake"
-
inherit cmake
EXTRA_OECMAKE="-DBUILD_SHARED_LIBS=ON -DREGISTER_INSTALL_PREFIX=OFF -DLIB_INSTALL_DIR=${baselib}"
PACKAGES =+ "${PN}-bash-completion"
FILES_${PN}-bash-completion += "${bindir}/gflags_completions.sh"
+
RDEPENDS_${PN}-bash-completion = "bash bash-completion"
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-support/glog/glog/0001-Rework-CMake-glog-VERSION-management.patch b/meta-openembedded/meta-oe/recipes-support/glog/glog/0001-Rework-CMake-glog-VERSION-management.patch
new file mode 100644
index 000000000..f41a6c972
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/glog/glog/0001-Rework-CMake-glog-VERSION-management.patch
@@ -0,0 +1,71 @@
+From 4ea11e0d7c0575316a6ccc07a931164ca29c3d2f Mon Sep 17 00:00:00 2001
+From: Corentin Le Molgat <corentinl@google.com>
+Date: Mon, 29 Jan 2018 14:59:08 +0100
+Subject: [PATCH] Rework CMake glog VERSION management.
+
+- Use of Project version properties instead of custom variables
+- fix missmatch between VERSION (build version) and SOVERSION (API version)
+src: https://cmake.org/cmake/help/latest/prop_tgt/VERSION.html#prop_tgt:VERSION
+
+Upstream-Status: Backport [https://github.com/google/glog/commit/6b6e38a7d53fe01f42ce34384cf4ba4c50e8cb65]
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ CMakeLists.txt | 23 ++++++++---------------
+ 1 file changed, 8 insertions(+), 15 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7415eab..fb4e408 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -8,23 +8,16 @@ if (POLICY CMP0063)
+ cmake_policy (SET CMP0063 NEW)
+ endif (POLICY CMP0063)
+
+-project (google-glog)
++project(glog VERSION 0.3.5 LANGUAGES C CXX)
+
+ enable_testing ()
+
+-set (GLOG_MAJOR_VERSION 0)
+-set (GLOG_MINOR_VERSION 3)
+-set (GLOG_PATCH_VERSION 5)
+-
+-set (GLOG_VERSION
+- ${GLOG_MAJOR_VERSION}.${GLOG_MINOR_VERSION}.${GLOG_PATCH_VERSION})
+-
+ set (CPACK_PACKAGE_NAME glog)
+ set (CPACK_PACKAGE_DESCRIPTION_SUMMARY "")
+-set (CPACK_PACKAGE_VERSION_MAJOR ${GLOG_MAJOR_VERSION})
+-set (CPACK_PACKAGE_VERSION_MINOR ${GLOG_MINOR_VERSION})
+-set (CPACK_PACKAGE_VERSION_PATCH ${GLOG_PATCH_VERSION})
+-set (CPACK_PACKAGE_VERSION ${GLOG_VERSION})
++set (CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
++set (CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR})
++set (CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH})
++set (CPACK_PACKAGE_VERSION ${PROJECT_VERSION})
+
+ option (WITH_GFLAGS "Use gflags" ON)
+ option (WITH_THREADS "Enable multithreading support" ON)
+@@ -406,8 +399,8 @@ if (gflags_FOUND)
+ endif (NOT BUILD_SHARED_LIBS)
+ endif (gflags_FOUND)
+
+-set_target_properties (glog PROPERTIES VERSION ${GLOG_MAJOR_VERSION})
+-set_target_properties (glog PROPERTIES SOVERSION ${GLOG_VERSION})
++set_target_properties (glog PROPERTIES VERSION ${PROJECT_VERSION})
++set_target_properties (glog PROPERTIES SOVERSION ${PROJECT_VERSION_MAJOR})
+
+ if (WIN32)
+ target_compile_definitions (glog PUBLIC GLOG_NO_ABBREVIATED_SEVERITIES)
+@@ -570,7 +563,7 @@ configure_package_config_file (glog-config.cmake.in
+ NO_CHECK_REQUIRED_COMPONENTS_MACRO)
+
+ write_basic_package_version_file (glog-config-version.cmake VERSION
+- ${GLOG_VERSION} COMPATIBILITY SameMajorVersion)
++ ${PROJECT_VERSION} COMPATIBILITY SameMajorVersion)
+
+ export (TARGETS glog NAMESPACE glog:: FILE glog-targets.cmake)
+ export (PACKAGE glog)
+--
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/glog/glog/0001-configure.ac-Allow-user-to-disable-gflags.patch b/meta-openembedded/meta-oe/recipes-support/glog/glog/0001-configure.ac-Allow-user-to-disable-gflags.patch
deleted file mode 100644
index 596281ff6..000000000
--- a/meta-openembedded/meta-oe/recipes-support/glog/glog/0001-configure.ac-Allow-user-to-disable-gflags.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 0fabde0515e180c53961c27346dd7a79cffa4c1f Mon Sep 17 00:00:00 2001
-From: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
-Date: Thu, 11 Aug 2016 11:49:36 +0200
-Subject: [PATCH] configure.ac: Allow user to disable gflags
-
-Under some circumstances like cross-compilation, the user might not want
-to enable support for gflags.
-
-This patch allows support for --without-gflags
-
-Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
----
- configure.ac | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 7b4d21e7ae8a..eba5e5cda1ea 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -136,7 +136,11 @@ AC_ARG_WITH(gflags, AS_HELP_STRING[--with-gflags=GFLAGS_DIR],
- CFLAGS="$CFLAGS $GFLAGS_CFLAGS"
- LIBS="$LIBS $GFLAGS_LIBS"
- )
--AC_CHECK_LIB(gflags, main, ac_cv_have_libgflags=1, ac_cv_have_libgflags=0)
-+if test x"$with_gflags" = x"no"; then
-+ ac_cv_have_libgflags=0
-+else
-+ AC_CHECK_LIB(gflags, main, ac_cv_have_libgflags=1, ac_cv_have_libgflags=0)
-+fi
- if test x"$ac_cv_have_libgflags" = x"1"; then
- AC_DEFINE(HAVE_LIB_GFLAGS, 1, [define if you have google gflags library])
- if test x"$GFLAGS_LIBS" = x""; then
---
-2.8.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/glog/glog/0002-Find-Libunwind-during-configure.patch b/meta-openembedded/meta-oe/recipes-support/glog/glog/0002-Find-Libunwind-during-configure.patch
new file mode 100644
index 000000000..15cf67fd2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/glog/glog/0002-Find-Libunwind-during-configure.patch
@@ -0,0 +1,120 @@
+diff -uNr a/cmake/FindLibunwind.cmake b/cmake/FindLibunwind.cmake
+--- a/cmake/FindLibunwind.cmake 1970-01-01 01:00:00.000000000 +0100
++++ b/cmake/FindLibunwind.cmake 2018-11-20 15:53:48.799078114 +0100
+@@ -0,0 +1,54 @@
++# - Try to find libunwind
++# Once done this will define
++#
++# Libunwind_FOUND - system has libunwind
++# unwind - cmake target for libunwind
++
++find_library (UNWIND_LIBRARY NAMES unwind DOC "unwind library")
++include (CheckIncludeFile)
++check_include_file (libunwind.h HAVE_LIBUNWIND_H)
++check_include_file (unwind.h HAVE_UNWIND_H)
++
++if (CMAKE_SYSTEM_PROCESSOR MATCHES "^arm")
++ set(LIBUNWIND_ARCH "arm")
++elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^aarch64")
++ set(LIBUNWIND_ARCH "aarch64")
++elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" OR
++ CMAKE_SYSTEM_PROCESSOR STREQUAL "amd64" OR
++ CMAKE_SYSTEM_PROCESSOR STREQUAL "corei7-64")
++ set(LIBUNWIND_ARCH "x86_64")
++elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^i.86$")
++ set(LIBUNWIND_ARCH "x86")
++elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^ppc64")
++ set(LIBUNWIND_ARCH "ppc64")
++elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^ppc")
++ set(LIBUNWIND_ARCH "ppc32")
++elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^mips")
++ set(LIBUNWIND_ARCH "mips")
++elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^hppa")
++ set(LIBUNWIND_ARCH "hppa")
++elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^ia64")
++ set(LIBUNWIND_ARCH "ia64")
++endif()
++
++find_library (UNWIND_LIBRARY_PLATFORM NAMES "unwind-${LIBUNWIND_ARCH}" DOC "unwind library platform")
++if (UNWIND_LIBRARY_PLATFORM)
++ set(HAVE_LIB_UNWIND "1")
++endif()
++
++include(FindPackageHandleStandardArgs)
++# handle the QUIETLY and REQUIRED arguments and set Libunwind_FOUND to TRUE
++# if all listed variables are TRUE
++find_package_handle_standard_args(Libunwind DEFAULT_MSG
++ UNWIND_LIBRARY HAVE_LIBUNWIND_H HAVE_UNWIND_H HAVE_LIB_UNWIND)
++
++mark_as_advanced (UNWIND_LIBRARY UNWIND_LIBRARY_PLATFORM)
++
++if (Libunwind_FOUND)
++ add_library(unwind INTERFACE IMPORTED)
++ set_target_properties(unwind PROPERTIES
++ INTERFACE_LINK_LIBRARIES "${UNWIND_LIBRARY};${UNWIND_LIBRARY_PLATFORM}"
++ )
++else()
++ message("Can't find libunwind library")
++endif()
+diff -uNr a/CMakeLists.txt b/CMakeLists.txt
+--- a/CMakeLists.txt 2018-11-20 15:49:07.576278417 +0100
++++ b/CMakeLists.txt 2018-11-20 15:49:32.106819928 +0100
+@@ -58,7 +58,6 @@
+ check_include_file (execinfo.h HAVE_EXECINFO_H)
+ check_include_file (glob.h HAVE_GLOB_H)
+ check_include_file (inttypes.h HAVE_INTTYPES_H)
+-check_include_file (libunwind.h HAVE_LIBUNWIND_H)
+ check_include_file (memory.h HAVE_MEMORY_H)
+ check_include_file (pwd.h HAVE_PWD_H)
+ check_include_file (stdint.h HAVE_STDINT_H)
+@@ -74,7 +73,6 @@
+ check_include_file (syslog.h HAVE_SYSLOG_H)
+ check_include_file (ucontext.h HAVE_UCONTEXT_H)
+ check_include_file (unistd.h HAVE_UNISTD_H)
+-check_include_file (unwind.h HAVE_UNWIND_H)
+
+ check_include_file_cxx ("ext/hash_map" HAVE_EXT_HASH_MAP)
+ check_include_file_cxx ("ext/hash_set" HAVE_EXT_HASH_SET)
+@@ -109,10 +107,7 @@
+ # snprintf as an inline function
+ check_symbol_exists (snprintf stdio.h HAVE_SNPRINTF)
+
+-check_library_exists (unwind get_static_proc_name "" HAVE_LIB_UNWIND)
+-
+-find_library (UNWIND_LIBRARY NAMES unwind DOC "unwind library")
+-mark_as_advanced (UNWIND_LIBRARY)
++find_package(Libunwind)
+
+ check_c_source_compiles ("
+ #include <stdlib.h>
+@@ -376,9 +371,9 @@
+
+ set_target_properties (glog PROPERTIES POSITION_INDEPENDENT_CODE ON)
+
+-if (UNWIND_LIBRARY)
+- target_link_libraries (glog PUBLIC ${UNWIND_LIBRARY})
+-endif (UNWIND_LIBRARY)
++if (Libunwind_FOUND)
++ target_link_libraries (glog PUBLIC unwind)
++endif (Libunwind_FOUND)
+
+ if (HAVE_PTHREAD)
+ target_link_libraries (glog PUBLIC ${CMAKE_THREAD_LIBS_INIT})
+@@ -571,6 +566,7 @@
+ install (FILES
+ ${CMAKE_CURRENT_BINARY_DIR}/glog-config.cmake
+ ${CMAKE_CURRENT_BINARY_DIR}/glog-config-version.cmake
++ ${CMAKE_CURRENT_SOURCE_DIR}/cmake/FindLibunwind.cmake
+ DESTINATION lib/cmake/glog)
+
+ install (EXPORT glog-targets NAMESPACE glog:: DESTINATION lib/cmake/glog)
+diff -uNr a/glog-config.cmake.in b/glog-config.cmake.in
+--- a/glog-config.cmake.in 2018-11-20 15:49:07.576278417 +0100
++++ b/glog-config.cmake.in 2018-11-20 15:52:32.330418489 +0100
+@@ -4,4 +4,6 @@
+
+ @gflags_DEPENDENCY@
+
++find_dependency (Libunwind)
++
+ include ("${CMAKE_CURRENT_LIST_DIR}/glog-targets.cmake")
diff --git a/meta-openembedded/meta-oe/recipes-support/glog/glog/0003-installation-path-fix.patch b/meta-openembedded/meta-oe/recipes-support/glog/glog/0003-installation-path-fix.patch
new file mode 100644
index 000000000..641f70cb2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/glog/glog/0003-installation-path-fix.patch
@@ -0,0 +1,65 @@
+diff -uNr a/CMakeLists.txt b/CMakeLists.txt
+--- a/CMakeLists.txt 2018-12-05 12:55:59.630792054 +0100
++++ b/CMakeLists.txt 2018-12-05 13:00:22.922269200 +0100
+@@ -403,10 +403,15 @@
+
+ set_target_properties (glog PROPERTIES PUBLIC_HEADER "${GLOG_PUBLIC_H}")
+
++set (_glog_CMake_BINDIR ${CMAKE_INSTALL_BINDIR})
++set (_glog_CMake_INCLUDE_DIR ${CMAKE_INSTALL_INCLUDEDIR})
++set (_glog_CMake_LIBDIR ${CMAKE_INSTALL_LIBDIR})
++set (_glog_CMake_INSTALLDIR ${_glog_CMake_LIBDIR}/cmake/glog)
++
+ target_include_directories (glog BEFORE PUBLIC
+ "$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>"
+ "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>"
+- "$<INSTALL_INTERFACE:include>"
++ "$<INSTALL_INTERFACE:${_glog_CMake_INCLUDE_DIR}>"
+ PRIVATE ${CMAKE_CURRENT_BINARY_DIR}
+ PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
+
+@@ -543,10 +548,10 @@
+
+ install (TARGETS glog
+ EXPORT glog-targets
+- RUNTIME DESTINATION bin
+- PUBLIC_HEADER DESTINATION include/glog
+- LIBRARY DESTINATION lib
+- ARCHIVE DESTINATION lib)
++ RUNTIME DESTINATION ${_glog_CMake_BINDIR}
++ PUBLIC_HEADER DESTINATION ${_glog_CMake_INCLUDE_DIR}/glog
++ LIBRARY DESTINATION ${_glog_CMake_LIBDIR}
++ ARCHIVE DESTINATION ${_glog_CMake_LIBDIR})
+
+ if (gflags_FOUND)
+ set (gflags_DEPENDENCY "find_dependency (gflags ${gflags_VERSION})")
+@@ -554,7 +559,7 @@
+
+ configure_package_config_file (glog-config.cmake.in
+ ${CMAKE_CURRENT_BINARY_DIR}/glog-config.cmake
+- INSTALL_DESTINATION lib/cmake/glog
++ INSTALL_DESTINATION ${_glog_CMake_INSTALLDIR}
+ NO_CHECK_REQUIRED_COMPONENTS_MACRO)
+
+ write_basic_package_version_file (glog-config-version.cmake VERSION
+@@ -567,6 +572,7 @@
+ ${CMAKE_CURRENT_BINARY_DIR}/glog-config.cmake
+ ${CMAKE_CURRENT_BINARY_DIR}/glog-config-version.cmake
+ ${CMAKE_CURRENT_SOURCE_DIR}/cmake/FindLibunwind.cmake
+- DESTINATION lib/cmake/glog)
++ DESTINATION ${_glog_CMake_INSTALLDIR})
+
+-install (EXPORT glog-targets NAMESPACE glog:: DESTINATION lib/cmake/glog)
++install (EXPORT glog-targets NAMESPACE glog:: DESTINATION
++ ${_glog_CMake_INSTALLDIR})
+diff -uNr a/glog-config.cmake.in b/glog-config.cmake.in
+--- a/glog-config.cmake.in 2018-12-05 12:55:59.630792054 +0100
++++ b/glog-config.cmake.in 2018-12-05 13:05:19.547196843 +0100
+@@ -4,6 +4,7 @@
+
+ @gflags_DEPENDENCY@
+
++list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}")
+ find_dependency (Libunwind)
+
+ include ("${CMAKE_CURRENT_LIST_DIR}/glog-targets.cmake")
diff --git a/meta-openembedded/meta-oe/recipes-support/glog/glog_0.3.4.bb b/meta-openembedded/meta-oe/recipes-support/glog/glog_0.3.5.bb
index d7c1974c6..3de01ef5b 100644
--- a/meta-openembedded/meta-oe/recipes-support/glog/glog_0.3.4.bb
+++ b/meta-openembedded/meta-oe/recipes-support/glog/glog_0.3.5.bb
@@ -9,15 +9,18 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=dc9db360e0bbd4e46672f3fd91dd6c4b"
DEPENDS = "libunwind"
SRC_URI = " \
- git://github.com/google/glog.git \
- file://0001-configure.ac-Allow-user-to-disable-gflags.patch \
+ git://github.com/google/glog.git;branch=v035 \
+ file://0001-Rework-CMake-glog-VERSION-management.patch \
+ file://0002-Find-Libunwind-during-configure.patch \
+ file://0003-installation-path-fix.patch \
"
-SRCREV = "d8cb47f77d1c31779f3ff890e1a5748483778d6a"
+SRCREV = "a6a166db069520dbbd653c97c2e5b12e08a8bb26"
S = "${WORKDIR}/git"
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[gflags] = ",--without-gflags,gflags,"
+inherit cmake
-inherit autotools pkgconfig
+RDEPENDS_${PN} += "libunwind"
+
+EXTRA_OECMAKE += "-DBUILD_SHARED_LIBS=ON"
diff --git a/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib/CVE-2018-17942.patch b/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib/CVE-2018-17942.patch
new file mode 100644
index 000000000..77e82b167
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib/CVE-2018-17942.patch
@@ -0,0 +1,88 @@
+From e91600a7aae3bafbefbe13abf771e61badd16286 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Tue, 16 Oct 2018 14:26:11 +0800
+Subject: [PATCH] vasnprintf: Fix heap memory overrun bug.
+
+Reported by Ben Pfaff <blp@cs.stanford.edu> in
+<https://lists.gnu.org/archive/html/bug-gnulib/2018-09/msg00107.html>.
+
+* lib/vasnprintf.c (convert_to_decimal): Allocate one more byte of
+memory.
+* tests/test-vasnprintf.c (test_function): Add another test.
+
+Upstream-Status: Backport [http://git.savannah.gnu.org/gitweb/?p=gnulib.git;
+a=commitdiff;h=278b4175c9d7dd47c1a3071554aac02add3b3c35]
+
+CVE: CVE-2018-17942
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ ChangeLog | 8 ++++++++
+ lib/vasnprintf.c | 4 +++-
+ tests/test-vasnprintf.c | 19 ++++++++++++++++++-
+ 3 files changed, 29 insertions(+), 2 deletions(-)
+
+diff --git a/ChangeLog b/ChangeLog
+index 9864353..5ff76a3 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,3 +1,11 @@
++2018-09-23 Bruno Haible <bruno@clisp.org>
++ vasnprintf: Fix heap memory overrun bug.
++ Reported by Ben Pfaff <blp@cs.stanford.edu> in
++ <https://lists.gnu.org/archive/html/bug-gnulib/2018-09/msg00107.html>.
++ * lib/vasnprintf.c (convert_to_decimal): Allocate one more byte of
++ memory.
++ * tests/test-vasnprintf.c (test_function): Add another test.
++
+ 2017-08-21 Paul Eggert <eggert@cs.ucla.edu>
+
+ vc-list-files: port to Solaris 10
+diff --git a/lib/vasnprintf.c b/lib/vasnprintf.c
+index 2e4eb19..45de49f 100644
+--- a/lib/vasnprintf.c
++++ b/lib/vasnprintf.c
+@@ -860,7 +860,9 @@ convert_to_decimal (mpn_t a, size_t extra_zeroes)
+ size_t a_len = a.nlimbs;
+ /* 0.03345 is slightly larger than log(2)/(9*log(10)). */
+ size_t c_len = 9 * ((size_t)(a_len * (GMP_LIMB_BITS * 0.03345f)) + 1);
+- char *c_ptr = (char *) malloc (xsum (c_len, extra_zeroes));
++ /* We need extra_zeroes bytes for zeroes, followed by c_len bytes for the
++ digits of a, followed by 1 byte for the terminating NUL. */
++ char *c_ptr = (char *) malloc (xsum (xsum (extra_zeroes, c_len), 1));
+ if (c_ptr != NULL)
+ {
+ char *d_ptr = c_ptr;
+diff --git a/tests/test-vasnprintf.c b/tests/test-vasnprintf.c
+index 2dd869f..ff68d5c 100644
+--- a/tests/test-vasnprintf.c
++++ b/tests/test-vasnprintf.c
+@@ -53,7 +53,24 @@ test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...))
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "12345") == 0);
+ ASSERT (length == 5);
+- if (size < 6)
++ if (size < 5 + 1)
++ ASSERT (result != buf);
++ ASSERT (memcmp (buf + size, &"DEADBEEF"[size], 8 - size) == 0);
++ if (result != buf)
++ free (result);
++ }
++ /* Note: This test assumes IEEE 754 representation of 'double' floats. */
++ for (size = 0; size <= 8; size++)
++ {
++ size_t length;
++ char *result;
++ memcpy (buf, "DEADBEEF", 8);
++ length = size;
++ result = my_asnprintf (buf, &length, "%2.0f", 1.6314159265358979e+125);
++ ASSERT (result != NULL);
++ ASSERT (strcmp (result, "163141592653589790215729350939528493057529598899734151772468186268423257777068536614838678161083520756952076273094236944990208") == 0);
++ ASSERT (length == 126);
++ if (size < 126 + 1)
+ ASSERT (result != buf);
+ ASSERT (memcmp (buf + size, &"DEADBEEF"[size], 8 - size) == 0);
+ if (result != buf)
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_2017-08-20.18.bb b/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_2017-08-20.18.bb
index b72ffa9a1..e04881055 100644
--- a/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_2017-08-20.18.bb
+++ b/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_2017-08-20.18.bb
@@ -14,6 +14,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=56a22a6e5bcce45e2c8ac184f81412b5"
SRCREV = "b23000de1e47c7d580e0e220966dd1ee42a5e5bc"
SRC_URI = "git://git.sv.gnu.org/gnulib;protocol=git \
+ file://CVE-2018-17942.patch \
"
S = "${WORKDIR}/git"
@@ -22,6 +23,8 @@ do_install () {
cd ${S}
git checkout master
git clone ${S} ${D}/${datadir}/gnulib
+ cd ${D}/${datadir}/gnulib
+ git am ${WORKDIR}/CVE-2018-17942.patch
}
do_patch[noexec] = "1"
@@ -32,5 +35,6 @@ do_packagedata[noexec] = "1"
deltask package_write_ipk
deltask package_write_deb
deltask package_write_rpm
+deltask do_deploy_archives
BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-Use-ucontext_t-instead-of-struct-ucontext.patch b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-Use-ucontext_t-instead-of-struct-ucontext.patch
deleted file mode 100644
index b3033621b..000000000
--- a/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-Use-ucontext_t-instead-of-struct-ucontext.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 230cd84486145c5bb1d69d4c9a544e00adbcc9b5 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 1 Jul 2017 13:21:21 -0700
-Subject: [PATCH] Use ucontext_t instead of struct ucontext
-
-Newer glibc has dropped the ucontext tag from exposing
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- src/stacktrace_powerpc-linux-inl.h | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/src/stacktrace_powerpc-linux-inl.h b/src/stacktrace_powerpc-linux-inl.h
-index 3b3843b..a301a46 100644
---- a/src/stacktrace_powerpc-linux-inl.h
-+++ b/src/stacktrace_powerpc-linux-inl.h
-@@ -53,7 +53,6 @@
- #elif defined(HAVE_UCONTEXT_H)
- #include <ucontext.h> // for ucontext_t
- #endif
--typedef ucontext ucontext_t;
-
- // PowerPC64 Little Endian follows BE wrt. backchain, condition register,
- // and LR save area, so no need to adjust the reading struct.
-@@ -202,7 +201,7 @@ static int GET_STACK_TRACE_OR_FRAMES {
- struct rt_signal_frame_32 {
- char dummy[64 + 16];
- siginfo_t info;
-- struct ucontext uc;
-+ ucontext_t uc;
- // We don't care about the rest, since IP value is at 'uc' field.A
- } *sigframe = reinterpret_cast<rt_signal_frame_32*>(current);
- result[n] = (void*) sigframe->uc.uc_mcontext.uc_regs->gregs[PT_NIP];
diff --git a/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-fix-build-with-musl-libc.patch b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-fix-build-with-musl-libc.patch
index 0a72ff27c..49d5c2167 100644
--- a/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-fix-build-with-musl-libc.patch
+++ b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-fix-build-with-musl-libc.patch
@@ -1,4 +1,4 @@
-From 034e7da08c3fbffcba8cf8d4e24a71a16558db5a Mon Sep 17 00:00:00 2001
+From 696674a800cb6d2070897a565b92d7e63022a8f1 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sun, 16 Jul 2017 15:51:28 -0700
Subject: [PATCH] fix build with musl libc
@@ -13,7 +13,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac
-index b42fea3..70b49a3 100644
+index 497103e..f9efc3e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -188,6 +188,7 @@ AC_HEADER_STDC
@@ -25,7 +25,7 @@ index b42fea3..70b49a3 100644
AC_CHECK_FUNCS(geteuid) # for turning off services when run as root
AC_CHECK_FUNCS(fork) # for the pthread_atfork setup
diff --git a/src/malloc_hook_mmap_linux.h b/src/malloc_hook_mmap_linux.h
-index 79ac4e3..d444635 100755
+index 2f6116f..0605855 100755
--- a/src/malloc_hook_mmap_linux.h
+++ b/src/malloc_hook_mmap_linux.h
@@ -46,6 +46,10 @@
@@ -55,5 +55,5 @@ index 79ac4e3..d444635 100755
-#ifndef __UCLIBC__
+#if HAVE___SBRK
// libc's version:
- extern "C" void* __sbrk(ptrdiff_t increment);
+ extern "C" void* __sbrk(intptr_t increment);
diff --git a/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-include-fcntl.h-for-loff_t-definition.patch b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-include-fcntl.h-for-loff_t-definition.patch
deleted file mode 100644
index 4c63e73b3..000000000
--- a/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-include-fcntl.h-for-loff_t-definition.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From a16a73f0819d26219ee83cd98eea82786d7c1755 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 16 Jul 2017 19:28:17 -0700
-Subject: [PATCH] include fcntl.h for loff_t definition
-
-Fixes
-linux_syscall_support.h:2641:26: error: 'loff_t' has not been declared
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- src/base/linux_syscall_support.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/base/linux_syscall_support.h b/src/base/linux_syscall_support.h
-index 85347a2..70431ca 100644
---- a/src/base/linux_syscall_support.h
-+++ b/src/base/linux_syscall_support.h
-@@ -162,6 +162,7 @@ extern "C" {
- #include <unistd.h>
- #include <linux/unistd.h>
- #include <endian.h>
-+#include <fcntl.h>
-
- #ifdef __mips__
- /* Include definitions of the ABI currently in use. */
diff --git a/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.6.1.bb b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.7.bb
index ecac6c5cc..e9fcc4cc9 100644
--- a/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.6.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.7.bb
@@ -4,12 +4,10 @@ LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://COPYING;md5=762732742c73dc6c7fbe8632f06c059a"
DEPENDS += "libunwind"
-SRCREV = "bf840dec0495e17f5c8403e68e10b9d6bf05c559"
+SRCREV = "9608fa3bcf8020d35f59fbf70cd3cbe4b015b972"
SRC_URI = "git://github.com/gperftools/gperftools \
file://0001-Support-Atomic-ops-on-clang.patch \
- file://0001-Use-ucontext_t-instead-of-struct-ucontext.patch \
file://0001-fix-build-with-musl-libc.patch \
- file://0001-include-fcntl.h-for-loff_t-definition.patch \
file://0001-disbale-heap-checkers-and-debug-allocator-on-musl.patch \
file://disable_libunwind_aarch64.patch \
file://sgidef.patch \
@@ -19,6 +17,10 @@ inherit autotools
S = "${WORKDIR}/git"
+# On mips, we have the following error.
+# do_page_fault(): sending SIGSEGV to ls for invalid read access from 00000008
+# Segmentation fault (core dumped)
+COMPATIBLE_HOST_mipsarch_libc-glibc = "null"
# Disable thumb1
# {standard input}: Assembler messages:
# {standard input}:434: Error: lo register required -- `ldr pc,[sp]'
diff --git a/meta-openembedded/meta-oe/recipes-support/gpm/gpm_git.bb b/meta-openembedded/meta-oe/recipes-support/gpm/gpm_git.bb
index 51c4dd639..dcc9d68ea 100644
--- a/meta-openembedded/meta-oe/recipes-support/gpm/gpm_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/gpm/gpm_git.bb
@@ -9,7 +9,7 @@ PV = "1.99.7+git${SRCREV}"
PR = "r2"
SRCREV = "1fd19417b8a4dd9945347e98dfa97e4cfd798d77"
-DEPENDS = "ncurses"
+DEPENDS = "ncurses bison-native"
SRC_URI = "git://github.com/telmich/gpm;protocol=git \
file://init \
diff --git a/meta-openembedded/meta-oe/recipes-support/gradm/gradm_3.1.bb b/meta-openembedded/meta-oe/recipes-support/gradm/gradm_3.1.bb
index 1a4261a9e..a7d0607f8 100644
--- a/meta-openembedded/meta-oe/recipes-support/gradm/gradm_3.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/gradm/gradm_3.1.bb
@@ -43,10 +43,6 @@ do_install() {
rm -rf ${D}/dev
}
-pkg_postinst_${PN}() {
- # make sure running on the target
- if [ x"$D" != "x" ]; then
- exit 1
- fi
+pkg_postinst_ontarget_${PN}() {
/bin/mknod -m 0622 /dev/grsec c 1 13
}
diff --git a/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.51.bb b/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.51.bb
index 887584461..36530d2df 100644
--- a/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.51.bb
+++ b/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.51.bb
@@ -22,7 +22,7 @@ PARALLEL_MAKE = ""
EXTRA_OEMAKE_class-target = "SOAP=${STAGING_BINDIR_NATIVE}/soapcpp2"
-DEPENDS = "openssl zlib flex bison"
+DEPENDS = "openssl zlib flex bison bison-native"
DEPENDS_append_class-target = " gsoap-native"
do_install_append() {
diff --git a/meta-openembedded/meta-oe/recipes-support/htop/htop_2.1.0.bb b/meta-openembedded/meta-oe/recipes-support/htop/htop_2.2.0.bb
index 33508f984..01c856d12 100644
--- a/meta-openembedded/meta-oe/recipes-support/htop/htop_2.1.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/htop/htop_2.2.0.bb
@@ -8,8 +8,8 @@ DEPENDS = "ncurses"
SRC_URI = "http://hisham.hm/htop/releases/${PV}/${BP}.tar.gz \
file://0001-Use-pkg-config.patch"
-SRC_URI[md5sum] = "f262b66ad6c194782f4d3a80627e84c8"
-SRC_URI[sha256sum] = "3260be990d26e25b6b49fc9d96dbc935ad46e61083c0b7f6df413e513bf80748"
+SRC_URI[md5sum] = "0d816b6beed31edc75babcfbf863ffa8"
+SRC_URI[sha256sum] = "d9d6826f10ce3887950d709b53ee1d8c1849a70fa38e91d5896ad8cbc6ba3c57"
inherit autotools pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_git.bb b/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_git.bb
index 679673ba0..8e8dbf5c8 100644
--- a/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_git.bb
@@ -5,8 +5,8 @@ SECTION = "System/Base"
LICENSE = "GPL-2.0+"
LIC_FILES_CHKSUM = "file://LICENSE;md5=1556547711e8246992b999edd9445a57"
-PV = "0.298+git${SRCPV}"
-SRCREV = "9030fbd6ab1538f4d77d3cf1e0b463a7ec25b5c4"
+PV = "0.316+git${SRCPV}"
+SRCREV = "803819aef862ded2ce0737cd3cf642c633b68c35"
SRC_URI = "git://github.com/vcrhonek/${BPN}.git"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.7.bb b/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.7.bb
index 669534eaa..46cc78ed7 100644
--- a/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.7.bb
+++ b/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.7.bb
@@ -3,7 +3,7 @@ SECTION = "console/utils"
LICENSE = "ImageMagick"
LIC_FILES_CHKSUM = "file://LICENSE;md5=dad5a98f173fd3fa6958a1a58c6131c1"
# FIXME: There are many more checked libraries. All should be added or explicitly disabled to get consistent results.
-DEPENDS = "lcms bzip2 jpeg libpng librsvg tiff zlib fftw freetype"
+DEPENDS = "lcms bzip2 jpeg libpng tiff zlib fftw freetype"
BASE_PV := "${PV}"
PV .= "_7"
@@ -25,6 +25,7 @@ PACKAGECONFIG[jp2] = "--with-jp2,,jasper"
PACKAGECONFIG[lzma] = "--with-lzma,--without-lzma,xz"
PACKAGECONFIG[openjpeg] = "--with-openjp2,--without-openjp2,openjpeg"
PACKAGECONFIG[pango] = "--with-pango,--without-pango,pango cairo"
+PACKAGECONFIG[rsvg] = "--with-rsvg,--without-rsvg,librsvg"
PACKAGECONFIG[webp] = "--with-webp,--without-webp,libwebp"
PACKAGECONFIG[wmf] = "--with-wmf,--without-wmf,libwmf"
PACKAGECONFIG[x11] = "--with-x,--without-x,virtual/libx11 libxext libxt"
diff --git a/meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.11.bb b/meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.11.bb
index 2f9ac336e..56a018ba5 100644
--- a/meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.11.bb
+++ b/meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.11.bb
@@ -14,6 +14,31 @@ RDEPENDS_${PN} += " \
perl-module-filehandle \
perl-module-getopt-std \
perl-module-digest-sha \
+ perl-module-constant \
+ perl-module-cwd \
+ perl-module-errno \
+ perl-module-file-basename \
+ perl-module-file-find \
+ perl-module-file-path \
+ perl-module-file-spec \
+ perl-module-file-spec-functions \
+ perl-module-file-spec-unix \
+ perl-module-file-temp \
+ perl-module-getopt-long \
+ perl-module-list-util \
+ perl-module-mro \
+ perl-module-overload \
+ perl-module-overloading \
+ perl-module-overload-numbers \
+ perl-module-parent \
+ perl-module-pod-usage \
+ perl-module-posix \
+ perl-module-re \
+ perl-module-safe \
+ perl-module-scalar-util \
+ perl-module-term-cap \
+ perl-module-text-parsewords \
+ perl-module-tie-hash \
"
SRC_URI = "http://downloads.sourceforge.net/ltp/${BP}.tar.gz"
diff --git a/meta-openembedded/meta-oe/recipes-support/libbytesize/files/0001-remove-python2-support.patch b/meta-openembedded/meta-oe/recipes-support/libbytesize/files/0001-remove-python2-support.patch
deleted file mode 100644
index b57e39fbc..000000000
--- a/meta-openembedded/meta-oe/recipes-support/libbytesize/files/0001-remove-python2-support.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 2ddc97b30792817d162f51ec3818376aefbf184e Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Wed, 3 May 2017 02:05:33 -0400
-Subject: [PATCH] remove python2 support
-
-We use python3 rather than python2 support
-
-Upstream-Status: Inappropriate [oe specific]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- src/python/Makefile.am | 5 -----
- 1 file changed, 5 deletions(-)
-
-diff --git a/src/python/Makefile.am b/src/python/Makefile.am
-index 567d0d7..8d9f446 100644
---- a/src/python/Makefile.am
-+++ b/src/python/Makefile.am
-@@ -1,8 +1,3 @@
--pylibdir = $(shell python -c "import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(1,0,prefix='${exec_prefix}'))")
--
--pybytesizedir = $(pylibdir)/bytesize
--dist_pybytesize_DATA = bytesize.py __init__.py
--
- if WITH_PYTHON3
- py3libdir = $(shell python3 -c "import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(1,0,prefix='${exec_prefix}'))")
- py3bytesizedir = $(py3libdir)/bytesize
---
-2.8.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_0.10.bb b/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_1.3.bb
index 690302149..caf84de2c 100644
--- a/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_0.10.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_1.3.bb
@@ -9,10 +9,9 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=c07cb499d259452f324bb90c3067d85c"
S = "${WORKDIR}/git"
B = "${S}"
-SRCREV = "369127c0edbba7d1a4e2e02486375dd9d379524f"
-PV = "0.10+git${SRCPV}"
+SRCREV = "b0dcf6f457d700127b43c0e0a198253c266b78ae"
+PV = "1.3+git${SRCPV}"
SRC_URI = "git://github.com/rhinstaller/libbytesize;branch=master \
- file://0001-remove-python2-support.patch \
"
inherit gettext autotools python3native
@@ -27,6 +26,7 @@ FILES_${PN} += "${PYTHON_SITEPACKAGES_DIR}/bytesize"
PACKAGECONFIG ??= "python3"
PACKAGECONFIG[python3] = "--with-python3, --without-python3,,python3"
+PACKAGECONFIG[python2] = "--with-python2, --without-python2,,python2"
PACKAGECONFIG[doc] = "--with-gtk-doc, --without-gtk-doc, gtk-doc-native"
EXTRA_OEMAKE = "py3libdir=${PYTHON_SITEPACKAGES_DIR}"
diff --git a/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.3.4.bb b/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.3.5.bb
index bc3b32e38..7078e50bb 100644
--- a/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.3.4.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.3.5.bb
@@ -5,15 +5,15 @@ LICENSE = "MPL-2.0"
LIC_FILES_CHKSUM = "file://COPYING.MPL2;md5=815ca599c9df247a0c7f619bab123dad"
SRC_URI = "http://bitbucket.org/eigen/eigen/get/${PV}.tar.bz2;downloadfilename=${BP}.tar.bz2"
-SRC_URI[md5sum] = "a7aab9f758249b86c93221ad417fbe18"
-SRC_URI[sha256sum] = "dd254beb0bafc695d0f62ae1a222ff85b52dbaa3a16f76e781dce22d0d20a4a6"
+SRC_URI[md5sum] = "e83549a79d1b721da0f8899ab34edf95"
+SRC_URI[sha256sum] = "7352bff3ea299e4c7d7fbe31c504f8eb9149d7e685dec5a12fbaa26379f603e2"
-S = "${WORKDIR}/eigen-eigen-5a0156e40feb"
+S = "${WORKDIR}/eigen-eigen-b3f3d4950030"
inherit cmake
-FILES_${PN} = "${includedir} ${libdir}"
-FILES_${PN}-dev = "${datadir}/eigen3/cmake ${datadir}/cmake/Modules ${datadir}/pkgconfig"
+FILES_${PN} = "${libdir}"
+FILES_${PN}-dev = "${includedir} ${datadir}/eigen3/cmake ${datadir}/cmake/Modules ${datadir}/pkgconfig"
# ${PN} is empty so we need to tweak -dev and -dbg package dependencies
RDEPENDS_${PN}-dev = ""
diff --git a/meta-openembedded/meta-oe/recipes-support/libestr/libestr_0.1.10.bb b/meta-openembedded/meta-oe/recipes-support/libestr/libestr_0.1.11.bb
index 9bff4f35a..ff61dd8fd 100644
--- a/meta-openembedded/meta-oe/recipes-support/libestr/libestr_0.1.10.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libestr/libestr_0.1.11.bb
@@ -5,7 +5,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=9d6c993486c18262afba4ca5bcb894d0"
SRC_URI = "http://libestr.adiscon.com/files/download/${BP}.tar.gz"
-SRC_URI[md5sum] = "f4c9165a23587e77f7efe65d676d5e8e"
-SRC_URI[sha256sum] = "bd655e126e750edd18544b88eb1568d200a424a0c23f665eb14bbece07ac703c"
+SRC_URI[md5sum] = "1f25a2332750d4bfacfb314235fedff0"
+SRC_URI[sha256sum] = "46632b2785ff4a231dcf241eeb0dcb5fc0c7d4da8ee49cf5687722cdbe8b2024"
+
+UPSTREAM_CHECK_URI = "http://libestr.adiscon.com/download/"
inherit autotools
diff --git a/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.4.bb b/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.4.bb
index 6bea16582..4fc6eb090 100644
--- a/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.4.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.4.bb
@@ -3,7 +3,6 @@ FT232BM/245BM, FT2232C/D and FT232/245R using libusb,\
including the popular bitbang mode."
HOMEPAGE = "http://www.intra2net.com/en/developer/libftdi/"
SECTION = "libs"
-
LICENSE = "LGPLv2.1 & GPLv2"
LIC_FILES_CHKSUM= "\
file://COPYING.GPL;md5=751419260aa954499f7abaabaa882bbe \
@@ -13,19 +12,16 @@ LIC_FILES_CHKSUM= "\
DEPENDS = "libusb1"
SRC_URI = "http://www.intra2net.com/en/developer/${BPN}/download/${BPN}1-${PV}.tar.bz2"
-
SRC_URI[md5sum] = "0c09fb2bb19a57c839fa6845c6c780a2"
SRC_URI[sha256sum] = "ec36fb49080f834690c24008328a5ef42d3cf584ef4060f3a35aa4681cb31b74"
S = "${WORKDIR}/${BPN}1-${PV}"
+inherit cmake binconfig pkgconfig
+
PACKAGECONFIG ??= ""
PACKAGECONFIG[cpp-wrapper] = "-DFTDI_BUILD_CPP=on -DFTDIPP=on,-DFTDI_BUILD_CPP=off -DFTDIPP=off,boost"
-inherit cmake binconfig pkgconfig
-
EXTRA_OECMAKE = "-DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')}"
-FILES_${PN}-dev += "${libdir}/cmake"
-
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-support/libgit2/libgit2_0.24.3.bb b/meta-openembedded/meta-oe/recipes-support/libgit2/libgit2_0.27.4.bb
index 8f580f9ff..e7f768892 100644
--- a/meta-openembedded/meta-oe/recipes-support/libgit2/libgit2_0.24.3.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libgit2/libgit2_0.27.4.bb
@@ -1,12 +1,13 @@
SUMMARY = "the Git linkable library"
HOMEPAGE = "http://libgit2.github.com/"
-LICENSE = "GPL-2.0-with-GCC-exception"
-LIC_FILES_CHKSUM = "file://COPYING;md5=34197a479f637beb9e09e56893f48bc2"
+LICENSE = "GPL-2.0-with-GCC-exception & MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=3f2cd5d3cccd71d62066ba619614592b"
-DEPENDS = "curl openssl zlib libssh2"
+DEPENDS = "curl openssl zlib libssh2 libgcrypt"
-SRC_URI = "git://github.com/libgit2/libgit2.git;branch=maint/v0.24"
-SRCREV = "4cf1ec7cff28da8838a2f0a9fb330e312ea3f963"
+SRC_URI = "git://github.com/libgit2/libgit2.git;branch=maint/v0.27"
+#v0.27.5
+SRCREV = "8e0b172981a046d19f1d9efa5acd6186bccbd3ce"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.0.1.bb b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.0.1.bb
deleted file mode 100644
index 51499fd72..000000000
--- a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.0.1.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-require libgpiod.inc
-
-SRC_URI[md5sum] = "2ca0c3eb17d69e367b6f6a109ca86e41"
-SRC_URI[sha256sum] = "972924195367f5fb045c023d65340c4b7dfc8764499516be446553865208dedc"
diff --git a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.2.bb b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.2.bb
new file mode 100644
index 000000000..30289b983
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.2.bb
@@ -0,0 +1,16 @@
+require libgpiod.inc
+
+DEPENDS += "autoconf-archive-native"
+
+SRC_URI[md5sum] = "34a9972f2f4e9c32fa940301301b007d"
+SRC_URI[sha256sum] = "b6b9079c933f7c8524815437937dda6b795a16141bca202a9eec70ba5844b5ba"
+
+PACKAGECONFIG[cxx] = "--enable-bindings-cxx,--disable-bindings-cxx"
+
+PACKAGECONFIG[python3] = "--enable-bindings-python,--disable-bindings-python,python3,python3-core"
+inherit ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3native', '', d)}
+
+PACKAGES =+ "${PN}-python"
+FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}"
+RRECOMMENDS_PYTHON = "${@bb.utils.contains('PACKAGECONFIG', 'python3', '${PN}-python', '',d)}"
+RRECOMMENDS_${PN} += "${RRECOMMENDS_PYTHON}"
diff --git a/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb b/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb
index ba380ed30..fa6f4c2ca 100644
--- a/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb
@@ -24,10 +24,11 @@ EXTRA_OECMAKE = " \
${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '-DWITH_SYSTEMD=ON -DSYSTEMD_UNIT_INSTALL_DIR=${systemd_system_unitdir}', '', d)} \
"
-PACKAGECONFIG ??= "USB_BACKEND NETWORK_BACKEND"
+PACKAGECONFIG ??= "USB_BACKEND NETWORK_BACKEND PYTHON_BINDINGS"
PACKAGECONFIG[USB_BACKEND] = "-DWITH_USB_BACKEND=ON,-DWITH_USB_BACKEND=OFF,libusb1,libxml2"
PACKAGECONFIG[NETWORK_BACKEND] = "-DWITH_NETWORK_BACKEND=ON,-DWITH_NETWORK_BACKEND=OFF,libxml2"
+PACKAGECONFIG[PYTHON_BINDINGS] = ",,python"
PACKAGES =+ "${PN}-iiod ${PN}-tests ${PN}-python"
diff --git a/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.55.bb b/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.59.bb
index 0930a277b..b44c66af7 100644
--- a/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.55.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.59.bb
@@ -3,11 +3,11 @@ HOMEPAGE = "http://www.gnu.org/software/libmicrohttpd/"
LICENSE = "LGPL-2.1+"
LIC_FILES_CHKSUM = "file://COPYING;md5=9331186f4f80db7da0e724bdd6554ee5"
SECTION = "net"
-DEPENDS = "libgcrypt gnutls file"
+DEPENDS = "file"
SRC_URI = "http://ftp.gnu.org/gnu/libmicrohttpd/${BPN}-${PV}.tar.gz"
-SRC_URI[md5sum] = "1c20f84a8b9cf692dd50b558b3571a3a"
-SRC_URI[sha256sum] = "0c1cab8dc9f2588bd3076a28f77a7f8de9560cbf2d80e53f9a8696ada80ed0f8"
+SRC_URI[md5sum] = "8ab5123535549195aff19e91b4e49f48"
+SRC_URI[sha256sum] = "9b9ccd7d0b11b0e179f1f58dc2caa3e0c62c8609e1e1dc7dcaadf941b67d923c"
inherit autotools lib_package pkgconfig gettext
@@ -15,12 +15,13 @@ CFLAGS += "-pthread -D_REENTRANT"
EXTRA_OECONF += "--disable-static --with-gnutls=${STAGING_LIBDIR}/../"
-PACKAGECONFIG ?= "curl"
+PACKAGECONFIG ?= "curl https"
PACKAGECONFIG_append_class-target = "\
${@bb.utils.filter('DISTRO_FEATURES', 'largefile', d)} \
"
PACKAGECONFIG[largefile] = "--enable-largefile,--disable-largefile,,"
PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl,"
+PACKAGECONFIG[https] = "--enable-https,--disable-https,libgcrypt gnutls,"
do_compile_append() {
sed -i s:-L${STAGING_LIBDIR}::g libmicrohttpd.pc
diff --git a/meta-openembedded/meta-oe/recipes-support/libmxml/libmxml_git.bb b/meta-openembedded/meta-oe/recipes-support/libmxml/libmxml_git.bb
new file mode 100644
index 000000000..542fe8157
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libmxml/libmxml_git.bb
@@ -0,0 +1,41 @@
+DESCRIPTION = "Tiny XML Library"
+LICENSE = "Mini-XML-License"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a6ba38606d63bb042c5d8cfee182e120"
+HOMEPAGE = "https://www.msweet.org/mxml/"
+BUGTRACKER = "https://github.com/michaelrsweet/mxml/issues"
+
+SRC_URI = "git://github.com/michaelrsweet/mxml.git"
+SRCREV = "ba3cca82e15a88a9cc6afb60f059288a99afc703"
+S = "${WORKDIR}/git"
+PV = "2.12+git${SRCPV}"
+
+CONFIGUREOPTS = " --prefix=${prefix} \
+ --bindir=${bindir} \
+ --sbindir=${sbindir} \
+ --libexecdir=${libexecdir} \
+ --datadir=${datadir} \
+ --sysconfdir=${sysconfdir} \
+ --sharedstatedir=${sharedstatedir} \
+ --localstatedir=${localstatedir} \
+ --libdir=${libdir} \
+ --includedir=${includedir} \
+ --oldincludedir=${oldincludedir} \
+ --infodir=${infodir} \
+ --mandir=${mandir} \
+ --host=${TARGET_SYS} \
+ --build=${BUILD_SYS} \
+ ${PACKAGECONFIG_CONFARGS} \
+ "
+
+do_configure() {
+ ./configure ${CONFIGUREOPTS} --enable-shared
+}
+
+do_install () {
+ export DSTROOT=${D}
+ oe_runmake install
+}
+
+PACKAGES += " ${PN}-bin "
+FILES_${PN} = "${libdir}/*"
+FILES_${PN}-bin = "${bindir}/*"
diff --git a/meta-openembedded/meta-oe/recipes-support/liboauth/liboauth/0001-Support-OpenSSL-1.1.0.patch b/meta-openembedded/meta-oe/recipes-support/liboauth/liboauth/0001-Support-OpenSSL-1.1.0.patch
new file mode 100644
index 000000000..8691eae2b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/liboauth/liboauth/0001-Support-OpenSSL-1.1.0.patch
@@ -0,0 +1,151 @@
+From c14d9bf71753a38df57cc6538b22ed389d2c2cb1 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 4 Sep 2018 17:18:51 -0700
+Subject: [PATCH] Support OpenSSL 1.1.0
+
+Taken from https://github.com/x42/liboauth/issues/9
+
+Upstream-Status: Submitted[https://github.com/x42/liboauth/issues/9]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/hash.c | 65 ++++++++++++++++++++++++++++++++++++------------------
+ 1 file changed, 44 insertions(+), 21 deletions(-)
+
+diff --git a/src/hash.c b/src/hash.c
+index 17ff5c8..e128826 100644
+--- a/src/hash.c
++++ b/src/hash.c
+@@ -362,6 +362,11 @@ looser:
+ #include "oauth.h" // base64 encode fn's.
+ #include <openssl/hmac.h>
+
++#if OPENSSL_VERSION_NUMBER < 0x10100000
++#define EVP_MD_CTX_new EVP_MD_CTX_create
++#define EVP_MD_CTX_free EVP_MD_CTX_destroy
++#endif
++
+ char *oauth_sign_hmac_sha1 (const char *m, const char *k) {
+ return(oauth_sign_hmac_sha1_raw (m, strlen(m), k, strlen(k)));
+ }
+@@ -386,7 +391,7 @@ char *oauth_sign_rsa_sha1 (const char *m, const char *k) {
+ unsigned char *sig = NULL;
+ unsigned char *passphrase = NULL;
+ unsigned int len=0;
+- EVP_MD_CTX md_ctx;
++ EVP_MD_CTX *md_ctx;
+
+ EVP_PKEY *pkey;
+ BIO *in;
+@@ -399,24 +404,31 @@ char *oauth_sign_rsa_sha1 (const char *m, const char *k) {
+ return xstrdup("liboauth/OpenSSL: can not read private key");
+ }
+
++ md_ctx = EVP_MD_CTX_new();
++ if (md_ctx == NULL) {
++ return xstrdup("liboauth/OpenSSL: failed to allocate EVP_MD_CTX");
++ }
++
+ len = EVP_PKEY_size(pkey);
+ sig = (unsigned char*)xmalloc((len+1)*sizeof(char));
+
+- EVP_SignInit(&md_ctx, EVP_sha1());
+- EVP_SignUpdate(&md_ctx, m, strlen(m));
+- if (EVP_SignFinal (&md_ctx, sig, &len, pkey)) {
++ EVP_SignInit(md_ctx, EVP_sha1());
++ EVP_SignUpdate(md_ctx, m, strlen(m));
++ if (EVP_SignFinal (md_ctx, sig, &len, pkey)) {
+ char *tmp;
+ sig[len] = '\0';
+ tmp = oauth_encode_base64(len,sig);
+ OPENSSL_free(sig);
+ EVP_PKEY_free(pkey);
++ EVP_MD_CTX_free(md_ctx);
+ return tmp;
+ }
++ EVP_MD_CTX_free(md_ctx);
+ return xstrdup("liboauth/OpenSSL: rsa-sha1 signing failed");
+ }
+
+ int oauth_verify_rsa_sha1 (const char *m, const char *c, const char *s) {
+- EVP_MD_CTX md_ctx;
++ EVP_MD_CTX *md_ctx;
+ EVP_PKEY *pkey;
+ BIO *in;
+ X509 *cert = NULL;
+@@ -437,13 +449,18 @@ int oauth_verify_rsa_sha1 (const char *m, const char *c, const char *s) {
+ return -2;
+ }
+
++ md_ctx = EVP_MD_CTX_new();
++ if (md_ctx == NULL) {
++ return -2;
++ }
++
+ b64d= (unsigned char*) xmalloc(sizeof(char)*strlen(s));
+ slen = oauth_decode_base64(b64d, s);
+
+- EVP_VerifyInit(&md_ctx, EVP_sha1());
+- EVP_VerifyUpdate(&md_ctx, m, strlen(m));
+- err = EVP_VerifyFinal(&md_ctx, b64d, slen, pkey);
+- EVP_MD_CTX_cleanup(&md_ctx);
++ EVP_VerifyInit(md_ctx, EVP_sha1());
++ EVP_VerifyUpdate(md_ctx, m, strlen(m));
++ err = EVP_VerifyFinal(md_ctx, b64d, slen, pkey);
++ EVP_MD_CTX_free(md_ctx);
+ EVP_PKEY_free(pkey);
+ xfree(b64d);
+ return (err);
+@@ -455,35 +472,41 @@ int oauth_verify_rsa_sha1 (const char *m, const char *c, const char *s) {
+ */
+ char *oauth_body_hash_file(char *filename) {
+ unsigned char fb[BUFSIZ];
+- EVP_MD_CTX ctx;
++ EVP_MD_CTX *ctx;
+ size_t len=0;
+ unsigned char *md;
+ FILE *F= fopen(filename, "r");
+ if (!F) return NULL;
+
+- EVP_MD_CTX_init(&ctx);
+- EVP_DigestInit(&ctx,EVP_sha1());
++ ctx = EVP_MD_CTX_new();
++ if (ctx == NULL) {
++ return xstrdup("liboauth/OpenSSL: failed to allocate EVP_MD_CTX");
++ }
++ EVP_DigestInit(ctx,EVP_sha1());
+ while (!feof(F) && (len=fread(fb,sizeof(char),BUFSIZ, F))>0) {
+- EVP_DigestUpdate(&ctx, fb, len);
++ EVP_DigestUpdate(ctx, fb, len);
+ }
+ fclose(F);
+ len=0;
+ md=(unsigned char*) xcalloc(EVP_MD_size(EVP_sha1()),sizeof(unsigned char));
+- EVP_DigestFinal(&ctx, md,(unsigned int*) &len);
+- EVP_MD_CTX_cleanup(&ctx);
++ EVP_DigestFinal(ctx, md,(unsigned int*) &len);
++ EVP_MD_CTX_free(ctx);
+ return oauth_body_hash_encode(len, md);
+ }
+
+ char *oauth_body_hash_data(size_t length, const char *data) {
+- EVP_MD_CTX ctx;
++ EVP_MD_CTX *ctx;
+ size_t len=0;
+ unsigned char *md;
+ md=(unsigned char*) xcalloc(EVP_MD_size(EVP_sha1()),sizeof(unsigned char));
+- EVP_MD_CTX_init(&ctx);
+- EVP_DigestInit(&ctx,EVP_sha1());
+- EVP_DigestUpdate(&ctx, data, length);
+- EVP_DigestFinal(&ctx, md,(unsigned int*) &len);
+- EVP_MD_CTX_cleanup(&ctx);
++ ctx = EVP_MD_CTX_new();
++ if (ctx == NULL) {
++ return xstrdup("liboauth/OpenSSL: failed to allocate EVP_MD_CTX");
++ }
++ EVP_DigestInit(ctx,EVP_sha1());
++ EVP_DigestUpdate(ctx, data, length);
++ EVP_DigestFinal(ctx, md,(unsigned int*) &len);
++ EVP_MD_CTX_free(ctx);
+ return oauth_body_hash_encode(len, md);
+ }
+
diff --git a/meta-openembedded/meta-oe/recipes-support/liboauth/liboauth_1.0.3.bb b/meta-openembedded/meta-oe/recipes-support/liboauth/liboauth_1.0.3.bb
index 3311da5a8..498764ac8 100644
--- a/meta-openembedded/meta-oe/recipes-support/liboauth/liboauth_1.0.3.bb
+++ b/meta-openembedded/meta-oe/recipes-support/liboauth/liboauth_1.0.3.bb
@@ -9,7 +9,9 @@ LIC_FILES_CHKSUM = "file://COPYING.MIT;md5=6266718a5241c045c8099d9be48817df \
SECTION = "libs"
DEPENDS = "curl openssl"
-SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BP}.tar.gz"
+SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BP}.tar.gz \
+ file://0001-Support-OpenSSL-1.1.0.patch \
+ "
SRC_URI[md5sum] = "689b46c2b3ab1a39735ac33f714c4f7f"
SRC_URI[sha256sum] = "0df60157b052f0e774ade8a8bac59d6e8d4b464058cc55f9208d72e41156811f"
diff --git a/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.7.bb b/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.7.bb
index 949c33752..87d99c1a6 100644
--- a/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.7.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.7.bb
@@ -22,5 +22,5 @@ do_install_append () {
rm -rf ${D}${docdir}/${BPN}
}
-FILES_${PN} += "${libdir}/engines/pkcs11.so"
-FILES_${PN}-dev += "${libdir}/engines/libpkcs11${SOLIBSDEV}"
+FILES_${PN} += "${libdir}/engines*/pkcs11.so"
+FILES_${PN}-dev += "${libdir}/engines*/libpkcs11${SOLIBSDEV}"
diff --git a/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf/use.pkg-config.for.freetype2.patch b/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf/use.pkg-config.for.freetype2.patch
deleted file mode 100644
index 1116c34d0..000000000
--- a/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf/use.pkg-config.for.freetype2.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 8cf318197eea91bec6057308befbb29426d69014 Mon Sep 17 00:00:00 2001
-From: Richard Purdie <richard.purdie@linuxfoundation.org>
-Date: Thu, 22 May 2014 10:59:33 +0100
-Subject: [PATCH] freetype-config was removed from oe-core in
-
-commit 5870bd272b0b077d0826fb900b251884c1c05061
-
- binconfig-disabled: Add class and use
-
----
- configure.in | 38 +++++---------------------------------
- 1 file changed, 5 insertions(+), 33 deletions(-)
-
-diff --git a/configure.in b/configure.in
-index 865075e..d7a5a81 100644
---- a/configure.in
-+++ b/configure.in
-@@ -90,39 +90,11 @@ case "$host" in
- esac
- AM_CONDITIONAL(USE_VERSION_RC, test x$use_version_rc = xtrue)
-
--dnl Check for the FreeType 2 library
--dnl
--dnl Get the cflags and libraries from the freetype-config script
--dnl
--AC_ARG_WITH(freetype-prefix,[ --with-freetype-prefix=PFX Prefix where FREETYPE is
--installed (optional)],
-- freetype_prefix="$withval", freetype_prefix="")
--AC_ARG_WITH(freetype-exec-prefix,[ --with-freetype-exec-prefix=PFX Exec prefix
--where FREETYPE is installed (optional)],
-- freetype_exec_prefix="$withval", freetype_exec_prefix="")
--
--if test x$freetype_exec_prefix != x ; then
-- freetype_args="$freetype_args --exec-prefix=$freetype_exec_prefix"
-- if test x${FREETYPE_CONFIG+set} != xset ; then
-- FREETYPE_CONFIG=$freetype_exec_prefix/bin/freetype-config
-- fi
--fi
--if test x$freetype_prefix != x ; then
-- freetype_args="$freetype_args --prefix=$freetype_prefix"
-- if test x${FREETYPE_CONFIG+set} != xset ; then
-- FREETYPE_CONFIG=$freetype_prefix/bin/freetype-config
-- fi
--fi
--AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)
--no_freetype=""
--if test "$FREETYPE_CONFIG" = "no" ; then
-- AC_MSG_ERROR([
--*** Unable to find FreeType2 library (http://www.freetype.org/)
--])
--else
-- CFLAGS="$CFLAGS `$FREETYPE_CONFIG $freetypeconf_args --cflags`"
-- LIBS="$LIBS `$FREETYPE_CONFIG $freetypeconf_args --libs`"
--fi
-+PKG_CHECK_MODULES(FREETYPE2, freetype2,
-+ CFLAGS="$CFLAGS $FREETYPE2_CFLAGS"
-+ LIBS="$LIBS $FREETYPE2_LIBS",
-+ AC_MSG_ERROR([*** Unable to find FreeType2 library (http://www.freetype.org/)])
-+)
-
- dnl Check for SDL
- SDL_VERSION=1.2.4
diff --git a/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf_2.0.11.bb b/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf_2.0.11.bb
deleted file mode 100644
index d8b378f2c..000000000
--- a/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf_2.0.11.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "Simple DirectMedia Layer truetype font library"
-SECTION = "libs"
-DEPENDS = "virtual/libsdl freetype"
-LICENSE = "Zlib"
-LIC_FILES_CHKSUM = "file://COPYING;md5=22800d1b3701377aae0b61ee36f5c303"
-
-SRC_URI = "http://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-${PV}.tar.gz \
- file://use.pkg-config.for.freetype2.patch \
-"
-SRC_URI[md5sum] = "61e29bd9da8d245bc2471d1b2ce591aa"
-SRC_URI[sha256sum] = "724cd895ecf4da319a3ef164892b72078bd92632a5d812111261cde248ebcdb7"
-
-S = "${WORKDIR}/SDL_ttf-${PV}"
-
-inherit autotools pkgconfig
-
-LDFLAGS += "-lm"
-
-do_configure_prepend() {
- # make autoreconf happy
- touch ${S}/NEWS ${S}/AUTHORS ${S}/ChangeLog
-
- # Removing these files fixes a libtool version mismatch.
- MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4"
-
- for i in ${MACROS}; do
- rm -f ${S}/acinclude/$i
- done
-}
diff --git a/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf/automake_foreign.patch b/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf/automake_foreign.patch
deleted file mode 100644
index 871e6e94e..000000000
--- a/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf/automake_foreign.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From f9c4ad3a171d676e3818b8f6897f325ccf0b2203 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 9 May 2017 00:57:10 -0700
-
----
- Makefile.am | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/Makefile.am b/Makefile.am
-index 8166d91..8e05e49 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -2,6 +2,8 @@
-
- lib_LTLIBRARIES = libSDL2_ttf.la
-
-+AUTOMAKE_OPTIONS = foreign
-+
- libSDL2_ttfincludedir = $(includedir)/SDL2
- libSDL2_ttfinclude_HEADERS = \
- SDL_ttf.h
diff --git a/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf/use.pkg-config.for.freetype2.patch b/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf/use.pkg-config.for.freetype2.patch
deleted file mode 100644
index 1dfbec6ed..000000000
--- a/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf/use.pkg-config.for.freetype2.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From e6d2c0e130811c15b5f5cc10221fae182cb8609e Mon Sep 17 00:00:00 2001
-From: Richard Purdie <richard.purdie@linuxfoundation.org>
-Date: Thu, 22 May 2014 10:59:33 +0100
-Subject: [PATCH] freetype-config was removed from oe-core in
-
-commit 5870bd272b0b077d0826fb900b251884c1c05061
-
- binconfig-disabled: Add class and use
-
----
- configure.in | 38 +++++---------------------------------
- 1 file changed, 5 insertions(+), 33 deletions(-)
-
-diff --git a/configure.in b/configure.in
-index 9b36e15..f300cae 100644
---- a/configure.in
-+++ b/configure.in
-@@ -86,39 +86,11 @@ case "$host" in
- esac
- AM_CONDITIONAL(USE_VERSION_RC, test x$use_version_rc = xtrue)
-
--dnl Check for the FreeType 2 library
--dnl
--dnl Get the cflags and libraries from the freetype-config script
--dnl
--AC_ARG_WITH(freetype-prefix,[ --with-freetype-prefix=PFX Prefix where FREETYPE is
--installed (optional)],
-- freetype_prefix="$withval", freetype_prefix="")
--AC_ARG_WITH(freetype-exec-prefix,[ --with-freetype-exec-prefix=PFX Exec prefix
--where FREETYPE is installed (optional)],
-- freetype_exec_prefix="$withval", freetype_exec_prefix="")
--
--if test x$freetype_exec_prefix != x ; then
-- freetype_args="$freetype_args --exec-prefix=$freetype_exec_prefix"
-- if test x${FREETYPE_CONFIG+set} != xset ; then
-- FREETYPE_CONFIG=$freetype_exec_prefix/bin/freetype-config
-- fi
--fi
--if test x$freetype_prefix != x ; then
-- freetype_args="$freetype_args --prefix=$freetype_prefix"
-- if test x${FREETYPE_CONFIG+set} != xset ; then
-- FREETYPE_CONFIG=$freetype_prefix/bin/freetype-config
-- fi
--fi
--AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)
--no_freetype=""
--if test "$FREETYPE_CONFIG" = "no" ; then
-- AC_MSG_ERROR([
--*** Unable to find FreeType2 library (http://www.freetype.org/)
--])
--else
-- CFLAGS="$CFLAGS `$FREETYPE_CONFIG $freetypeconf_args --cflags`"
-- LIBS="$LIBS `$FREETYPE_CONFIG $freetypeconf_args --libs`"
--fi
-+PKG_CHECK_MODULES(FREETYPE2, freetype2,
-+ CFLAGS="$CFLAGS $FREETYPE2_CFLAGS"
-+ LIBS="$LIBS $FREETYPE2_LIBS",
-+ AC_MSG_ERROR([*** Unable to find FreeType2 library (http://www.freetype.org/)])
-+)
-
- dnl Check for SDL
- SDL_VERSION=2.0.0
diff --git a/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf_2.0.14.bb b/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf_2.0.14.bb
deleted file mode 100644
index 4601593ad..000000000
--- a/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf_2.0.14.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-SUMMARY = "Simple DirectMedia Layer truetype font library"
-SECTION = "libs"
-DEPENDS = "virtual/libsdl2 freetype virtual/libgl"
-LICENSE = "Zlib"
-LIC_FILES_CHKSUM = "file://COPYING.txt;md5=cb33e7c4df9fbde389f149ad6bc93ce5"
-
-SRC_URI = " \
- http://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-${PV}.tar.gz \
- file://use.pkg-config.for.freetype2.patch \
- file://automake_foreign.patch \
-"
-SRC_URI[md5sum] = "e53c05e1e7f1382c316afd6c763388b1"
-SRC_URI[sha256sum] = "34db5e20bcf64e7071fe9ae25acaa7d72bdc4f11ab3ce59acc768ab62fe39276"
-
-S = "${WORKDIR}/SDL2_ttf-${PV}"
-
-inherit autotools pkgconfig distro_features_check
-
-# links to libGL.so
-REQUIRED_DISTRO_FEATURES += "x11 opengl"
-
-do_configure_prepend() {
- # Removing these files fixes a libtool version mismatch.
- MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4"
-
- for i in ${MACROS}; do
- rm -f ${S}/acinclude/$i
- done
-}
-ASNEEDED = ""
diff --git a/meta-openembedded/meta-oe/recipes-support/libssh/libssh_0.7.3.bb b/meta-openembedded/meta-oe/recipes-support/libssh/libssh_0.8.4.bb
index 79e7dc599..6040ec959 100644
--- a/meta-openembedded/meta-oe/recipes-support/libssh/libssh_0.7.3.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libssh/libssh_0.8.4.bb
@@ -1,16 +1,23 @@
SUMMARY = "Multiplatform C library implementing the SSHv2 and SSHv1 protocol"
HOMEPAGE = "http://www.libssh.org"
SECTION = "libs"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=388a4fb1dea8ceae0be78ba9b01fc139"
DEPENDS = "zlib openssl libgcrypt"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=388a4fb1dea8ceae0be78ba9b01fc139"
+SRC_URI = "git://git.libssh.org/projects/libssh.git;branch=stable-0.8"
+SRCREV = "789df0b7d0c7abd6b85db9fc5247e146e3d4ddba"
-SRC_URI = "git://git.libssh.org/projects/libssh.git;branch=v0-7"
-SRCREV = "cdf7690e038230623cbbf6b024ece62f41efa98d"
S = "${WORKDIR}/git"
+inherit cmake
+
+PACKAGECONFIG ??=""
+PACKAGECONFIG[gssapi] = "-DWITH_GSSAPI=1, -DWITH_GSSAPI=0, krb5, "
+
+ARM_INSTRUCTION_SET_armv5 = "arm"
+
EXTRA_OECMAKE = " \
-DWITH_GCRYPT=1 \
-DWITH_PCAP=1 \
@@ -19,16 +26,10 @@ EXTRA_OECMAKE = " \
-DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \
"
-PACKAGECONFIG ??=""
-PACKAGECONFIG[gssapi] = "-DWITH_GSSAPI=1, -DWITH_GSSAPI=0, krb5, "
-
-inherit cmake
-
do_configure_prepend () {
# Disable building of examples
sed -i -e '/add_subdirectory(examples)/s/^/#DONOTWANT/' ${S}/CMakeLists.txt \
|| bbfatal "Failed to disable examples"
}
-FILES_${PN}-dev += "${libdir}/cmake"
TOOLCHAIN = "gcc"
diff --git a/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_7.0.1.bb b/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_7.0.1.bb
index 74780e101..e4bb3f326 100644
--- a/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_7.0.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_7.0.1.bb
@@ -12,6 +12,4 @@ S = "${WORKDIR}/git"
inherit cmake
-FILES_${PN}-dev += "${libdir}/cmake/"
-
BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/libusb/libusb-compat/0001-usb.h-Include-sys-types.h.patch b/meta-openembedded/meta-oe/recipes-support/libusb/libusb-compat/0001-usb.h-Include-sys-types.h.patch
new file mode 100644
index 000000000..b88440dec
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libusb/libusb-compat/0001-usb.h-Include-sys-types.h.patch
@@ -0,0 +1,30 @@
+From 340f911f9e3f4ff6b01682c5341c959060782af2 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 2 Apr 2015 19:18:45 -0700
+Subject: [PATCH] usb.h: Include sys/types.h
+
+We need the definitions for things like u_intX_t
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ libusb/usb.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/libusb/usb.h b/libusb/usb.h
+index 84e730f..caffae2 100644
+--- a/libusb/usb.h
++++ b/libusb/usb.h
+@@ -31,6 +31,8 @@
+
+ #include <dirent.h>
+
++#include <sys/types.h>
++
+ /*
+ * USB spec information
+ *
+--
+2.1.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/libusb/libusb-compat_0.1.5.bb b/meta-openembedded/meta-oe/recipes-support/libusb/libusb-compat_0.1.5.bb
new file mode 100644
index 000000000..1ddbe238f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libusb/libusb-compat_0.1.5.bb
@@ -0,0 +1,42 @@
+SUMMARY = "libusb-0.1 compatibility layer for libusb1"
+DESCRIPTION = "libusb-0.1 compatible layer for libusb1, a drop-in replacement \
+that aims to look, feel and behave exactly like libusb-0.1"
+HOMEPAGE = "http://www.libusb.org/"
+BUGTRACKER = "http://www.libusb.org/report"
+SECTION = "libs"
+
+LICENSE = "LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=f2ac5f3ac4835e8f91324a26a590a423"
+DEPENDS = "libusb1"
+
+# Few packages are known not to work with libusb-compat (e.g. libmtp-1.0.0),
+# so here libusb-0.1 is removed completely instead of adding virtual/libusb0.
+# Besides, libusb-0.1 uses a per 1ms polling that hurts a lot to power
+# consumption.
+PROVIDES = "libusb virtual/libusb0"
+BBCLASSEXTEND = "native nativesdk"
+
+PE = "1"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/libusb/libusb-compat-${PV}.tar.bz2 \
+ file://0001-usb.h-Include-sys-types.h.patch \
+ "
+
+SRC_URI[md5sum] = "2780b6a758a1e2c2943bdbf7faf740e4"
+SRC_URI[sha256sum] = "404ef4b6b324be79ac1bfb3d839eac860fbc929e6acb1ef88793a6ea328bc55a"
+
+UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/libusb/files/libusb-compat-0.1/"
+UPSTREAM_CHECK_REGEX = "/libusb-compat-(?P<pver>(\d+[\.\-_]*)+)/$"
+
+BINCONFIG = "${bindir}/libusb-config"
+
+inherit autotools pkgconfig binconfig-disabled lib_package
+
+EXTRA_OECONF = "--libdir=${base_libdir}"
+
+do_install_append() {
+ install -d ${D}${libdir}
+ if [ ! ${D}${libdir} -ef ${D}${base_libdir} ]; then
+ mv ${D}${base_libdir}/pkgconfig ${D}${libdir}
+ fi
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/links/files/ac-prog-cxx.patch b/meta-openembedded/meta-oe/recipes-support/links/files/ac-prog-cxx.patch
index 41c382685..2dc57a5c8 100644
--- a/meta-openembedded/meta-oe/recipes-support/links/files/ac-prog-cxx.patch
+++ b/meta-openembedded/meta-oe/recipes-support/links/files/ac-prog-cxx.patch
@@ -1,11 +1,21 @@
---- links-2.1pre20/configure.in.orig 2005-12-21 15:23:49.000000000 +0000
-+++ links-2.1pre20/configure.in 2005-12-21 15:23:59.000000000 +0000
-@@ -18,7 +18,7 @@
+From c00668541f68c17a5e453a4dcc2a86022b20af87 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Mon, 30 Jul 2012 23:52:49 +0200
+
+---
+ configure.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.in b/configure.in
+index 7c15b6b..9896631 100644
+--- a/configure.in
++++ b/configure.in
+@@ -23,7 +23,7 @@ AM_CONFIG_HEADER(config.h)
dnl Checks for programs.
AC_PROG_CC
--#AC_PROG_CXX
+-dnl AC_PROG_CXX
+AC_PROG_CXX
- #AC_PROG_AWK
- #AM_PROG_LEX
- #AC_PROG_YACC
+ dnl AC_PROG_AWK
+ dnl AM_PROG_LEX
+ dnl AC_PROG_YACC
diff --git a/meta-openembedded/meta-oe/recipes-support/links/links-x11_2.16.bb b/meta-openembedded/meta-oe/recipes-support/links/links-x11_2.16.bb
new file mode 100644
index 000000000..f55a6fc7b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/links/links-x11_2.16.bb
@@ -0,0 +1,53 @@
+# FIXME: the LIC_FILES_CHKSUM values have been updated by 'devtool upgrade'.
+# The following is the difference between the old and the new license text.
+# Please update the LICENSE value if needed, and summarize the changes in
+# the commit message via 'License-Update:' tag.
+# (example: 'License-Update: copyright years updated.')
+#
+# The changes:
+#
+# --- COPYING
+# +++ COPYING
+# @@ -293,7 +293,7 @@
+# <one line to give the program's name and a brief idea of what it does.>
+# Copyright (C) <year> <name of author>
+#
+# - on, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USAThis program is free software; you can redistribute it and/or modify
+# + This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+#
+
+require links.inc
+
+DEPENDS += "virtual/libx11"
+RCONFLICTS_${PN} = "links"
+
+inherit distro_features_check
+# depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI += " file://links2.desktop \
+ http://www.xora.org.uk/oe/links2.png;name=icon"
+
+S = "${WORKDIR}/links-${PV}"
+
+EXTRA_OECONF = "--enable-graphics \
+ --with-ssl=${STAGING_LIBDIR}/.. --with-libjpeg \
+ --without-libtiff --without-svgalib --without-fb \
+ --without-directfb --without-pmshell --without-atheos \
+ --with-x --without-gpm"
+
+do_install_append() {
+ install -d ${D}/${datadir}/applications
+ install -m 0644 ${WORKDIR}/links2.desktop ${D}/${datadir}/applications
+ install -d ${D}/${datadir}/pixmaps
+ install -m 0644 ${WORKDIR}/links2.png ${D}/${datadir}/pixmaps
+}
+
+SRC_URI[md5sum] = "645fb0c0294e4c3268f94d307d394ffb"
+SRC_URI[sha256sum] = "82f03038d5e050a65681b9888762af41c40fd42dec7e59a8d630bfb0ee134a3f"
+SRC_URI[icon.md5sum] = "477e8787927c634614bac01b44355a33"
+SRC_URI[icon.sha256sum] = "eddcd8b8c8698aa621d1a453943892d77b72ed492e0d14e0dbac5c6a57e52f47"
diff --git a/meta-openembedded/meta-oe/recipes-support/links/links-x11_2.7.bb b/meta-openembedded/meta-oe/recipes-support/links/links-x11_2.7.bb
deleted file mode 100644
index 2ae11ac97..000000000
--- a/meta-openembedded/meta-oe/recipes-support/links/links-x11_2.7.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-require links.inc
-
-DEPENDS += "virtual/libx11"
-RCONFLICTS_${PN} = "links"
-
-inherit distro_features_check
-# depends on virtual/libx11
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI += " file://links2.desktop \
- http://www.xora.org.uk/oe/links2.png;name=icon"
-
-S = "${WORKDIR}/links-${PV}"
-
-EXTRA_OECONF = "--enable-graphics \
- --with-ssl=${STAGING_LIBDIR}/.. --with-libjpeg \
- --without-libtiff --without-svgalib --without-fb \
- --without-directfb --without-pmshell --without-atheos \
- --with-x --without-gpm"
-
-do_install_append() {
- install -d ${D}/${datadir}/applications
- install -m 0644 ${WORKDIR}/links2.desktop ${D}/${datadir}/applications
- install -d ${D}/${datadir}/pixmaps
- install -m 0644 ${WORKDIR}/links2.png ${D}/${datadir}/pixmaps
-}
-
-SRC_URI[md5sum] = "d06aa6e14b2172d73188871a5357185a"
-SRC_URI[sha256sum] = "0c182b1cbcdfd5cdcd2f75a6032d1a4b660d07c1225c1e07757cec81d3302130"
-SRC_URI[icon.md5sum] = "477e8787927c634614bac01b44355a33"
-SRC_URI[icon.sha256sum] = "eddcd8b8c8698aa621d1a453943892d77b72ed492e0d14e0dbac5c6a57e52f47"
diff --git a/meta-openembedded/meta-oe/recipes-support/links/links.inc b/meta-openembedded/meta-oe/recipes-support/links/links.inc
index e07240820..d6aa2d2d4 100644
--- a/meta-openembedded/meta-oe/recipes-support/links/links.inc
+++ b/meta-openembedded/meta-oe/recipes-support/links/links.inc
@@ -3,7 +3,7 @@ browser, similar to Lynx."
HOMEPAGE = "http://links.twibright.com/"
SECTION = "console/network"
LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=65e735be2e05d5943803344148f57603"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b0c80473f97008e42e29a9f80fcc55ff"
DEPENDS = "jpeg libpng flex openssl zlib"
SRC_URI = "http://links.twibright.com/download/links-${PV}.tar.bz2 \
diff --git a/meta-openembedded/meta-oe/recipes-support/links/links_2.7.bb b/meta-openembedded/meta-oe/recipes-support/links/links_2.16.bb
index e80dd7bca..19ea7a67b 100644
--- a/meta-openembedded/meta-oe/recipes-support/links/links_2.7.bb
+++ b/meta-openembedded/meta-oe/recipes-support/links/links_2.16.bb
@@ -9,5 +9,7 @@ EXTRA_OECONF = "--enable-graphics \
--without-directfb --without-pmshell --without-atheos \
--without-x"
-SRC_URI[md5sum] = "d06aa6e14b2172d73188871a5357185a"
-SRC_URI[sha256sum] = "0c182b1cbcdfd5cdcd2f75a6032d1a4b660d07c1225c1e07757cec81d3302130"
+SRC_URI[md5sum] = "645fb0c0294e4c3268f94d307d394ffb"
+SRC_URI[sha256sum] = "82f03038d5e050a65681b9888762af41c40fd42dec7e59a8d630bfb0ee134a3f"
+SRC_URI[icon.md5sum] = "477e8787927c634614bac01b44355a33"
+SRC_URI[icon.sha256sum] = "eddcd8b8c8698aa621d1a453943892d77b72ed492e0d14e0dbac5c6a57e52f47"
diff --git a/meta-openembedded/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb b/meta-openembedded/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb
index 3a6319c31..d9780cfb4 100644
--- a/meta-openembedded/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb
@@ -60,3 +60,7 @@ RDEPENDS_${PN} += "python-stringold python-subprocess python-shell \
bash"
FILES_${PN} += "${sbindir}/* /etc/init.d/* /etc/target/*"
+
+# http://errors.yoctoproject.org/Errors/Details/184712/
+# python-native/python: can't open file 'setup.py': [Errno 2] No such file or directory
+CLEANBROKEN = "1"
diff --git a/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev/0001-include-sys-sysmacros.h-for-major-minor-definitions.patch b/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev/0001-include-sys-sysmacros.h-for-major-minor-definitions.patch
new file mode 100644
index 000000000..12f5be981
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev/0001-include-sys-sysmacros.h-for-major-minor-definitions.patch
@@ -0,0 +1,30 @@
+From 2f39dc3d6f920c0826aa74367da1a0a7cc49b0fe Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 11 Aug 2018 15:18:04 -0700
+Subject: [PATCH] include sys/sysmacros.h for major/minor definitions
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+inclusion of <sys/sysmacros.h> by <sys/types.h> is deprecated.
+This means that in a future release, the macros “major”, “minor”, and
+“makedev” will only be available from <sys/sysmacros.h>.
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/lockdev.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/lockdev.c b/src/lockdev.c
+index 9a0fca5..3581938 100644
+--- a/src/lockdev.c
++++ b/src/lockdev.c
+@@ -117,6 +117,7 @@
+ #include <sys/stat.h>
+ #include <sys/file.h>
+ #include <sys/types.h>
++#include <sys/sysmacros.h>
+ #include <sys/wait.h>
+ #include "lockdev.h"
+ #include "ttylock.h"
diff --git a/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev_git.bb b/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev_git.bb
index 507ce3fe5..5ad7f0c50 100644
--- a/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev_git.bb
@@ -6,7 +6,9 @@ LIC_FILES_CHKSUM="file://COPYING;md5=4fbd65380cdd255951079008b364516c"
PV = "1.0.3+git${SRCPV}"
SRCREV = "16b899645d32012cc94cc9232f64d4ddaaf0b795"
-SRC_URI = "git://anonscm.debian.org/lockdev/lockdev.git"
+SRC_URI = "git://anonscm.debian.org/lockdev/lockdev.git \
+ file://0001-include-sys-sysmacros.h-for-major-minor-definitions.patch \
+ "
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/files/0001-Avoid-bashisms-in-init-scripts.patch b/meta-openembedded/meta-oe/recipes-support/lvm2/files/0001-Avoid-bashisms-in-init-scripts.patch
index e86ab25e6..5b55111dc 100644
--- a/meta-openembedded/meta-oe/recipes-support/lvm2/files/0001-Avoid-bashisms-in-init-scripts.patch
+++ b/meta-openembedded/meta-oe/recipes-support/lvm2/files/0001-Avoid-bashisms-in-init-scripts.patch
@@ -17,17 +17,17 @@ Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
scripts/lvm2_monitoring_init_rhel4 | 4 ++--
8 files changed, 17 insertions(+), 17 deletions(-)
-diff --git a/scripts/blk_availability_init_red_hat.in b/scripts/blk_availability_init_red_hat.in
-index a84ffe7..6b855b7 100644
---- a/scripts/blk_availability_init_red_hat.in
-+++ b/scripts/blk_availability_init_red_hat.in
+Index: LVM2.2.02.177/scripts/blk_availability_init_red_hat.in
+===================================================================
+--- LVM2.2.02.177.orig/scripts/blk_availability_init_red_hat.in
++++ LVM2.2.02.177/scripts/blk_availability_init_red_hat.in
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
#
- # Copyright (C) 2012 Red Hat, Inc. All rights reserved.
+ # Copyright (C) 2012-2017 Red Hat, Inc. All rights reserved.
#
-@@ -53,6 +53,6 @@ case "$1" in
+@@ -51,6 +51,6 @@ case "$1" in
status)
;;
*)
@@ -35,10 +35,10 @@ index a84ffe7..6b855b7 100644
+ echo "Usage: $0 {start|stop|status}"
;;
esac
-diff --git a/scripts/clvmd_init_red_hat.in b/scripts/clvmd_init_red_hat.in
-index d7f3392..abc8011 100644
---- a/scripts/clvmd_init_red_hat.in
-+++ b/scripts/clvmd_init_red_hat.in
+Index: LVM2.2.02.177/scripts/clvmd_init_red_hat.in
+===================================================================
+--- LVM2.2.02.177.orig/scripts/clvmd_init_red_hat.in
++++ LVM2.2.02.177/scripts/clvmd_init_red_hat.in
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
@@ -63,17 +63,17 @@ index d7f3392..abc8011 100644
rtrn=2
;;
esac
-diff --git a/scripts/cmirrord_init_red_hat.in b/scripts/cmirrord_init_red_hat.in
-index d4b7e37..d442cbc 100755
---- a/scripts/cmirrord_init_red_hat.in
-+++ b/scripts/cmirrord_init_red_hat.in
+Index: LVM2.2.02.177/scripts/cmirrord_init_red_hat.in
+===================================================================
+--- LVM2.2.02.177.orig/scripts/cmirrord_init_red_hat.in
++++ LVM2.2.02.177/scripts/cmirrord_init_red_hat.in
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
#
# chkconfig: - 22 78
# description: Starts and stops cmirrord
-@@ -101,7 +101,7 @@ case "$1" in
+@@ -103,7 +103,7 @@ case "$1" in
;;
*)
@@ -82,15 +82,15 @@ index d4b7e37..d442cbc 100755
;;
esac
-diff --git a/scripts/lvm2_cluster_activation_red_hat.sh.in b/scripts/lvm2_cluster_activation_red_hat.sh.in
-index abea026..d8cba2e 100644
---- a/scripts/lvm2_cluster_activation_red_hat.sh.in
-+++ b/scripts/lvm2_cluster_activation_red_hat.sh.in
+Index: LVM2.2.02.177/scripts/lvm2_cluster_activation_red_hat.sh.in
+===================================================================
+--- LVM2.2.02.177.orig/scripts/lvm2_cluster_activation_red_hat.sh.in
++++ LVM2.2.02.177/scripts/lvm2_cluster_activation_red_hat.sh.in
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
- sbindir=@sbindir@
+ sbindir="@SBINDIR@"
@@ -54,7 +54,7 @@ case "$1" in
rtrn=$?
@@ -101,17 +101,17 @@ index abea026..d8cba2e 100644
rtrn=3
;;
esac
-diff --git a/scripts/lvm2_lvmetad_init_red_hat.in b/scripts/lvm2_lvmetad_init_red_hat.in
-index b2f5d50..96269a9 100644
---- a/scripts/lvm2_lvmetad_init_red_hat.in
-+++ b/scripts/lvm2_lvmetad_init_red_hat.in
+Index: LVM2.2.02.177/scripts/lvm2_lvmetad_init_red_hat.in
+===================================================================
+--- LVM2.2.02.177.orig/scripts/lvm2_lvmetad_init_red_hat.in
++++ LVM2.2.02.177/scripts/lvm2_lvmetad_init_red_hat.in
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
#
- # Copyright (C) 2012 Red Hat, Inc. All rights reserved.
+ # Copyright (C) 2012-2017 Red Hat, Inc. All rights reserved.
#
-@@ -105,7 +105,7 @@ case "$1" in
+@@ -103,7 +103,7 @@ case "$1" in
;;
*)
@@ -120,17 +120,17 @@ index b2f5d50..96269a9 100644
;;
esac
-diff --git a/scripts/lvm2_lvmpolld_init_red_hat.in b/scripts/lvm2_lvmpolld_init_red_hat.in
-index c521955..cdbaece 100644
---- a/scripts/lvm2_lvmpolld_init_red_hat.in
-+++ b/scripts/lvm2_lvmpolld_init_red_hat.in
+Index: LVM2.2.02.177/scripts/lvm2_lvmpolld_init_red_hat.in
+===================================================================
+--- LVM2.2.02.177.orig/scripts/lvm2_lvmpolld_init_red_hat.in
++++ LVM2.2.02.177/scripts/lvm2_lvmpolld_init_red_hat.in
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
#
# Copyright (C) 2015 Red Hat, Inc. All rights reserved.
#
-@@ -107,7 +107,7 @@ case "$1" in
+@@ -105,7 +105,7 @@ case "$1" in
;;
*)
@@ -139,17 +139,17 @@ index c521955..cdbaece 100644
;;
esac
-diff --git a/scripts/lvm2_monitoring_init_red_hat.in b/scripts/lvm2_monitoring_init_red_hat.in
-index de7ff0d..9ff6bb7 100644
---- a/scripts/lvm2_monitoring_init_red_hat.in
-+++ b/scripts/lvm2_monitoring_init_red_hat.in
+Index: LVM2.2.02.177/scripts/lvm2_monitoring_init_red_hat.in
+===================================================================
+--- LVM2.2.02.177.orig/scripts/lvm2_monitoring_init_red_hat.in
++++ LVM2.2.02.177/scripts/lvm2_monitoring_init_red_hat.in
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
#
# Copyright (C) 2007-2009 Red Hat, Inc. All rights reserved.
#
-@@ -128,7 +128,7 @@ case "$1" in
+@@ -127,7 +127,7 @@ case "$1" in
;;
*)
@@ -158,10 +158,10 @@ index de7ff0d..9ff6bb7 100644
;;
esac
-diff --git a/scripts/lvm2_monitoring_init_rhel4 b/scripts/lvm2_monitoring_init_rhel4
-index 8eb06c5..2e8d0f7 100644
---- a/scripts/lvm2_monitoring_init_rhel4
-+++ b/scripts/lvm2_monitoring_init_rhel4
+Index: LVM2.2.02.177/scripts/lvm2_monitoring_init_rhel4
+===================================================================
+--- LVM2.2.02.177.orig/scripts/lvm2_monitoring_init_rhel4
++++ LVM2.2.02.177/scripts/lvm2_monitoring_init_rhel4
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
@@ -177,6 +177,3 @@ index 8eb06c5..2e8d0f7 100644
;;
esac
---
-2.12.0
-
diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/files/0001-implement-libc-specific-reopen_stream.patch b/meta-openembedded/meta-oe/recipes-support/lvm2/files/0001-implement-libc-specific-reopen_stream.patch
index 5d72402bd..bb582ed1f 100644
--- a/meta-openembedded/meta-oe/recipes-support/lvm2/files/0001-implement-libc-specific-reopen_stream.patch
+++ b/meta-openembedded/meta-oe/recipes-support/lvm2/files/0001-implement-libc-specific-reopen_stream.patch
@@ -19,11 +19,11 @@ Signed-off-by: Dengke Du <dengke.du@windriver.com>
tools/lvmcmdline.c | 6 +++---
2 files changed, 9 insertions(+), 3 deletions(-)
-diff --git a/lib/log/log.c b/lib/log/log.c
-index c933154..3581084 100644
---- a/lib/log/log.c
-+++ b/lib/log/log.c
-@@ -161,6 +161,7 @@ static void _check_and_replace_standard_log_streams(FILE *old_stream, FILE *new_
+Index: LVM2.2.02.177/lib/log/log.c
+===================================================================
+--- LVM2.2.02.177.orig/lib/log/log.c
++++ LVM2.2.02.177/lib/log/log.c
+@@ -161,6 +161,7 @@ static void _check_and_replace_standard_
* Close and reopen standard stream on file descriptor fd.
*/
int reopen_standard_stream(FILE **stream, const char *mode)
@@ -31,7 +31,7 @@ index c933154..3581084 100644
{
int fd, fd_copy, new_fd;
const char *name;
-@@ -207,6 +208,11 @@ int reopen_standard_stream(FILE **stream, const char *mode)
+@@ -207,6 +208,11 @@ int reopen_standard_stream(FILE **stream
*stream = new_stream;
return 1;
}
@@ -43,11 +43,11 @@ index c933154..3581084 100644
void init_log_fn(lvm2_log_fn_t log_fn)
{
-diff --git a/tools/lvmcmdline.c b/tools/lvmcmdline.c
-index 9a4deb7..f1f18e6 100644
---- a/tools/lvmcmdline.c
-+++ b/tools/lvmcmdline.c
-@@ -1818,7 +1818,7 @@ static int _check_standard_fds(void)
+Index: LVM2.2.02.177/tools/lvmcmdline.c
+===================================================================
+--- LVM2.2.02.177.orig/tools/lvmcmdline.c
++++ LVM2.2.02.177/tools/lvmcmdline.c
+@@ -3095,7 +3095,7 @@ static int _check_standard_fds(void)
int err = is_valid_fd(STDERR_FILENO);
if (!is_valid_fd(STDIN_FILENO) &&
@@ -56,7 +56,7 @@ index 9a4deb7..f1f18e6 100644
if (err)
perror("stdin stream open");
else
-@@ -1828,7 +1828,7 @@ static int _check_standard_fds(void)
+@@ -3105,7 +3105,7 @@ static int _check_standard_fds(void)
}
if (!is_valid_fd(STDOUT_FILENO) &&
@@ -65,7 +65,7 @@ index 9a4deb7..f1f18e6 100644
if (err)
perror("stdout stream open");
/* else no stdout */
-@@ -1836,7 +1836,7 @@ static int _check_standard_fds(void)
+@@ -3113,7 +3113,7 @@ static int _check_standard_fds(void)
}
if (!is_valid_fd(STDERR_FILENO) &&
@@ -74,6 +74,3 @@ index 9a4deb7..f1f18e6 100644
printf("stderr stream open: %s\n",
strerror(errno));
return 0;
---
-2.12.0
-
diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/files/0002-Guard-use-of-mallinfo-with-__GLIBC__.patch b/meta-openembedded/meta-oe/recipes-support/lvm2/files/0002-Guard-use-of-mallinfo-with-__GLIBC__.patch
index 95dcede33..ce8a97ab6 100644
--- a/meta-openembedded/meta-oe/recipes-support/lvm2/files/0002-Guard-use-of-mallinfo-with-__GLIBC__.patch
+++ b/meta-openembedded/meta-oe/recipes-support/lvm2/files/0002-Guard-use-of-mallinfo-with-__GLIBC__.patch
@@ -12,11 +12,11 @@ Signed-off-by: Dengke Du <dengke.du@windriver.com>
lib/mm/memlock.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/lib/mm/memlock.c b/lib/mm/memlock.c
-index da90144..f34f890 100644
---- a/lib/mm/memlock.c
-+++ b/lib/mm/memlock.c
-@@ -150,7 +150,7 @@ static void _touch_memory(void *mem, size_t size)
+Index: LVM2.2.02.177/lib/mm/memlock.c
+===================================================================
+--- LVM2.2.02.177.orig/lib/mm/memlock.c
++++ LVM2.2.02.177/lib/mm/memlock.c
+@@ -151,7 +151,7 @@ static void _touch_memory(void *mem, siz
static void _allocate_memory(void)
{
@@ -25,6 +25,3 @@ index da90144..f34f890 100644
void *stack_mem;
struct rlimit limit;
int i, area = 0, missing = _size_malloc_tmp, max_areas = 32, hblks;
---
-2.12.0
-
diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/files/0004-tweak-MODPROBE_CMD-for-cross-compile.patch b/meta-openembedded/meta-oe/recipes-support/lvm2/files/0004-tweak-MODPROBE_CMD-for-cross-compile.patch
index aaeaa725d..517b9a5f2 100644
--- a/meta-openembedded/meta-oe/recipes-support/lvm2/files/0004-tweak-MODPROBE_CMD-for-cross-compile.patch
+++ b/meta-openembedded/meta-oe/recipes-support/lvm2/files/0004-tweak-MODPROBE_CMD-for-cross-compile.patch
@@ -1,6 +1,6 @@
-From 0012ea63f6070a5d41fa380970f9c30b953237d2 Mon Sep 17 00:00:00 2001
-From: Dengke Du <dengke.du@windriver.com>
-Date: Tue, 25 Oct 2016 11:59:40 +0000
+From 3bba45890985b877b823836e78a1c8ac3c878856 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Tue, 31 Jul 2018 15:04:29 +0800
Subject: [PATCH 4/4] tweak MODPROBE_CMD for cross compile
Lvm uses variable MODPROBE_CMD at runtime, so build time detection of modprobe
@@ -16,23 +16,23 @@ filter=["r|/loop1$|","r|/loop2$|","r|/loop3$|","r|/loop4$|","r|/loop5$|","r|/loo
Upstream-Status: Inappropriate [oe specific]
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-Signed-off-by: Dengke Du <dengke.du@windriver.com>
---
- configure.in | 1 -
- 1 file changed, 1 deletion(-)
+ configure.ac | 2 --
+ 1 file changed, 2 deletions(-)
-diff --git a/configure.in b/configure.in
-index cc77aab..a3579f2 100644
---- a/configure.in
-+++ b/configure.in
-@@ -1853,7 +1853,6 @@ if test "$UDEV_SYNC" = yes; then
+diff --git a/configure.ac b/configure.ac
+index e427708..aa374ea 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1791,8 +1791,6 @@ if test "$BUILD_DMFILEMAPD" = yes; then
fi
################################################################################
--AC_PATH_TOOL(MODPROBE_CMD, modprobe)
-
+-AC_PATH_TOOL(MODPROBE_CMD, modprobe, [], [$PATH_SBIN])
+-
if test -n "$MODPROBE_CMD"; then
AC_DEFINE_UNQUOTED([MODPROBE_CMD], ["$MODPROBE_CMD"], [The path to 'modprobe', if available.])
+ fi
--
-2.9.3
+2.7.4
diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/files/0005-do-not-build-manual.patch b/meta-openembedded/meta-oe/recipes-support/lvm2/files/0005-do-not-build-manual.patch
index 15aa9f500..e3ce4c8ac 100644
--- a/meta-openembedded/meta-oe/recipes-support/lvm2/files/0005-do-not-build-manual.patch
+++ b/meta-openembedded/meta-oe/recipes-support/lvm2/files/0005-do-not-build-manual.patch
@@ -1,6 +1,6 @@
-From d8bb25e34d6533ba78eaae697771ee499a66706f Mon Sep 17 00:00:00 2001
+From 51d661ff33bb254d7b335a9c87acf5c6e7a94192 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Wed, 2 Aug 2017 03:41:37 -0400
+Date: Tue, 31 Jul 2018 15:08:34 +0800
Subject: [PATCH] do not build manual
On some host (ubuntu 1404), build manual failed.
@@ -15,24 +15,33 @@ Upstream-Status: Pending
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
- Makefile.in | 4 ++--
- configure.in | 1 -
- 2 files changed, 2 insertions(+), 3 deletions(-)
+ Makefile.in | 6 +++---
+ configure.ac | 1 -
+ 2 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/Makefile.in b/Makefile.in
-index 31d428d..24f89a2 100644
+index e2f5a84..acf31e5 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -18,7 +18,7 @@ top_builddir = @top_builddir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
--SUBDIRS = conf daemons include lib libdaemon libdm man scripts tools
-+SUBDIRS = conf daemons include lib libdaemon libdm scripts tools
+-SUBDIRS = conf daemons include lib libdaemon libdm man scripts device_mapper tools
++SUBDIRS = conf daemons include lib libdaemon libdm scripts device_mapper tools
ifeq ("@UDEV_RULES@", "yes")
SUBDIRS += udev
-@@ -69,7 +69,7 @@ liblvm.device-mapper: include.device-mapper
+@@ -41,7 +41,7 @@ ifeq ($(MAKECMDGOALS),clean)
+ endif
+ # FIXME Should use intermediate Makefiles here!
+ ifeq ($(MAKECMDGOALS),distclean)
+- SUBDIRS = conf include man test scripts \
++ SUBDIRS = conf include test scripts \
+ libdaemon lib tools daemons libdm \
+ udev po liblvm python device_mapper
+ tools.distclean: test.distclean
+@@ -71,7 +71,7 @@ liblvm.device-mapper: include.device-mapper
daemons.device-mapper: libdm.device-mapper
tools.device-mapper: libdm.device-mapper
scripts.device-mapper: include.device-mapper
@@ -41,11 +50,11 @@ index 31d428d..24f89a2 100644
ifeq ("@INTL@", "yes")
lib.pofile: include.pofile
-diff --git a/configure.in b/configure.in
-index 1dc8819..108ace4 100644
---- a/configure.in
-+++ b/configure.in
-@@ -2213,7 +2213,6 @@ libdm/Makefile
+diff --git a/configure.ac b/configure.ac
+index aa374ea..5a92cba 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -2124,7 +2124,6 @@ libdm/Makefile
libdm/libdevmapper.pc
liblvm/Makefile
liblvm/liblvm2app.pc
@@ -54,5 +63,5 @@ index 1dc8819..108ace4 100644
python/Makefile
python/setup.py
--
-2.8.1
+2.7.4
diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.02.171.bb b/meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.02.180.bb
index b6ae90240..26af3275d 100644
--- a/meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.02.171.bb
+++ b/meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.02.180.bb
@@ -1,7 +1,7 @@
require lvm2.inc
-SRC_URI[md5sum] = "153b7bb643eb26073274968e9026fa8f"
-SRC_URI[sha256sum] = "b815a711a2fabaa5c3dc1a4a284df0268bf0f325f0fc0f5c9530c9bbb54b9964"
+SRC_URI[md5sum] = "bc26da66e96727babbd288bb0f050339"
+SRC_URI[sha256sum] = "24997e26dfc916151707c9da504d38d0473bec3481a8230b676bc079041bead6"
DEPENDS += "autoconf-archive-native"
@@ -9,6 +9,7 @@ TARGET_CC_ARCH += "${LDFLAGS}"
do_install() {
oe_runmake 'DESTDIR=${D}' -C libdm install
+ oe_runmake 'DESTDIR=${D}' -C tools install_device-mapper
}
RRECOMMENDS_${PN}_append_class-target = " lvm2-udevrules"
diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc b/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc
index 289e07d8d..26a887ea1 100644
--- a/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc
+++ b/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc
@@ -1,11 +1,11 @@
HOMEPAGE = "https://www.sourceware.org/lvm2/"
SECTION = "utils"
DESCRIPTION = "LVM2 is a set of utilities to manage logical volumes in Linux."
-LICENSE = "GPLv2 & LGPLv2"
+LICENSE = "GPLv2 & LGPLv2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=12713b4d9386533feeb07d6e4831765a \
file://COPYING.LIB;md5=fbc093901857fcd118f065f900982c24"
-DEPENDS += "util-linux"
+DEPENDS += "util-linux libaio"
SRC_URI = "ftp://sources.redhat.com/pub/lvm2/old/LVM2.${PV}.tgz \
file://lvm.conf \
@@ -17,6 +17,10 @@ SRC_URI = "ftp://sources.redhat.com/pub/lvm2/old/LVM2.${PV}.tgz \
file://0005-do-not-build-manual.patch \
file://0006-start-lvm2-monitor.service-after-tmp.mount.patch \
"
+
+UPSTREAM_CHECK_URI = "ftp://sources.redhat.com/pub/lvm2/"
+UPSTREAM_CHECK_REGEX = "LVM2\.(?P<pver>\d+(\.\d+)+)"
+
S = "${WORKDIR}/LVM2.${PV}"
inherit autotools-brokensep pkgconfig systemd license
diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-explicitly-do-not-install-libdm.patch b/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-explicitly-do-not-install-libdm.patch
index e85818dbd..7f5dd9334 100644
--- a/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-explicitly-do-not-install-libdm.patch
+++ b/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-explicitly-do-not-install-libdm.patch
@@ -1,4 +1,4 @@
-From 0a8e466fcf99622896e070c5133165e4278e8cfb Mon Sep 17 00:00:00 2001
+From 5a3e13ae94318c2bed60f875bb3852c45ce0113c Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Thu, 25 May 2017 05:27:11 -0400
Subject: [PATCH] explicitly do not install libdm
@@ -9,12 +9,14 @@ explicitly do not do the installation here.
Upstream-Status: Inappropriate [meta-oe specific]
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+Signed-off-by: Andrew Bresticker <abrestic@waymo.com>
---
libdm/Makefile.in | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
+ tools/Makefile.in | 3 ++-
+ 2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/libdm/Makefile.in b/libdm/Makefile.in
-index 3c9a4ce..45c91c6 100644
+index 66ec39513..c779c9d86 100644
--- a/libdm/Makefile.in
+++ b/libdm/Makefile.in
@@ -77,9 +77,11 @@ ifeq ("@PKGCONFIG@", "yes")
@@ -23,14 +25,28 @@ index 3c9a4ce..45c91c6 100644
-install: $(INSTALL_TYPE) install_include
+install:
-+ echo "Do not install device mappler in lvm2"
++ echo "Do not install device mapper in lvm2"
-install_device-mapper: install
+install_device-mapper:
-+ echo "Do not install device mappler in lvm2"
++ echo "Do not install device mapper in lvm2"
install_include: $(srcdir)/libdevmapper.h
$(INSTALL_DATA) -D $< $(includedir)/$(<F)
+diff --git a/tools/Makefile.in b/tools/Makefile.in
+index 103b76732..63ba7fc04 100644
+--- a/tools/Makefile.in
++++ b/tools/Makefile.in
+@@ -267,7 +267,8 @@ install_dmsetup_static: dmsetup.static
+ $(Q) $(INSTALL_PROGRAM) -D $< $(staticdir)/$(<F)
+ $(Q) $(LN_S) -f $(<F) $(staticdir)/dmstats
+
+-install_device-mapper: $(INSTALL_DMSETUP_TARGETS)
++install_device-mapper:
++ echo "Do not install device mapper in lvm2"
+
+ install_lvm2: $(INSTALL_LVM_TARGETS)
+
--
-2.8.1
+2.19.0.397.gdd90340f6a-goog
diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.02.171.bb b/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.02.180.bb
index 84881e744..7bd7b09d8 100644
--- a/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.02.171.bb
+++ b/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.02.180.bb
@@ -1,12 +1,16 @@
require lvm2.inc
-SRC_URI[md5sum] = "153b7bb643eb26073274968e9026fa8f"
-SRC_URI[sha256sum] = "b815a711a2fabaa5c3dc1a4a284df0268bf0f325f0fc0f5c9530c9bbb54b9964"
+SRC_URI[md5sum] = "bc26da66e96727babbd288bb0f050339"
+SRC_URI[sha256sum] = "24997e26dfc916151707c9da504d38d0473bec3481a8230b676bc079041bead6"
SRC_URI += "file://0001-explicitly-do-not-install-libdm.patch"
DEPENDS += "autoconf-archive-native"
+inherit multilib_script
+
+MULTILIB_SCRIPTS = "${PN}:${sysconfdir}/lvm/lvm.conf"
+
CACHED_CONFIGUREVARS += "MODPROBE_CMD=${base_sbindir}/modprobe"
do_install_append() {
@@ -34,6 +38,8 @@ SYSTEMD_AUTO_ENABLE = "disable"
TARGET_CC_ARCH += "${LDFLAGS}"
+EXTRA_OECONF_append_class-nativesdk = " --with-confdir=${sysconfdir}"
+
FILES_${PN} += "${libdir}/device-mapper/*.so"
FILES_${PN}-scripts = " \
${sbindir}/blkdeactivate \
@@ -44,7 +50,9 @@ FILES_${PN}-scripts = " \
# Specified explicitly for the udev rules, just in case that it does not get picked
# up automatically:
FILES_${PN}-udevrules = "${nonarch_base_libdir}/udev/rules.d"
+RDEPENDS_${PN}-udevrules = "${PN}"
RDEPENDS_${PN}_append_class-target = " libdevmapper"
+RDEPENDS_${PN}_append_class-nativesdk = " libdevmapper"
RDEPENDS_${PN}-scripts = "${PN} (= ${EXTENDPKGV}) bash"
RRECOMMENDS_${PN}_class-target = "${PN}-scripts (= ${EXTENDPKGV})"
diff --git a/meta-openembedded/meta-oe/recipes-support/mcelog/mce-inject_git.bb b/meta-openembedded/meta-oe/recipes-support/mcelog/mce-inject_git.bb
index f87614491..cc33cbaf2 100644
--- a/meta-openembedded/meta-oe/recipes-support/mcelog/mce-inject_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/mcelog/mce-inject_git.bb
@@ -8,6 +8,10 @@ SRC_URI = "git://git.kernel.org/pub/scm/utils/cpu/mce/mce-inject.git"
SRCREV = "4cbe46321b4a81365ff3aafafe63967264dbfec5"
+UPSTREAM_CHECK_COMMITS = "1"
+
+DEPENDS = "bison-native"
+
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://README;beginline=30;md5=94c18755082a2da9c9cf97cba3ad47d6"
diff --git a/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_1.49.bb b/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_161.bb
index 84633a76c..dfca3855b 100644
--- a/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_1.49.bb
+++ b/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_161.bb
@@ -9,10 +9,10 @@ SRC_URI = "git://git.kernel.org/pub/scm/utils/cpu/mce/mcelog.git;protocol=http;
file://run-ptest \
"
-SRCREV = "2cfdf29b2ef98ccd5ed42cdde8bbe437e0d6412f"
+SRCREV = "6ed93e30f83519b0ab71f8ecd156b8ff0b2912b6"
LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://README.md;md5=279840fabb191e6cd9150492d31b0e20"
+LIC_FILES_CHKSUM = "file://README.md;md5=74bb47b9a68850cb398665cf78b31de6"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-kpartx-include-limits.h-for-PATH_MAX.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-kpartx-include-limits.h-for-PATH_MAX.patch
deleted file mode 100644
index 46dd8e23b..000000000
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-kpartx-include-limits.h-for-PATH_MAX.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 330028a5a904a0da3788141030e614569dc5aaa7 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 14 Jul 2017 23:28:12 -0700
-Subject: [PATCH] kpartx: include limits.h for PATH_MAX
-
-lopart.c:76:12: error: 'PATH_MAX' undeclared (first use in this function); did you mean 'INT8_MAX'?
- char path[PATH_MAX];
- ^~~~~~~~
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- kpartx/lopart.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/kpartx/lopart.c b/kpartx/lopart.c
-index 7005445..5efe5dc 100644
---- a/kpartx/lopart.c
-+++ b/kpartx/lopart.c
-@@ -22,6 +22,7 @@
- #include <errno.h>
- #include <stdlib.h>
- #include <unistd.h>
-+#include <limits.h>
- #include <sys/ioctl.h>
- #include <sys/stat.h>
- #include <sys/mman.h>
---
-2.13.3
-
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-multipath-attempt-at-common-multipath.rules.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-multipath-attempt-at-common-multipath.rules.patch
deleted file mode 100644
index acb426954..000000000
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-multipath-attempt-at-common-multipath.rules.patch
+++ /dev/null
@@ -1,107 +0,0 @@
-From 5ab50e0cb888e553a2635bbbf81eea3cdeffee60 Mon Sep 17 00:00:00 2001
-From: Benjamin Marzinski <bmarzins@redhat.com>
-Date: Wed, 12 Apr 2017 09:07:51 -0500
-Subject: [PATCH 01/14] multipath: attempt at common multipath.rules
-
-This is a proposal to try and bring the Redhat and SuSE multipath.rules
-closer. There are a couple of changes that I'd like some input on.
-
-The big change is moving the kpartx call into the multipath rules. Half
-of the current kpartx.rules file is about creating symlinks for multiple
-types of dm devices. The other half auto-creates kpartx devices on top
-of multipath devices. Since it is only creating kpartx devices on top of
-multipath devices, I've moved the these rules into multipath.rules, or
-rather, I've replaced them with the redhat rules in multipath.rules. The
-biggest difference is the kpartx isn't run on every reload. It works
-with the 11-dm-mpath.rules code to not run kpartx on multipathd
-generated reloads or when there aren't any working paths. It does
-remember if it didn't get to run kpartx when it was supposed to (because
-there were no valid paths or the device was suspended) and will make
-sure to run it on the next possible uevent.
-
-The other change is the redhat multipath rules remove the partition
-device nodes for devices claimed by multipath. The udev rule will only
-do this one time (both to keep from running partx on every event, and so
-that if users manually reread the partition table, we don't keep
-removing them when clearly they are wanted). Redhat does this because we
-had multiple customer issues where they were using the scsi partitions
-instead of the kpartx devices. Obviously, with setting the partition
-devices to not ready and clearing their fs_type, this isn't essential,
-but it has helped make customers do the right thing.
-
-Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
----
- kpartx/kpartx.rules | 8 --------
- multipath/multipath.rules | 27 ++++++++++++++++++++++++---
- 2 files changed, 24 insertions(+), 11 deletions(-)
-
-diff --git a/kpartx/kpartx.rules b/kpartx/kpartx.rules
-index a958791..906e320 100644
---- a/kpartx/kpartx.rules
-+++ b/kpartx/kpartx.rules
-@@ -34,12 +34,4 @@ ENV{ID_FS_LABEL_ENC}=="?*", IMPORT{db}="ID_FS_LABEL_ENC"
- ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", \
- SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}"
-
--# Create dm tables for partitions
--ENV{DM_ACTION}=="PATH_FAILED|PATH_REINSTATED", GOTO="kpartx_end"
--ENV{DM_NR_VALID_PATHS}=="0", GOTO="kpartx_end"
--ENV{ENV{DM_UDEV_PRIMARY_SOURCE_FLAG}!="1", IMPORT{db}="DM_SUBSYSTEM_UDEV_FLAG1"
--ENV{DM_SUBSYSTEM_UDEV_FLAG1}=="1", GOTO="kpartx_end"
--ENV{DM_STATE}!="SUSPENDED", ENV{DM_UUID}=="mpath-*", \
-- RUN+="/sbin/kpartx -un -p -part /dev/$name"
--
- LABEL="kpartx_end"
-diff --git a/multipath/multipath.rules b/multipath/multipath.rules
-index 86defc0..616a04c 100644
---- a/multipath/multipath.rules
-+++ b/multipath/multipath.rules
-@@ -1,13 +1,13 @@
- # Set DM_MULTIPATH_DEVICE_PATH if the device should be handled by multipath
- SUBSYSTEM!="block", GOTO="end_mpath"
- ACTION!="add|change", GOTO="end_mpath"
--KERNEL!="sd*|dasd*", GOTO="end_mpath"
--
-+KERNEL!="sd*|dasd*|rbd*|dm-*", GOTO="end_mpath"
- IMPORT{cmdline}="nompath"
- ENV{nompath}=="?*", GOTO="end_mpath"
- IMPORT{cmdline}="multipath"
- ENV{multipath}=="off", GOTO="end_mpath"
-
-+KERNEL=="dm-*", GOTO="check_kpartx"
- ENV{DEVTYPE}!="partition", GOTO="test_dev"
- IMPORT{parent}="DM_MULTIPATH_DEVICE_PATH"
- ENV{DM_MULTIPATH_DEVICE_PATH}=="1", ENV{ID_FS_TYPE}="none", \
-@@ -21,7 +21,28 @@ TEST!="$env{MPATH_SBIN_PATH}/multipath", ENV{MPATH_SBIN_PATH}="/usr/sbin"
-
- ENV{DM_MULTIPATH_DEVICE_PATH}!="1", \
- PROGRAM=="$env{MPATH_SBIN_PATH}/multipath -u %k", \
-- ENV{DM_MULTIPATH_DEVICE_PATH}="1", ENV{ID_FS_TYPE}="none", \
-+ ENV{DM_MULTIPATH_DEVICE_PATH}="1", ENV{ID_FS_TYPE}="mpath_member", \
- ENV{SYSTEMD_READY}="0"
-
-+ENV{DM_MULTIPATH_DEVICE_PATH}!="1", GOTO="end_mpath"
-+
-+IMPORT{db}="DM_MULTIPATH_WIPE_PARTS"
-+ENV{DM_MULTIPATH_WIPE_PARTS}!="1", ENV{DM_MULTIPATH_WIPE_PARTS}="1", \
-+ RUN+="/sbin/partx -d --nr 1-1024 $env{DEVNAME}"
-+GOTO="end_mpath"
-+
-+LABEL="check_kpartx"
-+
-+IMPORT{db}="DM_MULTIPATH_NEED_KPARTX"
-+ENV{DM_UDEV_PRIMARY_SOURCE_FLAG}!="1", IMPORT{db}="DM_SUBSYSTEM_UDEV_FLAG1"
-+ENV{DM_SUBSYSTEM_UDEV_FLAG1}=="1", GOTO="end_mpath"
-+ACTION!="change", GOTO="end_mpath"
-+ENV{DM_UUID}!="mpath-?*", GOTO="end_mpath"
-+ENV{DM_ACTIVATION}=="1", ENV{DM_MULTIPATH_NEED_KPARTX}="1"
-+ENV{DM_SUSPENDED}=="1", GOTO="end_mpath"
-+ENV{DM_ACTION}=="PATH_FAILED", GOTO="end_mpath"
-+ENV{DM_ACTIVATION}!="1", ENV{DM_MULTIPATH_NEED_KPARTX}!="1", GOTO="end_mpath"
-+RUN+="/sbin/kpartx -un -p -part /dev/$name"
-+ENV{DM_MULTIPATH_NEED_KPARTX}=""
-+
- LABEL="end_mpath"
---
-2.8.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-multipath-tools-add-RDAC-SUN-ArrayStorage-to-hwtable.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-multipath-tools-add-RDAC-SUN-ArrayStorage-to-hwtable.patch
new file mode 100644
index 000000000..1d983e978
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-multipath-tools-add-RDAC-SUN-ArrayStorage-to-hwtable.patch
@@ -0,0 +1,42 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Xose Vazquez Perez <xose.vazquez@gmail.com>
+Date: Wed, 11 Apr 2018 15:14:13 +0200
+Subject: [PATCH] multipath-tools: add RDAC SUN/ArrayStorage to hwtable
+
+Already in scsi_dh: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/scsi/scsi_dh.c#n70
+
+Cc: NetApp RDAC team <ng-eseries-upstream-maintainers@netapp.com>
+Cc: Christophe Varoqui <christophe.varoqui@opensvc.com>
+Cc: DM ML <dm-devel@redhat.com>
+Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/hwtable.c | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/libmultipath/hwtable.c b/libmultipath/hwtable.c
+index 88b4700..827e899 100644
+--- a/libmultipath/hwtable.c
++++ b/libmultipath/hwtable.c
+@@ -890,6 +890,18 @@ static struct hwentry default_hw[] = {
+ .no_path_retry = 30,
+ },
+ {
++ .vendor = "SUN",
++ .product = "ArrayStorage",
++ .bl_product = "Universal Xport",
++ .pgpolicy = GROUP_BY_PRIO,
++ .checker_name = RDAC,
++ .features = "2 pg_init_retries 50",
++ .hwhandler = "1 rdac",
++ .prio_name = PRIO_RDAC,
++ .pgfailback = -FAILBACK_IMMEDIATE,
++ .no_path_retry = 30,
++ },
++ {
+ /* ZFS Storage Appliances */
+ .vendor = "SUN",
+ .product = "(Sun Storage|ZFS Storage|COMSTAR)",
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0002-RH-fixup-udev-rules-for-redhat.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0002-RH-fixup-udev-rules-for-redhat.patch
deleted file mode 100644
index e63d2eb33..000000000
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0002-RH-fixup-udev-rules-for-redhat.patch
+++ /dev/null
@@ -1,110 +0,0 @@
-From 158255383c02d3fb81c82fb9ec6fd36fb234f68e Mon Sep 17 00:00:00 2001
-From: Benjamin Marzinski <bmarzins@redhat.com>
-Date: Thu, 13 Apr 2017 07:22:23 -0500
-Subject: [PATCH 02/14] RH: fixup udev rules for redhat
-
-The multipath rules need to run after scsi_id is run. This means moving
-them after 60-persistent-storage.rules for redhat. Also, we don't
-currently set up all the symlinks that SuSE does. If we want them, they
-should be done in the device-mapper package, since they are for all
-device-mapper devices. Redhat also uses a different naming scheme for
-partitions than SuSE.
-
-Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
----
- Makefile.inc | 2 +-
- kpartx/Makefile | 14 +++++++-------
- multipath/Makefile | 4 ++--
- multipath/multipath.rules | 3 ++-
- 4 files changed, 12 insertions(+), 11 deletions(-)
-
-diff --git a/Makefile.inc b/Makefile.inc
-index 1815f9a..2591fa9 100644
---- a/Makefile.inc
-+++ b/Makefile.inc
-@@ -47,7 +47,7 @@ endif
-
- prefix =
- exec_prefix = $(prefix)
--bindir = $(exec_prefix)/sbin
-+bindir = $(exec_prefix)/usr/sbin
- libudevdir = $(prefix)/$(SYSTEMDPATH)/udev
- udevrulesdir = $(libudevdir)/rules.d
- multipathdir = $(TOPDIR)/libmultipath
-diff --git a/kpartx/Makefile b/kpartx/Makefile
-index 7b75032..bfa6fe8 100644
---- a/kpartx/Makefile
-+++ b/kpartx/Makefile
-@@ -26,19 +26,19 @@ $(EXEC): $(OBJS)
- install: $(EXEC) $(EXEC).8
- $(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir)
- $(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)
-- $(INSTALL_PROGRAM) -d $(DESTDIR)$(libudevdir)
-- $(INSTALL_PROGRAM) -m 755 kpartx_id $(DESTDIR)$(libudevdir)
-- $(INSTALL_PROGRAM) -d $(DESTDIR)$(libudevdir)/rules.d
-- $(INSTALL_PROGRAM) -m 644 kpartx.rules $(DESTDIR)$(libudevdir)/rules.d/66-kpartx.rules
-+# $(INSTALL_PROGRAM) -d $(DESTDIR)$(libudevdir)
-+# $(INSTALL_PROGRAM) -m 755 kpartx_id $(DESTDIR)$(libudevdir)
-+# $(INSTALL_PROGRAM) -d $(DESTDIR)$(libudevdir)/rules.d
-+# $(INSTALL_PROGRAM) -m 644 kpartx.rules $(DESTDIR)$(libudevdir)/rules.d/66-kpartx.rules
- $(INSTALL_PROGRAM) -d $(DESTDIR)$(man8dir)
- $(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(man8dir)
-
- uninstall:
- $(RM) $(DESTDIR)$(bindir)/$(EXEC)
- $(RM) $(DESTDIR)$(man8dir)/$(EXEC).8.gz
-- $(RM) $(DESTDIR)$(libudevdir)/kpartx_id
-- $(RM) $(DESTDIR)$(libudevdir)/rules.d/66-kpartx.rules
-- $(RM) $(DESTDIR)$(libudevdir)/rules.d/67-kpartx-compat.rules
-+# $(RM) $(DESTDIR)$(libudevdir)/kpartx_id
-+# $(RM) $(DESTDIR)$(libudevdir)/rules.d/66-kpartx.rules
-+# $(RM) $(DESTDIR)$(libudevdir)/rules.d/67-kpartx-compat.rules
-
- clean:
- $(RM) core *.o $(EXEC) *.gz
-diff --git a/multipath/Makefile b/multipath/Makefile
-index c85314e..1e9ee4b 100644
---- a/multipath/Makefile
-+++ b/multipath/Makefile
-@@ -24,7 +24,7 @@ install:
- $(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)/
- $(INSTALL_PROGRAM) -d $(DESTDIR)$(udevrulesdir)
- $(INSTALL_PROGRAM) -m 644 11-dm-mpath.rules $(DESTDIR)$(udevrulesdir)
-- $(INSTALL_PROGRAM) -m 644 $(EXEC).rules $(DESTDIR)$(libudevdir)/rules.d/56-multipath.rules
-+ $(INSTALL_PROGRAM) -m 644 $(EXEC).rules $(DESTDIR)$(libudevdir)/rules.d/62-multipath.rules
- $(INSTALL_PROGRAM) -d $(DESTDIR)$(man8dir)
- $(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(man8dir)
- $(INSTALL_PROGRAM) -d $(DESTDIR)$(man5dir)
-@@ -33,7 +33,7 @@ install:
- uninstall:
- $(RM) $(DESTDIR)$(bindir)/$(EXEC)
- $(RM) $(DESTDIR)$(udevrulesdir)/11-dm-mpath.rules
-- $(RM) $(DESTDIR)$(libudevdir)/rules.d/56-multipath.rules
-+ $(RM) $(DESTDIR)$(libudevdir)/rules.d/62-multipath.rules
- $(RM) $(DESTDIR)$(man8dir)/$(EXEC).8.gz
- $(RM) $(DESTDIR)$(man5dir)/$(EXEC).conf.5.gz
-
-diff --git a/multipath/multipath.rules b/multipath/multipath.rules
-index 616a04c..4d78b98 100644
---- a/multipath/multipath.rules
-+++ b/multipath/multipath.rules
-@@ -33,6 +33,7 @@ GOTO="end_mpath"
-
- LABEL="check_kpartx"
-
-+ENV{DM_UUID}=="mpath-?*|part[0-9]*-mpath-?*", OPTIONS+="link_priority=10"
- IMPORT{db}="DM_MULTIPATH_NEED_KPARTX"
- ENV{DM_UDEV_PRIMARY_SOURCE_FLAG}!="1", IMPORT{db}="DM_SUBSYSTEM_UDEV_FLAG1"
- ENV{DM_SUBSYSTEM_UDEV_FLAG1}=="1", GOTO="end_mpath"
-@@ -42,7 +43,7 @@ ENV{DM_ACTIVATION}=="1", ENV{DM_MULTIPATH_NEED_KPARTX}="1"
- ENV{DM_SUSPENDED}=="1", GOTO="end_mpath"
- ENV{DM_ACTION}=="PATH_FAILED", GOTO="end_mpath"
- ENV{DM_ACTIVATION}!="1", ENV{DM_MULTIPATH_NEED_KPARTX}!="1", GOTO="end_mpath"
--RUN+="/sbin/kpartx -un -p -part /dev/$name"
-+RUN+="/sbin/kpartx -un /dev/$name"
- ENV{DM_MULTIPATH_NEED_KPARTX}=""
-
- LABEL="end_mpath"
---
-2.8.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0002-multipath-tools-remove-c-from-__cpluscplus-misspelle.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0002-multipath-tools-remove-c-from-__cpluscplus-misspelle.patch
new file mode 100644
index 000000000..73f000aca
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0002-multipath-tools-remove-c-from-__cpluscplus-misspelle.patch
@@ -0,0 +1,33 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Xose Vazquez Perez <xose.vazquez@gmail.com>
+Date: Tue, 24 Apr 2018 15:03:40 +0200
+Subject: [PATCH] multipath-tools: remove "c" from __cpluscplus, misspelled
+
+found by cppcheck(http://cppcheck.sf.net/):
+[libmpathcmd/mpath_cmd.h:24]: (error) Invalid number of character '{' when these macros are defined: '__cpluscplus'.
+
+Cc: Benjamin Marzinski <bmarzins@redhat.com>
+Cc: Christophe Varoqui <christophe.varoqui@opensvc.com>
+Cc: DM ML <dm-devel@redhat.com>
+Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmpathcmd/mpath_cmd.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libmpathcmd/mpath_cmd.h b/libmpathcmd/mpath_cmd.h
+index aaa8da9..df9d938 100644
+--- a/libmpathcmd/mpath_cmd.h
++++ b/libmpathcmd/mpath_cmd.h
+@@ -20,7 +20,7 @@
+ #ifndef LIB_MPATH_CMD_H
+ #define LIB_MPATH_CMD_H
+
+-#ifdef __cpluscplus
++#ifdef __cplusplus
+ extern "C" {
+ #endif
+
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0003-multipath-tools-remove-emacs-autoconfig-of-kpartx-gp.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0003-multipath-tools-remove-emacs-autoconfig-of-kpartx-gp.patch
new file mode 100644
index 000000000..7358e1ae9
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0003-multipath-tools-remove-emacs-autoconfig-of-kpartx-gp.patch
@@ -0,0 +1,43 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Xose Vazquez Perez <xose.vazquez@gmail.com>
+Date: Thu, 12 Apr 2018 18:17:13 +0200
+Subject: [PATCH] multipath-tools: remove emacs autoconfig of kpartx/gpt.h
+
+Cc: Christophe Varoqui <christophe.varoqui@opensvc.com>
+Cc: DM ML <dm-devel@redhat.com>
+Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ kpartx/gpt.h | 19 -------------------
+ 1 file changed, 19 deletions(-)
+
+diff --git a/kpartx/gpt.h b/kpartx/gpt.h
+index 66ce8f1..7bb54b7 100644
+--- a/kpartx/gpt.h
++++ b/kpartx/gpt.h
+@@ -109,22 +109,3 @@ int read_gpt_pt (int fd, struct slice all, struct slice *sp, int ns);
+
+
+ #endif
+-
+-/*
+- * Overrides for Emacs so that we follow Linus's tabbing style.
+- * Emacs will notice this stuff at the end of the file and automatically
+- * adjust the settings for this buffer only. This must remain at the end
+- * of the file.
+- * ---------------------------------------------------------------------------
+- * Local variables:
+- * c-indent-level: 4
+- * c-brace-imaginary-offset: 0
+- * c-brace-offset: -4
+- * c-argdecl-indent: 4
+- * c-label-offset: -4
+- * c-continued-statement-offset: 4
+- * c-continued-brace-offset: 0
+- * indent-tabs-mode: nil
+- * tab-width: 8
+- * End:
+- */
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0004-multipath-tools-replace-FSF-address-with-a-www-point.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0004-multipath-tools-replace-FSF-address-with-a-www-point.patch
new file mode 100644
index 000000000..13f18b576
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0004-multipath-tools-replace-FSF-address-with-a-www-point.patch
@@ -0,0 +1,191 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Xose Vazquez Perez <xose.vazquez@gmail.com>
+Date: Fri, 11 May 2018 15:42:43 +0200
+Subject: [PATCH] multipath-tools: replace FSF address with a www pointer
+
+Less prone to future modifications, new FSF licences
+point exactly to this url: <http://www.gnu.org/licenses/>.
+And sending a smail to FSF is outdated.
+
+First clean up was done in 5619a39c433ac3d10a88079593cec1aa6472cbeb
+
+Cc: Martin Wilck <mwilck@suse.com>
+Cc: Benjamin Marzinski <bmarzins@redhat.com>
+Cc: Christophe Varoqui <christophe.varoqui@opensvc.com>
+Cc: DM ML <dm-devel@redhat.com>
+Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/dm-generic.c | 4 +---
+ libmultipath/dm-generic.h | 4 +---
+ libmultipath/foreign.c | 4 +---
+ libmultipath/foreign.h | 4 +---
+ libmultipath/foreign/nvme.c | 4 +---
+ libmultipath/generic.c | 4 +---
+ libmultipath/generic.h | 4 +---
+ tests/dmevents.c | 2 +-
+ tests/parser.c | 2 +-
+ tests/uevent.c | 2 +-
+ tests/util.c | 2 +-
+ 11 files changed, 11 insertions(+), 25 deletions(-)
+
+diff --git a/libmultipath/dm-generic.c b/libmultipath/dm-generic.c
+index bdc9ca0..d752991 100644
+--- a/libmultipath/dm-generic.c
++++ b/libmultipath/dm-generic.c
+@@ -12,9 +12,7 @@
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+- along with this program; if not, write to the Free Software
+- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+- USA.
++ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+ #include <stdint.h>
+diff --git a/libmultipath/dm-generic.h b/libmultipath/dm-generic.h
+index 5d59724..986429f 100644
+--- a/libmultipath/dm-generic.h
++++ b/libmultipath/dm-generic.h
+@@ -12,9 +12,7 @@
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+- along with this program; if not, write to the Free Software
+- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+- USA.
++ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+ #ifndef _DM_GENERIC_H
+ #define _DM_GENERIC_H
+diff --git a/libmultipath/foreign.c b/libmultipath/foreign.c
+index 7217184..80b399b 100644
+--- a/libmultipath/foreign.c
++++ b/libmultipath/foreign.c
+@@ -12,9 +12,7 @@
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+- along with this program; if not, write to the Free Software
+- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+- USA.
++ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+ #include <sys/sysmacros.h>
+diff --git a/libmultipath/foreign.h b/libmultipath/foreign.h
+index 973f368..697f12f 100644
+--- a/libmultipath/foreign.h
++++ b/libmultipath/foreign.h
+@@ -12,9 +12,7 @@
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+- along with this program; if not, write to the Free Software
+- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+- USA.
++ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+ #ifndef _FOREIGN_H
+ #define _FOREIGN_H
+diff --git a/libmultipath/foreign/nvme.c b/libmultipath/foreign/nvme.c
+index 235f75d..280b6bd 100644
+--- a/libmultipath/foreign/nvme.c
++++ b/libmultipath/foreign/nvme.c
+@@ -12,9 +12,7 @@
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+- along with this program; if not, write to the Free Software
+- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+- USA.
++ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+ #include <sys/sysmacros.h>
+diff --git a/libmultipath/generic.c b/libmultipath/generic.c
+index 6f7a2cd..0d1e632 100644
+--- a/libmultipath/generic.c
++++ b/libmultipath/generic.c
+@@ -12,9 +12,7 @@
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+- along with this program; if not, write to the Free Software
+- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+- USA.
++ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+
+diff --git a/libmultipath/generic.h b/libmultipath/generic.h
+index 7f7fe66..6346ffe 100644
+--- a/libmultipath/generic.h
++++ b/libmultipath/generic.h
+@@ -12,9 +12,7 @@
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+- along with this program; if not, write to the Free Software
+- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+- USA.
++ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+ #ifndef _GENERIC_H
+ #define _GENERIC_H
+diff --git a/tests/dmevents.c b/tests/dmevents.c
+index bba51dc..3399c81 100644
+--- a/tests/dmevents.c
++++ b/tests/dmevents.c
+@@ -12,7 +12,7 @@
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+- * along with this program; if not, write to the Free Software
++ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+
+diff --git a/tests/parser.c b/tests/parser.c
+index a7e7598..29859da 100644
+--- a/tests/parser.c
++++ b/tests/parser.c
+@@ -12,7 +12,7 @@
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+- * along with this program; if not, write to the Free Software
++ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+
+diff --git a/tests/uevent.c b/tests/uevent.c
+index acfcb14..b0d0bfd 100644
+--- a/tests/uevent.c
++++ b/tests/uevent.c
+@@ -12,7 +12,7 @@
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+- * along with this program; if not, write to the Free Software
++ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+
+diff --git a/tests/util.c b/tests/util.c
+index 113b134..839effd 100644
+--- a/tests/util.c
++++ b/tests/util.c
+@@ -12,7 +12,7 @@
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+- * along with this program; if not, write to the Free Software
++ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0005-multipath-tools-Remove-trailing-leading-whitespaces-.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0005-multipath-tools-Remove-trailing-leading-whitespaces-.patch
new file mode 100644
index 000000000..953e739ef
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0005-multipath-tools-Remove-trailing-leading-whitespaces-.patch
@@ -0,0 +1,156 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Xose Vazquez Perez <xose.vazquez@gmail.com>
+Date: Fri, 11 May 2018 15:43:11 +0200
+Subject: [PATCH] multipath-tools: Remove trailing/leading whitespaces and
+ reformat code
+
+Cc: Christophe Varoqui <christophe.varoqui@opensvc.com>
+Cc: device-mapper development <dm-devel@redhat.com>
+Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ Makefile.inc | 23 +++++++++++------------
+ kpartx/mac.h | 2 +-
+ kpartx/test-kpartx | 2 +-
+ libmpathcmd/Makefile | 2 +-
+ libmultipath/hwtable.c | 14 +++++++-------
+ libmultipath/print.h | 2 +-
+ multipathd/main.h | 6 +++---
+ 7 files changed, 25 insertions(+), 26 deletions(-)
+
+diff --git a/Makefile.inc b/Makefile.inc
+index 57a1835..af2f5ba 100644
+--- a/Makefile.inc
++++ b/Makefile.inc
+@@ -103,21 +103,20 @@ LDFLAGS = -Wl,-z,relro -Wl,-z,now
+ BIN_LDFLAGS = -pie
+
+ # Check whether a function with name $1 has been declared in header file $2.
+-check_func = \
+- $(shell \
++check_func = $(shell \
+ if grep -Eq "^[^[:blank:]]+[[:blank:]]+$1[[:blank:]]*(.*)*" "$2"; then \
+- found=1; \
+- status="yes"; \
+- else \
+- found=0; \
+- status="no"; \
+- fi; \
+- echo 1>&2 "Checking for $1 in $2 ... $$status"; \
+- echo "$$found" \
+- )
++ found=1; \
++ status="yes"; \
++ else \
++ found=0; \
++ status="no"; \
++ fi; \
++ echo 1>&2 "Checking for $1 in $2 ... $$status"; \
++ echo "$$found" \
++ )
+
+ # Checker whether a file with name $1 exists
+-check_file = $(shell \
++check_file = $(shell \
+ if [ -f "$1" ]; then \
+ found=1; \
+ status="yes"; \
+diff --git a/kpartx/mac.h b/kpartx/mac.h
+index a44cf38..55c3ec9 100644
+--- a/kpartx/mac.h
++++ b/kpartx/mac.h
+@@ -24,7 +24,7 @@ struct mac_driver_desc {
+ uint16_t signature; /* expected to be MAC_DRIVER_MAGIC */
+ uint16_t block_size;
+ uint32_t block_count;
+- /* ... more stuff */
++ /* ... more stuff */
+ };
+
+ #endif
+diff --git a/kpartx/test-kpartx b/kpartx/test-kpartx
+index 9cee20f..d2001dc 100755
+--- a/kpartx/test-kpartx
++++ b/kpartx/test-kpartx
+@@ -131,7 +131,7 @@ step "create DM devices (spans)"
+ # They also serve as DM devices to test partition removal on those.
+
+ TABLE="\
+-0 $((SIZE/SECTSIZ-OFFS)) linear $DEV1 $OFFS
++0 $((SIZE/SECTSIZ-OFFS)) linear $DEV1 $OFFS
+ $((SIZE/SECTSIZ-OFFS)) $((SIZE/SECTSIZ-OFFS)) linear $DEV2 $OFFS"
+
+ SPAN1=kpt
+diff --git a/libmpathcmd/Makefile b/libmpathcmd/Makefile
+index 53c0899..0f6b816 100644
+--- a/libmpathcmd/Makefile
++++ b/libmpathcmd/Makefile
+@@ -27,7 +27,7 @@ uninstall:
+ $(RM) $(DESTDIR)$(includedir)/mpath_cmd.h
+
+ clean: dep_clean
+- $(RM) core *.a *.o *.so *.so.* *.gz
++ $(RM) core *.a *.o *.so *.so.* *.gz
+
+ include $(wildcard $(OBJS:.o=.d))
+
+diff --git a/libmultipath/hwtable.c b/libmultipath/hwtable.c
+index 827e899..2ca6888 100644
+--- a/libmultipath/hwtable.c
++++ b/libmultipath/hwtable.c
+@@ -78,13 +78,13 @@
+ #endif
+
+ static struct hwentry default_hw[] = {
+- /*
+- * Generic NVMe
+- *
+- * Due to the parsing logic in find_hwe(), generic entries
+- * have to be put on top of this list, and more specific ones
+- * below.
+- */
++ /*
++ * Generic NVMe devices
++ *
++ * Due to the parsing logic in find_hwe(), generic entries
++ * have to be put on top of this list, and more specific ones
++ * below.
++ */
+ {
+ .vendor = "NVME",
+ .product = ".*",
+diff --git a/libmultipath/print.h b/libmultipath/print.h
+index 7ba6438..9b5a23a 100644
+--- a/libmultipath/print.h
++++ b/libmultipath/print.h
+@@ -113,7 +113,7 @@ int _snprint_multipath (const struct gen_multipath *, char *, int,
+ const char *, int);
+ #define snprint_multipath(buf, len, fmt, mp, v) \
+ _snprint_multipath(dm_multipath_to_gen(mp), buf, len, fmt, v)
+-int _snprint_multipath_topology (const struct gen_multipath *, char *, int,
++int _snprint_multipath_topology (const struct gen_multipath *, char *, int,
+ int verbosity);
+ #define snprint_multipath_topology(buf, len, mpp, v) \
+ _snprint_multipath_topology (dm_multipath_to_gen(mpp), buf, len, v)
+diff --git a/multipathd/main.h b/multipathd/main.h
+index af39558..8fd426b 100644
+--- a/multipathd/main.h
++++ b/multipathd/main.h
+@@ -29,11 +29,11 @@ int ev_remove_map (char *, char *, int, struct vectors *);
+ int set_config_state(enum daemon_status);
+ void * mpath_alloc_prin_response(int prin_sa);
+ int prin_do_scsi_ioctl(char *, int rq_servact, struct prin_resp * resp,
+- int noisy);
++ int noisy);
+ void dumpHex(const char * , int len, int no_ascii);
+ int prout_do_scsi_ioctl(char * , int rq_servact, int rq_scope,
+- unsigned int rq_type, struct prout_param_descriptor *param,
+- int noisy);
++ unsigned int rq_type,
++ struct prout_param_descriptor *param, int noisy);
+ int mpath_pr_event_handle(struct path *pp);
+ void * mpath_pr_event_handler_fn (void * );
+ int update_map_pr(struct multipath *mpp);
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0006-multipath-tools-fix-compilation-with-musl-libc.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0006-multipath-tools-fix-compilation-with-musl-libc.patch
new file mode 100644
index 000000000..c6fd5b4cf
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0006-multipath-tools-fix-compilation-with-musl-libc.patch
@@ -0,0 +1,58 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Xose Vazquez Perez <xose.vazquez@gmail.com>
+Date: Fri, 11 May 2018 18:39:44 +0200
+Subject: [PATCH] multipath-tools: fix compilation with musl libc
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+In file included from alias.c:15:
+file.h:9:47: error: unknown type name ‘mode_t’; did you mean ‘time_t’?
+ int ensure_directories_exist(const char *str, mode_t dir_mode);
+ ^~~~~~
+ time_t
+
+sysfs.c: In function ‘sysfs_is_multipathed’:
+sysfs.c:304:15: error: ‘PATH_MAX’ undeclared (first use in this function); did you mean ‘PATH_UP’?
+ char pathbuf[PATH_MAX];
+ ^~~~~~~~
+ PATH_UP
+
+Cc: Martin Wilck <mwilck@suse.com>
+Cc: Christophe Varoqui <christophe.varoqui@opensvc.com>
+Cc: DM ML <dm-devel@redhat.com>
+Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/file.h | 2 ++
+ libmultipath/sysfs.c | 1 +
+ 2 files changed, 3 insertions(+)
+
+diff --git a/libmultipath/file.h b/libmultipath/file.h
+index 29520c7..3c75c90 100644
+--- a/libmultipath/file.h
++++ b/libmultipath/file.h
+@@ -5,6 +5,8 @@
+ #ifndef _FILE_H
+ #define _FILE_H
+
++#include <sys/stat.h>
++
+ #define FILE_TIMEOUT 30
+ int ensure_directories_exist(const char *str, mode_t dir_mode);
+ int open_file(const char *file, int *can_write, const char *header);
+diff --git a/libmultipath/sysfs.c b/libmultipath/sysfs.c
+index ee72e6a..16e0a73 100644
+--- a/libmultipath/sysfs.c
++++ b/libmultipath/sysfs.c
+@@ -28,6 +28,7 @@
+ #include <dirent.h>
+ #include <libudev.h>
+ #include <fnmatch.h>
++#include <limits.h>
+
+ #include "checkers.h"
+ #include "vector.h"
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0007-RH-trigger-change-uevent-on-new-device-creation.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0007-RH-trigger-change-uevent-on-new-device-creation.patch
deleted file mode 100644
index 025a3512e..000000000
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0007-RH-trigger-change-uevent-on-new-device-creation.patch
+++ /dev/null
@@ -1,138 +0,0 @@
-From 0d2c9afbd89d79fd700f9c99aa20e5f7c7382027 Mon Sep 17 00:00:00 2001
-From: Benjamin Marzinski <bmarzins@redhat.com>
-Date: Mon, 24 Apr 2017 09:39:57 -0500
-Subject: [PATCH 07/14] RH: trigger change uevent on new device creation
-
-When multipath first sees a path device with user_friendly names
-enabled, it can't know if the device should be multipathed. This means
-that it will not claim the device in udev. If the device is eventually
-multipathed, multipath should trigger a change uevent to update the udev
-database to claim the device.
-
-This also reverts commit 64e27ec066a001012f44550f095c93443e91d845.
-
-Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
----
- libmultipath/configure.c | 26 ++++++++++++++++++++++++--
- libmultipath/configure.h | 1 +
- libmultipath/wwids.c | 4 ++--
- multipath/main.c | 2 +-
- multipathd/main.c | 7 ++-----
- 5 files changed, 30 insertions(+), 10 deletions(-)
-
-diff --git a/libmultipath/configure.c b/libmultipath/configure.c
-index bd090d9..843dd09 100644
---- a/libmultipath/configure.c
-+++ b/libmultipath/configure.c
-@@ -422,6 +422,28 @@ trigger_udev_change(const struct multipath *mpp)
- udev_device_unref(udd);
- }
-
-+void
-+trigger_paths_udev_change(const struct multipath *mpp)
-+{
-+ struct pathgroup * pgp;
-+ struct path * pp;
-+ int i, j;
-+
-+ if (!mpp || !mpp->pg)
-+ return;
-+
-+ vector_foreach_slot (mpp->pg, pgp, i) {
-+ if (!pgp->paths)
-+ continue;
-+ vector_foreach_slot(pgp->paths, pp, j) {
-+ if (!pp->udev)
-+ continue;
-+ sysfs_attr_set_value(pp->udev, "uevent", "change",
-+ strlen("change"));
-+ }
-+ }
-+}
-+
- static int
- is_mpp_known_to_udev(const struct multipath *mpp)
- {
-@@ -802,8 +824,8 @@ int domap(struct multipath *mpp, char *params, int is_daemon)
- * succeeded
- */
- mpp->force_udev_reload = 0;
-- if (mpp->action == ACT_CREATE)
-- remember_wwid(mpp->wwid);
-+ if (mpp->action == ACT_CREATE && remember_wwid(mpp->wwid) == 1)
-+ trigger_paths_udev_change(mpp);
- if (!is_daemon) {
- /* multipath client mode */
- dm_switchgroup(mpp->alias, mpp->bestpg);
-diff --git a/libmultipath/configure.h b/libmultipath/configure.h
-index fd7f581..253e29b 100644
---- a/libmultipath/configure.h
-+++ b/libmultipath/configure.h
-@@ -36,3 +36,4 @@ int get_refwwid (enum mpath_cmds cmd, char * dev, enum devtypes dev_type,
- vector pathvec, char **wwid);
- int reload_map(struct vectors *vecs, struct multipath *mpp, int refresh, int is_daemon);
- int sysfs_get_host_adapter_name(struct path *pp, char *adapter_name);
-+void trigger_paths_udev_change(const struct multipath *mpp);
-diff --git a/libmultipath/wwids.c b/libmultipath/wwids.c
-index 88bb72b..249c6c1 100644
---- a/libmultipath/wwids.c
-+++ b/libmultipath/wwids.c
-@@ -319,7 +319,7 @@ remember_wwid(char *wwid)
- condlog(3, "wrote wwid %s to wwids file", wwid);
- else
- condlog(4, "wwid %s already in wwids file", wwid);
-- return 0;
-+ return ret;
- }
-
- int remember_cmdline_wwid(void)
-@@ -353,7 +353,7 @@ int remember_cmdline_wwid(void)
- next++;
- }
- if (strlen(ptr)) {
-- if (remember_wwid(ptr) != 0)
-+ if (remember_wwid(ptr) < 0)
- ret = -1;
- }
- else {
-diff --git a/multipath/main.c b/multipath/main.c
-index 72585b0..2eda6a3 100644
---- a/multipath/main.c
-+++ b/multipath/main.c
-@@ -336,7 +336,7 @@ configure (struct config *conf, enum mpath_cmds cmd,
- }
- if (cmd == CMD_ADD_WWID) {
- r = remember_wwid(refwwid);
-- if (r == 0)
-+ if (r >= 0)
- printf("wwid '%s' added\n", refwwid);
- else
- printf("failed adding '%s' to wwids file\n",
-diff --git a/multipathd/main.c b/multipathd/main.c
-index 81c76ca..874bcce 100644
---- a/multipathd/main.c
-+++ b/multipathd/main.c
-@@ -2093,7 +2093,8 @@ configure (struct vectors * vecs, int start_waiters)
-
- sync_maps_state(mpvec);
- vector_foreach_slot(mpvec, mpp, i){
-- remember_wwid(mpp->wwid);
-+ if (remember_wwid(mpp->wwid) == 1)
-+ trigger_paths_udev_change(mpp);
- update_map_pr(mpp);
- }
-
-@@ -2175,10 +2176,6 @@ reconfigure (struct vectors * vecs)
- conf->verbosity = verbosity;
- if (bindings_read_only)
- conf->bindings_read_only = bindings_read_only;
-- if (conf->find_multipaths) {
-- condlog(2, "find_multipaths is set: -n is implied");
-- ignore_new_devs = 1;
-- }
- if (ignore_new_devs)
- conf->ignore_new_devs = ignore_new_devs;
- uxsock_timeout = conf->uxsock_timeout;
---
-2.8.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0007-multipath-tools-add-x-to-doc-preclean.pl-and-split-m.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0007-multipath-tools-add-x-to-doc-preclean.pl-and-split-m.patch
new file mode 100644
index 000000000..9e608e16f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0007-multipath-tools-add-x-to-doc-preclean.pl-and-split-m.patch
@@ -0,0 +1,27 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Xose Vazquez Perez <xose.vazquez@gmail.com>
+Date: Sun, 13 May 2018 00:39:41 +0200
+Subject: [PATCH] multipath-tools: add +x to doc-preclean.pl and split-man.pl
+
+It is not strictly necessary, but it helps identify bin files.
+
+Cc: Christophe Varoqui <christophe.varoqui@opensvc.com>
+Cc: DM ML <dm-devel@redhat.com>
+Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libdmmp/docs/doc-preclean.pl | 0
+ libdmmp/docs/split-man.pl | 0
+ 2 files changed, 0 insertions(+), 0 deletions(-)
+ mode change 100644 => 100755 libdmmp/docs/doc-preclean.pl
+ mode change 100644 => 100755 libdmmp/docs/split-man.pl
+
+diff --git a/libdmmp/docs/doc-preclean.pl b/libdmmp/docs/doc-preclean.pl
+old mode 100644
+new mode 100755
+diff --git a/libdmmp/docs/split-man.pl b/libdmmp/docs/split-man.pl
+old mode 100644
+new mode 100755
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0008-libmultipath-change-how-RADOS-checker-is-enabled.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0008-libmultipath-change-how-RADOS-checker-is-enabled.patch
deleted file mode 100644
index f67880993..000000000
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0008-libmultipath-change-how-RADOS-checker-is-enabled.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 0be174dbedd861d7694b0c7799fe26be31eb32b0 Mon Sep 17 00:00:00 2001
-From: Benjamin Marzinski <bmarzins@redhat.com>
-Date: Fri, 26 May 2017 17:52:57 -0500
-Subject: [PATCH 08/14] libmultipath: change how RADOS checker is enabled
-
-Instead of making the user call "make", "make install" and "make clean"
-with ENABLE_RADOS set correctly, have the makefile check if
-/usr/include/rados/librados.h exists, just like it checks if specific
-functions exist in a file.
-
-Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
----
- Makefile.inc | 13 +++++++++++++
- libmultipath/checkers/Makefile | 3 ++-
- 2 files changed, 15 insertions(+), 1 deletion(-)
-
-diff --git a/Makefile.inc b/Makefile.inc
-index 2591fa9..e084fd1 100644
---- a/Makefile.inc
-+++ b/Makefile.inc
-@@ -109,5 +109,18 @@ check_func = \
- echo "$$found" \
- )
-
-+# Checker whether a file with name $1 exists
-+check_file = $(shell \
-+ if [ -f "$1" ]; then \
-+ found=1; \
-+ status="yes"; \
-+ else \
-+ found=0; \
-+ status="no"; \
-+ fi; \
-+ echo 1>&2 "Checking if $1 exists ... $$status"; \
-+ echo "$$found" \
-+ )
-+
- %.o: %.c
- $(CC) $(CFLAGS) -c -o $@ $<
-diff --git a/libmultipath/checkers/Makefile b/libmultipath/checkers/Makefile
-index 732ca9d..bce6b8b 100644
---- a/libmultipath/checkers/Makefile
-+++ b/libmultipath/checkers/Makefile
-@@ -14,7 +14,8 @@ LIBS= \
- libcheckemc_clariion.so \
- libcheckhp_sw.so \
- libcheckrdac.so
--ifneq ($(ENABLE_RADOS),0)
-+
-+ifneq ($(call check_file,/usr/include/rados/librados.h),0)
- LIBS += libcheckrbd.so
- endif
-
---
-2.8.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0008-multipath-tools-refresh-kernel-doc-from-kernel-sourc.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0008-multipath-tools-refresh-kernel-doc-from-kernel-sourc.patch
new file mode 100644
index 000000000..375215870
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0008-multipath-tools-refresh-kernel-doc-from-kernel-sourc.patch
@@ -0,0 +1,784 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Xose Vazquez Perez <xose.vazquez@gmail.com>
+Date: Sun, 13 May 2018 00:39:42 +0200
+Subject: [PATCH] multipath-tools: refresh kernel-doc from kernel sources
+
+Cc: Gris Ge <fge@redhat.com>
+Cc: Christophe Varoqui <christophe.varoqui@opensvc.com>
+Cc: device-mapper development <dm-devel@redhat.com>
+Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libdmmp/docs/kernel-doc | 671 ++++++++++++++++++++++++++----------------------
+ 1 file changed, 368 insertions(+), 303 deletions(-)
+
+diff --git a/libdmmp/docs/kernel-doc b/libdmmp/docs/kernel-doc
+index fee8952..0057d8e 100755
+--- a/libdmmp/docs/kernel-doc
++++ b/libdmmp/docs/kernel-doc
+@@ -1,4 +1,5 @@
+ #!/usr/bin/env perl
++# SPDX-License-Identifier: GPL-2.0
+
+ use warnings;
+ use strict;
+@@ -328,13 +329,15 @@ my $lineprefix="";
+ use constant {
+ STATE_NORMAL => 0, # normal code
+ STATE_NAME => 1, # looking for function name
+- STATE_FIELD => 2, # scanning field start
+- STATE_PROTO => 3, # scanning prototype
+- STATE_DOCBLOCK => 4, # documentation block
+- STATE_INLINE => 5, # gathering documentation outside main block
++ STATE_BODY_MAYBE => 2, # body - or maybe more description
++ STATE_BODY => 3, # the body of the comment
++ STATE_PROTO => 4, # scanning prototype
++ STATE_DOCBLOCK => 5, # documentation block
++ STATE_INLINE => 6, # gathering documentation outside main block
+ };
+ my $state;
+ my $in_doc_sect;
++my $leading_space;
+
+ # Inline documentation state
+ use constant {
+@@ -363,7 +366,7 @@ my $doc_sect = $doc_com .
+ my $doc_content = $doc_com_body . '(.*)';
+ my $doc_block = $doc_com . 'DOC:\s*(.*)?';
+ my $doc_inline_start = '^\s*/\*\*\s*$';
+-my $doc_inline_sect = '\s*\*\s*(@[\w\s]+):(.*)';
++my $doc_inline_sect = '\s*\*\s*(@\s*[\w][\w\.]*\s*):(.*)';
+ my $doc_inline_end = '^\s*\*/\s*$';
+ my $doc_inline_oneline = '^\s*/\*\*\s*(@[\w\s]+):\s*(.*)\s*\*/\s*$';
+ my $export_symbol = '^\s*EXPORT_SYMBOL(_GPL)?\s*\(\s*(\w+)\s*\)\s*;';
+@@ -553,10 +556,9 @@ sub output_highlight {
+ }
+ if ($line eq ""){
+ if (! $output_preformatted) {
+- print $lineprefix, local_unescape($blankline);
++ print $lineprefix, $blankline;
+ }
+ } else {
+- $line =~ s/\\\\\\/\&/g;
+ if ($output_mode eq "man" && substr($line, 0, 1) eq ".") {
+ print "\\&$line";
+ } else {
+@@ -747,17 +749,73 @@ sub output_blockhead_rst(%) {
+ }
+ }
+
+-sub output_highlight_rst {
+- my $contents = join "\n",@_;
+- my $line;
+-
+- # undo the evil effects of xml_escape() earlier
+- $contents = xml_unescape($contents);
+-
++#
++# Apply the RST highlights to a sub-block of text.
++#
++sub highlight_block($) {
++ # The dohighlight kludge requires the text be called $contents
++ my $contents = shift;
+ eval $dohighlight;
+ die $@ if $@;
++ return $contents;
++}
+
+- foreach $line (split "\n", $contents) {
++#
++# Regexes used only here.
++#
++my $sphinx_literal = '^[^.].*::$';
++my $sphinx_cblock = '^\.\.\ +code-block::';
++
++sub output_highlight_rst {
++ my $input = join "\n",@_;
++ my $output = "";
++ my $line;
++ my $in_literal = 0;
++ my $litprefix;
++ my $block = "";
++
++ foreach $line (split "\n",$input) {
++ #
++ # If we're in a literal block, see if we should drop out
++ # of it. Otherwise pass the line straight through unmunged.
++ #
++ if ($in_literal) {
++ if (! ($line =~ /^\s*$/)) {
++ #
++ # If this is the first non-blank line in a literal
++ # block we need to figure out what the proper indent is.
++ #
++ if ($litprefix eq "") {
++ $line =~ /^(\s*)/;
++ $litprefix = '^' . $1;
++ $output .= $line . "\n";
++ } elsif (! ($line =~ /$litprefix/)) {
++ $in_literal = 0;
++ } else {
++ $output .= $line . "\n";
++ }
++ } else {
++ $output .= $line . "\n";
++ }
++ }
++ #
++ # Not in a literal block (or just dropped out)
++ #
++ if (! $in_literal) {
++ $block .= $line . "\n";
++ if (($line =~ /$sphinx_literal/) || ($line =~ /$sphinx_cblock/)) {
++ $in_literal = 1;
++ $litprefix = "";
++ $output .= highlight_block($block);
++ $block = ""
++ }
++ }
++ }
++
++ if ($block) {
++ $output .= highlight_block($block);
++ }
++ foreach $line (split "\n", $output) {
+ print $lineprefix . $line . "\n";
+ }
+ }
+@@ -1062,7 +1120,7 @@ sub dump_struct($$) {
+ # Handle bitmaps
+ $arg =~ s/:\s*\d+\s*//g;
+ # Handle arrays
+- $arg =~ s/\[\S+\]//g;
++ $arg =~ s/\[.*\]//g;
+ # The type may have multiple words,
+ # and multiple IDs can be defined, like:
+ # const struct foo, *bar, foobar
+@@ -1422,8 +1480,6 @@ sub push_parameter($$$$) {
+ }
+ }
+
+- $param = xml_escape($param);
+-
+ # strip spaces from $param so that it is one continuous string
+ # on @parameterlist;
+ # this fixes a problem where check_sections() cannot find
+@@ -1522,6 +1578,7 @@ sub dump_function($$) {
+ $prototype =~ s/__meminit +//;
+ $prototype =~ s/__must_check +//;
+ $prototype =~ s/__weak +//;
++ $prototype =~ s/__sched +//;
+ my $define = $prototype =~ s/^#\s*define\s+//; #ak added
+ $prototype =~ s/__attribute__\s*\(\(
+ (?:
+@@ -1748,47 +1805,6 @@ sub process_proto_type($$) {
+ }
+ }
+
+-# xml_escape: replace <, >, and & in the text stream;
+-#
+-# however, formatting controls that are generated internally/locally in the
+-# kernel-doc script are not escaped here; instead, they begin life like
+-# $blankline_html (4 of '\' followed by a mnemonic + ':'), then these strings
+-# are converted to their mnemonic-expected output, without the 4 * '\' & ':',
+-# just before actual output; (this is done by local_unescape())
+-sub xml_escape($) {
+- my $text = shift;
+- if ($output_mode eq "man") {
+- return $text;
+- }
+- $text =~ s/\&/\\\\\\amp;/g;
+- $text =~ s/\</\\\\\\lt;/g;
+- $text =~ s/\>/\\\\\\gt;/g;
+- return $text;
+-}
+-
+-# xml_unescape: reverse the effects of xml_escape
+-sub xml_unescape($) {
+- my $text = shift;
+- if ($output_mode eq "man") {
+- return $text;
+- }
+- $text =~ s/\\\\\\amp;/\&/g;
+- $text =~ s/\\\\\\lt;/</g;
+- $text =~ s/\\\\\\gt;/>/g;
+- return $text;
+-}
+-
+-# convert local escape strings to html
+-# local escape strings look like: '\\\\menmonic:' (that's 4 backslashes)
+-sub local_unescape($) {
+- my $text = shift;
+- if ($output_mode eq "man") {
+- return $text;
+- }
+- $text =~ s/\\\\\\\\lt:/</g;
+- $text =~ s/\\\\\\\\gt:/>/g;
+- return $text;
+-}
+
+ sub map_filename($) {
+ my $file;
+@@ -1826,15 +1842,291 @@ sub process_export_file($) {
+ close(IN);
+ }
+
+-sub process_file($) {
+- my $file;
++#
++# Parsers for the various processing states.
++#
++# STATE_NORMAL: looking for the /** to begin everything.
++#
++sub process_normal() {
++ if (/$doc_start/o) {
++ $state = STATE_NAME; # next line is always the function name
++ $in_doc_sect = 0;
++ $declaration_start_line = $. + 1;
++ }
++}
++
++#
++# STATE_NAME: Looking for the "name - description" line
++#
++sub process_name($$) {
++ my $file = shift;
+ my $identifier;
+- my $func;
+ my $descr;
+- my $in_purpose = 0;
++
++ if (/$doc_block/o) {
++ $state = STATE_DOCBLOCK;
++ $contents = "";
++ $new_start_line = $. + 1;
++
++ if ( $1 eq "" ) {
++ $section = $section_intro;
++ } else {
++ $section = $1;
++ }
++ }
++ elsif (/$doc_decl/o) {
++ $identifier = $1;
++ if (/\s*([\w\s]+?)(\(\))?\s*-/) {
++ $identifier = $1;
++ }
++
++ $state = STATE_BODY;
++ # if there's no @param blocks need to set up default section
++ # here
++ $contents = "";
++ $section = $section_default;
++ $new_start_line = $. + 1;
++ if (/-(.*)/) {
++ # strip leading/trailing/multiple spaces
++ $descr= $1;
++ $descr =~ s/^\s*//;
++ $descr =~ s/\s*$//;
++ $descr =~ s/\s+/ /g;
++ $declaration_purpose = $descr;
++ $state = STATE_BODY_MAYBE;
++ } else {
++ $declaration_purpose = "";
++ }
++
++ if (($declaration_purpose eq "") && $verbose) {
++ print STDERR "${file}:$.: warning: missing initial short description on line:\n";
++ print STDERR $_;
++ ++$warnings;
++ }
++
++ if ($identifier =~ m/^struct/) {
++ $decl_type = 'struct';
++ } elsif ($identifier =~ m/^union/) {
++ $decl_type = 'union';
++ } elsif ($identifier =~ m/^enum/) {
++ $decl_type = 'enum';
++ } elsif ($identifier =~ m/^typedef/) {
++ $decl_type = 'typedef';
++ } else {
++ $decl_type = 'function';
++ }
++
++ if ($verbose) {
++ print STDERR "${file}:$.: info: Scanning doc for $identifier\n";
++ }
++ } else {
++ print STDERR "${file}:$.: warning: Cannot understand $_ on line $.",
++ " - I thought it was a doc line\n";
++ ++$warnings;
++ $state = STATE_NORMAL;
++ }
++}
++
++
++#
++# STATE_BODY and STATE_BODY_MAYBE: the bulk of a kerneldoc comment.
++#
++sub process_body($$) {
++ my $file = shift;
++
++ if (/$doc_sect/i) { # case insensitive for supported section names
++ $newsection = $1;
++ $newcontents = $2;
++
++ # map the supported section names to the canonical names
++ if ($newsection =~ m/^description$/i) {
++ $newsection = $section_default;
++ } elsif ($newsection =~ m/^context$/i) {
++ $newsection = $section_context;
++ } elsif ($newsection =~ m/^returns?$/i) {
++ $newsection = $section_return;
++ } elsif ($newsection =~ m/^\@return$/) {
++ # special: @return is a section, not a param description
++ $newsection = $section_return;
++ }
++
++ if (($contents ne "") && ($contents ne "\n")) {
++ if (!$in_doc_sect && $verbose) {
++ print STDERR "${file}:$.: warning: contents before sections\n";
++ ++$warnings;
++ }
++ dump_section($file, $section, $contents);
++ $section = $section_default;
++ }
++
++ $in_doc_sect = 1;
++ $state = STATE_BODY;
++ $contents = $newcontents;
++ $new_start_line = $.;
++ while (substr($contents, 0, 1) eq " ") {
++ $contents = substr($contents, 1);
++ }
++ if ($contents ne "") {
++ $contents .= "\n";
++ }
++ $section = $newsection;
++ $leading_space = undef;
++ } elsif (/$doc_end/) {
++ if (($contents ne "") && ($contents ne "\n")) {
++ dump_section($file, $section, $contents);
++ $section = $section_default;
++ $contents = "";
++ }
++ # look for doc_com + <text> + doc_end:
++ if ($_ =~ m'\s*\*\s*[a-zA-Z_0-9:\.]+\*/') {
++ print STDERR "${file}:$.: warning: suspicious ending line: $_";
++ ++$warnings;
++ }
++
++ $prototype = "";
++ $state = STATE_PROTO;
++ $brcount = 0;
++ } elsif (/$doc_content/) {
++ # miguel-style comment kludge, look for blank lines after
++ # @parameter line to signify start of description
++ if ($1 eq "") {
++ if ($section =~ m/^@/ || $section eq $section_context) {
++ dump_section($file, $section, $contents);
++ $section = $section_default;
++ $contents = "";
++ $new_start_line = $.;
++ } else {
++ $contents .= "\n";
++ }
++ $state = STATE_BODY;
++ } elsif ($state == STATE_BODY_MAYBE) {
++ # Continued declaration purpose
++ chomp($declaration_purpose);
++ $declaration_purpose .= " " . $1;
++ $declaration_purpose =~ s/\s+/ /g;
++ } else {
++ my $cont = $1;
++ if ($section =~ m/^@/ || $section eq $section_context) {
++ if (!defined $leading_space) {
++ if ($cont =~ m/^(\s+)/) {
++ $leading_space = $1;
++ } else {
++ $leading_space = "";
++ }
++ }
++ $cont =~ s/^$leading_space//;
++ }
++ $contents .= $cont . "\n";
++ }
++ } else {
++ # i dont know - bad line? ignore.
++ print STDERR "${file}:$.: warning: bad line: $_";
++ ++$warnings;
++ }
++}
++
++
++#
++# STATE_PROTO: reading a function/whatever prototype.
++#
++sub process_proto($$) {
++ my $file = shift;
++
++ if (/$doc_inline_oneline/) {
++ $section = $1;
++ $contents = $2;
++ if ($contents ne "") {
++ $contents .= "\n";
++ dump_section($file, $section, $contents);
++ $section = $section_default;
++ $contents = "";
++ }
++ } elsif (/$doc_inline_start/) {
++ $state = STATE_INLINE;
++ $inline_doc_state = STATE_INLINE_NAME;
++ } elsif ($decl_type eq 'function') {
++ process_proto_function($_, $file);
++ } else {
++ process_proto_type($_, $file);
++ }
++}
++
++#
++# STATE_DOCBLOCK: within a DOC: block.
++#
++sub process_docblock($$) {
++ my $file = shift;
++
++ if (/$doc_end/) {
++ dump_doc_section($file, $section, $contents);
++ $section = $section_default;
++ $contents = "";
++ $function = "";
++ %parameterdescs = ();
++ %parametertypes = ();
++ @parameterlist = ();
++ %sections = ();
++ @sectionlist = ();
++ $prototype = "";
++ $state = STATE_NORMAL;
++ } elsif (/$doc_content/) {
++ if ( $1 eq "" ) {
++ $contents .= $blankline;
++ } else {
++ $contents .= $1 . "\n";
++ }
++ }
++}
++
++#
++# STATE_INLINE: docbook comments within a prototype.
++#
++sub process_inline($$) {
++ my $file = shift;
++
++ # First line (state 1) needs to be a @parameter
++ if ($inline_doc_state == STATE_INLINE_NAME && /$doc_inline_sect/o) {
++ $section = $1;
++ $contents = $2;
++ $new_start_line = $.;
++ if ($contents ne "") {
++ while (substr($contents, 0, 1) eq " ") {
++ $contents = substr($contents, 1);
++ }
++ $contents .= "\n";
++ }
++ $inline_doc_state = STATE_INLINE_TEXT;
++ # Documentation block end */
++ } elsif (/$doc_inline_end/) {
++ if (($contents ne "") && ($contents ne "\n")) {
++ dump_section($file, $section, $contents);
++ $section = $section_default;
++ $contents = "";
++ }
++ $state = STATE_PROTO;
++ $inline_doc_state = STATE_INLINE_NA;
++ # Regular text
++ } elsif (/$doc_content/) {
++ if ($inline_doc_state == STATE_INLINE_TEXT) {
++ $contents .= $1 . "\n";
++ # nuke leading blank lines
++ if ($contents =~ /^\s*$/) {
++ $contents = "";
++ }
++ } elsif ($inline_doc_state == STATE_INLINE_NAME) {
++ $inline_doc_state = STATE_INLINE_ERROR;
++ print STDERR "${file}:$.: warning: ";
++ print STDERR "Incorrect use of kernel-doc format: $_";
++ ++$warnings;
++ }
++ }
++}
++
++
++sub process_file($) {
++ my $file;
+ my $initial_section_counter = $section_counter;
+ my ($orig_file) = @_;
+- my $leading_space;
+
+ $file = map_filename($orig_file);
+
+@@ -1853,250 +2145,23 @@ sub process_file($) {
+ }
+ # Replace tabs by spaces
+ while ($_ =~ s/\t+/' ' x (length($&) * 8 - length($`) % 8)/e) {};
++ # Hand this line to the appropriate state handler
+ if ($state == STATE_NORMAL) {
+- if (/$doc_start/o) {
+- $state = STATE_NAME; # next line is always the function name
+- $in_doc_sect = 0;
+- $declaration_start_line = $. + 1;
+- }
+- } elsif ($state == STATE_NAME) {# this line is the function name (always)
+- if (/$doc_block/o) {
+- $state = STATE_DOCBLOCK;
+- $contents = "";
+- $new_start_line = $. + 1;
+-
+- if ( $1 eq "" ) {
+- $section = $section_intro;
+- } else {
+- $section = $1;
+- }
+- }
+- elsif (/$doc_decl/o) {
+- $identifier = $1;
+- if (/\s*([\w\s]+?)\s*-/) {
+- $identifier = $1;
+- }
+-
+- $state = STATE_FIELD;
+- # if there's no @param blocks need to set up default section
+- # here
+- $contents = "";
+- $section = $section_default;
+- $new_start_line = $. + 1;
+- if (/-(.*)/) {
+- # strip leading/trailing/multiple spaces
+- $descr= $1;
+- $descr =~ s/^\s*//;
+- $descr =~ s/\s*$//;
+- $descr =~ s/\s+/ /g;
+- $declaration_purpose = xml_escape($descr);
+- $in_purpose = 1;
+- } else {
+- $declaration_purpose = "";
+- }
+-
+- if (($declaration_purpose eq "") && $verbose) {
+- print STDERR "${file}:$.: warning: missing initial short description on line:\n";
+- print STDERR $_;
+- ++$warnings;
+- }
+-
+- if ($identifier =~ m/^struct/) {
+- $decl_type = 'struct';
+- } elsif ($identifier =~ m/^union/) {
+- $decl_type = 'union';
+- } elsif ($identifier =~ m/^enum/) {
+- $decl_type = 'enum';
+- } elsif ($identifier =~ m/^typedef/) {
+- $decl_type = 'typedef';
+- } else {
+- $decl_type = 'function';
+- }
+-
+- if ($verbose) {
+- print STDERR "${file}:$.: info: Scanning doc for $identifier\n";
+- }
+- } else {
+- print STDERR "${file}:$.: warning: Cannot understand $_ on line $.",
+- " - I thought it was a doc line\n";
+- ++$warnings;
+- $state = STATE_NORMAL;
+- }
+- } elsif ($state == STATE_FIELD) { # look for head: lines, and include content
+- if (/$doc_sect/i) { # case insensitive for supported section names
+- $newsection = $1;
+- $newcontents = $2;
+-
+- # map the supported section names to the canonical names
+- if ($newsection =~ m/^description$/i) {
+- $newsection = $section_default;
+- } elsif ($newsection =~ m/^context$/i) {
+- $newsection = $section_context;
+- } elsif ($newsection =~ m/^returns?$/i) {
+- $newsection = $section_return;
+- } elsif ($newsection =~ m/^\@return$/) {
+- # special: @return is a section, not a param description
+- $newsection = $section_return;
+- }
+-
+- if (($contents ne "") && ($contents ne "\n")) {
+- if (!$in_doc_sect && $verbose) {
+- print STDERR "${file}:$.: warning: contents before sections\n";
+- ++$warnings;
+- }
+- dump_section($file, $section, xml_escape($contents));
+- $section = $section_default;
+- }
+-
+- $in_doc_sect = 1;
+- $in_purpose = 0;
+- $contents = $newcontents;
+- $new_start_line = $.;
+- while (substr($contents, 0, 1) eq " ") {
+- $contents = substr($contents, 1);
+- }
+- if ($contents ne "") {
+- $contents .= "\n";
+- }
+- $section = $newsection;
+- $leading_space = undef;
+- } elsif (/$doc_end/) {
+- if (($contents ne "") && ($contents ne "\n")) {
+- dump_section($file, $section, xml_escape($contents));
+- $section = $section_default;
+- $contents = "";
+- }
+- # look for doc_com + <text> + doc_end:
+- if ($_ =~ m'\s*\*\s*[a-zA-Z_0-9:\.]+\*/') {
+- print STDERR "${file}:$.: warning: suspicious ending line: $_";
+- ++$warnings;
+- }
+-
+- $prototype = "";
+- $state = STATE_PROTO;
+- $brcount = 0;
+-# print STDERR "end of doc comment, looking for prototype\n";
+- } elsif (/$doc_content/) {
+- # miguel-style comment kludge, look for blank lines after
+- # @parameter line to signify start of description
+- if ($1 eq "") {
+- if ($section =~ m/^@/ || $section eq $section_context) {
+- dump_section($file, $section, xml_escape($contents));
+- $section = $section_default;
+- $contents = "";
+- $new_start_line = $.;
+- } else {
+- $contents .= "\n";
+- }
+- $in_purpose = 0;
+- } elsif ($in_purpose == 1) {
+- # Continued declaration purpose
+- chomp($declaration_purpose);
+- $declaration_purpose .= " " . xml_escape($1);
+- $declaration_purpose =~ s/\s+/ /g;
+- } else {
+- my $cont = $1;
+- if ($section =~ m/^@/ || $section eq $section_context) {
+- if (!defined $leading_space) {
+- if ($cont =~ m/^(\s+)/) {
+- $leading_space = $1;
+- } else {
+- $leading_space = "";
+- }
+- }
+-
+- $cont =~ s/^$leading_space//;
+- }
+- $contents .= $cont . "\n";
+- }
+- } else {
+- # i dont know - bad line? ignore.
+- print STDERR "${file}:$.: warning: bad line: $_";
+- ++$warnings;
+- }
++ process_normal();
++ } elsif ($state == STATE_NAME) {
++ process_name($file, $_);
++ } elsif ($state == STATE_BODY || $state == STATE_BODY_MAYBE) {
++ process_body($file, $_);
+ } elsif ($state == STATE_INLINE) { # scanning for inline parameters
+- # First line (state 1) needs to be a @parameter
+- if ($inline_doc_state == STATE_INLINE_NAME && /$doc_inline_sect/o) {
+- $section = $1;
+- $contents = $2;
+- $new_start_line = $.;
+- if ($contents ne "") {
+- while (substr($contents, 0, 1) eq " ") {
+- $contents = substr($contents, 1);
+- }
+- $contents .= "\n";
+- }
+- $inline_doc_state = STATE_INLINE_TEXT;
+- # Documentation block end */
+- } elsif (/$doc_inline_end/) {
+- if (($contents ne "") && ($contents ne "\n")) {
+- dump_section($file, $section, xml_escape($contents));
+- $section = $section_default;
+- $contents = "";
+- }
+- $state = STATE_PROTO;
+- $inline_doc_state = STATE_INLINE_NA;
+- # Regular text
+- } elsif (/$doc_content/) {
+- if ($inline_doc_state == STATE_INLINE_TEXT) {
+- $contents .= $1 . "\n";
+- # nuke leading blank lines
+- if ($contents =~ /^\s*$/) {
+- $contents = "";
+- }
+- } elsif ($inline_doc_state == STATE_INLINE_NAME) {
+- $inline_doc_state = STATE_INLINE_ERROR;
+- print STDERR "${file}:$.: warning: ";
+- print STDERR "Incorrect use of kernel-doc format: $_";
+- ++$warnings;
+- }
+- }
+- } elsif ($state == STATE_PROTO) { # scanning for function '{' (end of prototype)
+- if (/$doc_inline_oneline/) {
+- $section = $1;
+- $contents = $2;
+- if ($contents ne "") {
+- $contents .= "\n";
+- dump_section($file, $section, xml_escape($contents));
+- $section = $section_default;
+- $contents = "";
+- }
+- } elsif (/$doc_inline_start/) {
+- $state = STATE_INLINE;
+- $inline_doc_state = STATE_INLINE_NAME;
+- } elsif ($decl_type eq 'function') {
+- process_proto_function($_, $file);
+- } else {
+- process_proto_type($_, $file);
+- }
++ process_inline($file, $_);
++ } elsif ($state == STATE_PROTO) {
++ process_proto($file, $_);
+ } elsif ($state == STATE_DOCBLOCK) {
+- if (/$doc_end/)
+- {
+- dump_doc_section($file, $section, xml_escape($contents));
+- $section = $section_default;
+- $contents = "";
+- $function = "";
+- %parameterdescs = ();
+- %parametertypes = ();
+- @parameterlist = ();
+- %sections = ();
+- @sectionlist = ();
+- $prototype = "";
+- $state = STATE_NORMAL;
+- }
+- elsif (/$doc_content/)
+- {
+- if ( $1 eq "" )
+- {
+- $contents .= $blankline;
+- }
+- else
+- {
+- $contents .= $1 . "\n";
+- }
+- }
++ process_docblock($file, $_);
+ }
+ }
++
++ # Make sure we got something interesting.
+ if ($initial_section_counter == $section_counter) {
+ if ($output_mode ne "none") {
+ print STDERR "${file}:1: warning: no structured comments found\n";
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0009-multipath-set-verbosity-to-default-during-config.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0009-multipath-set-verbosity-to-default-during-config.patch
deleted file mode 100644
index 17d2d9179..000000000
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0009-multipath-set-verbosity-to-default-during-config.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 526e539628e051128abf46a60ec22e18c9b5d84f Mon Sep 17 00:00:00 2001
-From: Benjamin Marzinski <bmarzins@redhat.com>
-Date: Wed, 31 May 2017 15:03:02 -0500
-Subject: [PATCH 09/14] multipath: set verbosity to default during config
-
-condlog was setting the verbosity to 0 if there was no configuration.
-This keeps multipath from printing warning messages about config file
-problems that are found while loading the configuration. Instead, it
-should use the default config level until it loads the configuration
-to find the current value.
-
-Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
----
- libmultipath/debug.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/libmultipath/debug.c b/libmultipath/debug.c
-index fbe171a..f89b264 100644
---- a/libmultipath/debug.c
-+++ b/libmultipath/debug.c
-@@ -11,6 +11,7 @@
- #include "../third-party/valgrind/drd.h"
- #include "vector.h"
- #include "config.h"
-+#include "defaults.h"
-
- void dlog (int sink, int prio, const char * fmt, ...)
- {
-@@ -21,7 +22,7 @@ void dlog (int sink, int prio, const char * fmt, ...)
- va_start(ap, fmt);
- conf = get_multipath_config();
- ANNOTATE_IGNORE_READS_BEGIN();
-- thres = (conf) ? conf->verbosity : 0;
-+ thres = (conf) ? conf->verbosity : DEFAULT_VERBOSITY;
- ANNOTATE_IGNORE_READS_END();
- put_multipath_config(conf);
-
---
-2.8.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0009-multipath-tools-configure-hitachi-ams2000-and-hus100.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0009-multipath-tools-configure-hitachi-ams2000-and-hus100.patch
new file mode 100644
index 000000000..2cae0750b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0009-multipath-tools-configure-hitachi-ams2000-and-hus100.patch
@@ -0,0 +1,56 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Xose Vazquez Perez <xose.vazquez@gmail.com>
+Date: Mon, 14 May 2018 17:30:17 +0200
+Subject: [PATCH] multipath-tools: configure hitachi ams2000 and hus100 as full
+ active arrays
+
+AMS2000 and HUS100 families are active/active arrays.
+
+Based on https://support.hitachivantara.com/download/epcra/df818913.pdf
+and internal hitachi docs.
+
+Cc: Matthias Rudolph <Matthias.Rudolph@hitachivantara.com>
+Cc: Christophe Varoqui <christophe.varoqui@opensvc.com>
+Cc: DM-DEV ML <dm-devel@redhat.com>
+Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/hwtable.c | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/libmultipath/hwtable.c b/libmultipath/hwtable.c
+index 2ca6888..148f0ba 100644
+--- a/libmultipath/hwtable.c
++++ b/libmultipath/hwtable.c
+@@ -398,13 +398,13 @@ static struct hwentry default_hw[] = {
+ * Mail : matthias.rudolph@hds.com
+ */
+ {
+- /* USP-V, HUS VM, VSP, VSP G1X00 and VSP GX00 families */
++ /* USP-V, HUS VM, VSP, VSP G1X00 and VSP GX00 families / HP XP */
+ .vendor = "(HITACHI|HP)",
+ .product = "^OPEN-",
+ .pgpolicy = MULTIBUS,
+ },
+ {
+- /* AMS 2000 and HUS 100 families */
++ /* AMS other than AMS 2000 */
+ .vendor = "HITACHI",
+ .product = "^DF",
+ .no_path_retry = NO_PATH_RETRY_QUEUE,
+@@ -412,6 +412,12 @@ static struct hwentry default_hw[] = {
+ .pgfailback = -FAILBACK_IMMEDIATE,
+ .prio_name = PRIO_HDS,
+ },
++ {
++ /* AMS 2000 and HUS 100 families */
++ .vendor = "HITACHI",
++ .product = "^DF600F",
++ .pgpolicy = MULTIBUS,
++ },
+ /*
+ * IBM
+ *
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0010-libmultipath-don-t-reject-maps-with-undefined-prio.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0010-libmultipath-don-t-reject-maps-with-undefined-prio.patch
new file mode 100644
index 000000000..2dda2edae
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0010-libmultipath-don-t-reject-maps-with-undefined-prio.patch
@@ -0,0 +1,42 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Martin Wilck <mwilck@suse.com>
+Date: Wed, 21 Mar 2018 10:34:18 +0100
+Subject: [PATCH] libmultipath: don't reject maps with undefined prio
+
+libmultipath's prio routines can deal with pp->priority == PRIO_UNDEF
+just fine. PRIO_UNDEF is just a very low priority. So there's
+no reason to reject setting up a multipath map because paths have
+undefined priority.
+
+Signed-off-by: Martin Wilck <mwilck@suse.com>
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/configure.c | 5 -----
+ 1 file changed, 5 deletions(-)
+
+diff --git a/libmultipath/configure.c b/libmultipath/configure.c
+index 5796683..5c54f9b 100644
+--- a/libmultipath/configure.c
++++ b/libmultipath/configure.c
+@@ -1063,9 +1063,6 @@ int coalesce_paths (struct vectors * vecs, vector newmp, char * refwwid,
+ continue;
+ }
+
+- if (pp1->priority == PRIO_UNDEF)
+- mpp->action = ACT_REJECT;
+-
+ if (!mpp->paths) {
+ condlog(0, "%s: skip coalesce (no paths)", mpp->alias);
+ remove_map(mpp, vecs, 0);
+@@ -1091,8 +1088,6 @@ int coalesce_paths (struct vectors * vecs, vector newmp, char * refwwid,
+ mpp->size);
+ mpp->action = ACT_REJECT;
+ }
+- if (pp2->priority == PRIO_UNDEF)
+- mpp->action = ACT_REJECT;
+ }
+ verify_paths(mpp, vecs);
+
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0010-mpath-skip-device-configs-without-vendor-product.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0010-mpath-skip-device-configs-without-vendor-product.patch
deleted file mode 100644
index 396b6d32e..000000000
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0010-mpath-skip-device-configs-without-vendor-product.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From f88d60a93e98d86ae294f2317a122c4efde276f0 Mon Sep 17 00:00:00 2001
-From: Benjamin Marzinski <bmarzins@redhat.com>
-Date: Wed, 31 May 2017 17:58:59 -0500
-Subject: [PATCH 10/14] mpath: skip device configs without vendor/product
-
-Right now if multipath.conf includes a device configuration without a
-vendor or product string, it will automatically be applied to all
-devices, skipping all other configs entirely. This is clearly wrong.
-This patch makes sure that user added configs include vendor and
-product strings
-
-Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
----
- libmultipath/config.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/libmultipath/config.c b/libmultipath/config.c
-index c485748..bdde113 100644
---- a/libmultipath/config.c
-+++ b/libmultipath/config.c
-@@ -452,6 +452,13 @@ restart:
- break;
- j = n;
- vector_foreach_slot_after(hw, hwe2, j) {
-+ /* drop invalid device configs */
-+ if (!hwe2->vendor || !hwe2->product) {
-+ condlog(0, "device config missing vendor or product parameter");
-+ vector_del_slot(hw, j--);
-+ free_hwe(hwe2);
-+ continue;
-+ }
- if (hwe_regmatch(hwe1, hwe2))
- continue;
- /* dup */
---
-2.8.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0011-multipathd-fix-show-maps-json-crash.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0011-multipathd-fix-show-maps-json-crash.patch
deleted file mode 100644
index 12d6d38a7..000000000
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0011-multipathd-fix-show-maps-json-crash.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From bc3ceda747104afdc24386df5dc45ca86f6c2936 Mon Sep 17 00:00:00 2001
-From: Benjamin Marzinski <bmarzins@redhat.com>
-Date: Thu, 1 Jun 2017 17:52:28 -0500
-Subject: [PATCH 11/14] multipathd: fix "show maps json" crash
-
-If there are no multipath devices, show_maps_json sets the maximum size
-of the reply buffer to 0. Having a size of 0 causes the calls to calloc
-and realloc to behave in ways that the code isn't designed to handle,
-leading to a double-free crash. Instead, show_maps_json should just
-use the INITIAL_REPLY_LEN if there are no multipath devices.
-
-Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
----
- multipathd/cli_handlers.c | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/multipathd/cli_handlers.c b/multipathd/cli_handlers.c
-index 04c7386..7b0d00c 100644
---- a/multipathd/cli_handlers.c
-+++ b/multipathd/cli_handlers.c
-@@ -162,10 +162,12 @@ show_maps_json (char ** r, int * len, struct vectors * vecs)
- struct multipath * mpp;
- char * c;
- char * reply;
-- unsigned int maxlen = INITIAL_REPLY_LEN *
-- PRINT_JSON_MULTIPLIER * VECTOR_SIZE(vecs->mpvec);
-+ unsigned int maxlen = INITIAL_REPLY_LEN;
- int again = 1;
-
-+ if (VECTOR_SIZE(vecs->mpvec) > 0)
-+ maxlen *= PRINT_JSON_MULTIPLIER * VECTOR_SIZE(vecs->mpvec);
-+
- vector_foreach_slot(vecs->mpvec, mpp, i) {
- if (update_multipath(vecs, mpp->alias, 0)) {
- return 1;
---
-2.8.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0011-multipathd-handle-errors-in-uxlsnr-as-fatal.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0011-multipathd-handle-errors-in-uxlsnr-as-fatal.patch
new file mode 100644
index 000000000..96a814ff8
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0011-multipathd-handle-errors-in-uxlsnr-as-fatal.patch
@@ -0,0 +1,57 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Martin Wilck <mwilck@suse.com>
+Date: Wed, 21 Mar 2018 10:34:19 +0100
+Subject: [PATCH] multipathd: handle errors in uxlsnr as fatal
+
+The ppoll() calls of the uxlsnr thread are vital for proper functioning of
+multipathd. If the uxlsnr thread can't open the socket or fails to call ppoll()
+for other reasons, quit the daemon. If we don't do that, multipathd may
+hang in a state where it can't be terminated any more, because the uxlsnr
+thread is responsible for handling all signals. This happens e.g. if
+systemd's multipathd.socket is running in and multipathd is started from
+outside systemd.
+
+24f2844 "multipathd: fix signal blocking logic" has made this problem more
+severe. Before that patch, the signals weren't actually blocked in any thread.
+That's not to say 24f2844 was wrong. I still think it's correct, we just
+need this one on top.
+
+Signed-off-by: Martin Wilck <mwilck@suse.com>
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ multipathd/uxlsnr.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/multipathd/uxlsnr.c b/multipathd/uxlsnr.c
+index cdafd82..6f66666 100644
+--- a/multipathd/uxlsnr.c
++++ b/multipathd/uxlsnr.c
+@@ -178,7 +178,7 @@ void * uxsock_listen(uxsock_trigger_fn uxsock_trigger, void * trigger_data)
+
+ if (ux_sock == -1) {
+ condlog(1, "could not create uxsock: %d", errno);
+- return NULL;
++ exit_daemon();
+ }
+
+ pthread_cleanup_push(uxsock_cleanup, (void *)ux_sock);
+@@ -187,7 +187,7 @@ void * uxsock_listen(uxsock_trigger_fn uxsock_trigger, void * trigger_data)
+ polls = (struct pollfd *)MALLOC((MIN_POLLS + 1) * sizeof(struct pollfd));
+ if (!polls) {
+ condlog(0, "uxsock: failed to allocate poll fds");
+- return NULL;
++ exit_daemon();
+ }
+ sigfillset(&mask);
+ sigdelset(&mask, SIGINT);
+@@ -249,6 +249,7 @@ void * uxsock_listen(uxsock_trigger_fn uxsock_trigger, void * trigger_data)
+
+ /* something went badly wrong! */
+ condlog(0, "uxsock: poll failed with %d", errno);
++ exit_daemon();
+ break;
+ }
+
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0012-libmultipath-fix-error-parsing-find_multipaths-stric.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0012-libmultipath-fix-error-parsing-find_multipaths-stric.patch
new file mode 100644
index 000000000..8ce2431d6
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0012-libmultipath-fix-error-parsing-find_multipaths-stric.patch
@@ -0,0 +1,36 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Martin Wilck <mwilck@suse.com>
+Date: Tue, 15 May 2018 14:32:44 +0200
+Subject: [PATCH] libmultipath: fix error parsing "find_multipaths strict"
+
+If "find_multipaths strict" is set in multipath.conf, the error message
+"illegal value for find_multipaths: strict" is printed. This causes no
+functional problem, as "strict" happens to be the default, fallback
+value. It should be fixed nonetheless. FIND_MULTIPATHS_STRICT, having
+the highest numeric value, must be last in the enum.
+
+Fixes: c36f2f42 "libmultipath: change find_multipaths option to multi-value"
+Signed-off-by: Martin Wilck <mwilck@suse.com>
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/structs.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libmultipath/structs.h b/libmultipath/structs.h
+index eb6a178..e424b15 100644
+--- a/libmultipath/structs.h
++++ b/libmultipath/structs.h
+@@ -122,9 +122,9 @@ enum find_multipaths_states {
+ FIND_MULTIPATHS_UNDEF = YNU_UNDEF,
+ FIND_MULTIPATHS_OFF = YNU_NO,
+ FIND_MULTIPATHS_ON = _FIND_MULTIPATHS_F,
+- FIND_MULTIPATHS_STRICT = _FIND_MULTIPATHS_F|_FIND_MULTIPATHS_N,
+ FIND_MULTIPATHS_GREEDY = _FIND_MULTIPATHS_I,
+ FIND_MULTIPATHS_SMART = _FIND_MULTIPATHS_F|_FIND_MULTIPATHS_I,
++ FIND_MULTIPATHS_STRICT = _FIND_MULTIPATHS_F|_FIND_MULTIPATHS_N,
+ __FIND_MULTIPATHS_LAST,
+ };
+
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0012-multipath-tools-modify-Makefile.inc-for-cross-compil.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0012-multipath-tools-modify-Makefile.inc-for-cross-compil.patch
deleted file mode 100644
index 5ccd4aed8..000000000
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0012-multipath-tools-modify-Makefile.inc-for-cross-compil.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 6864ba28dec61609662ce5dc8bc7ed1925abb546 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Wed, 5 Jul 2017 02:56:13 -0400
-Subject: [PATCH 12/14] multipath-tools: modify Makefile.inc for
- cross-compilation
-
-Do not look for systemd info on the host, and allow us to pass in CFLAGS
-using the OPTFLAGS variable.
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Joe Slater <joe.slater@windriver.com>
-
-Update for version 0.5.0-144-g770e6d0
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
-
-Update for version 0.7.1
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- Makefile.inc | 8 ++------
- 1 file changed, 2 insertions(+), 6 deletions(-)
-
-diff --git a/Makefile.inc b/Makefile.inc
-index e084fd1..c7f45fa 100644
---- a/Makefile.inc
-+++ b/Makefile.inc
-@@ -35,12 +35,6 @@ ifndef RUN
- endif
- endif
-
--ifndef SYSTEMD
-- ifeq ($(shell systemctl --version > /dev/null 2>&1 && echo 1), 1)
-- SYSTEMD = $(shell systemctl --version 2> /dev/null | sed -n 's/systemd \([0-9]*\)/\1/p')
-- endif
--endif
--
- ifndef SYSTEMDPATH
- SYSTEMDPATH=usr/lib
- endif
-@@ -82,11 +76,13 @@ TEST_CC_OPTION = $(shell \
-
- STACKPROT := $(call TEST_CC_OPTION,-fstack-protector-strong,-fstack-protector)
-
-+ifndef OPTFLAGS
- OPTFLAGS = -O2 -g -pipe -Wall -Wextra -Wformat=2 -Werror=implicit-int \
- -Werror=implicit-function-declaration -Werror=format-security \
- -Wno-sign-compare -Wno-unused-parameter -Wno-clobbered \
- -Wp,-D_FORTIFY_SOURCE=2 $(STACKPROT) \
- --param=ssp-buffer-size=4
-+endif
-
- CFLAGS = $(OPTFLAGS) -DLIB_STRING=\"${LIB}\" -DRUN_DIR=\"${RUN}\"
- BIN_CFLAGS = -fPIE -DPIE
---
-2.8.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0013-libmultipath-print-correct-default-for-delay_-_check.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0013-libmultipath-print-correct-default-for-delay_-_check.patch
new file mode 100644
index 000000000..c767804d1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0013-libmultipath-print-correct-default-for-delay_-_check.patch
@@ -0,0 +1,40 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Mon, 7 May 2018 17:16:05 -0500
+Subject: [PATCH] libmultipath: print correct default for delay_*_checks
+
+These options default to "no", so they should display that when the
+config is printed.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/dict.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/libmultipath/dict.c b/libmultipath/dict.c
+index 4040611..3e7c5d6 100644
+--- a/libmultipath/dict.c
++++ b/libmultipath/dict.c
+@@ -1115,7 +1115,8 @@ print_off_int_undef(char * buff, int len, long v)
+ }
+
+ declare_def_handler(delay_watch_checks, set_off_int_undef)
+-declare_def_snprint(delay_watch_checks, print_off_int_undef)
++declare_def_snprint_defint(delay_watch_checks, print_off_int_undef,
++ DEFAULT_DELAY_CHECKS)
+ declare_ovr_handler(delay_watch_checks, set_off_int_undef)
+ declare_ovr_snprint(delay_watch_checks, print_off_int_undef)
+ declare_hw_handler(delay_watch_checks, set_off_int_undef)
+@@ -1123,7 +1124,8 @@ declare_hw_snprint(delay_watch_checks, print_off_int_undef)
+ declare_mp_handler(delay_watch_checks, set_off_int_undef)
+ declare_mp_snprint(delay_watch_checks, print_off_int_undef)
+ declare_def_handler(delay_wait_checks, set_off_int_undef)
+-declare_def_snprint(delay_wait_checks, print_off_int_undef)
++declare_def_snprint_defint(delay_wait_checks, print_off_int_undef,
++ DEFAULT_DELAY_CHECKS)
+ declare_ovr_handler(delay_wait_checks, set_off_int_undef)
+ declare_ovr_snprint(delay_wait_checks, print_off_int_undef)
+ declare_hw_handler(delay_wait_checks, set_off_int_undef)
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0014-multipath.conf.5-clarify-property-whitelist-handling.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0014-multipath.conf.5-clarify-property-whitelist-handling.patch
new file mode 100644
index 000000000..0ab4e0673
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0014-multipath.conf.5-clarify-property-whitelist-handling.patch
@@ -0,0 +1,31 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Wed, 9 May 2018 14:32:59 -0500
+Subject: [PATCH] multipath.conf.5: clarify property whitelist handling
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ multipath/multipath.conf.5 | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/multipath/multipath.conf.5 b/multipath/multipath.conf.5
+index f689795..96d1b66 100644
+--- a/multipath/multipath.conf.5
++++ b/multipath/multipath.conf.5
+@@ -1181,10 +1181,9 @@ and
+ keywords. For a full description of these keywords please see the \fIdevices\fR
+ section description.
+ .LP
+-The \fIproperty\fR blacklist and whitelist handling is different from the usual
+-handling in the sense that the whitelist \fIhas\fR to be set, otherwise the
+-device will be blacklisted. In these cases the message \fIblacklisted, udev
+-property missing\fR will be displayed.
++The \fIproperty\fR whitelist handling is different from the usual
++handling in the sense that the device \fIhas\fR to have a udev property that
++matches the whitelist, otherwise the device will be blacklisted. In these cases the message \fIblacklisted, udev property missing\fR will be displayed.
+ .
+ .
+ .\" ----------------------------------------------------------------------------
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0015-mpathpersist-add-all_tg_pt-option.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0015-mpathpersist-add-all_tg_pt-option.patch
new file mode 100644
index 000000000..be2681d70
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0015-mpathpersist-add-all_tg_pt-option.patch
@@ -0,0 +1,317 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Thu, 31 May 2018 17:47:11 -0500
+Subject: [PATCH] mpathpersist: add all_tg_pt option
+
+Some arrays, such as the EMC VNX, don't follow the scsi persistent
+reservations spec in making key registrations per I_T NEXUS. Instead,
+the registration is shared by all target ports connected to a given
+host. This causes mpathpersist to fail whenever it tries to register a
+key, since it will receive a registration conflict on some of the paths.
+
+To deal with this, mpathpersist needs to track the hosts that it has
+done a registration on, and only register once per host. The new
+"all_tg_pt" multipath.conf option is used to set which arrays need this
+feature. I currently don't know if all EMC VNX arrays handle persistent
+reservations like this, or if it is configurable. A future patch will
+update the VNX built-in config, if this is indeed their default (or
+only) setting.
+
+Multipathd doesn't need to worry about this. It is often the case that
+when a path device comes back, it will still have the keys registered to
+it. Because of this, multipathd uses register-and-ignore, which means
+that it won't cause an error if the registration has already happened
+down a different target port.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmpathpersist/mpath_persist.c | 28 ++++++++++++++++++++++------
+ libmultipath/config.c | 2 ++
+ libmultipath/config.h | 2 ++
+ libmultipath/defaults.h | 1 +
+ libmultipath/dict.c | 10 ++++++++++
+ libmultipath/propsel.c | 15 +++++++++++++++
+ libmultipath/propsel.h | 1 +
+ libmultipath/structs.h | 7 +++++++
+ multipath/multipath.conf.5 | 11 +++++++++++
+ 9 files changed, 71 insertions(+), 6 deletions(-)
+
+diff --git a/libmpathpersist/mpath_persist.c b/libmpathpersist/mpath_persist.c
+index 907a17c..ca91c55 100644
+--- a/libmpathpersist/mpath_persist.c
++++ b/libmpathpersist/mpath_persist.c
+@@ -335,6 +335,7 @@ int mpath_persistent_reserve_out ( int fd, int rq_servact, int rq_scope,
+
+ conf = get_multipath_config();
+ select_reservation_key(conf, mpp);
++ select_all_tg_pt(conf, mpp);
+ put_multipath_config(conf);
+
+ memcpy(&prkey, paramp->sa_key, 8);
+@@ -456,7 +457,7 @@ int mpath_prout_reg(struct multipath *mpp,int rq_servact, int rq_scope,
+ unsigned int rq_type, struct prout_param_descriptor * paramp, int noisy)
+ {
+
+- int i, j;
++ int i, j, k;
+ struct pathgroup *pgp = NULL;
+ struct path *pp = NULL;
+ int rollback = 0;
+@@ -481,11 +482,13 @@ int mpath_prout_reg(struct multipath *mpp,int rq_servact, int rq_scope,
+ }
+
+ struct threadinfo thread[active_pathcount];
++ int hosts[active_pathcount];
+
+ memset(thread, 0, sizeof(thread));
+
+ /* init thread parameter */
+ for (i =0; i< active_pathcount; i++){
++ hosts[i] = -1;
+ thread[i].param.rq_servact = rq_servact;
+ thread[i].param.rq_scope = rq_scope;
+ thread[i].param.rq_type = rq_type;
+@@ -514,6 +517,17 @@ int mpath_prout_reg(struct multipath *mpp,int rq_servact, int rq_scope,
+ condlog (1, "%s: %s path not up. Skip.", mpp->wwid, pp->dev);
+ continue;
+ }
++ if (mpp->all_tg_pt == ALL_TG_PT_ON &&
++ pp->sg_id.host_no != -1) {
++ for (k = 0; k < count; k++) {
++ if (pp->sg_id.host_no == hosts[k]) {
++ condlog(3, "%s: %s host %d matches skip.", pp->wwid, pp->dev, pp->sg_id.host_no);
++ break;
++ }
++ }
++ if (k < count)
++ continue;
++ }
+ strncpy(thread[count].param.dev, pp->dev,
+ FILE_NAME_SIZE - 1);
+
+@@ -531,10 +545,12 @@ int mpath_prout_reg(struct multipath *mpp,int rq_servact, int rq_scope,
+ condlog (0, "%s: failed to create thread %d", mpp->wwid, rc);
+ thread[count].param.status = MPATH_PR_THREAD_ERROR;
+ }
++ else
++ hosts[count] = pp->sg_id.host_no;
+ count = count + 1;
+ }
+ }
+- for( i=0; i < active_pathcount ; i++){
++ for( i=0; i < count ; i++){
+ if (thread[i].param.status != MPATH_PR_THREAD_ERROR) {
+ rc = pthread_join(thread[i].id, NULL);
+ if (rc){
+@@ -557,7 +573,7 @@ int mpath_prout_reg(struct multipath *mpp,int rq_servact, int rq_scope,
+ }
+ if (rollback && ((rq_servact == MPATH_PROUT_REG_SA) && sa_key != 0 )){
+ condlog (3, "%s: ERROR: initiating pr out rollback", mpp->wwid);
+- for( i=0 ; i < active_pathcount ; i++){
++ for( i=0 ; i < count ; i++){
+ if(thread[i].param.status == MPATH_PR_SUCCESS) {
+ memcpy(&thread[i].param.paramp->key, &thread[i].param.paramp->sa_key, 8);
+ memset(&thread[i].param.paramp->sa_key, 0, 8);
+@@ -571,7 +587,7 @@ int mpath_prout_reg(struct multipath *mpp,int rq_servact, int rq_scope,
+ } else
+ thread[i].param.status = MPATH_PR_SKIP;
+ }
+- for(i=0; i < active_pathcount ; i++){
++ for(i=0; i < count ; i++){
+ if (thread[i].param.status != MPATH_PR_SKIP &&
+ thread[i].param.status != MPATH_PR_THREAD_ERROR) {
+ rc = pthread_join(thread[i].id, NULL);
+@@ -720,7 +736,7 @@ int mpath_prout_rel(struct multipath *mpp,int rq_servact, int rq_scope,
+ }
+ }
+ pthread_attr_destroy (&attr);
+- for (i = 0; i < active_pathcount; i++){
++ for (i = 0; i < count; i++){
+ if (thread[i].param.status != MPATH_PR_THREAD_ERROR) {
+ rc = pthread_join (thread[i].id, NULL);
+ if (rc){
+@@ -729,7 +745,7 @@ int mpath_prout_rel(struct multipath *mpp,int rq_servact, int rq_scope,
+ }
+ }
+
+- for (i = 0; i < active_pathcount; i++){
++ for (i = 0; i < count; i++){
+ /* check thread status here and return the status */
+
+ if (thread[i].param.status == MPATH_PR_RESERV_CONFLICT)
+diff --git a/libmultipath/config.c b/libmultipath/config.c
+index 085a3e1..5872927 100644
+--- a/libmultipath/config.c
++++ b/libmultipath/config.c
+@@ -352,6 +352,7 @@ merge_hwe (struct hwentry * dst, struct hwentry * src)
+ merge_num(skip_kpartx);
+ merge_num(max_sectors_kb);
+ merge_num(ghost_delay);
++ merge_num(all_tg_pt);
+
+ snprintf(id, sizeof(id), "%s/%s", dst->vendor, dst->product);
+ reconcile_features_with_options(id, &dst->features,
+@@ -622,6 +623,7 @@ load_config (char * file)
+ conf->disable_changed_wwids = DEFAULT_DISABLE_CHANGED_WWIDS;
+ conf->remove_retries = 0;
+ conf->ghost_delay = DEFAULT_GHOST_DELAY;
++ conf->all_tg_pt = DEFAULT_ALL_TG_PT;
+
+ /*
+ * preload default hwtable
+diff --git a/libmultipath/config.h b/libmultipath/config.h
+index 6e69a37..1bf708a 100644
+--- a/libmultipath/config.h
++++ b/libmultipath/config.h
+@@ -82,6 +82,7 @@ struct hwentry {
+ int skip_kpartx;
+ int max_sectors_kb;
+ int ghost_delay;
++ int all_tg_pt;
+ char * bl_product;
+ };
+
+@@ -194,6 +195,7 @@ struct config {
+ char * partition_delim;
+ char * config_dir;
+ int prkey_source;
++ int all_tg_pt;
+ struct be64 reservation_key;
+
+ vector keywords;
+diff --git a/libmultipath/defaults.h b/libmultipath/defaults.h
+index d7b87b4..f076b4b 100644
+--- a/libmultipath/defaults.h
++++ b/libmultipath/defaults.h
+@@ -43,6 +43,7 @@
+ #define DEFAULT_GHOST_DELAY GHOST_DELAY_OFF
+ #define DEFAULT_FIND_MULTIPATHS_TIMEOUT -10
+ #define DEFAULT_UNKNOWN_FIND_MULTIPATHS_TIMEOUT 1
++#define DEFAULT_ALL_TG_PT ALL_TG_PT_OFF
+
+ #define DEFAULT_CHECKINT 5
+ #define MAX_CHECKINT(a) (a << 2)
+diff --git a/libmultipath/dict.c b/libmultipath/dict.c
+index 3e7c5d6..2557b8a 100644
+--- a/libmultipath/dict.c
++++ b/libmultipath/dict.c
+@@ -1178,6 +1178,13 @@ declare_hw_snprint(ghost_delay, print_off_int_undef)
+ declare_mp_handler(ghost_delay, set_off_int_undef)
+ declare_mp_snprint(ghost_delay, print_off_int_undef)
+
++declare_def_handler(all_tg_pt, set_yes_no_undef)
++declare_def_snprint_defint(all_tg_pt, print_yes_no_undef, DEFAULT_ALL_TG_PT)
++declare_ovr_handler(all_tg_pt, set_yes_no_undef)
++declare_ovr_snprint(all_tg_pt, print_yes_no_undef)
++declare_hw_handler(all_tg_pt, set_yes_no_undef)
++declare_hw_snprint(all_tg_pt, print_yes_no_undef)
++
+
+ static int
+ def_uxsock_timeout_handler(struct config *conf, vector strvec)
+@@ -1509,6 +1516,7 @@ init_keywords(vector keywords)
+ install_keyword("prkeys_file", &def_prkeys_file_handler, &snprint_def_prkeys_file);
+ install_keyword("log_checker_err", &def_log_checker_err_handler, &snprint_def_log_checker_err);
+ install_keyword("reservation_key", &def_reservation_key_handler, &snprint_def_reservation_key);
++ install_keyword("all_tg_pt", &def_all_tg_pt_handler, &snprint_def_all_tg_pt);
+ install_keyword("retain_attached_hw_handler", &def_retain_hwhandler_handler, &snprint_def_retain_hwhandler);
+ install_keyword("detect_prio", &def_detect_prio_handler, &snprint_def_detect_prio);
+ install_keyword("detect_checker", &def_detect_checker_handler, &snprint_def_detect_checker);
+@@ -1618,6 +1626,7 @@ init_keywords(vector keywords)
+ install_keyword("skip_kpartx", &hw_skip_kpartx_handler, &snprint_hw_skip_kpartx);
+ install_keyword("max_sectors_kb", &hw_max_sectors_kb_handler, &snprint_hw_max_sectors_kb);
+ install_keyword("ghost_delay", &hw_ghost_delay_handler, &snprint_hw_ghost_delay);
++ install_keyword("all_tg_pt", &hw_all_tg_pt_handler, &snprint_hw_all_tg_pt);
+ install_sublevel_end();
+
+ install_keyword_root("overrides", &overrides_handler);
+@@ -1654,6 +1663,7 @@ init_keywords(vector keywords)
+ install_keyword("skip_kpartx", &ovr_skip_kpartx_handler, &snprint_ovr_skip_kpartx);
+ install_keyword("max_sectors_kb", &ovr_max_sectors_kb_handler, &snprint_ovr_max_sectors_kb);
+ install_keyword("ghost_delay", &ovr_ghost_delay_handler, &snprint_ovr_ghost_delay);
++ install_keyword("all_tg_pt", &ovr_all_tg_pt_handler, &snprint_ovr_all_tg_pt);
+
+ install_keyword_root("multipaths", &multipaths_handler);
+ install_keyword_multi("multipath", &multipath_handler, NULL);
+diff --git a/libmultipath/propsel.c b/libmultipath/propsel.c
+index 627d366..9ca1355 100644
+--- a/libmultipath/propsel.c
++++ b/libmultipath/propsel.c
+@@ -978,3 +978,18 @@ out:
+ pp->dev, pp->find_multipaths_timeout, origin);
+ return 0;
+ }
++
++int select_all_tg_pt (struct config *conf, struct multipath * mp)
++{
++ const char *origin;
++
++ mp_set_ovr(all_tg_pt);
++ mp_set_hwe(all_tg_pt);
++ mp_set_conf(all_tg_pt);
++ mp_set_default(all_tg_pt, DEFAULT_ALL_TG_PT);
++out:
++ condlog(3, "%s: all_tg_pt = %s %s", mp->alias,
++ (mp->all_tg_pt == ALL_TG_PT_ON)? "yes" : "no",
++ origin);
++ return 0;
++}
+diff --git a/libmultipath/propsel.h b/libmultipath/propsel.h
+index a022bee..ae99b92 100644
+--- a/libmultipath/propsel.h
++++ b/libmultipath/propsel.h
+@@ -34,3 +34,4 @@ int select_ghost_delay(struct config *conf, struct multipath * mp);
+ void reconcile_features_with_options(const char *id, char **features,
+ int* no_path_retry,
+ int *retain_hwhandler);
++int select_all_tg_pt (struct config *conf, struct multipath * mp);
+diff --git a/libmultipath/structs.h b/libmultipath/structs.h
+index e424b15..0194b1e 100644
+--- a/libmultipath/structs.h
++++ b/libmultipath/structs.h
+@@ -217,6 +217,12 @@ enum prkey_sources {
+ PRKEY_SOURCE_FILE,
+ };
+
++enum all_tg_pt_states {
++ ALL_TG_PT_UNDEF = YNU_UNDEF,
++ ALL_TG_PT_OFF = YNU_NO,
++ ALL_TG_PT_ON = YNU_YES,
++};
++
+ struct sg_id {
+ int host_no;
+ int channel;
+@@ -362,6 +368,7 @@ struct multipath {
+ int prkey_source;
+ struct be64 reservation_key;
+ unsigned char prflag;
++ int all_tg_pt;
+ struct gen_multipath generic_mp;
+ };
+
+diff --git a/multipath/multipath.conf.5 b/multipath/multipath.conf.5
+index 96d1b66..0c1f174 100644
+--- a/multipath/multipath.conf.5
++++ b/multipath/multipath.conf.5
+@@ -743,6 +743,17 @@ The default is: \fB<unset>\fR
+ .
+ .
+ .TP
++.B all_tg_pt
++This must be set to \fByes\fR to successfully use mpathpersist on arrays that
++automatically set and clear registration keys on all target ports from a
++host, instead of per target port per host.
++.RS
++.TP
++The default is: \fBno\fR
++.RE
++.
++.
++.TP
+ .B retain_attached_hw_handler
+ (Obsolete for kernels >= 4.3) If set to
+ .I yes
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0016-libmultipath-remove-rbd-code.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0016-libmultipath-remove-rbd-code.patch
new file mode 100644
index 000000000..8d1954725
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0016-libmultipath-remove-rbd-code.patch
@@ -0,0 +1,1093 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Fri, 1 Jun 2018 16:30:44 -0500
+Subject: [PATCH] libmultipath: remove rbd code
+
+The Ceph tean has asked to drop support for multipathed rbd, since it
+was running into data corruption issues. There was never an upstream
+Ceph release based on it, and because of the corruption, there should be
+no users of this code. This patch simply reverts all the rbd code from
+multipath.
+
+Cc: Michael Christie <mchristi@redhat.com>
+Cc: Jason Dillaman <dillaman@redhat.com>
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/checkers.c | 22 --
+ libmultipath/checkers.h | 6 -
+ libmultipath/checkers/Makefile | 7 -
+ libmultipath/checkers/cciss_tur.c | 5 -
+ libmultipath/checkers/directio.c | 5 -
+ libmultipath/checkers/emc_clariion.c | 5 -
+ libmultipath/checkers/hp_sw.c | 5 -
+ libmultipath/checkers/rbd.c | 653 -----------------------------------
+ libmultipath/checkers/rdac.c | 5 -
+ libmultipath/checkers/readsector0.c | 5 -
+ libmultipath/checkers/tur.c | 5 -
+ libmultipath/discovery.c | 70 ----
+ libmultipath/hwtable.c | 12 -
+ multipath/multipath.conf.5 | 3 -
+ multipathd/main.c | 11 -
+ 15 files changed, 819 deletions(-)
+ delete mode 100644 libmultipath/checkers/rbd.c
+
+diff --git a/libmultipath/checkers.c b/libmultipath/checkers.c
+index 08cdfc3..0bacc86 100644
+--- a/libmultipath/checkers.c
++++ b/libmultipath/checkers.c
+@@ -141,13 +141,6 @@ struct checker * add_checker (char *multipath_dir, char * name)
+ if (!c->free)
+ goto out;
+
+- c->repair = (void (*)(struct checker *)) dlsym(c->handle,
+- "libcheck_repair");
+- errstr = dlerror();
+- if (errstr != NULL)
+- condlog(0, "A dynamic linking error occurred: (%s)", errstr);
+- if (!c->repair)
+- goto out;
+ done:
+ c->fd = -1;
+ c->sync = 1;
+@@ -222,20 +215,6 @@ void checker_put (struct checker * dst)
+ free_checker(src);
+ }
+
+-void checker_repair (struct checker * c)
+-{
+- if (!checker_selected(c))
+- return;
+-
+- c->message[0] = '\0';
+- if (c->disable) {
+- MSG(c, "checker disabled");
+- return;
+- }
+- if (c->repair)
+- c->repair(c);
+-}
+-
+ int checker_check (struct checker * c, int path_state)
+ {
+ int r;
+@@ -310,7 +289,6 @@ void checker_get (char *multipath_dir, struct checker * dst, char * name)
+ dst->sync = src->sync;
+ strncpy(dst->name, src->name, CHECKER_NAME_LEN);
+ strncpy(dst->message, src->message, CHECKER_MSG_LEN);
+- dst->repair = src->repair;
+ dst->check = src->check;
+ dst->init = src->init;
+ dst->free = src->free;
+diff --git a/libmultipath/checkers.h b/libmultipath/checkers.h
+index 52154ca..7b18a1a 100644
+--- a/libmultipath/checkers.h
++++ b/libmultipath/checkers.h
+@@ -86,7 +86,6 @@ enum path_check_state {
+ #define READSECTOR0 "readsector0"
+ #define CCISS_TUR "cciss_tur"
+ #define NONE "none"
+-#define RBD "rbd"
+
+ #define ASYNC_TIMEOUT_SEC 30
+
+@@ -113,9 +112,6 @@ struct checker {
+ multipath-wide. Use MALLOC if
+ you want to stuff data in. */
+ int (*check)(struct checker *);
+- void (*repair)(struct checker *); /* called if check returns
+- PATH_DOWN to bring path into
+- usable state */
+ int (*init)(struct checker *); /* to allocate the context */
+ void (*free)(struct checker *); /* to free the context */
+ };
+@@ -136,7 +132,6 @@ void checker_set_async (struct checker *);
+ void checker_set_fd (struct checker *, int);
+ void checker_enable (struct checker *);
+ void checker_disable (struct checker *);
+-void checker_repair (struct checker *);
+ int checker_check (struct checker *, int);
+ int checker_selected (struct checker *);
+ char * checker_name (struct checker *);
+@@ -148,6 +143,5 @@ void checker_get (char *, struct checker *, char *);
+ int libcheck_check(struct checker *);
+ int libcheck_init(struct checker *);
+ void libcheck_free(struct checker *);
+-void libcheck_repair(struct checker *);
+
+ #endif /* _CHECKERS_H */
+diff --git a/libmultipath/checkers/Makefile b/libmultipath/checkers/Makefile
+index 87c15bd..02caea6 100644
+--- a/libmultipath/checkers/Makefile
++++ b/libmultipath/checkers/Makefile
+@@ -15,15 +15,8 @@ LIBS= \
+ libcheckhp_sw.so \
+ libcheckrdac.so
+
+-ifneq ($(call check_file,/usr/include/rados/librados.h),0)
+-LIBS += libcheckrbd.so
+-endif
+-
+ all: $(LIBS)
+
+-libcheckrbd.so: rbd.o
+- $(CC) $(LDFLAGS) $(SHARED_FLAGS) -o $@ $^ -lrados -ludev
+-
+ libcheckdirectio.so: libsg.o directio.o
+ $(CC) $(LDFLAGS) $(SHARED_FLAGS) -o $@ $^ -laio
+
+diff --git a/libmultipath/checkers/cciss_tur.c b/libmultipath/checkers/cciss_tur.c
+index 436470c..1cab201 100644
+--- a/libmultipath/checkers/cciss_tur.c
++++ b/libmultipath/checkers/cciss_tur.c
+@@ -59,11 +59,6 @@ void libcheck_free (struct checker * c)
+ return;
+ }
+
+-void libcheck_repair (struct checker * c)
+-{
+- return;
+-}
+-
+ int libcheck_check(struct checker * c)
+ {
+ int rc;
+diff --git a/libmultipath/checkers/directio.c b/libmultipath/checkers/directio.c
+index ce60e4c..a80848d 100644
+--- a/libmultipath/checkers/directio.c
++++ b/libmultipath/checkers/directio.c
+@@ -118,11 +118,6 @@ void libcheck_free (struct checker * c)
+ free(ct);
+ }
+
+-void libcheck_repair (struct checker * c)
+-{
+- return;
+-}
+-
+ static int
+ check_state(int fd, struct directio_context *ct, int sync, int timeout_secs)
+ {
+diff --git a/libmultipath/checkers/emc_clariion.c b/libmultipath/checkers/emc_clariion.c
+index 9c1ffed..9115b1b 100644
+--- a/libmultipath/checkers/emc_clariion.c
++++ b/libmultipath/checkers/emc_clariion.c
+@@ -90,11 +90,6 @@ void libcheck_free (struct checker * c)
+ free(c->context);
+ }
+
+-void libcheck_repair (struct checker * c)
+-{
+- return;
+-}
+-
+ int libcheck_check (struct checker * c)
+ {
+ unsigned char sense_buffer[128] = { 0, };
+diff --git a/libmultipath/checkers/hp_sw.c b/libmultipath/checkers/hp_sw.c
+index cee9aab..0ad34a6 100644
+--- a/libmultipath/checkers/hp_sw.c
++++ b/libmultipath/checkers/hp_sw.c
+@@ -45,11 +45,6 @@ void libcheck_free (struct checker * c)
+ return;
+ }
+
+-void libcheck_repair (struct checker * c)
+-{
+- return;
+-}
+-
+ static int
+ do_inq(int sg_fd, int cmddt, int evpd, unsigned int pg_op,
+ void *resp, int mx_resp_len, int noisy, unsigned int timeout)
+diff --git a/libmultipath/checkers/rbd.c b/libmultipath/checkers/rbd.c
+deleted file mode 100644
+index 4ff54f4..0000000
+--- a/libmultipath/checkers/rbd.c
++++ /dev/null
+@@ -1,653 +0,0 @@
+-/*
+- * Copyright (c) 2016 Red Hat
+- * Copyright (c) 2004 Christophe Varoqui
+- *
+- * Code based off of tur.c and ceph's krbd.cc
+- */
+-#define _GNU_SOURCE
+-#include <stdio.h>
+-#include <stdlib.h>
+-#include <string.h>
+-#include <unistd.h>
+-#include <fcntl.h>
+-#include <errno.h>
+-#include <pthread.h>
+-#include <libudev.h>
+-#include <ifaddrs.h>
+-#include <sys/types.h>
+-#include <sys/stat.h>
+-#include <sys/ioctl.h>
+-#include <sys/time.h>
+-#include <sys/wait.h>
+-#include <urcu.h>
+-
+-#include "rados/librados.h"
+-
+-#include "structs.h"
+-#include "checkers.h"
+-
+-#include "../libmultipath/debug.h"
+-#include "../libmultipath/util.h"
+-#include "../libmultipath/time-util.h"
+-#include "../libmultipath/util.h"
+-
+-struct rbd_checker_context;
+-typedef int (thread_fn)(struct rbd_checker_context *ct, char *msg);
+-
+-#define RBD_MSG(msg, fmt, args...) snprintf(msg, CHECKER_MSG_LEN, fmt, ##args);
+-
+-#define RBD_FEATURE_EXCLUSIVE_LOCK (1 << 2)
+-
+-struct rbd_checker_context {
+- int rbd_bus_id;
+- char *client_addr;
+- char *config_info;
+- char *snap;
+- char *pool;
+- char *image;
+- char *username;
+- int remapped;
+- int blacklisted;
+- unsigned lock_on_read:1;
+-
+- rados_t cluster;
+-
+- int state;
+- int running;
+- time_t time;
+- thread_fn *fn;
+- pthread_t thread;
+- pthread_mutex_t lock;
+- pthread_cond_t active;
+- pthread_spinlock_t hldr_lock;
+- int holders;
+- char message[CHECKER_MSG_LEN];
+-};
+-
+-int libcheck_init(struct checker * c)
+-{
+- struct rbd_checker_context *ct;
+- struct udev_device *block_dev;
+- struct udev_device *bus_dev;
+- struct udev *udev;
+- struct stat sb;
+- const char *block_name, *addr, *config_info, *features_str;
+- const char *image, *pool, *snap, *username;
+- uint64_t features = 0;
+- char sysfs_path[PATH_SIZE];
+- int ret;
+-
+- ct = malloc(sizeof(struct rbd_checker_context));
+- if (!ct)
+- return 1;
+- memset(ct, 0, sizeof(struct rbd_checker_context));
+- ct->holders = 1;
+- pthread_cond_init_mono(&ct->active);
+- pthread_mutex_init(&ct->lock, NULL);
+- pthread_spin_init(&ct->hldr_lock, PTHREAD_PROCESS_PRIVATE);
+- c->context = ct;
+-
+- /*
+- * The rbd block layer sysfs device is not linked to the rbd bus
+- * device that we interact with, so figure that out now.
+- */
+- if (fstat(c->fd, &sb) != 0)
+- goto free_ct;
+-
+- udev = udev_new();
+- if (!udev)
+- goto free_ct;
+-
+- block_dev = udev_device_new_from_devnum(udev, 'b', sb.st_rdev);
+- if (!block_dev)
+- goto free_udev;
+-
+- block_name = udev_device_get_sysname(block_dev);
+- ret = sscanf(block_name, "rbd%d", &ct->rbd_bus_id);
+-
+- udev_device_unref(block_dev);
+- if (ret != 1)
+- goto free_udev;
+-
+- snprintf(sysfs_path, sizeof(sysfs_path), "/sys/bus/rbd/devices/%d",
+- ct->rbd_bus_id);
+- bus_dev = udev_device_new_from_syspath(udev, sysfs_path);
+- if (!bus_dev)
+- goto free_udev;
+-
+- addr = udev_device_get_sysattr_value(bus_dev, "client_addr");
+- if (!addr) {
+- condlog(0, "rbd%d: Could not find client_addr in rbd sysfs. "
+- "Try updating kernel", ct->rbd_bus_id);
+- goto free_dev;
+- }
+-
+- ct->client_addr = strdup(addr);
+- if (!ct->client_addr)
+- goto free_dev;
+-
+- features_str = udev_device_get_sysattr_value(bus_dev, "features");
+- if (!features_str)
+- goto free_addr;
+- features = strtoll(features_str, NULL, 16);
+- if (!(features & RBD_FEATURE_EXCLUSIVE_LOCK)) {
+- condlog(3, "rbd%d: Exclusive lock not set.", ct->rbd_bus_id);
+- goto free_addr;
+- }
+-
+- config_info = udev_device_get_sysattr_value(bus_dev, "config_info");
+- if (!config_info)
+- goto free_addr;
+-
+- if (!strstr(config_info, "noshare")) {
+- condlog(3, "rbd%d: Only nonshared clients supported.",
+- ct->rbd_bus_id);
+- goto free_addr;
+- }
+-
+- if (strstr(config_info, "lock_on_read"))
+- ct->lock_on_read = 1;
+-
+- ct->config_info = strdup(config_info);
+- if (!ct->config_info)
+- goto free_addr;
+-
+- username = strstr(config_info, "name=");
+- if (username) {
+- char *end;
+- int len;
+-
+- username += 5;
+- end = strchr(username, ',');
+- if (!end)
+- goto free_info;
+- len = end - username;
+-
+- ct->username = malloc(len + 1);
+- if (!ct->username)
+- goto free_info;
+- strncpy(ct->username, username, len);
+- ct->username[len] = '\0';
+- }
+-
+- image = udev_device_get_sysattr_value(bus_dev, "name");
+- if (!image)
+- goto free_username;
+-
+- ct->image = strdup(image);
+- if (!ct->image)
+- goto free_username;
+-
+- pool = udev_device_get_sysattr_value(bus_dev, "pool");
+- if (!pool)
+- goto free_image;
+-
+- ct->pool = strdup(pool);
+- if (!ct->pool)
+- goto free_image;
+-
+- snap = udev_device_get_sysattr_value(bus_dev, "current_snap");
+- if (!snap)
+- goto free_pool;
+-
+- if (strcmp("-", snap)) {
+- ct->snap = strdup(snap);
+- if (!ct->snap)
+- goto free_pool;
+- }
+-
+- if (rados_create(&ct->cluster, NULL) < 0) {
+- condlog(0, "rbd%d: Could not create rados cluster",
+- ct->rbd_bus_id);
+- goto free_snap;
+- }
+-
+- if (rados_conf_read_file(ct->cluster, NULL) < 0) {
+- condlog(0, "rbd%d: Could not read rados conf", ct->rbd_bus_id);
+- goto shutdown_rados;
+- }
+-
+- ret = rados_connect(ct->cluster);
+- if (ret < 0) {
+- condlog(0, "rbd%d: Could not connect to rados cluster",
+- ct->rbd_bus_id);
+- goto shutdown_rados;
+- }
+-
+- udev_device_unref(bus_dev);
+- udev_unref(udev);
+-
+- condlog(3, "rbd%d checker init %s %s/%s@%s %s", ct->rbd_bus_id,
+- ct->client_addr, ct->pool, ct->image, ct->snap ? ct->snap : "-",
+- ct->username ? ct->username : "none");
+- return 0;
+-
+-shutdown_rados:
+- rados_shutdown(ct->cluster);
+-free_snap:
+- if (ct->snap)
+- free(ct->snap);
+-free_pool:
+- free(ct->pool);
+-free_image:
+- free(ct->image);
+-free_username:
+- if (ct->username)
+- free(ct->username);
+-free_info:
+- free(ct->config_info);
+-free_addr:
+- free(ct->client_addr);
+-free_dev:
+- udev_device_unref(bus_dev);
+-free_udev:
+- udev_unref(udev);
+-free_ct:
+- free(ct);
+- return 1;
+-}
+-
+-static void cleanup_context(struct rbd_checker_context *ct)
+-{
+- pthread_mutex_destroy(&ct->lock);
+- pthread_cond_destroy(&ct->active);
+- pthread_spin_destroy(&ct->hldr_lock);
+-
+- rados_shutdown(ct->cluster);
+-
+- if (ct->username)
+- free(ct->username);
+- if (ct->snap)
+- free(ct->snap);
+- free(ct->pool);
+- free(ct->image);
+- free(ct->config_info);
+- free(ct->client_addr);
+- free(ct);
+-}
+-
+-void libcheck_free(struct checker * c)
+-{
+- if (c->context) {
+- struct rbd_checker_context *ct = c->context;
+- int holders;
+- pthread_t thread;
+-
+- pthread_spin_lock(&ct->hldr_lock);
+- ct->holders--;
+- holders = ct->holders;
+- thread = ct->thread;
+- pthread_spin_unlock(&ct->hldr_lock);
+- if (holders)
+- pthread_cancel(thread);
+- else
+- cleanup_context(ct);
+- c->context = NULL;
+- }
+-}
+-
+-static int rbd_is_blacklisted(struct rbd_checker_context *ct, char *msg)
+-{
+- char *addr_tok, *start, *save;
+- const char *cmd[2];
+- char *blklist, *stat;
+- size_t blklist_len, stat_len;
+- int ret;
+- char *end;
+-
+- cmd[0] = "{\"prefix\": \"osd blacklist ls\"}";
+- cmd[1] = NULL;
+-
+- ret = rados_mon_command(ct->cluster, (const char **)cmd, 1, "", 0,
+- &blklist, &blklist_len, &stat, &stat_len);
+- if (ret < 0) {
+- RBD_MSG(msg, "checker failed: mon command failed %d", ret);
+- return ret;
+- }
+-
+- if (!blklist || !blklist_len)
+- goto free_bufs;
+-
+- /*
+- * parse list of addrs with the format
+- * ipv4:port/nonce date time\n
+- * or
+- * [ipv6]:port/nonce date time\n
+- */
+- ret = 0;
+- for (start = blklist; ; start = NULL) {
+- addr_tok = strtok_r(start, "\n", &save);
+- if (!addr_tok || !strlen(addr_tok))
+- break;
+-
+- end = strchr(addr_tok, ' ');
+- if (!end) {
+- RBD_MSG(msg, "checker failed: invalid blacklist %s",
+- addr_tok);
+- break;
+- }
+- *end = '\0';
+-
+- if (!strcmp(addr_tok, ct->client_addr)) {
+- ct->blacklisted = 1;
+- RBD_MSG(msg, "%s is blacklisted", ct->client_addr);
+- ret = 1;
+- break;
+- }
+- }
+-
+-free_bufs:
+- rados_buffer_free(blklist);
+- rados_buffer_free(stat);
+- return ret;
+-}
+-
+-static int rbd_check(struct rbd_checker_context *ct, char *msg)
+-{
+- if (ct->blacklisted || rbd_is_blacklisted(ct, msg) == 1)
+- return PATH_DOWN;
+-
+- RBD_MSG(msg, "checker reports path is up");
+- /*
+- * Path may have issues, but the ceph cluster is at least
+- * accepting IO, so we can attempt to do IO.
+- *
+- * TODO: in future versions, we can run other tests to
+- * verify OSDs and networks.
+- */
+- return PATH_UP;
+-}
+-
+-static int sysfs_write_rbd_bus(const char *which, const char *buf,
+- size_t buf_len)
+-{
+- char sysfs_path[PATH_SIZE];
+- int fd;
+- int r;
+-
+- /* we require newer kernels so single_major should always be there */
+- snprintf(sysfs_path, sizeof(sysfs_path),
+- "/sys/bus/rbd/%s_single_major", which);
+- fd = open(sysfs_path, O_WRONLY);
+- if (fd < 0)
+- return -errno;
+-
+- r = safe_write(fd, buf, buf_len);
+- close(fd);
+- return r;
+-}
+-
+-static int rbd_remap(struct rbd_checker_context *ct)
+-{
+- char *argv[11];
+- pid_t pid;
+- int ret = 0, i = 0;
+- int status;
+-
+- pid = fork();
+- switch (pid) {
+- case 0:
+- argv[i++] = "rbd";
+- argv[i++] = "map";
+- if (ct->lock_on_read)
+- argv[i++] = "-o noshare,lock_on_read";
+- else
+- argv[i++] = "-o noshare";
+- if (ct->username) {
+- argv[i++] = "--id";
+- argv[i++] = ct->username;
+- }
+- argv[i++] = "--pool";
+- argv[i++] = ct->pool;
+- if (ct->snap) {
+- argv[i++] = "--snap";
+- argv[i++] = ct->snap;
+- }
+- argv[i++] = ct->image;
+- argv[i] = NULL;
+-
+- ret = execvp(argv[0], argv);
+- condlog(0, "rbd%d: Error executing rbd: %s", ct->rbd_bus_id,
+- strerror(errno));
+- exit(-1);
+- case -1:
+- condlog(0, "rbd%d: fork failed: %s", ct->rbd_bus_id,
+- strerror(errno));
+- return -1;
+- default:
+- ret = -1;
+- wait(&status);
+- if (WIFEXITED(status)) {
+- status = WEXITSTATUS(status);
+- if (status == 0)
+- ret = 0;
+- else
+- condlog(0, "rbd%d: failed with %d",
+- ct->rbd_bus_id, status);
+- }
+- }
+-
+- return ret;
+-}
+-
+-static int sysfs_write_rbd_remove(const char *buf, int buf_len)
+-{
+- return sysfs_write_rbd_bus("remove", buf, buf_len);
+-}
+-
+-static int rbd_rm_blacklist(struct rbd_checker_context *ct)
+-{
+- const char *cmd[2];
+- char *stat, *cmd_str;
+- size_t stat_len;
+- int ret;
+-
+- ret = asprintf(&cmd_str, "{\"prefix\": \"osd blacklist\", \"blacklistop\": \"rm\", \"addr\": \"%s\"}",
+- ct->client_addr);
+- if (ret == -1)
+- return -ENOMEM;
+-
+- cmd[0] = cmd_str;
+- cmd[1] = NULL;
+-
+- ret = rados_mon_command(ct->cluster, (const char **)cmd, 1, "", 0,
+- NULL, NULL, &stat, &stat_len);
+- if (ret < 0) {
+- condlog(1, "rbd%d: repair failed to remove blacklist for %s %d",
+- ct->rbd_bus_id, ct->client_addr, ret);
+- goto free_cmd;
+- }
+-
+- condlog(1, "rbd%d: repair rm blacklist for %s",
+- ct->rbd_bus_id, ct->client_addr);
+- free(stat);
+-free_cmd:
+- free(cmd_str);
+- return ret;
+-}
+-
+-static int rbd_repair(struct rbd_checker_context *ct, char *msg)
+-{
+- char del[17];
+- int ret;
+-
+- if (!ct->blacklisted)
+- return PATH_UP;
+-
+- if (!ct->remapped) {
+- ret = rbd_remap(ct);
+- if (ret) {
+- RBD_MSG(msg, "repair failed to remap. Err %d", ret);
+- return PATH_DOWN;
+- }
+- }
+- ct->remapped = 1;
+-
+- snprintf(del, sizeof(del), "%d force", ct->rbd_bus_id);
+- ret = sysfs_write_rbd_remove(del, strlen(del) + 1);
+- if (ret) {
+- RBD_MSG(msg, "repair failed to clean up. Err %d", ret);
+- return PATH_DOWN;
+- }
+-
+- ret = rbd_rm_blacklist(ct);
+- if (ret) {
+- RBD_MSG(msg, "repair could not remove blacklist entry. Err %d",
+- ret);
+- return PATH_DOWN;
+- }
+-
+- ct->remapped = 0;
+- ct->blacklisted = 0;
+-
+- RBD_MSG(msg, "has been repaired");
+- return PATH_UP;
+-}
+-
+-#define rbd_thread_cleanup_push(ct) pthread_cleanup_push(cleanup_func, ct)
+-#define rbd_thread_cleanup_pop(ct) pthread_cleanup_pop(1)
+-
+-static void cleanup_func(void *data)
+-{
+- int holders;
+- struct rbd_checker_context *ct = data;
+- pthread_spin_lock(&ct->hldr_lock);
+- ct->holders--;
+- holders = ct->holders;
+- ct->thread = 0;
+- pthread_spin_unlock(&ct->hldr_lock);
+- if (!holders)
+- cleanup_context(ct);
+- rcu_unregister_thread();
+-}
+-
+-static void *rbd_thread(void *ctx)
+-{
+- struct rbd_checker_context *ct = ctx;
+- int state;
+-
+- /* This thread can be canceled, so setup clean up */
+- rbd_thread_cleanup_push(ct)
+- rcu_register_thread();
+- condlog(3, "rbd%d: thread starting up", ct->rbd_bus_id);
+-
+- ct->message[0] = '\0';
+-
+- /* checker start up */
+- pthread_mutex_lock(&ct->lock);
+- ct->state = PATH_PENDING;
+- pthread_mutex_unlock(&ct->lock);
+-
+- state = ct->fn(ct, ct->message);
+-
+- /* checker done */
+- pthread_mutex_lock(&ct->lock);
+- ct->state = state;
+- pthread_cond_signal(&ct->active);
+- pthread_mutex_unlock(&ct->lock);
+-
+- condlog(3, "rbd%d: thead finished, state %s", ct->rbd_bus_id,
+- checker_state_name(state));
+- rbd_thread_cleanup_pop(ct);
+- return ((void *)0);
+-}
+-
+-static void rbd_timeout(struct timespec *tsp)
+-{
+- clock_gettime(CLOCK_MONOTONIC, tsp);
+- tsp->tv_nsec += 1000 * 1000; /* 1 millisecond */
+- normalize_timespec(tsp);
+-}
+-
+-static int rbd_exec_fn(struct checker *c, thread_fn *fn)
+-{
+- struct rbd_checker_context *ct = c->context;
+- struct timespec tsp;
+- pthread_attr_t attr;
+- int rbd_status, r;
+-
+- if (c->sync)
+- return fn(ct, c->message);
+- /*
+- * Async mode
+- */
+- r = pthread_mutex_lock(&ct->lock);
+- if (r != 0) {
+- condlog(2, "rbd%d: mutex lock failed with %d", ct->rbd_bus_id,
+- r);
+- MSG(c, "rbd%d: thread failed to initialize", ct->rbd_bus_id);
+- return PATH_WILD;
+- }
+-
+- if (ct->running) {
+- /* Check if checker is still running */
+- if (ct->thread) {
+- condlog(3, "rbd%d: thread not finished",
+- ct->rbd_bus_id);
+- rbd_status = PATH_PENDING;
+- } else {
+- /* checker done */
+- ct->running = 0;
+- rbd_status = ct->state;
+- strncpy(c->message, ct->message, CHECKER_MSG_LEN);
+- c->message[CHECKER_MSG_LEN - 1] = '\0';
+- }
+- pthread_mutex_unlock(&ct->lock);
+- } else {
+- /* Start new checker */
+- ct->state = PATH_UNCHECKED;
+- ct->fn = fn;
+- pthread_spin_lock(&ct->hldr_lock);
+- ct->holders++;
+- pthread_spin_unlock(&ct->hldr_lock);
+- setup_thread_attr(&attr, 32 * 1024, 1);
+- r = pthread_create(&ct->thread, &attr, rbd_thread, ct);
+- if (r) {
+- pthread_mutex_unlock(&ct->lock);
+- ct->thread = 0;
+- ct->holders--;
+- condlog(3, "rbd%d failed to start rbd thread, using sync mode",
+- ct->rbd_bus_id);
+- return fn(ct, c->message);
+- }
+- pthread_attr_destroy(&attr);
+- rbd_timeout(&tsp);
+- r = pthread_cond_timedwait(&ct->active, &ct->lock, &tsp);
+- rbd_status = ct->state;
+- strncpy(c->message, ct->message,CHECKER_MSG_LEN);
+- c->message[CHECKER_MSG_LEN -1] = '\0';
+- pthread_mutex_unlock(&ct->lock);
+-
+- if (ct->thread &&
+- (rbd_status == PATH_PENDING || rbd_status == PATH_UNCHECKED)) {
+- condlog(3, "rbd%d: thread still running",
+- ct->rbd_bus_id);
+- ct->running = 1;
+- rbd_status = PATH_PENDING;
+- }
+- }
+-
+- return rbd_status;
+-}
+-
+-void libcheck_repair(struct checker * c)
+-{
+- struct rbd_checker_context *ct = c->context;
+-
+- if (!ct || !ct->blacklisted)
+- return;
+- rbd_exec_fn(c, rbd_repair);
+-}
+-
+-int libcheck_check(struct checker * c)
+-{
+- struct rbd_checker_context *ct = c->context;
+-
+- if (!ct)
+- return PATH_UNCHECKED;
+-
+- if (ct->blacklisted)
+- return PATH_DOWN;
+-
+- return rbd_exec_fn(c, rbd_check);
+-}
+diff --git a/libmultipath/checkers/rdac.c b/libmultipath/checkers/rdac.c
+index a643a4a..5104e4e 100644
+--- a/libmultipath/checkers/rdac.c
++++ b/libmultipath/checkers/rdac.c
+@@ -139,11 +139,6 @@ void libcheck_free (struct checker * c)
+ return;
+ }
+
+-void libcheck_repair (struct checker * c)
+-{
+- return;
+-}
+-
+ static int
+ do_inq(int sg_fd, unsigned int pg_op, void *resp, int mx_resp_len,
+ unsigned int timeout)
+diff --git a/libmultipath/checkers/readsector0.c b/libmultipath/checkers/readsector0.c
+index 8fccb46..1c2a868 100644
+--- a/libmultipath/checkers/readsector0.c
++++ b/libmultipath/checkers/readsector0.c
+@@ -23,11 +23,6 @@ void libcheck_free (struct checker * c)
+ return;
+ }
+
+-void libcheck_repair (struct checker * c)
+-{
+- return;
+-}
+-
+ int libcheck_check (struct checker * c)
+ {
+ unsigned char buf[4096];
+diff --git a/libmultipath/checkers/tur.c b/libmultipath/checkers/tur.c
+index eb3348d..bf8486d 100644
+--- a/libmultipath/checkers/tur.c
++++ b/libmultipath/checkers/tur.c
+@@ -112,11 +112,6 @@ void libcheck_free (struct checker * c)
+ return;
+ }
+
+-void libcheck_repair (struct checker * c)
+-{
+- return;
+-}
+-
+ #define TUR_MSG(fmt, args...) \
+ do { \
+ char msg[CHECKER_MSG_LEN]; \
+diff --git a/libmultipath/discovery.c b/libmultipath/discovery.c
+index 1ef1dfa..18ad0e2 100644
+--- a/libmultipath/discovery.c
++++ b/libmultipath/discovery.c
+@@ -1246,21 +1246,6 @@ nvme_sysfs_pathinfo (struct path * pp, vector hwtable)
+ }
+
+ static int
+-rbd_sysfs_pathinfo (struct path * pp, vector hwtable)
+-{
+- sprintf(pp->vendor_id, "Ceph");
+- sprintf(pp->product_id, "RBD");
+-
+- condlog(3, "%s: vendor = %s product = %s", pp->dev, pp->vendor_id,
+- pp->product_id);
+- /*
+- * set the hwe configlet pointer
+- */
+- pp->hwe = find_hwe(hwtable, pp->vendor_id, pp->product_id, NULL);
+- return 0;
+-}
+-
+-static int
+ ccw_sysfs_pathinfo (struct path * pp, vector hwtable)
+ {
+ struct udev_device *parent;
+@@ -1486,8 +1471,6 @@ sysfs_pathinfo(struct path * pp, vector hwtable)
+ pp->bus = SYSFS_BUS_CCW;
+ if (!strncmp(pp->dev,"sd", 2))
+ pp->bus = SYSFS_BUS_SCSI;
+- if (!strncmp(pp->dev,"rbd", 3))
+- pp->bus = SYSFS_BUS_RBD;
+ if (!strncmp(pp->dev,"nvme", 4))
+ pp->bus = SYSFS_BUS_NVME;
+
+@@ -1502,9 +1485,6 @@ sysfs_pathinfo(struct path * pp, vector hwtable)
+ } else if (pp->bus == SYSFS_BUS_CCISS) {
+ if (cciss_sysfs_pathinfo(pp, hwtable))
+ return 1;
+- } else if (pp->bus == SYSFS_BUS_RBD) {
+- if (rbd_sysfs_pathinfo(pp, hwtable))
+- return 1;
+ } else if (pp->bus == SYSFS_BUS_NVME) {
+ if (nvme_sysfs_pathinfo(pp, hwtable))
+ return 1;
+@@ -1753,53 +1733,6 @@ get_udev_uid(struct path * pp, char *uid_attribute, struct udev_device *udev)
+ }
+
+ static int
+-get_rbd_uid(struct path * pp)
+-{
+- struct udev_device *rbd_bus_dev;
+- int ret, rbd_bus_id;
+- const char *pool, *image, *snap;
+- char sysfs_path[PATH_SIZE];
+- uint64_t snap_id, max_snap_id = -3;
+-
+- ret = sscanf(pp->dev, "rbd%d", &rbd_bus_id);
+- if (ret != 1)
+- return -EINVAL;
+-
+- snprintf(sysfs_path, sizeof(sysfs_path), "/sys/bus/rbd/devices/%d",
+- rbd_bus_id);
+- rbd_bus_dev = udev_device_new_from_syspath(udev, sysfs_path);
+- if (!rbd_bus_dev)
+- return -ENODEV;
+-
+- ret = -EINVAL;
+- pool = udev_device_get_sysattr_value(rbd_bus_dev, "pool_id");
+- if (!pool)
+- goto free_dev;
+-
+- image = udev_device_get_sysattr_value(rbd_bus_dev, "image_id");
+- if (!image)
+- goto free_dev;
+-
+- snap = udev_device_get_sysattr_value(rbd_bus_dev, "snap_id");
+- if (!snap)
+- goto free_dev;
+- snap_id = strtoull(snap, NULL, 19);
+- if (snap_id >= max_snap_id)
+- ret = snprintf(pp->wwid, WWID_SIZE, "%s-%s", pool, image);
+- else
+- ret = snprintf(pp->wwid, WWID_SIZE, "%s-%s-%s", pool,
+- image, snap);
+- if (ret >= WWID_SIZE) {
+- condlog(0, "%s: wwid overflow", pp->dev);
+- ret = -EOVERFLOW;
+- }
+-
+-free_dev:
+- udev_device_unref(rbd_bus_dev);
+- return ret;
+-}
+-
+-static int
+ get_vpd_uid(struct path * pp)
+ {
+ struct udev_device *parent = pp->udev;
+@@ -1876,9 +1809,6 @@ get_uid (struct path * pp, int path_state, struct udev_device *udev)
+ } else
+ len = strlen(pp->wwid);
+ origin = "callout";
+- } else if (pp->bus == SYSFS_BUS_RBD) {
+- len = get_rbd_uid(pp);
+- origin = "sysfs";
+ } else {
+
+ if (udev && pp->uid_attribute) {
+diff --git a/libmultipath/hwtable.c b/libmultipath/hwtable.c
+index 148f0ba..d529bae 100644
+--- a/libmultipath/hwtable.c
++++ b/libmultipath/hwtable.c
+@@ -1000,18 +1000,6 @@ static struct hwentry default_hw[] = {
+ .prio_name = PRIO_ALUA,
+ },
+ /*
+- * Red Hat
+- *
+- * Maintainer: Mike Christie
+- * Mail: mchristi@redhat.com
+- */
+- {
+- .vendor = "Ceph",
+- .product = "RBD",
+- .checker_name = RBD,
+- .deferred_remove = DEFERRED_REMOVE_ON,
+- },
+- /*
+ * Kove
+ */
+ {
+diff --git a/multipath/multipath.conf.5 b/multipath/multipath.conf.5
+index 0c1f174..31f4585 100644
+--- a/multipath/multipath.conf.5
++++ b/multipath/multipath.conf.5
+@@ -482,9 +482,6 @@ Check the path state for HP/COMPAQ Smart Array(CCISS) controllers.
+ .I none
+ Do not check the device, fallback to use the values retrieved from sysfs
+ .TP
+-.I rbd
+-Check if the path is in the Ceph blacklist and remap the path if it is.
+-.TP
+ The default is: \fBtur\fR
+ .RE
+ .
+diff --git a/multipathd/main.c b/multipathd/main.c
+index 0db88ee..d40c416 100644
+--- a/multipathd/main.c
++++ b/multipathd/main.c
+@@ -1783,15 +1783,6 @@ int update_path_groups(struct multipath *mpp, struct vectors *vecs, int refresh)
+ return 0;
+ }
+
+-void repair_path(struct path * pp)
+-{
+- if (pp->state != PATH_DOWN)
+- return;
+-
+- checker_repair(&pp->checker);
+- LOG_MSG(1, checker_message(&pp->checker));
+-}
+-
+ /*
+ * Returns '1' if the path has been checked, '-1' if it was blacklisted
+ * and '0' otherwise
+@@ -1972,7 +1963,6 @@ check_path (struct vectors * vecs, struct path * pp, int ticks)
+ pp->mpp->failback_tick = 0;
+
+ pp->mpp->stat_path_failures++;
+- repair_path(pp);
+ return 1;
+ }
+
+@@ -2071,7 +2061,6 @@ check_path (struct vectors * vecs, struct path * pp, int ticks)
+ }
+
+ pp->state = newstate;
+- repair_path(pp);
+
+ if (pp->mpp->wait_for_udev)
+ return 1;
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0017-mpathpersist-fix-aptpl-support.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0017-mpathpersist-fix-aptpl-support.patch
new file mode 100644
index 000000000..b98d310a1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0017-mpathpersist-fix-aptpl-support.patch
@@ -0,0 +1,543 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Mon, 4 Jun 2018 22:04:44 -0500
+Subject: [PATCH] mpathpersist: fix aptpl support
+
+The "Active Persist Through Power Loss" flag must be set whenever a key
+is registered. However, there is no way for multipathd to know if this
+was set by mpathpersist. The result is that if a path goes down and
+comes back up (or if it wasn't up when mpathpersist was first run)
+multipathd will clear the aptpl flag when it reregisters the key on it.
+
+To fix this, multipath.conf now accepts an optional ":aptpl" appended
+on the reservation_key value. If this is added to the reservation_key
+multipathd will set the aptpl flag when it reregisters the key. If
+reservation_key is set to "file", this will automatically be tracked
+in the /etc/multipath/prkeys file.
+
+To track this flag in the prkeys file, without changing the format
+I've made "0x<key>" stand for non-aptpl keys, and "0X<key>" stand
+for aptpl keys. Since previously, all keys used a lower-case x, this
+will default to the current behavior for existing keys. Obviously, the
+next time mpathpersist is run, this will be changed if --param-aptpl
+is used. Since there are no more flags that are in sg_persist that
+multipathd needs to care about in mpathpersist, there shouldn't need
+to be any more flags added to the prkeys file.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmpathpersist/mpath_persist.c | 3 ++-
+ libmpathpersist/mpath_updatepr.c | 11 +++++++----
+ libmpathpersist/mpathpr.h | 3 ++-
+ libmultipath/Makefile | 2 +-
+ libmultipath/config.h | 2 ++
+ libmultipath/dict.c | 23 +++++++++++++++++++----
+ libmultipath/dict.h | 3 ++-
+ libmultipath/prkey.c | 27 ++++++++++++++++++++++++---
+ libmultipath/prkey.h | 6 ++++--
+ libmultipath/propsel.c | 6 ++++--
+ libmultipath/structs.h | 1 +
+ libmultipath/util.c | 16 ++++++++++++++++
+ libmultipath/util.h | 1 +
+ multipath/multipath.conf.5 | 7 +++++--
+ multipathd/cli_handlers.c | 15 ++++++++++-----
+ multipathd/main.c | 1 +
+ 16 files changed, 101 insertions(+), 26 deletions(-)
+
+diff --git a/libmpathpersist/mpath_persist.c b/libmpathpersist/mpath_persist.c
+index ca91c55..6e9e67f 100644
+--- a/libmpathpersist/mpath_persist.c
++++ b/libmpathpersist/mpath_persist.c
+@@ -344,7 +344,8 @@ int mpath_persistent_reserve_out ( int fd, int rq_servact, int rq_scope,
+ rq_servact == MPATH_PROUT_REG_SA) ||
+ rq_servact == MPATH_PROUT_REG_IGN_SA)) {
+ memcpy(&mpp->reservation_key, paramp->sa_key, 8);
+- if (update_prkey(alias, get_be64(mpp->reservation_key))) {
++ if (update_prkey_flags(alias, get_be64(mpp->reservation_key),
++ paramp->sa_flags)) {
+ condlog(0, "%s: failed to set prkey for multipathd.",
+ alias);
+ ret = MPATH_PR_DMMP_ERROR;
+diff --git a/libmpathpersist/mpath_updatepr.c b/libmpathpersist/mpath_updatepr.c
+index 8063e90..0aca28e 100644
+--- a/libmpathpersist/mpath_updatepr.c
++++ b/libmpathpersist/mpath_updatepr.c
+@@ -1,7 +1,5 @@
+ #include <stdio.h>
+ #include <unistd.h>
+-#include <errno.h>
+-
+ #include <stdlib.h>
+ #include <stdarg.h>
+ #include <fcntl.h>
+@@ -11,6 +9,8 @@
+ #include <sys/un.h>
+ #include <poll.h>
+ #include <errno.h>
++#include <libudev.h>
++#include <mpath_persist.h>
+ #include "debug.h"
+ #include "mpath_cmd.h"
+ #include "uxsock.h"
+@@ -59,11 +59,14 @@ int update_prflag(char *mapname, int set) {
+ return do_update_pr(mapname, (set)? "setprstatus" : "unsetprstatus");
+ }
+
+-int update_prkey(char *mapname, uint64_t prkey) {
++int update_prkey_flags(char *mapname, uint64_t prkey, uint8_t sa_flags) {
+ char str[256];
++ char *flagstr = "";
+
++ if (sa_flags & MPATH_F_APTPL_MASK)
++ flagstr = ":aptpl";
+ if (prkey)
+- sprintf(str, "setprkey key %" PRIx64, prkey);
++ sprintf(str, "setprkey key %" PRIx64 "%s", prkey, flagstr);
+ else
+ sprintf(str, "unsetprkey");
+ return do_update_pr(mapname, str);
+diff --git a/libmpathpersist/mpathpr.h b/libmpathpersist/mpathpr.h
+index 72feb60..5ea8cd6 100644
+--- a/libmpathpersist/mpathpr.h
++++ b/libmpathpersist/mpathpr.h
+@@ -46,7 +46,8 @@ int send_prout_activepath(char * dev, int rq_servact, int rq_scope,
+ unsigned int rq_type, struct prout_param_descriptor * paramp, int noisy);
+
+ int update_prflag(char *mapname, int set);
+-int update_prkey(char *mapname, uint64_t prkey);
++int update_prkey_flags(char *mapname, uint64_t prkey, uint8_t sa_flags);
++#define update_prkey(mapname, prkey) update_prkey_flags(mapname, prkey, 0)
+ void * mpath_alloc_prin_response(int prin_sa);
+ int update_map_pr(struct multipath *mpp);
+
+diff --git a/libmultipath/Makefile b/libmultipath/Makefile
+index f51786d..33f5269 100644
+--- a/libmultipath/Makefile
++++ b/libmultipath/Makefile
+@@ -7,7 +7,7 @@ SONAME = 0
+ DEVLIB = libmultipath.so
+ LIBS = $(DEVLIB).$(SONAME)
+
+-CFLAGS += $(LIB_CFLAGS) -I$(mpathcmddir)
++CFLAGS += $(LIB_CFLAGS) -I$(mpathcmddir) -I$(mpathpersistdir)
+
+ LIBDEPS += -lpthread -ldl -ldevmapper -ludev -L$(mpathcmddir) -lmpathcmd -lurcu -laio
+
+diff --git a/libmultipath/config.h b/libmultipath/config.h
+index 1bf708a..fcbe3fc 100644
+--- a/libmultipath/config.h
++++ b/libmultipath/config.h
+@@ -98,6 +98,7 @@ struct mpentry {
+ char * prio_args;
+ int prkey_source;
+ struct be64 reservation_key;
++ uint8_t sa_flags;
+ int pgpolicy;
+ int pgfailback;
+ int rr_weight;
+@@ -197,6 +198,7 @@ struct config {
+ int prkey_source;
+ int all_tg_pt;
+ struct be64 reservation_key;
++ uint8_t sa_flags;
+
+ vector keywords;
+ vector mptable;
+diff --git a/libmultipath/dict.c b/libmultipath/dict.c
+index 2557b8a..7ad0f5a 100644
+--- a/libmultipath/dict.c
++++ b/libmultipath/dict.c
+@@ -22,6 +22,8 @@
+ #include "util.h"
+ #include <errno.h>
+ #include <inttypes.h>
++#include <libudev.h>
++#include <mpath_persist.h>
+ #include "mpath_cmd.h"
+ #include "dict.h"
+
+@@ -1012,10 +1014,12 @@ snprint_def_log_checker_err (struct config *conf, char * buff, int len,
+ }
+
+ static int
+-set_reservation_key(vector strvec, struct be64 *be64_ptr, int *source_ptr)
++set_reservation_key(vector strvec, struct be64 *be64_ptr, uint8_t *flags_ptr,
++ int *source_ptr)
+ {
+ char *buff;
+ uint64_t prkey;
++ uint8_t sa_flags;
+
+ buff = set_value(strvec);
+ if (!buff)
+@@ -1023,35 +1027,43 @@ set_reservation_key(vector strvec, struct be64 *be64_ptr, int *source_ptr)
+
+ if (strcmp(buff, "file") == 0) {
+ *source_ptr = PRKEY_SOURCE_FILE;
++ *flags_ptr = 0;
+ put_be64(*be64_ptr, 0);
+ FREE(buff);
+ return 0;
+ }
+
+- if (parse_prkey(buff, &prkey) != 0) {
++ if (parse_prkey_flags(buff, &prkey, &sa_flags) != 0) {
+ FREE(buff);
+ return 1;
+ }
+ *source_ptr = PRKEY_SOURCE_CONF;
++ *flags_ptr = sa_flags;
+ put_be64(*be64_ptr, prkey);
+ FREE(buff);
+ return 0;
+ }
+
+ int
+-print_reservation_key(char * buff, int len, struct be64 key, int source)
++print_reservation_key(char * buff, int len, struct be64 key, uint8_t flags,
++ int source)
+ {
++ char *flagstr = "";
+ if (source == PRKEY_SOURCE_NONE)
+ return 0;
+ if (source == PRKEY_SOURCE_FILE)
+ return snprintf(buff, len, "file");
+- return snprintf(buff, len, "0x%" PRIx64, get_be64(key));
++ if (flags & MPATH_F_APTPL_MASK)
++ flagstr = ":aptpl";
++ return snprintf(buff, len, "0x%" PRIx64 "%s", get_be64(key),
++ flagstr);
+ }
+
+ static int
+ def_reservation_key_handler(struct config *conf, vector strvec)
+ {
+ return set_reservation_key(strvec, &conf->reservation_key,
++ &conf->sa_flags,
+ &conf->prkey_source);
+ }
+
+@@ -1060,6 +1072,7 @@ snprint_def_reservation_key (struct config *conf, char * buff, int len,
+ const void * data)
+ {
+ return print_reservation_key(buff, len, conf->reservation_key,
++ conf->sa_flags,
+ conf->prkey_source);
+ }
+
+@@ -1070,6 +1083,7 @@ mp_reservation_key_handler(struct config *conf, vector strvec)
+ if (!mpe)
+ return 1;
+ return set_reservation_key(strvec, &mpe->reservation_key,
++ &mpe->sa_flags,
+ &mpe->prkey_source);
+ }
+
+@@ -1079,6 +1093,7 @@ snprint_mp_reservation_key (struct config *conf, char * buff, int len,
+ {
+ const struct mpentry * mpe = (const struct mpentry *)data;
+ return print_reservation_key(buff, len, mpe->reservation_key,
++ mpe->sa_flags,
+ mpe->prkey_source);
+ }
+
+diff --git a/libmultipath/dict.h b/libmultipath/dict.h
+index 7564892..a40ac66 100644
+--- a/libmultipath/dict.h
++++ b/libmultipath/dict.h
+@@ -15,6 +15,7 @@ int print_pgpolicy(char *buff, int len, long v);
+ int print_no_path_retry(char *buff, int len, long v);
+ int print_fast_io_fail(char *buff, int len, long v);
+ int print_dev_loss(char *buff, int len, unsigned long v);
+-int print_reservation_key(char * buff, int len, struct be64 key, int source);
++int print_reservation_key(char * buff, int len, struct be64 key, uint8_t
++ flags, int source);
+ int print_off_int_undef(char *buff, int len, long v);
+ #endif /* _DICT_H */
+diff --git a/libmultipath/prkey.c b/libmultipath/prkey.c
+index 89b90ed..d645f81 100644
+--- a/libmultipath/prkey.c
++++ b/libmultipath/prkey.c
+@@ -11,6 +11,8 @@
+ #include <string.h>
+ #include <inttypes.h>
+ #include <errno.h>
++#include <libudev.h>
++#include <mpath_persist.h>
+
+ #define PRKEY_READ 0
+ #define PRKEY_WRITE 1
+@@ -108,7 +110,8 @@ static int do_prkey(int fd, char *wwid, char *keystr, int cmd)
+ return 0;
+ }
+
+-int get_prkey(struct config *conf, struct multipath *mpp, uint64_t *prkey)
++int get_prkey(struct config *conf, struct multipath *mpp, uint64_t *prkey,
++ uint8_t *sa_flags)
+ {
+ int fd;
+ int unused;
+@@ -124,6 +127,9 @@ int get_prkey(struct config *conf, struct multipath *mpp, uint64_t *prkey)
+ ret = do_prkey(fd, mpp->wwid, keystr, PRKEY_READ);
+ if (ret)
+ goto out_file;
++ *sa_flags = 0;
++ if (strchr(keystr, 'X'))
++ *sa_flags = MPATH_F_APTPL_MASK;
+ ret = !!parse_prkey(keystr, prkey);
+ out_file:
+ close(fd);
+@@ -131,7 +137,8 @@ out:
+ return ret;
+ }
+
+-int set_prkey(struct config *conf, struct multipath *mpp, uint64_t prkey)
++int set_prkey(struct config *conf, struct multipath *mpp, uint64_t prkey,
++ uint8_t sa_flags)
+ {
+ int fd;
+ int can_write = 1;
+@@ -141,6 +148,12 @@ int set_prkey(struct config *conf, struct multipath *mpp, uint64_t prkey)
+ if (!strlen(mpp->wwid))
+ goto out;
+
++ if (sa_flags & ~MPATH_F_APTPL_MASK) {
++ condlog(0, "unsupported pr flags, 0x%x",
++ sa_flags & ~MPATH_F_APTPL_MASK);
++ sa_flags &= MPATH_F_APTPL_MASK;
++ }
++
+ fd = open_file(conf->prkeys_file, &can_write, PRKEYS_FILE_HEADER);
+ if (fd < 0)
+ goto out;
+@@ -149,7 +162,15 @@ int set_prkey(struct config *conf, struct multipath *mpp, uint64_t prkey)
+ goto out_file;
+ }
+ if (prkey) {
+- snprintf(keystr, PRKEY_SIZE, "0x%016" PRIx64, prkey);
++ /* using the capitalization of the 'x' is a hack, but
++ * it's unlikely that mpath_persist will support more options
++ * since sg_persist doesn't, and this lets us keep the
++ * same file format as before instead of needing to change
++ * the format of the prkeys file */
++ if (sa_flags)
++ snprintf(keystr, PRKEY_SIZE, "0X%016" PRIx64, prkey);
++ else
++ snprintf(keystr, PRKEY_SIZE, "0x%016" PRIx64, prkey);
+ keystr[PRKEY_SIZE - 1] = '\0';
+ ret = do_prkey(fd, mpp->wwid, keystr, PRKEY_WRITE);
+ }
+diff --git a/libmultipath/prkey.h b/libmultipath/prkey.h
+index 4028e70..6739191 100644
+--- a/libmultipath/prkey.h
++++ b/libmultipath/prkey.h
+@@ -13,7 +13,9 @@
+ "# prkey wwid\n" \
+ "#\n"
+
+-int set_prkey(struct config *conf, struct multipath *mpp, uint64_t prkey);
+-int get_prkey(struct config *conf, struct multipath *mpp, uint64_t *prkey);
++int set_prkey(struct config *conf, struct multipath *mpp, uint64_t prkey,
++ uint8_t sa_flags);
++int get_prkey(struct config *conf, struct multipath *mpp, uint64_t *prkey,
++ uint8_t *sa_flags);
+
+ #endif /* _PRKEY_H */
+diff --git a/libmultipath/propsel.c b/libmultipath/propsel.c
+index 9ca1355..62a6893 100644
+--- a/libmultipath/propsel.c
++++ b/libmultipath/propsel.c
+@@ -106,6 +106,7 @@ do { \
+ if (src && src->prkey_source != PRKEY_SOURCE_NONE) { \
+ mp->prkey_source = src->prkey_source; \
+ mp->reservation_key = src->reservation_key; \
++ mp->sa_flags = src->sa_flags; \
+ origin = msg; \
+ goto out; \
+ } \
+@@ -703,18 +704,19 @@ int select_reservation_key(struct config *conf, struct multipath *mp)
+ do_prkey_set(mp->mpe, multipaths_origin);
+ do_prkey_set(conf, conf_origin);
+ put_be64(mp->reservation_key, 0);
++ mp->sa_flags = 0;
+ mp->prkey_source = PRKEY_SOURCE_NONE;
+ return 0;
+ out:
+ if (mp->prkey_source == PRKEY_SOURCE_FILE) {
+ from_file = " (from prkeys file)";
+- if (get_prkey(conf, mp, &prkey) != 0)
++ if (get_prkey(conf, mp, &prkey, &mp->sa_flags) != 0)
+ put_be64(mp->reservation_key, 0);
+ else
+ put_be64(mp->reservation_key, prkey);
+ }
+ print_reservation_key(buff, PRKEY_SIZE, mp->reservation_key,
+- mp->prkey_source);
++ mp->sa_flags, mp->prkey_source);
+ condlog(3, "%s: reservation_key = %s %s%s", mp->alias, buff, origin,
+ from_file);
+ return 0;
+diff --git a/libmultipath/structs.h b/libmultipath/structs.h
+index 0194b1e..987479f 100644
+--- a/libmultipath/structs.h
++++ b/libmultipath/structs.h
+@@ -367,6 +367,7 @@ struct multipath {
+ /* persistent management data*/
+ int prkey_source;
+ struct be64 reservation_key;
++ uint8_t sa_flags;
+ unsigned char prflag;
+ int all_tg_pt;
+ struct gen_multipath generic_mp;
+diff --git a/libmultipath/util.c b/libmultipath/util.c
+index 7251ad0..8d8fcc8 100644
+--- a/libmultipath/util.c
++++ b/libmultipath/util.c
+@@ -10,6 +10,8 @@
+ #include <dirent.h>
+ #include <unistd.h>
+ #include <errno.h>
++#include <libudev.h>
++#include <mpath_persist.h>
+
+ #include "util.h"
+ #include "debug.h"
+@@ -435,6 +437,20 @@ int parse_prkey(char *ptr, uint64_t *prkey)
+ return 0;
+ }
+
++int parse_prkey_flags(char *ptr, uint64_t *prkey, uint8_t *flags)
++{
++ char *flagstr;
++
++ flagstr = strchr(ptr, ':');
++ *flags = 0;
++ if (flagstr) {
++ *flagstr++ = '\0';
++ if (strlen(flagstr) == 5 && strcmp(flagstr, "aptpl") == 0)
++ *flags = MPATH_F_APTPL_MASK;
++ }
++ return parse_prkey(ptr, prkey);
++}
++
+ int safe_write(int fd, const void *buf, size_t count)
+ {
+ while (count > 0) {
+diff --git a/libmultipath/util.h b/libmultipath/util.h
+index a3ab894..56cec76 100644
+--- a/libmultipath/util.h
++++ b/libmultipath/util.h
+@@ -19,6 +19,7 @@ void setup_thread_attr(pthread_attr_t *attr, size_t stacksize, int detached);
+ int systemd_service_enabled(const char *dev);
+ int get_linux_version_code(void);
+ int parse_prkey(char *ptr, uint64_t *prkey);
++int parse_prkey_flags(char *ptr, uint64_t *prkey, uint8_t *flags);
+ int safe_write(int fd, const void *buf, size_t count);
+
+ #define KERNEL_VERSION(maj, min, ptc) ((((maj) * 256) + (min)) * 256 + (ptc))
+diff --git a/multipath/multipath.conf.5 b/multipath/multipath.conf.5
+index 31f4585..30d8598 100644
+--- a/multipath/multipath.conf.5
++++ b/multipath/multipath.conf.5
+@@ -726,14 +726,17 @@ This is the service action reservation key used by mpathpersist. It must be
+ set for all multipath devices using persistent reservations, and it must be
+ the same as the RESERVATION KEY field of the PERSISTENT RESERVE OUT parameter
+ list which contains an 8-byte value provided by the application client to the
+-device server to identify the I_T nexus.
++device server to identify the I_T nexus. If the \fI--param-aptpl\fR option is
++used when registering the key with mpathpersist, \fB:aptpl\fR must be appended
++to the end of the reservation key.
+ .RS
+ .PP
+ Alternatively, this can be set to \fBfile\fR, which will store the RESERVATION
+ KEY registered by mpathpersist in the \fIprkeys_file\fR. multipathd will then
+ use this key to register additional paths as they appear. When the
+ registration is removed, the RESERVATION KEY is removed from the
+-\fIprkeys_file\fR.
++\fIprkeys_file\fR. The prkeys file will automatically keep track of whether
++the key was registered with \fI--param-aptpl\fR.
+ .TP
+ The default is: \fB<unset>\fR
+ .RE
+diff --git a/multipathd/cli_handlers.c b/multipathd/cli_handlers.c
+index ba50fb8..6452796 100644
+--- a/multipathd/cli_handlers.c
++++ b/multipathd/cli_handlers.c
+@@ -21,6 +21,7 @@
+ #include "sysfs.h"
+ #include <errno.h>
+ #include <libudev.h>
++#include <mpath_persist.h>
+ #include "util.h"
+ #include "prkey.h"
+ #include "propsel.h"
+@@ -1463,6 +1464,7 @@ cli_getprkey(void * v, char ** reply, int * len, void * data)
+ struct multipath * mpp;
+ struct vectors * vecs = (struct vectors *)data;
+ char *mapname = get_keyparam(v, MAP);
++ char *flagstr = "";
+
+ mapname = convert_dev(mapname, 0);
+ condlog(3, "%s: get persistent reservation key (operator)", mapname);
+@@ -1478,8 +1480,10 @@ cli_getprkey(void * v, char ** reply, int * len, void * data)
+ *len = strlen(*reply) + 1;
+ return 0;
+ }
+- snprintf(*reply, 20, "0x%" PRIx64 "\n",
+- get_be64(mpp->reservation_key));
++ if (mpp->sa_flags & MPATH_F_APTPL_MASK)
++ flagstr = ":aptpl";
++ snprintf(*reply, 20, "0x%" PRIx64 "%s\n",
++ get_be64(mpp->reservation_key), flagstr);
+ (*reply)[19] = '\0';
+ *len = strlen(*reply) + 1;
+ return 0;
+@@ -1503,7 +1507,7 @@ cli_unsetprkey(void * v, char ** reply, int * len, void * data)
+
+ conf = get_multipath_config();
+ pthread_cleanup_push(put_multipath_config, conf);
+- ret = set_prkey(conf, mpp, 0);
++ ret = set_prkey(conf, mpp, 0, 0);
+ pthread_cleanup_pop(1);
+
+ return ret;
+@@ -1517,6 +1521,7 @@ cli_setprkey(void * v, char ** reply, int * len, void * data)
+ char *mapname = get_keyparam(v, MAP);
+ char *keyparam = get_keyparam(v, KEY);
+ uint64_t prkey;
++ uint8_t flags;
+ int ret;
+ struct config *conf;
+
+@@ -1527,14 +1532,14 @@ cli_setprkey(void * v, char ** reply, int * len, void * data)
+ if (!mpp)
+ return 1;
+
+- if (parse_prkey(keyparam, &prkey) != 0) {
++ if (parse_prkey_flags(keyparam, &prkey, &flags) != 0) {
+ condlog(0, "%s: invalid prkey : '%s'", mapname, keyparam);
+ return 1;
+ }
+
+ conf = get_multipath_config();
+ pthread_cleanup_push(put_multipath_config, conf);
+- ret = set_prkey(conf, mpp, prkey);
++ ret = set_prkey(conf, mpp, prkey, flags);
+ pthread_cleanup_pop(1);
+
+ return ret;
+diff --git a/multipathd/main.c b/multipathd/main.c
+index d40c416..6b1e782 100644
+--- a/multipathd/main.c
++++ b/multipathd/main.c
+@@ -3089,6 +3089,7 @@ void * mpath_pr_event_handler_fn (void * pathp )
+
+ param= malloc(sizeof(struct prout_param_descriptor));
+ memset(param, 0 , sizeof(struct prout_param_descriptor));
++ param->sa_flags = mpp->sa_flags;
+ memcpy(param->sa_key, &mpp->reservation_key, 8);
+ param->num_transportid = 0;
+
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0018-multipath-don-t-check-timestamps-without-a-path.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0018-multipath-don-t-check-timestamps-without-a-path.patch
new file mode 100644
index 000000000..5a3fd8374
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0018-multipath-don-t-check-timestamps-without-a-path.patch
@@ -0,0 +1,34 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Tue, 5 Jun 2018 15:31:55 -0500
+Subject: [PATCH] multipath: don't check timestamps without a path
+
+If a path was blacklisted, pathvec could exist but have no path in it.
+print_cmd_valid wasn't checking this before calling
+find_multipaths_check_timeout(). This was causing it to dereference a
+NULL pointer in these cases.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ multipath/main.c | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/multipath/main.c b/multipath/main.c
+index c69e996..3f0a6aa 100644
+--- a/multipath/main.c
++++ b/multipath/main.c
+@@ -482,10 +482,8 @@ static int print_cmd_valid(int k, const vector pathvec,
+ pp, pp->find_multipaths_timeout, &until);
+ if (wait != FIND_MULTIPATHS_WAITING)
+ k = 1;
+- } else if (pathvec != NULL) {
+- pp = VECTOR_SLOT(pathvec, 0);
++ } else if (pathvec != NULL && (pp = VECTOR_SLOT(pathvec, 0)))
+ wait = find_multipaths_check_timeout(pp, 0, &until);
+- }
+ if (wait == FIND_MULTIPATHS_WAITING)
+ printf("FIND_MULTIPATHS_WAIT_UNTIL=\"%ld.%06ld\"\n",
+ until.tv_sec, until.tv_nsec/1000);
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0019-libmultipath-fix-detect-alua-corner-case.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0019-libmultipath-fix-detect-alua-corner-case.patch
new file mode 100644
index 000000000..23908fa58
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0019-libmultipath-fix-detect-alua-corner-case.patch
@@ -0,0 +1,35 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Fri, 8 Jun 2018 17:12:37 -0500
+Subject: [PATCH] libmultipath: fix detect alua corner case
+
+If retain_attach_hw_handler = no, then the paths tpgs state will never
+be checked, and the multipath device will always select the alua
+handler, if no other handler is selected. the paths tpgs state
+should be checked, regardless of the retain_hwhandler value.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/propsel.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/libmultipath/propsel.c b/libmultipath/propsel.c
+index 62a6893..f626c74 100644
+--- a/libmultipath/propsel.c
++++ b/libmultipath/propsel.c
+@@ -403,9 +403,11 @@ int select_hwhandler(struct config *conf, struct multipath *mp)
+ bool all_tpgs = true;
+
+ dh_state = &handler[2];
++
++ vector_foreach_slot(mp->paths, pp, i)
++ all_tpgs = all_tpgs && (pp->tpgs > 0);
+ if (mp->retain_hwhandler != RETAIN_HWHANDLER_OFF) {
+ vector_foreach_slot(mp->paths, pp, i) {
+- all_tpgs = all_tpgs && (pp->tpgs > 0);
+ if (get_dh_state(pp, dh_state, sizeof(handler) - 2) > 0
+ && strcmp(dh_state, "detached")) {
+ memcpy(handler, "1 ", 2);
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0020-multipath-fix-setting-conf-version.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0020-multipath-fix-setting-conf-version.patch
new file mode 100644
index 000000000..624f45efd
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0020-multipath-fix-setting-conf-version.patch
@@ -0,0 +1,39 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Fri, 8 Jun 2018 17:23:07 -0500
+Subject: [PATCH] multipath: fix setting conf->version
+
+Commit d3b71498 stopped multipath from setting conf->version. Instead,
+it was always being set to 0.0.0. Multipathd was still setting this
+correctly.
+
+Fixes: d3b71498 "multipath: fix rcu thread cancellation hang"
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/devmapper.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/libmultipath/devmapper.c b/libmultipath/devmapper.c
+index f2befad..8136d15 100644
+--- a/libmultipath/devmapper.c
++++ b/libmultipath/devmapper.c
+@@ -245,13 +245,13 @@ void libmp_dm_init(void)
+ int verbosity;
+ unsigned int version[3];
+
++ if (dm_prereq(version))
++ exit(1);
+ conf = get_multipath_config();
+ verbosity = conf->verbosity;
+- memcpy(version, conf->version, sizeof(version));
++ memcpy(conf->version, version, sizeof(version));
+ put_multipath_config(conf);
+ dm_init(verbosity);
+- if (dm_prereq(version))
+- exit(1);
+ dm_udev_set_sync_support(libmp_dm_udev_sync);
+ }
+
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0021-RH-fixup-udev-rules-for-redhat.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0021-RH-fixup-udev-rules-for-redhat.patch
new file mode 100644
index 000000000..4ef3e708d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0021-RH-fixup-udev-rules-for-redhat.patch
@@ -0,0 +1,82 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Thu, 13 Apr 2017 07:22:23 -0500
+Subject: [PATCH] RH: fixup udev rules for redhat
+
+The multipath rules need to run after scsi_id is run. This means moving
+them after 60-persistent-storage.rules for redhat. Redhat also uses a
+different naming scheme for partitions than SuSE. Also, there are some
+false warnings that gcc throws because of the changed options. Fix these
+too.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ Makefile.inc | 2 +-
+ kpartx/kpartx.rules | 2 +-
+ multipath/Makefile | 4 ++--
+ multipath/main.c | 2 +-
+ 4 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/Makefile.inc b/Makefile.inc
+index af2f5ba..0b271ea 100644
+--- a/Makefile.inc
++++ b/Makefile.inc
+@@ -51,7 +51,7 @@ endif
+ prefix =
+ exec_prefix = $(prefix)
+ usr_prefix = $(prefix)
+-bindir = $(exec_prefix)/sbin
++bindir = $(exec_prefix)/usr/sbin
+ libudevdir = $(prefix)/$(SYSTEMDPATH)/udev
+ udevrulesdir = $(libudevdir)/rules.d
+ multipathdir = $(TOPDIR)/libmultipath
+diff --git a/kpartx/kpartx.rules b/kpartx/kpartx.rules
+index 8f99049..8a3a171 100644
+--- a/kpartx/kpartx.rules
++++ b/kpartx/kpartx.rules
+@@ -32,6 +32,6 @@ LABEL="mpath_kpartx_end"
+ GOTO="kpartx_end"
+
+ LABEL="run_kpartx"
+-RUN+="/sbin/kpartx -un -p -part /dev/$name"
++RUN+="/sbin/kpartx -un /dev/$name"
+
+ LABEL="kpartx_end"
+diff --git a/multipath/Makefile b/multipath/Makefile
+index 0828a8f..b9bbb3c 100644
+--- a/multipath/Makefile
++++ b/multipath/Makefile
+@@ -24,7 +24,7 @@ install:
+ $(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)/
+ $(INSTALL_PROGRAM) -d $(DESTDIR)$(udevrulesdir)
+ $(INSTALL_PROGRAM) -m 644 11-dm-mpath.rules $(DESTDIR)$(udevrulesdir)
+- $(INSTALL_PROGRAM) -m 644 $(EXEC).rules $(DESTDIR)$(libudevdir)/rules.d/56-multipath.rules
++ $(INSTALL_PROGRAM) -m 644 $(EXEC).rules $(DESTDIR)$(libudevdir)/rules.d/62-multipath.rules
+ $(INSTALL_PROGRAM) -d $(DESTDIR)$(man8dir)
+ $(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(man8dir)
+ $(INSTALL_PROGRAM) -d $(DESTDIR)$(man5dir)
+@@ -33,7 +33,7 @@ install:
+ uninstall:
+ $(RM) $(DESTDIR)$(bindir)/$(EXEC)
+ $(RM) $(DESTDIR)$(udevrulesdir)/11-dm-mpath.rules
+- $(RM) $(DESTDIR)$(libudevdir)/rules.d/56-multipath.rules
++ $(RM) $(DESTDIR)$(libudevdir)/rules.d/62-multipath.rules
+ $(RM) $(DESTDIR)$(man8dir)/$(EXEC).8.gz
+ $(RM) $(DESTDIR)$(man5dir)/$(EXEC).conf.5.gz
+
+diff --git a/multipath/main.c b/multipath/main.c
+index 3f0a6aa..6fdde03 100644
+--- a/multipath/main.c
++++ b/multipath/main.c
+@@ -389,7 +389,7 @@ static int find_multipaths_check_timeout(const struct path *pp, long tmo,
+ struct timespec now, ftimes[2], tdiff;
+ struct stat st;
+ long fd;
+- int r, err, retries = 0;
++ int r, err = 0, retries = 0;
+
+ clock_gettime(CLOCK_REALTIME, &now);
+
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0003-RH-Remove-the-property-blacklist-exception-builtin.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0022-RH-Remove-the-property-blacklist-exception-builtin.patch
index 684e959d6..451c524c9 100644
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0003-RH-Remove-the-property-blacklist-exception-builtin.patch
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0022-RH-Remove-the-property-blacklist-exception-builtin.patch
@@ -1,7 +1,7 @@
-From 69a67c2ed09ae51b53de402966a9f7a4cc737715 Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Benjamin Marzinski <bmarzins@redhat.com>
Date: Wed, 2 Jul 2014 12:49:53 -0500
-Subject: [PATCH 03/14] RH: Remove the property blacklist exception builtin
+Subject: [PATCH] RH: Remove the property blacklist exception builtin
Multipath set the default property blacklist exceptions to
(ID_SCSI_VPD|ID_WWN). This has the effect of blacklisting some internal
@@ -14,8 +14,8 @@ it.
Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
---
libmultipath/blacklist.c | 15 ++++++---------
- multipath/multipath.conf.5 | 4 ----
- 2 files changed, 6 insertions(+), 13 deletions(-)
+ multipath/multipath.conf.5 | 14 ++++++++------
+ 2 files changed, 14 insertions(+), 15 deletions(-)
diff --git a/libmultipath/blacklist.c b/libmultipath/blacklist.c
index ee396e2..19d4697 100644
@@ -51,10 +51,10 @@ index ee396e2..19d4697 100644
void
diff --git a/multipath/multipath.conf.5 b/multipath/multipath.conf.5
-index f04ff19..fbbbb27 100644
+index 30d8598..c45da9f 100644
--- a/multipath/multipath.conf.5
+++ b/multipath/multipath.conf.5
-@@ -1014,10 +1014,6 @@ The \fIWorld Wide Identification\fR of a device.
+@@ -1179,10 +1179,6 @@ The \fIWorld Wide Identification\fR of a device.
.TP
.B property
Regular expression of the udev property to be whitelisted.
@@ -65,6 +65,23 @@ index f04ff19..fbbbb27 100644
.TP
.B device
Subsection for the device description. This subsection recognizes the
+@@ -1193,8 +1189,14 @@ keywords. For a full description of these keywords please see the \fIdevices\fR
+ section description.
+ .LP
+ The \fIproperty\fR whitelist handling is different from the usual
+-handling in the sense that the device \fIhas\fR to have a udev property that
+-matches the whitelist, otherwise the device will be blacklisted. In these cases the message \fIblacklisted, udev property missing\fR will be displayed.
++handling in the sense that if the propery whitelist is set, the device
++\fIhas\fR to have a udev property that matches the whitelist, otherwise the
++device will be blacklisted. In these cases the message \fIblacklisted, udev
++property missing\fR will be displayed. For example settting the
++property blacklist_exception to \fB(SCSI_IDENT_|ID_WWN)\fR will blacklist
++all devices that have no udev property whose name regex matches either
++\fBSCSI_IDENT_\fR or \fBID_WWN\fR. This works to exclude most
++non-multipathable devices.
+ .
+ .
+ .\" ----------------------------------------------------------------------------
--
-2.8.1
+2.7.4
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0004-RH-don-t-start-without-a-config-file.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0023-RH-don-t-start-without-a-config-file.patch
index 87a6d3fb6..886f1c86f 100644
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0004-RH-don-t-start-without-a-config-file.patch
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0023-RH-don-t-start-without-a-config-file.patch
@@ -1,7 +1,7 @@
-From b2b504fc1959c7a3f0a843c3c204e8e193b675b7 Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Benjamin Marzinski <bmarzins@redhat.com>
Date: Wed, 15 Oct 2014 10:39:30 -0500
-Subject: [PATCH 04/14] RH: don't start without a config file
+Subject: [PATCH] RH: don't start without a config file
If /etc/multipath.conf doesn't exist, don't start multipathd and blacklist
all devices when running multipath. A completely blank configuration file
@@ -12,33 +12,31 @@ simple way to disable multipath. Simply removing or renaming
Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
---
- libmultipath/config.c | 17 +++++++++++++++++
+ libmultipath/config.c | 15 +++++++++++++++
libmultipath/config.h | 1 +
multipath/multipath.rules | 1 +
multipathd/multipathd.8 | 2 ++
multipathd/multipathd.service | 1 +
- 5 files changed, 22 insertions(+)
+ 5 files changed, 20 insertions(+)
diff --git a/libmultipath/config.c b/libmultipath/config.c
-index bb6619b..aae69b8 100644
+index 5872927..0607403 100644
--- a/libmultipath/config.c
+++ b/libmultipath/config.c
-@@ -25,6 +25,7 @@
- #include "prio.h"
+@@ -26,6 +26,7 @@
#include "devmapper.h"
#include "mpath_cmd.h"
+ #include "propsel.h"
+#include "version.h"
static int
hwe_strmatch (struct hwentry *hwe1, struct hwentry *hwe2)
-@@ -667,6 +668,22 @@ load_config (char * file)
+@@ -658,6 +659,20 @@ load_config (char * file)
factorize_hwtable(conf->hwtable, builtin_hwtable_size);
}
+ } else {
+ condlog(0, "/etc/multipath.conf does not exist, blacklisting all devices.");
-+ condlog(0, "A default multipath.conf file is located at");
-+ condlog(0, "/usr/share/doc/device-mapper-multipath-%d.%d.%d/multipath.conf", MULTIPATH_VERSION(VERSION_CODE));
+ if (conf->blist_devnode == NULL) {
+ conf->blist_devnode = vector_alloc();
+ if (!conf->blist_devnode) {
@@ -55,10 +53,10 @@ index bb6619b..aae69b8 100644
conf->processed_main_config = 1;
diff --git a/libmultipath/config.h b/libmultipath/config.h
-index ffc69b5..614331c 100644
+index fcbe3fc..3a42435 100644
--- a/libmultipath/config.h
+++ b/libmultipath/config.h
-@@ -7,6 +7,7 @@
+@@ -9,6 +9,7 @@
#define ORIGIN_DEFAULT 0
#define ORIGIN_CONFIG 1
@@ -67,36 +65,36 @@ index ffc69b5..614331c 100644
/*
* In kernel, fast_io_fail == 0 means immediate failure on rport delete.
diff --git a/multipath/multipath.rules b/multipath/multipath.rules
-index 4d78b98..5753766 100644
+index d658073..b3f54d7 100644
--- a/multipath/multipath.rules
+++ b/multipath/multipath.rules
-@@ -6,6 +6,7 @@ IMPORT{cmdline}="nompath"
+@@ -9,6 +9,7 @@ IMPORT{cmdline}="nompath"
ENV{nompath}=="?*", GOTO="end_mpath"
IMPORT{cmdline}="multipath"
ENV{multipath}=="off", GOTO="end_mpath"
+TEST!="/etc/multipath.conf", GOTO="end_mpath"
- KERNEL=="dm-*", GOTO="check_kpartx"
ENV{DEVTYPE}!="partition", GOTO="test_dev"
+ IMPORT{parent}="DM_MULTIPATH_DEVICE_PATH"
diff --git a/multipathd/multipathd.8 b/multipathd/multipathd.8
-index 4c765af..c1499a5 100644
+index e78ac9e..09cdead 100644
--- a/multipathd/multipathd.8
+++ b/multipathd/multipathd.8
-@@ -39,6 +39,8 @@ map regains its maximum performance and redundancy.
+@@ -38,6 +38,8 @@ map regains its maximum performance and redundancy.
This daemon executes the external \fBmultipath\fR tool when events occur.
In turn, the multipath tool signals the multipathd daemon when it is done with
devmap reconfiguration, so that it can refresh its failed path list.
+
-+In this Linux distribution, multipathd does not run unless a /etc/multipath.conffile exists
++In this Linux distribution, multipathd does not run unless a /etc/multipath.conf file exists.
.
.
.\" ----------------------------------------------------------------------------
diff --git a/multipathd/multipathd.service b/multipathd/multipathd.service
-index fd66cf6..fafd088 100644
+index ba24983..17434ce 100644
--- a/multipathd/multipathd.service
+++ b/multipathd/multipathd.service
@@ -4,6 +4,7 @@ Wants=systemd-udev-trigger.service systemd-udev-settle.service
- Before=iscsi.service iscsid.service lvm2-lvmetad.service lvm2-activation-early.service
+ Before=iscsi.service iscsid.service lvm2-activation-early.service
Before=local-fs-pre.target blk-availability.service
After=multipathd.socket systemd-udev-trigger.service systemd-udev-settle.service
+ConditionPathExists=/etc/multipath.conf
@@ -104,5 +102,5 @@ index fd66cf6..fafd088 100644
Conflicts=shutdown.target
ConditionKernelCommandLine=!nompath
--
-2.8.1
+2.7.4
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0024-RH-use-rpm-optflags-if-present.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0024-RH-use-rpm-optflags-if-present.patch
new file mode 100644
index 000000000..9330bf070
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0024-RH-use-rpm-optflags-if-present.patch
@@ -0,0 +1,52 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Wed, 19 Apr 2017 06:10:01 -0500
+Subject: [PATCH] RH: use rpm optflags if present
+
+Use the passed in optflags when compiling as an RPM, and keep the
+default flags as close as possible to the current fedora flags, while
+still being generic.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ Makefile.inc | 24 ++++++++++++++++--------
+ 1 file changed, 16 insertions(+), 8 deletions(-)
+
+diff --git a/Makefile.inc b/Makefile.inc
+index 0b271ea..5ff69a3 100644
+--- a/Makefile.inc
++++ b/Makefile.inc
+@@ -85,14 +85,22 @@ TEST_CC_OPTION = $(shell \
+ echo "$(2)"; \
+ fi)
+
+-STACKPROT := $(call TEST_CC_OPTION,-fstack-protector-strong,-fstack-protector)
+-
+-OPTFLAGS = -O2 -g -pipe -Wall -Wextra -Wformat=2 -Werror=implicit-int \
+- -Werror=implicit-function-declaration -Werror=format-security \
+- -Wno-sign-compare -Wno-unused-parameter -Wno-clobbered \
+- -Werror=cast-qual -Werror=discarded-qualifiers \
+- -Wp,-D_FORTIFY_SOURCE=2 $(STACKPROT) \
+- --param=ssp-buffer-size=4
++ifndef RPM_OPT_FLAGS
++ STACKPROT := $(call TEST_CC_OPTION,-fstack-protector-strong,-fstack-protector)
++ OPTFLAGS = -O2 -g -pipe -Wall -Werror=format-security \
++ -Wp,-D_FORTIFY_SOURCE=2 -fexceptions \
++ $(STACKPROT) --param=ssp-buffer-size=4 \
++ -grecord-gcc-switches
++ ifeq ($(shell test -f /usr/lib/rpm/redhat/redhat-hardened-cc1 && echo 1),1)
++ OPTFLAGS += -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1
++ endif
++else
++ OPTFLAGS = $(RPM_OPT_FLAGS)
++endif
++OPTFLAGS += -Wextra -Wstrict-prototypes -Wformat=2 -Werror=implicit-int \
++ -Werror=implicit-function-declaration -Wno-sign-compare \
++ -Wno-unused-parameter -Werror=cast-qual \
++ -Werror=discarded-qualifiers
+
+ CFLAGS := $(OPTFLAGS) -DBIN_DIR=\"$(bindir)\" -DLIB_STRING=\"${LIB}\" -DRUN_DIR=\"${RUN}\" \
+ -MMD -MP $(CFLAGS)
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0005-RH-add-mpathconf.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0025-RH-add-mpathconf.patch
index acef41023..5cad22b2b 100644
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0005-RH-add-mpathconf.patch
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0025-RH-add-mpathconf.patch
@@ -1,7 +1,7 @@
-From de44504fe7f7802cd474efd92ac15b5a8857db1f Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Benjamin Marzinski <bmarzins@redhat.com>
Date: Thu, 16 Oct 2014 15:49:01 -0500
-Subject: [PATCH 05/14] RH: add mpathconf
+Subject: [PATCH] RH: add mpathconf
mpathconf is a program (largely based on lvmcomf) to help users
configure /etc/multipath.conf and enable or disable multipathing. It
@@ -21,22 +21,22 @@ Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
create mode 100644 multipath/mpathconf.8
diff --git a/libmultipath/config.c b/libmultipath/config.c
-index aae69b8..c485748 100644
+index 0607403..5c98e48 100644
--- a/libmultipath/config.c
+++ b/libmultipath/config.c
-@@ -672,6 +672,7 @@ load_config (char * file)
+@@ -661,6 +661,7 @@ load_config (char * file)
+
+ } else {
condlog(0, "/etc/multipath.conf does not exist, blacklisting all devices.");
- condlog(0, "A default multipath.conf file is located at");
- condlog(0, "/usr/share/doc/device-mapper-multipath-%d.%d.%d/multipath.conf", MULTIPATH_VERSION(VERSION_CODE));
+ condlog(0, "You can run /sbin/mpathconf to create or modify /etc/multipath.conf");
if (conf->blist_devnode == NULL) {
conf->blist_devnode = vector_alloc();
if (!conf->blist_devnode) {
diff --git a/multipath/Makefile b/multipath/Makefile
-index 1e9ee4b..3d4d459 100644
+index b9bbb3c..e720c7f 100644
--- a/multipath/Makefile
+++ b/multipath/Makefile
-@@ -18,10 +18,12 @@ $(EXEC): $(OBJS)
+@@ -18,10 +18,12 @@ $(EXEC): $(OBJS) $(multipathdir)/libmultipath.so $(mpathcmddir)/libmpathcmd.so
$(CC) $(CFLAGS) $(OBJS) -o $(EXEC) $(LDFLAGS) $(LIBDEPS)
$(GZIP) $(EXEC).8 > $(EXEC).8.gz
$(GZIP) $(EXEC).conf.5 > $(EXEC).conf.5.gz
@@ -64,7 +64,7 @@ index 1e9ee4b..3d4d459 100644
$(RM) $(DESTDIR)$(man5dir)/$(EXEC).conf.5.gz
+ $(RM) $(DESTDIR)$(man8dir)/mpathconf.8.gz
- clean:
+ clean: dep_clean
$(RM) core *.o $(EXEC) *.gz
diff --git a/multipath/mpathconf b/multipath/mpathconf
new file mode 100644
@@ -644,5 +644,5 @@ index 0000000..4cd3267
+.SH AUTHOR
+Benjamin Marzinski <bmarzins@redhat.com>
--
-2.8.1
+2.7.4
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0006-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0026-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch
index dc291b812..ddf022f76 100644
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0006-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0026-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch
@@ -1,7 +1,7 @@
-From 15179c830521d8f37f9254ebc6bbf150a409f956 Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Benjamin Marzinski <bmarzins@redhat.com>
Date: Fri, 17 Oct 2014 11:20:34 -0500
-Subject: [PATCH 06/14] RH: add wwids from kernel cmdline mpath.wwids with -A
+Subject: [PATCH] RH: add wwids from kernel cmdline mpath.wwids with -A
This patch adds another option to multipath, "-A", which reads
/proc/cmdline for mpath.wwid=<WWID> options, and adds any wwids it finds
@@ -22,13 +22,13 @@ Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
5 files changed, 58 insertions(+), 3 deletions(-)
diff --git a/libmultipath/wwids.c b/libmultipath/wwids.c
-index bc70a27..88bb72b 100644
+index 53e7951..39e08cd 100644
--- a/libmultipath/wwids.c
+++ b/libmultipath/wwids.c
-@@ -321,3 +321,47 @@ remember_wwid(char *wwid)
- condlog(4, "wwid %s already in wwids file", wwid);
- return 0;
- }
+@@ -443,3 +443,47 @@ int op ## _wwid(const char *wwid) \
+ declare_failed_wwid_op(is_failed, false)
+ declare_failed_wwid_op(mark_failed, true)
+ declare_failed_wwid_op(unmark_failed, true)
+
+int remember_cmdline_wwid(void)
+{
@@ -74,21 +74,22 @@ index bc70a27..88bb72b 100644
+ return ret;
+}
diff --git a/libmultipath/wwids.h b/libmultipath/wwids.h
-index 9527012..b665232 100644
+index 0c6ee54..e32a0b0 100644
--- a/libmultipath/wwids.h
+++ b/libmultipath/wwids.h
-@@ -17,5 +17,6 @@ int remember_wwid(char *wwid);
+@@ -17,6 +17,7 @@ int remember_wwid(char *wwid);
int check_wwids_file(char *wwid, int write_wwid);
int remove_wwid(char *wwid);
int replace_wwids(vector mp);
+int remember_cmdline_wwid(void);
- #endif /* _WWIDS_H */
+ enum {
+ WWID_IS_NOT_FAILED = 0,
diff --git a/multipath/main.c b/multipath/main.c
-index 4174d43..72585b0 100644
+index 6fdde03..7bac232 100644
--- a/multipath/main.c
+++ b/multipath/main.c
-@@ -102,7 +102,7 @@ usage (char * progname)
+@@ -109,7 +109,7 @@ usage (char * progname)
{
fprintf (stderr, VERSION_STRING);
fprintf (stderr, "Usage:\n");
@@ -97,25 +98,25 @@ index 4174d43..72585b0 100644
fprintf (stderr, " %s -l|-ll|-f [-v lvl] [-b fil] [-R num] [dev]\n", progname);
fprintf (stderr, " %s -F [-v lvl] [-R num]\n", progname);
fprintf (stderr, " %s -t\n", progname);
-@@ -116,6 +116,8 @@ usage (char * progname)
+@@ -123,6 +123,8 @@ usage (char * progname)
" -f flush a multipath device map\n"
" -F flush all multipath device maps\n"
" -a add a device wwid to the wwids file\n"
+ " -A add devices from kernel command line mpath.wwids\n"
+ " parameters to wwids file\n"
" -c check if a device should be a path in a multipath device\n"
+ " -C check if a multipath device has usable paths\n"
" -q allow queue_if_no_path when multipathd is not running\n"
- " -d dry run, do not create or update devmaps\n"
-@@ -522,7 +524,7 @@ main (int argc, char *argv[])
+@@ -907,7 +909,7 @@ main (int argc, char *argv[])
exit(1);
multipath_conf = conf;
conf->retrigger_tries = 0;
-- while ((arg = getopt(argc, argv, ":adchl::FfM:v:p:b:BrR:itquwW")) != EOF ) {
-+ while ((arg = getopt(argc, argv, ":aAdchl::FfM:v:p:b:BrR:itquwW")) != EOF ) {
+- while ((arg = getopt(argc, argv, ":adcChl::FfM:v:p:b:BrR:itquUwW")) != EOF ) {
++ while ((arg = getopt(argc, argv, ":aAdcChl::FfM:v:p:b:BrR:itquUwW")) != EOF ) {
switch(arg) {
case 1: printf("optarg : %s\n",optarg);
break;
-@@ -586,6 +588,10 @@ main (int argc, char *argv[])
+@@ -974,6 +976,10 @@ main (int argc, char *argv[])
case 't':
r = dump_config(conf);
goto out_free_config;
@@ -127,19 +128,19 @@ index 4174d43..72585b0 100644
usage(argv[0]);
exit(0);
diff --git a/multipath/multipath.8 b/multipath/multipath.8
-index b9436e5..b9ad6b1 100644
+index 914a8cb..8c6a4c1 100644
--- a/multipath/multipath.8
+++ b/multipath/multipath.8
@@ -25,7 +25,7 @@ multipath \- Device mapper target autoconfig.
.RB [\| \-b\ \c
.IR bindings_file \|]
.RB [\| \-d \|]
--.RB [\| \-h | \-l | \-ll | \-f | \-t | \-F | \-B | \-c | \-q | \|-r | \|-i | \-a | \|-u | \-w | \-W \|]
-+.RB [\| \-h | \-l | \-ll | \-f | \-t | \-F | \-B | \-c | \-q | \|-r | \|-i | \-a | \-A | \-u | \-w | \-W \|]
+-.RB [\| \-h | \-l | \-ll | \-f | \-t | \-F | \-B | \-c | \-C | \-q | \-r | \-i | \-a | \-u | \-U | \-w | \-W \|]
++.RB [\| \-h | \-l | \-ll | \-f | \-t | \-F | \-B | \-c | \-C | \-q | \-r | \-i | \-a | \-A | \-u | \-U | \-w | \-W \|]
.RB [\| \-p\ \c
.IR failover | multibus | group_by_serial | group_by_prio | group_by_node_name \|]
.RB [\| \-R\ \c
-@@ -122,6 +122,9 @@ Add the WWID for the specified device to the WWIDs file.
+@@ -135,6 +135,9 @@ Add the WWID for the specified device to the WWIDs file.
Check if the device specified in the program environment should be
a path in a multipath device.
.
@@ -147,10 +148,10 @@ index b9436e5..b9ad6b1 100644
+add wwids from any kernel command line mpath.wwid parameters to the wwids file
+.
.TP
- .B \-w
- Remove the WWID for the specified device from the WWIDs file.
+ .B \-U
+ Check if the device specified in the program environment is a multipath device
diff --git a/multipathd/multipathd.service b/multipathd/multipathd.service
-index fafd088..a623a3f 100644
+index 17434ce..0fbcc46 100644
--- a/multipathd/multipathd.service
+++ b/multipathd/multipathd.service
@@ -15,6 +15,7 @@ Type=notify
@@ -160,7 +161,7 @@ index fafd088..a623a3f 100644
+ExecStartPre=-/sbin/multipath -A
ExecStart=/sbin/multipathd -d -s
ExecReload=/sbin/multipathd reconfigure
-
+ TasksMax=infinity
--
-2.8.1
+2.7.4
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0027-RH-warn-on-invalid-regex-instead-of-failing.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0027-RH-warn-on-invalid-regex-instead-of-failing.patch
new file mode 100644
index 000000000..a23e16739
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0027-RH-warn-on-invalid-regex-instead-of-failing.patch
@@ -0,0 +1,121 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Mon, 6 Nov 2017 21:39:28 -0600
+Subject: [PATCH] RH: warn on invalid regex instead of failing
+
+multipath.conf used to allow "*" as a match everything regular expression,
+instead of requiring ".*". Instead of erroring when the old style
+regular expressions are used, it should print a warning and convert
+them.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/dict.c | 27 +++++++++++++++++++++------
+ libmultipath/parser.c | 13 +++++++++++++
+ libmultipath/parser.h | 1 +
+ 3 files changed, 35 insertions(+), 6 deletions(-)
+
+diff --git a/libmultipath/dict.c b/libmultipath/dict.c
+index 7ad0f5a..ab808d6 100644
+--- a/libmultipath/dict.c
++++ b/libmultipath/dict.c
+@@ -55,6 +55,21 @@ set_str(vector strvec, void *ptr)
+ }
+
+ static int
++set_regex(vector strvec, void *ptr)
++{
++ char **str_ptr = (char **)ptr;
++
++ if (*str_ptr)
++ FREE(*str_ptr);
++ *str_ptr = set_regex_value(strvec);
++
++ if (!*str_ptr)
++ return 1;
++
++ return 0;
++}
++
++static int
+ set_yes_no(vector strvec, void *ptr)
+ {
+ char * buff;
+@@ -1271,7 +1286,7 @@ ble_ ## option ## _handler (struct config *conf, vector strvec) \
+ if (!conf->option) \
+ return 1; \
+ \
+- buff = set_value(strvec); \
++ buff = set_regex_value(strvec); \
+ if (!buff) \
+ return 1; \
+ \
+@@ -1287,7 +1302,7 @@ ble_ ## option ## _ ## name ## _handler (struct config *conf, vector strvec) \
+ if (!conf->option) \
+ return 1; \
+ \
+- buff = set_value(strvec); \
++ buff = set_regex_value(strvec); \
+ if (!buff) \
+ return 1; \
+ \
+@@ -1388,16 +1403,16 @@ device_handler(struct config *conf, vector strvec)
+ return 0;
+ }
+
+-declare_hw_handler(vendor, set_str)
++declare_hw_handler(vendor, set_regex)
+ declare_hw_snprint(vendor, print_str)
+
+-declare_hw_handler(product, set_str)
++declare_hw_handler(product, set_regex)
+ declare_hw_snprint(product, print_str)
+
+-declare_hw_handler(revision, set_str)
++declare_hw_handler(revision, set_regex)
+ declare_hw_snprint(revision, print_str)
+
+-declare_hw_handler(bl_product, set_str)
++declare_hw_handler(bl_product, set_regex)
+ declare_hw_snprint(bl_product, print_str)
+
+ declare_hw_handler(hwhandler, set_str)
+diff --git a/libmultipath/parser.c b/libmultipath/parser.c
+index b8b7e0d..34b4ad2 100644
+--- a/libmultipath/parser.c
++++ b/libmultipath/parser.c
+@@ -380,6 +380,19 @@ set_value(vector strvec)
+ return alloc;
+ }
+
++void *
++set_regex_value(vector strvec)
++{
++ char *buff = set_value(strvec);
++
++ if (buff && strcmp("*", buff) == 0) {
++ condlog(0, "Invalid regular expression \"*\" in multipath.conf. Using \".*\"");
++ FREE(buff);
++ return strdup(".*");
++ }
++ return buff;
++}
++
+ /* non-recursive configuration stream handler */
+ static int kw_level = 0;
+
+diff --git a/libmultipath/parser.h b/libmultipath/parser.h
+index 62906e9..b791705 100644
+--- a/libmultipath/parser.h
++++ b/libmultipath/parser.h
+@@ -77,6 +77,7 @@ extern void dump_keywords(vector keydump, int level);
+ extern void free_keywords(vector keywords);
+ extern vector alloc_strvec(char *string);
+ extern void *set_value(vector strvec);
++extern void *set_regex_value(vector strvec);
+ extern int process_file(struct config *conf, char *conf_file);
+ extern struct keyword * find_keyword(vector keywords, vector v, char * name);
+ int snprint_keyword(char *buff, int len, char *fmt, struct keyword *kw,
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0028-RH-reset-default-find_mutipaths-value-to-off.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0028-RH-reset-default-find_mutipaths-value-to-off.patch
new file mode 100644
index 000000000..05e686492
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0028-RH-reset-default-find_mutipaths-value-to-off.patch
@@ -0,0 +1,29 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Thu, 7 Jun 2018 17:43:52 -0500
+Subject: [PATCH] RH: reset default find_mutipaths value to off
+
+Upstream has changed to default find_multipaths to "strict". For now
+Redhat will retain the previous default of "off".
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/defaults.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libmultipath/defaults.h b/libmultipath/defaults.h
+index f076b4b..70ba98a 100644
+--- a/libmultipath/defaults.h
++++ b/libmultipath/defaults.h
+@@ -17,7 +17,7 @@
+ #define DEFAULT_NO_PATH_RETRY NO_PATH_RETRY_UNDEF
+ #define DEFAULT_VERBOSITY 2
+ #define DEFAULT_REASSIGN_MAPS 0
+-#define DEFAULT_FIND_MULTIPATHS FIND_MULTIPATHS_STRICT
++#define DEFAULT_FIND_MULTIPATHS FIND_MULTIPATHS_OFF
+ #define DEFAULT_FAST_IO_FAIL 5
+ #define DEFAULT_DEV_LOSS_TMO 600
+ #define DEFAULT_RETAIN_HWHANDLER RETAIN_HWHANDLER_ON
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0029-multipath-tools-modify-Makefile.inc-for-cross-compil.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0029-multipath-tools-modify-Makefile.inc-for-cross-compil.patch
new file mode 100644
index 000000000..45cd32ac2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0029-multipath-tools-modify-Makefile.inc-for-cross-compil.patch
@@ -0,0 +1,49 @@
+From 8bdd4481d822b6625d8bf719431ca74ed1b5e021 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Mon, 16 Jul 2018 15:56:37 +0800
+Subject: [PATCH] multipath-tools: modify Makefile.inc for cross-compilation
+
+Do not look for systemd info on the host, and allow us to pass in CFLAGS
+using the OPTFLAGS variable.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
+
+Update for version 0.5.0-144-g770e6d0
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+Update for version 0.7.1
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
+update for version 0.7.7
+
+remove change about CFLAGS part, since patch 0024 already have similar function.
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ Makefile.inc | 8 ++------
+ 1 file changed, 2 insertions(+), 6 deletions(-)
+
+diff --git a/Makefile.inc b/Makefile.inc
+index 57a1835..0c403c7 100644
+--- a/Makefile.inc
++++ b/Makefile.inc
+@@ -38,12 +38,6 @@ ifndef RUN
+ endif
+ endif
+
+-ifndef SYSTEMD
+- ifeq ($(shell systemctl --version > /dev/null 2>&1 && echo 1), 1)
+- SYSTEMD = $(shell systemctl --version 2> /dev/null | sed -n 's/systemd \([0-9]*\)/\1/p')
+- endif
+-endif
+-
+ ifndef SYSTEMDPATH
+ SYSTEMDPATH=usr/lib
+ endif
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0013-Always-use-devmapper.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0030-Always-use-devmapper.patch
index 52240f643..12811804a 100644
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0013-Always-use-devmapper.patch
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0030-Always-use-devmapper.patch
@@ -1,7 +1,7 @@
-From 1498338970a093fccbda3e33f5588a289ef2c66a Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Wed, 5 Jul 2017 02:59:46 -0400
-Subject: [PATCH 13/14] Always use devmapper
+From d929a1ea5e42ecbe30c990644ed4ada2817c6439 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Mon, 16 Jul 2018 16:00:14 +0800
+Subject: [PATCH] Always use devmapper
Do not try to compute several _API_ make variables
from host information when cross-compiling.
@@ -14,12 +14,16 @@ Signed-off-by: Joe Slater <joe.slater@windriver.com>
Rebase to 0.7.1
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
+Rebase to 0.7.7
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
libmultipath/Makefile | 19 ++++---------------
1 file changed, 4 insertions(+), 15 deletions(-)
diff --git a/libmultipath/Makefile b/libmultipath/Makefile
-index b3244fc..9006b3f 100644
+index f51786d..3ad9c48 100644
--- a/libmultipath/Makefile
+++ b/libmultipath/Makefile
@@ -20,21 +20,10 @@ ifdef SYSTEMD
@@ -49,5 +53,5 @@ index b3244fc..9006b3f 100644
OBJS = memory.o parser.o vector.o devmapper.o callout.o \
hwtable.o blacklist.o util.o dmparser.o config.o \
--
-2.8.1
+2.7.4
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0014-Always-use-devmapper-for-kpartx.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0031-Always-use-devmapper-for-kpartx.patch
index f951213c1..88a758dcb 100644
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0014-Always-use-devmapper-for-kpartx.patch
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0031-Always-use-devmapper-for-kpartx.patch
@@ -1,7 +1,7 @@
-From 7f5869cd32a7b3f717d9544b35562d9d01ca6510 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Wed, 5 Jul 2017 03:03:16 -0400
-Subject: [PATCH 14/14] Always use devmapper for kpartx
+From 145f2b829e5362cda975bebafd7fe4d00ff56d1c Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Mon, 16 Jul 2018 16:02:07 +0800
+Subject: [PATCH] Always use devmapper for kpartx
Do not try to compute the LIBDM_API_COOKIE make variable
from host information when cross-compiling.
@@ -13,12 +13,15 @@ Signed-off-by: Joe Slater <joe.slater@windriver.com>
Rebase to 0.7.1
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
+Rebase to 0.7.7
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
kpartx/Makefile | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/kpartx/Makefile b/kpartx/Makefile
-index bfa6fe8..be87124 100644
+index 7eb467e..c143321 100644
--- a/kpartx/Makefile
+++ b/kpartx/Makefile
@@ -8,9 +8,7 @@ LDFLAGS += $(BIN_LDFLAGS)
@@ -33,5 +36,5 @@ index bfa6fe8..be87124 100644
OBJS = bsd.o dos.o kpartx.o solaris.o unixware.o dasd.o sun.o \
gpt.o mac.o ps3.o crc32.o lopart.o xstrncpy.o devmapper.o
--
-2.8.1
+2.7.4
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.7.1.bb b/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.7.7.bb
index 6ec5dffcc..5cc154604 100644
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.7.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.7.7.bb
@@ -31,31 +31,49 @@ LICENSE = "GPLv2"
SRC_URI = "git://git.opensvc.com/multipath-tools/.git;protocol=http \
file://multipathd.oe \
file://multipath.conf.example \
- file://0001-multipath-attempt-at-common-multipath.rules.patch \
- file://0002-RH-fixup-udev-rules-for-redhat.patch \
- file://0003-RH-Remove-the-property-blacklist-exception-builtin.patch \
- file://0004-RH-don-t-start-without-a-config-file.patch \
- file://0005-RH-add-mpathconf.patch \
- file://0006-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch \
- file://0007-RH-trigger-change-uevent-on-new-device-creation.patch \
- file://0008-libmultipath-change-how-RADOS-checker-is-enabled.patch \
- file://0009-multipath-set-verbosity-to-default-during-config.patch \
- file://0010-mpath-skip-device-configs-without-vendor-product.patch \
- file://0011-multipathd-fix-show-maps-json-crash.patch \
- file://0012-multipath-tools-modify-Makefile.inc-for-cross-compil.patch \
- file://0013-Always-use-devmapper.patch \
- file://0014-Always-use-devmapper-for-kpartx.patch \
- file://0001-kpartx-include-limits.h-for-PATH_MAX.patch \
+ file://0001-multipath-tools-add-RDAC-SUN-ArrayStorage-to-hwtable.patch \
+ file://0002-multipath-tools-remove-c-from-__cpluscplus-misspelle.patch \
+ file://0003-multipath-tools-remove-emacs-autoconfig-of-kpartx-gp.patch \
+ file://0004-multipath-tools-replace-FSF-address-with-a-www-point.patch \
+ file://0005-multipath-tools-Remove-trailing-leading-whitespaces-.patch \
+ file://0006-multipath-tools-fix-compilation-with-musl-libc.patch \
+ file://0007-multipath-tools-add-x-to-doc-preclean.pl-and-split-m.patch \
+ file://0008-multipath-tools-refresh-kernel-doc-from-kernel-sourc.patch \
+ file://0009-multipath-tools-configure-hitachi-ams2000-and-hus100.patch \
+ file://0010-libmultipath-don-t-reject-maps-with-undefined-prio.patch \
+ file://0011-multipathd-handle-errors-in-uxlsnr-as-fatal.patch \
+ file://0012-libmultipath-fix-error-parsing-find_multipaths-stric.patch \
+ file://0013-libmultipath-print-correct-default-for-delay_-_check.patch \
+ file://0014-multipath.conf.5-clarify-property-whitelist-handling.patch \
+ file://0015-mpathpersist-add-all_tg_pt-option.patch \
+ file://0016-libmultipath-remove-rbd-code.patch \
+ file://0017-mpathpersist-fix-aptpl-support.patch \
+ file://0018-multipath-don-t-check-timestamps-without-a-path.patch \
+ file://0019-libmultipath-fix-detect-alua-corner-case.patch \
+ file://0020-multipath-fix-setting-conf-version.patch \
+ file://0021-RH-fixup-udev-rules-for-redhat.patch \
+ file://0022-RH-Remove-the-property-blacklist-exception-builtin.patch \
+ file://0023-RH-don-t-start-without-a-config-file.patch \
+ file://0024-RH-use-rpm-optflags-if-present.patch \
+ file://0025-RH-add-mpathconf.patch \
+ file://0026-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch \
+ file://0027-RH-warn-on-invalid-regex-instead-of-failing.patch \
+ file://0028-RH-reset-default-find_mutipaths-value-to-off.patch \
+ file://0029-multipath-tools-modify-Makefile.inc-for-cross-compil.patch \
+ file://0030-Always-use-devmapper.patch \
+ file://0031-Always-use-devmapper-for-kpartx.patch \
"
+
LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
-SRCREV = "f21166a812a2cfb50ecf9550d32947c83103f83a"
+SRCREV = "386d288b5595fc2c01dffe698b6eb306c6674908"
S = "${WORKDIR}/git"
inherit systemd pkgconfig
SYSTEMD_SERVICE_${PN} = "multipathd.service"
+SYSTEMD_AUTO_ENABLE = "disable"
TARGET_CC_ARCH += "${LDFLAGS}"
diff --git a/meta-openembedded/meta-oe/recipes-support/nano/nano_2.9.3.bb b/meta-openembedded/meta-oe/recipes-support/nano/nano_2.9.3.bb
deleted file mode 100644
index afb0cf2e7..000000000
--- a/meta-openembedded/meta-oe/recipes-support/nano/nano_2.9.3.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-include nano.inc
-
-SRC_URI[md5sum] = "6dd37f010d6a985bf0e5f8ed091ff919"
-SRC_URI[sha256sum] = "7783bcfd4b2d5dc0bf64d4bd07b1a19e7ba3c91da881a4249772a36b972d4012"
diff --git a/meta-openembedded/meta-oe/recipes-support/nano/nano.inc b/meta-openembedded/meta-oe/recipes-support/nano/nano_3.0.bb
index 22f0fb2a0..2c7fbd549 100644
--- a/meta-openembedded/meta-oe/recipes-support/nano/nano.inc
+++ b/meta-openembedded/meta-oe/recipes-support/nano/nano_3.0.bb
@@ -6,12 +6,15 @@ LICENSE = "GPLv3"
LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949"
SECTION = "console/utils"
DEPENDS = "ncurses file"
-RDEPENDS_${PN} = "ncurses-terminfo"
+RDEPENDS_${PN} = "ncurses-terminfo-base"
-PV_MAJOR = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}"
+PV_MAJOR = "${@d.getVar('PV').split('.')[0]}"
SRC_URI = "https://nano-editor.org/dist/v${PV_MAJOR}/nano-${PV}.tar.xz"
+SRC_URI[md5sum] = "74196427a09ec2f82a88facd220d2787"
+SRC_URI[sha256sum] = "e0a5bca354514e64762c987c200a8758b05e7bcced3b00b3e48ea0a2d383c8a0"
+
inherit autotools gettext pkgconfig
PACKAGECONFIG[tiny] = "--enable-tiny,"
diff --git a/meta-openembedded/meta-oe/recipes-support/ne10/ne10_1.2.1.bb b/meta-openembedded/meta-oe/recipes-support/ne10/ne10_1.2.1.bb
index 76e0741b1..3afdff778 100644
--- a/meta-openembedded/meta-oe/recipes-support/ne10/ne10_1.2.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/ne10/ne10_1.2.1.bb
@@ -38,7 +38,7 @@ do_install() {
install -m 0644 ${S}/inc/NE10*.h ${D}${includedir}/
install -m 0644 ${B}/modules/libNE10.a ${D}${libdir}/
install -m 0755 ${B}/modules/libNE10.so.* ${D}${libdir}/
- cp -a ${B}/modules/libNE10.so ${D}${libdir}/
+ cp -d ${B}/modules/libNE10.so ${D}${libdir}/
}
# ERROR: QA Issue: ELF binary 'ne10/1.2.1-r0/packages-split/ne10/usr/lib/libNE10.so.10' has relocations in .text [textrel]
diff --git a/meta-openembedded/meta-oe/recipes-support/numactl/numactl/0001-fix-NULL-pointer-problem.patch b/meta-openembedded/meta-oe/recipes-support/numactl/numactl/0001-fix-NULL-pointer-problem.patch
new file mode 100644
index 000000000..0497613dd
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/numactl/numactl/0001-fix-NULL-pointer-problem.patch
@@ -0,0 +1,35 @@
+From 5c16beff9909b28f55f25f48ed7ddbf98d8b1d5c Mon Sep 17 00:00:00 2001
+From: Roy Li <rongqing.li@windriver.com>
+Date: Wed, 18 Jul 2018 09:43:55 +0800
+Subject: [PATCH] fix NULL pointer problem
+
+return 0 if distance_table is NULL
+
+Upstream-Status: Pending
+
+read_distance_table() maybe return 0, but distance_table is not set,
+if distance_table is used, and will lead to SEGFAULT
+
+Signed-off-by: Roy Li <rongqing.li@windriver.com>
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ distance.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/distance.c b/distance.c
+index 8d472af..6a6e886 100644
+--- a/distance.c
++++ b/distance.c
+@@ -113,6 +113,8 @@ int numa_distance(int a, int b)
+ int err = read_distance_table();
+ if (err < 0)
+ return 0;
++ if(!distance_table)
++ return 0;
+ }
+ if ((unsigned)a >= distance_numnodes || (unsigned)b >= distance_numnodes)
+ return 0;
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/numactl/numactl/fix-null-pointer.patch b/meta-openembedded/meta-oe/recipes-support/numactl/numactl/fix-null-pointer.patch
deleted file mode 100644
index 53952aef9..000000000
--- a/meta-openembedded/meta-oe/recipes-support/numactl/numactl/fix-null-pointer.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-[PATCH] return 0 if distance_table is NULL
-
-Upstream-Status: Pending
-
-read_distance_table() maybe return 0, but distance_table is not set,
-if distance_table is used, and will lead to SEGFAULT
-
-Signed-off-by: Roy Li <rongqing.li@windriver.com>
----
- distance.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/distance.c b/distance.c
-index 4a26972..c6ca021 100755
---- a/distance.c
-+++ b/distance.c
-@@ -113,6 +113,8 @@ int numa_distance(int a, int b)
- int err = read_distance_table();
- if (err < 0)
- return 0;
-+ if (!distance_table)
-+ return 0;
- }
- return distance_table[a * distance_numnodes + b];
- }
---
-1.7.10.4
-
diff --git a/meta-openembedded/meta-oe/recipes-support/numactl/numactl_git.bb b/meta-openembedded/meta-oe/recipes-support/numactl/numactl_git.bb
index b9cbcf09d..279ac0415 100644
--- a/meta-openembedded/meta-oe/recipes-support/numactl/numactl_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/numactl/numactl_git.bb
@@ -5,17 +5,16 @@ to run other programs with a specific NUMA policy and a libnuma to do \
allocations with NUMA policy in applications."
LICENSE = "GPL-2.0 & LGPL-2.1"
SECTION = "apps"
-RDEPENDS_${PN} = "perl"
inherit autotools-brokensep ptest
-LIC_FILES_CHKSUM = "file://README;beginline=19;endline=32;md5=5644cc3851cb2499f6c48e52fe198bd9"
+LIC_FILES_CHKSUM = "file://README.md;beginline=19;endline=32;md5=f8ff2391624f28e481299f3f677b21bb"
-SRCREV = "ea3a70681c2f523fe58e1d44527f478ca76db74e"
-PV = "2.0.11+git${SRCPV}"
+SRCREV = "841253d1313b01a968c380cae4f498f20c46e5aa"
+PV = "2.0.12+git${SRCPV}"
SRC_URI = "git://github.com/numactl/numactl \
- file://fix-null-pointer.patch \
+ file://0001-fix-NULL-pointer-problem.patch \
file://Fix-the-test-output-format.patch \
file://Makefile \
file://run-ptest \
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Remove-assumptions-about-glibc-being-only-libc-imple.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Remove-assumptions-about-glibc-being-only-libc-imple.patch
deleted file mode 100644
index 9773b4a94..000000000
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Remove-assumptions-about-glibc-being-only-libc-imple.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From a0983d84185f04c4e40778fe951fde4439894882 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 16 Jul 2017 07:37:03 -0700
-Subject: [PATCH 01/11] Remove assumptions about glibc being only libc
- implementation on linux
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- open-vm-tools/lib/file/fileIOPosix.c | 2 +-
- open-vm-tools/lib/include/vm_basic_defs.h | 2 ++
- 2 files changed, 3 insertions(+), 1 deletion(-)
-
-Index: open-vm-tools/lib/file/fileIOPosix.c
-===================================================================
---- open-vm-tools.orig/lib/file/fileIOPosix.c
-+++ open-vm-tools/lib/file/fileIOPosix.c
-@@ -205,7 +205,7 @@ static AlignedPool alignedPool;
- * are not available in any header file.
- */
-
--#if defined(__linux__) && !defined(__ANDROID__)
-+#if defined(__linux__) && defined(__GLIBC__)
- #if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64)
- /*
- * We want preadv/pwritev. But due to FOB=64, the symbols are -64.
-Index: open-vm-tools/lib/include/vm_basic_defs.h
-===================================================================
---- open-vm-tools.orig/lib/include/vm_basic_defs.h
-+++ open-vm-tools/lib/include/vm_basic_defs.h
-@@ -571,6 +571,7 @@ typedef int pid_t;
- #if defined __linux__ && !defined __KERNEL__ && !defined MODULE && \
- !defined VMM && !defined FROBOS && !defined __ANDROID__
- #include <features.h>
-+#if __GLIBC__
- #if __GLIBC_PREREQ(2, 1) && !defined GLIBC_VERSION_21
- #define GLIBC_VERSION_21
- #endif
-@@ -590,6 +591,7 @@ typedef int pid_t;
- #define GLIBC_VERSION_212
- #endif
- #endif
-+#endif
-
- /*
- * Convenience definitions of unicode characters.
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Use-off64_t-instead-of-__off64_t.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Use-off64_t-instead-of-__off64_t.patch
new file mode 100644
index 000000000..432496f27
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Use-off64_t-instead-of-__off64_t.patch
@@ -0,0 +1,31 @@
+From 43d859f9d5eecdc0fdc1a6bf539bcde4a152e6f5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 27 Aug 2018 23:22:21 -0700
+Subject: [PATCH] Use off64_t instead of __off64_t
+
+Fixes
+unknown type name '__off64_t'
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/file/fileIOPosix.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/lib/file/fileIOPosix.c b/lib/file/fileIOPosix.c
+index 23108279..bcd2ddc5 100644
+--- a/lib/file/fileIOPosix.c
++++ b/lib/file/fileIOPosix.c
+@@ -206,10 +206,10 @@ static AlignedPool alignedPool;
+ * the symbols (and anyone building XOPEN<700 gets nothing).
+ */
+ extern ssize_t preadv64(int fd, const struct iovec *iov, int iovcnt,
+- __off64_t offset) __attribute__ ((weak));
++ off64_t offset) __attribute__ ((weak));
+
+ extern ssize_t pwritev64(int fd, const struct iovec *iov, int iovcnt,
+- __off64_t offset) __attribute__ ((weak));
++ off64_t offset) __attribute__ ((weak));
+ #else
+ #error "Large file support unavailable. Aborting."
+ #endif
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch
index e9cb873f1..b7a405835 100644
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch
@@ -14,11 +14,11 @@ Signed-off-by: Martin Kelly <mkelly@xevo.com>
configure.ac | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
-diff --git a/configure.ac b/configure.ac
-index 3400b86..7d6119e 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -942,7 +942,7 @@ if test "$with_dnet" = "yes"; then
+Index: open-vm-tools/configure.ac
+===================================================================
+--- open-vm-tools.orig/configure.ac
++++ open-vm-tools/configure.ac
+@@ -944,7 +944,7 @@ if test "$with_dnet" = "yes"; then
AC_VMW_CHECK_LIB([dnet],
[DNET],
[],
@@ -27,15 +27,12 @@ index 3400b86..7d6119e 100644
[],
[dnet.h],
[intf_open],
-@@ -952,7 +952,7 @@ if test "$with_dnet" = "yes"; then
+@@ -954,7 +954,7 @@ if test "$with_dnet" = "yes"; then
if test $have_dnet = "no"; then
AC_MSG_ERROR(
- [dnet-config was not found on your PATH. Please configure without dnet (using --without-dnet) or install dnet - http://libdnet.sourceforge.net])
+ [dnet was not found. Please configure without dnet (using --without-dnet) or install dnet - http://libdnet.sourceforge.net])
- fi
+ fi
fi
---
-2.1.4
-
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-include-poll.h-instead-of-sys-poll.h.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-include-poll.h-instead-of-sys-poll.h.patch
new file mode 100644
index 000000000..882058119
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-include-poll.h-instead-of-sys-poll.h.patch
@@ -0,0 +1,26 @@
+From 4981bb3013d7f1e40e44618076d99af3484eedea Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 13 Jun 2018 23:02:50 -0700
+Subject: [PATCH] include poll.h instead of sys/poll.h
+
+including sys/poll.h is deprecated
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ open-vm-tools/lib/asyncsocket/asyncsocket.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/asyncsocket/asyncsocket.c b/lib/asyncsocket/asyncsocket.c
+index 13908679..e0a68e7e 100644
+--- a/lib/asyncsocket/asyncsocket.c
++++ b/lib/asyncsocket/asyncsocket.c
+@@ -69,8 +69,8 @@
+ #else
+ #include <stddef.h>
+ #include <ctype.h>
++#include <poll.h>
+ #include <sys/types.h>
+-#include <sys/poll.h>
+ #include <sys/socket.h>
+ #include <sys/un.h>
+ #include <netdb.h>
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-Rename-poll.h-to-vm_poll.h.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-Rename-poll.h-to-vm_poll.h.patch
new file mode 100644
index 000000000..4d6a0fd6a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-Rename-poll.h-to-vm_poll.h.patch
@@ -0,0 +1,115 @@
+From 92955b3a6180b4285d11ef79766df01b9ab60dbd Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 13 Jun 2018 23:11:58 -0700
+Subject: [PATCH] Rename poll.h to vm_poll.h
+
+musl libc's system headers pulls in open-vm-tools' poll.h. To avoid this
+we rename poll.h to vm_poll.h.
+
+Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ open-vm-tools/lib/asyncsocket/asyncsocket.c | 2 +-
+ open-vm-tools/lib/hgfsServer/hgfsServer.c | 2 +-
+ open-vm-tools/lib/include/asyncsocket.h | 2 +-
+ open-vm-tools/lib/include/pollImpl.h | 2 +-
+ open-vm-tools/lib/include/{poll.h => vm_poll.h} | 2 +-
+ open-vm-tools/lib/rpcIn/rpcin.c | 2 +-
+ .../services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c | 2 +-
+ 7 files changed, 7 insertions(+), 7 deletions(-)
+ rename open-vm-tools/lib/include/{poll.h => vm_poll.h} (99%)
+
+diff --git a/lib/asyncsocket/asyncsocket.c b/lib/asyncsocket/asyncsocket.c
+index e0a68e7e..b9675674 100644
+--- a/lib/asyncsocket/asyncsocket.c
++++ b/lib/asyncsocket/asyncsocket.c
+@@ -86,7 +86,7 @@
+ #include "random.h"
+ #include "asyncsocket.h"
+ #include "asyncSocketBase.h"
+-#include "poll.h"
++#include "vm_poll.h"
+ #include "log.h"
+ #include "err.h"
+ #include "hostinfo.h"
+diff --git a/lib/hgfsServer/hgfsServer.c b/lib/hgfsServer/hgfsServer.c
+index 991a7941..ed0c09f9 100644
+--- a/lib/hgfsServer/hgfsServer.c
++++ b/lib/hgfsServer/hgfsServer.c
+@@ -48,7 +48,7 @@
+ #include "hgfsServerOplock.h"
+ #include "hgfsDirNotify.h"
+ #include "userlock.h"
+-#include "poll.h"
++#include "vm_poll.h"
+ #include "mutexRankLib.h"
+ #include "vm_basic_asm.h"
+ #include "unicodeOperations.h"
+diff --git a/lib/include/asyncsocket.h b/lib/include/asyncsocket.h
+index 524147ea..103f944f 100644
+--- a/lib/include/asyncsocket.h
++++ b/lib/include/asyncsocket.h
+@@ -164,7 +164,7 @@ typedef struct AsyncSocket AsyncSocket;
+ * Or the client can specify its favorite poll class and locking behavior.
+ * Use of IVmdbPoll is only supported for regular sockets and for Attach.
+ */
+-#include "poll.h"
++#include "vm_poll.h"
+ struct IVmdbPoll;
+ typedef struct AsyncSocketPollParams {
+ int flags; /* Default 0, only POLL_FLAG_NO_BULL is valid */
+diff --git a/lib/include/pollImpl.h b/lib/include/pollImpl.h
+index 46442e55..8bc66997 100644
+--- a/lib/include/pollImpl.h
++++ b/lib/include/pollImpl.h
+@@ -44,7 +44,7 @@
+ #define INCLUDE_ALLOW_USERLEVEL
+ #include "includeCheck.h"
+
+-#include "poll.h"
++#include "vm_poll.h"
+ #include "vm_basic_asm.h"
+
+ #if defined(__cplusplus)
+diff --git a/lib/include/poll.h b/lib/include/vm_poll.h
+similarity index 99%
+rename from open-vm-tools/lib/include/poll.h
+rename to open-vm-tools/lib/include/vm_poll.h
+index 988fe6d0..e9e74fb5 100644
+--- a/lib/include/poll.h
++++ b/lib/include/vm_poll.h
+@@ -60,7 +60,7 @@ extern "C" {
+ #if !defined(TARGET_OS_IPHONE) || TARGET_OS_IPHONE == 0
+ #include <sys/kernel.h>
+ #endif
+-#include <sys/poll.h>
++#include <poll.h>
+ #define HZ 100
+ #endif
+ #ifdef __ANDROID__
+diff --git a/lib/rpcIn/rpcin.c b/lib/rpcIn/rpcin.c
+index c2c51583..d6c62f10 100644
+--- a/lib/rpcIn/rpcin.c
++++ b/lib/rpcIn/rpcin.c
+@@ -57,7 +57,7 @@
+
+ #if defined(VMTOOLS_USE_VSOCKET)
+ # include <glib.h>
+-# include "poll.h"
++# include "vm_poll.h"
+ # include "asyncsocket.h"
+ # include "vmci_defs.h"
+ #include "dataMap.h"
+diff --git a/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c b/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c
+index 03700937..f0b49ad7 100644
+--- a/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c
++++ b/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c
+@@ -48,7 +48,7 @@
+ #include "rpcout.h"
+ #include "rabbitmqProxyConst.h"
+ #include "vm_basic_types.h"
+-#include "poll.h"
++#include "vm_poll.h"
+ #ifdef OPEN_VM_TOOLS
+ #include "vmci_sockets.h"
+ #include "sslDirect.h"
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-include-poll.h-instead-of-obsolete-sys-poll.h.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-include-poll.h-instead-of-obsolete-sys-poll.h.patch
deleted file mode 100644
index d26bf2dd3..000000000
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-include-poll.h-instead-of-obsolete-sys-poll.h.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From d44c7c9de7380ad7b284231bd5b5c99b5c19758d Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 16 Jul 2017 07:37:59 -0700
-Subject: [PATCH 02/11] include poll.h instead of obsolete sys/poll.h
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- open-vm-tools/lib/asyncsocket/asyncSocketInt.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: open-vm-tools/lib/asyncsocket/asyncSocketInt.h
-===================================================================
---- open-vm-tools.orig/lib/asyncsocket/asyncSocketInt.h
-+++ open-vm-tools/lib/asyncsocket/asyncSocketInt.h
-@@ -71,8 +71,8 @@
- #else
- #include <stddef.h>
- #include <ctype.h>
-+#include <poll.h>
- #include <sys/types.h>
--#include <sys/poll.h>
- #include <sys/socket.h>
- #include <sys/un.h>
- #include <netdb.h>
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0003-Rename-poll.h-to-vm_poll.h.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0003-Rename-poll.h-to-vm_poll.h.patch
deleted file mode 100644
index 8641778d0..000000000
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0003-Rename-poll.h-to-vm_poll.h.patch
+++ /dev/null
@@ -1,756 +0,0 @@
-From 687fca20b3417ac885b6961e6fe1126d4a3fe7a4 Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Tue, 17 Nov 2015 10:57:31 +0000
-Subject: [PATCH 03/11] Rename poll.h to vm_poll.h
-
-musl libc's system headers pulls in open-vm-tools' poll.h. To avoid this
-we rename poll.h to vm_poll.h.
-
-Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
----
- open-vm-tools/lib/asyncsocket/asyncsocket.c | 2 +-
- open-vm-tools/lib/hgfsServer/hgfsServer.c | 2 +-
- open-vm-tools/lib/include/asyncsocket.h | 2 +-
- open-vm-tools/lib/include/pollImpl.h | 2 +-
- open-vm-tools/lib/include/{poll.h => vm_poll.h} | 0
- open-vm-tools/lib/rpcIn/rpcin.c | 2 +-
- open-vm-tools/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c | 2 +-
- 7 files changed, 6 insertions(+), 6 deletions(-)
- rename open-vm-tools/lib/include/{poll.h => vm_poll.h} (100%)
-
-Index: open-vm-tools/lib/asyncsocket/asyncsocket.c
-===================================================================
---- open-vm-tools.orig/lib/asyncsocket/asyncsocket.c
-+++ open-vm-tools/lib/asyncsocket/asyncsocket.c
-@@ -52,7 +52,7 @@
- #include "vmware.h"
- #include "asyncsocket.h"
- #include "asyncSocketInt.h"
--#include "poll.h"
-+#include "vm_poll.h"
- #include "log.h"
- #include "err.h"
- #include "hostinfo.h"
-Index: open-vm-tools/lib/hgfsServer/hgfsServer.c
-===================================================================
---- open-vm-tools.orig/lib/hgfsServer/hgfsServer.c
-+++ open-vm-tools/lib/hgfsServer/hgfsServer.c
-@@ -48,7 +48,7 @@
- #include "hgfsServerOplock.h"
- #include "hgfsDirNotify.h"
- #include "userlock.h"
--#include "poll.h"
-+#include "vm_poll.h"
- #include "mutexRankLib.h"
- #include "vm_basic_asm.h"
- #include "unicodeOperations.h"
-Index: open-vm-tools/lib/include/asyncsocket.h
-===================================================================
---- open-vm-tools.orig/lib/include/asyncsocket.h
-+++ open-vm-tools/lib/include/asyncsocket.h
-@@ -129,7 +129,7 @@ typedef struct AsyncSocket AsyncSocket;
- * Or the client can specify its favorite poll class and locking behavior.
- * Use of IVmdbPoll is only supported for regular sockets and for Attach.
- */
--#include "poll.h"
-+#include "vm_poll.h"
- struct IVmdbPoll;
- typedef struct AsyncSocketPollParams {
- int flags; /* Default 0, only POLL_FLAG_NO_BULL is valid */
-Index: open-vm-tools/lib/include/poll.h
-===================================================================
---- open-vm-tools.orig/lib/include/poll.h
-+++ /dev/null
-@@ -1,324 +0,0 @@
--/*********************************************************
-- * Copyright (C) 1998-2016 VMware, Inc. All rights reserved.
-- *
-- * This program is free software; you can redistribute it and/or modify it
-- * under the terms of the GNU Lesser General Public License as published
-- * by the Free Software Foundation version 2.1 and no 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 Lesser GNU General Public
-- * License for more details.
-- *
-- * You should have received a copy of the GNU Lesser General Public License
-- * along with this program; if not, write to the Free Software Foundation, Inc.,
-- * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-- *
-- *********************************************************/
--
--/*********************************************************
-- * The contents of this file are subject to the terms of the Common
-- * Development and Distribution License (the "License") version 1.0
-- * and no later version. You may not use this file except in
-- * compliance with the License.
-- *
-- * You can obtain a copy of the License at
-- * http://www.opensource.org/licenses/cddl1.php
-- *
-- * See the License for the specific language governing permissions
-- * and limitations under the License.
-- *
-- *********************************************************/
--
--
--#ifndef _POLL_H_
--#define _POLL_H_
--
--#define INCLUDE_ALLOW_USERLEVEL
--#define INCLUDE_ALLOW_VMCORE
--#include "includeCheck.h"
--
--#include "vm_basic_types.h"
--#include "vm_basic_defs.h"
--#include "vmware.h"
--#include "userlock.h"
--
--#ifdef _WIN32
--#define HZ 100
--#elif defined linux
--#include <asm/param.h>
--#elif __APPLE__
--#include <TargetConditionals.h>
--/*
-- * Old SDKs don't define TARGET_OS_IPHONE at all.
-- * New ones define it to 0 on Mac OS X, 1 on iOS.
-- */
--#if !defined(TARGET_OS_IPHONE) || TARGET_OS_IPHONE == 0
--#include <sys/kernel.h>
--#endif
--#include <sys/poll.h>
--#define HZ 100
--#endif
--#ifdef __ANDROID__
--/*
-- * <poll.h> of android should be included, but its name is same
-- * with this file. So its content is put here to avoid conflict.
-- */
--#include <asm/poll.h>
--#define HZ 100
--typedef unsigned int nfds_t;
--int poll(struct pollfd *, nfds_t, long);
--#endif
--
--
--/*
-- * Poll event types: each type has a different reason for firing,
-- * or condition that must be met before firing.
-- */
--
--typedef enum {
-- /*
-- * Actual Poll queue types against which you can register callbacks.
-- */
-- POLL_VIRTUALREALTIME = -1, /* Negative because it doesn't have its own Q */
-- POLL_VTIME = 0,
-- POLL_REALTIME,
-- POLL_DEVICE,
-- POLL_MAIN_LOOP,
-- POLL_NUM_QUEUES
--} PollEventType;
--
--
--/*
-- * Classes of events
-- *
-- * These are the predefined classes. More can be declared
-- * with Poll_AllocClass().
-- */
--
--typedef enum PollClass {
-- POLL_CLASS_MAIN,
-- POLL_CLASS_PAUSE,
-- POLL_CLASS_IPC,
-- POLL_CLASS_CPT,
-- POLL_CLASS_MKS,
-- POLL_FIXED_CLASSES,
-- POLL_MAX_CLASSES = 320 /* Size enum to maximum */
--} PollClass;
--
--
--/*
-- * Each callback is registered in a set of classes
-- */
--
--typedef struct PollClassSet {
-- /* Type is uintptr_t to give best 32/64-bit code. */
--#define _POLL_ELEMSIZE (sizeof (uintptr_t) * 8)
-- uintptr_t bits[CEILING(POLL_MAX_CLASSES, _POLL_ELEMSIZE)];
--} PollClassSet;
--
--/* An empty PollClassSet. */
--static INLINE PollClassSet
--PollClassSet_Empty(void)
--{
-- PollClassSet set = { { 0 } };
-- return set;
--}
--
--/* A PollClassSet with the single member. */
--static INLINE PollClassSet
--PollClassSet_Singleton(PollClass c)
--{
-- PollClassSet s = PollClassSet_Empty();
--
-- ASSERT_ON_COMPILE(sizeof s.bits[0] * 8 == _POLL_ELEMSIZE); /* Size correct */
-- ASSERT_ON_COMPILE((_POLL_ELEMSIZE & (_POLL_ELEMSIZE - 1)) == 0); /* power of 2 */
-- ASSERT_ON_COMPILE(POLL_MAX_CLASSES <= ARRAYSIZE(s.bits) * _POLL_ELEMSIZE);
-- ASSERT(c < POLL_MAX_CLASSES);
--
-- s.bits[c / _POLL_ELEMSIZE] = CONST3264U(1) << (c % _POLL_ELEMSIZE);
-- return s;
--}
--
--/* Combine two PollClassSets. */
--static INLINE PollClassSet
--PollClassSet_Union(PollClassSet lhs, PollClassSet rhs)
--{
-- PollClassSet u;
-- unsigned i;
--
-- for (i = 0; i < ARRAYSIZE(u.bits); i++) {
-- u.bits[i] = lhs.bits[i] | rhs.bits[i];
-- }
-- return u;
--}
--
--/* Add single class to PollClassSet. */
--static INLINE PollClassSet
--PollClassSet_Include(PollClassSet set, PollClass c)
--{
-- return PollClassSet_Union(set, PollClassSet_Singleton(c));
--}
--
--
--#define POLL_CS_MAIN PollClassSet_Singleton(POLL_CLASS_MAIN)
--#define POLL_CS_PAUSE PollClassSet_Union(POLL_CS_MAIN, \
-- PollClassSet_Singleton(POLL_CLASS_PAUSE))
--#define POLL_CS_CPT PollClassSet_Union(POLL_CS_PAUSE, \
-- PollClassSet_Singleton(POLL_CLASS_CPT))
--#define POLL_CS_IPC PollClassSet_Union(POLL_CS_CPT, \
-- PollClassSet_Singleton(POLL_CLASS_IPC))
--#define POLL_CS_VMDB POLL_CS_PAUSE /* POLL_CLASS_VMDB is retired */
--#define POLL_CS_MKS PollClassSet_Singleton(POLL_CLASS_MKS)
--/*
-- * DANGER. You don't need POLL_CS_ALWAYS. Really. So don't use it.
-- */
--#define POLL_CS_ALWAYS PollClassSet_Union(POLL_CS_CPT, POLL_CS_IPC)
--
--/*
-- * Poll class-set taxonomy:
-- * POLL_CS_MAIN
-- * - Unless you NEED another class, use POLL_CS_MAIN.
-- * POLL_CS_PAUSE
-- * - For callbacks that must occur even if the guest is paused.
-- * Most VMDB or Foundry commands are in this category.
-- * POLL_CS_CPT
-- * - Only for callbacks which can trigger intermediate Checkpoint
-- * transitions.
-- * The ONLY such callback is Migrate.
-- * POLL_CS_IPC
-- * - Only for callbacks which can contain Msg_(Post|Hint|Question)
-- * responses, and for signal handlers (why)?
-- * Vigor, VMDB, and Foundry can contain Msg_* responses.
-- * POLL_CS_MKS
-- * - Callback runs in MKS thread.
-- * POLL_CS_ALWAYS
-- * - Only for events that must be processed immediately.
-- * The ONLY such callback is OvhdMemVmxSizeCheck.
-- */
--
--
--/*
-- * Poll_Callback flags
-- */
--
--#define POLL_FLAG_PERIODIC 0x01 // keep after firing
--#define POLL_FLAG_REMOVE_AT_POWEROFF 0x02 // self-explanatory
--#define POLL_FLAG_READ 0x04 // device is ready for reading
--#define POLL_FLAG_WRITE 0x08 // device is ready for writing
--#define POLL_FLAG_SOCKET 0x10 // device is a Windows socket
--#define POLL_FLAG_NO_BULL 0x20 // callback does its own locking
--#define POLL_FLAG_WINSOCK 0x40 // Winsock style write events
--#define POLL_FLAG_FD 0x80 // device is a Windows file descriptor.
--#define POLL_FLAG_ACCEPT_INVALID_FDS 0x100 // For broken 3rd party libs, e.g. curl
--#define POLL_FLAG_THUNK_TO_WND 0x200 // thunk callback to window message loop
--
--
--/*
-- * Advisory minimum time period.
-- * Users that want the fastest running real-time poll
-- * should use TICKS_TO_USECS(1).
-- */
--
--#define TICKS_TO_USECS(_x) ((_x) * (1000000 / HZ))
--#define USECS_TO_TICKS(_x) ((_x) / (1000000 / HZ))
--
--
--typedef void (*PollerFunction)(void *clientData);
--typedef void (*PollerFireWrapper)(PollerFunction func,
-- void *funcData,
-- void *wrapperData);
--typedef Bool (*PollerErrorFn)(const char *errorStr);
--
--/*
-- * Initialisers:
-- *
-- * For the sake of convenience, we declare the initialisers
-- * for custom implmentations here, even though the actual
-- * implementations are distinct from the core poll code.
-- */
--
--typedef struct PollOptions {
-- Bool locked; // Use internal MXUser for locking
-- Bool allowFullQueue; // Don't assert when device event queue is full.
-- VThreadID windowsMsgThread; // thread that processes Windows messages
-- PollerFireWrapper fireWrapperFn; // optional; may be useful for stats
-- void *fireWrapperData; // optional
-- PollerErrorFn errorFn; // optional; called upon unrecoverable error
--} PollOptions;
--
--
--void Poll_InitDefault(void);
--void Poll_InitDefaultEx(const PollOptions *opts);
--void Poll_InitGtk(void); // On top of glib for Linux
--void Poll_InitCF(void); // On top of CoreFoundation for OSX
--
--
--/*
-- * Functions
-- */
--int Poll_SocketPair(Bool vmci, Bool stream, int fds[2]);
--void Poll_Loop(Bool loop, Bool *exit, PollClass c);
--void Poll_LoopTimeout(Bool loop, Bool *exit, PollClass c, int timeout);
--Bool Poll_LockingEnabled(void);
--void Poll_Exit(void);
--
--
--/*
-- * Poll_Callback adds a callback regardless of whether an identical one exists.
-- *
-- * Likewise, Poll_CallbackRemove removes exactly one callback.
-- */
--
--VMwareStatus Poll_Callback(PollClassSet classSet,
-- int flags,
-- PollerFunction f,
-- void *clientData,
-- PollEventType type,
-- PollDevHandle info, // fd/microsec delay
-- MXUserRecLock *lck);
--Bool Poll_CallbackRemove(PollClassSet classSet,
-- int flags,
-- PollerFunction f,
-- void *clientData,
-- PollEventType type);
--Bool Poll_CallbackRemoveOneByCB(PollClassSet classSet,
-- int flags,
-- PollerFunction f,
-- PollEventType type,
-- void **clientData);
--
--void Poll_NotifyChange(PollClassSet classSet);
--
--/*
-- * Wrappers for Poll_Callback and Poll_CallbackRemove that present
-- * simpler subsets of those interfaces.
-- */
--
--VMwareStatus Poll_CB_Device(PollerFunction f,
-- void *clientData,
-- PollDevHandle device,
-- Bool periodic);
--
--Bool Poll_CB_DeviceRemove(PollerFunction f,
-- void *clientData,
-- Bool periodic);
--
--
--VMwareStatus Poll_CB_RTime(PollerFunction f,
-- void *clientData,
-- int delay, // microseconds
-- Bool periodic,
-- MXUserRecLock *lock);
--
--Bool Poll_CB_RTimeRemove(PollerFunction f,
-- void *clientData,
-- Bool periodic);
--
--
--#ifdef _WIN32
--void Poll_SetWindowMessageRecipient(HWND hWnd, UINT msg, Bool alwaysThunk);
--Bool Poll_FireWndCallback(void *lparam);
--#endif
--
--#endif // _POLL_H_
-Index: open-vm-tools/lib/include/pollImpl.h
-===================================================================
---- open-vm-tools.orig/lib/include/pollImpl.h
-+++ open-vm-tools/lib/include/pollImpl.h
-@@ -44,7 +44,7 @@
- #define INCLUDE_ALLOW_USERLEVEL
- #include "includeCheck.h"
-
--#include "poll.h"
-+#include "vm_poll.h"
-
- /*
- * PollImpl:
-Index: open-vm-tools/lib/include/vm_poll.h
-===================================================================
---- /dev/null
-+++ open-vm-tools/lib/include/vm_poll.h
-@@ -0,0 +1,324 @@
-+/*********************************************************
-+ * Copyright (C) 1998-2016 VMware, Inc. All rights reserved.
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU Lesser General Public License as published
-+ * by the Free Software Foundation version 2.1 and no 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 Lesser GNU General Public
-+ * License for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public License
-+ * along with this program; if not, write to the Free Software Foundation, Inc.,
-+ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-+ *
-+ *********************************************************/
-+
-+/*********************************************************
-+ * The contents of this file are subject to the terms of the Common
-+ * Development and Distribution License (the "License") version 1.0
-+ * and no later version. You may not use this file except in
-+ * compliance with the License.
-+ *
-+ * You can obtain a copy of the License at
-+ * http://www.opensource.org/licenses/cddl1.php
-+ *
-+ * See the License for the specific language governing permissions
-+ * and limitations under the License.
-+ *
-+ *********************************************************/
-+
-+
-+#ifndef _POLL_H_
-+#define _POLL_H_
-+
-+#define INCLUDE_ALLOW_USERLEVEL
-+#define INCLUDE_ALLOW_VMCORE
-+#include "includeCheck.h"
-+
-+#include "vm_basic_types.h"
-+#include "vm_basic_defs.h"
-+#include "vmware.h"
-+#include "userlock.h"
-+
-+#ifdef _WIN32
-+#define HZ 100
-+#elif defined linux
-+#include <asm/param.h>
-+#elif __APPLE__
-+#include <TargetConditionals.h>
-+/*
-+ * Old SDKs don't define TARGET_OS_IPHONE at all.
-+ * New ones define it to 0 on Mac OS X, 1 on iOS.
-+ */
-+#if !defined(TARGET_OS_IPHONE) || TARGET_OS_IPHONE == 0
-+#include <sys/kernel.h>
-+#endif
-+#include <sys/poll.h>
-+#define HZ 100
-+#endif
-+#ifdef __ANDROID__
-+/*
-+ * <poll.h> of android should be included, but its name is same
-+ * with this file. So its content is put here to avoid conflict.
-+ */
-+#include <asm/poll.h>
-+#define HZ 100
-+typedef unsigned int nfds_t;
-+int poll(struct pollfd *, nfds_t, long);
-+#endif
-+
-+
-+/*
-+ * Poll event types: each type has a different reason for firing,
-+ * or condition that must be met before firing.
-+ */
-+
-+typedef enum {
-+ /*
-+ * Actual Poll queue types against which you can register callbacks.
-+ */
-+ POLL_VIRTUALREALTIME = -1, /* Negative because it doesn't have its own Q */
-+ POLL_VTIME = 0,
-+ POLL_REALTIME,
-+ POLL_DEVICE,
-+ POLL_MAIN_LOOP,
-+ POLL_NUM_QUEUES
-+} PollEventType;
-+
-+
-+/*
-+ * Classes of events
-+ *
-+ * These are the predefined classes. More can be declared
-+ * with Poll_AllocClass().
-+ */
-+
-+typedef enum PollClass {
-+ POLL_CLASS_MAIN,
-+ POLL_CLASS_PAUSE,
-+ POLL_CLASS_IPC,
-+ POLL_CLASS_CPT,
-+ POLL_CLASS_MKS,
-+ POLL_FIXED_CLASSES,
-+ POLL_MAX_CLASSES = 320 /* Size enum to maximum */
-+} PollClass;
-+
-+
-+/*
-+ * Each callback is registered in a set of classes
-+ */
-+
-+typedef struct PollClassSet {
-+ /* Type is uintptr_t to give best 32/64-bit code. */
-+#define _POLL_ELEMSIZE (sizeof (uintptr_t) * 8)
-+ uintptr_t bits[CEILING(POLL_MAX_CLASSES, _POLL_ELEMSIZE)];
-+} PollClassSet;
-+
-+/* An empty PollClassSet. */
-+static INLINE PollClassSet
-+PollClassSet_Empty(void)
-+{
-+ PollClassSet set = { { 0 } };
-+ return set;
-+}
-+
-+/* A PollClassSet with the single member. */
-+static INLINE PollClassSet
-+PollClassSet_Singleton(PollClass c)
-+{
-+ PollClassSet s = PollClassSet_Empty();
-+
-+ ASSERT_ON_COMPILE(sizeof s.bits[0] * 8 == _POLL_ELEMSIZE); /* Size correct */
-+ ASSERT_ON_COMPILE((_POLL_ELEMSIZE & (_POLL_ELEMSIZE - 1)) == 0); /* power of 2 */
-+ ASSERT_ON_COMPILE(POLL_MAX_CLASSES <= ARRAYSIZE(s.bits) * _POLL_ELEMSIZE);
-+ ASSERT(c < POLL_MAX_CLASSES);
-+
-+ s.bits[c / _POLL_ELEMSIZE] = CONST3264U(1) << (c % _POLL_ELEMSIZE);
-+ return s;
-+}
-+
-+/* Combine two PollClassSets. */
-+static INLINE PollClassSet
-+PollClassSet_Union(PollClassSet lhs, PollClassSet rhs)
-+{
-+ PollClassSet u;
-+ unsigned i;
-+
-+ for (i = 0; i < ARRAYSIZE(u.bits); i++) {
-+ u.bits[i] = lhs.bits[i] | rhs.bits[i];
-+ }
-+ return u;
-+}
-+
-+/* Add single class to PollClassSet. */
-+static INLINE PollClassSet
-+PollClassSet_Include(PollClassSet set, PollClass c)
-+{
-+ return PollClassSet_Union(set, PollClassSet_Singleton(c));
-+}
-+
-+
-+#define POLL_CS_MAIN PollClassSet_Singleton(POLL_CLASS_MAIN)
-+#define POLL_CS_PAUSE PollClassSet_Union(POLL_CS_MAIN, \
-+ PollClassSet_Singleton(POLL_CLASS_PAUSE))
-+#define POLL_CS_CPT PollClassSet_Union(POLL_CS_PAUSE, \
-+ PollClassSet_Singleton(POLL_CLASS_CPT))
-+#define POLL_CS_IPC PollClassSet_Union(POLL_CS_CPT, \
-+ PollClassSet_Singleton(POLL_CLASS_IPC))
-+#define POLL_CS_VMDB POLL_CS_PAUSE /* POLL_CLASS_VMDB is retired */
-+#define POLL_CS_MKS PollClassSet_Singleton(POLL_CLASS_MKS)
-+/*
-+ * DANGER. You don't need POLL_CS_ALWAYS. Really. So don't use it.
-+ */
-+#define POLL_CS_ALWAYS PollClassSet_Union(POLL_CS_CPT, POLL_CS_IPC)
-+
-+/*
-+ * Poll class-set taxonomy:
-+ * POLL_CS_MAIN
-+ * - Unless you NEED another class, use POLL_CS_MAIN.
-+ * POLL_CS_PAUSE
-+ * - For callbacks that must occur even if the guest is paused.
-+ * Most VMDB or Foundry commands are in this category.
-+ * POLL_CS_CPT
-+ * - Only for callbacks which can trigger intermediate Checkpoint
-+ * transitions.
-+ * The ONLY such callback is Migrate.
-+ * POLL_CS_IPC
-+ * - Only for callbacks which can contain Msg_(Post|Hint|Question)
-+ * responses, and for signal handlers (why)?
-+ * Vigor, VMDB, and Foundry can contain Msg_* responses.
-+ * POLL_CS_MKS
-+ * - Callback runs in MKS thread.
-+ * POLL_CS_ALWAYS
-+ * - Only for events that must be processed immediately.
-+ * The ONLY such callback is OvhdMemVmxSizeCheck.
-+ */
-+
-+
-+/*
-+ * Poll_Callback flags
-+ */
-+
-+#define POLL_FLAG_PERIODIC 0x01 // keep after firing
-+#define POLL_FLAG_REMOVE_AT_POWEROFF 0x02 // self-explanatory
-+#define POLL_FLAG_READ 0x04 // device is ready for reading
-+#define POLL_FLAG_WRITE 0x08 // device is ready for writing
-+#define POLL_FLAG_SOCKET 0x10 // device is a Windows socket
-+#define POLL_FLAG_NO_BULL 0x20 // callback does its own locking
-+#define POLL_FLAG_WINSOCK 0x40 // Winsock style write events
-+#define POLL_FLAG_FD 0x80 // device is a Windows file descriptor.
-+#define POLL_FLAG_ACCEPT_INVALID_FDS 0x100 // For broken 3rd party libs, e.g. curl
-+#define POLL_FLAG_THUNK_TO_WND 0x200 // thunk callback to window message loop
-+
-+
-+/*
-+ * Advisory minimum time period.
-+ * Users that want the fastest running real-time poll
-+ * should use TICKS_TO_USECS(1).
-+ */
-+
-+#define TICKS_TO_USECS(_x) ((_x) * (1000000 / HZ))
-+#define USECS_TO_TICKS(_x) ((_x) / (1000000 / HZ))
-+
-+
-+typedef void (*PollerFunction)(void *clientData);
-+typedef void (*PollerFireWrapper)(PollerFunction func,
-+ void *funcData,
-+ void *wrapperData);
-+typedef Bool (*PollerErrorFn)(const char *errorStr);
-+
-+/*
-+ * Initialisers:
-+ *
-+ * For the sake of convenience, we declare the initialisers
-+ * for custom implmentations here, even though the actual
-+ * implementations are distinct from the core poll code.
-+ */
-+
-+typedef struct PollOptions {
-+ Bool locked; // Use internal MXUser for locking
-+ Bool allowFullQueue; // Don't assert when device event queue is full.
-+ VThreadID windowsMsgThread; // thread that processes Windows messages
-+ PollerFireWrapper fireWrapperFn; // optional; may be useful for stats
-+ void *fireWrapperData; // optional
-+ PollerErrorFn errorFn; // optional; called upon unrecoverable error
-+} PollOptions;
-+
-+
-+void Poll_InitDefault(void);
-+void Poll_InitDefaultEx(const PollOptions *opts);
-+void Poll_InitGtk(void); // On top of glib for Linux
-+void Poll_InitCF(void); // On top of CoreFoundation for OSX
-+
-+
-+/*
-+ * Functions
-+ */
-+int Poll_SocketPair(Bool vmci, Bool stream, int fds[2]);
-+void Poll_Loop(Bool loop, Bool *exit, PollClass c);
-+void Poll_LoopTimeout(Bool loop, Bool *exit, PollClass c, int timeout);
-+Bool Poll_LockingEnabled(void);
-+void Poll_Exit(void);
-+
-+
-+/*
-+ * Poll_Callback adds a callback regardless of whether an identical one exists.
-+ *
-+ * Likewise, Poll_CallbackRemove removes exactly one callback.
-+ */
-+
-+VMwareStatus Poll_Callback(PollClassSet classSet,
-+ int flags,
-+ PollerFunction f,
-+ void *clientData,
-+ PollEventType type,
-+ PollDevHandle info, // fd/microsec delay
-+ MXUserRecLock *lck);
-+Bool Poll_CallbackRemove(PollClassSet classSet,
-+ int flags,
-+ PollerFunction f,
-+ void *clientData,
-+ PollEventType type);
-+Bool Poll_CallbackRemoveOneByCB(PollClassSet classSet,
-+ int flags,
-+ PollerFunction f,
-+ PollEventType type,
-+ void **clientData);
-+
-+void Poll_NotifyChange(PollClassSet classSet);
-+
-+/*
-+ * Wrappers for Poll_Callback and Poll_CallbackRemove that present
-+ * simpler subsets of those interfaces.
-+ */
-+
-+VMwareStatus Poll_CB_Device(PollerFunction f,
-+ void *clientData,
-+ PollDevHandle device,
-+ Bool periodic);
-+
-+Bool Poll_CB_DeviceRemove(PollerFunction f,
-+ void *clientData,
-+ Bool periodic);
-+
-+
-+VMwareStatus Poll_CB_RTime(PollerFunction f,
-+ void *clientData,
-+ int delay, // microseconds
-+ Bool periodic,
-+ MXUserRecLock *lock);
-+
-+Bool Poll_CB_RTimeRemove(PollerFunction f,
-+ void *clientData,
-+ Bool periodic);
-+
-+
-+#ifdef _WIN32
-+void Poll_SetWindowMessageRecipient(HWND hWnd, UINT msg, Bool alwaysThunk);
-+Bool Poll_FireWndCallback(void *lparam);
-+#endif
-+
-+#endif // _POLL_H_
-Index: open-vm-tools/lib/rpcIn/rpcin.c
-===================================================================
---- open-vm-tools.orig/lib/rpcIn/rpcin.c
-+++ open-vm-tools/lib/rpcIn/rpcin.c
-@@ -57,7 +57,7 @@
-
- #if defined(VMTOOLS_USE_VSOCKET)
- # include <glib.h>
--# include "poll.h"
-+# include "vm_poll.h"
- # include "asyncsocket.h"
- # include "vmci_defs.h"
- #include "dataMap.h"
-Index: open-vm-tools/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c
-===================================================================
---- open-vm-tools.orig/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c
-+++ open-vm-tools/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c
-@@ -48,7 +48,7 @@
- #include "rpcout.h"
- #include "rabbitmqProxyConst.h"
- #include "vm_basic_types.h"
--#include "poll.h"
-+#include "vm_poll.h"
- #ifdef OPEN_VM_TOOLS
- #include "vmci_sockets.h"
- #include "sslDirect.h"
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0003-use-posix-strerror_r-unless-on-gnu-libc-system.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0003-use-posix-strerror_r-unless-on-gnu-libc-system.patch
new file mode 100644
index 000000000..c7d34c5cf
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0003-use-posix-strerror_r-unless-on-gnu-libc-system.patch
@@ -0,0 +1,39 @@
+From a2e7d9273261c5c5cbc33796900f415097f5455e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 13 Jun 2018 23:16:53 -0700
+Subject: [PATCH] use posix strerror_r unless on gnu libc system
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ open-vm-tools/lib/err/errPosix.c | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/lib/err/errPosix.c b/lib/err/errPosix.c
+index c81b4c13..7a403640 100644
+--- a/lib/err/errPosix.c
++++ b/lib/err/errPosix.c
+@@ -31,6 +31,7 @@
+ #include <errno.h>
+ #include <string.h>
+ #include <locale.h>
++#include <stdio.h>
+
+ #include "vmware.h"
+ #include "errInt.h"
+@@ -63,11 +64,13 @@ ErrErrno2String(Err_Number errorNumber, // IN
+ {
+ char *p;
+
+-#if defined(__linux__) && !defined(__ANDROID__)
++#if defined(__GLIBC__) && !defined(__ANDROID__)
+ p = strerror_r(errorNumber, buf, bufSize);
+ #else
+- p = strerror(errorNumber);
+-#endif
++ if (strerror_r(errorNumber, buf, bufSize) != 0)
++ snprintf(buf, bufSize, "unknown error %i", errorNumber);
++ p = buf;
++#endif /* defined __GLIBC__ */
+ ASSERT(p != NULL);
+ return p;
+ }
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0004-Add-Wno-incompatible-pointer-types-and-Wno-error-add.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0004-Add-Wno-incompatible-pointer-types-and-Wno-error-add.patch
deleted file mode 100644
index 010516761..000000000
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0004-Add-Wno-incompatible-pointer-types-and-Wno-error-add.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From cdb0b3c898c6b6b6c8259d9ddb8b00163ac5e419 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 16 Jul 2017 09:43:18 -0700
-Subject: [PATCH 04/11] Add -Wno-incompatible-pointer-types and
- -Wno-error=address
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- open-vm-tools/lib/dynxdr/Makefile.am | 2 +-
- open-vm-tools/lib/file/Makefile.am | 1 +
- 2 files changed, 2 insertions(+), 1 deletion(-)
-
-Index: open-vm-tools/lib/dynxdr/Makefile.am
-===================================================================
---- open-vm-tools.orig/lib/dynxdr/Makefile.am
-+++ open-vm-tools/lib/dynxdr/Makefile.am
-@@ -20,4 +20,4 @@ noinst_LTLIBRARIES = libDynxdr.la
- libDynxdr_la_SOURCES =
- libDynxdr_la_SOURCES += dynxdr.c
- libDynxdr_la_SOURCES += xdrutil.c
--
-+libDynxdr_la_CPPFLAGS = -Wno-incompatible-pointer-types
-Index: open-vm-tools/lib/file/Makefile.am
-===================================================================
---- open-vm-tools.orig/lib/file/Makefile.am
-+++ open-vm-tools/lib/file/Makefile.am
-@@ -27,3 +27,4 @@ libFile_la_SOURCES += fileLockPrimitive.
- libFile_la_SOURCES += fileLockPosix.c
- libFile_la_SOURCES += fileTempPosix.c
- libFile_la_SOURCES += fileTemp.c
-+libFile_la_CPPFLAGS = -Wno-error=address
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0004-Use-uintmax_t-for-handling-rlim_t.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0004-Use-uintmax_t-for-handling-rlim_t.patch
new file mode 100644
index 000000000..e802dca4e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0004-Use-uintmax_t-for-handling-rlim_t.patch
@@ -0,0 +1,29 @@
+From e694a122c1ff32d8b951ae55756796f9576d23ed Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 13 Jun 2018 23:37:09 -0700
+Subject: [PATCH] Use uintmax_t for handling rlim_t
+
+rlimit types are not representable with long or long long
+formats, therefore use uintmax_t to typecast rlim_t types
+and use %j to print it
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ open-vm-tools/lib/hgfsServer/hgfsServerLinux.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/lib/hgfsServer/hgfsServerLinux.c b/lib/hgfsServer/hgfsServerLinux.c
+index 2e73707d..a2fdb850 100644
+--- a/lib/hgfsServer/hgfsServerLinux.c
++++ b/lib/hgfsServer/hgfsServerLinux.c
+@@ -5294,8 +5294,8 @@ HgfsWriteCheckIORange(off_t offset, // IN:
+ goto exit;
+ }
+
+- LOG(6, ("%s: File Size limits: 0x%"FMT64"x 0x%"FMT64"x\n",
+- __FUNCTION__, fileSize.rlim_cur, fileSize.rlim_max));
++ LOG(6, ("%s: File Size limits: 0x%jx 0x%jx\n",
++ __FUNCTION__, (uintmax_t)fileSize.rlim_cur, (uintmax_t)fileSize.rlim_max));
+
+ /*
+ * Check the offset is within the file size range.
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0007-Use-configure-to-test-for-feature-instead-of-platfor.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0007-Use-configure-to-test-for-feature-instead-of-platfor.patch
index 5adf9b0f9..ad19fb24b 100644
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0007-Use-configure-to-test-for-feature-instead-of-platfor.patch
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0007-Use-configure-to-test-for-feature-instead-of-platfor.patch
@@ -29,7 +29,7 @@ Index: open-vm-tools/configure.ac
===================================================================
--- open-vm-tools.orig/configure.ac
+++ open-vm-tools/configure.ac
-@@ -798,6 +798,7 @@ AC_CHECK_FUNCS(
+@@ -892,6 +892,7 @@ AC_CHECK_FUNCS(
AC_CHECK_FUNCS([ecvt])
AC_CHECK_FUNCS([fcvt])
@@ -37,7 +37,7 @@ Index: open-vm-tools/configure.ac
AC_CHECK_FUNC([mkdtemp], [have_mkdtemp=yes])
-@@ -1063,10 +1064,13 @@ AC_PATH_PROG(
+@@ -1076,10 +1077,13 @@ AC_PATH_PROG(
###
AC_CHECK_HEADERS([crypt.h])
@@ -133,12 +133,3 @@ Index: open-vm-tools/lib/nicInfo/nicInfoPosix.c
# include <net/if.h>
#endif
#ifndef NO_DNET
-@@ -348,7 +352,7 @@ GuestInfoGetNicInfo(NicInfoV3 *nicInfo)
- *
- ******************************************************************************
- */
--#if defined(__FreeBSD__) || defined(__APPLE__) || defined(USERWORLD)
-+#if defined(NO_DNET) && defined(HAVE_GETIFADDRS)
-
- char *
- GuestInfoGetPrimaryIP(void)
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0008-use-posix-strerror_r-unless-gnu.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0008-use-posix-strerror_r-unless-gnu.patch
deleted file mode 100644
index 3d1291c9f..000000000
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0008-use-posix-strerror_r-unless-gnu.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From d4d1e7146ca2698089f6bd532f2fb8b9c1134ca7 Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Mon, 2 Jan 2017 14:39:27 +0000
-Subject: [PATCH 08/11] use posix strerror_r unless gnu
-
----
- open-vm-tools/lib/err/errPosix.c | 8 +++++---
- 1 file changed, 5 insertions(+), 3 deletions(-)
-
-Index: open-vm-tools/lib/err/errPosix.c
-===================================================================
---- open-vm-tools.orig/lib/err/errPosix.c
-+++ open-vm-tools/lib/err/errPosix.c
-@@ -63,11 +63,13 @@ ErrErrno2String(Err_Number errorNumber,
- {
- char *p;
-
--#if defined(linux) && !defined(N_PLAT_NLM) && !defined(__ANDROID__)
-+#if defined(__GLIBC__)
- p = strerror_r(errorNumber, buf, bufSize);
- #else
-- p = strerror(errorNumber);
--#endif
-+ if (strerror_r(errorNumber, buf, bufSize) != 0)
-+ snprintf(buf, bufSize, "unknown error %i", errorNumber);
-+ p = buf;
-+#endif /* defined __GLIBC__ */
- ASSERT(p != NULL);
- return p;
- }
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0009-Add-support-for-building-with-system-libtirpc.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0009-Add-support-for-building-with-system-libtirpc.patch
deleted file mode 100644
index 2bee5ac82..000000000
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0009-Add-support-for-building-with-system-libtirpc.patch
+++ /dev/null
@@ -1,342 +0,0 @@
-From 5ae6c662fefa621f4600559e299a7d97c2254e69 Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Sun, 16 Jul 2017 10:20:10 -0700
-Subject: [PATCH 1/3] Add support for building with system libtirpc
-
-Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- open-vm-tools/configure.ac | 14 ++++++++++++++
- open-vm-tools/lib/dynxdr/Makefile.am | 8 ++++++--
- open-vm-tools/lib/err/errPosix.c | 1 +
- open-vm-tools/lib/guestRpc/Makefile.am | 6 ++++++
- open-vm-tools/lib/misc/Makefile.am | 1 +
- open-vm-tools/lib/netUtil/Makefile.am | 4 ++++
- open-vm-tools/lib/nicInfo/Makefile.am | 2 ++
- open-vm-tools/lib/rpcChannel/Makefile.am | 4 ++++
- open-vm-tools/lib/slashProc/Makefile.am | 4 ++++
- open-vm-tools/lib/string/bsd_output_shared.c | 2 +-
- open-vm-tools/libguestlib/Makefile.am | 2 ++
- open-vm-tools/rpctool/Makefile.am | 3 +++
- open-vm-tools/rpctool/rpctool.c | 2 ++
- open-vm-tools/services/plugins/dndcp/Makefile.am | 2 ++
- open-vm-tools/services/plugins/guestInfo/Makefile.am | 1 +
- open-vm-tools/services/plugins/resolutionSet/Makefile.am | 2 ++
- open-vm-tools/services/plugins/vix/Makefile.am | 2 ++
- open-vm-tools/services/plugins/vmbackup/Makefile.am | 2 ++
- open-vm-tools/toolbox/Makefile.am | 2 ++
- 19 files changed, 61 insertions(+), 3 deletions(-)
-
-Index: open-vm-tools/configure.ac
-===================================================================
---- open-vm-tools.orig/configure.ac
-+++ open-vm-tools/configure.ac
-@@ -405,6 +405,20 @@ AC_VMW_CHECK_LIB([fuse],
- AC_MSG_WARN([Fuse is missing, vmblock-fuse/vmhgfs-fuse will be disabled.])])
-
- #
-+# Check for libtirpc
-+#
-+AC_VMW_CHECK_LIB([libtirpc],
-+ [LIBTIRPC],
-+ [libtirpc],
-+ [],
-+ [],
-+ [rpc/xdr.h],
-+ [xdr_void],
-+ [have_libtirpc=yes],
-+ [have_libtitirpc=no;
-+ AC_MSG_WARN([libtirpc is missing.])])
-+
-+#
- # Check for PAM.
- #
- AC_ARG_WITH([pam],
-Index: open-vm-tools/lib/dynxdr/Makefile.am
-===================================================================
---- open-vm-tools.orig/lib/dynxdr/Makefile.am
-+++ open-vm-tools/lib/dynxdr/Makefile.am
-@@ -17,7 +17,11 @@
-
- noinst_LTLIBRARIES = libDynxdr.la
-
--libDynxdr_la_SOURCES =
-+libDynxdr_la_SOURCES =
- libDynxdr_la_SOURCES += dynxdr.c
- libDynxdr_la_SOURCES += xdrutil.c
--libDynxdr_la_CPPFLAGS = -Wno-incompatible-pointer-types
-+libDynxdr_la_CPPFLAGS = @LIBTIRPC_CPPFLAGS@ -Wno-incompatible-pointer-types
-+
-+libDynxdr_la_LIBADD =
-+libDynxdr_la_LIBADD += @LIBTIRPC_LIBS@
-+
-Index: open-vm-tools/lib/err/errPosix.c
-===================================================================
---- open-vm-tools.orig/lib/err/errPosix.c
-+++ open-vm-tools/lib/err/errPosix.c
-@@ -31,6 +31,7 @@
- #include <errno.h>
- #include <string.h>
- #include <locale.h>
-+#include <stdio.h>
-
- #include "vmware.h"
- #include "errInt.h"
-Index: open-vm-tools/lib/guestRpc/Makefile.am
-===================================================================
---- open-vm-tools.orig/lib/guestRpc/Makefile.am
-+++ open-vm-tools/lib/guestRpc/Makefile.am
-@@ -20,6 +20,12 @@ noinst_LTLIBRARIES = libGuestRpc.la
- libGuestRpc_la_SOURCES =
- libGuestRpc_la_SOURCES += nicinfo_xdr.c
-
-+libGuestRpc_la_CPPFLAGS =
-+libGuestRpc_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
-+
-+libGuestRpc_la_LIBADD =
-+libGuestRpc_la_LIBADD += @LIBTIRPC_LIBS@
-+
- # XXX: Autoreconf complains about this and recommends using AM_CFLAGS instead.
- # Problem is, $(CFLAGS) is appended to the compiler command line after AM_CFLAGS
- # and after libGuestRpc_la_CFLAGS, so "-Wall -Werror" will override this flag.
-Index: open-vm-tools/lib/misc/Makefile.am
-===================================================================
---- open-vm-tools.orig/lib/misc/Makefile.am
-+++ open-vm-tools/lib/misc/Makefile.am
-@@ -52,4 +52,5 @@ libMisc_la_SOURCES += utilMem.c
- libMisc_la_SOURCES += vmstdio.c
- libMisc_la_SOURCES += strutil.c
- libMisc_la_SOURCES += vthreadBase.c
-+libMisc_la_CPPFLAGS = -Wno-error=int-conversion
-
-Index: open-vm-tools/lib/netUtil/Makefile.am
-===================================================================
---- open-vm-tools.orig/lib/netUtil/Makefile.am
-+++ open-vm-tools/lib/netUtil/Makefile.am
-@@ -20,3 +20,7 @@ noinst_LTLIBRARIES = libNetUtil.la
- libNetUtil_la_SOURCES =
- libNetUtil_la_SOURCES += netUtilLinux.c
-
-+libNetUtil_la_CPPFLAGS =
-+libNetUtil_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
-+
-+libNetUtil_la_LIBADD = @LIBTIRPC_LIBS@
-Index: open-vm-tools/lib/nicInfo/Makefile.am
-===================================================================
---- open-vm-tools.orig/lib/nicInfo/Makefile.am
-+++ open-vm-tools/lib/nicInfo/Makefile.am
-@@ -25,12 +25,14 @@ libNicInfo_la_SOURCES += nicInfoPosix.c
-
- libNicInfo_la_CPPFLAGS =
- libNicInfo_la_CPPFLAGS += @GLIB2_CPPFLAGS@
-+libNicInfo_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
-
- AM_CFLAGS = $(DNET_CPPFLAGS)
- if USE_SLASH_PROC
- AM_CFLAGS += -DUSE_SLASH_PROC
- endif
- libNicInfo_la_LIBADD =
-+libNicInfo_la_LIBADD += @LIBTIRPC_LIBS@
- if HAVE_DNET
- libNicInfo_la_LIBADD += @DNET_LIBS@
- endif
-Index: open-vm-tools/lib/rpcChannel/Makefile.am
-===================================================================
---- open-vm-tools.orig/lib/rpcChannel/Makefile.am
-+++ open-vm-tools/lib/rpcChannel/Makefile.am
-@@ -27,3 +27,7 @@ endif
-
- libRpcChannel_la_CPPFLAGS =
- libRpcChannel_la_CPPFLAGS += @VMTOOLS_CPPFLAGS@
-+libRpcChannel_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
-+
-+libRpcChannel_la_LIBADD =
-+libRpcChannel_la_LIBADD += @LIBTIRPC_LIBS@
-Index: open-vm-tools/lib/slashProc/Makefile.am
-===================================================================
---- open-vm-tools.orig/lib/slashProc/Makefile.am
-+++ open-vm-tools/lib/slashProc/Makefile.am
-@@ -22,6 +22,10 @@ libSlashProc_la_SOURCES += net.c
-
- libSlashProc_la_CPPFLAGS =
- libSlashProc_la_CPPFLAGS += @GLIB2_CPPFLAGS@
-+libSlashProc_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
-+
-+libSlashProc_la_LIBADD =
-+libSlashProc_la_LIBADD += @LIBTIRPC_LIBS@
-
- AM_CFLAGS = $(DNET_CPPFLAGS)
-
-Index: open-vm-tools/lib/string/bsd_output_shared.c
-===================================================================
---- open-vm-tools.orig/lib/string/bsd_output_shared.c
-+++ open-vm-tools/lib/string/bsd_output_shared.c
-@@ -38,7 +38,7 @@
- //#include <sys/cdefs.h>
-
- #if !defined(STR_NO_WIN32_LIBS) && !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__NetBSD__) && !defined(__ANDROID__)
--
-+#define _GNU_SOURCE
- #include <stdio.h>
- #include <stdlib.h>
- #ifndef _WIN32
-Index: open-vm-tools/libguestlib/Makefile.am
-===================================================================
---- open-vm-tools.orig/libguestlib/Makefile.am
-+++ open-vm-tools/libguestlib/Makefile.am
-@@ -22,6 +22,7 @@ AM_CFLAGS += -I$(top_srcdir)/include
-
- libguestlib_la_LIBADD =
- libguestlib_la_LIBADD += @VMTOOLS_LIBS@
-+libguestlib_la_LIBADD += @LIBTIRPC_LIBS@
-
- libguestlib_la_SOURCES =
- libguestlib_la_SOURCES += guestlibV3_xdr.c
-@@ -56,6 +57,7 @@ CFLAGS += -Wno-unused
- libguestlib_la_CPPFLAGS =
- libguestlib_la_CPPFLAGS += -DVMTOOLS_USE_GLIB
- libguestlib_la_CPPFLAGS += @GLIB2_CPPFLAGS@
-+libguestlib_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
-
- EXTRA_DIST = vmguestlib.pc.in
-
-Index: open-vm-tools/rpctool/Makefile.am
-===================================================================
---- open-vm-tools.orig/rpctool/Makefile.am
-+++ open-vm-tools/rpctool/Makefile.am
-@@ -17,10 +17,13 @@
-
- bin_PROGRAMS = vmware-rpctool
-
-+vmware_rpctool_CFLAGS= @LIBTIRPC_LIBS@
-+
- vmware_rpctool_SOURCES =
- vmware_rpctool_SOURCES += rpctool.c
-
- vmware_rpctool_LDADD =
-+vmware_rpctool_LDADD += @LIBTIRPC_LIBS@
- vmware_rpctool_LDADD += ../lib/rpcOut/libRpcOut.la
- vmware_rpctool_LDADD += ../lib/message/libMessage.la
- vmware_rpctool_LDADD += ../lib/backdoor/libBackdoor.la
-Index: open-vm-tools/rpctool/rpctool.c
-===================================================================
---- open-vm-tools.orig/rpctool/rpctool.c
-+++ open-vm-tools/rpctool/rpctool.c
-@@ -23,6 +23,8 @@
- */
-
- #ifndef _WIN32
-+#define _GNU_SOURCE
-+#include <signal.h>
- #include "sigPosixRegs.h"
- #include <errno.h>
- #include <stdint.h>
-Index: open-vm-tools/services/plugins/dndcp/Makefile.am
-===================================================================
---- open-vm-tools.orig/services/plugins/dndcp/Makefile.am
-+++ open-vm-tools/services/plugins/dndcp/Makefile.am
-@@ -23,6 +23,7 @@ plugin_LTLIBRARIES = libdndcp.la
- libdndcp_la_CPPFLAGS =
- libdndcp_la_CPPFLAGS += @GTK_CPPFLAGS@
- libdndcp_la_CPPFLAGS += @PLUGIN_CPPFLAGS@
-+libdndcp_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
- libdndcp_la_CPPFLAGS += -I$(top_srcdir)/services/plugins/dndcp/dnd
- libdndcp_la_CPPFLAGS += -I$(top_srcdir)/services/plugins/dndcp/dndGuest
- libdndcp_la_CPPFLAGS += -I$(top_srcdir)/services/plugins/dndcp/stringxx
-@@ -44,6 +45,7 @@ libdndcp_la_LIBADD += @GTK_LIBS@
- libdndcp_la_LIBADD += @GTKMM_LIBS@
- libdndcp_la_LIBADD += @VMTOOLS_LIBS@
- libdndcp_la_LIBADD += @HGFS_LIBS@
-+libdndcp_la_LIBADD += @LIBTIRPC_LIBS@
- libdndcp_la_LIBADD += $(top_builddir)/lib/hgfsUri/hgfsUriPosix.lo
-
- libdndcp_la_SOURCES =
-Index: open-vm-tools/services/plugins/guestInfo/Makefile.am
-===================================================================
---- open-vm-tools.orig/services/plugins/guestInfo/Makefile.am
-+++ open-vm-tools/services/plugins/guestInfo/Makefile.am
-@@ -22,6 +22,7 @@ plugin_LTLIBRARIES = libguestInfo.la
-
- libguestInfo_la_CPPFLAGS =
- libguestInfo_la_CPPFLAGS += @PLUGIN_CPPFLAGS@
-+libguestInfo_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
-
- libguestInfo_la_LDFLAGS =
- libguestInfo_la_LDFLAGS += @PLUGIN_LDFLAGS@
-Index: open-vm-tools/services/plugins/resolutionSet/Makefile.am
-===================================================================
---- open-vm-tools.orig/services/plugins/resolutionSet/Makefile.am
-+++ open-vm-tools/services/plugins/resolutionSet/Makefile.am
-@@ -21,6 +21,7 @@ plugin_LTLIBRARIES = libresolutionSet.la
- libresolutionSet_la_CPPFLAGS =
- libresolutionSet_la_CPPFLAGS += @GTK_CPPFLAGS@
- libresolutionSet_la_CPPFLAGS += @PLUGIN_CPPFLAGS@
-+libresolutionSet_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
- libresolutionSet_la_CPPFLAGS += -DRESOLUTION_X11
-
- libresolutionSet_la_LDFLAGS =
-@@ -30,6 +31,7 @@ libresolutionSet_la_LIBADD =
- libresolutionSet_la_LIBADD += @COMMON_XLIBS@
- libresolutionSet_la_LIBADD += @GTK_LIBS@
- libresolutionSet_la_LIBADD += @VMTOOLS_LIBS@
-+libresolutionSet_la_LIBADD += @LIBTIRPC_LIBS@
-
- libresolutionSet_la_SOURCES =
- libresolutionSet_la_SOURCES += libvmwarectrl.c
-Index: open-vm-tools/services/plugins/vix/Makefile.am
-===================================================================
---- open-vm-tools.orig/services/plugins/vix/Makefile.am
-+++ open-vm-tools/services/plugins/vix/Makefile.am
-@@ -20,6 +20,7 @@ plugin_LTLIBRARIES = libvix.la
-
- libvix_la_CPPFLAGS =
- libvix_la_CPPFLAGS += @PLUGIN_CPPFLAGS@
-+libvix_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
- libvix_la_CPPFLAGS += -I$(top_srcdir)/vgauth/public
-
- libvix_la_LDFLAGS =
-@@ -29,6 +30,7 @@ libvix_la_LIBADD =
- libvix_la_LIBADD += @VIX_LIBADD@
- libvix_la_LIBADD += @VMTOOLS_LIBS@
- libvix_la_LIBADD += @HGFS_LIBS@
-+libvix_la_LIBADD += @LIBTIRPC_LIBS@
- libvix_la_LIBADD += $(top_builddir)/lib/auth/libAuth.la
- libvix_la_LIBADD += $(top_builddir)/lib/foundryMsg/libFoundryMsg.la
- libvix_la_LIBADD += $(top_builddir)/lib/impersonate/libImpersonate.la
-Index: open-vm-tools/services/plugins/vmbackup/Makefile.am
-===================================================================
---- open-vm-tools.orig/services/plugins/vmbackup/Makefile.am
-+++ open-vm-tools/services/plugins/vmbackup/Makefile.am
-@@ -20,6 +20,7 @@ plugin_LTLIBRARIES = libvmbackup.la
-
- libvmbackup_la_CPPFLAGS =
- libvmbackup_la_CPPFLAGS += @PLUGIN_CPPFLAGS@
-+libvmbackup_la_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
-
- libvmbackup_la_LDFLAGS =
- libvmbackup_la_LDFLAGS += @PLUGIN_LDFLAGS@
-@@ -27,6 +28,7 @@ libvmbackup_la_LDFLAGS += @PLUGIN_LDFLAG
- libvmbackup_la_LIBADD =
- libvmbackup_la_LIBADD += @GOBJECT_LIBS@
- libvmbackup_la_LIBADD += @VMTOOLS_LIBS@
-+libvmbackup_la_LIBADD += @LIBTIRPC_LIBS@
-
- libvmbackup_la_SOURCES =
- libvmbackup_la_SOURCES += nullProvider.c
-Index: open-vm-tools/toolbox/Makefile.am
-===================================================================
---- open-vm-tools.orig/toolbox/Makefile.am
-+++ open-vm-tools/toolbox/Makefile.am
-@@ -20,9 +20,11 @@ bin_PROGRAMS = vmware-toolbox-cmd
- vmware_toolbox_cmd_LDADD =
- vmware_toolbox_cmd_LDADD += ../libguestlib/libguestlib.la
- vmware_toolbox_cmd_LDADD += @VMTOOLS_LIBS@
-+vmware_toolbox_cmd_LDADD += @LIBTIRPC_LIBS@
-
- vmware_toolbox_cmd_CPPFLAGS =
- vmware_toolbox_cmd_CPPFLAGS += @VMTOOLS_CPPFLAGS@
-+vmware_toolbox_cmd_CPPFLAGS += @LIBTIRPC_CPPFLAGS@
-
- vmware_toolbox_cmd_SOURCES =
- vmware_toolbox_cmd_SOURCES += toolbox-cmd.c
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0010-gnu-ucontext.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0010-gnu-ucontext.patch
deleted file mode 100644
index c9beac1fc..000000000
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0010-gnu-ucontext.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From 27442e2dd287d393d7b3f8bf164a887affef84df Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Wed, 18 Nov 2015 10:27:51 +0000
-Subject: [PATCH 10/11] gnu-ucontext
-
----
- open-vm-tools/lib/include/sigPosixRegs.h | 24 ++++++++++++------------
- 1 file changed, 12 insertions(+), 12 deletions(-)
-
-Index: open-vm-tools/lib/include/sigPosixRegs.h
-===================================================================
---- open-vm-tools.orig/lib/include/sigPosixRegs.h
-+++ open-vm-tools/lib/include/sigPosixRegs.h
-@@ -33,7 +33,7 @@
- #include "includeCheck.h"
-
-
--#if __linux__ // We need the REG_foo offsets in the gregset_t;
-+#if defined(__GLIBC__) // We need the REG_foo offsets in the gregset_t;
- # define _GNU_SOURCE // _GNU_SOURCE maps to __USE_GNU
-
- /* And, the REG_foo definitions conflict with our own in x86.h */
-@@ -73,7 +73,7 @@
- #include <sys/ucontext.h>
- #endif
-
--#if __linux__
-+#if defined(__GLIBC__)
- # if defined(__x86_64__)
- # undef REG_RAX
- # undef REG_RBX
-@@ -199,7 +199,7 @@
- #define SC_ESP(uc) ((unsigned long) (uc)->uc_mcontext.mc_esp)
- #define SC_EIP(uc) ((unsigned long) (uc)->uc_mcontext.mc_eip)
- #endif
--#elif defined (sun)
-+#elif !defined (__GLIBC__)
- #ifdef __x86_64__
- #define SC_EAX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_RAX])
- #define SC_EBX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_RBX])
-@@ -219,15 +219,15 @@
- #define SC_R14(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_R14])
- #define SC_R15(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_R15])
- #else
--#define SC_EAX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[EAX])
--#define SC_EBX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[EBX])
--#define SC_ECX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[ECX])
--#define SC_EDX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[EDX])
--#define SC_EDI(uc) ((unsigned long) (uc)->uc_mcontext.gregs[EDI])
--#define SC_ESI(uc) ((unsigned long) (uc)->uc_mcontext.gregs[ESI])
--#define SC_EBP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[EBP])
--#define SC_ESP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[ESP])
--#define SC_EIP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[EIP])
-+#define SC_EAX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_EAX])
-+#define SC_EBX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_EBX])
-+#define SC_ECX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_ECX])
-+#define SC_EDX(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_EDX])
-+#define SC_EDI(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_EDI])
-+#define SC_ESI(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_ESI])
-+#define SC_EBP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_EBP])
-+#define SC_ESP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_ESP])
-+#define SC_EIP(uc) ((unsigned long) (uc)->uc_mcontext.gregs[REG_EIP])
- #endif
- #elif defined(ANDROID_X86)
- #define SC_EAX(uc) ((unsigned long) (uc)->uc_mcontext.eax)
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/fix-subdir-objects-configure-error.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/fix-subdir-objects-configure-error.patch
new file mode 100644
index 000000000..1a6bfdb09
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/fix-subdir-objects-configure-error.patch
@@ -0,0 +1,12 @@
+Index: open-vm-tools/configure.ac
+===================================================================
+--- open-vm-tools.orig/configure.ac
++++ open-vm-tools/configure.ac
+@@ -303,6 +303,7 @@ AC_ARG_ENABLE(
+ [],
+ [enable_resolutionkms="auto"])
+
++AM_INIT_AUTOMAKE([subdir-objects])
+ AM_INIT_AUTOMAKE
+
+ ###
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/tools.conf b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/tools.conf
index f6cae70cc..f6cae70cc 100644
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/tools.conf
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/tools.conf
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/vmtoolsd.init b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/vmtoolsd.init
index 38280464a..38280464a 100644
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/vmtoolsd.init
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/vmtoolsd.init
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/vmtoolsd.service b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/vmtoolsd.service
index d30e38055..d30e38055 100644
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/vmtoolsd.service
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/vmtoolsd.service
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.1.5.bb b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.3.0.bb
index c32d2c5b3..478d762cf 100644
--- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.1.5.bb
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.3.0.bb
@@ -14,7 +14,7 @@ HOMEPAGE = "https://github.com/vmware/open-vm-tools"
SECTION = "vmware-tools"
LICENSE = "LGPL-2.0 & GPL-2.0 & BSD & CDDL-1.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b66ba4cb4fc017682c95efc300410e79"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=559317809c5444fb39ceaf6ac45c43ac"
LICENSE_modules/freebsd/vmblock = "BSD"
LICENSE_modules/freebsd/vmmemctl = "GPL-2.0"
LICENSE_modules/freebsd/vmxnet = "GPL-2.0"
@@ -27,26 +27,22 @@ SRC_URI = "git://github.com/vmware/open-vm-tools.git;protocol=https \
file://vmtoolsd.init \
file://0001-configure.ac-don-t-use-dnet-config.patch \
file://0002-add-include-sys-sysmacros.h.patch \
- file://0001-Remove-assumptions-about-glibc-being-only-libc-imple.patch \
- file://0002-include-poll.h-instead-of-obsolete-sys-poll.h.patch \
- file://0003-Rename-poll.h-to-vm_poll.h.patch \
- file://0004-Add-Wno-incompatible-pointer-types-and-Wno-error-add.patch \
file://0005-Use-configure-test-for-struct-timespec.patch \
file://0006-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch \
file://0007-Use-configure-to-test-for-feature-instead-of-platfor.patch \
- file://0008-use-posix-strerror_r-unless-gnu.patch \
file://0011-Use-configure-test-for-sys-stat.h-include.patch \
+ file://fix-subdir-objects-configure-error.patch \
+ file://0001-include-poll.h-instead-of-sys-poll.h.patch \
+ file://0002-Rename-poll.h-to-vm_poll.h.patch \
+ file://0003-use-posix-strerror_r-unless-on-gnu-libc-system.patch \
+ file://0004-Use-uintmax_t-for-handling-rlim_t.patch \
+ file://0001-Use-off64_t-instead-of-__off64_t.patch \
"
-SRC_URI_append_libc-musl = "\
- file://0009-Add-support-for-building-with-system-libtirpc.patch \
- file://0010-gnu-ucontext.patch \
- "
-SRCREV = "854c0bb374612f7e633b448ca273f970f154458b"
+SRCREV = "2147df6aabe639fc5ff423ed791a8e7f02bf8d0a"
S = "${WORKDIR}/git/open-vm-tools"
-DEPENDS = "glib-2.0 glib-2.0-native util-linux libdnet procps"
-DEPENDS_append_libc-musl = " libtirpc"
+DEPENDS = "glib-2.0 glib-2.0-native util-linux libdnet procps libtirpc"
# open-vm-tools is supported only on x86.
COMPATIBLE_HOST = '(x86_64.*|i.86.*)-linux'
diff --git a/meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb b/meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb
index 913290cd9..67b7c2975 100644
--- a/meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb
+++ b/meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb
@@ -88,7 +88,3 @@ do_install () {
touch ${D}${localstatedir}/run/openct/status
chmod 644 ${D}${localstatedir}/run/openct/status
}
-
-pkg_postinst_${PN} () {
- ln -sf ctapi/libopenctapi.so ${libdir}/libopenctapi.so
-}
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Add-missing-multi-line-separator.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Add-missing-multi-line-separator.patch
new file mode 100644
index 000000000..513597b8c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Add-missing-multi-line-separator.patch
@@ -0,0 +1,36 @@
+From 60857229aab13ccc426572a43ab891409bb76ea4 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 9 Sep 2018 22:52:55 -0700
+Subject: [PATCH] Add missing multi-line separator
+
+Otherwise this fails to build ( found on mips )
+
+Fixes
+contrib/modules/surface_matching/src/hash_murmur86.hpp:97:15: error:
+expected constructor, destructor, or type conversion before '(' token
+ && defined(__GNUC__) && (__GNUC__>4 || (__GNUC__==4 &&
+__GNUC_MINOR__>=3))
+ ^
+
+Upstream-Status: Submitted [https://github.com/opencv/opencv_contrib/pull/1764]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ modules/surface_matching/src/hash_murmur86.hpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/surface_matching/src/hash_murmur86.hpp b/modules/surface_matching/src/hash_murmur86.hpp
+index 1edf6bf4..0477d37e 100644
+--- a/modules/surface_matching/src/hash_murmur86.hpp
++++ b/modules/surface_matching/src/hash_murmur86.hpp
+@@ -93,7 +93,7 @@ void hashMurmurx86 ( const void * key, const int len, const uint seed, void * ou
+ /* Now find best way we can to READ_UINT32 */
+ #ifndef WORDS_BIGENDIAN
+ # define READ_UINT32(ptr) (*((uint32_t*)(ptr)))
+-#elif defined(WORDS_BIGENDIAN)
++#elif defined(WORDS_BIGENDIAN) \
+ && defined(__GNUC__) && (__GNUC__>4 || (__GNUC__==4 && __GNUC_MINOR__>=3))
+ # define READ_UINT32(ptr) (__builtin_bswap32(*((uint32_t*)(ptr))))
+ #endif
+--
+2.18.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Check-for-clang-before-using-isystem.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Check-for-clang-before-using-isystem.patch
new file mode 100644
index 000000000..319071a31
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Check-for-clang-before-using-isystem.patch
@@ -0,0 +1,32 @@
+From fa76d8646bb2b9b514728eeef41afed7c43a36f2 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 11 Sep 2018 18:18:33 -0700
+Subject: [PATCH] Check for clang before using -isystem
+
+When cross compiling with clang, the internal C++ headers are not found
+when adding sysroot to -isystem, that is redundant anyway because it
+will look for headers insider --sysroot path with same quality as it
+would do with -isystem otherwise
+
+Upstream-Status: Submitted [https://github.com/opencv/opencv/pull/12504]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ cmake/OpenCVUtils.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cmake/OpenCVUtils.cmake b/cmake/OpenCVUtils.cmake
+index fae91c165f..60c20192dc 100644
+--- a/cmake/OpenCVUtils.cmake
++++ b/cmake/OpenCVUtils.cmake
+@@ -259,7 +259,7 @@ function(ocv_include_directories)
+ ocv_is_opencv_directory(__is_opencv_dir "${dir}")
+ if(__is_opencv_dir)
+ list(APPEND __add_before "${dir}")
+- elseif(CV_GCC AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "6.0" AND
++ elseif(((CV_GCC AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "6.0") OR CV_CLANG) AND
+ dir MATCHES "/usr/include$")
+ # workaround for GCC 6.x bug
+ else()
+--
+2.18.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Dont-use-isystem.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Dont-use-isystem.patch
index 6dd48fcdc..bf0b80a30 100644
--- a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Dont-use-isystem.patch
+++ b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Dont-use-isystem.patch
@@ -1,26 +1,30 @@
-From 2bc6bb9831d07f035fea74ea745cea43dd5f9ef9 Mon Sep 17 00:00:00 2001
+From 7144c44ec70dee73a628463b99ffeed74b1a8ef6 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 9 Sep 2017 23:48:31 -0700
+Date: Tue, 11 Sep 2018 00:21:18 -0700
Subject: [PATCH] Dont use isystem
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
+clang really does not like it
+
Upstream-Status: Pending
- cmake/OpenCVPCHSupport.cmake | 10 ++++------
- 1 file changed, 4 insertions(+), 6 deletions(-)
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ cmake/OpenCVPCHSupport.cmake | 2 ++
+ 1 file changed, 2 insertions(+)
-Index: git/cmake/OpenCVPCHSupport.cmake
-===================================================================
---- git.orig/cmake/OpenCVPCHSupport.cmake
-+++ git/cmake/OpenCVPCHSupport.cmake
-@@ -17,7 +17,8 @@ IF(CMAKE_COMPILER_IS_GNUCXX)
- IF(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.2.0")
+diff --git a/cmake/OpenCVPCHSupport.cmake b/cmake/OpenCVPCHSupport.cmake
+index f9b1b48b65..fe27a136f5 100644
+--- a/cmake/OpenCVPCHSupport.cmake
++++ b/cmake/OpenCVPCHSupport.cmake
+@@ -18,6 +18,8 @@ IF(CV_GCC)
SET(PCHSupport_FOUND TRUE)
ENDIF()
--
+
+ SET(CMAKE_INCLUDE_SYSTEM_FLAG_C "-I")
+ SET(CMAKE_INCLUDE_SYSTEM_FLAG_CXX "-I")
SET(_PCH_include_prefix "-I")
SET(_PCH_isystem_prefix "-isystem")
SET(_PCH_define_prefix "-D")
+--
+2.18.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Temporarliy-work-around-deprecated-ffmpeg-RAW-functi.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Temporarliy-work-around-deprecated-ffmpeg-RAW-functi.patch
new file mode 100644
index 000000000..63cb7f943
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Temporarliy-work-around-deprecated-ffmpeg-RAW-functi.patch
@@ -0,0 +1,33 @@
+From 7d31f41d2a6759e244983504ce855fc32916b97a Mon Sep 17 00:00:00 2001
+From: Jason Wessel <jason.wessel@windriver.com>
+Date: Wed, 9 May 2018 13:33:59 -0700
+Subject: [PATCH] Temporarliy work around deprecated ffmpeg RAW function
+ compile failure until next uprev
+
+Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
+---
+ modules/videoio/src/cap_ffmpeg_impl.hpp | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/modules/videoio/src/cap_ffmpeg_impl.hpp b/modules/videoio/src/cap_ffmpeg_impl.hpp
+index 5a9b10f075..97c6b74b07 100644
+--- a/modules/videoio/src/cap_ffmpeg_impl.hpp
++++ b/modules/videoio/src/cap_ffmpeg_impl.hpp
+@@ -667,6 +667,14 @@ struct ImplMutex::Impl
+
+ #endif
+
++/* NOTE This is deprecated in ffmpeg and the code should be removed */
++#ifndef AVFMT_RAWPICTURE
++#define AVFMT_RAWPICTURE 0x0020
++#endif /* AVFMT_RAWPICTURE */
++#ifndef CODEC_FLAG_GLOBAL_HEADER
++#define CODEC_FLAG_GLOBAL_HEADER AV_CODEC_FLAG_GLOBAL_HEADER
++#endif
++
+ void ImplMutex::init()
+ {
+ impl = new Impl();
+--
+2.11.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-build-workaround-GCC-7.1.1-compilation-issue-with-sa.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-build-workaround-GCC-7.1.1-compilation-issue-with-sa.patch
deleted file mode 100644
index 0140633db..000000000
--- a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-build-workaround-GCC-7.1.1-compilation-issue-with-sa.patch
+++ /dev/null
@@ -1,127 +0,0 @@
-Upstream-Status: Backport [https://github.com/opencv/opencv/pull/9376/commits/0d854db361106dfcb055231fd0112c5b85ef2287]
-
-Fix CVEs for opencv 3.3.
-
-* CVE-2017-12597
-* CVE-2017-12598
-* CVE-2017-12599
-* CVE-2017-12600
-* CVE-2017-12601
-* CVE-2017-12602
-* CVE-2017-12603
-* CVE-2017-12604
-* CVE-2017-12605
-* CVE-2017-12606
-* CVE-2017-12862
-* CVE-2017-12863
-* CVE-2017-12864
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
----
-From 0d854db361106dfcb055231fd0112c5b85ef2287 Mon Sep 17 00:00:00 2001
-From: Alexander Alekhin <alexander.a.alekhin@gmail.com>
-Date: Tue, 15 Aug 2017 21:45:05 +0000
-Subject: [PATCH 1/3] build: workaround GCC 7.1.1 compilation issue with
- sanitize flags
-
-Version: gcc (GCC) 7.1.1 20170622 (Red Hat 7.1.1-3)
-Flags: -fsanitize=address,undefined
----
- modules/ts/src/cuda_test.cpp | 56 ++++++++++++++++++++++++++------------------
- 1 file changed, 33 insertions(+), 23 deletions(-)
-
-diff --git a/modules/ts/src/cuda_test.cpp b/modules/ts/src/cuda_test.cpp
-index a48e0a087..eb4cee136 100644
---- a/modules/ts/src/cuda_test.cpp
-+++ b/modules/ts/src/cuda_test.cpp
-@@ -322,16 +322,20 @@ namespace cvtest
-
- if (m1.size() != m2.size())
- {
-- return AssertionFailure() << "Matrices \"" << expr1 << "\" and \"" << expr2 << "\" have different sizes : \""
-- << expr1 << "\" [" << PrintToString(m1.size()) << "] vs \""
-- << expr2 << "\" [" << PrintToString(m2.size()) << "]";
-+ std::stringstream msg;
-+ msg << "Matrices \"" << expr1 << "\" and \"" << expr2 << "\" have different sizes : \""
-+ << expr1 << "\" [" << PrintToString(m1.size()) << "] vs \""
-+ << expr2 << "\" [" << PrintToString(m2.size()) << "]";
-+ return AssertionFailure() << msg.str();
- }
-
- if (m1.type() != m2.type())
- {
-- return AssertionFailure() << "Matrices \"" << expr1 << "\" and \"" << expr2 << "\" have different types : \""
-- << expr1 << "\" [" << PrintToString(MatType(m1.type())) << "] vs \""
-- << expr2 << "\" [" << PrintToString(MatType(m2.type())) << "]";
-+ std::stringstream msg;
-+ msg << "Matrices \"" << expr1 << "\" and \"" << expr2 << "\" have different types : \""
-+ << expr1 << "\" [" << PrintToString(MatType(m1.type())) << "] vs \""
-+ << expr2 << "\" [" << PrintToString(MatType(m2.type())) << "]";
-+ return AssertionFailure() << msg.str();
- }
-
- Mat diff;
-@@ -343,12 +347,14 @@ namespace cvtest
-
- if (maxVal > eps)
- {
-- return AssertionFailure() << "The max difference between matrices \"" << expr1 << "\" and \"" << expr2
-- << "\" is " << maxVal << " at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ")"
-- << ", which exceeds \"" << eps_expr << "\", where \""
-- << expr1 << "\" at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ") evaluates to " << printMatVal(m1, maxLoc) << ", \""
-- << expr2 << "\" at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ") evaluates to " << printMatVal(m2, maxLoc) << ", \""
-- << eps_expr << "\" evaluates to " << eps;
-+ std::stringstream msg;
-+ msg << "The max difference between matrices \"" << expr1 << "\" and \"" << expr2
-+ << "\" is " << maxVal << " at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ")"
-+ << ", which exceeds \"" << eps_expr << "\", where \""
-+ << expr1 << "\" at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ") evaluates to " << printMatVal(m1, maxLoc) << ", \""
-+ << expr2 << "\" at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ") evaluates to " << printMatVal(m2, maxLoc) << ", \""
-+ << eps_expr << "\" evaluates to " << eps;
-+ return AssertionFailure() << msg.str();
- }
-
- return AssertionSuccess();
-@@ -469,9 +475,11 @@ namespace cvtest
- {
- if (gold.size() != actual.size())
- {
-- return testing::AssertionFailure() << "KeyPoints size mistmach\n"
-- << "\"" << gold_expr << "\" : " << gold.size() << "\n"
-- << "\"" << actual_expr << "\" : " << actual.size();
-+ std::stringstream msg;
-+ msg << "KeyPoints size mistmach\n"
-+ << "\"" << gold_expr << "\" : " << gold.size() << "\n"
-+ << "\"" << actual_expr << "\" : " << actual.size();
-+ return AssertionFailure() << msg.str();
- }
-
- std::sort(actual.begin(), actual.end(), KeyPointLess());
-@@ -484,14 +492,16 @@ namespace cvtest
-
- if (!keyPointsEquals(p1, p2))
- {
-- return testing::AssertionFailure() << "KeyPoints differ at " << i << "\n"
-- << "\"" << gold_expr << "\" vs \"" << actual_expr << "\" : \n"
-- << "pt : " << testing::PrintToString(p1.pt) << " vs " << testing::PrintToString(p2.pt) << "\n"
-- << "size : " << p1.size << " vs " << p2.size << "\n"
-- << "angle : " << p1.angle << " vs " << p2.angle << "\n"
-- << "response : " << p1.response << " vs " << p2.response << "\n"
-- << "octave : " << p1.octave << " vs " << p2.octave << "\n"
-- << "class_id : " << p1.class_id << " vs " << p2.class_id;
-+ std::stringstream msg;
-+ msg << "KeyPoints differ at " << i << "\n"
-+ << "\"" << gold_expr << "\" vs \"" << actual_expr << "\" : \n"
-+ << "pt : " << testing::PrintToString(p1.pt) << " vs " << testing::PrintToString(p2.pt) << "\n"
-+ << "size : " << p1.size << " vs " << p2.size << "\n"
-+ << "angle : " << p1.angle << " vs " << p2.angle << "\n"
-+ << "response : " << p1.response << " vs " << p2.response << "\n"
-+ << "octave : " << p1.octave << " vs " << p2.octave << "\n"
-+ << "class_id : " << p1.class_id << " vs " << p2.class_id;
-+ return AssertionFailure() << msg.str();
- }
- }
-
---
-2.14.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-carotene-don-t-use-__asm__-with-aarch64.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-carotene-don-t-use-__asm__-with-aarch64.patch
deleted file mode 100644
index a1a56e0e4..000000000
--- a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-carotene-don-t-use-__asm__-with-aarch64.patch
+++ /dev/null
@@ -1,1250 +0,0 @@
-From 353fc92618ce0dc6bab4a3e8bff1c13c3b613110 Mon Sep 17 00:00:00 2001
-From: Alexander Alekhin <alexander.alekhin@intel.com>
-Date: Wed, 23 Aug 2017 17:41:23 +0300
-Subject: [PATCH 1/2] carotene: don't use __asm__ with aarch64
-
----
-Upstream-Status: Backport
-
- 3rdparty/carotene/src/channel_extract.cpp | 4 +-
- 3rdparty/carotene/src/channels_combine.cpp | 2 +-
- 3rdparty/carotene/src/colorconvert.cpp | 104 ++++++++++++++---------------
- 3rdparty/carotene/src/convert.cpp | 54 +++++++--------
- 3rdparty/carotene/src/convert_scale.cpp | 72 ++++++++++----------
- 3rdparty/carotene/src/gaussian_blur.cpp | 6 +-
- 3rdparty/carotene/src/pyramid.cpp | 20 +++---
- 3rdparty/carotene/src/scharr.cpp | 4 +-
- 8 files changed, 133 insertions(+), 133 deletions(-)
-
-diff --git a/3rdparty/carotene/src/channel_extract.cpp b/3rdparty/carotene/src/channel_extract.cpp
-index f663bc6005..8238a3ece8 100644
---- a/3rdparty/carotene/src/channel_extract.cpp
-+++ b/3rdparty/carotene/src/channel_extract.cpp
-@@ -231,7 +231,7 @@ void extract4(const Size2D &size,
- srcStride == dst2Stride && \
- srcStride == dst3Stride &&
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-
- #define SPLIT_ASM2(sgn, bits) __asm__ ( \
- "vld2." #bits " {d0, d2}, [%[in0]] \n\t" \
-@@ -351,7 +351,7 @@ void extract4(const Size2D &size,
- } \
- }
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-
- #define ALPHA_QUAD(sgn, bits) { \
- internal::prefetch(src + sj); \
-diff --git a/3rdparty/carotene/src/channels_combine.cpp b/3rdparty/carotene/src/channels_combine.cpp
-index 157c8b8121..fc98fb9181 100644
---- a/3rdparty/carotene/src/channels_combine.cpp
-+++ b/3rdparty/carotene/src/channels_combine.cpp
-@@ -77,7 +77,7 @@ namespace CAROTENE_NS {
- dstStride == src2Stride && \
- dstStride == src3Stride &&
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-
- #define MERGE_ASM2(sgn, bits) __asm__ ( \
- "vld1." #bits " {d0-d1}, [%[in0]] \n\t" \
-diff --git a/3rdparty/carotene/src/colorconvert.cpp b/3rdparty/carotene/src/colorconvert.cpp
-index 3037fe672a..26ae54b15c 100644
---- a/3rdparty/carotene/src/colorconvert.cpp
-+++ b/3rdparty/carotene/src/colorconvert.cpp
-@@ -97,7 +97,7 @@ void rgb2gray(const Size2D &size, COLOR_SPACE color_space,
- const u32 G2Y = color_space == COLOR_SPACE_BT601 ? G2Y_BT601 : G2Y_BT709;
- const u32 B2Y = color_space == COLOR_SPACE_BT601 ? B2Y_BT601 : B2Y_BT709;
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- register int16x4_t v_r2y asm ("d31") = vmov_n_s16(R2Y);
- register int16x4_t v_g2y asm ("d30") = vmov_n_s16(G2Y);
- register int16x4_t v_b2y asm ("d29") = vmov_n_s16(B2Y);
-@@ -116,7 +116,7 @@ void rgb2gray(const Size2D &size, COLOR_SPACE color_space,
- u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
- size_t sj = 0u, dj = 0u;
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- for (; dj < roiw8; sj += 24, dj += 8)
- {
- internal::prefetch(src + sj);
-@@ -198,7 +198,7 @@ void rgbx2gray(const Size2D &size, COLOR_SPACE color_space,
- const u32 G2Y = color_space == COLOR_SPACE_BT601 ? G2Y_BT601 : G2Y_BT709;
- const u32 B2Y = color_space == COLOR_SPACE_BT601 ? B2Y_BT601 : B2Y_BT709;
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- register int16x4_t v_r2y asm ("d31") = vmov_n_s16(R2Y);
- register int16x4_t v_g2y asm ("d30") = vmov_n_s16(G2Y);
- register int16x4_t v_b2y asm ("d29") = vmov_n_s16(B2Y);
-@@ -217,7 +217,7 @@ void rgbx2gray(const Size2D &size, COLOR_SPACE color_space,
- u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
- size_t sj = 0u, dj = 0u;
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- for (; dj < roiw8; sj += 32, dj += 8)
- {
- internal::prefetch(src + sj);
-@@ -300,7 +300,7 @@ void bgr2gray(const Size2D &size, COLOR_SPACE color_space,
- const u32 G2Y = color_space == COLOR_SPACE_BT601 ? G2Y_BT601 : G2Y_BT709;
- const u32 B2Y = color_space == COLOR_SPACE_BT601 ? B2Y_BT601 : B2Y_BT709;
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- register int16x4_t v_r2y asm ("d31") = vmov_n_s16(R2Y);
- register int16x4_t v_g2y asm ("d30") = vmov_n_s16(G2Y);
- register int16x4_t v_b2y asm ("d29") = vmov_n_s16(B2Y);
-@@ -319,7 +319,7 @@ void bgr2gray(const Size2D &size, COLOR_SPACE color_space,
- u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
- size_t sj = 0u, dj = 0u;
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- for (; dj < roiw8; sj += 24, dj += 8)
- {
- internal::prefetch(src + sj);
-@@ -402,7 +402,7 @@ void bgrx2gray(const Size2D &size, COLOR_SPACE color_space,
- const u32 G2Y = color_space == COLOR_SPACE_BT601 ? G2Y_BT601 : G2Y_BT709;
- const u32 B2Y = color_space == COLOR_SPACE_BT601 ? B2Y_BT601 : B2Y_BT709;
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- register int16x4_t v_r2y asm ("d31") = vmov_n_s16(R2Y);
- register int16x4_t v_g2y asm ("d30") = vmov_n_s16(G2Y);
- register int16x4_t v_b2y asm ("d29") = vmov_n_s16(B2Y);
-@@ -421,7 +421,7 @@ void bgrx2gray(const Size2D &size, COLOR_SPACE color_space,
- u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
- size_t sj = 0u, dj = 0u;
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- for (; dj < roiw8; sj += 32, dj += 8)
- {
- internal::prefetch(src + sj);
-@@ -512,7 +512,7 @@ void gray2rgb(const Size2D &size,
- for (; sj < roiw16; sj += 16, dj += 48)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- __asm__ (
- "vld1.8 {d0-d1}, [%[in0]] \n\t"
- "vmov.8 q1, q0 \n\t"
-@@ -538,7 +538,7 @@ void gray2rgb(const Size2D &size,
-
- if (sj < roiw8)
- {
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- __asm__ (
- "vld1.8 {d0}, [%[in]] \n\t"
- "vmov.8 d1, d0 \n\t"
-@@ -584,7 +584,7 @@ void gray2rgbx(const Size2D &size,
- size_t roiw16 = size.width >= 15 ? size.width - 15 : 0;
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- register uint8x16_t vc255 asm ("q4") = vmovq_n_u8(255);
- #else
- uint8x16x4_t vRgba;
-@@ -602,7 +602,7 @@ void gray2rgbx(const Size2D &size,
- for (; sj < roiw16; sj += 16, dj += 64)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- __asm__ (
- "vld1.8 {d0-d1}, [%[in0]] \n\t"
- "vmov.8 q1, q0 \n\t"
-@@ -628,7 +628,7 @@ void gray2rgbx(const Size2D &size,
-
- if (sj < roiw8)
- {
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- __asm__ (
- "vld1.8 {d5}, [%[in]] \n\t"
- "vmov.8 d6, d5 \n\t"
-@@ -672,7 +672,7 @@ void rgb2rgbx(const Size2D &size,
- internal::assertSupportedConfiguration();
- #ifdef CAROTENE_NEON
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- register uint8x8_t vc255_0 asm ("d3") = vmov_n_u8(255);
- #else
- size_t roiw16 = size.width >= 15 ? size.width - 15 : 0;
-@@ -688,7 +688,7 @@ void rgb2rgbx(const Size2D &size,
- u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
- size_t sj = 0u, dj = 0u, j = 0u;
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- for (; j < roiw8; sj += 24, dj += 32, j += 8)
- {
- internal::prefetch(src + sj);
-@@ -742,7 +742,7 @@ void rgbx2rgb(const Size2D &size,
- internal::assertSupportedConfiguration();
- #ifdef CAROTENE_NEON
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
--#if !defined(__GNUC__) || !defined(__arm__)
-+#if !(!defined(__aarch64__) && defined(__GNUC__) && defined(__arm__))
- size_t roiw16 = size.width >= 15 ? size.width - 15 : 0;
- union { uint8x16x4_t v4; uint8x16x3_t v3; } v_dst0;
- union { uint8x8x4_t v4; uint8x8x3_t v3; } v_dst;
-@@ -754,7 +754,7 @@ void rgbx2rgb(const Size2D &size,
- u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
- size_t sj = 0u, dj = 0u, j = 0u;
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- for (; j < roiw8; sj += 32, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
-@@ -805,7 +805,7 @@ void rgb2bgr(const Size2D &size,
- {
- internal::assertSupportedConfiguration();
- #ifdef CAROTENE_NEON
--#if !defined(__GNUC__) || !defined(__arm__)
-+#if !(!defined(__aarch64__) && defined(__GNUC__) && defined(__arm__))
- size_t roiw16 = size.width >= 15 ? size.width - 15 : 0;
- #endif
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
-@@ -817,7 +817,7 @@ void rgb2bgr(const Size2D &size,
- size_t sj = 0u, dj = 0u, j = 0u;
-
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- for (; j < roiw8; sj += 24, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
-@@ -874,7 +874,7 @@ void rgbx2bgrx(const Size2D &size,
- {
- internal::assertSupportedConfiguration();
- #ifdef CAROTENE_NEON
--#if !defined(__GNUC__) || !defined(__arm__)
-+#if !(!defined(__aarch64__) && defined(__GNUC__) && defined(__arm__))
- size_t roiw16 = size.width >= 15 ? size.width - 15 : 0;
- #endif
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
-@@ -885,7 +885,7 @@ void rgbx2bgrx(const Size2D &size,
- u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
- size_t sj = 0u, dj = 0u, j = 0u;
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- for (; j < roiw8; sj += 32, dj += 32, j += 8)
- {
- internal::prefetch(src + sj);
-@@ -943,7 +943,7 @@ void rgbx2bgr(const Size2D &size,
- {
- internal::assertSupportedConfiguration();
- #ifdef CAROTENE_NEON
--#if !defined(__GNUC__) || !defined(__arm__)
-+#if !(!defined(__aarch64__) && defined(__GNUC__) && defined(__arm__))
- size_t roiw16 = size.width >= 15 ? size.width - 15 : 0;
- #endif
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
-@@ -954,7 +954,7 @@ void rgbx2bgr(const Size2D &size,
- u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
- size_t sj = 0u, dj = 0u, j = 0u;
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- for (; j < roiw8; sj += 32, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
-@@ -1010,7 +1010,7 @@ void rgb2bgrx(const Size2D &size,
- {
- internal::assertSupportedConfiguration();
- #ifdef CAROTENE_NEON
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- register uint8x8_t vc255 asm ("d3") = vmov_n_u8(255);
- #else
- union { uint8x16x4_t v4; uint8x16x3_t v3; } vals0;
-@@ -1019,7 +1019,7 @@ void rgb2bgrx(const Size2D &size,
- vals8.v4.val[3] = vmov_n_u8(255);
- #endif
-
--#if !defined(__GNUC__) || !defined(__arm__)
-+#if !(!defined(__aarch64__) && defined(__GNUC__) && defined(__arm__))
- size_t roiw16 = size.width >= 15 ? size.width - 15 : 0;
- #endif
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
-@@ -1030,7 +1030,7 @@ void rgb2bgrx(const Size2D &size,
- u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
- size_t sj = 0u, dj = 0u, j = 0u;
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- for (; j < roiw8; sj += 24, dj += 32, j += 8)
- {
- internal::prefetch(src + sj);
-@@ -1409,7 +1409,7 @@ inline void convertToHSV(const s32 r, const s32 g, const s32 b,
- "d24","d25","d26","d27","d28","d29","d30","d31" \
- );
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-
- #define YCRCB_CONSTS \
- register int16x4_t vcYR asm ("d31") = vmov_n_s16(4899); \
-@@ -1555,7 +1555,7 @@ inline uint8x8x3_t convertToYCrCb( const int16x8_t& vR, const int16x8_t& vG, con
- #define COEFF_G ( 8663)
- #define COEFF_B (-17705)
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- #define YUV420ALPHA3_CONST
- #define YUV420ALPHA4_CONST register uint8x16_t c255 asm ("q13") = vmovq_n_u8(255);
- #define YUV420ALPHA3_CONVERT
-@@ -1852,7 +1852,7 @@ void rgb2hsv(const Size2D &size,
- #ifdef CAROTENE_NEON
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
- const s32 hsv_shift = 12;
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- register const f32 vsdiv_table = f32(255 << hsv_shift);
- register f32 vhdiv_table = f32(hrange << hsv_shift);
- register const s32 vhrange = hrange;
-@@ -1871,7 +1871,7 @@ void rgb2hsv(const Size2D &size,
- for (; j < roiw8; sj += 24, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERT_TO_HSV_ASM(vld3.8 {d0-d2}, d0, d2)
- #else
- uint8x8x3_t vRgb = vld3_u8(src + sj);
-@@ -1904,7 +1904,7 @@ void rgbx2hsv(const Size2D &size,
- #ifdef CAROTENE_NEON
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
- const s32 hsv_shift = 12;
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- register const f32 vsdiv_table = f32(255 << hsv_shift);
- register f32 vhdiv_table = f32(hrange << hsv_shift);
- register const s32 vhrange = hrange;
-@@ -1923,7 +1923,7 @@ void rgbx2hsv(const Size2D &size,
- for (; j < roiw8; sj += 32, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERT_TO_HSV_ASM(vld4.8 {d0-d3}, d0, d2)
- #else
- uint8x8x4_t vRgb = vld4_u8(src + sj);
-@@ -1956,7 +1956,7 @@ void bgr2hsv(const Size2D &size,
- #ifdef CAROTENE_NEON
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
- const s32 hsv_shift = 12;
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- register const f32 vsdiv_table = f32(255 << hsv_shift);
- register f32 vhdiv_table = f32(hrange << hsv_shift);
- register const s32 vhrange = hrange;
-@@ -1975,7 +1975,7 @@ void bgr2hsv(const Size2D &size,
- for (; j < roiw8; sj += 24, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERT_TO_HSV_ASM(vld3.8 {d0-d2}, d2, d0)
- #else
- uint8x8x3_t vRgb = vld3_u8(src + sj);
-@@ -2008,7 +2008,7 @@ void bgrx2hsv(const Size2D &size,
- #ifdef CAROTENE_NEON
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
- const s32 hsv_shift = 12;
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- register const f32 vsdiv_table = f32(255 << hsv_shift);
- register f32 vhdiv_table = f32(hrange << hsv_shift);
- register const s32 vhrange = hrange;
-@@ -2027,7 +2027,7 @@ void bgrx2hsv(const Size2D &size,
- for (; j < roiw8; sj += 32, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERT_TO_HSV_ASM(vld4.8 {d0-d3}, d2, d0)
- #else
- uint8x8x4_t vRgb = vld4_u8(src + sj);
-@@ -2068,7 +2068,7 @@ void rgbx2bgr565(const Size2D &size,
- for (; j < roiw16; sj += 64, dj += 32, j += 16)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- __asm__ (
- "vld4.8 {d2, d4, d6, d8}, [%[in0]] @ q0 q1 q2 q3 q4 \n\t"
- "vld4.8 {d3, d5, d7, d9}, [%[in1]] @ xxxxxxxx rrrrRRRR ggggGGGG bbbbBBBB xxxxxxxx \n\t"
-@@ -2122,7 +2122,7 @@ void rgb2bgr565(const Size2D &size,
- for (; j < roiw16; sj += 48, dj += 32, j += 16)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- __asm__ (
- "vld3.8 {d2, d4, d6}, [%[in0]] @ q0 q1 q2 q3 q4 \n\t"
- "vld3.8 {d3, d5, d7}, [%[in1]] @ xxxxxxxx rrrrRRRR ggggGGGG bbbbBBBB xxxxxxxx \n\t"
-@@ -2176,7 +2176,7 @@ void rgbx2rgb565(const Size2D &size,
- for (; j < roiw16; sj += 64, dj += 32, j += 16)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- __asm__ (
- "vld4.8 {d0, d2, d4, d6}, [%[in0]] @ q0 q1 q2 q3 \n\t"
- "vld4.8 {d1, d3, d5, d7}, [%[in1]] @ rrrrRRRR ggggGGGG bbbbBBBB aaaaAAAA \n\t"
-@@ -2230,7 +2230,7 @@ void rgb2rgb565(const Size2D &size,
- for (; j < roiw16; sj += 48, dj += 32, j += 16)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- __asm__ (
- "vld3.8 {d0, d2, d4}, [%[in0]] @ q0 q1 q2 q3 \n\t"
- "vld3.8 {d1, d3, d5}, [%[in1]] @ rrrrRRRR ggggGGGG bbbbBBBB xxxxxxxx \n\t"
-@@ -2285,7 +2285,7 @@ void rgb2ycrcb(const Size2D &size,
- for (; j < roiw8; sj += 24, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERTTOYCRCB(vld3.8 {d0-d2}, d0, d1, d2)
- #else
- uint8x8x3_t vRgb = vld3_u8(src + sj);
-@@ -2329,7 +2329,7 @@ void rgbx2ycrcb(const Size2D &size,
- for (; j < roiw8; sj += 32, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERTTOYCRCB(vld4.8 {d0-d3}, d0, d1, d2)
- #else
- uint8x8x4_t vRgba = vld4_u8(src + sj);
-@@ -2373,7 +2373,7 @@ void bgr2ycrcb(const Size2D &size,
- for (; j < roiw8; sj += 24, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERTTOYCRCB(vld3.8 {d0-d2}, d2, d1, d0)
- #else
- uint8x8x3_t vBgr = vld3_u8(src + sj);
-@@ -2417,7 +2417,7 @@ void bgrx2ycrcb(const Size2D &size,
- for (; j < roiw8; sj += 32, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERTTOYCRCB(vld4.8 {d0-d3}, d2, d1, d0)
- #else
- uint8x8x4_t vBgra = vld4_u8(src + sj);
-@@ -2499,7 +2499,7 @@ void yuv420sp2rgb(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERTYUV420TORGB(3, d1, d0, q5, q6)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2545,7 +2545,7 @@ void yuv420sp2rgbx(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERTYUV420TORGB(4, d1, d0, q5, q6)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2591,7 +2591,7 @@ void yuv420i2rgb(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERTYUV420TORGB(3, d0, d1, q5, q6)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2637,7 +2637,7 @@ void yuv420i2rgbx(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERTYUV420TORGB(4, d0, d1, q5, q6)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2683,7 +2683,7 @@ void yuv420sp2bgr(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERTYUV420TORGB(3, d1, d0, q6, q5)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2729,7 +2729,7 @@ void yuv420sp2bgrx(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERTYUV420TORGB(4, d1, d0, q6, q5)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2775,7 +2775,7 @@ void yuv420i2bgr(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERTYUV420TORGB(3, d0, d1, q6, q5)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2821,7 +2821,7 @@ void yuv420i2bgrx(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERTYUV420TORGB(4, d0, d1, q6, q5)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-diff --git a/3rdparty/carotene/src/convert.cpp b/3rdparty/carotene/src/convert.cpp
-index 403f16d86a..64b6db78ab 100644
---- a/3rdparty/carotene/src/convert.cpp
-+++ b/3rdparty/carotene/src/convert.cpp
-@@ -101,7 +101,7 @@ CVT_FUNC(u8, s8, 16,
- }
- })
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVT_FUNC(u8, u16, 16,
- register uint8x16_t zero0 asm ("q1") = vmovq_n_u8(0);,
- {
-@@ -135,7 +135,7 @@ CVT_FUNC(u8, u16, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVT_FUNC(u8, s32, 16,
- register uint8x16_t zero0 asm ("q1") = vmovq_n_u8(0);
- register uint8x16_t zero1 asm ("q2") = vmovq_n_u8(0);
-@@ -173,7 +173,7 @@ CVT_FUNC(u8, s32, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(u8, f32, 16,
- ,
- {
-@@ -248,7 +248,7 @@ CVT_FUNC(s8, u8, 16,
- }
- })
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVT_FUNC(s8, u16, 16,
- register uint8x16_t zero0 asm ("q1") = vmovq_n_u8(0);,
- {
-@@ -284,7 +284,7 @@ CVT_FUNC(s8, u16, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(s8, s16, 16,
- ,
- {
-@@ -323,7 +323,7 @@ CVT_FUNC(s8, s16, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVT_FUNC(s8, s32, 16,
- ,
- {
-@@ -377,7 +377,7 @@ CVT_FUNC(s8, s32, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(s8, f32, 16,
- ,
- {
-@@ -440,7 +440,7 @@ CVT_FUNC(s8, f32, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(u16, u8, 16,
- ,
- {
-@@ -479,7 +479,7 @@ CVT_FUNC(u16, u8, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(u16, s8, 16,
- register uint8x16_t v127 asm ("q4") = vmovq_n_u8(127);,
- {
-@@ -522,7 +522,7 @@ CVT_FUNC(u16, s8, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVT_FUNC(u16, s16, 8,
- register uint16x8_t v32767 asm ("q4") = vmovq_n_u16(0x7FFF);,
- {
-@@ -555,7 +555,7 @@ CVT_FUNC(u16, s16, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVT_FUNC(u16, s32, 8,
- register uint16x8_t zero0 asm ("q1") = vmovq_n_u16(0);,
- {
-@@ -589,7 +589,7 @@ CVT_FUNC(u16, s32, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(u16, f32, 8,
- ,
- {
-@@ -633,7 +633,7 @@ CVT_FUNC(u16, f32, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(s16, u8, 16,
- ,
- {
-@@ -672,7 +672,7 @@ CVT_FUNC(s16, u8, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(s16, s8, 16,
- ,
- {
-@@ -711,7 +711,7 @@ CVT_FUNC(s16, s8, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVT_FUNC(s16, u16, 8,
- register int16x8_t vZero asm ("q4") = vmovq_n_s16(0);,
- {
-@@ -747,7 +747,7 @@ CVT_FUNC(s16, u16, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(s16, s32, 8,
- ,
- {
-@@ -786,7 +786,7 @@ CVT_FUNC(s16, s32, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(s16, f32, 8,
- ,
- {
-@@ -829,7 +829,7 @@ CVT_FUNC(s16, f32, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(s32, u8, 8,
- ,
- {
-@@ -870,7 +870,7 @@ CVT_FUNC(s32, u8, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(s32, s8, 8,
- ,
- {
-@@ -911,7 +911,7 @@ CVT_FUNC(s32, s8, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(s32, u16, 8,
- ,
- {
-@@ -950,7 +950,7 @@ CVT_FUNC(s32, u16, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(s32, s16, 8,
- ,
- {
-@@ -989,7 +989,7 @@ CVT_FUNC(s32, s16, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(s32, f32, 8,
- ,
- {
-@@ -1034,7 +1034,7 @@ CVT_FUNC(s32, f32, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(f32, u8, 8,
- register float32x4_t vmult asm ("q0") = vdupq_n_f32((float)(1 << 16));
- register uint32x4_t vmask asm ("q1") = vdupq_n_u32(1<<16);,
-@@ -1101,7 +1101,7 @@ CVT_FUNC(f32, u8, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(f32, s8, 8,
- register float32x4_t vhalf asm ("q0") = vdupq_n_f32(0.5f);,
- {
-@@ -1153,7 +1153,7 @@ CVT_FUNC(f32, s8, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(f32, u16, 8,
- register float32x4_t vhalf asm ("q0") = vdupq_n_f32(0.5f);,
- {
-@@ -1212,7 +1212,7 @@ CVT_FUNC(f32, u16, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(f32, s16, 8,
- register float32x4_t vhalf asm ("q0") = vdupq_n_f32(0.5f);,
- {
-@@ -1271,7 +1271,7 @@ CVT_FUNC(f32, s16, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(f32, s32, 8,
- register float32x4_t vhalf asm ("q0") = vdupq_n_f32(0.5f);,
- {
-diff --git a/3rdparty/carotene/src/convert_scale.cpp b/3rdparty/carotene/src/convert_scale.cpp
-index 0a14a8035c..ae41a985c8 100644
---- a/3rdparty/carotene/src/convert_scale.cpp
-+++ b/3rdparty/carotene/src/convert_scale.cpp
-@@ -135,7 +135,7 @@ namespace CAROTENE_NS {
-
- #endif
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- CVTS_FUNC1(u8, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -220,7 +220,7 @@ CVTS_FUNC1(u8, 16,
- })
- #endif
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- CVTS_FUNC(u8, s8, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -305,7 +305,7 @@ CVTS_FUNC(u8, s8, 16,
- })
- #endif
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- CVTS_FUNC(u8, u16, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -389,7 +389,7 @@ CVTS_FUNC(u8, u16, 16,
- })
- #endif
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- CVTS_FUNC(u8, s16, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -473,7 +473,7 @@ CVTS_FUNC(u8, s16, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(u8, s32, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -562,7 +562,7 @@ CVTS_FUNC(u8, s32, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(u8, f32, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
-@@ -643,7 +643,7 @@ CVTS_FUNC(u8, f32, 16,
- })
- #endif
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- CVTS_FUNC(s8, u8, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -728,7 +728,7 @@ CVTS_FUNC(s8, u8, 16,
- })
- #endif
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- CVTS_FUNC1(s8, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -813,7 +813,7 @@ CVTS_FUNC1(s8, 16,
- })
- #endif
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- CVTS_FUNC(s8, u16, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -899,7 +899,7 @@ CVTS_FUNC(s8, u16, 16,
- })
- #endif
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- CVTS_FUNC(s8, s16, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -985,7 +985,7 @@ CVTS_FUNC(s8, s16, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(s8, s32, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1074,7 +1074,7 @@ CVTS_FUNC(s8, s32, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(s8, f32, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
-@@ -1155,7 +1155,7 @@ CVTS_FUNC(s8, f32, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(u16, u8, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1214,7 +1214,7 @@ CVTS_FUNC(u16, u8, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(u16, s8, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1273,7 +1273,7 @@ CVTS_FUNC(u16, s8, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC1(u16, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1330,7 +1330,7 @@ CVTS_FUNC1(u16, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(u16, s16, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1387,7 +1387,7 @@ CVTS_FUNC(u16, s16, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(u16, s32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1443,7 +1443,7 @@ CVTS_FUNC(u16, s32, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(u16, f32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
-@@ -1495,7 +1495,7 @@ CVTS_FUNC(u16, f32, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(s16, u8, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1554,7 +1554,7 @@ CVTS_FUNC(s16, u8, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(s16, s8, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1613,7 +1613,7 @@ CVTS_FUNC(s16, s8, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(s16, u16, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1670,7 +1670,7 @@ CVTS_FUNC(s16, u16, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC1(s16, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1727,7 +1727,7 @@ CVTS_FUNC1(s16, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(s16, s32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1783,7 +1783,7 @@ CVTS_FUNC(s16, s32, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(s16, f32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
-@@ -1835,7 +1835,7 @@ CVTS_FUNC(s16, f32, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(s32, u8, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1893,7 +1893,7 @@ CVTS_FUNC(s32, u8, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(s32, s8, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1951,7 +1951,7 @@ CVTS_FUNC(s32, s8, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(s32, u16, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2007,7 +2007,7 @@ CVTS_FUNC(s32, u16, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(s32, s16, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2063,7 +2063,7 @@ CVTS_FUNC(s32, s16, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC1(s32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2118,7 +2118,7 @@ CVTS_FUNC1(s32, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(s32, f32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
-@@ -2169,7 +2169,7 @@ CVTS_FUNC(s32, f32, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(f32, u8, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)((1 << 16)*alpha));
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)((1 << 16)*beta));
-@@ -2239,7 +2239,7 @@ CVTS_FUNC(f32, u8, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(f32, s8, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2293,7 +2293,7 @@ CVTS_FUNC(f32, s8, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(f32, u16, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2345,7 +2345,7 @@ CVTS_FUNC(f32, u16, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(f32, s16, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2397,7 +2397,7 @@ CVTS_FUNC(f32, s16, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(f32, s32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2448,7 +2448,7 @@ CVTS_FUNC(f32, s32, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC1(f32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
-diff --git a/3rdparty/carotene/src/gaussian_blur.cpp b/3rdparty/carotene/src/gaussian_blur.cpp
-index 1b5399436f..f7b5f18d79 100644
---- a/3rdparty/carotene/src/gaussian_blur.cpp
-+++ b/3rdparty/carotene/src/gaussian_blur.cpp
-@@ -327,7 +327,7 @@ void gaussianBlur5x5(const Size2D &size, s32 cn,
- u16* lidx1 = lane + x - 1*2;
- u16* lidx3 = lane + x + 1*2;
- u16* lidx4 = lane + x + 2*2;
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- __asm__ __volatile__ (
- "vld2.16 {d0, d2}, [%[in0]]! \n\t"
- "vld2.16 {d1, d3}, [%[in0]] \n\t"
-@@ -398,7 +398,7 @@ void gaussianBlur5x5(const Size2D &size, s32 cn,
- u16* lidx1 = lane + x - 1*3;
- u16* lidx3 = lane + x + 1*3;
- u16* lidx4 = lane + x + 2*3;
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- __asm__ __volatile__ (
- "vld3.16 {d0, d2, d4}, [%[in0]]! \n\t"
- "vld3.16 {d1, d3, d5}, [%[in0]] \n\t"
-@@ -482,7 +482,7 @@ void gaussianBlur5x5(const Size2D &size, s32 cn,
- u16* lidx1 = lane + x - 1*4;
- u16* lidx3 = lane + x + 1*4;
- u16* lidx4 = lane + x + 2*4;
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- __asm__ __volatile__ (
- "vld4.16 {d0, d2, d4, d6}, [%[in0]]! \n\t"
- "vld4.16 {d1, d3, d5, d7}, [%[in0]] \n\t"
-diff --git a/3rdparty/carotene/src/pyramid.cpp b/3rdparty/carotene/src/pyramid.cpp
-index 8ef1268933..232ccf3efd 100644
---- a/3rdparty/carotene/src/pyramid.cpp
-+++ b/3rdparty/carotene/src/pyramid.cpp
-@@ -331,7 +331,7 @@ void gaussianPyramidDown(const Size2D &srcSize,
- for (; x < roiw8; x += 8)
- {
- internal::prefetch(lane + 2 * x);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- __asm__ (
- "vld2.16 {d0-d3}, [%[in0]] \n\t"
- "vld2.16 {d4-d7}, [%[in4]] \n\t"
-@@ -538,7 +538,7 @@ void gaussianPyramidDown(const Size2D &srcSize,
- for (; x < roiw4; x += 4)
- {
- internal::prefetch(lane + 2 * x);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- __asm__ (
- "vld2.32 {d0-d3}, [%[in0]] \n\t"
- "vld2.32 {d4-d7}, [%[in4]] \n\t"
-@@ -672,7 +672,7 @@ void gaussianPyramidDown(const Size2D &srcSize,
- std::vector<f32> _buf(cn*(srcSize.width + 4) + 32/sizeof(f32));
- f32* lane = internal::alignPtr(&_buf[2*cn], 32);
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- register float32x4_t vc6d4f32 asm ("q11") = vmovq_n_f32(1.5f); // 6/4
- register float32x4_t vc1d4f32 asm ("q12") = vmovq_n_f32(0.25f); // 1/4
-
-@@ -739,7 +739,7 @@ void gaussianPyramidDown(const Size2D &srcSize,
- for (; x < roiw4; x += 4)
- {
- internal::prefetch(lane + 2 * x);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- __asm__ __volatile__ (
- "vld2.32 {d0-d3}, [%[in0]] \n\t"
- "vld2.32 {d8-d11}, [%[in4]] \n\t"
-@@ -932,7 +932,7 @@ pyrUp8uHorizontalConvolution:
- for (; x < lim; x += 8)
- {
- internal::prefetch(lane + x);
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- __asm__ (
- "vld1.16 {d0-d1}, [%[in0]] /*q0 = v0*/ \n\t"
- "vld1.16 {d2-d3}, [%[in2]] /*q1 = v2*/ \n\t"
-@@ -973,7 +973,7 @@ pyrUp8uHorizontalConvolution:
- for (; x < lim; x += 24)
- {
- internal::prefetch(lane + x);
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- __asm__ (
- "vmov.u16 q9, #6 \n\t"
- "vld3.16 {d0, d2, d4}, [%[in0]] /*v0*/ \n\t"
-@@ -1064,7 +1064,7 @@ pyrUp8uHorizontalConvolution:
- for (; x < lim; x += 8)
- {
- internal::prefetch(lane + x);
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- __asm__ (
- "vld1.16 {d0-d1}, [%[in0]] /*q0 = v0*/ \n\t"
- "vld1.16 {d2-d3}, [%[in2]] /*q1 = v2*/ \n\t"
-@@ -1210,7 +1210,7 @@ pyrUp16sHorizontalConvolution:
- for (; x < lim; x += 4)
- {
- internal::prefetch(lane + x);
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- __asm__ (
- "vld1.32 {d0-d1}, [%[in0]] /*q0 = v0*/ \n\t"
- "vld1.32 {d2-d3}, [%[in2]] /*q1 = v2*/ \n\t"
-@@ -1251,7 +1251,7 @@ pyrUp16sHorizontalConvolution:
- for (; x < lim; x += 12)
- {
- internal::prefetch(lane + x + 3);
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- __asm__ (
- "vmov.s32 q9, #6 \n\t"
- "vld3.32 {d0, d2, d4}, [%[in0]] /*v0*/ \n\t"
-@@ -1343,7 +1343,7 @@ pyrUp16sHorizontalConvolution:
- for (; x < lim; x += 4)
- {
- internal::prefetch(lane + x);
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- __asm__ (
- "vld1.32 {d0-d1}, [%[in0]] /*q0 = v0*/ \n\t"
- "vld1.32 {d2-d3}, [%[in2]] /*q1 = v2*/ \n\t"
-diff --git a/3rdparty/carotene/src/scharr.cpp b/3rdparty/carotene/src/scharr.cpp
-index 5695804fe4..8d3b6328b1 100644
---- a/3rdparty/carotene/src/scharr.cpp
-+++ b/3rdparty/carotene/src/scharr.cpp
-@@ -109,7 +109,7 @@ void ScharrDeriv(const Size2D &size, s32 cn,
- internal::prefetch(srow0 + x);
- internal::prefetch(srow1 + x);
- internal::prefetch(srow2 + x);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- __asm__ (
- "vld1.8 {d0}, [%[src0]] \n\t"
- "vld1.8 {d2}, [%[src2]] \n\t"
-@@ -161,7 +161,7 @@ void ScharrDeriv(const Size2D &size, s32 cn,
- x = 0;
- for( ; x < roiw8; x += 8 )
- {
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- __asm__ (
- "vld1.16 {d4-d5}, [%[s2ptr]] \n\t"
- "vld1.16 {d8-d9}, [%[s4ptr]] \n\t"
---
-2.14.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-Do-not-enable-asm-with-clang.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-Do-not-enable-asm-with-clang.patch
deleted file mode 100644
index 22e868a03..000000000
--- a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-Do-not-enable-asm-with-clang.patch
+++ /dev/null
@@ -1,993 +0,0 @@
-From 333f60165b6737588eb975a5e4393d847011a1cd Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 19 Sep 2017 18:07:35 -0700
-Subject: [PATCH 2/2] Do not enable asm with clang
-
-clang pretends to be gcc 4.2.0 which means we will
-use inline asm for no reason, instead of builtins
-on clang when possible.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Submitted
- 3rdparty/carotene/src/channel_extract.cpp | 4 +-
- 3rdparty/carotene/src/channels_combine.cpp | 2 +-
- 3rdparty/carotene/src/colorconvert.cpp | 78 +++++++++++++++---------------
- 3rdparty/carotene/src/convert.cpp | 54 ++++++++++-----------
- 3rdparty/carotene/src/convert_scale.cpp | 56 ++++++++++-----------
- 3rdparty/carotene/src/gaussian_blur.cpp | 2 +-
- 3rdparty/carotene/src/pyramid.cpp | 8 +--
- 3rdparty/carotene/src/scharr.cpp | 4 +-
- 8 files changed, 104 insertions(+), 104 deletions(-)
-
-diff --git a/3rdparty/carotene/src/channel_extract.cpp b/3rdparty/carotene/src/channel_extract.cpp
-index 8238a3ece8..ff4fb3770c 100644
---- a/3rdparty/carotene/src/channel_extract.cpp
-+++ b/3rdparty/carotene/src/channel_extract.cpp
-@@ -231,7 +231,7 @@ void extract4(const Size2D &size,
- srcStride == dst2Stride && \
- srcStride == dst3Stride &&
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
-
- #define SPLIT_ASM2(sgn, bits) __asm__ ( \
- "vld2." #bits " {d0, d2}, [%[in0]] \n\t" \
-@@ -351,7 +351,7 @@ void extract4(const Size2D &size,
- } \
- }
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
-
- #define ALPHA_QUAD(sgn, bits) { \
- internal::prefetch(src + sj); \
-diff --git a/3rdparty/carotene/src/channels_combine.cpp b/3rdparty/carotene/src/channels_combine.cpp
-index fc98fb9181..5d9251d51c 100644
---- a/3rdparty/carotene/src/channels_combine.cpp
-+++ b/3rdparty/carotene/src/channels_combine.cpp
-@@ -77,7 +77,7 @@ namespace CAROTENE_NS {
- dstStride == src2Stride && \
- dstStride == src3Stride &&
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
-
- #define MERGE_ASM2(sgn, bits) __asm__ ( \
- "vld1." #bits " {d0-d1}, [%[in0]] \n\t" \
-diff --git a/3rdparty/carotene/src/colorconvert.cpp b/3rdparty/carotene/src/colorconvert.cpp
-index 26ae54b15c..d3a40fe64e 100644
---- a/3rdparty/carotene/src/colorconvert.cpp
-+++ b/3rdparty/carotene/src/colorconvert.cpp
-@@ -97,7 +97,7 @@ void rgb2gray(const Size2D &size, COLOR_SPACE color_space,
- const u32 G2Y = color_space == COLOR_SPACE_BT601 ? G2Y_BT601 : G2Y_BT709;
- const u32 B2Y = color_space == COLOR_SPACE_BT601 ? B2Y_BT601 : B2Y_BT709;
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- register int16x4_t v_r2y asm ("d31") = vmov_n_s16(R2Y);
- register int16x4_t v_g2y asm ("d30") = vmov_n_s16(G2Y);
- register int16x4_t v_b2y asm ("d29") = vmov_n_s16(B2Y);
-@@ -116,7 +116,7 @@ void rgb2gray(const Size2D &size, COLOR_SPACE color_space,
- u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
- size_t sj = 0u, dj = 0u;
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- for (; dj < roiw8; sj += 24, dj += 8)
- {
- internal::prefetch(src + sj);
-@@ -198,7 +198,7 @@ void rgbx2gray(const Size2D &size, COLOR_SPACE color_space,
- const u32 G2Y = color_space == COLOR_SPACE_BT601 ? G2Y_BT601 : G2Y_BT709;
- const u32 B2Y = color_space == COLOR_SPACE_BT601 ? B2Y_BT601 : B2Y_BT709;
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- register int16x4_t v_r2y asm ("d31") = vmov_n_s16(R2Y);
- register int16x4_t v_g2y asm ("d30") = vmov_n_s16(G2Y);
- register int16x4_t v_b2y asm ("d29") = vmov_n_s16(B2Y);
-@@ -217,7 +217,7 @@ void rgbx2gray(const Size2D &size, COLOR_SPACE color_space,
- u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
- size_t sj = 0u, dj = 0u;
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- for (; dj < roiw8; sj += 32, dj += 8)
- {
- internal::prefetch(src + sj);
-@@ -300,7 +300,7 @@ void bgr2gray(const Size2D &size, COLOR_SPACE color_space,
- const u32 G2Y = color_space == COLOR_SPACE_BT601 ? G2Y_BT601 : G2Y_BT709;
- const u32 B2Y = color_space == COLOR_SPACE_BT601 ? B2Y_BT601 : B2Y_BT709;
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- register int16x4_t v_r2y asm ("d31") = vmov_n_s16(R2Y);
- register int16x4_t v_g2y asm ("d30") = vmov_n_s16(G2Y);
- register int16x4_t v_b2y asm ("d29") = vmov_n_s16(B2Y);
-@@ -319,7 +319,7 @@ void bgr2gray(const Size2D &size, COLOR_SPACE color_space,
- u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
- size_t sj = 0u, dj = 0u;
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- for (; dj < roiw8; sj += 24, dj += 8)
- {
- internal::prefetch(src + sj);
-@@ -402,7 +402,7 @@ void bgrx2gray(const Size2D &size, COLOR_SPACE color_space,
- const u32 G2Y = color_space == COLOR_SPACE_BT601 ? G2Y_BT601 : G2Y_BT709;
- const u32 B2Y = color_space == COLOR_SPACE_BT601 ? B2Y_BT601 : B2Y_BT709;
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- register int16x4_t v_r2y asm ("d31") = vmov_n_s16(R2Y);
- register int16x4_t v_g2y asm ("d30") = vmov_n_s16(G2Y);
- register int16x4_t v_b2y asm ("d29") = vmov_n_s16(B2Y);
-@@ -421,7 +421,7 @@ void bgrx2gray(const Size2D &size, COLOR_SPACE color_space,
- u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
- size_t sj = 0u, dj = 0u;
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- for (; dj < roiw8; sj += 32, dj += 8)
- {
- internal::prefetch(src + sj);
-@@ -512,7 +512,7 @@ void gray2rgb(const Size2D &size,
- for (; sj < roiw16; sj += 16, dj += 48)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- __asm__ (
- "vld1.8 {d0-d1}, [%[in0]] \n\t"
- "vmov.8 q1, q0 \n\t"
-@@ -538,7 +538,7 @@ void gray2rgb(const Size2D &size,
-
- if (sj < roiw8)
- {
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- __asm__ (
- "vld1.8 {d0}, [%[in]] \n\t"
- "vmov.8 d1, d0 \n\t"
-@@ -584,7 +584,7 @@ void gray2rgbx(const Size2D &size,
- size_t roiw16 = size.width >= 15 ? size.width - 15 : 0;
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- register uint8x16_t vc255 asm ("q4") = vmovq_n_u8(255);
- #else
- uint8x16x4_t vRgba;
-@@ -602,7 +602,7 @@ void gray2rgbx(const Size2D &size,
- for (; sj < roiw16; sj += 16, dj += 64)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- __asm__ (
- "vld1.8 {d0-d1}, [%[in0]] \n\t"
- "vmov.8 q1, q0 \n\t"
-@@ -628,7 +628,7 @@ void gray2rgbx(const Size2D &size,
-
- if (sj < roiw8)
- {
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- __asm__ (
- "vld1.8 {d5}, [%[in]] \n\t"
- "vmov.8 d6, d5 \n\t"
-@@ -1409,7 +1409,7 @@ inline void convertToHSV(const s32 r, const s32 g, const s32 b,
- "d24","d25","d26","d27","d28","d29","d30","d31" \
- );
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
-
- #define YCRCB_CONSTS \
- register int16x4_t vcYR asm ("d31") = vmov_n_s16(4899); \
-@@ -1555,7 +1555,7 @@ inline uint8x8x3_t convertToYCrCb( const int16x8_t& vR, const int16x8_t& vG, con
- #define COEFF_G ( 8663)
- #define COEFF_B (-17705)
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- #define YUV420ALPHA3_CONST
- #define YUV420ALPHA4_CONST register uint8x16_t c255 asm ("q13") = vmovq_n_u8(255);
- #define YUV420ALPHA3_CONVERT
-@@ -1852,7 +1852,7 @@ void rgb2hsv(const Size2D &size,
- #ifdef CAROTENE_NEON
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
- const s32 hsv_shift = 12;
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- register const f32 vsdiv_table = f32(255 << hsv_shift);
- register f32 vhdiv_table = f32(hrange << hsv_shift);
- register const s32 vhrange = hrange;
-@@ -1871,7 +1871,7 @@ void rgb2hsv(const Size2D &size,
- for (; j < roiw8; sj += 24, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERT_TO_HSV_ASM(vld3.8 {d0-d2}, d0, d2)
- #else
- uint8x8x3_t vRgb = vld3_u8(src + sj);
-@@ -1904,7 +1904,7 @@ void rgbx2hsv(const Size2D &size,
- #ifdef CAROTENE_NEON
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
- const s32 hsv_shift = 12;
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- register const f32 vsdiv_table = f32(255 << hsv_shift);
- register f32 vhdiv_table = f32(hrange << hsv_shift);
- register const s32 vhrange = hrange;
-@@ -1923,7 +1923,7 @@ void rgbx2hsv(const Size2D &size,
- for (; j < roiw8; sj += 32, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERT_TO_HSV_ASM(vld4.8 {d0-d3}, d0, d2)
- #else
- uint8x8x4_t vRgb = vld4_u8(src + sj);
-@@ -1956,7 +1956,7 @@ void bgr2hsv(const Size2D &size,
- #ifdef CAROTENE_NEON
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
- const s32 hsv_shift = 12;
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- register const f32 vsdiv_table = f32(255 << hsv_shift);
- register f32 vhdiv_table = f32(hrange << hsv_shift);
- register const s32 vhrange = hrange;
-@@ -1975,7 +1975,7 @@ void bgr2hsv(const Size2D &size,
- for (; j < roiw8; sj += 24, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERT_TO_HSV_ASM(vld3.8 {d0-d2}, d2, d0)
- #else
- uint8x8x3_t vRgb = vld3_u8(src + sj);
-@@ -2008,7 +2008,7 @@ void bgrx2hsv(const Size2D &size,
- #ifdef CAROTENE_NEON
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
- const s32 hsv_shift = 12;
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- register const f32 vsdiv_table = f32(255 << hsv_shift);
- register f32 vhdiv_table = f32(hrange << hsv_shift);
- register const s32 vhrange = hrange;
-@@ -2027,7 +2027,7 @@ void bgrx2hsv(const Size2D &size,
- for (; j < roiw8; sj += 32, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERT_TO_HSV_ASM(vld4.8 {d0-d3}, d2, d0)
- #else
- uint8x8x4_t vRgb = vld4_u8(src + sj);
-@@ -2068,7 +2068,7 @@ void rgbx2bgr565(const Size2D &size,
- for (; j < roiw16; sj += 64, dj += 32, j += 16)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- __asm__ (
- "vld4.8 {d2, d4, d6, d8}, [%[in0]] @ q0 q1 q2 q3 q4 \n\t"
- "vld4.8 {d3, d5, d7, d9}, [%[in1]] @ xxxxxxxx rrrrRRRR ggggGGGG bbbbBBBB xxxxxxxx \n\t"
-@@ -2122,7 +2122,7 @@ void rgb2bgr565(const Size2D &size,
- for (; j < roiw16; sj += 48, dj += 32, j += 16)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- __asm__ (
- "vld3.8 {d2, d4, d6}, [%[in0]] @ q0 q1 q2 q3 q4 \n\t"
- "vld3.8 {d3, d5, d7}, [%[in1]] @ xxxxxxxx rrrrRRRR ggggGGGG bbbbBBBB xxxxxxxx \n\t"
-@@ -2176,7 +2176,7 @@ void rgbx2rgb565(const Size2D &size,
- for (; j < roiw16; sj += 64, dj += 32, j += 16)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- __asm__ (
- "vld4.8 {d0, d2, d4, d6}, [%[in0]] @ q0 q1 q2 q3 \n\t"
- "vld4.8 {d1, d3, d5, d7}, [%[in1]] @ rrrrRRRR ggggGGGG bbbbBBBB aaaaAAAA \n\t"
-@@ -2230,7 +2230,7 @@ void rgb2rgb565(const Size2D &size,
- for (; j < roiw16; sj += 48, dj += 32, j += 16)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- __asm__ (
- "vld3.8 {d0, d2, d4}, [%[in0]] @ q0 q1 q2 q3 \n\t"
- "vld3.8 {d1, d3, d5}, [%[in1]] @ rrrrRRRR ggggGGGG bbbbBBBB xxxxxxxx \n\t"
-@@ -2285,7 +2285,7 @@ void rgb2ycrcb(const Size2D &size,
- for (; j < roiw8; sj += 24, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERTTOYCRCB(vld3.8 {d0-d2}, d0, d1, d2)
- #else
- uint8x8x3_t vRgb = vld3_u8(src + sj);
-@@ -2329,7 +2329,7 @@ void rgbx2ycrcb(const Size2D &size,
- for (; j < roiw8; sj += 32, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERTTOYCRCB(vld4.8 {d0-d3}, d0, d1, d2)
- #else
- uint8x8x4_t vRgba = vld4_u8(src + sj);
-@@ -2373,7 +2373,7 @@ void bgr2ycrcb(const Size2D &size,
- for (; j < roiw8; sj += 24, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERTTOYCRCB(vld3.8 {d0-d2}, d2, d1, d0)
- #else
- uint8x8x3_t vBgr = vld3_u8(src + sj);
-@@ -2417,7 +2417,7 @@ void bgrx2ycrcb(const Size2D &size,
- for (; j < roiw8; sj += 32, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERTTOYCRCB(vld4.8 {d0-d3}, d2, d1, d0)
- #else
- uint8x8x4_t vBgra = vld4_u8(src + sj);
-@@ -2499,7 +2499,7 @@ void yuv420sp2rgb(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERTYUV420TORGB(3, d1, d0, q5, q6)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2545,7 +2545,7 @@ void yuv420sp2rgbx(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERTYUV420TORGB(4, d1, d0, q5, q6)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2591,7 +2591,7 @@ void yuv420i2rgb(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERTYUV420TORGB(3, d0, d1, q5, q6)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2637,7 +2637,7 @@ void yuv420i2rgbx(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERTYUV420TORGB(4, d0, d1, q5, q6)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2683,7 +2683,7 @@ void yuv420sp2bgr(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERTYUV420TORGB(3, d1, d0, q6, q5)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2729,7 +2729,7 @@ void yuv420sp2bgrx(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERTYUV420TORGB(4, d1, d0, q6, q5)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2775,7 +2775,7 @@ void yuv420i2bgr(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERTYUV420TORGB(3, d0, d1, q6, q5)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2821,7 +2821,7 @@ void yuv420i2bgrx(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERTYUV420TORGB(4, d0, d1, q6, q5)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-diff --git a/3rdparty/carotene/src/convert.cpp b/3rdparty/carotene/src/convert.cpp
-index 64b6db78ab..f0c2d153f2 100644
---- a/3rdparty/carotene/src/convert.cpp
-+++ b/3rdparty/carotene/src/convert.cpp
-@@ -101,7 +101,7 @@ CVT_FUNC(u8, s8, 16,
- }
- })
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVT_FUNC(u8, u16, 16,
- register uint8x16_t zero0 asm ("q1") = vmovq_n_u8(0);,
- {
-@@ -135,7 +135,7 @@ CVT_FUNC(u8, u16, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVT_FUNC(u8, s32, 16,
- register uint8x16_t zero0 asm ("q1") = vmovq_n_u8(0);
- register uint8x16_t zero1 asm ("q2") = vmovq_n_u8(0);
-@@ -173,7 +173,7 @@ CVT_FUNC(u8, s32, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(u8, f32, 16,
- ,
- {
-@@ -248,7 +248,7 @@ CVT_FUNC(s8, u8, 16,
- }
- })
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVT_FUNC(s8, u16, 16,
- register uint8x16_t zero0 asm ("q1") = vmovq_n_u8(0);,
- {
-@@ -284,7 +284,7 @@ CVT_FUNC(s8, u16, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(s8, s16, 16,
- ,
- {
-@@ -323,7 +323,7 @@ CVT_FUNC(s8, s16, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVT_FUNC(s8, s32, 16,
- ,
- {
-@@ -377,7 +377,7 @@ CVT_FUNC(s8, s32, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(s8, f32, 16,
- ,
- {
-@@ -440,7 +440,7 @@ CVT_FUNC(s8, f32, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(u16, u8, 16,
- ,
- {
-@@ -479,7 +479,7 @@ CVT_FUNC(u16, u8, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(u16, s8, 16,
- register uint8x16_t v127 asm ("q4") = vmovq_n_u8(127);,
- {
-@@ -522,7 +522,7 @@ CVT_FUNC(u16, s8, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVT_FUNC(u16, s16, 8,
- register uint16x8_t v32767 asm ("q4") = vmovq_n_u16(0x7FFF);,
- {
-@@ -555,7 +555,7 @@ CVT_FUNC(u16, s16, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVT_FUNC(u16, s32, 8,
- register uint16x8_t zero0 asm ("q1") = vmovq_n_u16(0);,
- {
-@@ -589,7 +589,7 @@ CVT_FUNC(u16, s32, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(u16, f32, 8,
- ,
- {
-@@ -633,7 +633,7 @@ CVT_FUNC(u16, f32, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(s16, u8, 16,
- ,
- {
-@@ -672,7 +672,7 @@ CVT_FUNC(s16, u8, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(s16, s8, 16,
- ,
- {
-@@ -711,7 +711,7 @@ CVT_FUNC(s16, s8, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVT_FUNC(s16, u16, 8,
- register int16x8_t vZero asm ("q4") = vmovq_n_s16(0);,
- {
-@@ -747,7 +747,7 @@ CVT_FUNC(s16, u16, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(s16, s32, 8,
- ,
- {
-@@ -786,7 +786,7 @@ CVT_FUNC(s16, s32, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(s16, f32, 8,
- ,
- {
-@@ -829,7 +829,7 @@ CVT_FUNC(s16, f32, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(s32, u8, 8,
- ,
- {
-@@ -870,7 +870,7 @@ CVT_FUNC(s32, u8, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(s32, s8, 8,
- ,
- {
-@@ -911,7 +911,7 @@ CVT_FUNC(s32, s8, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(s32, u16, 8,
- ,
- {
-@@ -950,7 +950,7 @@ CVT_FUNC(s32, u16, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(s32, s16, 8,
- ,
- {
-@@ -989,7 +989,7 @@ CVT_FUNC(s32, s16, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(s32, f32, 8,
- ,
- {
-@@ -1034,7 +1034,7 @@ CVT_FUNC(s32, f32, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(f32, u8, 8,
- register float32x4_t vmult asm ("q0") = vdupq_n_f32((float)(1 << 16));
- register uint32x4_t vmask asm ("q1") = vdupq_n_u32(1<<16);,
-@@ -1101,7 +1101,7 @@ CVT_FUNC(f32, u8, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(f32, s8, 8,
- register float32x4_t vhalf asm ("q0") = vdupq_n_f32(0.5f);,
- {
-@@ -1153,7 +1153,7 @@ CVT_FUNC(f32, s8, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(f32, u16, 8,
- register float32x4_t vhalf asm ("q0") = vdupq_n_f32(0.5f);,
- {
-@@ -1212,7 +1212,7 @@ CVT_FUNC(f32, u16, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(f32, s16, 8,
- register float32x4_t vhalf asm ("q0") = vdupq_n_f32(0.5f);,
- {
-@@ -1271,7 +1271,7 @@ CVT_FUNC(f32, s16, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(f32, s32, 8,
- register float32x4_t vhalf asm ("q0") = vdupq_n_f32(0.5f);,
- {
-diff --git a/3rdparty/carotene/src/convert_scale.cpp b/3rdparty/carotene/src/convert_scale.cpp
-index ae41a985c8..d599d24c1e 100644
---- a/3rdparty/carotene/src/convert_scale.cpp
-+++ b/3rdparty/carotene/src/convert_scale.cpp
-@@ -473,7 +473,7 @@ CVTS_FUNC(u8, s16, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(u8, s32, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -562,7 +562,7 @@ CVTS_FUNC(u8, s32, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(u8, f32, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
-@@ -985,7 +985,7 @@ CVTS_FUNC(s8, s16, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(s8, s32, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1074,7 +1074,7 @@ CVTS_FUNC(s8, s32, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(s8, f32, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
-@@ -1155,7 +1155,7 @@ CVTS_FUNC(s8, f32, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(u16, u8, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1214,7 +1214,7 @@ CVTS_FUNC(u16, u8, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(u16, s8, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1273,7 +1273,7 @@ CVTS_FUNC(u16, s8, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC1(u16, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1330,7 +1330,7 @@ CVTS_FUNC1(u16, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(u16, s16, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1387,7 +1387,7 @@ CVTS_FUNC(u16, s16, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(u16, s32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1443,7 +1443,7 @@ CVTS_FUNC(u16, s32, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(u16, f32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
-@@ -1495,7 +1495,7 @@ CVTS_FUNC(u16, f32, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(s16, u8, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1554,7 +1554,7 @@ CVTS_FUNC(s16, u8, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(s16, s8, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1613,7 +1613,7 @@ CVTS_FUNC(s16, s8, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(s16, u16, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1670,7 +1670,7 @@ CVTS_FUNC(s16, u16, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC1(s16, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1727,7 +1727,7 @@ CVTS_FUNC1(s16, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(s16, s32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1783,7 +1783,7 @@ CVTS_FUNC(s16, s32, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(s16, f32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
-@@ -1835,7 +1835,7 @@ CVTS_FUNC(s16, f32, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(s32, u8, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1893,7 +1893,7 @@ CVTS_FUNC(s32, u8, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(s32, s8, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1951,7 +1951,7 @@ CVTS_FUNC(s32, s8, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(s32, u16, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2007,7 +2007,7 @@ CVTS_FUNC(s32, u16, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(s32, s16, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2063,7 +2063,7 @@ CVTS_FUNC(s32, s16, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC1(s32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2118,7 +2118,7 @@ CVTS_FUNC1(s32, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(s32, f32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
-@@ -2169,7 +2169,7 @@ CVTS_FUNC(s32, f32, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(f32, u8, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)((1 << 16)*alpha));
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)((1 << 16)*beta));
-@@ -2239,7 +2239,7 @@ CVTS_FUNC(f32, u8, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(f32, s8, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2293,7 +2293,7 @@ CVTS_FUNC(f32, s8, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(f32, u16, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2345,7 +2345,7 @@ CVTS_FUNC(f32, u16, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(f32, s16, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2397,7 +2397,7 @@ CVTS_FUNC(f32, s16, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(f32, s32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2448,7 +2448,7 @@ CVTS_FUNC(f32, s32, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC1(f32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
-diff --git a/3rdparty/carotene/src/gaussian_blur.cpp b/3rdparty/carotene/src/gaussian_blur.cpp
-index f7b5f18d79..e5aa8fc75b 100644
---- a/3rdparty/carotene/src/gaussian_blur.cpp
-+++ b/3rdparty/carotene/src/gaussian_blur.cpp
-@@ -327,7 +327,7 @@ void gaussianBlur5x5(const Size2D &size, s32 cn,
- u16* lidx1 = lane + x - 1*2;
- u16* lidx3 = lane + x + 1*2;
- u16* lidx4 = lane + x + 2*2;
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- __asm__ __volatile__ (
- "vld2.16 {d0, d2}, [%[in0]]! \n\t"
- "vld2.16 {d1, d3}, [%[in0]] \n\t"
-diff --git a/3rdparty/carotene/src/pyramid.cpp b/3rdparty/carotene/src/pyramid.cpp
-index 232ccf3efd..d4e32ea50f 100644
---- a/3rdparty/carotene/src/pyramid.cpp
-+++ b/3rdparty/carotene/src/pyramid.cpp
-@@ -331,7 +331,7 @@ void gaussianPyramidDown(const Size2D &srcSize,
- for (; x < roiw8; x += 8)
- {
- internal::prefetch(lane + 2 * x);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- __asm__ (
- "vld2.16 {d0-d3}, [%[in0]] \n\t"
- "vld2.16 {d4-d7}, [%[in4]] \n\t"
-@@ -538,7 +538,7 @@ void gaussianPyramidDown(const Size2D &srcSize,
- for (; x < roiw4; x += 4)
- {
- internal::prefetch(lane + 2 * x);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- __asm__ (
- "vld2.32 {d0-d3}, [%[in0]] \n\t"
- "vld2.32 {d4-d7}, [%[in4]] \n\t"
-@@ -672,7 +672,7 @@ void gaussianPyramidDown(const Size2D &srcSize,
- std::vector<f32> _buf(cn*(srcSize.width + 4) + 32/sizeof(f32));
- f32* lane = internal::alignPtr(&_buf[2*cn], 32);
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- register float32x4_t vc6d4f32 asm ("q11") = vmovq_n_f32(1.5f); // 6/4
- register float32x4_t vc1d4f32 asm ("q12") = vmovq_n_f32(0.25f); // 1/4
-
-@@ -739,7 +739,7 @@ void gaussianPyramidDown(const Size2D &srcSize,
- for (; x < roiw4; x += 4)
- {
- internal::prefetch(lane + 2 * x);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- __asm__ __volatile__ (
- "vld2.32 {d0-d3}, [%[in0]] \n\t"
- "vld2.32 {d8-d11}, [%[in4]] \n\t"
-diff --git a/3rdparty/carotene/src/scharr.cpp b/3rdparty/carotene/src/scharr.cpp
-index 8d3b6328b1..36f6b2276e 100644
---- a/3rdparty/carotene/src/scharr.cpp
-+++ b/3rdparty/carotene/src/scharr.cpp
-@@ -109,7 +109,7 @@ void ScharrDeriv(const Size2D &size, s32 cn,
- internal::prefetch(srow0 + x);
- internal::prefetch(srow1 + x);
- internal::prefetch(srow2 + x);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- __asm__ (
- "vld1.8 {d0}, [%[src0]] \n\t"
- "vld1.8 {d2}, [%[src2]] \n\t"
-@@ -161,7 +161,7 @@ void ScharrDeriv(const Size2D &size, s32 cn,
- x = 0;
- for( ; x < roiw8; x += 8 )
- {
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- __asm__ (
- "vld1.16 {d4-d5}, [%[s2ptr]] \n\t"
- "vld1.16 {d8-d9}, [%[s4ptr]] \n\t"
---
-2.14.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-imgcodecs-refactoring-improve-code-quality.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-imgcodecs-refactoring-improve-code-quality.patch
deleted file mode 100644
index 39f33af9d..000000000
--- a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-imgcodecs-refactoring-improve-code-quality.patch
+++ /dev/null
@@ -1,656 +0,0 @@
-Upstream-Status: Backport [https://github.com/opencv/opencv/pull/9376/commits/999f41fb4f4aa94a0cb47256919ae8b5c29ca5f3]
-
-Fix CVEs for opencv 3.3:
-
-* CVE-2017-12597
-* CVE-2017-12598
-* CVE-2017-12599
-* CVE-2017-12600
-* CVE-2017-12601
-* CVE-2017-12602
-* CVE-2017-12603
-* CVE-2017-12604
-* CVE-2017-12605
-* CVE-2017-12606
-* CVE-2017-12862
-* CVE-2017-12863
-* CVE-2017-12864
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
----
-From 999f41fb4f4aa94a0cb47256919ae8b5c29ca5f3 Mon Sep 17 00:00:00 2001
-From: Alexander Alekhin <alexander.a.alekhin@gmail.com>
-Date: Tue, 15 Aug 2017 22:04:55 +0000
-Subject: [PATCH 2/3] imgcodecs: refactoring, improve code quality
-
----
- modules/imgcodecs/src/bitstrm.cpp | 2 +
- modules/imgcodecs/src/bitstrm.hpp | 19 +++--
- modules/imgcodecs/src/grfmt_bmp.cpp | 13 ++-
- modules/imgcodecs/src/grfmt_pxm.cpp | 122 ++++++++++++++++-----------
- modules/imgcodecs/src/loadsave.cpp | 164 +++++++++++++++++++++++++++++-------
- 5 files changed, 231 insertions(+), 89 deletions(-)
-
-diff --git a/modules/imgcodecs/src/bitstrm.cpp b/modules/imgcodecs/src/bitstrm.cpp
-index a7e187fa0..0a8941aec 100644
---- a/modules/imgcodecs/src/bitstrm.cpp
-+++ b/modules/imgcodecs/src/bitstrm.cpp
-@@ -209,6 +209,8 @@ int RLByteStream::getByte()
- current = m_current;
- }
-
-+ CV_Assert(current < m_end);
-+
- val = *((uchar*)current);
- m_current = current + 1;
- return val;
-diff --git a/modules/imgcodecs/src/bitstrm.hpp b/modules/imgcodecs/src/bitstrm.hpp
-index 465c0a847..26947971f 100644
---- a/modules/imgcodecs/src/bitstrm.hpp
-+++ b/modules/imgcodecs/src/bitstrm.hpp
-@@ -48,13 +48,20 @@
- namespace cv
- {
-
--enum
--{
-- RBS_THROW_EOS=-123, // <end of stream> exception code
-- RBS_THROW_FORB=-124, // <forrbidden huffman code> exception code
-- RBS_HUFF_FORB=2047, // forrbidden huffman code "value"
-- RBS_BAD_HEADER=-125 // invalid header
-+#define DECLARE_RBS_EXCEPTION(name) \
-+class RBS_ ## name ## _Exception : public cv::Exception \
-+{ \
-+public: \
-+ RBS_ ## name ## _Exception(int code_, const String& err_, const String& func_, const String& file_, int line_) : \
-+ cv::Exception(code_, err_, func_, file_, line_) \
-+ {} \
- };
-+DECLARE_RBS_EXCEPTION(THROW_EOS)
-+#define RBS_THROW_EOS RBS_THROW_EOS_Exception(cv::Error::StsError, "Unexpected end of input stream", CV_Func, __FILE__, __LINE__)
-+DECLARE_RBS_EXCEPTION(THROW_FORB)
-+#define RBS_THROW_FORB RBS_THROW_FORB_Exception(cv::Error::StsError, "Forrbidden huffman code", CV_Func, __FILE__, __LINE__)
-+DECLARE_RBS_EXCEPTION(BAD_HEADER)
-+#define RBS_BAD_HEADER RBS_BAD_HEADER_Exception(cv::Error::StsError, "Invalid header", CV_Func, __FILE__, __LINE__)
-
- typedef unsigned long ulong;
-
-diff --git a/modules/imgcodecs/src/grfmt_bmp.cpp b/modules/imgcodecs/src/grfmt_bmp.cpp
-index 86cacd316..257f97c2d 100644
---- a/modules/imgcodecs/src/grfmt_bmp.cpp
-+++ b/modules/imgcodecs/src/grfmt_bmp.cpp
-@@ -118,8 +118,9 @@ bool BmpDecoder::readHeader()
-
- if( m_bpp <= 8 )
- {
-- memset( m_palette, 0, sizeof(m_palette));
-- m_strm.getBytes( m_palette, (clrused == 0? 1<<m_bpp : clrused)*4 );
-+ CV_Assert(clrused < 256);
-+ memset(m_palette, 0, sizeof(m_palette));
-+ m_strm.getBytes(m_palette, (clrused == 0? 1<<m_bpp : clrused)*4 );
- iscolor = IsColorPalette( m_palette, m_bpp );
- }
- else if( m_bpp == 16 && m_rle_code == BMP_BITFIELDS )
-@@ -290,7 +291,9 @@ bool BmpDecoder::readData( Mat& img )
- else if( code > 2 ) // absolute mode
- {
- if( data + code*nch > line_end ) goto decode_rle4_bad;
-- m_strm.getBytes( src, (((code + 1)>>1) + 1) & -2 );
-+ int sz = (((code + 1)>>1) + 1) & (~1);
-+ CV_Assert((size_t)sz < _src.size());
-+ m_strm.getBytes(src, sz);
- if( color )
- data = FillColorRow4( data, src, code, m_palette );
- else
-@@ -379,7 +382,9 @@ decode_rle4_bad: ;
-
- if( data + code3 > line_end )
- goto decode_rle8_bad;
-- m_strm.getBytes( src, (code + 1) & -2 );
-+ int sz = (code + 1) & (~1);
-+ CV_Assert((size_t)sz < _src.size());
-+ m_strm.getBytes(src, sz);
- if( color )
- data = FillColorRow8( data, src, code, m_palette );
- else
-diff --git a/modules/imgcodecs/src/grfmt_pxm.cpp b/modules/imgcodecs/src/grfmt_pxm.cpp
-index 1750cb705..68bd8fd93 100644
---- a/modules/imgcodecs/src/grfmt_pxm.cpp
-+++ b/modules/imgcodecs/src/grfmt_pxm.cpp
-@@ -43,50 +43,58 @@
- #include "precomp.hpp"
- #include "utils.hpp"
- #include "grfmt_pxm.hpp"
-+#include <iostream>
-
- namespace cv
- {
-
- ///////////////////////// P?M reader //////////////////////////////
-
--static int ReadNumber( RLByteStream& strm, int maxdigits )
-+static int ReadNumber(RLByteStream& strm, int maxdigits = 0)
- {
- int code;
-- int val = 0;
-+ int64 val = 0;
- int digits = 0;
-
- code = strm.getByte();
-
-- if( !isdigit(code))
-+ while (!isdigit(code))
- {
-- do
-+ if (code == '#' )
- {
-- if( code == '#' )
-+ do
- {
-- do
-- {
-- code = strm.getByte();
-- }
-- while( code != '\n' && code != '\r' );
-+ code = strm.getByte();
- }
--
-+ while (code != '\n' && code != '\r');
- code = strm.getByte();
--
-- while( isspace(code))
-+ }
-+ else if (isspace(code))
-+ {
-+ while (isspace(code))
- code = strm.getByte();
- }
-- while( !isdigit( code ));
-+ else
-+ {
-+#if 1
-+ CV_ErrorNoReturn_(Error::StsError, ("PXM: Unexpected code in ReadNumber(): 0x%x (%d)", code, code));
-+#else
-+ code = strm.getByte();
-+#endif
-+ }
- }
-
- do
- {
-- val = val*10 + code - '0';
-- if( ++digits >= maxdigits ) break;
-+ val = val*10 + (code - '0');
-+ CV_Assert(val <= INT_MAX && "PXM: ReadNumber(): result is too large");
-+ digits++;
-+ if (maxdigits != 0 && digits >= maxdigits) break;
- code = strm.getByte();
- }
-- while( isdigit(code));
-+ while (isdigit(code));
-
-- return val;
-+ return (int)val;
- }
-
-
-@@ -122,13 +130,13 @@ ImageDecoder PxMDecoder::newDecoder() const
- return makePtr<PxMDecoder>();
- }
-
--void PxMDecoder::close()
-+void PxMDecoder::close()
- {
- m_strm.close();
- }
-
-
--bool PxMDecoder::readHeader()
-+bool PxMDecoder::readHeader()
- {
- bool result = false;
-
-@@ -158,10 +166,10 @@ bool PxMDecoder::readHeader()
- m_binary = code >= '4';
- m_type = m_bpp > 8 ? CV_8UC3 : CV_8UC1;
-
-- m_width = ReadNumber( m_strm, INT_MAX );
-- m_height = ReadNumber( m_strm, INT_MAX );
-+ m_width = ReadNumber(m_strm);
-+ m_height = ReadNumber(m_strm);
-
-- m_maxval = m_bpp == 1 ? 1 : ReadNumber( m_strm, INT_MAX );
-+ m_maxval = m_bpp == 1 ? 1 : ReadNumber(m_strm);
- if( m_maxval > 65535 )
- throw RBS_BAD_HEADER;
-
-@@ -175,8 +183,14 @@ bool PxMDecoder::readHeader()
- result = true;
- }
- }
-- catch(...)
-+ catch (const cv::Exception&)
-+ {
-+ throw;
-+ }
-+ catch (...)
- {
-+ std::cerr << "PXM::readHeader(): unknown C++ exception" << std::endl << std::flush;
-+ throw;
- }
-
- if( !result )
-@@ -189,33 +203,28 @@ bool PxMDecoder::readHeader()
- }
-
-
--bool PxMDecoder::readData( Mat& img )
-+bool PxMDecoder::readData( Mat& img )
- {
- int color = img.channels() > 1;
- uchar* data = img.ptr();
- PaletteEntry palette[256];
- bool result = false;
-- int bit_depth = CV_ELEM_SIZE1(m_type)*8;
-- int src_pitch = (m_width*m_bpp*bit_depth/8 + 7)/8;
-+ const int bit_depth = CV_ELEM_SIZE1(m_type)*8;
-+ const int src_pitch = divUp(m_width*m_bpp*(bit_depth/8), 8);
- int nch = CV_MAT_CN(m_type);
- int width3 = m_width*nch;
-- int i, x, y;
-
- if( m_offset < 0 || !m_strm.isOpened())
- return false;
-
-- AutoBuffer<uchar> _src(src_pitch + 32);
-- uchar* src = _src;
-- AutoBuffer<uchar> _gray_palette;
-- uchar* gray_palette = _gray_palette;
-+ uchar gray_palette[256] = {0};
-
- // create LUT for converting colors
- if( bit_depth == 8 )
- {
-- _gray_palette.allocate(m_maxval + 1);
-- gray_palette = _gray_palette;
-+ CV_Assert(m_maxval < 256);
-
-- for( i = 0; i <= m_maxval; i++ )
-+ for (int i = 0; i <= m_maxval; i++)
- gray_palette[i] = (uchar)((i*255/m_maxval)^(m_bpp == 1 ? 255 : 0));
-
- FillGrayPalette( palette, m_bpp==1 ? 1 : 8 , m_bpp == 1 );
-@@ -229,12 +238,16 @@ bool PxMDecoder::readData( Mat& img )
- {
- ////////////////////////// 1 BPP /////////////////////////
- case 1:
-+ CV_Assert(CV_MAT_DEPTH(m_type) == CV_8U);
- if( !m_binary )
- {
-- for( y = 0; y < m_height; y++, data += img.step )
-+ AutoBuffer<uchar> _src(m_width);
-+ uchar* src = _src;
-+
-+ for (int y = 0; y < m_height; y++, data += img.step)
- {
-- for( x = 0; x < m_width; x++ )
-- src[x] = ReadNumber( m_strm, 1 ) != 0;
-+ for (int x = 0; x < m_width; x++)
-+ src[x] = ReadNumber(m_strm, 1) != 0;
-
- if( color )
- FillColorRow8( data, src, m_width, palette );
-@@ -244,7 +257,10 @@ bool PxMDecoder::readData( Mat& img )
- }
- else
- {
-- for( y = 0; y < m_height; y++, data += img.step )
-+ AutoBuffer<uchar> _src(src_pitch);
-+ uchar* src = _src;
-+
-+ for (int y = 0; y < m_height; y++, data += img.step)
- {
- m_strm.getBytes( src, src_pitch );
-
-@@ -260,13 +276,17 @@ bool PxMDecoder::readData( Mat& img )
- ////////////////////////// 8 BPP /////////////////////////
- case 8:
- case 24:
-- for( y = 0; y < m_height; y++, data += img.step )
-+ {
-+ AutoBuffer<uchar> _src(std::max<size_t>(width3*2, src_pitch));
-+ uchar* src = _src;
-+
-+ for (int y = 0; y < m_height; y++, data += img.step)
- {
- if( !m_binary )
- {
-- for( x = 0; x < width3; x++ )
-+ for (int x = 0; x < width3; x++)
- {
-- int code = ReadNumber( m_strm, INT_MAX );
-+ int code = ReadNumber(m_strm);
- if( (unsigned)code > (unsigned)m_maxval ) code = m_maxval;
- if( bit_depth == 8 )
- src[x] = gray_palette[code];
-@@ -279,7 +299,7 @@ bool PxMDecoder::readData( Mat& img )
- m_strm.getBytes( src, src_pitch );
- if( bit_depth == 16 && !isBigEndian() )
- {
-- for( x = 0; x < width3; x++ )
-+ for (int x = 0; x < width3; x++)
- {
- uchar v = src[x * 2];
- src[x * 2] = src[x * 2 + 1];
-@@ -290,7 +310,7 @@ bool PxMDecoder::readData( Mat& img )
-
- if( img.depth() == CV_8U && bit_depth == 16 )
- {
-- for( x = 0; x < width3; x++ )
-+ for (int x = 0; x < width3; x++)
- {
- int v = ((ushort *)src)[x];
- src[x] = (uchar)(v >> 8);
-@@ -331,12 +351,19 @@ bool PxMDecoder::readData( Mat& img )
- }
- result = true;
- break;
-+ }
- default:
-- assert(0);
-+ CV_ErrorNoReturn(Error::StsError, "m_bpp is not supported");
- }
- }
-- catch(...)
-+ catch (const cv::Exception&)
-+ {
-+ throw;
-+ }
-+ catch (...)
- {
-+ std::cerr << "PXM::readData(): unknown exception" << std::endl << std::flush;
-+ throw;
- }
-
- return result;
-@@ -412,8 +439,9 @@ bool PxMEncoder::write( const Mat& img, const std::vector<int>& params )
- char* buffer = _buffer;
-
- // write header;
-- sprintf( buffer, "P%c\n%d %d\n%d\n",
-+ sprintf( buffer, "P%c\n# Generated by OpenCV %s\n%d %d\n%d\n",
- '2' + (channels > 1 ? 1 : 0) + (isBinary ? 3 : 0),
-+ CV_VERSION,
- width, height, (1 << depth) - 1 );
-
- strm.putBytes( buffer, (int)strlen(buffer) );
-diff --git a/modules/imgcodecs/src/loadsave.cpp b/modules/imgcodecs/src/loadsave.cpp
-index 3b2366217..5ee4ca354 100644
---- a/modules/imgcodecs/src/loadsave.cpp
-+++ b/modules/imgcodecs/src/loadsave.cpp
-@@ -55,6 +55,27 @@
- /****************************************************************************************\
- * Image Codecs *
- \****************************************************************************************/
-+
-+namespace cv {
-+
-+// TODO Add runtime configuration
-+#define CV_IO_MAX_IMAGE_PARAMS (50)
-+#define CV_IO_MAX_IMAGE_WIDTH (1<<20)
-+#define CV_IO_MAX_IMAGE_HEIGHT (1<<20)
-+#define CV_IO_MAX_IMAGE_PIXELS (1<<30) // 1 Gigapixel
-+
-+static Size validateInputImageSize(const Size& size)
-+{
-+ CV_Assert(size.width > 0);
-+ CV_Assert(size.width <= CV_IO_MAX_IMAGE_WIDTH);
-+ CV_Assert(size.height > 0);
-+ CV_Assert(size.height <= CV_IO_MAX_IMAGE_HEIGHT);
-+ uint64 pixels = (uint64)size.width * (uint64)size.height;
-+ CV_Assert(pixels <= CV_IO_MAX_IMAGE_PIXELS);
-+ return size;
-+}
-+
-+
- namespace {
-
- class ByteStreamBuffer: public std::streambuf
-@@ -94,9 +115,6 @@ protected:
-
- }
-
--namespace cv
--{
--
- /**
- * @struct ImageCodecInitializer
- *
-@@ -408,14 +426,26 @@ imread_( const String& filename, int flags, int hdrtype, Mat* mat=0 )
- /// set the filename in the driver
- decoder->setSource( filename );
-
-- // read the header to make sure it succeeds
-- if( !decoder->readHeader() )
-+ try
-+ {
-+ // read the header to make sure it succeeds
-+ if( !decoder->readHeader() )
-+ return 0;
-+ }
-+ catch (const cv::Exception& e)
-+ {
-+ std::cerr << "imread_('" << filename << "'): can't read header: " << e.what() << std::endl << std::flush;
- return 0;
-+ }
-+ catch (...)
-+ {
-+ std::cerr << "imread_('" << filename << "'): can't read header: unknown exception" << std::endl << std::flush;
-+ return 0;
-+ }
-+
-
- // established the required input image size
-- CvSize size;
-- size.width = decoder->width();
-- size.height = decoder->height();
-+ Size size = validateInputImageSize(Size(decoder->width(), decoder->height()));
-
- // grab the decoded type
- int type = decoder->type();
-@@ -451,7 +481,21 @@ imread_( const String& filename, int flags, int hdrtype, Mat* mat=0 )
- }
-
- // read the image data
-- if( !decoder->readData( *data ))
-+ bool success = false;
-+ try
-+ {
-+ if (decoder->readData(*data))
-+ success = true;
-+ }
-+ catch (const cv::Exception& e)
-+ {
-+ std::cerr << "imread_('" << filename << "'): can't read data: " << e.what() << std::endl << std::flush;
-+ }
-+ catch (...)
-+ {
-+ std::cerr << "imread_('" << filename << "'): can't read data: unknown exception" << std::endl << std::flush;
-+ }
-+ if (!success)
- {
- cvReleaseImage( &image );
- cvReleaseMat( &matrix );
-@@ -504,8 +548,22 @@ imreadmulti_(const String& filename, int flags, std::vector<Mat>& mats)
- decoder->setSource(filename);
-
- // read the header to make sure it succeeds
-- if (!decoder->readHeader())
-+ try
-+ {
-+ // read the header to make sure it succeeds
-+ if( !decoder->readHeader() )
-+ return 0;
-+ }
-+ catch (const cv::Exception& e)
-+ {
-+ std::cerr << "imreadmulti_('" << filename << "'): can't read header: " << e.what() << std::endl << std::flush;
- return 0;
-+ }
-+ catch (...)
-+ {
-+ std::cerr << "imreadmulti_('" << filename << "'): can't read header: unknown exception" << std::endl << std::flush;
-+ return 0;
-+ }
-
- for (;;)
- {
-@@ -523,17 +581,32 @@ imreadmulti_(const String& filename, int flags, std::vector<Mat>& mats)
- type = CV_MAKETYPE(CV_MAT_DEPTH(type), 1);
- }
-
-+ // established the required input image size
-+ Size size = validateInputImageSize(Size(decoder->width(), decoder->height()));
-+
- // read the image data
-- Mat mat(decoder->height(), decoder->width(), type);
-- if (!decoder->readData(mat))
-+ Mat mat(size.height, size.width, type);
-+ bool success = false;
-+ try
- {
-- // optionally rotate the data if EXIF' orientation flag says so
-- if( (flags & IMREAD_IGNORE_ORIENTATION) == 0 && flags != IMREAD_UNCHANGED )
-- {
-- ApplyExifOrientation(filename, mat);
-- }
--
-+ if (decoder->readData(mat))
-+ success = true;
-+ }
-+ catch (const cv::Exception& e)
-+ {
-+ std::cerr << "imreadmulti_('" << filename << "'): can't read data: " << e.what() << std::endl << std::flush;
-+ }
-+ catch (...)
-+ {
-+ std::cerr << "imreadmulti_('" << filename << "'): can't read data: unknown exception" << std::endl << std::flush;
-+ }
-+ if (!success)
- break;
-+
-+ // optionally rotate the data if EXIF' orientation flag says so
-+ if( (flags & IMREAD_IGNORE_ORIENTATION) == 0 && flags != IMREAD_UNCHANGED )
-+ {
-+ ApplyExifOrientation(filename, mat);
- }
-
- mats.push_back(mat);
-@@ -616,6 +689,7 @@ static bool imwrite_( const String& filename, const Mat& image,
- }
-
- encoder->setDestination( filename );
-+ CV_Assert(params.size() <= CV_IO_MAX_IMAGE_PARAMS*2);
- bool code = encoder->write( *pimage, params );
-
- // CV_Assert( code );
-@@ -663,22 +737,35 @@ imdecode_( const Mat& buf, int flags, int hdrtype, Mat* mat=0 )
- decoder->setSource(filename);
- }
-
-- if( !decoder->readHeader() )
-+ bool success = false;
-+ try
-+ {
-+ if (decoder->readHeader())
-+ success = true;
-+ }
-+ catch (const cv::Exception& e)
-+ {
-+ std::cerr << "imdecode_('" << filename << "'): can't read header: " << e.what() << std::endl << std::flush;
-+ }
-+ catch (...)
-+ {
-+ std::cerr << "imdecode_('" << filename << "'): can't read header: unknown exception" << std::endl << std::flush;
-+ }
-+ if (!success)
- {
- decoder.release();
-- if ( !filename.empty() )
-+ if (!filename.empty())
- {
-- if ( remove(filename.c_str()) != 0 )
-+ if (0 != remove(filename.c_str()))
- {
-- CV_Error( CV_StsError, "unable to remove temporary file" );
-+ std::cerr << "unable to remove temporary file:" << filename << std::endl << std::flush;
- }
- }
- return 0;
- }
-
-- CvSize size;
-- size.width = decoder->width();
-- size.height = decoder->height();
-+ // established the required input image size
-+ Size size = validateInputImageSize(Size(decoder->width(), decoder->height()));
-
- int type = decoder->type();
- if( (flags & IMREAD_LOAD_GDAL) != IMREAD_LOAD_GDAL && flags != IMREAD_UNCHANGED )
-@@ -712,17 +799,30 @@ imdecode_( const Mat& buf, int flags, int hdrtype, Mat* mat=0 )
- temp = cvarrToMat(image);
- }
-
-- bool code = decoder->readData( *data );
-+ success = false;
-+ try
-+ {
-+ if (decoder->readData(*data))
-+ success = true;
-+ }
-+ catch (const cv::Exception& e)
-+ {
-+ std::cerr << "imdecode_('" << filename << "'): can't read data: " << e.what() << std::endl << std::flush;
-+ }
-+ catch (...)
-+ {
-+ std::cerr << "imdecode_('" << filename << "'): can't read data: unknown exception" << std::endl << std::flush;
-+ }
- decoder.release();
-- if ( !filename.empty() )
-+ if (!filename.empty())
- {
-- if ( remove(filename.c_str()) != 0 )
-+ if (0 != remove(filename.c_str()))
- {
-- CV_Error( CV_StsError, "unable to remove temporary file" );
-+ std::cerr << "unable to remove temporary file:" << filename << std::endl << std::flush;
- }
- }
-
-- if( !code )
-+ if (!success)
- {
- cvReleaseImage( &image );
- cvReleaseMat( &matrix );
-@@ -859,7 +959,7 @@ cvSaveImage( const char* filename, const CvArr* arr, const int* _params )
- if( _params )
- {
- for( ; _params[i] > 0; i += 2 )
-- ;
-+ CV_Assert(i < CV_IO_MAX_IMAGE_PARAMS*2); // Limit number of params for security reasons
- }
- return cv::imwrite_(filename, cv::cvarrToMat(arr),
- i > 0 ? std::vector<int>(_params, _params+i) : std::vector<int>(),
-@@ -890,7 +990,7 @@ cvEncodeImage( const char* ext, const CvArr* arr, const int* _params )
- if( _params )
- {
- for( ; _params[i] > 0; i += 2 )
-- ;
-+ CV_Assert(i < CV_IO_MAX_IMAGE_PARAMS*2); // Limit number of params for security reasons
- }
- cv::Mat img = cv::cvarrToMat(arr);
- if( CV_IS_IMAGE(arr) && ((const IplImage*)arr)->origin == IPL_ORIGIN_BL )
---
-2.14.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0003-To-fix-errors-as-following.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0003-To-fix-errors-as-following.patch
index a22b04a90..5270b8c9f 100644
--- a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0003-To-fix-errors-as-following.patch
+++ b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0003-To-fix-errors-as-following.patch
@@ -19,29 +19,21 @@ Signed-off-by: Ismo Puustinen <ismo.puustinen@intel.com>
modules/ts/include/opencv2/ts/ts_ext.hpp | 2 +-
3 files changed, 5 insertions(+), 5 deletions(-)
-diff --git a/modules/ts/include/opencv2/ts.hpp b/modules/ts/include/opencv2/ts.hpp
-index 41a76b13e..205646140 100644
---- a/modules/ts/include/opencv2/ts.hpp
-+++ b/modules/ts/include/opencv2/ts.hpp
-@@ -555,7 +555,7 @@ protected:
+Index: git/modules/ts/include/opencv2/ts.hpp
+===================================================================
+--- git.orig/modules/ts/include/opencv2/ts.hpp
++++ git/modules/ts/include/opencv2/ts.hpp
+@@ -608,7 +608,7 @@ protected:
}
};
-extern uint64 param_seed;
+CV_EXPORTS extern uint64 param_seed;
- struct CV_EXPORTS DefaultRngAuto
+ struct DefaultRngAuto
{
-@@ -611,14 +611,14 @@ CV_EXPORTS std::string findDataFile(const std::string& relative_path, bool requi
-
- #ifdef HAVE_OPENCL
- namespace ocl {
--void dumpOpenCLDevice();
-+CV_EXPORTS void dumpOpenCLDevice();
- }
- #define TEST_DUMP_OCL_INFO cvtest::ocl::dumpOpenCLDevice();
- #else
- #define TEST_DUMP_OCL_INFO
+@@ -671,7 +671,7 @@ private:
+ #endif
#endif
-void parseCustomOptions(int argc, char **argv);
@@ -49,10 +41,10 @@ index 41a76b13e..205646140 100644
#define CV_TEST_INIT0_NOOP (void)0
-diff --git a/modules/ts/include/opencv2/ts/ocl_test.hpp b/modules/ts/include/opencv2/ts/ocl_test.hpp
-index 54b33ece8..ef56bf9ef 100644
---- a/modules/ts/include/opencv2/ts/ocl_test.hpp
-+++ b/modules/ts/include/opencv2/ts/ocl_test.hpp
+Index: git/modules/ts/include/opencv2/ts/ocl_test.hpp
+===================================================================
+--- git.orig/modules/ts/include/opencv2/ts/ocl_test.hpp
++++ git/modules/ts/include/opencv2/ts/ocl_test.hpp
@@ -82,7 +82,7 @@ inline UMat ToUMat(InputArray src)
return dst;
}
@@ -62,19 +54,16 @@ index 54b33ece8..ef56bf9ef 100644
#define MAX_VALUE 357
-diff --git a/modules/ts/include/opencv2/ts/ts_ext.hpp b/modules/ts/include/opencv2/ts/ts_ext.hpp
-index 0bdd346dd..2cd34dfce 100644
---- a/modules/ts/include/opencv2/ts/ts_ext.hpp
-+++ b/modules/ts/include/opencv2/ts/ts_ext.hpp
+Index: git/modules/ts/include/opencv2/ts/ts_ext.hpp
+===================================================================
+--- git.orig/modules/ts/include/opencv2/ts/ts_ext.hpp
++++ git/modules/ts/include/opencv2/ts/ts_ext.hpp
@@ -9,7 +9,7 @@
#define OPENCV_TS_EXT_HPP
namespace cvtest {
-void checkIppStatus();
+CV_EXPORTS void checkIppStatus();
- }
-
- #define CV_TEST_INIT \
---
-2.13.4
-
+ extern bool skipUnstableTests;
+ extern bool runBigDataTests;
+ extern int testThreads;
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0003-imgproc-test-add-checks-for-remove-call.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0003-imgproc-test-add-checks-for-remove-call.patch
deleted file mode 100644
index 5f4a60c96..000000000
--- a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0003-imgproc-test-add-checks-for-remove-call.patch
+++ /dev/null
@@ -1,186 +0,0 @@
-Upstream-Status: Backport [https://github.com/opencv/opencv/pull/9376/commits/78a310630fb0a1f6d089576202343e672f27609d]
-
-Fix CVEs for opencv 3.3.
-
-* CVE-2017-12597
-* CVE-2017-12598
-* CVE-2017-12599
-* CVE-2017-12600
-* CVE-2017-12601
-* CVE-2017-12602
-* CVE-2017-12603
-* CVE-2017-12604
-* CVE-2017-12605
-* CVE-2017-12606
-* CVE-2017-12862
-* CVE-2017-12863
-* CVE-2017-12864
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
----
-From 78a310630fb0a1f6d089576202343e672f27609d Mon Sep 17 00:00:00 2001
-From: Alexander Alekhin <alexander.alekhin@intel.com>
-Date: Wed, 16 Aug 2017 13:53:12 +0300
-Subject: [PATCH 3/3] imgproc(test): add checks for remove() call
-
----
- modules/imgcodecs/test/test_grfmt.cpp | 2 +-
- modules/imgcodecs/test/test_jpeg.cpp | 12 ++++++------
- modules/imgcodecs/test/test_png.cpp | 2 +-
- modules/imgcodecs/test/test_read_write.cpp | 4 ++--
- modules/imgcodecs/test/test_tiff.cpp | 8 ++++----
- modules/imgcodecs/test/test_webp.cpp | 6 +++---
- 6 files changed, 17 insertions(+), 17 deletions(-)
-
-diff --git a/modules/imgcodecs/test/test_grfmt.cpp b/modules/imgcodecs/test/test_grfmt.cpp
-index 64a0c1e3a..74b72c3b3 100644
---- a/modules/imgcodecs/test/test_grfmt.cpp
-+++ b/modules/imgcodecs/test/test_grfmt.cpp
-@@ -175,7 +175,7 @@ TEST_P(Imgcodecs_ExtSize, write_imageseq)
- EXPECT_LT(n, 1.);
- EXPECT_PRED_FORMAT2(cvtest::MatComparator(0, 0), img, img_gt);
- }
-- remove(filename.c_str());
-+ EXPECT_EQ(0, remove(filename.c_str()));
- }
- }
-
-diff --git a/modules/imgcodecs/test/test_jpeg.cpp b/modules/imgcodecs/test/test_jpeg.cpp
-index 5546f2d91..6ddb02840 100644
---- a/modules/imgcodecs/test/test_jpeg.cpp
-+++ b/modules/imgcodecs/test/test_jpeg.cpp
-@@ -123,8 +123,8 @@ TEST(Imgcodecs_Jpeg, encode_decode_progressive_jpeg)
-
- EXPECT_EQ(0, cvtest::norm(img_jpg_progressive, img_jpg_normal, NORM_INF));
-
-- remove(output_progressive.c_str());
-- remove(output_normal.c_str());
-+ EXPECT_EQ(0, remove(output_progressive.c_str()));
-+ EXPECT_EQ(0, remove(output_normal.c_str()));
- }
-
- TEST(Imgcodecs_Jpeg, encode_decode_optimize_jpeg)
-@@ -148,8 +148,8 @@ TEST(Imgcodecs_Jpeg, encode_decode_optimize_jpeg)
-
- EXPECT_EQ(0, cvtest::norm(img_jpg_optimized, img_jpg_normal, NORM_INF));
-
-- remove(output_optimized.c_str());
-- remove(output_normal.c_str());
-+ EXPECT_EQ(0, remove(output_optimized.c_str()));
-+ EXPECT_EQ(0, remove(output_normal.c_str()));
- }
-
- TEST(Imgcodecs_Jpeg, encode_decode_rst_jpeg)
-@@ -173,8 +173,8 @@ TEST(Imgcodecs_Jpeg, encode_decode_rst_jpeg)
-
- EXPECT_EQ(0, cvtest::norm(img_jpg_rst, img_jpg_normal, NORM_INF));
-
-- remove(output_rst.c_str());
-- remove(output_normal.c_str());
-+ EXPECT_EQ(0, remove(output_rst.c_str()));
-+ EXPECT_EQ(0, remove(output_normal.c_str()));
- }
-
- #endif // HAVE_JPEG
-diff --git a/modules/imgcodecs/test/test_png.cpp b/modules/imgcodecs/test/test_png.cpp
-index c46f90119..4e97043e1 100644
---- a/modules/imgcodecs/test/test_png.cpp
-+++ b/modules/imgcodecs/test/test_png.cpp
-@@ -17,7 +17,7 @@ TEST(Imgcodecs_Png, write_big)
- EXPECT_EQ(13043, img.cols);
- EXPECT_EQ(13917, img.rows);
- ASSERT_NO_THROW(imwrite(dst_file, img));
-- remove(dst_file.c_str());
-+ EXPECT_EQ(0, remove(dst_file.c_str()));
- }
-
- TEST(Imgcodecs_Png, encode)
-diff --git a/modules/imgcodecs/test/test_read_write.cpp b/modules/imgcodecs/test/test_read_write.cpp
-index 38f10225f..5119813bf 100644
---- a/modules/imgcodecs/test/test_read_write.cpp
-+++ b/modules/imgcodecs/test/test_read_write.cpp
-@@ -50,7 +50,7 @@ TEST(Imgcodecs_Image, read_write_bmp)
- psnr = cvtest::PSNR(buf_loaded, image);
- EXPECT_GT(psnr, thresDbell);
-
-- remove(dst_name.c_str());
-+ EXPECT_EQ(0, remove(dst_name.c_str()));
- }
- }
-
-@@ -95,7 +95,7 @@ TEST_P(Imgcodecs_Image, read_write)
- psnr = cvtest::PSNR(buf_loaded, image);
- EXPECT_GT(psnr, thresDbell);
-
-- remove(full_name.c_str());
-+ EXPECT_EQ(0, remove(full_name.c_str()));
- }
-
- const string exts[] = {
-diff --git a/modules/imgcodecs/test/test_tiff.cpp b/modules/imgcodecs/test/test_tiff.cpp
-index 0264da4cd..6ef0c1748 100644
---- a/modules/imgcodecs/test/test_tiff.cpp
-+++ b/modules/imgcodecs/test/test_tiff.cpp
-@@ -41,8 +41,8 @@ TEST(Imgcodecs_Tiff, decode_tile16384x16384)
- // not enough memory
- }
-
-- remove(file3.c_str());
-- remove(file4.c_str());
-+ EXPECT_EQ(0, remove(file3.c_str()));
-+ EXPECT_EQ(0, remove(file4.c_str()));
- }
-
- TEST(Imgcodecs_Tiff, write_read_16bit_big_little_endian)
-@@ -88,7 +88,7 @@ TEST(Imgcodecs_Tiff, write_read_16bit_big_little_endian)
- EXPECT_EQ(0xDEAD, img.at<ushort>(0,0));
- EXPECT_EQ(0xBEEF, img.at<ushort>(0,1));
-
-- remove(filename.c_str());
-+ EXPECT_EQ(0, remove(filename.c_str()));
- }
- }
-
-@@ -143,7 +143,7 @@ TEST(Imgcodecs_Tiff, decode_infinite_rowsperstrip)
-
- EXPECT_NO_THROW(cv::imread(filename, IMREAD_UNCHANGED));
-
-- remove(filename.c_str());
-+ EXPECT_EQ(0, remove(filename.c_str()));
- }
-
- //==================================================================================================
-diff --git a/modules/imgcodecs/test/test_webp.cpp b/modules/imgcodecs/test/test_webp.cpp
-index 6d40ce21e..d82fdd289 100644
---- a/modules/imgcodecs/test/test_webp.cpp
-+++ b/modules/imgcodecs/test/test_webp.cpp
-@@ -44,7 +44,7 @@ TEST(Imgcodecs_WebP, encode_decode_lossless_webp)
- }
- }
-
-- remove(output.c_str());
-+ EXPECT_EQ(0, remove(output.c_str()));
-
- cv::Mat decode = cv::imdecode(buf, IMREAD_COLOR);
- ASSERT_FALSE(decode.empty());
-@@ -71,7 +71,7 @@ TEST(Imgcodecs_WebP, encode_decode_lossy_webp)
-
- EXPECT_NO_THROW(cv::imwrite(output, img, params));
- cv::Mat img_webp = cv::imread(output);
-- remove(output.c_str());
-+ EXPECT_EQ(0, remove(output.c_str()));
- EXPECT_FALSE(img_webp.empty());
- EXPECT_EQ(3, img_webp.channels());
- EXPECT_EQ(512, img_webp.cols);
-@@ -96,7 +96,7 @@ TEST(Imgcodecs_WebP, encode_decode_with_alpha_webp)
-
- EXPECT_NO_THROW(cv::imwrite(output, img));
- cv::Mat img_webp = cv::imread(output);
-- remove(output.c_str());
-+ EXPECT_EQ(0, remove(output.c_str()));
- EXPECT_FALSE(img_webp.empty());
- EXPECT_EQ(4, img_webp.channels());
- EXPECT_EQ(512, img_webp.cols);
---
-2.14.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/CVE-2017-14136.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/CVE-2017-14136.patch
deleted file mode 100644
index 7ad50a2d2..000000000
--- a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/CVE-2017-14136.patch
+++ /dev/null
@@ -1,288 +0,0 @@
-Upstream-Status: Backport [https://github.com/opencv/opencv/pull/9448/commits/aacae20]
-
-Backport patch to fix CVE-2017-14136.
-
-Ref: https://github.com/opencv/opencv/issues/9443
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
----
-From aacae2065744adb05e858d327198c7bbe7f452b0 Mon Sep 17 00:00:00 2001
-From: Alexander Alekhin <alexander.alekhin@intel.com>
-Date: Wed, 23 Aug 2017 15:15:27 +0300
-Subject: [PATCH] imgcodesc: fix code problems with integer overflow / address
- arithmetic / UB
-
----
- modules/imgcodecs/src/grfmt_bmp.cpp | 8 ++---
- modules/imgcodecs/src/grfmt_exr.cpp | 10 +++----
- modules/imgcodecs/src/grfmt_jpeg.cpp | 2 +-
- modules/imgcodecs/src/grfmt_jpeg2000.cpp | 6 ++--
- modules/imgcodecs/src/grfmt_pam.cpp | 2 +-
- modules/imgcodecs/src/grfmt_sunras.cpp | 6 ++--
- modules/imgcodecs/src/utils.cpp | 51 +++++++++++++++++++-------------
- modules/imgcodecs/src/utils.hpp | 2 ++
- 8 files changed, 50 insertions(+), 37 deletions(-)
-
-diff --git a/modules/imgcodecs/src/grfmt_bmp.cpp b/modules/imgcodecs/src/grfmt_bmp.cpp
-index 257f97c2d8b..69768e276a3 100644
---- a/modules/imgcodecs/src/grfmt_bmp.cpp
-+++ b/modules/imgcodecs/src/grfmt_bmp.cpp
-@@ -193,7 +193,7 @@ bool BmpDecoder::readHeader()
- bool BmpDecoder::readData( Mat& img )
- {
- uchar* data = img.ptr();
-- int step = (int)img.step;
-+ int step = validateToInt(img.step);
- bool color = img.channels() > 1;
- uchar gray_palette[256] = {0};
- bool result = false;
-@@ -206,7 +206,7 @@ bool BmpDecoder::readData( Mat& img )
-
- if( m_origin == IPL_ORIGIN_BL )
- {
-- data += (m_height - 1)*step;
-+ data += (m_height - 1)*(size_t)step;
- step = -step;
- }
-
-@@ -530,7 +530,7 @@ bool BmpEncoder::write( const Mat& img, const std::vector<int>& )
- int bitmapHeaderSize = 40;
- int paletteSize = channels > 1 ? 0 : 1024;
- int headerSize = 14 /* fileheader */ + bitmapHeaderSize + paletteSize;
-- int fileSize = fileStep*height + headerSize;
-+ size_t fileSize = (size_t)fileStep*height + headerSize;
- PaletteEntry palette[256];
-
- if( m_buf )
-@@ -540,7 +540,7 @@ bool BmpEncoder::write( const Mat& img, const std::vector<int>& )
- strm.putBytes( fmtSignBmp, (int)strlen(fmtSignBmp) );
-
- // write file header
-- strm.putDWord( fileSize ); // file size
-+ strm.putDWord( validateToInt(fileSize) ); // file size
- strm.putDWord( 0 );
- strm.putDWord( headerSize );
-
-diff --git a/modules/imgcodecs/src/grfmt_exr.cpp b/modules/imgcodecs/src/grfmt_exr.cpp
-index 0d2ae9fa7d2..78ffe6c7668 100644
---- a/modules/imgcodecs/src/grfmt_exr.cpp
-+++ b/modules/imgcodecs/src/grfmt_exr.cpp
-@@ -195,7 +195,7 @@ bool ExrDecoder::readData( Mat& img )
- bool color = img.channels() > 1;
-
- uchar* data = img.ptr();
-- int step = img.step;
-+ size_t step = img.step;
- bool justcopy = m_native_depth;
- bool chromatorgb = false;
- bool rgbtogray = false;
-@@ -203,8 +203,8 @@ bool ExrDecoder::readData( Mat& img )
- FrameBuffer frame;
- int xsample[3] = {1, 1, 1};
- char *buffer;
-- int xstep;
-- int ystep;
-+ size_t xstep = 0;
-+ size_t ystep = 0;
-
- xstep = m_native_depth ? 4 : 1;
-
-@@ -593,7 +593,7 @@ bool ExrEncoder::write( const Mat& img, const std::vector<int>& )
- bool issigned = depth == CV_8S || depth == CV_16S || depth == CV_32S;
- bool isfloat = depth == CV_32F || depth == CV_64F;
- depth = CV_ELEM_SIZE1(depth)*8;
-- const int step = img.step;
-+ const size_t step = img.step;
-
- Header header( width, height );
- Imf::PixelType type;
-@@ -623,7 +623,7 @@ bool ExrEncoder::write( const Mat& img, const std::vector<int>& )
- FrameBuffer frame;
-
- char *buffer;
-- int bufferstep;
-+ size_t bufferstep;
- int size;
- if( type == FLOAT && depth == 32 )
- {
-diff --git a/modules/imgcodecs/src/grfmt_jpeg.cpp b/modules/imgcodecs/src/grfmt_jpeg.cpp
-index ce942ca1995..caf768d2569 100644
---- a/modules/imgcodecs/src/grfmt_jpeg.cpp
-+++ b/modules/imgcodecs/src/grfmt_jpeg.cpp
-@@ -396,7 +396,7 @@ int my_jpeg_load_dht (struct jpeg_decompress_struct *info, unsigned char *dht,
- bool JpegDecoder::readData( Mat& img )
- {
- volatile bool result = false;
-- int step = (int)img.step;
-+ size_t step = img.step;
- bool color = img.channels() > 1;
-
- if( m_state && m_width && m_height )
-diff --git a/modules/imgcodecs/src/grfmt_jpeg2000.cpp b/modules/imgcodecs/src/grfmt_jpeg2000.cpp
-index 950ec21375f..24dfb38bb9d 100644
---- a/modules/imgcodecs/src/grfmt_jpeg2000.cpp
-+++ b/modules/imgcodecs/src/grfmt_jpeg2000.cpp
-@@ -156,7 +156,7 @@ bool Jpeg2KDecoder::readData( Mat& img )
- bool result = false;
- int color = img.channels() > 1;
- uchar* data = img.ptr();
-- int step = (int)img.step;
-+ size_t step = img.step;
- jas_stream_t* stream = (jas_stream_t*)m_stream;
- jas_image_t* image = (jas_image_t*)m_image;
-
-@@ -252,9 +252,9 @@ bool Jpeg2KDecoder::readData( Mat& img )
- if( !jas_image_readcmpt( image, cmptlut[i], 0, 0, xend / xstep, yend / ystep, buffer ))
- {
- if( img.depth() == CV_8U )
-- result = readComponent8u( data + i, buffer, step, cmptlut[i], maxval, offset, ncmpts );
-+ result = readComponent8u( data + i, buffer, validateToInt(step), cmptlut[i], maxval, offset, ncmpts );
- else
-- result = readComponent16u( ((unsigned short *)data) + i, buffer, step / 2, cmptlut[i], maxval, offset, ncmpts );
-+ result = readComponent16u( ((unsigned short *)data) + i, buffer, validateToInt(step / 2), cmptlut[i], maxval, offset, ncmpts );
- if( !result )
- {
- i = ncmpts;
-diff --git a/modules/imgcodecs/src/grfmt_pam.cpp b/modules/imgcodecs/src/grfmt_pam.cpp
-index 11195dc342c..8eb9e012309 100644
---- a/modules/imgcodecs/src/grfmt_pam.cpp
-+++ b/modules/imgcodecs/src/grfmt_pam.cpp
-@@ -479,7 +479,7 @@ bool PAMDecoder::readData( Mat& img )
- {
- uchar* data = img.ptr();
- int target_channels = img.channels();
-- int imp_stride = (int)img.step;
-+ size_t imp_stride = img.step;
- int sample_depth = CV_ELEM_SIZE1(m_type);
- int src_elems_per_row = m_width*m_channels;
- int src_stride = src_elems_per_row*sample_depth;
-diff --git a/modules/imgcodecs/src/grfmt_sunras.cpp b/modules/imgcodecs/src/grfmt_sunras.cpp
-index aca9b369318..6d448f94ed3 100644
---- a/modules/imgcodecs/src/grfmt_sunras.cpp
-+++ b/modules/imgcodecs/src/grfmt_sunras.cpp
-@@ -160,7 +160,7 @@ bool SunRasterDecoder::readData( Mat& img )
- {
- int color = img.channels() > 1;
- uchar* data = img.ptr();
-- int step = (int)img.step;
-+ size_t step = img.step;
- uchar gray_palette[256] = {0};
- bool result = false;
- int src_pitch = ((m_width*m_bpp + 7)/8 + 1) & -2;
-@@ -308,11 +308,11 @@ bool SunRasterDecoder::readData( Mat& img )
- code = m_strm.getByte();
-
- if( color )
-- data = FillUniColor( data, line_end, step, width3,
-+ data = FillUniColor( data, line_end, validateToInt(step), width3,
- y, m_height, len,
- m_palette[code] );
- else
-- data = FillUniGray( data, line_end, step, width3,
-+ data = FillUniGray( data, line_end, validateToInt(step), width3,
- y, m_height, len,
- gray_palette[code] );
- if( y >= m_height )
-diff --git a/modules/imgcodecs/src/utils.cpp b/modules/imgcodecs/src/utils.cpp
-index 2ee5bafc712..474dae008ca 100644
---- a/modules/imgcodecs/src/utils.cpp
-+++ b/modules/imgcodecs/src/utils.cpp
-@@ -42,6 +42,13 @@
- #include "precomp.hpp"
- #include "utils.hpp"
-
-+int validateToInt(size_t sz)
-+{
-+ int valueInt = (int)sz;
-+ CV_Assert((size_t)valueInt == sz);
-+ return valueInt;
-+}
-+
- #define SCALE 14
- #define cR (int)(0.299*(1 << SCALE) + 0.5)
- #define cG (int)(0.587*(1 << SCALE) + 0.5)
-@@ -537,23 +544,25 @@ uchar* FillColorRow1( uchar* data, uchar* indices, int len, PaletteEntry* palett
- {
- uchar* end = data + len*3;
-
-+ const PaletteEntry p0 = palette[0], p1 = palette[1];
-+
- while( (data += 24) < end )
- {
- int idx = *indices++;
-- *((PaletteEntry*)(data - 24)) = palette[(idx & 128) != 0];
-- *((PaletteEntry*)(data - 21)) = palette[(idx & 64) != 0];
-- *((PaletteEntry*)(data - 18)) = palette[(idx & 32) != 0];
-- *((PaletteEntry*)(data - 15)) = palette[(idx & 16) != 0];
-- *((PaletteEntry*)(data - 12)) = palette[(idx & 8) != 0];
-- *((PaletteEntry*)(data - 9)) = palette[(idx & 4) != 0];
-- *((PaletteEntry*)(data - 6)) = palette[(idx & 2) != 0];
-- *((PaletteEntry*)(data - 3)) = palette[(idx & 1) != 0];
-+ *((PaletteEntry*)(data - 24)) = (idx & 128) ? p1 : p0;
-+ *((PaletteEntry*)(data - 21)) = (idx & 64) ? p1 : p0;
-+ *((PaletteEntry*)(data - 18)) = (idx & 32) ? p1 : p0;
-+ *((PaletteEntry*)(data - 15)) = (idx & 16) ? p1 : p0;
-+ *((PaletteEntry*)(data - 12)) = (idx & 8) ? p1 : p0;
-+ *((PaletteEntry*)(data - 9)) = (idx & 4) ? p1 : p0;
-+ *((PaletteEntry*)(data - 6)) = (idx & 2) ? p1 : p0;
-+ *((PaletteEntry*)(data - 3)) = (idx & 1) ? p1 : p0;
- }
-
-- int idx = indices[0] << 24;
-+ int idx = indices[0];
- for( data -= 24; data < end; data += 3, idx += idx )
- {
-- PaletteEntry clr = palette[idx < 0];
-+ const PaletteEntry clr = (idx & 128) ? p1 : p0;
- WRITE_PIX( data, clr );
- }
-
-@@ -565,23 +574,25 @@ uchar* FillGrayRow1( uchar* data, uchar* indices, int len, uchar* palette )
- {
- uchar* end = data + len;
-
-+ const uchar p0 = palette[0], p1 = palette[1];
-+
- while( (data += 8) < end )
- {
- int idx = *indices++;
-- *((uchar*)(data - 8)) = palette[(idx & 128) != 0];
-- *((uchar*)(data - 7)) = palette[(idx & 64) != 0];
-- *((uchar*)(data - 6)) = palette[(idx & 32) != 0];
-- *((uchar*)(data - 5)) = palette[(idx & 16) != 0];
-- *((uchar*)(data - 4)) = palette[(idx & 8) != 0];
-- *((uchar*)(data - 3)) = palette[(idx & 4) != 0];
-- *((uchar*)(data - 2)) = palette[(idx & 2) != 0];
-- *((uchar*)(data - 1)) = palette[(idx & 1) != 0];
-+ *((uchar*)(data - 8)) = (idx & 128) ? p1 : p0;
-+ *((uchar*)(data - 7)) = (idx & 64) ? p1 : p0;
-+ *((uchar*)(data - 6)) = (idx & 32) ? p1 : p0;
-+ *((uchar*)(data - 5)) = (idx & 16) ? p1 : p0;
-+ *((uchar*)(data - 4)) = (idx & 8) ? p1 : p0;
-+ *((uchar*)(data - 3)) = (idx & 4) ? p1 : p0;
-+ *((uchar*)(data - 2)) = (idx & 2) ? p1 : p0;
-+ *((uchar*)(data - 1)) = (idx & 1) ? p1 : p0;
- }
-
-- int idx = indices[0] << 24;
-+ int idx = indices[0];
- for( data -= 8; data < end; data++, idx += idx )
- {
-- data[0] = palette[idx < 0];
-+ data[0] = (idx & 128) ? p1 : p0;
- }
-
- return data;
-diff --git a/modules/imgcodecs/src/utils.hpp b/modules/imgcodecs/src/utils.hpp
-index cab10609db2..7af4c6174ee 100644
---- a/modules/imgcodecs/src/utils.hpp
-+++ b/modules/imgcodecs/src/utils.hpp
-@@ -42,6 +42,8 @@
- #ifndef _UTILS_H_
- #define _UTILS_H_
-
-+int validateToInt(size_t step);
-+
- struct PaletteEntry
- {
- unsigned char b, g, r, a;
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/already-exists.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/already-exists.patch
deleted file mode 100644
index 6e24f2de8..000000000
--- a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/already-exists.patch
+++ /dev/null
@@ -1,394 +0,0 @@
-From e4bf148cddf277834e57c9afeec8daff8378a655 Mon Sep 17 00:00:00 2001
-From: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
-Date: Wed, 22 Nov 2017 15:27:07 +0100
-Subject: [PATCH] Fix: File already exists in database: caffe.proto
-
-Fixes error when importing python cv
-
-Upstream-status: Backport https://github.com/opencv/opencv/pull/10092
-Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
----
- modules/dnn/CMakeLists.txt | 6 +++---
- modules/dnn/src/caffe/caffe_importer.cpp | 1 -
- modules/dnn/src/caffe/caffe_io.cpp | 1 -
- modules/dnn/src/caffe/caffe_io.hpp | 2 +-
- modules/dnn/src/caffe/{caffe.proto => opencv-caffe.proto} | 0
- 5 files changed, 4 insertions(+), 6 deletions(-)
- rename modules/dnn/src/caffe/{caffe.proto => opencv-caffe.proto} (100%)
-
-diff --git a/modules/dnn/CMakeLists.txt b/modules/dnn/CMakeLists.txt
-index c6329a742263..8ef00ef983ff 100644
---- a/modules/dnn/CMakeLists.txt
-+++ b/modules/dnn/CMakeLists.txt
-@@ -55,13 +55,13 @@ ocv_warnings_disable(CMAKE_CXX_FLAGS
-
- if(PROTOBUF_UPDATE_FILES)
- file(GLOB proto_files src/tensorflow/*.proto)
-- list(APPEND proto_files src/caffe/caffe.proto)
-+ list(APPEND proto_files src/caffe/opencv-caffe.proto)
- PROTOBUF_GENERATE_CPP(Protobuf_HDRS Protobuf_SRCS ${proto_files})
- else()
- file(GLOB fw_srcs ${CMAKE_CURRENT_SOURCE_DIR}/misc/tensorflow/*.cc)
- file(GLOB fw_hdrs ${CMAKE_CURRENT_SOURCE_DIR}/misc/tensorflow/*.h)
-- list(APPEND fw_srcs ${CMAKE_CURRENT_SOURCE_DIR}/misc/caffe/caffe.pb.cc)
-- list(APPEND fw_hdrs ${CMAKE_CURRENT_SOURCE_DIR}/misc/caffe/caffe.pb.h)
-+ list(APPEND fw_srcs ${CMAKE_CURRENT_SOURCE_DIR}/misc/caffe/opencv-caffe.pb.cc)
-+ list(APPEND fw_hdrs ${CMAKE_CURRENT_SOURCE_DIR}/misc/caffe/opencv-caffe.pb.h)
- list(APPEND Protobuf_SRCS ${fw_srcs})
- list(APPEND Protobuf_HDRS ${fw_hdrs})
- list(APPEND Protobuf_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/misc/caffe)
-diff --git a/modules/dnn/src/caffe/caffe_importer.cpp b/modules/dnn/src/caffe/caffe_importer.cpp
-index c075651b95b3..2c977c84b0f4 100644
---- a/modules/dnn/src/caffe/caffe_importer.cpp
-+++ b/modules/dnn/src/caffe/caffe_importer.cpp
-@@ -42,7 +42,6 @@
- #include "../precomp.hpp"
-
- #ifdef HAVE_PROTOBUF
--#include "caffe.pb.h"
-
- #include <iostream>
- #include <fstream>
-diff --git a/modules/dnn/src/caffe/caffe_io.cpp b/modules/dnn/src/caffe/caffe_io.cpp
-index 0f46ea77df9a..1d3c518f1328 100644
---- a/modules/dnn/src/caffe/caffe_io.cpp
-+++ b/modules/dnn/src/caffe/caffe_io.cpp
-@@ -99,7 +99,6 @@
- #include <fstream>
- #include <vector>
-
--#include "caffe.pb.h"
- #include "caffe_io.hpp"
- #include "glog_emulator.hpp"
-
-diff --git a/modules/dnn/src/caffe/caffe_io.hpp b/modules/dnn/src/caffe/caffe_io.hpp
-index 09bc5709a24e..f5912c3bcec1 100644
---- a/modules/dnn/src/caffe/caffe_io.hpp
-+++ b/modules/dnn/src/caffe/caffe_io.hpp
-@@ -91,7 +91,7 @@
- #define __OPENCV_DNN_CAFFE_IO_HPP__
- #ifdef HAVE_PROTOBUF
-
--#include "caffe.pb.h"
-+#include "opencv-caffe.pb.h"
-
- namespace cv {
- namespace dnn {
-diff --git a/modules/dnn/src/caffe/caffe.proto b/modules/dnn/src/caffe/opencv-caffe.proto
-similarity index 100%
-rename from modules/dnn/src/caffe/caffe.proto
-rename to modules/dnn/src/caffe/opencv-caffe.proto
-diff --git a/modules/dnn/src/layers/detection_output_layer.cpp b/modules/dnn/src/layers/detection_output_layer.cpp
-index 0b72326f7e7d..f413bad5b81a 100644
---- a/modules/dnn/src/layers/detection_output_layer.cpp
-+++ b/modules/dnn/src/layers/detection_output_layer.cpp
-@@ -44,7 +44,7 @@
- #include "layers_common.hpp"
- #include <float.h>
- #include <string>
--#include <caffe.pb.h>
-+#include <opencv-caffe.pb.h>
-
- namespace cv
- {
-diff --git a/modules/dnn/src/caffe/caffe_importer.cpp b/modules/dnn/src/caffe/caffe_importer.cpp
-index 2c977c84b0f4..a1827a381117 100644
---- a/modules/dnn/src/caffe/caffe_importer.cpp
-+++ b/modules/dnn/src/caffe/caffe_importer.cpp
-@@ -78,8 +78,8 @@ static cv::String toString(const T &v)
-
- class CaffeImporter : public Importer
- {
-- caffe::NetParameter net;
-- caffe::NetParameter netBinary;
-+ opencvcaffe::NetParameter net;
-+ opencvcaffe::NetParameter netBinary;
-
- public:
-
-@@ -197,7 +197,7 @@ public:
- }
- }
-
-- void blobShapeFromProto(const caffe::BlobProto &pbBlob, MatShape& shape)
-+ void blobShapeFromProto(const opencvcaffe::BlobProto &pbBlob, MatShape& shape)
- {
- shape.clear();
- if (pbBlob.has_num() || pbBlob.has_channels() || pbBlob.has_height() || pbBlob.has_width())
-@@ -209,7 +209,7 @@ public:
- }
- else if (pbBlob.has_shape())
- {
-- const caffe::BlobShape &_shape = pbBlob.shape();
-+ const opencvcaffe::BlobShape &_shape = pbBlob.shape();
-
- for (int i = 0; i < _shape.dim_size(); i++)
- shape.push_back((int)_shape.dim(i));
-@@ -218,7 +218,7 @@ public:
- CV_Error(Error::StsError, "Unknown shape of input blob");
- }
-
-- void blobFromProto(const caffe::BlobProto &pbBlob, cv::Mat &dstBlob)
-+ void blobFromProto(const opencvcaffe::BlobProto &pbBlob, cv::Mat &dstBlob)
- {
- MatShape shape;
- blobShapeFromProto(pbBlob, shape);
-@@ -233,7 +233,7 @@ public:
- dstData[i] = pbBlob.data(i);
- }
-
-- void extractBinaryLayerParms(const caffe::LayerParameter& layer, LayerParams& layerParams)
-+ void extractBinaryLayerParms(const opencvcaffe::LayerParameter& layer, LayerParams& layerParams)
- {
- const std::string &name = layer.name();
-
-@@ -247,7 +247,7 @@ public:
- if (li == netBinary.layer_size() || netBinary.layer(li).blobs_size() == 0)
- return;
-
-- const caffe::LayerParameter &binLayer = netBinary.layer(li);
-+ const opencvcaffe::LayerParameter &binLayer = netBinary.layer(li);
- layerParams.blobs.resize(binLayer.blobs_size());
- for (int bi = 0; bi < binLayer.blobs_size(); bi++)
- {
-@@ -289,7 +289,7 @@ public:
-
- for (int li = 0; li < layersSize; li++)
- {
-- const caffe::LayerParameter &layer = net.layer(li);
-+ const opencvcaffe::LayerParameter &layer = net.layer(li);
- String name = layer.name();
- String type = layer.type();
- LayerParams layerParams;
-@@ -313,7 +313,7 @@ public:
- addedBlobs.clear();
- }
-
-- void addOutput(const caffe::LayerParameter &layer, int layerId, int outNum)
-+ void addOutput(const opencvcaffe::LayerParameter &layer, int layerId, int outNum)
- {
- const std::string &name = layer.top(outNum);
-
-diff --git a/modules/dnn/src/caffe/caffe_io.hpp b/modules/dnn/src/caffe/caffe_io.hpp
-index f5912c3bcec1..24cd5fa254eb 100644
---- a/modules/dnn/src/caffe/caffe_io.hpp
-+++ b/modules/dnn/src/caffe/caffe_io.hpp
-@@ -98,9 +98,9 @@ namespace dnn {
-
- // Read parameters from a file into a NetParameter proto message.
- void ReadNetParamsFromTextFileOrDie(const char* param_file,
-- caffe::NetParameter* param);
-+ opencvcaffe::NetParameter* param);
- void ReadNetParamsFromBinaryFileOrDie(const char* param_file,
-- caffe::NetParameter* param);
-+ opencvcaffe::NetParameter* param);
-
- }
- }
-diff --git a/modules/dnn/src/caffe/opencv-caffe.proto b/modules/dnn/src/caffe/opencv-caffe.proto
-index 3d23fb48ea6a..df4e1d3269ae 100644
---- a/modules/dnn/src/caffe/opencv-caffe.proto
-+++ b/modules/dnn/src/caffe/opencv-caffe.proto
-@@ -48,7 +48,7 @@
-
- syntax = "proto2";
-
--package caffe;
-+package opencvcaffe;
-
- // Specifies the shape (dimensions) of a Blob.
- message BlobShape {
-diff --git a/modules/dnn/src/layers/detection_output_layer.cpp b/modules/dnn/src/layers/detection_output_layer.cpp
-index f413bad5b81a..832c257eebf9 100644
---- a/modules/dnn/src/layers/detection_output_layer.cpp
-+++ b/modules/dnn/src/layers/detection_output_layer.cpp
-@@ -72,7 +72,7 @@ public:
-
- int _backgroundLabelId;
-
-- typedef caffe::PriorBoxParameter_CodeType CodeType;
-+ typedef opencvcaffe::PriorBoxParameter_CodeType CodeType;
- CodeType _codeType;
-
- bool _varianceEncodedInTarget;
-@@ -85,7 +85,7 @@ public:
- enum { _numAxes = 4 };
- static const std::string _layerName;
-
-- typedef std::map<int, std::vector<caffe::NormalizedBBox> > LabelBBox;
-+ typedef std::map<int, std::vector<opencvcaffe::NormalizedBBox> > LabelBBox;
-
- bool getParameterDict(const LayerParams &params,
- const std::string &parameterName,
-@@ -131,11 +131,11 @@ public:
- {
- String codeTypeString = params.get<String>("code_type").toLowerCase();
- if (codeTypeString == "corner")
-- _codeType = caffe::PriorBoxParameter_CodeType_CORNER;
-+ _codeType = opencvcaffe::PriorBoxParameter_CodeType_CORNER;
- else if (codeTypeString == "center_size")
-- _codeType = caffe::PriorBoxParameter_CodeType_CENTER_SIZE;
-+ _codeType = opencvcaffe::PriorBoxParameter_CodeType_CENTER_SIZE;
- else
-- _codeType = caffe::PriorBoxParameter_CodeType_CORNER;
-+ _codeType = opencvcaffe::PriorBoxParameter_CodeType_CORNER;
- }
-
- DetectionOutputLayerImpl(const LayerParams &params)
-@@ -215,7 +215,7 @@ public:
- GetConfidenceScores(confidenceData, num, numPriors, _numClasses, allConfidenceScores);
-
- // Retrieve all prior bboxes
-- std::vector<caffe::NormalizedBBox> priorBBoxes;
-+ std::vector<opencvcaffe::NormalizedBBox> priorBBoxes;
- std::vector<std::vector<float> > priorVariances;
- GetPriorBBoxes(priorData, numPriors, priorBBoxes, priorVariances);
-
-@@ -272,7 +272,7 @@ public:
- for (size_t j = 0; j < indices.size(); ++j, ++count)
- {
- int idx = indices[j];
-- const caffe::NormalizedBBox& decode_bbox = label_bboxes->second[idx];
-+ const opencvcaffe::NormalizedBBox& decode_bbox = label_bboxes->second[idx];
- outputsData[count * 7] = i;
- outputsData[count * 7 + 1] = label;
- outputsData[count * 7 + 2] = scores[idx];
-@@ -355,7 +355,7 @@ public:
-
- // Compute bbox size
- template<bool normalized>
-- static float BBoxSize(const caffe::NormalizedBBox& bbox)
-+ static float BBoxSize(const opencvcaffe::NormalizedBBox& bbox)
- {
- if (bbox.xmax() < bbox.xmin() || bbox.ymax() < bbox.ymin())
- {
-@@ -388,10 +388,10 @@ public:
- // Decode a bbox according to a prior bbox
- template<bool variance_encoded_in_target>
- static void DecodeBBox(
-- const caffe::NormalizedBBox& prior_bbox, const std::vector<float>& prior_variance,
-+ const opencvcaffe::NormalizedBBox& prior_bbox, const std::vector<float>& prior_variance,
- const CodeType code_type,
-- const bool clip_bbox, const caffe::NormalizedBBox& bbox,
-- caffe::NormalizedBBox& decode_bbox)
-+ const bool clip_bbox, const opencvcaffe::NormalizedBBox& bbox,
-+ opencvcaffe::NormalizedBBox& decode_bbox)
- {
- float bbox_xmin = variance_encoded_in_target ? bbox.xmin() : prior_variance[0] * bbox.xmin();
- float bbox_ymin = variance_encoded_in_target ? bbox.ymin() : prior_variance[1] * bbox.ymin();
-@@ -399,13 +399,13 @@ public:
- float bbox_ymax = variance_encoded_in_target ? bbox.ymax() : prior_variance[3] * bbox.ymax();
- switch(code_type)
- {
-- case caffe::PriorBoxParameter_CodeType_CORNER:
-+ case opencvcaffe::PriorBoxParameter_CodeType_CORNER:
- decode_bbox.set_xmin(prior_bbox.xmin() + bbox_xmin);
- decode_bbox.set_ymin(prior_bbox.ymin() + bbox_ymin);
- decode_bbox.set_xmax(prior_bbox.xmax() + bbox_xmax);
- decode_bbox.set_ymax(prior_bbox.ymax() + bbox_ymax);
- break;
-- case caffe::PriorBoxParameter_CodeType_CENTER_SIZE:
-+ case opencvcaffe::PriorBoxParameter_CodeType_CENTER_SIZE:
- {
- float prior_width = prior_bbox.xmax() - prior_bbox.xmin();
- CV_Assert(prior_width > 0);
-@@ -431,7 +431,7 @@ public:
- };
- if (clip_bbox)
- {
-- // Clip the caffe::NormalizedBBox such that the range for each corner is [0, 1]
-+ // Clip the opencvcaffe::NormalizedBBox such that the range for each corner is [0, 1]
- decode_bbox.set_xmin(std::max(std::min(decode_bbox.xmin(), 1.f), 0.f));
- decode_bbox.set_ymin(std::max(std::min(decode_bbox.ymin(), 1.f), 0.f));
- decode_bbox.set_xmax(std::max(std::min(decode_bbox.xmax(), 1.f), 0.f));
-@@ -443,11 +443,11 @@ public:
-
- // Decode a set of bboxes according to a set of prior bboxes
- static void DecodeBBoxes(
-- const std::vector<caffe::NormalizedBBox>& prior_bboxes,
-+ const std::vector<opencvcaffe::NormalizedBBox>& prior_bboxes,
- const std::vector<std::vector<float> >& prior_variances,
- const CodeType code_type, const bool variance_encoded_in_target,
-- const bool clip_bbox, const std::vector<caffe::NormalizedBBox>& bboxes,
-- std::vector<caffe::NormalizedBBox>& decode_bboxes)
-+ const bool clip_bbox, const std::vector<opencvcaffe::NormalizedBBox>& bboxes,
-+ std::vector<opencvcaffe::NormalizedBBox>& decode_bboxes)
- {
- CV_Assert(prior_bboxes.size() == prior_variances.size());
- CV_Assert(prior_bboxes.size() == bboxes.size());
-@@ -470,7 +470,7 @@ public:
-
- // Decode all bboxes in a batch
- static void DecodeBBoxesAll(const std::vector<LabelBBox>& all_loc_preds,
-- const std::vector<caffe::NormalizedBBox>& prior_bboxes,
-+ const std::vector<opencvcaffe::NormalizedBBox>& prior_bboxes,
- const std::vector<std::vector<float> >& prior_variances,
- const int num, const bool share_location,
- const int num_loc_classes, const int background_label_id,
-@@ -503,10 +503,10 @@ public:
- // Get prior bounding boxes from prior_data
- // prior_data: 1 x 2 x num_priors * 4 x 1 blob.
- // num_priors: number of priors.
-- // prior_bboxes: stores all the prior bboxes in the format of caffe::NormalizedBBox.
-+ // prior_bboxes: stores all the prior bboxes in the format of opencvcaffe::NormalizedBBox.
- // prior_variances: stores all the variances needed by prior bboxes.
- static void GetPriorBBoxes(const float* priorData, const int& numPriors,
-- std::vector<caffe::NormalizedBBox>& priorBBoxes,
-+ std::vector<opencvcaffe::NormalizedBBox>& priorBBoxes,
- std::vector<std::vector<float> >& priorVariances)
- {
- priorBBoxes.clear(); priorBBoxes.resize(numPriors);
-@@ -514,7 +514,7 @@ public:
- for (int i = 0; i < numPriors; ++i)
- {
- int startIdx = i * 4;
-- caffe::NormalizedBBox& bbox = priorBBoxes[i];
-+ opencvcaffe::NormalizedBBox& bbox = priorBBoxes[i];
- bbox.set_xmin(priorData[startIdx]);
- bbox.set_ymin(priorData[startIdx + 1]);
- bbox.set_xmax(priorData[startIdx + 2]);
-@@ -565,7 +565,7 @@ public:
- {
- labelBBox[label].resize(numPredsPerClass);
- }
-- caffe::NormalizedBBox& bbox = labelBBox[label][p];
-+ opencvcaffe::NormalizedBBox& bbox = labelBBox[label][p];
- bbox.set_xmin(locData[startIdx + c * 4]);
- bbox.set_ymin(locData[startIdx + c * 4 + 1]);
- bbox.set_xmax(locData[startIdx + c * 4 + 2]);
-@@ -612,7 +612,7 @@ public:
- // nms_threshold: a threshold used in non maximum suppression.
- // top_k: if not -1, keep at most top_k picked indices.
- // indices: the kept indices of bboxes after nms.
-- static void ApplyNMSFast(const std::vector<caffe::NormalizedBBox>& bboxes,
-+ static void ApplyNMSFast(const std::vector<opencvcaffe::NormalizedBBox>& bboxes,
- const std::vector<float>& scores, const float score_threshold,
- const float nms_threshold, const float eta, const int top_k,
- std::vector<int>& indices)
-@@ -674,10 +674,10 @@ public:
-
- // Compute the jaccard (intersection over union IoU) overlap between two bboxes.
- template<bool normalized>
-- static float JaccardOverlap(const caffe::NormalizedBBox& bbox1,
-- const caffe::NormalizedBBox& bbox2)
-+ static float JaccardOverlap(const opencvcaffe::NormalizedBBox& bbox1,
-+ const opencvcaffe::NormalizedBBox& bbox2)
- {
-- caffe::NormalizedBBox intersect_bbox;
-+ opencvcaffe::NormalizedBBox intersect_bbox;
- if (bbox2.xmin() > bbox1.xmax() || bbox2.xmax() < bbox1.xmin() ||
- bbox2.ymin() > bbox1.ymax() || bbox2.ymax() < bbox1.ymin())
- {
-diff --git a/modules/dnn/src/caffe/caffe_io.cpp b/modules/dnn/src/caffe/caffe_io.cpp
-index 1d3c518f1328..3cf6e255aa60 100644
---- a/modules/dnn/src/caffe/caffe_io.cpp
-+++ b/modules/dnn/src/caffe/caffe_io.cpp
-@@ -107,7 +107,7 @@ namespace dnn {
-
- using std::string;
- using std::map;
--using namespace caffe;
-+using namespace opencvcaffe;
- using namespace ::google::protobuf;
- using namespace ::google::protobuf::io;
-
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/fixpkgconfig.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/fixpkgconfig.patch
index 3aeda7d44..3ed3468d5 100644
--- a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/fixpkgconfig.patch
+++ b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/fixpkgconfig.patch
@@ -1,24 +1,25 @@
-diff --git a/cmake/OpenCVGenPkgconfig.cmake b/cmake/OpenCVGenPkgconfig.cmake
-index b8cb8777c06b..75281ee964fd 100644
---- a/cmake/OpenCVGenPkgconfig.cmake
-+++ b/cmake/OpenCVGenPkgconfig.cmake
-@@ -27,7 +27,7 @@ macro(fix_prefix lst isown)
+Index: git/cmake/OpenCVGenPkgconfig.cmake
+===================================================================
+--- git.orig/cmake/OpenCVGenPkgconfig.cmake
++++ git/cmake/OpenCVGenPkgconfig.cmake
+@@ -31,7 +31,7 @@ macro(fix_prefix lst isown)
get_filename_component(libdir "${item}" PATH)
- get_filename_component(libname "${item}" NAME_WE)
- string(REGEX REPLACE "^lib(.*)" "\\1" libname "${libname}")
+ get_filename_component(_libname "${item}" NAME)
+ ocv_get_libname(libname "${_libname}")
- list(APPEND _lst "-L${libdir}" "-l${libname}")
+ list(APPEND _lst "-l${libname}")
else()
list(APPEND _lst "-l${item}")
endif()
-@@ -66,10 +66,14 @@ ocv_list_unique(_3rdparty)
+@@ -124,11 +124,14 @@ ocv_list_unique(_extra)
+ ocv_list_unique(_3rdparty)
set(OPENCV_PC_LIBS
- "-L\${exec_prefix}/${OPENCV_LIB_INSTALL_PATH}"
+- "-L\${exec_prefix}/${OPENCV_LIB_INSTALL_PATH}"
+ "-L\${exec_prefix}/${OPENCV_3P_LIB_INSTALL_PATH}"
"${_modules}"
)
- if (BUILD_SHARED_LIBS)
+ if(BUILD_SHARED_LIBS)
- set(OPENCV_PC_LIBS_PRIVATE "${_extra}")
+ set(OPENCV_PC_LIBS_PRIVATE
+ "-L\${exec_prefix}/${OPENCV_LIB_INSTALL_PATH}"
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/javagen.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/javagen.patch
deleted file mode 100644
index 56526ecd8..000000000
--- a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/javagen.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Upstream-status: Inappropriate [OE specific] https://github.com/opencv/opencv/pull/10039#issuecomment-342539288
-
-Signed-off-by: Ricardo Ribalda <ricardo.ribalda@gmail.com>
-diff --git a/modules/java/CMakeLists.txt b/modules/java/CMakeLists.txt
-index 74bc0ef04169..4622fbf9a5f1 100644
---- a/modules/java/CMakeLists.txt
-+++ b/modules/java/CMakeLists.txt
-@@ -291,7 +291,7 @@ foreach(java_file ${step3_input_files})
- endif()
- if(__configure)
- configure_file("${java_file}" "${java_src_dir}/${output_name}" @ONLY)
-- elseif(NOT "${java_file}" MATCHES "${OpenCV_BINARY_DIR}/")
-+ elseif(EXISTS "${java_file}" AND NOT "${java_file}" MATCHES "${OpenCV_BINARY_DIR}/")
- configure_file("${java_file}" "${java_src_dir}/${output_name}" COPYONLY)
- else()
- add_custom_command(OUTPUT "${java_src_dir}/${output_name}"
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/protobuf.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/protobuf.patch
deleted file mode 100644
index c63dc142e..000000000
--- a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/protobuf.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-Upstream-status: Inappropriate [OE specific]
-
-Signed-off-by: Ricardo Ribalda <ricardo.ribalda@gmail.com>
-diff --git a/cmake/OpenCVFindLibProtobuf.cmake b/cmake/OpenCVFindLibProtobuf.cmake
-index b6ce1e7fd56b..e916ec0df2a6 100644
---- a/cmake/OpenCVFindLibProtobuf.cmake
-+++ b/cmake/OpenCVFindLibProtobuf.cmake
-@@ -7,21 +7,21 @@ OCV_OPTION(BUILD_PROTOBUF "Force to build libprotobuf from sources" ON)
- OCV_OPTION(PROTOBUF_UPDATE_FILES "Force to rebuild .proto files" OFF)
-
- if(PROTOBUF_UPDATE_FILES)
-- if(NOT DEFINED Protobuf_PROTOC_EXECUTABLE)
-+ if(NOT DEFINED PROTOBUF_PROTOC_EXECUTABLE)
- find_package(Protobuf QUIET)
- endif()
-- if(DEFINED Protobuf_PROTOC_EXECUTABLE AND EXISTS ${Protobuf_PROTOC_EXECUTABLE})
-- message(STATUS "The protocol buffer compiler is found (${Protobuf_PROTOC_EXECUTABLE})")
-+ if(DEFINED PROTOBUF_PROTOC_EXECUTABLE AND EXISTS ${PROTOBUF_PROTOC_EXECUTABLE})
-+ message(STATUS "The protocol buffer compiler is found (${PROTOBUF_PROTOC_EXECUTABLE})")
- else()
-- message(FATAL_ERROR "The protocol buffer compiler is not found (Protobuf_PROTOC_EXECUTABLE='${Protobuf_PROTOC_EXECUTABLE}')")
-+ message(FATAL_ERROR "The protocol buffer compiler is not found (PROTOBUF_PROTOC_EXECUTABLE='${PROTOBUF_PROTOC_EXECUTABLE}')")
- endif()
- endif()
-
--if(NOT BUILD_PROTOBUF AND NOT (DEFINED Protobuf_INCLUDE_DIRS AND DEFINED Protobuf_LIBRARIES))
-+if(NOT BUILD_PROTOBUF AND NOT (DEFINED PROTOBUF_INCLUDE_DIR AND DEFINED PROTOBUF_LIBRARIES))
- find_package(Protobuf QUIET)
- endif()
-
--if(Protobuf_FOUND)
-+if(PROTOBUF_FOUND OR (DEFINED PROTOBUF_INCLUDE_DIR AND DEFINED PROTOBUF_LIBRARIES))
- # nothing
- else()
- set(Protobuf_LIBRARIES libprotobuf)
-diff --git a/modules/dnn/CMakeLists.txt b/modules/dnn/CMakeLists.txt
-index 2a71568d1a44..c6329a742263 100644
---- a/modules/dnn/CMakeLists.txt
-+++ b/modules/dnn/CMakeLists.txt
-@@ -7,7 +7,7 @@ if(DEFINED BUILD_opencv_dnn AND NOT BUILD_opencv_dnn)
- endif()
-
- include(${OpenCV_SOURCE_DIR}/cmake/OpenCVFindLibProtobuf.cmake)
--if(NOT Protobuf_FOUND)
-+if(NOT PROTOBUF_FOUND)
- ocv_module_disable(opencv_dnn)
- endif()
-
-@@ -72,7 +72,7 @@ ocv_source_group("Src\\protobuf" FILES ${Protobuf_SRCS} ${Protobuf_HDRS})
- ocv_module_include_directories(include ${Protobuf_INCLUDE_DIRS})
-
- ocv_glob_module_sources(${Protobuf_SRCS} ${Protobuf_HDRS} ${CBLAS_H_PROXY_PATH})
--ocv_create_module(${Protobuf_LIBRARIES} ${LAPACK_LIBRARIES})
-+ocv_create_module(${PROTOBUF_LIBRARIES} ${LAPACK_LIBRARIES})
- ocv_add_samples()
- ocv_add_accuracy_tests()
- ocv_add_perf_tests()
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/tinydnn.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/tinydnn.patch
deleted file mode 100644
index c433fc312..000000000
--- a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/tinydnn.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-Upstream-status: Inappropriate [OE specific]
-
-Signed-off-by: Ricardo Ribalda <ricardo.ribalda@gmail.com>
-diff --git a/modules/dnn_modern/CMakeLists.txt b/modules/dnn_modern/CMakeLists.txt
-index 79b64b12160b..ba06a0a163e4 100644
---- a/modules/dnn_modern/CMakeLists.txt
-+++ b/modules/dnn_modern/CMakeLists.txt
-@@ -15,24 +15,8 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
- # MODULE REQUIREMENTS
- # ----------------------------------------------------------------------------
-
--set(TINY_DNN_CPP_PATH "${OpenCV_BINARY_DIR}/3rdparty/tinydnn")
--set(TINY_DNN_CPP_ROOT "${TINY_DNN_CPP_PATH}/tiny-dnn-1.0.0a3")
--ocv_download(FILENAME "v1.0.0a3.tar.gz"
-- HASH "adb1c512e09ca2c7a6faef36f9c53e59"
-- URL
-- "${OPENCV_TINY_DNN_URL}"
-- "$ENV{OPENCV_TINY_DNN_URL}"
-- "https://github.com/tiny-dnn/tiny-dnn/archive/"
-- DESTINATION_DIR "${TINY_DNN_CPP_PATH}"
-- STATUS TINY_DNN_DOWNLOAD_SUCCESS
-- ID "tiny-dnn"
-- UNPACK RELATIVE_URL)
--
--if(NOT TINY_DNN_DOWNLOAD_SUCCESS)
-- message(STATUS "Failed to download tiny-dnn sources")
--endif()
--
--find_package(TinyDNN QUIET)
-+set(TINYDNN_INCLUDE_DIRS "${OpenCV_SOURCE_DIR}/3rdparty/tinydnn/tiny-dnn-1.0.0a3")
-+set(TinyDNN_FOUND TRUE)
-
- include(CheckCXXCompilerFlag)
- CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.3.bb b/meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.4.3.bb
index ca62de7c8..0a99700b4 100644
--- a/meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.3.bb
+++ b/meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.4.3.bb
@@ -3,16 +3,16 @@ HOMEPAGE = "http://opencv.org/"
SECTION = "libs"
LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=2b2f8752cc5edf504d283107d033f544"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=62d89c5dcb0583609ea919c56be0ee76"
ARM_INSTRUCTION_SET_armv4 = "arm"
ARM_INSTRUCTION_SET_armv5 = "arm"
DEPENDS = "libtool swig-native bzip2 zlib glib-2.0 libwebp"
-SRCREV_opencv = "87c27a074db9f6d9d60513f351daa903606ca370"
-SRCREV_contrib = "2a9d1b22ed76eb22fad1a5edf6faf4d05f207b13"
-SRCREV_ipp = "a62e20676a60ee0ad6581e217fe7e4bada3b95db"
+SRCREV_opencv = "b38c50b3d0c31e82294315ec44b54b7ef559ef12"
+SRCREV_contrib = "1f6d6f06266e1ef336437ae5404bee1c65d42cda"
+SRCREV_ipp = "bdb7bb85f34a8cb0d35e40a81f58da431aa1557a"
SRCREV_boostdesc = "34e4206aef44d50e6bbcd0ab06354b52e7466d26"
SRCREV_vgg = "fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d"
SRC_URI[tinydnn.md5sum] = "adb1c512e09ca2c7a6faef36f9c53e59"
@@ -22,17 +22,17 @@ def ipp_filename(d):
import re
arch = d.getVar('TARGET_ARCH', True)
if re.match("i.86$", arch):
- return "ippicv_2017u2_lnx_ia32_20170418.tgz"
+ return "ippicv_2017u3_lnx_ia32_general_20180518.tgz"
else:
- return "ippicv_2017u2_lnx_intel64_20170418.tgz"
+ return "ippicv_2017u3_lnx_intel64_general_20180518.tgz"
def ipp_md5sum(d):
import re
arch = d.getVar('TARGET_ARCH', True)
if re.match("i.86$", arch):
- return "f2cece00d802d4dea86df52ed095257e"
+ return "ea72de74dae3c604eb6348395366e78e"
else:
- return "808b791a6eac9ed78d32a7666804320e"
+ return "b7cc351267db2d34b9efa1cd22ff0572"
IPP_FILENAME = "${@ipp_filename(d)}"
IPP_MD5 = "${@ipp_md5sum(d)}"
@@ -40,28 +40,21 @@ IPP_MD5 = "${@ipp_md5sum(d)}"
SRCREV_FORMAT = "opencv_contrib_ipp_boostdesc_vgg"
SRC_URI = "git://github.com/opencv/opencv.git;name=opencv \
git://github.com/opencv/opencv_contrib.git;destsuffix=contrib;name=contrib \
- git://github.com/opencv/opencv_3rdparty.git;branch=ippicv/master_20170418;destsuffix=ipp;name=ipp \
+ git://github.com/opencv/opencv_3rdparty.git;branch=ippicv/master_20180518;destsuffix=ipp;name=ipp \
git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_boostdesc_20161012;destsuffix=boostdesc;name=boostdesc \
git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_vgg_20160317;destsuffix=vgg;name=vgg \
https://github.com/tiny-dnn/tiny-dnn/archive/v1.0.0a3.tar.gz;destsuffix=git/3rdparty/tinydnn/tiny-dnn-1.0.0a3;name=tinydnn;unpack=false \
file://0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch \
- file://fixpkgconfig.patch \
file://uselocalxfeatures.patch;patchdir=../contrib/ \
- file://tinydnn.patch;patchdir=../contrib/ \
+ file://0001-Add-missing-multi-line-separator.patch;patchdir=../contrib/ \
file://0002-Make-opencv-ts-create-share-library-intead-of-static.patch \
file://0003-To-fix-errors-as-following.patch \
- file://0001-build-workaround-GCC-7.1.1-compilation-issue-with-sa.patch \
- file://0002-imgcodecs-refactoring-improve-code-quality.patch \
- file://0003-imgproc-test-add-checks-for-remove-call.patch \
+ file://fixpkgconfig.patch \
+ file://0001-Temporarliy-work-around-deprecated-ffmpeg-RAW-functi.patch \
file://0001-Dont-use-isystem.patch \
- file://0001-carotene-don-t-use-__asm__-with-aarch64.patch \
- file://0002-Do-not-enable-asm-with-clang.patch \
- file://CVE-2017-14136.patch \
- file://javagen.patch \
- file://protobuf.patch \
- file://already-exists.patch \
+ file://0001-Check-for-clang-before-using-isystem.patch \
"
-PV = "3.3+git${SRCPV}"
+PV = "3.4.3+git${SRCPV}"
S = "${WORKDIR}/git"
@@ -76,6 +69,7 @@ addtask unpack_extra after do_unpack before do_patch
EXTRA_OECMAKE = "-DOPENCV_EXTRA_MODULES_PATH=${WORKDIR}/contrib/modules \
-DWITH_1394=OFF \
+ -DENABLE_PRECOMPILED_HEADERS=OFF \
-DCMAKE_SKIP_RPATH=ON \
-DOPENCV_ICV_HASH=${IPP_MD5} \
-DIPPROOT=${WORKDIR}/ippicv_lnx \
@@ -195,9 +189,4 @@ do_install_append() {
mv ${D}/usr/lib/* ${D}/${libdir}/
rm -rf ${D}/usr/lib
fi
-
- if ${@bb.utils.contains("PACKAGECONFIG", "samples", "true", "false", d)}; then
- install -d ${D}${datadir}/OpenCV/samples/bin/
- cp -f bin/*-tutorial-* bin/*-example-* ${D}${datadir}/OpenCV/samples/bin/
- fi
}
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/install-strip.patch b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/install-strip.patch
index 2992b7030..7c675962b 100644
--- a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/install-strip.patch
+++ b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/install-strip.patch
@@ -1,6 +1,9 @@
# This patch ensures that the install operations which strip
# programs and libraries (LTINSTALL) work in a cross build
# environment.
+
+Upstream-Status: Pending
+
--- openldap-2.2.24/.pc/install-strip.patch/build/top.mk 2005-01-20 09:00:55.000000000 -0800
+++ openldap-2.2.24/build/top.mk 2005-04-16 13:48:20.536710376 -0700
@@ -116,7 +116,7 @@
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/kill-icu.patch b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/kill-icu.patch
index dcf541137..35e46465a 100644
--- a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/kill-icu.patch
+++ b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/kill-icu.patch
@@ -2,7 +2,7 @@ From: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
slapd depends on ICU if it was built first.
-Upstream-status: inappropiate [embedded specific]
+Upstream-Status: inappropiate [embedded specific]
---
configure.in | 8 --------
1 file changed, 8 deletions(-)
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-2.4.28-gnutls-gcrypt.patch b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-2.4.28-gnutls-gcrypt.patch
index c7b1552c1..86d0767a4 100644
--- a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-2.4.28-gnutls-gcrypt.patch
+++ b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-2.4.28-gnutls-gcrypt.patch
@@ -1,6 +1,6 @@
From http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/net-nds/openldap/files/
-Upstream-status: Unknown
+Upstream-status: Pending
--
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-CVE-2015-3276.patch b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-CVE-2015-3276.patch
index de9ca528a..25e148ed0 100644
--- a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-CVE-2015-3276.patch
+++ b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-CVE-2015-3276.patch
@@ -10,6 +10,8 @@ cipher strings, which might cause a weaker than intended cipher to
be used and allow remote attackers to have unspecified impact via
unknown vectors.
+Upstream-Status: Pending
+
Signed-off-by: Li Wang <li.wang@windriver.com>
---
libraries/libldap/tls_m.c | 27 ++++++++++++++++-----------
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-m4-pthread.patch b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-m4-pthread.patch
index b669b7254..38c0a5af2 100644
--- a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-m4-pthread.patch
+++ b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-m4-pthread.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
--- openldap-2.3.11/build/openldap.m4.orig 2005-11-11 00:11:18.604322590 -0800
+++ openldap-2.3.11/build/openldap.m4 2005-11-11 00:26:21.621145856 -0800
@@ -788,7 +788,7 @@ AC_DEFUN([OL_PTHREAD_TEST_FUNCTION],[[
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/remove-user-host-pwd-from-version.patch b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/remove-user-host-pwd-from-version.patch
new file mode 100644
index 000000000..4eb389797
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/remove-user-host-pwd-from-version.patch
@@ -0,0 +1,29 @@
+diff -ru openldap-2.4.46.orig/build/mkversion openldap-2.4.46/build/mkversion
+--- openldap-2.4.46.orig/build/mkversion 2018-10-25 18:46:10.383750480 +1300
++++ openldap-2.4.46/build/mkversion 2018-10-25 18:46:33.156232586 +1300
+@@ -50,7 +50,15 @@
+ fi
+
+ APPLICATION=$1
+-WHOWHERE="$USER@`uname -n`:`pwd`"
++if [ -n "${SOURCE_DATE_EPOCH}" ]; then
++ WHOWHERE="openldap"
++ DATE=$(date -d@$SOURCE_DATE_EPOCH +' %b %d %Y ')
++ TIME=$(date -d@$SOURCE_DATE_EPOCH +' %H:%M:%S ')
++else
++ WHOWHERE="$USER@$(uname -n):$(pwd)"
++ DATE='" __DATE__ "'
++ TIME='" __TIME__ "'
++fi
+
+ cat << __EOF__
+ /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
+@@ -72,7 +80,7 @@
+ "COPYING RESTRICTIONS APPLY\n";
+
+ $static $const char $SYMBOL[] =
+-"@(#) \$$PACKAGE: $APPLICATION $VERSION (" __DATE__ " " __TIME__ ") \$\n"
++"@(#) \$$PACKAGE: $APPLICATION $VERSION ($DATE $TIME) \$\n"
+ "\t$WHOWHERE\n";
+
+ __EOF__
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.45.bb b/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.46.bb
index 82d661983..7fe9fb0d7 100644
--- a/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.45.bb
+++ b/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.46.bb
@@ -1,5 +1,3 @@
-# OpenLDAP, a license free (see http://www.OpenLDAP.org/license.html)
-#
SUMMARY = "OpenLDAP Directory Service"
DESCRIPTION = "OpenLDAP Software is an open source implementation of the Lightweight Directory Access Protocol."
HOMEPAGE = "http://www.OpenLDAP.org/license.html"
@@ -9,9 +7,9 @@ HOMEPAGE = "http://www.OpenLDAP.org/license.html"
# basically BSD. opensource.org does not record this license
# at present (so it is apparently not OSI certified).
LICENSE = "OpenLDAP"
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=25fd3721960f39128cd15a749fd21139 \
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=25b4ead0e45182e7c2914e59ff57009f \
file://LICENSE;md5=153d07ef052c4a37a8fac23bc6031972 \
-"
+ "
SECTION = "libs"
LDAP_VER = "${@'.'.join(d.getVar('PV').split('.')[0:2])}"
@@ -25,10 +23,11 @@ SRC_URI = "ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/${BP}.tgz \
file://slapd.service \
file://thread_stub.patch \
file://openldap-CVE-2015-3276.patch \
+ file://remove-user-host-pwd-from-version.patch \
"
-SRC_URI[md5sum] = "00ff8301277cdfd0af728a6927042a13"
-SRC_URI[sha256sum] = "cdd6cffdebcd95161a73305ec13fc7a78e9707b46ca9f84fb897cd5626df3824"
+SRC_URI[md5sum] = "829016c5a9f45c51adc50073ac6f9fd7"
+SRC_URI[sha256sum] = "9a90dcb86b99ae790ccab93b7585a31fbcbeec8c94bf0f7ab0ca0a87ea0c4b2d"
DEPENDS = "util-linux groff-native"
diff --git a/meta-openembedded/meta-oe/recipes-support/opensc/opensc/0001-Fixed-gcc-8-compilation-errors-1353.patch b/meta-openembedded/meta-oe/recipes-support/opensc/opensc/0001-Fixed-gcc-8-compilation-errors-1353.patch
new file mode 100644
index 000000000..48d832754
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/opensc/opensc/0001-Fixed-gcc-8-compilation-errors-1353.patch
@@ -0,0 +1,73 @@
+From 87857d5cae7db94fdd776904886392b1e86053bd Mon Sep 17 00:00:00 2001
+From: Florian Bezdeka <1119693+fbezdeka@users.noreply.github.com>
+Date: Fri, 18 May 2018 18:54:56 +0200
+Subject: [PATCH] Fixed gcc 8 compilation errors (#1353)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The following errors occured during a compilation using gcc 8:
+
+In function »gids_create_file.constprop«,
+ inserted by »gids_save_certificate.isra.8« beicard-gids.c:1548:7:
+card-gids.c:465:2: Error: »strncpy« output may be truncated copying 8 bytes from a string of length 8 [-Werror=stringop-truncation]
+ strncpy(record->filename, filename, 8);
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+pkcs15-oberthur.c: In function »sc_pkcs15emu_oberthur_add_prvkey«:
+pkcs15-oberthur.c:741:5: Error: »strncpy« output may be truncated copying 254 bytes from a string of length 254 [-Werror=stringop-truncation]
+ strncpy(kobj.label, objs[ii]->label, sizeof(kobj.label) - 1);
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Upstream-Status: Backport [https://github.com/OpenSC/OpenSC/pull/1353]
+Signed-off-by Khem Raj <raj.khem@gmail.com>
+---
+ src/libopensc/card-gids.c | 3 ++-
+ src/libopensc/pkcs15-oberthur.c | 3 ++-
+ 2 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/src/libopensc/card-gids.c b/src/libopensc/card-gids.c
+index fc5d2a7..ac3e579 100644
+--- a/src/libopensc/card-gids.c
++++ b/src/libopensc/card-gids.c
+@@ -33,6 +33,7 @@ Some features are undocumented like the format used to store certificates. They
+
+ #include <stdlib.h>
+ #include <string.h>
++#include "../common/compat_strlcpy.h"
+
+ #ifdef ENABLE_OPENSSL
+ /* openssl only needed for card administration */
+@@ -462,7 +463,7 @@ static int gids_create_file(sc_card_t *card, char* directory, char* filename) {
+ memset(masterfilebuffer + offset, 0, sizeof(gids_mf_record_t));
+ record = (gids_mf_record_t*) (masterfilebuffer + offset);
+ strncpy(record->directory, directory, 8);
+- strncpy(record->filename, filename, 8);
++ strlcpy(record->filename, filename, sizeof(record->filename));
+ record->fileIdentifier = fileIdentifier;
+ record->dataObjectIdentifier = dataObjectIdentifier;
+
+diff --git a/src/libopensc/pkcs15-oberthur.c b/src/libopensc/pkcs15-oberthur.c
+index 4f841ed..3415be7 100644
+--- a/src/libopensc/pkcs15-oberthur.c
++++ b/src/libopensc/pkcs15-oberthur.c
+@@ -29,6 +29,7 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <stdio.h>
++#include "../common/compat_strlcpy.h"
+
+ #include "pkcs15.h"
+ #include "log.h"
+@@ -738,7 +739,7 @@ sc_pkcs15emu_oberthur_add_prvkey(struct sc_pkcs15_card *p15card,
+ unsigned int id = path.value[path.len - 2] * 0x100 + path.value[path.len - 1];
+
+ if (id == ccont.id_cert) {
+- strncpy(kobj.label, objs[ii]->label, sizeof(kobj.label) - 1);
++ strlcpy(kobj.label, objs[ii]->label, sizeof(kobj.label));
+ break;
+ }
+ }
+--
+2.18.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.16.0.bb b/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.18.0.bb
index fd67181dc..45c931e7b 100644
--- a/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.16.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.18.0.bb
@@ -9,10 +9,12 @@ eID cards have also been confirmed to work."
HOMEPAGE = "http://www.opensc-project.org/opensc/"
SECTION = "System Environment/Libraries"
-SRC_URI = "${DEBIAN_MIRROR}/main/o/${BPN}/${BPN}_${PV}.orig.tar.gz"
+SRC_URI = "https://snapshot.debian.org/archive/debian/20180521T101428Z/pool/main/o/opensc/opensc_0.18.0.orig.tar.gz \
+ file://0001-Fixed-gcc-8-compilation-errors-1353.patch \
+ "
-SRC_URI[md5sum] = "724d128f23cd7a74b28d04300ce7bcbd"
-SRC_URI[sha256sum] = "3ac8c29542bb48179e7086d35a1b8907a4e86aca3de3323c2f48bd74eaaf5729"
+SRC_URI[md5sum] = "bce516f752e0db5327aa06cc0136fe27"
+SRC_URI[sha256sum] = "6ef62b00e8fdbe3e386c3ee25c2cadb56c1931ea42f1a11dce8c947f51b45033"
DEPENDS = "openct pcsc-lite virtual/libiconv openssl"
@@ -21,6 +23,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
inherit autotools pkgconfig
+S = "${WORKDIR}/OpenSC-${PV}"
EXTRA_OECONF = " \
--disable-static \
--enable-openct \
diff --git a/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.22.bb b/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.22.bb
index 90d58b00d..10f724e6c 100644
--- a/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.22.bb
+++ b/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.22.bb
@@ -11,7 +11,7 @@ LICENSE_${PN}-spy-dev = "GPLv3+"
LIC_FILES_CHKSUM = "file://COPYING;md5=f38b3d1c7ef7fc2c8b6d20cd38efdc29"
DEPENDS = "udev"
-SRC_URI = "https://alioth.debian.org/frs/download.php/file/4225/pcsc-lite-${PV}.tar.bz2"
+SRC_URI = "https://pcsclite.apdu.fr/files/${BP}.tar.bz2"
SRC_URI[md5sum] = "0ec103b1ef298d0c58d6ef6b00b9cf17"
SRC_URI[sha256sum] = "6a358f61ed3b66a7f6e1f4e794a94c7be4c81b7a58ec360c33791e8d7d9bd405"
diff --git a/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.12.0.bb b/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.12.0.bb
index 088f08b7d..148e4b6b5 100644
--- a/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.12.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.12.0.bb
@@ -58,7 +58,9 @@ do_configure_prepend() {
OE_LT_RPATH_ALLOW=":${libdir}/purple-2:"
OE_LT_RPATH_ALLOW[export]="1"
-PACKAGES =+ "libpurple-dbg libpurple-dev libpurple libgnt-dbg libgnt libgnt-dev finch-dbg finch finch-dev ${PN}-data"
+PACKAGES =+ "libpurple-dev libpurple libgnt libgnt-dev finch finch-dev ${PN}-data"
+
+RPROVIDES_${PN}-dbg += "libpurple-dbg libgnt-dbg finch-dbg"
LEAD_SONAME = "libpurple.so.0"
FILES_libpurple = "${libdir}/libpurple*.so.* ${libdir}/purple-2 ${bindir}/purple-* ${sysconfdir}/gconf/schemas/purple* ${datadir}/purple/ca-certs"
@@ -69,15 +71,10 @@ FILES_libpurple-dev = "${libdir}/libpurple*.la \
${libdir}/purple-2/liboscar.so \
${libdir}/purple-2/libymsg.so \
${datadir}/aclocal"
-FILES_libpurple-dbg += "${libdir}/.debug/libpurple* \
- ${libdir}/purple-2/.debug"
FILES_libgnt = "${libdir}/libgnt.so.* ${libdir}/gnt/*.so"
FILES_libgnt-dev = "${libdir}/gnt/*.la"
-FILES_libgnt-dbg = "${libdir}/gnt/.debug"
FILES_finch = "${bindir}/finch"
FILES_finch-dev = "${libdir}/finch/*.la"
-FILES_finch-dbg = "${bindir}/.debug/finch \
- ${libdir}/finch/.debug"
FILES_${PN} = "${bindir} ${datadir}/${PN} ${libdir}/${PN}/*.so \
${datadir}/applications"
diff --git a/meta-openembedded/meta-oe/recipes-support/poco/poco/0001-Don-t-try-to-install-non-existing-Encodings-testsuit.patch b/meta-openembedded/meta-oe/recipes-support/poco/poco/0001-Don-t-try-to-install-non-existing-Encodings-testsuit.patch
new file mode 100644
index 000000000..f4a358f47
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/poco/poco/0001-Don-t-try-to-install-non-existing-Encodings-testsuit.patch
@@ -0,0 +1,31 @@
+From fa079dfc5e1d22ea35762bf4c5b09999bdc5e731 Mon Sep 17 00:00:00 2001
+From: Jochen Sprickerhof <git@jochen.sprickerhof.de>
+Date: Wed, 22 Aug 2018 21:42:09 +0200
+Subject: [PATCH] Don't try to install non existing Encodings/testsuite/data
+
+Upstream-Status: Backport [https://github.com/pocoproject/poco/pull/2437]
+---
+ Encodings/testsuite/CMakeLists.txt | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/Encodings/testsuite/CMakeLists.txt b/Encodings/testsuite/CMakeLists.txt
+index 7508e5522..79495ae02 100644
+--- a/Encodings/testsuite/CMakeLists.txt
++++ b/Encodings/testsuite/CMakeLists.txt
+@@ -19,12 +19,9 @@ POCO_SOURCES_AUTO_PLAT( TEST_SRCS WINCE
+ add_executable( ${TESTUNIT} ${TEST_SRCS} )
+ if(ANDROID)
+ add_test(NAME ${LIBNAME} WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
+- COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} "-DTEST_FILES=${CMAKE_CURRENT_SOURCE_DIR}/data;" -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/${TESTUNIT} -DTEST_PARAMETER=-all -P ${CMAKE_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake)
++ COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/Encodings-testrunner -DTEST_PARAMETER=-all -P ${CMAKE_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake)
+ else()
+ add_test(NAME ${LIBNAME} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND ${TESTUNIT} -all)
+- # The test is run in the build directory. So the test data is copied there too
+- add_custom_command(TARGET ${TESTUNIT} POST_BUILD
+- COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/data ${CMAKE_CURRENT_BINARY_DIR}/data )
+ endif()
+ #set_target_properties( ${TESTUNIT} PROPERTIES COMPILE_FLAGS ${RELEASE_CXX_FLAGS} )
+ target_link_libraries( ${TESTUNIT} PocoEncodings PocoFoundation CppUnit )
+--
+2.18.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/poco/poco_1.8.0.1.bb b/meta-openembedded/meta-oe/recipes-support/poco/poco_1.9.0.bb
index 160b4d391..258cc4994 100644
--- a/meta-openembedded/meta-oe/recipes-support/poco/poco_1.8.0.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/poco/poco_1.9.0.bb
@@ -1,39 +1,28 @@
SUMMARY = "Modern, powerful open source cross-platform C++ class libraries"
DESCRIPTION = "Modern, powerful open source C++ class libraries and frameworks for building network- and internet-based applications that run on desktop, server, mobile and embedded systems."
-SECTION = "libs"
HOMEPAGE = "http://pocoproject.org/"
+SECTION = "libs"
LICENSE = "BSL-1.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=4267f48fc738f50380cbeeb76f95cebc"
# These dependencies are required by Foundation
DEPENDS = "libpcre zlib"
-inherit cmake ptest
-
-BBCLASSEXTEND = "native"
-
-SRCREV = "af527ab21fca5ab2659285408aec9920ed7c7b17"
SRC_URI = " \
- git://github.com/pocoproject/poco.git \
+ git://github.com/pocoproject/poco.git;branch=poco-${PV} \
+ file://0001-Don-t-try-to-install-non-existing-Encodings-testsuit.patch \
file://run-ptest \
"
+SRCREV = "daf00da73ab917e4d4581e3aa00c0ee61e0cc58b"
S = "${WORKDIR}/git"
-EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=RelWithDebInfo -DPOCO_UNBUNDLED=ON \
- -DZLIB_LIBRARY_RELEASE:STRING=z -DPCRE_LIBRARY:STRING=pcre \
- ${@bb.utils.contains('PTEST_ENABLED', '1', '-DENABLE_TESTS=ON ', '', d)}"
-
-# For the native build we want to use the bundled version
-EXTRA_OECMAKE_append_class-native = " -DPOCO_UNBUNDLED=OFF"
-
-# do not use rpath
-EXTRA_OECMAKE_append = " -DCMAKE_SKIP_RPATH=ON"
+inherit cmake ptest
# By default the most commonly used poco components are built
# Foundation is built anyway and doesn't need to be listed explicitly
# these don't have dependencies outside oe-core
-PACKAGECONFIG ??= "XML JSON MongoDB PDF Util Net NetSSL Crypto Data DataSQLite Zip"
+PACKAGECONFIG ??= "XML JSON MongoDB PDF Util Net NetSSL Crypto Data DataSQLite Zip Encodings Redis"
PACKAGECONFIG[XML] = "-DENABLE_XML=ON -DEXPAT_LIBRARY:STRING=expat,-DENABLE_XML=OFF,expat"
PACKAGECONFIG[JSON] = "-DENABLE_JSON=ON,-DENABLE_JSON=OFF"
@@ -46,6 +35,8 @@ PACKAGECONFIG[Crypto] = "-DENABLE_CRYPTO=ON -DOPENSSL_SSL_LIBRARY:STRING=ssl -DO
PACKAGECONFIG[Data] = "-DENABLE_DATA=ON,-DENABLE_DATA=OFF"
PACKAGECONFIG[DataSQLite] = "-DENABLE_DATA_SQLITE=ON -DSQLITE3_LIBRARY:STRING=sqlite3,-DENABLE_DATA_SQLITE=OFF,sqlite3"
PACKAGECONFIG[Zip] = "-DENABLE_ZIP=ON,-DENABLE_ZIP=OFF"
+PACKAGECONFIG[Encodings] = "-DENABLE_ENCODINGS=ON,-DENABLE_ENCODINGS=OFF"
+PACKAGECONFIG[Redis] = "-DENABLE_REDIS=ON,-DENABLE_REDIS=OFF"
# Additional components not build by default,
# they might have dependencies not included in oe-core
@@ -58,49 +49,51 @@ PACKAGECONFIG[PageCompiler] = "-DENABLE_PAGECOMPILER=ON,-DENABLE_PAGECOMPILER=OF
PACKAGECONFIG[PageCompilerFile2Page] = "-DENABLE_PAGECOMPILER_FILE2PAGE=ON,-DENABLE_PAGECOMPILER_FILE2PAGE=OFF"
PACKAGECONFIG[SevenZip] = "-DENABLE_SEVENZIP=ON,-DENABLE_SEVENZIP=OFF"
-# Make a package for each library
-PACKAGES = "${PN}-dbg ${POCO_PACKAGES}"
-python __anonymous () {
+EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=RelWithDebInfo -DPOCO_UNBUNDLED=ON \
+ -DZLIB_LIBRARY_RELEASE:STRING=z -DPCRE_LIBRARY:STRING=pcre \
+ ${@bb.utils.contains('PTEST_ENABLED', '1', '-DENABLE_TESTS=ON ', '', d)}"
+
+# For the native build we want to use the bundled version
+EXTRA_OECMAKE_append_class-native = " -DPOCO_UNBUNDLED=OFF"
+
+# do not use rpath
+EXTRA_OECMAKE_append = " -DCMAKE_SKIP_RPATH=ON"
+
+python populate_packages_prepend () {
+ poco_libdir = d.expand('${libdir}')
+ pn = d.getVar("PN")
packages = []
testrunners = []
- components = d.getVar("PACKAGECONFIG").split()
- components.append("Foundation")
- for lib in components:
- pkg = ("poco-%s" % lib.lower()).replace("_","")
+
+ def hook(f, pkg, file_regex, output_pattern, modulename):
packages.append(pkg)
- if not d.getVar("FILES_%s" % pkg):
- d.setVar("FILES_%s" % pkg, "${libdir}/libPoco%s.so.*" % lib)
- testrunners.append("%s" % lib)
+ testrunners.append(modulename)
- d.setVar("POCO_PACKAGES", " ".join(packages))
+ do_split_packages(d, poco_libdir, '^libPoco(.*)\.so\..*$',
+ 'poco-%s', 'Poco %s component', extra_depends='', prepend=True, hook=hook)
+
+ d.setVar("RRECOMMENDS_%s" % pn, " ".join(packages))
d.setVar("POCO_TESTRUNNERS", "\n".join(testrunners))
}
-# "poco" is a metapackage which pulls in all Poco components
-PACKAGES += "${PN}"
-RRECOMMENDS_${PN} += "${POCO_PACKAGES}"
-RRECOMMENDS_${PN}_class-native = ""
-ALLOW_EMPTY_${PN} = "1"
+do_install_ptest () {
+ cp -rf ${B}/bin/ ${D}${PTEST_PATH}
+ cp -f ${B}/lib/libCppUnit.so* ${D}${libdir}
+ cp -rf ${B}/*/testsuite/data ${D}${PTEST_PATH}/bin/
+ find "${D}${PTEST_PATH}" -executable -exec chrpath -d {} \;
+ echo "${POCO_TESTRUNNERS}" > "${D}${PTEST_PATH}/testrunners"
+}
-# -dev last to pick up the remaining stuff
-PACKAGES += "${PN}-dev ${PN}-staticdev"
-FILES_${PN}-dev = "${includedir} ${libdir}/libPoco*.so ${libdir}/cmake"
-FILES_${PN}-staticdev = "${libdir}/libPoco*.a"
+PACKAGES_DYNAMIC = "poco-.*"
-# ptest support
-FILES_${PN}-dbg += "${PTEST_PATH}/bin/.debug"
+# "poco" is a metapackage which pulls in all Poco components
+ALLOW_EMPTY_${PN} = "1"
# cppunit is only built if tests are enabled
-PACKAGES += "${PN}-cppunit"
+PACKAGES =+ "${PN}-cppunit"
FILES_${PN}-cppunit += "${libdir}/libCppUnit.so*"
ALLOW_EMPTY_${PN}-cppunit = "1"
RDEPENDS_${PN}-ptest += "${PN}-cppunit"
-do_install_ptest () {
- cp -rf ${B}/bin/ ${D}${PTEST_PATH}
- cp -f ${B}/lib/libCppUnit.so* ${D}${libdir}
- cp -rf ${B}/*/testsuite/data ${D}${PTEST_PATH}/bin/
- find "${D}${PTEST_PATH}" -executable -exec chrpath -d {} \;
- echo "${POCO_TESTRUNNERS}" > "${D}${PTEST_PATH}/testrunners"
-}
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/poppler/poppler-data_0.4.8.bb b/meta-openembedded/meta-oe/recipes-support/poppler/poppler-data_0.4.9.bb
index 343b6db81..b2af09715 100644
--- a/meta-openembedded/meta-oe/recipes-support/poppler/poppler-data_0.4.8.bb
+++ b/meta-openembedded/meta-oe/recipes-support/poppler/poppler-data_0.4.9.bb
@@ -17,8 +17,8 @@ SRC_URI = "http://poppler.freedesktop.org/${BP}.tar.gz \
${CMAP_RESOURCES_BASE}/Identity-H;name=idh \
${CMAP_RESOURCES_BASE}/Identity-V;name=idv"
-SRC_URI[md5sum] = "00f8989c804de84af0ba2ea629949980"
-SRC_URI[sha256sum] = "1096a18161f263cccdc6d8a2eb5548c41ff8fcf9a3609243f1b6296abdf72872"
+SRC_URI[md5sum] = "35cc7beba00aa174631466f06732be40"
+SRC_URI[sha256sum] = "1f9c7e7de9ecd0db6ab287349e31bf815ca108a5a175cf906a90163bdbe32012"
SRC_URI[idh.md5sum] = "009c93cf0141ab7bd6acb7eea14306cc"
SRC_URI[idh.sha256sum] = "ae702c203a82ea124e9b96590f821db6fbf8754e2c4547a9dba0e82f94739e95"
SRC_URI[idv.md5sum] = "2f32a45d43d001c26eeac6b878855fbf"
diff --git a/meta-openembedded/meta-oe/recipes-support/poppler/poppler/basename-include.patch b/meta-openembedded/meta-oe/recipes-support/poppler/poppler/basename-include.patch
new file mode 100644
index 000000000..528528ae7
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/poppler/poppler/basename-include.patch
@@ -0,0 +1,20 @@
+Minic GNU basename() API for non-glibc library e.g. musl
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Index: poppler-0.64.0/utils/pdfsig.cc
+===================================================================
+--- poppler-0.64.0.orig/utils/pdfsig.cc
++++ poppler-0.64.0/utils/pdfsig.cc
+@@ -35,6 +35,10 @@
+ #include "Win32Console.h"
+ #include "numberofcharacters.h"
+
++#if !defined(__GLIBC__)
++#define basename(src) (strrchr(src,'/') ? strrchr(src,'/')+1 : src)
++#endif
++
+ static const char * getReadableSigState(SignatureValidationStatus sig_vs)
+ {
+ switch(sig_vs) {
diff --git a/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.64.0.bb b/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.70.1.bb
index 1e87ae6e6..b618f28c5 100644
--- a/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.64.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.70.1.bb
@@ -6,9 +6,10 @@ SRC_URI = "http://poppler.freedesktop.org/${BP}.tar.xz \
file://0001-Do-not-overwrite-all-our-build-flags.patch \
file://0002-CairoOutputDev.cc-fix-build-error-when-using-fixedpo.patch \
file://0001-glib-CMakeLists.txt-Add-libpoppler-to-link-along-wit.patch \
+ file://basename-include.patch \
"
-SRC_URI[md5sum] = "f7f687ebb60004f8ad61994575018044"
-SRC_URI[sha256sum] = "b21df92ca99f78067785cf2dc8e06deb04726b62389c0ee1f5d8b103c77f64b1"
+SRC_URI[md5sum] = "fdb0699e9aa20e81acd1a50701374c8b"
+SRC_URI[sha256sum] = "66972047d9ef8162cc8c389d7e7698291dfc9f2b3e4ea9a9f08ae604107451bd"
DEPENDS = "fontconfig zlib cairo lcms glib-2.0"
diff --git a/meta-openembedded/meta-oe/recipes-support/pps-tools/pps-tools_git.bb b/meta-openembedded/meta-oe/recipes-support/pps-tools/pps-tools_1.0.2.bb
index 8bf903699..c8baa5d9c 100644
--- a/meta-openembedded/meta-oe/recipes-support/pps-tools/pps-tools_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/pps-tools/pps-tools_1.0.2.bb
@@ -4,12 +4,13 @@ HOMEPAGE = "http://linuxpps.org"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-PV = "0.0.0+git${SRCPV}"
-SRCREV = "0deb9c7e135e9380a6d09e9d2e938a146bb698c8"
+SRCREV = "cb48b7ecf7079ceba7081c78d4e61e507b0e8d2d"
SRC_URI = "git://github.com/ago/pps-tools.git"
S = "${WORKDIR}/git"
+RDEPENDS_${PN} = "bash"
+
do_install() {
install -d ${D}${bindir} ${D}${includedir} \
${D}${includedir}/sys
diff --git a/meta-openembedded/meta-oe/recipes-support/procmail/procmail_3.22.bb b/meta-openembedded/meta-oe/recipes-support/procmail/procmail_3.22.bb
index aa474ceb1..6160733b3 100644
--- a/meta-openembedded/meta-oe/recipes-support/procmail/procmail_3.22.bb
+++ b/meta-openembedded/meta-oe/recipes-support/procmail/procmail_3.22.bb
@@ -29,7 +29,7 @@ do_configure() {
export CFLAGS="${BUILD_CFLAGS}"
export AR="${BUILD_AR}"
export AS="${BUILD_AS}"
- make TARGET_CFLAGS="$TARGET_CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" LDFLAGS0="${LDFLAGS}" autoconf.h
+ make TARGET_CFLAGS="$TARGET_CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" LDFLAGS0="${BUILD_LDFLAGS}" autoconf.h
}
do_compile() {
diff --git a/meta-openembedded/meta-oe/recipes-support/satyr/files/0001-do-not-support-python2.patch b/meta-openembedded/meta-oe/recipes-support/satyr/files/0001-do-not-support-python2.patch
deleted file mode 100644
index 9e95a3f9d..000000000
--- a/meta-openembedded/meta-oe/recipes-support/satyr/files/0001-do-not-support-python2.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From 206f334d62da17093e784094c9d9e80c853f704f Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Fri, 12 May 2017 03:03:46 -0400
-Subject: [PATCH] do not support python2
-
-Upstream-Status: Inappropriate [oe specific]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- configure.ac | 16 ----------------
- python/Makefile.am | 24 ------------------------
- 2 files changed, 40 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 200a7cc..8431c51 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -22,22 +22,6 @@ AM_MISSING_PROG([AUTOM4TE], [autom4te])
- # Needed by tests/atlocal.in.
- AC_SUBST([O0CFLAGS], [`echo $CFLAGS | sed 's/-O[[0-9]] *//'`])
-
--AM_PATH_PYTHON
--AM_CONDITIONAL([HAVE_PYTHON], test -n "$PYTHON")
--[if test -z "$PYTHON"; then]
-- [echo "The python interpreter was not found in the search path. The Python language bindings"]
-- [echo "will not be built. If you want to build the Python language bindings, please ensure"]
-- [echo "that python is installed and its directory is included in the search path."]
-- [echo "Then run configure again before attempting to build Satyr."]
--[fi]
--
--# Just PKG_CHECK_MODULES([PYTHON], [python]) works only with python2.7+
--# Below, if python is not found, we set up for python2.6 w/o checking:
--PKG_CHECK_MODULES([PYTHON], [python2],,[
-- PYTHON_LIBS='-L/usr/lib64 -lpython2.6'
-- PYTHON_CFLAGS='-I/usr/include/python2.6'
--])
--
- AC_ARG_ENABLE([python-manpage],
- [AS_HELP_STRING([--disable-python-manpage],
- [Disable python bindings manpage build])],
-diff --git a/python/Makefile.am b/python/Makefile.am
-index 36fc2e9..0b73f66 100644
---- a/python/Makefile.am
-+++ b/python/Makefile.am
-@@ -1,12 +1,5 @@
- SUBDIRS = . doc
-
--py2satyrdir = $(pyexecdir)/satyr
--
--py2satyr_PYTHON = \
-- __init__.py
--
--py2satyr_LTLIBRARIES = _satyr.la
--
- PYEXTFILES = \
- py_cluster.h \
- py_cluster.c \
-@@ -75,23 +68,6 @@ PYEXTLDFLAGS = \
- -module \
- -avoid-version
-
--_satyr_la_SOURCES = $(PYEXTFILES)
--_satyr_la_CPPFLAGS = \
-- $(PYEXTCPPFLAGS) \
-- $(PYTHON_CFLAGS)
--_satyr_la_LDFLAGS = \
-- $(PYEXTLDFLAGS) \
-- -export-symbols-regex init_satyr
--
--# Depending on the configure option, we either link libsatyr.so dynamically (as
--# is usual), or directly include its object files (by including the
--# convenience library).
--if ENABLE_STATIC_PYTHON_MODULE
--_satyr_la_LIBADD = ../lib/libsatyr_conv.la
--else
--_satyr_la_LIBADD = ../lib/libsatyr.la
--endif
--
- if WITH_PYTHON3
- py3satyrdir = $(py3execdir)/satyr
-
---
-2.8.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/satyr/files/0002-fix-compile-failure-against-musl-C-library.patch b/meta-openembedded/meta-oe/recipes-support/satyr/files/0002-fix-compile-failure-against-musl-C-library.patch
index 5827eb4d1..b6c32c4bd 100644
--- a/meta-openembedded/meta-oe/recipes-support/satyr/files/0002-fix-compile-failure-against-musl-C-library.patch
+++ b/meta-openembedded/meta-oe/recipes-support/satyr/files/0002-fix-compile-failure-against-musl-C-library.patch
@@ -14,7 +14,7 @@ diff --git a/lib/rpm.c b/lib/rpm.c
index 920e145..58140bf 100644
--- a/lib/rpm.c
+++ b/lib/rpm.c
-@@ -188,7 +188,7 @@ sr_rpm_package_sort(struct sr_rpm_package *packages)
+@@ -191,7 +191,7 @@ sr_rpm_package_sort(struct sr_rpm_package *packages)
}
/* Sort the array. */
diff --git a/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.23.bb b/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.26.bb
index f795c3717..a09bea23d 100644
--- a/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.23.bb
+++ b/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.26.bb
@@ -8,10 +8,9 @@ LICENSE = "GPLv2"
inherit autotools-brokensep python3native pkgconfig
SRC_URI = "git://github.com/abrt/satyr.git \
- file://0001-do-not-support-python2.patch \
file://0002-fix-compile-failure-against-musl-C-library.patch \
"
-SRCREV = "4742fd4857c446b96f712d52e2e4cd0b6cfe7398"
+SRCREV = "4baa0c765071054314d1e7e78547ce6b7c133fbc"
S = "${WORKDIR}/git"
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
@@ -24,8 +23,8 @@ PACKAGES += "python3-${PN}"
FILES_python3-${PN} = "${PYTHON_SITEPACKAGES_DIR}/${BPN}"
PACKAGECONFIG ??= "python3 rpm"
+PACKAGECONFIG[python2] = "--with-python2, --without-python2,,python2"
PACKAGECONFIG[python3] = "--with-python3, --without-python3,,python3"
-PACKAGECONFIG[pythonmanpage] = "--enable-python-manpage, --disable-python-manpage"
PACKAGECONFIG[rpm] = "--with-rpm, --without-rpm, rpm"
do_configure_prepend() {
diff --git a/meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.10.bb b/meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.10.bb
index 3299a77aa..35e22d3ea 100644
--- a/meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.10.bb
+++ b/meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.10.bb
@@ -12,6 +12,8 @@ SRC_URI = "http://sg.danny.cz/sg/p/${BPN}-${PV}.tgz \
"
MIRRORS += "http://sg.danny.cz/sg/p https://fossies.org/linux/misc"
+UPSTREAM_CHECK_REGEX = "sdparm-(?P<pver>\d+(\.\d+)+)\.tgz"
+
PACKAGES =+ "${PN}-scripts"
RDEPENDS_${PN}-scripts += "bash ${PN}"
diff --git a/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils/glibc-2.28.patch b/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils/glibc-2.28.patch
new file mode 100644
index 000000000..fbad4135d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils/glibc-2.28.patch
@@ -0,0 +1,24 @@
+Fixes:
+http://errors.yoctoproject.org/Errors/Details/185896/
+
+TOPDIR/tmp-glibc/work/core2-64-oe-linux/sg3-utils/1.42-r0/recipe-sysroot-native/usr/bin/x86_64-oe-linux/../../libexec/x86_64-oe-linux/gcc/x86_64-oe-linux/8.2.0/ld: sg_map26.o: in function `nd_match_scandir_select':
+/usr/src/debug/sg3-utils/1.42-r0/sg3_utils-1.42/src/sg_map26.c:359: undefined reference to `major'
+TOPDIR/tmp-glibc/work/core2-64-oe-linux/sg3-utils/1.42-r0/recipe-sysroot-native/usr/bin/x86_64-oe-linux/../../libexec/x86_64-oe-linux/gcc/x86_64-oe-linux/8.2.0/ld: /usr/src/debug/sg3-utils/1.42-r0/sg3_utils-1.42/src/sg_map26.c:361: undefined reference to `minor'
+TOPDIR/tmp-glibc/work/core2-64-oe-linux/sg3-utils/1.42-r0/recipe-sysroot-native/usr/bin/x86_64-oe-linux/../../libexec/x86_64-oe-linux/gcc/x86_64-oe-linux/8.2.0/ld: sg_map26.o: in function `nt_typ_from_filename':
+/usr/src/debug/sg3-utils/1.42-r0/sg3_utils-1.42/src/sg_map26.c:218: undefined reference to `major'
+TOPDIR/tmp-glibc/work/core2-64-oe-linux/sg3-utils/1.42-r0/recipe-sysroot-native/usr/bin/x86_64-oe-linux/../../libexec/x86_64-oe-linux/gcc/x86_64-oe-linux/8.2.0/ld: /usr/src/debug/sg3-utils/1.42-r0/sg3_utils-1.42/src/sg_map26.c:219: undefined reference to `minor'
+collect2: error: ld returned 1 exit status
+Makefile:806: recipe for target 'sg_map26' failed
+
+Upstream-Status: Pending
+
+--- sg3_utils-1.42.orig/src/sg_map26.c 2018-08-09 11:53:26.907493996 +0000
++++ sg3_utils-1.42/src/sg_map26.c 2018-08-09 11:51:56.713490763 +0000
+@@ -33,6 +33,7 @@
+ #include <sys/ioctl.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
++#include <sys/sysmacros.h>
+ #include <linux/major.h>
+
+ #ifdef HAVE_CONFIG_H
diff --git a/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.42.bb b/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.42.bb
index c7de05740..c37c5e952 100644
--- a/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.42.bb
+++ b/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.42.bb
@@ -8,9 +8,13 @@ SECTION = "console/admin"
LICENSE = "GPLv2+ & BSD"
LIC_FILES_CHKSUM = "file://COPYING;md5=f90da7fc52172599dbf082d7620f18ca"
-SRC_URI = "http://sg.danny.cz/sg/p/sg3_utils-${PV}.tgz"
+SRC_URI = "http://sg.danny.cz/sg/p/sg3_utils-${PV}.tgz \
+ file://glibc-2.28.patch \
+"
MIRRORS += "http://sg.danny.cz/sg/p https://fossies.org/linux/misc"
+UPSTREAM_CHECK_REGEX = "sg3_utils-(?P<pver>\d+(\.\d+)+)\.tgz"
+
SRC_URI[md5sum] = "28080de5bf2222f8b55a29093bec8aea"
SRC_URI[sha256sum] = "1dcb7a0309bd0ba3d4a83acb526973b80106ee26cd9f7398186cd3f0633c9ef3"
diff --git a/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils/CVE-2018-1000097.patch b/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils/CVE-2018-1000097.patch
new file mode 100644
index 000000000..99dc4e304
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils/CVE-2018-1000097.patch
@@ -0,0 +1,61 @@
+From bd68ae1271598e8fdc72f2adb457e6882604582d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
+Date: Thu, 22 Feb 2018 16:39:43 +0100
+Subject: [PATCH] Fix a heap-buffer-overflow in find_archive()
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+rw_buffer has allocated rw_base_size bytes. But subsequend fgets() in
+find_archive() reads up-to BUFSIZ bytes.
+
+On my system, BUFSIZ is 8192. rw_base_size is usually equaled to
+a memory page size, 4096 on my system. Thus find_archive() can write
+beyonded allocated memmory for rw_buffer array:
+
+$ valgrind -- ./unshar /tmp/id\:000000\,sig\:06\,src\:000005+000030\,op\:splice\,rep\:4
+==30582== Memcheck, a memory error detector
+==30582== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
+==30582== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
+==30582== Command: ./unshar /tmp/id:000000,sig:06,src:000005+000030,op:splice,rep:4
+==30582==
+==30582== Invalid write of size 1
+==30582== at 0x4EAB480: _IO_getline_info (in /usr/lib64/libc-2.27.so)
+==30582== by 0x4EB47C2: fgets_unlocked (in /usr/lib64/libc-2.27.so)
+==30582== by 0x10BF60: fgets_unlocked (stdio2.h:320)
+==30582== by 0x10BF60: find_archive (unshar.c:243)
+==30582== by 0x10BF60: unshar_file (unshar.c:379)
+==30582== by 0x10BCCC: validate_fname (unshar-opts.c:604)
+==30582== by 0x10BCCC: main (unshar-opts.c:639)
+==30582== Address 0x523a790 is 0 bytes after a block of size 4,096 alloc'd
+==30582== at 0x4C2DBBB: malloc (vg_replace_malloc.c:299)
+==30582== by 0x10C670: init_unshar (unshar.c:450)
+==30582== by 0x10BC55: main (unshar-opts.c:630)
+
+This was reported in
+<http://lists.gnu.org/archive/html/bug-gnu-utils/2018-02/msg00004.html>.
+
+CVE: CVE-2018-1000097
+Upstream-Status: no upstream [http://lists.gnu.org/archive/html/bug-gnu-utils/2018-02/msg00004.html]
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+Signed-off-by: Sinan Kaya <okaya@kernel.org>
+---
+ src/unshar.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/unshar.c b/src/unshar.c
+index 80bc3a9..0fc3773 100644
+--- a/src/unshar.c
++++ b/src/unshar.c
+@@ -240,7 +240,7 @@ find_archive (char const * name, FILE * file, off_t start)
+ off_t position = ftello (file);
+
+ /* Read next line, fail if no more and no previous process. */
+- if (!fgets (rw_buffer, BUFSIZ, file))
++ if (!fgets (rw_buffer, rw_base_size, file))
+ {
+ if (!start)
+ error (0, 0, _("Found no shell commands in %s"), name);
+--
+2.19.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb b/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb
index 812fee955..c12289b5d 100644
--- a/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb
+++ b/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb
@@ -8,6 +8,7 @@ inherit gettext autotools
SRC_URI = "ftp://ftp.gnu.org/gnu/${BPN}/${BP}.tar.gz \
file://0001-Fix-build-with-clang.patch \
+ file://CVE-2018-1000097.patch \
"
SRC_URI[md5sum] = "32a51b23e25ad5e6af4b89f228be1800"
SRC_URI[sha256sum] = "ee336e68549664e7a19b117adf02edfdeac6307f22e5ba78baca457116914637"
diff --git a/meta-openembedded/meta-oe/recipes-support/spitools/spitools_git.bb b/meta-openembedded/meta-oe/recipes-support/spitools/spitools_git.bb
index 3f6cdc63d..af1cd6001 100644
--- a/meta-openembedded/meta-oe/recipes-support/spitools/spitools_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/spitools/spitools_git.bb
@@ -4,11 +4,9 @@ AUTHOR = "Christophe BLAESS"
LICENSE="GPLv2"
LIC_FILES_CHKSUM = "file://LICENSE;md5=8c16666ae6c159876a0ba63099614381"
-PR = "r0"
-
-BPV = "0.8.1"
+BPV = "0.8.3"
PV = "${BPV}"
-SRCREV = "318bcae5249722873bf58b27afdd20473c7047cc"
+SRCREV = "a3f1f68a048d0d2321ee562b3744dd1162cad22f"
S = "${WORKDIR}/git"
@@ -16,4 +14,3 @@ SRC_URI = "git://github.com/cpb-/spi-tools.git;protocol=git"
inherit autotools
-
diff --git a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0001-Add-linux-musleabi-to-ostable.patch b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0001-Add-linux-musleabi-to-ostable.patch
new file mode 100644
index 000000000..269441fc8
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0001-Add-linux-musleabi-to-ostable.patch
@@ -0,0 +1,39 @@
+From 087840efdbc86b1432ebdd81f25b4cb78c75f818 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 11 Sep 2018 12:28:10 -0700
+Subject: [PATCH] Add linux-musleabi to ostable
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ ostable | 1 +
+ triplettable | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/ostable b/ostable
+index 3bb6819..d0ffdc7 100644
+--- a/ostable
++++ b/ostable
+@@ -15,6 +15,7 @@
+ uclibceabi-linux linux-uclibceabi linux[^-]*-uclibceabi
+ uclibc-linux linux-uclibc linux[^-]*-uclibc
+ musleabihf-linux linux-musleabihf linux[^-]*-musleabihf
++musleabi-linux linux-musleabi linux[^-]*-musleabi
+ musl-linux linux-musl linux[^-]*-musl
+ gnueabihf-linux linux-gnueabihf linux[^-]*-gnueabihf
+ gnueabi-linux linux-gnueabi linux[^-]*-gnueabi
+diff --git a/triplettable b/triplettable
+index 7257744..45864c3 100644
+--- a/triplettable
++++ b/triplettable
+@@ -6,6 +6,7 @@
+ uclibceabi-linux-arm uclibc-linux-armel
+ uclibc-linux-<cpu> uclibc-linux-<cpu>
+ musleabihf-linux-arm musl-linux-armhf
++musleabi-linux-arm musl-linux-arm
+ musl-linux-<cpu> musl-linux-<cpu>
+ gnueabihf-linux-arm armhf
+ gnueabi-linux-arm armel
+--
+2.18.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.17.25.bb b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.17.25.bb
index cc2727b75..b9b22a316 100644
--- a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.17.25.bb
+++ b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.17.25.bb
@@ -9,6 +9,7 @@ RCONFLICTS_${PN} = "dpkg"
SRC_URI = " \
${DEBIAN_MIRROR}/main/d/dpkg/dpkg_${PV}.tar.xz \
file://0001-dpkg-start-stop-daemon-Accept-SIG-prefixed-signal-na.patch \
+ file://0001-Add-linux-musleabi-to-ostable.patch \
"
SRC_URI[md5sum] = "e48fcfdb2162e77d72c2a83432d537ca"
diff --git a/meta-openembedded/meta-oe/recipes-support/stm32flash/stm32flash_0.5.bb b/meta-openembedded/meta-oe/recipes-support/stm32flash/stm32flash_0.5.bb
new file mode 100644
index 000000000..854df06cb
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/stm32flash/stm32flash_0.5.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Open source flash program for STM32 using the ST serial bootloader"
+HOMEPAGE = "https://sourceforge.net/projects/stm32flash/"
+BUGTRACKER = "https://sourceforge.net/p/stm32flash/tickets/"
+LICENSE = "GPL-2.0+"
+LIC_FILES_CHKSUM = "file://gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+S = "${WORKDIR}/${BPN}"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz"
+
+do_install() {
+ oe_runmake install DESTDIR=${D} PREFIX=${prefix}
+}
+
+SRC_URI[md5sum] = "40f673502949f3bb655d2bcc539d7b6a"
+SRC_URI[sha256sum] = "97aa9422ef02e82f7da9039329e21a437decf972cb3919ad817f70ac9a49e306"
diff --git a/meta-openembedded/meta-oe/recipes-support/synergy/synergy_git.bb b/meta-openembedded/meta-oe/recipes-support/synergy/synergy_git.bb
index 68f0387ba..f5518bd8c 100644
--- a/meta-openembedded/meta-oe/recipes-support/synergy/synergy_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/synergy/synergy_git.bb
@@ -1,35 +1,24 @@
SUMMARY = "Synergy - control multiple computers with one keyboard and mouse"
HOMEPAGE = "http://synergy-project.org"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d2ba51ca68e055566aade24662f9eb41"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=54c1fc8d8bb6776ae501acfb1585e9d6"
LICENSE = "GPL-2.0-with-OpenSSL-exception"
SECTION = "x11/utils"
DEPENDS = "virtual/libx11 libxtst libxinerama curl openssl"
-do_unpack_extra[depends] = "unzip-native:do_populate_sysroot"
# depends on virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
-SRC_URI = "git://github.com/symless/synergy.git;protocol=http"
+SRC_URI = "git://github.com/symless/synergy-core;protocol=https;nobranch=1"
-# Version 1.8.8-stable
-SRCREV ?= "c30301e23424db1125664da17deb8c3aa6aec52d"
-PV = "1.8.8+${SRCPV}"
+# Version 1.10.1-stable
+SRCREV ?= "1b4c076127687aceac931d269e898beaac1cad9f"
+PV = "1.10.1+git${SRCPV}"
S = "${WORKDIR}/git"
inherit cmake distro_features_check
-do_unpack_extra() {
- cd ${S}/ext
- for file in *.zip; do
- fname="${file##*/}"
- unzip $file -d ${fname%.*}
- done
-}
-addtask unpack_extra after do_unpack before do_patch
-
-do_install() {
- install -d ${D}/usr/bin
- install -m 0755 ${S}/bin/synergy* ${D}/usr/bin/
-}
+EXTRA_OECMAKE += "-DSYNERGY_BUILD_LEGACY_GUI=OFF"
+
+FILES_${PN} += "${datadir}/icons/hicolor"
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/0001-syslog-ng-fix-segment-fault-during-service-start.patch b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/0001-syslog-ng-fix-segment-fault-during-service-start.patch
new file mode 100644
index 000000000..0fc40be4a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/0001-syslog-ng-fix-segment-fault-during-service-start.patch
@@ -0,0 +1,75 @@
+From caeccb7bec45f65bc89efa8195b3853368328361 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Mon, 17 Sep 2018 12:49:36 +0800
+Subject: [PATCH] syslog-ng: fix segment fault during service start on arm64
+
+service start failed since segment fault on arch arm64,
+syslog-ng have a submodule ivykis, from ivykis V0.42,
+it use pthread_atfork, but for arm64, this symbol is
+not included by libpthread, so cause segment fault.
+
+refer systemd, replace pthread_atfork with __register_atfork
+to fix this problem.
+
+I have create an issue, and this proposal to upstream.
+https://github.com/buytenh/ivykis/issues/15
+
+Upstream-Status: Pending
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ lib/ivykis/src/pthr.h | 24 ++++++++++++------------
+ 1 file changed, 12 insertions(+), 12 deletions(-)
+
+diff --git a/lib/ivykis/src/pthr.h b/lib/ivykis/src/pthr.h
+index a41eaf3..72c5190 100644
+--- a/lib/ivykis/src/pthr.h
++++ b/lib/ivykis/src/pthr.h
+@@ -24,6 +24,16 @@
+ #include <pthread.h>
+ #include <signal.h>
+
++#ifdef __GLIBC__
++/* We use glibc __register_atfork() + __dso_handle directly here, as they are not included in the glibc
++ * headers. __register_atfork() is mostly equivalent to pthread_atfork(), but doesn't require us to link against
++ * libpthread, as it is part of glibc anyway. */
++extern int __register_atfork(void (*prepare) (void), void (*parent) (void), void (*child) (void), void * __dso_handle);
++extern void* __dso_handle __attribute__ ((__weak__));
++#else
++#define __register_atfork(prepare,parent,child,dso) pthread_atfork(prepare,parent,child)
++#endif
++
+ #ifdef HAVE_PRAGMA_WEAK
+ #pragma weak pthread_create
+ #endif
+@@ -36,16 +46,7 @@ static inline int pthreads_available(void)
+
+ #ifdef HAVE_PRAGMA_WEAK
+
+-/*
+- * On Linux, pthread_atfork() is defined in libpthread_nonshared.a,
+- * a static library, and we want to avoid "#pragma weak" for that
+- * symbol because that causes it to be undefined even if you link
+- * libpthread_nonshared.a in explicitly.
+- */
+-#ifndef HAVE_LIBPTHREAD_NONSHARED
+-#pragma weak pthread_atfork
+-#endif
+-
++#pragma weak __register_atfork
+ #pragma weak pthread_create
+ #pragma weak pthread_detach
+ #pragma weak pthread_getspecific
+@@ -73,8 +74,7 @@ static inline int
+ pthr_atfork(void (*prepare)(void), void (*parent)(void), void (*child)(void))
+ {
+ if (pthreads_available())
+- return pthread_atfork(prepare, parent, child);
+-
++ return __register_atfork(prepare, parent, child, __dso_handle);
+ return ENOSYS;
+ }
+
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/Fix-the-memory-leak-problem-when-HAVE_ENVIRON-defined.patch b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/Fix-the-memory-leak-problem-when-HAVE_ENVIRON-defined.patch
deleted file mode 100644
index 5d481f232..000000000
--- a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/Fix-the-memory-leak-problem-when-HAVE_ENVIRON-defined.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-Fix the memory leak problem when HAVE_ENVIRON is defined
-
-Upstream-Status: Pending
-
-Signed-off-by: Xufeng Zhang <xufeng.zhang@windriver.com>
----
-Index: syslog-ng-3.8.1/lib/gprocess.c
-===================================================================
---- syslog-ng-3.8.1.orig/lib/gprocess.c
-+++ syslog-ng-3.8.1/lib/gprocess.c
-@@ -1432,6 +1432,18 @@ g_process_startup_ok(void)
- void
- g_process_finish(void)
- {
-+#ifdef HAVE_ENVIRON
-+ int i = 0;
-+
-+ while (environ[i]) {
-+ g_free(environ[i]);
-+ ++i;
-+ }
-+ if (environ)
-+ g_free(environ);
-+ if (process_opts.argv_orig)
-+ free(process_opts.argv_orig);
-+#endif
- g_process_remove_pidfile();
- }
-
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/configure.ac-add-option-enable-thread-tls-to-manage-.patch b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/configure.ac-add-option-enable-thread-tls-to-manage-.patch
index c172e4e74..4f8a3d077 100644
--- a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/configure.ac-add-option-enable-thread-tls-to-manage-.patch
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/configure.ac-add-option-enable-thread-tls-to-manage-.patch
@@ -10,21 +10,21 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
configure.ac | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
-Index: syslog-ng-3.8.1/configure.ac
+Index: syslog-ng-3.15.1/configure.ac
===================================================================
---- syslog-ng-3.8.1.orig/configure.ac
-+++ syslog-ng-3.8.1/configure.ac
-@@ -147,6 +147,9 @@ AC_ARG_ENABLE(gprof,
+--- syslog-ng-3.15.1.orig/configure.ac
++++ syslog-ng-3.15.1/configure.ac
+@@ -190,6 +190,9 @@ AC_ARG_ENABLE(gprof,
AC_ARG_ENABLE(memtrace,
[ --enable-memtrace Enable alternative leak debugging code.])
+AC_ARG_ENABLE(thread-tls,
-+ [ --enable-thread-tls Enable Thread Transport Layer Security support.],,enable_thread_tls="no")
++ [ --enable-thread-tls Enable Thread Local Storage support.],,enable_thread_tls="no")
+
AC_ARG_ENABLE(dynamic-linking,
[ --enable-dynamic-linking Link everything dynamically.],,enable_dynamic_linking="auto")
-@@ -486,12 +489,14 @@ dnl ************************************
+@@ -591,12 +594,14 @@ dnl ***************************************************************************
dnl Is the __thread keyword available?
dnl ***************************************************************************
@@ -33,14 +33,14 @@ Index: syslog-ng-3.8.1/configure.ac
-__thread int a;
-]],
-[a=0;])],
--[ac_cv_have_tls=yes; AC_DEFINE_UNQUOTED(HAVE_THREAD_KEYWORD, 1, "Whether Transport Layer Security is supported by the system")])
+-[ac_cv_have_tls=yes; AC_DEFINE_UNQUOTED(HAVE_THREAD_KEYWORD, 1, "Whether Thread Local Storage is supported by the system")])
+if test "x$enable_thread_tls" != "xno"; then
+ AC_LINK_IFELSE([AC_LANG_PROGRAM(
+ [[#include <pthread.h>
+ __thread int a;
+ ]],
+ [a=0;])],
-+ [ac_cv_have_tls=yes; AC_DEFINE_UNQUOTED(HAVE_THREAD_KEYWORD, 1, "Whether Transport Layer Security is supported by the system")])
++ [ac_cv_have_tls=yes; AC_DEFINE_UNQUOTED(HAVE_THREAD_KEYWORD, 1, "Whether Thread Local Storage is supported by the system")])
+fi
dnl ***************************************************************************
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.systemd b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.systemd
new file mode 100644
index 000000000..9e910caa1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.systemd
@@ -0,0 +1,155 @@
+@version: 3.15
+#
+# Syslog-ng configuration file, compatible with default Debian syslogd
+# installation. Originally written by anonymous (I can't find his name)
+# Revised, and rewrited by me (SZALAY Attila <sasa@debian.org>)
+
+# First, set some global options.
+options { chain_hostnames(off); flush_lines(0); use_dns(no); use_fqdn(no);
+ owner("root"); group("adm"); perm(0640); stats_freq(0);
+ bad_hostname("^gconfd$");
+};
+
+########################
+# Sources
+########################
+# This is the default behavior of sysklogd package
+# Logs may come from unix stream, but not from another machine.
+#
+source s_src { systemd_journal(); internal();
+ file("/proc/kmsg" program_override("kernel"));
+};
+
+# If you wish to get logs from remote machine you should uncomment
+# this and comment the above source line.
+#
+#source s_net { tcp(ip(127.0.0.1) port(1000) authentication(required) encrypt(allow)); };
+
+########################
+# Destinations
+########################
+# First some standard logfile
+#
+destination d_auth { file("/var/log/auth.log"); };
+destination d_cron { file("/var/log/cron.log"); };
+destination d_daemon { file("/var/log/daemon.log"); };
+destination d_kern { file("/var/log/kern.log"); };
+destination d_lpr { file("/var/log/lpr.log"); };
+destination d_mail { file("/var/log/mail.log"); };
+destination d_syslog { file("/var/log/syslog"); };
+destination d_user { file("/var/log/user.log"); };
+destination d_uucp { file("/var/log/uucp.log"); };
+
+# This files are the log come from the mail subsystem.
+#
+destination d_mailinfo { file("/var/log/mail/mail.info"); };
+destination d_mailwarn { file("/var/log/mail/mail.warn"); };
+destination d_mailerr { file("/var/log/mail/mail.err"); };
+
+# Logging for INN news system
+#
+destination d_newscrit { file("/var/log/news/news.crit"); };
+destination d_newserr { file("/var/log/news/news.err"); };
+destination d_newsnotice { file("/var/log/news/news.notice"); };
+
+# Some 'catch-all' logfiles.
+#
+destination d_debug { file("/var/log/debug"); };
+destination d_error { file("/var/log/error"); };
+destination d_messages { file("/var/log/messages"); };
+
+# The root's console.
+#
+destination d_console { usertty("root"); };
+
+# Virtual console.
+#
+destination d_console_all { file("/dev/tty10"); };
+
+# The named pipe /dev/xconsole is for the nsole' utility. To use it,
+# you must invoke nsole' with the -file' option:
+#
+# $ xconsole -file /dev/xconsole [...]
+#
+destination d_xconsole { pipe("/dev/xconsole"); };
+
+# Send the messages to an other host
+#
+#destination d_net { tcp("127.0.0.1" port(1000) authentication(on) encrypt(on) log_fifo_size(1000)); };
+
+# Debian only
+destination d_ppp { file("/var/log/ppp.log"); };
+
+########################
+# Filters
+########################
+# Here's come the filter options. With this rules, we can set which
+# message go where.
+
+filter f_dbg { level(debug); };
+filter f_info { level(info); };
+filter f_notice { level(notice); };
+filter f_warn { level(warn); };
+filter f_err { level(err); };
+filter f_crit { level(crit .. emerg); };
+
+filter f_debug { level(debug) and not facility(auth, authpriv, news, mail); };
+filter f_error { level(err .. emerg) ; };
+filter f_messages { level(info,notice,warn) and
+ not facility(auth,authpriv,cron,daemon,mail,news); };
+
+filter f_auth { facility(auth, authpriv) and not filter(f_debug); };
+filter f_cron { facility(cron) and not filter(f_debug); };
+filter f_daemon { facility(daemon) and not filter(f_debug); };
+filter f_kern { facility(kern) and not filter(f_debug); };
+filter f_lpr { facility(lpr) and not filter(f_debug); };
+filter f_local { facility(local0, local1, local3, local4, local5,
+ local6, local7) and not filter(f_debug); };
+filter f_mail { facility(mail) and not filter(f_debug); };
+filter f_news { facility(news) and not filter(f_debug); };
+filter f_syslog3 { not facility(auth, authpriv, mail) and not filter(f_debug); };
+filter f_user { facility(user) and not filter(f_debug); };
+filter f_uucp { facility(uucp) and not filter(f_debug); };
+
+filter f_cnews { level(notice, err, crit) and facility(news); };
+filter f_cother { level(debug, info, notice, warn) or facility(daemon, mail); };
+
+filter f_ppp { facility(local2) and not filter(f_debug); };
+filter f_console { level(warn .. emerg); };
+
+########################
+# Log paths
+########################
+log { source(s_src); filter(f_auth); destination(d_auth); };
+log { source(s_src); filter(f_cron); destination(d_cron); };
+log { source(s_src); filter(f_daemon); destination(d_daemon); };
+log { source(s_src); filter(f_kern); destination(d_kern); };
+log { source(s_src); filter(f_lpr); destination(d_lpr); };
+log { source(s_src); filter(f_syslog3); destination(d_syslog); };
+log { source(s_src); filter(f_user); destination(d_user); };
+log { source(s_src); filter(f_uucp); destination(d_uucp); };
+
+log { source(s_src); filter(f_mail); destination(d_mail); };
+#log { source(s_src); filter(f_mail); filter(f_info); destination(d_mailinfo); };
+#log { source(s_src); filter(f_mail); filter(f_warn); destination(d_mailwarn); };
+#log { source(s_src); filter(f_mail); filter(f_err); destination(d_mailerr); };
+
+log { source(s_src); filter(f_news); filter(f_crit); destination(d_newscrit); };
+log { source(s_src); filter(f_news); filter(f_err); destination(d_newserr); };
+log { source(s_src); filter(f_news); filter(f_notice); destination(d_newsnotice); };
+#log { source(s_src); filter(f_cnews); destination(d_console_all); };
+#log { source(s_src); filter(f_cother); destination(d_console_all); };
+
+#log { source(s_src); filter(f_ppp); destination(d_ppp); };
+
+log { source(s_src); filter(f_debug); destination(d_debug); };
+log { source(s_src); filter(f_error); destination(d_error); };
+log { source(s_src); filter(f_messages); destination(d_messages); };
+
+log { source(s_src); filter(f_console); destination(d_console_all);
+ destination(d_xconsole); };
+log { source(s_src); filter(f_crit); destination(d_console); };
+
+# All messages send to a remote site
+#
+#log { source(s_src); destination(d_net); };
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.sysvinit
index 0c6f54355..fb183ee17 100644
--- a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.sysvinit
@@ -1,4 +1,4 @@
-@version: 3.8
+@version: 3.15
#
# Syslog-ng configuration file, compatible with default Debian syslogd
# installation. Originally written by anonymous (I can't find his name)
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch
index 6b30c20c1..39c3f59ce 100644
--- a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch
@@ -7,25 +7,40 @@ Subject: [PATCH] syslog-ng.service: the syslog-ng service can not start
Upstream-Status: pending
Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
+Updated-by: Andrej Valek <andrej.valek@siemens.com>
---
contrib/systemd/syslog-ng.service | 5 ++---
1 file changed, 2 insertion(+), 3 deletions(-)
-diff --git a/contrib/systemd/syslog-ng.service b/contrib/systemd/syslog-ng.service
-index fc16f8d..8e09deb 100644
---- a/contrib/systemd/syslog-ng.service
-+++ b/contrib/systemd/syslog-ng.service
-@@ -4,8 +4,8 @@ Description=System Logger Daemon
-
- [Service]
+diff --git a/contrib/systemd/syslog-ng@.service b/contrib/systemd/syslog-ng@.service
+index a28640e..93aec94 100644
+--- a/contrib/systemd/syslog-ng@.service
++++ b/contrib/systemd/syslog-ng@.service
+@@ -7,8 +7,8 @@ Conflicts=emergency.service emergency.target
Type=notify
--ExecStart=/usr/sbin/syslog-ng -F $SYSLOGNG_OPTS
+ EnvironmentFile=-/etc/default/syslog-ng@%i
+ EnvironmentFile=-/etc/sysconfig/syslog-ng@%i
+-ExecStart=/usr/sbin/syslog-ng -F $OTHER_OPTIONS --cfgfile $CONFIG_FILE --control $CONTROL_FILE --persist-file $PERSIST_FILE --pidfile $PID_FILE
-ExecReload=/bin/kill -HUP $MAINPID
-+ExecStart=@SBINDIR@/syslog-ng -F $SYSLOGNG_OPTS -p @LOCALSTATEDIR@/run/syslogd.pid
++ExecStart=@SBINDIR@/syslog-ng -F $OTHER_OPTIONS --cfgfile $CONFIG_FILE --control $CONTROL_FILE --persist-file $PERSIST_FILE --pidfile $PID_FILE
+ExecReload=@BASEBINDIR@/kill -HUP $MAINPID
- EnvironmentFile=-/etc/default/syslog-ng
- EnvironmentFile=-/etc/sysconfig/syslog-ng
StandardOutput=journal
+ StandardError=journal
+ Restart=on-failure
+diff --git a/contrib/systemd/syslog-ng@default b/contrib/systemd/syslog-ng@default
+index 02da288..3a8215d 100644
+--- a/contrib/systemd/syslog-ng@default
++++ b/contrib/systemd/syslog-ng@default
+@@ -1,5 +1,5 @@
+-CONFIG_FILE=/etc/syslog-ng.conf
+-PERSIST_FILE=/var/lib/syslog-ng/syslog-ng.persist
+-CONTROL_FILE=/var/lib/syslog-ng/syslog-ng.ctl
+-PID_FILE=/var/run/syslog-ng.pid
++CONFIG_FILE=/etc/syslog-ng/syslog-ng.conf
++PERSIST_FILE=@LOCALSTATEDIR@/lib/syslog-ng/syslog-ng.persist
++CONTROL_FILE=@LOCALSTATEDIR@/lib/syslog-ng/syslog-ng.ctl
++PID_FILE=@LOCALSTATEDIR@/run/syslog-ng.pid
+ OTHER_OPTIONS="--enable-core"
+
--
1.8.4.2
-
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc b/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc
index 771cdb196..b52deff5e 100644
--- a/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc
@@ -13,15 +13,18 @@ LICENSE = "GPLv2 & LGPLv2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=24c0c5cb2c83d9f2ab725481e4df5240"
# util-linux added to get libuuid
-DEPENDS = "libpcre flex eventlog glib-2.0 openssl util-linux"
+DEPENDS = "libpcre flex glib-2.0 openssl util-linux"
SRC_URI = "https://github.com/balabit/syslog-ng/releases/download/${BP}/${BP}.tar.gz \
- file://syslog-ng.conf \
+ file://syslog-ng.conf.systemd \
+ file://syslog-ng.conf.sysvinit \
file://initscript \
file://volatiles.03_syslog-ng \
file://configure.ac-add-option-enable-thread-tls-to-manage-.patch \
"
+UPSTREAM_CHECK_URI = "https://github.com/balabit/syslog-ng/releases"
+
inherit autotools gettext systemd pkgconfig update-rc.d
EXTRA_OECONF = " \
@@ -67,15 +70,8 @@ do_configure_prepend() {
cd $olddir
}
-do_install_prepend() {
- sed -i -e 's,@SBINDIR@,${sbindir},g' ${S}/contrib/systemd/*.service
- sed -i -e 's,@LOCALSTATEDIR@,${localstatedir},g' ${S}/contrib/systemd/*.service
- sed -i -e 's,@BASEBINDIR@,${base_bindir},g' ${S}/contrib/systemd/*.service
-}
-
do_install_append() {
install -d ${D}/${sysconfdir}/${BPN}
- install ${WORKDIR}/syslog-ng.conf ${D}${sysconfdir}/${BPN}/${BPN}.conf
install -d ${D}/${sysconfdir}/init.d
install -m 755 ${WORKDIR}/initscript ${D}/${sysconfdir}/init.d/syslog
install -d ${D}/${sysconfdir}/default/volatiles/
@@ -83,16 +79,43 @@ do_install_append() {
install -d ${D}/${localstatedir}/lib/${BPN}
# Remove /var/run as it is created on startup
rm -rf ${D}${localstatedir}/run
+
+ # support for systemd
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ install ${WORKDIR}/syslog-ng.conf.systemd ${D}${sysconfdir}/${BPN}/${BPN}.conf
+
+ install -d ${D}${systemd_unitdir}/system/
+ install -m 0644 ${S}/contrib/systemd/${BPN}@.service ${D}${systemd_unitdir}/system/${BPN}@.service
+ install -m 0644 ${S}/contrib/systemd/${BPN}@default ${D}${sysconfdir}/default/${BPN}@default
+
+ sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/${BPN}@.service ${D}${sysconfdir}/default/${BPN}@default
+ sed -i -e 's,@LOCALSTATEDIR@,${localstatedir},g' ${D}${systemd_unitdir}/system/${BPN}@.service ${D}${sysconfdir}/default/${BPN}@default
+ sed -i -e 's,@BASEBINDIR@,${base_bindir},g' ${D}${systemd_unitdir}/system/${BPN}@.service ${D}${sysconfdir}/default/${BPN}@default
+
+ install -d ${D}${systemd_unitdir}/system/multi-user.target.wants
+ ln -sf ../${BPN}@.service ${D}${systemd_unitdir}/system/multi-user.target.wants/${BPN}@default.service
+ else
+ install ${WORKDIR}/syslog-ng.conf.sysvinit ${D}${sysconfdir}/${BPN}/${BPN}.conf
+ fi
}
-FILES_${PN} += "${datadir}/include/scl/ ${datadir}/xsd ${datadir}/tools"
-RDEPENDS_${PN} += "gawk"
+FILES_${PN} += "${datadir}/include/scl/ ${datadir}/xsd ${datadir}/tools ${systemd_unitdir}/system/multi-user.target.wants/*"
+RDEPENDS_${PN} += "gawk ${@bb.utils.contains('PACKAGECONFIG','json','${PN}-jconf','',d)}"
+
+FILES_${PN}-jconf += " \
+${datadir}/${BPN}/include/scl/cim \
+${datadir}/${BPN}/include/scl/elasticsearch \
+${datadir}/${BPN}/include/scl/ewmm \
+${datadir}/${BPN}/include/scl/graylog2 \
+${datadir}/${BPN}/include/scl/loggly \
+${datadir}/${BPN}/include/scl/logmatic \
+"
# This overcomes the syslog-ng rdepends on syslog-ng-dev QA Error
-PACKAGES =+ "${PN}-libs ${PN}-libs-dev ${PN}-libs-dbg"
+PACKAGES =+ "${PN}-jconf ${PN}-libs ${PN}-libs-dev"
+RPROVIDES_${PN}-dbg += "${PN}-libs-dbg"
FILES_${PN}-libs = "${libdir}/${BPN}/*.so ${libdir}/libsyslog-ng-*.so*"
FILES_${PN}-libs-dev = "${libdir}/${BPN}/lib*.la"
-FILES_${PN}-libs-dbg = "${libdir}/${BPN}/.debug"
FILES_${PN}-staticdev += "${libdir}/${BPN}/libtest/*.a"
INSANE_SKIP_${PN}-libs = "dev-so"
RDEPENDS_${PN} += "${PN}-libs"
@@ -108,7 +131,7 @@ RCONFLICTS_${PN} = "busybox-syslog sysklogd rsyslog"
RPROVIDES_${PN} += "${PN}-systemd"
RREPLACES_${PN} += "${PN}-systemd"
RCONFLICTS_${PN} += "${PN}-systemd"
-SYSTEMD_SERVICE_${PN} = "${BPN}.service"
+SYSTEMD_SERVICE_${PN} = "${BPN}@.service"
INITSCRIPT_NAME = "syslog"
INITSCRIPT_PARAMS = "start 20 2 3 4 5 . stop 90 0 1 6 ."
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_3.16.1.bb b/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_3.16.1.bb
new file mode 100644
index 000000000..b5f42cf98
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_3.16.1.bb
@@ -0,0 +1,16 @@
+require syslog-ng.inc
+
+SRC_URI = "https://github.com/balabit/syslog-ng/releases/download/${BP}/${BP}.tar.gz \
+ file://syslog-ng.conf.systemd \
+ file://syslog-ng.conf.sysvinit \
+ file://initscript \
+ file://volatiles.03_syslog-ng \
+ file://configure.ac-add-option-enable-thread-tls-to-manage-.patch \
+ file://fix-config-libnet.patch \
+ file://fix-invalid-ownership.patch \
+ file://syslog-ng.service-the-syslog-ng-service.patch \
+ file://0001-syslog-ng-fix-segment-fault-during-service-start.patch \
+ "
+
+SRC_URI[md5sum] = "72d44ad02c2e9ba0748b3ecd3f15a7ff"
+SRC_URI[sha256sum] = "c7ee6f1d5e98d86f191964e580111bfa71081ecbb3275cea035bbba177b73a29"
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_3.8.1.bb b/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_3.8.1.bb
deleted file mode 100644
index 91a0e4699..000000000
--- a/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_3.8.1.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-require syslog-ng.inc
-
-SRC_URI += " \
- file://fix-config-libnet.patch \
- file://fix-invalid-ownership.patch \
- file://Fix-the-memory-leak-problem-when-HAVE_ENVIRON-defined.patch \
- file://syslog-ng.service-the-syslog-ng-service.patch \
-"
-
-SRC_URI[md5sum] = "acf14563cf5ce435db8db35486ce66af"
-SRC_URI[sha256sum] = "84b081f6e5f98cbc52052e342bcfdc5de5fe0ebe9f5ec32fe9eaec5759224cc5"
diff --git a/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/files/0001-do-not-strip-pdata_tools-at-do_install.patch b/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/files/0001-do-not-strip-pdata_tools-at-do_install.patch
index b4cdda132..547949dd6 100644
--- a/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/files/0001-do-not-strip-pdata_tools-at-do_install.patch
+++ b/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/files/0001-do-not-strip-pdata_tools-at-do_install.patch
@@ -1,6 +1,6 @@
-From e8be402e20cbdfbd8192a171ac9904d9362103bf Mon Sep 17 00:00:00 2001
+From de869ad2cb19d81257a159770ebe27593a71593c Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Wed, 31 Aug 2016 01:35:40 -0400
+Date: Tue, 31 Jul 2018 11:29:51 +0800
Subject: [PATCH] do not strip pdata_tools at do_install
It caused QA Issue:
@@ -17,11 +17,11 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
1 file changed, 1 deletion(-)
diff --git a/Makefile.in b/Makefile.in
-index 4264191..ac22042 100644
+index 02b75dd..df590b4 100644
--- a/Makefile.in
+++ b/Makefile.in
-@@ -189,7 +189,6 @@ distclean: clean
- install: bin/pdata_tools
+@@ -267,7 +267,6 @@ MANPAGES:=$(patsubst %,man8/%.8,$(TOOLS))
+ install: bin/pdata_tools $(MANPAGES)
$(INSTALL_DIR) $(BINDIR)
$(INSTALL_PROGRAM) bin/pdata_tools $(BINDIR)
- $(STRIP) $(BINDIR)/pdata_tools
@@ -29,5 +29,5 @@ index 4264191..ac22042 100644
ln -s -f pdata_tools $(BINDIR)/cache_dump
ln -s -f pdata_tools $(BINDIR)/cache_metadata_size
--
-2.8.1
+2.7.4
diff --git a/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/files/0001-fix-compile-failed-with-libc-musl.patch b/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/files/0001-fix-compile-failed-with-libc-musl.patch
new file mode 100644
index 000000000..28b44da56
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/files/0001-fix-compile-failed-with-libc-musl.patch
@@ -0,0 +1,42 @@
+From fcbcf9c494cca166106ae4cb03c1dd135ee4f25c Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Wed, 1 Aug 2018 09:34:00 +0800
+Subject: [PATCH] fix compile failed with libc musl
+
+There is a failure while compiling with libc musl:
+[snip]
+|./block-cache/io_engine.h:18:17: error: expected
+unqualified-id before numeric constant
+| unsigned const PAGE_SIZE = 4096;
+[snip]
+
+The musl defeines macro PAGE_SIZE, undef it conditionally
+could fix the issue.
+
+http://musl.openwall.narkive.com/tO8vrHdP/why-musl-define-page-size
+
+Upstream-Status: Submitted [git://github.com/jthornber/thin-provisioning-tools]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ block-cache/io_engine.h | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/block-cache/io_engine.h b/block-cache/io_engine.h
+index 1704251..e36b932 100644
+--- a/block-cache/io_engine.h
++++ b/block-cache/io_engine.h
+@@ -12,6 +12,10 @@
+
+ //----------------------------------------------------------------
+
++// Musl defines
++#ifdef PAGE_SIZE
++#undef PAGE_SIZE
++#endif
+ namespace bcache {
+ using sector_t = uint64_t;
+
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.6.3.bb b/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.7.6.bb
index c9d6690d7..20cb17aa2 100755..100644
--- a/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.6.3.bb
+++ b/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.7.6.bb
@@ -9,9 +9,12 @@ S = "${WORKDIR}/git"
SRC_URI = "git://github.com/jthornber/thin-provisioning-tools \
file://0001-do-not-strip-pdata_tools-at-do_install.patch \
+ file://0001-fix-compile-failed-with-libc-musl.patch \
"
-SRCREV = "49bfc12e9c7956c1ac134b24afbe1a6a602ce7d5"
+SRCREV = "6f936992b8e6208a7838fcf1ec87c5bd3a694a77"
+
+UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
DEPENDS += "expat libaio boost"
diff --git a/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-include-sys-sysmacros.h.patch b/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-include-sys-sysmacros.h.patch
new file mode 100644
index 000000000..f140793c5
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-include-sys-sysmacros.h.patch
@@ -0,0 +1,77 @@
+From 64f051963d6cdeebd19f9e7f0a7e584a1f7acc60 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 11 Aug 2018 19:12:57 -0700
+Subject: [PATCH] include sys/sysmacros.h
+
+fixes build with glibc 2.28+
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/daemon.c | 1 +
+ src/device.c | 1 +
+ src/mount-monitor.c | 1 +
+ tools/udisks.c | 1 +
+ tools/umount-udisks.c | 1 +
+ 5 files changed, 5 insertions(+)
+
+diff --git a/src/daemon.c b/src/daemon.c
+index 14e952f..2c61cfb 100644
+--- a/src/daemon.c
++++ b/src/daemon.c
+@@ -39,6 +39,7 @@
+ #include <errno.h>
+ #include <string.h>
+ #include <sys/types.h>
++#include <sys/sysmacros.h>
+ #include <sys/stat.h>
+ #include <sys/time.h>
+ #include <sys/resource.h>
+diff --git a/src/device.c b/src/device.c
+index d73f9d6..5911d78 100644
+--- a/src/device.c
++++ b/src/device.c
+@@ -29,6 +29,7 @@
+ #include <errno.h>
+ #include <string.h>
+ #include <sys/types.h>
++#include <sys/sysmacros.h>
+ #include <sys/wait.h>
+ #include <sys/stat.h>
+ #include <sys/time.h>
+diff --git a/src/mount-monitor.c b/src/mount-monitor.c
+index 573a69c..ccf3365 100644
+--- a/src/mount-monitor.c
++++ b/src/mount-monitor.c
+@@ -28,6 +28,7 @@
+ #include <errno.h>
+ #include <string.h>
+ #include <sys/types.h>
++#include <sys/sysmacros.h>
+ #include <sys/stat.h>
+ #include <mntent.h>
+
+diff --git a/tools/udisks.c b/tools/udisks.c
+index d30159b..f24a30a 100644
+--- a/tools/udisks.c
++++ b/tools/udisks.c
+@@ -29,6 +29,7 @@
+ #include <errno.h>
+ #include <string.h>
+ #include <sys/types.h>
++#include <sys/sysmacros.h>
+ #include <sys/stat.h>
+ #include <sys/wait.h>
+ #include <fcntl.h>
+diff --git a/tools/umount-udisks.c b/tools/umount-udisks.c
+index 2813fe0..5cf6b4d 100644
+--- a/tools/umount-udisks.c
++++ b/tools/umount-udisks.c
+@@ -29,6 +29,7 @@
+ #include <errno.h>
+ #include <string.h>
+ #include <sys/types.h>
++#include <sys/sysmacros.h>
+ #include <sys/stat.h>
+ #include <fcntl.h>
+ #include <pwd.h>
diff --git a/meta-openembedded/meta-oe/recipes-support/udisks/udisks2/0001-data-fix-out-of-tree-build.patch b/meta-openembedded/meta-oe/recipes-support/udisks/udisks2/0001-data-fix-out-of-tree-build.patch
deleted file mode 100644
index 1cbd87751..000000000
--- a/meta-openembedded/meta-oe/recipes-support/udisks/udisks2/0001-data-fix-out-of-tree-build.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 7fdd4acdf6daf95c5cc74e968f4710513c8ddaea Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Fri, 23 Mar 2018 18:33:52 +0100
-Subject: [PATCH] data: fix out of tree build
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-| sed: can't read udisks2.service.in: No such file or directory
-
-Upstream-Status: Submitted [1]
-
-[1] https://github.com/storaged-project/udisks/pull/510
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
----
- data/Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/data/Makefile.am b/data/Makefile.am
-index ddf9e3d6..b38928c8 100644
---- a/data/Makefile.am
-+++ b/data/Makefile.am
-@@ -22,7 +22,7 @@ systemdservicedir = $(systemdsystemunitdir)
- systemdservice_DATA = $(systemdservice_in_files:.service.in=.service)
-
- $(systemdservice_DATA): udisks2.service.in Makefile
-- @sed -e "s|\@udisksdprivdir\@|$(libexecdir)/udisks2|" udisks2.service.in > udisks2.service
-+ @sed -e "s|\@udisksdprivdir\@|$(libexecdir)/udisks2|" $(srcdir)/udisks2.service.in > udisks2.service
- endif
-
- udevrulesdir = $(udevdir)/rules.d
---
-2.14.3
-
diff --git a/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.7.6.bb b/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.7.8.bb
index 4d22afd0d..64b338f11 100644
--- a/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.7.6.bb
+++ b/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.7.8.bb
@@ -19,11 +19,10 @@ DEPENDS += "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
RDEPENDS_${PN} = "acl"
SRC_URI = " \
- git://github.com/storaged-project/udisks.git \
- file://0001-data-fix-out-of-tree-build.patch \
+ git://github.com/storaged-project/udisks.git;branch=2.7.x-branch \
file://non-gnu-libc.patch \
"
-SRCREV = "b6471f2e99f6aa1133af0de658f1fa05c748932c"
+SRCREV = "47bc0141cb84624ba1e2242d596a89a30df1f5ea"
S = "${WORKDIR}/git"
CVE_PRODUCT = "udisks"
diff --git a/meta-openembedded/meta-oe/recipes-support/udisks/udisks_1.0.5.bb b/meta-openembedded/meta-oe/recipes-support/udisks/udisks_1.0.5.bb
index e33266001..7cd999221 100644
--- a/meta-openembedded/meta-oe/recipes-support/udisks/udisks_1.0.5.bb
+++ b/meta-openembedded/meta-oe/recipes-support/udisks/udisks_1.0.5.bb
@@ -11,13 +11,13 @@ DEPENDS += "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
dbus-glib-native \
"
-SRC_URI = " \
- http://hal.freedesktop.org/releases/${BPN}-${PV}.tar.gz;name=${BPN} \
- file://optional-depends.patch \
- file://0001-fix-build-with-newer-glibc-versions.patch \
- file://udisks-1.0.5-fix-service-file.patch \
- file://0001-Make-udev-rules-directory-configurable.patch \
-"
+SRC_URI = "http://hal.freedesktop.org/releases/${BPN}-${PV}.tar.gz;name=${BPN} \
+ file://optional-depends.patch \
+ file://0001-fix-build-with-newer-glibc-versions.patch \
+ file://udisks-1.0.5-fix-service-file.patch \
+ file://0001-Make-udev-rules-directory-configurable.patch \
+ file://0001-include-sys-sysmacros.h.patch \
+ "
SRC_URI[udisks.md5sum] = "70d48dcfe523a74cd7c7fbbc2847fcdd"
SRC_URI[udisks.sha256sum] = "f2ec82eb0ea7e01dc299b5b29b3c18cdf861236ec43dcff66b3552b4b31c6f71"
diff --git a/meta-openembedded/meta-oe/recipes-support/uhubctl/uhubctl_2.0.0.bb b/meta-openembedded/meta-oe/recipes-support/uhubctl/uhubctl_2.0.0.bb
new file mode 100644
index 000000000..6306ddb55
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/uhubctl/uhubctl_2.0.0.bb
@@ -0,0 +1,21 @@
+SUMMARY = "USB hub per-port power control"
+HOMEPAGE = "https://github.com/mvp/uhubctl"
+BUGTRACKER = "https://github.com/mvp/uhubctl/issues"
+DEPENDS = "libusb1"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "https://github.com/mvp/${PN}/archive/v${PV}.tar.gz"
+SRC_URI[md5sum] = "5c711911d766d76813333c3812277574"
+SRC_URI[sha256sum] = "4c31278b2c03e5be5a696c3088bc86cf2557a70e00f697799c163aba18e3c40e"
+
+# uhubctl gets its program version from "git describe". As we use the source
+# archive do reduce download size replace the call with our hardcoded version.
+do_configure_append() {
+ sed -i "s/^\(GIT_VERSION :=\).*$/\1 ${PV}/g" ${S}/Makefile
+}
+
+do_install () {
+ oe_runmake install DESTDIR=${D}
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/unixodbc/unixodbc_2.3.6.bb b/meta-openembedded/meta-oe/recipes-support/unixodbc/unixodbc_2.3.6.bb
index 62d9db843..2674d3548 100644
--- a/meta-openembedded/meta-oe/recipes-support/unixodbc/unixodbc_2.3.6.bb
+++ b/meta-openembedded/meta-oe/recipes-support/unixodbc/unixodbc_2.3.6.bb
@@ -14,6 +14,8 @@ SRC_URI = "ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-${PV}.tar.gz \
SRC_URI[md5sum] = "a8629fd2953b04b4639d0a9d8a5cf9d1"
SRC_URI[sha256sum] = "88b637f647c052ecc3861a3baa275c3b503b193b6a49ff8c28b2568656d14d69"
+UPSTREAM_CHECK_REGEX = "unixODBC-(?P<pver>\d+(\.\d+)+)\.tar"
+
inherit autotools-brokensep
S = "${WORKDIR}/unixODBC-${PV}"
diff --git a/meta-openembedded/meta-oe/recipes-support/upower/upower/0001-linux-lower-severity-of-unhandled-action-messages.patch b/meta-openembedded/meta-oe/recipes-support/upower/upower/0001-linux-lower-severity-of-unhandled-action-messages.patch
new file mode 100644
index 000000000..de89dc01c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/upower/upower/0001-linux-lower-severity-of-unhandled-action-messages.patch
@@ -0,0 +1,31 @@
+From f64b6ce8054b47e5bdcc8c4c7965534b388e6151 Mon Sep 17 00:00:00 2001
+From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Date: Fri, 6 Apr 2018 11:26:54 -0700
+Subject: [PATCH] linux: lower severity of "unhandled action" messages
+
+Newer kernels emit bind/unbind uevents that are not of interest to
+powerd. To avoid littering logs with scary messages, let's lower their
+severity to "debug".
+
+https://bugs.freedesktop.org/show_bug.cgi?id=106019
+
+Upstream-Status: Backport
+---
+ src/linux/up-backend.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/linux/up-backend.c b/src/linux/up-backend.c
+index e668dc8..b8021e7 100644
+--- a/src/linux/up-backend.c
++++ b/src/linux/up-backend.c
+@@ -273,7 +273,7 @@ up_backend_uevent_signal_handler_cb (GUdevClient *client, const gchar *action,
+ g_debug ("SYSFS change %s", g_udev_device_get_sysfs_path (device));
+ up_backend_device_changed (backend, device);
+ } else {
+- g_warning ("unhandled action '%s' on %s", action, g_udev_device_get_sysfs_path (device));
++ g_debug ("unhandled action '%s' on %s", action, g_udev_device_get_sysfs_path (device));
+ }
+ }
+
+--
+2.17.0.484.g0c8726318c-goog
diff --git a/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.7.bb b/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.7.bb
index 973fbe771..2cf3163bb 100644
--- a/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.7.bb
+++ b/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.7.bb
@@ -4,7 +4,10 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=0de8fbf1d97a140d1d93b9f14dcfbf08"
DEPENDS = "intltool-native libusb1 libgudev glib-2.0 dbus-glib polkit"
-SRC_URI = "http://upower.freedesktop.org/releases/${BPN}-${PV}.tar.xz"
+SRC_URI = " \
+ http://upower.freedesktop.org/releases/${BPN}-${PV}.tar.xz \
+ file://0001-linux-lower-severity-of-unhandled-action-messages.patch \
+"
SRC_URI[md5sum] = "236bb439d9ff1151450b3d8582399532"
SRC_URI[sha256sum] = "24bcc2f6ab25a2533bac70b587bcb019e591293076920f5b5e04bdedc140a401"
diff --git a/meta-openembedded/meta-oe/recipes-support/uriparser/uriparser_0.8.4.bb b/meta-openembedded/meta-oe/recipes-support/uriparser/uriparser_0.8.4.bb
index b4be853dd..bfcdf8373 100644
--- a/meta-openembedded/meta-oe/recipes-support/uriparser/uriparser_0.8.4.bb
+++ b/meta-openembedded/meta-oe/recipes-support/uriparser/uriparser_0.8.4.bb
@@ -12,3 +12,5 @@ EXTRA_OECONF = "--disable-test --disable-doc"
SRC_URI[md5sum] = "9aabdc3611546f553f4af372167de6d6"
SRC_URI[sha256sum] = "ce7ccda4136974889231e8426a785e7578e66a6283009cfd13f1b24a5e657b23"
+
+BBCLASSEXTEND += "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/kernel-4.18.patch b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/kernel-4.18.patch
new file mode 100644
index 000000000..93eaa3d6c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/kernel-4.18.patch
@@ -0,0 +1,33 @@
+Description: Fix build failure with new kernel 4.18
+Author: Gianfranco Costamagna <locutusofborg@debian.org>
+
+Upstream-Status:Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Index: vbox_module/vboxsf/utils.c
+===================================================================
+--- vbox_module.orig/vboxsf/utils.c
++++ vbox_module/vboxsf/utils.c
+@@ -50,7 +50,11 @@ static void sf_timespec_from_ftime(RTTIM
+ RTTimeSpecSetNano(ts, t);
+ }
+ #else /* >= 2.6.0 */
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 18, 0)
+ static void sf_ftime_from_timespec(struct timespec *tv, RTTIMESPEC *ts)
++#else
++static void sf_ftime_from_timespec(struct timespec64 *tv, RTTIMESPEC *ts)
++#endif
+ {
+ int64_t t = RTTimeSpecGetNano(ts);
+ int64_t nsec;
+@@ -60,7 +64,11 @@ static void sf_ftime_from_timespec(struc
+ tv->tv_nsec = nsec;
+ }
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 18, 0)
+ static void sf_timespec_from_ftime(RTTIMESPEC *ts, struct timespec *tv)
++#else
++static void sf_timespec_from_ftime(RTTIMESPEC *ts, struct timespec64 *tv)
++#endif
+ {
+ int64_t t = (int64_t)tv->tv_nsec + (int64_t)tv->tv_sec * 1000000000;
+ RTTimeSpecSetNano(ts, t);
diff --git a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.2.8.bb b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.2.18.bb
index e00db4d7e..2a4cc387f 100644
--- a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.2.8.bb
+++ b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.2.18.bb
@@ -13,10 +13,10 @@ VBOX_NAME = "VirtualBox-${PV}"
SRC_URI = "http://download.virtualbox.org/virtualbox/${PV}/${VBOX_NAME}.tar.bz2 \
file://Makefile.utils \
+ file://kernel-4.18.patch \
"
-
-SRC_URI[md5sum] = "e731ea9c5c31096ec4c2a3bfba26665c"
-SRC_URI[sha256sum] = "ee2759d47b0b4ac81b8b671c9485c87fb2db12c097b3e7e69b94c1291a8084e8"
+SRC_URI[md5sum] = "d8e291525b84569356773eef507c49ce"
+SRC_URI[sha256sum] = "ed0a7efd56c7f39fae79c7ec3321473da412ef0d7914457b66f42679d513efcf"
S = "${WORKDIR}/vbox_module"
diff --git a/meta-openembedded/meta-oe/recipes-support/vim/files/CVE-2017-17087.patch b/meta-openembedded/meta-oe/recipes-support/vim/files/CVE-2017-17087.patch
deleted file mode 100644
index 937b9ba31..000000000
--- a/meta-openembedded/meta-oe/recipes-support/vim/files/CVE-2017-17087.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 9c11f80339372b7aa2f43153d574f2b5abb79708 Mon Sep 17 00:00:00 2001
-From: Li Zhou <li.zhou@windriver.com>
-Date: Sun, 17 Dec 2017 23:09:35 -0800
-Subject: [PATCH] vim: patch 8.0.1263: others can read the swap file if a user
- is careless
-
-Problem: Others can read the swap file if a user is careless with his
- primary group.
-Solution: If the group permission allows for reading but the world
- permissions doesn't, make sure the group is right.
-
-Upstream-Status: Backport
-CVE: CVE-2017-17087
-Signed-off-by: Li Zhou <li.zhou@windriver.com>
----
- src/fileio.c | 24 +++++++++++++++++++++++-
- src/version.c | 2 ++
- 2 files changed, 25 insertions(+), 1 deletion(-)
-
-diff --git a/src/fileio.c b/src/fileio.c
-index f54fb8465..2c7740af9 100644
---- a/src/fileio.c
-+++ b/src/fileio.c
-@@ -716,7 +716,29 @@ readfile(
- /* Set swap file protection bits after creating it. */
- if (swap_mode > 0 && curbuf->b_ml.ml_mfp != NULL
- && curbuf->b_ml.ml_mfp->mf_fname != NULL)
-- (void)mch_setperm(curbuf->b_ml.ml_mfp->mf_fname, (long)swap_mode);
-+ {
-+ char_u *swap_fname = curbuf->b_ml.ml_mfp->mf_fname;
-+
-+ /*
-+ * If the group-read bit is set but not the world-read bit, then
-+ * the group must be equal to the group of the original file. If
-+ * we can't make that happen then reset the group-read bit. This
-+ * avoids making the swap file readable to more users when the
-+ * primary group of the user is too permissive.
-+ */
-+ if ((swap_mode & 044) == 040)
-+ {
-+ stat_T swap_st;
-+
-+ if (mch_stat((char *)swap_fname, &swap_st) >= 0
-+ && st.st_gid != swap_st.st_gid
-+ && fchown(curbuf->b_ml.ml_mfp->mf_fd, -1, st.st_gid)
-+ == -1)
-+ swap_mode &= 0600;
-+ }
-+
-+ (void)mch_setperm(swap_fname, (long)swap_mode);
-+ }
- #endif
- }
-
-diff --git a/src/version.c b/src/version.c
-index a5cb078f0..5c0df475f 100644
---- a/src/version.c
-+++ b/src/version.c
-@@ -770,6 +770,8 @@ static char *(features[]) =
- static int included_patches[] =
- { /* Add new patch number below this line */
- /**/
-+ 1263,
-+/**/
- 983,
- /**/
- 982,
---
-2.11.0
-
diff --git a/meta-openembedded/meta-oe/recipes-support/vim/files/disable_acl_header_check.patch b/meta-openembedded/meta-oe/recipes-support/vim/files/disable_acl_header_check.patch
index 65e5f58c6..4720003c2 100644
--- a/meta-openembedded/meta-oe/recipes-support/vim/files/disable_acl_header_check.patch
+++ b/meta-openembedded/meta-oe/recipes-support/vim/files/disable_acl_header_check.patch
@@ -1,14 +1,23 @@
-Upstream-Status: pending
+From 5ed25c076a1fb1889a3c50dddf29f21850b59a13 Mon Sep 17 00:00:00 2001
+From: Wenzong Fan <wenzong.fan@windriver.com>
+Date: Tue, 26 Jun 2018 17:29:09 +0800
+Subject: [PATCH] disable acl header check
Don't check 'sys/acl.h' if acl support disabled for vim/vim-tiny.
+Upstream-Status: pending
+
Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
-================================================
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ src/configure.ac | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
diff --git a/src/configure.ac b/src/configure.ac
-index fb965e5..d734064 100644
+index 107c170..0ee86ad 100644
--- a/src/configure.ac
+++ b/src/configure.ac
-@@ -2511,7 +2511,7 @@ AC_CHECK_HEADERS(stdarg.h stdint.h stdlib.h string.h \
+@@ -3220,7 +3220,7 @@ AC_CHECK_HEADERS(stdint.h stdlib.h string.h \
sys/systeminfo.h locale.h sys/stream.h termios.h \
libc.h sys/statfs.h poll.h sys/poll.h pwd.h \
utime.h sys/param.h libintl.h libgen.h \
@@ -17,11 +26,14 @@ index fb965e5..d734064 100644
sys/access.h sys/sysinfo.h wchar.h wctype.h)
dnl sys/ptem.h depends on sys/stream.h on Solaris
-@@ -3112,6 +3112,7 @@ AC_ARG_ENABLE(acl,
+@@ -3848,6 +3848,7 @@ AC_ARG_ENABLE(acl,
, [enable_acl="yes"])
if test "$enable_acl" = "yes"; then
- AC_MSG_RESULT(no)
-+AC_CHECK_HEADERS(sys/acl.h)
- AC_CHECK_LIB(posix1e, acl_get_file, [LIBS="$LIBS -lposix1e"],
+ AC_MSG_RESULT(no)
++ AC_CHECK_HEADERS(sys/acl.h)
+ AC_CHECK_LIB(posix1e, acl_get_file, [LIBS="$LIBS -lposix1e"],
AC_CHECK_LIB(acl, acl_get_file, [LIBS="$LIBS -lacl"
AC_CHECK_LIB(attr, fgetxattr, LIBS="$LIBS -lattr",,)],,),)
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/vim/files/vim-add-knob-whether-elf.h-are-checked.patch b/meta-openembedded/meta-oe/recipes-support/vim/files/vim-add-knob-whether-elf.h-are-checked.patch
index 6c620f9f2..37914d4cd 100644
--- a/meta-openembedded/meta-oe/recipes-support/vim/files/vim-add-knob-whether-elf.h-are-checked.patch
+++ b/meta-openembedded/meta-oe/recipes-support/vim/files/vim-add-knob-whether-elf.h-are-checked.patch
@@ -1,20 +1,24 @@
-vim: add knob whether elf.h are checked
+From 38de4bccdb8a861ffdd447f12fdab19d6d852c02 Mon Sep 17 00:00:00 2001
+From: Chong Lu <Chong.Lu@windriver.com>
+Date: Tue, 26 Jun 2018 17:34:15 +0800
+Subject: [PATCH] vim: add knob whether elf.h are checked
Previously, it still was checked when there was no elf library in sysroots directory.
Add knob to decide whether elf.h are checked or not.
-Upstream-status: Pending
+Upstream-Status: Pending
Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
- src/configure.ac | 7 +++++++
+ src/configure.ac | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/configure.ac b/src/configure.ac
-index d734064..f504fa6 100644
+index 0ee86ad..64736f0 100644
--- a/src/configure.ac
+++ b/src/configure.ac
-@@ -2483,11 +2483,18 @@ AC_TRY_COMPILE([#include <stdio.h>], [int x __attribute__((unused));],
+@@ -3192,11 +3192,18 @@ AC_TRY_COMPILE([#include <stdio.h>], [int x __attribute__((unused));],
AC_MSG_RESULT(no))
dnl Checks for header files.
@@ -34,5 +38,5 @@ index d734064..f504fa6 100644
AC_HEADER_DIRENT
--
-1.7.9.5
+2.7.4
diff --git a/meta-openembedded/meta-oe/recipes-support/vim/vim-tiny_8.0.0983.bb b/meta-openembedded/meta-oe/recipes-support/vim/vim-tiny_8.1.0347.bb
index bb8f2b7ea..8b1fb7b11 100644
--- a/meta-openembedded/meta-oe/recipes-support/vim/vim-tiny_8.0.0983.bb
+++ b/meta-openembedded/meta-oe/recipes-support/vim/vim-tiny_8.1.0347.bb
@@ -2,11 +2,13 @@ require vim_${PV}.bb
SUMMARY += " (with tiny features)"
+PROVIDES_remove = "xxd"
+ALTERNATIVE_${PN}_remove = "xxd"
+
PACKAGECONFIG += "tiny"
do_install() {
- install -d ${D}/${bindir}
- install -m 0755 ${S}/vim ${D}/${bindir}/vim.tiny
+ install -D -m 0755 ${S}/vim ${D}/${bindir}/vim.tiny
}
ALTERNATIVE_PRIORITY = "90"
diff --git a/meta-openembedded/meta-oe/recipes-support/vim/vim_8.0.0983.bb b/meta-openembedded/meta-oe/recipes-support/vim/vim_8.1.0347.bb
index 44c868c74..46d229e03 100644
--- a/meta-openembedded/meta-oe/recipes-support/vim/vim_8.0.0983.bb
+++ b/meta-openembedded/meta-oe/recipes-support/vim/vim_8.1.0347.bb
@@ -1,17 +1,18 @@
SUMMARY = "Vi IMproved - enhanced vi editor"
SECTION = "console/utils"
+
+PROVIDES = "xxd"
DEPENDS = "ncurses gettext-native"
# vimdiff doesn't like busybox diff
RSUGGESTS_${PN} = "diffutils"
LICENSE = "vim"
-LIC_FILES_CHKSUM = "file://../runtime/doc/uganda.txt;md5=eea32ac1424bba14096736a494ae9045"
+LIC_FILES_CHKSUM = "file://../runtime/doc/uganda.txt;endline=287;md5=f1f82b42360005c70b8c19b0ef493f72"
SRC_URI = "git://github.com/vim/vim.git \
file://disable_acl_header_check.patch;patchdir=.. \
file://vim-add-knob-whether-elf.h-are-checked.patch;patchdir=.. \
- file://CVE-2017-17087.patch;patchdir=.. \
"
-SRCREV = "3f9a1ff141412e9e85f7dff47d02946cb9be9228"
+SRCREV = "f1c118be93184e8e57e3e80b1b3383f464ed649e"
S = "${WORKDIR}/git/src"
@@ -54,7 +55,7 @@ EXTRA_OECONF = " \
vim_cv_memmove_handles_overlap=yes \
vim_cv_stat_ignores_slash=no \
vim_cv_terminfo=yes \
- vim_cv_tgent=non-zero \
+ vim_cv_tgetent=non-zero \
vim_cv_toupper_broken=no \
vim_cv_tty_group=world \
STRIP=/bin/true \
@@ -105,10 +106,12 @@ RDEPENDS_${BPN} = "ncurses-terminfo-base"
# Recommend that runtime data is installed along with vim
RRECOMMENDS_${BPN} = "${PN}-syntax ${PN}-help ${PN}-tutor ${PN}-vimrc ${PN}-common"
-ALTERNATIVE_${PN} = "vi vim"
+ALTERNATIVE_${PN} = "vi vim xxd"
+ALTERNATIVE_PRIORITY = "100"
ALTERNATIVE_TARGET = "${bindir}/${BPN}.${BPN}"
ALTERNATIVE_LINK_NAME[vi] = "${base_bindir}/vi"
ALTERNATIVE_LINK_NAME[vim] = "${bindir}/vim"
-ALTERNATIVE_PRIORITY = "100"
+ALTERNATIVE_TARGET[xxd] = "${bindir}/xxd"
+ALTERNATIVE_LINK_NAME[xxd] = "${bindir}/xxd"
BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/0001-Fix-issue-599.patch b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-Fix-issue-599.patch
index 2a9ea74cd..2a9ea74cd 100644
--- a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/0001-Fix-issue-599.patch
+++ b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-Fix-issue-599.patch
diff --git a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch
index 530c960ce..530c960ce 100644
--- a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch
+++ b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch
diff --git a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/9ddb300d874a30db35e3ad58f188944bef0bf31b.patch b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/9ddb300d874a30db35e3ad58f188944bef0bf31b.patch
index 94bfeb2fd..94bfeb2fd 100644
--- a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/9ddb300d874a30db35e3ad58f188944bef0bf31b.patch
+++ b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/9ddb300d874a30db35e3ad58f188944bef0bf31b.patch
diff --git a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/disable-tests.patch b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/disable-tests.patch
index 342981d4d..342981d4d 100644
--- a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/disable-tests.patch
+++ b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/disable-tests.patch
diff --git a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp_0.7.0.bb b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp_0.8.1.bb
index 65fc974b6..75a5f886a 100644
--- a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp_0.7.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp_0.8.1.bb
@@ -7,14 +7,8 @@ DEPENDS = "openssl boost zlib"
SRC_URI = "git://github.com/zaphoyd/websocketpp.git;protocol=https;branch=master"
-# tag 0.7.0
-SRCREV= "378437aecdcb1dfe62096ffd5d944bf1f640ccc3"
-
-SRC_URI += "file://0001-Fix-issue-599.patch \
- file://9ddb300d874a30db35e3ad58f188944bef0bf31b.patch \
- file://4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch \
- file://disable-tests.patch \
- "
+# tag 0.8.1
+SRCREV= "c6d7e295bf5a0ab9b5f896720cc1a0e0fdc397a7"
S = "${WORKDIR}/git"
OpenPOWER on IntegriCloud