summaryrefslogtreecommitdiffstats
path: root/import-layers/meta-openembedded/meta-oe/recipes-support
diff options
context:
space:
mode:
authorBrad Bishop <bradleyb@fuzziesquirrel.com>2018-02-25 22:55:05 -0500
committerBrad Bishop <bradleyb@fuzziesquirrel.com>2018-03-15 14:22:49 +0000
commitd7bf8c17eca8f8c89898a7794462c773c449e983 (patch)
treed18618fca85ca5f0c077032cc7b009344b60f663 /import-layers/meta-openembedded/meta-oe/recipes-support
parente2b5abdc9f28cdf8578e5b9be803c8e697443c20 (diff)
downloadtalos-openbmc-d7bf8c17eca8f8c89898a7794462c773c449e983.tar.gz
talos-openbmc-d7bf8c17eca8f8c89898a7794462c773c449e983.zip
Yocto 2.4
Move OpenBMC to Yocto 2.4(rocko) Tested: Built and verified Witherspoon and Palmetto images Change-Id: I12057b18610d6fb0e6903c60213690301e9b0c67 Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Diffstat (limited to 'import-layers/meta-openembedded/meta-oe/recipes-support')
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/apcupsd/apcupsd_3.14.10.bb42
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc/0001-configure.ac-add-check-for-NO_GETCONTEXT-definition.patch29
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc/musl_header_fix.patch27
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc_7.6.0.bb42
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/ceres-solver/ceres-solver_1.13.bb20
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools_0.76.bb1
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/debsums/debsums_2.2.2.bb54
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util-native_0.9.bb7
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util_0.9.bb1
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/dos2unix/dos2unix_7.3.4.bb34
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs-23.4/nostdlib-unwind.patch16
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs-23.4/use-qemu.patch104
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs.inc147
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs_23.4.bb12
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak-data_1.48.04.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak-data_1.37.bb)3
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak.inc7
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak_1.48.04.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak_1.37.bb)3
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/espeak/files/fix-gcc6-errors.patch19
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/espeak/files/gcc-narrowing-warning-fix.patch56
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/eventlog/eventlog_0.2.13.bb1
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/farsight/farsight2_0.0.22.bb34
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes.bb1
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset_2.1.bb1
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/fftw/benchfft_3.1.bb21
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/flite/flite-alsa-1.3/flite-alsa-1.3-configure-with-audio.patch12
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/flite/flite-alsa_1.3.bb21
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/flite/flite.inc33
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/fltk/fltk-native.bb5
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/fltk/fltk.bb2
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/gd/files/fix-gcc-unused-functions.patch43
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/.gitignore-the-new-test-case.patch24
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2016-10166.patch60
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2016-10167.patch48
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2016-10168.patch38
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2016-6906-1.patch167
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2016-6906-2.patch135
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/Fix-290-TGA-RLE-decoding-is-broken.patch359
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.4.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.3.bb)27
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_2017-08-20.18.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_git.bb)5
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-Fix-build-failure-for-ppc.patch28
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-disbale-heap-checkers-and-debug-allocator-on-musl.patch25
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-fix-build-with-musl-libc.patch61
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-include-fcntl.h-for-loff_t-definition.patch28
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/disable_libunwind_aarch64.patch23
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/sgidef.patch17
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.5.bb23
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.6.1.bb27
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/gpm/gpm/0001-Use-sigemptyset-API-instead-of-__sigemptyset.patch34
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/gpm/gpm_git.bb4
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap/0001-Fix-out-of-tree-builds.patch178
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap/0001-stdgsoap2-Fix-build-with-musl.patch63
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.51.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.12.bb)16
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/0001-backtrace-Replace-struct-ucontext-with-ucontext_t.patch37
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp_0.3-beta15.bb1
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel_1.4.bb19
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.7.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.2.bb)28
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools/inotify-nosys-fix-system-call-number.patch31
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools_git.bb1
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/ipmiutil/ipmiutil/fix_systemd_path.patch241
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/ipmiutil/ipmiutil_3.0.5.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-support/ipmiutil/ipmiutil_2.9.6.bb)26
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/libbytesize/files/0001-remove-python2-support.patch30
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_0.10.bb34
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/libcyusbserial/libcyusbserial_git.bb18
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/libdbi/libdbi-drivers.inc51
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/libdbi/libdbi-drivers_0.8.3-1.bb8
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan-0.57/libetpan-autoreconf.patch12
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan-0.57/libetpan-ldflags.patch11
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan-0.57/sepbuild.patch16
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan_0.57.bb30
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.4.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.3.bb)4
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod.bb23
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/libjs/libjs-jquery_1.7.2.bb1
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/libjs/libjs-sizzle_1.10.18.bb1
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd/Check-response-existence-on-upgrade.patch49
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.55.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.53.bb)7
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/libnih/libnih_1.0.3.bb1
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/libol/libol_0.3.18.bb1
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.7.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.0.bb)10
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/libssh2/libssh2_1.8.0.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-support/libssh2/libssh2_1.7.0.bb)4
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/libtar/files/0002-Do-not-strip-libtar.patch25
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/libtar/files/fix_libtool_sysroot.patch19
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/libtar/libtar_1.2.20.bb21
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/libteam/libteam/0001-include-sys-select.h-for-fd_set-definition.patch28
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/libteam/libteam/0002-teamd-Re-adjust-include-header-order.patch40
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/libteam/libteam_1.27.bb36
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_5.0.1.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_4.0.1.bb)4
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors/0001-prog-Do-not-limit-sys-io.h-header-include-to-just-gl.patch88
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors_3.4.0.bb6
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/logwarn/logwarn_1.0.14.bb52
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/files/0005-do-not-build-manual.patch58
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/files/0006-start-lvm2-monitor.service-after-tmp.mount.patch32
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/files/lvm.conf2
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.02.166.bb31
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.02.171.bb16
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc31
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-explicitly-do-not-install-libdm.patch36
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.02.171.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.02.166.bb)35
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/lzip/lzip_1.16.bb41
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/mailcap/mailcap_2.1.48.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-support/mailcap/mailcap_2.1.46.bb)5
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch36
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch50
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch67
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-Use-strerror_r-only-on-glibc-systems.patch26
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-mongo-Add-using-std-string.patch72
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch35
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0002-d_state.cpp-Add-missing-dependenncy-on-local_shardin.patch28
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0003-Conditionalize-glibc-specific-strerror_r.patch39
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0004-wiredtiger-Disable-strtouq-on-musl.patch26
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/arm64-support.patch43
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/disable-hw-crc32-on-arm64-s390x.patch50
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb_git.bb34
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-kpartx-include-limits.h-for-PATH_MAX.patch29
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-multipath-attempt-at-common-multipath.rules.patch107
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-multipathd.service-Error-fix.patch36
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0002-RH-fixup-udev-rules-for-redhat.patch110
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0003-RH-Remove-the-property-blacklist-exception-builtin.patch70
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0004-RH-don-t-start-without-a-config-file.patch108
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0005-RH-add-mpathconf.patch648
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0006-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch166
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0007-RH-trigger-change-uevent-on-new-device-creation.patch138
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0008-libmultipath-change-how-RADOS-checker-is-enabled.patch56
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0009-multipath-set-verbosity-to-default-during-config.patch40
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0010-mpath-skip-device-configs-without-vendor-product.patch37
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0011-multipathd-fix-show-maps-json-crash.patch38
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0012-multipath-tools-modify-Makefile.inc-for-cross-compil.patch58
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0013-Always-use-devmapper.patch53
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0014-Always-use-devmapper-for-kpartx.patch (renamed from import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/always-use-libdevmapper-kpartx.patch)25
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/always-use-libdevmapper.patch57
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/checkers-disable-libcheckrbd.so.patch31
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/makefile_inc.patch59
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/multipath.conf.example90
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/shared-libs-avoid-linking-.so-as-executable.patch55
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.7.1.bb113
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_git.bb71
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb-native_5.5.57.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb-native_5.5.55.bb)0
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb.inc12
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/gcc7.patch13
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb_5.5.57.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb_5.5.55.bb)0
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/nghttp2/nghttp2_1.26.0.bb16
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/nmon/nmon/0001-lmon16g.c-Adjust-system-headers.patch46
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/nmon/nmon_16g.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-support/nmon/nmon_13g.bb)16
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/numactl/numactl_git.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-support/numactl/numactl_2.0.11.bb)10
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/ode/ode/configure.patch13
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/ode/ode_0.13.bb31
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/open-vcdiff/open-vcdiff_0.8.4.bb21
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/tools.conf2
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/vmtoolsd.service11
-rw-r--r--import-layers/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--import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch41
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-add-include-sys-sysmacros.h.patch33
-rw-r--r--import-layers/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--import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0003-Rename-poll.h-to-vm_poll.h.patch756
-rw-r--r--import-layers/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--import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0005-Use-configure-test-for-struct-timespec.patch45
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0006-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch58
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0007-Use-configure-to-test-for-feature-instead-of-platfor.patch144
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0008-use-posix-strerror_r-unless-gnu.patch30
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0009-Add-support-for-building-with-system-libtirpc.patch342
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0010-gnu-ucontext.patch65
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0011-Use-configure-test-for-sys-stat.h-include.patch25
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.1.5.bb103
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb1
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv-samples_2.4.bb41
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch44
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Dont-use-isystem.patch26
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Revert-cuda-fix-fp16-compilation.patch27
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-To-fix-errors-as-following.patch53
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Use-__vector-instead-of-vector-as-suggests-Eigen.patch49
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-build-workaround-GCC-7.1.1-compilation-issue-with-sa.patch127
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-carotene-don-t-use-__asm__-with-aarch64.patch1250
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-tracking-make-opencv_dnn-dependancy-optional.patch243
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-Do-not-enable-asm-with-clang.patch993
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-Make-opencv-ts-create-share-library-intead-of-static.patch (renamed from import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Make-opencv-ts-create-share-library-intead-of-static.patch)12
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-Revert-check-FP16-build-condition-correctly.patch245
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-imgcodecs-refactoring-improve-code-quality.patch656
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0003-To-fix-errors-as-following.patch80
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0003-imgproc-test-add-checks-for-remove-call.patch186
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/CVE-2017-14136.patch288
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/uselocalxfeatures.patch26
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/useoeprotobuf.patch13
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv_2.4.bb106
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.3.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.2.bb)61
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/do-not-install-pyc-and-pyo.patch25
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/fix-symlink-install-error-in-cmdlang.patch22
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/include_sys_types.patch17
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/ipmi-init-fix-the-arguments.patch41
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/ipmi.service12
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/makefile-add-ldflags.patch19
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/openipmi-don-t-rm-.libs.patch32
-rwxr-xr-ximport-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/openipmi-helper512
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/openipmi-no-openipmigui-man.patch26
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/openipmi-remove-host-path-from-la_LDFLAGS.patch85
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/openipmi_2.0.22.bb112
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.45.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.44.bb)7
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/openmotif/openmotif/configure.patch15
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/openmotif/openmotif_2.3.3.bb48
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/opensync/libsyncml_0.5.4.bb21
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem_3.2.3.bb115
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/pam-passwdqc/files/1000patch-219201.patch156
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/pam-passwdqc/files/7000Makefile-fix-CC.patch11
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/pam-passwdqc/pam-passwdqc_1.0.5.bb38
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/passwdqc/passwdqc/makefile-add-ldflags.patch31
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/passwdqc/passwdqc_1.3.1.bb63
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.22.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.13.bb)8
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr/fix_qa-issue_include.patch4
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr/sepbuild.patch4
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr_4.1.1.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr_4.0.0.bb)4
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr/ignore_extra-portability_warnings.patch19
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr_4.0.0.bb21
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr_4.0.2.bb15
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.12.0.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.11.0.bb)4
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/poco/poco_1.7.9.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-support/poco/poco_1.7.8.bb)4
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.57.0.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.53.0.bb)6
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/postgresql_9.4.11.bb11
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/postgresql_9.4.15.bb15
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/pps-tools/pps-tools_git.bb1
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/psqlodbc/psqlodbc_09.05.0300.bb2
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/re2c/re2c/configure.patch18
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/re2c/re2c_0.13.5.bb15
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/satyr/files/0001-do-not-support-python2.patch84
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/satyr/files/0002-fix-compile-failure-against-musl-C-library.patch28
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.23.bb33
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.10.bb1
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/serial-utils/serial-forward/0001-serial_forward-Disable-default-static-linking.patch29
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/serial-utils/serial-forward_git.bb6
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.42.bb1
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0001-Use-pragma-once-unconditionally.patch872
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0001-ssieventmonitor-ordered-comparison-between-pointers-.patch39
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0002-Convert-macros-into-functions.patch123
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0003-Replace-canonicalize_file_name-with-realpath-API.patch33
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0004-engine-Fix-indentation-and-missing-semi-colon.patch54
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0005-engine-Define-SENTINEL.patch40
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0006-tools-Add-missing-includes-and-use-realpath-instead-.patch40
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/configure-cflags.patch21
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi_1.0.1.bb35
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.17.25.bb6
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/synergy/synergy_git.bb12
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc1
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/system-setup-keyboard/system-setup-keyboard_0.8.8.bb33
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/tbb/tbb.bb18
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0001-mallinfo-is-glibc-specific-API-mark-it-so.patch37
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.1.8.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.1.7.bb)4
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks_1.0.5.bb5
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.6.bb57
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.5.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.4.bb)4
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/vala-terminal/vala-terminal_git.bb20
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_4.3.36.bb72
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.1.26.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.1.18.bb)4
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/vim/vim-tiny_8.0.0983.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-support/vim/vim-tiny_8.0.0427.bb)0
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/vim/vim_8.0.0983.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-support/vim/vim_8.0.0427.bb)2
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat-2.8.8/automake-foreign.patch11
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat-2.8.8/fix-includes-for-separate-build.patch78
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat-2.8.8/glib-2.32.patch44
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat_2.8.8.bb39
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-support/xmlstarlet/xmlstarlet_1.6.1.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-support/xmlstarlet/xmlstarlet_1.5.0.bb)11
255 files changed, 11066 insertions, 5040 deletions
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/apcupsd/apcupsd_3.14.10.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/apcupsd/apcupsd_3.14.10.bb
deleted file mode 100644
index c8c54a413..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/apcupsd/apcupsd_3.14.10.bb
+++ /dev/null
@@ -1,42 +0,0 @@
-SUMMARY = "Apcupsd a daemon for controlling APC UPSes"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=c12853cc7fdf20d17b4fddefd26b7802"
-
-SRC_URI = "http://garr.dl.sourceforge.net/project/apcupsd/apcupsd%20-%20Stable/3.14.10/apcupsd-${PV}.tar.gz"
-SRC_URI[md5sum] = "5928822d855c5cf7ac29655e3e0b8c23"
-SRC_URI[sha256sum] = "0707b5ec9916fbde9e44eb8d18037c8d8f75dfd6aeef51aba5487e189eef2032"
-
-PNBLACKLIST[apcupsd] ?= "BROKEN: doesn't build with B!=S - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-
-inherit autotools
-
-LD = "${CXX}"
-
-EXTRA_OECONF = "--without-x \
- --enable-usb \
- --with-distname=${DISTRO}"
-
-do_configure() {
- export topdir=${S}
- cp -R --no-dereference --preserve=mode,links -v ${S}/autoconf/configure.in ${S}
-
- if ! [ -d ${S}/platforms/${DISTRO} ] ; then
- cp -R --no-dereference --preserve=mode,links -v ${S}/platforms/unknown ${S}/platforms/${DISTRO}
- fi
-
- gnu-configize --force
- # install --help says '-c' is an ignored option, but it turns out that the argument to -c isn't ignored, so drop the complete '-c path/to/strip' line
- sed -i -e 's:$(INSTALL_PROGRAM) $(STRIP):$(INSTALL_PROGRAM):g' ${S}/autoconf/targets.mak
- # Searching in host dirs triggers the QA checks
- sed -i -e 's:-I/usr/local/include::g' -e 's:-L/usr/local/lib64::g' -e 's:-L/usr/local/lib::g' ${S}/configure
-
- # m4 macros are missing, using autotools_do_configure leads to linking errors with gethostname_re
- oe_runconf
-}
-
-do_install_append() {
- rm ${D}${datadir}/hal -rf
-}
-
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc/0001-configure.ac-add-check-for-NO_GETCONTEXT-definition.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc/0001-configure.ac-add-check-for-NO_GETCONTEXT-definition.patch
new file mode 100644
index 000000000..8ef774f0f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc/0001-configure.ac-add-check-for-NO_GETCONTEXT-definition.patch
@@ -0,0 +1,29 @@
+configure.ac: add check for NO_GETCONTEXT definition
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+[yann.morin.1998@free.fr: add a comment, change variable name, use
+ AS_IF, remove debug traces, use AC_CHECK_FUNCS (as suggested by
+ Thomas)]
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+---
+Upstream-Status: Pending
+ configure.ac | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+--- bdwgc-7.2f.orig/configure.ac 2014-06-01 19:00:47.000000000 +0200
++++ bdwgc-7.2f/configure.ac 2014-12-23 14:13:11.585716713 +0100
+@@ -365,6 +365,12 @@
+ AC_MSG_RESULT($ac_cv_fno_strict_aliasing)
+ fi
+
++# Check for getcontext (uClibc can be configured without it, for example)
++AC_CHECK_FUNCS([getcontext])
++AS_IF([test "$ac_cv_func_getcontext" = "no"],
++ [CFLAGS="$CFLAGS -DNO_GETCONTEXT"
++ CPPFLAGS="$CPPFLAGS -DNO_GETCONTEXT"])
++
+ case "$host" in
+ # While IRIX 6 has libdl for the O32 and N32 ABIs, it's missing for N64
+ # and unnecessary everywhere.
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc/musl_header_fix.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc/musl_header_fix.patch
new file mode 100644
index 000000000..4a1849665
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc/musl_header_fix.patch
@@ -0,0 +1,27 @@
+Add missing header to avoid:
+
+| 1472659610.016355: ../git/pthread_stop_world.c: In function 'GC_brief_async_signal_safe_sleep':
+| 1472659610.0540252: ../git/pthread_stop_world.c:397:22: error: storage size of 'tv' isn't known
+| 1472659610.0540252: struct timeval tv;
+| 1472659610.0540252: ^~
+| 1472659610.054099: ../git/pthread_stop_world.c:397:22: warning: unused variable 'tv' [-Wunused-variable]
+| 1472659610.054099: struct timeval tv;
+| 1472659610.054099: ^~
+| 1472659610.054099: Makefile:1530: recipe for target 'pthread_stop_world.lo' failed
+
+in musl builds.
+
+Upstream-Status: Pending
+
+Index: git/pthread_stop_world.c
+===================================================================
+--- git.orig/pthread_stop_world.c
++++ git/pthread_stop_world.c
+@@ -45,6 +45,7 @@
+ #include <semaphore.h>
+ #include <errno.h>
+ #include <unistd.h>
++#include <sys/time.h>
+ #include "atomic_ops.h"
+
+ /* It's safe to call original pthread_sigmask() here. */
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc_7.6.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc_7.6.0.bb
new file mode 100644
index 000000000..dcb68f028
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc_7.6.0.bb
@@ -0,0 +1,42 @@
+SUMMARY = "A garbage collector for C and C++"
+
+DESCRIPTION = "The Boehm-Demers-Weiser conservative garbage collector can be\
+ used as a garbage collecting replacement for C malloc or C++ new. It allows\
+ you to allocate memory basically as you normally would, without explicitly\
+ deallocating memory that is no longer useful. The collector automatically\
+ recycles memory when it determines that it can no longer be otherwise\
+ accessed.\
+ The collector is also used by a number of programming language\
+ implementations that either use C as intermediate code, want to facilitate\
+ easier interoperation with C libraries, or just prefer the simple collector\
+ interface.\
+ Alternatively, the garbage collector may be used as a leak detector for C\
+ or C++ programs, though that is not its primary goal.\
+ Empirically, this collector works with most unmodified C programs, simply\
+ by replacing malloc with GC_malloc calls, replacing realloc with GC_realloc\
+ calls, and removing free calls."
+
+HOMEPAGE = "http://www.hboehm.info/gc/"
+SECTION = "devel"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://README.QUICK;md5=4f81f24ec69726c312487c2ac740e9e3"
+
+SRCREV = "8ac1d84a40eb7a431fec1b8097e3f24b48fb23fa"
+SRC_URI = "git://github.com/ivmai/bdwgc.git \
+ file://0001-configure.ac-add-check-for-NO_GETCONTEXT-definition.patch \
+ file://musl_header_fix.patch \
+ "
+
+FILES_${PN}-doc = "${datadir}"
+
+S = "${WORKDIR}/git"
+
+ARM_INSTRUCTION_SET = "arm"
+
+inherit autotools pkgconfig
+
+# by default use external libatomic-ops
+PACKAGECONFIG ??= "libatomic-ops"
+PACKAGECONFIG[libatomic-ops] = "--with-libatomic-ops=yes,--with-libatomic-ops=no,libatomic-ops"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ceres-solver/ceres-solver_1.13.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/ceres-solver/ceres-solver_1.13.bb
new file mode 100644
index 000000000..e883c70d1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/ceres-solver/ceres-solver_1.13.bb
@@ -0,0 +1,20 @@
+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"
+
+SRC_URI = "git://github.com/ceres-solver/ceres-solver.git"
+SRCREV = "19333b0f55c8462381038e70d42af43b52941128"
+
+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/*"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools_0.76.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools_0.76.bb
index def58db3d..84e9bca0e 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools_0.76.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools_0.76.bb
@@ -1,4 +1,5 @@
SUMMARY = "DJB daemontools"
+HOMEPAGE = "http://cr.yp.to/daemontools.html"
DESCRIPTION = "supervise monitors a service. It starts the service and restarts the \
service if it dies. The companion svc program stops, pauses, or restarts \
the service on sysadmin request. The svstat program prints a one-line \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/debsums/debsums_2.2.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/debsums/debsums_2.2.2.bb
new file mode 100644
index 000000000..13f20eb94
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/debsums/debsums_2.2.2.bb
@@ -0,0 +1,54 @@
+SUMMARY = "Miscellaneous utilities specific to Debian"
+SUMMARY_${PN}-cron = "Cron scripts to control automatic debsum checking"
+DESCRIPTION = "A tool for verification of installed package files against \
+MD5 checksums debsums can verify the integrity of installed package files \
+against MD5 checksums installed by the package, or generated from a .deb \
+archive."
+DESCRIPTION_${PN}-cron = "Cron scripts to control automatic system integrity \
+checking via debsums."
+SECTION = "base"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://debian/copyright;md5=770d751553e6559e9eaefd2e11ccf7e9"
+
+SRC_URI = "http://snapshot.debian.org/archive/debian/20170530T212108Z/pool/main/d/debsums/debsums_2.2.2.tar.xz"
+SRC_URI[md5sum] = "82b0710855a7e5212d4358163a269e79"
+SRC_URI[sha256sum] = "aa61896f93a6bbfe0161c21dcd67529ae8e1ec8c3ccf244523c52c4ad8253d97"
+
+# the package is taken from snapshots.debian.org; that source is static and goes stale
+# so we check the latest upstream from a directory that does get updated
+UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/d/${BPN}/"
+
+inherit perlnative gettext
+
+do_install() {
+ install -d ${D}/${sysconfdir}/cron.daily ${D}/${sysconfdir}/cron.weekly
+ install -d ${D}/${sysconfdir}/cron.monthly ${D}${sbindir} ${D}${bindir}
+ install -d ${D}${mandir}/man1 ${D}${mandir}/man8
+ install -m 0755 debsums ${D}${bindir}/
+ install -m 0755 rdebsums ${D}${bindir}/
+ install -m 0755 debsums_init ${D}${sbindir}
+ install -m 0644 man/debsums.1 ${D}${mandir}/man1/
+ install -m 0644 man/rdebsums.1 ${D}${mandir}/man1/
+ install -m 0644 man/debsums_init.8 ${D}${mandir}/man8/
+ install -m 0644 debian/cron.daily \
+ ${D}/${sysconfdir}/cron.daily/debsums
+ install -m 0644 debian/cron.weekly \
+ ${D}/${sysconfdir}/cron.weekly/debsums
+ install -m 0644 debian/cron.monthly \
+ ${D}/${sysconfdir}/cron.monthly/debsums
+ # Must exist, defaults to empty.
+ touch ${D}/${sysconfdir}/debsums-ignore
+}
+
+PACKAGES =+ "${PN}-cron"
+
+RDEPENDS_${PN} = "dpkg dpkg-perl libfile-fnmatch-perl perl \
+ perl-module-constant perl-module-digest-md5 \
+ perl-module-errno perl-module-fcntl \
+ perl-module-file-basename perl-module-file-copy \
+ perl-module-file-find perl-module-file-glob \
+ perl-module-file-path perl-module-file-spec \
+ perl-module-file-temp perl-module-getopt-long \
+ perl-module-posix"
+
+FILES_${PN}-cron = "${sysconfdir}/cron.*"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util-native_0.9.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util-native_0.9.bb
index 7a7a662ab..aeca23bf2 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util-native_0.9.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util-native_0.9.bb
@@ -8,9 +8,8 @@ SRC_URI += "file://0001-Revert-Makefile.am-Drop-static-dfu-util.patch"
do_deploy[sstate-outputdirs] = "${DEPLOY_DIR_TOOLS}"
do_deploy() {
- install -d ${DEPLOY_DIR_TOOLS}
- install -m 0755 src/dfu-util_static ${DEPLOY_DIR_TOOLS}/dfu-util-${PV}
- rm -f ${DEPLOY_DIR_TOOLS}/dfu-util
- ln -sf ./dfu-util-${PV} ${DEPLOY_DIR_TOOLS}/dfu-util
+ install -m 0755 src/dfu-util_static ${DEPLOYDIR}/dfu-util-${PV}
+ rm -f ${DEPLOYDIR}/dfu-util
+ ln -sf ./dfu-util-${PV} ${DEPLOYDIR}/dfu-util
}
addtask deploy before do_package after do_install
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util_0.9.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util_0.9.bb
index 01bca2294..76e1552c0 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util_0.9.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util_0.9.bb
@@ -1,4 +1,5 @@
DESCRIPTION = "USB Device Firmware Upgrade utility"
+HOMEPAGE = "http://dfu-util.sourceforge.net"
SECTION = "devel"
AUTHOR = "Harald Welte <laforge@openmoko.org>"
LICENSE = "GPLv2"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/dos2unix/dos2unix_7.3.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/dos2unix/dos2unix_7.3.4.bb
new file mode 100644
index 000000000..abf7d1c0c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/dos2unix/dos2unix_7.3.4.bb
@@ -0,0 +1,34 @@
+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.3.4
+SRCREV = "8381ba4e1c4cd5ce98ebd9c24726d51cb203cde0"
+
+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/import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs-23.4/nostdlib-unwind.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs-23.4/nostdlib-unwind.patch
deleted file mode 100644
index 4200301a3..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs-23.4/nostdlib-unwind.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Fix linking problem:
-undefined reference to `__aeabi_unwind_cpp_pr0'
-undefined reference to `__aeabi_unwind_cpp_pr1'
-Index: emacs/src/Makefile.in
-===================================================================
---- emacs.orig/src/Makefile.in 2008-08-16 14:20:18.000000000 +0000
-+++ emacs/src/Makefile.in 2008-08-16 14:51:25.000000000 +0000
-@@ -443,7 +443,7 @@
- ask GCC explicitly where to find libgcc.a. */
-
- #ifndef LINKER
--#define LINKER $(CC) -nostdlib
-+#define LINKER $(CC) -nostdlib -lgcc_s
- #endif
-
- #ifndef LIB_GCC
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs-23.4/use-qemu.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs-23.4/use-qemu.patch
deleted file mode 100644
index c15207a43..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs-23.4/use-qemu.patch
+++ /dev/null
@@ -1,104 +0,0 @@
-Upstream-Status: Inappropriate [embedded specific]
-
-diff -uNr emacs-23.4/Makefile.in emacs-23.4.new/Makefile.in
---- emacs-23.4/Makefile.in 2012-01-11 13:35:01.000000000 +0100
-+++ emacs-23.4.new/Makefile.in 2012-07-31 00:54:07.223590866 +0200
-@@ -336,7 +336,7 @@
- # all preloaded elisp files, and only then dump the actual src/emacs, which
- # is not wrong, but is overkill in 99.99% of the cases.
- src: Makefile FRC
-- boot=bootstrap-emacs$(EXEEXT); \
-+ boot=${QEMU} bootstrap-emacs$(EXEEXT); \
- if [ ! -x "src/$$boot" ]; then \
- cd $@; $(MAKE) all $(MFLAGS) \
- CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \
-diff -uNr emacs-23.4/leim/Makefile.in emacs-23.4.new/leim/Makefile.in
---- emacs-23.4/leim/Makefile.in 2012-01-11 13:35:01.000000000 +0100
-+++ emacs-23.4.new/leim/Makefile.in 2012-07-31 00:54:07.179590866 +0200
-@@ -51,7 +51,7 @@
-
- # How to run Emacs.
- RUN-EMACS = EMACSLOADPATH=$(buildlisppath) LC_ALL=C \
-- ${BUILT-EMACS} -batch --no-init-file --no-site-file --multibyte
-+ ${QEMU} ${BUILT-EMACS} -batch --no-init-file --no-site-file --multibyte
-
- # Subdirectories to be made if ${srcdir} is different from the current
- # directory.
-diff -uNr emacs-23.4/lib-src/Makefile.in emacs-23.4.new/lib-src/Makefile.in
---- emacs-23.4/lib-src/Makefile.in 2012-01-11 13:35:01.000000000 +0100
-+++ emacs-23.4.new/lib-src/Makefile.in 2012-07-31 00:54:07.180590866 +0200
-@@ -23,7 +23,7 @@
- SHELL = /bin/sh
-
- # Following ../lisp/Makefile.in.
--EMACS = ../src/emacs
-+EMACS = ${QEMU} ../src/emacs
- EMACSOPT = -batch --no-site-file --multibyte
-
- # ==================== Things `configure' will edit ====================
-@@ -372,7 +372,7 @@
- clobbered too. */
- test-distrib${EXEEXT}: ${srcdir}/test-distrib.c
- $(CC) ${ALL_CFLAGS} -o test-distrib ${srcdir}/test-distrib.c
-- ./test-distrib ${srcdir}/testfile
-+ ${QEMU} ./test-distrib ${srcdir}/testfile
-
- /* We need the following in order to create a <getopt.h> when the system
- does not have one that works with the given compiler. */
-diff -uNr emacs-23.4/lisp/Makefile.in emacs-23.4.new/lisp/Makefile.in
---- emacs-23.4/lisp/Makefile.in 2012-01-11 13:35:01.000000000 +0100
-+++ emacs-23.4.new/lisp/Makefile.in 2012-07-31 00:54:07.195590866 +0200
-@@ -26,8 +26,7 @@
- # You can specify a different executable on the make command line,
- # e.g. "make EMACS=../src/emacs ...".
-
--EMACS = ../src/emacs
--
-+EMACS = "${QEMU} ../src/emacs"
- # Command line flags for Emacs. This must include --multibyte,
- # otherwise some files will not compile.
-
-diff -uNr emacs-23.4/src/Makefile.in emacs-23.4.new/src/Makefile.in
---- emacs-23.4/src/Makefile.in 2012-01-12 11:27:54.000000000 +0100
-+++ emacs-23.4.new/src/Makefile.in 2012-07-31 00:55:30.344593847 +0200
-@@ -482,7 +482,7 @@
- this with the shell''s ``for'' construct.
- Note that some people do not have '.' in their paths, so we must
- use ./prefix-args. */
--#define YMF_PASS_LDFLAGS(flags) `./prefix-args -Xlinker flags`
-+#define YMF_PASS_LDFLAGS(flags) `${QEMU} ./prefix-args -Xlinker flags`
- #else
- #define YMF_PASS_LDFLAGS(flags) flags
- #endif
-@@ -919,9 +919,9 @@
- $(GNULIB_VAR) LIB_MATH LIB_STANDARD $(GNULIB_VAR)
-
- #ifdef HAVE_SHM
--RUN_TEMACS = `/bin/pwd`/temacs -nl
-+RUN_TEMACS = ${QEMU} temacs -nl
- #else
--RUN_TEMACS = `/bin/pwd`/temacs
-+RUN_TEMACS = ${QEMU} temacs
- #endif
-
- all: emacs${EXEEXT} $(OTHER_FILES)
-@@ -936,7 +936,7 @@
- @: This new Emacs is as functional and more efficient then
- @: bootstrap-emacs, so let us replace it.
- -ln -f emacs${EXEEXT} bootstrap-emacs${EXEEXT}
-- -./emacs -q -batch -f list-load-path-shadows
-+ -${QEMU} ./emacs -q -batch -f list-load-path-shadows
- #endif /* ! defined (CANNOT_DUMP) */
-
- /* We run make-docfile twice because the command line may get too long
-@@ -954,8 +954,8 @@
- only in order to reduce the command line length. --Stef */
- ${etc}DOC: ${libsrc}make-docfile${EXEEXT} ${obj} ${lisp} ${SOME_MACHINE_LISP}
- -rm -f ${etc}DOC
-- ${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC
-- ${libsrc}make-docfile -a ${etc}DOC -d ${srcdir} ${SOME_MACHINE_LISP} ${shortlisp}
-+ ${QEMU}${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC
-+ ${QEMU} ${libsrc}make-docfile -a ${etc}DOC -d ${srcdir} ${SOME_MACHINE_LISP} ${shortlisp}
-
- ${libsrc}make-docfile${EXEEXT}:
- cd ${libsrc}; ${MAKE} ${MFLAGS} make-docfile${EXEEXT}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs.inc b/import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs.inc
deleted file mode 100644
index 5b905f93f..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs.inc
+++ /dev/null
@@ -1,147 +0,0 @@
-DESCRIPTION = "Emacs"
-HOMEPAGE = "http://www.gnu.org/software/emacs/"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-SECTION = "editor"
-# and it needs to run some generated binaries..
-DEPENDS += "qemu-native"
-
-DEPENDS +=" liblockfile"
-
-X11DEPENDS = " \
- libice libsm atk cairo dbus expat libffi fontconfig freetype gconf giflib \
- jpeg xz pixman libpng librsvg tiff libcroco \
- libx11 libxau libxcomposite libxcursor libxdamage libxdmcp libxext libxfixes \
- libxft libxpm libxrandr libxrender \
- gdk-pixbuf glib-2.0 gtk+ pango libxcb harfbuzz icu \
-"
-
-EXTRA_OECONF = "--without-sound --with-crt-dir=${STAGING_LIBDIR} "
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
-PACKAGECONFIG[x11] = "--with-x-toolkit=gtk,--without-x --without-dbus,${X11DEPENDS}"
-
-
-inherit autotools
-
-PACKAGES =+ "${PN}-el"
-
-FILES_${PN}-el = "${datadir}/emacs/*/*/*.el.gz \
- ${datadir}/emacs/*/*/*/*.el.gz"
-
-FILES_${PN} += "${datadir}/emacs ${datadir}/icons"
-
-FILES_${PN}-dbg += "${libexecdir}/emacs/*/*/.debug ${datadir}/emacs/*/*/.debug"
-
-TREEDIR = "${WORKDIR}/qemu-treedir"
-
-QEMUARCH= "${TARGET_ARCH}"
-QEMUARCH_x86 = "i386"
-
-# Large stack is required at least on x86_64 host, otherwise random segfaults appear:
-QEMU = "qemu-${QEMUARCH} ${QEMU_OPTIONS} -s 1048576 -L ${TREEDIR} "
-
-export LOGNAME = "$(whoami)"
-
-do_compile_prepend() {
- sed -i ':1;s:\(START.* \|LIB_STANDARD.* \|LIBES.* \)/usr/lib:\1${STAGING_LIBDIR}:;t1' ${S}/src/s/gnu-linux.h `find "${S}" -name Makefile`
- export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${TOOLCHAIN_PATH}/${TARGET_SYS}/lib"
-# Ugly hack, see files/use-qemu.patch for more:
- ln -sf ../src/emacs lisp/emacs
- ln -sf ../src/emacs lib-src/emacs
- ln -sf ../src/emacs leim/emacs
-#copy STAGING_DIR_TARGET and libgcc_s.so* to WORKDIR/qemu-treedir #copied code from glibc-package.bbclass
- treedir=${TREEDIR}
- if [ -e $treedir ];then
- rm -rf $treedir
- fi
-
- mkdir -p $treedir/${base_libdir}
-
- if [ -f ${TOOLCHAIN_PATH}/${TARGET_SYS}/${base_libdir}/libgcc_s.so ]; then
- cp -pPR ${TOOLCHAIN_PATH}/${TARGET_SYS}/${base_libdir}/libgcc_s.so $treedir/${base_libdir}
- fi
- if [ -f ${TOOLCHAIN_PATH}/${TARGET_SYS}/${base_libdir}/libgcc_s.so.* ]; then
- cp -pPR ${TOOLCHAIN_PATH}/${TARGET_SYS}/${base_libdir}/libgcc_s.so.* $treedir/${base_libdir}
- fi
- # stupid hack, but without it, it tries to use /usr/lib/libc.so from host and fails
- # temacs: error while loading shared libraries: /usr/lib/libc.so: ELF file version does not match current one
- if [ ! -f $treedir/${base_libdir}/libc.so ]; then
- ln -s libc.so.6 $treedir/${base_libdir}/libc.so
- fi
-
- # copy only as much stuff as we need
- # before: 5.5G ../../qemu-treedir/
- # after: 17M ../../qemu-treedir/
- cp -pPR \
- ${STAGING_DIR_TARGET}/${base_libdir}/ld-* \
- ${STAGING_DIR_TARGET}/${base_libdir}/libc.* \
- ${STAGING_DIR_TARGET}/${base_libdir}/libc-* \
- ${STAGING_DIR_TARGET}/${base_libdir}/libm-* \
- ${STAGING_DIR_TARGET}/${base_libdir}/libm.* \
- ${STAGING_DIR_TARGET}/${base_libdir}/libtinfo.so.* \
- ${STAGING_DIR_TARGET}/${base_libdir}/libresolv* \
- ${STAGING_DIR_TARGET}/${base_libdir}/libdl* \
- ${STAGING_DIR_TARGET}/${base_libdir}/librt* \
- ${STAGING_DIR_TARGET}/${base_libdir}/libgcc_s.so.* \
- ${STAGING_DIR_TARGET}/${base_libdir}/libpthread* $treedir/${base_libdir}/
-
- if [ ! -z "${@bb.utils.filter('PACKAGECONFIG', 'x11', d)}" ]; then
- echo "X11 build enabled"
- # copy only as much stuff as we need
- # before: 5.5G ../../qemu-treedir/
- # after: 86M ../../qemu-treedir/
- cp -pPR \
- ${STAGING_DIR_TARGET}/${base_libdir}/libuuid.so.* \
- ${STAGING_DIR_TARGET}/${base_libdir}/libz.so.* \
- ${STAGING_DIR_TARGET}/${libdir}/libICE.so.* \
- ${STAGING_DIR_TARGET}/${libdir}/libSM.so.* \
- ${STAGING_DIR_TARGET}/${libdir}/libatk-1.0.so.* \
- ${STAGING_DIR_TARGET}/${libdir}/libcairo.so.* \
- ${STAGING_DIR_TARGET}/${libdir}/libdbus-1.so.* \
- ${STAGING_DIR_TARGET}/${libdir}/libdbus-glib-1.so.* \
- ${STAGING_DIR_TARGET}/${libdir}/libexpat.so.* \
- ${STAGING_DIR_TARGET}/${libdir}/libffi.so.* \
- ${STAGING_DIR_TARGET}/${libdir}/libfontconfig.so.* \
- ${STAGING_DIR_TARGET}/${libdir}/libfreetype.so.* \
- ${STAGING_DIR_TARGET}/${libdir}/libgconf-2.so.* \
- ${STAGING_DIR_TARGET}/${libdir}/libgif.so.* \
- ${STAGING_DIR_TARGET}/${libdir}/libjpeg.so.* \
- ${STAGING_DIR_TARGET}/${libdir}/liblzma.so.* \
- ${STAGING_DIR_TARGET}/${libdir}/libpixman-1.so.* \
- ${STAGING_DIR_TARGET}/${libdir}/libpng1*.so.* \
- ${STAGING_DIR_TARGET}/${libdir}/librsvg-2.so.* \
- ${STAGING_DIR_TARGET}/${libdir}/libstdc++.so.* \
- ${STAGING_DIR_TARGET}/${libdir}/libtiff.so.* \
- ${STAGING_DIR_TARGET}/${libdir}/libxml2.so.* \
- ${STAGING_DIR_TARGET}/${libdir}/libcroco-0.6.so.* \
- ${STAGING_DIR_TARGET}/${libdir}/libharfbuzz.so.* \
- ${STAGING_DIR_TARGET}/${libdir}/libicule.so.* \
- ${STAGING_DIR_TARGET}/${libdir}/libicuuc.so.* \
- ${STAGING_DIR_TARGET}/${libdir}/libicudata.so.* $treedir/${base_libdir}/
-
- # X11 Xau Xcomposite Xcursor Xdamage Xdmcp Xext Xfixes Xft Xpm Xrandr Xrender
- cp -pPR ${STAGING_DIR_TARGET}/${libdir}/libX*.so.* $treedir/${base_libdir}/
-
- # gdk-x11 gdk_pixbuf gio glib gmodule gobject gthread gtk-x11
- cp -pPR ${STAGING_DIR_TARGET}/${libdir}/libg*-2.0.so.* $treedir/${base_libdir}/
-
- # pango pangocairo pangoft2
- cp -pPR ${STAGING_DIR_TARGET}/${libdir}/libpango*-1.0.so.* $treedir/${base_libdir}/
-
- # xcb-render xcb-shm xcb
- cp -pPR ${STAGING_DIR_TARGET}/${libdir}/libxcb*.so.* $treedir/${base_libdir}/
- fi
-}
-
-do_install_append() {
- # freaks package.bbclass and whole bitbake call returns error code
- # ERROR: runstrip: ''arm-oe-linux-gnueabi-strip' '/var/lib/jenkins/jobs/shr-core-branches/workspace/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/emacs-23.4-r0/package/usr/share/emacs/23.4/etc/tutorials/TUTORIAL.ko'' strip command failed
- mv ${D}${datadir}/${BPN}/${PV}/etc/tutorials/TUTORIAL.ko ${D}${datadir}/${BPN}/${PV}/etc/tutorials/TUTORIAL.KO
- # Info dir listing isn't interesting at this point so remove it if it exists.
- if [ -e "${D}${infodir}/dir" ]; then
- rm -f ${D}${infodir}/dir
- fi
-}
-
-EXTRA_OEMAKE += 'QEMU="${QEMU}"'
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs_23.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs_23.4.bb
deleted file mode 100644
index 3388ff01e..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs_23.4.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-require emacs.inc
-
-PR = "r4"
-
-PNBLACKLIST[emacs] ?= "qemu: uncaught target signal 11 (Segmentation fault) - core dumped - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-
-SRC_URI = "${GNU_MIRROR}/emacs/emacs-${PV}.tar.gz;name=tarball \
- file://use-qemu.patch \
- file://nostdlib-unwind.patch \
-"
-SRC_URI[tarball.md5sum] = "34405165fcd978fbc8b304cbd99ccf4f"
-SRC_URI[tarball.sha256sum] = "b9a2b8434052771f797d2032772eba862ff9aa143029efc72295170607289c18"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak-data_1.37.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak-data_1.48.04.bb
index 914bf3601..79b2cc1f4 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak-data_1.37.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak-data_1.48.04.bb
@@ -22,6 +22,3 @@ do_install() {
install -d ${D}${layout_datadir}/espeak-data
install -m 0644 ${S}/espeak-data/phon* ${D}${layout_datadir}/espeak-data
}
-
-SRC_URI[md5sum] = "5c7b292d0537232868b4ac1317d76c02"
-SRC_URI[sha256sum] = "77f406c345362185ec4f362bf49f61d202e01ac9b9cd5c14f803195a544ce6d3"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak.inc b/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak.inc
index 5d0b40308..60b3f73c8 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak.inc
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak.inc
@@ -3,8 +3,11 @@ SECTION = "base"
LICENSE = "GPLv3"
LIC_FILES_CHKSUM = "file://License.txt;md5=cb7a20edb4c9f5f478de6523dcd7362c"
-SRC_URI = "${SOURCEFORGE_MIRROR}/espeak/espeak-${PV}-source.zip \
- file://fix-gcc6-errors.patch"
+SRC_URI = "http://downloads.sourceforge.net/espeak/espeak-1.48.04-source.zip \
+ file://gcc-narrowing-warning-fix.patch \
+"
+SRC_URI[md5sum] = "cadd7482eaafe9239546bdc09fa244c3"
+SRC_URI[sha256sum] = "bf9a17673adffcc28ff7ea18764f06136547e97bbd9edf2ec612f09b207f0659"
S = "${WORKDIR}/espeak-${PV}-source"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak_1.37.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak_1.48.04.bb
index 273fe340e..552f40413 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak_1.37.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak_1.48.04.bb
@@ -4,9 +4,6 @@ inherit siteinfo
EXTRA_PHONEMES = '${@bb.utils.contains("SITEINFO_ENDIANNESS", "be", "espeak-data (= ${PV})", "", d)}'
RDEPENDS_${PN} = "portaudio-v19 ${EXTRA_PHONEMES}"
-SRC_URI[md5sum] = "5c7b292d0537232868b4ac1317d76c02"
-SRC_URI[sha256sum] = "77f406c345362185ec4f362bf49f61d202e01ac9b9cd5c14f803195a544ce6d3"
-
CXXFLAGS += "-DUSE_PORTAUDIO"
TARGET_CC_ARCH += "${LDFLAGS}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/files/fix-gcc6-errors.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/files/fix-gcc6-errors.patch
deleted file mode 100644
index 9cf23cf03..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/files/fix-gcc6-errors.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Fix gcc6 errors with narrowing
-
-| tr_languages.cpp:462:73: error: narrowing conversion of '171' from 'int' to 'char' inside { } [-Wnarrowing]
-| static const char ko_voiced[] = {0x02,0x05,0x06,0xab,0xaf,0xb7,0xbc,0}; // voiced consonants, l,m,n,N
-
-Upstream-Status: Backport
-
-Signed-off-by: Derek Straka <derek@asterius.io>
---- a/src/tr_languages.cpp
-+++ b/src/tr_languages.cpp
-@@ -459,7 +459,7 @@
- case L('k','o'): // Korean, TEST
- {
- static const char ko_ivowels[] = {0x63,0x64,0x67,0x68,0x6d,0x72,0x74,0x75,0}; // y and i vowels
-- static const char ko_voiced[] = {0x02,0x05,0x06,0xab,0xaf,0xb7,0xbc,0}; // voiced consonants, l,m,n,N
-+ static const char ko_voiced[] = {0x02,0x05,0x06,(char)0xab,(char)0xaf,(char)0xb7,(char)0xbc,0}; // voiced consonants, l,m,n,N
- tr = new Translator();
-
- tr->letter_bits_offset = OFFSET_KOREAN;
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/files/gcc-narrowing-warning-fix.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/files/gcc-narrowing-warning-fix.patch
new file mode 100644
index 000000000..2a9b4607d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/files/gcc-narrowing-warning-fix.patch
@@ -0,0 +1,56 @@
+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/import-layers/meta-openembedded/meta-oe/recipes-support/eventlog/eventlog_0.2.13.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/eventlog/eventlog_0.2.13.bb
index 349507d36..59b01b69b 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/eventlog/eventlog_0.2.13.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/eventlog/eventlog_0.2.13.bb
@@ -1,4 +1,5 @@
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 \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/farsight/farsight2_0.0.22.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/farsight/farsight2_0.0.22.bb
deleted file mode 100644
index 14ce57aaf..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/farsight/farsight2_0.0.22.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-DESCRIPTION = "FarSight is an audio/video conferencing framework specifically designed for Instant Messengers."
-HOMEPAGE = "http://farsight.sf.net"
-SRC_URI = "http://farsight.freedesktop.org/releases/farsight2/${BP}.tar.gz"
-
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
-
-PR = "r3"
-
-DEPENDS = "libnice glib-2.0 libxml2 zlib dbus gstreamer gst-plugins-base"
-
-inherit autotools pkgconfig
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[gupnp] = "--enable-gupnp,--disable-gupnp,gupnp-igd"
-
-EXTRA_OECONF = " \
- --disable-debug \
- --disable-gtk-doc \
- --disable-python \
-"
-
-FILES_${PN} += "${libdir}/*/*.so"
-FILES_${PN}-dev += "${libdir}/*/*.la"
-FILES_${PN}-staticdev += "${libdir}/*/*.a"
-FILES_${PN}-dbg += "${libdir}/*/.debug"
-
-
-SRC_URI[md5sum] = "e1f540cf3ebab06c3d7db1f46b44ac88"
-SRC_URI[sha256sum] = "3ae59aa61a8071c9fad111e5fd606aabc27961eb4192f8729987a27dae6b3974"
-
-PNBLACKLIST[farsight2] ?= "Depends on blacklisted gstreamer - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-PNBLACKLIST[farsight2] ?= "Depends on blacklisted libnice - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-PNBLACKLIST[farsight2] ?= "Depends on blacklisted gst-plugins-base - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes.bb
index 88f7a4ff1..5f6f9909b 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes.bb
@@ -1,4 +1,5 @@
SUMMARY = "Default display timings and resolutions for fbset"
+HOMEPAGE = "http://users.telenet.be/geertu/Linux/fbdev/"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset_2.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset_2.1.bb
index cbbe6caee..fbf834da1 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset_2.1.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset_2.1.bb
@@ -6,6 +6,7 @@
# Date: 28-May-06
SUMMARY = "The fbset console tool"
+HOMEPAGE = "http://users.telenet.be/geertu/Linux/fbdev/"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://fbset.c;endline=19;md5=bf326f82cdfcac391af208f019c5603f"
RRECOMMENDS_${PN} = "fbset-modes"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/fftw/benchfft_3.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/fftw/benchfft_3.1.bb
deleted file mode 100644
index 49cc270fe..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/fftw/benchfft_3.1.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "FFTW benchmarks"
-SECTION = "libs"
-LICENSE = "GPLv2"
-
-# single precision fftw is called fftwf
-DEPENDS = "virtual/fftw"
-
-SRC_URI = "http://www.fftw.org/benchfft/benchfft-${PV}.tar.gz"
-
-EXTRA_OECONF = "--disable-fortran --enable-single --enable-shared"
-
-inherit autotools pkgconfig
-
-do_compile_prepend() {
- sed -i -e 's:all-recursive:$(RECURSIVE_TARGETS):g' ${S}/Makefile
-}
-
-SRC_URI[md5sum] = "9356e5e9dcb3f1481977009720a2ccf8"
-SRC_URI[sha256sum] = "1b4a5b5e48ad5e61a21586b7b59d5c0a88691a981e73e2c6dc5868197461791b"
-
-PNBLACKLIST[benchfft] ?= "does not build with distroless qemuarm as reported in 'State of bitbake world' thread, nobody volunteered to fix them - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/flite/flite-alsa-1.3/flite-alsa-1.3-configure-with-audio.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/flite/flite-alsa-1.3/flite-alsa-1.3-configure-with-audio.patch
deleted file mode 100644
index e1e7aed50..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/flite/flite-alsa-1.3/flite-alsa-1.3-configure-with-audio.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- flite-1.3-release/configure.in.old 2008-01-06 02:17:47.000000000 -0600
-+++ flite-1.3-release/configure.in 2008-01-06 02:19:56.000000000 -0600
-@@ -220,7 +220,8 @@ dnl allow the user to override the one d
- dnl
- AC_ARG_WITH( audio,
- [ --with-audio with specific audio support (none linux freebsd etc) ],
-- AUDIODRIVER=$with_audio )
-+ [AUDIODRIVER=$with_audio
-+ AUDIODEFS=])
-
- if test "x$AUDIODEFS" = x; then
- case "$AUDIODRIVER" in
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/flite/flite-alsa_1.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/flite/flite-alsa_1.3.bb
deleted file mode 100644
index 0883c1ad4..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/flite/flite-alsa_1.3.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-require flite.inc
-
-PR = "r1"
-
-EXTRA_OECONF = "--with-audio=alsa --enable-shared"
-
-SRC_URI = "http://www.speech.cs.cmu.edu/flite/packed/flite-${PV}/flite-${PV}-release.tar.gz \
- file://flite-1.3-alsa_support-1.2.diff \
- file://flite-alsa-1.3-configure-with-audio.patch"
-
-SRC_URI[md5sum] = "ae0aca1cb7b4801f4372f3a75a9e52b5"
-SRC_URI[sha256sum] = "922225f7001e57a0fbace8833b0a48790a68f6c7b491f2d47c78ad537ab78a8b"
-
-# Looks like caused by flite-1.3-alsa_support-1.2.diff
-# flite-alsa-1.3: No GNU_HASH in the elf binary: '/tmp/work/armv5te-oe-linux-gnueabi/flite-alsa/1.3-r1/packages-split/libflite-alsa-vox16/usr/lib/libflite_cmu_us_kal16.so.1.3' [ldflags]
-# flite-alsa-1.3: No GNU_HASH in the elf binary: '/tmp/work/armv5te-oe-linux-gnueabi/flite-alsa/1.3-r1/packages-split/libflite-alsa-vox8/usr/lib/libflite_cmu_us_kal.so.1.3' [ldflags]
-# flite-alsa-1.3: No GNU_HASH in the elf binary: '/tmp/work/core2-64-oe-linux/flite-alsa/1.3-r1/packages-split/libflite-alsa-vox16/usr/lib/libflite_cmu_us_kal16.so.1.3' [ldflags]
-# flite-alsa-1.3: No GNU_HASH in the elf binary: '/tmp/work/core2-64-oe-linux/flite-alsa/1.3-r1/packages-split/libflite-alsa-vox8/usr/lib/libflite_cmu_us_kal.so.1.3' [ldflags]
-# flite-alsa-1.3: No GNU_HASH in the elf binary: '/tmp/work/i586-oe-linux/flite-alsa/1.3-r1/packages-split/libflite-alsa-vox16/usr/lib/libflite_cmu_us_kal16.so.1.3' [ldflags]
-# flite-alsa-1.3: No GNU_HASH in the elf binary: '/tmp/work/i586-oe-linux/flite-alsa/1.3-r1/packages-split/libflite-alsa-vox8/usr/lib/libflite_cmu_us_kal.so.1.3' [ldflags]
-PNBLACKLIST[flite-alsa] ?= "OLD: wasn't updated in over 6 years, only navit was RSUGGESTing it and doesn't respect LDFLAGS - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/flite/flite.inc b/import-layers/meta-openembedded/meta-oe/recipes-support/flite/flite.inc
deleted file mode 100644
index 0ef82c004..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/flite/flite.inc
+++ /dev/null
@@ -1,33 +0,0 @@
-DESCRIPTION = "flite - the festival light speech synthesizer"
-HOMEPAGE = "http://www.speech.cs.cmu.edu/flite/"
-SECTION = "console/utils"
-LICENSE = "flite"
-LIC_FILES_CHKSUM = "file://COPYING;md5=68a16b1ee49c96c36f232ccdcd287650"
-DEPENDS = "alsa-oss"
-
-PARALLEL_MAKE = ""
-
-S = "${WORKDIR}/flite-${PV}-release"
-
-CFLAGS += " -lasound "
-
-inherit autotools-brokensep
-
-PACKAGES += "lib${PN} lib${PN}-vox8 lib${PN}-vox16"
-
-FILES_${PN} = "${bindir}"
-
-FILES_lib${PN} ="${libdir}/libflite.so.* \
- ${libdir}/libflite_cmu_time_awb.so.* \
- ${libdir}/libflite_cmulex.so.* \
- ${libdir}/libflite_usenglish.so.*"
-
-FILES_lib${PN}-vox8 = "${libdir}/libflite_cmu_us_kal.so.*"
-
-FILES_lib${PN}-vox16 = "${libdir}/libflite_cmu_us_kal16.so.*"
-
-LEAD_SONAME = "libflite.so"
-
-do_install() {
- oe_runmake INSTALLBINDIR="${D}${bindir}" INSTALLLIBDIR="${D}${libdir}" INSTALLINCDIR="${D}${includedir}" install
-}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/fltk/fltk-native.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/fltk/fltk-native.bb
index 353987e0f..2636287e3 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/fltk/fltk-native.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/fltk/fltk-native.bb
@@ -14,3 +14,8 @@ EXTRA_OECMAKE += " \
-DOPTION_USE_XFIXES=OFF \
-DOPTION_USE_XCURSOR=OFF \
"
+
+do_install_append() {
+ # make sure native fltk-config is not used accidentaly
+ rm -f ${D}${bindir}/fltk-config
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/fltk/fltk.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/fltk/fltk.bb
index 542fd661e..619d1420a 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/fltk/fltk.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/fltk/fltk.bb
@@ -1,6 +1,6 @@
require ${BPN}.inc
-DEPENDS = "alsa-lib zlib jpeg libpng libxext libxft ${BPN}-native"
+DEPENDS = "alsa-lib zlib jpeg libpng libxext libxft"
inherit binconfig lib_package gtk-icon-cache mime
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gd/files/fix-gcc-unused-functions.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/gd/files/fix-gcc-unused-functions.patch
deleted file mode 100644
index 02cb5ad75..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/gd/files/fix-gcc-unused-functions.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-gdft.c: remove functions that cause warnings about being unused
-
-Upstream-Status: Backport (Fixed in master branch)
-
-Signed-off-by: Derek Straka <derek@asterius.io>
---- git/src/gdft.c.orig 2016-08-12 10:20:41.418440091 -0400
-+++ git/src/gdft.c 2016-08-12 10:22:34.226442987 -0400
-@@ -139,16 +139,6 @@
- }
- #else
-
--#ifndef HAVE_LIBFONTCONFIG
--static char * font_pattern(char **fontpath, char *fontpattern)
--{
-- (void)fontpath;
-- (void)fontpattern;
--
-- return "libgd was not built with FontConfig support\n";
--}
--#endif /* HAVE_LIBFONTCONFIG */
--
- #include "gdcache.h"
- /* 2.0.16 Christophe Thomas: starting with FreeType 2.1.6, this is
- mandatory, and it has been supported for a long while. */
-@@ -446,16 +436,15 @@
- return (strcmp (a->fontlist, b->fontlist) == 0 && a->flags == b->flags);
- }
-
-+#ifdef HAVE_LIBFONTCONFIG
- static int useFontConfig(int flag)
- {
--#ifdef HAVE_LIBFONTCONFIG
- if (fontConfigFlag) {
- return (!(flag & gdFTEX_FONTPATHNAME));
- }
--#endif
- return flag & gdFTEX_FONTCONFIG;
- }
--
-+#endif
- static void *
- fontFetch (char **error, void *key)
- {
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/.gitignore-the-new-test-case.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/.gitignore-the-new-test-case.patch
deleted file mode 100644
index eab4975cb..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/.gitignore-the-new-test-case.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 8520274759cb8f95e483b02a445aff225e13467b Mon Sep 17 00:00:00 2001
-From: "Christoph M. Becker" <cmbecker69@gmx.de>
-Date: Tue, 16 Aug 2016 16:00:27 +0200
-Subject: [PATCH] .gitignore the new test case
-
-Upstream-Status: Backport
-
-Signed-off-by: Catalin Enache <catalin.enache@windriver.com>
----
- tests/tga/.gitignore | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/tests/tga/.gitignore b/tests/tga/.gitignore
-index e88e124..7a659b1 100644
---- a/tests/tga/.gitignore
-+++ b/tests/tga/.gitignore
-@@ -4,3 +4,4 @@
- /bug00248
- /bug00248a
- /tga_null
-+/tga_read
---
-2.10.2
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2016-10166.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2016-10166.patch
deleted file mode 100644
index 7ccfbeabc..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2016-10166.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From c92240c1670c20c2f854761d3a89ab61dd158c91 Mon Sep 17 00:00:00 2001
-From: "Christoph M. Becker" <cmbecker69@gmx.de>
-Date: Sat, 6 Aug 2016 10:08:53 +0200
-Subject: [PATCH] Fix potential unsigned underflow
-
-No need to decrease `u`, so we don't do it. While we're at it, we also factor
-out the overflow check of the loop, what improves performance and readability.
-
-This issue has been reported by Stefan Esser to security@libgd.org.
-
-Upstream-Status: Backport
-CVE: CVE-2016-10166
-
-Signed-off-by: Catalin Enache <catalin.enache@windriver.com>
----
- src/gd_interpolation.c | 19 ++++++++++---------
- 1 file changed, 10 insertions(+), 9 deletions(-)
-
-diff --git a/src/gd_interpolation.c b/src/gd_interpolation.c
-index 7e7943d..9944349 100644
---- a/src/gd_interpolation.c
-+++ b/src/gd_interpolation.c
-@@ -829,8 +829,13 @@ static inline LineContribType * _gdContributionsAlloc(unsigned int line_length,
- {
- unsigned int u = 0;
- LineContribType *res;
-- int overflow_error = 0;
-+ size_t weights_size;
-
-+ if (overflow2(windows_size, sizeof(double))) {
-+ return NULL;
-+ } else {
-+ weights_size = windows_size * sizeof(double);
-+ }
- res = (LineContribType *) gdMalloc(sizeof(LineContribType));
- if (!res) {
- return NULL;
-@@ -847,15 +852,11 @@ static inline LineContribType * _gdContributionsAlloc(unsigned int line_length,
- return NULL;
- }
- for (u = 0 ; u < line_length ; u++) {
-- if (overflow2(windows_size, sizeof(double))) {
-- overflow_error = 1;
-- } else {
-- res->ContribRow[u].Weights = (double *) gdMalloc(windows_size * sizeof(double));
-- }
-- if (overflow_error == 1 || res->ContribRow[u].Weights == NULL) {
-+ res->ContribRow[u].Weights = (double *) gdMalloc(weights_size);
-+ if (res->ContribRow[u].Weights == NULL) {
- unsigned int i;
-- u--;
-- for (i=0;i<=u;i++) {
-+
-+ for (i=0;i<u;i++) {
- gdFree(res->ContribRow[i].Weights);
- }
- gdFree(res->ContribRow);
---
-2.10.2
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2016-10167.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2016-10167.patch
deleted file mode 100644
index 54ef22cb6..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2016-10167.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 6ab531ef0d82efb9e00236ee5ea23928335d221f Mon Sep 17 00:00:00 2001
-From: Catalin Enache <catalin.enache@windriver.com>
-Date: Fri, 7 Apr 2017 12:30:22 +0300
-Subject: [PATCH] Fix DOS vulnerability in gdImageCreateFromGd2Ctx()
-
-We must not pretend that there are image data if there are none. Instead
-we fail reading the image file gracefully.
-
-Upstream-Status: Backport
-CVE: CVE-2016-10167
-
-Signed-off-by: Catalin Enache <catalin.enache@windriver.com>
----
- src/gd_gd2.c | 14 ++++++--------
- 1 file changed, 6 insertions(+), 8 deletions(-)
-
-diff --git a/src/gd_gd2.c b/src/gd_gd2.c
-index 8df93c1..bae65ea 100644
---- a/src/gd_gd2.c
-+++ b/src/gd_gd2.c
-@@ -445,18 +445,16 @@ BGD_DECLARE(gdImagePtr) gdImageCreateFromGd2Ctx (gdIOCtxPtr in)
-
- if (im->trueColor) {
- if (!gdGetInt (&im->tpixels[y][x], in)) {
-- /*printf("EOF while reading\n"); */
-- /*gdImageDestroy(im); */
-- /*return 0; */
-- im->tpixels[y][x] = 0;
-+ gd_error("gd2: EOF while reading\n");
-+ gdImageDestroy(im);
-+ return NULL;
- }
- } else {
- int ch;
- if (!gdGetByte (&ch, in)) {
-- /*printf("EOF while reading\n"); */
-- /*gdImageDestroy(im); */
-- /*return 0; */
-- ch = 0;
-+ gd_error("gd2: EOF while reading\n");
-+ gdImageDestroy(im);
-+ return NULL;
- }
- im->pixels[y][x] = ch;
- }
---
-2.10.2
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2016-10168.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2016-10168.patch
deleted file mode 100644
index aef1060c4..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2016-10168.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 2d37bdc03a6e2b820fe380016f22592a7733e0be Mon Sep 17 00:00:00 2001
-From: Catalin Enache <catalin.enache@windriver.com>
-Date: Fri, 7 Apr 2017 12:32:49 +0300
-Subject: [PATCH] Fix #354: Signed Integer Overflow gd_io.c
-
-GD2 stores the number of horizontal and vertical chunks as words (i.e. 2
-byte unsigned). These values are multiplied and assigned to an int when
-reading the image, what can cause integer overflows. We have to avoid
-that, and also make sure that either chunk count is actually greater
-than zero. If illegal chunk counts are detected, we bail out from
-reading the image.
-
-Upstream-Status: Backport
-CVE: CVE-2016-10168
-
-Signed-off-by: Catalin Enache <catalin.enache@windriver.com>
----
- src/gd_gd2.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/src/gd_gd2.c b/src/gd_gd2.c
-index bae65ea..9006bd2 100644
---- a/src/gd_gd2.c
-+++ b/src/gd_gd2.c
-@@ -151,6 +151,10 @@ _gd2GetHeader (gdIOCtxPtr in, int *sx, int *sy,
- GD2_DBG (printf ("%d Chunks vertically\n", *ncy));
-
- if (gd2_compressed (*fmt)) {
-+ if (*ncx <= 0 || *ncy <= 0 || *ncx > INT_MAX / *ncy) {
-+ GD2_DBG(printf ("Illegal chunk counts: %d * %d\n", *ncx, *ncy));
-+ goto fail1;
-+ }
- nc = (*ncx) * (*ncy);
-
- GD2_DBG (printf ("Reading %d chunk index entries\n", nc));
---
-2.10.2
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2016-6906-1.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2016-6906-1.patch
deleted file mode 100644
index 97b7f7249..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2016-6906-1.patch
+++ /dev/null
@@ -1,167 +0,0 @@
-From fb0e0cce0b9f25389ab56604c3547351617e1415 Mon Sep 17 00:00:00 2001
-From: "Christoph M. Becker" <cmbecker69@gmx.de>
-Date: Tue, 16 Aug 2016 16:26:19 +0200
-Subject: [PATCH] Fix OOB reads of the TGA decompression buffer
-
-It is possible to craft TGA files which will overflow the decompression
-buffer, but not the image's bitmap. Therefore we augment the check for the
-bitmap's overflow with a check for the buffer's overflow.
-
-This issue had been reported by Ibrahim El-Sayed to security@libgd.org.
-
-CVE-2016-6906
-
-Upstream-Status: Backport
-CVE: CVE-2016-6906
-
-Signed-off-by: Catalin Enache <catalin.enache@windriver.com>
----
- src/gd_tga.c | 6 ++++--
- tests/tga/.gitignore | 1 +
- tests/tga/CMakeLists.txt | 1 +
- tests/tga/Makemodule.am | 2 ++
- tests/tga/heap_overflow.c | 51 ++++++++++++++++++++++++++++++++++++++++++++
- tests/tga/heap_overflow.tga | Bin 0 -> 605 bytes
- 6 files changed, 59 insertions(+), 2 deletions(-)
- create mode 100644 tests/tga/heap_overflow.c
- create mode 100644 tests/tga/heap_overflow.tga
-
-diff --git a/src/gd_tga.c b/src/gd_tga.c
-index 8737b04..68e4b17 100644
---- a/src/gd_tga.c
-+++ b/src/gd_tga.c
-@@ -300,7 +300,8 @@ int read_image_tga( gdIOCtx *ctx, oTga *tga )
- encoded_pixels = ( ( decompression_buffer[ buffer_caret ] & ~TGA_RLE_FLAG ) + 1 );
- buffer_caret++;
-
-- if ((bitmap_caret + (encoded_pixels * pixel_block_size)) > image_block_size) {
-+ if ((bitmap_caret + (encoded_pixels * pixel_block_size)) > image_block_size
-+ || buffer_caret + pixel_block_size > rle_size) {
- gdFree( decompression_buffer );
- gdFree( conversion_buffer );
- return -1;
-@@ -316,7 +317,8 @@ int read_image_tga( gdIOCtx *ctx, oTga *tga )
- encoded_pixels = decompression_buffer[ buffer_caret ] + 1;
- buffer_caret++;
-
-- if ((bitmap_caret + (encoded_pixels * pixel_block_size)) > image_block_size) {
-+ if ((bitmap_caret + (encoded_pixels * pixel_block_size)) > image_block_size
-+ || buffer_caret + (encoded_pixels * pixel_block_size) > rle_size) {
- gdFree( decompression_buffer );
- gdFree( conversion_buffer );
- return -1;
-diff --git a/tests/tga/.gitignore b/tests/tga/.gitignore
-index 7a659b1..cf0556b 100644
---- a/tests/tga/.gitignore
-+++ b/tests/tga/.gitignore
-@@ -3,5 +3,6 @@
- /bug00247a
- /bug00248
- /bug00248a
-+/heap_overflow
- /tga_null
- /tga_read
-diff --git a/tests/tga/CMakeLists.txt b/tests/tga/CMakeLists.txt
-index 789fb14..11542a0 100644
---- a/tests/tga/CMakeLists.txt
-+++ b/tests/tga/CMakeLists.txt
-@@ -5,6 +5,7 @@ LIST(APPEND TESTS_FILES
- bug00247a
- bug00248
- bug00248a
-+ heap_overflow
- tga_read
- )
-
-diff --git a/tests/tga/Makemodule.am b/tests/tga/Makemodule.am
-index a1e6af6..916d707 100644
---- a/tests/tga/Makemodule.am
-+++ b/tests/tga/Makemodule.am
-@@ -4,6 +4,7 @@ libgd_test_programs += \
- tga/bug00247a \
- tga/bug00248 \
- tga/bug00248a \
-+ tga/heap_overflow \
- tga/tga_null \
- tga/tga_read
-
-@@ -14,6 +15,7 @@ EXTRA_DIST += \
- tga/bug00247a.tga \
- tga/bug00248.tga \
- tga/bug00248a.tga \
-+ tga/heap_overflow.tga \
- tga/tga_read_rgb.png \
- tga/tga_read_rgb.tga \
- tga/tga_read_rgb_rle.tga
-diff --git a/tests/tga/heap_overflow.c b/tests/tga/heap_overflow.c
-new file mode 100644
-index 0000000..0e9a2d0
---- /dev/null
-+++ b/tests/tga/heap_overflow.c
-@@ -0,0 +1,51 @@
-+/**
-+ * Test that the crafted TGA file doesn't trigger OOB reads.
-+ */
-+
-+
-+#include "gd.h"
-+#include "gdtest.h"
-+
-+
-+static size_t read_test_file(char **buffer, char *basename);
-+
-+
-+int main()
-+{
-+ gdImagePtr im;
-+ char *buffer;
-+ size_t size;
-+
-+ size = read_test_file(&buffer, "heap_overflow.tga");
-+ im = gdImageCreateFromTgaPtr(size, (void *) buffer);
-+ gdTestAssert(im == NULL);
-+ free(buffer);
-+
-+ return gdNumFailures();
-+}
-+
-+
-+static size_t read_test_file(char **buffer, char *basename)
-+{
-+ char *filename;
-+ FILE *fp;
-+ size_t exp_size, act_size;
-+
-+ filename = gdTestFilePath2("tga", basename);
-+ fp = fopen(filename, "rb");
-+ gdTestAssert(fp != NULL);
-+
-+ fseek(fp, 0, SEEK_END);
-+ exp_size = ftell(fp);
-+ fseek(fp, 0, SEEK_SET);
-+
-+ *buffer = malloc(exp_size);
-+ gdTestAssert(*buffer != NULL);
-+ act_size = fread(*buffer, sizeof(**buffer), exp_size, fp);
-+ gdTestAssert(act_size == exp_size);
-+
-+ fclose(fp);
-+ free(filename);
-+
-+ return act_size;
-+}
-diff --git a/tests/tga/heap_overflow.tga b/tests/tga/heap_overflow.tga
-new file mode 100644
-index 0000000000000000000000000000000000000000..e9bc0ecb2a847ac6edba92dd0ff61167b49002cd
-GIT binary patch
-literal 605
-zcmZQz;9`IQ9tIu;g&7<$F3o7Yg1qzyh6tefy9wZAs2d<Uh*yuz=?XwW4Qvuv#g2nS
-zp93+mT0rVR>T&8(2TGy=f_l)@gSap~$FayUFu(!|SyJIFga^{8fGj~vwq8kkVgvv>
-Cavop+
-
-literal 0
-HcmV?d00001
-
---
-2.10.2
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2016-6906-2.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2016-6906-2.patch
deleted file mode 100644
index 8b6de9711..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/CVE-2016-6906-2.patch
+++ /dev/null
@@ -1,135 +0,0 @@
-From 58b6dde319c301b0eae27d12e2a659e067d80558 Mon Sep 17 00:00:00 2001
-From: "Christoph M. Becker" <cmbecker69@gmx.de>
-Date: Tue, 16 Aug 2016 16:26:19 +0200
-Subject: [PATCH] Fix OOB reads of the TGA decompression buffer
-
-It is possible to craft TGA files which will overflow the decompression
-buffer, but not the image's bitmap. Therefore we also have to check for
-potential decompression buffer overflows.
-
-This issue had been reported by Ibrahim El-Sayed to security@libgd.org;
-a modified case exposing an off-by-one error of the first patch had been
-provided by Konrad Beckmann.
-
-This commit is an amendment to commit fb0e0cce, so we use CVE-2016-6906
-as well.
-
-Upstream-Status: Backport
-CVE: CVE-2016-6906
-
-Signed-off-by: Catalin Enache <catalin.enache@windriver.com>
----
- src/gd_tga.c | 8 +++++++-
- tests/tga/Makemodule.am | 3 ++-
- tests/tga/heap_overflow.c | 16 ++++++++++++----
- tests/tga/heap_overflow_1.tga | Bin 0 -> 605 bytes
- tests/tga/heap_overflow_2.tga | Bin 0 -> 8746 bytes
- 5 files changed, 21 insertions(+), 6 deletions(-)
- create mode 100644 tests/tga/heap_overflow_1.tga
- create mode 100644 tests/tga/heap_overflow_2.tga
-
-diff --git a/src/gd_tga.c b/src/gd_tga.c
-index 68e4b17..f80f0b1 100644
---- a/src/gd_tga.c
-+++ b/src/gd_tga.c
-@@ -295,7 +295,13 @@ int read_image_tga( gdIOCtx *ctx, oTga *tga )
- buffer_caret = 0;
-
- while( bitmap_caret < image_block_size ) {
--
-+
-+ if (buffer_caret + pixel_block_size > rle_size) {
-+ gdFree( decompression_buffer );
-+ gdFree( conversion_buffer );
-+ return -1;
-+ }
-+
- if ((decompression_buffer[buffer_caret] & TGA_RLE_FLAG) == TGA_RLE_FLAG) {
- encoded_pixels = ( ( decompression_buffer[ buffer_caret ] & ~TGA_RLE_FLAG ) + 1 );
- buffer_caret++;
-diff --git a/tests/tga/Makemodule.am b/tests/tga/Makemodule.am
-index 916d707..ab08dbf 100644
---- a/tests/tga/Makemodule.am
-+++ b/tests/tga/Makemodule.am
-@@ -15,7 +15,8 @@ EXTRA_DIST += \
- tga/bug00247a.tga \
- tga/bug00248.tga \
- tga/bug00248a.tga \
-- tga/heap_overflow.tga \
-+ tga/heap_overflow_1.tga \
-+ tga/heap_overflow_2.tga \
- tga/tga_read_rgb.png \
- tga/tga_read_rgb.tga \
- tga/tga_read_rgb_rle.tga
-diff --git a/tests/tga/heap_overflow.c b/tests/tga/heap_overflow.c
-index 0e9a2d0..ddd4b63 100644
---- a/tests/tga/heap_overflow.c
-+++ b/tests/tga/heap_overflow.c
-@@ -1,5 +1,5 @@
- /**
-- * Test that the crafted TGA file doesn't trigger OOB reads.
-+ * Test that crafted TGA files don't trigger OOB reads.
- */
-
-
-@@ -7,21 +7,29 @@
- #include "gdtest.h"
-
-
-+static void check_file(char *basename);
- static size_t read_test_file(char **buffer, char *basename);
-
-
- int main()
- {
-+ check_file("heap_overflow_1.tga");
-+ check_file("heap_overflow_2.tga");
-+
-+ return gdNumFailures();
-+}
-+
-+
-+static void check_file(char *basename)
-+{
- gdImagePtr im;
- char *buffer;
- size_t size;
-
-- size = read_test_file(&buffer, "heap_overflow.tga");
-+ size = read_test_file(&buffer, basename);
- im = gdImageCreateFromTgaPtr(size, (void *) buffer);
- gdTestAssert(im == NULL);
- free(buffer);
--
-- return gdNumFailures();
- }
-
-
-diff --git a/tests/tga/heap_overflow_1.tga b/tests/tga/heap_overflow_1.tga
-new file mode 100644
-index 0000000000000000000000000000000000000000..e9bc0ecb2a847ac6edba92dd0ff61167b49002cd
-GIT binary patch
-literal 605
-zcmZQz;9`IQ9tIu;g&7<$F3o7Yg1qzyh6tefy9wZAs2d<Uh*yuz=?XwW4Qvuv#g2nS
-zp93+mT0rVR>T&8(2TGy=f_l)@gSap~$FayUFu(!|SyJIFga^{8fGj~vwq8kkVgvv>
-Cavop+
-
-literal 0
-HcmV?d00001
-
-diff --git a/tests/tga/heap_overflow_2.tga b/tests/tga/heap_overflow_2.tga
-new file mode 100644
-index 0000000000000000000000000000000000000000..2b681f2df8941d6823aa761be0a7fa3c02c92cbf
-GIT binary patch
-literal 8746
-zcmeIxF$#b%6a>*<djij4?cuz+Vi5?!RIY)@*eDAQ@`zPSwQE1NTI<YQEqdQG#s5@h
-zwDFtAoIjm)CIQa|$z*q(vz}DbnPjrN&RI{Y=}a=&UFWPP)joCZ<31}ey8!(}FZZ71
-zWop>#e)AY=opmMw&j!h4cb&7IRMVMcvb)Y%PpaumGTB|{tS8lUCYkK6bJmk;IzMDC
-D4PYIN
-
-literal 0
-HcmV?d00001
-
---
-2.10.2
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/Fix-290-TGA-RLE-decoding-is-broken.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/Fix-290-TGA-RLE-decoding-is-broken.patch
deleted file mode 100644
index 64f5c6296..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd/Fix-290-TGA-RLE-decoding-is-broken.patch
+++ /dev/null
@@ -1,359 +0,0 @@
-From 4f8e26f2a40ffaa3a5b77be6a49989a1a42e2b83 Mon Sep 17 00:00:00 2001
-From: "Christoph M. Becker" <cmbecker69@gmx.de>
-Date: Tue, 16 Aug 2016 14:27:23 +0200
-Subject: [PATCH] Fix #290: TGA RLE decoding is broken
-
-We make it work only, for now. Actually, it doesn't make sense that
-`oTga::bitmap` is an `int *` as we're storing only bytes there. If this
-will be changed, we can even get rid of the `conversion_buffer` in
-`read_image_tga` altogether, and read the image data into the
-`decompression_buffer` (if RLE'd) or the `tga->bitmap` (if uncompressed)
-directly.
-
-Upstream-Status: Backport
-
-Signed-off-by: Catalin Enache <catalin.enache@windriver.com>
----
- src/gd_tga.c | 18 ++++++++++--------
- tests/tga/CMakeLists.txt | 1 +
- tests/tga/Makemodule.am | 8 ++++++--
- tests/tga/tga_read.c | 40 ++++++++++++++++++++++++++++++++++++++++
- tests/tga/tga_read_rgb.png | Bin 0 -> 2349 bytes
- tests/tga/tga_read_rgb.tga | Bin 0 -> 90444 bytes
- tests/tga/tga_read_rgb_rle.tga | Bin 0 -> 9987 bytes
- 7 files changed, 57 insertions(+), 10 deletions(-)
- create mode 100644 tests/tga/tga_read.c
- create mode 100644 tests/tga/tga_read_rgb.png
- create mode 100644 tests/tga/tga_read_rgb.tga
- create mode 100644 tests/tga/tga_read_rgb_rle.tga
-
-diff --git a/src/gd_tga.c b/src/gd_tga.c
-index ec6781f..8737b04 100644
---- a/src/gd_tga.c
-+++ b/src/gd_tga.c
-@@ -207,12 +207,13 @@ int read_image_tga( gdIOCtx *ctx, oTga *tga )
- {
- int pixel_block_size = (tga->bits / 8);
- int image_block_size = (tga->width * tga->height) * pixel_block_size;
-- uint8_t* decompression_buffer = NULL;
-+ int* decompression_buffer = NULL;
- unsigned char* conversion_buffer = NULL;
- int buffer_caret = 0;
- int bitmap_caret = 0;
- int i = 0;
- int encoded_pixels;
-+ int rle_size;
-
- if(overflow2(tga->width, tga->height)) {
- return -1;
-@@ -266,7 +267,7 @@ int read_image_tga( gdIOCtx *ctx, oTga *tga )
- /*! \brief Read in RLE compressed RGB TGA
- * Chunk load the pixel data from an RLE compressed RGB type TGA.
- */
-- decompression_buffer = (uint8_t*) gdMalloc(image_block_size * sizeof(uint8_t));
-+ decompression_buffer = (int*) gdMalloc(image_block_size * sizeof(int));
- if (decompression_buffer == NULL) {
- return -1;
- }
-@@ -277,7 +278,8 @@ int read_image_tga( gdIOCtx *ctx, oTga *tga )
- return -1;
- }
-
-- if (gdGetBuf(conversion_buffer, image_block_size, ctx) != image_block_size) {
-+ rle_size = gdGetBuf(conversion_buffer, image_block_size, ctx);
-+ if (rle_size <= 0) {
- gdFree(conversion_buffer);
- gdFree(decompression_buffer);
- return -1;
-@@ -285,7 +287,7 @@ int read_image_tga( gdIOCtx *ctx, oTga *tga )
-
- buffer_caret = 0;
-
-- while( buffer_caret < image_block_size) {
-+ while( buffer_caret < rle_size) {
- decompression_buffer[buffer_caret] = (int)conversion_buffer[buffer_caret];
- buffer_caret++;
- }
-@@ -298,14 +300,14 @@ int read_image_tga( gdIOCtx *ctx, oTga *tga )
- encoded_pixels = ( ( decompression_buffer[ buffer_caret ] & ~TGA_RLE_FLAG ) + 1 );
- buffer_caret++;
-
-- if ((bitmap_caret + (encoded_pixels * pixel_block_size)) >= image_block_size) {
-+ if ((bitmap_caret + (encoded_pixels * pixel_block_size)) > image_block_size) {
- gdFree( decompression_buffer );
- gdFree( conversion_buffer );
- return -1;
- }
-
- for (i = 0; i < encoded_pixels; i++) {
-- memcpy(tga->bitmap + bitmap_caret, decompression_buffer + buffer_caret, pixel_block_size);
-+ memcpy(tga->bitmap + bitmap_caret, decompression_buffer + buffer_caret, pixel_block_size * sizeof(int));
- bitmap_caret += pixel_block_size;
- }
- buffer_caret += pixel_block_size;
-@@ -314,13 +316,13 @@ int read_image_tga( gdIOCtx *ctx, oTga *tga )
- encoded_pixels = decompression_buffer[ buffer_caret ] + 1;
- buffer_caret++;
-
-- if ((bitmap_caret + (encoded_pixels * pixel_block_size)) >= image_block_size) {
-+ if ((bitmap_caret + (encoded_pixels * pixel_block_size)) > image_block_size) {
- gdFree( decompression_buffer );
- gdFree( conversion_buffer );
- return -1;
- }
-
-- memcpy(tga->bitmap + bitmap_caret, decompression_buffer + buffer_caret, encoded_pixels * pixel_block_size);
-+ memcpy(tga->bitmap + bitmap_caret, decompression_buffer + buffer_caret, encoded_pixels * pixel_block_size * sizeof(int));
- bitmap_caret += (encoded_pixels * pixel_block_size);
- buffer_caret += (encoded_pixels * pixel_block_size);
- }
-diff --git a/tests/tga/CMakeLists.txt b/tests/tga/CMakeLists.txt
-index c3a589c..789fb14 100644
---- a/tests/tga/CMakeLists.txt
-+++ b/tests/tga/CMakeLists.txt
-@@ -5,6 +5,7 @@ LIST(APPEND TESTS_FILES
- bug00247a
- bug00248
- bug00248a
-+ tga_read
- )
-
- ADD_GD_TESTS()
-diff --git a/tests/tga/Makemodule.am b/tests/tga/Makemodule.am
-index dff828f..a1e6af6 100644
---- a/tests/tga/Makemodule.am
-+++ b/tests/tga/Makemodule.am
-@@ -4,7 +4,8 @@ libgd_test_programs += \
- tga/bug00247a \
- tga/bug00248 \
- tga/bug00248a \
-- tga/tga_null
-+ tga/tga_null \
-+ tga/tga_read
-
- EXTRA_DIST += \
- tga/CMakeLists.txt \
-@@ -12,4 +13,7 @@ EXTRA_DIST += \
- tga/bug00247.tga \
- tga/bug00247a.tga \
- tga/bug00248.tga \
-- tga/bug00248a.tga
-+ tga/bug00248a.tga \
-+ tga/tga_read_rgb.png \
-+ tga/tga_read_rgb.tga \
-+ tga/tga_read_rgb_rle.tga
-diff --git a/tests/tga/tga_read.c b/tests/tga/tga_read.c
-new file mode 100644
-index 0000000..310b72f
---- /dev/null
-+++ b/tests/tga/tga_read.c
-@@ -0,0 +1,40 @@
-+/**
-+ * Basic test case for reading TGA files.
-+ */
-+
-+
-+#include "gd.h"
-+#include "gdtest.h"
-+
-+
-+static void assert_equals(char *exp, char *orig);
-+
-+
-+int main()
-+{
-+ assert_equals("tga_read_rgb.png", "tga_read_rgb.tga");
-+ assert_equals("tga_read_rgb.png", "tga_read_rgb_rle.tga");
-+
-+ return gdNumFailures();
-+}
-+
-+
-+static void assert_equals(char *exp, char *orig)
-+{
-+ gdImagePtr im;
-+ FILE *fp;
-+ char *filename;
-+
-+ fp = gdTestFileOpen2("tga", orig);
-+ gdTestAssertMsg(fp != NULL, "can't open %s", orig);
-+
-+ im = gdImageCreateFromTga(fp);
-+ gdTestAssertMsg(im != NULL, "can't read %s", orig);
-+ fclose(fp);
-+
-+ filename = gdTestFilePath2("tga", exp);
-+ gdAssertImageEqualsToFile(filename, im);
-+ gdFree(filename);
-+
-+ gdImageDestroy(im);
-+}
-diff --git a/tests/tga/tga_read_rgb.png b/tests/tga/tga_read_rgb.png
-new file mode 100644
-index 0000000000000000000000000000000000000000..bc468e3d927eaeb77d2f5c3bc35b970457f60f18
-GIT binary patch
-literal 2349
-zcmZ`*c{tSX7XOaO7-6K6b&RD_MnXy$nHe#bsVG~TvfZ*vO?Jle8%ar+AySDfStFGh
-zG#*)pL0RUPJ(FedBaE?x-*o@D_deZwpZ7WMdCuo~-t)faoX_)~lW+lNCI*p(001C{
-zHOJWSbt_+Pfp_!w<m@>WzS`|-X@&uIeytaE1*v>QB*5J9HUNl9{Spw6`Sc(k6uyJC
-zHWeNNLm|3~tCo{U002|57?VrEU+1$sy;a&|;-kbZl`6E_C%>gqbDtC=57F3fUD$)k
-zSG5DTL6#NnU=7wGcCw|<f|{rZi)5q<cVW*NQPQCY0xPU0_nGG#D?wR37BO^o^261%
-z+}quQI_1ZP=gTNp-n|;#)z~^;78o=e@tRYrS#8Jc>M{W*OdYEgjJp6u9Rb7l#X%t`
-zun;^h28uEP=P3Px?|rNGF#17D%A(CJ_ar|?n^0nq!~w+Wg23867ryn!Zlb|~&7A~z
-zqkP=IPyLrOM?58>2rEq=&{*9OMU!HNWJkg`(`y(=2{WLg392OTDyiM2$iCLcv5LCG
-zjWwRq46Da$pV|V^4Gvs36k1dWF^V4c8j%3~jN{*0*$phpF|-#zi@;k@t-s?cqW&sd
-zPh{x~@zm`!5V23*L&Qb=_elN~nEEqQhrhNZiRU#|qjK>6ptaYgj*sAcuS+t-7X5aB
-zUI5f*aL0Dut+y0vde?tg7QMa^0`(plvuD^Q>)J(abQY>@6P_*YY;XJ54VC^_f7F2x
-z21ee^35}!<L@bW?<-JgJ-%sahFv68xPXghCl|CsCc-P-A{`kl_3By}Mq}YnYYmSt4
-z8h8mx?<zBgq9CzV4*#zR8t}x5Or8!9Rn6LgajJ!B)ebxEtrwC@*p4M@D51#?OEY}<
-zqJHu+sCRU2YXNxiq(DP@*(Ui?Jz;IQ@O$Lbf}e8Nwij*L&iUd$N4-Ykfp$vDx#uv?
-z#_eULpAbPvN<tVA>Ek##rQDAOW+@)2?%}XiiSi^ted1PQu{v0&?bA^r%z?7*An3_H
-zvYFv8{p8fsCguNR$#3=6O{^H&8kT9N92CeaRAj3Y_cNl-znY8JZ{MpO#OK}A<_w9J
-zWMI2Kl?xv|S-FTV(aUG_`UWTZOFJGgv2)>JR#*H2Uad(wyqbIZt?w|Dw|k<eY&&9F
-zcr!zDg7=#H^=^MC+W02GN{78K=4Kuq90c@$7f$7+h)^YFm}-?3cEdU+Ivh5RC<+Yy
-zOz(7r<tT|Z34S@glz^9lpp@OstDBGA(iwk<LQ#r@i_)^MV*Re3^qB#j7N}4etZfK>
-zt6<wtj&M2(TLgTh3AH(}4;f4j=<Iu^axvT0!8B)K0O!7g?WnhIyGH5@EtT77&?E{6
-zB5<#{PWJOxQkF}LskzI@;(qVCjE%v-h|S8;`k#h^W5wR-cadW2H2Mk+7QZhqSRd!M
-zcQ8fpx~O^(^O#2gXiWDX&u@lZT#qjPG~Xh0UobVq#~Lumf!%S9`Jhf%MH?4Re5-17
-z7BP>D>=sy59jEGoeEx_W13BnmhAs?*j6#bG1a@#16O~1>q+P2@%QN~``Ws7=WX;F9
-z`=p5I$1ig*G|iW8vslr2^8hj+A0HWDoT-@fn5I53ZWWp!r8fMghmpjdqC%E#%2HFI
-zY&A(g!Li3+$<B^y8^Hw5!sXd&k%Ev!a;~aB#joj1?2ntu9|!GAFUwyc0oe_~y<}?E
-zUh@HUbCI(x2W1rmg7ckzRL2Ew#cdujut+*-t0g)81Tu+3ZH4uP`r1d1kSooU@5ybL
-zR5_J%A5sbak)KrSf>(r|V*&yCb;Ha(&ACi9w;?kQ7q1$hwjli^);+KIJAh|K&YL#E
-z+b(`PZN>V_5?v`hu-U429K9fO%8*k8pE=jDkn5ZJK|Vgl*@&QE^;mwlCxWbq4(hyi
-zUuz)bk@5^HOk@gB`SaWZfX07Eom07js%np8Xot&?YP8R+3|jrR4c#zO{LO<?^G84O
-zoP}G`MK)LZDo_$#nWR09X>NY_mL~1^BUG})*4b;Z_zq+`Q@kzUHC&`trCiQYum;1?
-zBic+0Bl>LLYU?>!B3k!Ils}uXR*`OEr3`f<P@HZFk`0fP5`^X=BOtC?@!vUq7B4OF
-zZEw6+3eoFRE@xEw(%DfIybhJuo03Du2ldm$20Sn3hj15Lu&gPQp=N%r%hME$*j{^@
-zRTffQhH7JLB-70qVkSm$9Zt`mahHLT7O^JnNqAAJs0C^n+1uj_E-}S^?&_U=H?;D_
-z1U9UJAz|+7z|Yq(6${A~5fhc}hH5twnKukf#Dn_JnQ$J4-Z$d}*Trq>?aKr2p19c6
-zYJ}r+^s>6aD~mrp;oIUhlig4sM)Jg3=J{K;dp#BCzRu1sU3D1wJl{jA^Y#ShVT+|^
-zUyjiM&wD~v3zy}K!zWm%3cpu#(*)cmxw1+n+C7V|hcZ6h8CZLubXt&J)h$6yflV6>
-zOVv_gDb*glO9FLL8x6bqM6(F#pGhGy+jjOyt9-daMWGrJKF{XvnT#^TeYaq2MG)qw
-zJ=RV;Mwg*goOa?(wM=EH<#AS$egRj*wnm+Bu4Pb{$-O}GZSiuT1UdBDwv2Rz)b3+L
-zRA=nkaWHB7I$T~B%;KynnS0b@3YpKqt$2;qzwLf>DZ4RFCQB!=QQ`Ft&y_PThuDsA
-zckawmbFnA9Tl7+Ez%a)>>T+Nh@8UxzrZP`<pHEXVd#|2v=f_b#A@|oAzbk6Q_>|O)
-zgw?Xli!)-)xrF2z=thH-TI;|>UVYK64@asT%484CF-pjk+~~wA+Z%fZYua+sDJ<Nf
-zfO`bfl}ig_0&C7BCuBa)xZ?-mQO=bQ2N5;>Sw}~|(tM}hK+z>+^8QQhOsTxl+2AJ+
-zX8WjlS|;0WRv7s_Bk=@u$v3GL@qC?&jcNEv<o68kaz!pHOs@;#CSh|{!j&zrsfn8j
-z6|o#^6C2NO9!G&u;Q0U5hkpCs|2Z3I$nNY~x}Tl<rOB|1KiB|RQyiuYbv@>9Cook&
-
-literal 0
-HcmV?d00001
-
-diff --git a/tests/tga/tga_read_rgb.tga b/tests/tga/tga_read_rgb.tga
-new file mode 100644
-index 0000000000000000000000000000000000000000..5f11f5a080f3424dff6ff368db6af140a5777e23
-GIT binary patch
-literal 90444
-zcmeI4Kab?b5yc6Af(;c(13`fU*%&xb;tQC_*aPhI`Y#kR+DO4FyO7x>23DD|fPu*!
-zc$3RVz$FeASlIpmlR7c>{0XS{cwI!Xhn!*0&G0z9w?L_y)m6=&?%yLhCt|YfC)vBd
-z@3Mbp-(`!RR#lbBv<6~842S_SAO^&M7!U(uKn#chF(3xSfEW-1Vn7Ut0Wly3#DEwO
-z17bi7hygJm2E>3E5CdYM&A?}$ex4m_TFdrYYCYz+9zh#Fz&|9|x2zKn^W#B#+TPQk
-zkGJqug1wSH+UqE;=D8ly$2|8{dOgm*N*~8rNAWn%b(B8lxv$dearRaEIL<nX$9b-!
-z^fAwUm0pjtuhPeH)=@mpa~-9RdG4$9dYpZgK8~}F;&GnqD1FRxU!~XM?5p%~oOKkB
-z^IXTEkMH5{66|-Z6BF}fVs88T*I)i3JJhoOSJ|O9w{_I#nWx?l)duSh)duUtlh$At
-z17Cjm-|T(t=^t5ksQGyXeY}RR66}rB$6N4TCD<$JL)!2RcC~{xmhcaW#u{p)fITEy
-zttmer=|ik~9;VU``gjIkB^qnU`Ab-pXwrv%OZ+UJZKV%gx2JNgp5i>D59woyTux<9
-z(uedh6&9yB59vetm?D=`nUnM(eN2VLDb7RskUpl!<y7V*eMlcuVR4G{kUpf3DRMcL
-zIY}SV$5dFH;yfm%k4wB~a-Co=-1}Dr-lw`wu&?y~m97o@G#T{q3H)`Uv4-!7EMeD)
-zw)K9=Z~mTThuUAV|7C~TzV%W6$E~45nY6k?xn!MZFO2s+{6m8MjdfuTKfpgE*thW<
-z{Cw2@xOHLsAGrJk{yNcELpGPN>qM)WwmHy;dAx?N66{Tw1IK#{s}k%La$6ep^HE#+
-za9lo1VAA+y4Y_=oz@+gjedzt&v$!^qahUWWUeAKpvG42Bhn^$GX6~HMCw)jC=fvyS
-zbCo`%kFl9Mr}If4(#JXRI`&+p59woU=FaJS(ueeMPP~piSLs9g7@N6sI-m3*eVh}o
-zW6yPB`q2AV`u~)Z`u~(cA78-VB^qn^p2#KaF44B$FA47vAM{(Ncz3vdANUYI_Vq~T
-zJFok7_+8Hr{@dw6AD4;m*uMzx*i#=x;yd<VQBUIaym%dZzk)u#fWJ#L*6_E}FJX6y
-zR{!R@|ExhDui;aE=k$%!$6N58@;j%mqz`GsGuYJ*`gjJP^1JEGWequh2}}9ibmmGQ
-z`krwX_ipJ!*U+x(reg27kUpdjX`!D1>7##b#EsTQ`Va%U4)il1ee|!5xY623A7Vh)
-zfqn+0kN&k0H(DF%Lk#FT(9eMM(Z4q0Mr$K|hyh&(`Wcv*KJ@;s-aDDpdnZ93Q+a<^
-z`j9>*rH}Wyw|@5N=h^$%`<z>~{m%qin`x{~&_)6OkZ858w2#x+NA1ID_95uwC47}=
-zz52*T_`_V+ZoXxF%76dsKew<oecZR}82QUk$J(XkqFq?rVsrM=+dI91F>*dfeUR^p
-zOs8;+{5;gLHn&=|ON(1<&R+VEKDzjZ2Kw$F(#J>m?+&_ubg5)Jru)Zfp6{oApOQYd
-zwa^ujKBNz5CFMK%pzr4xvxIHj*iUG$U^$H6v1y&(p%Guen9G_f*dx5vTC9wj2G56n
-z|5yYq@Of%s<Hq`6AI$y@fakh_U0A;Ni03elS1=yhthu+C<>UB*F_<5lxjeqIJnut3
-z$IoG`U%^;I&v~(rw(xbnjlQMNoBDNqtoebp40e+5=NOml8^f{p%x`^%M%@zTb9U92
-zey`caUXzcCKJMFfjC?Z2I$CbIXp=9ClcgtjY;nf67)H!$*JzV-%cp;I=eWXg*SM{G
-z<g|2%V~)!lp64;Nt>)excV35he&noN-o;q_P5nGz@Fe=cxFsxRdfmf(i(%wkbmVOi
-z<GmvulgFhoW*&QO%(TX~{yvYo+;Ngy9%9Bgxif~z9^;-Z_AjlDKIHhib%?RP2szXo
-zb1ZKaayY(coc$}-*dLD9FsrNkam>0$*aBw#8>@*ua-LwUy=ULlxgBeMVC(4mz?d=L
-z_l$AfL*EMCbKYVYeX+I**76U1IV`@fly#^3k7J@WwoB=3qAm}dkd@q$&?aw;nHAPY
-zkGSW%b<U`^)n{WM$234rTl(r4|H<k?-x@VGuhRF0{=)U=9sRs-S^X9J$Kr45=K*VE
-z?x@dK7_WdC|75w=hTj*&HZG^d4C4MiQTjTz(eKCSdA4$}-^NU9?0BsB7<EJRv5M<>
-zjM~z1wy>NiUh`*t=0grOa$~XBqwf(`bL{&Nv(L)Dt+i$hM%}T0Ywn2gyzFaqH+62u
-znjhFYg+6XEuIZ!mnU_qvoEF0_&M_9A1#2Vj?;)kd&10{Pnbz3W-{(;`L?3xqJ!<_u
-zq|pK5ox157qc4Ur$oM{eY<ASIP~Xx3bHlid(;DrJ#oyG=1J0<AOW0kav99wzjQAR6
-z`Y5~h4E?#wX&8>;RaY%z$lG}i?DabAc{6t3SU!%Lz54L^aXXxotd-Wsw#6;B%OjUM
-zD?;50zR?BR9J{qHINtkNk>fv?*DlXfkI5XH*VMTkYkuIY=KN6KHP49M!q(h-<VYWW
-zLC^-DH?WQ4)wtdAz7+ZEP_y$|;Kr`MgL4d5yYXXo?W<x{=lvjcT_Syye%-B&oGX~!
-zW14-9bW>S=?Dw6+?RztJJVw_s>il&!w;aSvSk0-$y1eBu-};Bt`kXMv2A<sC!l)bG
-zQ%nb~b#d{XpA~t{XF&S`wt&^23BL6loVw@AAFds+>%V`jj1%vpoYuag&vZk-^mW!o
-z{6l{K=$sQ6J4jooBdbp^vdU+vg?&!%Lto8v6gS<p*3sv%&2eF-hXQTt&W>B3NxTo|
-zJ$0?XuD>^IF^>ND-+x>CivCBKX=F=Z==0BJ%qu%s7{p9R-CoAQ)Ykbp4&p1v+l7tI
-ze2ZJmd-QdlGs;=m81zx!;LnQM`!EhYwMczD`tjIK-E-v+*Av$l%x)axyw+1Q)CIlg
-zpM1yqC=fG!(BE)O{-I56_<INY%evG32YWu48COQeJ6T1%gpnoM6RdT;#c>h(*uRR#
-zY-)Yn+8oQ(mKHZ3`i<p!4%SDH{&lEtt)tJeHuC&D>#-1P*4OgH`*7Y<*NSTlW~l?u
-z_^$TWzM?kP5H+#s8MCx~HSd@q%j9RD)x0AwhZ#4y8?Rv;{hN@pf@l0b9J7w+TUZ@E
-zj+<H^_ig0Zm>gprYP!Z|KdsSc$gk`Cn0;;JbB;C+{UXjy-E-v+*ORR^SdQ-lUL&6M
-zE`2O_=z-(-dq`>LH1C-49PDc6tVLb!*r{V7-Y|}SUhiYZIQE8p%=dqYHMKtO+pL3i
-zjmdEt=NMNo`wWHEBeo9lt#z~<?~%K5<8;=D_u;&!u9e>laJ+!s!q&m=;i;P(W_sz|
-zBlPomtc10+gk#qFF$;fAwz2;Oj7$x+MW|c2nmQKZxy4=HEn;Mob_2U$U;Kx7t2XYp
-zW90GN9LL7I568{8;kbmqa&-lc87nNd%d-|%1?#Ly-E-v+*Av(!|E7m#AN`)8pWK^1
-zntzY?IclF~1)z(S(?_E{e>U+xocGkVirDA1zqJQA=ChN3KDzOHqxR`m0J^w<*>l{g
-z?@XzCuKeM83jEu>fu366a~1CyYgpX3=-Vg7kFx^M1fQvL7@yhf*{XNl#rtsHQ`d?+
-z3Jt6x9e7RncENo8opuGF3A<;QHd_C`JU)Bso-2R2o@}k54}K5X^yq~5lcnX#pLPYH
-z5BttRos|2|Cf<khp1M}?+Cv8mSnjO#eI(A;@rPf5)IC@J>GY(v)!K>yF(3xSfEW-1
-zVn7Ut0Wly3#DEwO17bi7hygJm2E>3E5CdXB42S_SAO^&M7!U(uKn#chF(3xSfEW-1
-pVn7Ut0Wly3rpJK2`Txh?|LN;LKmWt?-@f?SH@|xR>#u*F{Rp+*(8>S+
-
-literal 0
-HcmV?d00001
-
-diff --git a/tests/tga/tga_read_rgb_rle.tga b/tests/tga/tga_read_rgb_rle.tga
-new file mode 100644
-index 0000000000000000000000000000000000000000..ce845ad0c3da65205af25854d64568b1cf0921e3
-GIT binary patch
-literal 9987
-zcmeI2J!~9R5Xbk<L5NgWrh*l6K@rf2A`LFK334O|$EPT_a+TuJx!kjzIGiJ2I<P>x
-ziiRRbk%9(oq!dtCIspYA&6UugGcC>X|IOQdZ+$+;#>5ek&eFVnJ3DVa{%>aX?a5Je
-zF>-%5qwk}eQT$4wzvw%Lr!o5$L%T1%_;U0&GrMhYD|*=1u+QBMI7bBz5GWAXUI?5o
-z4)=h152)YuP~W$``}B?1quuDQ!tKvI-d*GdmoNVj?N0AU(FV5-mWdwpH55x49>GD6
-z=%BBmXlU4mV>@qJ8fX!<cQoubnZc3TbVtK}?@1Y0!9an5mD0dE28xA&sM>=CL?@={
-z0-|RLqE&j)8olUxtrw;AqBVNamHEBs60Ks5R&l9p6>VC@T4)u!Z+{g<yLY2MYn^Q1
-zd9ELFE4tU$u)n0?3plJ1J?v}PZ)msyr`8V<5?$KSu-0S-M?&o#4QoBb4;grXfdT`M
-zN=c*-Fi>D%n-xb5tYDzPz)HDn9RtO}K-2&bfLTDa$ReF=%5-@43+;@(Xqh_Lqg5;e
-zg}THltzs{<ie37oodrXq8PIa=9O>E>BBIs4hP5RP*Wqxy6Qz9`Y(v8pI6+HwtX$ra
-zy1k}`<+7Ep?x=h3^=RRT3_QR<fq_Rg0|yu=Ft9z}zzPNm46Kv})-g~l4EUq{0-{A0
-z@uf#ui57)+Y^yj$Kb#Ty+&-!K64#`N?AC_rx07^75BGbIkyuBfFo`X6d}cobiI>AG
-z_yH!{gxCD>ho1(boNM2tG;8-@MK-H=sqwzy_Dk<p<<Y;ghphqw-d=+40((iXvX>d}
-zeC*AO?;PyiJI7egrh5aA*tASEv0P|sHWdv;37nkl7;GWQvslElsh1w>E)mVkrK5Wr
-zvyT~j8_(=*6BF=71Iw<4W?fOstUs?=BFaQ*Da#xiBX|}K8QkJdG}zFPqlKLAcr83*
-zWg<d$C_)R@Zt(9GMk4VnKb+4e=emmuJZ@>Q+HzQdV{TOj;%(7%jzp+KJSs$|sS9Fk
-zi>8|_;%+MHn6)L%h}LxJYN%Lsjm=l2JEG}rgt!}vT81WTD?iXN22oo(>Q%FW$7$$!
-zt&?$T0IopDHZ|A}nmLfzok8W3vju;nlA35T-r~-!Mh%-@xp^A6E=V4LfMg^hw4o2J
-zZI)js`N&kV*g%#wDTZ~m<nWLi1ePizuWxAjE=soYvC=mb&tTOxu05X^q<~*Zj<9wL
-zP=$-ZWz~5>cOy6~E}sky$N;c`=y|Ej2+1ZQ2f9i4w?h@e2{8NMT~!94nB@itGuLH}
-zXVpo_fLn+Ny=`_6ub%qVxz9IOHOQr&m-w|E<2CfOb2=CaIW-6=RoY?8DbvigNhHcJ
-zG#i_20Ls>TP|sG<1T!>Hm<6C_+a^z4YoiJ>5de05QI0M6IheVSK%5>}CEC#MwBHBI
-ziIa1Wpa&iZ_r@?tJkJ5<afw}YS{54Q*|ADIR<0rq7ju0Ezq{lB$w1gObbznQZdZVC
-zC{fEsk6_CHMd|PuWL7zD?Gbil$1PB(y&Zkn_I|ZCmODo!ml!;5_YN=f8&f%XLJ69i
-zw+YreoXy~Iho>|{-W{nZBP!8&Q$t}P*I~(hRwZ6%$Lp+>-V88<W1vX?KTsG@4Mp7*
-zP43JO--G~U!gJBc0<A+dG0?19zUEwf+}?LWRX6~j_TKxg%r*$-xiTt}Yajv!vcmP)
-zqnTh(gvtWBmMHdlF_;5HXb)v)Q_z7o(;nJBIi5s&D7DGOkh+Oa-OSuJgOmf2R1I-V
-zRL&L6j_DV<hr<B?9Mn_S!{H7Uhx4N2TcLZ}5FFv{ZJA>rG8_ARaUB|->lMt--ZnEI
-zTJ7{U4;S{j2Ay9PTlySLkZpPkSyjD9xB@11Gqz?H&}bm6INZyXa|<usjtD%sjy+Z`
-zO^{AKuWKHIUn2Ss=N8*9c5f<jyF%cp-^Zcb5%Fp{gGhMmxXnNb1>}y*$KYeSt=BT^
-z9)n8f69who6DC3I4i6#*smWsw#8aACPLFDXvaYploY`rTzv^v6%`=fZ=~tM<Gx7U2
-zGVu^u%W!94&zt&L+f3G5W^S(`9GhA$F^gxQaDFP%)PFP84q_$@7HzQb60>~+#d%*t
-zf%)V_G>Dlk3}01X6V9YA0}KH#x+MuyPXYm7$4BlC*YhI}#g|)Uh0-v*i7ggcv&@^C
-zjYO%ac80KpJfmhZkwXX$pH_*;t&cQIT_(xF6ht!Iic3UdT(%7ihfT|wtXWA&V1Sf;
-zU3WEU`G(*m{rfc5Lu-SUf;0gW_gTQ5!wKEEk(Qj)=S2;}8FVa^9uYEg=U`?TJS&;e
-zZ|IGrGhpnT4H$<N0L>R>%fn7eg+%K9in1ezX3K%Y`r6i<mRK!fyE0L3T&%#2e?}WI
-zcSMQE6&v2hGddfHYR&MD28%5H1s1ZQZU%;X@Wf!oTq<&1f;-%4`%tL#0yUz{`gTy@
-x8%~Vp2_Ce5$E=Cyg!2^tf$X%_aF4$a-uv+CN7vrJ_RjTJKYsJtTUTF;{sH~|7$pDz
-
-literal 0
-HcmV?d00001
-
---
-2.10.2
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.4.bb
index 562170694..4932bb7b6 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.3.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.4.bb
@@ -9,20 +9,14 @@ HOMEPAGE = "http://libgd.bitbucket.org/"
SECTION = "libs"
LICENSE = "GD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=c97638cafd3581eb87abd37332137669"
+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://fix-gcc-unused-functions.patch \
- file://CVE-2016-10166.patch \
- file://CVE-2016-10167.patch \
- file://CVE-2016-10168.patch \
- file://.gitignore-the-new-test-case.patch \
- file://Fix-290-TGA-RLE-decoding-is-broken.patch;apply=no \
- file://CVE-2016-6906-1.patch;apply=no \
- file://CVE-2016-6906-2.patch;apply=no"
+ "
-SRCREV = "46ceef5970bf3a847ff61d1bdde7501d66c11d0c"
+SRCREV = "de09874b15a4c88772db35ced842330f5de23e76"
S = "${WORKDIR}/git"
@@ -39,19 +33,6 @@ EXTRA_OECONF += " --disable-rpath \
EXTRA_OEMAKE = 'LDFLAGS="${LDFLAGS}"'
-do_git_apply () {
- cd ${S}
- if [ ! -f tests/tga/tga_read_rgb.png ]; then
- git apply ${S}/../Fix-290-TGA-RLE-decoding-is-broken.patch
- git apply ${S}/../CVE-2016-6906-1.patch
- git apply ${S}/../CVE-2016-6906-2.patch
- fi
-}
-
-do_patch_append() {
- bb.build.exec_func('do_git_apply', d)
-}
-
do_install_append() {
# cleanup buildpaths from gdlib.pc
sed -i -e 's#${STAGING_DIR_HOST}##g' ${D}${libdir}/pkgconfig/gdlib.pc
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_2017-08-20.18.bb
index c7c7ae850..b505ac18d 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_2017-08-20.18.bb
@@ -10,9 +10,8 @@ HOMEPAGE = "http://www.gnu.org/software/gnulib/"
SECTION = "devel"
LICENSE = "LGPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=e4cf3810f33a067ea7ccd2cd889fed21"
-SRCREV = "b6b3ed1fa4c6de12908a9f01d1689f156c3cd441"
-PV = "0.1.496+git${SRCPV}"
+LIC_FILES_CHKSUM = "file://COPYING;md5=56a22a6e5bcce45e2c8ac184f81412b5"
+SRCREV = "b23000de1e47c7d580e0e220966dd1ee42a5e5bc"
SRC_URI = "git://git.sv.gnu.org/gnulib;protocol=git \
"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-Fix-build-failure-for-ppc.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-Fix-build-failure-for-ppc.patch
deleted file mode 100644
index 27f855d1e..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-Fix-build-failure-for-ppc.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-Subject: Fix build failure for ppc
-
-Upstream-Status: Pending
-
-Fix the following build failure.
-
- error: 'siginfo_t' does not name a type
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
----
- src/stacktrace_powerpc-linux-inl.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/stacktrace_powerpc-linux-inl.h b/src/stacktrace_powerpc-linux-inl.h
-index 5d16fa1..a9bf775 100644
---- a/src/stacktrace_powerpc-linux-inl.h
-+++ b/src/stacktrace_powerpc-linux-inl.h
-@@ -44,6 +44,7 @@
-
- #include <stdint.h> // for uintptr_t
- #include <stdlib.h> // for NULL
-+#include <signal.h> // for siginfo_t
- #include <gperftools/stacktrace.h>
- #include <base/vdso_support.h>
-
---
-2.8.3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-disbale-heap-checkers-and-debug-allocator-on-musl.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-disbale-heap-checkers-and-debug-allocator-on-musl.patch
new file mode 100644
index 000000000..99127e11a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-disbale-heap-checkers-and-debug-allocator-on-musl.patch
@@ -0,0 +1,25 @@
+From b5961f17e9d7f2bc44da611b3e4b27c8a641fc72 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 2 Sep 2017 08:07:17 -0700
+Subject: [PATCH] disbale heap checkers and debug allocator on musl
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ configure.ac | 2 ++
+ 1 file changed, 2 insertions(+)
+
+Index: git/configure.ac
+===================================================================
+--- git.orig/configure.ac
++++ git/configure.ac
+@@ -51,6 +51,8 @@ case "$host" in
+ *-cygwin*) default_enable_heap_checker=no; default_enable_cpu_profiler=no;;
+ *-freebsd*) default_enable_heap_checker=no;;
+ *-darwin*) default_enable_heap_checker=no;;
++ *-musl*) default_enable_heap_checker=no; default_enable_heap_profiler=no;
++ default_enable_debugalloc=no; default_enable_libunwind=no;
+ esac
+
+ # Currently only backtrace works on s390.
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-fix-build-with-musl-libc.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-fix-build-with-musl-libc.patch
new file mode 100644
index 000000000..78621c7fe
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-fix-build-with-musl-libc.patch
@@ -0,0 +1,61 @@
+From 157914941bd38f1a38bb6bd7294ca6c2bc1b8dcb Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 16 Jul 2017 15:51:28 -0700
+Subject: [PATCH] fix build with musl libc
+
+Patch from https://github.com/gperftools/gperftools/pull/765/
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 1 +
+ src/malloc_hook_mmap_linux.h | 8 ++++++--
+ 2 files changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index b42fea3..70b49a3 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -188,6 +188,7 @@ AC_HEADER_STDC
+ AC_CHECK_TYPES([__int64]) # defined in some windows platforms
+ AC_CHECK_TYPES([struct mallinfo],,, [#include <malloc.h>])
+ AC_CHECK_TYPES([Elf32_Versym],,, [#include <elf.h>]) # for vdso_support.h
++AC_CHECK_FUNCS(__sbrk) # for intercepting glibc memory allocator
+ AC_CHECK_FUNCS(sbrk) # for tcmalloc to get memory
+ AC_CHECK_FUNCS(geteuid) # for turning off services when run as root
+ AC_CHECK_FUNCS(fork) # for the pthread_atfork setup
+diff --git a/src/malloc_hook_mmap_linux.h b/src/malloc_hook_mmap_linux.h
+index 79ac4e3..d444635 100755
+--- a/src/malloc_hook_mmap_linux.h
++++ b/src/malloc_hook_mmap_linux.h
+@@ -46,6 +46,10 @@
+ #include <errno.h>
+ #include "base/linux_syscall_support.h"
+
++#ifndef __GLIBC__
++typedef off64_t __off64_t;
++#endif
++
+ // The x86-32 case and the x86-64 case differ:
+ // 32b has a mmap2() syscall, 64b does not.
+ // 64b and 32b have different calling conventions for mmap().
+@@ -168,7 +172,7 @@ extern "C" void* mmap64(void *start, size_t length, int prot, int flags,
+ return result;
+ }
+
+-# if !defined(__USE_FILE_OFFSET64) || !defined(__REDIRECT_NTH)
++# if defined(__GLIBC__) && (!defined(__USE_FILE_OFFSET64) || !defined(__REDIRECT_NTH))
+
+ extern "C" void* mmap(void *start, size_t length, int prot, int flags,
+ int fd, off_t offset) __THROW {
+@@ -206,7 +210,7 @@ extern "C" void* mremap(void* old_addr, size_t old_size, size_t new_size,
+ return result;
+ }
+
+-#ifndef __UCLIBC__
++#if HAVE___SBRK
+ // libc's version:
+ extern "C" void* __sbrk(ptrdiff_t increment);
+
+--
+2.13.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-include-fcntl.h-for-loff_t-definition.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-include-fcntl.h-for-loff_t-definition.patch
new file mode 100644
index 000000000..667008a5b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-include-fcntl.h-for-loff_t-definition.patch
@@ -0,0 +1,28 @@
+From 04ea8e001501931f4dbf20288aca78469617b08a 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. */
+--
+2.13.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/disable_libunwind_aarch64.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/disable_libunwind_aarch64.patch
new file mode 100644
index 000000000..f2647404b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/disable_libunwind_aarch64.patch
@@ -0,0 +1,23 @@
+Disable libunwind on aarch64
+
+Fixes hangs when using libtcmalloc.so
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Index: git/configure.ac
+===================================================================
+--- git.orig/configure.ac
++++ git/configure.ac
+@@ -69,6 +69,11 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM(, [re
+ [default_enable_libunwind=yes
+ default_tcmalloc_pagesize=8])
+
++# Disable libunwind linking on aarch64 by default.
++AC_COMPILE_IFELSE([AC_LANG_PROGRAM(, [return __aarch64__])],
++ [default_enable_libunwind=no],
++ [default_enable_libunwind=yes])
++
+ AC_ARG_ENABLE([cpu-profiler],
+ [AS_HELP_STRING([--disable-cpu-profiler],
+ [do not build the cpu profiler])],
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/sgidef.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/sgidef.patch
new file mode 100644
index 000000000..7e1a23bf6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/sgidef.patch
@@ -0,0 +1,17 @@
+sgidef.h does not exist on musl and its not needed to compile
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+Index: git/src/base/linux_syscall_support.h
+===================================================================
+--- git.orig/src/base/linux_syscall_support.h
++++ git/src/base/linux_syscall_support.h
+@@ -164,7 +164,7 @@ extern "C" {
+ #include <endian.h>
+ #include <fcntl.h>
+
+-#ifdef __mips__
++#if defined(__mips__) && defined(__glibc__)
+ /* Include definitions of the ABI currently in use. */
+ #include <sgidefs.h>
+ #endif
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.5.bb
deleted file mode 100644
index 43780a5ee..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.5.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "Fast, multi-threaded malloc() and nifty performance analysis tools"
-HOMEPAGE = "http://code.google.com/p/gperftools/"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=762732742c73dc6c7fbe8632f06c059a"
-DEPENDS = "libunwind"
-
-SRC_URI = "http://pkgs.fedoraproject.org/repo/pkgs/gperftools/gperftools-2.5.tar.gz/aa1eaf95dbe2c9828d0bd3a00f770f50/gperftools-2.5.tar.gz \
- file://0001-Support-Atomic-ops-on-clang.patch \
- file://0001-Fix-build-failure-for-ppc.patch \
- file://0001-Use-ucontext_t-instead-of-struct-ucontext.patch \
- "
-
-SRC_URI[md5sum] = "aa1eaf95dbe2c9828d0bd3a00f770f50"
-SRC_URI[sha256sum] = "6fa2748f1acdf44d750253e160cf6e2e72571329b42e563b455bde09e9e85173"
-
-inherit autotools
-
-# 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 = "(i.86|x86_64|powerpc|powerpc64|arm|aarch64).*-linux*"
-# On aarch64, add this option to avoid system hanging when using libtcmalloc.so.
-EXTRA_OECONF_aarch64 += "--disable-libunwind"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.6.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.6.1.bb
new file mode 100644
index 000000000..ecac6c5cc
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.6.1.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Fast, multi-threaded malloc() and nifty performance analysis tools"
+HOMEPAGE = "https://github.com/gperftools/gperftools"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=762732742c73dc6c7fbe8632f06c059a"
+DEPENDS += "libunwind"
+
+SRCREV = "bf840dec0495e17f5c8403e68e10b9d6bf05c559"
+SRC_URI = "git://github.com/gperftools/gperftools \
+ file://0001-Support-Atomic-ops-on-clang.patch \
+ file://0001-Use-ucontext_t-instead-of-struct-ucontext.patch \
+ file://0001-fix-build-with-musl-libc.patch \
+ file://0001-include-fcntl.h-for-loff_t-definition.patch \
+ file://0001-disbale-heap-checkers-and-debug-allocator-on-musl.patch \
+ file://disable_libunwind_aarch64.patch \
+ file://sgidef.patch \
+ "
+
+inherit autotools
+
+S = "${WORKDIR}/git"
+
+# Disable thumb1
+# {standard input}: Assembler messages:
+# {standard input}:434: Error: lo register required -- `ldr pc,[sp]'
+# Makefile:4538: recipe for target 'src/base/libtcmalloc_la-linuxthreads.lo' failed
+ARM_INSTRUCTION_SET_armv5 = "arm"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gpm/gpm/0001-Use-sigemptyset-API-instead-of-__sigemptyset.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/gpm/gpm/0001-Use-sigemptyset-API-instead-of-__sigemptyset.patch
new file mode 100644
index 000000000..a9198166a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gpm/gpm/0001-Use-sigemptyset-API-instead-of-__sigemptyset.patch
@@ -0,0 +1,34 @@
+From 52e6cf052b1f938fcca1bc24d578fe0bfd972988 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 25 Jun 2017 07:25:33 -0700
+Subject: [PATCH] Use sigemptyset API instead of __sigemptyset
+
+__sigemptyset has been removed from glibc public
+API headers in upcoming (2.26) release onwards
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted
+
+ src/prog/gpm-root.y | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/src/prog/gpm-root.y b/src/prog/gpm-root.y
+index 5126c65..76c896c 100644
+--- a/src/prog/gpm-root.y
++++ b/src/prog/gpm-root.y
+@@ -1196,11 +1196,7 @@ int main(int argc, char **argv)
+ LOG_DAEMON : LOG_USER);
+ /* reap your zombies */
+ childaction.sa_handler=reap_children;
+-#if defined(__GLIBC__)
+- __sigemptyset(&childaction.sa_mask);
+-#else /* __GLIBC__ */
+ sigemptyset(&childaction.sa_mask);
+-#endif /* __GLIBC__ */
+ childaction.sa_flags=0;
+ sigaction(SIGCHLD,&childaction,NULL);
+
+--
+2.13.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gpm/gpm_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/gpm/gpm_git.bb
index 69f12d9b8..51c4dd639 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/gpm/gpm_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gpm/gpm_git.bb
@@ -12,10 +12,12 @@ SRCREV = "1fd19417b8a4dd9945347e98dfa97e4cfd798d77"
DEPENDS = "ncurses"
SRC_URI = "git://github.com/telmich/gpm;protocol=git \
+ file://init \
file://no-docs.patch \
file://processcreds.patch \
file://gpm.service.in \
- file://init"
+ file://0001-Use-sigemptyset-API-instead-of-__sigemptyset.patch \
+ "
S = "${WORKDIR}/git"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap/0001-Fix-out-of-tree-builds.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap/0001-Fix-out-of-tree-builds.patch
new file mode 100644
index 000000000..5ceb4bf02
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap/0001-Fix-out-of-tree-builds.patch
@@ -0,0 +1,178 @@
+From 8a10b6bd556426616e93f15639f369defbeca33f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 14 Aug 2017 11:58:58 -0700
+Subject: [PATCH] Fix out of tree builds
+
+When build dir is not same as sourcedir then the build failed due
+to use of $(srcdir) variable which assumes source = build therefore
+replace that with top_srcdir
+
+Additionally move the conditional addition of sources to Makefile.am
+instead of adding it in configure.ac, since then we can use top_srcdir
+variable to access those sources too otherwise its not possible to
+specify the right dir for these sources
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted[https://sourceforge.net/p/gsoap2/patches/171/]
+
+ configure.ac | 5 +++--
+ gsoap/Makefile.am | 14 +++++++-------
+ gsoap/samples/autotest/Makefile.am | 8 ++++----
+ gsoap/samples/databinding/Makefile.am | 8 ++++----
+ gsoap/wsdl/Makefile.am | 15 +++++++++------
+ 5 files changed, 27 insertions(+), 23 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 0631c18..c36e696 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -265,7 +265,7 @@ if test "x$with_openssl" = "xyes"; then
+ WSDL2H_EXTRA_FLAGS="-DWITH_OPENSSL -DWITH_GZIP"
+ # an ugly hack to get httpda and smdevp plugins to conditionally
+ # compile with wsdl2h when OPENSSL is available
+- WSDL2H_EXTRA_LIBS="${WSDL2H_EXTRA_LIBS} ../plugin/httpda.c ../plugin/smdevp.c ../plugin/threads.c -lssl -lcrypto -lz"
++ WSDL2H_EXTRA_LIBS="${WSDL2H_EXTRA_LIBS} -lssl -lcrypto -lz"
+ SAMPLE_INCLUDES=
+ SAMPLE_SSL_LIBS="-lssl -lcrypto -lz"
+ WSDL2H_SOAP_CPP_LIB="libgsoapssl++.a"
+@@ -289,12 +289,13 @@ else
+ SAMPLE_INCLUDES=
+ WSDL2H_SOAP_CPP_LIB="libgsoap++.a"
+ fi
++AM_CONDITIONAL(WITH_OPENSSL, test "x$with_openssl" = "xyes" -a "x$with_gnutls" != "xyes")
++AC_SUBST(WITH_OPENSSL)
+ AC_SUBST(WSDL2H_EXTRA_FLAGS)
+ AC_SUBST(WSDL2H_EXTRA_LIBS)
+ AC_SUBST(SAMPLE_INCLUDES)
+ AC_SUBST(SAMPLE_SSL_LIBS)
+ AC_SUBST(WSDL2H_SOAP_CPP_LIB)
+-
+ # enable the compile of the samples
+ AC_ARG_ENABLE(samples,
+ [ --enable-samples enable compile for the gsoap samples],
+diff --git a/gsoap/Makefile.am b/gsoap/Makefile.am
+index 7273b82..9c0c89f 100644
+--- a/gsoap/Makefile.am
++++ b/gsoap/Makefile.am
+@@ -13,26 +13,26 @@ AM_CXXFLAGS = $(SOAPCPP2_DEBUG) -D$(platform)
+ AM_CFLAGS = $(SOAPCPP2_DEBUG) -D$(platform)
+
+ # Install all soapcpp2 and wsdl2h files into ${prefix}/share/gsoap
+-nobase_pkgdata_DATA = $(srcdir)/import/* $(srcdir)/plugin/* $(srcdir)/WS/* $(srcdir)/custom/* $(srcdir)/extras/*
++nobase_pkgdata_DATA = $(top_srcdir)/gsoap/import/* $(top_srcdir)/gsoap/plugin/* $(top_srcdir)/gsoap/WS/* $(top_srcdir)/gsoap/custom/* $(top_srcdir)/gsoap/extras/*
+
+ ## we cannot build stdsoap2.o from 2 different sources (stdsoap2.cpp and stdsoap2.c), so we need an intermediate target:
+ stdsoap2_ck.c: stdsoap2.cpp
+- $(LN_S) -f $(srcdir)/stdsoap2.cpp stdsoap2_ck.c
++ $(LN_S) -f $(top_srcdir)/gsoap/stdsoap2.cpp stdsoap2_ck.c
+
+ stdsoap2_cpp.cpp: stdsoap2.cpp
+- $(LN_S) -f $(srcdir)/stdsoap2.cpp stdsoap2_cpp.cpp
++ $(LN_S) -f $(top_srcdir)/gsoap/stdsoap2.cpp stdsoap2_cpp.cpp
+
+ stdsoap2_ck_cpp.cpp: stdsoap2.cpp
+- $(LN_S) -f $(srcdir)/stdsoap2.cpp stdsoap2_ck_cpp.cpp
++ $(LN_S) -f $(top_srcdir)/gsoap/stdsoap2.cpp stdsoap2_ck_cpp.cpp
+
+ stdsoap2_ssl.c: stdsoap2.cpp
+- $(LN_S) -f $(srcdir)/stdsoap2.cpp stdsoap2_ssl.c
++ $(LN_S) -f $(top_srcdir)/gsoap/stdsoap2.cpp stdsoap2_ssl.c
+
+ stdsoap2_ssl_cpp.cpp: stdsoap2.cpp
+- $(LN_S) -f $(srcdir)/stdsoap2.cpp stdsoap2_ssl_cpp.cpp
++ $(LN_S) -f $(top_srcdir)/gsoap/stdsoap2.cpp stdsoap2_ssl_cpp.cpp
+ ## do the same fo dom.cpp since we want to link it into the cpp libs and dom.c into the c libs
+ dom_cpp.cpp: dom.cpp
+- $(LN_S) -f $(srcdir)/dom.cpp dom_cpp.cpp
++ $(LN_S) -f $(top_srcdir)/gsoap/dom.cpp dom_cpp.cpp
+
+ lib_LIBRARIES = libgsoap.a libgsoap++.a libgsoapck.a libgsoapck++.a libgsoapssl.a libgsoapssl++.a
+
+diff --git a/gsoap/samples/autotest/Makefile.am b/gsoap/samples/autotest/Makefile.am
+index 36adf51..61e514c 100644
+--- a/gsoap/samples/autotest/Makefile.am
++++ b/gsoap/samples/autotest/Makefile.am
+@@ -6,13 +6,13 @@
+ AUTOMAKE_OPTIONS = subdir-objects foreign 1.4
+
+ CPPFLAGS=-I$(top_srcdir)/gsoap -I$(top_srcdir)/gsoap/plugin
+-AM_LDFLAGS=$(CPPFLAGS) -I$(srcdir) -L$(srcdir)
++AM_LDFLAGS=$(CPPFLAGS) -I$(top_srcdir)/gsoap/samples/autotest -L$(top_srcdir)/gsoap/samples/autotest
+ SOAP=$(top_srcdir)/gsoap/src/soapcpp2$(EXEEXT)
+ WSDL=$(top_srcdir)/gsoap/wsdl/wsdl2h$(EXEEXT)
+-WSDL_FLAGS=-d -P -t $(srcdir)/typemap.dat
++WSDL_FLAGS=-d -P -t $(top_srcdir)/gsoap/samples/autotest/typemap.dat
+ SOAP_FLAGS=-SL -T -I$(top_srcdir)/gsoap/import -I$(top_srcdir)/gsoap/custom
+-WSDLINPUT=$(srcdir)/examples.wsdl
+-SOAPHEADER=$(srcdir)/examples.h
++WSDLINPUT=$(top_srcdir)/gsoap/samples/autotest/examples.wsdl
++SOAPHEADER=$(top_srcdir)/gsoap/samples/autotest/examples.h
+ SOAP_CPP_SRC=soapC.cpp soapServer.cpp
+ SOAP_CPP_LIB=$(top_builddir)/gsoap/libgsoap++.a
+
+diff --git a/gsoap/samples/databinding/Makefile.am b/gsoap/samples/databinding/Makefile.am
+index 892d4fd..86ad482 100644
+--- a/gsoap/samples/databinding/Makefile.am
++++ b/gsoap/samples/databinding/Makefile.am
+@@ -6,13 +6,13 @@
+ AUTOMAKE_OPTIONS = subdir-objects foreign 1.4
+
+ CPPFLAGS=$(SAMPLE_INCLUDES) -I$(top_srcdir)/gsoap -I$(top_srcdir)/gsoap/plugin
+-AM_LDFLAGS=$(AM_CPPFLAGS) -I$(srcdir) -L$(srcdir)
++AM_LDFLAGS=$(AM_CPPFLAGS) -I$(top_srcdir)/gsoap/samples/databinding -L$(top_srcdir)/gsoap/samples/databinding
+ SOAP=$(top_srcdir)/gsoap/src/soapcpp2$(EXEEXT)
+ WSDL=$(top_srcdir)/gsoap/wsdl/wsdl2h$(EXEEXT)
+-WSDL_FLAGS=-g -t $(srcdir)/addresstypemap.dat
++WSDL_FLAGS=-g -t $(top_srcdir)/gsoap/samples/databinding/addresstypemap.dat
+ SOAP_FLAGS=-0 -CS -p address -I$(top_srcdir)/gsoap/import
+-WSDLINPUT=$(srcdir)/address.xsd
+-SOAPHEADER=$(srcdir)/address.h
++WSDLINPUT=$(top_srcdir)/gsoap/samples/databinding/address.xsd
++SOAPHEADER=$(top_srcdir)/gsoap/samples/databinding/address.h
+ SOAP_CPP_SRC=addressC.cpp
+ SOAP_CPP_LIB=$(top_builddir)/gsoap/libgsoap++.a
+
+diff --git a/gsoap/wsdl/Makefile.am b/gsoap/wsdl/Makefile.am
+index b8da5db..9f2aefa 100644
+--- a/gsoap/wsdl/Makefile.am
++++ b/gsoap/wsdl/Makefile.am
+@@ -6,14 +6,14 @@
+ AUTOMAKE_OPTIONS = foreign 1.4
+
+ # INCLUDES=-I$(top_srcdir)/gsoap
+-# AM_LDFLAGS=$(INCLUDES) -I$(srcdir) -L$(srcdir)
+-AM_LDFLAGS=-L$(srcdir) -I$(top_srcdir)/gsoap -I$(top_srcdir)/gsoap/plugin
++# AM_LDFLAGS=$(INCLUDES) -I$(top_srcdir)/gsoap/wsdl -L$(top_srcdir)/gsoap/wsdl
++AM_LDFLAGS=-L$(top_srcdir)/gsoap/wsdl -I$(top_srcdir)/gsoap -I$(top_srcdir)/gsoap/plugin
+ AM_CPPFLAGS=-I$(top_srcdir)/gsoap -I$(top_srcdir)/gsoap/plugin
+ SOAP=$(top_builddir)/gsoap/src/soapcpp2$(EXEEXT)
+ SOAP_CPP_LIB=$(top_builddir)/gsoap/$(WSDL2H_SOAP_CPP_LIB)
+ SOAP_CPP_SRC=wsdlC.cpp
+-SOAPHEADER=$(srcdir)/wsdl.h
+-SOAP_FLAGS=-SC -pwsdl -I$(srcdir) -I$(top_srcdir)/gsoap/import
++SOAPHEADER=$(top_srcdir)/gsoap/wsdl/wsdl.h
++SOAP_FLAGS=-SC -pwsdl -I$(top_srcdir)/gsoap/wsdl -I$(top_srcdir)/gsoap/import
+ BUILT_SOURCES=$(SOAP_CPP_SRC)
+ # WSDL2H_EXTRA_FLAGS=-DWITH_OPENSSL -DWITH_GZIP # defined in configure.in
+ # WSDL2H_EXTRA_LIBS=-lssl -lcrypto -lz # defined in configure.in
+@@ -24,11 +24,14 @@ $(SOAP_CPP_SRC) : $(SOAPHEADER)
+ #LIBS=
+
+ bin_PROGRAMS=wsdl2h
+-
++if WITH_OPENSSL
++wsdl2h_LDADD=$(SOAP_CPP_LIB) $(top_srcdir)/gsoap/plugin/httpda.c $(top_srcdir)/gsoap/plugin/smdevp.c $(top_srcdir)/gsoap/plugin/threads.c $(WSDL2H_EXTRA_LIBS)
++else
++wsdl2h_LDADD=$(SOAP_CPP_LIB) $(WSDL2H_EXTRA_LIBS)
++endif
+ wsdl2h_CFLAGS=$(C_DEBUG_FLAGS) $(SOAPCPP2_NO_C_LOCALE) $(WSDL2H_EXTRA_FLAGS)
+ wsdl2h_CXXFLAGS=$(C_DEBUG_FLAGS) $(SOAPCPP2_NO_C_LOCALE) $(WSDL2H_EXTRA_FLAGS) $(WSDL2H_IMPORTPATH)
+ wsdl2h_CPPFLAGS=$(AM_CPPFLAGS) $(SOAPCPP2_NONAMESPACES) -D$(platform)
+ wsdl2h_SOURCES=wsdl2h.cpp wsdl.cpp wadl.cpp schema.cpp types.cpp service.cpp soap.cpp mime.cpp wsp.cpp bpel.cpp $(SOAP_CPP_SRC)
+-wsdl2h_LDADD=$(SOAP_CPP_LIB) $(WSDL2H_EXTRA_LIBS)
+
+ CLEANFILES= *~ *C.cpp *H.h *Stub.h *.nsmap
+--
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap/0001-stdgsoap2-Fix-build-with-musl.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap/0001-stdgsoap2-Fix-build-with-musl.patch
new file mode 100644
index 000000000..571cbe540
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap/0001-stdgsoap2-Fix-build-with-musl.patch
@@ -0,0 +1,63 @@
+From db260fbc7af4c73c997c485a0c69c61594a0e59c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 30 Aug 2017 19:48:50 -0700
+Subject: [PATCH] stdgsoap2: Fix build with musl
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ gsoap/stdsoap2.c | 2 +-
+ gsoap/stdsoap2.cpp | 4 ++--
+ gsoap/stdsoap2.h | 2 +-
+ 3 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/gsoap/stdsoap2.c b/gsoap/stdsoap2.c
+index 58e9df4..62389e1 100644
+--- a/gsoap/stdsoap2.c
++++ b/gsoap/stdsoap2.c
+@@ -4462,7 +4462,7 @@ tcp_gethost(struct soap *soap, const char *addr, struct in_addr *inaddr)
+ return soap->error = SOAP_EOM;
+ return SOAP_OK;
+ }
+-#if defined(__GLIBC__) || (defined(HAVE_GETHOSTBYNAME_R) && (defined(FREEBSD) || defined(__FreeBSD__))) || defined(__ANDROID__)
++#if defined(LINUX) || (defined(HAVE_GETHOSTBYNAME_R) && (defined(FREEBSD) || defined(__FreeBSD__))) || defined(__ANDROID__)
+ if (gethostbyname_r(addr, &hostent, soap->buf, sizeof(soap->buf), &host, &soap->errnum) < 0)
+ host = NULL;
+ #elif defined(_AIX43) || ((defined(TRU64) || defined(HP_UX)) && defined(HAVE_GETHOSTBYNAME_R))
+diff --git a/gsoap/stdsoap2.cpp b/gsoap/stdsoap2.cpp
+index 58e9df4..b637161 100644
+--- a/gsoap/stdsoap2.cpp
++++ b/gsoap/stdsoap2.cpp
+@@ -4462,7 +4462,7 @@ tcp_gethost(struct soap *soap, const char *addr, struct in_addr *inaddr)
+ return soap->error = SOAP_EOM;
+ return SOAP_OK;
+ }
+-#if defined(__GLIBC__) || (defined(HAVE_GETHOSTBYNAME_R) && (defined(FREEBSD) || defined(__FreeBSD__))) || defined(__ANDROID__)
++#if defined(LINUX) || (defined(HAVE_GETHOSTBYNAME_R) && (defined(FREEBSD) || defined(__FreeBSD__))) || defined(__ANDROID__)
+ if (gethostbyname_r(addr, &hostent, soap->buf, sizeof(soap->buf), &host, &soap->errnum) < 0)
+ host = NULL;
+ #elif defined(_AIX43) || ((defined(TRU64) || defined(HP_UX)) && defined(HAVE_GETHOSTBYNAME_R))
+@@ -19658,7 +19658,7 @@ soap_strerror(struct soap *soap)
+ {
+ #ifndef WIN32
+ # ifdef HAVE_STRERROR_R
+-# if defined(_GNU_SOURCE) && !defined(__ANDROID__)
++# if defined(_GNU_SOURCE) && !defined(__ANDROID__) && defined(__GLIBC__)
+ return strerror_r(err, soap->msgbuf, sizeof(soap->msgbuf)); /* GNU-specific */
+ # else
+ strerror_r(err, soap->msgbuf, sizeof(soap->msgbuf)); /* XSI-compliant */
+diff --git a/gsoap/stdsoap2.h b/gsoap/stdsoap2.h
+index 07a3952..c6ace4c 100644
+--- a/gsoap/stdsoap2.h
++++ b/gsoap/stdsoap2.h
+@@ -947,7 +947,7 @@ extern "C" {
+ # endif
+ #elif defined(SOCKLEN_T)
+ # define SOAP_SOCKLEN_T SOCKLEN_T
+-#elif defined(__socklen_t_defined) || defined(_SOCKLEN_T) || defined(CYGWIN) || defined(FREEBSD) || defined(__FreeBSD__) || defined(OPENBSD) || defined(__QNX__) || defined(QNX) || defined(OS390) || defined(__ANDROID__) || defined(_XOPEN_SOURCE)
++#elif defined(__socklen_t_defined) || defined(_SOCKLEN_T) || defined(CYGWIN) || defined(FREEBSD) || defined(__FreeBSD__) || defined(OPENBSD) || defined(__QNX__) || defined(QNX) || defined(OS390) || defined(__ANDROID__) || defined(_XOPEN_SOURCE) || defined (LINUX)
+ # define SOAP_SOCKLEN_T socklen_t
+ #elif defined(IRIX) || defined(WIN32) || defined(__APPLE__) || defined(SUN_OS) || defined(OPENSERVER) || defined(TRU64) || defined(VXWORKS)
+ # define SOAP_SOCKLEN_T int
+--
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.12.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.51.bb
index 6da08ac84..887584461 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.12.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.51.bb
@@ -1,19 +1,21 @@
DESCRIPTION = "The gSOAP toolkit provides a unique SOAP-to-C/C++ language binding \
for the development of SOAP Web Services and clients."
SECTION = "devel"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b338b08b1b61e028e0f399a4de25e58f"
+LICENSE = "GPL-2.0-with-OpenSSL-exception"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4f40a941379143186f9602242c3fb729 \
+ file://GPLv2_license.txt;md5=a33672dbe491b6517750a0389063508b"
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}2/${BPN}_${PV}.zip"
-SRC_URI[md5sum] = "5700d26fc6fe3073d038349e19c3640d"
-SRC_URI[sha256sum] = "51eef118544fa846f4d2dea2eedf91c84c46a1abeafc5eee3dcff783f4015a00"
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}2/${BPN}_${PV}.zip \
+ file://0001-Fix-out-of-tree-builds.patch \
+ file://0001-stdgsoap2-Fix-build-with-musl.patch \
+ "
+SRC_URI[md5sum] = "212951d6e1435bb51fa4320f458809ea"
+SRC_URI[sha256sum] = "3e7bb24a9e492f5cb86daca34054c9787152f1d7b70add36b789d03816d5ffa1"
inherit autotools
BBCLASSEXTEND = "native"
-PR = "r1"
-
S = "${WORKDIR}/${BPN}-2.8"
PARALLEL_MAKE = ""
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/0001-backtrace-Replace-struct-ucontext-with-ucontext_t.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/0001-backtrace-Replace-struct-ucontext-with-ucontext_t.patch
new file mode 100644
index 000000000..cfffa2ed0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/0001-backtrace-Replace-struct-ucontext-with-ucontext_t.patch
@@ -0,0 +1,37 @@
+From d195f8cfe41991573128ccdcd3a0ed0267aa5e33 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 28 Jun 2017 19:44:46 -0700
+Subject: [PATCH] backtrace: Replace struct ucontext with ucontext_t
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/backtrace.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/backtrace.c b/src/backtrace.c
+index 69bee99..dc35f8f 100644
+--- a/src/backtrace.c
++++ b/src/backtrace.c
+@@ -42,7 +42,7 @@
+ #define MAX_BTSIZE 64
+
+ void backtrace_handler(int n, siginfo_t *ist, void *extra) {
+- static struct ucontext *puc;
++ static ucontext_t *puc;
+ static void *btinfo[MAX_BTSIZE];
+ static char **messages = NULL;
+ static size_t btsize = 0;
+@@ -58,7 +58,7 @@ void backtrace_handler(int n, siginfo_t *ist, void *extra) {
+
+ #define SIC_CASE(c) case c: strerr = #c
+
+- puc = (struct ucontext *)extra;
++ puc = (ucontext_t *)extra;
+ switch(n) {
+ case SIGSEGV:
+ switch(ist->si_code) {
+--
+2.13.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp_0.3-beta15.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp_0.3-beta15.bb
index 601b7b115..4a871bf4f 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp_0.3-beta15.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp_0.3-beta15.bb
@@ -8,6 +8,7 @@ SRC_URI = "${SAVANNAH_NONGNU_MIRROR}/hddtemp/hddtemp-0.3-beta15.tar.bz2 \
file://hddtemp-no-nls-support.patch \
file://hddtemp_0.3-beta15-52.diff \
file://hddtemp-0.3-beta15-autodetect-717479.patch \
+ file://0001-backtrace-Replace-struct-ucontext-with-ucontext_t.patch \
file://hddtemp.db \
file://init \
"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel_1.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel_1.4.bb
deleted file mode 100644
index 3dc22c590..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel_1.4.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Fast and portable XML parser and Jabber protocol library"
-AUTHOR = "Gurer Ozen <meduketto at gmail.com>"
-HOMEPAGE = "http://iksemel.googlecode.com"
-SECTION = "libs"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499"
-DEPENDS = "gnutls"
-
-PR = "r1"
-
-# http://errors.yoctoproject.org/Errors/Details/25825/
-PNBLACKLIST[iksemel] ?= "Not compatible with gnutls version 3.4 currently in oe-core - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-
-SRC_URI = "http://iksemel.googlecode.com/files/${BP}.tar.gz;name=archive \
- file://r25.diff"
-SRC_URI[archive.md5sum] = "532e77181694f87ad5eb59435d11c1ca"
-SRC_URI[archive.sha256sum] = "458c1b8fb3349076a6cecf26c29db1d561315d84e16bfcfba419f327f502e244"
-
-inherit autotools pkgconfig
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.7.bb
index 960cb00ef..669534eaa 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.2.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.7.bb
@@ -1,20 +1,16 @@
SUMMARY = "ImageMagick is an image convertion tools"
SECTION = "console/utils"
LICENSE = "ImageMagick"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=22d47a47bf252ca3ed7f71273b53612e"
+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"
-# Important note: tarballs for all patchsets within a version are deleted when
-# a new pachset is created. To avoid multiple patches for each patchset, try to
-# update to the last pachset of a version
-PATCHSET = "10"
-SRC_URI = "http://www.imagemagick.org/download/releases/ImageMagick-${PV}-${PATCHSET}.tar.xz \
-"
-SRC_URI[md5sum] = "e1cb23d9c10a8eff228ef30ee281711a"
-SRC_URI[sha256sum] = "dad306bfd7730e1665c6fdb6eb478fb2c41e2db71ab56451bbaebe9df546b1d2"
+BASE_PV := "${PV}"
+PV .= "_7"
+SRC_URI = "git://github.com/ImageMagick/ImageMagick.git "
+SRCREV = "e12602b39b5e778240d286b6f9bbbc0fe3fb26c5"
-S = "${WORKDIR}/ImageMagick-${PV}-${PATCHSET}"
+S = "${WORKDIR}/git"
inherit autotools pkgconfig update-alternatives
@@ -33,16 +29,12 @@ PACKAGECONFIG[webp] = "--with-webp,--without-webp,libwebp"
PACKAGECONFIG[wmf] = "--with-wmf,--without-wmf,libwmf"
PACKAGECONFIG[x11] = "--with-x,--without-x,virtual/libx11 libxext libxt"
-FILES_${PN} += "${libdir}/ImageMagick-${PV}/modules-Q16/*/*.so \
- ${libdir}/ImageMagick-${PV}/modules-Q16/*/*.la \
- ${libdir}/ImageMagick-${PV}/modules-Q16/filters \
- ${libdir}/ImageMagick-${PV}/modules-Q16/coders \
- ${libdir}/ImageMagick-${PV}/config-Q16* \
- ${datadir}/ImageMagick-7 "
+FILES_${PN} += "${libdir}/ImageMagick-${BASE_PV}/config-Q16* \
+ ${datadir}/ImageMagick-7"
-FILES_${PN}-dev += "${libdir}/ImageMagick-${PV}/modules-Q16/*/*.a"
+FILES_${PN}-dev += "${libdir}/ImageMagick-${BASE_PV}/modules-Q16/*/*.a"
-FILES_${PN}-dbg += "${libdir}/ImageMagick-${PV}/modules-Q16/*/.debug/*"
+FILES_${PN}-dbg += "${libdir}/ImageMagick-${BASE_PV}/modules-Q16/*/.debug/*"
BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools/inotify-nosys-fix-system-call-number.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools/inotify-nosys-fix-system-call-number.patch
new file mode 100644
index 000000000..89b890dda
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools/inotify-nosys-fix-system-call-number.patch
@@ -0,0 +1,31 @@
+inotify-tools: fix __NR_inotify_add_watch system call number on _MIPS_SIM_ABI64
+
+The correct value should be the same as defined in
+linux/arch/mips/include/uapi/asm/unistd.h
+
+Upstream-Status: Summitted [https://github.com/rvoicilas/inotify-tools/pull/71]
+
+Signed-off-by: Roy Li <rongqing.li@windriver.com>
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+---
+ libinotifytools/src/inotifytools/inotify-nosys.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/libinotifytools/src/inotifytools/inotify-nosys.h b/libinotifytools/src/inotifytools/inotify-nosys.h
+index db76b2c..5f7b11b 100644
+--- a/libinotifytools/src/inotifytools/inotify-nosys.h
++++ b/libinotifytools/src/inotifytools/inotify-nosys.h
+@@ -100,8 +100,8 @@ struct inotify_event {
+ # endif
+ # if _MIPS_SIM == _MIPS_SIM_ABI64
+ # define __NR_inotify_init (__NR_Linux + 243)
+-# define __NR_inotify_add_watch (__NR_Linux + 243)
+-# define __NR_inotify_rm_watch (__NR_Linux + 243)
++# define __NR_inotify_add_watch (__NR_Linux + 244)
++# define __NR_inotify_rm_watch (__NR_Linux + 245)
+ # endif
+ # if _MIPS_SIM == _MIPS_SIM_NABI32
+ # define __NR_inotify_init (__NR_Linux + 247)
+--
+1.7.10.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools_git.bb
index a8ef55764..efc753d5b 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools_git.bb
@@ -10,6 +10,7 @@ PV = "3.14+git${SRCPV}"
SRC_URI = "git://github.com/rvoicilas/${BPN} \
file://inotifywait-fix-compile-error-with-GCC-6.patch \
+ file://inotify-nosys-fix-system-call-number.patch \
"
S = "${WORKDIR}/git"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ipmiutil/ipmiutil/fix_systemd_path.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/ipmiutil/ipmiutil/fix_systemd_path.patch
index 2fa7c6883..33116b3c0 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/ipmiutil/ipmiutil/fix_systemd_path.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/ipmiutil/ipmiutil/fix_systemd_path.patch
@@ -6,115 +6,11 @@ Upstream Status: Inappropriate [Embedded]
Signed-off-By: Armin Kuster <akuster@mvista.com>
-Index: ipmiutil-2.9.6/configure
+Index: ipmiutil-3.0.5/configure.ac
===================================================================
---- ipmiutil-2.9.6.orig/configure
-+++ ipmiutil-2.9.6/configure
-@@ -792,7 +792,6 @@ LTLIBOBJS
- LIBOBJS
- pkgconfigdir
- SHR_LINK
--SYSTEMD_DIR
- CROSS_LFLAGS
- CROSS_CFLAGS
- SUBDIR_S
-@@ -999,7 +998,7 @@ psdir='${docdir}'
- libdir='${exec_prefix}/lib'
- localedir='${datarootdir}/locale'
- mandir='${datarootdir}/man'
--
-+systemddir='${datarootdir}/ipmiutil'
- ac_prev=
- ac_dashdash=
- for ac_option
-@@ -1594,7 +1593,10 @@ Optional Features:
- --enable-standalone build standalone, with no GPL or LanPlus libs.
- --enable-libsensors build libipmiutil with sensor modules [default=no]
- --enable-gpl build with some GPL code [default=no]
-- --enable-systemd enable systemd service type=notify support and %_unitdir [default=disabled]
-+ --enable-systemd[=systemddir] install systemd unit file. If 'yes'
-+ probe the system for unit directory.
-+ If a path is specified, assume that
-+ is a valid install path. [default=disabled]
-
- Optional Packages:
- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
-@@ -12980,7 +12982,6 @@ CROSS_LFLAGS=""
- CROSS_CFLAGS=""
- LIBSENSORS=""
- SAM2OBJ="isensor2.o ievents2.o"
--SYSTEMD_DIR=/usr/share/ipmiutil
-
- # Check whether --enable-useflags was given.
- if test "${enable_useflags+set}" = set; then
-@@ -13032,31 +13033,43 @@ if test "${enable_gpl+set}" = set; then
- fi
-
- fi
--
-+#
-+# Check for systemd unit files direectory exists if unit file installation
-+# is requested
-+#
-
- # Check whether --enable-systemd was given.
--if test "${enable_systemd+set}" = set; then
-- enableval=$enable_systemd;
--fi
--
--if test "x$enable_systemd" = "xyes"; then
-- GPL_CFLAGS="$GPL_CFLAGS -DENABLE_SYSTEMD"
-- # if systemd enabled, install service scripts in unitdir
-- SYSTEMD_DIR=`rpm --eval "%{_unitdir}"`
--else
-- # otherwise install the systemd service scripts in the data dir
-- if test "x$sysname" = "xDarwin" ; then
-- # MacOS 'which' command returns 0 always
-- SYSTEMD_DIR=/usr/share/ipmiutil
-- else
-+if test "${enable_systemd+set}" = set; then :
-+ withval=$enable_systemd; if test "$withval" = yes; then
-+ GPL_CFLAGS="$GPL_CFLAGS -DENABLE_SYSTEMD"
-+ if test -z "$systemddir"; then
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking location of the systemd unit files directory" >&5
-+$as_echo_n "checking location of the systemd unit files directory... " >&6; }
-+ _rpmdir = ""
- which rpm >/dev/null 2>&1
- if test $? -eq 0 ; then
-- datad=`rpm --eval "%{_datadir}"`
-- SYSTEMD_DIR=${datad}/ipmiutil
-- else
-- SYSTEMD_DIR=/usr/share/ipmiutil
-+ _rpmdir = `rpm --eval "%{_unitdir}"`
- fi
-+ for systemd_d in ${datadir}/usr/share/ipmiutil ${_rpmdir} /usr/share/ipmiutil; do
-+ if test -z "$systemddir"; then
-+ if test -d "$systemd_d"; then
-+ systemddir="$systemd_d"
-+ fi
-+ fi
-+ done
- fi
-+ if test -n "$systemddir"; then
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $systemddir" >&5
-+$as_echo "$systemddir" >&6; }
-+ else
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
-+$as_echo "not found" >&6; }
-+ fi
-+else
-+ if test "$withval" != no; then
-+ systemddir=$withval
-+ fi
-+fi
- fi
-
- case "$archm" in
-Index: ipmiutil-2.9.6/configure.ac
-===================================================================
---- ipmiutil-2.9.6.orig/configure.ac
-+++ ipmiutil-2.9.6/configure.ac
-@@ -140,7 +140,6 @@ CROSS_LFLAGS=""
+--- ipmiutil-3.0.5.orig/configure.ac
++++ ipmiutil-3.0.5/configure.ac
+@@ -149,7 +149,6 @@ CROSS_LFLAGS=""
CROSS_CFLAGS=""
LIBSENSORS=""
SAM2OBJ="isensor2.o ievents2.o"
@@ -122,7 +18,7 @@ Index: ipmiutil-2.9.6/configure.ac
AC_ARG_ENABLE([useflags],
[ --enable-useflags include environment CFLAGS and LDFLAGS.],
-@@ -191,25 +190,42 @@ AC_ARG_ENABLE([gpl],
+@@ -200,29 +199,42 @@ AC_ARG_ENABLE([gpl],
dnl Does this Linux have systemd enabled? Otherwise use sysv init.
AC_ARG_ENABLE([systemd],
@@ -130,7 +26,12 @@ Index: ipmiutil-2.9.6/configure.ac
-if test "x$enable_systemd" = "xyes"; then
- GPL_CFLAGS="$GPL_CFLAGS -DENABLE_SYSTEMD"
- # if systemd enabled, install service scripts in unitdir
-- SYSTEMD_DIR=`rpm --eval "%{_unitdir}"`
+- which rpm >/dev/null 2>&1
+- if test $? -eq 0 ; then
+- SYSTEMD_DIR=`rpm --eval "%{_unitdir}"`
+- else
+- SYSTEMD_DIR=/usr/share/ipmiutil
+- fi
+ [ --enable-systemd[=systemddir] install systemd unit file. If 'yes'
+ probe the system for unit directory.
+ If a path is specified, assume that
@@ -164,16 +65,15 @@ Index: ipmiutil-2.9.6/configure.ac
+ fi
else
- # otherwise install the systemd service scripts in the data dir
-- if test "x$sysname" = "xDarwin" ; then
-- # MacOS 'which' command returns 0 always
-- SYSTEMD_DIR=/usr/share/ipmiutil
-- else
-- which rpm >/dev/null 2>&1
-- if test $? -eq 0 ; then
-- datad=`rpm --eval "%{_datadir}"`
-- SYSTEMD_DIR=${datad}/ipmiutil
-- else
-- SYSTEMD_DIR=/usr/share/ipmiutil
+- SYSTEMD_DIR=/usr/share/ipmiutil
+- if test "x$sysname" != "xDarwin" ; then
+- if test "x$os" != "xhpux" ; then
+- # MacOS and HP-UX: 'which' command returns 0 always
+- which rpm >/dev/null 2>&1
+- if test $? -eq 0 ; then
+- datad=`rpm --eval "%{_datadir}"`
+- SYSTEMD_DIR=${datad}/ipmiutil
+- fi
- fi
- fi
+ if test "$withval" != no; then
@@ -183,7 +83,7 @@ Index: ipmiutil-2.9.6/configure.ac
fi
dnl start main logic
-@@ -481,7 +497,7 @@ AC_SUBST(INS_LIB)
+@@ -528,7 +540,7 @@ AC_SUBST(INS_LIB)
AC_SUBST(SUBDIR_S)
AC_SUBST(CROSS_CFLAGS)
AC_SUBST(CROSS_LFLAGS)
@@ -192,74 +92,10 @@ Index: ipmiutil-2.9.6/configure.ac
AC_SUBST(SHR_LINK)
AC_SUBST(pkgconfigdir)
-Index: ipmiutil-2.9.6/Makefile.in
-===================================================================
---- ipmiutil-2.9.6.orig/Makefile.in
-+++ ipmiutil-2.9.6/Makefile.in
-@@ -182,7 +182,7 @@ SHELL = @SHELL@
- SHR_LINK = @SHR_LINK@
- STRIP = @STRIP@
- SUBDIR_S = @SUBDIR_S@
--SYSTEMD_DIR = @SYSTEMD_DIR@
-+SYSTEMD_DIR = @systemddir@
- VERSION = @VERSION@
- abs_builddir = @abs_builddir@
- abs_srcdir = @abs_srcdir@
-@@ -233,6 +233,7 @@ sbindir = @sbindir@
- sharedstatedir = @sharedstatedir@
- srcdir = @srcdir@
- sysconfdir = @sysconfdir@
-+systemddir = @systemddir@
- target_alias = @target_alias@
- top_build_prefix = @top_build_prefix@
- top_builddir = @top_builddir@
-Index: ipmiutil-2.9.6/scripts/Makefile.in
-===================================================================
---- ipmiutil-2.9.6.orig/scripts/Makefile.in
-+++ ipmiutil-2.9.6/scripts/Makefile.in
-@@ -126,7 +126,7 @@ SHELL = @SHELL@
- SHR_LINK = @SHR_LINK@
- STRIP = @STRIP@
- SUBDIR_S = @SUBDIR_S@
--SYSTEMD_DIR = @SYSTEMD_DIR@
-+SYSTEMD_DIR = @systemddir@
- VERSION = @VERSION@
- abs_builddir = @abs_builddir@
- abs_srcdir = @abs_srcdir@
-@@ -195,7 +195,8 @@ cronto = ${DESTDIR}${etcdir}/cron.daily
- sbinto = ${DESTDIR}${sbindir}
- varto = ${DESTDIR}/var/lib/ipmiutil
- initto = ${DESTDIR}@INIT_DIR@
--sysdto = ${DESTDIR}@SYSTEMD_DIR@
-+sysdto = ${DESTDIR}@systemddir@
-+systemddir = @systemddir@
- sysvinit = ${datato}
- sbinfls = ialarms ihealth ifru igetevent ireset icmd isol ilan isensor isel iserial iwdt iconfig ipicmg ifirewall ifwum ihpm
- all: all-am
-@@ -398,11 +399,14 @@ install:
- ${INSTALL_SCRIPT_SH} evt.sh ${datato}
- if [ -f /etc/debian_version ]; then \
- sysvinit=${initto}; fi
-- ${INSTALL_SCRIPT_SH} ipmiutil_wdt ${sysvinit}/ipmiutil_wdt
-- ${INSTALL_SCRIPT_SH} ipmiutil_asy ${sysvinit}/ipmiutil_asy
-- ${INSTALL_SCRIPT_SH} ipmiutil_evt ${sysvinit}/ipmiutil_evt
-- ${INSTALL_SCRIPT_SH} ipmi_port.sh ${sysvinit}/ipmi_port
-- ${INSTALL_SCRIPT_SH} ipmi_info ${sysvinit}/ipmi_info
-+ if [ ! -z "${systemddir}" ]; then \
-+ $(MKDIR) ${sysdto}; \
-+ ${INSTALL_SCRIPT_SH} ipmiutil_wdt ${sysvinit}/ipmiutil_wdt; \
-+ ${INSTALL_SCRIPT_SH} ipmiutil_asy ${sysvinit}/ipmiutil_asy; \
-+ ${INSTALL_SCRIPT_SH} ipmiutil_evt ${sysvinit}/ipmiutil_evt; \
-+ ${INSTALL_SCRIPT_SH} ipmi_port.sh ${sysvinit}/ipmi_port; \
-+ ${INSTALL_SCRIPT_SH} ipmi_info ${sysvinit}/ipmi_info; \
-+ fi
- ${INSTALL_SCRIPT_SH} checksel ${datato}
- ${INSTALL_DATA_SH} ipmiutil_wdt.service ${sysdto}
- ${INSTALL_DATA_SH} ipmiutil_asy.service ${sysdto}
-Index: ipmiutil-2.9.6/scripts/Makefile.am
+Index: ipmiutil-3.0.5/scripts/Makefile.am
===================================================================
---- ipmiutil-2.9.6.orig/scripts/Makefile.am
-+++ ipmiutil-2.9.6/scripts/Makefile.am
+--- ipmiutil-3.0.5.orig/scripts/Makefile.am
++++ ipmiutil-3.0.5/scripts/Makefile.am
@@ -17,7 +17,8 @@ cronto = ${DESTDIR}${etcdir}/cron.daily
sbinto = ${DESTDIR}${sbindir}
varto = ${DESTDIR}/var/lib/ipmiutil
@@ -268,7 +104,7 @@ Index: ipmiutil-2.9.6/scripts/Makefile.am
+sysdto = ${DESTDIR}@systemddir@
+systemddir = @systemddir@
sysvinit = ${datato}
- sbinfls = ialarms ihealth ifru igetevent ireset icmd isol ilan isensor isel iserial iwdt iconfig ipicmg ifirewall ifwum ihpm
+ sbinfls = ialarms ihealth ifru igetevent ireset icmd isol ilan isensor isel iserial iwdt iconfig ipicmg ifirewall ifwum ihpm iuser
@@ -47,10 +48,14 @@ install:
${INSTALL_SCRIPT_SH} ipmi_port.sh ${sysvinit}/ipmi_port
@@ -289,30 +125,3 @@ Index: ipmiutil-2.9.6/scripts/Makefile.am
${INSTALL_SCRIPT_SH} ipmiutil.env ${datato}
${INSTALL_SCRIPT_SH} ipmiutil.pre ${datato}
${INSTALL_SCRIPT_SH} ipmiutil.setup ${datato}
-Index: ipmiutil-2.9.6/lib/Makefile.in
-===================================================================
---- ipmiutil-2.9.6.orig/lib/Makefile.in
-+++ ipmiutil-2.9.6/lib/Makefile.in
-@@ -128,7 +128,7 @@ SHELL = @SHELL@
- SHR_LINK = @SHR_LINK@
- STRIP = @STRIP@
- SUBDIR_S = @SUBDIR_S@
--SYSTEMD_DIR = @SYSTEMD_DIR@
-+SYSTEMD_DIR = @systemddir@
- VERSION = @VERSION@
- abs_builddir = @abs_builddir@
- abs_srcdir = @abs_srcdir@
-Index: ipmiutil-2.9.6/lib/lanplus/Makefile.in
-===================================================================
---- ipmiutil-2.9.6.orig/lib/lanplus/Makefile.in
-+++ ipmiutil-2.9.6/lib/lanplus/Makefile.in
-@@ -177,7 +177,8 @@ SHELL = @SHELL@
- SHR_LINK = @SHR_LINK@
- STRIP = @STRIP@
- SUBDIR_S = @SUBDIR_S@
--SYSTEMD_DIR = @SYSTEMD_DIR@
-+SYSTEMD_DIR = @systemddir@
-+systemddir = @systemddir@
- VERSION = @VERSION@
- abs_builddir = @abs_builddir@
- abs_srcdir = @abs_srcdir@
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ipmiutil/ipmiutil_2.9.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/ipmiutil/ipmiutil_3.0.5.bb
index ee0766ea7..338cafd53 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/ipmiutil/ipmiutil_2.9.6.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/ipmiutil/ipmiutil_3.0.5.bb
@@ -13,17 +13,17 @@ is detected."
HOMEPAGE = "http://ipmiutil.sourceforge.net"
LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=5f9372493401f309e6149dd2ce0a044b"
+LIC_FILES_CHKSUM = "file://COPYING;md5=626a5970304daa1fcb87f757fb42b795"
DEPENDS += "openssl"
PARALLEL_MAKE = ""
SRC_URI = "${SOURCEFORGE_MIRROR}/ipmiutil/ipmiutil-${PV}.tar.gz \
- file://fix_systemd_path.patch "
-
-SRC_URI[md5sum] = "462087995f05fa9e692ed7f55c840f71"
-SRC_URI[sha256sum] = "884c1f3d8bfb0b33c303973d286c3166f5a537976451a0312e3524af54771519"
+ file://fix_systemd_path.patch \
+ "
+SRC_URI[md5sum] = "5feaf6a827205792e057bb4ff5c4e842"
+SRC_URI[sha256sum] = "b2d7f72535131c7832ba4be13dc33c81513fc3ee43fe797b4b52014600ecee5e"
inherit autotools-brokensep pkgconfig systemd
@@ -43,20 +43,4 @@ PACKAGECONFIG[standalone] = "--enable-standalone, --enable-standalone=no"
CFLAGS += "-I${STAGING_INCDIR}"
LDFLAGS += "-L${STAGING_LIBDIR}"
-do_configure () {
- aclocal
- libtoolize --automake --copy --force
- autoheader
- automake --foreign --add-missing --copy
-
- aclocal
- autoconf
- automake --foreign
- ./configure ${CONFIGUREOPTS} ${EXTRA_OECONF}
-}
-
-do_install () {
- oe_runmake install DESTDIR=${D}
-}
-
COMPATIBLE_HOST = '(x86_64|i.86).*-linux'
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libbytesize/files/0001-remove-python2-support.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/libbytesize/files/0001-remove-python2-support.patch
new file mode 100644
index 000000000..b57e39fbc
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libbytesize/files/0001-remove-python2-support.patch
@@ -0,0 +1,30 @@
+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/import-layers/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_0.10.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_0.10.bb
new file mode 100644
index 000000000..690302149
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_0.10.bb
@@ -0,0 +1,34 @@
+DESCRIPTION = "The goal of this project is to provide a tiny library that would \
+facilitate the common operations with sizes in bytes."
+HOMEPAGE = "https://github.com/rhinstaller/libbytesize"
+LICENSE = "LGPLv2+"
+SECTION = "devel/lib"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c07cb499d259452f324bb90c3067d85c"
+
+S = "${WORKDIR}/git"
+B = "${S}"
+
+SRCREV = "369127c0edbba7d1a4e2e02486375dd9d379524f"
+PV = "0.10+git${SRCPV}"
+SRC_URI = "git://github.com/rhinstaller/libbytesize;branch=master \
+ file://0001-remove-python2-support.patch \
+"
+
+inherit gettext autotools python3native
+
+DEPENDS += " \
+ libpcre \
+ gmp \
+ mpfr \
+"
+
+FILES_${PN} += "${PYTHON_SITEPACKAGES_DIR}/bytesize"
+
+PACKAGECONFIG ??= "python3"
+PACKAGECONFIG[python3] = "--with-python3, --without-python3,,python3"
+PACKAGECONFIG[doc] = "--with-gtk-doc, --without-gtk-doc, gtk-doc-native"
+
+EXTRA_OEMAKE = "py3libdir=${PYTHON_SITEPACKAGES_DIR}"
+
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libcyusbserial/libcyusbserial_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libcyusbserial/libcyusbserial_git.bb
new file mode 100644
index 000000000..74b5e21e2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libcyusbserial/libcyusbserial_git.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Enable userspace control of Cypress USB-Serial bridge devices"
+HOMEPAGE = "https://github.com/cyrozap/libcyusbserial"
+BUGTRACKER = "https://github.com/cyrozap/libcyusbserial/issues"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING.LESSER.txt;md5=4fbd65380cdd255951079008b364516c"
+DEPENDS = "libusb udev"
+
+PV = "1.0.0+git${SRCPV}"
+
+SRCREV = "655e2d544183d094f0e2d119c7e0c6206a0ddb3f"
+SRC_URI = "git://github.com/cyrozap/${BPN}.git"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+PACKAGES =+ "${PN}-utils"
+FILES_${PN}-utils = "${bindir}/*"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libdbi/libdbi-drivers.inc b/import-layers/meta-openembedded/meta-oe/recipes-support/libdbi/libdbi-drivers.inc
deleted file mode 100644
index b509532e4..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libdbi/libdbi-drivers.inc
+++ /dev/null
@@ -1,51 +0,0 @@
-# libdbi-drivers OE build file
-# Copyright (C) 2005, Koninklijke Philips Electronics NV. All Rights Reserved
-# Released under the MIT license (see packages/COPYING)
-
-DESCRIPTION = "Database Drivers for libdbi"
-HOMEPAGE = "http://libdbi-drivers.sourceforge.net/"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499"
-SECTION = "libs"
-
-PROVIDES = "libdbd-sqlite"
-DEPENDS = "libdbi sqlite sqlite3 mysql5 postgresql"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/libdbi-drivers/libdbi-drivers-${PV}.tar.gz"
-
-inherit autotools
-
-PACKAGES += "libdbd-sqlite3 libdbd-sqlite libdbd-pgsql libdbd-mysql"
-
-EXTRA_OECONF = "--with-dbi-incdir=${STAGING_INCDIR} \
- --with-dbi-libdir=${STAGING_LIBDIR} \
- --with-sqlite \
- --with-sqlite3 \
- --with-pgsql \
- --with-mysql \
- --with-sqlite-libdir=${STAGING_LIBDIR} \
- --with-sqlite-incdir=${STAGING_INCDIR} \
- --with-sqlite3-incdir=${STAGING_INCDIR} \
- --with-sqlite3-libdir=${STAGING_LIBDIR} \
- --with-mysql-incdir=${STAGING_INCDIR} \
- --with-mysql-libdir=${STAGING_LIBDIR} \
- --with-pgsql-incdir=${STAGING_INCDIR} \
- --with-pgsql-libdir=${STAGING_LIBDIR} \
- --disable-docs"
-
-FILES_${PN}-dbg += " ${libdir}/dbd/.debug/*.so"
-FILES_${PN}-dev += " ${libdir}/dbd/*.la"
-FILES_${PN}-staticdev += " ${libdir}/dbd/*.a"
-
-DESCRIPTION_libdbd-sqlite = "SQLite database driver for libdbi"
-FILES_libdbd-sqlite = "${libdir}/dbd/libdbdsqlite.so"
-
-DESCRIPTION_libdbd-sqlite3 = "SQLite3 database driver for libdbi"
-FILES_libdbd-sqlite3 = "${libdir}/dbd/libdbdsqlite3.so"
-
-DESCRIPTION_libdbd-mysql = "MySQL4 database driver for libdbi"
-FILES_libdbd-mysql = "${libdir}/dbd/libdbdmysql.so"
-
-DESCRIPTION_libdbd-psql = "Postgres SQL database driver for libdbi"
-FILES_libdbd-pgsql = "${libdir}/dbd/libdbdpgsql.so"
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libdbi/libdbi-drivers_0.8.3-1.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libdbi/libdbi-drivers_0.8.3-1.bb
deleted file mode 100644
index 8d2c5054a..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libdbi/libdbi-drivers_0.8.3-1.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-require ${PN}.inc
-
-
-SRC_URI[md5sum] = "4de79b323162a5a7652b65b608eca6cd"
-SRC_URI[sha256sum] = "4ab9944398ce769c0deeb64d2f73555c67bc25ccd2ade1ccf552226c7b2acf72"
-
-# libdbi-drivers-0.8.3-1/drivers/mysql/dbd_mysql.c:232:5: error: conflicting types for 'dbd_goto_row'
-PNBLACKLIST[libdbi-drivers] ?= "BROKEN: fails to build with gcc-5 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan-0.57/libetpan-autoreconf.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan-0.57/libetpan-autoreconf.patch
deleted file mode 100644
index d05967da3..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan-0.57/libetpan-autoreconf.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-Index: libetpan-0.57/configure.ac
-===================================================================
---- libetpan-0.57.orig/configure.ac 2008-10-08 19:54:20.000000000 +0000
-+++ libetpan-0.57/configure.ac 2008-11-11 16:34:33.000000000 +0000
-@@ -106,6 +106,7 @@
-
- # Check the C compiler.
- AC_PROG_CC
-+AC_PROG_CXX
-
- # Compiler flags.
- AC_ARG_ENABLE(debug, [ --enable-debug setup flags (gcc) for debugging (default=no)],
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan-0.57/libetpan-ldflags.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan-0.57/libetpan-ldflags.patch
deleted file mode 100644
index 438f44f15..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan-0.57/libetpan-ldflags.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- libetpan-0.57/configure.ac~ 2009-09-21 23:31:42.000000000 +0200
-+++ libetpan-0.57/configure.ac 2009-09-21 23:31:42.000000000 +0200
-@@ -457,7 +457,7 @@
- LDFLAGS="-$flag $LDFLAGS"
- AC_TRY_LINK([], [pthread_create();],
- [pthflag=yes; checkpthread=no],
-- [pthflag=no; LDFLAGS="$OLDCFLAGS"])
-+ [pthflag=no; LDFLAGS="$OLDFLAGS"])
- AC_MSG_RESULT($pthflag)
- fi
- done
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan-0.57/sepbuild.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan-0.57/sepbuild.patch
deleted file mode 100644
index 4f0161727..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan-0.57/sepbuild.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Index: libetpan-0.57/rules.mk
-===================================================================
---- libetpan-0.57.orig/rules.mk
-+++ libetpan-0.57/rules.mk
-@@ -134,9 +134,9 @@ prepare-am: prepare-local
- if test -e ../../$(subdir)/$${hdr}; then \
- echo "$(LN_S) -f ../../$(subdir)/$${hdr} ."; \
- $(LN_S) -f ../../$(subdir)/$${hdr} .; \
- else \
-- echo "$(LN_S) -f ../../$(subdir)/$(srcdir)/$${hdr} ."; \
-- $(LN_S) -f ../../$(subdir)/$(srcdir)/$${hdr} .; \
-+ echo "$(LN_S) -f $(srcdir)/$${hdr} ."; \
-+ $(LN_S) -f $(srcdir)/$${hdr} .; \
- fi; \
- fi; \
- done; \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan_0.57.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan_0.57.bb
deleted file mode 100644
index 5cadf16ce..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan_0.57.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-DESCRIPTION = "libetpan is a library for communicating with mail and news servers. \
-It supports the protocols SMTP, POP3, IMAP and NNTP."
-HOMEPAGE = "http://www.etpan.org"
-SECTION = "libs"
-DEPENDS = "gnutls liblockfile curl"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=f18ebe7e452708c26f83954f81062ba7"
-
-PR = "r1"
-
-# http://errors.yoctoproject.org/Errors/Details/25823/
-PNBLACKLIST[libetpan] ?= "Not compatible with gnutls version 3.4 currently in oe-core - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/libetpan/libetpan-${PV}.tar.gz \
- file://libetpan-autoreconf.patch \
- file://libetpan-ldflags.patch \
- file://sepbuild.patch"
-
-inherit autotools pkgconfig gettext binconfig
-
-EXTRA_OECONF = "--without-openssl --without-sasl --with-gnutls --disable-db"
-
-PARALLEL_MAKE = ""
-
-FILES_${PN} = "${libdir}/lib*.so.*"
-FILES_${PN}-dev = "${bindir} ${includedir} ${libdir}/lib*.so ${libdir}/*.la ${libdir}/*.a ${libdir}/pkgconfig"
-
-
-SRC_URI[md5sum] = "8ce8c6c071e81884a475b12b7f9a9cc0"
-SRC_URI[sha256sum] = "1f3fda5c9e2961d1a6298dc8aadae321493d37727d8db45bc2e8d58f20547011"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.4.bb
index 199e5a8f6..6bea16582 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.3.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.4.bb
@@ -14,8 +14,8 @@ DEPENDS = "libusb1"
SRC_URI = "http://www.intra2net.com/en/developer/${BPN}/download/${BPN}1-${PV}.tar.bz2"
-SRC_URI[md5sum] = "156cdf40cece9f8a3ce1582db59a502a"
-SRC_URI[sha256sum] = "9a8c95c94bfbcf36584a0a58a6e2003d9b133213d9202b76aec76302ffaa81f4"
+SRC_URI[md5sum] = "0c09fb2bb19a57c839fa6845c6c780a2"
+SRC_URI[sha256sum] = "ec36fb49080f834690c24008328a5ef42d3cf584ef4060f3a35aa4681cb31b74"
S = "${WORKDIR}/${BPN}1-${PV}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod.bb
new file mode 100644
index 000000000..c50605775
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod.bb
@@ -0,0 +1,23 @@
+SUMMARY = "C library and tools for interacting with the linux GPIO character device"
+
+LICENSE = "LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2caced0b25dfefd4c601d92bd15116de"
+
+SRC_URI = "https://www.kernel.org/pub/software/libs/libgpiod/${BP}.tar.xz"
+
+SRC_URI[md5sum] = "5f9d855352b1a5272cf6f1c2e20689d2"
+SRC_URI[sha256sum] = "6dfd6aeb544e8b7baf484a05c9ae0e67022c109362a41d87005393046b6beacf"
+
+PV = "0.3.1"
+
+inherit autotools pkgconfig
+
+# enable tools
+PACKAGECONFIG ?= "tools"
+
+PACKAGECONFIG[tests] = "--enable-tests,--disable-tests,kmod udev"
+PACKAGECONFIG[tools] = "--enable-tools,--disable-tools,"
+
+PACKAGES += " ${PN}-tools"
+
+FILES_${PN}-tools = "${bindir}/*"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libjs/libjs-jquery_1.7.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libjs/libjs-jquery_1.7.2.bb
index ec8f360ac..7f425cdea 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libjs/libjs-jquery_1.7.2.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libjs/libjs-jquery_1.7.2.bb
@@ -1,4 +1,5 @@
SUMMARY = "JavaScript library for dynamic web applications"
+HOMEPAGE = "https://jquery.com/"
LICENSE = "MIT | BSD | GPL-2"
LIC_FILES_CHKSUM = "file://usr/share/doc/libjs-jquery/copyright;md5=5d1ec6f95e0a91d38e2f71de93ddb00e"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libjs/libjs-sizzle_1.10.18.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libjs/libjs-sizzle_1.10.18.bb
index 92ab31f54..4928b6c3a 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libjs/libjs-sizzle_1.10.18.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libjs/libjs-sizzle_1.10.18.bb
@@ -1,4 +1,5 @@
SUMMARY = "Pure-JavaScript CSS selector engine"
+HOMEPAGE = "https://github.com/jquery/sizzle/wiki"
LICENSE = "GPL-2.0 & MIT & AFL-2.1"
LIC_FILES_CHKSUM = "file://MIT-LICENSE.txt;md5=e43aa437a6a1ba421653bd5034333bf9"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd/Check-response-existence-on-upgrade.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd/Check-response-existence-on-upgrade.patch
deleted file mode 100644
index a02bbd4d0..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd/Check-response-existence-on-upgrade.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From: jose.bollo@iot.bzh
-Date: Thu, 4 May 2017 21:47:38 +0200
-Subject: [PATCH] Check response existence on upgrade
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-When a connection upgrade is requested and when the
-request sent an error reply, the response is most of
-the time already sent when the test on
-connection->response->upgrade_handler is made, leading
-to dereferencing NULL.
-
-Two possibilities exist:
-
- NULL == connection->response || NULL == connection->response->upgrade_handler
-
-or
-
- NULL != connection->response && NULL == connection->response->upgrade_handler
-
-The first is prefered because it is probably safer to close the connection
-in that case.
-
-Upstream-Status: Accepted [https://gnunet.org/git/libmicrohttpd.git/commit/?id=b4216c60fdb5b48f6cfec416301fc63a1167e6cd]
-
-Change-Id: Ie6e7fc165f7fe3635ade0952bb34a0b937d38716
-Signed-off-by: José Bollo <jobol@nonadev.net>
-Signed-off-by: José Bollo <jose.bollo@iot.bzh>
----
- src/microhttpd/connection.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/microhttpd/connection.c b/src/microhttpd/connection.c
-index a495524..d39c110 100644
---- a/src/microhttpd/connection.c
-+++ b/src/microhttpd/connection.c
-@@ -882,7 +882,7 @@ keepalive_possible (struct MHD_Connection *connection)
- #ifdef UPGRADE_SUPPORT
- if ( (MHD_str_equal_caseless_ (end,
- "upgrade")) &&
-- (NULL == connection->response->upgrade_handler) )
-+ (NULL == connection->response || NULL == connection->response->upgrade_handler) )
- return MHD_NO;
- #endif /* UPGRADE_SUPPORT */
-
---
-2.9.3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.53.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.55.bb
index 45f2460d0..ee399a764 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.53.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.55.bb
@@ -6,11 +6,8 @@ SECTION = "net"
DEPENDS = "libgcrypt gnutls file"
SRC_URI = "http://ftp.gnu.org/gnu/libmicrohttpd/${BPN}-${PV}.tar.gz"
-SRC_URI[md5sum] = "5a425e993a0f5295aecb5d6607a1c242"
-SRC_URI[sha256sum] = "9b15ec2d381f44936323adfd4f989fa35add517cccbbfa581896b02a393c2cc4"
-
-FILESEXTRAPATHS_append := ":${THISDIR}/${PN}"
-SRC_URI += " file://Check-response-existence-on-upgrade.patch"
+SRC_URI[md5sum] = "1c20f84a8b9cf692dd50b558b3571a3a"
+SRC_URI[sha256sum] = "0c1cab8dc9f2588bd3076a28f77a7f8de9560cbf2d80e53f9a8696ada80ed0f8"
inherit autotools lib_package pkgconfig gettext
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libnih/libnih_1.0.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libnih/libnih_1.0.3.bb
index 02fe805fc..3e35f4d1f 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libnih/libnih_1.0.3.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libnih/libnih_1.0.3.bb
@@ -1,6 +1,7 @@
# Copyright (c) 2013 LG Electronics, Inc.
SUMMARY = "libnih library"
+HOMEPAGE = "https://launchpad.net/libnih"
DESCRIPTION = "libnih is a small library for C application development \
containing functions that, despite its name, are not implemented \
elsewhere in the standard library set. \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libol/libol_0.3.18.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libol/libol_0.3.18.bb
index c31f48313..74e1ef215 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libol/libol_0.3.18.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libol/libol_0.3.18.bb
@@ -1,4 +1,5 @@
SUMMARY = "A tiny C support library"
+HOMEPAGE = "https://my.balabit.com/downloads/libol"
SECTION = "libs"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.7.bb
index d88006c36..949c33752 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.7.bb
@@ -9,16 +9,12 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=fad9b3332be894bab9bc501572864b29"
DEPENDS = "libtool openssl"
SRC_URI = "git://github.com/OpenSC/libp11.git"
-SRCREV = "22de793340ab73cafc92f8238afb51a06d8411c3"
+SRCREV = "64569a391897bd29c5060b19fa4613e619e59277"
S = "${WORKDIR}/git"
inherit autotools pkgconfig
-# Currently, Makefile dependencies are incorrectly defined which causes build errors
-# The number of jobs is high
-# See https://github.com/OpenSC/libp11/issues/94
-PARALLEL_MAKE = ""
EXTRA_OECONF = "--disable-static"
do_install_append () {
@@ -26,5 +22,5 @@ do_install_append () {
rm -rf ${D}${docdir}/${BPN}
}
-FILES_${PN} += "${libdir}/pkcs11${SOLIBS}"
-FILES_${PN}-dev += "${libdir}/pkcs11${SOLIBSDEV}"
+FILES_${PN} += "${libdir}/engines/pkcs11.so"
+FILES_${PN}-dev += "${libdir}/engines/libpkcs11${SOLIBSDEV}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libssh2/libssh2_1.7.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libssh2/libssh2_1.8.0.bb
index c62dab133..94bfb8f87 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libssh2/libssh2_1.7.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libssh2/libssh2_1.8.0.bb
@@ -8,8 +8,8 @@ LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://COPYING;md5=c5cf34fc0acb44b082ef50ef5e4354ca"
SRC_URI = "http://www.libssh2.org/download/${BP}.tar.gz"
-SRC_URI[md5sum] = "b01662a210e94cccf2f76094db7dac5c"
-SRC_URI[sha256sum] = "e4561fd43a50539a8c2ceb37841691baf03ecb7daf043766da1b112e4280d584"
+SRC_URI[md5sum] = "3d1147cae66e2959ea5441b183de1b1c"
+SRC_URI[sha256sum] = "39f34e2f6835f4b992cafe8625073a88e5a28ba78f83e8099610a7b3af4676d4"
inherit autotools pkgconfig
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libtar/files/0002-Do-not-strip-libtar.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/libtar/files/0002-Do-not-strip-libtar.patch
new file mode 100644
index 000000000..31c0d29e9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libtar/files/0002-Do-not-strip-libtar.patch
@@ -0,0 +1,25 @@
+From e9fee689430af7791b932a1ee3c2cc103ccf290f Mon Sep 17 00:00:00 2001
+From: Stefan Eichenberger <stefan.eichenberger@netmodule.com>
+Date: Wed, 2 Nov 2016 05:43:43 -0400
+Subject: [PATCH] Do not strip libtar.
+
+---
+ libtar/Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libtar/Makefile.in b/libtar/Makefile.in
+index 7c6f1bc..80bb8d9 100644
+--- a/libtar/Makefile.in
++++ b/libtar/Makefile.in
+@@ -20,7 +20,7 @@ SHELL = @SHELL@
+
+ ### Installation programs and flags
+ INSTALL = @INSTALL@
+-INSTALL_PROGRAM = @INSTALL_PROGRAM@ -s
++INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_DATA = @INSTALL_DATA@
+ LN_S = @LN_S@
+ MKDIR = @MKDIR@
+--
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libtar/files/fix_libtool_sysroot.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/libtar/files/fix_libtool_sysroot.patch
new file mode 100644
index 000000000..178a97029
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libtar/files/fix_libtool_sysroot.patch
@@ -0,0 +1,19 @@
+---
+ configure.ac | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/configure.ac b/configure.ac
+index 4623100..1c6b43d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -13,6 +13,7 @@ AC_CONFIG_MACRO_DIR([autoconf])
+ AM_INIT_AUTOMAKE([dist-bzip2])
+ ENCAP_PKG([], [postinstall-encap])
+
++LT_INIT
+
+ dnl ### Load subdirectory modules. ##################################
+ PSG_MODULE([compat])
+--
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libtar/libtar_1.2.20.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libtar/libtar_1.2.20.bb
new file mode 100644
index 000000000..60710f416
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libtar/libtar_1.2.20.bb
@@ -0,0 +1,21 @@
+SUMMARY = "libtar, tar manipulating library"
+DESCRIPTION = "libtar is a library for manipulating POSIX tar files"
+HOMEPAGE = "http://www.feep.net/libtar"
+SECTION = "libs"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=61cbac6719ae682ce6cd45b5c11e21af"
+
+SRC_URI = "${DEBIAN_MIRROR}/main/libt/${BPN}/${BPN}_${PV}.orig.tar.gz \
+ file://fix_libtool_sysroot.patch \
+ file://0002-Do-not-strip-libtar.patch \
+ "
+
+S = "${WORKDIR}/${BPN}"
+
+SRC_URI[md5sum] = "6ced95ab3a4b33fbfe2dfb231d156cdb"
+SRC_URI[sha256sum] = "50f24c857a7ef1cb092e6508758b86d06f1188508f897f3e6b40c573e8879109"
+
+inherit autotools-brokensep
+
+PACKAGECONFIG ??= "zlib"
+PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libteam/libteam/0001-include-sys-select.h-for-fd_set-definition.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/libteam/libteam/0001-include-sys-select.h-for-fd_set-definition.patch
new file mode 100644
index 000000000..a4a17ed85
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libteam/libteam/0001-include-sys-select.h-for-fd_set-definition.patch
@@ -0,0 +1,28 @@
+From 0ab69dc18a2057ff5bf41abcdf2b983b72d5a903 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 12 Jul 2017 15:34:49 -0700
+Subject: [PATCH 1/2] include sys/select.h for fd_set definition
+
+Fixes
+teamnl.c:160:2: error: unknown type name 'fd_set'; did you mean 'fpos_t'?
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ utils/teamnl.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/utils/teamnl.c b/utils/teamnl.c
+index e8de7e2..25129e8 100644
+--- a/utils/teamnl.c
++++ b/utils/teamnl.c
+@@ -24,6 +24,7 @@
+ #include <getopt.h>
+ #include <errno.h>
+ #include <sys/signalfd.h>
++#include <sys/select.h>
+ #include <signal.h>
+ #include <unistd.h>
+ #include <team.h>
+--
+2.13.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libteam/libteam/0002-teamd-Re-adjust-include-header-order.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/libteam/libteam/0002-teamd-Re-adjust-include-header-order.patch
new file mode 100644
index 000000000..beabf63ca
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libteam/libteam/0002-teamd-Re-adjust-include-header-order.patch
@@ -0,0 +1,40 @@
+From a5b945cb3c62a18dcd7047f62707c09076c4e48b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 12 Jul 2017 15:35:51 -0700
+Subject: [PATCH 2/2] teamd: Re-adjust include header order
+
+So it gets the library definition before kernel definition
+
+usr/include/ne
+tinet/if_ether.h:101:8: error: redefinition of 'struct ethhdr'
+ struct ethhdr {
+ ^~~~~~
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ teamd/teamd_runner_lacp.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/teamd/teamd_runner_lacp.c b/teamd/teamd_runner_lacp.c
+index 9c77fae..8800854 100644
+--- a/teamd/teamd_runner_lacp.c
++++ b/teamd/teamd_runner_lacp.c
+@@ -23,6 +23,7 @@
+ #include <unistd.h>
+ #include <limits.h>
+ #include <sys/ioctl.h>
++#include <net/ethernet.h>
+ #include <linux/if_ether.h>
+ #include <sys/socket.h>
+ #include <linux/netdevice.h>
+@@ -30,7 +31,6 @@
+ #include <errno.h>
+ #include <team.h>
+ #include <private/misc.h>
+-#include <net/ethernet.h>
+
+ #include "teamd.h"
+ #include "teamd_config.h"
+--
+2.13.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libteam/libteam_1.27.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libteam/libteam_1.27.bb
new file mode 100644
index 000000000..32227009e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libteam/libteam_1.27.bb
@@ -0,0 +1,36 @@
+SUMMARY = "Library for controlling team network device"
+HOMEPAGE = "http://www.libteam.org/"
+SECTION = "libs/network"
+
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = "libnl libdaemon jansson"
+
+SRC_URI = "git://github.com/jpirko/libteam \
+ file://0001-include-sys-select.h-for-fd_set-definition.patch \
+ file://0002-teamd-Re-adjust-include-header-order.patch \
+ "
+SRCREV = "91a928a56a501daac5ce8b3c16bd9943661f1d16"
+
+SRC_URI[md5sum] = "565114d70c41bff6093d8e57be284e8a"
+SRC_URI[sha256sum] = "d65286379141db141bea33424ec0507bb0f827a0bf03d9c65004bb593e3d5545"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
+FILES_${PN} = "${libdir}/libteam${SOLIBS} \
+"
+
+PACKAGES += "${PN}-dctl ${PN}-utils"
+FILES_${PN}-dctl = "${libdir}/libteamdctl${SOLIBS} \
+"
+FILES_${PN}-utils = "${bindir}/bond2team \
+ ${bindir}/teamd \
+ ${bindir}/teamdctl \
+ ${bindir}/teamnl \
+"
+
+RDEPENDS_${PN}-utils = "bash"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_4.0.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_5.0.1.bb
index 3a6659815..8b5ab44fd 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_4.0.1.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_5.0.1.bb
@@ -6,10 +6,12 @@ LIC_FILES_CHKSUM = "file://tinyxml2.cpp;endline=22;md5=c19221dbd8a66ad3090462af4
SRC_URI = "git://github.com/leethomason/tinyxml2.git"
-SRCREV = "74d44acb176f8510abf28ee0a70961eb26631988"
+SRCREV = "37bc3aca429f0164adf68c23444540b4a24b5778"
S = "${WORKDIR}/git"
inherit cmake
+FILES_${PN}-dev += "${libdir}/cmake/"
+
BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors/0001-prog-Do-not-limit-sys-io.h-header-include-to-just-gl.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors/0001-prog-Do-not-limit-sys-io.h-header-include-to-just-gl.patch
new file mode 100644
index 000000000..fb3878dc3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors/0001-prog-Do-not-limit-sys-io.h-header-include-to-just-gl.patch
@@ -0,0 +1,88 @@
+From 727524453f115ddc05109e9bbb3d0e60a7db9185 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 16 Jul 2017 15:05:50 -0700
+Subject: [PATCH] prog: Do not limit sys/io.h header include to just glibc
+
+musl provides it too.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ prog/dump/isadump.c | 6 ------
+ prog/dump/isaset.c | 6 ------
+ prog/dump/superio.c | 5 -----
+ prog/dump/util.c | 5 -----
+ 4 files changed, 22 deletions(-)
+
+diff --git a/prog/dump/isadump.c b/prog/dump/isadump.c
+index e0e6f00..8794537 100644
+--- a/prog/dump/isadump.c
++++ b/prog/dump/isadump.c
+@@ -36,13 +36,7 @@
+ #include "util.h"
+ #include "superio.h"
+
+-
+-/* To keep glibc2 happy */
+-#if defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 0
+ #include <sys/io.h>
+-#else
+-#include <asm/io.h>
+-#endif
+
+ #ifdef __powerpc__
+ unsigned long isa_io_base = 0; /* XXX for now */
+diff --git a/prog/dump/isaset.c b/prog/dump/isaset.c
+index e743755..85a4f64 100644
+--- a/prog/dump/isaset.c
++++ b/prog/dump/isaset.c
+@@ -32,13 +32,7 @@
+ #include <string.h>
+ #include "util.h"
+
+-
+-/* To keep glibc2 happy */
+-#if defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 0
+ #include <sys/io.h>
+-#else
+-#include <asm/io.h>
+-#endif
+
+ #ifdef __powerpc__
+ unsigned long isa_io_base = 0; /* XXX for now */
+diff --git a/prog/dump/superio.c b/prog/dump/superio.c
+index 64ef27b..906fe55 100644
+--- a/prog/dump/superio.c
++++ b/prog/dump/superio.c
+@@ -20,12 +20,7 @@
+ */
+
+ #include <stdlib.h>
+-
+-#if defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 0
+ #include <sys/io.h>
+-#else
+-#include <asm/io.h>
+-#endif
+
+ #include "superio.h"
+
+diff --git a/prog/dump/util.c b/prog/dump/util.c
+index 874c1b9..197fa64 100644
+--- a/prog/dump/util.c
++++ b/prog/dump/util.c
+@@ -11,12 +11,7 @@
+ #include <stdio.h>
+ #include "util.h"
+
+-/* To keep glibc2 happy */
+-#if defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 0
+ #include <sys/io.h>
+-#else
+-#include <asm/io.h>
+-#endif
+
+ /* Return 1 if we should continue, 0 if we should abort */
+ int user_ack(int def)
+--
+2.13.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors_3.4.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors_3.4.0.bb
index dbc05a898..454a69f40 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors_3.4.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors_3.4.0.bb
@@ -11,6 +11,7 @@ SRC_URI = "https://github.com/groeck/lm-sensors/archive/V3-4-0.tar.gz \
file://fancontrol.init \
file://sensord.init \
file://0001-lmsensors-sensors-detect-print-a-special-message-whe.patch \
+ file://0001-prog-Do-not-limit-sys-io.h-header-include-to-just-gl.patch \
"
SRC_URI[md5sum] = "1e9f117cbfa11be1955adc96df71eadb"
SRC_URI[sha256sum] = "e334c1c2b06f7290e3e66bdae330a5d36054701ffd47a5dde7a06f9a7402cb4e"
@@ -37,6 +38,11 @@ EXTRA_OEMAKE = 'EXLDFLAGS="${LDFLAGS}" \
CC="${CC}" AR="${AR}"'
do_compile() {
+ sed -i -e 's:^# \(PROG_EXTRA\):\1:' ${S}/Makefile
+ # Respect LDFLAGS
+ sed -i -e 's/\$(LIBDIR)$/\$(LIBDIR) \$(LDFLAGS)/g' ${S}/Makefile
+ sed -i -e 's/\$(LIBSHSONAME) -o/$(LIBSHSONAME) \$(LDFLAGS) -o/g' \
+ ${S}/lib/Module.mk
oe_runmake user PROG_EXTRA="sensors sensord"
}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/logwarn/logwarn_1.0.14.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/logwarn/logwarn_1.0.14.bb
new file mode 100644
index 000000000..5ae36bb67
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/logwarn/logwarn_1.0.14.bb
@@ -0,0 +1,52 @@
+SUMMARY = "A utility for finding interesting messages in log files"
+DESCRIPTION = "Logwarn searches for interesting messages in log files, \
+ where 'interesting' is defined by a user-supplied list of positive and \
+ negative extended regular expressions. \
+"
+HOMEPAGE = "https://github.com/archiecobbs/logwarn/wiki"
+SECTION = "console/utils"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRC_URI = "https://s3.amazonaws.com/archie-public/${BPN}/${BP}.tar.gz"
+
+SRC_URI[md5sum] = "e544a6230673ea54f7430bf817bb39d8"
+SRC_URI[sha256sum] = "8dbfcf9b28c782ab3bddd6a620d4fb95d1b0ffcbe93276996cdc4800aa9aebd1"
+
+inherit autotools-brokensep
+
+# This directory is NOT volatile.
+#
+lcl_default_state_dir = "${localstatedir}/lib/logwarn"
+
+CFLAGS += '-DDEFAULT_STATE_DIR=\""${lcl_default_state_dir}\""'
+
+CACHED_CONFIGUREVARS += " \
+ ac_cv_path_BASH_SHELL=${base_bindir}/bash \
+ ac_cv_path_CAT=${base_bindir}/cat \
+ ac_cv_path_RM=${base_bindir}/rm \
+ ac_cv_path_SED=${base_bindir}/sed \
+"
+
+# Make sure some files exist for autoreconf.
+#
+do_configure_prepend () {
+ touch ${S}/NEWS
+ touch ${S}/ChangeLog
+ touch ${S}/README
+}
+
+# Create a directory for logfile state info, usually under /var/lib.
+#
+do_install_append () {
+ install -d ${D}${lcl_default_state_dir}
+}
+
+# Make a package for the nagios plug-in (script).
+#
+PACKAGES += "${PN}-nagios"
+
+FILES_${PN}-nagios = "${nonarch_libdir}/nagios"
+
+RDEPENDS_${PN}-nagios += "bash coreutils sed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/files/0005-do-not-build-manual.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/files/0005-do-not-build-manual.patch
new file mode 100644
index 000000000..15aa9f500
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/files/0005-do-not-build-manual.patch
@@ -0,0 +1,58 @@
+From d8bb25e34d6533ba78eaae697771ee499a66706f Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Wed, 2 Aug 2017 03:41:37 -0400
+Subject: [PATCH] do not build manual
+
+On some host (ubuntu 1404), build manual failed.
+...
+./tools/man-generator --primary lvscan lvscan.8_des
+Failed to stat description file lvscan.8_des.
+...
+
+Do not build man to workaround the issue.
+
+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(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 31d428d..24f89a2 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
+
+ ifeq ("@UDEV_RULES@", "yes")
+ SUBDIRS += udev
+@@ -69,7 +69,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
+-device-mapper: tools.device-mapper daemons.device-mapper man.device-mapper
++device-mapper: tools.device-mapper daemons.device-mapper
+
+ 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
+ libdm/libdevmapper.pc
+ liblvm/Makefile
+ liblvm/liblvm2app.pc
+-man/Makefile
+ po/Makefile
+ python/Makefile
+ python/setup.py
+--
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/files/0006-start-lvm2-monitor.service-after-tmp.mount.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/files/0006-start-lvm2-monitor.service-after-tmp.mount.patch
new file mode 100644
index 000000000..0e68d62fc
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/files/0006-start-lvm2-monitor.service-after-tmp.mount.patch
@@ -0,0 +1,32 @@
+From 24a2c47fd01dde1710f1fa66f5c30ce7010c5956 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Thu, 21 Sep 2017 15:28:10 +0800
+Subject: [PATCH] start lvm2-monitor.service after tmp.mount
+
+The lvm2-monitor.service reqires the existence of locking_dir
+("/tmp/lock/lvm"), and unit tmp.mount is to mount /tmp.
+So start lvm2-monitor.service after tmp.mount
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ scripts/lvm2_monitoring_systemd_red_hat.service.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/scripts/lvm2_monitoring_systemd_red_hat.service.in b/scripts/lvm2_monitoring_systemd_red_hat.service.in
+index 22238b7..93b2bee 100644
+--- a/scripts/lvm2_monitoring_systemd_red_hat.service.in
++++ b/scripts/lvm2_monitoring_systemd_red_hat.service.in
+@@ -2,7 +2,7 @@
+ Description=Monitoring of LVM2 mirrors, snapshots etc. using dmeventd or progress polling
+ Documentation=man:dmeventd(8) man:lvcreate(8) man:lvchange(8) man:vgchange(8)
+ Requires=dm-event.socket lvm2-lvmetad.socket
+-After=dm-event.socket dm-event.service lvm2-lvmetad.socket lvm2-activation.service lvm2-lvmetad.service
++After=dm-event.socket dm-event.service lvm2-lvmetad.socket lvm2-activation.service lvm2-lvmetad.service tmp.mount
+ Before=local-fs-pre.target
+ DefaultDependencies=no
+ Conflicts=shutdown.target
+--
+1.8.3.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/files/lvm.conf b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/files/lvm.conf
index 9e3b5fe29..c2bb85d8b 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/files/lvm.conf
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/files/lvm.conf
@@ -214,7 +214,7 @@ global {
# Local non-LV directory that holds file-based locks while commands are
# in progress. A directory like /tmp that may get wiped on reboot is OK.
- locking_dir = "/var/lock/lvm"
+ locking_dir = "/tmp/lock/lvm"
# Other entries can go here to allow you to load shared libraries
# e.g. if support for LVM1 metadata was compiled as a shared library use
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.02.166.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.02.166.bb
deleted file mode 100644
index 462e8fb01..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.02.166.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-require lvm2.inc
-
-SRC_URI[md5sum] = "c5a54ee0b86703daaad6e856439e115a"
-SRC_URI[sha256sum] = "e120b066b85b224552efda40204488c5123de068725676fd6e5c8bc655051b94"
-
-DEPENDS += "autoconf-archive-native"
-
-PACKAGECONFIG = ""
-
-# Unset user/group to unbreak install.
-EXTRA_OECONF = "--with-user= \
- --with-group= \
- --enable-pkgconfig \
- --with-usrlibdir=${libdir} \
-"
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-do_install_append() {
- # Remove things unrelated to libdevmapper
- rm -rf ${D}${sysconfdir}
- for i in `ls ${D}${sbindir}/*`; do
- if [ $i != ${D}${sbindir}/dmsetup ]; then
- rm $i
- fi
- done
- # Remove docs
- rm -rf ${D}${datadir}
-}
-
-RRECOMMENDS_${PN} += "lvm2-udevrules"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.02.171.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.02.171.bb
new file mode 100644
index 000000000..b6ae90240
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.02.171.bb
@@ -0,0 +1,16 @@
+require lvm2.inc
+
+SRC_URI[md5sum] = "153b7bb643eb26073274968e9026fa8f"
+SRC_URI[sha256sum] = "b815a711a2fabaa5c3dc1a4a284df0268bf0f325f0fc0f5c9530c9bbb54b9964"
+
+DEPENDS += "autoconf-archive-native"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+do_install() {
+ oe_runmake 'DESTDIR=${D}' -C libdm install
+}
+
+RRECOMMENDS_${PN}_append_class-target = " lvm2-udevrules"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc
index cb5a9e042..289e07d8d 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc
@@ -1,3 +1,4 @@
+HOMEPAGE = "https://www.sourceware.org/lvm2/"
SECTION = "utils"
DESCRIPTION = "LVM2 is a set of utilities to manage logical volumes in Linux."
LICENSE = "GPLv2 & LGPLv2"
@@ -13,16 +14,25 @@ SRC_URI = "ftp://sources.redhat.com/pub/lvm2/old/LVM2.${PV}.tgz \
file://0003-include-fcntl.h-for-O_-defines-and-fcntl-signature.patch \
file://0004-tweak-MODPROBE_CMD-for-cross-compile.patch \
file://0001-Avoid-bashisms-in-init-scripts.patch \
+ file://0005-do-not-build-manual.patch \
+ file://0006-start-lvm2-monitor.service-after-tmp.mount.patch \
"
S = "${WORKDIR}/LVM2.${PV}"
-inherit autotools-brokensep pkgconfig systemd
+inherit autotools-brokensep pkgconfig systemd license
+
+LVM2_PACKAGECONFIG = "dmeventd lvmetad"
+LVM2_PACKAGECONFIG_append_class-target = " \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)} \
+ ${@incompatible_license_contains('GPLv3', '', 'thin-provisioning-tools', d)} \
+ udev \
+"
# odirect is always enabled because there currently is a bug in
# lib/device/dev-io.c which prevents compiling without it. It is
# better to stick to configurations that were actually tested by
# upstream...
-PACKAGECONFIG_append = " odirect"
+PACKAGECONFIG ??= "odirect ${LVM2_PACKAGECONFIG}"
PACKAGECONFIG[dmeventd] = "--enable-dmeventd,--disable-dmeventd"
PACKAGECONFIG[lvmetad] = "--enable-lvmetad,--disable-lvmetad"
@@ -31,3 +41,20 @@ PACKAGECONFIG[readline] = "--enable-readline,--disable-readline,readline"
PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux"
PACKAGECONFIG[thin-provisioning-tools] = "--with-thin=internal,--with-thin=none,,thin-provisioning-tools"
PACKAGECONFIG[udev] = "--enable-udev_sync --enable-udev_rules --with-udevdir=${nonarch_base_libdir}/udev/rules.d,--disable-udev_sync --disable-udev_rules,udev"
+
+# Unset user/group to unbreak install.
+EXTRA_OECONF = "--with-user= \
+ --with-group= \
+ --enable-realtime \
+ --enable-applib \
+ --enable-cmdlib \
+ --enable-pkgconfig \
+ --with-usrlibdir=${libdir} \
+ --with-systemdsystemunitdir=${systemd_system_unitdir} \
+ --disable-thin_check_needs_check \
+ --with-thin-check=${sbindir}/thin_check \
+ --with-thin-dump=${sbindir}/thin_dump \
+ --with-thin-repair=${sbindir}/thin_repair \
+ --with-thin-restore=${sbindir}/thin_restore \
+"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-explicitly-do-not-install-libdm.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-explicitly-do-not-install-libdm.patch
new file mode 100644
index 000000000..e85818dbd
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-explicitly-do-not-install-libdm.patch
@@ -0,0 +1,36 @@
+From 0a8e466fcf99622896e070c5133165e4278e8cfb Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Thu, 25 May 2017 05:27:11 -0400
+Subject: [PATCH] explicitly do not install libdm
+
+Already have package libdevmapper which split from lvm2,
+explicitly do not do the installation here.
+
+Upstream-Status: Inappropriate [meta-oe specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ libdm/Makefile.in | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/libdm/Makefile.in b/libdm/Makefile.in
+index 3c9a4ce..45c91c6 100644
+--- a/libdm/Makefile.in
++++ b/libdm/Makefile.in
+@@ -77,9 +77,11 @@ ifeq ("@PKGCONFIG@", "yes")
+ INSTALL_TYPE += install_pkgconfig
+ endif
+
+-install: $(INSTALL_TYPE) install_include
++install:
++ echo "Do not install device mappler in lvm2"
+
+-install_device-mapper: install
++install_device-mapper:
++ echo "Do not install device mappler in lvm2"
+
+ install_include: $(srcdir)/libdevmapper.h
+ $(INSTALL_DATA) -D $< $(includedir)/$(<F)
+--
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.02.166.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.02.171.bb
index 7939f0552..84881e744 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.02.166.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.02.171.bb
@@ -1,34 +1,11 @@
require lvm2.inc
-SRC_URI[md5sum] = "c5a54ee0b86703daaad6e856439e115a"
-SRC_URI[sha256sum] = "e120b066b85b224552efda40204488c5123de068725676fd6e5c8bc655051b94"
+SRC_URI[md5sum] = "153b7bb643eb26073274968e9026fa8f"
+SRC_URI[sha256sum] = "b815a711a2fabaa5c3dc1a4a284df0268bf0f325f0fc0f5c9530c9bbb54b9964"
-DEPENDS += "autoconf-archive-native"
-
-LVM2_PACKAGECONFIG = "dmeventd lvmetad"
-LVM2_PACKAGECONFIG_append_class-target = " \
- ${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)} \
- thin-provisioning-tools \
- udev \
-"
+SRC_URI += "file://0001-explicitly-do-not-install-libdm.patch"
-PACKAGECONFIG ??= "${LVM2_PACKAGECONFIG}"
-
-# Unset user/group to unbreak install.
-EXTRA_OECONF = "--with-user= \
- --with-group= \
- --enable-realtime \
- --enable-applib \
- --enable-cmdlib \
- --enable-pkgconfig \
- --with-usrlibdir=${libdir} \
- --with-systemdsystemunitdir=${systemd_system_unitdir} \
- --disable-thin_check_needs_check \
- --with-thin-check=${sbindir}/thin_check \
- --with-thin-dump=${sbindir}/thin_dump \
- --with-thin-repair=${sbindir}/thin_repair \
- --with-thin-restore=${sbindir}/thin_restore \
-"
+DEPENDS += "autoconf-archive-native"
CACHED_CONFIGUREVARS += "MODPROBE_CMD=${base_sbindir}/modprobe"
@@ -45,10 +22,6 @@ do_install_append() {
mv ${D}${sysconfdir}/rc.d/init.d ${D}${sysconfdir}/init.d
rm -rf ${D}${sysconfdir}/rc.d
fi
- # Remove things related to libdevmapper
- rm -f ${D}${sbindir}/dmsetup
- rm -f ${D}${libdir}/libdevmapper.so.*
- rm -f ${D}${libdir}/libdevmapper.so ${D}${libdir}/pkgconfig/devmapper.pc ${D}${includedir}/libdevmapper.h
}
PACKAGE_BEFORE_PN = "${PN}-scripts ${PN}-udevrules"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lzip/lzip_1.16.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/lzip/lzip_1.16.bb
deleted file mode 100644
index a5d99625a..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/lzip/lzip_1.16.bb
+++ /dev/null
@@ -1,41 +0,0 @@
-SUMMARY = "Lossless data compressor based on the LZMA algorithm"
-HOMEPAGE = "http://lzip.nongnu.org/lzip.html"
-SECTION = "console/utils"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=76d6e300ffd8fb9d18bd9b136a9bba13 \
- file://decoder.cc;endline=16;md5=0809128ac32163252846e09a70c8b80b"
-
-SRC_URI = "${SAVANNAH_GNU_MIRROR}/lzip/lzip-${PV}.tar.gz"
-
-SRC_URI[md5sum] = "716a9876dc595ec52d4f3bda81e42471"
-SRC_URI[sha256sum] = "128cc25baf92c8b69700831e6f984d954016318cc78edca87870d0c033112751"
-
-CONFIGUREOPTS = "\
- '--srcdir=${S}' \
- '--prefix=${prefix}' \
- '--exec-prefix=${exec_prefix}' \
- '--bindir=${bindir}' \
- '--datadir=${datadir}' \
- '--infodir=${infodir}' \
- '--sysconfdir=${sysconfdir}' \
- 'CXX=${CXX}' \
- 'CPPFLAGS=${CPPFLAGS}' \
- 'CXXFLAGS=${CXXFLAGS}' \
- 'LDFLAGS=${LDFLAGS}' \
-"
-EXTRA_OEMAKE = ""
-
-B = "${S}/obj"
-do_configure () {
- ${S}/configure ${CONFIGUREOPTS}
-}
-
-do_install () {
- oe_runmake 'DESTDIR=${D}' install
- # Info dir listing isn't interesting at this point so remove it if it exists.
- if [ -e "${D}${infodir}/dir" ]; then
- rm -f ${D}${infodir}/dir
- fi
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mailcap/mailcap_2.1.46.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/mailcap/mailcap_2.1.48.bb
index 58b8f029e..114ce4607 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/mailcap/mailcap_2.1.46.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mailcap/mailcap_2.1.48.bb
@@ -1,4 +1,5 @@
SUMMARY = "Helper application and MIME type associations for file types"
+HOMEPAGE = "https://pagure.io/mailcap"
DESCRIPTION = "The mailcap file is used by the metamail program. Metamail reads the \
mailcap file to determine how it should display non-text or multimedia \
material. Basically, mailcap associates a particular type of file \
@@ -17,8 +18,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=100fcfb84512ccc03ffc7d89ac391305"
SRC_URI = "https://releases.pagure.org/${BPN}/${BP}.tar.xz"
-SRC_URI[md5sum] = "d865a1baf574ae5d309f5c1f79315800"
-SRC_URI[sha256sum] = "c68eb3b531d731476d5980c9b7cc287bd64c2a13bec5a537009a2c4af63f9bb0"
+SRC_URI[md5sum] = "2c26e18e912a5cf00318fcf7f8f2d747"
+SRC_URI[sha256sum] = "d7b023b237d6053bf05ff6786e0663c55c614efcc99cdf856120be13b5c29157"
do_install() {
oe_runmake install DESTDIR=${D} sysconfdir=${sysconfdir} mandir=${mandir}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch
new file mode 100644
index 000000000..5da34480e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch
@@ -0,0 +1,36 @@
+From fbfceebce2121831904f2f7115252dd03b413a6d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 19 Sep 2017 18:52:53 -0700
+Subject: [PATCH] IntelRDFPMathLib20U1: Check for __DEFINED_wchar_t
+
+This is defined by musl if wchar_t is already defined
+
+avoids errors like
+
+src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h:46:15: error: typedef redefinition with different types
+ ('int' vs 'unsigned int')
+typedef int wchar_t;
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h b/src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h
+index 2b3f76db86..cc80305775 100755
+--- a/src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h
++++ b/src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h
+@@ -42,7 +42,7 @@
+ #include <ctype.h>
+
+ // Fix system header issue on Sun solaris and define required type by ourselves
+-#if !defined(_WCHAR_T) && !defined(_WCHAR_T_DEFINED) && !defined(__QNX__)
++#if !defined(_WCHAR_T) && !defined(_WCHAR_T_DEFINED) && !defined(__QNX__) && !defined(__DEFINED_wchar_t)
+ typedef int wchar_t;
+ #endif
+
+--
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch
new file mode 100644
index 000000000..f8c419d8a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch
@@ -0,0 +1,50 @@
+From 3eed8388b49d5d3cbc2db74fee1b017eb4b40d0a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 2 Sep 2017 10:06:24 -0700
+Subject: [PATCH] Use __GLIBC__ to control use of gnu_get_libc_version
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+ src/mongo/util/processinfo_linux.cpp | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/src/mongo/util/processinfo_linux.cpp b/src/mongo/util/processinfo_linux.cpp
+index 910015215e..bf8c1ffd15 100644
+--- a/src/mongo/util/processinfo_linux.cpp
++++ b/src/mongo/util/processinfo_linux.cpp
+@@ -40,7 +40,7 @@
+ #include <sys/mman.h>
+ #include <sys/utsname.h>
+ #include <unistd.h>
+-#ifdef __UCLIBC__
++#ifndef __GLIBC__
+ #include <features.h>
+ #else
+ #include <gnu/libc-version.h>
+@@ -451,11 +451,13 @@ double ProcessInfo::getSystemMemoryPressurePercentage() {
+ }
+
+ void ProcessInfo::getExtraInfo(BSONObjBuilder& info) {
++#if defined(__GLIBC__)
+ LinuxProc p(_pid);
+ if (p._maj_flt <= std::numeric_limits<long long>::max())
+ info.appendNumber("page_faults", static_cast<long long>(p._maj_flt));
+ else
+ info.appendNumber("page_faults", static_cast<double>(p._maj_flt));
++#endif
+ }
+
+ /**
+@@ -491,7 +493,7 @@ void ProcessInfo::SystemInfo::collectSystemInfo() {
+ stringstream ss;
+ ss << "uClibc-" << __UCLIBC_MAJOR__ << "." << __UCLIBC_MINOR__ << "." << __UCLIBC_SUBLEVEL__;
+ bExtra.append("libcVersion", ss.str());
+-#else
++#elif defined(__GLIBC__)
+ bExtra.append("libcVersion", gnu_get_libc_version());
+ #endif
+ if (!verSig.empty())
+--
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch
new file mode 100644
index 000000000..c43beb4c1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch
@@ -0,0 +1,67 @@
+From a4951489d649c2b609cbb80f6cfb49fdcad8bd43 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 2 Sep 2017 10:03:37 -0700
+Subject: [PATCH] Use long long instead of int64_t
+
+Fixes
+error: call to member function 'appendNumber' is ambiguous
+since this function expects long long as parameter and not int64_t
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+ src/mongo/util/procparser.cpp | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/src/mongo/util/procparser.cpp b/src/mongo/util/procparser.cpp
+index 36f2ae0254..2c164bcbf3 100644
+--- a/src/mongo/util/procparser.cpp
++++ b/src/mongo/util/procparser.cpp
+@@ -260,7 +260,7 @@ Status parseProcStat(const std::vector<StringData>& keys,
+
+ StringData stringValue((*partIt).begin(), (*partIt).end() - (*partIt).begin());
+
+- uint64_t value;
++ long long value;
+
+ if (!parseNumberFromString(stringValue, &value).isOK()) {
+ value = 0;
+@@ -272,7 +272,7 @@ Status parseProcStat(const std::vector<StringData>& keys,
+ } else {
+ StringData stringValue((*partIt).begin(), (*partIt).end() - (*partIt).begin());
+
+- uint64_t value;
++ long long value;
+
+ if (!parseNumberFromString(stringValue, &value).isOK()) {
+ value = 0;
+@@ -365,7 +365,7 @@ Status parseProcMemInfo(const std::vector<StringData>& keys,
+
+ StringData stringValue((*partIt).begin(), (*partIt).end());
+
+- uint64_t value;
++ long long value;
+
+ if (!parseNumberFromString(stringValue, &value).isOK()) {
+ value = 0;
+@@ -426,7 +426,7 @@ Status parseProcDiskStats(const std::vector<StringData>& disks,
+ StringData data,
+ BSONObjBuilder* builder) {
+ bool foundKeys = false;
+- std::vector<uint64_t> stats;
++ std::vector<long long> stats;
+ stats.reserve(kDiskFieldCount);
+
+ using string_split_iterator = boost::split_iterator<StringData::const_iterator>;
+@@ -501,7 +501,7 @@ Status parseProcDiskStats(const std::vector<StringData>& disks,
+
+ StringData stringValue((*partIt).begin(), (*partIt).end());
+
+- uint64_t value;
++ long long value;
+
+ if (!parseNumberFromString(stringValue, &value).isOK()) {
+ value = 0;
+--
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-Use-strerror_r-only-on-glibc-systems.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-Use-strerror_r-only-on-glibc-systems.patch
new file mode 100644
index 000000000..0334d994e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-Use-strerror_r-only-on-glibc-systems.patch
@@ -0,0 +1,26 @@
+From a4dfc92ff342e59596ab64267a8d4f22f173c23b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 2 Sep 2017 12:40:41 -0700
+Subject: [PATCH 1/4] Use strerror_r only on glibc systems
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/mongo/util/log.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/mongo/util/log.cpp b/src/mongo/util/log.cpp
+index 1957eb4791..ddf3908818 100644
+--- a/src/mongo/util/log.cpp
++++ b/src/mongo/util/log.cpp
+@@ -101,7 +101,7 @@ string errnoWithDescription(int errNumber) {
+ char buf[kBuflen];
+ char* msg{nullptr};
+
+-#if defined(__GNUC__) && defined(_GNU_SOURCE)
++#if defined(__GNUC__) && defined(_GNU_SOURCE) && defined(__GLIBC__)
+ msg = strerror_r(errNumber, buf, kBuflen);
+ #elif defined(_WIN32)
+
+--
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-mongo-Add-using-std-string.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-mongo-Add-using-std-string.patch
new file mode 100644
index 000000000..e517d53d1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-mongo-Add-using-std-string.patch
@@ -0,0 +1,72 @@
+From 5fdec9592285f5976345fbccb3d07fae1245ab53 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 2 Aug 2017 15:41:22 -0700
+Subject: [PATCH] mongo: Add using std::string
+
+This is needed with latest clang
+Fixes
+src/mongo/db/dbwebserver.cpp:206:23: error: use of undeclared identifier 'string'; did you mean 'String'?
+ static vector<string> commands;
+ ^~~~~~
+ String
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/mongo/db/dbwebserver.cpp | 1 +
+ src/mongo/db/matcher/expression_leaf.cpp | 2 ++
+ src/mongo/db/repl/master_slave.cpp | 1 +
+ src/mongo/util/net/miniwebserver.cpp | 1 +
+ 4 files changed, 5 insertions(+)
+
+diff --git a/src/mongo/db/dbwebserver.cpp b/src/mongo/db/dbwebserver.cpp
+index b202e0500b..0255613524 100644
+--- a/src/mongo/db/dbwebserver.cpp
++++ b/src/mongo/db/dbwebserver.cpp
+@@ -67,6 +67,7 @@ namespace mongo {
+ using std::map;
+ using std::stringstream;
+ using std::vector;
++using std::string;
+
+ using namespace html;
+
+diff --git a/src/mongo/db/matcher/expression_leaf.cpp b/src/mongo/db/matcher/expression_leaf.cpp
+index d562bff141..4d931985e2 100644
+--- a/src/mongo/db/matcher/expression_leaf.cpp
++++ b/src/mongo/db/matcher/expression_leaf.cpp
+@@ -44,6 +44,8 @@
+ #include "mongo/stdx/memory.h"
+ #include "mongo/util/mongoutils/str.h"
+
++using std::string;
++
+ namespace mongo {
+
+ Status LeafMatchExpression::setPath(StringData path) {
+diff --git a/src/mongo/db/repl/master_slave.cpp b/src/mongo/db/repl/master_slave.cpp
+index 05faad1259..ea25d7151b 100644
+--- a/src/mongo/db/repl/master_slave.cpp
++++ b/src/mongo/db/repl/master_slave.cpp
+@@ -78,6 +78,7 @@ using std::endl;
+ using std::max;
+ using std::min;
+ using std::set;
++using std::string;
+ using std::stringstream;
+ using std::unique_ptr;
+ using std::vector;
+diff --git a/src/mongo/util/net/miniwebserver.cpp b/src/mongo/util/net/miniwebserver.cpp
+index 5f4165d42f..239720c349 100644
+--- a/src/mongo/util/net/miniwebserver.cpp
++++ b/src/mongo/util/net/miniwebserver.cpp
+@@ -46,6 +46,7 @@ namespace mongo {
+
+ using std::shared_ptr;
+ using std::stringstream;
++using std::string;
+ using std::vector;
+
+ MiniWebServer::MiniWebServer(const string& name, const string& ip, int port, ServiceContext* ctx)
+--
+2.13.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch
new file mode 100644
index 000000000..098306f50
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch
@@ -0,0 +1,35 @@
+From df7ef16afcc6ab55daa686e4f15c16e3d1280337 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 2 Sep 2017 12:42:30 -0700
+Subject: [PATCH 2/4] Add a definition for the macro __ELF_NATIVE_CLASS
+
+It depends on the native arch's word size.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/mongo/util/stacktrace_posix.cpp | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/src/mongo/util/stacktrace_posix.cpp b/src/mongo/util/stacktrace_posix.cpp
+index 53ab85f56f..7c458e7ef2 100644
+--- a/src/mongo/util/stacktrace_posix.cpp
++++ b/src/mongo/util/stacktrace_posix.cpp
+@@ -37,6 +37,15 @@
+ #include <string>
+ #include <sys/utsname.h>
+
++#if !defined(__GLIBC__)
++#if defined __x86_64__ && !defined __ILP32__
++# define __WORDSIZE 64
++#else
++# define __WORDSIZE 32
++#endif
++#define __ELF_NATIVE_CLASS __WORDSIZE
++#endif
++
+ #include "mongo/base/init.h"
+ #include "mongo/config.h"
+ #include "mongo/db/jsobj.h"
+--
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0002-d_state.cpp-Add-missing-dependenncy-on-local_shardin.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0002-d_state.cpp-Add-missing-dependenncy-on-local_shardin.patch
new file mode 100644
index 000000000..95f9c1c1c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0002-d_state.cpp-Add-missing-dependenncy-on-local_shardin.patch
@@ -0,0 +1,28 @@
+From 5759878e5d278f11a1063e8fccd1e6b7b54caadf Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 2 Aug 2017 16:25:37 -0700
+Subject: [PATCH 2/2] d_state.cpp: Add missing dependenncy on
+ local_sharding_info
+
+Fixes
+| src/mongo/s/d_state.cpp:81: error: undefined reference to 'mongo::enableLocalShardingInfo(mongo::ServiceContext*, std::function<bool (mongo::OperationContext*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>)'
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/mongo/s/SConscript | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/mongo/s/SConscript b/src/mongo/s/SConscript
+index 71720be517..51bd199127 100644
+--- a/src/mongo/s/SConscript
++++ b/src/mongo/s/SConscript
+@@ -317,5 +317,6 @@ env.Library(
+ "$BUILD_DIR/mongo/db/s/sharding",
+ "$BUILD_DIR/mongo/executor/network_interface_factory",
+ "$BUILD_DIR/mongo/s/client/shard_local",
++ "$BUILD_DIR/mongo/s/local_sharding_info",
+ ],
+ )
+--
+2.13.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0003-Conditionalize-glibc-specific-strerror_r.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0003-Conditionalize-glibc-specific-strerror_r.patch
new file mode 100644
index 000000000..1591f94c9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0003-Conditionalize-glibc-specific-strerror_r.patch
@@ -0,0 +1,39 @@
+From 458f80f482a201b427a1c92235804d0c3f98fd51 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 2 Sep 2017 13:01:11 -0700
+Subject: [PATCH 3/4] Conditionalize glibc specific strerror_r
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ .../asio-asio-1-11-0/asio/include/asio/impl/error_code.ipp | 11 ++++-------
+ 1 file changed, 4 insertions(+), 7 deletions(-)
+
+diff --git a/src/third_party/asio-asio-1-11-0/asio/include/asio/impl/error_code.ipp b/src/third_party/asio-asio-1-11-0/asio/include/asio/impl/error_code.ipp
+index 4e7badb14a..0eeae884e2 100644
+--- a/src/third_party/asio-asio-1-11-0/asio/include/asio/impl/error_code.ipp
++++ b/src/third_party/asio-asio-1-11-0/asio/include/asio/impl/error_code.ipp
+@@ -97,17 +97,14 @@ public:
+ #if defined(__sun) || defined(__QNX__) || defined(__SYMBIAN32__)
+ using namespace std;
+ return strerror(value);
+-#elif defined(__MACH__) && defined(__APPLE__) \
+- || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) \
+- || defined(_AIX) || defined(__hpux) || defined(__osf__) \
+- || defined(__ANDROID__)
++#elif defined(__GLIBC__) && defined(_GNU_SOURCE)
++ char buf[256] = "";
++ return strerror_r(value, buf, sizeof(buf));
++#else
+ char buf[256] = "";
+ using namespace std;
+ strerror_r(value, buf, sizeof(buf));
+ return buf;
+-#else
+- char buf[256] = "";
+- return strerror_r(value, buf, sizeof(buf));
+ #endif
+ #endif // defined(ASIO_WINDOWS)
+ }
+--
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0004-wiredtiger-Disable-strtouq-on-musl.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0004-wiredtiger-Disable-strtouq-on-musl.patch
new file mode 100644
index 000000000..e871f2ba9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0004-wiredtiger-Disable-strtouq-on-musl.patch
@@ -0,0 +1,26 @@
+From a1c77702926eb8546ff96b00b5b994f7478dabae Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 2 Sep 2017 13:13:15 -0700
+Subject: [PATCH 4/4] wiredtiger: Disable strtouq on musl
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/third_party/wiredtiger/build_linux/wiredtiger_config.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/third_party/wiredtiger/build_linux/wiredtiger_config.h b/src/third_party/wiredtiger/build_linux/wiredtiger_config.h
+index 1122e1e319..fdfd48687b 100644
+--- a/src/third_party/wiredtiger/build_linux/wiredtiger_config.h
++++ b/src/third_party/wiredtiger/build_linux/wiredtiger_config.h
+@@ -101,7 +101,7 @@
+ #define HAVE_STRING_H 1
+
+ /* Define to 1 if you have the `strtouq' function. */
+-#define HAVE_STRTOUQ 1
++/* #undef HAVE_STRTOUQ 1 */
+
+ /* Define to 1 if you have the `sync_file_range' function. */
+ /* #undef HAVE_SYNC_FILE_RANGE */
+--
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/arm64-support.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/arm64-support.patch
new file mode 100644
index 000000000..9046bb2f4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/arm64-support.patch
@@ -0,0 +1,43 @@
+Add alises for arm64 which is same as aarch64
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+
+Index: git/SConstruct
+===================================================================
+--- git.orig/SConstruct
++++ git/SConstruct
+@@ -990,6 +990,7 @@ elif endian == "big":
+ processor_macros = {
+ 'arm' : { 'endian': 'little', 'defines': ('__arm__',) },
+ 'aarch64' : { 'endian': 'little', 'defines': ('__arm64__', '__aarch64__')},
++ 'arm64' : { 'endian': 'little', 'defines': ('__arm64__', '__aarch64__')},
+ 'i386' : { 'endian': 'little', 'defines': ('__i386', '_M_IX86')},
+ 'ppc64le' : { 'endian': 'little', 'defines': ('__powerpc64__',)},
+ 's390x' : { 'endian': 'big', 'defines': ('__s390x__',)},
+Index: git/src/third_party/IntelRDFPMathLib20U1/SConscript
+===================================================================
+--- git.orig/src/third_party/IntelRDFPMathLib20U1/SConscript
++++ git/src/third_party/IntelRDFPMathLib20U1/SConscript
+@@ -301,7 +301,7 @@ if processor == 'i386':
+ elif processor == 'arm':
+ cpp_defines['IA32'] = '1'
+ cpp_defines['ia32'] = '1'
+-elif processor == "aarch64":
++elif processor == "aarch64" or processor == 'arm64':
+ cpp_defines['efi2'] = '1'
+ cpp_defines['EFI2'] = '1'
+ # Using 64 bit little endian
+Index: git/src/third_party/wiredtiger/SConscript
+===================================================================
+--- git.orig/src/third_party/wiredtiger/SConscript
++++ git/src/third_party/wiredtiger/SConscript
+@@ -139,7 +139,7 @@ condition_map = {
+ 'POSIX_HOST' : not env.TargetOSIs('windows'),
+ 'WINDOWS_HOST' : env.TargetOSIs('windows'),
+
+- 'ARM64_HOST' : env['TARGET_ARCH'] == 'aarch64',
++ 'ARM64_HOST' : env['TARGET_ARCH'] in ('aarch64', 'arm64'),
+ 'POWERPC_HOST' : env['TARGET_ARCH'] == 'ppc64le',
+ 'X86_HOST' : env['TARGET_ARCH'] == 'x86_64',
+ 'ZSERIES_HOST' : env['TARGET_ARCH'] == 's390x',
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/disable-hw-crc32-on-arm64-s390x.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/disable-hw-crc32-on-arm64-s390x.patch
new file mode 100644
index 000000000..5c5c20ce3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/disable-hw-crc32-on-arm64-s390x.patch
@@ -0,0 +1,50 @@
+imported from debian
+
+Upstream-Status: Pending
+Index: git/src/third_party/wiredtiger/SConscript
+===================================================================
+--- git.orig/src/third_party/wiredtiger/SConscript
++++ git/src/third_party/wiredtiger/SConscript
+@@ -169,7 +169,9 @@ if useSnappy:
+ # If not available at runtime, we fall back to software in some cases.
+ #
+ # On zSeries we may disable because SLES 11 kernel doe not support the instructions.
+-if not (env['TARGET_ARCH'] == 's390x' and get_option("use-s390x-crc32") == "off"):
++# Debian: disable hardware-assisted crc32 on s390x and arm64, as at least the
++# buildd's do not support the instructions.
++if env['TARGET_ARCH'] not in ('s390x', 'arm64', 'aarch64'):
+ env.Append(CPPDEFINES=["HAVE_CRC32_HARDWARE"])
+
+ wtlib = env.Library(
+Index: git/src/third_party/wiredtiger/dist/filelist
+===================================================================
+--- git.orig/src/third_party/wiredtiger/dist/filelist
++++ git/src/third_party/wiredtiger/dist/filelist
+@@ -54,7 +54,6 @@ src/checksum/power8/crc32_wrapper.c POWE
+ src/checksum/software/checksum.c
+ src/checksum/x86/crc32-x86.c X86_HOST
+ src/checksum/zseries/crc32-s390x.c ZSERIES_HOST
+-src/checksum/zseries/crc32le-vx.sx ZSERIES_HOST
+ src/config/config.c
+ src/config/config_api.c
+ src/config/config_check.c
+Index: git/src/third_party/wiredtiger/src/checksum/zseries/crc32-s390x.c
+===================================================================
+--- git.orig/src/third_party/wiredtiger/src/checksum/zseries/crc32-s390x.c
++++ git/src/third_party/wiredtiger/src/checksum/zseries/crc32-s390x.c
+@@ -78,6 +78,7 @@ unsigned int __wt_crc32c_le(unsigned int
+ return crc; \
+ }
+
++#if defined(HAVE_CRC32_HARDWARE)
+ /* Main CRC-32 functions */
+ DEFINE_CRC32_VX(__wt_crc32c_le_vx, __wt_crc32c_le_vgfm_16, __wt_crc32c_le)
+
+@@ -90,6 +91,7 @@ __wt_checksum_hw(const void *chunk, size
+ {
+ return (~__wt_crc32c_le_vx(0xffffffff, chunk, len));
+ }
++#endif
+
+ #endif
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb_git.bb
index f1a65550e..0ff7d0b59 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb_git.bb
@@ -1,18 +1,30 @@
SUMMARY = "mongodb"
-LICENSE = "AGPL-3.0 & Apache-2.0"
+LICENSE = "AGPL-3.0 & Apache-2.0 & Zlib"
LIC_FILES_CHKSUM = "file://GNU-AGPL-3.0.txt;md5=73f1eb20517c55bf9493b7dd6e480788 \
file://APACHE-2.0.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
-DEPENDS = "openssl libpcre libpcap zlib"
+DEPENDS = "openssl libpcre libpcap zlib python boost"
-inherit scons
+inherit scons dos2unix siteinfo
-PV = "3.3.0+git${SRCPV}"
-SRCREV = "aacd231be0626a204cb40908afdf62c4b67bb0ad"
-SRC_URI = "git://github.com/mongodb/mongo.git;branch=master \
+PV = "3.4.6+git${SRCPV}"
+SRCREV = "c55eb86ef46ee7aede3b1e2a5d184a7df4bfb5b5"
+SRC_URI = "git://github.com/mongodb/mongo.git;branch=v3.4 \
file://0001-Tell-scons-to-use-build-settings-from-environment-va.patch \
+ file://0001-mongo-Add-using-std-string.patch \
+ file://0002-d_state.cpp-Add-missing-dependenncy-on-local_shardin.patch \
+ file://0001-Use-long-long-instead-of-int64_t.patch \
+ file://0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch \
+ file://0001-Use-strerror_r-only-on-glibc-systems.patch \
+ file://0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch \
+ file://0003-Conditionalize-glibc-specific-strerror_r.patch \
+ file://arm64-support.patch \
+ file://0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch \
+ file://disable-hw-crc32-on-arm64-s390x.patch \
+ "
+SRC_URI_append_libc-musl ="\
+ file://0004-wiredtiger-Disable-strtouq-on-musl.patch \
"
-
S = "${WORKDIR}/git"
# Wiredtiger supports only 64-bit platforms
@@ -22,10 +34,13 @@ PACKAGECONFIG ??= "tcmalloc"
# gperftools compilation fails for arm below v7 because of missing support of
# dmb operation. So we use system-allocator instead of tcmalloc
PACKAGECONFIG_remove_armv6 = "tcmalloc"
+PACKAGECONFIG_remove_libc-musl = "tcmalloc"
#std::current_exception is undefined for arm < v6
COMPATIBLE_MACHINE_armv4 = "(!.*armv4).*"
COMPATIBLE_MACHINE_armv5 = "(!.*armv5).*"
+COMPATIBLE_MACHINE_armv7a = "(!.*armv7a).*"
+COMPATIBLE_MACHINE_armv7ve = "(!.*armv7ve).*"
COMPATIBLE_MACHINE_mips64 = "(!.*mips64).*"
COMPATIBLE_MACHINE_powerpc = "(!.*ppc).*"
@@ -43,9 +58,14 @@ EXTRA_OESCONS = "--prefix=${D}${prefix} \
--use-system-zlib \
--js-engine=none \
--nostrip \
+ --endian=${@base_conditional('SITEINFO_ENDIANNESS', 'le', 'little', 'big', d)} \
${PACKAGECONFIG_CONFARGS} \
mongod mongos"
+do_configure_prepend() {
+ # tests use hex floats, not supported in plain C++
+ sed -e 's|-std=c++11|-std=gnu++11|g' -i ${S}/SConstruct
+}
scons_do_compile() {
${STAGING_BINDIR_NATIVE}/scons ${PARALLEL_MAKE} ${EXTRA_OESCONS} || \
die "scons build execution failed."
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-kpartx-include-limits.h-for-PATH_MAX.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-kpartx-include-limits.h-for-PATH_MAX.patch
new file mode 100644
index 000000000..46dd8e23b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-kpartx-include-limits.h-for-PATH_MAX.patch
@@ -0,0 +1,29 @@
+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/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-multipath-attempt-at-common-multipath.rules.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-multipath-attempt-at-common-multipath.rules.patch
new file mode 100644
index 000000000..acb426954
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-multipath-attempt-at-common-multipath.rules.patch
@@ -0,0 +1,107 @@
+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/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-multipathd.service-Error-fix.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-multipathd.service-Error-fix.patch
deleted file mode 100644
index 60c3c0aec..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-multipathd.service-Error-fix.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 630483b9738349c8b3e637a00879b96834a33cdb Mon Sep 17 00:00:00 2001
-From: Li xin <lixin.fnst@cn.fujitsu.com>
-Date: Tue, 7 Jul 2015 11:34:36 +0900
-Subject: [PATCH] multipathd.service: Error fix
-
-Failed to start Device-Mapper Multipath Device Controller.
-
-Upstream-Status: pending
-
-Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
----
- multipathd/multipathd.service | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/multipathd/multipathd.service b/multipathd/multipathd.service
-index e3d6f91..a7e00b2 100644
---- a/multipathd/multipathd.service
-+++ b/multipathd/multipathd.service
-@@ -8,11 +8,12 @@ Wants=local-fs-pre.target multipathd.socket blk-availability.service
- Conflicts=shutdown.target
-
- [Service]
--Type=notify
-+Type=forking
- NotifyAccess=main
- LimitCORE=infinity
-+PIDFile=/var/run/multipathd.pid
- ExecStartPre=/sbin/modprobe -a scsi_dh_alua scsi_dh_emc scsi_dh_rdac dm-multipath
--ExecStart=/sbin/multipathd -d -s
-+ExecStart=/sbin/multipathd
- ExecReload=/sbin/multipathd reconfigure
-
- [Install]
---
-2.11.0
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0002-RH-fixup-udev-rules-for-redhat.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0002-RH-fixup-udev-rules-for-redhat.patch
new file mode 100644
index 000000000..e63d2eb33
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0002-RH-fixup-udev-rules-for-redhat.patch
@@ -0,0 +1,110 @@
+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/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0003-RH-Remove-the-property-blacklist-exception-builtin.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0003-RH-Remove-the-property-blacklist-exception-builtin.patch
new file mode 100644
index 000000000..684e959d6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0003-RH-Remove-the-property-blacklist-exception-builtin.patch
@@ -0,0 +1,70 @@
+From 69a67c2ed09ae51b53de402966a9f7a4cc737715 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Wed, 2 Jul 2014 12:49:53 -0500
+Subject: [PATCH 03/14] RH: Remove the property blacklist exception builtin
+
+Multipath set the default property blacklist exceptions to
+(ID_SCSI_VPD|ID_WWN). This has the effect of blacklisting some internal
+devices. These devices may never have multiple paths, but it is nice
+to be able to set multipath up on them all the same. This patch simply
+removes the default, and makes it so that if no property
+blacklist_exception is given, then devices aren't failed for not matching
+it.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/blacklist.c | 15 ++++++---------
+ multipath/multipath.conf.5 | 4 ----
+ 2 files changed, 6 insertions(+), 13 deletions(-)
+
+diff --git a/libmultipath/blacklist.c b/libmultipath/blacklist.c
+index ee396e2..19d4697 100644
+--- a/libmultipath/blacklist.c
++++ b/libmultipath/blacklist.c
+@@ -181,12 +181,6 @@ setup_default_blist (struct config * conf)
+ if (store_ble(conf->blist_devnode, str, ORIGIN_DEFAULT))
+ return 1;
+
+- str = STRDUP("(SCSI_IDENT_|ID_WWN)");
+- if (!str)
+- return 1;
+- if (store_ble(conf->elist_property, str, ORIGIN_DEFAULT))
+- return 1;
+-
+ vector_foreach_slot (conf->hwtable, hwe, i) {
+ if (hwe->bl_product) {
+ if (_blacklist_device(conf->blist_device, hwe->vendor,
+@@ -390,9 +384,12 @@ filter_property(struct config * conf, struct udev_device * udev)
+ * This is the inverse of the 'normal' matching;
+ * the environment variable _has_ to match.
+ */
+- log_filter(devname, NULL, NULL, NULL, NULL,
+- MATCH_PROPERTY_BLIST_MISSING);
+- return MATCH_PROPERTY_BLIST_MISSING;
++ if (VECTOR_SIZE(conf->elist_property)) {
++ log_filter(devname, NULL, NULL, NULL, NULL,
++ MATCH_PROPERTY_BLIST_MISSING);
++ return MATCH_PROPERTY_BLIST_MISSING;
++ }
++ return 0;
+ }
+
+ void
+diff --git a/multipath/multipath.conf.5 b/multipath/multipath.conf.5
+index f04ff19..fbbbb27 100644
+--- a/multipath/multipath.conf.5
++++ b/multipath/multipath.conf.5
+@@ -1014,10 +1014,6 @@ The \fIWorld Wide Identification\fR of a device.
+ .TP
+ .B property
+ Regular expression of the udev property to be whitelisted.
+-.RS
+-.TP
+-The default is: \fB(SCSI_IDENT_|ID_WWN)\fR
+-.RE
+ .TP
+ .B device
+ Subsection for the device description. This subsection recognizes the
+--
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0004-RH-don-t-start-without-a-config-file.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0004-RH-don-t-start-without-a-config-file.patch
new file mode 100644
index 000000000..87a6d3fb6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0004-RH-don-t-start-without-a-config-file.patch
@@ -0,0 +1,108 @@
+From b2b504fc1959c7a3f0a843c3c204e8e193b675b7 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Wed, 15 Oct 2014 10:39:30 -0500
+Subject: [PATCH 04/14] RH: don't start without a config file
+
+If /etc/multipath.conf doesn't exist, don't start multipathd and blacklist
+all devices when running multipath. A completely blank configuration file
+is almost never what users want. Also, people may have the multipath
+packages installed but don't want to use them. This patch provides a
+simple way to disable multipath. Simply removing or renaming
+/etc/multipath.conf will keep multipath from doing anything.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/config.c | 17 +++++++++++++++++
+ libmultipath/config.h | 1 +
+ multipath/multipath.rules | 1 +
+ multipathd/multipathd.8 | 2 ++
+ multipathd/multipathd.service | 1 +
+ 5 files changed, 22 insertions(+)
+
+diff --git a/libmultipath/config.c b/libmultipath/config.c
+index bb6619b..aae69b8 100644
+--- a/libmultipath/config.c
++++ b/libmultipath/config.c
+@@ -25,6 +25,7 @@
+ #include "prio.h"
+ #include "devmapper.h"
+ #include "mpath_cmd.h"
++#include "version.h"
+
+ static int
+ hwe_strmatch (struct hwentry *hwe1, struct hwentry *hwe2)
+@@ -667,6 +668,22 @@ load_config (char * file)
+ factorize_hwtable(conf->hwtable, builtin_hwtable_size);
+ }
+
++ } else {
++ condlog(0, "/etc/multipath.conf does not exist, blacklisting all devices.");
++ condlog(0, "A default multipath.conf file is located at");
++ condlog(0, "/usr/share/doc/device-mapper-multipath-%d.%d.%d/multipath.conf", MULTIPATH_VERSION(VERSION_CODE));
++ if (conf->blist_devnode == NULL) {
++ conf->blist_devnode = vector_alloc();
++ if (!conf->blist_devnode) {
++ condlog(0, "cannot allocate blacklist\n");
++ goto out;
++ }
++ }
++ if (store_ble(conf->blist_devnode, strdup(".*"),
++ ORIGIN_NO_CONFIG)) {
++ condlog(0, "cannot store default no-config blacklist\n");
++ goto out;
++ }
+ }
+
+ conf->processed_main_config = 1;
+diff --git a/libmultipath/config.h b/libmultipath/config.h
+index ffc69b5..614331c 100644
+--- a/libmultipath/config.h
++++ b/libmultipath/config.h
+@@ -7,6 +7,7 @@
+
+ #define ORIGIN_DEFAULT 0
+ #define ORIGIN_CONFIG 1
++#define ORIGIN_NO_CONFIG 2
+
+ /*
+ * In kernel, fast_io_fail == 0 means immediate failure on rport delete.
+diff --git a/multipath/multipath.rules b/multipath/multipath.rules
+index 4d78b98..5753766 100644
+--- a/multipath/multipath.rules
++++ b/multipath/multipath.rules
+@@ -6,6 +6,7 @@ IMPORT{cmdline}="nompath"
+ ENV{nompath}=="?*", GOTO="end_mpath"
+ IMPORT{cmdline}="multipath"
+ ENV{multipath}=="off", GOTO="end_mpath"
++TEST!="/etc/multipath.conf", GOTO="end_mpath"
+
+ KERNEL=="dm-*", GOTO="check_kpartx"
+ ENV{DEVTYPE}!="partition", GOTO="test_dev"
+diff --git a/multipathd/multipathd.8 b/multipathd/multipathd.8
+index 4c765af..c1499a5 100644
+--- a/multipathd/multipathd.8
++++ b/multipathd/multipathd.8
+@@ -39,6 +39,8 @@ map regains its maximum performance and redundancy.
+ This daemon executes the external \fBmultipath\fR tool when events occur.
+ In turn, the multipath tool signals the multipathd daemon when it is done with
+ devmap reconfiguration, so that it can refresh its failed path list.
++
++In this Linux distribution, multipathd does not run unless a /etc/multipath.conffile exists
+ .
+ .
+ .\" ----------------------------------------------------------------------------
+diff --git a/multipathd/multipathd.service b/multipathd/multipathd.service
+index fd66cf6..fafd088 100644
+--- a/multipathd/multipathd.service
++++ b/multipathd/multipathd.service
+@@ -4,6 +4,7 @@ Wants=systemd-udev-trigger.service systemd-udev-settle.service
+ Before=iscsi.service iscsid.service lvm2-lvmetad.service lvm2-activation-early.service
+ Before=local-fs-pre.target blk-availability.service
+ After=multipathd.socket systemd-udev-trigger.service systemd-udev-settle.service
++ConditionPathExists=/etc/multipath.conf
+ DefaultDependencies=no
+ Conflicts=shutdown.target
+ ConditionKernelCommandLine=!nompath
+--
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0005-RH-add-mpathconf.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0005-RH-add-mpathconf.patch
new file mode 100644
index 000000000..acef41023
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0005-RH-add-mpathconf.patch
@@ -0,0 +1,648 @@
+From de44504fe7f7802cd474efd92ac15b5a8857db1f Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Thu, 16 Oct 2014 15:49:01 -0500
+Subject: [PATCH 05/14] RH: add mpathconf
+
+mpathconf is a program (largely based on lvmcomf) to help users
+configure /etc/multipath.conf and enable or disable multipathing. It
+has a couple of built-in options that can be set directly from the
+command line. But, mostly it is used to get a multipath.conf file
+with the OS defaults, and to enable and disable multipathing via
+a single command.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/config.c | 1 +
+ multipath/Makefile | 5 +
+ multipath/mpathconf | 464 ++++++++++++++++++++++++++++++++++++++++++++++++++
+ multipath/mpathconf.8 | 101 +++++++++++
+ 4 files changed, 571 insertions(+)
+ create mode 100644 multipath/mpathconf
+ create mode 100644 multipath/mpathconf.8
+
+diff --git a/libmultipath/config.c b/libmultipath/config.c
+index aae69b8..c485748 100644
+--- a/libmultipath/config.c
++++ b/libmultipath/config.c
+@@ -672,6 +672,7 @@ load_config (char * file)
+ condlog(0, "/etc/multipath.conf does not exist, blacklisting all devices.");
+ condlog(0, "A default multipath.conf file is located at");
+ condlog(0, "/usr/share/doc/device-mapper-multipath-%d.%d.%d/multipath.conf", MULTIPATH_VERSION(VERSION_CODE));
++ condlog(0, "You can run /sbin/mpathconf to create or modify /etc/multipath.conf");
+ if (conf->blist_devnode == NULL) {
+ conf->blist_devnode = vector_alloc();
+ if (!conf->blist_devnode) {
+diff --git a/multipath/Makefile b/multipath/Makefile
+index 1e9ee4b..3d4d459 100644
+--- a/multipath/Makefile
++++ b/multipath/Makefile
+@@ -18,10 +18,12 @@ $(EXEC): $(OBJS)
+ $(CC) $(CFLAGS) $(OBJS) -o $(EXEC) $(LDFLAGS) $(LIBDEPS)
+ $(GZIP) $(EXEC).8 > $(EXEC).8.gz
+ $(GZIP) $(EXEC).conf.5 > $(EXEC).conf.5.gz
++ $(GZIP) mpathconf.8 > mpathconf.8.gz
+
+ install:
+ $(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir)
+ $(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)/
++ $(INSTALL_PROGRAM) -m 755 mpathconf $(DESTDIR)$(bindir)/
+ $(INSTALL_PROGRAM) -d $(DESTDIR)$(udevrulesdir)
+ $(INSTALL_PROGRAM) -m 644 11-dm-mpath.rules $(DESTDIR)$(udevrulesdir)
+ $(INSTALL_PROGRAM) -m 644 $(EXEC).rules $(DESTDIR)$(libudevdir)/rules.d/62-multipath.rules
+@@ -29,13 +31,16 @@ install:
+ $(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(man8dir)
+ $(INSTALL_PROGRAM) -d $(DESTDIR)$(man5dir)
+ $(INSTALL_PROGRAM) -m 644 $(EXEC).conf.5.gz $(DESTDIR)$(man5dir)
++ $(INSTALL_PROGRAM) -m 644 mpathconf.8.gz $(DESTDIR)$(man8dir)
+
+ uninstall:
+ $(RM) $(DESTDIR)$(bindir)/$(EXEC)
+ $(RM) $(DESTDIR)$(udevrulesdir)/11-dm-mpath.rules
+ $(RM) $(DESTDIR)$(libudevdir)/rules.d/62-multipath.rules
++ $(RM) $(DESTDIR)$(bindir)/mpathconf
+ $(RM) $(DESTDIR)$(man8dir)/$(EXEC).8.gz
+ $(RM) $(DESTDIR)$(man5dir)/$(EXEC).conf.5.gz
++ $(RM) $(DESTDIR)$(man8dir)/mpathconf.8.gz
+
+ clean:
+ $(RM) core *.o $(EXEC) *.gz
+diff --git a/multipath/mpathconf b/multipath/mpathconf
+new file mode 100644
+index 0000000..e839134
+--- /dev/null
++++ b/multipath/mpathconf
+@@ -0,0 +1,464 @@
++#!/bin/bash
++#
++# Copyright (C) 2010 Red Hat, Inc. All rights reserved.
++#
++# This file is part of the device-mapper-multipath package.
++#
++# This copyrighted material is made available to anyone wishing to use,
++# modify, copy, or redistribute it subject to the terms and conditions
++# of the GNU General Public License v.2.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program; if not, write to the Free Software Foundation,
++# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++
++#
++# Simple editting of /etc/multipath.conf
++# This program was largely ripped off from lvmconf
++#
++
++unset ENABLE FIND FRIENDLY MODULE MULTIPATHD HAVE_DISABLE HAVE_WWID_DISABLE HAVE_FIND HAVE_BLACKLIST HAVE_EXCEPTIONS HAVE_DEFAULTS HAVE_FRIENDLY HAVE_MULTIPATHD HAVE_MODULE HAVE_OUTFILE SHOW_STATUS CHANGED_CONFIG WWID_LIST
++
++DEFAULT_CONFIG="# device-mapper-multipath configuration file
++
++# For a complete list of the default configuration values, run either:
++# # multipath -t
++# or
++# # multipathd show config
++
++# For a list of configuration options with descriptions, see the
++# multipath.conf man page.
++
++defaults {
++ user_friendly_names yes
++ find_multipaths yes
++}
++
++blacklist_exceptions {
++ property \"(SCSI_IDENT_|ID_WWN)\"
++}"
++
++CONFIGFILE="/etc/multipath.conf"
++OUTPUTFILE="/etc/multipath.conf"
++MULTIPATHDIR="/etc/multipath"
++TMPFILE="/etc/multipath/.multipath.conf.tmp"
++WWIDS=0
++
++function usage
++{
++ echo "usage: $0 <command>"
++ echo ""
++ echo "Commands:"
++ echo "Enable: --enable "
++ echo "Disable: --disable"
++ echo "Only allow certain wwids (instead of enable): --allow <WWID>"
++ echo "Set user_friendly_names (Default y): --user_friendly_names <y|n>"
++ echo "Set find_multipaths (Default y): --find_multipaths <y|n>"
++ echo "Load the dm-multipath modules on enable (Default y): --with_module <y|n>"
++ echo "start/stop/reload multipathd (Default n): --with_multipathd <y|n>"
++ echo "select output file (Default /etc/multipath.conf): --outfile <FILE>"
++ echo ""
++}
++
++function add_wwid
++{
++ INDEX=0
++ while [ "$INDEX" -lt "$WWIDS" ] ; do
++ if [ "$1" = "${WWID_LIST[$INDEX]}" ] ; then
++ return
++ fi
++ ((INDEX++))
++ done
++ WWID_LIST[$WWIDS]="$1"
++ ((WWIDS++))
++}
++
++function get_dm_deps
++{
++ shift 3
++ while [ -n "$1" -a -n "$2" ]; do
++ MAJOR=$(echo $1 | tr -d '(,')
++ MINOR=$(echo $2 | tr -d ')')
++ UUID=`dmsetup info -c --noheadings -o uuid -j $MAJOR -m $MINOR 2> /dev/null`
++ if [ -n "$UUID" ] ; then
++ set_dm_wwid $UUID
++ fi
++ shift 2
++ done
++}
++
++function set_dm_wwid
++{
++ if [[ "$1" =~ ^part[[:digit:]]+-mpath- ]] ; then
++ add_wwid "${1##part*-mpath-}"
++ elif [[ "$1" =~ ^mpath- ]] ; then
++ add_wwid "${1##mpath-}"
++ else
++ get_dm_deps `dmsetup deps -u $1`
++ fi
++}
++
++function set_wwid
++{
++ UUID=""
++ if [[ "$1" =~ ^[[:digit:]]+:[[:digit:]]+$ ]] ; then
++ MAJOR=${1%%:*}
++ MINOR=${1##*:}
++ UUID=`dmsetup info -c --noheadings -o uuid -j $MAJOR -m $MINOR 2> /dev/null`
++ else
++ UUID=`dmsetup info -c --noheadings -o uuid $1 2> /dev/null`
++ fi
++ if [ -n "$UUID" ] ; then
++ set_dm_wwid $UUID
++ else
++ add_wwid "$1"
++ fi
++}
++
++function parse_args
++{
++ while [ -n "$1" ]; do
++ case $1 in
++ --enable)
++ ENABLE=1
++ shift
++ ;;
++ --disable)
++ ENABLE=0
++ shift
++ ;;
++ --allow)
++ ENABLE=2
++ if [ -n "$2" ]; then
++ set_wwid $2
++ shift 2
++ else
++ usage
++ exit 1
++ fi
++ ;;
++ --user_friendly_names)
++ if [ -n "$2" ]; then
++ FRIENDLY=$2
++ shift 2
++ else
++ usage
++ exit 1
++ fi
++ ;;
++ --find_multipaths)
++ if [ -n "$2" ]; then
++ FIND=$2
++ shift 2
++ else
++ usage
++ exit 1
++ fi
++ ;;
++ --with_module)
++ if [ -n "$2" ]; then
++ MODULE=$2
++ shift 2
++ else
++ usage
++ exit 1
++ fi
++ ;;
++ --with_multipathd)
++ if [ -n "$2" ]; then
++ MULTIPATHD=$2
++ shift 2
++ else
++ usage
++ exit 1
++ fi
++ ;;
++ --outfile)
++ if [ -n "$2" ]; then
++ OUTPUTFILE=$2
++ HAVE_OUTFILE=1
++ shift 2
++ else
++ usage
++ exit 1
++ fi
++ ;;
++ *)
++ usage
++ exit
++ esac
++ done
++}
++
++function validate_args
++{
++ if [ "$ENABLE" = "0" ] && [ -n "$FRIENDLY" -o -n "$FIND" -o -n "$MODULE" ]; then
++ echo "ignoring extra parameters on disable"
++ FRIENDLY=""
++ FIND=""
++ MODULE=""
++ fi
++ if [ -n "$FRIENDLY" ] && [ "$FRIENDLY" != "y" -a "$FRIENDLY" != "n" ]; then
++ echo "--user_friendly_names must be either 'y' or 'n'"
++ exit 1
++ fi
++ if [ -n "$FIND" ] && [ "$FIND" != "y" -a "$FIND" != "n" ]; then
++ echo "--find_multipaths must be either 'y' or 'n'"
++ exit 1
++ fi
++ if [ -z "$ENABLE" -a -z "$FIND" -a -z "$FRIENDLY" ]; then
++ SHOW_STATUS=1
++ fi
++ if [ -n "$MODULE" ] && [ "$MODULE" != "y" -a "$MODULE" != "n" ]; then
++ echo "--with_module must be either 'y' or 'n'"
++ exit 1
++ fi
++ if [ -n "$MULTIPATHD" ] && [ "$MULTIPATHD" != "y" -a "$MULTIPATHD" != "n" ]; then
++ echo "--with_multipathd must be either 'y' or 'n'"
++ exit 1
++ fi
++ if [ "$ENABLE" = 2 -a -z "$HAVE_OUTFILE" ]; then
++ echo "Because --allow makes changes that cannot be automatically reversed,"
++ echo "you must set --outfile when you set --allow"
++ exit 1
++ fi
++}
++
++function add_blacklist_exceptions
++{
++ INDEX=0
++ while [ "$INDEX" -lt "$WWIDS" ] ; do
++ sed -i '/^blacklist_exceptions[[:space:]]*{/ a\
++ wwid '"\"${WWID_LIST[$INDEX]}\""'
++' $TMPFILE
++ ((INDEX++))
++ done
++}
++
++umask 0077
++
++parse_args "$@"
++
++validate_args
++
++if [ ! -d "$MULTIPATHDIR" ]; then
++ echo "/etc/multipath/ does not exist. failing"
++ exit 1
++fi
++
++rm $TMPFILE 2> /dev/null
++echo "$DEFAULT_CONFIG" > $TMPFILE
++if [ -f "$CONFIGFILE" ]; then
++ cp $CONFIGFILE $TMPFILE
++fi
++
++if grep -q "^blacklist[[:space:]]*{" $TMPFILE ; then
++ HAVE_BLACKLIST=1
++fi
++
++if grep -q "^blacklist_exceptions[[:space:]]*{" $TMPFILE ; then
++ HAVE_EXCEPTIONS=1
++fi
++
++if grep -q "^defaults[[:space:]]*{" $TMPFILE ; then
++ HAVE_DEFAULTS=1
++fi
++
++if [ -z "$MODULE" -o "$MODULE" = "y" ]; then
++ if lsmod | grep -q "dm_multipath" ; then
++ HAVE_MODULE=1
++ else
++ HAVE_MODULE=0
++ fi
++fi
++
++if [ "$MULTIPATHD" = "y" ]; then
++ if /bin/systemctl status multipathd.service > /dev/null 2>&1 ; then
++ HAVE_MULTIPATHD=1
++ else
++ HAVE_MULTIPATHD=0
++ fi
++fi
++
++if [ "$HAVE_BLACKLIST" = "1" ]; then
++ if sed -n '/^blacklist[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*devnode \"\.\?\*\"" ; then
++ HAVE_DISABLE=1
++ elif sed -n '/^blacklist[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*#[[:space:]]*devnode \"\.\?\*\"" ; then
++ HAVE_DISABLE=0
++ fi
++fi
++
++if [ "$HAVE_BLACKLIST" = "1" ]; then
++ if sed -n '/^blacklist[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*wwid \"\.\?\*\"" ; then
++ HAVE_WWID_DISABLE=1
++ elif sed -n '/^blacklist[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*#[[:space:]]*wwid \"\.\?\*\"" ; then
++ HAVE_WWID_DISABLE=0
++ fi
++fi
++
++if [ "$HAVE_DEFAULTS" = "1" ]; then
++ if sed -n '/^defaults[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*find_multipaths[[:space:]]*\(yes\|1\)" ; then
++ HAVE_FIND=1
++ elif sed -n '/^defaults[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*find_multipaths[[:space:]]*\(no\|0\)" ; then
++ HAVE_FIND=0
++ fi
++ if sed -n '/^defaults[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*user_friendly_names[[:space:]]*\(yes\|1\)" ; then
++ HAVE_FRIENDLY=1
++ elif sed -n '/^defaults[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*user_friendly_names[[:space:]]*\(no\|0\)" ; then
++ HAVE_FRIENDLY=0
++ fi
++fi
++
++if [ -n "$SHOW_STATUS" ]; then
++ if [ -z "$HAVE_DISABLE" -o "$HAVE_DISABLE" = 0 ]; then
++ echo "multipath is enabled"
++ else
++ echo "multipath is disabled"
++ fi
++ if [ -z "$HAVE_FIND" -o "$HAVE_FIND" = 0 ]; then
++ echo "find_multipaths is disabled"
++ else
++ echo "find_multipaths is enabled"
++ fi
++ if [ -z "$HAVE_FRIENDLY" -o "$HAVE_FRIENDLY" = 0 ]; then
++ echo "user_friendly_names is disabled"
++ else
++ echo "user_friendly_names is enabled"
++ fi
++ if [ -n "$HAVE_MODULE" ]; then
++ if [ "$HAVE_MODULE" = 1 ]; then
++ echo "dm_multipath module is loaded"
++ else
++ echo "dm_multipath module is not loaded"
++ fi
++ fi
++ if [ -z "$HAVE_MULTIPATHD" ]; then
++ if /bin/systemctl status multipathd.service > /dev/null 2>&1 ; then
++ HAVE_MULTIPATHD=1
++ else
++ HAVE_MULTIPATHD=0
++ fi
++ fi
++ if [ "$HAVE_MULTIPATHD" = 1 ]; then
++ echo "multipathd is running"
++ else
++ echo "multipathd is not running"
++ fi
++ exit 0
++fi
++
++if [ -z "$HAVE_BLACKLIST" ]; then
++ cat >> $TMPFILE <<- _EOF_
++
++blacklist {
++}
++_EOF_
++fi
++
++if [ -z "$HAVE_DEFAULTS" ]; then
++ cat >> $TMPFILE <<- _EOF_
++
++defaults {
++}
++_EOF_
++fi
++
++if [ "$ENABLE" = 2 ]; then
++ if [ "$HAVE_DISABLE" = 1 ]; then
++ sed -i '/^blacklist[[:space:]]*{/,/^}/ s/^[[:space:]]*devnode \"\.\?\*\"/# devnode ".*"/' $TMPFILE
++ fi
++ if [ -z "$HAVE_WWID_DISABLE" ]; then
++ sed -i '/^blacklist[[:space:]]*{/ a\
++ wwid ".*"
++' $TMPFILE
++ elif [ "$HAVE_WWID_DISABLE" = 0 ]; then
++ sed -i '/^blacklist[[:space:]]*{/,/^}/ s/^[[:space:]]*#[[:space:]]*wwid \"\.\?\*\"/ wwid ".*"/' $TMPFILE
++ fi
++ if [ "$HAVE_EXCEPTIONS" = 1 ]; then
++ sed -i '/^blacklist_exceptions[[:space:]]*{/,/^}/ {/^[[:space:]]*wwid/ d}' $TMPFILE
++ else
++ cat >> $TMPFILE <<- _EOF_
++
++blacklist_exceptions {
++}
++_EOF_
++ fi
++ add_blacklist_exceptions
++elif [ "$ENABLE" = 1 ]; then
++ if [ "$HAVE_DISABLE" = 1 ]; then
++ sed -i '/^blacklist[[:space:]]*{/,/^}/ s/^[[:space:]]*devnode \"\.\?\*\"/# devnode ".*"/' $TMPFILE
++ fi
++elif [ "$ENABLE" = 0 ]; then
++ if [ -z "$HAVE_DISABLE" ]; then
++ sed -i '/^blacklist[[:space:]]*{/ a\
++ devnode ".*"
++' $TMPFILE
++ elif [ "$HAVE_DISABLE" = 0 ]; then
++ sed -i '/^blacklist[[:space:]]*{/,/^}/ s/^[[:space:]]*#[[:space:]]*devnode \"\.\?\*\"/ devnode ".*"/' $TMPFILE
++ fi
++fi
++
++if [ "$FIND" = "n" ]; then
++ if [ "$HAVE_FIND" = 1 ]; then
++ sed -i '/^defaults[[:space:]]*{/,/^}/ s/^[[:space:]]*find_multipaths[[:space:]]*\(yes\|1\)/ find_multipaths no/' $TMPFILE
++ CHANGED_CONFIG=1
++ fi
++elif [ "$FIND" = "y" ]; then
++ if [ -z "$HAVE_FIND" ]; then
++ sed -i '/^defaults[[:space:]]*{/ a\
++ find_multipaths yes
++' $TMPFILE
++ CHANGED_CONFIG=1
++ elif [ "$HAVE_FIND" = 0 ]; then
++ sed -i '/^defaults[[:space:]]*{/,/^}/ s/^[[:space:]]*find_multipaths[[:space:]]*\(no\|0\)/ find_multipaths yes/' $TMPFILE
++ CHANGED_CONFIG=1
++ fi
++fi
++
++if [ "$FRIENDLY" = "n" ]; then
++ if [ "$HAVE_FRIENDLY" = 1 ]; then
++ sed -i '/^defaults[[:space:]]*{/,/^}/ s/^[[:space:]]*user_friendly_names[[:space:]]*\(yes\|1\)/ user_friendly_names no/' $TMPFILE
++ CHANGED_CONFIG=1
++ fi
++elif [ "$FRIENDLY" = "y" ]; then
++ if [ -z "$HAVE_FRIENDLY" ]; then
++ sed -i '/^defaults[[:space:]]*{/ a\
++ user_friendly_names yes
++' $TMPFILE
++ CHANGED_CONFIG=1
++ elif [ "$HAVE_FRIENDLY" = 0 ]; then
++ sed -i '/^defaults[[:space:]]*{/,/^}/ s/^[[:space:]]*user_friendly_names[[:space:]]*\(no\|0\)/ user_friendly_names yes/' $TMPFILE
++ CHANGED_CONFIG=1
++ fi
++fi
++
++if [ -f "$OUTPUTFILE" ]; then
++ cp $OUTPUTFILE $OUTPUTFILE.old
++ if [ $? != 0 ]; then
++ echo "failed to backup old config file, $OUTPUTFILE not updated"
++ exit 1
++ fi
++fi
++
++cp $TMPFILE $OUTPUTFILE
++if [ $? != 0 ]; then
++ echo "failed to copy new config file into place, check $OUTPUTFILE is still OK"
++ exit 1
++fi
++
++rm -f $TMPFILE
++
++if [ "$ENABLE" = 1 ]; then
++ if [ "$HAVE_MODULE" = 0 ]; then
++ modprobe dm_multipath
++ fi
++ if [ "$HAVE_MULTIPATHD" = 0 ]; then
++ systemctl start multipathd.service
++ fi
++elif [ "$ENABLE" = 0 ]; then
++ if [ "$HAVE_MULTIPATHD" = 1 ]; then
++ systemctl stop multipathd.service
++ fi
++elif [ -n "$CHANGED_CONFIG" -a "$HAVE_MULTIPATHD" = 1 ]; then
++ systemctl reload multipathd.service
++fi
+diff --git a/multipath/mpathconf.8 b/multipath/mpathconf.8
+new file mode 100644
+index 0000000..4cd3267
+--- /dev/null
++++ b/multipath/mpathconf.8
+@@ -0,0 +1,101 @@
++.TH MPATHCONF 8 "June 2010" "" "Linux Administrator's Manual"
++.SH NAME
++mpathconf - A tool for configuring device-mapper-multipath
++.SH SYNOPSIS
++.B mpathconf
++.RB [\| commands \|]
++.RB [\| options \|]
++.SH DESCRIPTION
++.B mpathconf
++is a utility that creates or modifies
++.B /etc/multipath.conf.
++It can enable or disable multipathing and configure some common options.
++.B mpathconf
++can also load the
++.B dm_multipath
++module, start and stop the
++.B multipathd
++daemon, and configure the
++.B multipathd
++service to start automatically or not. If
++.B mpathconf
++is called with no commands, it will display the current configuration.
++
++The default options for mpathconf are
++.B --with_module
++The
++.B --with_multipathd
++option is not set by default. Enabling multipathing will load the
++.B dm_multipath
++module but it will not immediately start it. This is so
++that users can manually edit their config file if necessary, before starting
++.B multipathd.
++
++If
++.B /etc/multipath.conf
++already exists, mpathconf will edit it. If it does not exist, mpathconf will
++create a default file with
++.B user_friendly_names
++and
++.B find_multipaths
++set. To disable these, use the
++.B --user_friendly_names n
++and
++.B --find_multipaths n
++options
++.SH COMMANDS
++.TP
++.B --enable
++Removes any line that blacklists all device nodes from the
++.B /etc/multipath.conf
++blacklist section.
++.TP
++.B --disable
++Adds a line that blacklists all device nodes to the
++.B /etc/multipath.conf
++blacklist section. If no blacklist section exists, it will create one.
++.TP
++.B --user_friendly_name \fP { \fBy\fP | \fBn\fP }
++If set to \fBy\fP, this adds the line
++.B user_friendly_names yes
++to the
++.B /etc/multipath.conf
++defaults section. If set to \fBn\fP, this removes the line, if present. This
++command can be used along with any other command.
++.TP
++.B --find_multipaths\fP { \fBy\fP | \fBn\fP }
++If set to \fBy\fP, this adds the line
++.B find_multipaths yes
++to the
++.B /etc/multipath.conf
++defaults section. If set to \fBn\fP, this removes the line, if present. This
++command can be used aldong with any other command.
++.SH OPTIONS
++.TP
++.B --with_module\fP { \fBy\fP | \fBn\fP }
++If set to \fBy\fP, this runs
++.B modprobe dm_multipath
++to install the multipath modules. This option only works with the
++.B --enable
++command. This option is set to \fBy\fP by default.
++.TP
++.B --with_multipathd { \fBy\fP | \fBn\fP }
++If set to \fBy\fP, this runs
++.B service multipathd start
++to start the multipathd daemon on \fB--enable\fP,
++.B service multipathd stop
++to stop the multipathd daemon on \fB--disable\fP, and
++.B service multipathd reload
++to reconfigure multipathd on \fB--user_frindly_names\fP and
++\fB--find_multipaths\fP.
++This option is set to \fBn\fP by default.
++.SH FILES
++.BR /etc/multipath.conf
++.SH "SEE ALSO"
++.BR multipath.conf (5),
++.BR modprobe (8),
++.BR multipath (8),
++.BR multipathd (8),
++.BR service (8),
++.SH AUTHOR
++Benjamin Marzinski <bmarzins@redhat.com>
+--
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0006-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0006-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch
new file mode 100644
index 000000000..dc291b812
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0006-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch
@@ -0,0 +1,166 @@
+From 15179c830521d8f37f9254ebc6bbf150a409f956 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Fri, 17 Oct 2014 11:20:34 -0500
+Subject: [PATCH 06/14] RH: add wwids from kernel cmdline mpath.wwids with -A
+
+This patch adds another option to multipath, "-A", which reads
+/proc/cmdline for mpath.wwid=<WWID> options, and adds any wwids it finds
+to /etc/multipath/wwids. While this isn't usually important during
+normal operation, since these wwids should already be added, it can be
+helpful during installation, to make sure that multipath can claim
+devices as its own, before LVM or something else makes use of them. The
+patch also execs "/sbin/multipath -A" before running multipathd in
+multipathd.service
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/wwids.c | 44 +++++++++++++++++++++++++++++++++++++++++++
+ libmultipath/wwids.h | 1 +
+ multipath/main.c | 10 ++++++++--
+ multipath/multipath.8 | 5 ++++-
+ multipathd/multipathd.service | 1 +
+ 5 files changed, 58 insertions(+), 3 deletions(-)
+
+diff --git a/libmultipath/wwids.c b/libmultipath/wwids.c
+index bc70a27..88bb72b 100644
+--- a/libmultipath/wwids.c
++++ b/libmultipath/wwids.c
+@@ -321,3 +321,47 @@ remember_wwid(char *wwid)
+ condlog(4, "wwid %s already in wwids file", wwid);
+ return 0;
+ }
++
++int remember_cmdline_wwid(void)
++{
++ FILE *f = NULL;
++ char buf[LINE_MAX], *next, *ptr;
++ int ret = 0;
++
++ f = fopen("/proc/cmdline", "re");
++ if (!f) {
++ condlog(0, "can't open /proc/cmdline : %s", strerror(errno));
++ return -1;
++ }
++
++ if (!fgets(buf, sizeof(buf), f)) {
++ if (ferror(f))
++ condlog(0, "read of /proc/cmdline failed : %s",
++ strerror(errno));
++ else
++ condlog(0, "couldn't read /proc/cmdline");
++ fclose(f);
++ return -1;
++ }
++ fclose(f);
++ next = buf;
++ while((ptr = strstr(next, "mpath.wwid="))) {
++ ptr += 11;
++ next = strpbrk(ptr, " \t\n");
++ if (next) {
++ *next = '\0';
++ next++;
++ }
++ if (strlen(ptr)) {
++ if (remember_wwid(ptr) != 0)
++ ret = -1;
++ }
++ else {
++ condlog(0, "empty mpath.wwid kernel command line option");
++ ret = -1;
++ }
++ if (!next)
++ break;
++ }
++ return ret;
++}
+diff --git a/libmultipath/wwids.h b/libmultipath/wwids.h
+index 9527012..b665232 100644
+--- a/libmultipath/wwids.h
++++ b/libmultipath/wwids.h
+@@ -17,5 +17,6 @@ int remember_wwid(char *wwid);
+ int check_wwids_file(char *wwid, int write_wwid);
+ int remove_wwid(char *wwid);
+ int replace_wwids(vector mp);
++int remember_cmdline_wwid(void);
+
+ #endif /* _WWIDS_H */
+diff --git a/multipath/main.c b/multipath/main.c
+index 4174d43..72585b0 100644
+--- a/multipath/main.c
++++ b/multipath/main.c
+@@ -102,7 +102,7 @@ usage (char * progname)
+ {
+ fprintf (stderr, VERSION_STRING);
+ fprintf (stderr, "Usage:\n");
+- fprintf (stderr, " %s [-a|-c|-w|-W] [-d] [-r] [-i] [-v lvl] [-p pol] [-b fil] [-q] [dev]\n", progname);
++ fprintf (stderr, " %s [-a|-A|-c|-w|-W] [-d] [-r] [-i] [-v lvl] [-p pol] [-b fil] [-q] [dev]\n", progname);
+ fprintf (stderr, " %s -l|-ll|-f [-v lvl] [-b fil] [-R num] [dev]\n", progname);
+ fprintf (stderr, " %s -F [-v lvl] [-R num]\n", progname);
+ fprintf (stderr, " %s -t\n", progname);
+@@ -116,6 +116,8 @@ usage (char * progname)
+ " -f flush a multipath device map\n"
+ " -F flush all multipath device maps\n"
+ " -a add a device wwid to the wwids file\n"
++ " -A add devices from kernel command line mpath.wwids\n"
++ " parameters to wwids file\n"
+ " -c check if a device should be a path in a multipath device\n"
+ " -q allow queue_if_no_path when multipathd is not running\n"
+ " -d dry run, do not create or update devmaps\n"
+@@ -522,7 +524,7 @@ main (int argc, char *argv[])
+ exit(1);
+ multipath_conf = conf;
+ conf->retrigger_tries = 0;
+- while ((arg = getopt(argc, argv, ":adchl::FfM:v:p:b:BrR:itquwW")) != EOF ) {
++ while ((arg = getopt(argc, argv, ":aAdchl::FfM:v:p:b:BrR:itquwW")) != EOF ) {
+ switch(arg) {
+ case 1: printf("optarg : %s\n",optarg);
+ break;
+@@ -586,6 +588,10 @@ main (int argc, char *argv[])
+ case 't':
+ r = dump_config(conf);
+ goto out_free_config;
++ case 'A':
++ if (remember_cmdline_wwid() != 0)
++ exit(1);
++ exit(0);
+ case 'h':
+ usage(argv[0]);
+ exit(0);
+diff --git a/multipath/multipath.8 b/multipath/multipath.8
+index b9436e5..b9ad6b1 100644
+--- a/multipath/multipath.8
++++ b/multipath/multipath.8
+@@ -25,7 +25,7 @@ multipath \- Device mapper target autoconfig.
+ .RB [\| \-b\ \c
+ .IR bindings_file \|]
+ .RB [\| \-d \|]
+-.RB [\| \-h | \-l | \-ll | \-f | \-t | \-F | \-B | \-c | \-q | \|-r | \|-i | \-a | \|-u | \-w | \-W \|]
++.RB [\| \-h | \-l | \-ll | \-f | \-t | \-F | \-B | \-c | \-q | \|-r | \|-i | \-a | \-A | \-u | \-w | \-W \|]
+ .RB [\| \-p\ \c
+ .IR failover | multibus | group_by_serial | group_by_prio | group_by_node_name \|]
+ .RB [\| \-R\ \c
+@@ -122,6 +122,9 @@ Add the WWID for the specified device to the WWIDs file.
+ Check if the device specified in the program environment should be
+ a path in a multipath device.
+ .
++.B \-A
++add wwids from any kernel command line mpath.wwid parameters to the wwids file
++.
+ .TP
+ .B \-w
+ Remove the WWID for the specified device from the WWIDs file.
+diff --git a/multipathd/multipathd.service b/multipathd/multipathd.service
+index fafd088..a623a3f 100644
+--- a/multipathd/multipathd.service
++++ b/multipathd/multipathd.service
+@@ -15,6 +15,7 @@ Type=notify
+ NotifyAccess=main
+ LimitCORE=infinity
+ ExecStartPre=-/sbin/modprobe -a scsi_dh_alua scsi_dh_emc scsi_dh_rdac dm-multipath
++ExecStartPre=-/sbin/multipath -A
+ ExecStart=/sbin/multipathd -d -s
+ ExecReload=/sbin/multipathd reconfigure
+
+--
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0007-RH-trigger-change-uevent-on-new-device-creation.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0007-RH-trigger-change-uevent-on-new-device-creation.patch
new file mode 100644
index 000000000..025a3512e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0007-RH-trigger-change-uevent-on-new-device-creation.patch
@@ -0,0 +1,138 @@
+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/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0008-libmultipath-change-how-RADOS-checker-is-enabled.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0008-libmultipath-change-how-RADOS-checker-is-enabled.patch
new file mode 100644
index 000000000..f67880993
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0008-libmultipath-change-how-RADOS-checker-is-enabled.patch
@@ -0,0 +1,56 @@
+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/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0009-multipath-set-verbosity-to-default-during-config.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0009-multipath-set-verbosity-to-default-during-config.patch
new file mode 100644
index 000000000..17d2d9179
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0009-multipath-set-verbosity-to-default-during-config.patch
@@ -0,0 +1,40 @@
+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/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0010-mpath-skip-device-configs-without-vendor-product.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0010-mpath-skip-device-configs-without-vendor-product.patch
new file mode 100644
index 000000000..396b6d32e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0010-mpath-skip-device-configs-without-vendor-product.patch
@@ -0,0 +1,37 @@
+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/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0011-multipathd-fix-show-maps-json-crash.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0011-multipathd-fix-show-maps-json-crash.patch
new file mode 100644
index 000000000..12d6d38a7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0011-multipathd-fix-show-maps-json-crash.patch
@@ -0,0 +1,38 @@
+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/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0012-multipath-tools-modify-Makefile.inc-for-cross-compil.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0012-multipath-tools-modify-Makefile.inc-for-cross-compil.patch
new file mode 100644
index 000000000..5ccd4aed8
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0012-multipath-tools-modify-Makefile.inc-for-cross-compil.patch
@@ -0,0 +1,58 @@
+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/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0013-Always-use-devmapper.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0013-Always-use-devmapper.patch
new file mode 100644
index 000000000..52240f643
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0013-Always-use-devmapper.patch
@@ -0,0 +1,53 @@
+From 1498338970a093fccbda3e33f5588a289ef2c66a Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Wed, 5 Jul 2017 02:59:46 -0400
+Subject: [PATCH 13/14] Always use devmapper
+
+Do not try to compute several _API_ make variables
+from host information when cross-compiling.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Aws Ismail <aws.ismail@windriver.com>
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
+
+Rebase to 0.7.1
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ libmultipath/Makefile | 19 ++++---------------
+ 1 file changed, 4 insertions(+), 15 deletions(-)
+
+diff --git a/libmultipath/Makefile b/libmultipath/Makefile
+index b3244fc..9006b3f 100644
+--- a/libmultipath/Makefile
++++ b/libmultipath/Makefile
+@@ -20,21 +20,10 @@ ifdef SYSTEMD
+ endif
+ endif
+
+-ifneq ($(call check_func,dm_task_no_flush,/usr/include/libdevmapper.h),0)
+- CFLAGS += -DLIBDM_API_FLUSH -D_GNU_SOURCE
+-endif
+-
+-ifneq ($(call check_func,dm_task_set_cookie,/usr/include/libdevmapper.h),0)
+- CFLAGS += -DLIBDM_API_COOKIE
+-endif
+-
+-ifneq ($(call check_func,udev_monitor_set_receive_buffer_size,/usr/include/libudev.h),0)
+- CFLAGS += -DLIBUDEV_API_RECVBUF
+-endif
+-
+-ifneq ($(call check_func,dm_task_deferred_remove,/usr/include/libdevmapper.h),0)
+- CFLAGS += -DLIBDM_API_DEFERRED
+-endif
++CFLAGS += -DLIBDM_API_FLUSH -D_GNU_SOURCE
++CFLAGS += -DLIBDM_API_COOKIE
++CFLAGS += -DLIBUDEV_API_RECVBUF
++CFLAGS += -DLIBDM_API_DEFERRED
+
+ OBJS = memory.o parser.o vector.o devmapper.o callout.o \
+ hwtable.o blacklist.o util.o dmparser.o config.o \
+--
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/always-use-libdevmapper-kpartx.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0014-Always-use-devmapper-for-kpartx.patch
index 803e52c10..f951213c1 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/always-use-libdevmapper-kpartx.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0014-Always-use-devmapper-for-kpartx.patch
@@ -1,7 +1,7 @@
-From 7267cf235fc052eaa1ca36e437096576edacb131 Mon Sep 17 00:00:00 2001
-From: Aws Ismail <aws.ismail@windriver.com>
-Date: Mon, 22 Sep 2014 17:22:32 -0700
-Subject: [PATCH] Always use devmapper for kpartx
+From 7f5869cd32a7b3f717d9544b35562d9d01ca6510 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Wed, 5 Jul 2017 03:03:16 -0400
+Subject: [PATCH 14/14] Always use devmapper for kpartx
Do not try to compute the LIBDM_API_COOKIE make variable
from host information when cross-compiling.
@@ -10,21 +10,22 @@ Upstream-Status: Inappropriate [embedded specific]
Signed-off-by: Aws Ismail <aws.ismail@windriver.com>
Signed-off-by: Joe Slater <joe.slater@windriver.com>
+
+Rebase to 0.7.1
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
- kpartx/Makefile | 6 +-----
- 1 file changed, 1 insertion(+), 5 deletions(-)
+ kpartx/Makefile | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/kpartx/Makefile b/kpartx/Makefile
-index e8a59f2..e694a65 100644
+index bfa6fe8..be87124 100644
--- a/kpartx/Makefile
+++ b/kpartx/Makefile
-@@ -7,11 +7,7 @@ CFLAGS += -I. -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
+@@ -8,9 +8,7 @@ LDFLAGS += $(BIN_LDFLAGS)
LIBDEPS += -ldevmapper
--LIBDM_API_COOKIE = $(shell grep -Ecs '^[a-z]*[[:space:]]+dm_task_set_cookie' /usr/include/libdevmapper.h)
--
--ifneq ($(strip $(LIBDM_API_COOKIE)),0)
+-ifneq ($(call check_func,dm_task_set_cookie,/usr/include/libdevmapper.h),0)
- CFLAGS += -DLIBDM_API_COOKIE
-endif
+CFLAGS += -DLIBDM_API_COOKIE
@@ -32,5 +33,5 @@ index e8a59f2..e694a65 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.11.0
+2.8.1
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/always-use-libdevmapper.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/always-use-libdevmapper.patch
deleted file mode 100644
index 33834f6b8..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/always-use-libdevmapper.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From c4f0dba4e86bfa20252fcc8218398e7468ca9149 Mon Sep 17 00:00:00 2001
-From: Aws Ismail <aws.ismail@windriver.com>
-Date: Mon, 22 Sep 2014 17:22:32 -0700
-Subject: [PATCH] Always use devmapper
-
-Do not try to compute several _API_ make variables
-from host information when cross-compiling.
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Aws Ismail <aws.ismail@windriver.com>
-Signed-off-by: Joe Slater <joe.slater@windriver.com>
----
- libmultipath/Makefile | 27 ++++-----------------------
- 1 file changed, 4 insertions(+), 23 deletions(-)
-
-diff --git a/libmultipath/Makefile b/libmultipath/Makefile
-index 495cebe..9626e69 100644
---- a/libmultipath/Makefile
-+++ b/libmultipath/Makefile
-@@ -20,29 +20,10 @@ ifdef SYSTEMD
- endif
- endif
-
--LIBDM_API_FLUSH = $(shell grep -Ecs '^[a-z]*[[:space:]]+dm_task_no_flush' /usr/include/libdevmapper.h)
--
--ifneq ($(strip $(LIBDM_API_FLUSH)),0)
-- CFLAGS += -DLIBDM_API_FLUSH -D_GNU_SOURCE
--endif
--
--LIBDM_API_COOKIE = $(shell grep -Ecs '^[a-z]*[[:space:]]+dm_task_set_cookie' /usr/include/libdevmapper.h)
--
--ifneq ($(strip $(LIBDM_API_COOKIE)),0)
-- CFLAGS += -DLIBDM_API_COOKIE
--endif
--
--LIBUDEV_API_RECVBUF = $(shell grep -Ecs '^[a-z]*[[:space:]]+udev_monitor_set_receive_buffer_size' /usr/include/libudev.h)
--
--ifneq ($(strip $(LIBUDEV_API_RECVBUF)),0)
-- CFLAGS += -DLIBUDEV_API_RECVBUF
--endif
--
--LIBDM_API_DEFERRED = $(shell grep -Ecs '^[a-z]*[[:space:]]+dm_task_deferred_remove' /usr/include/libdevmapper.h)
--
--ifneq ($(strip $(LIBDM_API_DEFERRED)),0)
-- CFLAGS += -DLIBDM_API_DEFERRED
--endif
-+CFLAGS += -DLIBDM_API_FLUSH -D_GNU_SOURCE
-+CFLAGS += -DLIBDM_API_COOKIE
-+CFLAGS += -DLIBUDEV_API_RECVBUF
-+CFLAGS += -DLIBDM_API_DEFERRED
-
- OBJS = memory.o parser.o vector.o devmapper.o callout.o \
- hwtable.o blacklist.o util.o dmparser.o config.o \
---
-2.11.0
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/checkers-disable-libcheckrbd.so.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/checkers-disable-libcheckrbd.so.patch
deleted file mode 100644
index 908a5162e..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/checkers-disable-libcheckrbd.so.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 148b848f45957e5e1c0466e8c79c84ba4a0bf241 Mon Sep 17 00:00:00 2001
-From: Patrick Ohly <patrick.ohly@intel.com>
-Date: Fri, 27 Jan 2017 10:35:54 +0100
-Subject: [PATCH] checkers: disable libcheckrbd.so
-
-libcheckrbd.so depends on librados, which is not currently available
-as a recipe. These checkers seem to be optional, so for now we merely
-disable compilation of libcheckrbd.so.
-
-Upstream-Status: Inappropriate [configuration]
-
-Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
----
- libmultipath/checkers/Makefile | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/libmultipath/checkers/Makefile b/libmultipath/checkers/Makefile
-index 11ab76f..c848d50 100644
---- a/libmultipath/checkers/Makefile
-+++ b/libmultipath/checkers/Makefile
-@@ -14,7 +14,6 @@ LIBS= \
- libcheckemc_clariion.so \
- libcheckhp_sw.so \
- libcheckrdac.so \
-- libcheckrbd.so
-
- all: $(LIBS)
-
---
-2.11.0
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/makefile_inc.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/makefile_inc.patch
deleted file mode 100644
index 5b7b6966a..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/makefile_inc.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 9f5768eca165502b0f17d271aa6f7cf530ec60b2 Mon Sep 17 00:00:00 2001
-From: Joe Slater <joe.slater@windriver.com>
-Date: Mon, 22 Sep 2014 17:22:32 -0700
-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>
----
- Makefile.inc | 17 +++++------------
- 1 file changed, 5 insertions(+), 12 deletions(-)
-
-diff --git a/Makefile.inc b/Makefile.inc
-index 1cc8f44..15f8b91 100644
---- a/Makefile.inc
-+++ b/Makefile.inc
-@@ -29,12 +29,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
-@@ -61,13 +55,12 @@ RM = rm -f
- LN = ln -sf
- INSTALL_PROGRAM = install
-
--OPTFLAGS = -O2 -g -pipe -Wall -Wextra -Wformat=2 \
-- -Wno-sign-compare -Wno-unused-parameter -Wno-clobbered \
-- -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector \
-- --param=ssp-buffer-size=4
-+ifndef OPTFLAGS
-+OPTFLAGS = $(RPM_OPT_FLAGS) -Wunused -Wstrict-prototypes
-+endif
-
--CFLAGS = $(OPTFLAGS) -fPIC -DLIB_STRING=\"${LIB}\" -DRUN_DIR=\"${RUN}\"
--SHARED_FLAGS = -shared
-+CFLAGS = $(OPTFLAGS) -fPIC -DLIB_STRING=\"${LIB}\" -DRUN_DIR=\"${RUN}\"
-+SHARED_FLAGS = -shared
-
- %.o: %.c
- $(CC) $(CFLAGS) -c -o $@ $<
---
-2.11.0
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/multipath.conf.example b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/multipath.conf.example
new file mode 100644
index 000000000..6bbeadba2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/multipath.conf.example
@@ -0,0 +1,90 @@
+# This is a basic configuration file with some examples, for device mapper
+# multipath.
+# For a complete list of the default configuration values, see
+# /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf.defaults
+# For a list of configuration options with descriptions, see
+# /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf.annotated
+
+## By default, devices with vendor = "IBM" and product = "S/390.*" are
+## blacklisted. To enable mulitpathing on these devies, uncomment the
+## following lines.
+#blacklist_exceptions {
+# device {
+# vendor "IBM"
+# product "S/390.*"
+# }
+#}
+
+## Use user friendly names, instead of using WWIDs as names.
+defaults {
+ user_friendly_names yes
+}
+##
+## Here is an example of how to configure some standard options.
+##
+#
+#defaults {
+# udev_dir /dev
+# polling_interval 10
+# selector "round-robin 0"
+# path_grouping_policy multibus
+# getuid_callout "/lib/udev/scsi_id --whitelisted --device=/dev/%n"
+# prio alua
+# path_checker readsector0
+# rr_min_io 100
+# max_fds 8192
+# rr_weight priorities
+# failback immediate
+# no_path_retry fail
+# user_friendly_names yes
+#}
+##
+## The wwid line in the following blacklist section is shown as an example
+## of how to blacklist devices by wwid. The 2 devnode lines are the
+## compiled in default blacklist. If you want to blacklist entire types
+## of devices, such as all scsi devices, you should use a devnode line.
+## However, if you want to blacklist specific devices, you should use
+## a wwid line. Since there is no guarantee that a specific device will
+## not change names on reboot (from /dev/sda to /dev/sdb for example)
+## devnode lines are not recommended for blacklisting specific devices.
+##
+#blacklist {
+# wwid 26353900f02796769
+# devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
+# devnode "^hd[a-z]"
+#}
+#multipaths {
+# multipath {
+# wwid 3600508b4000156d700012000000b0000
+# alias yellow
+# path_grouping_policy multibus
+# path_checker readsector0
+# path_selector "round-robin 0"
+# failback manual
+# rr_weight priorities
+# no_path_retry 5
+# }
+# multipath {
+# wwid 1DEC_____321816758474
+# alias red
+# }
+#}
+#devices {
+# device {
+# vendor "COMPAQ "
+# product "HSV110 (C)COMPAQ"
+# path_grouping_policy multibus
+# getuid_callout "/lib/udev/scsi_id --whitelisted --device=/dev/%n"
+# path_checker readsector0
+# path_selector "round-robin 0"
+# hardware_handler "0"
+# failback 15
+# rr_weight priorities
+# no_path_retry queue
+# }
+# device {
+# vendor "COMPAQ "
+# product "MSA1000 "
+# path_grouping_policy multibus
+# }
+#}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/shared-libs-avoid-linking-.so-as-executable.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/shared-libs-avoid-linking-.so-as-executable.patch
deleted file mode 100644
index 88579e6aa..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/shared-libs-avoid-linking-.so-as-executable.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 4311856200480288494df8df737f71ea316592d0 Mon Sep 17 00:00:00 2001
-From: Patrick Ohly <patrick.ohly@intel.com>
-Date: Thu, 26 Jan 2017 15:28:34 +0100
-Subject: [PATCH] shared libs: avoid linking .so as executable
-
-When the OE build systems sets CFLAGS including -pie, gcc overrides
-the earlier -shared parameter and tries to link a binary, leading to
-errors about missing functions like main().
-
-Reordering the parameters so that -shared comes after CFLAGS
-fixes this.
-
-Upstream-Status: Inappropriate [OE specific, -pie shouldn't be in CFLAGS?!]
-
-Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
----
-diff --git a/libmpathcmd/Makefile b/libmpathcmd/Makefile
-index 457c4ca..f68c82c 100644
---- a/libmpathcmd/Makefile
-+++ b/libmpathcmd/Makefile
-@@ -9,7 +9,7 @@ OBJS = mpath_cmd.o
- all: $(LIBS)
-
- $(LIBS): $(OBJS)
-- $(CC) $(LDFLAGS) $(SHARED_FLAGS) -Wl,-soname=$@ $(CFLAGS) -o $@ $(OBJS) $(LIBDEPS)
-+ $(CC) $(LDFLAGS) $(CFLAGS) $(SHARED_FLAGS) -Wl,-soname=$@ -o $@ $(OBJS) $(LIBDEPS)
- $(LN) $@ $(DEVLIB)
-
- install: $(LIBS)
-diff --git a/libmpathpersist/Makefile b/libmpathpersist/Makefile
-index 6e43427..2486302 100644
---- a/libmpathpersist/Makefile
-+++ b/libmpathpersist/Makefile
-@@ -15,7 +15,7 @@ all: $(LIBS)
-
- $(LIBS):
- $(CC) -c $(CFLAGS) *.c
-- $(CC) $(LDFLAGS) $(SHARED_FLAGS) $(LIBDEPS) -Wl,-soname=$@ $(CFLAGS) -o $@ $(OBJS)
-+ $(CC) $(LDFLAGS) $(CFLAGS) $(SHARED_FLAGS) $(LIBDEPS) -Wl,-soname=$@ -o $@ $(OBJS)
- $(LN) $(LIBS) $(DEVLIB)
- $(GZIP) mpath_persistent_reserve_in.3 > mpath_persistent_reserve_in.3.gz
- $(GZIP) mpath_persistent_reserve_out.3 > mpath_persistent_reserve_out.3.gz
-diff --git a/libmultipath/Makefile b/libmultipath/Makefile
-index 495cebe..752bcc0 100644
---- a/libmultipath/Makefile
-+++ b/libmultipath/Makefile
-@@ -55,7 +55,7 @@ OBJS = memory.o parser.o vector.o devmapper.o callout.o \
- all: $(LIBS)
-
- $(LIBS): $(OBJS)
-- $(CC) $(LDFLAGS) $(SHARED_FLAGS) -Wl,-soname=$@ $(CFLAGS) -o $@ $(OBJS) $(LIBDEPS)
-+ $(CC) $(LDFLAGS) $(CFLAGS) $(SHARED_FLAGS) -Wl,-soname=$@ -o $@ $(OBJS) $(LIBDEPS)
- $(LN) $@ $(DEVLIB)
-
- install:
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.7.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.7.1.bb
new file mode 100644
index 000000000..6ec5dffcc
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.7.1.bb
@@ -0,0 +1,113 @@
+SUMMARY = "The upstream project used to drive the Device Mapper multipathing driver"
+
+DESCRIPTION = "It provides tools to manage multipath devices \
+by instructing the device-mapper kernel module what to do. These \
+tools include: \
+1. multipath - Scan the system for multipath devices and assemble them.\
+2. multipathd - Detects when paths fail and execs multipath to update \
+things.\
+3. mpathpersist - Persistent reservation management feature allows \
+cluster management software to manage persistent reservation through \
+mpath device. It processes management requests from callers and hides \
+the management task details. It also handles persistent reservation \
+management of data path life cycle and state changes.\
+4. kpartx - This tool, derived from util-linux's partx, reads partition \
+tables on specified device and create device maps over partitions \
+segments detected. It is called from hotplug upon device maps creation \
+and deletion"
+
+HOMEPAGE = "http://christophe.varoqui.free.fr/"
+
+DEPENDS = "libdevmapper \
+ libaio \
+ liburcu \
+ readline \
+ udev \
+ json-c \
+ "
+
+LICENSE = "GPLv2"
+
+SRC_URI = "git://git.opensvc.com/multipath-tools/.git;protocol=http \
+ file://multipathd.oe \
+ file://multipath.conf.example \
+ file://0001-multipath-attempt-at-common-multipath.rules.patch \
+ file://0002-RH-fixup-udev-rules-for-redhat.patch \
+ file://0003-RH-Remove-the-property-blacklist-exception-builtin.patch \
+ file://0004-RH-don-t-start-without-a-config-file.patch \
+ file://0005-RH-add-mpathconf.patch \
+ file://0006-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch \
+ file://0007-RH-trigger-change-uevent-on-new-device-creation.patch \
+ file://0008-libmultipath-change-how-RADOS-checker-is-enabled.patch \
+ file://0009-multipath-set-verbosity-to-default-during-config.patch \
+ file://0010-mpath-skip-device-configs-without-vendor-product.patch \
+ file://0011-multipathd-fix-show-maps-json-crash.patch \
+ file://0012-multipath-tools-modify-Makefile.inc-for-cross-compil.patch \
+ file://0013-Always-use-devmapper.patch \
+ file://0014-Always-use-devmapper-for-kpartx.patch \
+ file://0001-kpartx-include-limits.h-for-PATH_MAX.patch \
+ "
+LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
+
+SRCREV = "f21166a812a2cfb50ecf9550d32947c83103f83a"
+
+S = "${WORKDIR}/git"
+
+inherit systemd pkgconfig
+
+SYSTEMD_SERVICE_${PN} = "multipathd.service"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+# multipath-tools includes a copy of the valgrind.h header
+# file and uses the macros to suppress some false positives. However,
+# that only works on ARM when thumb is disabled. Otherwise one gets:
+# Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r12,r12,ror#3'
+# ../Makefile.inc:66: recipe for target 'debug.o' failed
+ARM_INSTRUCTION_SET_armv4 = "arm"
+ARM_INSTRUCTION_SET_armv5 = "arm"
+
+# The exact version of SYSTEMD does not matter but should be greater than 209.
+#
+EXTRA_OEMAKE = 'MULTIPATH_VERSION=${PV} DESTDIR=${D} syslibdir=${base_libdir} \
+ OPTFLAGS="${CFLAGS}" \
+ bindir=${base_sbindir} \
+ LIB=${base_libdir} libdir=${base_libdir}/multipath \
+ unitdir=${systemd_system_unitdir} \
+ ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "SYSTEMD=216", "", d)} \
+ '
+
+do_install() {
+ oe_runmake install
+
+ # We copy an initscript, but do not start multipathd at init time.
+ #
+ if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)};then
+ install -d ${D}${sysconfdir}/init.d
+ cp ${WORKDIR}/multipathd.oe ${D}${sysconfdir}/init.d/multipathd
+ fi
+
+ install -d ${D}${sysconfdir}
+ install -m 0644 ${WORKDIR}/multipath.conf.example \
+ ${D}${sysconfdir}/multipath.conf.example
+}
+
+FILES_${PN}-dbg += "${base_libdir}/multipath/.debug"
+
+PACKAGES =+ "${PN}-libs"
+FILES_${PN}-libs = "${base_libdir}/lib*.so.* \
+ ${base_libdir}/multipath/lib*.so*"
+RDEPENDS_${PN} += "${PN}-libs bash"
+
+PROVIDES += "device-mapper-multipath"
+RPROVIDES_${PN} += "device-mapper-multipath"
+RPROVIDES_${PN}-libs += "device-mapper-multipath-libs"
+
+FILES_${PN}-dev += "${base_libdir}/pkgconfig"
+
+PACKAGES =+ "kpartx"
+FILES_kpartx = "${base_sbindir}/kpartx \
+ ${nonarch_libdir}/udev/kpartx_id \
+ "
+
+RDEPENDS_${PN} += "bash kpartx"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_git.bb
deleted file mode 100644
index 5f8c42257..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_git.bb
+++ /dev/null
@@ -1,71 +0,0 @@
-SUMMARY = "The upstream project used to drive the Device Mapper multipathing driver"
-
-DEPENDS = "libdevmapper libaio liburcu readline udev"
-
-LICENSE = "LGPLv2"
-
-SRC_URI = "git://git.opensvc.com/multipath-tools/.git;protocol=http \
- file://multipathd.oe \
- file://makefile_inc.patch \
- file://always-use-libdevmapper.patch \
- file://always-use-libdevmapper-kpartx.patch \
- file://0001-multipathd.service-Error-fix.patch \
- file://shared-libs-avoid-linking-.so-as-executable.patch \
- file://checkers-disable-libcheckrbd.so.patch \
- "
-LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
-
-# 0.6.4
-SRCREV = "922421cf795d53d339862bb2d99f1a85c96ad9a3"
-
-inherit systemd
-
-
-S = "${WORKDIR}/git"
-
-PV = "0.6.4+git${@'${SRCPV}'.split('+')[-1]}"
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-# multipath-tools includes a copy of the valgrind.h header
-# file and uses the macros to suppress some false positives. However,
-# that only works on ARM when thumb is disabled. Otherwise one gets:
-# Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r12,r12,ror#3'
-# ../Makefile.inc:66: recipe for target 'debug.o' failed
-ARM_INSTRUCTION_SET_armv4 = "arm"
-ARM_INSTRUCTION_SET_armv5 = "arm"
-
-# The exact version of SYSTEMD does not matter but should be greater than 209.
-#
-EXTRA_OEMAKE = 'MULTIPATH_VERSION=${PV} DESTDIR=${D} syslibdir=${base_libdir} \
- OPTFLAGS="${CFLAGS}" \
- bindir=${base_sbindir} \
- LIB=${base_libdir} libdir=${base_libdir}/multipath \
- unitdir=${systemd_system_unitdir} \
- ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "SYSTEMD=216", "", d)} \
- '
-
-do_install() {
- oe_runmake install
-
- # We copy an initscript, but do not start multipathd at init time.
- #
- install -d ${D}${sysconfdir}/init.d
- cp ${WORKDIR}/multipathd.oe ${D}${sysconfdir}/init.d/multipathd
-
-}
-
-FILES_${PN}-dbg += "${base_libdir}/multipath/.debug"
-
-# systemd and udev stuff always goes under /lib!
-#
-FILES_${PN} += "${base_libdir}/multipath \
- ${systemd_system_unitdir} \
- "
-
-PACKAGES =+ "kpartx"
-FILES_kpartx = "${base_sbindir}/kpartx \
- ${nonarch_libdir}/udev/kpartx_id \
- "
-
-RDEPENDS_${PN} += "kpartx"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb-native_5.5.55.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb-native_5.5.57.bb
index 4ce960d7d..4ce960d7d 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb-native_5.5.55.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb-native_5.5.57.bb
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb.inc b/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb.inc
index fd9dcbd1a..263b3139e 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb.inc
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb.inc
@@ -4,7 +4,7 @@ SECTION = "libs"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-SRC_URI = "http://downloads.mariadb.com/MariaDB/mariadb-${PV}/source/mariadb-${PV}.tar.gz \
+SRC_URI = "https://downloads.mariadb.org/f/${BP}/source/${BP}.tar.gz \
file://fix-cmake-module-path.patch \
file://remove-bad-path.patch \
file://fix-mysqlclient-r-version.patch \
@@ -17,10 +17,10 @@ SRC_URI = "http://downloads.mariadb.com/MariaDB/mariadb-${PV}/source/mariadb-${P
file://fix-a-building-failure.patch \
file://change-cc-to-cc-version.patch \
file://0001-disable-ucontext-on-musl.patch \
- file://gcc7.patch \
"
-SRC_URI[md5sum] = "54a0bbbc9b67308e7c076622d02f0fcd"
-SRC_URI[sha256sum] = "cb94e315d0fc90c62db5a6c7829c9966f674285d99b3ba3ffa575fb4a26edc86"
+
+SRC_URI[md5sum] = "2d4104aae0b9e5efa8878918bd329cb4"
+SRC_URI[sha256sum] = "5dbde98d7e4a5a1721b6cbed7898b2549a88866247951cf586057975c6cea641"
S = "${WORKDIR}/mariadb-${PV}"
@@ -82,6 +82,9 @@ EXTRA_OECMAKE = "-DWITH_EMBEDDED_SERVER=ON \
-DCAT_EXECUTABLE=`which cat` \
-DCMAKE_AR:FILEPATH=${AR}"
+ARM_INSTRUCTION_SET_armv4 = "arm"
+ARM_INSTRUCTION_SET_armv5 = "arm"
+
do_configure_append() {
# handle distros with different values of ${libexecdir}
libexecdir2=`echo ${libexecdir} | sed -e 's+/usr/++g'`
@@ -255,6 +258,7 @@ FILES_${PN}-server = "\
${bindir}/mysqlbinlog \
${bindir}/mysqld_multi \
${bindir}/mysqld_safe \
+ ${bindir}/mysqld_safe_helper \
${bindir}/mysqlhotcopy \
${bindir}/mysqltest \
${bindir}/ndb_delete_all \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/gcc7.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/gcc7.patch
deleted file mode 100644
index 3e75b26c7..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/gcc7.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: mariadb-5.5.55/client/mysql.cc
-===================================================================
---- mariadb-5.5.55.orig/client/mysql.cc
-+++ mariadb-5.5.55/client/mysql.cc
-@@ -2850,7 +2850,7 @@ You can turn off this feature to get a q
- mysql_free_result(fields);
- break;
- }
-- field_names[i][num_fields*2]= '\0';
-+ field_names[i][num_fields*2][0]= '\0';
- j=0;
- while ((sql_field=mysql_fetch_field(fields)))
- {
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb_5.5.55.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb_5.5.57.bb
index d7895732a..d7895732a 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb_5.5.55.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb_5.5.57.bb
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/nghttp2/nghttp2_1.26.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/nghttp2/nghttp2_1.26.0.bb
new file mode 100644
index 000000000..3e6b10a43
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/nghttp2/nghttp2_1.26.0.bb
@@ -0,0 +1,16 @@
+SUMMARY = "HTTP/2 C Library and tools"
+HOMEPAGE = "https://nghttp2.org/"
+SECTION = "libs"
+
+DEPENDS = "pkgconfig cunit zlib openssl libxml2 jansson c-ares"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+SRC_URI = "https://github.com/nghttp2/nghttp2/releases/download/v${PV}/nghttp2-${PV}.tar.bz2"
+SRC_URI[md5sum] = "926f07ad3b50f38f7d8935ced04716cf"
+SRC_URI[sha256sum] = "0df4229f4123b5aa96e834ebcfdffe954e93d986f0252fd10123d50c6f010983"
+
+inherit cmake pythonnative python-dir
+
+EXTRA_OECMAKE = ""
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/nmon/nmon/0001-lmon16g.c-Adjust-system-headers.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/nmon/nmon/0001-lmon16g.c-Adjust-system-headers.patch
new file mode 100644
index 000000000..e8debe56a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/nmon/nmon/0001-lmon16g.c-Adjust-system-headers.patch
@@ -0,0 +1,46 @@
+From d977b5170027926eb97ab9742ddc51d2a5555a34 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 14 Jul 2017 10:06:49 -0700
+Subject: [PATCH] lmon16g.c: Adjust system headers
+
+fstab.h is unused
+errno.h is in /usr/include
+defines from sys/cdefs.h is used
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lmon16g.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/lmon16g.c b/lmon16g.c
+index cb27e09..d2a11c5 100644
+--- a/lmon16g.c
++++ b/lmon16g.c
+@@ -63,7 +63,7 @@ static char *SccsId = "nmon " VERSION;
+ #include <fcntl.h>
+ #include <math.h>
+ #include <time.h>
+-#include <sys/errno.h>
++#include <errno.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <sys/ioctl.h>
+@@ -71,6 +71,7 @@ static char *SccsId = "nmon " VERSION;
+ #include <sys/time.h>
+ #include <sys/socket.h>
+ #include <sys/wait.h>
++#include <sys/cdefs.h>
+
+ /* Windows moved here so they can be cleared when the screen mode changes */
+ WINDOW *padwelcome = NULL;
+@@ -576,7 +577,6 @@ struct procsinfo {
+ int isroot = 0;
+
+ #include <mntent.h>
+-#include <fstab.h>
+ #include <sys/stat.h>
+ #include <sys/statfs.h>
+ #include <net/if.h>
+--
+2.13.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/nmon/nmon_13g.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/nmon/nmon_16g.bb
index 1f7518972..e77faa30a 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/nmon/nmon_13g.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/nmon/nmon_16g.bb
@@ -4,23 +4,25 @@ SECTION = "console/utils"
LICENSE = "GPLv3"
LIC_FILES_CHKSUM = "file://${WORKDIR}/Documentation.txt;md5=dbb13658cf55d687c4f2ff771a696d4a"
DEPENDS = "ncurses"
-PR = "r2"
+DEPENDS_append_libc-musl = " bsd-headers"
-SRC_URI = "${SOURCEFORGE_MIRROR}/nmon/lmon13g.c;name=lmon \
+SRC_URI = "${SOURCEFORGE_MIRROR}/nmon/lmon${PV}.c;name=lmon \
${SOURCEFORGE_MIRROR}/nmon/Documentation.txt;name=doc \
+ file://0001-lmon16g.c-Adjust-system-headers.patch \
"
-
-SRC_URI[lmon.md5sum] = "b1b8e6c0123ad232394991f2d4f40494"
-SRC_URI[lmon.sha256sum] = "456ab2a342b31d1a352d0d940af5962fa65a12ae8757ff73e6e73210832ae8b5"
+SRC_URI[lmon.md5sum] = "246ccfc74d5af55d992601fc4d3d4a72"
+SRC_URI[lmon.sha256sum] = "da82dd693b503b062854dfe7dbb5d36b347872ab44a4aa05b97e9d577747f688"
SRC_URI[doc.md5sum] = "dbb13658cf55d687c4f2ff771a696d4a"
SRC_URI[doc.sha256sum] = "1f7f83afe62a7210be5e83cd24157adb854c14599efe0b377a7ecca933869278"
CFLAGS += "-D JFS -D GETUSER -Wall -D LARGEMEM"
-LDFLAGS += "-ltinfo -lncursesw"
+LDFLAGS += "-ltinfo -lncursesw -lm"
ASNEEDED_pn-nmon = ""
+S = "${WORKDIR}"
+
do_compile() {
- ${CC} ${CFLAGS} ${LDFLAGS} ${WORKDIR}/lmon13g.c -o nmon
+ ${CC} ${CFLAGS} ${LDFLAGS} lmon${PV}.c -o nmon
}
do_install() {
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/numactl/numactl_2.0.11.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/numactl/numactl_git.bb
index dd159a3b1..b9cbcf09d 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/numactl/numactl_2.0.11.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/numactl/numactl_git.bb
@@ -1,4 +1,5 @@
SUMMARY = "Development package for building Applications that use numa"
+HOMEPAGE = "http://oss.sgi.com/projects/libnuma/"
DESCRIPTION = "Simple NUMA policy support. It consists of a numactl program \
to run other programs with a specific NUMA policy and a libnuma to do \
allocations with NUMA policy in applications."
@@ -10,15 +11,18 @@ inherit autotools-brokensep ptest
LIC_FILES_CHKSUM = "file://README;beginline=19;endline=32;md5=5644cc3851cb2499f6c48e52fe198bd9"
-SRC_URI = "ftp://oss.sgi.com/www/projects/libnuma/download/${BPN}-${PV}.tar.gz \
+SRCREV = "ea3a70681c2f523fe58e1d44527f478ca76db74e"
+PV = "2.0.11+git${SRCPV}"
+
+SRC_URI = "git://github.com/numactl/numactl \
file://fix-null-pointer.patch \
file://Fix-the-test-output-format.patch \
file://Makefile \
file://run-ptest \
file://0001-define-run-test-target.patch \
"
-SRC_URI[md5sum] = "d3bc88b7ddb9f06d60898f4816ae9127"
-SRC_URI[sha256sum] = "450c091235f891ee874a8651b179c30f57a1391ca5c4673354740ba65e527861"
+
+S = "${WORKDIR}/git"
# ARM does not currently support NUMA
COMPATIBLE_HOST = "^((?!arm).*)$"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ode/ode/configure.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/ode/ode/configure.patch
deleted file mode 100644
index 246b2e2c2..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/ode/ode/configure.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: ode-0.13/libccd/configure.ac
-===================================================================
---- ode-0.13.orig/libccd/configure.ac 2013-08-19 17:48:03.000000000 +0000
-+++ ode-0.13/libccd/configure.ac 2014-07-17 22:04:16.580595690 +0000
-@@ -5,7 +5,7 @@
- AC_INIT([libccd], [1.0], [danfis@danfis.cz])
- AC_CONFIG_SRCDIR([src/ccd.c])
- AC_CONFIG_HEADERS([src/config.h])
--AM_INIT_AUTOMAKE
-+AM_INIT_AUTOMAKE([foreign])
-
- # Checks for programs.
- AC_PROG_CXX
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ode/ode_0.13.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/ode/ode_0.13.bb
deleted file mode 100644
index c90c81954..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/ode/ode_0.13.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "ODE is an Open Source Physics Engine"
-SECTION = "libs"
-HOMEPAGE = "http://www.ode.org"
-LICENSE = "LGPLv2.1 & BSD"
-LIC_FILES_CHKSUM = " \
- file://COPYING;md5=1de906ee96808d9776dd72a5f9a79a22 \
- file://LICENSE.TXT;md5=771782cb6245c7fbbe74bc0ec059beff \
-"
-# LICENSE-BSD.TXT is missing in 0.13 tarball, but COPYING still says it's dual licensed
-# and svn repo still contains LICENSE-BSD.TXT so maybe it will return in next tarball
-# file://LICENSE-BSD.TXT;md5=c74e6304a772117e059458fb9763a928
-
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/opende/ode-${PV}.tar.bz2 \
- file://configure.patch"
-SRC_URI[md5sum] = "04b32c9645c147e18caff7a597a19f84"
-SRC_URI[sha256sum] = "34ce3e236e313bf109a0cb5546d2fca462aed99f29a42e62bc1463b803c31ef9"
-
-inherit autotools binconfig
-
-EXTRA_OECONF = "--disable-demos --enable-soname"
-
-FILES_${PN} = "${libdir}/lib*${SOLIBS}"
-
-PACKAGECONFIG ?= ""
-# if it isn't explicitly selected and "$build_os" == "$target_os", then configure will run
-# series of AC_TRY_RUN which won't work for cross-compilation and configure fails
-PACKAGECONFIG[double-precision] = "--enable-double-precision,--disable-double-precision"
-
-PNBLACKLIST[ode] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130599/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-PNBLACKLIST[ode] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130620/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/open-vcdiff/open-vcdiff_0.8.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vcdiff/open-vcdiff_0.8.4.bb
deleted file mode 100644
index d3f2e789b..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/open-vcdiff/open-vcdiff_0.8.4.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "An encoder/decoder for the VCDIFF (RFC3284) format"
-DESCRIPTION = "A library with a simple API is included, as well as a \
- command-line executable that can apply the encoder and \
- decoder to source, target, and delta files. \
- A slight variation from the draft standard is defined \
- to allow chunk-by-chunk decoding when only a partial \
- delta file window is available."
-HOMEPAGE = "http://code.google.com/p/open-vcdiff/"
-SECTION = "console/utils"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=ff820d4ddc1ba05b6fd37b41a21506f9"
-
-SRC_URI = "https://drive.google.com/uc?id=0B5WpIi2fQU1aNGJwVE9hUjU5clU&export=download;downloadfilename=${BP}.tar.gz"
-SRC_URI[md5sum] = "5c0d378d907bebc38b51c3d7e4117011"
-SRC_URI[sha256sum] = "2b142b1027fb0a62c41347600e01a53fa274dad15445a7da48083c830c3138b3"
-
-inherit autotools
-
-# http://errors.yoctoproject.org/Errors/Details/68667/
-PNBLACKLIST[open-vcdiff] ?= "BROKEN: fails to build with gcc-6 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/tools.conf b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/tools.conf
new file mode 100644
index 000000000..f6cae70cc
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/tools.conf
@@ -0,0 +1,2 @@
+[guestinfo]
+disable-perf-mon=1
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/vmtoolsd.service b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/vmtoolsd.service
new file mode 100644
index 000000000..d30e38055
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/vmtoolsd.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Open Virtual Machine Tools (VMware Tools)
+ConditionVirtualization=vmware
+
+[Service]
+ExecStart=/usr/bin/vmtoolsd
+Restart=on-failure
+KillSignal=SIGKILL
+
+[Install]
+WantedBy=multi-user.target
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Remove-assumptions-about-glibc-being-only-libc-imple.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Remove-assumptions-about-glibc-being-only-libc-imple.patch
new file mode 100644
index 000000000..9773b4a94
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Remove-assumptions-about-glibc-being-only-libc-imple.patch
@@ -0,0 +1,45 @@
+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/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch
new file mode 100644
index 000000000..e9cb873f1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch
@@ -0,0 +1,41 @@
+From 929150608c16644695f19cd2e0cc8a06a41cd497 Mon Sep 17 00:00:00 2001
+From: Martin Kelly <mkelly@xevo.com>
+Date: Fri, 7 Apr 2017 15:20:30 -0700
+Subject: [PATCH] configure.ac: don't use dnet-config
+
+The dnet-config tool doesn't know about cross-compilation, so it injects
+-I/usr/include into the path, causing compiler errors. So instead find dnet via
+-ldnet.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Martin Kelly <mkelly@xevo.com>
+---
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+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
+ AC_VMW_CHECK_LIB([dnet],
+ [DNET],
+ [],
+- [dnet-config],
++ [],
+ [],
+ [dnet.h],
+ [intf_open],
+@@ -952,7 +952,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
+
+--
+2.1.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-add-include-sys-sysmacros.h.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-add-include-sys-sysmacros.h.patch
new file mode 100644
index 000000000..f905601d5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-add-include-sys-sysmacros.h.patch
@@ -0,0 +1,33 @@
+From 5818acc8032e3247257730376e947330340a07b3 Mon Sep 17 00:00:00 2001
+From: Martin Kelly <mkelly@xevo.com>
+Date: Mon, 22 May 2017 17:00:05 -0700
+Subject: [PATCH 2/2] add #include <sys/sysmacros.h>
+
+In newer glibc versions, the definition for major() has been moved to
+sys/sysmacros.h, and using the older version in <sys/types.h> has been
+deprecated. So, add an include for <sys/sysmacros.h>.
+
+Upstream-Status: Pending
+
+Signed-off-by: Martin Kelly <mkelly@xevo.com>
+---
+ lib/wiper/wiperPosix.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/open-vm-tools/lib/wiper/wiperPosix.c b/open-vm-tools/lib/wiper/wiperPosix.c
+index d389eee..1f221fc 100644
+--- a/lib/wiper/wiperPosix.c
++++ b/lib/wiper/wiperPosix.c
+@@ -40,6 +40,9 @@
+ # include <libgen.h>
+ # endif /* __FreeBSD_version >= 500000 */
+ #endif
++#if defined(__linux__)
++#include <sys/sysmacros.h>
++#endif
+ #include <unistd.h>
+
+ #include "vmware.h"
+--
+2.7.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-include-poll.h-instead-of-obsolete-sys-poll.h.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-include-poll.h-instead-of-obsolete-sys-poll.h.patch
new file mode 100644
index 000000000..d26bf2dd3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-include-poll.h-instead-of-obsolete-sys-poll.h.patch
@@ -0,0 +1,24 @@
+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/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0003-Rename-poll.h-to-vm_poll.h.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0003-Rename-poll.h-to-vm_poll.h.patch
new file mode 100644
index 000000000..8641778d0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0003-Rename-poll.h-to-vm_poll.h.patch
@@ -0,0 +1,756 @@
+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/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0004-Add-Wno-incompatible-pointer-types-and-Wno-error-add.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0004-Add-Wno-incompatible-pointer-types-and-Wno-error-add.patch
new file mode 100644
index 000000000..010516761
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0004-Add-Wno-incompatible-pointer-types-and-Wno-error-add.patch
@@ -0,0 +1,31 @@
+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/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0005-Use-configure-test-for-struct-timespec.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0005-Use-configure-test-for-struct-timespec.patch
new file mode 100644
index 000000000..f02d00f84
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0005-Use-configure-test-for-struct-timespec.patch
@@ -0,0 +1,45 @@
+From bf1eafb07297711baf9320b1edcca8a3376f117d Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Wed, 18 Nov 2015 09:03:00 +0000
+Subject: [PATCH 05/11] Use configure test for struct timespec
+
+Use the configure script to test for struct time spec instead of trying
+to keep track of what platforms has it.
+
+Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
+---
+ open-vm-tools/configure.ac | 1 +
+ open-vm-tools/lib/include/hgfsUtil.h | 8 +-------
+ 2 files changed, 2 insertions(+), 7 deletions(-)
+
+Index: open-vm-tools/configure.ac
+===================================================================
+--- open-vm-tools.orig/configure.ac
++++ open-vm-tools/configure.ac
+@@ -1127,6 +1127,7 @@ AC_TYPE_OFF_T
+ AC_TYPE_PID_T
+ AC_TYPE_SIZE_T
+ AC_CHECK_MEMBERS([struct stat.st_rdev])
++AC_CHECK_MEMBERS([struct timespec.tv_sec],[],[],[[#include <time.h>]])
+ AC_HEADER_TIME
+ AC_STRUCT_TM
+ AC_C_VOLATILE
+Index: open-vm-tools/lib/include/hgfsUtil.h
+===================================================================
+--- open-vm-tools.orig/lib/include/hgfsUtil.h
++++ open-vm-tools/lib/include/hgfsUtil.h
+@@ -53,13 +53,7 @@
+ # include <time.h>
+ # endif
+ # include "vm_basic_types.h"
+-# if !defined _STRUCT_TIMESPEC && \
+- !defined _TIMESPEC_DECLARED && \
+- !defined __timespec_defined && \
+- !defined sun && \
+- !defined __FreeBSD__ && \
+- !__APPLE__ && \
+- !defined _WIN32
++# if !defined HAVE_STRUCT_TIMESPEC_TV_SEC
+ struct timespec {
+ time_t tv_sec;
+ long tv_nsec;
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0006-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0006-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch
new file mode 100644
index 000000000..d1f4eff9b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0006-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch
@@ -0,0 +1,58 @@
+From 31ae6f42458f90d4994a4ad8e2b7673691612c36 Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Wed, 18 Nov 2015 09:10:14 +0000
+Subject: [PATCH 06/11] Fix definition of ALLPERMS and ACCESSPERMS
+
+The ALLPERMS and ACCESSPERMS defines are not specified in POSIX so
+assume it is not there instead of testing for specific implementations.
+
+This is needed for musl libc.
+
+Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
+---
+ open-vm-tools/lib/hgfsServer/hgfsServerLinux.c | 8 +++++---
+ open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c | 3 +--
+ 2 files changed, 6 insertions(+), 5 deletions(-)
+
+Index: open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
+===================================================================
+--- open-vm-tools.orig/lib/hgfsServer/hgfsServerLinux.c
++++ open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
+@@ -107,11 +107,13 @@ typedef struct DirectoryEntry {
+ #endif
+
+ /*
+- * ALLPERMS (mode 07777) and ACCESSPERMS (mode 0777) are not defined in the
+- * Solaris version of <sys/stat.h>.
++ * ALLPERMS (mode 07777) and ACCESSPERMS (mode 0777) are not specified in
++ * POSIX.
+ */
+-#ifdef sun
++#ifndef ACCESSPERMS
+ # define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO)
++#endif
++#ifndef ALLPERMS
+ # define ALLPERMS (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO)
+ #endif
+
+Index: open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c
+===================================================================
+--- open-vm-tools.orig/services/plugins/dndcp/dnd/dndLinux.c
++++ open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c
+@@ -51,7 +51,7 @@
+
+ #define DND_ROOTDIR_PERMS (S_IRWXU | S_IRWXG | S_IRWXO)
+ #define DND_STAGINGDIR_PERMS (S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH)
+-#ifdef sun
++#ifndef ACCESSPERMS
+ #define ACCESSPERMS (S_IRWXU | S_IRWXG | S_IRWXO)
+ #endif
+ #ifdef __ANDROID__
+@@ -60,7 +60,6 @@
+ */
+ #define NO_SETMNTENT
+ #define NO_ENDMNTENT
+-#define ACCESSPERMS (S_IRWXU | S_IRWXG | S_IRWXO)
+ #endif
+
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0007-Use-configure-to-test-for-feature-instead-of-platfor.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0007-Use-configure-to-test-for-feature-instead-of-platfor.patch
new file mode 100644
index 000000000..5adf9b0f9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0007-Use-configure-to-test-for-feature-instead-of-platfor.patch
@@ -0,0 +1,144 @@
+From 6cc1c22cc30320f56da552a76bd956db8f255b6a Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Wed, 18 Nov 2015 10:05:07 +0000
+Subject: [PATCH 07/11] Use configure to test for feature instead of platform
+
+Test for various functions instead of trying to keep track of what
+platform and what version of the given platform has support for what.
+
+This should make it easier to port to currently unknown platforms and
+will solve the issue if a platform add support for a missing feature in
+the future.
+
+The features we test for are:
+- getifaddrs
+- getauxval
+- issetugid
+- __secure_getenv
+
+This is needed for musl libc.
+
+Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
+---
+ open-vm-tools/configure.ac | 4 ++++
+ open-vm-tools/lib/misc/idLinux.c | 30 ++++++++++++++----------------
+ open-vm-tools/lib/nicInfo/nicInfoPosix.c | 8 ++++++--
+ 3 files changed, 24 insertions(+), 18 deletions(-)
+
+Index: open-vm-tools/configure.ac
+===================================================================
+--- open-vm-tools.orig/configure.ac
++++ open-vm-tools/configure.ac
+@@ -798,6 +798,7 @@ AC_CHECK_FUNCS(
+
+ AC_CHECK_FUNCS([ecvt])
+ AC_CHECK_FUNCS([fcvt])
++AC_CHECK_FUNCS([getifaddrs getauxval issetugid __secure_getenv])
+
+ AC_CHECK_FUNC([mkdtemp], [have_mkdtemp=yes])
+
+@@ -1063,10 +1064,13 @@ AC_PATH_PROG(
+ ###
+
+ AC_CHECK_HEADERS([crypt.h])
++AC_CHECK_HEADERS([ifaddrs.h])
+ AC_CHECK_HEADERS([inttypes.h])
+ AC_CHECK_HEADERS([stdint.h])
+ AC_CHECK_HEADERS([stdlib.h])
+ AC_CHECK_HEADERS([wchar.h])
++AC_CHECK_HEADERS([net/if.h])
++AC_CHECK_HEADERS([sys/auxv.h])
+ AC_CHECK_HEADERS([sys/inttypes.h])
+ AC_CHECK_HEADERS([sys/io.h])
+ AC_CHECK_HEADERS([sys/param.h]) # Required to make the sys/user.h check work correctly on FreeBSD
+Index: open-vm-tools/lib/misc/idLinux.c
+===================================================================
+--- open-vm-tools.orig/lib/misc/idLinux.c
++++ open-vm-tools/lib/misc/idLinux.c
+@@ -27,12 +27,9 @@
+ #include <sys/syscall.h>
+ #include <string.h>
+ #include <unistd.h>
+-#ifdef __linux__
+-#if defined(__GLIBC__) && \
+- (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 16))
++#ifdef HAVE_SYS_AUXV_H
+ #include <sys/auxv.h>
+ #endif
+-#endif
+ #ifdef __APPLE__
+ #include <sys/socket.h>
+ #include <TargetConditionals.h>
+@@ -997,31 +994,32 @@ Id_EndSuperUser(uid_t uid) // IN:
+ static Bool
+ IdIsSetUGid(void)
+ {
+-#if defined(__ANDROID__)
+- /* Android does not have a secure_getenv, so be conservative. */
+- return TRUE;
+-#else
+ /*
+ * We use __secure_getenv, which returns NULL if the binary is
+- * setuid or setgid. Alternatives include,
++ * setuid or setgid, when issetugid or getauxval(AT_SECURE) is not
++ * available. Alternatives include,
+ *
+- * a) getauxval(AT_SECURE); not available until glibc 2.16.
+- * b) __libc_enable_secure; may not be exported.
++ * a) issetugid(); not (yet?) available in glibc.
++ * b) getauxval(AT_SECURE); not available until glibc 2.16.
++ * c) __libc_enable_secure; may not be exported.
+ *
+- * Use (a) when we are based on glibc 2.16, or newer.
++ * Use (b) when we are based on glibc 2.16, or newer.
+ */
+
+-#if defined(__GLIBC__) && \
+- (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 16))
++#if HAVE_ISSETUGID
++ return issetugid();
++#elif HAVE_GETAUXVAL
+ return getauxval(AT_SECURE) != 0;
+-#else
++#elif HAVE___SECURE_GETENV
+ static const char envName[] = "VMW_SETUGID_TEST";
+
+ if (setenv(envName, "1", TRUE) == -1) {
+ return TRUE; /* Conservative */
+ }
+ return __secure_getenv(envName) == NULL;
+-#endif
++#else
++ /* Android does not have a secure_getenv, so be conservative. */
++ return TRUE;
+ #endif
+ }
+ #endif
+Index: open-vm-tools/lib/nicInfo/nicInfoPosix.c
+===================================================================
+--- open-vm-tools.orig/lib/nicInfo/nicInfoPosix.c
++++ open-vm-tools/lib/nicInfo/nicInfoPosix.c
+@@ -34,9 +34,13 @@
+ #include <sys/socket.h>
+ #include <sys/stat.h>
+ #include <errno.h>
+-#if defined(__FreeBSD__) || defined(__APPLE__)
++#if HAVE_SYS_SYSCTL_H
+ # include <sys/sysctl.h>
++#endif
++#if HAVE_IFADDRS_H
+ # include <ifaddrs.h>
++#endif
++#if HAVE_NET_IF_H
+ # include <net/if.h>
+ #endif
+ #ifndef NO_DNET
+@@ -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/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0008-use-posix-strerror_r-unless-gnu.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0008-use-posix-strerror_r-unless-gnu.patch
new file mode 100644
index 000000000..3d1291c9f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0008-use-posix-strerror_r-unless-gnu.patch
@@ -0,0 +1,30 @@
+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/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0009-Add-support-for-building-with-system-libtirpc.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0009-Add-support-for-building-with-system-libtirpc.patch
new file mode 100644
index 000000000..2bee5ac82
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0009-Add-support-for-building-with-system-libtirpc.patch
@@ -0,0 +1,342 @@
+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/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0010-gnu-ucontext.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0010-gnu-ucontext.patch
new file mode 100644
index 000000000..c9beac1fc
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0010-gnu-ucontext.patch
@@ -0,0 +1,65 @@
+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/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0011-Use-configure-test-for-sys-stat.h-include.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0011-Use-configure-test-for-sys-stat.h-include.patch
new file mode 100644
index 000000000..78722390e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0011-Use-configure-test-for-sys-stat.h-include.patch
@@ -0,0 +1,25 @@
+From 95c6184d9ff70a47c41768850923a96de9e544aa Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Wed, 18 Nov 2015 10:41:01 +0000
+Subject: [PATCH 11/11] Use configure test for sys/stat.h include
+
+This is needed for musl libc.
+
+Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
+---
+ open-vm-tools/services/plugins/vix/vixTools.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: open-vm-tools/services/plugins/vix/vixTools.c
+===================================================================
+--- open-vm-tools.orig/services/plugins/vix/vixTools.c
++++ open-vm-tools/services/plugins/vix/vixTools.c
+@@ -66,7 +66,7 @@
+ #include <unistd.h>
+ #endif
+
+-#if defined(sun) || defined(__FreeBSD__) || defined(__APPLE__)
++#ifdef HAVE_SYS_STAT_H
+ #include <sys/stat.h>
+ #endif
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.1.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.1.5.bb
new file mode 100644
index 000000000..81e8e9624
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.1.5.bb
@@ -0,0 +1,103 @@
+# This recipe is modified from the recipe originally found in the Open-Switch
+# repository:
+#
+# https://github.com/open-switch/ops-build
+# yocto/openswitch/meta-foss-openswitch/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.0.5.bb
+# Commit 9008de2d8e100f3f868c66765742bca9fa98f3f9
+#
+# The recipe packaging has been relicensed under the MIT license for inclusion
+# in meta-openembedded by agreement of the author (Diego Dompe).
+#
+
+SUMMARY = "Tools to enhance VMWare guest integration and performance"
+HOMEPAGE = "https://github.com/vmware/open-vm-tools"
+SECTION = "vmware-tools"
+
+LICENSE = "LGPL-2.0 & GPL-2.0 & BSD & CDDL-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b66ba4cb4fc017682c95efc300410e79"
+LICENSE_modules/freebsd/vmblock = "BSD"
+LICENSE_modules/freebsd/vmmemctl = "GPL-2.0"
+LICENSE_modules/freebsd/vmxnet = "GPL-2.0"
+LICENSE_modules/linux = "GPL-2.0"
+LICENSE_modules/solaris = "CDDL-1.0"
+
+SRC_URI = "git://github.com/vmware/open-vm-tools.git;protocol=https \
+ file://tools.conf \
+ file://vmtoolsd.service \
+ file://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 \
+ "
+SRC_URI_append_libc-musl = "\
+ file://0009-Add-support-for-building-with-system-libtirpc.patch \
+ file://0010-gnu-ucontext.patch \
+ "
+SRCREV = "854c0bb374612f7e633b448ca273f970f154458b"
+
+S = "${WORKDIR}/git/open-vm-tools"
+
+DEPENDS = "glib-2.0 glib-2.0-native util-linux libdnet procps"
+DEPENDS_append_libc-musl = " libtirpc"
+
+# open-vm-tools is supported only on x86.
+COMPATIBLE_HOST = '(x86_64.*|i.86.*)-linux'
+
+inherit autotools pkgconfig systemd
+
+SYSTEMD_SERVICE_${PN} = "vmtoolsd.service"
+
+EXTRA_OECONF = "--without-icu --disable-multimon --disable-docs \
+ --disable-tests --without-gtkmm --without-xerces --without-pam \
+ --disable-grabbitmqproxy --disable-vgauth --disable-deploypkg \
+ --without-root-privileges --without-kernel-modules"
+
+NO_X11_FLAGS = "--without-x --without-gtk2 --without-gtk3"
+X11_DEPENDS = "libxext libxi libxrender libxrandr libxtst gtk+ gdk-pixbuf"
+PACKAGECONFIG[x11] = ",${NO_X11_FLAGS},${X11_DEPENDS}"
+
+# fuse gets implicitly detected; there is no --without-fuse option.
+PACKAGECONFIG[fuse] = ",,fuse"
+
+CFLAGS_append_toolchain-clang = " -Wno-address-of-packed-member"
+FILES_${PN} += "\
+ ${libdir}/open-vm-tools/plugins/vmsvc/lib*.so \
+ ${libdir}/open-vm-tools/plugins/common/lib*.so \
+ ${sysconfdir}/vmware-tools/tools.conf \
+ "
+FILES_${PN}-locale += "${datadir}/open-vm-tools/messages"
+FILES_${PN}-dev += "${libdir}/open-vm-tools/plugins/common/lib*.la"
+FILES_${PN}-dbg += "\
+ ${libdir}/open-vm-tools/plugins/common/.debug \
+ ${libdir}/open-vm-tools/plugins/vmsvc/.debug \
+ "
+
+CONFFILES_${PN} += "${sysconfdir}/vmware-tools/tools.conf"
+
+RDEPENDS_${PN} = "util-linux libdnet fuse"
+
+do_install_append() {
+ ln -sf ${sbindir}/mount.vmhgfs ${D}/sbin/mount.vmhgfs
+ install -d ${D}${systemd_unitdir}/system ${D}${sysconfdir}/vmware-tools
+ install -m 644 ${WORKDIR}/*.service ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/tools.conf ${D}${sysconfdir}/vmware-tools/tools.conf
+}
+
+do_configure_prepend() {
+ export CUSTOM_DNET_NAME=dnet
+ export CUSTOM_DNET_LIBS=-L${STAGING_LIBDIR}/libdnet.so
+}
+
+python() {
+ if 'networking-layer' not in d.getVar('BBFILE_COLLECTIONS').split() or \
+ 'filesystems-layer' not in d.getVar('BBFILE_COLLECTIONS').split():
+ raise bb.parse.SkipRecipe('Requires meta-networking and meta-filesystems to be present.')
+}
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb
index 0f5568c31..c7d7203ed 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb
@@ -1,4 +1,5 @@
Summanry = "Middleware framework for smart card terminals"
+HOMEPAGE = "https://github.com/OpenSC/openct/wiki"
DESCRIPTION = " \
OpenCT implements drivers for several smart card readers. \
It comes as driver in ifdhandler format for PC/SC-Lite, \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv-samples_2.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv-samples_2.4.bb
deleted file mode 100644
index 107184be4..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv-samples_2.4.bb
+++ /dev/null
@@ -1,41 +0,0 @@
-SUMMARY = "Opencv : The Open Computer Vision Library"
-HOMEPAGE = "http://opencv.willowgarage.com/wiki/"
-SECTION = "libs"
-LICENSE = "BSD"
-
-DEPENDS = "opencv"
-
-LIC_FILES_CHKSUM = "file://include/opencv2/opencv.hpp;endline=41;md5=6d690d8488a6fca7a2c192932466bb14 \
-"
-SRCREV = "6fae07ba8867b8fd2c53344a774aab669afa7c5e"
-SRC_URI = "git://github.com/Itseez/opencv.git;branch=2.4 \
- "
-PV = "2.4.3+git${SRCPV}"
-
-S = "${WORKDIR}/git"
-
-do_install() {
- cd samples/c
- install -d ${D}/${bindir}
- install -d ${D}/${datadir}/opencv/samples
-
- cp * ${D}/${datadir}/opencv/samples || true
-
- for i in *.c; do
- echo "compiling $i"
- ${CXX} ${CFLAGS} ${LDFLAGS} -ggdb `pkg-config --cflags opencv` -o `basename $i .c` $i `pkg-config --libs opencv` || true
- install -m 0755 `basename $i .c` ${D}/${bindir} || true
- rm ${D}/${datadir}/opencv/samples/`basename $i .c` || true
- done
- for i in *.cpp; do
- echo "compiling $i"
- ${CXX} ${CFLAGS} ${LDFLAGS} -ggdb `pkg-config --cflags opencv` -o `basename $i .cpp` $i `pkg-config --libs opencv` || true
- install -m 0755 `basename $i .cpp` ${D}/${bindir} || true
- rm ${D}/${datadir}/opencv/samples/`basename $i .cpp` || true
- done
-}
-
-FILES_${PN}-dev += "${datadir}/opencv/samples/*.c* ${datadir}/opencv/samples/*.vcp* ${datadir}/opencv/samples/build*"
-FILES_${PN} += "${bindir} ${datadir}/opencv"
-
-PNBLACKLIST[opencv-samples] ?= "Depends on blacklisted opencv - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch
index 1077d05be..4d76ad40c 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch
@@ -1,28 +1,38 @@
-From 049f931207631aa54af55a2917318d032b2ef3fa Mon Sep 17 00:00:00 2001
+From 4801a057730632225337d7f6d26b9335e6b9b078 Mon Sep 17 00:00:00 2001
From: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Date: Thu, 31 Mar 2016 00:20:15 +0200
Subject: [PATCH] 3rdparty/ippicv: Use pre-downloaded ipp
Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
+Signed-off-by: Ismo Puustinen <ismo.puustinen@intel.com>
---
- 3rdparty/ippicv/downloader.cmake | 2 ++
- 1 file changed, 2 insertions(+)
+ 3rdparty/ippicv/ippicv.cmake | 15 +--------------
+ 1 file changed, 1 insertion(+), 14 deletions(-)
-diff --git a/3rdparty/ippicv/downloader.cmake b/3rdparty/ippicv/downloader.cmake
-index a6016dbe10bc..af4062c8e95e 100644
---- a/3rdparty/ippicv/downloader.cmake
-+++ b/3rdparty/ippicv/downloader.cmake
-@@ -31,8 +31,10 @@ function(_icv_downloader)
- return() # Not supported
+diff --git a/3rdparty/ippicv/ippicv.cmake b/3rdparty/ippicv/ippicv.cmake
+index d601da4bb..f6fc1098c 100644
+--- a/3rdparty/ippicv/ippicv.cmake
++++ b/3rdparty/ippicv/ippicv.cmake
+@@ -39,18 +39,5 @@ function(download_ippicv root_var)
endif()
-+ if(NOT DEFINED OPENCV_ICV_PATH)
- set(OPENCV_ICV_UNPACK_PATH "${CMAKE_BINARY_DIR}/3rdparty/ippicv")
- set(OPENCV_ICV_PATH "${OPENCV_ICV_UNPACK_PATH}${OPENCV_ICV_PACKAGE_SUBDIR}")
-+ endif()
-
- if(DEFINED OPENCV_ICV_PACKAGE_DOWNLOADED
- AND OPENCV_ICV_PACKAGE_DOWNLOADED STREQUAL OPENCV_ICV_PACKAGE_HASH
+ set(THE_ROOT "${OpenCV_BINARY_DIR}/3rdparty/ippicv")
+- ocv_download(FILENAME ${OPENCV_ICV_NAME}
+- HASH ${OPENCV_ICV_HASH}
+- URL
+- "${OPENCV_IPPICV_URL}"
+- "$ENV{OPENCV_IPPICV_URL}"
+- "https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/"
+- DESTINATION_DIR "${THE_ROOT}"
+- ID IPPICV
+- STATUS res
+- UNPACK RELATIVE_URL)
+-
+- if(res)
+- set(${root_var} "${THE_ROOT}/${OPENCV_ICV_PACKAGE_SUBDIR}" PARENT_SCOPE)
+- endif()
++ set(${root_var} "${THE_ROOT}/${OPENCV_ICV_PACKAGE_SUBDIR}" PARENT_SCOPE)
+ endfunction()
--
-2.8.0.rc3
+2.13.4
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Dont-use-isystem.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Dont-use-isystem.patch
new file mode 100644
index 000000000..6dd48fcdc
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Dont-use-isystem.patch
@@ -0,0 +1,26 @@
+From 2bc6bb9831d07f035fea74ea745cea43dd5f9ef9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 9 Sep 2017 23:48:31 -0700
+Subject: [PATCH] Dont use isystem
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ cmake/OpenCVPCHSupport.cmake | 10 ++++------
+ 1 file changed, 4 insertions(+), 6 deletions(-)
+
+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")
+ 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")
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Revert-cuda-fix-fp16-compilation.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Revert-cuda-fix-fp16-compilation.patch
deleted file mode 100644
index 507d7968a..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Revert-cuda-fix-fp16-compilation.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 69f9707678190f6a0948a547dce948251f972676 Mon Sep 17 00:00:00 2001
-From: Randy MacLeod <Randy.MacLeod@windriver.com>
-Date: Wed, 26 Apr 2017 14:57:30 -0400
-Subject: [PATCH 1/2] Revert "cuda: fix fp16 compilation"
-
-This reverts commit 12e00827be40576b686ea4438a6e6ef85208743d.
----
- modules/core/include/opencv2/core/cvdef.h | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/modules/core/include/opencv2/core/cvdef.h b/modules/core/include/opencv2/core/cvdef.h
-index 699b166..efc24ca 100644
---- a/modules/core/include/opencv2/core/cvdef.h
-+++ b/modules/core/include/opencv2/core/cvdef.h
-@@ -303,8 +303,7 @@ enum CpuFeatures {
- #define CV_2PI 6.283185307179586476925286766559
- #define CV_LOG2 0.69314718055994530941723212145818
-
--#if defined __ARM_FP16_FORMAT_IEEE \
-- && !defined __CUDACC__
-+#if defined (__ARM_FP16_FORMAT_IEEE)
- # define CV_FP16_TYPE 1
- #else
- # define CV_FP16_TYPE 0
---
-2.9.3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-To-fix-errors-as-following.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-To-fix-errors-as-following.patch
deleted file mode 100644
index 820ab81f6..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-To-fix-errors-as-following.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From db1d9cc82b68f6593360d66ef40cb6b0fc377e6e Mon Sep 17 00:00:00 2001
-From: Huang Qiyu <huangqy.fnst@cn.fujitsu.com>
-Date: Fri, 19 May 2017 04:27:50 +0900
-Subject: [PATCH] To fix errors as following:
-
-"test_main.cpp:45: undefined reference to `parseCustomOptions(int, char**)'"
-"perf_abs.cpp:13: undefined reference to `cvtest::param_seed'"
-"test_superres.cpp:270: undefined reference to `checkIppStatus()'"
-
-Signed-off-by: Huang Qiyu <huangqy.fnst@cn.fujitsu.com>
----
- modules/ts/include/opencv2/ts.hpp | 4 ++--
- modules/ts/include/opencv2/ts/ts_ext.hpp | 2 +-
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/modules/ts/include/opencv2/ts.hpp b/modules/ts/include/opencv2/ts.hpp
-index c573905..7ff6cc1 100644
---- a/modules/ts/include/opencv2/ts.hpp
-+++ b/modules/ts/include/opencv2/ts.hpp
-@@ -539,7 +539,7 @@ protected:
- }
- };
-
--extern uint64 param_seed;
-+CV_EXPORTS extern uint64 param_seed;
-
- struct CV_EXPORTS DefaultRngAuto
- {
-@@ -602,7 +602,7 @@ void dumpOpenCLDevice();
- #define TEST_DUMP_OCL_INFO
- #endif
-
--void parseCustomOptions(int argc, char **argv);
-+CV_EXPORTS void parseCustomOptions(int argc, char **argv);
-
- #define CV_TEST_MAIN(resourcesubdir, ...) \
- int main(int argc, char **argv) \
-diff --git a/modules/ts/include/opencv2/ts/ts_ext.hpp b/modules/ts/include/opencv2/ts/ts_ext.hpp
-index 05ccc63..8075065 100644
---- a/modules/ts/include/opencv2/ts/ts_ext.hpp
-+++ b/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.7.4
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Use-__vector-instead-of-vector-as-suggests-Eigen.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Use-__vector-instead-of-vector-as-suggests-Eigen.patch
deleted file mode 100644
index 7f809bce1..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Use-__vector-instead-of-vector-as-suggests-Eigen.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 711f07a34ceb504e8f75e978692201efa58268ca Mon Sep 17 00:00:00 2001
-From: Dinar Valeev <dvaleev@suse.com>
-Date: Thu, 16 Jan 2014 21:53:49 +0100
-Subject: [PATCH] Use __vector instead of vector as suggests Eigen
-
-This fixes build on PowerPC where Eigen unsets vector, bool and pixel
-
-Signed-off-by: Dinar Valeev <dvaleev@suse.com>
-
-This patch is already part of OpenCV v3.0. The patch can be obtained
-from:
-
- https://github.com/Itseez/opencv/commit/711f07a34ceb504e8f75e978692201efa58268ca.patch
-
-Upstream-Status: Backport [commit 711f07a34c, part of version 3.0]
-
-Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
----
- 3rdparty/include/opencl/1.2/CL/cl_platform.h | 14 +++++++-------
- 1 file changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/3rdparty/include/opencl/1.2/CL/cl_platform.h b/3rdparty/include/opencl/1.2/CL/cl_platform.h
-index e94949a..42c35d5 100644
---- a/3rdparty/include/opencl/1.2/CL/cl_platform.h
-+++ b/3rdparty/include/opencl/1.2/CL/cl_platform.h
-@@ -332,13 +332,13 @@ typedef unsigned int cl_GLenum;
- /* Define basic vector types */
- #if defined( __VEC__ )
- #include <altivec.h> /* may be omitted depending on compiler. AltiVec spec provides no way to detect whether the header is required. */
-- typedef vector unsigned char __cl_uchar16;
-- typedef vector signed char __cl_char16;
-- typedef vector unsigned short __cl_ushort8;
-- typedef vector signed short __cl_short8;
-- typedef vector unsigned int __cl_uint4;
-- typedef vector signed int __cl_int4;
-- typedef vector float __cl_float4;
-+ typedef __vector unsigned char __cl_uchar16;
-+ typedef __vector signed char __cl_char16;
-+ typedef __vector unsigned short __cl_ushort8;
-+ typedef __vector signed short __cl_short8;
-+ typedef __vector unsigned int __cl_uint4;
-+ typedef __vector signed int __cl_int4;
-+ typedef __vector float __cl_float4;
- #define __CL_UCHAR16__ 1
- #define __CL_CHAR16__ 1
- #define __CL_USHORT8__ 1
---
-1.9.3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-build-workaround-GCC-7.1.1-compilation-issue-with-sa.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-build-workaround-GCC-7.1.1-compilation-issue-with-sa.patch
new file mode 100644
index 000000000..0140633db
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-build-workaround-GCC-7.1.1-compilation-issue-with-sa.patch
@@ -0,0 +1,127 @@
+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/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-carotene-don-t-use-__asm__-with-aarch64.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-carotene-don-t-use-__asm__-with-aarch64.patch
new file mode 100644
index 000000000..a1a56e0e4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-carotene-don-t-use-__asm__-with-aarch64.patch
@@ -0,0 +1,1250 @@
+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/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-tracking-make-opencv_dnn-dependancy-optional.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-tracking-make-opencv_dnn-dependancy-optional.patch
deleted file mode 100644
index fba43eba7..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-tracking-make-opencv_dnn-dependancy-optional.patch
+++ /dev/null
@@ -1,243 +0,0 @@
-From 69f86025978b9bbbefa54a7248316a859773aeaf Mon Sep 17 00:00:00 2001
-From: berak <px1704@web.de>
-Date: Sat, 4 Mar 2017 12:38:50 +0100
-Subject: [PATCH] tracking: make opencv_dnn dependancy optional
-
-Upstream-status: Backport [https://github.com/opencv/opencv_contrib/commit/43925b60d392fbd01d6b0449713f010f9babe448]
-Signed-off-by: Ismo Puustinen <ismo.puustinen@intel.com>
-
----
- modules/tracking/CMakeLists.txt | 3 +--
- modules/tracking/samples/goturnTracker.cpp | 22 +++++++++++++++++++---
- modules/tracking/samples/multiTracker_dataset.cpp | 1 +
- modules/tracking/samples/tracker_dataset.cpp | 1 +
- modules/tracking/src/gtrTracker.cpp | 11 ++++++++++-
- modules/tracking/src/gtrTracker.hpp | 12 ++++++++----
- modules/tracking/src/gtrUtils.cpp | 6 +++---
- modules/tracking/src/gtrUtils.hpp | 5 ++---
- modules/tracking/src/tracker.cpp | 1 +
- 9 files changed, 46 insertions(+), 16 deletions(-)
-
-diff --git a/modules/tracking/CMakeLists.txt b/modules/tracking/CMakeLists.txt
-index a8b3183..d27f999 100644
---- a/modules/tracking/CMakeLists.txt
-+++ b/modules/tracking/CMakeLists.txt
-@@ -1,2 +1 @@
--set(the_description "Tracking API")
--ocv_define_module(tracking opencv_imgproc opencv_core opencv_video opencv_highgui opencv_dnn opencv_plot OPTIONAL opencv_datasets WRAP python)
-\ No newline at end of file
-+ocv_define_module(tracking opencv_imgproc opencv_core opencv_video opencv_highgui opencv_plot OPTIONAL opencv_dnn opencv_datasets WRAP python)
-diff --git a/modules/tracking/samples/goturnTracker.cpp b/modules/tracking/samples/goturnTracker.cpp
-index 389771e..1e6632d 100644
---- a/modules/tracking/samples/goturnTracker.cpp
-+++ b/modules/tracking/samples/goturnTracker.cpp
-@@ -45,6 +45,9 @@
- //1 - Train you own GOTURN model using <https://github.com/Auron-X/GOTURN_Training_Toolkit>
- //2 - Download pretrained caffemodel from <https://github.com/opencv/opencv_extra>
-
-+#include "opencv2/opencv_modules.hpp"
-+#if defined(HAVE_OPENCV_DNN) && defined(HAVE_OPENCV_DATASETS)
-+
- #include "opencv2/datasets/track_alov.hpp"
- #include <opencv2/core/utility.hpp>
- #include <opencv2/tracking.hpp>
-@@ -65,8 +68,8 @@ static bool startSelection = false;
- Rect2d boundingBox;
-
- static const char* keys =
--{ "{@dataset_path |true| Dataset path }"
--"{@dataset_id |1| Dataset ID }"
-+{ "{@dataset_path || Dataset path }"
-+ "{@dataset_id |1| Dataset ID }"
- };
-
- static void onMouse(int event, int x, int y, int, void*)
-@@ -144,9 +147,14 @@ int main(int argc, char *argv[])
- Ptr<cv::datasets::TRACK_alov> dataset = TRACK_alov::create();
- dataset->load(datasetRootPath);
- dataset->initDataset(datasetID);
--
- //Read first frame
- dataset->getNextFrame(frame);
-+ if (frame.empty())
-+ {
-+ cout << "invalid dataset: " << datasetRootPath << endl;
-+ return -2;
-+ }
-+
- frame.copyTo(image);
- rectangle(image, boundingBox, Scalar(255, 0, 0), 2, 1);
- imshow("GOTURN Tracking", image);
-@@ -215,3 +223,11 @@ int main(int argc, char *argv[])
-
- return 0;
- }
-+
-+#else // ! HAVE_OPENCV_DNN && HAVE_OPENCV_DATASETS
-+#include <opencv2/core.hpp>
-+int main() {
-+ CV_Error(cv::Error::StsNotImplemented , "this sample needs to be built with opencv_datasets and opencv_dnn !");
-+ return -1;
-+}
-+#endif
-diff --git a/modules/tracking/samples/multiTracker_dataset.cpp b/modules/tracking/samples/multiTracker_dataset.cpp
-index 2826b19..b5c27da 100644
---- a/modules/tracking/samples/multiTracker_dataset.cpp
-+++ b/modules/tracking/samples/multiTracker_dataset.cpp
-@@ -234,6 +234,7 @@ int main(int argc, char *argv[])
- }
-
- #else // ! HAVE_OPENCV_DATASETS
-+#include <opencv2/core.hpp>
- int main() {
- CV_Error(cv::Error::StsNotImplemented , "this sample needs to be built with opencv_datasets !");
- return -1;
-diff --git a/modules/tracking/samples/tracker_dataset.cpp b/modules/tracking/samples/tracker_dataset.cpp
-index 8b7832a..6178105 100644
---- a/modules/tracking/samples/tracker_dataset.cpp
-+++ b/modules/tracking/samples/tracker_dataset.cpp
-@@ -234,6 +234,7 @@ int main(int argc, char *argv[])
-
-
- #else // ! HAVE_OPENCV_DATASETS
-+#include <opencv2/core.hpp>
- int main() {
- CV_Error(cv::Error::StsNotImplemented , "this sample needs to be built with opencv_datasets !");
- return -1;
-diff --git a/modules/tracking/src/gtrTracker.cpp b/modules/tracking/src/gtrTracker.cpp
-index 58debfd..4904f47 100644
---- a/modules/tracking/src/gtrTracker.cpp
-+++ b/modules/tracking/src/gtrTracker.cpp
-@@ -38,7 +38,7 @@
- // the use of this software, even if advised of the possibility of such damage.
- //
- //M*/
--
-+#include "opencv2/opencv_modules.hpp"
- #include "gtrTracker.hpp"
-
-
-@@ -54,9 +54,16 @@ void TrackerGOTURN::Params::write(cv::FileStorage& /*fs*/) const {}
-
- Ptr<TrackerGOTURN> TrackerGOTURN::createTracker(const TrackerGOTURN::Params &parameters)
- {
-+#ifdef HAVE_OPENCV_DNN
- return Ptr<gtr::TrackerGOTURNImpl>(new gtr::TrackerGOTURNImpl(parameters));
-+#else
-+ (void)(parameters);
-+ CV_ErrorNoReturn(cv::Error::StsNotImplemented , "to use GOTURN, the tracking module needs to be built with opencv_dnn !");
-+#endif
- }
-
-+
-+#ifdef HAVE_OPENCV_DNN
- namespace gtr
- {
-
-@@ -183,9 +190,11 @@ bool TrackerGOTURNImpl::updateImpl(const Mat& image, Rect2d& boundingBox)
- //Set new model image and BB from current frame
- ((TrackerGOTURNModel*)static_cast<TrackerModel*>(model))->setImage(curFrame);
- ((TrackerGOTURNModel*)static_cast<TrackerModel*>(model))->setBoudingBox(curBB);
-+
- return true;
- }
-
- }
-+#endif // OPENCV_HAVE_DNN
-
- }
-diff --git a/modules/tracking/src/gtrTracker.hpp b/modules/tracking/src/gtrTracker.hpp
-index 34f2c48..21ae3d9 100644
---- a/modules/tracking/src/gtrTracker.hpp
-+++ b/modules/tracking/src/gtrTracker.hpp
-@@ -45,11 +45,15 @@
-
- #include "precomp.hpp"
- #include "opencv2/video/tracking.hpp"
--#include "opencv2/dnn.hpp"
- #include "gtrUtils.hpp"
- #include "opencv2/imgproc.hpp"
--#include<algorithm>
--#include<limits.h>
-+
-+#include <algorithm>
-+#include <limits.h>
-+
-+#include "opencv2/opencv_modules.hpp"
-+#ifdef HAVE_OPENCV_DNN
-+#include "opencv2/dnn.hpp"
-
- namespace cv
- {
-@@ -72,5 +76,5 @@ public:
-
- }
- }
--
-+#endif
- #endif
-diff --git a/modules/tracking/src/gtrUtils.cpp b/modules/tracking/src/gtrUtils.cpp
-index 0df1197..e80dda1 100644
---- a/modules/tracking/src/gtrUtils.cpp
-+++ b/modules/tracking/src/gtrUtils.cpp
-@@ -58,7 +58,7 @@ double generateRandomLaplacian(double b, double m)
- return m - b*log(n);
- }
-
--Rect2f anno2rect(vector<Point2f> annoBB)
-+Rect2f anno2rect(std::vector<Point2f> annoBB)
- {
- Rect2f rectBB;
- rectBB.x = min(annoBB[0].x, annoBB[1].x);
-@@ -69,9 +69,9 @@ Rect2f anno2rect(vector<Point2f> annoBB)
- return rectBB;
- }
-
--vector <TrainingSample> gatherFrameSamples(Mat prevFrame, Mat currFrame, Rect2f prevBB, Rect2f currBB)
-+std::vector <TrainingSample> gatherFrameSamples(Mat prevFrame, Mat currFrame, Rect2f prevBB, Rect2f currBB)
- {
-- vector <TrainingSample> trainingSamples;
-+ std::vector <TrainingSample> trainingSamples;
- Point2f currCenter, prevCenter;
- Rect2f targetPatchRect, searchPatchRect;
- Mat targetPatch, searchPatch;
-diff --git a/modules/tracking/src/gtrUtils.hpp b/modules/tracking/src/gtrUtils.hpp
-index 8f388be..41aad21 100644
---- a/modules/tracking/src/gtrUtils.hpp
-+++ b/modules/tracking/src/gtrUtils.hpp
-@@ -4,7 +4,6 @@
- #include "precomp.hpp"
- #include <vector>
- #include "opencv2/highgui.hpp"
--#include <opencv2/datasets/track_alov.hpp>
-
- namespace cv
- {
-@@ -50,10 +49,10 @@ struct TrainingSample
- double generateRandomLaplacian(double b, double m);
-
- //Convert ALOV300++ anno coordinates to Rectangle BB
--Rect2f anno2rect(vector<Point2f> annoBB);
-+Rect2f anno2rect(std::vector<Point2f> annoBB);
-
- //Gather samples from random video frame
--vector <TrainingSample> gatherFrameSamples(Mat prevFrame, Mat currFrame, Rect2f prevBB, Rect2f currBB);
-+std::vector <TrainingSample> gatherFrameSamples(Mat prevFrame, Mat currFrame, Rect2f prevBB, Rect2f currBB);
-
- }
- }
-diff --git a/modules/tracking/src/tracker.cpp b/modules/tracking/src/tracker.cpp
-index 8127f2a..b96aca8 100644
---- a/modules/tracking/src/tracker.cpp
-+++ b/modules/tracking/src/tracker.cpp
-@@ -112,6 +112,7 @@ Ptr<Tracker> Tracker::create( const String& trackerType )
- BOILERPLATE_CODE("TLD",TrackerTLD);
- BOILERPLATE_CODE("KCF",TrackerKCF);
- BOILERPLATE_CODE("GOTURN", TrackerGOTURN);
-+
- return Ptr<Tracker>();
- }
-
---
-2.9.4
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-Do-not-enable-asm-with-clang.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-Do-not-enable-asm-with-clang.patch
new file mode 100644
index 000000000..22e868a03
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-Do-not-enable-asm-with-clang.patch
@@ -0,0 +1,993 @@
+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/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Make-opencv-ts-create-share-library-intead-of-static.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-Make-opencv-ts-create-share-library-intead-of-static.patch
index 05ec41fd8..a845505a8 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Make-opencv-ts-create-share-library-intead-of-static.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-Make-opencv-ts-create-share-library-intead-of-static.patch
@@ -1,7 +1,7 @@
-From 49d1f7c40a5d097f23671318045ac54bc07846cf Mon Sep 17 00:00:00 2001
+From 350525293aef65490e80104ddd99e1b21c5d54b0 Mon Sep 17 00:00:00 2001
From: Bian Naimeng <biannm@cn.fujitsu.com>
Date: Wed, 19 Apr 2017 03:11:37 +0900
-Subject: [PATCH] Make opencv-ts create share library intead of static.
+Subject: [PATCH 2/3] Make opencv-ts create share library intead of static.
Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
---
@@ -9,10 +9,10 @@ Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/ts/CMakeLists.txt b/modules/ts/CMakeLists.txt
-index bb56da2..7bb4ce9 100644
+index f95bed079..ee67858df 100644
--- a/modules/ts/CMakeLists.txt
+++ b/modules/ts/CMakeLists.txt
-@@ -4,7 +4,7 @@ if(IOS)
+@@ -4,7 +4,7 @@ if(NOT BUILD_opencv_ts AND NOT BUILD_TESTS AND NOT BUILD_PERF_TESTS)
ocv_module_disable(ts)
endif()
@@ -20,7 +20,7 @@ index bb56da2..7bb4ce9 100644
+#set(OPENCV_MODULE_TYPE STATIC)
set(OPENCV_MODULE_IS_PART_OF_WORLD FALSE)
- ocv_warnings_disable(CMAKE_CXX_FLAGS -Wundef)
+ if(WINRT)
--
-1.8.4.2
+2.13.4
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-Revert-check-FP16-build-condition-correctly.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-Revert-check-FP16-build-condition-correctly.patch
deleted file mode 100644
index d1950a936..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-Revert-check-FP16-build-condition-correctly.patch
+++ /dev/null
@@ -1,245 +0,0 @@
-From 9108e39e5584ef9b41f80751639b4ec72b3e9538 Mon Sep 17 00:00:00 2001
-From: Randy MacLeod <Randy.MacLeod@windriver.com>
-Date: Wed, 26 Apr 2017 15:00:32 -0400
-Subject: [PATCH 2/2] Revert "check FP16 build condition correctly"
-
-This reverts commit c7cb116dc08441fe56cf82d5b21f929e5b674c13.
-
-Fix up revert conflicts to take previous behaviour.
----
- cmake/OpenCVCompilerOptions.cmake | 45 +++++++++--------------
- modules/core/include/opencv2/core/cvdef.h | 2 +-
- modules/core/src/convert.cpp | 11 +++---
- modules/core/test/test_intrin.cpp | 60 ++++++++++++++-----------------
- 4 files changed, 48 insertions(+), 70 deletions(-)
-
-diff --git a/cmake/OpenCVCompilerOptions.cmake b/cmake/OpenCVCompilerOptions.cmake
-index 5bb0479..4b19fdb 100644
---- a/cmake/OpenCVCompilerOptions.cmake
-+++ b/cmake/OpenCVCompilerOptions.cmake
-@@ -185,7 +185,7 @@ if(CMAKE_COMPILER_IS_GNUCXX)
- add_extra_compiler_option("-mfp16-format=ieee")
- endif(ARM)
- if(ENABLE_NEON)
-- add_extra_compiler_option("-mfpu=neon")
-+ add_extra_compiler_option("-mfpu=neon-fp16")
- endif()
- if(ENABLE_VFPV3 AND NOT ENABLE_NEON)
- add_extra_compiler_option("-mfpu=vfpv3")
-@@ -370,34 +370,6 @@ if(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_OPENCV_GCC_VERSION_NUM GREATER 399)
- add_extra_compiler_option(-fvisibility-inlines-hidden)
- endif()
-
--if(NOT OPENCV_FP16_DISABLE AND NOT IOS)
-- if(ARM AND ENABLE_NEON)
-- set(FP16_OPTION "-mfpu=neon-fp16")
-- elseif((X86 OR X86_64) AND NOT MSVC AND ENABLE_AVX)
-- set(FP16_OPTION "-mf16c")
-- endif()
-- try_compile(__VALID_FP16
-- "${OpenCV_BINARY_DIR}"
-- "${OpenCV_SOURCE_DIR}/cmake/checks/fp16.cpp"
-- COMPILE_DEFINITIONS "-DCHECK_FP16" "${FP16_OPTION}"
-- OUTPUT_VARIABLE TRY_OUT
-- )
-- if(NOT __VALID_FP16)
-- if((X86 OR X86_64) AND NOT MSVC AND NOT ENABLE_AVX)
-- # GCC enables AVX when mf16c is passed
-- message(STATUS "FP16: Feature disabled")
-- else()
-- message(STATUS "FP16: Compiler support is not available")
-- endif()
-- else()
-- message(STATUS "FP16: Compiler support is available")
-- set(HAVE_FP16 1)
-- if(NOT ${FP16_OPTION} STREQUAL "")
-- add_extra_compiler_option(${FP16_OPTION})
-- endif()
-- endif()
--endif()
--
- #combine all "extra" options
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OPENCV_EXTRA_FLAGS} ${OPENCV_EXTRA_C_FLAGS}")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OPENCV_EXTRA_FLAGS} ${OPENCV_EXTRA_CXX_FLAGS}")
-@@ -450,6 +422,21 @@ if(MSVC)
- endif()
- endif()
-
-+if(NOT OPENCV_FP16_DISABLE)
-+ try_compile(__VALID_FP16
-+ "${OpenCV_BINARY_DIR}"
-+ "${OpenCV_SOURCE_DIR}/cmake/checks/fp16.cpp"
-+ COMPILE_DEFINITIONS "-DCHECK_FP16"
-+ OUTPUT_VARIABLE TRY_OUT
-+ )
-+ if(NOT __VALID_FP16)
-+ message(STATUS "FP16: Compiler support is not available")
-+ else()
-+ message(STATUS "FP16: Compiler support is available")
-+ set(HAVE_FP16 1)
-+ endif()
-+endif()
-+
- if(APPLE AND NOT CMAKE_CROSSCOMPILING AND NOT DEFINED ENV{LDFLAGS} AND EXISTS "/usr/local/lib")
- link_directories("/usr/local/lib")
- endif()
-diff --git a/modules/core/include/opencv2/core/cvdef.h b/modules/core/include/opencv2/core/cvdef.h
-index efc24ca..a10936b 100644
---- a/modules/core/include/opencv2/core/cvdef.h
-+++ b/modules/core/include/opencv2/core/cvdef.h
-@@ -312,7 +312,7 @@ enum CpuFeatures {
- typedef union Cv16suf
- {
- short i;
--#if CV_FP16_TYPE
-+#if ( defined (__arm__) || defined (__aarch64__) ) && !defined (__CUDACC__) && ( defined (__GNUC__) && ( ( ( 4 <= __GNUC__ ) && ( 7 <= __GNUC__ ) ) || ( 5 <= __GNUC__ ) ) )
- __fp16 h;
- #endif
- struct _fp16Format
-diff --git a/modules/core/src/convert.cpp b/modules/core/src/convert.cpp
-index e04d89e..46db26f 100644
---- a/modules/core/src/convert.cpp
-+++ b/modules/core/src/convert.cpp
-@@ -44,7 +44,6 @@
- #include "precomp.hpp"
-
- #include "opencl_kernels_core.hpp"
--#include "opencv2/core/hal/intrin.hpp"
-
- #include "opencv2/core/openvx/ovx_defs.hpp"
-
-@@ -4382,7 +4381,7 @@ struct Cvt_SIMD<float, int>
-
- #endif
-
--#if !CV_FP16_TYPE
-+#if !( ( defined (__arm__) || defined (__aarch64__) ) && ( defined (__GNUC__) && ( ( ( 4 <= __GNUC__ ) && ( 7 <= __GNUC__ ) ) || ( 5 <= __GNUC__ ) ) ) )
- // const numbers for floating points format
- const unsigned int kShiftSignificand = 13;
- const unsigned int kMaskFp16Significand = 0x3ff;
-@@ -4390,7 +4389,7 @@ const unsigned int kBiasFp16Exponent = 15;
- const unsigned int kBiasFp32Exponent = 127;
- #endif
-
--#if CV_FP16_TYPE
-+#if ( defined (__arm__) || defined (__aarch64__) ) && ( defined (__GNUC__) && ( ( ( 4 <= __GNUC__ ) && ( 7 <= __GNUC__ ) ) || ( 5 <= __GNUC__ ) ) )
- static float convertFp16SW(short fp16)
- {
- // Fp16 -> Fp32
-@@ -4452,7 +4451,7 @@ static float convertFp16SW(short fp16)
- }
- #endif
-
--#if CV_FP16_TYPE
-+#if ( defined (__arm__) || defined (__aarch64__) ) && ( defined (__GNUC__) && ( ( ( 4 <= __GNUC__ ) && ( 7 <= __GNUC__ ) ) || ( 5 <= __GNUC__ ) ) )
- static short convertFp16SW(float fp32)
- {
- // Fp32 -> Fp16
-@@ -4560,7 +4559,7 @@ cvtScaleHalf_<float, short>( const float* src, size_t sstep, short* dst, size_t
- if ( ( (intptr_t)dst & 0xf ) == 0 )
- #endif
- {
--#if CV_FP16 && CV_SIMD128
-+#if CV_FP16
- for ( ; x <= size.width - 4; x += 4)
- {
- v_float32x4 v_src = v_load(src + x);
-@@ -4606,7 +4605,7 @@ cvtScaleHalf_<short, float>( const short* src, size_t sstep, float* dst, size_t
- if ( ( (intptr_t)src & 0xf ) == 0 )
- #endif
- {
--#if CV_FP16 && CV_SIMD128
-+#if CV_FP16
- for ( ; x <= size.width - 4; x += 4)
- {
- v_float16x4 v_src = v_load_f16(src + x);
-diff --git a/modules/core/test/test_intrin.cpp b/modules/core/test/test_intrin.cpp
-index 66b2083..7349d48 100644
---- a/modules/core/test/test_intrin.cpp
-+++ b/modules/core/test/test_intrin.cpp
-@@ -729,56 +729,48 @@ template<typename R> struct TheTest
- return *this;
- }
-
-+#if CV_FP16
- TheTest & test_loadstore_fp16()
- {
--#if CV_FP16
- AlignedData<R> data;
- AlignedData<R> out;
-
-- if(checkHardwareSupport(CV_CPU_FP16))
-- {
-- // check if addresses are aligned and unaligned respectively
-- EXPECT_EQ((size_t)0, (size_t)&data.a.d % 16);
-- EXPECT_NE((size_t)0, (size_t)&data.u.d % 16);
-- EXPECT_EQ((size_t)0, (size_t)&out.a.d % 16);
-- EXPECT_NE((size_t)0, (size_t)&out.u.d % 16);
--
-- // check some initialization methods
-- R r1 = data.u;
-- R r2 = v_load_f16(data.a.d);
-- R r3(r2);
-- EXPECT_EQ(data.u[0], r1.get0());
-- EXPECT_EQ(data.a[0], r2.get0());
-- EXPECT_EQ(data.a[0], r3.get0());
--
-- // check some store methods
-- out.a.clear();
-- v_store_f16(out.a.d, r1);
-- EXPECT_EQ(data.a, out.a);
-- }
-+ // check if addresses are aligned and unaligned respectively
-+ EXPECT_EQ((size_t)0, (size_t)&data.a.d % 16);
-+ EXPECT_NE((size_t)0, (size_t)&data.u.d % 16);
-+ EXPECT_EQ((size_t)0, (size_t)&out.a.d % 16);
-+ EXPECT_NE((size_t)0, (size_t)&out.u.d % 16);
-+
-+ // check some initialization methods
-+ R r1 = data.u;
-+ R r2 = v_load_f16(data.a.d);
-+ R r3(r2);
-+ EXPECT_EQ(data.u[0], r1.get0());
-+ EXPECT_EQ(data.a[0], r2.get0());
-+ EXPECT_EQ(data.a[0], r3.get0());
-+
-+ // check some store methods
-+ out.a.clear();
-+ v_store_f16(out.a.d, r1);
-+ EXPECT_EQ(data.a, out.a);
-
- return *this;
--#endif
- }
-
- TheTest & test_float_cvt_fp16()
- {
--#if CV_FP16
- AlignedData<v_float32x4> data;
-
-- if(checkHardwareSupport(CV_CPU_FP16))
-- {
-- // check conversion
-- v_float32x4 r1 = v_load(data.a.d);
-- v_float16x4 r2 = v_cvt_f16(r1);
-- v_float32x4 r3 = v_cvt_f32(r2);
-- EXPECT_EQ(0x3c00, r2.get0());
-- EXPECT_EQ(r3.get0(), r1.get0());
-- }
-+ // check conversion
-+ v_float32x4 r1 = v_load(data.a.d);
-+ v_float16x4 r2 = v_cvt_f16(r1);
-+ v_float32x4 r3 = v_cvt_f32(r2);
-+ EXPECT_EQ(0x3c00, r2.get0());
-+ EXPECT_EQ(r3.get0(), r1.get0());
-
- return *this;
--#endif
- }
-+#endif
-
- };
-
---
-2.9.3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-imgcodecs-refactoring-improve-code-quality.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-imgcodecs-refactoring-improve-code-quality.patch
new file mode 100644
index 000000000..39f33af9d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-imgcodecs-refactoring-improve-code-quality.patch
@@ -0,0 +1,656 @@
+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/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0003-To-fix-errors-as-following.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0003-To-fix-errors-as-following.patch
new file mode 100644
index 000000000..a22b04a90
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0003-To-fix-errors-as-following.patch
@@ -0,0 +1,80 @@
+From ace48a628dca34d742615598afeef42ed323a029 Mon Sep 17 00:00:00 2001
+From: Huang Qiyu <huangqy.fnst@cn.fujitsu.com>
+Date: Fri, 19 May 2017 04:27:50 +0900
+Subject: [PATCH 3/3] To fix errors as following:
+
+"test_main.cpp:45: undefined reference to `parseCustomOptions(int, char**)'"
+"perf_abs.cpp:13: undefined reference to `cvtest::param_seed'"
+"test_superres.cpp:270: undefined reference to `checkIppStatus()'"
+
+Signed-off-by: Huang Qiyu <huangqy.fnst@cn.fujitsu.com>
+
+Also add the visibility changes for certain OpenCL-related functions in
+ts module.
+
+Signed-off-by: Ismo Puustinen <ismo.puustinen@intel.com>
+---
+ modules/ts/include/opencv2/ts.hpp | 6 +++---
+ modules/ts/include/opencv2/ts/ocl_test.hpp | 2 +-
+ modules/ts/include/opencv2/ts/ts_ext.hpp | 2 +-
+ 3 files changed, 5 insertions(+), 5 deletions(-)
+
+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:
+ }
+ };
+
+-extern uint64 param_seed;
++CV_EXPORTS extern uint64 param_seed;
+
+ struct CV_EXPORTS 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
+ #endif
+
+-void parseCustomOptions(int argc, char **argv);
++CV_EXPORTS void parseCustomOptions(int argc, char **argv);
+
+ #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
+@@ -82,7 +82,7 @@ inline UMat ToUMat(InputArray src)
+ return dst;
+ }
+
+-extern int test_loop_times;
++CV_EXPORTS extern int test_loop_times;
+
+ #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
+@@ -9,7 +9,7 @@
+ #define OPENCV_TS_EXT_HPP
+
+ namespace cvtest {
+-void checkIppStatus();
++CV_EXPORTS void checkIppStatus();
+ }
+
+ #define CV_TEST_INIT \
+--
+2.13.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0003-imgproc-test-add-checks-for-remove-call.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0003-imgproc-test-add-checks-for-remove-call.patch
new file mode 100644
index 000000000..5f4a60c96
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0003-imgproc-test-add-checks-for-remove-call.patch
@@ -0,0 +1,186 @@
+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/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/CVE-2017-14136.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/CVE-2017-14136.patch
new file mode 100644
index 000000000..7ad50a2d2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/CVE-2017-14136.patch
@@ -0,0 +1,288 @@
+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/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/uselocalxfeatures.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/uselocalxfeatures.patch
index a2db48d7c..fc273a891 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/uselocalxfeatures.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/uselocalxfeatures.patch
@@ -1,12 +1,20 @@
diff --git a/modules/xfeatures2d/CMakeLists.txt b/modules/xfeatures2d/CMakeLists.txt
-index f295bddaed66..6086e75ec37b 100644
+index e1755595..c7009c47 100644
--- a/modules/xfeatures2d/CMakeLists.txt
+++ b/modules/xfeatures2d/CMakeLists.txt
-@@ -1,5 +1,5 @@
- set(the_description "Contributed/Experimental Algorithms for Salient 2D Features Detection")
- ocv_define_module(xfeatures2d opencv_core opencv_imgproc opencv_features2d opencv_calib3d opencv_shape opencv_highgui opencv_videoio opencv_ml
- OPTIONAL opencv_cudaarithm WRAP python java)
--include(cmake/download_vgg.cmake)
--include(cmake/download_boostdesc.cmake)
-+#include(cmake/download_vgg.cmake)
-+#include(cmake/download_boostdesc.cmake)
+@@ -5,10 +5,10 @@ ocv_define_module(xfeatures2d opencv_core opencv_imgproc opencv_features2d openc
+ include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/download_vgg.cmake)
+ include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/download_boostdesc.cmake)
+ set(DOWNLOAD_DIR "${OpenCV_BINARY_DIR}/downloads/xfeatures2d")
+-download_boost_descriptors("${DOWNLOAD_DIR}" boost_status)
+-download_vgg_descriptors("${DOWNLOAD_DIR}" vgg_status)
+-if(NOT boost_status OR NOT vgg_status)
+- ocv_module_disable(xfeatures2d)
+-endif()
++#download_boost_descriptors("${DOWNLOAD_DIR}" boost_status)
++#download_vgg_descriptors("${DOWNLOAD_DIR}" vgg_status)
++#if(NOT boost_status OR NOT vgg_status)
++# ocv_module_disable(xfeatures2d)
++#endif()
+
+ ocv_module_include_directories("${DOWNLOAD_DIR}")
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/useoeprotobuf.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/useoeprotobuf.patch
deleted file mode 100644
index 3068bd44d..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/useoeprotobuf.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/modules/dnn/cmake/OpenCVFindLibProtobuf.cmake b/modules/dnn/cmake/OpenCVFindLibProtobuf.cmake
-index eb2a729cc2eb..8717736484de 100644
---- a/modules/dnn/cmake/OpenCVFindLibProtobuf.cmake
-+++ b/modules/dnn/cmake/OpenCVFindLibProtobuf.cmake
-@@ -24,7 +24,7 @@ if(NOT BUILD_PROTOBUF AND NOT (DEFINED PROTOBUF_INCLUDE_DIR AND DEFINED PROTOBUF
- find_package(Protobuf QUIET)
- endif()
-
--if(PROTOBUF_FOUND)
-+if(PROTOBUF_FOUND OR (DEFINED PROTOBUF_INCLUDE_DIR AND DEFINED PROTOBUF_LIBRARIES))
- # nothing
- else()
- include(${CMAKE_CURRENT_LIST_DIR}/download_protobuf.cmake)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv_2.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv_2.4.bb
deleted file mode 100644
index d17c640ac..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv_2.4.bb
+++ /dev/null
@@ -1,106 +0,0 @@
-SUMMARY = "Opencv : The Open Computer Vision Library"
-HOMEPAGE = "http://opencv.org/"
-SECTION = "libs"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://include/opencv2/opencv.hpp;endline=41;md5=6d690d8488a6fca7a2c192932466bb14"
-
-ARM_INSTRUCTION_SET_armv4 = "arm"
-ARM_INSTRUCTION_SET_armv5 = "arm"
-
-DEPENDS = "python-numpy libtool swig swig-native python bzip2 zlib glib-2.0"
-
-SRCREV = "2c9547e3147779001811d01936aed38f560929fc"
-SRC_URI = "git://github.com/Itseez/opencv.git;branch=2.4 \
- file://0001-Use-__vector-instead-of-vector-as-suggests-Eigen.patch"
-
-PV = "2.4.11+git${SRCPV}"
-
-S = "${WORKDIR}/git"
-
-# Do an out-of-tree build
-OECMAKE_SOURCEPATH = "${S}"
-OECMAKE_BUILDPATH = "${WORKDIR}/build-${TARGET_ARCH}"
-
-EXTRA_OECMAKE = "-DPYTHON_NUMPY_INCLUDE_DIR:PATH=${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages/numpy/core/include \
- -DBUILD_PYTHON_SUPPORT=ON \
- -DWITH_GSTREAMER=OFF \
- -DWITH_1394=OFF \
- -DCMAKE_SKIP_RPATH=ON \
- ${@bb.utils.contains("TARGET_CC_ARCH", "-msse3", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1", "", d)} \
- ${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.1", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1", "", d)} \
- ${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.2", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1 -DENABLE_SSE42=1", "", d)} \
- ${@base_conditional("libdir", "/usr/lib64", "-DLIB_SUFFIX=64", "", d)} \
- ${@base_conditional("libdir", "/usr/lib32", "-DLIB_SUFFIX=32", "", d)} \
-"
-
-PACKAGECONFIG ??= "eigen jpeg png tiff v4l libv4l \
- ${@bb.utils.contains("DISTRO_FEATURES", "x11", "gtk", "", d)} \
- ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "libav", "", d)}"
-
-PACKAGECONFIG[eigen] = "-DWITH_EIGEN=ON,-DWITH_EIGEN=OFF,libeigen,"
-PACKAGECONFIG[gtk] = "-DWITH_GTK=ON,-DWITH_GTK=OFF,gtk+,"
-PACKAGECONFIG[jasper] = "-DWITH_JASPER=ON,-DWITH_JASPER=OFF,jasper,"
-PACKAGECONFIG[jpeg] = "-DWITH_JPEG=ON,-DWITH_JPEG=OFF,jpeg,"
-PACKAGECONFIG[libav] = "-DWITH_FFMPEG=ON,-DWITH_FFMPEG=OFF,libav,"
-PACKAGECONFIG[libv4l] = "-DWITH_LIBV4L=ON,-DWITH_LIBV4L=OFF,v4l-utils,"
-PACKAGECONFIG[png] = "-DWITH_PNG=ON,-DWITH_PNG=OFF,libpng,"
-PACKAGECONFIG[tiff] = "-DWITH_TIFF=ON,-DWITH_TIFF=OFF,tiff,"
-PACKAGECONFIG[v4l] = "-DWITH_V4L=ON,-DWITH_V4L=OFF,v4l-utils,"
-
-inherit distutils-base pkgconfig cmake
-
-export PYTHON_CSPEC="-I${STAGING_INCDIR}/${PYTHON_DIR}"
-export PYTHON="${STAGING_BINDIR_NATIVE}/python"
-
-TARGET_CC_ARCH += "-I${S}/include "
-
-PACKAGES += "${PN}-apps python-opencv"
-
-python populate_packages_prepend () {
- cv_libdir = d.expand('${libdir}')
- cv_libdir_dbg = d.expand('${libdir}/.debug')
- do_split_packages(d, cv_libdir, '^lib(.*)\.so$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev', allow_links=True)
- do_split_packages(d, cv_libdir, '^lib(.*)\.la$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev')
- do_split_packages(d, cv_libdir, '^lib(.*)\.a$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev')
- do_split_packages(d, cv_libdir, '^lib(.*)\.so\.*', 'lib%s', 'OpenCV %s library', extra_depends='', allow_links=True)
-
- pn = d.getVar('PN')
- metapkg = pn + '-dev'
- d.setVar('ALLOW_EMPTY_' + metapkg, "1")
- blacklist = [ metapkg ]
- metapkg_rdepends = [ ]
- packages = d.getVar('PACKAGES').split()
- for pkg in packages[1:]:
- if not pkg in blacklist and not pkg in metapkg_rdepends and pkg.endswith('-dev'):
- metapkg_rdepends.append(pkg)
- d.setVar('RRECOMMENDS_' + metapkg, ' '.join(metapkg_rdepends))
-}
-
-PACKAGES_DYNAMIC += "^libopencv-.*"
-
-FILES_${PN} = ""
-FILES_${PN}-apps = "${bindir}/* ${datadir}/OpenCV"
-FILES_${PN}-dbg += "${libdir}/.debug"
-FILES_${PN}-dev = "${includedir} ${libdir}/pkgconfig"
-FILES_${PN}-doc = "${datadir}/OpenCV/doc"
-
-ALLOW_EMPTY_${PN} = "1"
-
-SUMMARY_python-opencv = "Python bindings to opencv"
-FILES_python-opencv = "${PYTHON_SITEPACKAGES_DIR}/*"
-RDEPENDS_python-opencv = "python-core python-numpy"
-
-do_install_append() {
- cp ${S}/include/opencv/*.h ${D}${includedir}/opencv/
- sed -i '/blobtrack/d' ${D}${includedir}/opencv/cvaux.h
-
- # Move Python files into correct library folder (for multilib build)
- if [ "$libdir" != "/usr/lib" ]; then
- mv ${D}/usr/lib/* ${D}/${libdir}/
- rm -rf ${D}/usr/lib
- fi
-}
-
-# http://errors.yoctoproject.org/Errors/Details/40660/
-PNBLACKLIST[opencv] ?= "Not compatible with currently used ffmpeg 3 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.3.bb
index 535c761fa..dd9e4ca44 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.2.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.3.bb
@@ -10,38 +10,58 @@ ARM_INSTRUCTION_SET_armv5 = "arm"
DEPENDS = "libtool swig-native bzip2 zlib glib-2.0 libwebp"
-SRCREV_opencv = "70bbf17b133496bd7d54d034b0f94bd869e0e810"
-SRCREV_contrib = "86342522b0eb2b16fa851c020cc4e0fef4e010b7"
-SRCREV_ipp = "81a676001ca8075ada498583e4166079e5744668"
-SRCREV_bootdesc = "34e4206aef44d50e6bbcd0ab06354b52e7466d26"
+SRCREV_opencv = "87c27a074db9f6d9d60513f351daa903606ca370"
+SRCREV_contrib = "2a9d1b22ed76eb22fad1a5edf6faf4d05f207b13"
+SRCREV_ipp = "a62e20676a60ee0ad6581e217fe7e4bada3b95db"
+SRCREV_boostdesc = "34e4206aef44d50e6bbcd0ab06354b52e7466d26"
SRCREV_vgg = "fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d"
-IPP_MD5 = "808b791a6eac9ed78d32a7666804320e"
-SRCREV_FORMAT = "opencv"
+def ipp_filename(d):
+ import re
+ arch = d.getVar('TARGET_ARCH', True)
+ if re.match("i.86$", arch):
+ return "ippicv_2017u2_lnx_ia32_20170418.tgz"
+ else:
+ return "ippicv_2017u2_lnx_intel64_20170418.tgz"
+
+def ipp_md5sum(d):
+ import re
+ arch = d.getVar('TARGET_ARCH', True)
+ if re.match("i.86$", arch):
+ return "f2cece00d802d4dea86df52ed095257e"
+ else:
+ return "808b791a6eac9ed78d32a7666804320e"
+
+IPP_FILENAME = "${@ipp_filename(d)}"
+IPP_MD5 = "${@ipp_md5sum(d)}"
+
+SRCREV_FORMAT = "opencv_contrib_ipp_boostdesc_vgg"
SRC_URI = "git://github.com/opencv/opencv.git;name=opencv \
git://github.com/opencv/opencv_contrib.git;destsuffix=contrib;name=contrib \
- git://github.com/opencv/opencv_3rdparty.git;branch=ippicv/master_20151201;destsuffix=ipp;name=ipp \
- git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_boostdesc_20161012;destsuffix=bootdesc;name=bootdesc \
+ git://github.com/opencv/opencv_3rdparty.git;branch=ippicv/master_20170418;destsuffix=ipp;name=ipp \
+ git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_boostdesc_20161012;destsuffix=boostdesc;name=boostdesc \
git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_vgg_20160317;destsuffix=vgg;name=vgg \
file://0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch \
file://fixpkgconfig.patch \
file://uselocalxfeatures.patch;patchdir=../contrib/ \
- file://useoeprotobuf.patch;patchdir=../contrib/ \
- file://0001-Revert-cuda-fix-fp16-compilation.patch \
- file://0002-Revert-check-FP16-build-condition-correctly.patch \
- file://0001-Make-opencv-ts-create-share-library-intead-of-static.patch \
- file://0001-To-fix-errors-as-following.patch \
- file://0001-tracking-make-opencv_dnn-dependancy-optional.patch;patchdir=../contrib/ \
+ file://0002-Make-opencv-ts-create-share-library-intead-of-static.patch \
+ file://0003-To-fix-errors-as-following.patch \
+ file://0001-build-workaround-GCC-7.1.1-compilation-issue-with-sa.patch \
+ file://0002-imgcodecs-refactoring-improve-code-quality.patch \
+ file://0003-imgproc-test-add-checks-for-remove-call.patch \
+ file://0001-Dont-use-isystem.patch \
+ file://0001-carotene-don-t-use-__asm__-with-aarch64.patch \
+ file://0002-Do-not-enable-asm-with-clang.patch \
+ file://CVE-2017-14136.patch \
"
-
-PV = "3.2+git${SRCPV}"
+PV = "3.3+git${SRCPV}"
S = "${WORKDIR}/git"
do_unpack_extra() {
- tar xzf ${WORKDIR}/ipp/ippicv/ippicv_linux_20151201.tgz -C ${WORKDIR}
+ tar xzf ${WORKDIR}/ipp/ippicv/${IPP_FILENAME} -C ${WORKDIR}
cp ${WORKDIR}/vgg/*.i ${WORKDIR}/contrib/modules/xfeatures2d/src
- cp ${WORKDIR}/bootdesc/*.i ${WORKDIR}/contrib/modules/xfeatures2d/src
+ cp ${WORKDIR}/boostdesc/*.i ${WORKDIR}/contrib/modules/xfeatures2d/src
}
addtask unpack_extra after do_unpack before do_patch
@@ -64,7 +84,7 @@ PACKAGECONFIG ??= "python3 eigen jpeg png tiff v4l libv4l gstreamer samples tbb
PACKAGECONFIG[amdblas] = "-DWITH_OPENCLAMDBLAS=ON,-DWITH_OPENCLAMDBLAS=OFF,libclamdblas,"
PACKAGECONFIG[amdfft] = "-DWITH_OPENCLAMDFFT=ON,-DWITH_OPENCLAMDFFT=OFF,libclamdfft,"
-PACKAGECONFIG[dnn] = "-DBUILD_opencv_dnn=ON -DUPDATE_PROTO_FILES=ON -DBUILD_PROTOBUF=OFF,-DBUILD_opencv_dnn=OFF,protobuf protobuf-native,"
+PACKAGECONFIG[dnn] = "-DBUILD_opencv_dnn=ON -DPROTOBUF_UPDATE_FILES=ON -DBUILD_PROTOBUF=OFF,-DBUILD_opencv_dnn=OFF,protobuf protobuf-native,"
PACKAGECONFIG[eigen] = "-DWITH_EIGEN=ON,-DWITH_EIGEN=OFF,libeigen gflags glog,"
PACKAGECONFIG[freetype] = "-DBUILD_opencv_freetype=ON,-DBUILD_opencv_freetype=OFF,freetype,"
PACKAGECONFIG[gphoto2] = "-DWITH_GPHOTO2=ON,-DWITH_GPHOTO2=OFF,libgphoto2,"
@@ -126,13 +146,12 @@ python populate_packages_prepend () {
metapkg = pn
d.setVar('ALLOW_EMPTY_' + metapkg, "1")
- blacklist = [ metapkg ]
+ blacklist = [ metapkg, "libopencv-ts" ]
metapkg_rdepends = [ ]
for pkg in packages[1:]:
if not pkg in blacklist and not pkg in metapkg_rdepends and not pkg.endswith('-dev') and not pkg.endswith('-dbg') and not pkg.endswith('-doc') and not pkg.endswith('-locale') and not pkg.endswith('-staticdev'):
metapkg_rdepends.append(pkg)
d.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends))
-
}
PACKAGES_DYNAMIC += "^libopencv-.*"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/do-not-install-pyc-and-pyo.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/do-not-install-pyc-and-pyo.patch
deleted file mode 100644
index d4e02be45..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/do-not-install-pyc-and-pyo.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-Do not install pyc and pyo for python module
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- swig/python/Makefile.am | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/swig/python/Makefile.am b/swig/python/Makefile.am
-index da95a81..97a62bf 100644
---- a/swig/python/Makefile.am
-+++ b/swig/python/Makefile.am
-@@ -33,8 +33,6 @@ CLEANFILES = OpenIPMI_wrap.c OpenIPMI.py OpenIPMI.pyo OpenIPMI.pyc
- install-exec-local: _OpenIPMI.la OpenIPMI.py OpenIPMI.pyc OpenIPMI.pyo
- $(INSTALL) -d $(DESTDIR)$(PYTHON_INSTALL_DIR)
- $(INSTALL_DATA) OpenIPMI.py "$(DESTDIR)$(PYTHON_INSTALL_DIR)"
-- $(INSTALL_DATA) OpenIPMI.pyc "$(DESTDIR)$(PYTHON_INSTALL_DIR)"
-- $(INSTALL_DATA) OpenIPMI.pyo "$(DESTDIR)$(PYTHON_INSTALL_DIR)"
- if test "x$(PYTHON_GUI_DIR)" = "xopenipmigui"; then \
- $(INSTALL) -d $(DESTDIR)$(bindir); \
- $(INSTALL_SCRIPT) $(srcdir)/openipmigui.py "$(DESTDIR)$(bindir)/openipmigui";\
---
-1.9.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/fix-symlink-install-error-in-cmdlang.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/fix-symlink-install-error-in-cmdlang.patch
deleted file mode 100644
index 9a568b2b2..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/fix-symlink-install-error-in-cmdlang.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-Author: Aws Ismail <aws.ismail@windriver.com>
-Date: Thu Jun 7 16:00:13 2012 -0400
-
- This patch fixes the error during the install stage when
- creating a symbolic link for opeipmish in openipmi/cmdlang
-
- Upstream-Status: Pending
-
- Signed-off-by: Aws Ismail <aws.ismail@windriver.com>
-
-diff --git a/cmdlang/Makefile.am b/cmdlang/Makefile.am
-index 92d6e83..f6039f9 100644
---- a/cmdlang/Makefile.am
-+++ b/cmdlang/Makefile.am
-@@ -36,6 +36,7 @@ CLEANFILES = libOpenIPMIcmdlang.map
- # compatability.
- install-data-local:
- rm -f $(DESTDIR)$(bindir)/ipmish
-+ mkdir -p $(DESTDIR)$(bindir)/
- $(LN_S) openipmish $(DESTDIR)$(bindir)/ipmish
-
- uninstall-local:
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/include_sys_types.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/include_sys_types.patch
deleted file mode 100644
index 58ec5d883..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/include_sys_types.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-include sys/types.h for u_int32_t
-
-ui.c:340:5: error: unknown type name 'u_int32_t'; did you mean 'uint32_t'?
- u_int32_t addr;
- ^~~~~~~~~
-Index: OpenIPMI-2.0.22/ui/ui.c
-===================================================================
---- OpenIPMI-2.0.22.orig/ui/ui.c
-+++ OpenIPMI-2.0.22/ui/ui.c
-@@ -42,6 +42,7 @@
- #include <fcntl.h>
- #include <time.h>
- #include <sys/time.h>
-+#include <sys/types.h>
- #include <ctype.h>
-
- #include <OpenIPMI/selector.h>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/ipmi-init-fix-the-arguments.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/ipmi-init-fix-the-arguments.patch
deleted file mode 100644
index 51a398ba5..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/ipmi-init-fix-the-arguments.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-Subject: [PATCH] ipmi-init: fix the arguments
-
-The functions success/failure/warning defined in /etc/init.d/functions
-(provided by initscripts) only accepts numeric argument as return code,
-not a string.
-
-Upstream-Status: Inappropriate [OE specific]
-
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
----
- ipmi.init | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/ipmi.init b/ipmi.init
-index 2ebcd94..d8161c5 100644
---- a/ipmi.init
-+++ b/ipmi.init
-@@ -45,17 +45,17 @@ elif [ -r /etc/init.d/functions ]; then
- case "$ACTION" in
- success)
- echo -n $*
-- success "$*"
-+ success 0
- echo
- ;;
- failure)
- echo -n $*
-- failure "$*"
-+ failure 1
- echo
- ;;
- warning)
- echo -n $*
-- warning "$*"
-+ warning 0
- echo
- ;;
- *)
---
-1.9.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/ipmi.service b/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/ipmi.service
deleted file mode 100644
index 6fe137819..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/ipmi.service
+++ /dev/null
@@ -1,12 +0,0 @@
-[Unit]
-Description=IPMI Driver
-After=network.target
-
-[Service]
-Type=oneshot
-RemainAfterExit=yes
-ExecStart=@LIBEXECDIR@/openipmi-helper start
-ExecStop=@LIBEXECDIR@/openipmi-helper stop-all
-
-[Install]
-WantedBy=multi-user.target
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/makefile-add-ldflags.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/makefile-add-ldflags.patch
deleted file mode 100644
index 271c5323f..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/makefile-add-ldflags.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Add LDFLAGS variable to Makefile.am, make sure the extra linker flags can be passed.
-
-Upstream-Status: Pending
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
-
-diff --git a/swig/perl/Makefile.am b/swig/perl/Makefile.am
-index 2f9ee4c..3a18892 100644
---- a/swig/perl/Makefile.am
-+++ b/swig/perl/Makefile.am
-@@ -20,7 +20,7 @@ OpenIPMI_SRC = OpenIPMI_perl.c
- OpenIPMI_OBJ = OpenIPMI_wrap.lo OpenIPMI_perl.lo
-
- OpenIPMI.so: $(OpenIPMI_OBJ)
-- $(LIBTOOL) --mode=link $(CC) -shared -module -avoid-version -o $(@:.so=.la) $^ $(OPENIPMI_SWIG_LIBS) $(PERL_POSIX_LIB) -rpath $(PERL_INSTALL_DIR)/auto/OpenIPMI
-+ $(LIBTOOL) --mode=link $(CC) -shared -module -avoid-version $(LDFLAGS) -o $(@:.so=.la) $^ $(OPENIPMI_SWIG_LIBS) $(PERL_POSIX_LIB) -rpath $(PERL_INSTALL_DIR)/auto/OpenIPMI
- rm -f OpenIPMI.so
- mv .libs/OpenIPMI.so .
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/openipmi-don-t-rm-.libs.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/openipmi-don-t-rm-.libs.patch
deleted file mode 100644
index ee3c66043..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/openipmi-don-t-rm-.libs.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From bbd51cf010c80322034f7094e2c6a656aa1f17a7 Mon Sep 17 00:00:00 2001
-From: Wenzong Fan <wenzong.fan@windriver.com>
-Date: Fri, 13 Feb 2015 06:55:33 +0000
-Subject: [PATCH] openipmi: don't rm .libs
-
-Don't remove .libs after OpenIPMI.so generated, this may cause
-dummystuff.so fails to link from the second build with error:
-
-* error: .libs/dummystuff.o: No such file or directory
-
-Upstream-Status: Pending
-
-Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
----
- swig/perl/Makefile.am | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/swig/perl/Makefile.am b/swig/perl/Makefile.am
-index 12a282c..2f9ee4c 100644
---- a/swig/perl/Makefile.am
-+++ b/swig/perl/Makefile.am
-@@ -23,7 +23,6 @@ OpenIPMI.so: $(OpenIPMI_OBJ)
- $(LIBTOOL) --mode=link $(CC) -shared -module -avoid-version -o $(@:.so=.la) $^ $(OPENIPMI_SWIG_LIBS) $(PERL_POSIX_LIB) -rpath $(PERL_INSTALL_DIR)/auto/OpenIPMI
- rm -f OpenIPMI.so
- mv .libs/OpenIPMI.so .
-- rm -rf .libs
-
- dummystuff.lo: dummystuff.c
- $(LIBTOOL) --mode=compile $(COMPILE) -c $<
---
-1.9.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/openipmi-helper b/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/openipmi-helper
deleted file mode 100755
index 4cebfb9c6..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/openipmi-helper
+++ /dev/null
@@ -1,512 +0,0 @@
-#!/bin/sh
-#############################################################################
-#
-# ipmi: OpenIPMI Driver helper script
-#
-# Authors: Jan Safranek <jsafrane@redhat.com>
-#
-# Based on IPMI init script by:
-# Matt Domsch <Matt_Domsch@dell.com>
-# Chris Poblete <Chris_Poblete@dell.com>
-#
-# Status return code bits
-# no bits set = no errors
-# bit 0 set = minimum modules aren't loaded
-# bit 1 set = requested feature module isn't loaded
-# bit 2 set = /dev/ipmi0 (or /dev/imb if using that instead) doesn't exist
-# bit 3 set = /dev/watchdog doesn't exist
-# bit 4 set = lockfile doesn't exist
-# bit 5 set = modules are loaded even when asked to be unloaded
-
-CONFIGFILE=/etc/sysconfig/ipmi
-# source config info
-[ -r ${CONFIGFILE} ] && . ${CONFIGFILE}
-
-#############################################################################
-# GLOBALS
-#############################################################################
-MODULE_NAME="ipmi"
-INTF_NUM=0
-
-IPMI_SMB_MODULE_NAME="ipmi_smb"
-IPMI_SI_MODULE_NAME="ipmi_si"
-kernel=`uname -r | cut -d. -f1-2`
-if [ "${kernel}" == "2.4" ]; then
- IPMI_SMB_MODULE_NAME="ipmi_smb_intf"
- IPMI_SI_MODULE_NAME="ipmi_si_drv"
-fi
-
-MODULES_INTERFACES=""
-[ "${DEV_IPMI}" = "yes" ] && MODULES_INTERFACES="${MODULES_INTERFACES} ipmi_devintf"
-[ "${IPMI_IMB}" = "yes" ] && MODULES_INTERFACES="${MODULES_INTERFACES} ipmi_imb"
-
-MODULES_FEATURES=""
-[ "${IPMI_WATCHDOG}" = "yes" ] && MODULES_FEATURES="${MODULES_FEATURES} ipmi_watchdog"
-[ "${IPMI_POWEROFF}" = "yes" ] && MODULES_FEATURES="${MODULES_FEATURES} ipmi_poweroff"
-
-MODULES_HW=""
-[ "${IPMI_SI}" = "yes" ] && MODULES_HW="${MODULES_HW} ${IPMI_SI_MODULE_NAME}"
-[ "${IPMI_SMB}" = "yes" ] && MODULES_HW="${MODULES_HW} ${IPMI_SMB_MODULE_NAME}"
-
-MODULES_BASE="ipmi_msghandler"
-MODULES="${MODULES_INTERFACES} ${MODULES_FEATURES} ${MODULES_HW} ${MODULES_BASE}"
-
-RETVAL=0
-LOCKFILE=/var/lock/subsys/ipmi
-DEV_IPMI_TIMEOUT=150
-
-UDEV_EXISTS=0
-if [ -e /sbin/udev -o -e /sbin/udevd ]; then
- UDEV_EXISTS=1
-fi
-
-#############################################################################
-# NOTES:
-# * /dev/ipmi0 is unconditionally deleted here on ipmi_devintf unload,
-# because SLES9 and RHEL4 kernels don't send a message for udev to delete
-# it for us.
-#
-#############################################################################
-
-modules_loaded_verbose()
-{
- OnePlusLoaded=0
- OnePlusUnloaded=0
- for m in $@; do
- if /sbin/lsmod | grep $m >/dev/null 2>&1 ; then
- echo "$m module loaded."
- OnePlusLoaded=1
- else
- echo "$m module not loaded."
- OnePlusUnloaded=1
- fi
- done
-}
-
-modules_loaded()
-{
- OnePlusLoaded=0
- OnePlusUnloaded=0
- for m in $@; do
- if /sbin/lsmod | grep $m >/dev/null 2>&1 ; then
- OnePlusLoaded=1
- else
- OnePlusUnloaded=1
- fi
- done
-}
-
-device_node_exists ()
-{
- if [ -e "$1" ]; then
- echo "$1 exists."
- return 1
- fi
- echo "$1 does not exist."
- return 0
-}
-
-minimum_modules_loaded()
-{
- rc_base=1
- rc_hw=1
- modules_loaded_verbose "${MODULES_BASE}"
- [ ${OnePlusLoaded} -eq 0 ] && rc_base=0
-
- modules_loaded_verbose "${MODULES_HW}"
- [ ${OnePlusLoaded} -eq 0 ] && rc_hw=0
-
- return $((rc_base && rc_hw))
-}
-
-#############################################################################
-
-load_si()
-{
- if [ "${IPMI_SI}" = "yes" ]; then
- modprobe ${IPMI_SI_MODULE_NAME} > /dev/null 2>&1
- modules_loaded ${IPMI_SI_MODULE_NAME}
- [ ${OnePlusLoaded} -ne 1 ] && RETVAL=$((RETVAL | 1))
- fi
-}
-
-load_smb()
-{
- if [ "${IPMI_SMB}" = "yes" ]; then
- modprobe ${IPMI_SMB_MODULE_NAME} > /dev/null 2>&1
- modules_loaded ${IPMI_SMB_MODULE_NAME}
- [ ${OnePlusLoaded} -ne 1 ] && RETVAL=$((RETVAL | 1))
- fi
-}
-
-load_hw_modules()
-{
- load_si
- load_smb
-}
-
-start_watchdog_common()
-{
- load_hw_modules
- modprobe ipmi_watchdog ${IPMI_WATCHDOG_OPTIONS} > /dev/null 2>&1
- modules_loaded ipmi_watchdog
- [ ${OnePlusUnloaded} -ne 0 ] &&
- RETVAL=$((RETVAL | 2)) &&
- echo "Watchdog startup failed: cannot load ipmi_watchdog module" &&
- return
- if [ ${UDEV_EXISTS} -eq 0 -a ! -e /dev/watchdog ]; then
- mknod -m 0600 /dev/watchdog c 10 130
- [ $? -ne 0 ] &&
- RETVAL=$((RETVAL | 8)) &&
- echo "Watchdog startup failed: cannot create /dev/watchdog" &&
- return
- fi
-}
-
-start_watchdog_quiet()
-{
- [ "${IPMI_WATCHDOG}" != "yes" ] &&
- return
- start_watchdog_common
-}
-
-start_watchdog()
-{
- [ "${IPMI_WATCHDOG}" != "yes" ] &&
- RETVAL=$((RETVAL | 2)) &&
- echo "Watchdog not configured" &&
- return
- start_watchdog_common
-}
-
-stop_watchdog()
-{
- modprobe -q -r ipmi_watchdog > /dev/null 2>&1
- modules_loaded ipmi_watchdog
- if [ ${OnePlusLoaded} -ne 0 ]; then
- RETVAL=$((RETVAL | 32))
- echo "Watchog shutdown failed: cannot unload ipmi_watchdog module"
- else
- if [ "${IPMI_WATCHDOG}" = "yes" ]; then
- [ ${UDEV_EXISTS} -eq 0 ] && rm -f /dev/watchdog
- fi
- fi
-}
-
-stop_watchdog_quiet()
-{
- modprobe -q -r ipmi_watchdog > /dev/null 2>&1
- modules_loaded ipmi_watchdog
- if [ ${OnePlusLoaded} -ne 0 ]; then
- RETVAL=$((RETVAL | 32))
- else
- if [ "${IPMI_WATCHDOG}" = "yes" ]; then
- [ ${UDEV_EXISTS} -eq 0 ] && rm -f /dev/watchdog
- fi
- fi
-}
-
-start_powercontrol_common()
-{
- local poweroff_opts=""
- load_hw_modules
- if [ "${IPMI_POWERCYCLE}" == "yes" ]; then
- modinfo ipmi_poweroff 2>/dev/null | grep poweroff_control > /dev/null 2>&1 && \
- poweroff_opts="poweroff_control=2"
- modinfo ipmi_poweroff 2>/dev/null | grep poweroff_powercycle > /dev/null 2>&1 && \
- poweroff_opts="poweroff_powercycle=1"
- fi
- modprobe ipmi_poweroff "${poweroff_opts}" > /dev/null 2>&1
- modules_loaded ipmi_poweroff
- [ ${OnePlusUnloaded} -ne 0 ] &&
- RETVAL=$((RETVAL | 2)) &&
- echo "Powercontroll startup failed: cannot load ipmi_poweroff module" &&
- return
-}
-
-start_powercontrol_quiet()
-{
- [ "${IPMI_POWEROFF}" != "yes" ] &&
- return
- start_powercontrol_common
-}
-
-start_powercontrol()
-{
- [ "${IPMI_POWEROFF}" != "yes" ] &&
- RETVAL=$((RETVAL | 2)) &&
- echo "Powercontroll not configured" &&
- return
- start_powercontrol_common
-}
-
-stop_powercontrol()
-{
- modprobe -q -r ipmi_poweroff > /dev/null 2>&1
- modules_loaded ipmi_poweroff
- if [ ${OnePlusLoaded} -ne 0 ]; then
- RETVAL=$((RETVAL | 32))
- echo "Powercontroll shutdown failed: cannot unload ipmi_poweroff module"
- fi
-}
-
-stop_powercontrol_quiet()
-{
- modprobe -q -r ipmi_poweroff > /dev/null 2>&1
- modules_loaded ipmi_poweroff
- [ ${OnePlusLoaded} -ne 0 ] && RETVAL=$((RETVAL | 32))
-}
-
-#############################################################################
-unload_all_ipmi_modules()
-{
- stop_watchdog_quiet
- stop_powercontrol_quiet
- for m in ${MODULES}; do
- modprobe -q -r ${m} > /dev/null 2>&1
- done
- # delete interface node ONLY if ipmi_devintf is unloaded
- [ `lsmod | grep -c "ipmi_devintf"` -eq 0 ] &&
- rm -f "/dev/ipmi${INTF_NUM}"
-}
-
-unload_ipmi_modules_leave_features()
-{
- for m in ${MODULES_INTERFACES}; do
- modprobe -q -r ${m} > /dev/null 2>&1
- done
- # delete interface node ONLY if ipmi_devintf is unloaded
- [ `lsmod | grep -c "ipmi_devintf"` -eq 0 ] &&
- rm -f "/dev/ipmi${INTF_NUM}"
- lsmod | egrep -q "ipmi_(poweroff|watchdog)" > /dev/null 2>&1
- if [ "$?" -ne "0" ]; then
- stop_watchdog_quiet
- stop_powercontrol_quiet
- for m in ${MODULES}; do
- modprobe -q -r ${m} > /dev/null 2>&1
- done
- fi
-}
-
-#############################################################################
-load_ipmi_modules ()
-{
- local locdelay
- modprobe ipmi_msghandler > /dev/null 2>&1
- modules_loaded ipmi_msghandler
- [ ${OnePlusLoaded} -ne 1 ] && unload_all_ipmi_modules && RETVAL=$((RETVAL | 1)) && return
- load_hw_modules
- [ $((RETVAL & 1)) -eq 1 ] && unload_all_ipmi_modules && RETVAL=$((RETVAL | 1)) && return
-
- if [ "${DEV_IPMI}" = "yes" ]; then
- modprobe ipmi_devintf > /dev/null 2>&1
- modules_loaded ipmi_devintf
- RETVAL=$((RETVAL & ~2))
- [ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2))
- if [ ${OnePlusLoaded} -eq 1 ]; then
- if [ ${UDEV_EXISTS} -eq 0 ]; then
- DEVMAJOR=`cat /proc/devices | awk '/ipmidev/{print $1}'`
- rm -f /dev/ipmi${INTF_NUM}
- mknod -m 0600 /dev/ipmi${INTF_NUM} c ${DEVMAJOR} 0 || RETVAL=$((RETVAL | 4))
- fi
-
- # udev can take several seconds to create /dev/ipmi0,
- # but it happens asynchronously, so delay here
- locdelay=${DEV_IPMI_TIMEOUT}
- while [ ! -e /dev/ipmi${INTF_NUM} -a ${locdelay} -gt 0 ]; do
- locdelay=$((locdelay - 1))
- sleep 0.1
- done
- fi
- fi
-
- if [ "${IPMI_IMB}" = "yes" ]; then
- modprobe ipmi_imb > /dev/null 2>&1
- modules_loaded ipmi_imb
- RETVAL=$((RETVAL & ~2))
- [ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2))
- if [ ${OnePlusLoaded} -eq 1 ]; then
- DEVMAJOR=`cat /proc/devices | awk '/imb/{print $1}'`
- rm -f /dev/imb
- mknod -m 0600 /dev/imb c ${DEVMAJOR} 0 || RETVAL=$((RETVAL | 4))
- fi
- fi
-
- # Per Corey Minyard, essentially no one uses ipmi_radisys
- # and we don't want to encourage its further use
- # so it won't be handled here.
- return
-}
-
-#############################################################################
-start()
-{
- load_ipmi_modules
- if [ ${RETVAL} -eq 0 ]; then
- touch ${LOCKFILE}
- else
- if [ $((RETVAL & 1)) -eq 1 ]; then
- echo "Startup failed."
- else
- touch ${LOCKFILE} && echo "Warning!?"
- fi
- fi
- start_watchdog_quiet
- start_powercontrol_quiet
-}
-
-#############################################################################
-stop()
-{
- unload_ipmi_modules_leave_features
- modules_loaded ${MODULES_INTERFACES}
- if [ ${OnePlusLoaded} -ne 0 ]; then
- RETVAL=$((RETVAL | 32))
- echo "Shutdown failed, something may be in use"
- else
- rm -f ${LOCKFILE}
- fi
-}
-
-stop_all()
-{
- unload_all_ipmi_modules
- modules_loaded ${MODULES}
- if [ ${OnePlusLoaded} -ne 0 ]; then
- RETVAL=$((RETVAL | 32))
- echo "Shutdown failed, something may be in use"
- else
- rm -f ${LOCKFILE}
- fi
-}
-
-#############################################################################
-restart()
-{
- stop_all
- RETVAL=0
- start
-}
-
-#############################################################################
-
-reload()
-{
- stop_all
- RETVAL=0
- start
-}
-
-#############################################################################
-
-status_all()
-{
- minimum_modules_loaded
- [ $? -eq 0 ] && RETVAL=$((RETVAL | 1))
-
- modules_loaded_verbose ${MODULES_FEATURES} ${MODULES_INTERFACES}
- [ ${OnePlusUnloaded} -ne 0 ] && RETVAL=$((RETVAL | 2))
-
- if [ "${DEV_IPMI}" = "yes" ]; then
- device_node_exists /dev/ipmi${INTF_NUM}
- [ $? -eq 0 ] && RETVAL=$((RETVAL | 4))
- fi
-
- if [ "${IPMI_IMB}" = "yes" ]; then
- device_node_exists /dev/imb
- [ $? -eq 0 ] && RETVAL=$((RETVAL | 4))
- fi
-
- if [ "${IPMI_WATCHDOG}" = "yes" ]; then
- device_node_exists /dev/watchdog
- [ $? -eq 0 ] && RETVAL=$((RETVAL | 8))
- fi
-
- [ ! -e ${LOCKFILE} ] && RETVAL=$((RETVAL | 16))
-}
-
-status()
-{
- minimum_modules_loaded
- [ $? -eq 0 ] && RETVAL=$((RETVAL | 1))
-
- if [ "${DEV_IPMI}" = "yes" ]; then
- modules_loaded_verbose ipmi_devintf
- [ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2))
-
- device_node_exists /dev/ipmi${INTF_NUM}
- [ $? -eq 0 ] && RETVAL=$((RETVAL | 4))
- fi
-
- if [ "${IPMI_IMB}" = "yes" ]; then
- device_node_exists /dev/imb
- [ $? -eq 0 ] && RETVAL=$((RETVAL | 4))
- fi
-}
-
-status_watchdog()
-{
- minimum_modules_loaded
- [ $? -eq 0 ] && RETVAL=$((RETVAL | 1))
-
- modules_loaded_verbose ipmi_watchdog
- [ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2))
-
- device_node_exists /dev/watchdog
- [ $? -eq 0 ] && RETVAL=$((RETVAL | 8))
-}
-
-status_powercontrol()
-{
- minimum_modules_loaded
- [ $? -eq 0 ] && RETVAL=$((RETVAL | 1))
-
- modules_loaded_verbose ipmi_powercontrol
- [ ${OnePlusLoaded} -eq 0 ] && RETVAL=$((RETVAL | 2))
-}
-
-#############################################################################
-usage ()
-{
- echo $"Usage: $0 {start|stop|status" 1>&2
- echo $" restart|condrestart|try-restart|reload|force-reload" 1>&2
- echo $" start-watchdog|stop-watchdog|status-watchdog" 1>&2
- echo $" start-powercontrol|stop-powercontrol|status-powercontrol" 1>&2
- echo $" stop-all|status-all}" 1>&2
- RETVAL=2
-}
-
-condrestart ()
-{
- [ -e ${LOCKFILE} ] && restart
-}
-
-#############################################################################
-# MAIN
-#############################################################################
-case "$1" in
- start) start ;;
- stop) stop ;;
- restart) restart ;;
- force-reload) reload ;;
- reload) reload ;;
- status) status ;;
- status-all) status_all ;;
- condrestart) condrestart ;;
- try-restart) condrestart ;;
- start-watchdog) start_watchdog ;;
- stop-watchdog) stop_watchdog ;;
- status-watchdog) status_watchdog ;;
- start-powercontrol) start_powercontrol ;;
- stop-powercontrol) stop_powercontrol ;;
- status-powercontrol) status_powercontrol ;;
- stop-all) stop_all ;;
- *) usage ;;
-esac
-
-exit ${RETVAL}
-
-#############################################################################
-# end of file
-#############################################################################
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/openipmi-no-openipmigui-man.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/openipmi-no-openipmigui-man.patch
deleted file mode 100644
index 1fa68f9ba..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/openipmi-no-openipmigui-man.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-Author: Aws Ismail <aws.ismail@windriver.com>
-Date: Thu Jun 7 12:28:34 2012 -0400
-
- This patch was carried over from WRL4.3 (openipmi v2.0.16)
-
- It was updated for openipmi v2.0.19
-
- Disable making openipmigui man page since we don't need it
-
- Upstream-Status: Pending
-
- Signed-off-by: Aws Ismail <aws.ismail@windriver.com>
- Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
-
-diff --git a/man/Makefile.am b/man/Makefile.am
-index 632f55b..5ce79f5 100644
---- a/man/Makefile.am
-+++ b/man/Makefile.am
-@@ -1,6 +1,6 @@
-
- man_MANS = ipmi_ui.1 openipmicmd.1 openipmish.1 ipmi_cmdlang.7 \
-- openipmigui.1 openipmi_conparms.7 solterm.1 rmcp_ping.1 \
-+ openipmi_conparms.7 solterm.1 rmcp_ping.1 \
- openipmi_eventd.1
-
- EXTRA_DIST = $(man_MANS)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/openipmi-remove-host-path-from-la_LDFLAGS.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/openipmi-remove-host-path-from-la_LDFLAGS.patch
deleted file mode 100644
index 6f16234bc..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/files/openipmi-remove-host-path-from-la_LDFLAGS.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-From aa0dc0783a6ff5fb56c914b640836223e3c192bb Mon Sep 17 00:00:00 2001
-From: Jackie Huang <jackie.huang@windriver.com>
-Date: Mon, 29 Dec 2014 18:16:04 +0800
-Subject: [PATCH] remove host path from la_LDFLAGS
-
-Upstream-Status: Inappropriate [ cross compile specific ]
-
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
----
- cmdlang/Makefile.am | 2 +-
- glib/Makefile.am | 4 ++--
- tcl/Makefile.am | 2 +-
- unix/Makefile.am | 4 ++--
- 4 files changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/cmdlang/Makefile.am b/cmdlang/Makefile.am
-index 00c3d2b..0fa85d7 100644
---- a/cmdlang/Makefile.am
-+++ b/cmdlang/Makefile.am
-@@ -16,7 +16,7 @@ libOpenIPMIcmdlang_la_LIBADD = -lm \
- $(top_builddir)/utils/libOpenIPMIutils.la \
- $(top_builddir)/lib/libOpenIPMI.la
- libOpenIPMIcmdlang_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION) \
-- -Wl,-Map -Wl,libOpenIPMIcmdlang.map -L$(libdir)
-+ -Wl,-Map -Wl,libOpenIPMIcmdlang.map
-
- bin_PROGRAMS = openipmish
-
-diff --git a/glib/Makefile.am b/glib/Makefile.am
-index 671cae2..eff55f3 100644
---- a/glib/Makefile.am
-+++ b/glib/Makefile.am
-@@ -11,14 +11,14 @@ libOpenIPMIglib_la_SOURCES = glib_os_hnd.c
- libOpenIPMIglib_la_CFLAGS = $(GLIB_CFLAGS) $(AM_CFLAGS)
- libOpenIPMIglib_la_LIBADD = $(GDBM_LIB)
- libOpenIPMIglib_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION) \
-- -Wl,-Map -Wl,libOpenIPMIglib.map $(GLIB_LIBS) -L$(libdir) \
-+ -Wl,-Map -Wl,libOpenIPMIglib.map $(GLIB_LIBS) \
- -rpath $(libdir)
-
- libOpenIPMIglib12_la_SOURCES = glib_os_hnd.c
- libOpenIPMIglib12_la_CFLAGS = $(GLIB12_CFLAGS) $(AM_CFLAGS)
- libOpenIPMIglib12_la_LIBADD = $(GDBM_LIB)
- libOpenIPMIglib12_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION) \
-- -Wl,-Map -Wl,libOpenIPMIglib12.map $(GLIB12_LIBS) -L$(libdir) \
-+ -Wl,-Map -Wl,libOpenIPMIglib12.map $(GLIB12_LIBS) \
- -rpath $(libdir)
-
- CLEANFILES = libOpenIPMIglib.map libOpenIPMIglib12.map
-diff --git a/tcl/Makefile.am b/tcl/Makefile.am
-index b702819..282619c 100644
---- a/tcl/Makefile.am
-+++ b/tcl/Makefile.am
-@@ -11,7 +11,7 @@ libOpenIPMItcl_la_SOURCES = tcl_os_hnd.c
- libOpenIPMItcl_la_CFLAGS = $(TCL_CFLAGS) $(AM_CFLAGS)
- libOpenIPMItcl_la_LIBADD = $(GDBM_LIB)
- libOpenIPMItcl_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION) \
-- -Wl,-Map -Wl,libOpenIPMItcl.map $(TCL_LIBS) -L$(libdir) \
-+ -Wl,-Map -Wl,libOpenIPMItcl.map $(TCL_LIBS) \
- -rpath $(libdir)
-
- noinst_PROGRAMS = test_handlers
-diff --git a/unix/Makefile.am b/unix/Makefile.am
-index a792147..a108bc6 100644
---- a/unix/Makefile.am
-+++ b/unix/Makefile.am
-@@ -11,13 +11,13 @@ libOpenIPMIpthread_la_SOURCES = posix_thread_os_hnd.c selector.c
- libOpenIPMIpthread_la_LIBADD = -lpthread $(GDBM_LIB) \
- $(top_builddir)/utils/libOpenIPMIutils.la
- libOpenIPMIpthread_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION) \
-- -Wl,-Map -Wl,libOpenIPMIpthread.map -L$(libdir)
-+ -Wl,-Map -Wl,libOpenIPMIpthread.map
-
- libOpenIPMIposix_la_SOURCES = posix_os_hnd.c selector.c
- libOpenIPMIposix_la_LIBADD = $(top_builddir)/utils/libOpenIPMIutils.la \
- $(GDBM_LIB)
- libOpenIPMIposix_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION) \
-- -Wl,-Map -Wl,libOpenIPMIposix.map -L$(libdir)
-+ -Wl,-Map -Wl,libOpenIPMIposix.map
-
- noinst_HEADERS = heap.h
-
---
-1.7.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/openipmi_2.0.22.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/openipmi_2.0.22.bb
deleted file mode 100644
index 9f4b0ff26..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/openipmi/openipmi_2.0.22.bb
+++ /dev/null
@@ -1,112 +0,0 @@
-SUMMARY = "IPMI (Intelligent Platform Management Interface) library and tools"
-DESCRIPTION = "OpenIPMI is an effort to create a full-function IPMI system, \
-to allow full access to all IPMI information on a server \
-and to abstract it to a level that will make it easy to use"
-
-HOMEPAGE = "http://openipmi.sourceforge.net"
-
-DEPENDS = " \
- glib-2.0 \
- ncurses \
- net-snmp \
- openssl \
- popt \
- python \
- swig-native \
- "
-
-LICENSE = "GPLv2 & LGPLv2.1 & BSD"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
- file://COPYING.LIB;md5=d8045f3b8f929c1cb29a1e3fd737b499 \
- file://COPYING.BSD;md5=4b318d4160eb69c8ee53452feb1b4cdf \
- "
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/openipmi/OpenIPMI-${PV}.tar.gz \
- file://fix-symlink-install-error-in-cmdlang.patch \
- file://openipmi-no-openipmigui-man.patch \
- file://openipmi-remove-host-path-from-la_LDFLAGS.patch \
- file://openipmi-don-t-rm-.libs.patch \
- file://ipmi-init-fix-the-arguments.patch \
- file://makefile-add-ldflags.patch \
- file://do-not-install-pyc-and-pyo.patch \
- file://include_sys_types.patch \
- file://openipmi-helper \
- file://ipmi.service \
- "
-
-SRC_URI[md5sum] = "9a4e1f6bb073379c494839201ea10aee"
-SRC_URI[sha256sum] = "4988900043c35fcfa9b2bf275d6593904f6429221befb770ba6ecb5502108e55"
-
-S = "${WORKDIR}/OpenIPMI-${PV}"
-
-inherit autotools-brokensep pkgconfig pythonnative perlnative update-rc.d systemd
-
-EXTRA_OECONF = "--disable-static \
- --with-perl='${STAGING_BINDIR_NATIVE}/perl-native/perl' \
- --with-python='${STAGING_BINDIR_NATIVE}/python-native/python' \
- --with-pythoninstall='${PYTHON_SITEPACKAGES_DIR}' \
- --with-glibver=2.0 --with-glib12=no"
-
-PACKAGECONFIG ??= "gdbm"
-PACKAGECONFIG[gdbm] = "ac_cv_header_gdbm_h=yes,ac_cv_header_gdbm_h=no,gdbm,"
-
-PACKAGES += "${PN}-perl ${PN}-python"
-
-FILES_${PN}-perl = " \
- ${libdir}/perl/vendor_perl/*/OpenIPMI.pm \
- ${libdir}/perl/vendor_perl/*/auto/OpenIPMI/OpenIPMI.so \
- "
-
-FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}"
-
-FILES_${PN}-dbg += " \
- ${libdir}/perl/vendor_perl/*/auto/OpenIPMI/.debug \
- ${PYTHON_SITEPACKAGES_DIR}/.debug \
- "
-
-do_configure () {
-
- # Let's perform regular configuration first then handle perl issues.
- autotools_do_configure
-
- perl_ver=`perl -V:version | cut -d\' -f 2`
-
- # Force openipmi perl bindings to be compiled using perl-native instead of
- # the host's perl. Set the proper install directory for the resulting
- # openipmi.pm and openipmi.so
- for i in ${S}/swig/Makefile ${S}/swig/perl/Makefile; do
- echo "SAL: i = $i"
- echo "SAL: STAGING_INCDIR_NATIVE = $STAGING_INCDIR_NATIVE"
- echo "SAL: libdir = $libdir"
- sed -i -e "/^PERL_CFLAGS/s:-I/usr/local/include:-I${STAGING_INCDIR_NATIVE}:g" $i
- sed -i -e "/^PERL_INSTALL_DIR/s:^PERL_INSTALL_DIR = .*:PERL_INSTALL_DIR = ${libdir}/perl/vendor_perl/$perl_ver:g" $i
- done
-}
-
-do_install_append () {
- echo "SAL: D = $D"
- echo "SAL: libdir = $libdir"
- install -m 0755 -d ${D}${sysconfdir}/sysconfig ${D}${sysconfdir}/init.d
- install -m 0755 ${S}/ipmi.init ${D}${sysconfdir}/init.d/ipmi
- install -m 0644 ${S}/ipmi.sysconf ${D}${sysconfdir}/sysconfig/ipmi
- # SAL: mv: cannot stat `/localdisk/loadbuild/slittle1/workspace/cgts_test_build/bitbake_build/tmp/work/x86_64-wrs-linux/openipmi-2.0.19-r4/image/usr/lib64/perl5': No such file or directory
- # SAL: real path to perl is /localdisk/loadbuild/slittle1/workspace/cgts_test_build/bitbake_build/tmp/work/x86_64-wrs-linux/perl-5.14.2-r8.3/package/usr/lib64/perl5 and it is a symlink to perl so no need to mv.
- if [ -d ${D}${libdir}/perl5 ]
- then
- mv ${D}${libdir}/perl5 ${D}${libdir}/perl
- fi
-
- # for systemd
- install -d ${D}${systemd_unitdir}/system
- install -m 0664 ${WORKDIR}/ipmi.service ${D}${systemd_unitdir}/system
- sed -i -e "s,@LIBEXECDIR@,${libexecdir},g" ${D}${systemd_unitdir}/system/ipmi.service
- install -d ${D}${libexecdir}
- install -m 0755 ${WORKDIR}/openipmi-helper ${D}${libexecdir}
-}
-
-INITSCRIPT_NAME = "ipmi"
-INITSCRIPT_PARAMS = "start 30 . stop 70 0 1 2 3 4 5 6 ."
-
-SYSTEMD_SERVICE_${PN} = "ipmi.service"
-SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.44.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.45.bb
index f5c233f2d..82d661983 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.44.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.45.bb
@@ -9,7 +9,7 @@ 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=c933fba6d89fda89f58df1e086e3f2e7 \
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=25fd3721960f39128cd15a749fd21139 \
file://LICENSE;md5=153d07ef052c4a37a8fac23bc6031972 \
"
SECTION = "libs"
@@ -27,8 +27,8 @@ SRC_URI = "ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/${BP}.tgz \
file://openldap-CVE-2015-3276.patch \
"
-SRC_URI[md5sum] = "693ac26de86231f8dcae2b4e9d768e51"
-SRC_URI[sha256sum] = "d7de6bf3c67009c95525dde3a0212cc110d0a70b92af2af8e3ee800e81b88400"
+SRC_URI[md5sum] = "00ff8301277cdfd0af728a6927042a13"
+SRC_URI[sha256sum] = "cdd6cffdebcd95161a73305ec13fc7a78e9707b46ca9f84fb897cd5626df3824"
DEPENDS = "util-linux groff-native"
@@ -188,6 +188,7 @@ do_install_append() {
# Installing slapd under ${sbin} is more FHS and LSB compliance
mv ${D}${libexecdir}/slapd ${D}/${sbindir}/slapd
+ rmdir --ignore-fail-on-non-empty ${D}${libexecdir}
SLAPTOOLS="slapadd slapcat slapdn slapindex slappasswd slaptest slapauth slapacl slapschema"
cd ${D}/${sbindir}/
rm -f ${SLAPTOOLS}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openmotif/openmotif/configure.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/openmotif/openmotif/configure.patch
deleted file mode 100644
index 8868e805a..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/openmotif/openmotif/configure.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/configure.ac~ 2009-10-27 14:10:23.000000000 -0200
-+++ b/configure.ac 2011-05-31 10:51:00.207232036 -0300
-@@ -3,12 +3,6 @@
- AC_CONFIG_SRCDIR([lib/Xm/Form.c])
- AC_PREREQ(2.52)
- AC_CONFIG_AUX_DIR(.)
--AC_CHECK_FILE(/usr/X/include/X11/X.h,
-- AC_PREFIX_DEFAULT(/usr/X),
-- AC_PREFIX_DEFAULT(/usr))
--AC_CHECK_FILE(/usr/X11R6/include/X11/X.h,
-- AC_PREFIX_DEFAULT(/usr/X11R6),
-- AC_PREFIX_DEFAULT(/usr))
-
- dnl AM_MAINTAINER_MODE
- AC_CANONICAL_TARGET
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openmotif/openmotif_2.3.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/openmotif/openmotif_2.3.3.bb
deleted file mode 100644
index 35c39cbe8..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/openmotif/openmotif_2.3.3.bb
+++ /dev/null
@@ -1,48 +0,0 @@
-SECTION = "libs"
-SUMMARY = "OSM/Motif implementation"
-LICENSE = "OGPL"
-DEPENDS = "xbitmaps virtual/libx11 libxt libxft xproto"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=14f692c82491db3d52419929d2f3b343"
-
-PR = "r3"
-
-PNBLACKLIST[openmotif] ?= "BROKEN: doesn't build with B!=S - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-
-SRC_URI = "http://motif.ics.com/sites/default/files/openmotif-2.3.3.tar.gz \
- file://configure.patch;patch=1"
-
-SRC_URI[md5sum] = "fd27cd3369d6c7d5ef79eccba524f7be"
-SRC_URI[sha256sum] = "c85f5545e218fa0c59a3789192132d472fc5a33e914a221a568eee4fc10cd103"
-
-inherit autotools
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg"
-PACKAGECONFIG[png] = "--enable-png,--disable-png,libpng"
-
-EXTRA_OECONF = "X_CFLAGS=-I${STAGING_INCDIR} --disable-printing"
-
-PACKAGES += "${PN}-bin"
-
-FILES_${PN}-bin = "${bindir}"
-
-do_compile() {
- (
- # HACK: build a native binaries need during the build
- unset CC LD CXX CCLD CFLAGS
- oe_runmake -C config/util CC="${BUILD_CC}" LD="${BUILD_LD}" CXX="${BUILD_CXX}" LIBS="" makestrs
- )
- if [ "$?" != "0" ]; then
- exit 1
- fi
- oe_runmake -C lib
- oe_runmake -C include
-}
-
-do_install() {
- oe_runmake DESTDIR=${D} -C lib install
- oe_runmake DESTDIR=${D} -C include install
-}
-
-LEAD_SONAME = "libXm.so.4"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opensync/libsyncml_0.5.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/opensync/libsyncml_0.5.4.bb
deleted file mode 100644
index ebf65c7cc..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/opensync/libsyncml_0.5.4.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Libsyncml is an implementation of the SyncML protocol"
-HOMEPAGE = "https://libsyncml.opensync.org/"
-SECTION = "libs"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=fad9b3332be894bab9bc501572864b29"
-
-DEPENDS = "libxml2 glib-2.0 libsoup-2.4 openobex wbxml2"
-
-# Depends on openobex
-PNBLACKLIST[libsyncml] ?= "${@bb.utils.contains('DISTRO_FEATURES', 'bluez5', 'bluez5 conflicts with bluez4 and bluez5 is selected in DISTRO_FEATURES', '', d)}"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/libsyncml/libsyncml-${PV}.tar.gz"
-SRC_URI[md5sum] = "84879ed7cb94618530fbcb801a1a4f95"
-SRC_URI[sha256sum] = "05d6513637adb1300a3a58b6e29d53ab6373c8f370807d0d925bae72b2920e53"
-
-inherit cmake pkgconfig
-
-PACKAGES += "${PN}-tools"
-
-FILES_${PN}-tools = "${bindir}"
-FILES_${PN} = "${libdir}/*.so.*"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem_3.2.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem_3.2.3.bb
deleted file mode 100644
index e9142385b..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem_3.2.3.bb
+++ /dev/null
@@ -1,115 +0,0 @@
-SUMMARY = "Web Based Enterprise Management (WBEM) Implementation"
-DESCRIPTION = "OpenWBEM is a set of software components that help facilitate \
-deployment of the Common Information Model (CIM) and Web-Based \
-Enterprise Management (WBEM) technologies of the Distributed Management \
-Task Force (DMTF). \
- \
-Web-Based Enterprise Management (WBEM) is a set of management and \
-Internet standard technologies developed to unify the management of \
-distributed computing environments. WBEM provides the ability for the \
-industry to deliver a well-integrated set of standards-based management \
-tools, facilitating the exchange of data across otherwise disparate \
-technologies and platforms. \
- \
-For more information about DMTF and its technologies, visit \
-http://www.dmtf.org/standards. "
-SECTION = "System/Management"
-HOMEPAGE = "http://openwbem.sourceforge.net/"
-
-inherit autotools-brokensep pkgconfig
-
-SOURCE1="novell-openwbem-root-acl.mof"
-SOURCE2="loadmof.sh"
-SOURCE3="rmmof.sh"
-SOURCE4="openwbem-owcimomd.init"
-SOURCE5="openwbem-etc_pam.d_openwbem"
-SOURCE6="openwbem-rpmlintrc"
-
-SRC_URI = " \
- git://github.com/kkaempf/openwbem.git \
- file://${SOURCE1} \
- file://${SOURCE2} \
- file://${SOURCE3} \
- file://${SOURCE4} \
- file://${SOURCE5} \
- file://${SOURCE6} \
- file://checkserverkey \
- file://owcimomd.service \
-"
-SRCREV = "5c688eefc1f8e35a4b1c58529aae5f114c25c2a8"
-S = "${WORKDIR}/git"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM += "file://COPYING;md5=0504a2eb85e01aa92c9efd4125a34660"
-INSANE_SKIP_${PN} = "dev-so"
-DEPENDS += "openssl libpam bash"
-RDEPENDS_${PN} += "bash"
-EXTRA_OECONF = " \
- --prefix=/usr \
- --sysconfdir=/etc \
- --libdir=${libdir} \
- --localstatedir=/var/lib \
- --libexecdir=${libdir}/openwbem/bin \
- --mandir=/usr/share/man \
- --enable-threads-run-as-user \
-"
-do_configure_prepend() {
- autoreconf --force --install
-}
-
-do_install() {
- oe_runmake DESTDIR=${D} install
- install -d ${D}/etc/openwbem/openwbem.conf.d
- install -d ${D}/var/adm/fillup-templates
- install -m 644 etc/sysconfig/daemons/owcimomd ${D}/var/adm/fillup-templates/sysconfig.owcimomd
-
- # fix up hardcoded paths
- sed -i -e 's,/usr/sbin/,${sbindir}/,' ${WORKDIR}/owcimomd.service
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
- install -d ${D}/${systemd_unitdir}/system
- install -m 644 ${WORKDIR}/owcimomd.service ${D}/${systemd_unitdir}/system
- install -m 755 ${WORKDIR}/checkserverkey ${D}${sysconfdir}/openwbem/
- fi
-
- install -d ${D}/etc/init.d
- ln -sf ../../etc/init.d/owcimomd ${D}/usr/sbin/rcowcimomd
- install -m 755 ${WORKDIR}/${SOURCE4} ${D}/etc/init.d/owcimomd
- install -d ${D}${sbindir}
- install -d ${D}/usr/bin
- install -d ${D}/etc/pam.d
- install -d ${D}/${libdir}/openwbem/cmpiproviders
- install -m 644 etc/pam.d/openwbem ${D}/etc/pam.d
- install -d ${D}/${libdir}/openwbem/c++providers
- install -d ${D}/var/lib/openwbem
- install -m 755 ${WORKDIR}/${SOURCE2} ${D}/usr/bin/ow-loadmof.sh
- install -m 755 ${WORKDIR}/${SOURCE3} ${D}/usr/bin/ow-rmmof.sh
- install -m 644 ${WORKDIR}/${SOURCE5} ${D}/etc/pam.d/openwbem
-
- MOFPATH=${D}/usr/share/mof/openwbem
- install -d $MOFPATH
- mv ${D}/usr/share/openwbem/* $MOFPATH/
- rmdir ${D}/usr/share/openwbem
- install -m 644 ${WORKDIR}/${SOURCE1} $MOFPATH/
-
- touch ${D}/var/lib/openwbem/{classassociation,instances,instassociation,namespaces,schema}.{dat,ndx,lock}
-}
-
-inherit ${@bb.utils.filter('VIRTUAL-RUNTIME_init_manager', 'systemd', d)}
-SYSTEMD_SERVICE_${PN} = "owcimomd.service"
-SYSTEMD_AUTO_ENABLE = "disable"
-FILES_${PN} += " \
- ${libdir} \
- ${datadir}/mof \
- ${systemd_unitdir} \
-"
-FILES_${PN}-dbg += " \
- ${libdir}/openwbem/c++providers/.debug \
- ${libdir}/openwbem/provifcs/.debug \
- ${libdir}/openwbem/bin/openwbem/.debug \
-"
-FILES_${PN}-dev = " \
- ${includedir} \
- ${datadir}/aclocal/openwbem.m4 \
-"
-
-# http://errors.yoctoproject.org/Errors/Details/68630/
-PNBLACKLIST[openwbem] ?= "BROKEN: fails to build with gcc-6 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pam-passwdqc/files/1000patch-219201.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/pam-passwdqc/files/1000patch-219201.patch
deleted file mode 100644
index 366d461eb..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/pam-passwdqc/files/1000patch-219201.patch
+++ /dev/null
@@ -1,156 +0,0 @@
-diff -urNp pam_passwdqc-1.0.5-orig/pam_passwdqc.c pam_passwdqc-1.0.5/pam_passwdqc.c
---- pam_passwdqc-1.0.5-orig/pam_passwdqc.c 2008-02-12 15:11:13.000000000 -0500
-+++ pam_passwdqc-1.0.5/pam_passwdqc.c 2009-09-28 12:10:32.171696694 -0400
-@@ -70,6 +70,8 @@ typedef struct {
- passwdqc_params_t qc;
- int flags;
- int retry;
-+ char oldpass_prompt_file[FILE_LEN+1];
-+ char newpass_prompt_file[FILE_LEN+1];
- } params_t;
-
- static params_t defaults = {
-@@ -79,10 +81,13 @@ static params_t defaults = {
- 3, /* passphrase_words */
- 4, /* match_length */
- 1, /* similar_deny */
-- 42 /* random_bits */
-+ 42, /* random_bits */
-+ 1 /* firstupper_lastdigit_check */
- },
- F_ENFORCE_EVERYONE, /* flags */
-- 3 /* retry */
-+ 3, /* retry */
-+ "", /* oldpass_prompt_file */
-+ "" /* newpass_prompt_file */
- };
-
- #define PROMPT_OLDPASS \
-@@ -361,6 +366,37 @@ static int parse(params_t *params, pam_h
- if (!strcmp(*argv, "use_authtok")) {
- params->flags |= F_USE_AUTHTOK;
- } else
-+ if (!strcmp(*argv, "disable_firstupper_lastdigit_check")) {
-+ params->qc.firstupper_lastdigit_check = 0;
-+ } else
-+ if (!strncmp(*argv, "oldpass_prompt_file=", 20)) {
-+ int n;
-+ FILE *fp = fopen(*argv + 20, "r");
-+ if (fp) {
-+ n=fread(params->oldpass_prompt_file, sizeof(char), FILE_LEN, fp);
-+ if (0==n || ferror(fp)!=0 ) {
-+ memset(params->oldpass_prompt_file, '\0', FILE_LEN+1);
-+ }
-+ else {
-+ feof(fp)? (params->oldpass_prompt_file[n-1]='\0'): (params->oldpass_prompt_file[n]='\0');
-+ }
-+ fclose(fp);
-+ }
-+ } else
-+ if (!strncmp(*argv, "newpass_prompt_file=", 20)) {
-+ int n;
-+ FILE *fp = fopen(*argv + 20, "r");
-+ if (fp) {
-+ n=fread(params->newpass_prompt_file, sizeof(char), FILE_LEN, fp);
-+ if (0==n || ferror(fp)!=0 ) {
-+ memset(params->newpass_prompt_file, '\0', FILE_LEN+1);
-+ }
-+ else {
-+ feof(fp)? (params->newpass_prompt_file[n-1]='\0'): (params->newpass_prompt_file[n]='\0');
-+ }
-+ fclose(fp);
-+ }
-+ } else
- break;
- argc--; argv++;
- }
-@@ -406,7 +442,7 @@ PAM_EXTERN int pam_sm_chauthtok(pam_hand
-
- if (ask_oldauthtok && !am_root(pamh)) {
- status = converse(pamh, PAM_PROMPT_ECHO_OFF,
-- PROMPT_OLDPASS, &resp);
-+ strlen(params.oldpass_prompt_file) ? params.oldpass_prompt_file : PROMPT_OLDPASS, &resp);
-
- if (status == PAM_SUCCESS) {
- if (resp && resp->resp) {
-@@ -540,8 +576,7 @@ retry:
- MESSAGE_RANDOMFAILED : MESSAGE_MISCONFIGURED);
- return PAM_AUTHTOK_ERR;
- }
--
-- status = converse(pamh, PAM_PROMPT_ECHO_OFF, PROMPT_NEWPASS1, &resp);
-+ status = converse(pamh, PAM_PROMPT_ECHO_OFF, strlen(params.newpass_prompt_file) ? params.newpass_prompt_file : PROMPT_NEWPASS1, &resp);
- if (status == PAM_SUCCESS && (!resp || !resp->resp))
- status = PAM_AUTHTOK_ERR;
-
-diff -urNp pam_passwdqc-1.0.5-orig/passwdqc_check.c pam_passwdqc-1.0.5/passwdqc_check.c
---- pam_passwdqc-1.0.5-orig/passwdqc_check.c 2008-02-12 14:31:52.000000000 -0500
-+++ pam_passwdqc-1.0.5/passwdqc_check.c 2009-09-25 22:45:16.080842425 -0400
-@@ -90,10 +90,12 @@ static int is_simple(passwdqc_params_t *
-
- /* Upper case characters and digits used in common ways don't increase the
- * strength of a password */
-- c = (unsigned char)newpass[0];
-- if (uppers && isascii(c) && isupper(c)) uppers--;
-- c = (unsigned char)newpass[length - 1];
-- if (digits && isascii(c) && isdigit(c)) digits--;
-+ if (params->firstupper_lastdigit_check) {
-+ c = (unsigned char)newpass[0];
-+ if (uppers && isascii(c) && isupper(c)) uppers--;
-+ c = (unsigned char)newpass[length - 1];
-+ if (digits && isascii(c) && isdigit(c)) digits--;
-+ }
-
- /* Count the number of different character classes we've seen. We assume
- * that there are no non-ASCII characters for digits. */
-diff -urNp pam_passwdqc-1.0.5-orig/passwdqc.h pam_passwdqc-1.0.5/passwdqc.h
---- pam_passwdqc-1.0.5-orig/passwdqc.h 2008-02-12 14:30:00.000000000 -0500
-+++ pam_passwdqc-1.0.5/passwdqc.h 2009-09-25 14:08:56.214695858 -0400
-@@ -7,12 +7,15 @@
-
- #include <pwd.h>
-
-+#define FILE_LEN 4096 /* Max file len = 4096 */
-+
- typedef struct {
- int min[5], max;
- int passphrase_words;
- int match_length;
- int similar_deny;
- int random_bits;
-+ int firstupper_lastdigit_check;
- } passwdqc_params_t;
-
- extern char _passwdqc_wordset_4k[0x1000][6];
-diff -urNp pam_passwdqc-1.0.5-orig/README pam_passwdqc-1.0.5/README
---- pam_passwdqc-1.0.5-orig/README 2008-02-12 14:43:33.000000000 -0500
-+++ pam_passwdqc-1.0.5/README 2009-09-28 12:12:40.251016423 -0400
-@@ -41,9 +41,12 @@ words (see the "passphrase" option below
- N3 and N4 are used for passwords consisting of characters from three
- and four character classes, respectively.
-
-+ disable_firstupper_lastdigit_check []
-+
- When calculating the number of character classes, upper-case letters
- used as the first character and digits used as the last character of a
--password are not counted.
-+password are not counted. To disable this, you can specify
-+"disable_firstupper_lastdigit_check".
-
- In addition to being sufficiently long, passwords are required to
- contain enough different characters for the character classes and
-@@ -142,6 +145,14 @@ This disables user interaction within pa
- the only difference between "use_first_pass" and "use_authtok" is that
- the former is incompatible with "ask_oldauthtok".
-
-+ oldpass_prompt_file=absolute-file-path []
-+ newpass_prompt_file=abosulte-file-path []
-+
-+The options "oldpass_prompt_file" and "newpass_prompt_file" can be used
-+to override prompts while requesting old password and new password,
-+respectively. The maximum size of the prompt files can be 4096
-+characters at present. If the file size is more than 4096 characters, the
-+output will be truncated to 4096 characters.
- --
- Solar Designer <solar at openwall.com>
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pam-passwdqc/files/7000Makefile-fix-CC.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/pam-passwdqc/files/7000Makefile-fix-CC.patch
deleted file mode 100644
index 536fba132..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/pam-passwdqc/files/7000Makefile-fix-CC.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- pam_passwdqc-1.0.5/Makefile.orig 2012-10-02 20:53:55.443592886 +0900
-+++ pam_passwdqc-1.0.5/Makefile 2012-10-02 20:54:19.076108001 +0900
-@@ -2,7 +2,7 @@
- # Copyright (c) 2000-2003,2005 by Solar Designer. See LICENSE.
- #
-
--CC = gcc
-+#CC = gcc
- LD = $(CC)
- RM = rm -f
- MKDIR = mkdir -p
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pam-passwdqc/pam-passwdqc_1.0.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/pam-passwdqc/pam-passwdqc_1.0.5.bb
deleted file mode 100644
index cb9aa22cf..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/pam-passwdqc/pam-passwdqc_1.0.5.bb
+++ /dev/null
@@ -1,38 +0,0 @@
-SUMMARY = "Pluggable password quality-control module."
-DESCRIPTION = "pam_passwdqc is a simple password strength checking module for \
-PAM-aware password changing programs, such as passwd(1). In addition \
-to checking regular passwords, it offers support for passphrases and \
-can provide randomly generated passwords. All features are optional \
-and can be (re-)configured without rebuilding."
-
-HOMEPAGE = "http://www.openwall.com/passwdqc/"
-SECTION = "System Environment/Base"
-
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=e284d013ef08e66d4737f446c5890550"
-
-SRC_URI = "http://www.openwall.com/pam/modules/pam_passwdqc/pam_passwdqc-1.0.5.tar.gz \
- file://1000patch-219201.patch \
- file://7000Makefile-fix-CC.patch \
-"
-SRC_URI[md5sum] = "cd9c014f736158b1a60384a8e2bdc28a"
-SRC_URI[sha256sum] = "32528ddf7d8219c788b6e7702361611ff16c6340b6dc0f418ff164aadc4a4a88"
-
-
-S = "${WORKDIR}/pam_passwdqc-${PV}"
-
-DEPENDS = "libpam"
-
-EXTRA_OEMAKE = "CFLAGS="${CFLAGS} -Wall -fPIC -DHAVE_SHADOW" \
- SECUREDIR=${base_libdir}/security \
-"
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-do_install() {
- oe_runmake install DESTDIR=${D}
-}
-
-FILES_${PN} += "${base_libdir}/security/pam_passwdqc.so"
-FILES_${PN}-dbg += "${base_libdir}/security/.debug"
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/passwdqc/passwdqc/makefile-add-ldflags.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/passwdqc/passwdqc/makefile-add-ldflags.patch
new file mode 100644
index 000000000..e9023492e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/passwdqc/passwdqc/makefile-add-ldflags.patch
@@ -0,0 +1,31 @@
+Add LDFLAGS variable to Makefile so that extra linker flags can be sent via this variable.
+
+Upstream-Status: Pending
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+
+diff --git a/Makefile b/Makefile
+index 49d622d..cd17334 100644
+--- a/Makefile
++++ b/Makefile
+@@ -48,18 +48,17 @@ CFLAGS = -Wall -W -O2
+ CFLAGS_lib = $(CFLAGS) -fPIC
+ CFLAGS_bin = $(CFLAGS) -fomit-frame-pointer
+
+-LDFLAGS =
+ LDFLAGS_shared = --shared
+ LDFLAGS_shared_LINUX = --shared
+ LDFLAGS_shared_SUN = -G
+ LDFLAGS_shared_HP = -b
+ LDFLAGS_lib = $(LDFLAGS_shared)
+-LDFLAGS_lib_LINUX = $(LDFLAGS_shared_LINUX) \
++LDFLAGS_lib_LINUX = $(LDFLAGS) $(LDFLAGS_shared_LINUX) \
+ -Wl,--soname,$(SHARED_LIB),--version-script,$(MAP_LIB)
+ LDFLAGS_lib_SUN = $(LDFLAGS_shared_SUN)
+ LDFLAGS_lib_HP = $(LDFLAGS_shared_HP)
+ LDFLAGS_pam = $(LDFLAGS_shared)
+-LDFLAGS_pam_LINUX = $(LDFLAGS_shared_LINUX) \
++LDFLAGS_pam_LINUX = $(LDFLAGS) $(LDFLAGS_shared_LINUX) \
+ -Wl,--version-script,$(MAP_PAM)
+ LDFLAGS_pam_SUN = $(LDFLAGS_shared_SUN)
+ LDFLAGS_pam_HP = $(LDFLAGS_shared_HP)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/passwdqc/passwdqc_1.3.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/passwdqc/passwdqc_1.3.1.bb
new file mode 100644
index 000000000..198db3ce7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/passwdqc/passwdqc_1.3.1.bb
@@ -0,0 +1,63 @@
+SUMMARY = "A password/passphrase strength checking and enforcement toolset"
+DESCRIPTION = "\
+passwdqc is a password/passphrase strength checking and policy enforcement \
+toolset, including an optional PAM module (pam_passwdqc), command-line \
+programs (pwqcheck and pwqgen), and a library (libpasswdqc). \
+pam_passwdqc is normally invoked on password changes by programs such as \
+passwd(1). It is capable of checking password or passphrase strength, \
+enforcing a policy, and offering randomly-generated passphrases, with \
+all of these features being optional and easily (re-)configurable. \
+\
+pwqcheck and pwqgen are standalone password/passphrase strength checking \
+and random passphrase generator programs, respectively, which are usable \
+from scripts. \
+\
+libpasswdqc is the underlying library, which may also be used from \
+third-party programs. \
+"
+
+HOMEPAGE = "http://www.openwall.com/passwdqc"
+SECTION = "System Environment/Base"
+
+DEPENDS += "libpam"
+
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1b4af6f3d4ee079a38107366e93b334d"
+
+SRC_URI = "http://www.openwall.com/${BPN}/${BP}.tar.gz \
+ file://makefile-add-ldflags.patch \
+ "
+SRC_URI[md5sum] = "3878b57bcd3fdbcf3d4b362dbc6228b9"
+SRC_URI[sha256sum] = "d1fedeaf759e8a0f32d28b5811ef11b5a5365154849190f4b7fab670a70ffb14"
+
+# explicitly define LINUX_PAM in case DISTRO_FEATURES no pam
+# this package's pam_passwdqc.so needs pam
+CFLAGS_append += "-Wall -fPIC -DHAVE_SHADOW -DLINUX_PAM"
+
+# -e is no longer default setting in bitbake.conf
+EXTRA_OEMAKE = "-e"
+
+do_compile() {
+ # make sure sub make use environment to override variables in Makefile
+ # Linux) $(MAKE), there is a tab between
+ sed -i -e 's/Linux) $(MAKE) CFLAGS_lib/Linux) $(MAKE) -e CFLAGS_lib/' ${S}/Makefile
+
+ # LD_lib and LD must be CC because of Makefile
+ oe_runmake LD="${CC}"
+}
+
+do_install() {
+ oe_runmake install DESTDIR=${D} SHARED_LIBDIR=${base_libdir} \
+ DEVEL_LIBDIR=${libdir} SECUREDIR=${base_libdir}/security \
+ INSTALL="install -p"
+}
+
+PROVIDES += "pam-${BPN}"
+PACKAGES =+ "lib${BPN} pam-${BPN}"
+
+FILES_lib${BPN} = "${base_libdir}/libpasswdqc.so.0"
+FILES_pam-${BPN} = "${base_libdir}/security/pam_passwdqc.so"
+FILES_${PN}-dbg += "${base_libdir}/security/.debug"
+
+RDEPENDS_${PN} = "lib${BPN} pam-${BPN}"
+RDEPENDS_pam-${BPN} = "lib${BPN}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.13.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.22.bb
index 0d2cb332a..90d58b00d 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.13.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.22.bb
@@ -8,12 +8,12 @@ LICENSE_${PN}-dev = "BSD"
LICENSE_${PN}-dbg = "BSD & GPLv3+"
LICENSE_${PN}-spy = "GPLv3+"
LICENSE_${PN}-spy-dev = "GPLv3+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=bcfbd85230ac3c586fb294c8b627cf32"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f38b3d1c7ef7fc2c8b6d20cd38efdc29"
DEPENDS = "udev"
-SRC_URI = "https://alioth.debian.org/frs/download.php/file/4126/pcsc-lite-${PV}.tar.bz2"
-SRC_URI[md5sum] = "4dcd22d20a6df8810fac5480cc320b6d"
-SRC_URI[sha256sum] = "f315047e808d63a3262c4a040f77548af2e04d1fd707e0c2759369b926fbbc3b"
+SRC_URI = "https://alioth.debian.org/frs/download.php/file/4225/pcsc-lite-${PV}.tar.bz2"
+SRC_URI[md5sum] = "0ec103b1ef298d0c58d6ef6b00b9cf17"
+SRC_URI[sha256sum] = "6a358f61ed3b66a7f6e1f4e794a94c7be4c81b7a58ec360c33791e8d7d9bd405"
inherit autotools systemd pkgconfig
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr/fix_qa-issue_include.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr/fix_qa-issue_include.patch
index b78663310..ecdbffb51 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr/fix_qa-issue_include.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr/fix_qa-issue_include.patch
@@ -11,8 +11,8 @@ Signed-off-by: Jakob Drexel <jake42@rommel.stw.uni-erlangen.de>
--- a/toolkit/Makefile.am 2012-05-03 15:52:22.000000000 +0200
+++ b/toolkit/Makefile.am 2014-01-13 12:12:26.030369357 +0100
@@ -1,4 +1,4 @@
--INCLUDES = -I$(includedir) -I../src @LIBGCRYPT_CFLAGS@
-+INCLUDES = -I../src @LIBGCRYPT_CFLAGS@
+-AM_CPPFLAGS = -I$(includedir) -I../src @LIBGCRYPT_CFLAGS@
++AM_CPPFLAGS = -I../src @LIBGCRYPT_CFLAGS@
noinst_HEADERS = aes.h ctrmode.h parse.h sesskeys.h readotr.h sha1hmac.h
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr/sepbuild.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr/sepbuild.patch
index f66e52881..dda17a957 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr/sepbuild.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr/sepbuild.patch
@@ -9,8 +9,8 @@ Index: libotr-4.0.0/toolkit/Makefile.am
--- libotr-4.0.0.orig/toolkit/Makefile.am 2014-07-16 18:09:59.777858022 +0000
+++ libotr-4.0.0/toolkit/Makefile.am 2014-07-17 06:28:51.359066155 +0000
@@ -1,4 +1,4 @@
--INCLUDES = -I../src @LIBGCRYPT_CFLAGS@
-+INCLUDES = -I$(top_srcdir)/src @LIBGCRYPT_CFLAGS@
+-AM_CPPFLAGS = -I../src @LIBGCRYPT_CFLAGS@
++AM_CPPFLAGS = -I$(top_srcdir)/src @LIBGCRYPT_CFLAGS@
noinst_HEADERS = aes.h ctrmode.h parse.h sesskeys.h readotr.h sha1hmac.h
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr_4.0.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr_4.1.1.bb
index dd9eeab7a..c70124421 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr_4.0.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr_4.1.1.bb
@@ -9,7 +9,7 @@ SRC_URI = "http://www.cypherpunks.ca/otr/${BP}.tar.gz \
file://sepbuild.patch \
"
-SRC_URI[md5sum] = "00979dca82d70383fcd1b01f3974363c"
-SRC_URI[sha256sum] = "3f911994409898e74527730745ef35ed75c352c695a1822a677a34b2cf0293b4"
+SRC_URI[md5sum] = "dac5a8778a35f674c046ddf5d97e4d81"
+SRC_URI[sha256sum] = "8b3b182424251067a952fb4e6c7b95a21e644fbb27fbd5f8af2b2ed87ca419f5"
inherit autotools pkgconfig
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr/ignore_extra-portability_warnings.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr/ignore_extra-portability_warnings.patch
deleted file mode 100644
index db0ad873b..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr/ignore_extra-portability_warnings.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-pidgin-otr: Silence no-extra-portability warnings
-
-Make it build with OE, was not building with warning turned on
-
-Upstream-Status: Pending
-
-Signed-off-by: Jakob Drexel <jake42@rommel.stw.uni-erlangen.de>
-
---- a/configure.ac 2012-09-01 17:03:19.000000000 +0200
-+++ b/configure.ac 2014-01-12 21:59:24.920300215 +0100
-@@ -4,7 +4,7 @@
-
- AM_CONFIG_HEADER(config.h)
-
--AM_INIT_AUTOMAKE([-Wall -Werror])
-+AM_INIT_AUTOMAKE([-Wall -Werror -Wno-extra-portability])
-
- AC_PROG_CC
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr_4.0.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr_4.0.0.bb
deleted file mode 100644
index 47cdc7242..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr_4.0.0.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "(OTR) Messaging allows you to have private conversations over instant messaging"
-HOMEPAGE = "http://www.cypherpunks.ca/otr/"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=92fe174bad6da3763f6e9e9eaff6df24"
-DEPENDS = "libgcrypt libotr pidgin intltool-native"
-
-PNBLACKLIST[pidgin-otr] ?= "depends on blacklisted pidgin - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-
-SRC_URI = "http://www.cypherpunks.ca/otr/${BP}.tar.gz \
- file://ignore_extra-portability_warnings.patch \
-"
-
-SRC_URI[md5sum] = "eadb953376acc474e56041d4c12aa2c8"
-SRC_URI[sha256sum] = "d56b3f092dbe9ee6597641c7d2dd294884dc04ba47aaf4ec571cd54977df4691"
-
-
-FILES_${PN} = "${libdir}/pidgin/*"
-FILES_${PN}-dbg = "${libdir}/pidgin/.debug"
-FILES_${PN}-dbg += "${libdir}/pidgin/.debug/pidgin-otr.so"
-FILES_${PN}-dbg += "/usr/src/debug/pidgin-otr/${PV}-${PR}/${P}/*"
-inherit autotools pkgconfig
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr_4.0.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr_4.0.2.bb
new file mode 100644
index 000000000..5a21cd3fc
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr_4.0.2.bb
@@ -0,0 +1,15 @@
+SUMMARY = "(OTR) Messaging allows you to have private conversations over instant messaging"
+HOMEPAGE = "https://otr.cypherpunks.ca/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=92fe174bad6da3763f6e9e9eaff6df24"
+DEPENDS = "libgcrypt libotr pidgin gtk+ intltool-native glib-2.0 glib-2.0-native"
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI = "https://otr.cypherpunks.ca/${BP}.tar.gz \
+"
+SRC_URI[md5sum] = "7ef14e1334a4bc80e5d530f9a3cfc626"
+SRC_URI[sha256sum] = "f4b59eef4a94b1d29dbe0c106dd00cdc630e47f18619fc754e5afbf5724ebac4"
+
+FILES_${PN} = "${libdir}/pidgin/*"
+
+inherit autotools pkgconfig distro_features_check
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.11.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.12.0.bb
index 462e21c92..088f08b7d 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.11.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.12.0.bb
@@ -13,8 +13,8 @@ SRC_URI = "\
file://pidgin-cross-python-265.patch \
"
-SRC_URI[md5sum] = "7b167474db669aab2f71fa46835fb83f"
-SRC_URI[sha256sum] = "f72613440586da3bdba6d58e718dce1b2c310adf8946de66d8077823e57b3333"
+SRC_URI[md5sum] = "8287400c4e5663e0e7844e868d5152af"
+SRC_URI[sha256sum] = "8c3d3536d6d3c971bd433ff9946678af70a0f6aa4e6969cc2a83bb357015b7f8"
PACKAGECONFIG ??= "gnutls consoleui avahi dbus idn nss \
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 gtk startup-notification', '', d)} \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/poco/poco_1.7.8.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/poco/poco_1.7.9.bb
index 1b837354e..ac6573507 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/poco/poco_1.7.8.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/poco/poco_1.7.9.bb
@@ -12,9 +12,9 @@ inherit cmake ptest
BBCLASSEXTEND = "native"
-SRCREV = "aae9c2e0f64caf019d31ba8f97635d5656b25ba5"
+SRCREV = "bfbe6a328744eaa84cb443b93ee20947aa0be91f"
SRC_URI = " \
- git://github.com/pocoproject/poco.git;branch=poco-${PV} \
+ git://github.com/pocoproject/poco.git;branch=master \
file://run-ptest \
"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.53.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.57.0.bb
index c1bfb31e7..63b77aafe 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.53.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.57.0.bb
@@ -7,15 +7,15 @@ SRC_URI = " \
file://0001-add-manadatory-options-to-find-qt4-qt5-moc.patch \
file://0002-fix-gcc-6-math-ambiguous-errors.patch \
"
-SRC_URI[md5sum] = "943679f1030b9bc19a989f24121a282a"
-SRC_URI[sha256sum] = "592bf72960c6b5948b67657594b05e72d9a278daf7613c9f3cdff9a5b73096a8"
+SRC_URI[md5sum] = "bc5a191741604552c90d484103229374"
+SRC_URI[sha256sum] = "0ea37de71b7db78212ebc79df59f99b66409a29c2eac4d882dae9f2397fe44d8"
DEPENDS = "fontconfig zlib cairo lcms"
inherit autotools pkgconfig gtk-doc gobject-introspection
PACKAGECONFIG ??= "jpeg openjpeg png tiff nss ${@bb.utils.contains('BBFILE_COLLECTIONS', 'qt5-layer', 'qt5', '', d)}"
-PACKAGECONFIG[jpeg] = "--enable-libjpeg,--disable-libjpeg,jpeg"
+PACKAGECONFIG[jpeg] = "--enable-dctdecoder=libjpeg,--enable-dctdecoder=none,jpeg"
PACKAGECONFIG[png] = "--enable-libpng,--disable-libpng,libpng"
PACKAGECONFIG[tiff] = "--enable-libtiff,--disable-libtiff,tiff"
PACKAGECONFIG[curl] = "--enable-libcurl,--disable-libcurl,curl"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/postgresql_9.4.11.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/postgresql_9.4.11.bb
deleted file mode 100644
index e4d2edad0..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/postgresql_9.4.11.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-require postgresql.inc
-
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=81b69ddb31a8be66baafd14a90146ee2"
-
-SRC_URI += "\
- file://remove.autoconf.version.check.patch \
- file://not-check-libperl.patch \
-"
-
-SRC_URI[md5sum] = "2fee03f2034034dbfcb3321a0bb0f829"
-SRC_URI[sha256sum] = "e3eb51d045c180b03d2de1f0c3af9356e10be49448e966ca01dfc2c6d1cc9d23"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/postgresql_9.4.15.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/postgresql_9.4.15.bb
new file mode 100644
index 000000000..eec099a12
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/postgresql_9.4.15.bb
@@ -0,0 +1,15 @@
+require postgresql.inc
+
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=81b69ddb31a8be66baafd14a90146ee2"
+
+SRC_URI += "\
+ file://remove.autoconf.version.check.patch \
+ file://not-check-libperl.patch \
+"
+
+do_compile_prepend_libc-musl() {
+ sed -i -e 's/\-lnsl//g' ${B}/src/Makefile.global
+}
+
+SRC_URI[md5sum] = "0aada0833a9208ae5fab966c73c39379"
+SRC_URI[sha256sum] = "12bfb3c7e8e45515ef921ad365e122682a5c4935dcc0032644433af2de31acc4"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pps-tools/pps-tools_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/pps-tools/pps-tools_git.bb
index 73c46eecd..8bf903699 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/pps-tools/pps-tools_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pps-tools/pps-tools_git.bb
@@ -1,4 +1,5 @@
SUMMARY = "User-space tools for LinuxPPS"
+HOMEPAGE = "http://linuxpps.org"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/psqlodbc/psqlodbc_09.05.0300.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/psqlodbc/psqlodbc_09.05.0300.bb
index 97326a20e..6e1c8ab4a 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/psqlodbc/psqlodbc_09.05.0300.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/psqlodbc/psqlodbc_09.05.0300.bb
@@ -12,5 +12,3 @@ SRC_URI = "http://ftp.postgresql.org/pub/odbc/versions/src/${BPN}-${PV}.tar.gz \
SRC_URI[md5sum] = "4c6e0b22187d7bb1c998ffac89e50f6b"
SRC_URI[sha256sum] = "9521f328bf28aaaf5c8488dc89792b614f9d6271742c0baf9bb41c97537764a8"
-
-PNBLACKLIST[psqlodbc] ?= "Depends on blacklisted postgresql - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/re2c/re2c/configure.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/re2c/re2c/configure.patch
deleted file mode 100644
index 8ca0969ad..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/re2c/re2c/configure.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Modernise configure to work with modern automake.
-
-RP 2014/7/14
-
-Upstream-Status: Pending
-
-Index: re2c-0.13.5/configure.in
-===================================================================
---- re2c-0.13.5.orig/configure.in 2008-05-25 14:42:34.000000000 +0000
-+++ re2c-0.13.5/configure.in 2014-07-17 14:10:40.595821292 +0000
-@@ -1,6 +1,6 @@
- AC_PREREQ([2.57])
- AC_INIT(re2c, 0.13.5, re2c-general@lists.sourceforge.net)
--AM_INIT_AUTOMAKE(re2c, $PACKAGE_VERSION)
-+AM_INIT_AUTOMAKE([foreign])
- AC_CONFIG_SRCDIR(actions.cc)
- AM_CONFIG_HEADER(config.h)
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/re2c/re2c_0.13.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/re2c/re2c_0.13.5.bb
deleted file mode 100644
index dcac940f8..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/re2c/re2c_0.13.5.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Tool for writing very fast and very flexible scanners"
-HOMEPAGE = "http://re2c.sourceforge.net/"
-AUTHOR = "Marcus Börger <helly@users.sourceforge.net>"
-SECTION = "devel"
-LICENSE = "PD"
-LIC_FILES_CHKSUM = "file://README;beginline=180;md5=822830a2204aef353f2c489f62e02089"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \
- file://configure.patch"
-SRC_URI[md5sum] = "4a97d8f77ed6d2c76c8bd840a43f5633"
-SRC_URI[sha256sum] = "f3a995139af475e80a30207d02728b1e0065b0caade7375e974cb1b14861668c"
-
-BBCLASSEXTEND = "native"
-
-inherit autotools
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/satyr/files/0001-do-not-support-python2.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/satyr/files/0001-do-not-support-python2.patch
new file mode 100644
index 000000000..9e95a3f9d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/satyr/files/0001-do-not-support-python2.patch
@@ -0,0 +1,84 @@
+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/import-layers/meta-openembedded/meta-oe/recipes-support/satyr/files/0002-fix-compile-failure-against-musl-C-library.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/satyr/files/0002-fix-compile-failure-against-musl-C-library.patch
new file mode 100644
index 000000000..5827eb4d1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/satyr/files/0002-fix-compile-failure-against-musl-C-library.patch
@@ -0,0 +1,28 @@
+From 23f827ea94284656972652f61f2c6aad96092cc8 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Thu, 20 Jul 2017 23:00:29 -0400
+Subject: [PATCH] fix compile failure against musl C library
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ lib/rpm.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/rpm.c b/lib/rpm.c
+index 920e145..58140bf 100644
+--- a/lib/rpm.c
++++ b/lib/rpm.c
+@@ -188,7 +188,7 @@ sr_rpm_package_sort(struct sr_rpm_package *packages)
+ }
+
+ /* Sort the array. */
+- qsort(array, count, sizeof(struct sr_rpm_package*), (comparison_fn_t)cmp_nevra_qsort_wrapper);
++ qsort(array, count, sizeof(struct sr_rpm_package*), cmp_nevra_qsort_wrapper);
+
+ /* Create a linked list from the sorted array. */
+ for (size_t loop = 0; loop < count; ++loop)
+--
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.23.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.23.bb
new file mode 100644
index 000000000..f795c3717
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.23.bb
@@ -0,0 +1,33 @@
+DESCRIPTION = "Satyr is a collection of low-level algorithms for program \
+failure processing, analysis, and reporting supporting kernel space, user \
+space, Python, and Java programs"
+
+HOMEPAGE = "https://github.com/abrt/satyr"
+LICENSE = "GPLv2"
+
+inherit autotools-brokensep python3native pkgconfig
+
+SRC_URI = "git://github.com/abrt/satyr.git \
+ file://0001-do-not-support-python2.patch \
+ file://0002-fix-compile-failure-against-musl-C-library.patch \
+"
+SRCREV = "4742fd4857c446b96f712d52e2e4cd0b6cfe7398"
+S = "${WORKDIR}/git"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+DEPENDS += " \
+ gdb \
+"
+
+PACKAGES += "python3-${PN}"
+FILES_python3-${PN} = "${PYTHON_SITEPACKAGES_DIR}/${BPN}"
+
+PACKAGECONFIG ??= "python3 rpm"
+PACKAGECONFIG[python3] = "--with-python3, --without-python3,,python3"
+PACKAGECONFIG[pythonmanpage] = "--enable-python-manpage, --disable-python-manpage"
+PACKAGECONFIG[rpm] = "--with-rpm, --without-rpm, rpm"
+
+do_configure_prepend() {
+ ${S}/gen-version
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.10.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.10.bb
index 8ab2819d3..3299a77aa 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.10.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.10.bb
@@ -10,6 +10,7 @@ DEPENDS="sg3-utils"
SRC_URI = "http://sg.danny.cz/sg/p/${BPN}-${PV}.tgz \
file://make-sysroot-work.patch \
"
+MIRRORS += "http://sg.danny.cz/sg/p https://fossies.org/linux/misc"
PACKAGES =+ "${PN}-scripts"
RDEPENDS_${PN}-scripts += "bash ${PN}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/serial-utils/serial-forward/0001-serial_forward-Disable-default-static-linking.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/serial-utils/serial-forward/0001-serial_forward-Disable-default-static-linking.patch
new file mode 100644
index 000000000..7dcc67d11
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/serial-utils/serial-forward/0001-serial_forward-Disable-default-static-linking.patch
@@ -0,0 +1,29 @@
+From a0d815ad9918aba977aed9275b3bf3d750a1709b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 30 Aug 2017 19:24:40 -0700
+Subject: [PATCH] serial_forward: Disable default static linking
+
+This does not work with ssp turned on with hardening flags on musl
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ tools/serial_forward/src/Makefile.am | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/tools/serial_forward/src/Makefile.am b/tools/serial_forward/src/Makefile.am
+index 3f598286..bcac9bc9 100644
+--- a/tools/serial_forward/src/Makefile.am
++++ b/tools/serial_forward/src/Makefile.am
+@@ -20,9 +20,6 @@ serial_forward_SOURCES = \
+ cy8mrln.h \
+ $(NULL)
+
+-serial_forward_LDFLAGS = \
+- -all-static
+-
+ pty_forward_SOURCES = \
+ pty_forward.c \
+ $(NULL)
+--
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/serial-utils/serial-forward_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/serial-utils/serial-forward_git.bb
index 6494de9d3..0ef829856 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/serial-utils/serial-forward_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/serial-utils/serial-forward_git.bb
@@ -3,10 +3,12 @@ AUTHOR = "Holger 'Zecke' Freyther'"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=ebb5c50ab7cab4baeffba14977030c07"
SECTION = "console/devel"
-SRCREV = "00dbec2636ae0385ad028587e20e446272ff97ec"
+SRCREV = "07c6fdede0870edc37a8d51d033b6e7e29aa7c91"
PV = "1.1+gitr${SRCPV}"
-SRC_URI = "git://github.com/freesmartphone/cornucopia.git"
+SRC_URI = "git://github.com/freesmartphone/cornucopia.git \
+ file://0001-serial_forward-Disable-default-static-linking.patch;striplevel=3 \
+ "
S = "${WORKDIR}/git/tools/serial_forward"
inherit autotools
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.42.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.42.bb
index a11bd77a0..c7de05740 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.42.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.42.bb
@@ -9,6 +9,7 @@ LICENSE = "GPLv2+ & BSD"
LIC_FILES_CHKSUM = "file://COPYING;md5=f90da7fc52172599dbf082d7620f18ca"
SRC_URI = "http://sg.danny.cz/sg/p/sg3_utils-${PV}.tgz"
+MIRRORS += "http://sg.danny.cz/sg/p https://fossies.org/linux/misc"
SRC_URI[md5sum] = "28080de5bf2222f8b55a29093bec8aea"
SRC_URI[sha256sum] = "1dcb7a0309bd0ba3d4a83acb526973b80106ee26cd9f7398186cd3f0633c9ef3"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0001-Use-pragma-once-unconditionally.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0001-Use-pragma-once-unconditionally.patch
new file mode 100644
index 000000000..ef6ae00e3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0001-Use-pragma-once-unconditionally.patch
@@ -0,0 +1,872 @@
+From 3100e23c50e38bff0c2ec77bc30049c113c29414 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 16 Jun 2017 20:44:31 -0700
+Subject: [PATCH 1/6] Use pragma once unconditionally
+
+in OE we do not worry about supporting
+gcc 3.4 anyway
+
+Upstream-Status: Inappropriate[Bumps required gcc to be > 3.4]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/efi/efi.h | 2 --
+ lib/engine/ahci.h | 2 --
+ lib/engine/ahci_cdrom.h | 2 --
+ lib/engine/ahci_disk.h | 2 --
+ lib/engine/ahci_multiplier.h | 2 --
+ lib/engine/ahci_multiplier_phy.h | 2 --
+ lib/engine/ahci_multiplier_port.h | 2 --
+ lib/engine/ahci_phy.h | 2 --
+ lib/engine/ahci_port.h | 2 --
+ lib/engine/ahci_raid_info.h | 2 --
+ lib/engine/ahci_tape.h | 2 --
+ lib/engine/array.h | 2 --
+ lib/engine/block_device.h | 2 --
+ lib/engine/cache.h | 2 --
+ lib/engine/container.h | 2 --
+ lib/engine/context_manager.h | 2 --
+ lib/engine/controller.h | 2 --
+ lib/engine/enclosure.h | 2 --
+ lib/engine/end_device.h | 2 --
+ lib/engine/event.h | 2 --
+ lib/engine/event_manager.h | 2 --
+ lib/engine/exception.h | 2 --
+ lib/engine/filesystem.h | 2 --
+ lib/engine/isci.h | 2 --
+ lib/engine/isci_cdrom.h | 2 --
+ lib/engine/isci_disk.h | 2 --
+ lib/engine/isci_expander.h | 2 --
+ lib/engine/isci_expander_phy.h | 2 --
+ lib/engine/isci_expander_port.h | 2 --
+ lib/engine/isci_phy.h | 2 --
+ lib/engine/isci_port.h | 2 --
+ lib/engine/isci_raid_info.h | 2 --
+ lib/engine/isci_tape.h | 2 --
+ lib/engine/list.h | 2 --
+ lib/engine/mdadm_config.h | 2 --
+ lib/engine/multimedia_device.h | 2 --
+ lib/engine/nondisk_device.h | 2 --
+ lib/engine/object.h | 2 --
+ lib/engine/pci_header.h | 2 --
+ lib/engine/phy.h | 2 --
+ lib/engine/port.h | 2 --
+ lib/engine/raid_device.h | 2 --
+ lib/engine/raid_info.h | 2 --
+ lib/engine/remote_port.h | 2 --
+ lib/engine/routing_device.h | 2 --
+ lib/engine/session.h | 2 --
+ lib/engine/session_manager.h | 2 --
+ lib/engine/storage_device.h | 2 --
+ lib/engine/stream_device.h | 2 --
+ lib/engine/string.h | 2 --
+ lib/engine/unique_id_manager.h | 2 --
+ lib/engine/utils.h | 2 --
+ lib/engine/volume.h | 2 --
+ lib/log/log.h | 2 --
+ lib/mpb/machine_bytes.h | 2 --
+ lib/mpb/mpb.h | 2 --
+ lib/orom/orom.h | 2 --
+ 57 files changed, 114 deletions(-)
+
+diff --git a/lib/efi/efi.h b/lib/efi/efi.h
+index 9e7e41b..804e567 100644
+--- a/lib/efi/efi.h
++++ b/lib/efi/efi.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __EFI_H__INCLUDED__
+ #define __EFI_H__INCLUDED__
+diff --git a/lib/engine/ahci.h b/lib/engine/ahci.h
+index e883d1a..80a9699 100644
+--- a/lib/engine/ahci.h
++++ b/lib/engine/ahci.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __AHCI_H__INCLUDED__
+ #define __AHCI_H__INCLUDED__
+diff --git a/lib/engine/ahci_cdrom.h b/lib/engine/ahci_cdrom.h
+index 442f301..d8ca042 100644
+--- a/lib/engine/ahci_cdrom.h
++++ b/lib/engine/ahci_cdrom.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __AHCI_CDROM_H__INCLUDED__
+ #define __AHCI_CDROM_H__INCLUDED__
+diff --git a/lib/engine/ahci_disk.h b/lib/engine/ahci_disk.h
+index 7892a53..1bad9ad 100644
+--- a/lib/engine/ahci_disk.h
++++ b/lib/engine/ahci_disk.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __AHCI_DISK_H__INCLUDED__
+ #define __AHCI_DISK_H__INCLUDED__
+diff --git a/lib/engine/ahci_multiplier.h b/lib/engine/ahci_multiplier.h
+index d63e9bc..1029af2 100644
+--- a/lib/engine/ahci_multiplier.h
++++ b/lib/engine/ahci_multiplier.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __AHCI_MULTIPLIER_H__INCLUDED__
+ #define __AHCI_MULTIPLIER_H__INCLUDED__
+diff --git a/lib/engine/ahci_multiplier_phy.h b/lib/engine/ahci_multiplier_phy.h
+index 58ecebc..2132c23 100644
+--- a/lib/engine/ahci_multiplier_phy.h
++++ b/lib/engine/ahci_multiplier_phy.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __AHCI_MULTIPLIER_PHY_H__INCLUDED__
+ #define __AHCI_MULTIPLIER_PHY_H__INCLUDED__
+diff --git a/lib/engine/ahci_multiplier_port.h b/lib/engine/ahci_multiplier_port.h
+index 5ff4cf7..2402473 100644
+--- a/lib/engine/ahci_multiplier_port.h
++++ b/lib/engine/ahci_multiplier_port.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __AHCI_MULTIPLIER_PORT_H__INCLUDED__
+ #define __AHCI_MULTIPLIER_PORT_H__INCLUDED__
+diff --git a/lib/engine/ahci_phy.h b/lib/engine/ahci_phy.h
+index e2254e7..a44dae0 100644
+--- a/lib/engine/ahci_phy.h
++++ b/lib/engine/ahci_phy.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __AHCI_PHY_H__INCLUDED__
+ #define __AHCI_PHY_H__INCLUDED__
+diff --git a/lib/engine/ahci_port.h b/lib/engine/ahci_port.h
+index f9e3308..03c109b 100644
+--- a/lib/engine/ahci_port.h
++++ b/lib/engine/ahci_port.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __AHCI_PORT_H__INCLUDED__
+ #define __AHCI_PORT_H__INCLUDED__
+diff --git a/lib/engine/ahci_raid_info.h b/lib/engine/ahci_raid_info.h
+index e1c81ae..c70e63e 100644
+--- a/lib/engine/ahci_raid_info.h
++++ b/lib/engine/ahci_raid_info.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __AHCI_RAID_INFO_H__INCLUDED__
+ #define __AHCI_RAID_INFO_H__INCLUDED__
+diff --git a/lib/engine/ahci_tape.h b/lib/engine/ahci_tape.h
+index cdd9f13..a91fd2c 100644
+--- a/lib/engine/ahci_tape.h
++++ b/lib/engine/ahci_tape.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __AHCI_TAPE_H__INCLUDED__
+ #define __AHCI_TAPE_H__INCLUDED__
+diff --git a/lib/engine/array.h b/lib/engine/array.h
+index 36fb4a4..0986ce3 100644
+--- a/lib/engine/array.h
++++ b/lib/engine/array.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __ARRAY_H__INCLUDED__
+ #define __ARRAY_H__INCLUDED__
+diff --git a/lib/engine/block_device.h b/lib/engine/block_device.h
+index 4503914..45dd3db 100644
+--- a/lib/engine/block_device.h
++++ b/lib/engine/block_device.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __BLOCK_DEVICE_H__INCLUDED__
+ #define __BLOCK_DEVICE_H__INCLUDED__
+diff --git a/lib/engine/cache.h b/lib/engine/cache.h
+index 72cf521..72da20b 100644
+--- a/lib/engine/cache.h
++++ b/lib/engine/cache.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3,4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __CACHE_H__INCLUDED__
+ #define __CACHE_H__INCLUDED__
+diff --git a/lib/engine/container.h b/lib/engine/container.h
+index 53867b0..c71180c 100644
+--- a/lib/engine/container.h
++++ b/lib/engine/container.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3,4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __CONTAINER_H__INCLUDED__
+ #define __CONTAINER_H__INCLUDED__
+diff --git a/lib/engine/context_manager.h b/lib/engine/context_manager.h
+index fe9c256..6b4a2e7 100644
+--- a/lib/engine/context_manager.h
++++ b/lib/engine/context_manager.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3,4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __CONTEXT_H__INCLUDED__
+ #define __CONTEXT_H__INCLUDED__
+diff --git a/lib/engine/controller.h b/lib/engine/controller.h
+index a2f188a..6bd078f 100644
+--- a/lib/engine/controller.h
++++ b/lib/engine/controller.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __CONTROLLER_H__INCLUDED__
+ #define __CONTROLLER_H__INCLUDED__
+diff --git a/lib/engine/enclosure.h b/lib/engine/enclosure.h
+index 3faef0c..f4b13cc 100644
+--- a/lib/engine/enclosure.h
++++ b/lib/engine/enclosure.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __ENCLOSURE_H__INCLUDED__
+ #define __ENCLOSURE_H__INCLUDED__
+diff --git a/lib/engine/end_device.h b/lib/engine/end_device.h
+index f147e41..269b236 100644
+--- a/lib/engine/end_device.h
++++ b/lib/engine/end_device.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __END_DEVICE_H__INCLUDED__
+ #define __END_DEVICE_H__INCLUDED__
+diff --git a/lib/engine/event.h b/lib/engine/event.h
+index cf9bb4f..11a4926 100644
+--- a/lib/engine/event.h
++++ b/lib/engine/event.h
+@@ -12,9 +12,7 @@ Redistribution and use in source and binary forms, with or without modification,
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __EVENT_H__INCLUDED__
+ #define __EVENT_H__INCLUDED__
+diff --git a/lib/engine/event_manager.h b/lib/engine/event_manager.h
+index 65007b9..a7a8fc3 100644
+--- a/lib/engine/event_manager.h
++++ b/lib/engine/event_manager.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __EVENT_MANAGER_H__INCLUDED__
+ #define __EVENT_MANAGER_H__INCLUDED__
+diff --git a/lib/engine/exception.h b/lib/engine/exception.h
+index 171e45d..183ebb5 100644
+--- a/lib/engine/exception.h
++++ b/lib/engine/exception.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __EXCEPTION_H__INCLUDED__
+ #define __EXCEPTION_H__INCLUDED__
+diff --git a/lib/engine/filesystem.h b/lib/engine/filesystem.h
+index 9c2ce39..b49df07 100644
+--- a/lib/engine/filesystem.h
++++ b/lib/engine/filesystem.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __FILESYSTEM_H__INCLUDED__
+ #define __FILESYSTEM_H__INCLUDED__
+diff --git a/lib/engine/isci.h b/lib/engine/isci.h
+index ea35cd4..0fa602a 100644
+--- a/lib/engine/isci.h
++++ b/lib/engine/isci.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __ISCI_H__INCLUDED__
+ #define __ISCI_H__INCLUDED__
+diff --git a/lib/engine/isci_cdrom.h b/lib/engine/isci_cdrom.h
+index 87b7e7b..25637f9 100644
+--- a/lib/engine/isci_cdrom.h
++++ b/lib/engine/isci_cdrom.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __ISCI_CDROM_H__INCLUDED__
+ #define __ISCI_CDROM_H__INCLUDED__
+diff --git a/lib/engine/isci_disk.h b/lib/engine/isci_disk.h
+index 596c3cf..8dd0dae 100644
+--- a/lib/engine/isci_disk.h
++++ b/lib/engine/isci_disk.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __ISCI_DISK_H__INCLUDED__
+ #define __ISCI_DISK_H__INCLUDED__
+diff --git a/lib/engine/isci_expander.h b/lib/engine/isci_expander.h
+index ca7c2f1..7dc1920 100644
+--- a/lib/engine/isci_expander.h
++++ b/lib/engine/isci_expander.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __ISCI_EXPANDER_H__INCLUDED__
+ #define __ISCI_EXPANDER_H__INCLUDED__
+diff --git a/lib/engine/isci_expander_phy.h b/lib/engine/isci_expander_phy.h
+index c9cd770..d3d2832 100644
+--- a/lib/engine/isci_expander_phy.h
++++ b/lib/engine/isci_expander_phy.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __ISCI_EXPANDER_PHY_H__INCLUDED__
+ #define __ISCI_EXPANDER_PHY_H__INCLUDED__
+diff --git a/lib/engine/isci_expander_port.h b/lib/engine/isci_expander_port.h
+index e65a124..4fc9310 100644
+--- a/lib/engine/isci_expander_port.h
++++ b/lib/engine/isci_expander_port.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __ISCI_EXPANDER_PORT_H__INCLUDED__
+ #define __ISCI_EXPANDER_PORT_H__INCLUDED__
+diff --git a/lib/engine/isci_phy.h b/lib/engine/isci_phy.h
+index 767a5b2..105c697 100644
+--- a/lib/engine/isci_phy.h
++++ b/lib/engine/isci_phy.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __ISCI_PHY_H__INCLUDED__
+ #define __ISCI_PHY_H__INCLUDED__
+diff --git a/lib/engine/isci_port.h b/lib/engine/isci_port.h
+index b80be7f..5ccc151 100644
+--- a/lib/engine/isci_port.h
++++ b/lib/engine/isci_port.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __ISCI_PORT_H__INCLUDED__
+ #define __ISCI_PORT_H__INCLUDED__
+diff --git a/lib/engine/isci_raid_info.h b/lib/engine/isci_raid_info.h
+index 1df6477..b0b046a 100644
+--- a/lib/engine/isci_raid_info.h
++++ b/lib/engine/isci_raid_info.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __ISCI_RAID_INFO_H__INCLUDED__
+ #define __ISCI_RAID_INFO_H__INCLUDED__
+diff --git a/lib/engine/isci_tape.h b/lib/engine/isci_tape.h
+index 985f767..a2cef2d 100644
+--- a/lib/engine/isci_tape.h
++++ b/lib/engine/isci_tape.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __ISCI_TAPE_H__INCLUDED__
+ #define __ISCI_TAPE_H__INCLUDED__
+diff --git a/lib/engine/list.h b/lib/engine/list.h
+index 9a7c3c3..6395830 100644
+--- a/lib/engine/list.h
++++ b/lib/engine/list.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __LIST_H__INCLUDED__
+ #define __LIST_H__INCLUDED__
+diff --git a/lib/engine/mdadm_config.h b/lib/engine/mdadm_config.h
+index c94020f..e415b4f 100644
+--- a/lib/engine/mdadm_config.h
++++ b/lib/engine/mdadm_config.h
+@@ -11,9 +11,7 @@ Redistribution and use in source and binary forms, with or without modification,
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __MDADM_CONFIG_H__INCLUDED__
+ #define __MDADM_CONFIG_H__INCLUDED__
+diff --git a/lib/engine/multimedia_device.h b/lib/engine/multimedia_device.h
+index 533370e..694e2a5 100644
+--- a/lib/engine/multimedia_device.h
++++ b/lib/engine/multimedia_device.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __MULTIMEDIA_DEVICE_H__INCLUDED__
+ #define __MULTIMEDIA_DEVICE_H__INCLUDED__
+diff --git a/lib/engine/nondisk_device.h b/lib/engine/nondisk_device.h
+index 70ebb32..0f00e52 100644
+--- a/lib/engine/nondisk_device.h
++++ b/lib/engine/nondisk_device.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __CHARACTER_DEVICE_H__INCLUDED__
+ #define __CHARACTER_DEVICE_H__INCLUDED__
+diff --git a/lib/engine/object.h b/lib/engine/object.h
+index b52d3d3..345d58c 100644
+--- a/lib/engine/object.h
++++ b/lib/engine/object.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __OBJECT_H__INCLUDED__
+ #define __OBJECT_H__INCLUDED__
+diff --git a/lib/engine/pci_header.h b/lib/engine/pci_header.h
+index 376f296..c5129a0 100644
+--- a/lib/engine/pci_header.h
++++ b/lib/engine/pci_header.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __PCI_HEADER_H__INCLUDED__
+ #define __PCI_HEADER_H__INCLUDED__
+diff --git a/lib/engine/phy.h b/lib/engine/phy.h
+index f5730a0..c59f7c8 100644
+--- a/lib/engine/phy.h
++++ b/lib/engine/phy.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __PHY_H__INCLUDED__
+ #define __PHY_H__INCLUDED__
+diff --git a/lib/engine/port.h b/lib/engine/port.h
+index 2f33876..cc48c7c 100644
+--- a/lib/engine/port.h
++++ b/lib/engine/port.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3,4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __PORT_H__INCLUDED__
+ #define __PORT_H__INCLUDED__
+diff --git a/lib/engine/raid_device.h b/lib/engine/raid_device.h
+index 998e80c..2174162 100644
+--- a/lib/engine/raid_device.h
++++ b/lib/engine/raid_device.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __RAID_DEVICE_H__INCLUDED__
+ #define __RAID_DEVICE_H__INCLUDED__
+diff --git a/lib/engine/raid_info.h b/lib/engine/raid_info.h
+index 174698a..302be9b 100644
+--- a/lib/engine/raid_info.h
++++ b/lib/engine/raid_info.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __RAID_INFO_H__INCLUDED__
+ #define __RAID_INFO_H__INCLUDED__
+diff --git a/lib/engine/remote_port.h b/lib/engine/remote_port.h
+index c086656..4ddfee3 100644
+--- a/lib/engine/remote_port.h
++++ b/lib/engine/remote_port.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __REMOTE_PORT_H__INCLUDED__
+ #define __REMOTE_PORT_H__INCLUDED__
+diff --git a/lib/engine/routing_device.h b/lib/engine/routing_device.h
+index 5f857a6..284621e 100644
+--- a/lib/engine/routing_device.h
++++ b/lib/engine/routing_device.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __ROUTING_DEVICE_H__INCLUDED__
+ #define __ROUTING_DEVICE_H__INCLUDED__
+diff --git a/lib/engine/session.h b/lib/engine/session.h
+index a901d1c..3200da1 100644
+--- a/lib/engine/session.h
++++ b/lib/engine/session.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __SESSION_H__INCLUDED__
+ #define __SESSION_H__INCLUDED__
+diff --git a/lib/engine/session_manager.h b/lib/engine/session_manager.h
+index 7177064..87e16c3 100644
+--- a/lib/engine/session_manager.h
++++ b/lib/engine/session_manager.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __SESSION_MANAGER_H__INCLUDED__
+ #define __SESSION_MANAGER_H__INCLUDED__
+diff --git a/lib/engine/storage_device.h b/lib/engine/storage_device.h
+index ddeb66f..20bdab2 100644
+--- a/lib/engine/storage_device.h
++++ b/lib/engine/storage_device.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __STORAGE_DEVICE_H__INCLUDED__
+ #define __STORAGE_DEVICE_H__INCLUDED__
+diff --git a/lib/engine/stream_device.h b/lib/engine/stream_device.h
+index 9bc111a..b29bd68 100644
+--- a/lib/engine/stream_device.h
++++ b/lib/engine/stream_device.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __STREAM_DEVICE_H__INCLUDED__
+ #define __STREAM_DEVICE_H__INCLUDED__
+diff --git a/lib/engine/string.h b/lib/engine/string.h
+index 3007dc7..6f348c9 100644
+--- a/lib/engine/string.h
++++ b/lib/engine/string.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __STRING_H__INCLUDED__
+ #define __STRING_H__INCLUDED__
+diff --git a/lib/engine/unique_id_manager.h b/lib/engine/unique_id_manager.h
+index fe79eac..4a13627 100644
+--- a/lib/engine/unique_id_manager.h
++++ b/lib/engine/unique_id_manager.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __UNIQUE_ID_MANAGER_H__INCLUDED__
+ #define __UNIQUE_ID_MANAGER_H__INCLUDED__
+diff --git a/lib/engine/utils.h b/lib/engine/utils.h
+index 86c20cf..5525303 100644
+--- a/lib/engine/utils.h
++++ b/lib/engine/utils.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __UTILS_H__INCLUDED__
+ #define __UTILS_H__INCLUDED__
+diff --git a/lib/engine/volume.h b/lib/engine/volume.h
+index 9a63cbf..3347b31 100644
+--- a/lib/engine/volume.h
++++ b/lib/engine/volume.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ // Forward declarations
+ class Array;
+diff --git a/lib/log/log.h b/lib/log/log.h
+index c0bd63e..8b5f171 100644
+--- a/lib/log/log.h
++++ b/lib/log/log.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __LOG_H__INCLUDED__
+ #define __LOG_H__INCLUDED__
+diff --git a/lib/mpb/machine_bytes.h b/lib/mpb/machine_bytes.h
+index 7fbb0e9..800b120 100644
+--- a/lib/mpb/machine_bytes.h
++++ b/lib/mpb/machine_bytes.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __ENDIAN_H__INCLUDED__
+ #define __ENDIAN_H__INCLUDED__
+diff --git a/lib/mpb/mpb.h b/lib/mpb/mpb.h
+index 01782af..c42cdfb 100644
+--- a/lib/mpb/mpb.h
++++ b/lib/mpb/mpb.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __MPB_H__INCLUDED__
+ #define __MPB_H__INCLUDED__
+diff --git a/lib/orom/orom.h b/lib/orom/orom.h
+index f76e3ee..e10311d 100644
+--- a/lib/orom/orom.h
++++ b/lib/orom/orom.h
+@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+
+
+
+-#if __GNUC_PREREQ(3, 4)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
+
+ #ifndef __OROM_H__INCLUDED__
+ #define __OROM_H__INCLUDED__
+--
+2.13.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0001-ssieventmonitor-ordered-comparison-between-pointers-.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0001-ssieventmonitor-ordered-comparison-between-pointers-.patch
new file mode 100644
index 000000000..27df9b5de
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0001-ssieventmonitor-ordered-comparison-between-pointers-.patch
@@ -0,0 +1,39 @@
+From ea9ecf4bf305f9509d5822b3823658a40162f43c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 25 Jul 2017 19:08:21 -0700
+Subject: [PATCH] ssieventmonitor: ordered comparison between pointers and
+ zero, actually with NULL
+
+Comparing which is large or small between a pointer and NULL
+however, looks completely illogical. Ordered comparison of
+two valid pointers is legit, but no pointer will be smaller
+than NULL , so comparing if a pointer is larger than NULL
+simply means if the pointer is not NULL.
+
+Fixes errors found with clang e.g.
+
+| ssieventmonitor.cpp:339:53: error: ordered comparison between pointer and zero ('char *' and 'int')
+| if (fgets(nextline, sizeof(nextline) - 1, mdstat) < 0) {
+| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ tools/ssieventmonitor.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tools/ssieventmonitor.cpp b/tools/ssieventmonitor.cpp
+index f04b8f0..7a00122 100644
+--- a/tools/ssieventmonitor.cpp
++++ b/tools/ssieventmonitor.cpp
+@@ -336,7 +336,7 @@ static int _read_mdstat(int fd)
+ if (!strncmp(line, "md", 2)) {
+ if (strstr(line, INACTIVE_STR)) { /* possibly container */
+ char nextline[1024];
+- if (fgets(nextline, sizeof(nextline) - 1, mdstat) < 0) {
++ if (fgets(nextline, sizeof(nextline) - 1, mdstat) != (char *) NULL) {
+ fclose(mdstat);
+ return 1;
+ }
+--
+2.13.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0002-Convert-macros-into-functions.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0002-Convert-macros-into-functions.patch
new file mode 100644
index 000000000..351301cdc
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0002-Convert-macros-into-functions.patch
@@ -0,0 +1,123 @@
+From 1338ee4e69c465f8f381ec3bfe5058080236edba Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 16 Jun 2017 22:08:35 -0700
+Subject: [PATCH 2/6] Convert macros into functions
+
+This helps in fixing the security format warnings
+add -fno-builtin-log
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/engine/Makefile.am | 3 ++-
+ lib/log/Makefile.am | 2 ++
+ lib/log/log.h | 34 +++++++++++++++++++++-------------
+ src/Makefile.am | 3 ++-
+ 4 files changed, 27 insertions(+), 15 deletions(-)
+
+Index: ssiapi.1.0.1/lib/engine/Makefile.am
+===================================================================
+--- ssiapi.1.0.1.orig/lib/engine/Makefile.am
++++ ssiapi.1.0.1/lib/engine/Makefile.am
+@@ -113,4 +113,5 @@ libengine_la_SOURCES = \
+ libengine_la_CPPFLAGS = \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/include \
+- -I$(top_srcdir)/lib
++ -I$(top_srcdir)/lib \
++ -fno-builtin-log
+Index: ssiapi.1.0.1/lib/log/Makefile.am
+===================================================================
+--- ssiapi.1.0.1.orig/lib/log/Makefile.am
++++ ssiapi.1.0.1/lib/log/Makefile.am
+@@ -5,3 +5,5 @@ noinst_LTLIBRARIES = liblog.la
+ liblog_la_SOURCES = \
+ log.c \
+ log.h
++
++liblog_la_CPPFLAGS = -fno-builtin-log
+Index: ssiapi.1.0.1/lib/log/log.h
+===================================================================
+--- ssiapi.1.0.1.orig/lib/log/log.h
++++ ssiapi.1.0.1/lib/log/log.h
+@@ -23,7 +23,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIG
+ #if defined(__cplusplus)
+ extern "C" {
+ #endif /* __cplusplus */
+-
++#include <stdarg.h>
+ /* */
+ enum log_level {
+ LOG_FIRST = 0,
+@@ -37,26 +37,34 @@ enum log_level {
+ };
+
+ /* */
+-#define log(__level, __format, ...) \
+- do { if (log_get_level() >= (enum log_level)(__level)) \
+- __log(__level, __format, ## __VA_ARGS__); \
+- } while (0)
+-
+-#define dlog(__format, ...) \
+- log(LOG_DEBUG, __format, ## __VA_ARGS__);
++void __log(enum log_level level, const char *format, ...)
++ __attribute__((format(printf, 2, 3)));
+
+ /* */
+-void log_init(enum log_level level, const char *path);
++enum log_level log_get_level(void);
+
+ /* */
+-void log_fini(void);
+-
++static inline void log(enum log_level __level, const char* __format, ...) {
++ va_list ap;
++ va_start(ap, __format);
++ do {
++ if (log_get_level() >= (enum log_level)(__level))
++ __log(__level, __format, ap);
++ } while (0);
++ va_end(ap);
++}
++
++static inline void dlog(const char* __format, ...) {
++ va_list ap;
++ va_start(ap, __format);
++ log(LOG_DEBUG, __format, ap);
++ va_end(ap);
++}
+ /* */
+-void __log(enum log_level level, const char *format, ...)
+- __attribute__((format(printf, 2, 3)));
++void log_init(enum log_level level, const char *path);
+
+ /* */
+-enum log_level log_get_level(void);
++void log_fini(void);
+
+ /* */
+ void log_set_level(enum log_level level);
+Index: ssiapi.1.0.1/src/Makefile.am
+===================================================================
+--- ssiapi.1.0.1.orig/src/Makefile.am
++++ ssiapi.1.0.1/src/Makefile.am
+@@ -7,7 +7,8 @@ lib_LTLIBRARIES = libssi.la
+ libssi_la_CPPFLAGS = \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/include \
+- -I$(top_srcdir)/lib
++ -I$(top_srcdir)/lib \
++ -fno-builtin-log
+
+ libssi_la_LDFLAGS = \
+ $(SGUTILS_LDFLAGS) \
+Index: ssiapi.1.0.1/lib/efi/Makefile.am
+===================================================================
+--- ssiapi.1.0.1.orig/lib/efi/Makefile.am
++++ ssiapi.1.0.1/lib/efi/Makefile.am
+@@ -5,3 +5,4 @@ noinst_LTLIBRARIES = libefi.la
+ libefi_la_SOURCES = \
+ efi.cpp \
+ efi.h
++libefi_la_CPPFLAGS = -fno-builtin-log
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0003-Replace-canonicalize_file_name-with-realpath-API.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0003-Replace-canonicalize_file_name-with-realpath-API.patch
new file mode 100644
index 000000000..98cd40c84
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0003-Replace-canonicalize_file_name-with-realpath-API.patch
@@ -0,0 +1,33 @@
+From 781288d6307002cce70ddafb6efb200b7f60294d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 16 Jun 2017 22:12:43 -0700
+Subject: [PATCH 3/6] Replace canonicalize_file_name with realpath() API
+
+Fixed build on musl where canonicalize_file_name is not implemented
+
+filesystem.cpp:46:15: error: 'canonicalize_file_name' was not declared in this scope
+ char *p = canonicalize_file_name(path);
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/engine/filesystem.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/engine/filesystem.cpp b/lib/engine/filesystem.cpp
+index b99257e..6064837 100644
+--- a/lib/engine/filesystem.cpp
++++ b/lib/engine/filesystem.cpp
+@@ -43,7 +43,7 @@ void CanonicalPath::__canonicalize_path_name(const char *path)
+ if (path == 0) {
+ throw E_NULL_POINTER;
+ }
+- char *p = canonicalize_file_name(path);
++ char *p = realpath(path, NULL);
+ assign(p);
+ if (p) {
+ free(p);
+--
+2.13.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0004-engine-Fix-indentation-and-missing-semi-colon.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0004-engine-Fix-indentation-and-missing-semi-colon.patch
new file mode 100644
index 000000000..7dce0da40
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0004-engine-Fix-indentation-and-missing-semi-colon.patch
@@ -0,0 +1,54 @@
+From 04e8b99d8195a0e39982ecd27802421610633724 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 16 Jun 2017 22:18:31 -0700
+Subject: [PATCH 4/6] engine: Fix indentation and missing semi-colon
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/engine/mdadm_config.cpp | 5 +++--
+ lib/engine/unique_id_manager.cpp | 2 +-
+ 2 files changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/lib/engine/mdadm_config.cpp b/lib/engine/mdadm_config.cpp
+index 1914ddc..e40c2c7 100644
+--- a/lib/engine/mdadm_config.cpp
++++ b/lib/engine/mdadm_config.cpp
+@@ -118,9 +118,10 @@ void check_configuration()
+ attr >> config;
+ configOk = correct_config(config);
+ } catch (Exception ex) {
+- if (ex != E_NOT_FOUND)
++ if (ex != E_NOT_FOUND) {
+ dlog("Warning: mdadm config file cannot be read, new one will be written");
+ backup = false;
++ }
+ }
+
+ if (configOk && monitor_running()) {
+@@ -134,7 +135,7 @@ void check_configuration()
+ dlog("Warning: failed to update mdadm.conf");
+ }
+ if (restart_monitor() == 0)
+- dlog("Monitor restarted successfully")
++ dlog("Monitor restarted successfully");
+ else
+ dlog("Error starting Monitor");
+ }
+diff --git a/lib/engine/unique_id_manager.cpp b/lib/engine/unique_id_manager.cpp
+index 99c153c..87d6ddc 100644
+--- a/lib/engine/unique_id_manager.cpp
++++ b/lib/engine/unique_id_manager.cpp
+@@ -185,7 +185,7 @@ void UniqueIdManager::refresh()
+ keyFile >> keyList;
+ keyList += "\n";
+ } catch (...) {
+- dlog("ssi.keys file missing")
++ dlog("ssi.keys file missing");
+ /* no file? that's ok */
+ }
+ /* process the list to update IdCaches */
+--
+2.13.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0005-engine-Define-SENTINEL.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0005-engine-Define-SENTINEL.patch
new file mode 100644
index 000000000..6f4dbf18e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0005-engine-Define-SENTINEL.patch
@@ -0,0 +1,40 @@
+From a2e3a2e332c406ea3c56a8d74b61978107df68e6 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 16 Jun 2017 22:23:08 -0700
+Subject: [PATCH 5/6] engine: Define SENTINEL
+
+Fix warnings with gcc7
+test.cpp:12: warning: missing sentinel in function call
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/engine/utils.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/lib/engine/utils.cpp b/lib/engine/utils.cpp
+index 44579a1..8812a8c 100644
+--- a/lib/engine/utils.cpp
++++ b/lib/engine/utils.cpp
+@@ -35,7 +35,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ #include "filesystem.h"
+ #include "utils.h"
+ #include "log/log.h"
+-
++#define SENTINEL (const char *)0
+ /**
+ * @brief capture shell output as binary data
+ *
+@@ -139,7 +139,7 @@ int shell(const String &s)
+ * Before switching into new executable close all non standard
+ * file handlers.*/
+ close_parent_fds();
+- execl("/bin/sh", "sh", "-c", cmd.get(), NULL);
++ execl("/bin/sh", "sh", "-c", cmd.get(), SENTINEL);
+ /* If we're here then execl failed*/
+ exit(-1);
+ break;
+--
+2.13.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0006-tools-Add-missing-includes-and-use-realpath-instead-.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0006-tools-Add-missing-includes-and-use-realpath-instead-.patch
new file mode 100644
index 000000000..a7b70e3f4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0006-tools-Add-missing-includes-and-use-realpath-instead-.patch
@@ -0,0 +1,40 @@
+From df1d56d6b6a6b15d0137619eb8a4b623de6c9633 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 16 Jun 2017 22:28:59 -0700
+Subject: [PATCH 6/6] tools: Add missing includes and use realpath() instead of
+ canonicalize_file_name
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ tools/ssieventmonitor.cpp | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/tools/ssieventmonitor.cpp b/tools/ssieventmonitor.cpp
+index 0553386..f04b8f0 100644
+--- a/tools/ssieventmonitor.cpp
++++ b/tools/ssieventmonitor.cpp
+@@ -18,7 +18,9 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ #include <unistd.h>
+ #include <dirent.h>
+ #include <errno.h>
+-#include <sys/fcntl.h>
++#include <limits.h>
++#include <fcntl.h>
++#include <libgen.h>
+ #include <sys/select.h>
+ #include <sys/wait.h>
+ #include <sys/inotify.h>
+@@ -99,7 +101,7 @@ static int _exec_ssimsg(void)
+ int status;
+ switch (pid) {
+ case 0: {
+- cp = canonicalize_file_name("/proc/self/exe");
++ cp = realpath("/proc/self/exe", NULL);
+ if (cp) {
+ strcpy(buffer, cp);
+ free(cp);
+--
+2.13.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/configure-cflags.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/configure-cflags.patch
new file mode 100644
index 000000000..d45be590c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/configure-cflags.patch
@@ -0,0 +1,21 @@
+Do not override flags thereby respect the flags coming from environment,
+e.g. we need some optimization level turned on when security flags are enabled
+without this change, the build would fail
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Index: ssiapi.1.0.1/configure.ac
+===================================================================
+--- ssiapi.1.0.1.orig/configure.ac
++++ ssiapi.1.0.1/configure.ac
+@@ -15,11 +15,6 @@ AC_SUBST(VERSION)
+ AM_INIT_AUTOMAKE(ssi, ${VERSION})
+ AM_CONFIG_HEADER(config.h)
+
+-dnl Set the language we use
+-CPPFLAGS="-g3 -gdwarf-2 -Wall -Werror -D_GNU_SOURCE"
+-CFLAGS="-std=gnu99"
+-CXXFLAGS="-std=gnu++98"
+-
+ dnl Automake 1.11 - silent build rules
+ m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi_1.0.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi_1.0.1.bb
new file mode 100644
index 000000000..5eb4696b5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi_1.0.1.bb
@@ -0,0 +1,35 @@
+SUMMARY = "Intel RSTe with Linux OS SSI API Library"
+
+DESCRIPTION = "Intel Rapid Storage Technology enterprise with Linux OS* Standard Storage Interface API Library. \
+The library allows user to manage storage devices including creating and managing Raid arrays on systems with Intel chipset."
+
+HOMEPAGE = "http://irstessi.sourceforge.net/"
+
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0413ff365e0bd733c4869a6797551c6f"
+
+DEPENDS += "sg3-utils"
+
+SRC_URI = "http://sourceforge.net/projects/irstessi/files/${BPN}.${PV}.tgz \
+ file://0001-Use-pragma-once-unconditionally.patch \
+ file://0002-Convert-macros-into-functions.patch \
+ file://0003-Replace-canonicalize_file_name-with-realpath-API.patch \
+ file://0004-engine-Fix-indentation-and-missing-semi-colon.patch \
+ file://0005-engine-Define-SENTINEL.patch \
+ file://0006-tools-Add-missing-includes-and-use-realpath-instead-.patch \
+ file://configure-cflags.patch \
+ file://0001-ssieventmonitor-ordered-comparison-between-pointers-.patch \
+ "
+SRC_URI[md5sum] = "02f16d7cbd30d28034093212906591f5"
+SRC_URI[sha256sum] = "e10d283b0f211afb8ebd0bde87c097769613d30a052cdf164753e35e803264c7"
+
+S ="${WORKDIR}/${BPN}.${PV}"
+
+inherit autotools-brokensep
+CXXFLAGS="-std=gnu++98 -D_GNU_SOURCE"
+
+do_configure_prepend(){
+ ./autogen.sh
+}
+
+RDEPENDS_${PN} += "mdadm"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.17.25.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.17.25.bb
index 5ee4472cd..cc2727b75 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.17.25.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.17.25.bb
@@ -31,6 +31,8 @@ do_install_append () {
# support for buggy init.d scripts that refer to an alternative
# explicit path to start-stop-daemon
- mkdir -p ${D}/sbin/
- ln -sf /usr/sbin/start-stop-daemon ${D}/sbin/start-stop-daemon
+ if [ "${base_sbindir}" != "${sbindir}" ]; then
+ mkdir -p ${D}${base_sbindir}
+ ln -sf ${sbindir}/start-stop-daemon ${D}${base_sbindir}/start-stop-daemon
+ fi
}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/synergy/synergy_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/synergy/synergy_git.bb
index f2063e464..68f0387ba 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/synergy/synergy_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/synergy/synergy_git.bb
@@ -1,7 +1,7 @@
SUMMARY = "Synergy - control multiple computers with one keyboard and mouse"
HOMEPAGE = "http://synergy-project.org"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=0f366945b209c5523e39889f636af00a"
-LICENSE = "GPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d2ba51ca68e055566aade24662f9eb41"
+LICENSE = "GPL-2.0-with-OpenSSL-exception"
SECTION = "x11/utils"
DEPENDS = "virtual/libx11 libxtst libxinerama curl openssl"
@@ -10,11 +10,11 @@ do_unpack_extra[depends] = "unzip-native:do_populate_sysroot"
# depends on virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
-SRC_URI = "git://github.com/symless/synergy-core.git;protocol=https"
+SRC_URI = "git://github.com/symless/synergy.git;protocol=http"
-# Version 1.7.4-rc8
-SRCREV ?= "588fb4b805dd452556d05dbc03fe29ea5b4e43c0"
-PV = "1.7.3+1.7.4-rc8+${SRCPV}"
+# Version 1.8.8-stable
+SRCREV ?= "c30301e23424db1125664da17deb8c3aa6aec52d"
+PV = "1.8.8+${SRCPV}"
S = "${WORKDIR}/git"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc
index 0977f7e86..f1bf9b06f 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc
@@ -36,6 +36,7 @@ EXTRA_OECONF = " \
--with-librabbitmq-client=no \
--disable-python \
--disable-java --disable-java-modules \
+ --with-pidfile-dir=${localstatedir}/run/${BPN} \
${CONFIG_TLS} \
"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/system-setup-keyboard/system-setup-keyboard_0.8.8.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/system-setup-keyboard/system-setup-keyboard_0.8.8.bb
deleted file mode 100644
index 0bd7af734..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/system-setup-keyboard/system-setup-keyboard_0.8.8.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-SUMMARY = "xorg.conf keyboard layout callout"
-DESCRIPTION = "system-setup-keyboard is a daemon to monitor the keyboard layout configured in \
-/etc/sysconfig/keyboard and transfer this into the matching xorg.conf.d snippet."
-
-HOMEPAGE = "https://git.fedorahosted.org/git/system-setup-keyboard.git"
-SECTION = "Applications/System"
-
-SRC_URI = "https://git.fedorahosted.org/cgit/${PN}.git/snapshot/${BP}.tar.gz"
-SRC_URI[md5sum] = "399003968ccc739cddd9cc370af377a0"
-SRC_URI[sha256sum] = "1ef6ef79c3588e85d7f42e99eb80a2e459f966284cf029c2d6fc1b645abcb860"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=bf57969a59612c5aca007b340c49d3a2"
-
-inherit pythonnative
-
-DEPENDS = "glib-2.0 system-config-keyboard-native"
-
-EXTRA_OEMAKE = "-e MAKEFLAGS="
-
-do_compile_prepend() {
- ${PYTHON} -v get_layouts.py > keyboards.h
-}
-
-do_install() {
- oe_runmake install DESTDIR=${D}
- install -d ${D}/etc/X11/xorg.conf.d
- touch ${D}/etc/X11/xorg.conf.d/00-system-setup-keyboard.conf
-}
-
-FILES_${PN} += "${systemd_unitdir}/system/${BPN}.service"
-
-PNBLACKLIST[system-setup-keyboard] ?= "Depends on blacklisted system-config-keyboard-native - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/tbb/tbb.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/tbb/tbb.bb
index 35840fd0a..bad9481f7 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/tbb/tbb.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/tbb/tbb.bb
@@ -6,18 +6,21 @@ DESCRIPTION = "Parallelism library for C++ - runtime files \
HOMEPAGE = "http://threadingbuildingblocks.org/"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
-PRDATE = "20170118"
-PV = "${PRDATE}"
-SRC_URI = "https://www.threadingbuildingblocks.org/sites/default/files/software_releases/source/tbb2017_${PRDATE}oss_src.tgz \
+PRDATE = "20170412"
+BRANCH = "tbb_2017"
+SRCREV = "a2cfdfe946933cbe38bffe1d8086ae36f06691a3"
+PV = "${PRDATE}+${SRCPV}"
+SRC_URI = "git://github.com/01org/tbb;branch=${BRANCH} \
file://cross-compile.patch \
- file://tbb.pc"
-SRC_URI[md5sum] = "26baa6fbcc8f03ee45c0641b91d9588a"
-SRC_URI[sha256sum] = "48bb526287fa8b4e7d1e1b2ba9e5fb9c3e372b497772c06ef9ccd7f93f344e74"
+ file://0001-mallinfo-is-glibc-specific-API-mark-it-so.patch \
+ file://tbb.pc \
+"
-S = "${WORKDIR}/tbb2017_${PRDATE}oss/"
+S = "${WORKDIR}/git"
COMPILER ?= "gcc"
COMPILER_toolchain-clang = "clang"
+
do_compile() {
oe_runmake compiler=${COMPILER} arch=${HOST_ARCH} runtime=cc4
}
@@ -38,3 +41,4 @@ do_install() {
# | make[1]: *** [concurrent_queue.o] Error 1
ARM_INSTRUCTION_SET = "arm"
SECURITY_CFLAGS_append = " -fPIC"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0001-mallinfo-is-glibc-specific-API-mark-it-so.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0001-mallinfo-is-glibc-specific-API-mark-it-so.patch
new file mode 100644
index 000000000..7e66945fa
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0001-mallinfo-is-glibc-specific-API-mark-it-so.patch
@@ -0,0 +1,37 @@
+From 6b2b136caa68912d77ffe26143cd3da768b9ef80 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 3 Jun 2017 08:39:37 -0700
+Subject: [PATCH] mallinfo() is glibc specific API mark it so
+
+Helps compiling with musl
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ src/tbbmalloc/proxy.cpp | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/tbbmalloc/proxy.cpp b/src/tbbmalloc/proxy.cpp
+index 5ef279d..06c4872 100644
+--- a/src/tbbmalloc/proxy.cpp
++++ b/src/tbbmalloc/proxy.cpp
+@@ -185,6 +185,7 @@ int mallopt(int /*param*/, int /*value*/) __THROW
+ return 1;
+ }
+
++#ifdef __GLIBC__
+ struct mallinfo mallinfo() __THROW
+ {
+ struct mallinfo m;
+@@ -192,6 +193,7 @@ struct mallinfo mallinfo() __THROW
+
+ return m;
+ }
++#endif
+
+ #if __ANDROID__
+ // Android doesn't have malloc_usable_size, provide it to be compatible
+--
+2.13.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.1.7.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.1.8.bb
index c784fd279..a3efc5160 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.1.7.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.1.8.bb
@@ -10,8 +10,8 @@ RDEPENDS_${PN} = "acl"
SRC_URI = "http://udisks.freedesktop.org/releases/udisks-${PV}.tar.bz2 \
file://non-gnu-libc.patch \
"
-SRC_URI[md5sum] = "8bccd36573b75286538bd5bd2c424f45"
-SRC_URI[sha256sum] = "abae2bb3bdc691ca13c1e4c244630b8c881c4f3b35c207299f1b39b7bec83785"
+SRC_URI[md5sum] = "501d11c243bd8c6c00650474cd2afaab"
+SRC_URI[sha256sum] = "da416914812a77e5f4d82b81deb8c25799fd3228d27d52f7bf89a501b1857dda"
CVE_PRODUCT = "udisks"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks_1.0.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks_1.0.5.bb
index ffe2c2674..e33266001 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks_1.0.5.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks_1.0.5.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "A storage daemon that implements well-defined D-Bus interfaces th
LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=73d83aebe7e4b62346afde80e0e94273"
-DEPENDS = "libatasmart sg3-utils polkit libgudev dbus-glib glib-2.0 intltool-native lvm2 \
+DEPENDS = "libatasmart sg3-utils polkit libgudev dbus-glib glib-2.0 intltool-native \
dbus-glib-native \
"
# optional dependencies: device-mapper parted
@@ -24,7 +24,8 @@ SRC_URI[udisks.sha256sum] = "f2ec82eb0ea7e01dc299b5b29b3c18cdf861236ec43dcff66b3
inherit autotools-brokensep systemd gtk-doc
-PACKAGECONFIG ??= ""
+PACKAGECONFIG ??= "libdevmapper"
+PACKAGECONFIG[libdevmapper] = "--enable-devmapper,--disable-devmapper,libdevmapper"
PACKAGECONFIG[parted] = "--enable-parted,--disable-parted,parted"
EXTRA_OECONF = "--disable-man-pages --libdir=${base_libdir} --sbindir=${base_sbindir}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.6.bb
index 909756ad7..271718e5e 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.6.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.6.bb
@@ -14,14 +14,15 @@ SRC_URI[md5sum] = "ecea4c597bab1fd4ba98ea84edcece59"
SRC_URI[sha256sum] = "7b1ea803c73f3478917166f04f67cce6e45ad7ea5ab6df99b948c17eb1cb235f"
DEPENDS = "anthy fontconfig libxft libxt glib-2.0 ncurses intltool"
-DEPENDS_class-target += "intltool-native gtk+ gtk+3 uim-native takao-fonts"
+DEPENDS_append_class-target = " intltool-native gtk+ gtk+3 uim-native takao-fonts"
RDEPENDS_uim = "libuim0 libedit"
-RDEPENDS_uim-anthy = "takao-fonts anthy libanthy0"
+RDEPENDS_uim-anthy = "takao-fonts anthy libanthy0 glibc-utils glibc-gconv-euc-jp"
LEAD_SONAME = "libuim.so.1"
-inherit autotools pkgconfig gettext
+inherit autotools pkgconfig gettext qemu gtk-immodules-cache
+GTKIMMODULES_PACKAGES = "uim-gtk2.0 uim-gtk3"
EXTRA_OECONF += "--disable-emacs \
--without-scim \
@@ -103,52 +104,36 @@ FILES_uim-skk = "${libdir}/uim/plugin/libuim-skk.* \
${datadir}/uim/skk*.scm \
"
+PACKAGE_WRITE_DEPS += "qemu-native"
pkg_postinst_uim-anthy() {
- if [ -f /usr/bin/uim-module-manager ]; then
- /usr/bin/uim-module-manager --register anthy --path /etc/uim
- fi
-}
-
-pkg_postrm_uim-anthy() {
- if [ -f /usr/bin/uim-module-manager ]; then
- /usr/bin/uim-module-manager --path /etc/uim --unregister anthy
+ if test -n "$D"; then
+ ${@qemu_run_binary(d, '$D', '${bindir}/uim-module-manager')} --register anthy --path $D${datadir}/uim
+ else
+ uim-module-manager --register anthy --path ${datadir}/uim
fi
}
pkg_prerm_uim-anthy() {
- if [ -f /usr/bin/uim-module-manager ]; then
- /usr/bin/uim-module-manager --register anthy --path /etc/uim
+ if test -n "$D"; then
+ ${@qemu_run_binary(d, '$D', '${bindir}/uim-module-manager')} --path $D${datadir}/uim --unregister anthy
+ else
+ uim-module-manager --path ${datadir}/uim --unregister anthy
fi
}
-pkg_postinst_uim-gtk2.0() {
- gtk-query-immodules-2.0 > /etc/gtk-2.0/gtk.immodules
-}
-
pkg_postinst_uim-skk() {
- if [ -f /usr/bin/uim-module-manager ]; then
- /usr/bin/uim-module-manager --register skk --path /etc/uim
+ if test -n "$D"; then
+ ${@qemu_run_binary(d, '$D', '${bindir}/uim-module-manager')} --register skk --path $D${datadir}/uim
+ else
+ uim-module-manager --register skk --path ${datadir}/uim
fi
}
pkg_postrm_uim-skk() {
- if [ -f /usr/bin/uim-module-manager ]; then
- /usr/bin/uim-module-manager --path /etc/uim --unregister skk
- fi
-}
-
-pkg_postinst_uim-common() {
- if [ -f /usr/bin/uim-module-manager ]; then
- /usr/bin/uim-module-manager --path /etc/uim --register \
- tutcode tcode hangul viqr \
- ipa-x-sampa latin byeoru
- fi
-}
-
-pkg_prerm_uim-common() {
- if [ -f /usr/bin/uim-module-manager ]; then
- /usr/bin/uim-module-manager --path /etc/uim --register \
- tutcode tcode hangul viqr ipa-x-sampa latin byeoru
+ if test -n "$D"; then
+ ${@qemu_run_binary(d, '$D', '${bindir}/uim-module-manager')} --path $D${datadir}/uim --unregister skk
+ else
+ uim-module-manager --path ${datadir}/uim --unregister skk
fi
}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.5.bb
index 3651e1885..9314534d7 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.4.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.5.bb
@@ -5,8 +5,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=0de8fbf1d97a140d1d93b9f14dcfbf08"
DEPENDS = "intltool-native libusb1 libgudev glib-2.0 dbus-glib polkit"
SRC_URI = "http://upower.freedesktop.org/releases/${BPN}-${PV}.tar.xz"
-SRC_URI[md5sum] = "78800e1ac7f92b24aabdf433e38f75d2"
-SRC_URI[sha256sum] = "9ca325a6ccef505529b268ebbbd9becd0ce65a65f6ac7ee31e2e5b17648037b0"
+SRC_URI[md5sum] = "ec57b4b7bf0af568f9a7a5603c921d97"
+SRC_URI[sha256sum] = "78605664d027c788f6ab63c50950be6e86c6ba5d030c4cf35a6664337d87f3b2"
inherit autotools pkgconfig gettext gobject-introspection systemd
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/vala-terminal/vala-terminal_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/vala-terminal/vala-terminal_git.bb
deleted file mode 100644
index 1219cb8ed..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/vala-terminal/vala-terminal_git.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "A lightweight Terminal Emulator based on libvte, written in Vala"
-SECTION = "x11/applications"
-DEPENDS = "vte9 intltool-native"
-SRCREV = "0fefa38087581f85fa0631b40500b9428369c146"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-PV = "1.3+gitr${SRCPV}"
-PE = "1"
-PR = "r1"
-
-PNBLACKLIST[vala-terminal] ?= "BROKEN: Doesn't work with B!=S, touch: cannot touch `src/.stamp': No such file or directory - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-
-inherit autotools perlnative vala
-
-SRC_URI = "${FREESMARTPHONE_GIT}/vala-terminal.git;branch=master"
-S = "${WORKDIR}/git"
-
-RDEPENDS_${PN} = "ttf-liberation-mono"
-RREPLACES_${PN} = "openmoko-terminal2"
-RPROVIDES_${PN} = "openmoko-terminal2"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_4.3.36.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_4.3.36.bb
deleted file mode 100644
index c7bae1c08..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_4.3.36.bb
+++ /dev/null
@@ -1,72 +0,0 @@
-SUMMARY = "VirtualBox Linux Guest Drivers"
-SECTION = "core"
-LICENSE = "GPL-2.0"
-LIC_FILES_CHKSUM = "file://${WORKDIR}/${VBOX_NAME}/COPYING;md5=e197d5641bb35b29d46ca8c4bf7f2660"
-
-DEPENDS = "virtual/kernel"
-
-inherit module kernel-module-split
-
-COMPATIBLE_MACHINE = "(qemux86|qemux86-64)"
-
-VBOX_NAME = "VirtualBox-${PV}"
-
-SRC_URI = "http://download.virtualbox.org/virtualbox/${PV}/${VBOX_NAME}.tar.bz2 \
- file://Makefile.utils \
-"
-SRC_URI[md5sum] = "8635387dec6cbfd576ba453355d4dc0c"
-SRC_URI[sha256sum] = "af0776df6d03b2709cb76a69f055487bf12bdb3b4163e2a82959860300283046"
-
-S = "${WORKDIR}/vbox_module"
-
-export BUILD_TARGET_ARCH="${ARCH}"
-export BUILD_TARGET_ARCH_x86-64="amd64"
-export KERN_DIR="${STAGING_KERNEL_DIR}"
-
-addtask export_sources before do_patch after do_unpack
-
-do_export_sources() {
- mkdir -p "${S}"
- ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/export_modules ${T}/vbox_modules.tar.gz
- tar -C "${S}" -xzf ${T}/vbox_modules.tar.gz
-
- # add a mount utility to use shared folder from VBox Addition Source Code
- mkdir -p "${S}/utils"
- install ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/sharedfolders/mount.vboxsf.c ${S}/utils
- install ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/sharedfolders/vbsfmount.c ${S}/utils
- install ${S}/../Makefile.utils ${S}/utils/Makefile
-
-}
-
-# compile and install mount utility
-do_compile_append() {
- oe_runmake 'LD=${CC}' 'LDFLAGS=${LDFLAGS}' -C ${S}/utils
- if ! [ -e vboxguest.ko -a -e vboxsf.ko -a -e vboxvideo.ko ] ; then
- echo "ERROR: One of vbox*.ko modules wasn't built"
- exit 1
- fi
-}
-
-module_do_install() {
- MODULE_DIR=${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION}/kernel/misc
- install -d $MODULE_DIR
- install -m 644 vboxguest.ko $MODULE_DIR
- install -m 644 vboxsf.ko $MODULE_DIR
- install -m 644 vboxvideo.ko $MODULE_DIR
-}
-
-do_install_append() {
- install -d ${D}${base_sbindir}
- install -m 755 ${S}/utils/mount.vboxsf ${D}${base_sbindir}
-}
-
-PACKAGES += "kernel-module-vboxguest kernel-module-vboxsf kernel-module-vboxvideo"
-RRECOMMENDS_${PN} += "kernel-module-vboxguest kernel-module-vboxsf kernel-module-vboxvideo"
-
-FILES_${PN} = "${base_sbindir}"
-
-# autoload if installed
-KERNEL_MODULE_AUTOLOAD += "vboxguest vboxsf vboxvideo"
-
-# http://errors.yoctoproject.org/Errors/Details/83333/
-PNBLACKLIST[vboxguestdrivers] ?= "BROKEN: not compatible with default kernel version 4.8 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.1.18.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.1.26.bb
index 4085b9fc7..fdefe0317 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.1.18.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.1.26.bb
@@ -14,8 +14,8 @@ VBOX_NAME = "VirtualBox-${PV}"
SRC_URI = "http://download.virtualbox.org/virtualbox/${PV}/${VBOX_NAME}.tar.bz2 \
file://Makefile.utils \
"
-SRC_URI[md5sum] = "1a7db64cd69ba6d39574fb333e031251"
-SRC_URI[sha256sum] = "7ed0959bbbd02826b86b3d5dc8348931ddfab267c31f8ed36ee53c12f5522cd9"
+SRC_URI[md5sum] = "d3aec8190c649d7e0d92ba374779dfe3"
+SRC_URI[sha256sum] = "b5715035e681a11ef1475f83f9503d34a00f0276b89c572eebec363dda80c8a9"
S = "${WORKDIR}/vbox_module"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/vim/vim-tiny_8.0.0427.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/vim/vim-tiny_8.0.0983.bb
index bb8f2b7ea..bb8f2b7ea 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/vim/vim-tiny_8.0.0427.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/vim/vim-tiny_8.0.0983.bb
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/vim/vim_8.0.0427.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/vim/vim_8.0.0983.bb
index 1f86fcd2f..407ce5e73 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/vim/vim_8.0.0427.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/vim/vim_8.0.0983.bb
@@ -10,7 +10,7 @@ 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=.. \
"
-SRCREV = "ad4187e6fc9c8e1083a172852d958a70a689a75c"
+SRCREV = "3f9a1ff141412e9e85f7dff47d02946cb9be9228"
S = "${WORKDIR}/git/src"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat-2.8.8/automake-foreign.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat-2.8.8/automake-foreign.patch
deleted file mode 100644
index cfa2f6c7f..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat-2.8.8/automake-foreign.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/configure.in 2014-08-18 01:25:43.911597023 -0700
-+++ b/configure.in 2014-08-18 01:26:27.763786629 -0700
-@@ -8,7 +8,7 @@
- AC_CONFIG_HEADERS([config.h])
- AC_CONFIG_SRCDIR([configure.in])
-
--AM_INIT_AUTOMAKE([1.9 dist-bzip2 subdir-objects no-define])
-+AM_INIT_AUTOMAKE([1.9 foreign dist-bzip2 subdir-objects no-define])
-
- AM_MAINTAINER_MODE
- AC_PROG_CC
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat-2.8.8/fix-includes-for-separate-build.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat-2.8.8/fix-includes-for-separate-build.patch
deleted file mode 100644
index 4394e5257..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat-2.8.8/fix-includes-for-separate-build.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-diff -ur xchat-2.8.8-orig/plugins/perl/perl.c xchat-2.8.8/plugins/perl/perl.c
---- xchat-2.8.8-orig/plugins/perl/perl.c 2014-08-30 14:09:05.125116286 -0700
-+++ xchat-2.8.8/plugins/perl/perl.c 2014-08-30 14:09:45.281106532 -0700
-@@ -31,7 +31,7 @@
- #endif
-
- #undef PACKAGE
--#include "../../config.h" /* for #define OLD_PERL */
-+#include <config.h> /* for #define OLD_PERL */
- #include "xchat-plugin.h"
-
- static xchat_plugin *ph; /* plugin handle */
-diff -ur xchat-2.8.8-orig/src/common/network.c xchat-2.8.8/src/common/network.c
---- xchat-2.8.8-orig/src/common/network.c 2014-08-30 14:09:05.137116222 -0700
-+++ xchat-2.8.8/src/common/network.c 2014-08-30 14:13:52.729116323 -0700
-@@ -24,7 +24,7 @@
- #include <unistd.h>
- #include <glib.h>
-
--#include "../../config.h" /* grab USE_IPV6 and LOOKUPD defines */
-+#include <config.h> /* grab USE_IPV6 and LOOKUPD defines */
-
- #define WANTSOCKET
- #define WANTARPA
-diff -ur xchat-2.8.8-orig/src/common/ssl.c xchat-2.8.8/src/common/ssl.c
---- xchat-2.8.8-orig/src/common/ssl.c 2014-08-30 14:09:05.137116222 -0700
-+++ xchat-2.8.8/src/common/ssl.c 2014-08-30 14:14:08.449133899 -0700
-@@ -23,7 +23,7 @@
- #include <string.h> /* strncpy() */
- #include "ssl.h" /* struct cert_info */
- #include "inet.h"
--#include "../../config.h" /* HAVE_SNPRINTF */
-+#include <config.h> /* HAVE_SNPRINTF */
-
- #ifndef HAVE_SNPRINTF
- #define snprintf g_snprintf
-diff -ur xchat-2.8.8-orig/src/common/util.c xchat-2.8.8/src/common/util.c
---- xchat-2.8.8-orig/src/common/util.c 2014-08-30 14:09:05.133116243 -0700
-+++ xchat-2.8.8/src/common/util.c 2014-08-30 14:10:23.633116070 -0700
-@@ -41,7 +41,7 @@
- #include "xchatc.h"
- #include <ctype.h>
- #include "util.h"
--#include "../../config.h"
-+#include <config.h>
-
- #define WANTSOCKET
- #include "inet.h"
-diff -ur xchat-2.8.8-orig/src/common/xchat.h xchat-2.8.8/src/common/xchat.h
---- xchat-2.8.8-orig/src/common/xchat.h 2014-08-30 14:09:05.133116243 -0700
-+++ xchat-2.8.8/src/common/xchat.h 2014-08-30 14:13:42.797116472 -0700
-@@ -1,4 +1,4 @@
--#include "../../config.h"
-+#include <config.h>
-
- #include <glib.h>
- #include <time.h> /* need time_t */
-diff -ur xchat-2.8.8-orig/src/fe-gtk/fe-gtk.h xchat-2.8.8/src/fe-gtk/fe-gtk.h
---- xchat-2.8.8-orig/src/fe-gtk/fe-gtk.h 2014-08-30 14:09:05.129116272 -0700
-+++ xchat-2.8.8/src/fe-gtk/fe-gtk.h 2014-08-30 14:10:13.309115951 -0700
-@@ -1,4 +1,4 @@
--#include "../../config.h"
-+#include <config.h>
-
- #ifdef WIN32
- /* If you're compiling this for Windows, your release is un-official
-diff -ur xchat-2.8.8-orig/src/fe-gtk/xtext.c xchat-2.8.8/src/fe-gtk/xtext.c
---- xchat-2.8.8-orig/src/fe-gtk/xtext.c 2014-08-30 14:09:05.129116272 -0700
-+++ xchat-2.8.8/src/fe-gtk/xtext.c 2014-08-30 14:10:00.313138254 -0700
-@@ -51,7 +51,7 @@
- #include <gtk/gtkwindow.h>
-
- #ifdef XCHAT
--#include "../../config.h" /* can define USE_XLIB here */
-+#include <config.h> /* can define USE_XLIB here */
- #else
- #define USE_XLIB
- #endif
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat-2.8.8/glib-2.32.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat-2.8.8/glib-2.32.patch
deleted file mode 100644
index c9bce6a9c..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat-2.8.8/glib-2.32.patch
+++ /dev/null
@@ -1,44 +0,0 @@
---- xchat-2.8.8.orig/src/common/xchat.h 2009-08-16 11:40:16.000000000 +0200
-+++ xchat-2.8.8/src/common/xchat.h 2012-05-06 08:30:16.125755497 +0200
-@@ -1,10 +1,6 @@
- #include "../../config.h"
-
--#include <glib/gslist.h>
--#include <glib/glist.h>
--#include <glib/gutils.h>
--#include <glib/giochannel.h>
--#include <glib/gstrfuncs.h>
-+#include <glib.h>
- #include <time.h> /* need time_t */
-
- #ifndef XCHAT_H
---- xchat-2.8.8.orig/src/common/servlist.c 2010-05-16 09:24:26.000000000 +0200
-+++ xchat-2.8.8/src/common/servlist.c 2012-05-06 08:30:45.681758019 +0200
-@@ -24,7 +24,6 @@
- #include <unistd.h>
-
- #include "xchat.h"
--#include <glib/ghash.h>
-
- #include "cfgfiles.h"
- #include "fe.h"
---- xchat-2.8.8.orig/src/common/util.c 2009-08-16 11:40:16.000000000 +0200
-+++ xchat-2.8.8/src/common/util.c 2012-05-06 08:31:10.389760122 +0200
-@@ -39,7 +39,6 @@
- #include <errno.h>
- #include "xchat.h"
- #include "xchatc.h"
--#include <glib/gmarkup.h>
- #include <ctype.h>
- #include "util.h"
- #include "../../config.h"
---- xchat-2.8.8.orig/src/common/text.c 2010-05-30 04:14:41.000000000 +0200
-+++ xchat-2.8.8/src/common/text.c 2012-05-06 08:31:22.300761137 +0200
-@@ -28,7 +28,6 @@
- #include <sys/mman.h>
-
- #include "xchat.h"
--#include <glib/ghash.h>
- #include "cfgfiles.h"
- #include "chanopt.h"
- #include "plugin.h"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat_2.8.8.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat_2.8.8.bb
deleted file mode 100644
index 408c700bb..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat_2.8.8.bb
+++ /dev/null
@@ -1,39 +0,0 @@
-SUMMARY = "Full-featured IRC chat client with scripting support"
-LICENSE = "GPLv2+"
-HOMEPAGE = "http://www.xchat.org"
-SECTION = "x11/network"
-
-DEPENDS = "libgcrypt zlib gtk+ libsexy"
-DEPENDS += "gdk-pixbuf-native"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b"
-
-PR = "r2"
-
-SRC_URI = "http://xchat.org/files/source/2.8/xchat-${PV}.tar.bz2 \
- file://glib-2.32.patch \
- file://automake-foreign.patch \
- file://fix-includes-for-separate-build.patch \
-"
-
-inherit autotools gettext pkgconfig
-
-PACKAGECONFIG ??= "dbus"
-PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus-glib"
-PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl"
-PACKAGECONFIG[python] = "--enable-python,--disable-python,python"
-
-EXTRA_OECONF = "\
- --enable-maintainer-mode \
- --disable-perl \
- --disable-tcl \
-"
-
-RDEPENDS_${PN} += "dbus"
-FILES_${PN} += "${datadir}/dbus-1"
-FILES_${PN}-dbg += "${libdir}/xchat/plugins/.debug"
-
-SRC_URI[md5sum] = "6775c44f38e84d06c06c336b32c4a452"
-SRC_URI[sha256sum] = "0d6d69437b5e1e45f3e66270fe369344943de8a1190e498fafa5296315a27db0"
-
-PNBLACKLIST[xchat] ?= "Depends on blacklisted libsexy - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/xmlstarlet/xmlstarlet_1.5.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/xmlstarlet/xmlstarlet_1.6.1.bb
index bf99aff43..e3d52e616 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-support/xmlstarlet/xmlstarlet_1.5.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/xmlstarlet/xmlstarlet_1.6.1.bb
@@ -15,8 +15,8 @@ DEPENDS = "libxml2 libxslt"
SRC_URI = "${SOURCEFORGE_MIRROR}/xmlstar/${BP}.tar.gz \
file://configure.ac.patch \
file://0001-usage2c.awk-fix-wrong-basename-regexp.patch"
-SRC_URI[md5sum] = "0c6db295d0cf9ff0d439edb755b7e8f6"
-SRC_URI[sha256sum] = "47b4ed042ea2909257f2a386001af49fceb303f84da7214779ccf99fffc6bbba"
+SRC_URI[md5sum] = "f3c5dfa3b1a2ee06cd57c255cc8b70a0"
+SRC_URI[sha256sum] = "15d838c4f3375332fd95554619179b69e4ec91418a3a5296e7c631b7ed19e7ca"
inherit autotools
@@ -24,10 +24,3 @@ inherit autotools
EXTRA_OECONF="--disable-build-docs \
--with-libxml-prefix=${STAGING_LIBDIR}/.. \
--with-libxslt-prefix=${STAGING_LIBDIR}/.."
-
-#Makefile:2116: recipe for target 'src/elem-usage.c' failed
-#make[1]: *** [src/elem-usage.c] Error 1
-#/bin/bash: src/escape-usage.c: No such file or directory
-#Makefile:2116: recipe for target 'src/escape-usage.c' failed
-#make[1]: *** [src/escape-usage.c] Error 1
-PARALLEL_MAKE = ""
OpenPOWER on IntegriCloud