summaryrefslogtreecommitdiff
path: root/meta-openembedded/meta-oe/recipes-support
diff options
context:
space:
mode:
Diffstat (limited to 'meta-openembedded/meta-oe/recipes-support')
-rw-r--r--meta-openembedded/meta-oe/recipes-support/anthy/anthy/2ch_t.patch5062
-rw-r--r--meta-openembedded/meta-oe/recipes-support/anthy/anthy/native-helpers.patch58
-rw-r--r--meta-openembedded/meta-oe/recipes-support/anthy/anthy/not_build_elc.patch17
-rw-r--r--meta-openembedded/meta-oe/recipes-support/anthy/anthy/target-helpers.patch111
-rw-r--r--meta-openembedded/meta-oe/recipes-support/anthy/anthy_9100h.bb45
-rw-r--r--meta-openembedded/meta-oe/recipes-support/asio/asio.inc15
-rw-r--r--meta-openembedded/meta-oe/recipes-support/asio/asio/0001-Automatically-handle-glibc-variant-of-strerror_r-wit.patch46
-rw-r--r--meta-openembedded/meta-oe/recipes-support/asio/asio/0001-use-POSIX-poll.h-instead-of-sys-poll.h.patch64
-rw-r--r--meta-openembedded/meta-oe/recipes-support/asio/asio_1.10.6.bb11
-rw-r--r--meta-openembedded/meta-oe/recipes-support/atop/atop/0001-include-missing-header-files.patch97
-rw-r--r--meta-openembedded/meta-oe/recipes-support/atop/atop/fix-permissions.patch52
-rw-r--r--meta-openembedded/meta-oe/recipes-support/atop/atop/remove-bashisms.patch33
-rw-r--r--meta-openembedded/meta-oe/recipes-support/atop/atop/sysvinit-implement-status.patch27
-rw-r--r--meta-openembedded/meta-oe/recipes-support/atop/atop/volatiles.99_atop1
-rw-r--r--meta-openembedded/meta-oe/recipes-support/atop/atop/volatiles.atop.conf1
-rw-r--r--meta-openembedded/meta-oe/recipes-support/atop/atop_2.2.3.bb63
-rw-r--r--meta-openembedded/meta-oe/recipes-support/augeas/augeas.inc33
-rw-r--r--meta-openembedded/meta-oe/recipes-support/augeas/augeas/0001-Unset-need_charset_alias-when-building-for-musl.patch31
-rw-r--r--meta-openembedded/meta-oe/recipes-support/augeas/augeas/add-missing-argz-conditional.patch27
-rw-r--r--meta-openembedded/meta-oe/recipes-support/augeas/augeas/sepbuildfix.patch31
-rw-r--r--meta-openembedded/meta-oe/recipes-support/augeas/augeas_1.5.0.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/avro/avro-c/0001-avro-c-Fix-build-with-clang-compiler.patch37
-rw-r--r--meta-openembedded/meta-oe/recipes-support/avro/avro-c_1.8.1.bb20
-rw-r--r--meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc/0001-configure.ac-add-check-for-NO_GETCONTEXT-definition.patch29
-rw-r--r--meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc/musl_header_fix.patch27
-rw-r--r--meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc_7.6.0.bb42
-rw-r--r--meta-openembedded/meta-oe/recipes-support/canonical-multitouch/frame/pessimizing-move.patch27
-rw-r--r--meta-openembedded/meta-oe/recipes-support/canonical-multitouch/frame_2.5.0.bb24
-rw-r--r--meta-openembedded/meta-oe/recipes-support/canonical-multitouch/geis/0001-libgeis-Compare-the-first-character-of-string-to-nul.patch43
-rw-r--r--meta-openembedded/meta-oe/recipes-support/canonical-multitouch/geis/fix-indentation-for-gcc6.patch14
-rw-r--r--meta-openembedded/meta-oe/recipes-support/canonical-multitouch/geis_2.2.17.bb55
-rw-r--r--meta-openembedded/meta-oe/recipes-support/canonical-multitouch/grail_3.1.1.bb24
-rw-r--r--meta-openembedded/meta-oe/recipes-support/ccid/ccid/no-dep-on-libfl.patch18
-rw-r--r--meta-openembedded/meta-oe/recipes-support/ccid/ccid_1.4.24.bb19
-rw-r--r--meta-openembedded/meta-oe/recipes-support/ceres-solver/ceres-solver_1.14.bb20
-rw-r--r--meta-openembedded/meta-oe/recipes-support/ckermit/ckermit_302.bb61
-rw-r--r--meta-openembedded/meta-oe/recipes-support/cpprest/cpprest-2.10.2/fix-cmake-install.patch17
-rw-r--r--meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.2.bb17
-rw-r--r--meta-openembedded/meta-oe/recipes-support/ctapi-common/ctapi-common_1.1-14.bb23
-rw-r--r--meta-openembedded/meta-oe/recipes-support/daemonize/daemonize_git.bb15
-rw-r--r--meta-openembedded/meta-oe/recipes-support/daemonize/files/fix-ldflags-for-gnuhash.patch23
-rw-r--r--meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/0001-daemontools-Fix-QA-Issue.patch26
-rw-r--r--meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/0001-daemontools-native-Fix-a-warning.patch26
-rw-r--r--meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/0001-error.h-include-errno.h-instead-of-extern-int.diff25
-rw-r--r--meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/0002-supervise.c-.-supervise-may-be-a-symlink-if-it-s-da.diff47
-rw-r--r--meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/cross-compile.patch45
-rw-r--r--meta-openembedded/meta-oe/recipes-support/daemontools/daemontools_0.76.bb51
-rw-r--r--meta-openembedded/meta-oe/recipes-support/debsums/debsums_2.2.2.bb54
-rw-r--r--meta-openembedded/meta-oe/recipes-support/devmem2/devmem2.bb26
-rw-r--r--meta-openembedded/meta-oe/recipes-support/devmem2/devmem2/devmem2-fixups-2.patch91
-rw-r--r--meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util-native_0.9.bb15
-rw-r--r--meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util/0001-Revert-Makefile.am-Drop-static-dfu-util.patch68
-rw-r--r--meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util_0.9.bb15
-rw-r--r--meta-openembedded/meta-oe/recipes-support/digitemp/digitemp_git.bb25
-rw-r--r--meta-openembedded/meta-oe/recipes-support/dos2unix/dos2unix_7.4.0.bb34
-rw-r--r--meta-openembedded/meta-oe/recipes-support/dstat/dstat_0.7.3.bb22
-rw-r--r--meta-openembedded/meta-oe/recipes-support/eject/eject/eject-2.1.1-verbose.patch19
-rw-r--r--meta-openembedded/meta-oe/recipes-support/eject/eject/eject-2.1.5-error-return.patch12
-rw-r--r--meta-openembedded/meta-oe/recipes-support/eject/eject/eject-2.1.5-spaces.patch66
-rw-r--r--meta-openembedded/meta-oe/recipes-support/eject/eject/eject-timeout.patch17
-rw-r--r--meta-openembedded/meta-oe/recipes-support/eject/eject_2.1.5.bb37
-rw-r--r--meta-openembedded/meta-oe/recipes-support/enca/enca/configure-hack.patch12
-rw-r--r--meta-openembedded/meta-oe/recipes-support/enca/enca/configure-remove-dumbness.patch26
-rw-r--r--meta-openembedded/meta-oe/recipes-support/enca/enca/dont-run-tests.patch13
-rw-r--r--meta-openembedded/meta-oe/recipes-support/enca/enca/libenca-003-iconv.patch28
-rw-r--r--meta-openembedded/meta-oe/recipes-support/enca/enca/makefile-remove-tools.patch13
-rw-r--r--meta-openembedded/meta-oe/recipes-support/enca/enca_1.9.bb37
-rw-r--r--meta-openembedded/meta-oe/recipes-support/epeg/epeg_git.bb13
-rw-r--r--meta-openembedded/meta-oe/recipes-support/espeak/espeak-data_1.48.04.bb24
-rw-r--r--meta-openembedded/meta-oe/recipes-support/espeak/espeak.inc14
-rw-r--r--meta-openembedded/meta-oe/recipes-support/espeak/espeak_1.48.04.bb41
-rw-r--r--meta-openembedded/meta-oe/recipes-support/espeak/files/gcc-narrowing-warning-fix.patch56
-rw-r--r--meta-openembedded/meta-oe/recipes-support/eventlog/eventlog_0.2.13.bb21
-rw-r--r--meta-openembedded/meta-oe/recipes-support/farsight/libnice_0.1.13.bb36
-rw-r--r--meta-openembedded/meta-oe/recipes-support/fbset/fbset-2.1/fbset-2.1-fix-makefile-dep.patch31
-rw-r--r--meta-openembedded/meta-oe/recipes-support/fbset/fbset-2.1/makefile.patch11
-rw-r--r--meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes.bb23
-rw-r--r--meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes/fb.modes3
-rw-r--r--meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes/om-gta01/fb.modes29
-rw-r--r--meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes/omap3-pandora/fb.modes6
-rw-r--r--meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes/qemuarm/fb.modes17
-rw-r--r--meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes/qemumips/fb.modes17
-rw-r--r--meta-openembedded/meta-oe/recipes-support/fbset/fbset/0001-fbset-including-asm-types.h-is-needed-on-all-linux-s.patch34
-rw-r--r--meta-openembedded/meta-oe/recipes-support/fbset/fbset_2.1.bb38
-rw-r--r--meta-openembedded/meta-oe/recipes-support/fftw/fftw/0001-NEON-autodetection-segfaults-assume-neon-present.patch80
-rw-r--r--meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.7.bb80
-rw-r--r--meta-openembedded/meta-oe/recipes-support/fltk/fltk-native.bb21
-rw-r--r--meta-openembedded/meta-oe/recipes-support/fltk/fltk.bb46
-rw-r--r--meta-openembedded/meta-oe/recipes-support/fltk/fltk.inc21
-rw-r--r--meta-openembedded/meta-oe/recipes-support/fltk/fltk/0001-Fl_Preferences.cxx-do-not-use-dlopen-in-case-glibc-s.patch39
-rw-r--r--meta-openembedded/meta-oe/recipes-support/fltk/fltk/0002-always-build-fluid-and-export-pointers.patch31
-rw-r--r--meta-openembedded/meta-oe/recipes-support/fltk/fltk/0003-CMake-build-Force-shared-libs-with-unsuffixed-names.patch41
-rw-r--r--meta-openembedded/meta-oe/recipes-support/fltk/fltk/disable_test.patch11
-rw-r--r--meta-openembedded/meta-oe/recipes-support/fltk/fltk/fltk-no-freetype-config.patch40
-rw-r--r--meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/0001-Fix-gstreamer-1.0-detection.patch27
-rw-r--r--meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/winpr-makecert-Build-with-install-RPATH.patch31
-rw-r--r--meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_git.bb86
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.5.bb48
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gflags/gflags_2.2.0.bb23
-rw-r--r--meta-openembedded/meta-oe/recipes-support/glog/glog/0001-configure.ac-Allow-user-to-disable-gflags.patch35
-rw-r--r--meta-openembedded/meta-oe/recipes-support/glog/glog_0.3.4.bb23
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_2017-08-20.18.bb36
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-Support-Atomic-ops-on-clang.patch31
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-Use-ucontext_t-instead-of-struct-ucontext.patch34
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-disbale-heap-checkers-and-debug-allocator-on-musl.patch26
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-fix-build-with-musl-libc.patch59
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-include-fcntl.h-for-loff_t-definition.patch26
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/disable_libunwind_aarch64.patch30
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/sgidef.patch25
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.6.1.bb27
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gpm/gpm/0001-Use-sigemptyset-API-instead-of-__sigemptyset.patch34
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gpm/gpm/gpm.service.in9
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gpm/gpm/init32
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gpm/gpm/no-docs.patch18
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gpm/gpm/processcreds.patch12
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gpm/gpm_git.bb47
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gradm/gradm/0001-Makefile-Append-instead-of-overriding-LDFLAGS.patch26
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gradm/gradm/0001-Makefile-remove-strip.patch61
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gradm/gradm_3.1.bb52
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gsl/gsl.inc9
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gsl/gsl_1.15.bb7
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gsoap/gsoap/0001-Fix-out-of-tree-builds.patch178
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gsoap/gsoap/0001-stdgsoap2-Fix-build-with-musl.patch63
-rw-r--r--meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.51.bb44
-rw-r--r--meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/0001-backtrace-Replace-struct-ucontext-with-ucontext_t.patch37
-rw-r--r--meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp-0.3-beta15-autodetect-717479.patch92
-rw-r--r--meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp-no-nls-support.patch66
-rw-r--r--meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp.db531
-rw-r--r--meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp_0.3-beta15-52.diff2288
-rw-r--r--meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/init100
-rw-r--r--meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp_0.3-beta15.bb33
-rw-r--r--meta-openembedded/meta-oe/recipes-support/hidapi/hidapi_git.bb15
-rw-r--r--meta-openembedded/meta-oe/recipes-support/htop/files/0001-Use-pkg-config.patch39
-rw-r--r--meta-openembedded/meta-oe/recipes-support/htop/htop_2.1.0.bb35
-rw-r--r--meta-openembedded/meta-oe/recipes-support/hunspell/hunspell_1.6.2.bb17
-rw-r--r--meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_git.bb23
-rw-r--r--meta-openembedded/meta-oe/recipes-support/iksemel/iksemel/avoid-obsolete-gnutls-apis.patch55
-rw-r--r--meta-openembedded/meta-oe/recipes-support/iksemel/iksemel/fix-configure-option-parsing.patch62
-rw-r--r--meta-openembedded/meta-oe/recipes-support/iksemel/iksemel_1.5.bb24
-rw-r--r--meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.7.bb82
-rw-r--r--meta-openembedded/meta-oe/recipes-support/inih/libinih_git.bb19
-rw-r--r--meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools/inotify-nosys-fix-system-call-number.patch31
-rw-r--r--meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools/inotifywait-fix-compile-error-with-GCC-6.patch45
-rw-r--r--meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools_git.bb24
-rw-r--r--meta-openembedded/meta-oe/recipes-support/joe/joe/0001-adjust-signature-of-main.patch30
-rw-r--r--meta-openembedded/meta-oe/recipes-support/joe/joe_3.1.bb17
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lcms/lcms_2.7.bb15
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.11.bb27
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libatasmart/files/0001-Makefile.am-add-CFLAGS-and-LDFLAGS-definiton.patch41
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libatasmart/libatasmart_0.19.bb21
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libbytesize/files/0001-remove-python2-support.patch30
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_0.10.bb34
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libcanberra/files/0001-build-gtk-and-gtk3-version-for-canberra_gtk_play.patch92
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libcanberra/libcanberra_0.30.bb62
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libcyusbserial/libcyusbserial_git.bb18
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libee/libee.inc39
-rwxr-xr-xmeta-openembedded/meta-oe/recipes-support/libee/libee/ezapi1.sh14
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libee/libee/libee-parallel-make.patch20
-rwxr-xr-xmeta-openembedded/meta-oe/recipes-support/libee/libee/run-ptest3
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libee/libee_0.4.1.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.3.4.bb20
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libestr/libestr_0.1.10.bb11
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.4.bb31
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libgit2/libgit2_0.24.3.bb23
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod.inc21
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_0.3.3.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.0.1.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb44
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libjs/libjs-jquery_1.7.2.bb25
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libjs/libjs-sizzle_1.10.18.bb19
-rw-r--r--meta-openembedded/meta-oe/recipes-support/liblinebreak/liblinebreak_1.2.bb11
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.55.bb27
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libnih/libnih-1.0.3/0001-signal.c-SIGCLD-and-SIGCHILD-are-same-on-sytem-V-sys.patch28
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libnih/libnih-1.0.3/libnih_1.0.3-4ubuntu16.patch3593
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libnih/libnih_1.0.3.bb38
-rw-r--r--meta-openembedded/meta-oe/recipes-support/liboauth/liboauth_1.0.3.bb16
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libol/libol/configure.patch14
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libol/libol_0.3.18.bb20
-rw-r--r--meta-openembedded/meta-oe/recipes-support/liboop/liboop/explicit_linking.patch20
-rw-r--r--meta-openembedded/meta-oe/recipes-support/liboop/liboop/new-readline-typedef.patch11
-rw-r--r--meta-openembedded/meta-oe/recipes-support/liboop/liboop/read_bugfixes.patch40
-rw-r--r--meta-openembedded/meta-oe/recipes-support/liboop/liboop/tcl_dev.patch22
-rw-r--r--meta-openembedded/meta-oe/recipes-support/liboop/liboop_1.0.bb23
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.7.bb26
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libraw1394/libraw1394_2.1.2.bb11
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf/use.pkg-config.for.freetype2.patch62
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf_2.0.11.bb29
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf/automake_foreign.patch21
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf/use.pkg-config.for.freetype2.patch62
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf_2.0.14.bb30
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libsmi/libsmi/libsmi-fix-the-test-dump-files.patch277
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libsmi/libsmi/smi.conf48
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libsmi/libsmi_0.5.0.bb32
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libsoc/libsoc_0.8.2.bb32
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libssh/libssh_0.7.3.bb34
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libssh2/libssh2_1.8.0.bb26
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libtar/files/0002-Do-not-strip-libtar.patch25
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libtar/files/fix_libtool_sysroot.patch19
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libtar/libtar_1.2.20.bb21
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libteam/libteam/0001-include-sys-select.h-for-fd_set-definition.patch28
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libteam/libteam/0001-team_basic_test.py-disable-RedHat-specific-test.patch32
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libteam/libteam/0002-teamd-Re-adjust-include-header-order.patch40
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libteam/libteam/run-ptest3
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libteam/libteam_1.27.bb42
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libtinyxml/libtinyxml/enforce-use-stl.patch20
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libtinyxml/libtinyxml/entity-encoding.patch62
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libtinyxml/libtinyxml_2.6.2.bb45
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_5.0.1.bb17
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libusbg/libusbg/0001-Fix-out-of-tree-builds.patch39
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libusbg/libusbg_git.bb16
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libutempter/libutempter.bb41
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libutempter/libutempter/0001-Fix-macro-error.patch36
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libutempter/libutempter/libutempter-remove-glibc-assumption.patch81
-rw-r--r--meta-openembedded/meta-oe/recipes-support/links/files/ac-prog-cxx.patch11
-rw-r--r--meta-openembedded/meta-oe/recipes-support/links/files/links2.desktop14
-rw-r--r--meta-openembedded/meta-oe/recipes-support/links/links-x11_2.7.bb31
-rw-r--r--meta-openembedded/meta-oe/recipes-support/links/links.inc17
-rw-r--r--meta-openembedded/meta-oe/recipes-support/links/links_2.7.bb13
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lio-utils/lio-utils/0001-Makefiles-Respect-environment-variables-and-add-LDFL.patch61
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb62
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lockdev/lockdev_git.bb22
-rw-r--r--meta-openembedded/meta-oe/recipes-support/log4c/log4c/0001-Use-the-API-properly-in-the-example-format-security-.patch26
-rw-r--r--meta-openembedded/meta-oe/recipes-support/log4c/log4c/fix_configure_with-expat.patch21
-rw-r--r--meta-openembedded/meta-oe/recipes-support/log4c/log4c_1.2.4.bb21
-rw-r--r--meta-openembedded/meta-oe/recipes-support/log4cpp/files/fix-pc.patch20
-rw-r--r--meta-openembedded/meta-oe/recipes-support/log4cpp/log4cpp_1.1.2.bb22
-rw-r--r--meta-openembedded/meta-oe/recipes-support/logwarn/logwarn_1.0.14.bb52
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lvm2/files/0001-Avoid-bashisms-in-init-scripts.patch182
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lvm2/files/0001-implement-libc-specific-reopen_stream.patch79
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lvm2/files/0002-Guard-use-of-mallinfo-with-__GLIBC__.patch30
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lvm2/files/0003-include-fcntl.h-for-O_-defines-and-fcntl-signature.patch30
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lvm2/files/0004-tweak-MODPROBE_CMD-for-cross-compile.patch38
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lvm2/files/0005-do-not-build-manual.patch58
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lvm2/files/0006-start-lvm2-monitor.service-after-tmp.mount.patch32
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lvm2/files/lvm.conf326
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.02.171.bb16
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc60
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-explicitly-do-not-install-libdm.patch36
-rw-r--r--meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.02.171.bb54
-rw-r--r--meta-openembedded/meta-oe/recipes-support/mailcap/mailcap_2.1.48.bb26
-rw-r--r--meta-openembedded/meta-oe/recipes-support/mbuffer/mbuffer_20140310.bb23
-rw-r--r--meta-openembedded/meta-oe/recipes-support/mcelog/mce-inject_git.bb20
-rw-r--r--meta-openembedded/meta-oe/recipes-support/mcelog/mcelog/run-ptest3
-rw-r--r--meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_1.49.bb35
-rw-r--r--meta-openembedded/meta-oe/recipes-support/mg/mg/0001-Undefine-REGEX-for-musl-based-systems.patch39
-rw-r--r--meta-openembedded/meta-oe/recipes-support/mg/mg/0001-fileio-Include-sys-param.h-for-MAXNAMLEN.patch25
-rw-r--r--meta-openembedded/meta-oe/recipes-support/mg/mg/0002-fileio-Define-DEFFILEMODE-if-platform-is-missing.patch28
-rw-r--r--meta-openembedded/meta-oe/recipes-support/mg/mg_20170401.bb37
-rw-r--r--meta-openembedded/meta-oe/recipes-support/mime-support/mime-support_3.48.bb58
-rw-r--r--meta-openembedded/meta-oe/recipes-support/mini-iconv/mini-iconv.bb20
-rw-r--r--meta-openembedded/meta-oe/recipes-support/minini/minini_1.2.b.bb39
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-kpartx-include-limits.h-for-PATH_MAX.patch29
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-multipath-attempt-at-common-multipath.rules.patch107
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0002-RH-fixup-udev-rules-for-redhat.patch110
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0003-RH-Remove-the-property-blacklist-exception-builtin.patch70
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0004-RH-don-t-start-without-a-config-file.patch108
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0005-RH-add-mpathconf.patch648
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0006-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch166
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0007-RH-trigger-change-uevent-on-new-device-creation.patch138
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0008-libmultipath-change-how-RADOS-checker-is-enabled.patch56
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0009-multipath-set-verbosity-to-default-during-config.patch40
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0010-mpath-skip-device-configs-without-vendor-product.patch37
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0011-multipathd-fix-show-maps-json-crash.patch38
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0012-multipath-tools-modify-Makefile.inc-for-cross-compil.patch58
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0013-Always-use-devmapper.patch53
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0014-Always-use-devmapper-for-kpartx.patch37
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/files/multipath.conf.example90
-rwxr-xr-xmeta-openembedded/meta-oe/recipes-support/multipath-tools/files/multipathd.oe146
-rw-r--r--meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.7.1.bb113
-rw-r--r--meta-openembedded/meta-oe/recipes-support/nano/nano.inc17
-rw-r--r--meta-openembedded/meta-oe/recipes-support/nano/nano_2.9.3.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/ne10/ne10/0001-CMakeLists.txt-Remove-mthumb-interwork.patch44
-rw-r--r--meta-openembedded/meta-oe/recipes-support/ne10/ne10/0001-Dont-specify-march-explicitly.patch38
-rw-r--r--meta-openembedded/meta-oe/recipes-support/ne10/ne10_1.2.1.bb46
-rw-r--r--meta-openembedded/meta-oe/recipes-support/neon/neon/pkgconfig.patch15
-rw-r--r--meta-openembedded/meta-oe/recipes-support/neon/neon_0.30.2.bb38
-rw-r--r--meta-openembedded/meta-oe/recipes-support/nmon/nmon/0001-lmon16g.c-Adjust-system-headers.patch46
-rw-r--r--meta-openembedded/meta-oe/recipes-support/nmon/nmon_16g.bb31
-rw-r--r--meta-openembedded/meta-oe/recipes-support/numactl/numactl/0001-define-run-test-target.patch32
-rw-r--r--meta-openembedded/meta-oe/recipes-support/numactl/numactl/Fix-the-test-output-format.patch64
-rw-r--r--meta-openembedded/meta-oe/recipes-support/numactl/numactl/Makefile7
-rw-r--r--meta-openembedded/meta-oe/recipes-support/numactl/numactl/fix-null-pointer.patch28
-rwxr-xr-xmeta-openembedded/meta-oe/recipes-support/numactl/numactl/run-ptest9
-rw-r--r--meta-openembedded/meta-oe/recipes-support/numactl/numactl_git.bb61
-rw-r--r--meta-openembedded/meta-oe/recipes-support/ode/ode/install.patch23
-rw-r--r--meta-openembedded/meta-oe/recipes-support/onig/files/configure.patch13
-rw-r--r--meta-openembedded/meta-oe/recipes-support/onig/files/do-not-use-system-headers.patch44
-rw-r--r--meta-openembedded/meta-oe/recipes-support/onig/onig_5.9.6.bb19
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/tools.conf2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/vmtoolsd.init66
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/vmtoolsd.service11
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Remove-assumptions-about-glibc-being-only-libc-imple.patch45
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch41
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-add-include-sys-sysmacros.h.patch33
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-include-poll.h-instead-of-obsolete-sys-poll.h.patch24
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0003-Rename-poll.h-to-vm_poll.h.patch756
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0004-Add-Wno-incompatible-pointer-types-and-Wno-error-add.patch31
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0005-Use-configure-test-for-struct-timespec.patch45
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0006-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch58
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0007-Use-configure-to-test-for-feature-instead-of-platfor.patch144
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0008-use-posix-strerror_r-unless-gnu.patch30
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0009-Add-support-for-building-with-system-libtirpc.patch342
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0010-gnu-ucontext.patch65
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0011-Use-configure-test-for-sys-stat.h-include.patch25
-rw-r--r--meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.1.5.bb114
-rw-r--r--meta-openembedded/meta-oe/recipes-support/openct/openct/etc-openct.udev.in-disablePROGRAM.patch31
-rw-r--r--meta-openembedded/meta-oe/recipes-support/openct/openct/etc-openct_usb.in-modify-UDEVINFO.patch35
-rw-r--r--meta-openembedded/meta-oe/recipes-support/openct/openct/openct.init89
-rw-r--r--meta-openembedded/meta-oe/recipes-support/openct/openct/openct.service13
-rw-r--r--meta-openembedded/meta-oe/recipes-support/openct/openct/openct.sysconfig5
-rw-r--r--meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb94
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch38
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Dont-use-isystem.patch26
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-build-workaround-GCC-7.1.1-compilation-issue-with-sa.patch127
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-carotene-don-t-use-__asm__-with-aarch64.patch1250
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-Do-not-enable-asm-with-clang.patch993
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-Make-opencv-ts-create-share-library-intead-of-static.patch26
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-imgcodecs-refactoring-improve-code-quality.patch656
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opencv/opencv/0003-To-fix-errors-as-following.patch80
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opencv/opencv/0003-imgproc-test-add-checks-for-remove-call.patch186
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opencv/opencv/CVE-2017-14136.patch288
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opencv/opencv/already-exists.patch394
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opencv/opencv/fixpkgconfig.patch29
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opencv/opencv/javagen.patch16
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opencv/opencv/protobuf.patch57
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opencv/opencv/tinydnn.patch34
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opencv/opencv/uselocalxfeatures.patch20
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.3.bb203
-rw-r--r--meta-openembedded/meta-oe/recipes-support/openldap/openldap/initscript35
-rw-r--r--meta-openembedded/meta-oe/recipes-support/openldap/openldap/install-strip.patch14
-rw-r--r--meta-openembedded/meta-oe/recipes-support/openldap/openldap/kill-icu.patch30
-rw-r--r--meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-2.4.28-gnutls-gcrypt.patch17
-rw-r--r--meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-CVE-2015-3276.patch59
-rw-r--r--meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-m4-pthread.patch20
-rw-r--r--meta-openembedded/meta-oe/recipes-support/openldap/openldap/slapd.service10
-rw-r--r--meta-openembedded/meta-oe/recipes-support/openldap/openldap/thread_stub.patch20
-rw-r--r--meta-openembedded/meta-oe/recipes-support/openldap/openldap/use-urandom.patch38
-rw-r--r--meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.45.bb256
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.16.0.bb44
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opensync/wbxml2_0.10.8.bb23
-rw-r--r--meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/checkserverkey20
-rw-r--r--meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/loadmof.sh118
-rw-r--r--meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/novell-openwbem-root-acl.mof21
-rw-r--r--meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/openwbem-etc_pam.d_openwbem7
-rw-r--r--meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/openwbem-owcimomd.init131
-rw-r--r--meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/openwbem-rpmlintrc2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/owcimomd.service12
-rw-r--r--meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/rmmof.sh53
-rw-r--r--meta-openembedded/meta-oe/recipes-support/p910nd/p910nd/fix-var-lock.patch30
-rw-r--r--meta-openembedded/meta-oe/recipes-support/p910nd/p910nd_0.95.bb22
-rw-r--r--meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.22.bb49
-rw-r--r--meta-openembedded/meta-oe/recipes-support/picocom/picocom_git.bb23
-rw-r--r--meta-openembedded/meta-oe/recipes-support/pidgin/libotr/fix_qa-issue_include.patch18
-rw-r--r--meta-openembedded/meta-oe/recipes-support/pidgin/libotr/sepbuild.patch16
-rw-r--r--meta-openembedded/meta-oe/recipes-support/pidgin/libotr_4.1.1.bb15
-rw-r--r--meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr_4.0.2.bb15
-rw-r--r--meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/pidgin-cross-python-265.patch42
-rw-r--r--meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/purple-OE-branding-25.patch24
-rw-r--r--meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/sanitize-configure.ac.patch43
-rw-r--r--meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.12.0.bb120
-rw-r--r--meta-openembedded/meta-oe/recipes-support/pngcheck/pngcheck/0001-make-Respect-variables-from-environement.patch60
-rw-r--r--meta-openembedded/meta-oe/recipes-support/pngcheck/pngcheck/0001-png-fix-IDAT-windowsize-Fix-format-string-errors-in-.patch36
-rw-r--r--meta-openembedded/meta-oe/recipes-support/pngcheck/pngcheck/10-pngsplit-format-strings.patch40
-rw-r--r--meta-openembedded/meta-oe/recipes-support/pngcheck/pngcheck_2.3.0.bb29
-rw-r--r--meta-openembedded/meta-oe/recipes-support/poco/poco/run-ptest9
-rw-r--r--meta-openembedded/meta-oe/recipes-support/poco/poco_1.8.0.1.bb106
-rw-r--r--meta-openembedded/meta-oe/recipes-support/poppler/poppler-data_0.4.8.bb36
-rw-r--r--meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-Do-not-overwrite-all-our-build-flags.patch38
-rw-r--r--meta-openembedded/meta-oe/recipes-support/poppler/poppler/0002-CairoOutputDev.cc-fix-build-error-when-using-fixedpo.patch100
-rw-r--r--meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.63.0.bb56
-rw-r--r--meta-openembedded/meta-oe/recipes-support/portaudio/files/ldflags.patch51
-rw-r--r--meta-openembedded/meta-oe/recipes-support/portaudio/portaudio-v19_20161030.bb32
-rw-r--r--meta-openembedded/meta-oe/recipes-support/pps-tools/pps-tools_git.bb17
-rw-r--r--meta-openembedded/meta-oe/recipes-support/procmail/procmail/from-debian-to-fix-compile-errors.patch606
-rw-r--r--meta-openembedded/meta-oe/recipes-support/procmail/procmail/from-debian-to-fix-man-file.patch83
-rw-r--r--meta-openembedded/meta-oe/recipes-support/procmail/procmail/from-debian-to-modify-parameters.patch127
-rw-r--r--meta-openembedded/meta-oe/recipes-support/procmail/procmail/man-file-mailstat.1-from-debian.patch60
-rw-r--r--meta-openembedded/meta-oe/recipes-support/procmail/procmail_3.22.bb45
-rw-r--r--meta-openembedded/meta-oe/recipes-support/pv/pv_1.5.3.bb11
-rw-r--r--meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/Makefile3
-rw-r--r--meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/i2c.patch15
-rw-r--r--meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/munmap.patch22
-rw-r--r--meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/pxaregs.c1975
-rw-r--r--meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/serial.patch14
-rw-r--r--meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/usb.patch17
-rw-r--r--meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs_1.14.bb25
-rw-r--r--meta-openembedded/meta-oe/recipes-support/raptor2/files/0001-configure.ac-do-additional-checks-on-libxml2-also-wh.patch34
-rw-r--r--meta-openembedded/meta-oe/recipes-support/raptor2/raptor2_2.0.15.bb25
-rw-r--r--meta-openembedded/meta-oe/recipes-support/rdfind/files/reproducible_build.patch46
-rw-r--r--meta-openembedded/meta-oe/recipes-support/rdfind/rdfind_1.3.4.bb17
-rw-r--r--meta-openembedded/meta-oe/recipes-support/read-edid/read-edid/0001-configure-remove-check-for-x86.h-we-don-t-build-get-.patch28
-rw-r--r--meta-openembedded/meta-oe/recipes-support/read-edid/read-edid_2.0.0.bb23
-rw-r--r--meta-openembedded/meta-oe/recipes-support/rsnapshot/rsnapshot/configure-fix-cmd_rsync.patch44
-rw-r--r--meta-openembedded/meta-oe/recipes-support/rsnapshot/rsnapshot_git.bb53
-rw-r--r--meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_svn.bb22
-rw-r--r--meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_svn.bb21
-rw-r--r--meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_svn.bb32
-rw-r--r--meta-openembedded/meta-oe/recipes-support/satyr/files/0001-do-not-support-python2.patch84
-rw-r--r--meta-openembedded/meta-oe/recipes-support/satyr/files/0002-fix-compile-failure-against-musl-C-library.patch28
-rw-r--r--meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.23.bb33
-rw-r--r--meta-openembedded/meta-oe/recipes-support/sdparm/files/make-sysroot-work.patch31
-rw-r--r--meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.10.bb24
-rw-r--r--meta-openembedded/meta-oe/recipes-support/serial-utils/pty-forward-native.bb20
-rw-r--r--meta-openembedded/meta-oe/recipes-support/serial-utils/serial-forward/0001-serial_forward-Disable-default-static-linking.patch29
-rw-r--r--meta-openembedded/meta-oe/recipes-support/serial-utils/serial-forward_git.bb14
-rw-r--r--meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.42.bb21
-rw-r--r--meta-openembedded/meta-oe/recipes-support/sharutils/sharutils/0001-Fix-build-with-clang.patch29
-rw-r--r--meta-openembedded/meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb21
-rw-r--r--meta-openembedded/meta-oe/recipes-support/smem/smem_1.4.bb27
-rw-r--r--meta-openembedded/meta-oe/recipes-support/spitools/spitools_git.bb19
-rw-r--r--meta-openembedded/meta-oe/recipes-support/srecord/files/add-option-to-remove-docs.patch57
-rw-r--r--meta-openembedded/meta-oe/recipes-support/srecord/srecord_1.64.bb23
-rw-r--r--meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0001-Use-pragma-once-unconditionally.patch872
-rw-r--r--meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0001-ssieventmonitor-ordered-comparison-between-pointers-.patch39
-rw-r--r--meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0002-Convert-macros-into-functions.patch123
-rw-r--r--meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0003-Replace-canonicalize_file_name-with-realpath-API.patch33
-rw-r--r--meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0004-engine-Fix-indentation-and-missing-semi-colon.patch54
-rw-r--r--meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0005-engine-Define-SENTINEL.patch40
-rw-r--r--meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0006-tools-Add-missing-includes-and-use-realpath-instead-.patch40
-rw-r--r--meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/configure-cflags.patch21
-rw-r--r--meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi_1.0.1.bb35
-rw-r--r--meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0001-dpkg-start-stop-daemon-Accept-SIG-prefixed-signal-na.patch39
-rw-r--r--meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.17.25.bb38
-rw-r--r--meta-openembedded/meta-oe/recipes-support/synergy/synergy_git.bb35
-rw-r--r--meta-openembedded/meta-oe/recipes-support/syslog-ng/files/Fix-the-memory-leak-problem-when-HAVE_ENVIRON-defined.patch29
-rw-r--r--meta-openembedded/meta-oe/recipes-support/syslog-ng/files/configure.ac-add-option-enable-thread-tls-to-manage-.patch47
-rw-r--r--meta-openembedded/meta-oe/recipes-support/syslog-ng/files/fix-config-libnet.patch63
-rw-r--r--meta-openembedded/meta-oe/recipes-support/syslog-ng/files/fix-invalid-ownership.patch25
-rw-r--r--meta-openembedded/meta-oe/recipes-support/syslog-ng/files/initscript62
-rw-r--r--meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf155
-rw-r--r--meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch31
-rw-r--r--meta-openembedded/meta-oe/recipes-support/syslog-ng/files/volatiles.03_syslog-ng1
-rw-r--r--meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc114
-rw-r--r--meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_3.8.1.bb11
-rw-r--r--meta-openembedded/meta-oe/recipes-support/system-config-keyboard/system-config-keyboard_1.4.0.bb28
-rw-r--r--meta-openembedded/meta-oe/recipes-support/tbb/tbb.bb44
-rw-r--r--meta-openembedded/meta-oe/recipes-support/tbb/tbb/0001-mallinfo-is-glibc-specific-API-mark-it-so.patch37
-rw-r--r--meta-openembedded/meta-oe/recipes-support/tbb/tbb/cross-compile.patch39
-rw-r--r--meta-openembedded/meta-oe/recipes-support/tbb/tbb/tbb.pc11
-rw-r--r--meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/files/0001-do-not-strip-pdata_tools-at-do_install.patch33
-rwxr-xr-xmeta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.6.3.bb18
-rw-r--r--meta-openembedded/meta-oe/recipes-support/tokyocabinet/tokyocabinet/remove-hard-coded-include-and-lib-paths.patch43
-rw-r--r--meta-openembedded/meta-oe/recipes-support/tokyocabinet/tokyocabinet_1.4.48.bb27
-rw-r--r--meta-openembedded/meta-oe/recipes-support/toscoterm/toscoterm_git.bb29
-rw-r--r--meta-openembedded/meta-oe/recipes-support/tree/tree_1.7.0.bb21
-rw-r--r--meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-Make-udev-rules-directory-configurable.patch89
-rw-r--r--meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-fix-build-with-newer-glibc-versions.patch27
-rw-r--r--meta-openembedded/meta-oe/recipes-support/udisks/udisks/optional-depends.patch498
-rw-r--r--meta-openembedded/meta-oe/recipes-support/udisks/udisks/udisks-1.0.5-fix-service-file.patch32
-rw-r--r--meta-openembedded/meta-oe/recipes-support/udisks/udisks2/0001-data-fix-out-of-tree-build.patch35
-rw-r--r--meta-openembedded/meta-oe/recipes-support/udisks/udisks2/non-gnu-libc.patch26
-rw-r--r--meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.7.6.bb49
-rw-r--r--meta-openembedded/meta-oe/recipes-support/udisks/udisks_1.0.5.bb46
-rw-r--r--meta-openembedded/meta-oe/recipes-support/uim/uim/0001-Add-support-for-aarch64.patch80
-rw-r--r--meta-openembedded/meta-oe/recipes-support/uim/uim/0001-fix-bug-for-cross-compile.patch26
-rw-r--r--meta-openembedded/meta-oe/recipes-support/uim/uim/uim-module-manager.patch21
-rw-r--r--meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.6.bb144
-rw-r--r--meta-openembedded/meta-oe/recipes-support/unixodbc/files/do-not-use-libltdl-source-directory.patch43
-rw-r--r--meta-openembedded/meta-oe/recipes-support/unixodbc/unixodbc_2.3.6.bb27
-rw-r--r--meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.7.bb34
-rw-r--r--meta-openembedded/meta-oe/recipes-support/uriparser/uriparser_0.8.4.bb14
-rw-r--r--meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20170205.bb19
-rw-r--r--meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.5.0.bb27
-rw-r--r--meta-openembedded/meta-oe/recipes-support/usbpath/usbpath/configure.patch11
-rw-r--r--meta-openembedded/meta-oe/recipes-support/usbpath/usbpath_svn.bb21
-rwxr-xr-xmeta-openembedded/meta-oe/recipes-support/uthash/uthash/run-ptest10
-rw-r--r--meta-openembedded/meta-oe/recipes-support/uthash/uthash_2.0.2.bb46
-rw-r--r--meta-openembedded/meta-oe/recipes-support/utouch/files/0001-include-sys-stat.h-for-fixing-build-issue-on-musl.patch29
-rw-r--r--meta-openembedded/meta-oe/recipes-support/utouch/files/remove-man-page-creation.patch16
-rw-r--r--meta-openembedded/meta-oe/recipes-support/utouch/utouch-evemu_git.bb17
-rw-r--r--meta-openembedded/meta-oe/recipes-support/utouch/utouch-frame_git.bb20
-rw-r--r--meta-openembedded/meta-oe/recipes-support/utouch/utouch-mtview_git.bb19
-rw-r--r--meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/Makefile.utils45
-rw-r--r--meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.2.8.bb78
-rw-r--r--meta-openembedded/meta-oe/recipes-support/vim/files/CVE-2017-17087.patch70
-rw-r--r--meta-openembedded/meta-oe/recipes-support/vim/files/disable_acl_header_check.patch27
-rw-r--r--meta-openembedded/meta-oe/recipes-support/vim/files/vim-add-knob-whether-elf.h-are-checked.patch38
-rw-r--r--meta-openembedded/meta-oe/recipes-support/vim/vim-tiny_8.0.0983.bb13
-rw-r--r--meta-openembedded/meta-oe/recipes-support/vim/vim_8.0.0983.bb114
-rw-r--r--meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/0001-Fix-issue-599.patch31
-rw-r--r--meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch155
-rw-r--r--meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/9ddb300d874a30db35e3ad58f188944bef0bf31b.patch600
-rw-r--r--meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/disable-tests.patch51
-rw-r--r--meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp_0.7.0.bb21
-rw-r--r--meta-openembedded/meta-oe/recipes-support/wmiconfig/wmiconfig/0001-makefile-Pass-CFLAGS-to-compile.patch26
-rw-r--r--meta-openembedded/meta-oe/recipes-support/wmiconfig/wmiconfig/0002-fix-err-API-to-have-format-string.patch656
-rw-r--r--meta-openembedded/meta-oe/recipes-support/wmiconfig/wmiconfig_svn.bb25
-rw-r--r--meta-openembedded/meta-oe/recipes-support/xdelta/xdelta3_3.0.11.bb18
-rw-r--r--meta-openembedded/meta-oe/recipes-support/xdg-user-dirs/xdg-user-dirs_0.17.bb16
-rw-r--r--meta-openembedded/meta-oe/recipes-support/xmlstarlet/files/0001-usage2c.awk-fix-wrong-basename-regexp.patch37
-rw-r--r--meta-openembedded/meta-oe/recipes-support/xmlstarlet/files/configure.ac.patch28
-rw-r--r--meta-openembedded/meta-oe/recipes-support/xmlstarlet/xmlstarlet_1.6.1.bb26
-rw-r--r--meta-openembedded/meta-oe/recipes-support/xorg-xrdp/xorgxrdp_0.2.5.bb23
-rw-r--r--meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/0001-Added-req_distinguished_name-in-etc-xrdp-openssl.con.patch33
-rw-r--r--meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/0001-Fix-of-CVE-2017-16927.patch148
-rw-r--r--meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/0001-Fix-sesman.ini-and-xrdp.ini.patch75
-rw-r--r--meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/0001-Fix-the-compile-error.patch35
-rw-r--r--meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/xrdp.sysconfig4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/xrdp/xrdp_0.9.4.bb99
-rw-r--r--meta-openembedded/meta-oe/recipes-support/zbar/zbar/0001-make-relies-GNU-extentions.patch32
-rw-r--r--meta-openembedded/meta-oe/recipes-support/zbar/zbar/0001-undefine-__va_arg_pack.patch51
-rw-r--r--meta-openembedded/meta-oe/recipes-support/zbar/zbar_0.10.bb28
-rw-r--r--meta-openembedded/meta-oe/recipes-support/zile/files/remove-help2man.patch28
-rw-r--r--meta-openembedded/meta-oe/recipes-support/zile/zile_2.4.14.bb25
504 files changed, 41540 insertions, 0 deletions
diff --git a/meta-openembedded/meta-oe/recipes-support/anthy/anthy/2ch_t.patch b/meta-openembedded/meta-oe/recipes-support/anthy/anthy/2ch_t.patch
new file mode 100644
index 000000000..bf9bdb63d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/anthy/anthy/2ch_t.patch
@@ -0,0 +1,5062 @@
+source: shamelessly stolen from debian ;-)
+purpose: add some entries particularly useful in Japanese 2channel anonymous website
+ (at least that is my understanding ;-))
+
+--- anthy-5414.orig/mkanthydic/2ch.t
++++ anthy-5414/mkanthydic/2ch.t
+@@ -0,0 +1,5055 @@
++# 2chÍѸì¤ÎCanna·Á¼°¼­½ñ
++# HARUYAMA Seigo haruyama@unixuser.org
++# ¸í¤ê¤äÉÊ»ì¤Ï¤³¤¦¤¹¤Ù¤­ ¤Ê¤É ¤¤¤Ã¤Ñ¤¤¤¢¤ë¤Ï¤º¤Ê¤Î¤Ç
++# ¤´»ØŦ¤è¤í¤·¤¯
++# »²¹Í: http://freezone.kakiko.com/jiten/index.html
++# http://members.tripod.co.jp/maruheso/aadic/index.html
++# http://isweb33.infoseek.co.jp/computer/gikosite/ (403 Forbidden)
++# http://cannadic.oucrc.org/
++# http://www.kyoto.trans-nt.com/anthy/
++# http://www.media-k.co.jp/jiten/
++# »²¹Í¤Ë¤·¤Æ¤¤¤ë¼­½ñ¤ÎÇÛÉե饤¥»¥ó¥¹¤¬¤Ï¤Ã¤­¤ê¤·¤Þ¤»¤ó¤¬
++# ¼ýÏ¿¤µ¤ì¤¿¸ì¤Ë´Ø¤·¤Æ¤Ï¥Ñ¥Ö¥ê¥Ã¥¯¥É¥á¥¤¥ó¤È²ò¤·¤ÆÌäÂê¤Ê¤¤
++# ¤ÈȽÃǤ·¤Æ¤¤¤Þ¤¹.
++#
++# ¤³¤Î¼­½ñ¤Ï̵ÊݾڤǤ¹¡£
++#
++# 2004/5/19ÈÇ
++#
++1¤Î¤¤¤·¤å¤¦¤«¤ó #T35 >>1¤Î°ì½µ´Ö
++1¤Î¤¤¤Ã¤·¤å¤¦¤«¤ó #JN >>1¤Î°ì½µ´Ö
++1¤Î¤ª¤µ¤Ê¤Ê¤¸¤ß #JN 1¤ÎÍĤʤ¸¤ß
++2¤Á¤ã¤ó¤»¤¤¤·¤ó¤Ó¤ç¤¦¤¤¤ó #JN 2chÀº¿Àɱ¡
++911¤¸¤±¤ó #T35 911»ö·ï
++¤¢¡¼¤¦¡¼ #CJ ¤¢¡Á¤¦¡Á
++¤¢¡¼¤¸¤å #KK ¥¢¡¼¥¸¥å
++¤¢¡¼¤¸¤å #T35 ¥¢¡¼¥¸¥å
++¤¢¡¼¤ë¤¢¡¼¤ë #T35 RR
++¤¢¡¼¤í¤ó¤â¤é¤é¡¼ #JN ¥¢¡¼¥í¥ó¥â¥é¥é¡¼
++¤¢¤¢¤¤¤¨¤Ð¤¸¤ç¤¦¤æ¤¦ #CJ ¤¢¤¢¸À¤¨¤Ð¾åÍ´
++¤¢¤¢¤¦¤¦ #CJ ¤¢¡Á¤¦¡Á
++¤¢¤¢¤¬¤à¤ä¤ë¤è #CJ ¤¢¤¢¡¢¥¬¥à¤ä¤ë¤è¡£
++¤¢¤¢¤¸¤å #T35 ¥¢¡¼¥¸¥å
++¤¢¤¢¤Ï¤Ï #CJ ¥¢¡¼¥Ï¥Ï
++¤¢¤¢¤Ï¤Ï #CJ Ž±Ž°ŽÊŽÊ
++¤¢¤¢¤ë¤¢¤¢¤ë #T35 RR
++¤¢¤¢¤ë¤¨¤¤¤¢¤¢¤ë #T35 RAR
++¤¢¤¤ #JN ¤¢¤¤
++¤¢¤¤¤¢¡¼¤ë #T35 IR
++¤¢¤¤¤³¤é #T35 ¥¢¥¤¥³¥é
++¤¢¤¤¤´ #T35 °¦¸í
++¤¢¤¤¤´¡¼ #CJ ¥¢¥¤¥´¡Á¡ª
++¤¢¤¤¤»¤ó #T35 ¤¢¤¤¤»¤ó
++¤¢¤¤¤Æ¤£¡¼¤Ñ¤ï¡¼ #T35 £É£Ô¥Ñ¥ï¡¼
++¤¢¤¤¤Ç¤£¡¼ #T35 £É£Ä
++¤¢¤¤¤É¤ë #T35 °¥¡ð
++¤¢¤¤¤Ê¤Ö¤ê¤Ã¤¸ #T35 ¥¢¥¤¥Ê¥Ö¥ê¥Ã¥¸
++¤¢¤¤¤Ë¤Á¤ã¤ó¤Í¤ë #T35 i¡Ý2¤Á¤ã¤ó¤Í¤ë
++¤¢¤¤¤Î¤¿¤Í #CN °¦¤Î¼ï
++¤¢¤¤¤Î¤¿¤Í #T35 °¦¤Î¼ï
++¤¢¤¤¤Ô¡¼ #T35 £É£Ð
++¤¢¤¤¤Ô¤¤ #T35 ip!
++¤¢¤¤¤Ö #KK °¦Éï
++¤¢¤¤¤Ö #T35 °¦Éï
++¤¢¤¤¤Ü¤ó #JN ¤¢¤¤¤Ü¤ó
++¤¢¤¤¤Ü¤ó #T35 ¤¢¤¤¤Ü¤ó
++¤¢¤¤¤á¤Ë¤å¤¦¤Ï¤¸¤­ #T35 ime.nuÃƤ­
++¤¢¤¤¤â¤Ê #T35 iMona
++¤¢¤¤¤â¤Ê¡¼ #JN ¥¢¥¤¥â¥Ê¡¼
++¤¢¤¤¤â¤Ê¡¼ #JN ¥¢¥¤¥â¥Ê¡¼
++¤¢¤¤¤é¤ó¤É #T35 °¥¤é¤ó¤É
++¤¢¤¤¤ë #KK ¥¢¥¤¥ë
++¤¢¤¤¤ë #T35 ¥¢¥¤¥ë
++¤¢¤¤¤ï¤¤¤æ¡¼¤¼¤í¤ï¤ó #JN IYU-01
++¤¢¤¦ #KK ¤¢¤¦
++¤¢¤¦ #T35 ¤¢¤¦
++¤¢¤¦¡¼ #JN ¥¢¥¦¡¼
++¤¢¤¦¤È¤í¡¼ #T35 ¥¢¥¦¥È¥í¡¼
++¤¢¤¦¤È¤í¤¦ #T35 ¥¢¥¦¥È¥í¡¼
++¤¢¤¦¤ò¤¿ #T35 ¤¢¤¦¥ò¥¿
++¤¢¤ª #R5r Àú
++¤¢¤ª¤¹¤® #KSr ÀĤ¹¤®
++¤¢¤ª¤¹¤® #T35 ÀĤ¹¤®
++¤¢¤ª¤¾¤é #KK ÀĶõ
++¤¢¤ª¤¾¤é #T35 ÀĶõ
++¤¢¤ª¤Ð #T35 ÀÄ»õ
++¤¢¤ª¤ê #T35 Àú¤ê
++¤¢¤ª¤ê¤³¤Æ¤¤ #T35 Àú¤ê¸ÇÄê
++¤¢¤ª¤ê¤³¤Ô¤Ú #T35 Àú¤ê¥³¥Ô¥Ú
++¤¢¤ª¤ê¤ó #JN ¥¢¥ª¥ê¥ó
++¤¢¤« #T35 ¹¤
++¤¢¤«¤¤¤¯¤Ë¤ß¤Á #T35 ÀÖ°æˮƻ
++¤¢¤«¤¤¤Û¤¦¤É¤¦ #T35 ÀÖ°æˮƻ
++¤¢¤«¤­¤ã¤Ã¤× #T35 ÀÖ¥­¥ã¥Ã¥×
++¤¢¤«¤À¤ó¤·¤ã¤¯ #T35 ÀÖÃ˼ß
++¤¢¤«¤Ò #KK ¥¢¥«Æü
++¤¢¤«¤Ò #T35 ¥¢¥«Æü
++¤¢¤«¤Þ¤Õ¤é¡¼ #T35 À֥ޥե顼
++¤¢¤«¤Þ¤Õ¤é¤¢ #T35 À֥ޥե顼
++¤¢¤¬ #R5 aga
++¤¢¤¬¤È¤¦ #CJ ¤¢¤¬¤È¤¦
++¤¢¤­¤·¤Î¤Î¤ß¤ä¤«¤³¤Ê¤¤¤·¤ó¤Î¤¦ #JN ½©¼ÄµÜ²Â»ÒÆâ¿Æ²¦
++¤¢¤­¤Ï¤Ð¤é¤Ò¤ç¤¦¤¸¤å¤ó¤·¤è¤¦ #T35 ½©ÍÕ¸¶É¸½à»ÅÍÍ
++¤¢¤­¤Ò¤í¤â¤Ê¡¼ #JN ¥¢¥­¥Ò¥í¥â¥Ê¡¼
++¤¢¤­¤Ò¤í¤â¤Ê¡¼ #T35 ¥¢¥­¥Ò¥í¥â¥Ê¡¼
++¤¢¤­¤Ò¤í¤â¤Ê¤¢ #T35 ¥¢¥­¥Ò¥í¥â¥Ê¡¼
++¤¢¤­¤ì¤¹ #JN ¥¢¥­¥ì¥¹
++¤¢¤¯¤­¤ó #T35 ¥¢¥¯¶Ø
++¤¢¤¯¤»¤¹¤­¤»¤¤ #T30 ¥¢¥¯¥»¥¹µ¬À©
++¤¢¤¯¤»¤¹¤­¤»¤¤ #T35 ¥¢¥¯¥»¥¹µ¬À©
++¤¢¤¯¤Þ #JN °­Ëâ
++¤¢¤¯¤Þ #T35 °­Ëâ
++¤¢¤°¤Í¤¹¤¹¤Ú¤·¤ã¤ë #T35 ¥¢¥°¥Í¥¹¥¹¥Ú¥·¥ã¥ë
++¤¢¤±¤¤¤¿ #CN ¥¢¥±ÈÄ
++¤¢¤±¤¤¤¿ #T35 ¥¢¥±ÈÄ
++¤¢¤² #CJ ¤¢¤²
++¤¢¤² #CN ¾å¥²
++¤¢¤² #KSr ¤¢¤²
++¤¢¤² #R5 age
++¤¢¤² #T35 age
++¤¢¤² #T35 ¤¢¤²
++¤¢¤² #T35 ¾å¤²
++¤¢¤² #T35 ¾å¥²
++¤¢¤²¤¢¤é¤· #T35 age¹Ó¤é¤·
++¤¢¤²¤¢¤é¤· #T35 ¤¢¤²¹Ó¤é¤·
++¤¢¤²¤Á¤å¤¦ #T35 ¤¢¤²¿ß
++¤¢¤²¤Ñ¤½¤Þ¤½ #JN ageŽÊŽßŽ¿ŽÏŽ¿
++¤¢¤²¤Ö¤é¤¶¡¼¤º #JN age¥Ö¥é¥¶¡¼¥º
++¤¢¤²¤â¤Ê¡¼ #JN age¥â¥Ê¡¼
++¤¢¤²¤ì #CJ age¤ì
++¤¢¤²¤ì¤¹ #T35 age¥ì¥¹
++¤¢¤²¤ó¤Ê¤Ü¤± #CJ ¤¢¤²¤ó¤Ê¥Ü¥±¡ª
++¤¢¤´ #JN ¥¢¥´
++¤¢¤´ #T35 ¥¢¥´
++¤¢¤´¤¢¤Ë¤á #T35 ¥¢¥´¥¢¥Ë¥á
++¤¢¤´¤ª¤¿ #JN ¥¢¥´¥ª¥¿
++¤¢¤´¤ª¤¿ #T35 ¥¢¥´¥ª¥¿
++¤¢¤´¤Ï¤º¤·¤â¤Á #T30 ¤¢¤´¥Ï¥º¥·»ý¤Á
++¤¢¤´¤Ï¤º¤·¤â¤Á #T35 ¤¢¤´¥Ï¥º¥·»ý¤Á
++¤¢¤µ¤Á¤å¤ó #T35 Ä«¥Á¥å¥ó
++¤¢¤µ¤Ì¤Þ¤Ê¤ß¤»¤ó¤»¤¤ #JN Àõ¾ÂÆàÈþÀèÀ¸
++¤¢¤µ¤Ï¤é¡¼ #JN ¥¢¥µ¥Ï¥é¡¼
++¤¢¤µ¤Ò¤¤¤Á¤Ë¤¤¤Á¤¼¤í #T35 Ä«Æü12.10
++¤¢¤µ¤Ô¡¼ #JN ¥¢¥µ¥Ô¡¼¡¡
++¤¢¤¸¤Ý¤ó #T35 Ì£¥Ý¥ó
++¤¢¤¹¤«¤â¤Ê¡¼ #JN ÈôÄ»¥â¥Ê¡¼
++¤¢¤¹¤­¡¼¤¢¡¼¤È #T35 ¥¢¥¹¥­¡¼¥¢¡¼¥È
++¤¢¤¹¤­¡¼¤¢¡¼¤È¤«¤¤¤»¤­ #JN £Á£Á²òÀÏ
++¤¢¤¹¤­¤¤¤¢¤¢¤È #T35 ¥¢¥¹¥­¡¼¥¢¡¼¥È
++¤¢¤º¤Þ¤ó¤¬¤À¤¤¤ª¤¦ #T35 ¤¢¤º¤Þ¤ó¤¬Â粦
++¤¢¤½¤¦ #JN Ž±Ž¿Ž³
++¤¢¤½¤Ñ¤½¤Þ¤½ #JN ¥¢¥½¥Ñ¥½¥Þ¥½
++¤¢¤½¤Ñ¤½¤ï¤Ã¤·¤ç¤¤ #JN ¥¢¥½¥Ñ¥½¥ï¥Ã¥·¥ç¥¤
++¤¢¤½¤Þ¤½¤Ñ¤½¤Ô¡¼¤·¡¼ #JN Ž±Ž¿ŽÊŽßŽ¿ŽÏŽ¿PC
++¤¢¤Ã¤­¤¤ #JN ¥¢¥Ã¥­¡¼
++¤¢¤Ã¤¶¤à #JN ¥¢¥Ã¥¶¥à
++¤¢¤Ã¤½ #JN ¤¢¤Ã¤½
++¤¢¤Ã¤½¡¼ #CJ ¤¢¤Ã¤½¡¼
++¤¢¤Ã¤½¡¼ #JN ¤¢¤Ã¤½¡¼
++¤¢¤Ã¤Á¤³¤Ã¤Á¤¤¤¤¤È¤â #JN ¥¢¥Ã¥Á¥³¥Ã¥Á¥¤¥¤¥È¥â
++¤¢¤Ã¤×¤·¤ç¤¯¤Ë¤ó #T35 ¤¦£ð¿¦¿Í
++¤¢¤Ã¤×¤·¤ç¤¯¤Ë¤ó #T35 ¤¦£ð¿¦¿Í
++¤¢¤Ã¤×¤º #T35 Appz
++¤¢¤Ã¤×¤ë¤ª¤ä¤¸ #T35 ¥¢¥Ã¥×¥ë¥ª¥ä¥¸
++¤¢¤Ã¤×¤ë¤­¤Ã¤É #JN ¥¢¥Ã¥×¥ë¥­¥Ã¥É
++¤¢¤Ã¤×¤í¡¼¤À¡¼ #T35 ¥¢¥Ã¥×¥í¡¼¥À¡¼
++¤¢¤Ä¡¼ #JN (ŽßAŽß;)Ž±ŽÂŽ°
++¤¢¤Ä¡¼ #JN Ž±ŽÂŽ°
++¤¢¤Ä¤²¤·¤ç¤¦¤¸¤µ¤¯¤¸¤¨¤ó #JN ¡ÚŽ¥¢ÏŽ¥¡Û
++¤¢¤Ä¤²¤·¤ç¤¦¤¸¤µ¤¯¤¸¤¨¤ó #JN Ž±ŽÂŽ¹ŽÞŽ¼Ž®Ž³Ž¼ŽÞŽ»Ž¸Ž¼ŽÞŽ´ŽÝ
++¤¢¤È¤Ô¡¼ #T35 @p
++¤¢¤Ê¤¶¡¼¤¢¤®¤³ #JN ¥¢¥Ê¥¶¡¼¥¢¥®¥³
++¤¢¤Ê¤¿¤ò¤Ï¤ó¤Ë¤ó¤Ç¤¹ #CJ ¤¢¤Ê¤¿¤ò¡¢ÈȿͤǤ¹
++¤¢¤Ê¤¿¤ò¤Ï¤ó¤Ë¤ó¤Ç¤¹ #JN ¡Ê'¢Ï`¡Ë¡ã¤¢¤Ê¤¿¤ò¡¢ÈȿͤǤ¹
++¤¢¤Ê¤¿¤ò¤Ï¤ó¤Ë¤ó¤Ç¤¹ #JN ¤¢¤Ê¤¿¤ò¡¢ÈȿͤǤ¹
++¤¢¤Ê¤í¤°¤Õ¤¡¤¯¤È¤ê¤¤ #T35 ¥¢¥Ê¥í¥°¥Õ¥¡¥¯¥È¥ê¡¼
++¤¢¤Ê¤ò¤¿ #T35 ¥¢¥Ê¥ò¥¿
++¤¢¤Ë #T35 ·»
++¤¢¤Ë¤ª¤¿ #T35 ¥¢¥Ë¥ª¥¿
++¤¢¤Ë¤­ #T35 ¥¢¥Ë¥­
++¤¢¤Ë¤¸¤ã #T35 ·»¼Ô
++¤¢¤Ë¤×¤ê #T35 ¥¢¥Ë¥×¥ê
++¤¢¤Ë¤ò¤¿ #T35 ¥¢¥Ë¥ò¥¿
++¤¢¤Î¤¯¤Ë #T35 ¤¢¤Î¹ñ
++¤¢¤Î¤¯¤Ë¤Î¤¢¤Î¤Û¤¦¤½¤¯ #T35 ¤¢¤Î¹ñ¤Î¤¢¤Îˡ§
++¤¢¤Ï¤¡ #JN (*¡­§Õ`*)Ž±ŽÊŽ§♥
++¤¢¤Ï¤¡ #JN (*¡­§Õ`;)¡Ä
++¤¢¤Ï¤¡ #JN ¡Ä(*¡­§Õ`)Ž±ŽÊŽ§¡Ä♥
++¤¢¤Ï¤¡ #JN ¦²(*Žß§¥`;)Ž±¡ÄŽ±¡ÄŽ±Ž¯ŽÊŽ§Ž§Ž§Ž§Ž§Ž§Ž§Ž§♥!!!!
++¤¢¤Ï¤¡ #JN ¦²(Žß§Õ`*;)Ž±Ž¯,Ž±ŽÊŽ§♥
++¤¢¤Ï¤¡ #JN Ž±ŽÊŽ§♥
++¤¢¤Ñ¤à #T35 ¥¢¥Ñ¥à
++¤¢¤Ñ¤à¤¿¤Þ¤â¤Ã¤Æ¤³¤¤ #JN ¥¢¥Ñ¥à¡ªÃÆ»ý¤Ã¤Æ¤³¤¤
++¤¢¤Ò¤ã #CJ ¥¢¥Ò¥ã
++¤¢¤Ò¤ã #CJ Ž±ŽËŽ¬
++¤¢¤Ò¤ã #JN ¥¢¥Ò¥ã
++¤¢¤Ò¤ã #JN Ž±ŽËŽ¬
++¤¢¤Ò¤ã¤¢¤¶¤é¤· #JN ¥¢¥Ò¥ã¥¢¥¶¥é¥·¡¡
++¤¢¤Ò¤ã¤¬¤ß¤Ï¤«¤» #JN ¥¢¥Ò¥ã¿ÀÇî»Î
++¤¢¤Ó¤ã #CJ ¤¢¤Ó¤ã
++¤¢¤Ô¤Ã¤·¤ã¡¼ #JN ¥¢¥Ô¥Ã¥·¥ã¡¼
++¤¢¤Õ¤¡¡¼¤à¤É¤¨¤Ã¤¯¤¹ #JN ¥¢¥Õ¥¡¡¼¥à¥É£Ø
++¤¢¤Õ¤© #T35 ¥¢¥Õ¥©
++¤¢¤Õ¤¬¤ó¤³¤¦¤¯¤¦¤º¤â¤¦ #T35 ¥¢¥Õ¥¬¥ó¹Ò¶õÁêËÐ
++¤¢¤Õ¤í¤Ë¤À¡¼ #JN ¥¢¥Õ¥í¥Ë¥À¡¼
++¤¢¤Ö¤¤¤¿ #T35 ¥¢¥ÖÈÄ
++¤¢¤Ö¤¥¤ë¤â¤Ê¡¼ #JN ¥¢¥ô¥É¥¥¥ë¥â¥Ê¡¼
++¤¢¤× #T30 ¤¢¤×
++¤¢¤× #T30 ¥¢¥×
++¤¢¤×¤í¤À #T35 ¤¢¤×¤í¤À
++¤¢¤Ù #JN ¤Ê¤Ã¤Á
++¤¢¤Ù #JN °ÂÇÜ
++¤¢¤Û¤¹¤± #T35 ¤¢¤Û½õ
++¤¢¤Û¤¿¤ó #JN ¤¢¤Û¤¿¤ó
++¤¢¤Û¤ë¤À¡¼ #T35 ¥¢¥Û¥ë¥À¡¼
++¤¢¤Û¤ë¤À¤¢ #T35 ¥¢¥Û¥ë¥À¡¼
++¤¢¤Ü¡¼¤ó #JN ¤¢¤Ü¡¼¤ó
++¤¢¤Ü¡¼¤ó #T30 ¤¢¤Ü¡¼¤ó
++¤¢¤Ü¡¼¤ó #T30 ¤¢¤Ü¡Á¤ó
++¤¢¤Ü¡¼¤ó¤Í¤Ã¤È¤ï¡¼¤¯ #T35 ¥¢¥Ü¡¼¥ó¥Í¥Ã¥È¥ï¡¼¥¯
++¤¢¤Ü¡¼¤ó¤Ð¤¯¤é¤¤ #JN Ž±ŽÎŽÞŽ°ŽÝÇúÍë
++¤¢¤Ü¤ª¤·¤ç¤ó #T35 ¥¢¥Ü¡¼¥·¥ç¥ó
++¤¢¤Ü¤ª¤ó #T35 ¤¢¤Ü¡Á¤ó
++¤¢¤Ü¤ª¤ó¤Í¤Ã¤È¤ï¤¢¤¯ #T35 ¥¢¥Ü¡¼¥ó¥Í¥Ã¥È¥ï¡¼¥¯
++¤¢¤Ý¡¼ #KK ¥¢¥Ý¡¼
++¤¢¤Ý¡¼ #T35 ¥¢¥Ý¡¼
++¤¢¤Ý¤ª #T35 ¥¢¥Ý¡¼
++¤¢¤Þ¡¼ #JN ¡Ê♥¢Ï;♥¡ËŽ±ŽÏŽ°
++¤¢¤Þ¡¼ #JN ¥¢¥Þ¡¼
++¤¢¤ß #T35 ÌÖ
++¤¢¤à¤í¤Ë¤ã¤ß¤¨ #JN °Â¼¼ŽÆŽ¬ŽÐŽ´
++¤¢¤á¤¶¡¼ #T35 ¤¢¤á¤¶¡¼
++¤¢¤á¤¶¡¼¤Í¤Ã¤È¤Ä¡¼ #CN ¤¢¤á¤¶¡¼¤Í¤Ã¤È£²
++¤¢¤á¤¶¡¼¤Í¤Ã¤È¤Ä¡¼ #T35 ¤¢¤á¤¶¡¼¤Í¤Ã¤È£²
++¤¢¤á¤¶¤¢ #T35 ¤¢¤á¤¶¡¼
++¤¢¤á¤¶¤¢¤Í¤Ã¤È¤Ä¤¦ #T35 ¤¢¤á¤¶¡¼¤Í¤Ã¤È£²
++¤¢¤á¤¾¤¦ #CN ¤¢¤á¤¾¤¦
++¤¢¤á¤¾¤¦ #JN ¤¢¤á¤¾¤¦
++¤¢¤á¤¾¤¦ #T35 ¤¢¤á¤¾¤¦
++¤¢¤á¤¾¤¦¤«¤ê #JN ¤¢¤á¤¾¤¦¡Ê²¾¡Ë
++¤¢¤á¤¾¤¦¤«¤ê #T35 ¤¢¤á¤¾¤¦¡Ê²¾¡Ë
++¤¢¤á¤Ë¤â¤Þ¤±¤Æ #T35 ¥¢¥á¥Ë¥â¥Þ¥±¥Æ
++¤¢¤á¤Í¤³ #JN ¤¢¤á¤Í¤³
++¤¢¤ä¤·¤£¤ï¡¼¤ë¤É #CN ¤¢¤ä¤·¤£¤ï¡¼¤ë¤É
++¤¢¤ä¤·¤¤ #T35 ¤¡¤ã¦É¤£
++¤¢¤ä¤·¤¤¤¸¤å¤¦¤Ë¤ó #T35 ¤¡¤ã¦É¤£½»¿Í
++¤¢¤ä¤·¤¤¤ï¡¼¤ë¤É #CN ¤¡¤ã¦É¤£¤ï¡¼¤ë¤É
++¤¢¤ä¤·¤¤¤ï¡¼¤ë¤É #T35 ¤¡¤ã¦É¤£¤ï¡¼¤ë¤É
++¤¢¤ä¤·¤¤¤ï¤¢¤ë¤É #T35 ¤¡¤ã¦É¤£¤ï¡¼¤ë¤É
++¤¢¤ä¤Ê¤ß¤ì¤¤ #JN ¤¡¤ã¤Ê¤ß¥ì¥¤
++¤¢¤æ #JN ¤¢¤æ
++¤¢¤æ #T35 ¤¢¤æ
++¤¢¤æ #T35 °¾
++¤¢¤æ¤â¤Ê¡¼ #JN ¤¢¤æ¥â¥Ê¡¼
++¤¢¤è¤Í #T35 ¤¢¤è¤Í
++¤¢¤é #S5r ¹Ó¤é
++¤¢¤é¤¢¤­¤¤ #T35 ¥¢¥é¡¼¥­¡¼
++¤¢¤é¤¯¤ì #JN ¤¢¤é¤¯¤ì
++¤¢¤é¤¯¤ì¤ï¤Ã¤·¤ç¤¤ #JN ¤¢¤é¤¯¤ì¥ï¥Ã¥·¥ç¥¤
++¤¢¤é¤µ¡¼ #T35 ¹Ó¤µ¡¼
++¤¢¤é¤µ¤¢ #T35 ¹Ó¤µ¡¼
++¤¢¤é¤· #T35 ¹Ó¤é¤·
++¤¢¤é¤· #T35 ¹Ó¤é»á
++¤¢¤é¤· #T35 ¹Ó»á
++¤¢¤é¤· #T35 ¿·»á
++¤¢¤é¤· #T35 Íò
++¤¢¤é¤·¤¤¤é¤¤ #T30 ¹Ó¤é¤·°ÍÍê
++¤¢¤é¤·¤¤¤é¤¤ #T35 ¹Ó¤é¤·°ÍÍê
++¤¢¤é¤·¤³¤Æ¤¤ #T30 ¹Ó¤é¤·¸ÇÄê
++¤¢¤é¤·¤³¤Æ¤¤ #T35 ¹Ó¤é¤·¸ÇÄê
++¤¢¤é¤·¤½¤¦¤´¤¦¤»¤ó¤¿¡¼ #JN ¹Ó¤é¤·Áí¹ç¥»¥ó¥¿¡¼
++¤¢¤é¤¹ #S5r ¹Ó¤é
++¤¢¤é¤Ó¤¢¤´¤¢¤é¤· #T35 ¥¢¥é¥Ó¥¢¸ì¹Ó¤é¤·
++¤¢¤é¤ä¤À #CJ ¤¢¤é¤ä¤À
++¤¢¤é¤ä¤À #JN (¡¬§Õ¡¬)¡ã¤¢¤é¤ä¤À¡ª
++¤¢¤é¤ä¤À #JN ¤¢¤é¤ä¤À
++¤¢¤é¤ä¤À¤«¤ó¤¼¤ó¤¿¤¤ #JN ¤¢¤é¤ä¤À´°Á´ÂÎ
++¤¢¤ê¤¨¡¼¤ë #CJ ¥¢¥ê¥¨¡¼¥ë
++¤¢¤ê¤¨¡¼¤ë #T35 ¥¢¥ê¥¨¡¼¥ë
++¤¢¤ê¤¨¡¼¤ë #T35 Ž±ŽØŽ´Ž°ŽÙ
++¤¢¤ê¤¨¤¨¤ë #T35 ¥¢¥ê¥¨¡¼¥ë
++¤¢¤ê¤¨¤¨¤ë #T35 Ž±ŽØŽ´Ž°ŽÙ
++¤¢¤ê¤¬¤È¤¦ #JN ¤¢¤ê¤¬¤È¤¦
++¤¢¤ê¤¹ #JN ¤¢¤ê¤¹
++¤¢¤ë¤«¤â¤Ê¤º¤±¤¤¤à¤·¤ç #JN ¥¢¥ë¥«¥â¥Ê¥º·ºÌ³½ê
++¤¢¤ë¤¯¤­¤Î¤³ #JN Ê⤯¥­¥Î¥³
++¤¢¤ë¤¯¤á #JN Ê⤯²ê
++¤¢¤ì¤ó¤¸ #JN ¥¢¥ì¥ó¥¸
++¤¢¤í¤¨¤ê¡¼¤Ê #JN ¥¢¥í¥¨¥ê¡¼¥Ê
++¤¢¤ó¤¬¤È¤Ê¤â¡¼ #JN ¤¢¤ó¤¬¤È¥Ê¥â¡¼
++¤¢¤ó¤°¤é #T35 ¥¢¥ó¥°¥é
++¤¢¤ó¤±¤ó¤µ¤Ä #JN °Å¡¦·õ¡¦»¦
++¤¢¤ó¤·¤ã¤¹¤Í¤³ #JN ¥¢¥ó¥·¥ã¥¹Ç­
++¤¢¤ó¤¿¤¬¤Ê¡¼ #JN ¥¢¥ó¥¿¥¬¥Ê¡¼
++¤¢¤ó¤¿¤â¤Í¡¼ #JN ¥¢¥ó¥¿¥â¥Í¡¼
++¤¢¤ó¤À¡¼¤°¤é¤¦¤ó¤É #T35 ¥¢¥ó¥À¡¼¥°¥é¥¦¥ó¥É
++¤¢¤ó¤Á¤Ç¤£¤¤¤Æ¤£¤¤ #T35 ¥¢¥ó¥ÁDT
++¤¢¤ó¤Ê¤«¤Ï¤ë¤Ê #CN °ÂÃ濺̾
++¤¢¤ó¤Ê¤«¤Ï¤ë¤Ê #T35 °ÂÃ濺̾
++¤£¤ç¤¥ #JN ¤£¤ç¤¥
++¤¤ #C5r ÀÂ
++¤¤¡¼¤¸¤¤ #T35 £ÅÌì
++¤¤¡¼¤Ú¡¼¤³¡¼ #JN ¥¤¡¼¥Ú¡¼¥³¡¼
++¤¤¡¼¤ó¤¸¤ã¤Ê¤¤¤Î #JN ¤¤¡¼¤ó¤¸¤ã¤Ê¤¤¤Î
++¤¤¤¤ #CJ (Ž¥¢ÏŽ¥)Ž²Ž²!!
++¤¤¤¤ #CJ ¡Ê¡¦¢Ï¡¦¡Ë¥¤¥¤!!
++¤¤¤¤ #CJ ¡Ê¡¦¢Ï¡¦¡ËŽ²Ž²!!
++¤¤¤¤ #CJ ¥¤¥¤
++¤¤¤¤¤¢¤¸¤ã¤ó #JN ¤¤¤¤¤¢¤¸¤ã¤ó
++¤¤¤¤¤¸¤Þ #T35 ÈÓÅè
++¤¤¤¤¤¿¤¤¤À¤±¤Á¤ã¤¦¤ó¤«¤È #CJ ¸À¤¤¤¿¤¤¤À¤±¤Á¤ã¤¦¤ó¤«¤È¡£
++¤¤¤¤¤À #T35 ÈÓÅÄ
++¤¤¤¨¤¤¤³¤é #T35 °ä±Æ¥³¥é
++¤¤¤¨¤Ï¤ä¤É¤Ç¤â¤¬¤Ã¤·¤å¤¯¤¸¤ç¤Ç¤â¤Í¤§¤¾ #T35 ²È¤Ï½É¤Ç¤â¹ç½É½ê¤Ç¤â¤Í¤§¤¾¡ª
++¤¤¤« #T35 ¤¤¤«
++¤¤¤«¤¬¤Ê¤â¤Î¤« #JN Ž²Ž¶Ž¶ŽÞŽÅŽÓŽÉŽ¶
++¤¤¤«¤¯¤»¤¨ #CJ ¤¤¤«¤¯¤»¡¼
++¤¤¤«¤·¤ç¤¦¤ê¤ã¤¯ #CJ ¡Ê°Ê²¼¾Êά
++¤¤¤«¤·¤ç¤¦¤ê¤ã¤¯ #CJ °Ê²¼¾Êά
++¤¤¤«¤ê¤Î¤¤¤Þ¤Î¤¦¤Á #JN Åܤê¤Î¥¤¥Þ¥Î¥¦¥Á
++¤¤¤«¤ê¤ò¤Ö¤Ä¤±¤ë¤â¤Ê¡¼ #JN Åܤê¤ò¤Ö¤Ä¤±¤ë¥â¥Ê¡¼
++¤¤¤­¤¸¤ë¤·¤®¤å¤¦¤Ë¤å¤¦ #JN À°õµíÆý
++¤¤¤­¤Î¤¤¤¤¤®¤³¤¦¤ê #JN À¤­¤Î¤¤¤¤¥®¥³Çä¤ê
++¤¤¤­¤Î¤¤¤¤¤Ë¤»¤®¤³ #JN À¤­¤ÎÎɤ¤µ¶¥®¥³
++¤¤¤¯ #C5r À¤¯
++¤¤¤¯¤Ê¤¤ #CJ ¥¤¥¯¥Ê¥¤¡ª¡ª
++¤¤¤¯¤Ê¤¤ #CJ Ž²Ž¸ŽÅŽ²!!
++¤¤¤±¤Ì¤Þ #T35 ÃÓ¾Â
++¤¤¤±¤Í¡¼¤è #JN ¥¤¥±¥Í¡¼¥è
++¤¤¤±¤á¤ó #T35 ÃÓÌÍ
++¤¤¤±¤á¤ó¤¦¤ó¤³ #JN ¤¤¤±¤á¤ó¥¦¥ó¥³
++¤¤¤³¡¼¤¯¤³¤Æ¤Ê¡¼¤³¤â¤Ò¤ã #JN ¥¤¥³¡¼¥¯¡¦¥³¥Æ¥Ê¡¼¡¦¥³¥â¥Ò¥ã
++¤¤¤³¤ª¤ë¤Ð¤« #T35 ¥¤¥³¡¼¥ë¥Ð¥«
++¤¤¤³¤¯¤®¤³ #JN °Û¹ñµ¼¸Å
++¤¤¤·¤«¤ï #T35 ÀÐÀî
++¤¤¤·¤«¤ï¤Ã¤Æ¤¦¤ó¤³¤¹¤ë¤Î #CJ ÀÐÀî¤Ã¤Æ¥¦¥ó¥³¤¹¤ë¤Î¡©
++¤¤¤·¤ã #T35 °å¼Ô
++¤¤¤·¤ä¤­¤¤¤â¤¦¤ê #JN ÀоƤ¤¤âÇä¤ê
++¤¤¤¸¤á¤Ê¤¤¡¼¤Ç¤Í #JN ¥¤¥¸¡¦¥á¡¦¥Ê¥¤¥Ç¡¼¥Í
++¤¤¤¸¤ç¤¦¤¸¤µ¤¯¤¸¤¨¤ó¤Ç¤·¤¿ #CJ (Ž¥¢ÏŽ¥)Ž²Ž¼ŽÞŽ®Ž³Ž¼ŽÞŽ»Ž¸Ž¼ŽÞŽ´ŽÝŽÃŽÞŽ¼ŽÀ
++¤¤¤¸¤ç¤¦¤¸¤µ¤¯¤¸¤¨¤ó¤Ç¤·¤¿ #CJ ¡Ê¡¦¢Ï¡¦¡ËŽ²Ž¼ŽÞŽ®Ž³Ž¼ŽÞŽ»Ž¸Ž¼ŽÞŽ´ŽÝŽÃŽÞŽ¼ŽÀ
++¤¤¤¹ #T35 °Ø»Ò
++¤¤¤¹¤É¤ó #T35 ¥¤¥¹¥É¥ó
++¤¤¤¿ #T35 ÈÄ
++¤¤¤¿¤¤ #T35 °äÂÎ
++¤¤¤¿¤«¤ó #T35 ÄË´É
++¤¤¤¿¤¬¤ª¤Á¤ë #CJ ÈĤ¬Íî¤Á¤ë
++¤¤¤¿¤¬¤­ #KK Ä˲
++¤¤¤¿¤¬¤­ #T35 Ä˲
++¤¤¤¿¤¬¤È¤Ö #CJ ÈĤ¬Èô¤Ö
++¤¤¤¿¤¯¤Í¡¼¤è #JN ¥¤¥¿¥¯¥Í¡¼¥è
++¤¤¤¿¤³¤¦¤¿¤¤¤¹¤± #T35 ÈűÂà½õ
++¤¤¤¿¤´¤Ð¤¯ #T30 ÈĸíÇú
++¤¤¤¿¤Á¤¬ #W5r ÈÄ°ã
++¤¤¤¿¤Á¤¬¤¤ #T35 Èİ㤤
++¤¤¤¿¤È¤Ð¤· #T35 ÈĤȤФ·
++¤¤¤¿¤Ë¤¤¤± #CJ ÈĤËÀ¤±¡ª
++¤¤¤¿¤á¤¤ #T35 ÈÄ̾
++¤¤¤¿¤ë¤ê¤¢¤ê¤Æ¤£ #T35 ¤¤¤¿¤ë¥ê¥¢¥ê¥Æ¥£
++¤¤¤Á #T35 1
++¤¤¤Á¤¤ #JNS »Ô°æ
++¤¤¤Á¤¤ #T35 »Ô°æ
++¤¤¤Á¤´¤»¤ó¤½¤¦ #T35 çõÀïÁè
++¤¤¤Á¤´¤Þ¤«¤¤ #T35 çõË⳦
++¤¤¤Á¤µ¤ó #JN £±¤µ¤ó
++¤¤¤Á¤µ¤ó¤Î¤ª¤«¤¢¤µ¤Þ¤Ø #CJ 1¤µ¤ó¤Î¤ªÊìÍͤØ
++¤¤¤Á¤µ¤ó¤Î¤´¤¦¤«¤¯¤Ï¤Ã¤Ô¤ç¤¦ #JN £±¤µ¤ó¤Î¹ç³Êȯɽ
++¤¤¤Á¤µ¤ó¤ò¤È¤ê¤Þ¤¯¤½¤¦¤«¤ó¤º #JN £±¤µ¤ó¤ò¼è¤ê´¬¤¯Áê´Ø¿Þ
++¤¤¤Á¤µ¤ó¤ò¤È¤ê¤Þ¤¯¤½¤¦¤«¤ó¤º #T35 £±¤µ¤ó¤ò¼è¤ê´¬¤¯Áê´Ø¿Þ
++¤¤¤Á¤Ã¤Æ¤¦¤¶¤¤¤è¤Í #JN £±¤Ã¤Æ¤¦¤¶¤¤¤è¤Í¡Á
++¤¤¤Á¤Î¤Ä¤¦¤Á¤Ò¤ç¤¦ #JN £±¤ÎÄÌÃÎɽ
++¤¤¤Á¤Î¤Ï¤« #JN £±¤ÎÊè
++¤¤¤Á¤Ï¤Ï¤ä¤¯¤·¤Í #JN £±¤ÏÁ᤯»à¤Í¡ª¡ª
++¤¤¤Á¤Ó¤Ã¤È¤µ¤Ð #T35 1bit»ª
++¤¤¤Á¤â¤¸¤Å¤Ä¤Ä¤¯¤Ã¤Æ¤Õ¤ä¤·¤¿¤¢¤¹¤­¡¼¤¢¡¼¤È #JN °ìʸ»ú¤º¤Ä¤Õ¤ä¤·¤Æºî¤Ã¤¿£Á£Á
++¤¤¤Ã¤­¤³¤¦ #T35 °ì´ü¹»
++¤¤¤Ã¤¿¤ó¤³¤ê¤ó¤º #JN Ž²Ž¯ŽÀŽÝŽºŽØŽÝŽ½ŽÞ
++¤¤¤Ã¤Á¤ã¤Ã¤Æ¤¯¤À¤µ¤¤ #JN À¤äÁ¤ã¤Ã¤Æ¤¯¤À¤µ¤¤
++¤¤¤Ã¤Á¤ã¤ó #CJ 1ch
++¤¤¤Ã¤Á¤ã¤ó #CJ 1ch.tv
++¤¤¤Ã¤Á¤ã¤ó #CJ £±¤Á¤ã¤ó
++¤¤¤Ã¤Á¤ã¤ó #T35 1ch
++¤¤¤Ã¤Á¤ã¤ó #T35 1ch.tv
++¤¤¤Ã¤Á¤ã¤ó #T35 £±¤Á¤ã¤ó
++¤¤¤Ã¤Á¤ã¤ó¤Í¤ë #CJ 1ch
++¤¤¤Ã¤Á¤ã¤ó¤Í¤ë #CJ 1ch.tv
++¤¤¤Ã¤Á¤ã¤ó¤Í¤ë #CJ £±¤Á¤ã¤ó
++¤¤¤Ã¤Á¤ã¤ó¤Í¤ë #T35 1ch
++¤¤¤Ã¤Á¤ã¤ó¤Í¤ë #T35 1ch.tv
++¤¤¤Ã¤Á¤ã¤ó¤Í¤ë #T35 £±¤Á¤ã¤ó
++¤¤¤Ã¤Æ¤¯¤ë #CJ À¤äƤ¯¤ë
++¤¤¤Ã¤Æ¤¯¤ë #kxuru À¤äƤ¯¤ë
++¤¤¤Ã¤Æ¤è¤· #CJ ¤£¤Ã¦Ó¤ç¦É
++¤¤¤Ã¤Æ¤è¤· #CJ À¤äƤ褷
++¤¤¤Ã¤Æ¤è¤·¤³¤¬¤¿¤Ò¤³¤¦¤Æ¤¤ #JN À¤äƤ褷¾®·¿Èô¹ÔÄú
++¤¤¤Ã¤Æ¤è¤·¤Ë¤ó¤Æ¤¤¤¤¤¤¤ó¤«¤¤ #JN À¤äƤ褷ǧÄê°Ñ°÷²ñ
++¤¤¤Ã¤Æ¤è¤·¤Ë¤ó¤Æ¤¤¤¤¤¤¤ó¤«¤¤ #JN À¤äƤ褷ǧÄê°Ñ°÷²ñ
++¤¤¤Ã¤Æ¤è¤¹ #CJ À¤äƥ襹
++¤¤¤Ã¤È¤¦¤¸¤ç¤æ¤¦ #T35 °ìÅù½÷Í¥
++¤¤¤Ã¤Ñ¤Ä¤À¤±¤Ê¤é¤´¤·¤ã #CJ °ìȯ¤À¤±¤Ê¤é¸í¼Í
++¤¤¤Ã¤Ñ¤ó¤­¤ã¤¯ #T35 °ìÈ̵Ò
++¤¤¤Ã¤Ñ¤ó¤¸¤ó #T35 °ìÈÌ¿Í
++¤¤¤Ä¤â¤³¤³¤«¤é #JN ¤¤¤Ä¤â¤³¤³¤«¤é
++¤¤¤Æ¤ó¤·¤Þ¤·¤¿ #CJ °Üž¤·¤Þ¤·¤¿
++¤¤¤Æ¤ó¤·¤Þ¤·¤¿ #T35 °Üž¤·¤Þ¤·¤¿
++¤¤¤Ç¤Û¤½ #JN ÅÁÀâµð¿ÀŽ²ŽÃŽÞŽÎŽ¿
++¤¤¤Ç¤Û¤½ #JN Ž²ŽÃŽÞŽÎŽ¿
++¤¤¤È¤¦¤¯¤ó #JN °ËÆ£·¯
++¤¤¤È¤¦¤¯¤ó #JN °ËÆ£·¯
++¤¤¤Ê¤«¤â¤Ê¡¼ #JN Åļ˥â¥Ê¡¼
++¤¤¤Ê¤¬¤­¤á¤ó¤Ð¡¼ #T35 °ð³À¥á¥ó¥Ð¡¼
++¤¤¤Ê¤¬¤­¤á¤ó¤Ð¤¢ #T35 °ð³À¥á¥ó¥Ð¡¼
++¤¤¤Ê¤´ #T35 175
++¤¤¤Ê¤´ #T35 ¥¤¥Ê¥´
++¤¤¤Ê¤´ #T35 éû
++¤¤¤Ë¤Í¤³ #JN ini¤Í¤³
++¤¤¤Ì #CN ¸¤
++¤¤¤Ì #KK ¸¤
++¤¤¤Ì #T35 ¸¤
++¤¤¤Ì¤³¤¦¤Ü¤¦ #JN ¸¤¸ø˾
++¤¤¤Ì¤»¤ó¤»¤¤ #T35 ¸¤ÀèÀ¸
++¤¤¤Ì¤Á¤å¤¦ #T35 ¸¤¿ß
++¤¤¤Ì¤ä¤Þ¤Ð¤· #JN ¸¤»³¶¶
++¤¤¤Î¤¨¤â¤ó #T35 ¤¤¤Î¤¨¤â¤ó
++¤¤¤Î¤¬¤·¤é¡¼ #JN ¥¤¥Î¥¬¥·¥é¡¼
++¤¤¤Î¤­¤¹¤ì #T35 ÃöÌÚ¥¹¥ì
++¤¤¤Î¤­¤Î¤Ç¤ó¤ï #JN ¤¤¤Î¤­¤ÎÅÅÏÃ
++¤¤¤Î¤±¤ó #JN ¥¤¥Î¥±¥ó
++¤¤¤Î¤Á¤Î¤Ç¤ó¤ï #JN ¤¤¤Î¤Á¤ÎÅÅÏÃ
++¤¤¤Ð¤·¤ç¤Í¡¼¤è #JN µï¾ì½ê¥Í¡¼¥è
++¤¤¤Ñ¡¼¤¤ #T15 ¥¤¥Ñ¡¼¥¤
++¤¤¤Ñ¡¼¤¤ #T35 ¥¤¥Ñ¡¼¥¤
++¤¤¤Þ¤¤¤°¤ó¤À¤ó #JN º£°æ·³ÃÄ
++¤¤¤Þ¤¤¤â¤Ê¡¼ #JN º£°æ¥â¥Ê¡¼
++¤¤¤Þ¤ª¤«¤â¤Ê¡¼ #JN ¥¤¥Þ¥ª¥«¥â¥Ê¡¼
++¤¤¤Þ¤ª¤«¤â¤Ê¡¼ #T35 ¥¤¥Þ¥ª¥«¥â¥Ê¡¼
++¤¤¤Þ¤ª¤«¤â¤Ê¤¢ #T35 ¥¤¥Þ¥ª¥«¥â¥Ê¡¼
++¤¤¤Þ¤½¤«¤ê #CJ ¤¤¤Þ¤½¤«¤ê
++¤¤¤Þ¤Î¤¦¤Á #JN ¥¤¥Þ¥Î¥¦¥Á
++¤¤¤Þ¤Î¤¦¤Á¤ª¤Ë¤®¤ê¤Ð¡¼¤¸¤ç¤ó #JN ¥¤¥Þ¥Î¥¦¥Á¡¦¤ª¤Ë¤®¤ê¥Ð¡¼¥¸¥ç¥ó
++¤¤¤Þ¤Î¤¦¤Á¤Ô¤«¤¡ #JN Ž²ŽÏŽÉŽ³ŽÁ¥Ô¥«¥¡!
++¤¤¤á¤Ì¤Ï¤¸¤­ #T35 ime.nuÃƤ­
++¤¤¤â #CN °ò
++¤¤¤â #T35 °ò
++¤¤¤â¤¦¤È #T35 Ëå
++¤¤¤ä¤·¤±¤¤ #JN Ìþ¤··Ï
++¤¤¤ä¤É¤ó #CJ ¡Ê¡¦£Á¡¦¡ËŽ²ŽÔŽÄŽÞŽÝ!!
++¤¤¤ä¤Þ¤Ã¤¿¤¯ #JN ¨¬Ï¯À¸
++¤¤¤ä¤Þ¤Ã¤¿¤¯ #JN Ž¨Ž¬ŽÏŽ¯ŽÀŽ¸
++¤¤¤è¤¦ #JN ¤£¤ç¤¥
++¤¤¤è¤¦ #JN ¥¤¤ç¤¥
++¤¤¤é¤Ê¤¤¤ï #JN ¥¤¥é¥Ê¥¤¥ï
++¤¤¤é¤Í #JN ¡ÊŽß­ùŽß¡ËŽ²Ž×ŽÈ
++¤¤¤é¤Í #JN Ž²Ž×ŽÈ
++¤¤¤é¤Í¡¼¤è #JN ¥¤¥é¥Í¡¼¥è
++¤¤¤é¤Í¡¼¤è¤«¤¹¤¿¤à #JN ¥¤¥é¥Í¡¼¥è¥«¥¹¥¿¥à
++¤¤¤é¤Í¡¼¤ë #JN ¥¤¥é¥Í¡¼¥ë
++¤¤¤é¤Í¤¸¤å¤Ë¤¢ #JN ¥¤¥é¥Í¥¸¥å¥Ë¥¢
++¤¤¤ê¤¢¤µ¤ó #JN Iria¤µ¤ó
++¤¤¤ë¤Í #JN ¡ÊŽß§ØŽß)Ž²ŽÙŽÈ
++¤¤¤ë¤Í #JN Ž²ŽÙŽÈ
++¤¤¤ë¤Ó¤Í #T35 ¤¤¤ë¤Ó¤Í
++¤¤¤ì¤°¤¤ #T35 Æþ¤ì¶ô¤¤
++¤¤¤í¤Á¤ó¤À¤ó #T35 ¿§ÄÁÃÄ
++¤¤¤ó¤³¤«¤¤¤¸¤ó #JN ¥¤¥ó¥³²ø¿Í
++¤¤¤ó¤³¤«¤¤¤¸¤ó #T35 ¥¤¥ó¥³²ø¿Í
++¤¤¤ó¤· #T35 °ü»à
++¤¤¤ó¤Ô¤ª #T35 ¥¤¥ó¥Ô¥ª
++¤¤¤ó¤Ü¤¦ #T35 ±¢ËÅ
++¤¦¡«¤¡¡¼ #CJ ¥ô¥¡¡¼
++¤¦¡«¤¡¡¼ #CJ ¥ô¥¢¡¼
++¤¦¡«¤¡¤¤¤é¤¹ #T35 ¥ô¥¡¥¤¥é¥¹
++¤¦¡«¤¡¤« #T35 ¥ô¥¡¥«
++¤¦¡«¤¡¤«¤À #KK ¥ô¥¡¥«ÂÌ
++¤¦¡«¤¡¤«¤À #T35 ¥ô¥¡¥«ÂÌ
++¤¦¡«¤£ #JN £Ö
++¤¦¡«¤£¤¯¤È¤ê¡¼¤¾¤Ë¤Ã¤¯ #JN ¥ô¥£¥¯¥È¥ê¡¼¥¾¥Ë¥Ã¥¯
++¤¦¡«¤£¤¸¤å¤¤¤¿ #T35 ¥ô¥£¥¸¥åÈÄ
++¤¦¡«¤£¤ê¤¤ #T35 virii
++¤¦¤£¤Ê #T35 ¥¦¥£¥Ê
++¤¦¤£¤ó¤¨¤à¤¨¤Ã¤¯¤¹ #T35 WinMX
++¤¦¤£¤ó¤Ç¤£ #T35 Windy
++¤¦¤£¤ó¤É¤¥¡¼¤¯ #T35 winduke
++¤¦¤£¤ó¤É¤¦¤º #T35 Windoz
++¤¦¤§ #JN ³ª
++¤¦¤§ #JN Ž³Žª
++¤¦¤§¤¤¤È #T35 wait
++¤¦¤§¤¨¤Ï¤Ã¤Ï¤Ã¤Ï #CJ ¥¦¥§¡¼¡¢¥Ï¥Ã¥Ï¥Ã¥Ï
++¤¦¤§¤¶¡¼¤ê¤Ý¡¼¤È #JN ¥¦¥§¥¶¡¼¡¦¥ê¥Ý¡¼¥È
++¤¦¤¨¤Î¤¯¤ê¤Ë¤Ã¤¯¤Î¤ª¤È¤³ #T35 ¾åÌ¥ê¥Ë¥Ã¥¯¤ÎÃË
++¤¦¤©¤¬ #T35 ¥¦¥©¥¬
++¤¦¤ª¡¼¤ó #T35 ¤¦¤ª¡¼¤ó
++¤¦¤ª¤ª¤ó #T35 ¤¦¤ª¡¼¤ó
++¤¦¤ª¤Ê¤ó¤«¤¹¤´¤¤¤È¤³¤í¤Ë¤Þ¤è¤¤¤³¤ó¤¸¤Þ¤Ã¤¿¤¾¤´¤ë¤¡ #JN ¤¦¤ª¡ª¤Ê¤ó¤«¤¹¤´¤¤¤È¤³¤í¤Ë̤¤¹þ¤ó¤¸¤Þ¤Ã¤¿¤¾¥´¥ë¥¡¡ª
++¤¦¤ª¤Ê¤ó¤«¤¹¤´¤¤¤È¤³¤í¤Ë¤Þ¤è¤¤¤³¤ó¤¸¤Þ¤Ã¤¿¤¾¤´¤ë¤¡ #JN ¤¦¤ª¡ª¤Ê¤ó¤«¤¹¤´¤¤¤È¤³¤í¤Ë̤¤¹þ¤ó¤¸¤Þ¤Ã¤¿¤¾ŽºŽÞŽÙŽ§¡ª
++¤¦¤µ¤Þ¡¼ #JN (Žß§ÕŽß)Ž³Ž»ŽÏŽ°
++¤¦¤µ¤Þ¡¼ #JN ³»|
++¤¦¤µ¤Þ¡¼ #JN Ž³Ž»ŽÏ¡Ý
++¤¦¤¶ #KYT ¤¦¤¶
++¤¦¤¶¤¬¤­ #T35 ¥¦¥¶¥¬¥­
++¤¦¤·¤ª¤ó¤Ê #JN µí½÷
++¤¦¤¼¡¼ #JN (`»®¡­)Ž³Ž¾ŽÞŽ°
++¤¦¤¼¡¼ #JN ¥¦¥¼¡¼
++¤¦¤¼¡¼ #JN Ž³Ž¾ŽÞŽ°
++¤¦¤¼¡¼¤è #JN ¥¦¥¼¡¼¥è
++¤¦¤¼¤§ #CJ ¤¦¤¼¤§
++¤¦¤¼¤§¡¼ #CJ uzeeee!
++¤¦¤¼¤§¤­¤¨¤í #JN ¥¦¥¼¥§¤­¤¨¤í¡¦¡¦¡¦
++¤¦¤½¤³¡¼ #JN ¥¦¥½¥³¡¼!
++¤¦¤½¤³¡¼ #JN Ž³Ž¿ŽºŽ°!
++¤¦¤½¤Ï¤¦¤½¤Ç¤¢¤ë¤È¤ß¤Ì¤±¤ë¤Ò¤È¤Ç¤Ê¤¤¤È #CJ ¤¦¤½¤Ï¤¦¤½¤Ç¤¢¤ë¤È¸«È´¤±¤ë¿Í¤Ç¤Ê¤¤¤È
++¤¦¤½¤ä #T35 ±³²°
++¤¦¤¿¤Ë¤Ä¤Ã¤³¤ó¤Ç¤¯¤ì #JN ²Î¤Ë¥Ä¥Ã¥³¤ó¤Ç¤¯¤ì
++¤¦¤Á¤å¤¦¤«¤¤¤Ï¤Ä #T30 ±§Ã賫ȯ
++¤¦¤Á¤å¤¦¤«¤¤¤Ï¤Ä #T35 ±§Ã賫ȯ
++¤¦¤Á¤å¤¦¤ä¤Ð¤¤ #CJ ±§Ãè¥ä¥Ð¥¤
++¤¦¤Ã¤µ¤¤ #JN ¥¦¥Ã¥µ¥¤
++¤¦¤Ã¤µ¤¤¤Ï¤² #CJ ¤¦¤Ã¤µ¤¤¥Ï¥²
++¤¦¤Ã¤¿¤¨¤ë¤ê¤¢¤ë¤â¤Ê¡¼ #JN Áʤ¨¤ë¥ê¥¢¥ë¥â¥Ê¡¼
++¤¦¤Ä¤¦¤¿ #T35 ݵ²Î
++¤¦¤Ä¤¨¤â¤ó #JN ¤¦¤Ä¥¨¥â¥ó
++¤¦¤Ä¤À #KK ݵÂÇ
++¤¦¤Ä¤À #T35 ݵÂÇ
++¤¦¤Ä¤À¤·¤Î¤¦ #CJ ¤¦¤Ä¤À¤·¤Î¤¦
++¤¦¤Ä¤À¤·¤Î¤¦ #CJ ¤óÂǤĤÀ»áǾ
++¤¦¤Ä¤À¤·¤Î¤¦ #CJ ݵ¤À»á¤Î¤¦
++¤¦¤Ä¤À¤·¤Î¤¦ #CJ ݵ¤À½ÁÇ»
++¤¦¤Ä¤À¤·¤Î¤¦ #CJ ݵÂÇ»íǹ
++¤¦¤Ä¤À¤·¤Î¤¦ #CJ ݵÂÌ»áǾ
++¤¦¤Ä¤ä¤­ #JN ݵ¾Æ¤­
++¤¦¤Æ¤· #T35 ¥¦¥Æ¥·
++¤¦¤È #T35 ¥¦¥È
++¤¦¤Ê¡¼ #JN ¢º(Žß¡ýŽß)¢»Ž³ŽÅŽ°
++¤¦¤Ê¡¼ #JN Ž³ŽÅŽ°
++¤¦¤Ë #T35 ¥¦¥Ë
++¤¦¤Ë¤¯¤í #T35 ¥¦¥Ë¥¯¥í
++¤¦¤Ë¤¯¤í #T35 ¥¦¥Ë¹õ
++¤¦¤Ë¤ã¡¼ #JN ¤¦¤Ë¤ã¡Á
++¤¦¤Ë¤å¤¦ #JN ¤¦¤Ë¤å¤¦
++¤¦¤Ò¤ç¡¼ #JN ¥¦¥Ò¥ç¡¼
++¤¦¤Ò¤ç¤¹¤ì #T35 ¥¦¥Ò¥ç¥¹¥ì
++¤¦¤× #T30 ¤¦£ð
++¤¦¤× #T30 ¤¦¤×
++¤¦¤× #T35 up
++¤¦¤× #T35 ¤¦¤×
++¤¦¤×¤·¤ç¤¯¤Ë¤ó #T35 ¤¦£ð¿¦¿Í
++¤¦¤Ü¤¡¡¼ #JN ¡ÊŽß§¥Žß¡ËŽ³ŽÎŽÞŽ§Ž°
++¤¦¤Ü¤¡¡¼ #JN ¥¦¥Ü¥¡¡¼
++¤¦¤Þ¡¼ #CJ (Žß§ÕŽß)Ž³ŽÏŽ°
++¤¦¤Þ¡¼ #CJ ¡Ê¡¬§Õ¡¬¡Ë¥¦¥Þ¡¼
++¤¦¤Þ¡¼ #CJ ¡Ê¡¬§Õ¡¬¡ËŽ³ŽÏŽ°
++¤¦¤Þ¡¼ #CJ ¥¦¥Þ¡¼
++¤¦¤Þ¡¼ #JN (Žß§ÕŽß)Ž³ŽÏŽ°
++¤¦¤Þ¡¼ #JN Ž³ŽÏŽ°
++¤¦¤Þ¤¢ #CJ ¥¦¥Þ¡¼
++¤¦¤Þ¤¤¤Ü¤¦ #JN ¤¦¤Þ¤¤¤Ü¤¦
++¤¦¤Þ¤¤¤Ü¤¦ #KK ¤¦¤Þ¤¤ËÀ
++¤¦¤Þ¤¤¤Ü¤¦ #T35 ¤¦¤Þ¤¤ËÀ
++¤¦¤Þ¤Ê¤ê #T35 ÇÏÌé
++¤¦¤â¤¦¤è¤ê¤â¤«¤ë¤¯¤Á¤â¤«¤è¤Ã¤Æ¤¤¤Ê¤¤ #CJ ±©ÌÓ¤è¤ê¤â·Ú¤¯¡¢·ì¤âÄ̤äƤ¤¤Ê¤¤
++¤¦¤â¤©¡¼ #JN ¥¦¥â¥©¡¼
++¤¦¤â¤©¡¼ #JN Ž³ŽÓŽ«Ž°
++¤¦¤è #T35 ¥¦¥è
++¤¦¤è¤Ã¤Æ¤ë #T35 ±¦Íã¤Ã¤Æ¤ë
++¤¦¤é¤¢¤ª #T35 ΢ÀÄ
++¤¦¤é¤¢¤¯¤Þ¤Á¤ç¤¦¤¸¤ó #T35 ΢°­ËâĶ¿Í
++¤¦¤é¤¨¤í #T35 ¥¦¥é¥¨¥í
++¤¦¤é¤Ë¤Á¤ã¤ó #KK ΢£²¤Á¤ã¤ó
++¤¦¤é¤Ë¤Á¤ã¤ó #T35 ΢2¤Á¤ã¤ó
++¤¦¤é¤Ë¤Á¤ã¤ó #T35 ΢£²¤Á¤ã¤ó
++¤¦¤é¤Ï¤é #T35 ΢ʢ
++¤¦¤é¤Ü¤ó #T35 ΢ËÞ
++¤¦¤é¤Ü¤ó #T35 ΢Ëß
++¤¦¤é¤Ü¤ó #T35 â³ÍöËß
++¤¦¤é¤é¡¼ #JN ¥¦¥é¥é¡¼
++¤¦¤ê¤¸¤Ê¤ë #T35 ¥¦¥ê¥¸¥Ê¥ë
++¤¦¤ê¤Ê¤é #T35 ¥¦¥ê¥Ê¥é
++¤¦¤ê¤Ê¤é¤µ¤¤¤Ð¡¼¤Æ¤í¤À¤ó #JN ¥¦¥ê¥Ê¥é¥µ¥¤¥Ð¡¼¥Æ¥íÃÄ
++¤¦¤ê¤Ê¤é¤µ¤¤¤Ð¡¼¤Æ¤í¤À¤ó #JN Ž³ŽØŽÅŽ×Ž»Ž²ŽÊŽÞŽ°ŽÃŽÛÃÄ
++¤¦¤ê¤Ê¤é¤µ¤¤¤Ð¡¼¤Æ¤í¤À¤ó #JN Ž³ŽØŽÅŽ×Ž»Ž²ŽÊŽÞŽ°ŽÃŽÛÃÄ¡¡
++¤¦¤ë¤µ¤¤¤Ï¤¨¤À¤Ê¤¢ #JN ¤¦¤ë¤µ¤¤Çè¤À¤Ê¤¡
++¤¦¤ë¤»¡¼¤Ð¤« #JN ¤¦¤ë¤»¡¼Çϼ¯¡ª
++¤¦¤ë¤»¤¨¤Ð¤« #CJ ¤¦¤ë¤»¡¼Çϼ¯
++¤¦¤ë¤È¤é¤Þ¤½ #JN Ž³ŽÙŽÄŽ×ŽÏŽ¿
++¤¦¤ë¤Þ¤é¤Þ¤ó #JN ¥¦¥ë¥Þ¥é¥Þ¥ó
++¤¦¤ë¤â¤é¤Þ¤ó #JN ¥¦¥ë¥â¥é¥Þ¥ó
++¤¦¤í¡¼¤ó #JN ¥¦¥í¡¼¥ó
++¤¦¤ï¤¡¤¡¤ó #CJ ¥¦¥ï¥¡¥¡¥ó
++¤¦¤ï¤¡¤¡¤ó #CJ Ž³ŽÜŽ§Ž§ŽÝ
++¤¦¤ï¤Ê¤Ë #CJ ¤¦¤ï¡¢¤Ê¤Ë¡©
++¤¦¤ó¤³ #T35 ¥¦¥ó»Ò
++¤¦¤ó¤³¡¼ #JN ¥¦¥ó¥³¡¼!
++¤¦¤ó¤³¡¼ #JN Ž³ŽÝŽºŽ°!
++¤¦¤ó¤³¤¤¤¿ #CN ¥¦¥ó¥³ÈÄ
++¤¦¤ó¤³¤¤¤¿ #T35 ¥¦¥ó¥³ÈÄ
++¤¦¤ó¤³¤Ç¤­¤¿¤è¡¼ #JN ¥¦¥ó¥³¤Ç¤­¤¿¤è¡¼¡ª¡ª
++¤¨¡¼ #JN ¥¨¡¼
++¤¨¡¼¤¨¡¼ #T35 £Á£Á
++¤¨¡¼¤¸¤ã¤Ê¤¤¤« #T35 ¤ñ~¤Â¤ã¤Ê¤ð¤«
++¤¨¤¢¤¨¤Ã¤¸¤¬¤á #JN airH"Ž¶ŽÞŽÒ
++¤¨¤¢¤À¤ó #T35 ¥¨¥¢¥À¥ó
++¤¨¤¤¤¨¤ó #T35 ¤¨¤¤¤¨¤ó
++¤¨¤¤¤®¤ç¤¦¤â¤Ê¡¼ #JN ±Ä¶È¥â¥Ê¡¼
++¤¨¤¤¤±¤Ë¤¹¤È #T35 ¥¨¥¤¥±¥Ë¥¹¥È
++¤¨¤¤¤»¤¤ #T35 ±ÊÀÂ
++¤¨¤¤¤Á¤Æ¤£¡¼¤¨¤à¤¨¤ë¤« #T30 html²½
++¤¨¤¤¤Á¤Æ¤£¤Æ¤£¤Ô¤£¤ì¡¼¤¶¡¼ #JN http¥ì¡¼¥¶¡¼
++¤¨¤¤¤Ù¤Ã¤¯¤½ #KK ¥¨¥¤¥Ù¥Ã¥¯¥½
++¤¨¤¤¤Ù¤Ã¤¯¤½ #KK ¥¨¥¤¥Ù¥Ãʵ
++¤¨¤¤¤ê¤¦¤ï¤¡¤¡¤ó #JN ¥¨¥¤¥ê¥¦¥ï¥¢¥¡¥ó
++¤¨¤¤¤ê¤¦¤ï¤¡¤¡¤ó #JN Ž´Ž²ŽØŽ³ŽÜŽ±Ž§ŽÝ
++¤¨¤¤¤ê¤¦¤ï¤¡¤¡¤ó #JN Ž´Ž²ŽØŽ³ŽÜŽ±Ž§ŽÝ
++¤¨¤¨¤¸¤ã¤Ê¤¤¤« #T35 ¤ñ~¤Â¤ã¤Ê¤ð¤«
++¤¨¤­¤Ù¤½ #CN ¥¨¥­¥Ù¥½
++¤¨¤­¤Ù¤½ #T35 ¥¨¥­¥Ù¥½
++¤¨¤­¤Ù¤ó #CN ±ÕÊØ
++¤¨¤­¤Ù¤ó #CN ±ÖÊØ
++¤¨¤­¤Ù¤ó #CN ±ØÊÛ
++¤¨¤­¤Ù¤ó #T35 ±ÕÊØ
++¤¨¤­¤Ù¤ó #T35 ±ÖÊØ
++¤¨¤­¤Ù¤ó #T35 ±ØÊÛ
++¤¨¤­¤Ù¤ó¤À¤¤¤¬¤¯ #CN ±ØÊÛÂç³Ø
++¤¨¤­¤Ù¤ó¤À¤¤¤¬¤¯ #T35 ±ØÊÛÂç³Ø
++¤¨¤¯¤·¡¼¤É¤®¤ë¤¹ #JN ¥¨¥¯¥·¡¼¥É¥®¥ë¥¹
++¤¨¤¯¤¹¤×¤í¤¤¤Æ¤Ã¤É #JN exploited
++¤¨¤°¤¼¤Í¤³ #JN exe¤Í¤³
++¤¨¤¸¤ê¤¿¤ó #JN ¥¨¥Â¥ê¤¿¤ó
++¤¨¤¹¤¨¤à¤¤¤¤ #T35 $ME
++¤¨¤¹¤«¤ì¤¿¡¼ #T35 ¥¨¥¹¥«¥ì¥¿¡¼
++¤¨¤¹¤È¤·¡¼¤â¤¢¤¢¤é¤· #JN ¥¨¥¹¥È¥·¡¼¥â¥¢¹Ó¤é¤·
++¤¨¤À¤²¤ó¤Ê #CJ »ÞÌÓ¤ó¤Ê
++¤¨¤Ã¤¯¤¹¤®¤³ #JN X¥®¥³¡¡
++¤¨¤Ä¤³ #JN ¥¨¥Ä¥³
++¤¨¤È¤¦ #JN ¹¾ÆÚ
++¤¨¤È¤¦ #JNS ¹¾ÆÚ
++¤¨¤È¤ó #JN ¹¾ÆÚ
++¤¨¤È¤ó #JNS ¹¾ÆÚ
++¤¨¤Ê¤ê #JN ¤¨¤Ê¤ê
++¤¨¤Ê¤ê¤«¤º¤­ #JN ¤¨¤Ê¤ê¤«¤º¤­
++¤¨¤Ë¤¯¤½ #KK ¥¨¥Ë¥¯¥½
++¤¨¤Ë¤¯¤½ #T35 ¥¨¥Ë¥¯¥½
++¤¨¤Ì¤¸¤¤¤ï¤¢¤É #T35 NG¥ï¡¼¥É
++¤¨¤Ì¤¹¤Æ #T35 £Î¥¹¥Æ
++¤¨¤Ì¤Ë¤Á¤ë¤¦¤ë #T35 nÆü¥ë¡¼¥ë
++¤¨¤Ì¤ï¤¤¤Á¤å¤¦ #T35 ny¿ß
++¤¨¤Ò¤á #CN °¦É²
++¤¨¤Ó¤Õ¤é¤¤¤ï¤Ã¤·¤ç¤¤ #JN ¥¨¥Ó¥Õ¥é¥¤¥ï¥Ã¥·¥ç¥¤¡ª¡ª
++¤¨¤Õ¤¨¤¤ #CJ FA
++¤¨¤Õ¤¨¤¤ #CJ FA?
++¤¨¤Õ¤é¤ó¤¯ #T35 F¥é¥ó¥¯
++¤¨¤Ö¡¼¤¤ #T35 ¤¨¤Ö¡¼¤¤
++¤¨¤Ö¤¦¤¤ #T35 ¤¨¤Ö¡¼¤¤
++¤¨¤ß¤å #T35 ¤¨¤ß¤å
++¤¨¤à¤¨¤¨¤¯¤¹ #KK ¥¨¥à¥¨¡¼¥¯¥¹
++¤¨¤à¤¨¤¨¤¯¤¹ #KK Ž´ŽÑŽ´Ž°Ž¸Ž½
++¤¨¤à¤¨¤Ã¤¯¤¹ #T35 MX
++¤¨¤à¤¨¤Ã¤¯¤¹¤µ¤ó #JN £Í£Ø¤µ¤ó
++¤¨¤à¤¨¤Ã¤¯¤¹¤µ¤ó¤È¤³¤Þ¤ë #JN £Í£Ø¤µ¤ó¤È¥³¥Þ¥ë
++¤¨¤à¤¨¤Ã¤¯¤¹¤Á¤å¤¦ #T35 MX¿ß
++¤¨¤à¤¨¤à¤¢¤¢¤ë #T35 MMR
++¤¨¤à¤¨¤à¤¢¤¢¤ë¤³¤Ô¤Ú #CJ MMR¥³¥Ô¥Ú
++¤¨¤à¤¹¤Æ #T35 M¥¹¥Æ
++¤¨¤à¤Ö¤Á¤ç¤¦ #JN £ÍÉôĹ
++¤¨¤â¤é #JN ¥ñ¥â¥é
++¤¨¤ê #JN ¶ß
++¤¨¤ê #T35 ¶ß
++¤¨¤ê¤Á¤ó #JN ¥¨¥ê¥Ä¥£¥ó
++¤¨¤ê¤Ä¤£¤ó #JN ¤¨¤êÄÁ
++¤¨¤ì¤¯¤½ #T35 ¥¨¥ìʵ
++¤¨¤ì¤¯¤½ #T35 ¥¨¥ìʵ¡¼¥ó
++¤¨¤ì¤¯¤½¤ª¤ó #T35 ¥¨¥ìʵ
++¤¨¤ì¤¯¤½¤ª¤ó #T35 ¥¨¥ìʵ¡¼¥ó
++¤¨¤í¤¨¤í¤»¤ó¤¿¤¤¤º¤ê¤»¤ó¤¸¤ã¤¢ #T35 ¥¨¥í¥¨¥íÀïÂ⥺¥ê¥»¥ó¥¸¥ã¡¼
++¤¨¤í¤² #T30 ¥¨¥í¥²
++¤¨¤í¤² #T35 ¥¨¥í¥²
++¤¨¤í¤²¤ª¤¿¤¤¤Ä¤Ä¤Î¤Á¤«¤¤ #T35 ¥¨¥í¥²¥ª¥¿£µ¤Ä¤ÎÀÀ¤¤
++¤¨¤í¤²¤ò¤¿¤Ü¤¯¤á¤Ä¤¦¤ó¤É¤¦¤« #KK ¥¨¥í¥²¥ò¥¿ËÐÌDZ¿Æ°²È
++¤¨¤í¤²¤ó¤¬¡¼ #T35 ¥¨¥í¥²¥ó¥¬¡¼
++¤¨¤í¤²¤ó¤¬¤¢ #T35 ¥¨¥í¥²¥ó¥¬¡¼
++¤¨¤í¤º¤ê¡¼ #JN ¥¨¥í¥º¥ê¡¼
++¤¨¤í¤Ã¤¯¤¹ #T35 erox
++¤¨¤í¤Ü¤¯ #KK ¥¨¥íËÐ
++¤¨¤ó¤¤¡¼ #T30 ¤¨¤ó¤¤¡¼
++¤¨¤ó¤¤¡¼ #T35 ¤¨¤ó¤¤¡¼
++¤¨¤ó¤¤¤¤ #T35 ¤¨¤ó¤¤¡¼
++¤¨¤ó¤«¤«¤·¤å¤·¤£¤Á¤ã¤ó #JN ±é²Î²Î¼ê¤·¤£¤Á¤ã¤ó
++¤¨¤ó¤³¤¦¤É #T35 ±ç¸ò¡î
++¤¨¤ó¤¸¤ó¤ª¤¦ #JN ¥¨¥ó¥¸¥ó²¦
++¤ª¡¼¤¨¤¤¤Á¤Ô¡¼ #T35 £Ï£È£Ð
++¤ª¤¢¤¤¤½¤æ¡¼¤Û¡¼ #JN ¤ª¤¢¤¤¤½¥æ¡¼¥Û¡¼
++¤ª¤¤¤ª¤¤¤Ë¤å¡¼¤¹¤ß¤¿ #CJ ¤ª¤¤¤ª¤¤¡¢¥Ë¥å¡¼¥¹¸«¤¿¡©
++¤ª¤¤¤ª¤Þ¤¨¤é #CJ ¤ª¤¤¡¢¤ªÁ°¤é
++¤ª¤¤¤¹¤¿¡¼¤µ¤¯¤»¤ó #T35 ¥ª¥¤¥¹¥¿¡¼ºîÀï
++¤ª¤¤¤¹¤¿¤¢¤µ¤¯¤»¤ó #T35 ¥ª¥¤¥¹¥¿¡¼ºîÀï
++¤ª¤¤¤Ê¤ê¤â¤Ê¡¼ #JN ¤ª¤¤¤Ê¤ê¥â¥Ê¡¼
++¤ª¤¤¤à #T35 ¥ª¥¤¥à
++¤ª¤¤¤é #T35 ¤ª¤¤¤é
++¤ª¤¦¤´¤ó¤Á¤å¤¦ #T35 ²«¶â¿ß
++¤ª¤¦¤É¤¦¤á¤¬¤ß #KK ²¦Æ»½÷¿À
++¤ª¤ª¤®¤³¤Ö¤Á¤ç¤¦ #JN Â祮¥³ÉôĹ
++¤ª¤ª¤³¤ß¤ß¤Ï¤ó¤Æ¤ó #JN Âç¾®¼ªÈÓŹ
++¤ª¤ª¤Ã #JN ŽµŽµ¥Ã¡ª
++¤ª¤ª¤Ä¤­ #JN ¥ª¥ª¥Ä¥­
++¤ª¤ª¤Ä¤­ #JN ŽµŽµŽÂŽ·
++¤ª¤ª¤Ç¤£¤¨¤ó¤¹ #T35 ¥ª¡¼¥Ç¥£¥¨¥ó¥¹
++¤ª¤ª¤È¤³¤ó¤×¤ê¤¤¤È #T35 ¥ª¡¼¥È¥³¥ó¥×¥ê¡¼¥È
++¤ª¤ª¤È¤ê #KK ˱
++¤ª¤ª¤È¤ê #T35 ˱
++¤ª¤ª¤ß¤ß¤â¤Ê¡¼ #JN Â缪¥â¥Ê¡¼
++¤ª¤ª¤ß¤ß¤â¤Ê¤ß #JN Â缪˨ÆàÈþ
++¤ª¤ª¤ß¤ß¤â¤é¤é¡¼ #JN Â缪¥â¥é¥é¡¼
++¤ª¤ª¤â¤ê¤³¤¤¤ó #T35 Â翹¥³¥¤¥ó
++¤ª¤«¤®¤³¤­¤ç¤¦¤¸¤å #JN ¥ª¥«¥®¥³¶µ¼ø
++¤ª¤«¤·¤¤¤Ç¤¹¤è¤«¤Æ¤¸¤Ê¤µ¤ó #CJ ¤ª¤«¤·¤¤¤Ç¤¹¤è¡ª¥«¥Æ¥¸¥Ê¤µ¤ó¡ª¡ª
++¤ª¤«¤ß #JN ¤ª¤«¤ß
++¤ª¤«¤ä¤ó #JN µ¶ÔÝ¡¡
++¤ª¤«¤ä¤ó #JN ŽµŽ¶ŽÔŽÝ¡¡
++¤ª¤«¤ì¤¹ #T35 ²¬¥ì¥¹
++¤ª¤¬¤ï #T35 ¾®Àî
++¤ª¤¯ #T35 ±ü
++¤ª¤¯¤ì¤¹ #T35 Ã٥쥹
++¤ª¤°¤ê #T35 ¾®·ª
++¤ª¤±¤¤¤Ï¤ó #JN ¤ª¤±¤¤¤Ï¤ó
++¤ª¤±¤¤¤Ï¤ó #T35 ¤ª¤±¤¤¤Ï¤ó
++¤ª¤²¤Þ¤ó #T35 ¥ª¥²¥Þ¥ó
++¤ª¤³¤Î¤ß¤¸¤ç¤¦¤æ #JN ¤ª¹¥¤ß¾ßÌý
++¤ª¤µ¤·¤ß¤â¤Ê¡¼ #JN ¤ª¤µ¤·¤ß¥â¥Ê¡¼
++¤ª¤µ¤Õ¤Í¡¼¤è¤«¤Ã¤³¤¦¤£¤º¤â¤Æ¤Í¡¼¤è¤È¤¸¤«¤Ã¤³ #JN ¥ª¥µ¥Õ¥Í¡¼¥è¡Êwith¡¡¥â¥Æ¥Í¡¼¥è¡Ë
++¤ª¤µ¤Þ¤Ó¤ó¤é¤Ç¤£¤ó #JN ¥ª¥µ¥Þ¥Ó¥ó¥é¥Ç¥£¥ó
++¤ª¤µ¤é¡¼ #JN ¤ª»®¡¼
++¤ª¤µ¤é¡¼ #JN ¤ª»®¡¼
++¤ª¤µ¤ì #T30 ¥ª¥µ¥ì
++¤ª¤¶¤ï¤â¤Ê¤« #JN ¾®Âô¥â¥Ê¥«
++¤ª¤·¤¨¤Æ¤¯¤ó #T35 ¶µ¤¨¤Æ·¯
++¤ª¤·¤ª #JN ¤ª±ö
++¤ª¤·¤ª #T35 ¤ª±ö
++¤ª¤·¤ê¤¹ #JN ¥ª¥·¥ê¥¹
++¤ª¤·¤ê¤Ú¤ó¤Ú¤ó #CJ ¥ª¥·¥ê¥Ú¥ó¥Ú¥ó!
++¤ª¤·¤ê¤Ú¤ó¤Ú¤ó #CJ ŽµŽ¼ŽØŽÍŽßŽÝŽÍŽßŽÝ!
++¤ª¤·¤ê¤ò¤ª¤¬¤à¤¤¤¤¤ó¤«¤¤ #JN ¡ú¡ú¡ú¤ª¿¬¤òÇÒ¤à°Ñ°÷²ñ¡ú¡ú¡ú
++¤ª¤·¤ê¤ò¤ª¤¬¤à¤¤¤¤¤ó¤«¤¤ #JN ¡ú¡ú¡ú¤ª¿¬¤òÇÒ¤à°Ñ°÷²ñ¡ú¡ú¡ú
++¤ª¤¸¤ã¤Þ¤¸¤ç #JN ¤ª¥¸¥ãËâ½÷
++¤ª¤¸¤ó¤¬¡¼¤¼¤Ã¤È #JN ¥ª¥¸¥ó¥¬¡¼Z
++¤ª¤¸¤ó¤¬¤¢¤¼¤Ã¤È #JN ¥ª¥¸¥ó¥¬¡¼Z
++¤ª¤¹¤® #T35 ¤ª¿ù
++¤ª¤»¡¼¤í #CJ ¤ª¤»¡¼¤í
++¤ª¤»¤¨¤í #CJ ¤ª¤»¡¼¤í
++¤ª¤»¤í¤Ç¤â¤·¤è¤¦¤è #CJ ¥ª¥»¥í¤Ç¤â¤·¤è¤¦¤è
++¤ª¤½¤ì¤¹ #T35 Ã٥쥹
++¤ª¤¿¤¬¤ê #T35 ¥ª¥¿¼í¤ê
++¤ª¤¿¤­¤å¤¦ #KK ¥ò¥¿µÞ
++¤ª¤¿¤­¤å¤¦ #T35 ¥ò¥¿µÞ
++¤ª¤¿¤·¤å¤¦ #T35 ¥ª¥¿½­
++¤ª¤¿¤À¤¤¤·¤å¤¦¤´¤¦ #JN ¥ª¥¿Â罸¹ç
++¤ª¤¿¤ë¤Ã¤¯ #T35 ¥ª¥¿¥ë¥Ã¥¯
++¤ª¤À¤®¤ê¤â¤Ê¡¼ #JN ¥ª¥À¥®¥ê¥â¥Ê¡¼
++¤ª¤Á¤ã¤Î¤Þ #JN ¤ªÃã¤Î´Ö
++¤ª¤Ã¤È¡¼¤Á¤ã¤ó #JN ¥ª¥Ã¥È¡¼¤Á¤ã¤ó
++¤ª¤Ä #T35 ²µ
++¤ª¤Ä¤«¤¤ #KK ²µ²ñ
++¤ª¤Ä¤«¤ì¡¼ #CJ ²µ¥«¥ì¡¼
++¤ª¤Ä¤«¤ì¡¼ #T35 ²µ¥«¥ì¡¼
++¤ª¤Ä¤«¤ì¤¨ #T35 ²µ¥«¥ì¡¼
++¤ª¤Ä¤È¤«¤¤¤Ã¤¿¤ä¤Ä¤·¤Í #CJ ²µ¤È¤«¸À¤Ã¤¿ÅÛ»à¤Í
++¤ª¤Å¤é #JN ¥ª¥Å¥é
++¤ª¤Ç¤¸¡¼¤É #JN ¥ª¥Ç¥¸¡¼¥É
++¤ª¤Ç¤ó #T35 ¤ª¤Ç¤ó
++¤ª¤Ç¤ó¤Þ¤ó #JN ¤ª¤Ç¤ó¥Þ¥ó
++¤ª¤Ç¤ó¤Þ¤ó #T35 ¤ª¤Ç¤ó¤Þ¤ó
++¤ª¤È¡¼¤Á¤ã¤ó¤Ü¤Ã¤­¤·¤ç¤¦¤¬¤¤ #JN ¤ª¤È¡¼¤Á¤ã¤óËÖµ¯¾ã³²
++¤ª¤È¤¦¤Õ #JN ¤ª¤È¤¦¤Õ
++¤ª¤È¤³¤É¤ó #T35 ´ÁЧ
++¤ª¤È¤¸¤ã #T35 Äï¼Ô
++¤ª¤È¤¿¤± #JN £ÚÉð
++¤ª¤È¤¿¤± #JNS ¥ª¥È¥¿¥±
++¤ª¤È¤¿¤± #T35 £Ú¼°
++¤ª¤È¤¿¤± #T35 £ÚÉð
++¤ª¤È¤¿¤±¤¤ #JN ¥ª¥È¥¿·º
++¤ª¤È¤¿¤±¤¤ #T30 ¥ª¥È¥¿·º
++¤ª¤È¤¿¤±¤¤ #T35 ¥ª¥È¥¿·º
++¤ª¤È¤¿¤±¤²¤ó¤¹¤¤ #JN ¥ª¥È¥¿¥±¸µ¿ã
++¤ª¤È¤Ê #T35 ¤ò¤È¤Ê
++¤ª¤È¤Ê¤Î¤®¤³¤®¤³¤¿ #JN Âç¿Í¤Îµ¼¸Å¥®¥³ÂÀ
++¤ª¤È¤Þ¤ë #JN £Ú´Ý
++¤ª¤È¤á #T35 ´Á½÷
++¤ª¤É¤ê #T35 ¤ª¤É¤ê
++¤ª¤Ê #CJ ¤ª¤Ê
++¤ª¤Ê¡¼¤Ë #T30 ¥ª¥Ê¡¼¥Ë
++¤ª¤Ê¡¼¤Ë #T30 ŽµŽÅŽ°ŽÆ
++¤ª¤Ê¤¬¤¤¤·¤Þ¤¹ #CJ ¤ª¤Ê¤¬¤¤¤·¤Þ¤¹
++¤ª¤Ê¤¬¤¤¤·¤Þ¤¹ #JN ¤ª¤Ê¤¬¤¤¤·¤Þ¤¹¡¡
++¤ª¤Ê¤·¤å¤ß #CJ ¤ª¤Ê¼ñÌ£
++¤ª¤Ê¤·¤å¤ß #T35 ¤ª¤Ê¼ñÌ£
++¤ª¤Ê¤Ë¡¼ #T30 ¥ª¥Ê¥Ë¡¼
++¤ª¤Ê¤Ë¤¤¤¹¤ì #T35 ¥ª¥Ê¥Ë¡¼¥¹¥ì
++¤ª¤Ê¤Ë¤¹¤È #T35 ¥ª¥Ê¥Ë¥¹¥È
++¤ª¤Ê¤Ì¡¼ #T30 ¥ª¥Ê¥Ì¡¼
++¤ª¤Ê¤Ì¡¼ #T30 ŽµŽÅŽÇŽ°
++¤ª¤Ë¤¤¤Ë¤ï¤Ã¤Á¤ç¤¤ #JN ¤ª¤Ë¡¼¤Ë¥ï¥Ã¥Á¥ç¥¤
++¤ª¤Ë¤®¤ê #JN ¤ª¤Ë¤®¤ê
++¤ª¤Ë¤®¤ê¤¦¤À¤¤¤¸¤ó #JN ¤ª¤Ë¤®¤ê±¦Âç¿Ã
++¤ª¤Ë¤®¤ê¤¬¤Ê¡¼ #JN ¤ª¤Ë¤®¤ê¥¬¥Ê¡¼
++¤ª¤Ë¤®¤ê¤¸¤¤¤µ¤ó #JN ¤ª¤Ë¤®¤ê¤¸¤¤¤µ¤ó
++¤ª¤Ë¤®¤ê¤¸¤ã¤® #JN ¤ª¤Ë¤®¤ê¥¸¥ã¥®
++¤ª¤Ë¤®¤ê¤¹¤é¤¤¤à #JN ¤ª¤Ë¤®¤ê¥¹¥é¥¤¥à
++¤ª¤Ë¤®¤ê¤»¤¤¤È #JN ¤ª¤Ë¤®¤êÀ¸ÅÌ
++¤ª¤Ë¤®¤ê¤»¤ó¤è¤¦¤¢¤Ã¤¬¤¤ #JN ¤ª¤Ë¤®¤êÀìÍÑ¥¢¥Ã¥¬¥¤
++¤ª¤Ë¤®¤ê¤¿¤â¤ê #JN ¤ª¤Ë¤®¤ê¥¿¡û¥ê
++¤ª¤Ë¤®¤ê¤À¤ó #JN ¤ª¤Ë¤®¤êÃÄ
++¤ª¤Ë¤®¤ê¤Æ¤ó¤· #JN ¤ª¤Ë¤®¤êÅ·»È
++¤ª¤Ë¤®¤ê¤È¤¦ #JN ¤ª¤Ë¤®¤êÅÞ
++¤ª¤Ë¤®¤ê¤È¤¦ #JN ¤ª¤Ë¤®¤êÅÞ
++¤ª¤Ë¤®¤ê¤Ð¤ó¤É #JN ¤ª¤Ë¤®¤ê¥Ð¥ó¥É
++¤ª¤Ë¤®¤ê¤Ò¤Ã¤­¡¼ #JN ¤ª¤Ë¤®¤ê¥Ò¥Ã¥­¡¼
++¤ª¤Ë¤®¤ê¤Û¤ó¤Ý #JN ¤ª¤Ë¤®¤êËÜÊÞ
++¤ª¤Ë¤®¤ê¤à¤­¤à¤­ #JN ¤ª¤Ë¤®¤ê¥à¥­¥à¥­
++¤ª¤Ë¤®¤ê¤â¤Ê¡¼ #JN ¤ª¤Ë¤®¤ê¥â¥Ê¡¼
++¤ª¤Ë¤®¤ê¤ï¤Ã¤Á¤ç¤¤ #JN ¥ª¥Ë¥®¥ê¥ï¥Ã¥Á¥ç¥¤
++¤ª¤Ë¤ï¤ê¡¼¤Ê #T35 ¥ª¥Ë¥ï¥ê¡¼¥Ê
++¤ª¤Ë¤ï¤ê¤¤¤Ê #T35 ¥ª¥Ë¥ï¥ê¡¼¥Ê
++¤ª¤Í #T35 ¤ª¤Í
++¤ª¤Í¤¤¤µ¤ó #T35 ¤ª¤Í¤¤¤µ¤ó
++¤ª¤Ï¤Ê¤Ð¤¿¤± #T35 ¤ª²ÖȪ
++¤ª¤Ï¤è¤¦¤¸¤ç #T35 ¤ª¤Ï¤ç¤¥¦É¡«¤ç
++¤ª¤Ð¤Á¤ã¤ó #T35 ŽµŽÊŽÞŽÁŽ¬ŽÝ
++¤ª¤Ð¤Á¤ã¤ó #T35 ¥ª¥Ð¥Á¥ã¥ó
++¤ª¤Ð¤Á¤å¤¦ #T35 ¤ª¤Ð¿ß
++¤ª¤Ð¤Á¤å¤¦ #T35 ¥ª¥Ð¿ß
++¤ª¤Ñ¡¼¤¤ #T35 ¥ª¥Ñ¡¼¥¤
++¤ª¤Ñ¤¢¤¤ #T35 ¥ª¥Ñ¡¼¥¤
++¤ª¤Ó¤¿¤Ë¤Ý¤Ã¤È #JN ÂÓë¥Ý¥Ã¥È
++¤ª¤Õ¤«¤¤ #T30 ¥ª¥Õ²ñ
++¤ª¤Õ¤é¤¤¤ó¤Ó¤å¡¼¤ï #KK ¥ª¥Õ¥é¥¤¥ó¥Ó¥å¡¼¥ï
++¤ª¤Ö¤Ä #T35 ±øʪ
++¤ª¤Ù¤ä¤ê¡¼¤Ê #T35 ¥ª¥Ù¥ä¥ê¡¼¥Ê
++¤ª¤Ù¤ä¤ê¤¤¤Ê #T35 ¥ª¥Ù¥ä¥ê¡¼¥Ê
++¤ª¤Ù¤é¤ê¡¼¤Ê #T35 ¥ª¥Ù¥é¥ê¡¼¥Ê
++¤ª¤Ù¤é¤ê¤¤¤Ê #T35 ¥ª¥Ù¥é¥ê¡¼¥Ê
++¤ª¤Ù¤ó¤È¤¦¤¦¤¤¤ó¤Ê¤¢ #T35 ¤ªÊÛÅö¥¦¥¤¥ó¥Ê¡¼
++¤ª¤Þ¡¼¤é #T35 ¤ª¤Þ¡¼¤é
++¤ª¤Þ¤¤¤ê #JN ¤ª»²¤ê
++¤ª¤Þ¤¨¤«¤Ë¡¼ #JN ¥ª¥Þ¥¨¥«¥Ë¡¼
++¤ª¤Þ¤¨¤¬¤Æ¤Û¤ó¤ò¤ß¤»¤í¤è #CJ ¤ªÁ°¤¬¼êËܤò¸«¤»¤í¤è¡Ê¡÷£÷¹Ó
++¤ª¤Þ¤¨¤¬¤Ê¡¼ #JN ¥ª¥Þ¥¨¥¬¥Ê¡¼
++¤ª¤Þ¤¨¤¯¤Þ¡¼ #JN ¥ª¥Þ¥¨¥¯¥Þ¡¼
++¤ª¤Þ¤¨¤·¤Í¡¼ #JN ¥ª¥Þ¥¨¥·¥Í¡¼
++¤ª¤Þ¤¨¤¸¤ã¤¬¡¼ #JN ¥ª¥Þ¥¨¥¸¥ã¥¬¡¼
++¤ª¤Þ¤¨¤¸¤ã¤¬¡¼ #JN ¥ª¥Þ¥¨¥¸¥ã¥¬¡¼
++¤ª¤Þ¤¨¤¸¤ã¤Í¡¼¤¾ #JN ¥ª¥Þ¥¨¥¸¥ã¥Í¡¼¥¾
++¤ª¤Þ¤¨¤À¤± #JN ¥ª¥Þ¥¨¥À¥±
++¤ª¤Þ¤¨¤À¤± #JN ¥ª¥Þ¥¨¥À¥±(¸æÁ°Âû)
++¤ª¤Þ¤¨¤À¤± #JN ¸æÁ°Âû
++¤ª¤Þ¤¨¤À¤Ê¡¼ #JN ¤ª¤Þ¤¨¤À¤Ê¡¼
++¤ª¤Þ¤¨¤À¤Ë #JN ¥ª¥Þ¥¨Ã«
++¤ª¤Þ¤¨¤Ï¤¿¤ó¤í¤ó¤« #CJ ¤ªÁ°¤Ï¥¿¥ó¡¦¥í¥ó¤«¡©
++¤ª¤Þ¤¨¤â¤«¡¼ #JN ¥ª¥Þ¥¨¥â¥«¡¼
++¤ª¤Þ¤¨¤â¤Â¤ã¡¼ #JN ¥ª¥Þ¥¨¥â¥Â¥ã¡¼
++¤ª¤Þ¤¨¤â¤Ê¡¼ #CJ ¥ª¥Þ¥¨¥â¥Ê¡¼
++¤ª¤Þ¤¨¤â¤Ê¡¼¤Ï¤ó #JN ¥ª¥Þ¥¨¥â¥Ê¡¼´À
++¤ª¤Þ¤¨¤â¤Ê¤¢ #CJ ¥ª¥Þ¥¨¥â¥Ê¡¼
++¤ª¤Þ¤¨¤â¤Ê¤´¤¦ #JN OMAEMONA¹æ
++¤ª¤Þ¤¨¤â¤Ë¤ã¡¼ #JN ¤ª¤Þ¤¨¤â¤Ë¤ã¡¼
++¤ª¤Þ¤¨¤â¤Ò¤ã #JN ¥ª¥Þ¥¨¥â¥Ò¥ã
++¤ª¤Þ¤ó¤¸¤å¤¦ #T35 ¤ªñ½Æ¬
++¤ª¤ß¤¢¤¤¤¹¤ë¤â¤é¤é¡¼ #JN ¤ª¸«¹ç¤¤¤¹¤ë¥â¥é¥é¡¼
++¤ª¤ß¤È¤í¤ó #T35 ¥ª¥ß¥È¥í¥ó
++¤ª¤à¤¹¤Ó #JN ¤ª¤à¤¹¤Ó
++¤ª¤á¡¼¤é #T35 ¤ª¤á¡¼¤é
++¤ª¤á¤¤¤Ð¤ó¤«¤¤ #CJ ±ø̾ÈÔ²ó
++¤ª¤á¤¬ #T35 ¥ª¥á¥¬
++¤ª¤á¤¬¤¢¤é¤· #T35 ¦Ø¹Ó¤é¤·
++¤ª¤á¤¬¤Á¤ó #T35 ¦ØÄÁ
++¤ª¤â¤Õ #CJ »×¤Õ
++¤ª¤â¤é¤¿¤«¤Ò¤í #JN Èø¥â¥éδ¹°
++¤ª¤â¤ï¤ì #CJ »×¤ï¤ì¡£
++¤ª¤â¤ï¤ì #T35 »×¤ï¤ì
++¤ª¤ä¤³¤Ú¤ó¤®¤ó #JN ¿Æ»Ò¥Ú¥ó¥®¥ó
++¤ª¤ê #KK Ý£
++¤ª¤ê #T35 Ý£
++¤ª¤ê¤­ #T35 ¥ª¥ê¥­
++¤ª¤ê¤Å¤ë14¤Þ¤ó¤Ð¤×¤í¤¸¤§¤¯¤È #CJ ÀÞ¤êÄá14Ëü±©¥×¥í¥¸¥§¥¯¥È
++¤ª¤ê¤Ï¤é¤Ö¤é #T35 ÀÞ¸¶¥Ö¥é
++¤ª¤ê¤Ù¤í¤Ó¡¼ #T35 ¿¥Éô¥í¥Ó¡¼
++¤ª¤ê¤Ù¤í¤Ó¤¤ #T35 ¿¥Éô¥í¥Ó¡¼
++¤ª¤ê¤ç¤¦¤ê¤ª¤Í¤¨¤µ¤ó #JN ¤ªÎÁÍý¤ª»Ð¤µ¤ó
++¤ª¤ë¤¹¤Æ¤Ã¤É #JN ¥ª¥ë¥¹¥Æ¥Ã¥É
++¤ª¤ì¤ª¤ó¤Ê #T35 ²¶½÷
++¤ª¤ì¤µ¤Þ #T35 ²¶ÍÍ
++¤ª¤ì¤µ¤Þ¤è¤¦¤·¤ª¤ê #T35 ²¶ÍÍÍѤ·¤ª¤ê
++¤ª¤ì¤À¡¼ #JN ²¶¤À¡¼
++¤ª¤ì¤Ë¤µ¤ï¤°¤ª¤Õ #T35 ²¶¤ËÁû¤°¥ª¥Õ
++¤ª¤ì¤Ï¤Þ¤Á¤¬¤¤¤Ê¤¯¤¤¤Ã¤Ñ¤ó¤¸¤ó #T35 ²¶¤Ï´Ö°ã¤¤¤Ê¤¯°ìÈÌ¿Í
++¤ª¤ì¤â¤Ê¡¼ #CJ ¥ª¥ì¥â¥Ê¡¼
++¤ª¤ì¤â¤ì¤â #T35 ²¶Ï³¤ì¤â
++¤ª¤ï¤Ã¤¿¤Ê #JN (¡¦¡¼¡¦¡ËŽµŽÜŽ¯ŽÀŽÅŽ¥Ž¥Ž¥
++¤ª¤ï¤Ã¤¿¤Ê #JN ¥ª¥ï¥Ã¥¿¥Ê¡¦¡¦¡¦
++¤ª¤ï¤Ã¤¿¤Ê #JN ŽµŽÜŽ¯ŽÀŽÅŽ¥Ž¥Ž¥
++¤ª¤ó¤¿¤¤ #T35 ²¹ÂÓ
++¤ª¤ó¤¿¤¤ #T35 ¸æÂç
++¤ª¤ó¤ß¤ç¤¦¤¸ #JN ±¢ÍÛ»Õ
++¤ª¤ó¤ê¤¨¤ó #T35 Onlien
++¤« #R5r ¼í
++¤«¡¼¤É¤­¤ã¤×¤¿¡¼¤â¤Ê¡¼ #JN CC¥â¥Ê¡¼
++¤«¤¤¤³¤·¤å¤® #T35 ²û¸Å¼çµÁ
++¤«¤¤¤»¤ó #T35 áÎáý
++¤«¤¤¤»¤ó¤­¤Ã¤Æ¤¯¤Ó¤Ä¤Ã¤Æ¤·¤Í #CJ ²óÀþÀڤäƼóÄߤäƻá¤Í
++¤«¤¤¤»¤ó¤­¤Ã¤Æ¤¯¤Ó¤Ä¤Ã¤Æ¤·¤Í #JN ²óÀþÀڤäƼóÄߤäƻá¤Í
++¤«¤¤¤Æ¤­¤Ö¤é¤¦¤¶¡¼ #KK ²÷Ŭ¥Ö¥é¥¦¥¶¡¼
++¤«¤¤¤É¤¦ #KK ²ñƱ
++¤«¤¤¤É¤¦ #KK ²øƸ
++¤«¤¤¤É¤¦ #KK ³¹Æ»
++¤«¤¤¤É¤¦ #T35 ²ñƱ
++¤«¤¤¤É¤¦ #T35 ²øƸ
++¤«¤¤¤É¤¦ #T35 ³¹Æ»
++¤«¤¤¤Õ¤¯¤¹¤Ñ¤¹¤Ñ¤â¤Ê¡¼¤¬¤¯ #JN ²óÉü¥¹¥Ñ¥¹¥Ñ¥â¥Ê¡¼³Ø
++¤«¤¤¤Ø¤¤¤µ¤ó #JN ³«ÊĤµ¤ó
++¤«¤¤¤ï¤ì #T35 ¥«¥¤¥ï¥ì
++¤«¤¨ #CJ ¤«¤¨
++¤«¤¨¤Ç¤ä¤Ä¤é #T35 ¤«¤¨¤Ç¤ä¤Ä¤é
++¤«¤¨¤ì #CJ (Ž¥¢ÏŽ¥)Ž¶Ž´ŽÚ!
++¤«¤¨¤ì #CJ ¡Ê¡¦¢Ï¡¦¡ËŽ¶Ž´ŽÚ!
++¤«¤¨¤ì #CJ ¥«¥¨¥ì
++¤«¤¨¤ì #CJ ¥«¥¨¥ì!
++¤«¤¨¤ì #CJ Ž¶Ž´ŽÚ!
++¤«¤¨¤ì #T35 ¥«¥¨¥ì
++¤«¤ª¤â¤¸ #T35 ´éʸ»ú
++¤«¤ª¤â¤¸¤µ¤¯¤»¤¤¤¤¤é¤¤ #T30 ´éʸ»úºîÀ®°ÍÍê
++¤«¤¬¤ä #K5r µ±
++¤«¤¬¤ä¤± #CJ µ±¤±
++¤«¤¬¤ä¤± #T35 µ±¤±
++¤«¤¬¤ï #T35 ¹áÀî
++¤«¤­¤³ #M5r ½ñ¤­¹þ
++¤«¤­¤³ #T30 ¥«¥­¥³
++¤«¤­¤ç¤¦¤¤¤ó¤Î¤ê¤¢¤­¤È¤Ï¤ó¤«¤Á¤Î¤Á¤ç¤¦¤»¤ó¤¸¤ç¤¦ #JN ²Öµþ±¡ÅµÌÀ¤È¥Ï¥ó¥«¥Á¤ÎÄ©Àï¾õ
++¤«¤® #KK ¸°
++¤«¤® #T35 ¸°
++¤«¤®¤Ã¤³ #T35 ¸°¤Ã»Ò
++¤«¤¯¤É¤È¤« #CJ ³ÑÅ٤Ȥ«
++¤«¤¯¤Ë¤¤¤¿ #CN ³Ñ¼ÑÈÄ
++¤«¤¯¤Ø¤ó #T30 ³ÎÊÑ
++¤«¤¯¤Ø¤ó #T35 ³ÎÊÑ
++¤«¤¯¤è¤¦ #T35 ÄáÂë
++¤«¤¯¤ê #T30 ³ÖÎ¥
++¤«¤¯¤ê¤¤¤¿ #CN ³ÖÎ¥ÈÄ
++¤«¤¯¤ê¤¤¤¿ #T35 ³ÖÎ¥ÈÄ
++¤«¤¯¤ê¤¤¤¿¤Î¤«¤¯¤ê¤¤¤¿ #T35 ³ÖÎ¥ÈĤγÖÎ¥ÈÄ
++¤«¤°¤· #T35 ¹á¶ñ»Õ
++¤«¤² #T35 kage
++¤«¤³¤¤ #KY ¥«¥³¥¤
++¤«¤³¤¤¤¤ #T35 ¥«¥³¥¤¥¤
++¤«¤³¤í¤° #T35 ²áµî¥í¥°
++¤«¤³¤ï¤ë #KY ¥«¥³¥ï¥ë
++¤«¤³¤ï¤ë¤¤ #T35 ¥«¥³¥ï¥ë¥¤
++¤«¤´ #JN ¤¢¤¤¤Ü¤ó
++¤«¤´ #JN ²Ã¸î
++¤«¤µ #JN »±
++¤«¤µ #T35 »±
++¤«¤µ¡¼¤ê #JN ¥«¥µ¡¼¥ê
++¤«¤µ¤«¤µ #JN ¥«¥µ¥«¥µ
++¤«¤·¤ï¤â¡¼¤Á #JN ¥«¥·¥ï¥â¡¼¥Á
++¤«¤¹¤Æ¤ë #KK ¥«¥¹¥Æ¥ë
++¤«¤¹¤Æ¤ë #T35 ¥«¥¹¥Æ¥ë
++¤«¤º #T35 ¿ô¢ª
++¤«¤º¤¸¤µ¤ó #T35 ¿ô»ú¤µ¤ó
++¤«¤º¤ä¤¸¤ë¤· #T35 ¿ô¢ª
++¤«¤»¤­¤¹¤ì #T35 ²½ÀÐ¥¹¥ì
++¤«¤½¤¤¤¿ #T35 ²áÁÂÈÄ
++¤«¤½¤¦¤â¤Ê¡¼ #JN ²ÐÁò¥â¥Ê¡¼
++¤«¤¿ #R5 ñÙ
++¤«¤¿ #R5r ñÙ
++¤«¤¿¤¬¤Á #T30 ÊÒ¥¬¥Á
++¤«¤¿¤ä¤ª #T30 Êҥ䥪
++¤«¤¿¤ê #T35 ñÙ¤ê
++¤«¤¿¤ï¤é¡¼ #JN ¥«¥¿¥ï¥é¡¼
++¤«¤Á¤°¤ß¤é¤¤¤ó #T35 ¾¡ÁȤߥ饤¥ó
++¤«¤Á¤å¡¼¤·¤ã #KK ¤«¤Á¤å¡Á¤·¤ã
++¤«¤Á¤å¡¼¤·¤ã #T35 ¤«¤Á¤å¡Á¤·¤ã
++¤«¤Á¤å¡¼¤·¤ã¤µ¤ó #JN ¤«¤Á¤å¡Á¤·¤ã¤µ¤ó
++¤«¤Á¤å¤¦¤·¤ã #T35 ¤«¤Á¤å¡Á¤·¤ã
++¤«¤Á¤ç¤¦ #T35 ²ÝĹ
++¤«¤Ã¤±¡¼ #CJ ¤«¤Ã¤±¡¼
++¤«¤Ã¤±¡¼ #T35 ¤«¤Ã¤±¡¼
++¤«¤Ã¤±¤¨ #CJ ¤«¤Ã¤±¡¼
++¤«¤Ã¤³¤¤¤¤ #T35 ¥«¥Ã¥³¥¤¥¤
++¤«¤Ã¤È¤â¤Ê¡¼ #JN ¥«¥Ã¥È¥â¥Ê¡¼
++¤«¤Ã¤Ñ #KK ²ÏƸ
++¤«¤Ã¤Ñ #T35 ²ÏƸ
++¤«¤Ã¤Ñ¤¸¤ã¤Ê¤¤¤è #JN ¥«¥Ã¥Ñ¤¸¤ã¤Ê¤¤¤è
++¤«¤Ã¤Ñ¤Ã¤Ñ¡¼ #JN ¥«¥Ã¥Ñ¥Ã¥Ñ¡¼
++¤«¤Ä #JN ¹î
++¤«¤Ä #T35 ¹î
++¤«¤Ä¤Þ¤¿ #T35 ¾¡Ëó
++¤«¤Ä¤ó #T35 ¥«¥Ä¥ó
++¤«¤Æ¤´¤ê #T35 ¥«¥Æ¥´¥ê
++¤«¤È¤¦¤¸¤å¤ê #JN ²ÃÆ£¥¸¥å¥ê
++¤«¤È¤¦¤¸¤ç¤æ¤¦ #T35 ²¼Åù½÷Í¥
++¤«¤È¤¦¤æ¤« #JN ²Ãƣͳ¹á
++¤«¤É¤Þ¤ï¤ó #KK ¥«¥É¥Þ¥ï¥ó
++¤«¤É¤Þ¤ï¤ó #T35 ¥«¥É¥Þ¥ï¥ó
++¤«¤Ê¡¼ #JN ¥«¥Ê¡¼
++¤«¤Ë #KK ³ª
++¤«¤Ë #T35 ³ª
++¤«¤Ë¤Ð¤ë #JN (¡¦Æù¡¦)
++¤«¤Ë¤Ð¤ë #JN ¥«¥Ë¥Ð¥ë
++¤«¤Í¤Í¡¼¤è #JN ¥«¥Í¥Í¡¼¥è
++¤«¤Ó¤ª¤Ë¤®¤ê #KK ¥«¥Ó¥ª¥Ë¥®¥ê
++¤«¤Ó¤ª¤Ë¤®¤ê #T35 ¥«¥Ó¥ª¥Ë¥®¥ê
++¤«¤Ó¤ó¤¿¤ó #JN ²ÖÉÓ¤¿¤ó
++¤«¤Õ¤§¡¼ #JN ¥«¥Õ¥§¡¼
++¤«¤Ö #R5 ¤«¤Ö
++¤«¤Ö¤·¤­¤¬¤¤¤·¤ã¤ä¤ª¤­¤ó #KK ³ô¼°²ñ¼Ò¥ä¥ª¥­¥ó
++¤«¤Ö¤·¤­¤¬¤¤¤·¤ã¤ä¤ª¤­¤ó #T35 ³ô¼°²ñ¼Ò¥ä¥ª¥­¥ó
++¤«¤Ö¤È¤à¤· #T35 ¥«¥Ö¥È¥à¥·
++¤«¤×¡¼¤ë¤¤¤¿ #CN ¥«¥×¡¼¥ëÈÄ
++¤«¤×¡¼¤ë¤¤¤¿ #T35 ¥«¥×¡¼¥ëÈÄ
++¤«¤×¡¼¤ë¤¤¤¿ #T35 Ž¶ŽÌŽßŽ°ŽÙÈÄ
++¤«¤×¤¦¤ë¤¤¤¿ #T35 ¥«¥×¡¼¥ëÈÄ
++¤«¤×¤¦¤ë¤¤¤¿ #T35 Ž¶ŽÌŽßŽ°ŽÙÈÄ
++¤«¤×¤ó¤³ #JN (Ž¥¢ÏŽ¥)¥Î¡¡
++¤«¤×¤ó¤³ #JN ¥«¥×¥ó¥³¡ª
++¤«¤Ù #T35 ÊÉ
++¤«¤Þ¤É¤¦¤Þ¤¢¤é¤· #JN ¥«¥Þ¥É¥¦¥Þ¹Ó¤é¤·
++¤«¤ß #JN »æ
++¤«¤ß #T35 ¿À
++¤«¤ß¤«¤¼¤È¤Ã¤³¤¦¤¿¤¤ #JN ¿ÀÉ÷Æù¶Ââ
++¤«¤ß¤³¤¦¤ê¤ó #T35 ¿À¹ßÎ×
++¤«¤ß¤µ¤¯¤¬ #T35 ¿Àºî²è
++¤«¤ß¤Ê¤ê¤°¤ë¡¼¤× #JN Í륰¥ë¡¼¥×
++¤«¤ß¤Ê¤ê¤°¤ë¡¼¤× #T35 Í륰¥ë¡¼¥×
++¤«¤ß¤Ê¤ê¤°¤ë¤¦¤× #T35 Í륰¥ë¡¼¥×
++¤«¤ß¤Î¤¸¤¤¤Æ¤£¤¤¤ª¤¦ #T35 ¿À¤ÎGTO
++¤«¤ß¤Î¤Ê¤ä¤ß¤Ï¤ê¡¼¤Ö¤Ë¤¸¤å¤¦¤¤¤Á #JN ȱ¤ÎǺ¤ß¤Ï¥ê¡¼¥Ö£²£±
++¤«¤á #T35 µµ
++¤«¤á #T35 µµ¥Þ¥Þ
++¤«¤á¤Þ¤Þ #T35 µµ¥Þ¥Þ
++¤«¤á¤â¤Ê¡¼ #JN ¥«¥á¥â¥Ê¡¼
++¤«¤á¤â¤Ê¡¼¤°¤ì¡¼¤È #JN ¥«¥á¥â¥Ê¡¼¥°¥ì¡¼¥È
++¤«¤á¤ì¤¹ #T35 µµ¥ì¥¹
++¤«¤á¤ó¤é¤¤¤À¡¼¤¢¤®¤³ #JN ²¾Ì̥饤¥À¡¼¥¢¥®¥³
++¤«¤á¤ó¤é¤¤¤À¡¼¤¢¤®¤³ #JN ²¾Ì̥饤¥À¡¼¥¢¥®¥³
++¤«¤á¤ó¤é¤¤¤À¡¼¤¢¤Þ¤¾¤ó #JN ²¾Ì̥饤¥À¡¼¥¢¥Þ¥¾¥ó
++¤«¤á¤ó¤é¤¤¤À¡¼¤®¤ë¤¹ #JN ²¾Ì̥饤¥À¡¼¥®¥ë¥¹
++¤«¤á¤ó¤é¤¤¤À¡¼¤®¤ë¤¹ #JN ²¾Ì̥饤¥À¡¼¥®¥ë¥¹
++¤«¤á¤ó¤é¤¤¤À¡¼¤´¤ë¤¡¤Ã¤¯ #JN ²¾Ì̥饤¥À¡¼GOLACK
++¤«¤á¤ó¤é¤¤¤À¡¼¤·¤£¤¹¤ê¡¼ #JN ²¾Ì̥饤¥À¡¼¤·¤££³
++¤«¤á¤ó¤é¤¤¤À¡¼¤·¤£¤¹¤ê¡¼ #JN ²¾Ì̥饤¥À¡¼¤·¤££³
++¤«¤á¤ó¤é¤¤¤À¡¼¤·¤£¤¹¤ê¡¼¤¨¤Ã¤¯¤¹ #JN ²¾Ì̥饤¥À¡¼¤·¤££³¡Ý£Ø
++¤«¤á¤ó¤é¤¤¤À¡¼¤·¤£¤¹¤ê¡¼¤¨¤Ã¤¯¤¹ #JN ²¾Ì̥饤¥À¡¼¤·¤££³¡Ý£Ø
++¤«¤á¤ó¤é¤¤¤À¡¼¤¹¤È¤í¤ó¤¬¡¼ #JN ²¾Ì̥饤¥À¡¼¥¹¥È¥í¥ó¥¬¡¼
++¤«¤á¤ó¤é¤¤¤À¡¼¤â¤¦¤Ê #JN ²¾Ì̥饤¥À¡¼¥â¥¦¥Ê
++¤«¤â¤¹ #S5 ¾ú¤¹
++¤«¤â¤á #T35 ²ª
++¤«¤é¤¢¤®¤ã¤ó¤° #T35 ¥«¥é¡¼¥®¥ã¥ó¥°
++¤«¤é¤¢¤² #T35 ÅâÍȤ²
++¤«¤é¤­¤Þ¤·¤¿ #CJ ¤«¤éÍè¤Þ¤·¤¿
++¤«¤é¤¹ #JN ±¨
++¤«¤ë¤¿¤ó #JN ¥«¥ë¥¿¥ó
++¤«¤ì¡¼¤Ñ¤½¤Þ¤½ #JN ¥«¥ì¡¼¥Ñ¥½¥Þ¥½
++¤«¤ì¡¼¤Ñ¤ó¤Þ¤ó #JN ¥«¥ì¡¼¥Ñ¥ó¥Þ¥ó
++¤«¤ì¡¼¤Ñ¤ó¤Þ¤ó #JN Ž¶ŽÚŽ°ŽÊŽßŽÝŽÏŽÝ
++¤«¤ì¤¤¤·¤å¤¦¤¿¤À¤è¤¦ #CJ ²ÃÎð½­Éº¤¦
++¤«¤ì¤Ï #T35 ¸ÏÍÕ
++¤«¤ï¤µ¤® #T35 Àµ½
++¤«¤ï¤·¤Þ¤¢¤Å¤ß #JN ÀîÅçÏÂÄżÂ
++¤«¤ó #T35 ´°
++¤«¤ó¤«¤ó¤É¤¦¤ê¤Ä #KK ´Ø´ØƱΩ
++¤«¤ó¤«¤ó¤É¤¦¤ê¤Ä #T35 ´Ø´ØƱΩ
++¤«¤ó¤¬¤¯¤´¤­¤Ö¤ê #JN ´Ø³Ø¥´¥­¥Ö¥ê
++¤«¤ó¤¬¤ë¡¼¤â¤Ê¡¼ #JN ¥«¥ó¥¬¥ë¡¼¥â¥Ê¡¼
++¤«¤ó¤¯¤í¤¦ #JN ¥«¥ó£¹£¶
++¤«¤ó¤¯¤í¤¦ #JN ´ª¶ìÏ«
++¤«¤ó¤¯¤í¤¦ #T35 ¥«¥ó£¹£¶
++¤«¤ó¤¯¤í¤¦ #T35 ´ª¶ìÏ«
++¤«¤ó¤³ #R5 ¥«¥ó¥³
++¤«¤ó¤³ #R5r ¥«¥ó¥³
++¤«¤ó¤³¤¯ #KK ´¯¹ñ
++¤«¤ó¤³¤¯ #KK ´¯¹ó
++¤«¤ó¤³¤¯ #KK Õ¡¹ñ
++¤«¤ó¤³¤¯ #T35 ´¯¹ñ
++¤«¤ó¤³¤¯ #T35 ´¯¹ó
++¤«¤ó¤³¤¯ #T35 Õ¡¹ñ
++¤«¤ó¤³¤¯¤È¤ê #T35 ´Ú¹ñ¤È¤ê
++¤«¤ó¤³¤¯¤È¤ê #T35 ´Ú¹ñ¤È¤ê
++¤«¤ó¤³¤Ã¤¯ #KK ¥«¥ó¥³¥Ã¥¯
++¤«¤ó¤³¤Ã¤¯ #T35 ¥«¥ó¥³¥Ã¥¯
++¤«¤ó¤³¤É¤ê #JN ´×¸ÅÄ»
++¤«¤ó¤µ¤¤¤Õ¤¡¤¤¤Ö¤¹¤¿¤¢ #T35 ´ØÀ¾¥Õ¥¡¥¤¥Ö¥¹¥¿¡¼
++¤«¤ó¤µ¤ó¤È¤·¤¿¤Ç¤ó¤·¤ã #JN ´×»¶¤È¤·¤¿ÅżÖ
++¤«¤ó¤·¤ã¤Ï¤à¤Ë¤À #CJ ´¶¼Õ¥Ï¥à¥Ë¥À
++¤«¤ó¤¸¤ï¤ë¤¤ #T35 ´¶¤¸°­¤¤
++¤«¤ó¤Á¤ç¤¯¤Ë¤ó #T35 ´Éľ¿Í
++¤«¤ó¤Æ¤¤¤· #T35 ´ÕÄê»Î
++¤«¤ó¤Æ¤¤¤¹¤ì #T35 ´ÕÄꥹ¥ì
++¤«¤ó¤Æ¤¤¤È¤ê¤ª #T35 ´ÕÄê¥È¥ê¥ª
++¤«¤ó¤Æ¤¤¤Ë¤ó¤¯¤ß¤¢¤¤ #T35 ´ÕÄê¿ÍÁȹç
++¤«¤ó¤Æ¤¤¤è¤¦¤´ #T35 ´ÕÄêÍѸì
++¤«¤ó¤È¤¦¤Ï¤À¤«¤«¤¤ #JN ´ØÅìÍç²ñ
++¤«¤ó¤È¤ó #KK ¥«¥ó¥È¥ó
++¤«¤ó¤È¤ó #T35 ¥«¥ó¥È¥ó
++¤«¤ó¤Ê¤ª¤È #JN ´¯Ä¾¿Í
++¤«¤ó¤Ê¤ª¤È #JN ´¯Ì¾²»
++¤«¤ó¤Ê¤ª¤È #JN ´Úľ¿Í
++¤«¤ó¤Ê¤ª¤È #JN ¿ûľ¿Í
++¤«¤ó¤Ê¤ª¤È #T35 ´¯Ä¾¿Í
++¤«¤ó¤Ê¤ª¤È #T35 ´¯Ì¾²»
++¤«¤ó¤Ê¤ª¤È #T35 ´Úľ¿Í
++¤«¤ó¤Ê¤ª¤È #T35 ¿ûľ¿Í
++¤«¤ó¤Í¤¤¤³¤¦¤Ï #JN ´ÅÇ«¶½ÇÆ
++¤«¤ó¤Þ¤ó¤»¤¤¤È #JN ´³ËþÀ¸ÅÌ
++¤«¤ó¤ê¤·¤ã¤µ¤ó¤Ç¤¹¤« #CJ ´ÉÍý¼Ô¤µ¤ó¤Ç¤¹¤«¡©£÷
++¤«¤ó¤ê¤Ë¤ó¤Õ¤¡¤ä¤ä #T35 "´ÉÍý"¿Í¥Õ¥¡¥ä¥ä
++¤«¤ó¤ì¤ó¤¹¤ì¤Ã¤É #T35 ´ØÏ¢¥¹¥ì¥Ã¥É
++¤«¤ó¤ì¤ó¤ê¤ó¤¯ #T35 ´ØÏ¢¥ê¥ó¥¯
++¤¬¡¼¤ó #CJ ¥¬¨¬¨¬¨¬¡Ê_§¥_;¡Ë¨¬¨¬¥ó¡ª
++¤¬¡¼¤ó #JN ¥¬¡¼¥ó
++¤¬¡¼¤ó #JN ¥¬¨¬¨¬¡ÊŽß§¥Žß;)¨¬¨¬¥ó¡ª
++¤¬¡¼¤ó #JN ¦²¡ÊŽß§ÕŽßlll¡ËŽ¶ŽÞŽ°ŽÝ
++¤¬¤¤¤¤¤³¤È¤ò¤¤¤Ã¤¿ #CJ ¤¬¤¤¤¤¤³¤È¤ò¸À¤Ã¤¿
++¤¬¤¤¤­¤Á #T35 ¥¬¥¤¥­¥Á
++¤¬¤¤¤·¤å¤Ä #T35 ¤¬¤¤¤·¤å¤Ä
++¤¬¤¤¤·¤å¤Ä #T35 ³°½Ð
++¤¬¤¤¤·¤å¤Ä¤­¤Ã¤É #JN ´û½Ð¥­¥Ã¥É
++¤¬¤¤¤·¤å¤Ä¤¯¤ó #JN ¥¬¥¤¥·¥å¥Ä·¯
++¤¬¤¤¤¿ #T35 ¥¬ÈÄ
++¤¬¤¤¤É¤é¤¤¤Ê¤¢ #T35 ¥¬¥¤¥É¥é¥¤¥Ê¡¼
++¤¬¤¤¤É¤é¤¤¤ó¤¤¤¿ #T35 ¥¬¥¤¥É¥é¥¤¥óÈÄ
++¤¬¤¯¤¬¤¯¤Ö¤ë¤Ö¤ë #CJ ¥¬¥¯¥¬¥¯¥Ö¥ë¥Ö¥ë
++¤¬¤¯¤¬¤¯¤Ö¤ë¤Ö¤ë #CJ Ž¶ŽÞŽ¸Ž¶ŽÞŽ¸ŽÌŽÞŽÙŽÌŽÞŽÙ
++¤¬¤¯¤¬¤¯¤Ö¤ë¤Ö¤ë #T30 ¥¬¥¯¥¬¥¯¥Ö¥ë¥Ö¥ë
++¤¬¤¯¤¬¤¯¤Ö¤ë¤Ö¤ë¤­¤ç¤¦¤³¤¦¤ê¤ó #T30 ¥¬¥¯¥¬¥¯¥Ö¥ë¥Ö¥ë¶µ¹ßÎ×
++¤¬¤¯¤ì¤­¤¢¤¶¤é¤· #T35 ³ØÎò¥¢¥¶¥é¥·
++¤¬¤¯¤ì¤­¤¸¤å¤ó¤¤ #T35 ³ØÎò½ç°Ì
++¤¬¤¯¤ì¤­¤Á¤å¤¦¤É¤¯¤·¤ã #T35 ³ØÎòÃæÆǼÔ
++¤¬¤¯¤ì¤­¤í¤ó¤À¤ê¤ó¤° #T35 ³ØÎò¥í¥ó¥À¥ê¥ó¥°
++¤¬¤³¤Î¤¹¤ì¤Ë¤­¤ç¤¦¤ß¤ò¤â¤Ã¤¿¤è¤¦¤Ç¤¹ #CJ ¤¬¤³¤Î¥¹¥ì¤Ë¶½Ì£¤ò»ý¤Ã¤¿¤è¤¦¤Ç¤¹
++¤¬¤¾¤¦¤¢¤Ã¤×¤í¡¼¤À #T35 ²èÁü¥¢¥Ã¥×¥í¡¼¥À
++¤¬¤Á #T30 ¥¬¥Á
++¤¬¤Á #T35 ¥¬¥Á
++¤¬¤Á¤ã¤Ô¤ó #JN ¥¬¥Á¥ã¥Ô¥ó
++¤¬¤Ã¤¯¤· #CJ ¡²|¡±|¡û
++¤¬¤Ã¤¯¤· #CJ orz
++¤¬¤Ã¤¯¤· #CJ _no
++¤¬¤Ã¤¯¤· #CJ OTL
++¤¬¤Ã¤¯¤· #CJ OTZ
++¤¬¤Ã¤¯¤· #CJ JTO
++¤¬¤Ã¤· #JN ¥¬¥Ã¥·
++¤¬¤Ã¤·¤å¤¯¤¸¤ç #T35 ¹ç½É½ê
++¤¬¤Ã¤Á¤å¤ó #T35 ¤¬¤Ã¤Á¤å¤ó¡ù
++¤¬¤Ã¤Ä #KK ¥¬¥Ã¥Ä
++¤¬¤Ã¤Ä #T35 ¥¬¥Ã¥Ä
++¤¬¤Ê¡¼ #JN ¥¬¥Ê¡¼
++¤¬¤Ê¡¼¤«¤Ã¤³¤¸¤Ä¤è¤¦¤¬¤¿¤«¤Ã¤³¤È¤¸¤ë #JN ¥¬¥Ê¡¼¡Ê¼ÂÍÑ·¿¡Ë
++¤¬¤Ê¡¼¤¿¤¤¤Æ¤¤ #JN ¥¬¥Ê¡¼ÂçÄë
++¤¬¤Ê¡¼¤¿¤¤¤Æ¤¤ #JN ¥¬¥Ê¡¼ÂçÄë
++¤¬¤Ê¤² #CJ ¥¬¥Ê¥²
++¤¬¤Ê¤² #CJ Ž¶ŽÞŽÅŽ¹ŽÞ
++¤¬¤Î¤¿ #T35 ¥¬¥Î¥¿
++¤¬¤Ï¤¯ #T35 ²èÇì
++¤¬¤á¤µ¤Ð #KK µµ»ª
++¤¬¤á¤µ¤Ð #T35 µµ»ª
++¤¬¤ê¤¬¤ê¤¯¤ó #T35 ¥¬¥ê¥¬¥ê·¯
++¤¬¤ê¤Ù¤ó #JN ¥¬¥êÊÙ
++¤¬¤ê¤Ù¤ó¤â¤é¤é¡¼ #JN ¤¬¤êÊÙ¥â¥é¥é¡¼
++¤¬¤ó¤¬¤ë #R5r ¤¬¤ó¤¬¤ë
++¤¬¤ó¤¬¤ë #T35 ¥¬¥ó¥¬¥ë
++¤¬¤ó¤Ð¤ë¤â¤Ê¡¼ #JN ¥¬¥ó¥Ð¥ë¥â¥Ê¡¼
++¤¬¤ó¤Ü #R5 ¤¬¤ó¤Ü
++¤¬¤ó¤Ü #R5r ¤¬¤ó¤Ü
++¤¬¤ó¤à¤Ï¤ó¤É¤ë¤Í¤¨¤à¤â¤ó¤À¤¤ #T35 ½ÆÌ´HNÌäÂê
++¤­¤¤ #KK ¸°
++¤­¤¤¤Æ¤¢¤í¤¨¤ê¡¼¤Ê #CJ ¤­¤¤¤Æ¥¢¥í¥¨¥ê¡¼¥Ê¢ö
++¤­¤¤¤Æ¤¢¤í¤¨¤ê¡¼¤Ê #T35 ¤­¤¤¤Æ¥¢¥í¥¨¥ê¡¼¥Ê¢ö
++¤­¤¤¤Ë¤·¤­ #T35 ¥­¡¼¥Ë¥·¥­
++¤­¤¤¤í #T35 ²«¿§
++¤­¤¦¤¤ #T35 ¥­¥¦¥¤
++¤­¤¨¤¤¤Ü¤¹¤ì¤¸¤±¤ó #T35 ¥­¥¨¡¼¥Ü¥¹¥ì»ö·ï
++¤­¤« #JN µ¢²½
++¤­¤«¤¤¤«¤±¤¤¤Û¤¦ #JN µ¡³£²½·ÙÊó
++¤­¤¬¡¼ #JN ¥­¥¬¡¼
++¤­¤­¡¼¤ó #JN ¥­¥­¡¼¥ó
++¤­¤¯ #T35 µÆ
++¤­¤±¤¤¤ª¤Ë¤®¤ê #JN ´ñ·Á¤ª¤Ë¤®¤ê
++¤­¤±¤¤¤â¤é¤é¡¼ #JN ´ñ·Á¥â¥é¥é¡¼
++¤­¤´¤Ê¤Ó #KK ¥®¥³¥Ê¥Ó
++¤­¤µ¤Þ¤´¤È¤­¤¬¤È¤Ê¤ß¤ò¤«¤¿¤ë¤Ê #JN µ®ÍÍÇ¡¤­¤¬¥È¥Ê¥ß¤ò¸ì¤ë¤Ê
++¤­¤µ¤Þ¤¸¤ã¤Ê¡¼ #JN ¥­¥µ¥Þ¥¸¥ã¥Ê¡¼
++¤­¤·¤ã #T35 µ­¼Ô
++¤­¤·¤å¤¤¤½¤ó¤â¤¸ #T35 µ¡¼ï°Í¸ʸ»ú
++¤­¤·¤å¤¤¤¾¤ó¤â¤¸ #T35 µ¡¼ï°Í¸ʸ»ú
++¤­¤·¤å¤¦ #T30 ´ñ½±
++¤­¤·¤å¤¦ #T35 ´ñ½±
++¤­¤·¤å¤Ä #T35 ´û½Ð
++¤­¤·¤ç #CJ ¥­¥·¥ç
++¤­¤·¤ç #KYT ¥­¥·¥ç
++¤­¤·¤ç¤¤ #T35 ¥­¥·¥ç¥¤
++¤­¤·¤ç¤ª¤¿ #T35 ¥­¥·¥ç¥ª¥¿
++¤­¤·¤ç¤ò¤¿ #T35 ¥­¥·¥ç¥ò¥¿
++¤­¤¿¡¼ #CJ ¥­¥¿¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬(¡¬¢Ï¡¬)¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¡ª¡ª
++¤­¤¿¡¼ #CJ ¥­¥¿¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬(Žß¢ÏŽß)¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¡ª¡ª
++¤­¤¿¡¼ #CJ Ž·ŽÀ¨¬¨¬¨¬¨¬(¡¬¢Ï¡¬¢á(¡¬¢Ï¡¬¢á¡¬¢Ï¡¬)¢á¡¬¢Ï¡¬)¨¬¨¬¨¬¨¬!!!
++¤­¤¿¡¼ #CJ Ž·ŽÀ¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬(Žß¢ÏŽß)¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬!!!
++¤­¤¿¡¼ #JN ¥­¥¿¡¼!!!!
++¤­¤¿¡¼ #JN Ž·ŽÀ¨¬¨¬¨¬¨¬¨¬(Žß¢ÏŽß)¨¬¨¬¨¬¨¬¨¬!!!!
++¤­¤¿¤¢ #CJ ¥­¥¿¡¼
++¤­¤¿¤¢ #CJ Ž·ŽÀŽ°
++¤­¤¿¤¤¤¢¤² #T35 ´üÂÔage
++¤­¤¿¤­¤å¤¦ #T35 ËÌ£Ñ
++¤­¤¿¤µ¤Ð¤¸¤À¤¤ #T35 ËÌ»ª»þÂå
++¤­¤¿¤Á¤ç¤ó #T35 ËÌ¥Á¥ç¥ó
++¤­¤¿¤Í¡¼¤è #JN ¥­¥¿¥Í¡¼¥è
++¤­¤¿¤Í¡¼¤ó¤À¤è #JN ¥­¥¿¥Í¡¼¥ó¥À¥è
++¤­¤¿¤Í¤Ã¤È #KK Ë̥ͥåÈ
++¤­¤¿¤â¤ê #KK ËÌ¿¹
++¤­¤¿¤â¤ê #T35 ËÌ¿¹
++¤­¤À #KK ÌÚÅÄ
++¤­¤À #T35 ÌÚÅÄ
++¤­¤Á #T35 ¥­¥Á
++¤­¤Á #T35 ´ðÃÏ
++¤­¤Á¡¼¤ê #JN ¥­¥Á¡¼¥ê
++¤­¤Á¡¼¤ê #JN ¥à¥«¡¼¥Ç¡Ú¤à¤«¡¼¤Ç¡ÛÊÌ̾¥­¥Á¡¼¥ê
++¤­¤Á¤¬¤¤ #T35 ¥­¥Á¥¬¥¤
++¤­¤Á¤¬¤¤ #T35 ´ðÃϳ°
++¤­¤Á¤¬¤¤ #T35 ´ðÃϳ²
++¤­¤Á¤¬¤¤¤±¤¤¤Û¤¦ #JN ´ðÃϳ°·ÙÊó
++¤­¤Á¤¬¤¤¤±¤¤¤Û¤¦ #T35 ¥­¥Á¥¬¥¤·ÙÊó
++¤­¤Ã¤³¡¼¤Þ¤½ #JN ¥­¥Ã¥³¡¼¥Þ¥½
++¤­¤Ã¤Á¤ó #T35 ¥­¥Ã¥Á¥ó
++¤­¤Æ¤£ #T35 ¥­¥Æ¥£
++¤­¤Æ¤£¤­¤å¤¦ #T35 ¥­¥Æ¥£µÞ
++¤­¤Æ¤Ê¤¤ #JN Ž·ŽÃŽÅŽ²
++¤­¤Æ¤Ê¤¤ #JN Ž·ŽÃŽÅŽ²¨¬¨¬¨¬¨¬¨¬¨¬¡ÊŽß_Žß¡Ë¨¬¨¬¨¬¨¬¨¬¨¬!!!!!
++¤­¤È¡¼ #JN ¥­¥È¡¼
++¤­¤Ë¤¤¤é¤Í¡¼¤è #JN ¥­¥Ë¥¤¥é¥Í¡¼¥è
++¤­¤Ë¤·¤Ê¤¤ #JN ¡ÊŽß¦ÅŽß¡ËŽ·ŽÆŽ¼ŽÅŽ²!!
++¤­¤Ë¤·¤Ê¤¤ #JN ¥­¥Ë¥·¥Ê¥¤!!
++¤­¤Ë¤·¤Ê¤¤ #JN Ž·ŽÆŽ¼ŽÅŽ²!!
++¤­¤Ì¤¦¤é¤ê¤ó¤«¤¤¤Æ¤Ä¤É¤¦ #JN °á±ºÎ׳¤Å´Æ»
++¤­¤Í¤ó¤«¤­¤³ #T30 µ­Ç°¥«¥­¥³
++¤­¤Í¤ó¤«¤­¤³ #T35 µ­Ç°¥«¥­¥³
++¤­¤Í¤ó¤Ñ¤Ô¤³ #T35 µ­Ç°¥Ñ¥Ô¥³
++¤­¤Í¤ó¤Þ¤­¤³ #T35 µ­Ç°âõª»Ò
++¤­¤Î¤³ #T35 ¥­¥Î¥³
++¤­¤Î¤³ #T35 Âû
++¤­¤Î¤»¡¼¤Ë¤ã #JN ¡¡¡¡(¡¼§×°ì)
++¤­¤Î¤»¡¼¤Ë¤ã #JN ¥­¥Î¥»¡¼¥Ë¥ã
++¤­¤Ï¤Ò¤ã¤¯¤Ë¤¸¤å¤¦ #JN ¥­¥Ï£±£²£°
++¤­¤Ð¤ó #T35 ÌÚÈÖ
++¤­¤Ü¡¼¤ó #CJ ¤­¤Ü¡¼¤ó
++¤­¤Ü¡¼¤ó #T35 ¤­¤Ü¡¼¤ó
++¤­¤Ü¤ó #CJ ¤­¤Ü¤ó
++¤­¤Ü¤ó #CJ ¥­¥Ü¥ó
++¤­¤Ü¤ó¤Ì #CJ ¤­¤Ü¤ó¤Ì
++¤­¤Ü¤ó¤Ì #CJ ¥­¥Ü¥ó¥Ì
++¤­¤ß¤Ï¤ï¤À¤µ¤ó¤´¤Î¤ß #CJ ·¯¤Ï¥ï¥À¥µ¥ó¹¥¤ß
++¤­¤à #KK ¤­¤à
++¤­¤à #KY ¤­¤à
++¤­¤à¤³ #T35 ¥­¥à¥³
++¤­¤à¤µ¤ï #KK ¥­¥àÂô
++¤­¤à¤µ¤ï #T35 ¥­¥àÂô
++¤­¤à¤µ¤ï #T35 ʧÂô
++¤­¤à¤Á #JN ¥­¥à¥Á
++¤­¤à¤Á #T35 ¥­¥à¥Á
++¤­¤à¤Á¤â¤ó #JN ¥­¥à¥Á¥â¥ó
++¤­¤à¤è¤ó¤¸¤ó #JN ¶â±Ëï¯
++¤­¤à¤è¤ó¤¸¤ó #T35 ¶â±Ëï¯
++¤­¤â #KYT ¥­¥â
++¤­¤â¤¤ #T35 ¥­¥â¥¤
++¤­¤â¤Á¤¤¤¤¤³¤È¤·¤è¤¦ #CJ µ¤»ý¤Á¤¤¤¤¤³¤È¤·¤è¤¦
++¤­¤ã¤Ã¤È¤­¤é¡¼ #JN ¥­¥ã¥Ã¥È¥­¥é¡¼
++¤­¤ã¤Ã¤È¤­¤é¡¼ #T35 ¥­¥ã¥Ã¥È¥­¥é¡¼
++¤­¤ã¤Ã¤È¤­¤é¤¢ #T35 ¥­¥ã¥Ã¥È¥­¥é¡¼
++¤­¤ã¤Ã¤Ï¤º¤«¤· #JN ¥­¥ã¥Ã¡¢¥Ï¥º¥«¥·
++¤­¤ã¤Ã¤Ï¤º¤«¤· #JN Ž·Ž¬Ž¯¡¢ŽÊŽ½ŽÞŽ¶Ž¼¡Ê-ŽÉŽÉ¡Ë
++¤­¤ã¤Ã¤× #T35 ¥­¥ã¥Ã¥×
++¤­¤ã¤Ã¤×¤â¤ì #T35 ¥­¥ã¥Ã¥×ϳ¤ì
++¤­¤ã¤Ï #T35 ¡ù
++¤­¤ã¤Ô¤¤ #CJ ¥­¥ã¥Ô¡¼
++¤­¤ã¤×¤Æ¤½ #JN ¥­¥ã¥×¥Æ¥½
++¤­¤ã¤×¤Æ¤½ #T35 ¥­¥ã¥×¥Æ¥½
++¤­¤ã¤×¤Æ¤½ #T35 Ž·Ž¬ŽÌŽßŽÃŽ¿
++¤­¤ã¤é¤Ï¤ó #T35 ¥­¥ã¥é¥Ï¥ó
++¤­¤å¤¦ #T35 Q
++¤­¤å¤¦¤µ¤¤¤«¤¤ #T35 µßºÑ²ñ
++¤­¤å¤¦¤· #JN µë»Å
++¤­¤å¤¦¤·¤å¤¦ #T35 µÛ¼ý
++¤­¤å¤¦¤·¤å¤¦ #T35 µÞ½±
++¤­¤å¤¦¤¹¤ì #T35 µì¥¹¥ì
++¤­¤å¤¦¤À¤¤ #T35 QÂç
++¤­¤å¤¦¤Á¤ã¤ó¤Í¤ë #T35 ¶å¥Á¥ã¥ó¥Í¥ë
++¤­¤å¤¦¤Æ¤£¤¤ #T35 QT
++¤­¤å¤¦¤Æ¤¤ #KK µìÄë
++¤­¤å¤¦¤Æ¤¤ #T35 µÜÄî
++¤­¤å¤¦¤Æ¤¤ #T35 µìÄë
++¤­¤å¤¦¤Æ¤ó¤¤¤Á¤´¤¸¤±¤ó #T35 9¡¦15»ö·ï
++¤­¤å¤¦¤Æ¤ó¤­¤å¤¦¤Ô¤ó¤¯¤¬¤Ø¤ó #T35 9¡¦9pink¤¬ÊÑ
++¤­¤å¤¦¤Ë¤­¤Î¤­¤ç¤¦¤¤¤¯¤é¤ó¤¾¤¦ #T35 µìÆó´ü¤Î¶µ°é¡¦Íô¤¸øΩ¡¦¹ñ¸øΩÌë´ÖÉô
++¤­¤å¤¦¤Þ¤Ã¤¯¤¤¤¿ #CN µì£Í£á£ãÈÄ
++¤­¤å¤¦¤Þ¤Ã¤¯¤¤¤¿ #T35 µì£Í£á£ãÈÄ
++¤­¤å¤¦¤í¤¯ #KK µìÏ»
++¤­¤å¤¦¤í¤¯ #T35 µìÏ»
++¤­¤æ #JN ¥­¥æ
++¤­¤æ #T35 ¥­¥æ
++¤­¤æ¤á¤¤¤²¤ó #JN ¥­¥æ̸À
++¤­¤ç¤¦ #T35 ¶§
++¤­¤ç¤¦¤®¤å¤¦¤Ó¤ç¤¦¤·¤ó¤¸¤ã #T35 ¶¸µíÉ¿®¼Ô
++¤­¤ç¤¦¤µ¤ó #T35 ¶¯»À
++¤­¤ç¤¦¤µ¤ó¤·¤å¤® #T35 ¶¸»´¼çµÁ
++¤­¤ç¤¦¤µ¤ó¤·¤å¤® #T35 ¶¸»º¼çµÁ
++¤­¤ç¤¦¤»¤¤¤¢¤¤¤Ç¤£¤¤ #T35 ¶¯À©ID
++¤­¤ç¤¦¤»¤¤¤·¤å¤¦¤ê¤ç¤¦ #JN ¶¯À©½ªÎ»
++¤­¤ç¤¦¤À¤¤¤Î¤Û¤´¤·¤ã #JN ¡Ê¡¦¡¼¡¦¡ËŽÝ¡£
++¤­¤ç¤¦¤À¤¤¤Î¤Û¤´¤·¤ã #JN ·»Äï¤ÎÊݸî¼Ô
++¤­¤ç¤¦¤À¤¤¤â¤Ê¡¼ #JN ·»Äï¥â¥Ê¡¼
++¤­¤ç¤¦¤À¤¤¤â¤Ê¡¼¤Î¤Ï¤Ï #JN ·»Äï¥â¥Ê¡¼¤ÎÊì
++¤­¤ç¤¦¤È¤¦¤»¤ó¤»¤¤ #JN ¶µÆ¬ÀèÀ¸
++¤­¤ç¤¦¤È¤±¤ó #CN µþÅÔ¸©
++¤­¤ç¤¦¤È¤±¤ó #CNS µþÅÔ¸©
++¤­¤ç¤¦¤È¤±¤ó #T35 µþÅÔ¸©
++¤­¤ç¤¦¤È¤·¤ª¤ª¤Ä¤¯ #CN µþÅÔ»ÔÂçÄŶè
++¤­¤ç¤¦¤È¤·¤ª¤ª¤Ä¤¯ #CNS µþÅÔ»ÔÂçÄŶè
++¤­¤ç¤¦¤È¤·¤ª¤ª¤Ä¤¯ #T35 µþÅÔ»ÔÂçÄŶè
++¤­¤ç¤¦¤È¤ì¤ó¤¸¤ã¡¼ #JN µþÅÔ¥ì¥ó¥¸¥ã¡¼
++¤­¤ç¤¦¤Ï¤ó #T35 ¶¦¥Ï¥ó
++¤­¤ç¤¦¤æ¤¦¤­¤ã¤Ã¤× #T35 ¶¦Í­¥­¥ã¥Ã¥×
++¤­¤ç¤¦¤æ¤¦¤³¤Æ¤Ï¤ó #T35 ¶¦Í­¥³¥Æ¥Ï¥ó
++¤­¤ç¤¦¤æ¤¦¤È¤ê¤Ã¤× #T35 ¶¦Í­¥È¥ê¥Ã¥×
++¤­¤ç¤¸¤ó #T35 µõ¿Ð
++¤­¤ç¤À¤¤¤±¤¤¤¸¤Ð¤ó #T35 µðÂç·Ç¼¨ÈÄ
++¤­¤ç¤À¤¤¤±¤¤¤¸¤Ð¤ó¤°¤ó #T35 µðÂç·Ç¼¨ÈÄ·²
++¤­¤ç¤ß¤ß¤â¤Ê¡¼ #JN µð¼ª¥â¥Ê¡¼
++¤­¤é¤ê #JN ¡Ê¡±¡¼+¡±¡ËŽ·Ž×ŽØ
++¤­¤é¤ê #JN ¥­¥é¥ê
++¤­¤é¤ê #JN Ž·Ž×ŽØ
++¤­¤ê¤³¤ß¤¿¤¤¤Á¤ç¤¦ #JN ÀÚ¹þÂâĹ
++¤­¤ê¤³¤ß¤¿¤¤¤Á¤ç¤¦¤È¤Ò¤í¤æ¤­ #JN ÀÚ¹þÂâĹ¤È¤Ò¤í¤æ¤­
++¤­¤ê¤Ð¤ó #T35 ¥­¥ê¥Ð¥ó
++¤­¤ê¤Ð¤ó #T35 ¥­¥êÈÖ
++¤­¤ê¤Ð¤ó¤²¤Ã¤¿¡¼ #T35 ¥­¥êÈÖ¥²¥Ã¥¿¡¼
++¤­¤ê¤Ð¤ó¤²¤Ã¤¿¤¢ #T35 ¥­¥êÈÖ¥²¥Ã¥¿¡¼
++¤­¤ó #T35 ¶â
++¤­¤ó¤­¤¸¤É¤¦ #JN ¶áµ¦»ùƸ
++¤­¤ó¤­¤¸¤É¤¦ #T35 ¶áµ¦»ùƸ
++¤­¤ó¤°¤â¤Ê¤ê¤¾¤ó #JN ¥­¥ó¥°¥â¥Ê¥ê¥¾¥ó
++¤­¤ó¤°¤ì¤ª¤â¤ê¤è¤·¤í¤¦ #JN ¥­¥ó¥°¥ì¥ª¿¹Á±Ï¯
++¤­¤ó¤À¤¤ #T35 ¶áÂå
++¤­¤ó¤Þ¤ó¤³ #JN ¥­¥ó¥Þ¥ó¥³
++¤­¤ó¤Þ¤ó¤³ #T35 ¥­¥ó¥Þ¥ó¥³
++¤­¤ó¤Þ¤ó¤³¤­¤ç¤¦ #KK ¥­¥ó¥Þ¥ó¥³¶µ
++¤­¤ó¤Þ¤ó¤³¤­¤ç¤¦ #T35 ¥­¥ó¥Þ¥ó¥³¶µ
++¤®¤¬ #JN ¥®¥¬
++¤®¤¬¤á¤¹ #JN ¥®¥¬¥á¥¹
++¤®¤³ #CJ ¥®¥³
++¤®¤³ #JN ¥®¥³
++¤®¤³¡¼¤° #JN ¥®¥³¡¼¥°
++¤®¤³¤¢¤¤¤¹ #JN ¥®¥³¥¢¥¤¥¹
++¤®¤³¤¤¤Ì #JN ¥®¥³¸¤
++¤®¤³¤¦¤µ #JN ¥®¥³¥¦¥µ
++¤®¤³¤¨¤â¤ó #JN ¥®¥³¤¨¤â¤ó
++¤®¤³¤¨¤ë #JN ¥®¥³¥¨¥ë
++¤®¤³¤«¤ï¤À¤ó¤· #JN ¥®¥³ÀîÃÌ»Ö
++¤®¤³¤¬¤¨¤ë #JN ¥®¥³¥¬¥¨¥ë
++¤®¤³¤­¤ç¤¦¤¸¤å #JN ¥®¥³¶µ¼ø
++¤®¤³¤®¤³ #CJ ¥®¥³¥®¥³
++¤®¤³¤®¤³¤¹¤± #JN µ¼¸Å¥®¥³½õ
++¤®¤³¤®¤³¤¿ #JN µ¼¸Å¥®¥³ÂÀ
++¤®¤³¤¯¤µ #JN ¥®¥³Áð
++¤®¤³¤±¤ó¤­¤å¤¦¤¤¤ó #JN ¥®¥³¸¦µæ°÷
++¤®¤³¤³ #JN ¡¡¡¡¢¬¥â¥Ê»Ò¡Ú¤â¤Ê¤³¡Û¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¬¥®¥³»Ò
++¤®¤³¤³ #JN ¥®¥³»Ò
++¤®¤³¤¸¤É¤¦¤·¤ã¤¬¤Ã¤³¤¦ #JN ¥®¥³¼«Æ°¼Ö³Ø¹»
++¤®¤³¤¹¤¿¡¼¤°¤ó #JN ¥®¥³¥¹¥¿¡¼·³
++¤®¤³¤¹¤¿¡¼¤°¤ó #JN Ž·ŽÞŽºŽ½ŽÀŽ°·³
++¤®¤³¤¹¤¿¡¼¤°¤ó #JN ŽÓŽÅŽ°ŽÑŽ°ŽÝ·³
++¤®¤³¤»¤ó¤È¤¦¤¤¤ó #JN ¥®¥³ÀïÆ®°÷
++¤®¤³¤¿¤¯ #JN ¥®¥³¥¿¥¯
++¤®¤³¤¿¤Þ¤³ #JN µ¼¸Å¶Ì»Ò
++¤®¤³¤Á¤ã¤ó¤â¤Ê¤Á¤ã¤ó #JN ¥®¥³¤Á¤ã¤ó¥â¥Ê¤Á¤ã¤ó
++¤®¤³¤Á¤å¤¦ #JN ¥®¥³¥Á¥å¥¦
++¤®¤³¤Á¤å¤¦ #JN ¥®¥³¿ß
++¤®¤³¤Ä¤ê¡¼ #JN ¥®¥³¥Ä¥ê¡¼
++¤®¤³¤Æ¤ó¤ª¤ª¤®¤ê #JN ¥®¥³ÅÀ¡¡Âç´îÍø¡¡
++¤®¤³¤Ê¤Ó #KK ¥®¥³¥Ê¥Ó
++¤®¤³¤Ê¤Ó #T35 ¥®¥³¥Ê¥Ó
++¤®¤³¤Í¤³ #JN ¥®¥³¥Í¥³
++¤®¤³¤Í¤³ #JN ¥®¥³Ç­
++¤®¤³¤Í¤³ #JN ¥®¥³Ç­¡¡
++¤®¤³¤Í¤³ #T35 ¥®¥³Ç­
++¤®¤³¤Í¤³¤ê¤ç¤À¤ó¤¢¤Ã¤È¤À¤ó¤Á¤ç¡¼ #JN ¥®¥³Ç­Î¹ÃÄ¡÷ÃÄĹ
++¤®¤³¤Î¤»¤ó¤¾ #JN ¥®¥³¤ÎÀèÁÄ
++¤®¤³¤Ï¤Á #JN ¥®¥³È­
++¤®¤³¤Ï¤Ë¤ã¡¼¤ó #CJ ¥®¥³¥Ï¥Ë¥ã¡¼¥ó
++¤®¤³¤Ï¤Ë¤ã¡¼¤ó #JN ¥®¥³¥Ï¥Ë¥ã¡¼¥ó
++¤®¤³¤Ï¤Ï¤Ï #CJ ¥®¥³¥Ï¥Ï¥Ï
++¤®¤³¤Ñ¤í #JN ¥®¥³¥Ñ¥í
++¤®¤³¤Ñ¤í #KK ¥®¥³¥Ñ¥í
++¤®¤³¤Ñ¤í #T35 ¥®¥³¥Ñ¥í
++¤®¤³¤Õ¤¦¤Õ #JN µ¼¸ÅÉ×ÉØ
++¤®¤³¤Õ¤µ¤ê¤ª¤ë¤·¤ç¤¦¤°¤ó #JN ¥®¥³¡¦¥Õ¥µ¥ê¥ª¥ë¾­·³
++¤®¤³¤Ù¡¼¤À¡¼ #JN ¥®¥³¥Ù¡¼¥À¡¼
++¤®¤³¤Ú #KK ¥®¥³¥Ú
++¤®¤³¤Ú #T35 ¥®¥³¥Ú
++¤®¤³¤Þ¤ë¤µ¤ó¤¢¤¤¤¨¤¹ #JN G503is
++¤®¤³¤ß #JN ¥®¥³¥ß
++¤®¤´¤Á¤ã¤ó¤â¤Ê¤Á¤ã¤ó #JN ¥®¥³¤Á¤ã¤ó¥â¥Ê¤Á¤ã¤ó
++¤®¤¸¤ó¤«¤£¤ç¤¥ #JN µ¼¿Í²½¤£¤ç¤¥
++¤®¤¸¤ó¤«¤¸¤µ¤¯¤¸¤¨¤ó #JN µ¼¿Í²½¥¸¥µ¥¯¥¸¥¨¥ó
++¤®¤¸¤ó¤«¤â¤é¤é¡¼ #JN µ¼¿Í²½¥â¥é¥é¡¼
++¤®¤Ã¤³¤·¤§¤ë¤Õ #KK ¥®¥Ã¥³¥·¥§¥ë¥Õ
++¤®¤Ã¤³¤ê #CJ ¥®¥Ã¥³¥ê
++¤®¤Î¤³ #JN ¥®¥Î¥³
++¤®¤Î¤³ #JN ¥®¥Î¥³
++¤®¤ã¤¯¤®¤ì¤ß¤º¤«¤±¤â¤Ê¡¼ #JN µÕ¥®¥ì¿å³Ý¤±¥â¥Ê¡¼
++¤®¤ã¤¯¤®¤ì¤ß¤º¤«¤±¤â¤Ê¡¼¤Ñ¡¼¤Õ¤§¤¯¤È¤Ð¤ó #JN µÕ¥®¥ì¿å³Ý¤±¥â¥Ê¡¼¥Ñ¡¼¥Õ¥§¥¯¥ÈÈÇ
++¤®¤ã¤¯¤µ¤Ä¤Á¤å¤¦ #T35 µÔ»¦¿ß
++¤®¤ã¤¯¤µ¤Ä¤Á¤ó #T35 µÔ»¦ÄÁ
++¤®¤ã¤¯¤¿¤¤¤®¤ã¤¯¤µ¤Ä¤¢¤¹¤­¤¤¤¢¤¢¤È #T35 µÔÂÔ¡¦µÔ»¦AA
++¤®¤ã¤¯¤¿¤¤¤·¤ç¤¯¤Ë¤ó #T35 µÔÂÔ¿¦¿Í
++¤®¤ã¤¯¤¿¤¤¤¹¤ì #T35 µÔÂÔ¥¹¥ì
++¤®¤ã¤¯¤Ï¤Ä¤É¤¦ #T30 µÕȯư
++¤®¤ã¤ó #JN ¥®¥ã¥ó
++¤®¤ç¤¯¤ä¤í¤¦ #T35 ¥®¥ç¥¯ÌîϺ
++¤®¤ë¤¡¤â¤Ê #JN ¥®¥ë¥¡¥â¥Ê
++¤®¤ë¤Ë¤ã¡¼¤Î #JN ¥®¥ë¥Ë¥ã¡Á¥Î
++¤®¤í¤ó¤«¤ó¤½¤¦¤¹¤ì¤Ã¤É #T35 µÄÏÀ¡¦´¶ÁÛ¥¹¥ì¥Ã¥É
++¤®¤í¤ó¤¹¤­¡¼ #T35 ¥®¥í¥ó¥¹¥­¡¼
++¤®¤í¤ó¤¹¤­¤¤ #T35 ¥®¥í¥ó¥¹¥­¡¼
++¤®¤ó¤¨¤ó¤Þ¤ó¤»¤¨ #T35 ¶ä±öËüºÐ
++¤¯¤¤¤º¤ß¤ê¤â¤Í¤¢ #JN ¡ð¡ð¡ð¡ð¥¯¥¤¥º¡¦¥ß¥ê¥â¥Í¥¢¡ð¡ð¡ð¡ð
++¤¯¤¦¤­ #T35 ¶õµ¤
++¤¯¤¦¤­¤³¤Æ¤¤ #T35 ¶õµ¤¸ÇÄê
++¤¯¤¦¤­¤è¤á¤Æ¤Í¡¼¤è #JN ¥¯¥¦¥­¥è¥á¥Æ¥Í¡¼¥è
++¤¯¤¦¤¸¤ç¤¦¤â¤Ê¤¿¤í¤¦ #JN ¶õ¾ò¥â¥ÊÂÀϺ
++¤¯¤¦¤¸¤ç¤¦¤â¤Ê¤ê¡¼¤ó #JN ¶õ¾ò¥â¥Ê¥ê¡¼¥ó
++¤¯¤¦¤Æ¤¤¤â¤Ê¡¼ #JN ¶õÄò¥â¥Ê¡¼
++¤¯¤ª¤© #CJ ¤¯¤ª¤©
++¤¯¤µ #T35 ¥¯¥µ
++¤¯¤µ #T35 Áð
++¤¯¤µ¡¼ #JN ¡ÊŽß§×Žß¡ËŽ¸Ž»Ž°
++¤¯¤µ¡¼ #JN ¥¯¥µ¡¼
++¤¯¤µ¡¼ #JN Ž¸Ž»Ž°
++¤¯¤µ¤¤¤¿¤Þ #T35 ¥¯¥µ¥¤¥¿¥Þ
++¤¯¤µ¤Á¤å¡¼¤´ #KK ¥¯¥µ¥Á¥å¡¼¸ì
++¤¯¤µ¤Á¤å¡¼¤´ #T35 ¥¯¥µ¥Á¥å¡¼¸ì
++¤¯¤µ¤Á¤å¤¦¤´ #T35 ¥¯¥µ¥Á¥å¡¼¸ì
++¤¯¤· #T35 ¶ú
++¤¯¤·¤¶¤·¤ª¤Í¤¨¤µ¤ó #JN ¶ú»É¤·¤ª»Ð¤µ¤ó
++¤¯¤»¤¤¤¸¤¤¤¤¤Á¤¾¤¯ #T35 ¥¯¥»¥¤¥¸¡¼°ì²
++¤¯¤½¤²¡¼¤â¤Ê¡¼ #JN ¥¯¥½¥²¡¼¥â¥Ê¡¼
++¤¯¤½¤³¤Æ #T35 ʵ¥³¥Æ
++¤¯¤½¤µ¤ó¤Ó¤ã¤¯¤È¤ó #JN KuSo300t
++¤¯¤½¤¹¤ì #T35 ¥¯¥½¥¹¥ì
++¤¯¤½¤¹¤ì #T35 ʵ¥¹¥ì
++¤¯¤½¤¹¤ì¤ª¤È¤³ #JN ¥¯¥½¥¹¥ìÃË
++¤¯¤½¤¹¤ì¤«¤¤¤·¤å¤¦¤®¤ç¤¦¤·¤ã #JN ʵ¥¹¥ì²ó¼ý¶È¼Ô
++¤¯¤½¤¹¤ì¤±¤ó¤»¤Ä¤¤¤¤¤ó¤«¤¤ #T35 ʵ¥¹¥ì·úÀß°Ñ°÷²ñ
++¤¯¤½¤¹¤ì¤·¤¹¤¦¤Û¤¦¤³¤¯¤¤¤¤¤ó¤«¤¤ #JN ʵ¥¹¥ì»Ø¿ôÊó¹ð°Ñ°÷²ñ
++¤¯¤½¤¹¤ì¤·¤ó #JN ¥¯¥½¥¹¥ì¿À
++¤¯¤½¤¹¤ì¤Ï #JN ʵ¥¹¥ì¤ÏΩ¤Æ¤ó¤Ê¤Ã¤Æ¸À¤Ã¤¿¤í¤¦¤¬¥ô¥©¥±¤¬¡¼¡¼¡ª
++¤¯¤½¤¹¤ì¤â¤Ê¡¼ #JN ¥¯¥½¥¹¥ì¥â¥Ê¡¼
++¤¯¤½¤¹¤ì¤ï¤Ã¤·¤ç¤¤ #JN ¥¯¥½¥¹¥ì¥ï¥Ã¥·¥ç¥¤
++¤¯¤½¤Á¤å¤¦¤Ü¤¦¤Ç¤ó¤Ñ¤À¤³¤ê¤ã #JN ʵ¿ß˼ÅÅÇȤÀ¤³¤ê¤ã¡ª
++¤¯¤½¤Ç¤«¤¤¤¢¤¹¤­¡¼¤¢¡¼¤È #JN ʵ¤Ç¤«¤¤£Á£Á
++¤¯¤½¤Ð¤³ #T35 ʵȢ
++¤¯¤½¤Ü¤Ã¤¯¤¹ #T35 ʵ¥Ü¥Ã¥¯¥¹
++¤¯¤½¤ê¤×¤È #T35 ¥¯¥½¥ê¥×¥È
++¤¯¤½¤ì¤¹ #T30 ʵ¥ì¥¹
++¤¯¤½¤ì¤¹ #T35 ʵ¥ì¥¹
++¤¯¤À¤·¤Ä #T35 ¤¯¤À¼Á
++¤¯¤À¤é¤Ê¤¤¤·¤Ä¤â¤ó #T35 ¤¯¤À¤é¤Ê¤¤¼ÁÌä
++¤¯¤À¤é¤Ê¤¤¤·¤Ä¤â¤ó¤¹¤ì #T35 ¤¯¤À¤é¤Ê¤¤¼ÁÌ䥹¥ì
++¤¯¤À¤é¤Í¡¼¤è #JN ¥¯¥À¥é¥Í¡¼¥è
++¤¯¤Á¤¯¤Á #T35 ¸ý¸ý
++¤¯¤Á¤Ó¤ë¤² #T35 ¥¯¥Á¥Ó¥ë¥²
++¤¯¤Ã¤­¡¼ #T35 ¥¯¥Ã¥­¡¼
++¤¯¤Ã¤­¤¤ #T35 ¥¯¥Ã¥­¡¼
++¤¯¤Ã¤¯¤ë¤É¤¥¤É¤¥¤É¤¥ #JN Ž¸Ž¯Ž¸ŽÙŽÄŽÞŽ©ŽÄŽÞŽ©ŽÄŽÞŽ©
++¤¯¤É¤¦¤â¤Ê #JN ¹©Æ£¥â¥Ê
++¤¯¤Ë¤ª #JNM ¥¯¥Ë¥ò
++¤¯¤Ë¤ª #T35 ¥¯¥Ë¥ò
++¤¯¤Ë¤ª¤¯¤ó¤¯¤í¤¹¤«¤ó¤È¤ê¡¼¤Ø¤ó #JN ¤¯¤Ë¤ª¤¯¤ó¥¯¥í¥¹¥«¥ó¥È¥ê¡¼ÊÔ¡¡
++¤¯¤Ë¤µ¤ï¤Í¤Ã¤È¤Ë¤¤¤± #CJ kunisawa.net¤ËÀ¤±
++¤¯¤Ó¤Ä¤ê¤®¤³ #JN ¼óÄߤꥮ¥³
++¤¯¤Þ¤µ¤ó¤³¤ª¤¹ #T35 ¤¯¤Þ¤µ¤ó¥³¡¼¥¹
++¤¯¤á¡¼¤ë #T35 ·©¡¼¥ë
++¤¯¤á¤¨¤ë #T35 ·©¡¼¥ë
++¤¯¤á¤â¤Ê¡¼ #JN ·©¥â¥Ê¡¼
++¤¯¤é #T35 ÁÒ
++¤¯¤é #T35 ¢
++¤¯¤é¤¤¤¿ #T35 ¥¯¥éÈÄ
++¤¯¤é¤¨¤Ï¤¤¤Ö¤ê¤¹ #JN ¤¯¤é¤¨¥Ï¥¤¥Ö¥ê¥¹
++¤¯¤é¤¯ #T30 ¥¯¥é¥¯
++¤¯¤é¤² #T35 ¥¯¥é¥²
++¤¯¤é¤² #T35 ³¤·î
++¤¯¤é¤Ã¤«¡¼ #T35 ¥¯¥é¥Ã¥«¡¼
++¤¯¤é¤Ã¤«¤¢ #T35 ¥¯¥é¥Ã¥«¡¼
++¤¯¤é¤Ã¤¯ #T30 ¥¯¥é¥Ã¥¯
++¤¯¤é¤é¤¬¤¿¤Ã¤¿ #JN ¥¯¥é¥é¤¬Î©¤Ã¤¿
++¤¯¤é¤ò¤¿ #T35 ¥¯¥é¥ò¥¿
++¤¯¤ê¡¼¤ó¤Ò¤Ã¤È #T30 ¥¯¥ê¡¼¥ó¥Ò¥Ã¥È
++¤¯¤ê¤³ #JN ¤¯¤ê»Ò
++¤¯¤ê¤Á¤å¤¦ #T35 ·ª¿ß
++¤¯¤ì¤¢¤é¤·¤ë #KK ¥¯¥ì¥¢¥é¥·¥ë
++¤¯¤ì¤¤¤¸¤¤¤´¤¦¤¹¤È #T35 ¥¯¥ì¥¤¥¸¡¼¥´¡¼¥¹¥È
++¤¯¤ì¤¯¤ì¤¯¤ó #T35 ¤¯¤ì¤¯¤ì·¯
++¤¯¤ì¤¯¤ì¤Á¤å¤¦¤Ü¤¦¤Ü¤¯¤á¤Ä¤¹¤¤¤·¤ó¤¤¤¤¤ó¤«¤¤ #JN ¤¯¤ì¤¯¤ì¿ß˼ËÐÌÇ¿ä¿Ê°Ñ°÷²ñ
++¤¯¤í¤·¤ç¤¦¤¾¤¯ #T35 ¹õÁõ«
++¤¯¤í¤·¤ç¤¦¤¾¤¯¤ª¤Õ #T35 ¹õÁõ«OFF
++¤¯¤í¤Þ¤é¤é¡¼ #JN ¹õ¥Þ¥é¥é¡¼
++¤¯¤í¤ß¤ß¤â¤Ê¡¼ #JN ¹õ¼ª¥â¥Ê¡¼
++¤¯¤í¤à¤Ä #T35 ¹õ¥à¥Ä
++¤¯¤ï¤é #CJ ¥¯¥ï¥é
++¤¯¤ï¤é #CJ Ž¸ŽÜŽ×
++¤° #T35 ¶ñ
++¤°¤¢¤ï¤» #T35 ¶ñ¹ç¤ï¤»
++¤°¤Ã¤¸¤ç¤Ö #CJ ¥°¥Ã¥¸¥ç¥Ö
++¤°¤Ã¤¸¤ç¤Ö #CJ Ž¸ŽÞŽ¯Ž¼ŽÞŽ®ŽÌŽÞ
++¤°¤Ã¤É¤Õ¤£¤¤¤ê¤ó¤° #CJ ¥°¥Ã¥É¥Õ¥£¡¼¥ê¥ó¥°
++¤°¤â¤Ã¤Á¤å¤¤¤¤¤ó #T35 ¥°¥â¥Ã¥Á¥å¥¤¡¼¥ó
++¤°¤ê¡¼¤ó #T35 ¥°¥ê¡¼¥½
++¤°¤ê¡¼¤ó #T35 ¥°¥ê¡¼¥ó
++¤°¤ê¤¤¤ó¤Í¤¨¤µ¤ó #T35 ¥°¥ê¡¼¥ó°¹¤µ¤ó
++¤°¤ê¤¤¤ó¤Í¤¨¤µ¤ó #T35 ¥°¥ê¡¼¥ó»Ð¤µ¤ó
++¤°¤ì¡¼¤È¤¬¤ó¤Ð¤ë¤â¤Ê¡¼ #JN ¥°¥ì¡¼¥È¥¬¥ó¥Ð¥ë¥â¥Ê¡¼
++¤°¤ì¤Á¤ã¤ó #JN ¥°¥ì¤Á¤ã¤ó
++¤°¤í #T35 ¥°¥í
++¤°¤ó¤È¤¦¤®¤³ #JN ·³Å᥮¥³
++¤°¤ó¤Þ¤±¤ó #CN ·²Çϸ©
++¤±¡¼ #T35 £Ë
++¤±¡¼¤­¤ä¤Ý¤ó¤É #JN ¥±¡¼¥­²°¡ò
++¤±¤¤¤ª¤¦ #T35 KO
++¤±¤¤¤­¤å¤¦ #T35 KQ
++¤±¤¤¤³¤¯¤Ö¤ó #T35 ·Ù¹ðʸ
++¤±¤¤¤·¤Á¤ç¤¦ #JN ·Ù»ëÄ£
++¤±¤¤¤¸¤Ð¤ó #T35 ·Ç¼¨ÈÄ
++¤±¤¤¤¸¤Ð¤ó¤¤¤Á¤é¤ó #T35 ·Ç¼¨ÈÄ°ìÍ÷
++¤±¤¤¤¸¤Ð¤ó¤È¤Ã¤×¤Ø #CJ ·Ç¼¨ÈĥȥåפØ
++¤±¤¤¤¿¤¤¤Ç¤ó¤ï¤â¤Ê¡¼ #JN ·ÈÂÓÅÅÏÃ¥â¥Ê¡¼
++¤±¤¬¤Ë #JN ÌÓ¤¬¤Ë
++¤±¤³¡¼¤ó #T30 ¥±¥³¡¼¥ó
++¤±¤³¡¼¤ó #T30 Ž¹ŽºŽ°ŽÝ
++¤±¤Ã¤³¤ó #T30 ·ëº§
++¤±¤Ã¤Ú¤­ #T35 ·éÊÊ
++¤±¤Ã¤Ú¤­¤¯¤ó #T35 ·éÊÊ·¯
++¤±¤Ä¤¬¤ó #T35 ÊÇ´ä
++¤±¤Ä¤² #T35 ¤±¤ÄÌÓ
++¤±¤Æ¤ë #CJ ¤±¤Æ¤ë
++¤±¤í¤Ô¡¼ #JN ¥±¥í¤Ô¡¼
++¤±¤í¤ê¤ó¤²¤ë¤Ó¤È¤¦ #T35 ¥±¥í¥ê¥ó¥²¥ëÈøÆ£
++¤±¤ó #JNM ¤±¤ó
++¤±¤ó¤«¤Ï¤ä¤á¤Æ #JN ¤±¤ó¤«¤Ï¤ä¤á¤Æ¡Ê¡ü¡­¡¼¡®¡ü¡Ë
++¤±¤ó¤«¤ó¤Á¤å¤¦ #T35 ·ù´Ú¿ß
++¤±¤ó¤±¤ó¤«¤ó¤Á¤å¤¦ #T35 ·ù·ù´Ú¿ß
++¤²¡¼¤Ï¡¼¤¤¤¿ #CN ¥²¡¼¥Ï¡¼ÈÄ
++¤²¤­¤¦¤é¤¸¤ç¤¦¤Û¤¦ #T35 ·ã΢¾ðÊó
++¤²¤­¤¸¤ç¤¦ #T35 ·à¾ì
++¤²¤¹¤È¤²¤¹¤È #CJ guestguest
++¤²¤½¤ª¤½ #T35 ¥²¥½¥ª¥½
++¤²¤½¤ª¤½ #T35 Ž¹ŽÞŽ¿ŽµŽ¿
++¤²¤Ã¤³¤¦ #T35 ·î¸÷
++¤²¤Ã¤¿¡¼¤â¤Ê¤Þ¤Þ #JN ¥²¥Ã¥¿¡¼¥â¥Ê¥Þ¥Þ
++¤²¤Ã¤Ä #T35 ¥²¥Ã¥Ä
++¤²¤Ã¤×¡¼ #JN ¥²¥Ã¥×¡¼
++¤²¤É¤¦¤»¤ó¤»¤¤ #JN ³°Æ»ÀèÀ¸
++¤²¤é #JN ¥²¥é
++¤²¤é #JN ¥²¥é¥é¡¼
++¤²¤é¤é¡¼ #JN ¥²¥é
++¤²¤é¤é¡¼ #JN ¥²¥é¥é¡¼
++¤²¤í¤¤¤¿ #CN ¥²¥íÈÄ
++¤²¤í¤¤¤¿ #T35 ¥²¥íÈÄ
++¤²¤í¤â¤Ê¡¼ #JN ¥²¥í¥â¥Ê¡¼
++¤²¤ó¤ª¤ó #T35 ¥²¥½¥ª¥½
++¤²¤ó¤ª¤ó #T35 Ž¹ŽÞŽ¿ŽµŽ¿
++¤²¤ó¤·¤ª¤¦ #JN ¸¶»Ò²¦
++¤²¤ó¤·¤Ð¤¯¤À¤ó #JN ¸¶»ÒÇúÃÆ
++¤²¤ó¤¸¤ó #T35 ¸¶¿Í
++¤³¡¼¤Û¡¼ #T35 ¥³¡¼¥Û¡¼
++¤³¡¼¤Û¡¼ #T35 ¹ªÊò
++¤³¡¼¤Û¡¼ #T35 ¹âÊò
++¤³¤¢¤ê #T35 »ÒµÂ
++¤³¤¤¤Á¤¸¤«¤ó¤È¤¤¤Ä¤á¤¿¤¤ #CJ ¾®°ì»þ´ÖÌ䤤¤Ä¤á¤¿¤¤
++¤³¤¦¡«¤¡ #T35 ¥³¥ô¥¡
++¤³¤¦¡«¤¡¤¤¤¿ #CN ¥³¥ô¥¡ÈÄ
++¤³¤¦¡«¤¡¤¤¤¿ #T35 ¥³¥ô¥¡ÈÄ
++¤³¤¦¤¨¤¤¤Ø¤¤ #JN ¹È±Òʼ
++¤³¤¦¤«¤¤¤·¤ç¤±¤¤ #T35 ¸ø³«½è·º
++¤³¤¦¤«¤ó¤Á¤å¤¦ #T35 ¹¥´Ú¿ß
++¤³¤¦¤°¤· #T35 ¹©¶ñ»Õ
++¤³¤¦¤°¤· #T35 ¹á¶ñ»Õ
++¤³¤¦¤³¤¯¤Á¤å¤¦¤Ü¤¦ #T35 ¹­¹ð¿ß˼
++¤³¤¦¤³¤¯¤è¤± #T35 ¹­¹ð½ü¤±
++¤³¤¦¤µ¤¯¤¤¤ó #T35 ¹©ºî°÷
++¤³¤¦¤·¤­¤»¤Ã¤Æ¤¤ #T35 ¸ø¼°ÀßÄê
++¤³¤¦¤¿¤¤¤·¤µ¤Þ #JN ¹ÄÂÀ»ÒÍÍ
++¤³¤¦¤À¤ó¤®¤³ #JN ¹ÖÃ̵¼¸Å
++¤³¤¦¤Á¤ç¤¦¤· #T35 ¤³¤¦¤Á¤ç¤¦¤·
++¤³¤¦¤Ä¤¦¤¤¤Ï¤ó¤Î¤â¤ß¤±¤·¤«¤¿ #KK ¸òÄÌ°ãÈ¿¤ÎÙæ¤ß¾Ã¤·Êý
++¤³¤¦¤Ê¤Ã¤Æ¤ë¤Ï¤º¤¬¤³¤¦¤Ê¤Ã¤Æ¤ë¤ó¤Ç¤¹ #CJ ¤³¤¦¤Ê¤Ã¤Æ¤ë¤Ï¤º¤¬¡¢¤³¤¦¤Ê¤Ã¤Æ¤ë¤ó¤Ç¤¹¡£
++¤³¤¦¤Î¤è¤¦¤Ø¤¤ #JN ¹¾¤ÎÍÃʼ
++¤³¤¦¤Î¤è¤¦¤Ø¤¤ #T35 ¹¾¤ÎÍÃʼ
++¤³¤¦¤Ð¤· #KY ¹á¤Ð¤·
++¤³¤¦¤Ð¤· #KYmi ¹á¤Ð¤·
++¤³¤¦¤Ù #KK ¼ó
++¤³¤¦¤Ù #T35 ¼ó
++¤³¤¦¤Û¤¦ #T35 ¥³¡¼¥Û¡¼
++¤³¤¦¤Û¤¦ #T35 ¹ªÊò
++¤³¤¦¤Û¤¦ #T35 ¹âÊò
++¤³¤¦¤Ü¤¦ #T35 ¹©Ë¼
++¤³¤¦¤â¤ê¤â¤Ê¡¼ #JN ¥³¥¦¥â¥ê¥â¥Ê¡¼
++¤³¤¦¤â¤ó¤¤¤Ã¤Æ¤è¤· #CJ æêÌçÀ¤äƤ褷
++¤³¤¦¤ê¤Ä¤Á¤å¤¦ #T35 ¸øΩÃî
++¤³¤¦¤ê¤ó #T30 ¸÷Î×
++¤³¤¦¤ê¤ó #T30 ¹ßÎ×
++¤³¤¯¤ê¤Ä¤¨¤­¤Ù¤ó¤«¤Ö #T35 ¹ñΩ±ØÊۡʳô¡Ë
++¤³¤¯¤ê¤Ä¤Ï¤¦¤Ä¤¯¤·¤¤¤·¤ê¤Ä¤Ï¤ß¤Ë¤¯¤¤ #CJ ¹ñΩ¤ÏÈþ¤·¤¤¡¢¿¬ÄŤϽ¹¤¤
++¤³¤¯¤ì¤ó¤Ê¤Ê¤·¤µ¤ó #T35 ¹ñÏ¢¤ÊÀ®¤·¤µ¤ó
++¤³¤³¤Ç¤¢¤² #CJ ¤³¤³¤Ç¤¢¤²
++¤³¤³¤Ï¤´¤¸¤ã¡¼¤¹¤Ê¤¹¤ì¤Ã¤É¤À¤è #JN (¡¦¢Ï¡¦)ŽºŽºŽÊŽºŽÞŽ¼ŽÞŽ¬Ž°Ž½ŽÅŽ½ŽÚŽ¯ŽÄŽÞŽÀŽÞŽÖ
++¤³¤³¤Ï¤´¤¸¤ã¡¼¤¹¤Ê¤¹¤ì¤Ã¤É¤À¤è #JN ¥³¥³¥Ï¥´¥¸¥ã¡¼¥¹¥Ê¥¹¥ì¥Ã¥É¥À¥è
++¤³¤³¤Ï¤´¤¸¤ã¡¼¤¹¤Ê¤¹¤ì¤Ã¤É¤À¤è #JN ŽºŽºŽÊŽºŽÞŽ¼ŽÞŽ¬Ž°Ž½ŽÅŽ½ŽÚŽ¯ŽÄŽÞŽÀŽÞŽÖ
++¤³¤³¤Ï¤É¤³¤¸¤ã #JN ¤³¤³¤Ï¤É¤³¤¸¤ã
++¤³¤³¤Ï¤É¤³¤¸¤ã #JN ¥³¥³¥Ï¥É¥³¥¸¥ã
++¤³¤³¤Ï¤É¤³¤¸¤ã #JN ŽºŽºŽÊŽÄŽÞŽºŽ¼ŽÞŽ¬
++¤³¤³¤Ï¤Ò¤É¤¤¤¤¤ó¤¿¤¢¤Í¤Ã¤È¤Ç¤¹¤Í #CJ ¤³¤³¤Ï¤Ò¤É¤¤¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Ç¤¹¤Í
++¤³¤³¤Ï¤ï¤»¤À¤¸¤ã¤Ê¤¤¤è #CJ ¤³¤³¤ÏÁá°ðÅĤ¸¤ã¤Ê¤¤¤è
++¤³¤³¤Ï¤ï¤ë¤¤¤¤¤ó¤¿¤¢¤Í¤Ã¤È¤Ç¤¹¤Í #CJ ¤³¤³¤Ï°­¤¤¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Ç¤¹¤Í
++¤³¤³¤Þ¤Ç¤è¤ó¤À #CJ --------¤³¤³¤Þ¤ÇÆɤó¤À-------
++¤³¤·¤ª #T35 ¾®±ö
++¤³¤·¤Ì¤± #KK ¹øÈ´¤±
++¤³¤·¤Ì¤± #T35 ¹øÈ´¤±
++¤³¤¸¤­¤â¤Ê¡¼ #JN ¸ð¿©¥â¥Ê¡¼
++¤³¤¹¤×¤ì¤Æ¤ó #T35 ¥³¥¹¥×¥ìŹ
++¤³¤¾¤¦ #JN ¾®ÁÎ
++¤³¤¾¤¦ #T35 ¾®ÁÎ
++¤³¤Ã¤¯¤â¤é¤é¡¼ #JN ¥³¥Ã¥¯¥â¥é¥é¡¼
++¤³¤Ã¤½¤ê¤µ¤ó #JN ¤³¤Ã¤½¤ê¤µ¤ó
++¤³¤Æ #T35 ¥³¥Æ
++¤³¤Æ¤¤ #T35 ¸ÇÄê
++¤³¤Æ¤¤¤¿¤¿¤­ #T30 ¸ÇÄê᤭
++¤³¤Æ¤¤¤Ï¤ó¤É¤ë #T35 ¸ÇÄê¥Ï¥ó¥É¥ë
++¤³¤Æ¤¤¤Ï¤ó¤É¤ë¤¹¤ì¤Ã¤É #T35 ¸ÇÄê¥Ï¥ó¥É¥ë¥¹¥ì¥Ã¥É
++¤³¤Æ¤¤¤Õ¤¡¤ó #T35 ¸ÇÄê¥Õ¥¡¥ó
++¤³¤Æ¤Ï¤ó #T35 ¥³¥Æ¥Ï¥ó
++¤³¤Æ¤Ï¤ó¤«¡¼¤Ë¤Ð¤ë #T35 ¥³¥Æ¥Ï¥ó¥«¡¼¥Ë¥Ð¥ë
++¤³¤Æ¤Ï¤ó¤«¤¢¤Ë¤Ð¤ë #T35 ¥³¥Æ¥Ï¥ó¥«¡¼¥Ë¥Ð¥ë
++¤³¤Æ¤Ï¤ó¤¹¤ì¤Ã¤É #T35 ¥³¥Æ¥Ï¥ó¥¹¥ì¥Ã¥É
++¤³¤É¤â¤Ê¡¼ #JN ¤³¤É¥â¥Ê¡¼
++¤³¤Ê¤· #T35 »ÒÍü
++¤³¤Ë¡¼ #T35 ¥³¥Ë¡¼
++¤³¤Ë¤¤ #T35 ¥³¥Ë¡¼
++¤³¤Î¤¦¤Ã¤¿¤¨¤Ï¤Þ¤¤¤Ë¤Á¤·¤Æ¤¤¤¯¤Ä¤â¤ê¤Ç¤¹ #CJ ¤³¤ÎÁʤ¨¤ÏËèÆü¤·¤Æ¤¤¤¯¤Ä¤â¤ê¤Ç¤¹
++¤³¤Î¤¹¤ì¤Ï¤¨¤í¤¤¤Ê #CJ ¤³¤Î¥¹¥ì¤Ï¥¨¥í¤¤¤Ê
++¤³¤Î¤¿¤³ #JN ¤³¤Î¥¿Žº
++¤³¤Î¤ä¤í¤¦ #CJ ¤³¤ÎÌîϺ¡ª
++¤³¤Ô¤Ú #T30 ¥³¥Ô¥Ú
++¤³¤Ô¤Ú¤¢¤é¤· #T35 ¥³¥Ô¥Ú¹Ó¤é¤·
++¤³¤Ô¤Ú¤¦¤¶ #KYT ¥³¥Ô¥Ú¤¦¤¶
++¤³¤Ô¤Ú¤Á¤å¤¦ #T35 ¥³¥Ô¥Ú¿ß
++¤³¤Ô¤Ú¤Ï¤«¤Á¤å¡¼¤·¤ã¤Ç¤¢¤Ü¡¼¤ó¤À¤è #JN ¤³¤Ô¤Ú¤Ï¤«¤Á¤å¡Á¤·¤ã¤Ç¤¢¤Ü¡Á¤ó¤À¤è
++¤³¤Ü¤æ¤­¡¼ #JN ¡ÊŽÒ¡¦¤ó¡¦¡Ë
++¤³¤Ü¤æ¤­¡¼ #JN ¥³¥Ü¥æ¥­¡¼
++¤³¤Þ¤Ä¤Ð¤é¤³¤¦¤³¤¦ #KK ¾®¾¾¸¶¹â¹»
++¤³¤Þ¤Ä¤Ð¤é¤³¤¦¤³¤¦ #T35 ¾®¾¾¸¶¹â¹»
++¤³¤Þ¤ë #JN ¥³¥Þ¥ë
++¤³¤ß¤± #KK ¥³¥ß¥±
++¤³¤ß¤Ñ #KK ¤³¤ß¥Ñ
++¤³¤ß¤Ñ #T35 ¤³¤ß¥Ñ
++¤³¤ß¤ß¤â¤Ê¡¼ #JN ¾®¼ª¥â¥Ê¡¼
++¤³¤á #T35 ¢¨
++¤³¤á¤·¤ª #KK ÊƱö
++¤³¤á¤·¤ª #T35 ÊƱö
++¤³¤á¤¸¤ª #KK ÊƱö
++¤³¤á¤¸¤ª #T35 ÊƱö
++¤³¤é #RT ¥³¥é
++¤³¤é #T35 ¥³¥é
++¤³¤ê¤ã¤Þ¡¼ #CN ¥³¥ê¥ã¥Þ¡¼
++¤³¤ê¤ã¤Þ¡¼ #T35 ¥³¥ê¥ã¥Þ¡¼
++¤³¤ê¤ã¤Þ¤¢ #T35 ¥³¥ê¥ã¥Þ¡¼
++¤³¤ê¤ó¤º #JN ¥³¥ê¥ó¥º
++¤³¤ê¤ó¤º¤¢¤é¤· #JN ¥³¥ê¥ó¥º¹Ó¤é¤·¡¡
++¤³¤ê¤ó¤º¤­¤é¡¼ #JN ¥³¥ê¥ó¥º¥­¥é¡¼
++¤³¤ê¤ó¤º¤À¡¼¤¯ #JN ¥³¥ê¥ó¥º¥À¡¼¥¯
++¤³¤ì¤ª¤â¤í¤¤ #CJ ¤³¤ì¤ª¤â¤í¤¤¡ª
++¤³¤ì¤Ï¤·¤å¤¦¤»¤¤¤µ¤ì¤ë¤Í #CJ ¤³¤ì¤Ï½¤À°¤µ¤ì¤ë¤Íwwww
++¤³¤í¤Ã¤± #T35 ¥³¥í¥Ã¥±
++¤³¤í¤Ã¤±¤µ¤¤ #T35 ¥³¥í¥Ã¥±º×
++¤³¤í¤Ã¤±¤ï¤Ã¤·¤ç¤¤ #JN ¥³¥í¥Ã¥±¥ï¥Ã¥·¥ç¥¤
++¤³¤í¤Ì #CJ ¥³¥í¥Ì
++¤³¤í¤Ì #CJ ¥³¥í¥Ì
++¤³¤í¤Ì #N5 ¥³¥í¥Ì
++¤³¤ï¤¤¤³¤ï¤¤¤Ò¡¼ #CJ ¥³¥ï¥¤¥³¥ï¥¤¥Ò¡¼
++¤³¤ó¤·¤å¤¦¤Î¤Ó¤Ã¤¯¤ê¤É¤Ã¤­¤ê¤¾¤Ì #JN º£½µ¤Î¥Ó¥Ã¥¯¥ê¥É¥Ã¥­¥ê¤¾¤Ì
++¤³¤ó¤É¡¼¤à¤Þ¤é¤é¡¼ #JN ¥³¥ó¥É¡¼¥à¥Þ¥é¥é¡¼
++¤³¤ó¤Î¤¦ #T35 º®Ç¾
++¤´¡¼ #KK ¥´¡¼
++¤´¡¼¤´¡¼¤Ë¡¼¤Ö¤ó¤·¤ç #T35 552ʸ½ñ
++¤´¡¼¤´¡¼¤Ë¡¼¤â¤ó¤¸¤ç #T35 552ʸ½ñ
++¤´¤¤¤ó¤­¤ç #T35 ¸æ±£µï
++¤´¤¦¤Á¤ó¤­¤ã¤é¤µ¤ó¤Ë¤ó¤°¤ß #JN ¹ìÄÀ¥­¥ã¥é»°¿ÍÁÈ
++¤´¤¦¤Á¤ó¤­¤ã¤é¤µ¤ó¤Ë¤ó¤°¤ß¤«¤Ã¤³¤À¤¤¤µ¤ó¤­¤È¤¸¤«¤Ã¤³ #JN ¹ìÄÀ¥­¥ã¥é»°¿ÍÁÈ¡ÊÂè»°´ü¡Ë
++¤´¤¦¤Á¤ó¤­¤ã¤é¤µ¤ó¤Ë¤ó¤°¤ß¤«¤Ã¤³¤À¤¤¤Ë¤­¤È¤¸¤«¤Ã¤³ #JN ¹ìÄÀ¥­¥ã¥é»°¿ÍÁÈ¡ÊÂèÆó´ü¡Ë
++¤´¤¦¤Ï¤é #JNS ¶ÈÊ¢
++¤´¤¦¤Ï¤é #T35 ¶ÈÊ¢
++¤´¤¦¤Ï¤é¤â¤Ê¡¼ #JN ¥´¡Ê°Ê²¼Î¬¡Ë¥â¥Ê¡¼
++¤´¤¦¤Þ¤ë¤µ¤ó¤é¤¦¤ó¤¸ #T35 503¥é¥¦¥ó¥¸
++¤´¤­¤Ö¤ê¤Ã¤Ä #JN ¥´¥­¥Ö¥ê¥Ã¥Ä
++¤´¤­¤Ö¤ê¤Ã¤Ä #KK ¥´¥­¥Ö¥ê¥Ã¥Ä
++¤´¤­¤Ö¤ê¤Ã¤Ä #T35 ¥´¥­¥Ö¥ê¥Ã¥Ä
++¤´¤­¤Ö¤ê¤è¤³¤Ï¤Þ¤¸¤ó #JN ¥´¥­¥Ö¥ê²£ÉÍ¿Í
++¤´¤­¤í¤ª #T35 ¥´¥­¥í¡¼
++¤´¤®¤³¤µ¡¼¤Æ¤£¡¼¤ó #JN ¥´¥®¥³£±£³
++¤´¤¯¤¦ #T35 ¸ç¶õ
++¤´¤¯¤Ö¤È¤Ð¤¤¤Ö¡¼ #T35 ¶ËÂÀ¥Ð¥¤¥Ö¡¼¡ª¡ª
++¤´¤µ¤ó¤± #T35 ¸æ»°²È
++¤´¤¸¤ã¡¼¤¹¤Þ¤é¤é¡¼ #JN ¥´¥¸¥ã¡¼¥¹¥Þ¥é¥é¡¼
++¤´¤¸¤ã¡¼¤¹¤â¤é¤é¡¼ #JN ¥´¥¸¥ã¡¼¥¹¥â¥é¥é¡¼
++¤´¤¹¤é #JN ¥´¥¹¥é
++¤´¤Ã¤É¤Ï¤ó¤É #T35 ¥´¥Ã¥É¥Ï¥ó¥É
++¤´¤Ë¤ã¤¢ #JN ¤´¤Ë¤ã¤¢
++¤´¤Ë¤ã¤¢ #JN ¥´¥Ë¥ã¥¢
++¤´¤Ð¤¯ #T35 ¸íÇú
++¤´¤Ð¤¯¤¢¤é¤· #T35 ¸íÇú¹Ó¤é¤·
++¤´¤Ð¤¯¤¹¤Þ¤½ #CJ ¸íÇú¥¹¥Þ¥½
++¤´¤Þ¤â¤É¤­ #JN ¥´¥Þ¤â¤É¤­
++¤´¤ß¤Ð¤³ #T35 ¥´¥ßÈ¢
++¤´¤ß¤ó #T35 ¤´¤ß¤ó
++¤´¤á¤½ #CJ ¥´¥á¥½
++¤´¤é¡¼ #JN ¥´¥é¡¼
++¤´¤é¤¡ #JN ¡ÔŽß§¥Žß¡ÕŽºŽÞŽ×Ž§Ž§Ž§Ž§Ž§Ž§Ž§Ž§Ž§Ž§Ž§Ž§Ž§Ž±!!!!!
++¤´¤é¤¡ #JN ¥´¥é¥¡
++¤´¤ê¤ç¤¦¤â¤¨ #T35 ¸æÎî˨
++¤´¤ë¤¡ #CJ (Žß§¥Žß)ŽºŽÞŽÙŽ§¡ª
++¤´¤ë¤¡ #CJ ¥´¥ë¥¡
++¤´¤ë¤¡ #CJ ¥´¥ë¥¡!
++¤´¤ë¤¡ #CJ ŽºŽÞŽÙŽ§¡ª
++¤´¤ë¤¡ #JN ¡³(*¡®§¥¡­)¥ÎŽºŽÞŽÙŽ§
++¤´¤ë¤¡ #JN (Žß§¥Žß)ŽºŽÞŽÙŽ§
++¤´¤ë¤¡ #JN ¥´¥ë¥¡
++¤´¤ë¤¡ #JN ŽºŽÞŽÙŽ§
++¤´¤ë¤¡ #T35 goluah!
++¤´¤ë¤¡¤È¤é¤Þ¤ó #JN ¥´¥ë¥¡¥È¥é¥Þ¥ó
++¤´¤ë¤¢ #CJ ¥´¥ë¥¡!
++¤´¤í¤í¤¦ #T35 ¥´¥í¥í¡¼
++¤µ¡¼¤Ð¤«¤ó¤·¤¸¤ç #T35 ¥µ¡¼¥Ð´Æ»ë½ê
++¤µ¡¼¤Ð¤À¤¤¤­¤ó #T35 ¥µ¡¼¥ÐÂå¶â
++¤µ¤¢¤¤¤³¤¦¤« #JN ¤µ¤¢¡Å¡¡À¤³¤¦¤«¡Å¡Å
++¤µ¤¢¤²¤¨¤à¤Î¤Ï¤¸¤Þ¤ê¤Ç¤¹ #CJ ¤µ¤¢¥²¡¼¥à¤Î»Ï¤Þ¤ê¤Ç¤¹
++¤µ¤¢¤µ¤¢¤ª¤­¤ã¤¯¤µ¤ó¤¬¤¯¤ë¤è #JN ¤µ¤¢¤µ¤¢¡¢¤ªµÒ¤µ¤ó¤¬Íè¤ë¤è!!!
++¤µ¤¢¤µ¤¢¤ª¤­¤ã¤¯¤µ¤ó¤¬¤¯¤ë¤è #JN ¤µ¤¢¤µ¤¢¡¢¤ªµÒ¤µ¤ó¤¬Íè¤ë¤è!!!
++¤µ¤¤¤³¤¦ #T35 ºÇ¹â
++¤µ¤¤¤³¤¦¤­¤ç¤¦ #T35 ºÇ¹â¶µ
++¤µ¤¤¤³¤¦¤¼¡¼¤è #JN ¥µ¥¤¥³¥¦¥¼¡¼¥è
++¤µ¤¤¤³¤Õ¤Ã¤µ¡¼¤ë #JN ¥µ¥¤¥³¡¦¥Õ¥Ã¥µ¡¼¥ë
++¤µ¤¤¤·¤ó¤ì¤¹ #T35 ºÇ¿·¥ì¥¹
++¤µ¤¤¤¼¤ó¤»¤ó¤¯¤ó #T35 ºÇÁ°Àþ·¯
++¤µ¤¤¤¿¤Þ #JN ¤µ¤¤¤¿¤Þ
++¤µ¤¤¤¿¤Þ #T35 ¤µ¤¤¤¿¤Þ
++¤µ¤¤¤À¤¤¤­¤å¤¦¤­¤Á¤¬¤¤¤±¤¤¤Û¤¦ #JN ºÇÂçµé¥­¥Á¥¬¥¤·ÙÊó
++¤µ¤¤¤É¤ê¤­¤¤¤Á #JN º¸°æ¸ÍÎÏ°ì
++¤µ¤¤¤Ð¡¼¤¨¡¼¤¸¤§¤ó¤È #KK ¥µ¥¤¥Ð¡¼¥¨¡¼¥¸¥§¥ó¥È
++¤µ¤¤¤â¤¨¤È¡¼¤Ê¤á¤ó¤È #T35 ºÇ˨¥È¡¼¥Ê¥á¥ó¥È
++¤µ¤¤¤â¤¨¤È¤¦¤Ê¤á¤ó¤È #T35 ºÇ˨¥È¡¼¥Ê¥á¥ó¥È
++¤µ¤«¡¼¤Ê #JN ¥µ¥«¡¼¥Ê
++¤µ¤«¤­¤Ð¤é¤»¤¤¤È #T35 ¼òµ´é¬é¯À»ÅÍ
++¤µ¤«¤Ê #JN µû
++¤µ¤«¤Ê #T35 µû
++¤µ¤«¤Ë¤Ã¤Ý #T35 ¤µ¤«¤Ë¤Ã¤Ý
++¤µ¤¬¤±¤ó¤µ¤¬¤·¤¸¤å¤¦¤Ê¤Ê¤µ¤¤ #JN º´²ì¸©º´²ì»Ô½½¼·ºÐ
++¤µ¤¯¤¸¤ç #T30 ºï½ü
++¤µ¤¯¤¸¤ç¤¤¤é¤¤ #T30 ºï½ü°ÍÍê
++¤µ¤¯¤¸¤ç¤¤¤é¤¤ #T35 ºï½ü°ÍÍê
++¤µ¤¯¤¸¤ç¤¬¤¤¤É¤é¤¤¤ó #T35 ºï½ü¥¬¥¤¥É¥é¥¤¥ó
++¤µ¤¯¤¸¤ç¤Ë¤ó #T35 ºï½ü¿Í
++¤µ¤¯¤»¤¤¤¤¤é¤¤ #T30 ºîÀ®°ÍÍê
++¤µ¤¯¤¿¤ó #T35 ¥µ¥¯¤¿¤ó
++¤µ¤¯¤Å¤± #T30 ¤µ¤¯¤Å¤±
++¤µ¤¯¤Å¤± #T30 ¥µ¥¯¥º¤±
++¤µ¤¯¤é¤¬¤ª¤«¤¬¤¯¤¨¤ó #KK ºùµÖ³Ø±à
++¤µ¤¯¤é¤¬¤ª¤«¤³¤¦¤³¤¦ #KK ºùµÖ¹â¹»
++¤µ¤¯¤é¤¬¤ª¤«¤Á¤å¤¦¤¬¤Ã¤³¤¦ #KK ºùµÖÃæ³Ø¹»
++¤µ¤¯¤é¤¿¤ó¤«¤ê #T35 ¤µ¤¯¤é¤¿¤ó¡Ê²¾¡Ë
++¤µ¤¯¤é¤¿¤ó¤Á¤å¤¦ #T35 ¤µ¤¯¤é¤¿¤ó¿ß
++¤µ¤¯¤é¤Á¤å¤¦ #T35 ºù¿ß
++¤µ¤¯¤é¤Ã¤Á #T35 ¥µ¥¯¥é¤Ã¤Á
++¤µ¤¯¤é¤Ã¤Á #T35 ºùÙÇÃ×
++¤µ¤¯¤é¤Ë¤³ #JN ¤µ¤¯¤é¥Ë¥³
++¤µ¤¯¤é¤Í¤Ã¤È #KK ¤µ¤¯¤é¤Í¤Ã¤È
++¤µ¤¯¤é¤á¤ó¤È #JN ¥µ¥¯¥é¥á¥ó¥È
++¤µ¤±¤È¤®¤³¤È¤Ï¤Ë¤ã¡¼¤ó¤È #JN ¼ò¤È¥®¥³¤È¤Ï¤Ë¤ã¡¼¤ó¤È
++¤µ¤±¤Ë¤®¤ê¤ï¤Ã¤·¤ç¤¤ #JN ºú¤Ë¤®¤ê¥ï¥Ã¥·¥ç¥¤
++¤µ¤² #KS sage
++¤µ¤² #KSr ¤µ¤²
++¤µ¤² #T35 sage
++¤µ¤²¤¢¤ª¤ê #T35 sageÀú¤ê
++¤µ¤²¤¢¤é¤· #T35 sage¹Ó¤é¤·
++¤µ¤²¤·¤ó¤³¤¦ #T30 ¤µ¤²¿Ê¹Ô
++¤µ¤²¤·¤ó¤³¤¦ #T35 sage¿Ê¹Ô
++¤µ¤²¤Ã¤Æ¤£ #JN sageŽ¯ŽÃŽ¨
++¤µ¤²¤ì¤¹ #T30 sage¥ì¥¹
++¤µ¤³¤Ä #JN ¥µ¹ü
++¤µ¤µ¤­¤±¤ó¤¹¤± #JN º´¡¹ÌÚ·ò²ð
++¤µ¤¶¤¨¤µ¤ó #JN ¥µ¥¶¥¨¤µ¤ó
++¤µ¤¶¤¨¤µ¤ó #JN ¥µ¥¶¥¨¤µ¤ó¡¡
++¤µ¤¹¤µ¤¹ #JN ¤µ¤¹¤µ¤¹
++¤µ¤¿¤ó #JN ¥µ¥¿¥ó
++¤µ¤¿¤ó #JN Ž»ŽÀŽÝ
++¤µ¤Ã¤Á¡¼¤Þ¤Ä¤ê #T35 ¥µ¥Ã¥Á¡¼º×¤ê
++¤µ¤Ã¤Á¤å¤¦¤¶¤¤¤´¤¸¤ã¡¼¤¹ #JN »¦¿ßºÞ¥´¥¸¥ã¡¼¥¹
++¤µ¤Ã¤Ý¤í #CN »¦ŽÎŽßŽÛ
++¤µ¤Ã¤Ý¤í #KK »¦¥Ý¥í
++¤µ¤Ã¤Ý¤í #T35 »¦¥Ý¥í
++¤µ¤Ã¤Ý¤í #T35 »¦ŽÎŽßŽÛ
++¤µ¤Ä¤¨¤¤¤­¤ó¤· #T35 »£±Æ¶Ø»ß
++¤µ¤È¤é¤ì #T35 ¥µ¥È¥é¥ì
++¤µ¤Ð #T35 »ª
++¤µ¤Ð¤ª¤Á #T30 »ªÍî¤Á
++¤µ¤Ð¤¬¤ª¤Á¤ë #CJ »ª¤¬Íî¤Á¤ë
++¤µ¤Ð¤¬¤È¤Ö #CJ »ª¤¬Èô¤Ö
++¤µ¤Ö¤Ð¤Ã¤¯¤¨¤¤¤Á¤Æ¤£¡¼¤¨¤à¤¨¤ë #T35 subback.html
++¤µ¤á¤¸¤Þ¤¸¤±¤ó #T35 »­Åç»ö·ï
++¤µ¤è #T35 ¥µ¥è
++¤µ¤è¤Ã¤Æ¤ë #T35 º¸Íã¤Ã¤Æ¤ë
++¤µ¤è¤ó¤Ü #T35 ¥µ¥è¥ó¥Ü
++¤µ¤é¤·¤¢¤² #KSr ¤µ¤é¤·age
++¤µ¤é¤·¤¢¤² #KSr ¤µ¤é¤·¤¢¤²
++¤µ¤é¤·¤¢¤² #KSr »¯¤·age
++¤µ¤é¤·¤¢¤² #T35 SALA¤·age
++¤µ¤é¤·¤¢¤² #T35 SALA»Å¾å¤²
++¤µ¤é¤·¤¢¤² #T35 £Ó£Á£Ì£Á»Å¾å¤²
++¤µ¤é¤·¤¢¤² #T35 ¤µ¤é¤·age
++¤µ¤é¤·¤¢¤² #T35 »¯¤·age
++¤µ¤é¤·¤¢¤²¤â¤Ê¡¼ #JN »¯¤·¾å¤²¥â¥Ê¡¼
++¤µ¤é¤Ö¤ì¤Ã¤È #JN ¥µ¥é¥Ö¥ì¥Ã¥È
++¤µ¤é¤Ö¤ì¤Ã¤É #JN ¥µ¥é¥Ö¥ì¥Ã¥É
++¤µ¤ë¤¶¤È¤¦ #T35 ±îº½Åü
++¤µ¤ë¤Ù¡¼¤¸ #T30 ¥µ¥ë¥Ù¡¼¥¸
++¤µ¤ì¤Ä¤Þ #T35 ¤µ¤ìºÊ
++¤µ¤ì¤Å¤Þ #T35 ¤µ¤ìºÊ
++¤µ¤ï¤¿¤ê¤Þ¤³¤È¤Ï¤ï¤¬¤¤¤Î¤Á #CJ ÂôÅÏ¿¿¶×¤Ï²æ¤¬Ì¿
++¤µ¤ï¤ä¤« #JN Á֤䤫¡ª
++¤µ¤ó¤¬¤Ä¤¦¤µ¤® #JN £³·î¥¦¥µ¥®
++¤µ¤ó¤­¤ã¤¯ #KK »°µÓ
++¤µ¤ó¤­¤ã¤¯ #T35 »°µÓ
++¤µ¤ó¤¯¤¹¤³ #CJ ¥µ¥ó¥¯¥¹¥³
++¤µ¤ó¤¯¤¹¤³ #CJ Ž»ŽÝŽ¸Ž½Žº
++¤µ¤ó¤±¡¼ #JN ¥µ¥ó¥±¡¼
++¤µ¤ó¤±¡¼¤·¤ó¤Ö¤ó #T35 £³£Ë¿·Ê¹
++¤µ¤ó¤²¤Ã¤È #JN £³¥²¥Ã¥È¤©¤©¤©¤©¡ª¡ª
++¤µ¤ó¤´ #T35 »¹¸ê
++¤µ¤ó¤º¤Î¤«¤ï #JN »°ÅÓ¤ÎÀî
++¤µ¤ó¤¿¤â¤Ë¤« #JN ¥µ¥ó¥¿¡á¥â¥Ë¥«
++¤µ¤ó¤À¤ó¤â¤Ê¡¼ #JN £³ÃÊ¥â¥é¥é¡¼
++¤µ¤ó¤É¤¤¤Ã¤Á #JN ¥µ¥ó¥É¥¤¥Ã¥Á
++¤µ¤ó¤á¡¼¤È¤ë¤Î¤¦¤Á¤å¤¦¤¸¤ó #JN £³£í¤Î±§Ãè¿Í¡¡
++¤µ¤ó¤â¤¸¤µ¤¯¤¬ #T35 »°Ê¸»úºî²è
++¤¶¡¼¤Ü¤ó #JN ¥¶¡¼¥Ü¥ó
++¤¶¤¢¤á¤ó¤¿¤¤¤·¤Ä #T35 ¥¶¡¼ÌÌÂμÁ
++¤¶¤¤¤¢¤½ #JN ¥¶¥¤¥¢¥½
++¤¶¤¤¤¢¤½ #JN ¥¶¥¤¥¢¥½
++¤¶¤¤¤³ #JN ¥¶¥¤»Ò
++¤¶¤¤¤³¤·¤ç¤ê¤Ï¤ó #JN ºß¸Ë½èÍýÈÉ
++¤¶¤¤¤Ë¤Á¤¤¤·¤ì¤Ã¤É #T35 ºßÆü°å»ÕRED
++¤¶¤¤¤Ë¤Á¤Ë¤ó¤Æ¤¤ #T30 ºßÆüǧÄê
++¤¶¤¤¤ê¤ç¤¦¤Ö¤Ã¤»¤¤¤¤¤¿ #CN ºàÎÁʪÀ­ÈÄ
++¤¶¤¤¤ê¤ç¤¦¤Ö¤Ã¤»¤¤¤¤¤¿ #T35 ºàÎÁʪÀ­ÈÄ
++¤¶¤­ #T35 ¥¶¥­
++¤¶¤Ã¤·¤å¤»¤ó¤»¤¤ #JN »¨¼ïÀèÀ¸
++¤¶¤Ä¤À¤ó¤³¤Æ¤¤ #T35 »¨Ã̸ÇÄê
++¤¶¤Ö¤È¤ó¤¢¤é¤· #JN ¤¶¤Ö¤È¤ó¹Ó¤é¤·
++¤¶¤ï¤¶¤ï #T30 ¤¶¤ï¤¶¤ï
++¤· #M5 ¤·
++¤· #N5 ¤·
++¤· #N5 »Ô
++¤· #N5 »á
++¤· #R5 ¤·
++¤·¡¼¤Ë¤ã¤ó #JN ¤·¡¼¤Ë¤ã¤ó
++¤·¤¢¡¼¤ë #KK ¤·R
++¤·¤¢¡¼¤ë #T35 ¤·R
++¤·¤¢¤¢¤ë #T35 ¤·R
++¤·¤¢¤ï¤»¤µ¤ó¤× #JN ¹¬¤»»¶ÉÛ
++¤·¤£ #JN ¤·¤£
++¤·¤£ #T35 ¤·¤£
++¤·¤£¤¢ #JN ¤·¤£¤¢
++¤·¤£¤¤¤¤¤ó¤Á¤ç¤¦ #JN ¤·¤£°Ñ°÷Ĺ
++¤·¤£¤«¤Á¤ã¤ó #JN ¤·¤£¤«¤Á¤ã¤ó
++¤·¤£¤¸¤ç¤­¤ç¤¦¤¸¤å #JN ¤·¤£½õ¶µ¼ø
++¤·¤£¤¹¤ê¡¼¤Þ¤¿¡¼¤ê #JN ¤·¤££³ÏÀ°Ø
++¤·¤£¤¹¤ê¡¼¤Þ¤¿¡¼¤ê #JN ¤·¤££³ŽÏŽÀŽ°ŽØ
++¤·¤£¤¿¤± #JN ¤·¤£¤¿¤±
++¤·¤£¤¿¤± #JN ¤·¤£¤¿¤±
++¤·¤£¤Ò¤á #JN ¤·¤£É±
++¤·¤£¤Ò¤í¤Õ¤ß #JN ¤·¤£ÍÎʸ
++¤·¤£¤Þ¤Þ #JN ¤·¤£¥Þ¥Þ
++¤·¤¤¤µ¤¢ #T35 ¥·¡¼¥µ¡¼
++¤·¤¤¤¿¤± #T35 ¤·¤¤¤¿¤±
++¤·¤¨¤ó #T35 »Ù±ç
++¤·¤ª #JN ±ö
++¤·¤ª #T35 ±ö
++¤·¤ª¤«¤ó #KK ¤·¤ª´Ú
++¤·¤ª¤«¤ó #T35 ¤·¤ª´Ú
++¤·¤ª¤¿ #T35 ±öÅÄ
++¤·¤ª¤Ë¤Á #T35 ±öÆü
++¤·¤«¤¯ #KK »Í³Ñ
++¤·¤«¤¯ #T35 ¢£
++¤·¤«¤¯¤·¤«¤¯ #T35 ¢¢¢¢
++¤·¤«¤¯¤·¤ó¤¸¤ã #T35 »Í³Ñ¿®¼Ô
++¤·¤¬¤µ¤¯ #T35 ¼¢²ìºî
++¤·¤­¤¬¤ß¤´¤é¤¡ #JN ¼°¿ÀŽºŽÞŽ×Ž§
++¤·¤­¤¬¤ß¤Ê¤á¤¯¤¸ #JN ¼°¿ÀéÝê¡
++¤·¤±¤ó¤«¤ó #JN »î¸³´É
++¤·¤²¤ò #JNM ¥·¥²¥ò
++¤·¤²¤ò #T35 ¥·¥²¥ò
++¤·¤³¤¯ #CN »à¹ñ
++¤·¤³¤¯ #T35 »à¹ñ
++¤·¤³¤¿¤Û¤ï¤¢ #CJ ¥·¥³¥¿¥Û¥ï¡¼
++¤·¤¸¤ß #T35 ¥·¥¸¥ß
++¤·¤¹¤¿¡¼¤¶¡¼¤Ü¤ó #JN ¥·¥¹¥¿¡¼¥¶¡¼¥Ü¥ó
++¤·¤¹¤×¤ê #KK ¥·¥¹¥×¥ê
++¤·¤¹¤×¤ê #T35 ¥·¥¹¥×¥ê
++¤·¤¿¤¤¤¬¤¾¤¦ #T35 »àÂβèÁü
++¤·¤¿¤é¤Ð¤¯¤ó #JN ¤·¤¿¤é¤Ð·¯¡Ê²¾¡Ë
++¤·¤¿¤é¤Ð¤³¤¦¤Ä¤¦¤ä¤³¤¦¤³¤¦¤½¤¯¤Ð¤¹ #JN ¤·¤¿¤é¤Ð¸òÄÌÌë¹Ô¹â®¥Ð¥¹
++¤·¤¿¤é¤Ð¤Ê¡¼ #JN ¥·¥¿¥é¥Ð¥Ê¡¼
++¤·¤Á¤¸¤å¤¦¤¯ #T35 ¼·½Å¶ì
++¤·¤Á¤Ë¤ó¤Î¤µ¤Ö #T35 ¼·¿Í¤Î¥µ¥Ö
++¤·¤Ã¤¿¤« #T35 ÃΤ俤«
++¤·¤Ã¤¿¤«¤¯¤ó #T35 ÃΤ俤«·¯
++¤·¤Ã¤¿¤«¤Á¤å¤¦¤Ü¤¦ #T35 ÃΤ俤«¿ß˼
++¤·¤Ã¤Æ¤ë¤Ê¤é¤Ê¤¼¤·¤Æ¤­¤·¤Æ¤¯¤ì¤Ê¤«¤Ã¤¿¤Î¤Ç¤¹¤« #CJ ÃΤäƤë¤Ê¤é¡¢¤Ê¤¼»ØŦ¤·¤Æ¤¯¤ì¤Ê¤«¤Ã¤¿¤Î¤Ç¤¹¤«¡©
++¤·¤È¤Ë¤é¤Á¤ã¤¨¤ë #JN »ÈḀ̊˥é¥Á¥ã¥¨¥ë
++¤·¤Ê #CJ ¥·¥Ê
++¤·¤Ê¡¼ #JN ¥·¥Ê¡¼
++¤·¤Ê¤¢ #T35 ¥·¥Ê¡¼
++¤·¤Ê¤½¤Ð¤ä¤Î¤µ¤Î¤â¤Ê¡¼ #JN »ÙÆᶾÇþ²°¤Îº´Ìî¥â¥Ê¡¼
++¤·¤Ê¤Í¡¼¤è #JN »á¥Ê¥Í¡¼¥è
++¤·¤Ë¤¬¤ß¤È¤ê¤Ã¤×¤ª¤Ö¤Ç¤¹ #JN »à¿À¥È¥ê¥Ã¥×¥ª¥Ö¥Ç¥¹
++¤·¤Ë¤¬¤ß¤ß¤Ê¤é¤¤¤·¤§¤ê¡¼ #JN »à¿À¸«½¬¡¡¥·¥§¥ê¡¼
++¤·¤Ë¤¬¤ß¤ß¤Ê¤é¤¤¤·¤§¤ê¡¼ #JN »à¿À¸«½¬¥·¥§¥ê¡¼
++¤·¤Í #CJ ¤·¤Í
++¤·¤Í #CJ »Ô¤Í
++¤·¤Í #CJ »á¤Í
++¤·¤Í¡¼¤è #JN »á¥Í¡¼¥è
++¤·¤Í¤Ð¡¼ #JN ¥·¥Í¥Ð¡¼
++¤·¤Í¤Ð¡¼ #JN ¥Á¥Í¥Ð¡¼
++¤·¤Í¤è¤ª¤á¡¼¤é #JN »á¤Í¤è¤ª¤á¡¼¤é
++¤·¤Î¤Ö¤é¤¤¤ó #T35 Ǧ¥é¥¤¥ó
++¤·¤Ð¤¤¤Ì #T35 ¼Æ¸¤
++¤·¤Ð¤±¤ó #T35 ¼Æ¸¤
++¤·¤Ð¤¹ #T35 »à¥Ð¥¹
++¤·¤Ö¤µ¤ï¤µ¤ó #JN ½Âß·¤µ¤ó
++¤·¤Û¤½ #T35 ¤·¥Û¥½
++¤·¤Û¤ó #T35 ¤·¥Û¥ó
++¤·¤Ü¤¦¤¸¤å¤¦ #JN ¡Ê`)¢Ï(¡­¡Ë¡Ê¡­)§¥(`¡Ë
++¤·¤Ü¤¦¤¸¤å¤¦ #JN »éËýÃ
++¤·¤à¤â¤Ê¡¼ #JN ¥·¥à¡¦¥â¥Ê¡¼
++¤·¤á¤¸ #T35 (Žß§ÕŽß)Ž¼ŽÒŽ¼ŽÞ
++¤·¤á¤Ä¤±¤Á¤«¤ó¤Ó¤¤¤à #T35 Äù¤áÉÕ¤±ÃÔ´Á¥Ó¡¼¥à
++¤·¤â¤Ä¤· #JN ¥·¥â¥Ä¥·
++¤·¤â¤È #T35 ¥·¥â¥È
++¤·¤â¤È #T35 Ž¼ŽÓŽÄ
++¤·¤ã¤¡¤»¤ó¤è¤¦¤®¤³¤ó¤°¤È¤¬¤ó¤â¤Ê #JN ¥·¥ã¥¡ÀìÍÑ¥®¥³¥ó¥°¤È¥¬¥ó¥â¥Ê
++¤·¤ã¤¢¤»¤ó¤è¤¦¤¤¤¿ #CN ¥·¥ã¥¢ÀìÍÑÈÄ
++¤·¤ã¤¢¤»¤ó¤è¤¦¤¤¤¿ #T35 ¥·¥ã¥¢ÀìÍÑÈÄ
++¤·¤ã¤¤¤¢¤¸¤ó #T35 ¥·¥ã¥¤¥¢¿Í
++¤·¤ã¤¤¤ó #T35 ¥·¥ã¥¤¥ó
++¤·¤ã¤­¤¤¤ó #CJ (¡®Ž¥¦ØŽ¥¡­)Ž¼Ž¬Ž·Ž°ŽÝ
++¤·¤ã¤­¤¤¤ó #CJ ¥·¥ã¥­¡¼¥ó
++¤·¤ã¤¯¤ì¤­¤ê¤·¤¿¤ó #T35 ¥·¥ã¥¯¥ì¥­¥ê¥·¥¿¥ó
++¤·¤ã¤·¤ç¤¦ #JN ¼Ö¾¸
++¤·¤ã¤Ð¤¤¤Î¤© #CJ ¥·¥ã¥Ð¥¤¥Î¥©
++¤·¤ã¤Ð¤¤¤Î¤© #CJ Ž¼Ž¬ŽÊŽÞŽ²ŽÉŽ«
++¤·¤ã¤Ð¤¾¤¦ #T35 ¥·¥ã¥ÐÁþ
++¤·¤ã¤Ù¤ë¤Ä¤¯¤¨ #JN ¤·¤ã¤Ù¤ë´ù
++¤·¤ã¤ó¤Æ¤£ #JN ¡ÊŽ¥¢ÏŽ¥¡ËŽ¼Ž¬ŽÝŽÃŽ¨¢ö
++¤·¤ã¤ó¤Æ¤£ #JN ¥·¥ã¥ó¥Æ¥£
++¤·¤ä¤¢ #T35 ¤·§Á
++¤·¤å¤¦ #JN ¤·¤å¤¥
++¤·¤å¤¦¤«¤ó¤¢¤¹¤­¡¼ #KK ½µ´©¥¢¥¹¥­¡¼
++¤·¤å¤¦¤­¤ç¤¦ #T35 ½¡¶µ
++¤·¤å¤¦¤µ¤¤¤â¤é¤é¡¼ #JN ½¨ºÍ¥â¥é¥é¡¼
++¤·¤å¤¦¤È¤¦ #T30 ½ªÅß
++¤·¤å¤¦¤È¤¦ #T35 ½ªÅß
++¤·¤å¤¦¤Õ¤æ #T30 ½ªÅß
++¤·¤å¤¦¤Õ¤æ #T35 ½ªÅß
++¤·¤å¤¦¤é¤¯ #T35 ¤·¤å¤¦¤é¤¯¡Ê½°Íî¡Ë
++¤·¤å¤¦¤ê¤ç¤¦ #CJ --------½ªÎ»-------
++¤·¤å¤¦¤ê¤ç¤¦ #CJ ¡á¡á¡á¡á¡á¡á½ªÎ»¡á¡á¡á¡á¡á¡á
++¤·¤å¤¦¤ê¤ç¤¦ #T30 ½ªÎ»
++¤·¤å¤¦¤ê¤ç¤¦¤Á¤å¤¦¤Ü¤¦ #T35 ½ªÎ»¿ß˼
++¤·¤å¤· #T35 ¼ñ»Ý
++¤·¤å¤·¤å #JN ¤·¤å¤·¤å
++¤·¤å¤¸¤¤ #T35 ¼ç¼£°å
++¤·¤å¤Ã¤Á¤ç¤¦ #T30 ½ÐÄ¥
++¤·¤å¤Ô¤¤¤ó¤·¤ã #T35 ¥·¥å¥Ô¡¼¥ó¼Ô
++¤·¤ç¡¼¤â¤Ê¡¼ #JN ¥·¥ç¡¼¥â¥Ê¡¼
++¤·¤ç¡¼¤â¤Ê¡¼ #JN ¥·¥ç¡¼¥â¥Ê¡¼
++¤·¤ç¡¼¤æ¤Í¤¯¤¹¤È #KK ¥·¥ç¡¼¥æ¥Í¥¯¥¹¥È
++¤·¤ç¤¦¤«¤ó #T30 ¾¤´­
++¤·¤ç¤¦¤«¤ó #T30 ¾¤´Ô
++¤·¤ç¤¦¤¬¤É¤­¤å¤ó #T35 À¸ÕªDQN
++¤·¤ç¤¦¤°¤ó¤µ¤Þ #T35 ¾­·³ÍÍ
++¤·¤ç¤¦¤¸¤­¤¹¤Þ¤ó¤«¤Ã¤¿ #CJ ÀµÄ¾¡¢¥¹¥Þ¥ó¥«¥Ã¥¿
++¤·¤ç¤¦¤¸¤­¤¹¤Þ¤ó¤«¤Ã¤¿ #CJ ÀµÄ¾¡¢¥¹¥Þ¥ó¥«¥Ã¥¿¡ª
++¤·¤ç¤¦¤Á¤å¤¦ #T35 Àµ¿ß
++¤·¤ç¤¦¤Ü¤¦ #T35 ¾ÃËÉ
++¤·¤ç¤¦¤Ü¤¦¤¤¤¿ #T35 ¾ÃËÉÈÄ
++¤·¤ç¤¦¤æ¤»¤ó¤·¤­¤Ã¤³¤¦¤Þ¤½ #T35 ¾ßÌýÀï»Î¥­¥Ã¥³¡¼¥Þ¥½
++¤·¤ç¤¦¤æ¤»¤ó¤·¤­¤Ã¤³¤¦¤Þ¤ó #T35 ¾ßÌýÀï»Î¥­¥Ã¥³¡¼¥Þ¥½
++¤·¤ç¤¦¤æ¤Ê¤×¤­¤ó #T35 ¾ßÌý¥Ê¥×¥­¥ó
++¤·¤ç¤¦¤æ¤Í¤¯¤¹¤È #T35 ¥·¥ç¡¼¥æ¥Í¥¯¥¹¥È
++¤·¤ç¤¯¤Ë¤ó #T35 ¿¦¿Í
++¤·¤ç¤¯¤Ë¤ó¤µ¤ó #T35 ¿¦¿Í¤µ¤ó
++¤·¤ç¤¯¤Í¡¼¤è #JN ¿¦¥Í¡¼¥è
++¤·¤ç¤¯¤è¤¦¤â¤Ê¡¼ #JN ¿©ÍÑ¥â¥Ê¡¼
++¤·¤ç¤¸¤ç¤­¤é¡¼¤¢¤Ù¤ë #JN ½è½÷¥­¥é¡¼¥¢¥Ù¥ë
++¤·¤ç¤¿ #T35 ¥·¥ç¥¿
++¤·¤ç¤¿¤³¤ó #T35 ¥·¥ç¥¿¥³¥ó
++¤·¤ç¤À¤¤¤µ¤ó¤É¤¤¤Ã¤Á #JN ½éÂ奵¥ó¥É¥¤¥Ã¥Á
++¤·¤ç¤À¤¤¤·¤Í¤Ð¡¼ #JN ½éÂ奷¥Í¥Ð¡¼
++¤·¤ç¤À¤¤¤Þ¤¸¤ì¤¹¤Þ¤ó #JN ½éÂå¥Þ¥¸¥ì¥¹¥Þ¥ó
++¤·¤ç¤À¤¤¤â¤Ê¡¼ #JN ½éÂå¥â¥Ê¡¼
++¤·¤ç¤À¤¤¤â¤Í¡¼ #JN ½éÂå¥â¥Í¡¼
++¤·¤ç¤Ü #JN ¥·¥ç¥Ü
++¤·¤ç¤Ü #JN Ž¼Ž®ŽÎŽÞ
++¤·¤ç¤Ü¡¼¤ó #CJ Ž¼Ž®ŽÎŽÞŽ°ŽÝ
++¤·¤ç¤Ü¡¼¤ó #JN (¡­¡¦¦Ø¡¦`)¥·¥ç¥Ü¡¼¥ó
++¤·¤ç¤Ü¡¼¤ó #JN (¡­Ž¥¦ØŽ¥`)Ž¼Ž®ŽÎŽÞŽ°ŽÝ
++¤·¤ç¤Ü¡¼¤ó #JN ¥·¥ç¥Ü-¥ó
++¤·¤ç¤Ü¡¼¤ó #JN Ž¼Ž®ŽÎŽÞ-ŽÝ
++¤·¤ç¤Ü¤ª¤ó #CJ ¥·¥ç¥Ü¡¼¥ó
++¤·¤ç¤Ü¤ª¤ó #CJ Ž¼Ž®ŽÎŽÞŽ°ŽÝ
++¤·¤ç¤Ü¤®¤³ #JN Ž¼Ž®ŽÎŽÞŽ·ŽÞŽº
++¤·¤ç¤é¤Í¡¼¤è #JN ¥·¥ç¥é¥Í¡¼¥è
++¤·¤è¤ª¤¦¤è #SUC ¥·¥è¡¼¥¦¥è
++¤·¤è¤ª¤¦¤è #SUC Ž¼ŽÖŽ°Ž³ŽÖ
++¤·¤é¤Ê¤¤¤ï #JN ¥·¥é¥Ê¥¤¥ï
++¤·¤é¤Í¡¼¤è #JN ¥·¥é¥Í¡¼¥è
++¤·¤é¤Í¤¨¤è #T35 ¥·¥é¥Í¡¼¥è
++¤·¤é¤Í¤Î¤ª¤í¤Á #JN ¥·¥é¥Í¥Î¥ª¥í¥Á
++¤·¤é¤Ò¡¼¤² #JN ¥·¥é¥Ò¡¼¥²
++¤·¤ê #T35 ¿¬
++¤·¤ê¤Ä #T35 ¿¬ÄÅ
++¤·¤ê¤È¤ê¤¤¤¿ #T35 ¤·¤ê¤È¤êÈÄ
++¤·¤ê¤È¤ê¤¶¤à¤é¤¤ #JN ¤·¤ê¤È¤ê»ø
++¤·¤ë #SUC ¤·¤ë
++¤·¤ë #SUC ½Á
++¤·¤í¤¦¤È¤Ë¤Ï¤ª¤¹¤¹¤á¤Ç¤­¤Ê¤¤ #CJ ÁǿͤˤϤªÁ¦¤á½ÐÍè¤Ê¤¤¡£
++¤·¤í¤Í¤³ #KK ÇòÇ­
++¤·¤í¤Í¤³ #T35 ÇòÇ­
++¤·¤í¤à¤Ä #T35 Çò¥à¥Ä
++¤·¤ó¤«¤á¤â¤Ê¡¼ #JN ¿¿¡¦¥«¥á¥â¥Ê¡¼¡¡
++¤·¤ó¤­¤í¤¯¤¿¤Ã¤»¤¤¤Ë¤ó¤Æ¤¤¤·¤ç¤¦ #JN ¿·µ­Ï¿Ã£À®Ç§Äê¾Ú
++¤·¤ó¤±¤¤¤»¤¤ #T35 ¿À·ÐÀ­
++¤·¤ó¤¶¤ó¤Ï¤«¤«¤º¤Ë¤Ï¤ó¤È¤·¤í¤à¤Ã¤Æ¤í #CJ ¿·»²¤Ï½ñ¤«¤º¤ËȾǯ£Ò£Ï£Í¤Ã¤Æ¤í
++¤·¤ó¤· #T35 ¿Â»Î
++¤·¤ó¤·¤å¤Î1¤µ¤ó #JN ¿·¼ï¤Î£±¤µ¤ó
++¤·¤ó¤¸¤Ä¤«¤¯¤É #T35 ¿¿¼Â³ÑÅÙ
++¤·¤ó¤¸¤ã #T35 ¿®¼Ô
++¤·¤ó¤¸¤å¤¯¤´¤¸¤å¤¦ #T35 ¿·½É50
++¤·¤ó¤¸¤å¤¯¤ß¤Ê¤ß¤°¤Á¤®¤å¤¦¤Ë¤å¤¦¤½¤Õ¤È¤¯¤ê¡¼¤à¤Î¤Í¤¨¤Á¤ã¤ó #JN ¿·½ÉÆî¸ý¡ÖµíÆý¥½¥Õ¥È¥¯¥ê¡¼¥à¡×¤Î¤Í¤¨¤Á¤ã¤ó
++¤·¤ó¤¹¤ì #T35 ¿·¥¹¥ì
++¤·¤ó¤¹¤ì¤ª¤á¤Ç¤È¤¦¤´¤¶¤¤¤Þ¡¼¤¹ #JN ¡À¡Ê¡°¢¦¡°¡Ë¡¿¿·¥¹¥ì¤ª¤á¤Ç¤È¤¦¤´¤¶¤¤¤Þ¡Ý¤¹¢ö
++¤·¤ó¤¹¤ì¤ª¤á¤Ç¤È¤¦¤´¤¶¤¤¤Þ¡¼¤¹ #JN ¿·¥¹¥ì¤ª¤á¤Ç¤È¤¦¤´¤¶¤¤¤Þ¡Ý¤¹
++¤·¤ó¤¹¤ì¤Ã¤É¤¹¤È¤Ã¤Ñ¡¼ #T35 ¿¿¡¦¥¹¥ì¥Ã¥É¥¹¥È¥Ã¥Ñ¡¼
++¤·¤ó¤¹¤ì¤Ã¤É¤¹¤È¤Ã¤Ñ¤¢ #T35 ¿¿¡¦¥¹¥ì¥Ã¥É¥¹¥È¥Ã¥Ñ¡¼
++¤·¤ó¤»¤¤ #PRE ¿¿À­
++¤·¤ó¤»¤¤ #T35 ¿¿À­
++¤·¤ó¤»¤¤¤Á¤å¤¦¤Ü¤¦ #T35 ¿¿À­¿ß˼
++¤·¤ó¤»¤ó #T35 ¿·Á¯
++¤·¤ó¤½¤³¤É¤¦¤Ç¤â¤¤ #KY ¿´Äì¤É¤¦¤Ç¤â¤¤
++¤·¤ó¤½¤³¤É¤¦¤Ç¤â¤¤ #KY ¿´Äì¤É¤¦¤Ç¤âÎÉ
++¤·¤ó¤½¤³¤É¤¦¤Ç¤â¤è #KY ¿´Äì¤É¤¦¤Ç¤âÎÉ
++¤·¤ó¤Á¤ç¤¦¤¹¤ì #KK ¿ÈĹ¥¹¥ì
++¤·¤ó¤Á¤ç¤¦¤¹¤ì #T35 ¿ÈĹ¥¹¥ì
++¤·¤ó¤É #T35 ¿¼ÅÙ
++¤·¤ó¤Ë¤Á¤ª¤¿ #T35 ¿·Æü¥ª¥¿
++¤·¤ó¤Í¡¼¤è¤ª¤Ö¤Í¡¼¤è #JN ¿¿¡¦¥Í¡¼¥è¡¦¥ª¥Ö¡¦¥Í¡¼¥è
++¤¸¡¼ #T35 £Ç
++¤¸¡¼¤¨¤à #T35 £Ç£Í
++¤¸¡¼¤µ¤¯¤È¤¸¤§¡¼¤ó #JN Gºî¤È¥¸¥§¡¼¥ó
++¤¸¡¼¤µ¤¯¤È¤¸¤§¡¼¤ó #JN Gºî¤È¥¸¥§¡¼¥ó¡ÊñÂΤÀ¤È²¿¤À¤«È½¤é¤Ê¤¤¤Î¤Ç£²É¤Ž¾Ž¯ŽÄ¡Ë
++¤¸¡¼¤µ¤¯¤È¤¸¤§¡¼¤ó #JN ¡Ê¡¦¢Ï¡¦¡Ë¡¡¡Ê¡¦¢Ï¡¦¢é¢é
++¤¸¤£ #JN ¤¸¤£
++¤¸¤¤¤³ #T35 ¼«°Ö¸Å
++¤¸¤§¤¤¤¦¤è¤¯ #T35 J±¦Íã
++¤¸¤§¤¤¤Ó¤¤¤Ó¤¤¤¨¤¹ #T35 JBBS
++¤¸¤§¤Î¤µ¤¤¤É¤«¤Ã¤¿¡¼ #JN ¥¸¥§¥Î¥µ¥¤¥É¥«¥Ã¥¿¡¼
++¤¸¤§¤ó¤È¤ë¤â¤Ê #JN ¥¸¥§¥ó¥È¥ë¥â¥Ê
++¤¸¤§¤ó¤È¤ë¤â¤é¤é¡¼¤È¤®¤³ #JN ¥¸¥§¥ó¥È¥ë¥â¥é¥é¡¼¤È¥®¥³
++¤¸¤¨¤¤¤«¤ó¤¨¤é¤¤ #CJ ¥¸¥¨¥¤¥«¥ó¥¨¥é¥¤
++¤¸¤¨¤¤¤«¤ó¤¨¤é¤¤ #CJ Ž¼ŽÞŽ´Ž²Ž¶ŽÝŽ´Ž×Ž²
++¤¸¤ª #KK ¥¸¥ª
++¤¸¤ª #KK ±ö
++¤¸¤ª #T35 ¥¸¥ª
++¤¸¤ª #T35 ±ö
++¤¸¤¯¤¦¤Þ¤ª¤¦ #JN »þ¶õËⲦ
++¤¸¤²¤ó #JN ¼¡¸µ
++¤¸¤´¤¦¤¸¤È¤¯ #JN (¡­¢Ï¡®)Ž¼ŽÞŽºŽÞŽ³Ž¼ŽÞŽÄŽ°Ž¸
++¤¸¤´¤¦¤¸¤È¤¯ #JN ¥¸¥´¥¦¥¸¥È¥¯
++¤¸¤´¤¯¤Î¤´¤¦¤« #JN ÃϹö¤Î¶È²Ð
++¤¸¤µ¤¯¤¸¤¨¡¼¤ó #JN ¥¸¥µ¥¯¥¸¥¨¡¼¥ó
++¤¸¤µ¤¯¤¸¤¨¤ó #JN (Ž¥¢ÏŽ¥)Ž¼ŽÞŽ»Ž¸Ž¼ŽÞŽ´Ž°ŽÝ
++¤¸¤µ¤¯¤¸¤¨¤ó #JN ¡Î¡Ê¡¦¢Ï¡¦¡Ë¡Ï
++¤¸¤µ¤¯¤¸¤¨¤ó #JN ¥¸¥µ¥¯¥¸¥¨¥ó
++¤¸¤µ¤¯¤¸¤¨¤ó #JN ¥¸¥µ¥¯¥¸±ß
++¤¸¤µ¤¯¤¸¤¨¤ó #JN ŽµŽÆŽ°ŽÁŽ¬ŽÝ(*¡¦¢Ï¡¦*)Ž´Ž¯ŽÁŽ°!!
++¤¸¤µ¤¯¤¸¤¨¤ó #T30 QQQQ
++¤¸¤µ¤¯¤¸¤¨¤ó #T30 ¼«ºî¼«±é
++¤¸¤µ¤¯¤¸¤¨¤ó #T35 ¥¸¥µ¥¯¥¸¥¨¥ó
++¤¸¤µ¤¯¤¸¤¨¤ó #T35 ¼«ºî¼«±é
++¤¸¤µ¤¯¤¸¤»¤ó #JN ¡Ê¡¦À顦¡Ë
++¤¸¤µ¤¯¤¸¤»¤ó #JN ¥¸¥µ¥¯¥¸¥»¥ó
++¤¸¤µ¤¯¤¸¤»¤ó #JN ¼Þ»¸¼Þ¾Ý
++¤¸¤µ¤¯¤¸¤»¤ó #JN Ž¼ŽÞŽ»Ž¸Ž¼ŽÞŽ¾ŽÝ
++¤¸¤µ¤Ä¤¸¤¨¤ó #JN ¡Ê-»á-¡Ë
++¤¸¤µ¤Ä¤¸¤¨¤ó #JN ¥¸¥µ¥Ä¥¸¥¨¥ó
++¤¸¤µ¤Ä¤¸¤¨¤ó #JN ¼Þ»Â¼Þ´Ý
++¤¸¤µ¤Ä¤¸¤¨¤ó #JN Ž¼ŽÞŽ»ŽÂŽ¼ŽÞŽ´ŽÝ
++¤¸¤·¤ó¤»¤¤¤È #JN ÃÏ¿ÌÀ¸ÅÌ
++¤¸¤·¤ó¤À #CJ ¼«¿®¤À¡ª¡ª¡ª¡ª
++¤¸¤·¤ó¤À #CJ ÃϿ̤À¡ª¡ª¡ª¡ª
++¤¸¤»¤¤¤Ê¤É¤­¤«¤Ê¤¤¤Ã #CJ ¼«À©¤Ê¤ÉÍø¤«¤Ê¤¤¤Ã
++¤¸¤Á¤¹¤ì #T35 ¼«¼£¥¹¥ì
++¤¸¤Á¤Á¤å¤¦ #T35 ¼«¼£¿ß
++¤¸¤Á¤ó¤µ¤¤ #T35 ÃÏÄú×
++¤¸¤Ã¤­¤ç¤¦¤¹¤ì #T35 ¼Â¶·¥¹¥ì
++¤¸¤Ã¤Ñ¤Ò¤È¤«¤ê¤² #JN ¥¸¥Ã¥Ñ¥Ò¥È¥«¥ê¥²
++¤¸¤Ä¤ï¤ò¤«¤¯¤Ê¤È¤¢¤ì¤Û¤É #CJ ¼ÂÏäò½ñ¤¯¤Ê¤È¤¢¤ì¤Û¤É¡Ä
++¤¸¤É¤¦¤ª¤¦¤À¤½¤¦¤Á #T35 ¼«Æ°²¥ÂÇÁõÃÖ
++¤¸¤Ï¤¢¤É #T35 ¥¸¥Ï¡¼¥É
++¤¸¤Ð¤¯ #T35 ¼«Çú
++¤¸¤Ò¤ã¤¯¤¸¤¨¤ó #JN ¡Ê¡¦É´¡¦¡Ë
++¤¸¤Ò¤ã¤¯¤¸¤¨¤ó #JN ¥¸¥Ò¥ã¥¯¥¸¥¨¥ó
++¤¸¤Ò¤ã¤¯¤¸¤¨¤ó #JN Ž¼ŽÞŽËŽ¬Ž¸Ž¼ŽÞŽ´ŽÝ
++¤¸¤×¤·¡¼ #T35 ¥¸¥×¥·¡¼
++¤¸¤×¤·¤¤ #T35 ¥¸¥×¥·¡¼
++¤¸¤Ø¤¤¤Ý¤ó #KK ¼«ÊĤݤó
++¤¸¤Ø¤¤¤Ý¤ó #T35 ¼«ÊĤݤó
++¤¸¤ß¤ó¤È¤¦¤â¤Ê¡¼ #JN ¼«Ì±ÅÞ¥â¥Ê¡Ý
++¤¸¤ß¤ó¤È¤¦¤â¤Ê¡¼ #JN ¼«Ì±ÅÞ¥â¥Ê¡Ý
++¤¸¤à #JN GM
++¤¸¤á¤ó¤ò¤ª¤è¤°¤®¤³ #JN ÃÏÌ̤ò±Ë¤°¥®¥³
++¤¸¤ã¡¼¤Ë¡¼ #JN ¥¸¥ã¡¼¥Ë¡¼
++¤¸¤ã¤¬¤â¤Ê¡¼ #JN ¤¸¤ã¤¬¥â¥Ê¡¼
++¤¸¤ã¤·¤ó #T35 ¼Ù¿À
++¤¸¤ã¤Ã¤«¤ë #T35 ¥¸¥ã¥Ã¥«¥ë
++¤¸¤ã¤Ã¤­¡¼ #JN ¥¸¥ã¥Ã¥­¡¼
++¤¸¤ã¤Ã¤­¡¼ #T35 ¥¸¥ã¥Ã¥­¡¼
++¤¸¤ã¤Ã¤­¤¤ #T35 ¥¸¥ã¥Ã¥­¡¼
++¤¸¤ã¤Ë¤¤ #T35 ¼Ø·»
++¤¸¤ã¤Ë¤¤ #T35 ¼Ù·»
++¤¸¤ã¤Ó #JN Ž¼ŽÞŽ¬ŽËŽÞ
++¤¸¤ã¤Þ¤µ¤­ #T35 ¼ÙËâºê
++¤¸¤ã¤ß¤í¤¯¤¤ #JN ¥¸¥ã¥ß¥í¥¯¥¤
++¤¸¤ã¤ë #T35 JA¥ÎL
++¤¸¤ã¤ó¤¬¤ê¤¢¤ó¤Ï¤à¤¹¤¿¡¼ #JN ¥¸¥ã¥ó¥¬¥ê¥¢¥ó¥Ï¥à¥¹¥¿¡¼
++¤¸¤ã¤ó¤¯¤¯¤é¤Ã¤«¡¼¤¯¤é¤Ã¤·¤ã¡¼ #JN ¥¸¥ã¥ó¥¯¡¦¥¯¥é¥Ã¥«¡¼¡¦¥¯¥é¥Ã¥·¥ã¡¼
++¤¸¤ã¤ó¤°¤ë¤Ý¤±¤Ã¤È¤Î¤Á¤Á¤Ï¤Õ¤¸¤­¤»¤­ #CJ ¥¸¥ã¥ó¥°¥ë¥Ý¥±¥Ã¥È¤ÎÉã¤Ï¥Õ¥¸¥­¥»¥­
++¤¸¤å¤¦¤·¤ç¤¯ #JN ½»¿¦
++¤¸¤å¤¦¤·¤ç¤¯ #T35 ½»¿¦
++¤¸¤å¤¦¤Ê¤Ê¤¹¤¯¤ê¤×¤È #T35 17¥¹¥¯¥ê¥×¥È
++¤¸¤å¤¦¤Ë¤ó #T35 ½»¿Í
++¤¸¤å¤¦¤Ï¤Á¤¸¤Ë¤¸¤å¤¦¤¸¤â¤ó¤À¤¤ #T35 18»þ¡¦20»þÌäÂê
++¤¸¤å¤¦¤Õ¤¯¤¹¤ì #T35 ½ÅÊ£¥¹¥ì
++¤¸¤å¤¦¤Õ¤¯¤¹¤ì¤Ã¤É #T35 ½ÅÊ£¥¹¥ì¥É
++¤¸¤å¤¦¤Þ¤ó¤¨¤ó #JN ­ª¡¡
++¤¸¤å¤¦¤Þ¤ó¤¨¤ó #JN ½½Ëü±ß
++¤¸¤å¤¦¤ß¤ó #T35 ½»Ì±
++¤¸¤å¤¦¤è¤ó #JN £±£´
++¤¸¤å¤«¤¤ #CN ¼ù³¤
++¤¸¤å¤«¤¤ #T35 ¼ù³¤
++¤¸¤å¤Æ¡¼¤à #JN ¥¸¥å¥Æ¡¼¥à
++¤¸¤å¤ó¤«¤¤ #T30 ½ä²ó
++¤¸¤å¤ó¤­¤ó¤¤¤¿ #CN ½ã¶âÈÄ
++¤¸¤å¤ó¤­¤ó¤¤¤¿ #T35 ½ã¶âÈÄ
++¤¸¤æ¤¦¤ò¤ß¤®¤Æ¤Ë¤¢¤¤¤Ê¤é¤Ò¤À¤ê¤Æ¤Ë #JN ¥¸¥æ¥¦¥ò¥ß¥®¥Æ¥Ë¥¢¥¤¥Ê¥é¥Ò¥À¥ê¥Æ¥Ë
++¤¸¤æ¤¦¤ò¤ß¤®¤Æ¤Ë¤¢¤¤¤Ê¤é¤Ò¤À¤ê¤Æ¤Ë #JN ¼ÞÕ³¦Ð·ÞÃƱ²Å×ËÀÞØÃÆ
++¤¸¤æ¤¦¤ò¤ß¤®¤Æ¤Ë¤¢¤¤¤Ê¤é¤Ò¤À¤ê¤Æ¤Ë #JN Ž¼ŽÞŽÕŽ³Ž¦ŽÐŽ·ŽÞŽÃŽÆŽ±Ž²ŽÅŽ×ŽËŽÀŽÞŽØŽÃŽÆ
++¤¸¤ç¤¤¤Ã¤Æ #KS JOY¤Ã¤Æ
++¤¸¤ç¤¦¤­¤ª¤¦ #JN ¾øµ¤²¦
++¤¸¤ç¤¦¤Á¤å¤¦ #T30 ¾ïÃó
++¤¸¤ç¤¦¤È¤¦¤¸¤ç¤æ¤¦ #T35 ¾åÅù½÷Í¥
++¤¸¤ç¤¦¤È¤Á¤å¤¦ #T35 ¾ùÅÏ¿ß
++¤¸¤ç¤¦¤ì¤ó #T35 ¾ïÏ¢
++¤¸¤ç¤»¤Õ¤È¤¢¤Ö¤É¤¥¤ë #JN ¥¸¥ç¥»¥Õ¤È¥¢¥ô¥É¥¥¥ë
++¤¸¤ç¤Æ¤¤ #T35 ½÷Äë
++¤¸¤ç¤Æ¤¤¤¨¤¹¤«¤ê¡¼¤Ì #JN ½÷Ä륨¥¹¥«¥ê¡¼¥Ì
++¤¸¤ç¤Ë¡¼ #JN ¥¸¥ç¥Ë¡¼
++¤¸¤ç¤ó #JN ¥¸¥ç¥ó
++¤¸¤ç¤ó #T35 ¥¸¥ç¥ó
++¤¸¤ç¤ó¤¸¤ç #JN ¥¸¥ç¥ó¥¸¥ç
++¤¸¤ç¤ó¤Õ¡¼¤ó #JN ¥¸¥ç¥ó¡¦¥Õ¡¼¥ó
++¤¸¤é¤¤ #T35 ÃÏÍë
++¤¸¤é¤¤¤²¤ó¤·¤ç¤ê¤·¤ã #JN ÃÏÍ븶½èÍý¼Ö
++¤¸¤é¤Í¡¼¤è #JN ¥¸¥é¥Í¡¼¥è
++¤¸¤ì¤¹ #T30 ¼«¥ì¥¹
++¤¸¤ó #SUC ¿Ð
++¤¸¤ó¤¸¤ã¡¼ #JN ¥¸¥ó¥¸¥ã¡¼
++¤¸¤ó¤Ë¤¯ #T35 ¿ÍÆù
++¤¸¤ó¤Ë¤¯ #T35 ¿ÍÆù»Ô¾ì
++¤¸¤ó¤Ë¤¯¤¤¤Á¤Ð #T35 ¿ÍÆù
++¤¸¤ó¤Ë¤¯¤¤¤Á¤Ð #T35 ¿ÍÆù»Ô¾ì
++¤¸¤ó¤ß¤ó¤°¤ó¤°¤ó¤«¤ó #JN ¿Í̱·³·³´±
++¤¸¤ó¤á¤ó¤´¤­¤Ö¤ê¤Ã¤Ä #JN ¿ÍÌÌ¥´¥­¥Ö¥ê¥Ã¥Ä
++¤¹¡¼¤Ñ¡¼¤´¤ê¤ª #JN ¥¹¡¼¥Ñ¡¼¥´¥ê¥ª
++¤¹¡¼¤Ñ¡¼¤â¤Ê¤®¤³¤¿¤¤¤»¤ó #JN ¥¹¡¼¥Ñ¡¼¥â¥Ê¥®¥³ÂçÀï
++¤¹¡¼¤Ñ¡¼¤ê¤¢¤ë¤Á¤å¤¦¤Ü¤¦ #T35 ¥¹¡¼¥Ñ¡¼¥ê¥¢¥ë¿ß˼
++¤¹¤¤¤»¤ó¤«¤ó¤¹¤ì #KK ¿åÀö´É¥¹¥ì
++¤¹¤¤¤»¤ó¤«¤ó¤¹¤ì #T35 ¿åÀö´É¥¹¥ì
++¤¹¤¤¤½¤¦ #T35 ¿åÁå
++¤¹¤¤¤¿¤£¤ç¤¥ #JN µÛ¤¤¤¿¤£¤ç¤¥¡¡
++¤¹¤¤¤¿¤¤¤è¤¦ #JN µÛ¤¤¤¿¤£¤ç¤¥¡¡
++¤¹¤¦¤Ñ¤¢¤Î¤¦¡«¤¡ #T35 ¥¹¡¼¥Ñ¡¼¥Î¥ô¥¡
++¤¹¤¦¤Ñ¤¢¤Ï¤«¤¢ #T35 ¥¹¡¼¥Ñ¡¼¥Ï¥«¡¼
++¤¹¤¦¤Ñ¤¢¤ê¤¢¤ë¤Á¤å¤¦¤Ü¤¦ #T35 ¥¹¡¼¥Ñ¡¼¥ê¥¢¥ë¿ß˼
++¤¹¤¦¤â¤¸¤â¤¸¤º¤Ä¤Ä¤¯¤Ã¤Æ¤Õ¤ä¤·¤¿¤¢¤¹¤­¡¼¤¢¡¼¤È #JN ¿ôʸ»ú¤º¤ÄÁý¤ä¤·¤Æºî¤Ã¤¿£Á£Á
++¤¹¤¨¤Ã¤³ #JN Ëö¤Ã»Ò
++¤¹¤¨¤Ã¤³ #T35 Ëö¤Ã»Ò
++¤¹¤« #T35 ¿Ü²Ã
++¤¹¤«¤¤¤é¡¼¤¯¤¼¤ó¤Ö #CJ ¥¹¥«¥¤¥é¡¼¥¯Á´Éô
++¤¹¤«¤é¤¢¤Ï #T35 ¥¹¥«¥é¡¼ÇÈ
++¤¹¤® #SUC ¿ù
++¤¹¤¯¤¦¤§¤¢ #T35 ¢£
++¤¹¤¯¤¦¤§¤¢¤Û¤ó¤·¤ã #JN ¥¹¥¯¥¦¥§¥¢ËܼÒ
++¤¹¤¯¤½¤×¤È #T35 ¥¹¥¯¥½¥×¥È
++¤¹¤¯¤Ä #T35 ¤¹¤¯¤Ä
++¤¹¤¯¤ê¤×¤È #T35 ¥¹¥¯¥ê¥×¥È
++¤¹¤´¤Þ¤¸¤¤ #CJ ¤¹¤´¤Þ¤¸¤¤
++¤¹¤¶¤±¤ë¤Ê #CJ ¤¹¤¶¤±¤ë¤Ê¡ª
++¤¹¤¹¤º #T35 ¥¹¥¹¥º
++¤¹¤º¤­¤à¤Í¤ª¤Ç¤·¤¿ #JN ¡Ê¡¦¢Ï¡¦¡ËÎëÌÚ½¡ÃËŽÃŽÞŽ¼ŽÀ
++¤¹¤º¤­¤à¤Í¤ª¤Ç¤·¤¿ #JN ÎëÌÚ½¡Ã˥ǥ·¥¿
++¤¹¤º¤­¤à¤Í¤ª¤Ç¤·¤¿ #JN ÎëÌÚ½¡ÃËŽÃŽÞŽ¼ŽÀ
++¤¹¤¿¡¼¤Þ¤ó #JN ¥¹¥¿¡¼¥Þ¥ó
++¤¹¤¿¤¸¤ª¤Ë¤Á¤ã¤ó¤Í¤ë¤Ï¤¸¤Þ¤ë¤è #JN ¥¹¥¿¥¸¥ª2ch»Ï¤Þ¤ë¤è¢ö
++¤¹¤Á¤º #JN ÁÇÃÏ¿Þ
++¤¹¤Á¤º #T35 ÁÇÃÏ¿Þ
++¤¹¤Ã¤´¤¯¤«¤ï¤¤¤¤¤â¤Ê¡¼ #JN ¡ù¤¹¤Ã¤´¤¯¡ù¤«¤ï¤¤¤¤(^o^)¥â¥Ê¡¼
++¤¹¤Ã¤É¤ì #JN ¡Ê¡¦¢Ï¡¦¡ËŽ½Ž¯ŽÄŽÞŽÚ!
++¤¹¤Ã¤É¤ì #JN ¥¹¥Ã¥É¥ì
++¤¹¤Ã¤É¤ì #JN Ž½Ž¯ŽÄŽÞŽÚ
++¤¹¤Ã¤É¤ì #T35 ¥¹¥Ã¥É¥ì
++¤¹¤Æ¤­¤¿¤¤¤à #T35 ¥¹¥Æ¥­¥¿¥¤¥à
++¤¹¤Æ¤Ï¤ó #T35 ¼Î¤Æ¥Ï¥ó
++¤¹¤È¡¼¤«¤á¤³ #T35 ¥¹¥È¡¼¥«¥á¥³
++¤¹¤È¤¦¤«¤á¤³ #T35 ¥¹¥È¡¼¥«¥á¥³
++¤¹¤È¤ê¤Ã¤× #T35 Áǥȥê¥Ã¥×
++¤¹¤Ê¤¤¤× #T30 ¥¹¥Ê¥¤¥×
++¤¹¤Ê¤«¤±¤Ð¤Ð¤¢ #JN º½¤«¤±ÇÌ
++¤¹¤Í¤«¤¸¤ê #T35 ¥¹¥Í¤«¤¸¤ê
++¤¹¤Î¡¼ #T35 £Ó£Î£Ï£×
++¤¹¤Î¤¦ #T35 SNOW
++¤¹¤Ñ #KS ¥¹¥Ñ
++¤¹¤Ñ¡¼¤¯¤â¤Ê¡¼ #JN ¥¹¥Ñ¡¼¥¯¥â¥Ê¡¼
++¤¹¤Ñ¤·¡¼¤Ü #T35 ¡Ê¡¦¢Ï¡¦¡Ë¥¹¥Ñ¥·¡¼¥Ü!!¡é
++¤¹¤Ñ¤·¡¼¤Ü #T35 ¡Ê¡¦¢Ï¡¦¡ËŽ½ŽÊŽßŽ¼Ž°ŽÎŽÞ!!¡é
++¤¹¤Ñ¤·¡¼¤Ü #T35 ¥¹¥Ñ¥·¡¼¥Ü
++¤¹¤Ñ¤·¡¼¤Ü #T35 Ž½ŽÊŽßŽ¼Ž°ŽÎŽÞ
++¤¹¤Ñ¤·¡¼¤Ü¤³¤¦¤« #T35 ¥¹¥Ñ¥·¡¼¥Ü¸ú²Ì
++¤¹¤Ñ¤·¤¤¤Ü #T35 ¡Ê¡¦¢Ï¡¦¡ËŽ½ŽÊŽßŽ¼Ž°ŽÎŽÞ!!¡é
++¤¹¤Ñ¤·¤¤¤Ü #T35 Ž½ŽÊŽßŽ¼Ž°ŽÎŽÞ
++¤¹¤Ñ¤·¤¤¤Ü¤³¤¦¤« #T35 ¥¹¥Ñ¥·¡¼¥Ü¸ú²Ì
++¤¹¤Ñ¤Á¤å¤¦ #T35 ¥¹¥Ñ¿ß
++¤¹¤Ñ¤à #T30 ¥¹¥Ñ¥à
++¤¹¤Ñ¤à #T35 spam
++¤¹¤Ñ¤à #T35 ¥¹¥Ñ¥à
++¤¹¤Ñ¤ó #JN SPAN
++¤¹¤Ô¤Þ¤¹ #T35 ¥¹¥Ô¥Þ¥¹
++¤¹¤Õ¤£¤ó¤¯¤¹ #JN ¥¹¥Õ¥£¥ó¥¯¥¹¡¡
++¤¹¤Ö¤¿¤ó #T35 ¥¹¥Ö¥¿¥ó
++¤¹¤Ú¤é¤ó¤«¡¼ #KK ¥¹¥Ú¥é¥ó¥«¡¼
++¤¹¤Ú¤é¤ó¤«¡¼ #T35 ¥¹¥Ú¥é¥ó¥«¡¼
++¤¹¤Ú¤é¤ó¤«¤¢ #T35 ¥¹¥Ú¥é¥ó¥«¡¼
++¤¹¤Þ #JN ¿ÜËá
++¤¹¤Þ #T35 ¿ÜËá
++¤¹¤Þ¤½ #CJ ¥¹¥Þ¥½
++¤¹¤à¤é¤Ã¤È #T35 SMART
++¤¹¤à¤é¤Ã¤È #T35 £Ó£Í£Ò£Á£Ô
++¤¹¤è #JN ¥¹¥è
++¤¹¤é¤¤¤à #JN ¥¹¥é¥¤¥à
++¤¹¤ë¤Ã¤È¤Á¤ã¤ó #JN ¥¹¥ë¥Ã¥È¤Á¤ã¤ó
++¤¹¤ì #T35 ¥¹¥ì
++¤¹¤ì¤´¤Ð¤¯ #T30 ¥¹¥ì¸íÇú
++¤¹¤ì¤µ¤¯¤¸¤ç #T30 ¥¹¥ìºï½ü
++¤¹¤ì¤¹¤È #T35 ¥¹¥ì¥¹¥È
++¤¹¤ì¤¿¤¤ #T35 ¥¹¥ì¥¿¥¤
++¤¹¤ì¤Á¤¬¤¤ #T35 ¥¹¥ì°ã¤¤
++¤¹¤ì¤Ã¤É #T35 ¤¹¤ì¤Ã¤É
++¤¹¤ì¤Ã¤É #T35 ¥¹¥ì¥Ã¥É
++¤¹¤ì¤Ã¤É¤¢¤Ã¤·¤å¤¯ #T30 ¥¹¥ì¥Ã¥É°µ½Ì
++¤¹¤ì¤Ã¤É¤¢¤Ã¤·¤å¤¯ #T35 ¥¹¥ì¥Ã¥É°µ½Ì
++¤¹¤ì¤Ã¤É¤¤¤Á¤é¤ó #T35 ¥¹¥ì¥Ã¥É°ìÍ÷
++¤¹¤ì¤Ã¤É¤¹¤È¤Ã¤Ñ¡¼ #T35 ¥¹¥ì¥Ã¥É¥¹¥È¥Ã¥Ñ¡¼
++¤¹¤ì¤Ã¤É¤¹¤È¤Ã¤Ñ¡¼¤¹¤Æ¡¼¤·¤ç¤ó #JN ¥¹¥ì¥Ã¥É¥¹¥È¥Ã¥Ñ¡¼¥¹¥Æ¡¼¥·¥ç¥ó
++¤¹¤ì¤Ã¤É¤¹¤È¤Ã¤Ñ¤¢ #T35 ¥¹¥ì¥Ã¥É¥¹¥È¥Ã¥Ñ¡¼
++¤¹¤ì¤Ã¤É¤Ò¤ç¤¦¤«¤Ë¤ó¤Æ¤¤¤¤¤¤¤ó¤«¤¤ #JN ¥¹¥ì¥Ã¥Éɾ²ÁǧÄê°Ñ°÷²ñ
++¤¹¤ì¤Ã¤É¤Õ¤í¡¼¤È¤Û¤¦¤·¤­ #T35 ¥¹¥ì¥Ã¥É¥Õ¥í¡¼¥ÈÊý¼°
++¤¹¤ì¤Ã¤É¤Õ¤í¤¦¤È¤Û¤¦¤·¤­ #T35 ¥¹¥ì¥Ã¥É¥Õ¥í¡¼¥ÈÊý¼°
++¤¹¤ì¤Ã¤É¤ì¤¤¤× #T30 ¥¹¥ì¥Ã¥É¥ì¥¤¥×
++¤¹¤ì¤Ë¤ó¤Æ¤¤¤·¤ç¤¦ #JN ¥¹¥ìǧÄê¾Ú
++¤¹¤ì¤Ò¤ç¤¦¤«¤¸¤ç¤¦ #JN ¥¹¥ìɾ²Á¾î
++¤¹¤ì¤ò¤è¤´ #S5 ¥¹¥ì¤ò±ø
++¤¹¤ì¤ò¤è¤´¤¹ #CJ ¥¹¥ì¤ò±ø¤¹
++¤¹¤í¤Ã¤È¤ª¤Ü¤¨¤¿¤Æ¤Ç #CJ ¥¹¥í¥Ã¥È³Ð¤¨¤¿¤Æ¤Ç
++¤¹¤ó¤¹¤ó¤¹¤¦¤ó #CJ (¡¦¢Ï¡¦)Ž½ŽÝŽ½ŽÝŽ½Ž°ŽÝ¢ö
++¤¹¤ó¤¹¤ó¤¹¤¦¤ó #CJ ¥¹¥ó¥¹¥ó¥¹¡¼¥ó¢ö
++¤¹¤ó¤Þ¤½ #CJ ¤¹¤ó¤Þ¤½
++¤º¤´¤ª¤Þ¤° #JN ¥º¡¦¥´¥ª¥Þ¡¦¥°
++¤º¤µ¤®¤³ #JN ¥º¥¶¥®¥³
++¤º¤¶¤Ê¤Þ¤Ï¤²¤µ¤Þ #JN ¡Ê¥º¥¶¡Ë¥Ê¥Þ¥Ï¥²ÍÍ
++¤º¤é¤é¡¼ #JN ¥º¥é¥é¡¼
++¤º¤ê¤»¤½ #T35 ¥º¥ê¥»¥ó
++¤º¤ë¤¤¤ª¤ó¤Ê #KK ¤º¤ë¤¤½÷
++¤º¤ë¤¤¤ª¤ó¤Ê #T35 ¤º¤ë¤¤½÷
++¤º¤ì #T35 ¥º¥ì
++¤º¤ì¤¬¤¹¤¯¤Ê¤¤¤Î¤Ç¤·¤å¤¦¤»¤¤¤·¤Æ¤ª¤­¤Þ¤·¤¿ #JN ¥º¥ì¤¬¾®¤µ¤¤¤Î¤Ç½¤Àµ¤·¤Æ¤ª¤­¤Þ¤·¤¿¡£
++¤º¤ì¤¬¤¹¤¯¤Ê¤¤¤Î¤Ç¤·¤å¤¦¤»¤¤¤·¤Þ¤·¤¿ #JN ¥º¥ì¤¬¾¯¤Ê¤¤¤Î¤Ç½¤Àµ¤·¤Þ¤·¤¿
++¤º¤ì¤¬¤¹¤¯¤Ê¤¤¤Î¤Ç¤·¤å¤¦¤»¤¤¤·¤Þ¤¹ #JN ¥º¥ì¤¬¾¯¤Ê¤¤¤Î¤Ç½¤Àµ¤·¤Þ¤¹
++¤»¡¼¤é¤à¤ª¤¦¤³¤¯ #JN ¤»¡¼¤é¤à¤ª¤¦¤³¤¯
++¤»¤¤¤«¤¤ #T35 À­²ô
++¤»¤¤¤®¤³ #JN ¥»¥¤¥®¥³
++¤»¤¤¤®¤³ #JN ¥»¥¤¥®¥³
++¤»¤¤¤´ #JNM À¬¸ã
++¤»¤¤¤´¤¦ #JN À­¹ë
++¤»¤¤¤´¤¦ #T35 À­¹ë
++¤»¤¤¤·¤å¤ó #JN ÀĽÕ
++¤»¤¤¤·¤ó¤Æ¤­¤Ö¤é¤¯¤é #T35 Àº¿ÀŪ¥Ö¥é¥¯¥é
++¤»¤¤¤»¤ó¤·¤ç¤¯¤Ò¤ó¤â¤é¤Þ¤µ #JN À¸Á¯¿©ÉÊ¥â¥é¥Þ¥µ
++¤»¤¤¤½¤¦¤Á¤å¤¦ #T35 À¶ÁÝ¿ß
++¤»¤¤¤Á #T35 À»ÃÏ
++¤»¤¤¤È #JN À¸ÅÌ
++¤»¤¤¤È #JN À¸ÅÌ¡©
++¤»¤¤¤È2 #JN À¸ÅÌ£Ö£å£ò£²
++¤»¤¤¤È3 #JN À¸ÅÌ£Ö£å£ò£³
++¤»¤¤¤È¤¤¤é¤Í¡¼¤è #JN À¸ÅÌ¥¤¥é¥Í¡¼¥è
++¤»¤¤¤È¤¦¤· #JN À¸Å̵í
++¤»¤¤¤È¤«¤ª¤À¤± #JN (¡¨¡­§¥¡®)¡¿ÀèÀ¸¡ª¡¦¡¦¡¦¡¦
++¤»¤¤¤È¤«¤ª¤À¤± #JN À¸ÅÌ´é¤À¤±
++¤»¤¤¤È¤µ¤¤¤·¤ç¤¦ #JN À¸Å̺Ǿ®
++¤»¤¤¤È¤¸¤ª¤ó¤° #JN À¸ÅÌ¥¸¥ª¥ó¥°
++¤»¤¤¤È¤¸¤å¤¦¤í¤¯¤¯¤ó #JN À¸ÅÌ£±£¶·¯
++¤»¤¤¤È¤¹¤Õ¤£¤ó¤¯¤¹ #JN À¸ÅÌ¥¹¥Õ¥£¥ó¥¯¥¹
++¤»¤¤¤È¤º¤´¤ª¤Þ¤° #JN À¸ÅÌ¥º¡¦¥´¥ª¥Þ¡¦¥°
++¤»¤¤¤È¤À¤¤¤¤¤Á¤Õ¤Ã¤µ¡¼¤ë #JN À¸ÅÌÂè°ì¥Õ¥Ã¥µ¡¼¥ë
++¤»¤¤¤È¤À¤¤¤¤¤Á¤Õ¤Ã¤µ¡¼¤ë¤Ð¡¼¤¸¤ç¤ó2 #JN À¸ÅÌÂè°ì¥Õ¥Ã¥µ¡¼¥ëver£²
++¤»¤¤¤È¤À¤¤¤¤¤Á¤Õ¤Ã¤µ¡¼¤ë¤Ð¡¼¤¸¤ç¤ó3 #JN À¸ÅÌÂè°ì¥Õ¥Ã¥µ¡¼¥ëver£³
++¤»¤¤¤È¤Î¤Î #JN À¸Å̤ΤÎ
++¤»¤¤¤È¤Ï¤é¤Þ¤­¤Ð¡¼¤¸¤ç¤ó1 #JN À¸ÅÌÊ¢´¬¤­£Ö£å£ò£±
++¤»¤¤¤È¤Ï¤é¤Þ¤­¤Ð¡¼¤¸¤ç¤ó2 #JN À¸ÅÌÊ¢´¬¤­£Ö£å£ò£²
++¤»¤¤¤È¤Õ¡¼¤ó #JN À¸Å̤ա¼¤ó
++¤»¤¤¤È¤Õ¤µ¤Ö¤Ä #JN À¸Å̤դµ¤Ö¤Ä
++¤»¤¤¤È¤Ö¤Ä¤Ö¤Ä #JN À¸Å̤֤Ĥ֤Ä
++¤»¤¤¤È¤Ö¤Ä¤Ö¤Ä¤¸¤å¤¦¤í¤¯¤¯¤ó #JN À¸Å̤֤Ĥ֤ģ±£¶·¯
++¤»¤¤¤È¤Ö¤Ä¤Ö¤Ä¤É¤¦¤è #JN À¸Å̤֤Ĥ֤Ĥɤ¦¤è
++¤»¤¤¤È¤Ö¤Ä¤Ö¤Ä¤É¤¦¤è¤Ð¡¼¤¸¤ç¤ó2 #JN À¸Å̤֤Ĥ֤Ĥɤ¦¤è£Ö£å£ò£²
++¤»¤¤¤È¤à¤Ã¤¯ #JN À¸ÅÌ¥à¥Ã¥¯
++¤»¤¤¤È¤á¤¿¤é¡¼¤Ð¡¼¤¸¤ç¤ó1 #JN À¸Ḁ̊᥿¥é¡¼ver£±
++¤»¤¤¤È¤á¤¿¤é¡¼¤Ð¡¼¤¸¤ç¤ó2 #JN À¸Ḁ̊᥿¥é¡¼ver£²
++¤»¤¤¤È¤é¤Ç¤£¤ó #JN À¸ÅÌ¥é¥Ç¥£¥ó
++¤»¤¤¤È¤ì¤«¤à¤Á¤ã¤Ã¤«¤ß¤½¤Á¤ó¤Ï¤¦¤¹ #JN À¸Ḁ̊졦¤«¤à¤Á¤ã¤Ã¤«¤ß¤½ÄÁ¥Ï¥¦¥¹
++¤»¤¤¤È¤ó¡¼ #JN À¸Å̤ó¡Á¡ª¡©
++¤»¤¤¤ê¤å¤¦ #T35 À¶Âí
++¤»¤«¤¤¤»¤Õ¤¯¤ò¤¿¤¯¤é¤à¤â¤é¤é¡¼ #JN À¤³¦¡ÖÀ©¡×Éþ¤ò´ë¤à¥â¥é¥é¡¼
++¤»¤¬¤·¤ó¤¸¤ã #T35 ¥»¥¬¿®¼Ô
++¤»¤¬¤Ó¡¼ #T35 ¥»¥¬B
++¤»¤¬¤ï #T35 ¥»Èé
++¤»¤­¤¹¤¤ #KK ÀÑ¿å
++¤»¤­¤¹¤¤ #T35 ÀÑ¿å
++¤»¤­¤º¤¤¤Ï¤ó¤·¤ã¤ì¤¹ #T30 ÀÔ¿ñÈ¿¼Í¥ì¥¹
++¤»¤­¤º¤¤¤Ï¤ó¤·¤ã¤ì¤¹ #T35 ÀÔ¿ñÈ¿¼Í¥ì¥¹
++¤»¤¯¡¼¤¹ #CN ¥»¥¯¡¼¥¹
++¤»¤¯¡¼¤¹ #T30 ¥»¥¯¡¼¥¹
++¤»¤¯¡¼¤¹ #T35 ¥»¥¯¡¼¥¹
++¤»¤ß¤µ¤ó¤³¤ª¤¹ #T35 ¥»¥ß¤µ¤ó¥³¡¼¥¹
++¤»¤ë¤²¤¨¤à #T35 ¥»¥ë¥²¡¼¥à
++¤»¤ó #T35 1000
++¤»¤ó¤¤¤¯¤¿¤Ó¤Ë¤¤¤¿¤ò¤Æ¤ó¤Æ¤ó¤È¤¹¤ë¤¹¤ì¤Ã¤É #T35 1000¹Ô¤¯¤¿¤Ó¤ËÈĤòž¡¹¤È¤¹¤ë¥¹¥ì¥Ã¥É
++¤»¤ó¤¤¤Á #T35 1001
++¤»¤ó¤³¤¦¤·¤ã #JN Àè¸ø¼Ô
++¤»¤ó¤³¤¦¤·¤ã #JN Àè¹Ô¼Ô
++¤»¤ó¤³¤¦¤·¤ã #T35 Àè¹Ô¼Ô
++¤»¤ó¤·¤å¤¦¤¬¤Ã¤³¤¦ #T35 À콤³Ø¹»
++¤»¤ó¤¹¤¤¤«¤ó¤¹¤ì #T35 Àø¿å´Ï¥¹¥ì
++¤»¤ó¤»¤¤ #JN ÀèÀ¸
++¤»¤ó¤»¤¤¤¿¤¹¤±¤Æ #JN ÀèÀ¸¡ª½õ¤±¤Æ¡ª
++¤»¤ó¤»¤¤¤Õ¤µ¤Ö¤Ä #JN ÀèÀ¸¤Õ¤µ¤Ö¤Ä
++¤»¤ó¤»¤¤¤Ö¤Ä¤Ö¤Ä #JN ÀèÀ¸¤Ö¤Ä¤Ö¤Ä
++¤»¤ó¤½¤¦ #T35 1000Áè
++¤»¤ó¤Î¤¦¤·¤å¤¦¤«¤¤ #T35 ÀöǾ½¸²ñ
++¤»¤ó¤â¤ó¤¤¤¿ #T35 ÀìÌçÈÄ
++¤¼¤Ã¤È¤­ #JN £Ú´ú
++¤¼¤Ã¤È¤·¤­ #T35 £Ú¼°
++¤¼¤Ã¤È¤¿¤± #T35 £ÚÉð
++¤¼¤Ã¤È¤Á¤ã¤ó¤Í¤ë¤¦¤ó¤¨¤¤¤¸¤ó #JN Zch±¿±Ä¿Ø
++¤¼¤Õ¤¡¡¼¤¢¤ó¤Á¤ã¤ó #JN ¥¼¥Õ¥¡¡¼¤¢¤ó¤Á¤ã¤ó
++¤¼¤í #T35 0
++¤¼¤í¤ï¤ó #T35 Îí°í
++¤¼¤ó¤Ä¤¦ #T30 Á´ÄÌ
++¤¼¤ó¤Ä¤¦ #T35 Á´ÄÌ
++¤¼¤ó¤é #T35 Á´Íç
++¤¼¤ó¤é¤¿¤¤ #T35 Á´ÍçÂâ
++¤½¡¼¤¹ #T35 ¥½¡¼¥¹
++¤½¡¼¤¹¤Ï #CJ ¥½¡¼¥¹¤Ï¡©
++¤½¡¼¤Ç¤â¤Ê¤¤¤è #JN ¤½¡¼¤Ç¤â¤Ê¤¤¤è
++¤½¡¼¤Ê¤Î #JN ¥½¡¼¥Ê¥Î
++¤½¤¤¤¿ #CN ¤½ÈÄ
++¤½¤¤¤¿ #T35 ¤½ÈÄ
++¤½¤¦¤« #T35 Áز½
++¤½¤¦¤¯¤Ä #T35 Áã·¢
++¤½¤¦¤±¤¤ #KK Áá·Ä
++¤½¤¦¤±¤¤ #T35 Áá·Ä
++¤½¤¦¤±¤¤¤¸¤ç¤¦¤Á #T35 Áá·Ä¾åÃÒ
++¤½¤¦¤³ #T35 ÁÒ¸Ë
++¤½¤¦¤³¤¤¤­ #CJ ÁÒ¸ËÀ¤­
++¤½¤¦¤³¤¤¤­ #T35 ÁҸ˹Ԥ­
++¤½¤¦¤³¤¦ #JN Á⹿
++¤½¤¦¤³¤Ð¤ó #T35 ÁÒ¸ËÈÖ
++¤½¤¦¤´¤¦¤¹¤ì¤Ã¤É #T35 Áí¹ç¥¹¥ì¥Ã¥É
++¤½¤¦¤µ¤¤ #T35 ÁíºÛ
++¤½¤¦¤·¤ç¤¯ #T30 Áõ¾þ
++¤½¤¦¤¸¤ó #JN Áâ¿Î
++¤½¤¦¤¹ #T35 ¥½¡¼¥¹
++¤½¤¦¤Á¤ç¤¦¤ì¤¹ #T30 ÁáÄ«¥ì¥¹
++¤½¤¦¤Ç¤â¤Ê¤¤¤è #CJ ¤½¤¦¤Ç¤â¤Ê¤¤¤è
++¤½¤¦¤Ç¤â¤Ê¤¤¤è #JN ¤½¤¦¤Ç¤â¤Ê¤¤¤è
++¤½¤¦¤È¤¦ #T35 ÁíÅý
++¤½¤¦¤Ï¤¤¤«¤ó¤¶¤­ #CJ ¤½¤¦¤Ï¤¤¿Àºê
++¤½¤¦¤ê¤½¤¦¤ê¤ã¤¯ #T35 ÁÏÍøÁÏά
++¤½¤«¤¤ #T30 Á³«
++¤½¤¯¤· #T35 ¨»à
++¤½¤¯¤·¤¹¤ì #T35 ¨»à¥¹¥ì
++¤½¤¯¤·¤Ï¤ó¤Æ¤¤ #T35 ¨»àȽÄê
++¤½¤¯¤Û¤¦ #CJ ®Êó¡ª
++¤½¤¯¤ì¤¹ #T30 ¨¥ì¥¹
++¤½¤¯¤ì¤¹ #T35 ¨¥ì¥¹
++¤½¤Ë¡¼¤¿¤¤¤Þ¡¼ #T35 ¥½¥Ë¡¼¥¿¥¤¥Þ¡¼
++¤½¤Ë¤¤¤¿¤¤¤Þ¤¢ #T35 ¥½¥Ë¡¼¥¿¥¤¥Þ¡¼
++¤½¤Ì¤­¤å¤¦¤Ó¤ó #JN ¥¾¥ÌµÞÊØ
++¤½¤Î #JN ¤½¤Î
++¤½¤Î¤³ #JN ±ñ»Ò
++¤½¤Î¤Ä¤¯¤«¤¤¤·¤ã #T35 ¡Ö¤½¡×¤Î¤Ä¤¯²ñ¼Ò
++¤½¤Ð¤Ð¤Ð¡¼¤ó #JN ¥½¥Ð¥Ð¥Ð-¥ó!!!
++¤½¤Ð¤Ð¤Ð¡¼¤ó #JN Ž¿ŽÊŽÞŽÊŽÞŽÊŽÞ-ŽÝ!!!
++¤½¤Ð¤Ð¤Ð¡¼¤ó #JN Ž¿ŽÊŽÞŽÊŽÞŽÊŽÞŽ°ŽÝ!!!!
++¤½¤Ó¤¨¤È #JN ¥½¥Ó¥¨¥È
++¤½¤Õ¤Þ¤Ã¤× #JN ¥½¥Õ¥Þ¥Ã¥×¡¡
++¤½¤Ü¤¯¤Ê¤®¤â¡¼¤ó #CJ ÁÇËѤʤ®¤â¡¼¤ó
++¤½¤Þ¤ê¤ä¤¬¤¤¤¹¤é¤à¤Ë¤½¤Þ¤ê¤ä #CJ ¥½¥Þ¥ê¥ä¤¬¥¤¥¹¥é¥à¤Ë¤½¤Þ¤ê¤ä
++¤½¤é¤¤¤à #JN ¥½¥é¥¤¥à
++¤½¤é¤Ê¤¤¤ï #JN ¥½¥é¥Ê¥¤¥ï
++¤½¤é¤Í¡¼¤Ç¤è #JN ¥½¥é¥Í¡¼¥Ç¥è
++¤½¤é¤Í¡¼¤è #JN ¥½¥é¥Í¡¼¥è
++¤½¤é¤Í¡¼¤è¤«¤ó¤¤¤Ð¤ó #JN ¥½¥é¥Í¡¼¥è´Ê°×ÈÇ
++¤½¤é¤ß¤¿¤³¤È¤« #JN ¤½¤é¸«¤¿¤³¤È¤«
++¤½¤ê¤Ã¤É¤â¤Ê¡¼¤¯ #JN ¥½¥ê¥Ã¥É¡¦¥â¥Ê¡¼¥¯
++¤½¤ì¤¬¤Ê¤Ë¤« #JN ¥½¥ì¥¬¥Ê¡á¥Ë¥«
++¤½¤ó #JNS ¹
++¤½¤ó¤´¤¯¤¦ #T35 ¹¸ç¶õ
++¤½¤ó¤·¤Î¤Ï¤¿¤¸¤ë¤· #JN ¹»Ò¤Î´ú°õ
++¤½¤ó¤Ê¤Î¤·¤Ã¤Á¤ç¤ì¤® #JN ¤½¤ó¤Ê¤ÎÃΤåÁ¥ç¥ì¥®
++¤½¤ó¤Ê¤Ð¤Ê¤Ê¤®¤³ #JN ¤½¤ó¤Ê¥Ð¥Ê¥Ê¥®¥³
++¤½¤ó¤Þ¤µ¤è¤· #JN ¹ÀµµÁ
++¤¾¤¤¤É¤¤¤¿ #CN ¥¾¥¤¥ÉÈÄ
++¤¾¤¤¤É¤¤¤¿ #T35 ¥¾¥¤¥ÉÈÄ
++¤¾¤¹ #CJ ¥¾¥¹
++¤¾¤Ë¤Ã¤¯ #JN ¤¾¤Ë¤Ã¤¯
++¤¾¤Ë¤Ã¤¯¤À¤ó¤·¤ã¤¯ #JN ¤¾¤Ë¤Ã¤¯Ã˼ß
++¤¾¤Ë¤Ã¤¯¤À¤ó¤·¤ã¤¯¤¢¤ë¤Õ¤¡ #JN ¤¾¤Ë¤Ã¤¯Ã˼ߦÁ
++¤¾¤Ë¤Ã¤¯¤À¤ó¤·¤ã¤¯¤¦¡«¤£¤¯¤È¤ê¡¼ #JN ¤¾¤Ë¤Ã¤¯Ã˼ßV
++¤¾¤Ì #JN ¤¾¤Ì
++¤¾¤Ì #JN ¥¾¥Ì
++¤¾¤Ì #T35 ¤¾¤Ì
++¤¾¤Ì¡¼¤Ô¡¼ #JN ¥¾¥Ì¡¼¥Ô¡¼
++¤¾¤Ì¤¶¤á¤¤¤¿¤ó¤Æ¤¤ #JN ¤¾¤Ì¡¦¥¶¡¦ÌÂõÄå
++¤¾¤Ì¤·¤ã¤Á¤ç¤¦ #JN ¤¾¤Ì¼ÒĹ
++¤¾¤Ì¤Ã¤Æ¤ë #CJ ¤¾¤Ì¤Ã¤Æ¤ë
++¤¾¤Ì¤Ö¤· #T35 ¤¾¤ÌÉú
++¤¾¤Ì¤Þ¤·¤ó #JN ¤¾¤Ì¥Þ¥·¥ó
++¤¾¤Í #T35 ¤¾¤Í
++¤¾¤à #JN ¥¾¥à
++¤¾¤í¤Ð¤ó #T35 ¥¾¥í¥Ð¥ó
++¤¿ #K5 ¿æ
++¤¿ #KJ ¿æ
++¤¿¡¼¤ó #JN ŽÀŽ°ŽÝ
++¤¿¤¤ #JN Âä
++¤¿¤¤ #T35 Âä
++¤¿¤¤¡¼¤Û #CJ ¥¿¥¤¨¬¨¬¨¬¨¬||¦µ|(|¡­|§¥|`|)|¦µ||¨¬¨¬¨¬¨¬¥Û
++¤¿¤¤¡¼¤Û #CJ ¥¿¥¤¨¬¨¬¨¬¨¬¡Ã¡Ã¦µ¡Ã¡Ê¡Ã¡¬¡Ã¢Ï¡Ã¡¬¡Ã¡Ë¡Ã¦µ¡Ã¡Ã¨¬¨¬¨¬¨¬¥Û¡ª¡ª¡ª
++¤¿¤¤¡¼¤Û #CJ ŽÀŽ²¨¬¨¬¨¬¨¬||¦µ|(|Žß|¢Ï|Žß|)|¦µ||¨¬¨¬¨¬¨¬ŽÎ!!!
++¤¿¤¤¤­ #T35 Â絤
++¤¿¤¤¤·¤«¤ó #T35 Âç»È´Û
++¤¿¤¤¤·¤ç¤¦¤·¤ç¤¦¤ï¤®¤³ #JN ÂçÀµ¾¼Ïµ¼¸Å
++¤¿¤¤¤Á¤ç¤¦ #CJ ÂâĹ¡ª
++¤¿¤¤¤È¤ë¤Ð¤Ê¡¼ #T35 ¥¿¥¤¥È¥ë¥Ð¥Ê¡¼
++¤¿¤¤¤à #T35 TIME
++¤¿¤¤¤à¤Ñ¤é¤É¤Ã¤¯¤¹ #T35 ¥¿¥¤¥à¥Ñ¥é¥É¥Ã¥¯¥¹
++¤¿¤¤¤ï¤ó #T35 ¥¿¥¤¸¤
++¤¿¤«¤¬¤Ý¤ó¤µ¤ì¤É¤Ý¤ó #CJ ¤¿¤«¤¬¥Ý¥ó¤µ¤ì¤É¥Ý¥ó
++¤¿¤«¤µ¤­¤ß¤ï #JN ¹âºêÈþÏÂ
++¤¿¤«¤µ¤ó #JNM ¥¿¥«¤µ¤ó
++¤¿¤«¤µ¤ó #T35 ¥¿¥«¤µ¤ó
++¤¿¤«¤·¤¯¤ó¤¸¤±¤ó #KK ¤¿¤«¤··¯»ö·ï
++¤¿¤«¤·¤¯¤ó¤¸¤±¤ó #T35 ¤¿¤«¤··¯»ö·ï
++¤¿¤«¤¿¤·¤ã¤Á¤ç¤¦ #JNS ¤¿¤«¤¿¼ÒĹ
++¤¿¤«¤¿¤·¤ã¤Á¤ç¤¦ #JNSUC ¤¿¤«¤¿¼ÒĹ
++¤¿¤«¤Ï¤·¤è¤· #T35 ¹â¶¶Í³
++¤¿¤«¤é¤®¤³ #JN ¥¿¥«¥é¥®¥³
++¤¿¤¯¤¢¤ó¤â¤Ê¡¼ #JN ¤¿¤¯¤¢¤ó¥â¥Ê¡¼
++¤¿¤¯¤­¤å¤¦ #T35 Âðµå
++¤¿¤°¤Á¤Ë¤Ã¤­ #T35 ÅĸýÆüµ­
++¤¿¤±¤·¤¯¤ó #JNM ¤¿¤±¤··¯
++¤¿¤±¤À¤­¤¾¤Ì #JN ÉðÅĵ³¤¾¤Ì
++¤¿¤±¤À¤­¤Ð #JN ÉðÅĵ³ÇÏ
++¤¿¤±¤À¤­¤Ð¤°¤ó¤À¤ó #T35 ÉðÅĵ³ÇÏ·³ÃÄ
++¤¿¤±¤Õ¤¸¤Î¤·¡¼¤¨¤à #JN ÉðÉٻΤΣãÍ
++¤¿¤³¤µ¤Ð #T35 tako»ª
++¤¿¤³¤Í¤³ #JN ¥¿¥³¤Í¤³
++¤¿¤³¤Í¤³ #JN ¥¿¥³¤Í¤³
++¤¿¤·¤í #JNS ÅÄÂå
++¤¿¤·¤í #T35 ÅÄÂå
++¤¿¤·¤í¤Ã¤¯ #KK ¥¿¥·¥í¥Ã¥¯
++¤¿¤·¤í¤Û¤¦ #T35 ÅÄÂåˤ
++¤¿¤·¤í¤Þ¤µ¤· #JN ÅÄÂå¤Þ¤µ¤·
++¤¿¤·¤í¤Þ¤Ä¤ê #T35 ÅÄÂåº×¤ê
++¤¿¤¸¤å¤¦ #T30 ¿½Å
++¤¿¤¸¤å¤¦¤È¤¦¤³¤¦ #T30 ¿½ÅÅê¹Æ
++¤¿¤¹¤£¤í¤¹ #T35 ¥¿¥¹¥£¥í¥¹
++¤¿¤½¤¬¤ì #KK ïÈà
++¤¿¤½¤¬¤ì #T35 ïÈà
++¤¿¤½¤½¤­¡¼¤½ #CJ ¥¿¥½¥½¥­¡¼¥½
++¤¿¤½¤½¤­¡¼¤½ #CJ ŽÀŽ¿Ž¿Ž·Ž°Ž¿
++¤¿¤½¤½¤­¡¼¤½ #JN (Žß¢ÏŽß)ŽÀŽ¿Ž¿Ž·Ž°Ž¿
++¤¿¤½¤½¤­¡¼¤½ #JN ¥¿¥½¥½¥­¡¼¥½
++¤¿¤½¤½¤­¡¼¤½ #JN ŽÀŽ¿Ž¿Ž·Ž°Ž¿
++¤¿¤¿ #K5r á
++¤¿¤¿¤­ #T35 ᤭
++¤¿¤¿¤¯ #K5r ᤯
++¤¿¤À¤­¤Á¤µ¤ó #JN ÃéµÈ¤µ¤ó
++¤¿¤À¤­¤Á¤µ¤ó #JN ÃéµÈ¤µ¤ó
++¤¿¤À¤Î #T35 TDN
++¤¿¤À¤ó¤¯¤· #T35 ¿Ãʶú
++¤¿¤Ã¤­¤å¤¦ #T35 Âðµå
++¤¿¤Æ¤¢¤é¤· #T35 Ω¤Æ¹Ó¤é¤·
++¤¿¤Æ¤Ê¤ª¤· #T35 Ω¤Æľ¤·
++¤¿¤Æ¤Ë¤² #T30 Ω¤Æƨ¤²
++¤¿¤Æ¤è¤ß #T35 ½ÄÆɤß
++¤¿¤Ê¤« #JN ÅÄÃæ
++¤¿¤Ê¤« #JNS ÅÄÃæ
++¤¿¤Ê¤«¤Õ¤¡¤ó¤¿¤¸¤¤ #T35 ÅÄÃæ¥Õ¥¡¥ó¥¿¥¸¡¼
++¤¿¤Ê¤«¤â¤Ê¤ä #JN ÅÄÃæ¥â¥ÊÌé
++¤¿¤Ê¤Ð¤¿¤¨¤É¤¦¤í¤¦¤â¤Ê¡¼ #JN ¼·Í¼³¨¤É¤¦¤í¤¦¥â¥Ê¡¼
++¤¿¤Ë¤¶¤ï¤É¤¦¤Ö¤Ä¤Ó¤ç¤¦¤¤¤ó #T35 ë߷ưʪɱ¡
++¤¿¤Í #T35 ¼ï
++¤¿¤Í¤Á¤å¤¦ #T35 ¼ï¿ß
++¤¿¤Í¤Ê¤· #JN ¼ï̵¤·
++¤¿¤Í¤Ê¤· #T35 ¼ï̵¤·
++¤¿¤Ð #KK «
++¤¿¤Ð #T35 «
++¤¿¤Ð¤¸¤ç¤¦¤»¤ó #T35 «¾åÀþ
++¤¿¤Þ¤´ #T35 ¶Ì»Ò
++¤¿¤Þ¤Á¤ã¤ó #JN ¥¿¥Þ¤Á¤ã¤ó
++¤¿¤ß¤ä #KK ¥¿¥ß¥ä
++¤¿¤à¤é¤ê¤ç¤¦¤³ #JN Åļμ»Ò
++¤À¤á¤Ý #CJ ¡²|¡±|¡û
++¤À¤á¤Ý #CJ orz
++¤À¤á¤Ý #CJ _no
++¤¿¤â¤ê #JN ¥¿¥â¥ê
++¤¿¤é #KK í
++¤¿¤é #T35 í
++¤¿¤é¤³ #T35 ¥¿¥é¥³
++¤¿¤ê¤­¤Á¤ã¤ó #T35 ¾ÎϤÁ¤ã¤ó
++¤¿¤ê¤Ð¤ó #CN ¥¿¥êÈÄ
++¤¿¤ê¤Ð¤ó #T35 ¥¿¥êÈÄ
++¤¿¤ê¤Ð¤ó¤¿¤í¤¦ #T35 ¥¿¥ê¥Ð¥óÂÀϺ
++¤¿¤ë¤±¤¨ #T35 ¥¿¥ë¥±¡¼
++¤¿¤ì¤ß¤ß¤â¤Ê¡¼ #JN ¤¿¤ì¼ª¥â¥Ê¡¼
++¤¿¤í¤¦ #SUC ÂÀϺ
++¤¿¤í¤¦ #T35 ¡û¡ûÂÀϺ
++¤¿¤ï¤é #T35 TAWARA
++¤¿¤ó #SUC ¥¿¥ó
++¤¿¤ó #SUC ŽÀŽÝ
++¤¿¤ó¤­¤å¡¼ #CJ ¥¿¥ó¥­¥å¡¼
++¤¿¤ó¤­¤å¡¼ #CJ ŽÀŽÝŽ·Ž­Ž°
++¤¿¤ó¤­¤å¤¦ #CJ ¥¿¥ó¥­¥å¡¼
++¤¿¤ó¤­¤å¤¦ #CJ ŽÀŽÝŽ·Ž­Ž°
++¤¿¤ó¤½¤­¡¼¤ó #CJ (¡¦¢Ï¡¦)¥¿¥ó¥½¥­¡¼¥ó
++¤¿¤ó¤½¤­¡¼¤ó #CJ (¡¦¢Ï¡¦)ŽÀŽÝŽ¿Ž·Ž°ŽÝ
++¤¿¤ó¤½¤­¡¼¤ó #CJ (¡¬¢Ï¡¬)¥¿¥½¥½¥­¡¼¥½
++¤¿¤ó¤½¤­¡¼¤ó #CJ (Žß¢ÏŽß)ŽÀŽ¿Ž¿Ž·Ž°Ž¿
++¤¿¤ó¤½¤­¡¼¤ó #CJ ¥¿¥ó¥½¥­¡¼¥ó
++¤¿¤ó¤½¤­¡¼¤ó #CJ ŽÀŽÝŽ¿Ž·Ž°ŽÝ
++¤¿¤ó¤½¤­¡¼¤ó #JN (¡¦¢Ï¡¦)ŽÀŽÝŽ¿Ž·Ž°ŽÝ
++¤¿¤ó¤½¤­¡¼¤ó #JN ¥¿¥ó¥½¥­¡¼¥ó
++¤¿¤ó¤½¤­¡¼¤ó #JN ÀÝ¿·°Ý
++¤¿¤ó¤½¤­¡¼¤ó #JN ŽÀŽÝŽ¿Ž·Ž°ŽÝ
++¤¿¤ó¤½¤¯¤ä¤¯¤¶ #JN û­ŽÔŽ¸Ž»ŽÞ
++¤¿¤ó¤Ý¤Ý¤½¤ó¤· #JN ³÷¸ø±Ñº»Õ
++¤À¡¼¤ä¤¹ #JN ¥À¡¼¥ä¥¹
++¤À¡¼¤ä¤¹ #T35 ¥À¡¼¥ä¥¹
++¤À¡¼¤ä¤¹¤­¤Î¤³ #JN ¥À¡¼¥ä¥¹¥­¥Î¥³
++¤À¤¢¤ä¤¹ #JN ¥À¡¼¥ä¥¹
++¤À¤¤¤ª¤¦¤Ò¤µ¤Þ #T35 Â粦ÈÞÍÍ
++¤À¤¤¤«¤ó¤²¤ó #T35 Âç´Ô¸µ
++¤À¤¤¤µ¤¯ #JN Âçºî
++¤À¤¤¤·¤å¤ê¤ç¤¦¤­¤ó¤°¤¾¡¼¤Ì #JN Âç¼óÎÎ¥­¥ó¥°¥¾¡¼¥Ì
++¤À¤¤¤·¤ó¤«¤ó¤³¤ê¤ó¤º #JN Âç¿À´±¥³¥ê¥ó¥º
++¤À¤¤¤·¤ó¤«¤ó¤Æ¤Ê¡¼ #JN Âç¿À´±¥Æ¥Ê¡¼
++¤À¤¤¤·¤ó¤«¤ó¤â¤Ò¤ã #JN Âç¿À´±¥â¥Ò¥ã
++¤À¤¤¤»¤ó¤»¤¤ #T35 ÂçÀèÀ¸
++¤À¤¤¤È¤¦¤¢¤Æ¤¤¤³¤¯ #KK ÂçÅì°¡Äë¹ñ
++¤À¤¤¤È¤¦¤¢¤Æ¤¤¤³¤¯ #T35 ÂçÅì°¡Äë¹ñ
++¤À¤¤¤Ë¤Á¤å¤¦¤Ü¤¦¤¤¤¿ #T35 Âè2¿ß˼ÈÄ
++¤À¤¤¤Ë¤Á¤å¤¦¤Ü¤¦¤¤¤¿ #T35 Â裲¿ß˼ÈÄ
++¤À¤¤¤Ð¤¯¤Ï¤Ä #JN ÂçÇúȯ
++¤À¤¦¤½ #T30 ¥À¥¦¥½
++¤À¤¦¤½ #T35 ¥À¥¦¥½
++¤À¤¦¤ó #T30 ¥À¥¦¥½
++¤À¤¦¤ó #T35 ¥À¥¦¥½
++¤À¤¦¤ó #T35 ¥À¥¦¥ó
++¤À¤¬¤½¤ì¤¬¤¤¤¤ #CJ ¤À¤¬¤½¤ì¤¬¤¤¤¤
++¤À¤±¤É #SUC ¤À¤±¤É
++¤À¤±¤É¤Ê¤Ë¤«¤·¤Ä¤â¤ó¤¢¤ë #CJ ¤À¤±¤É¡¢²¿¤«¼ÁÌ䤢¤ë¡©
++¤À¤±¤Ï¤«¤ó¤Ù¤ó¤·¤Æ¤¯¤À¤µ¤¤ #CJ ¤À¤±¤Ï´ªÊÛ¤·¤Æ¤¯¤À¤µ¤¤
++¤À¤µ¤¤¤¿¤Þ #T35 ¥À¥µ¥¤¥¿¥Þ
++¤À¤¹¤Ù¤§¤À #JN ½Ð¤¹¤Ù¤§ÂÀ
++¤À¤¹¤ì #T35 ÂÌ¥¹¥ì
++¤À¤¹¤ì¤·¤å¤¦¤è¤¦¤¸¤ç #T35 ÂÌ¥¹¥ì¼ýÍƽê
++¤À¤»¡¼¤è #JN ¥À¥»¡¼¥è
++¤À¤½¤Ê #JN ¥À¥½¥Ê
++¤À¤Ã¤³¤Á¤å¤¦ #T35 ¤À¤Ã¤³¿ß
++¤À¤Ã¤È¤¤¤­ #CJ datÀ¤­
++¤À¤Ã¤È¤¤¤­¤µ¤æ¤ê #JN DATÀ¤­º´Í´Íý
++¤À¤Ã¤È¤ª¤Á #CJ datÍî¤Á
++¤À¤Ö¤ë¤¤¤«¤ä¤­¤½¤Ð #JN ¥À¥Ö¥ë¤¤¤«¾Æ¤­¤½¤Ð
++¤À¤Ö¤ë¤Þ¡¼¤Á #T35 £×£Í£Á£Ò£Ã£È
++¤À¤Þ¤·¤¹¤ì #T35 ñÙ¤·¥¹¥ì
++¤À¤Þ¤ì¤³¤¾¤¦ #JN ¥À¥Þ¥ì¥³¥¾¥¦
++¤À¤ß¤¢¤ó #T35 ¥À¥ß¥¢¥½
++¤À¤ß¤¢¤ó #T35 ¥À¥ß¥¢¥ó
++¤À¤ß¤¢¤ó #T35 ¥À¥ß¥ä¥½
++¤À¤à #JN ¢º¡Ê¡¦¦Ø¡¦¡Ë¢»
++¤À¤à #JN ÂÌ̵
++¤À¤à #T35 ÂÌÌ´
++¤À¤à #T35 ÂÌ̵
++¤À¤á¤«¡¼ #CJ ÂÌÌܤ«¡¼
++¤À¤á¤«¤¢ #CJ ÂÌÌܤ«¡¼
++¤À¤á¤¹¤ì¤Ã¤É¤«¤ó¤ê¤­¤³¤¦ #JN ÂÌÌÜŽ½ŽÚŽ¯ŽÄŽÞ´ÉÍýµ¡¹½
++¤À¤á¤Ê¤ä¤Ä¤Ï¤Ê¤Ë¤ò¤ä¤Ã¤Æ¤À¤á #CJ ¤À¤á¤Ê¤ä¤Ä¤Ï²¿¤ò¤ä¤Ã¤Æ¤âÂÌÌÜ
++¤À¤á¤Ê¤ä¤Ä¤Ï¤Ê¤Ë¤ò¤ä¤Ã¤Æ¤â¤À¤á #CJ ¤À¤á¤ÊÅۤϲ¿¤ò¤ä¤Ã¤Æ¤â¤À¤á
++¤À¤á¤Ê¤ä¤Ä¤Ï¤Ê¤Ë¤ò¤ä¤Ã¤Æ¤â¤À¤á #JN ¤À¤á¤ÊÅۤϲ¿¤ò¤ä¤Ã¤Æ¤â¤À¤á
++¤À¤á¤Ð¤³ #T35 ¥À¥áÈ¢
++¤À¤á¤Ü¤Ã¤¯¤¹ #T35 ¥À¥á¥Ü¥Ã¥¯¥¹
++¤À¤è¤â¤ó #T35 ¤À¤è¤â¤ó
++¤À¤ë¤Þ¤â¤Ê¡¼ #JN ¤À¤ë¤Þ¥â¥Ê¡¼
++¤À¤ë¤Þ¤â¤Ê¡¼ #JN ¤À¤ë¤Þ¥â¥Ê¡¼
++¤À¤ì¤¤¤ä¤Í¤ó #JN ÂÄÎî²°Ç°¡¡
++¤À¤ì¤¹ #T35 Ḁ̂쥹
++¤À¤ì¤â¤¤¤Ê¤¤¤¹¤ì¤Ò¤È¤ê¤Ü¤Ã¤Á #CJ ï¤â¤¤¤Ê¤¤¥¹¥ì¡£¤Ò¤È¤ê¤Ü¤Ã¤Á
++¤Á¡¼¤º¤±¡¼¤­ #JN ŽÁŽ°Ž½ŽÞŽ¹Ž°Ž·
++¤Á¡¼¤à¤Ë¤Á¤ã¤ó¤Í¤ë #KK ¥Á¡¼¥à£²¤Á¤ã¤ó¤Í¤ë
++¤Á¤£¤â¤Ê¡¼ #JN ¤Á¤£¥â¥Ê¡¼
++¤Á¤§¤­¤Ê #T35 ¥Á¥§¥­¥Ê
++¤Á¤§¤Á¤§¤ó #T35 ¥Á¥§¥Á¥§¥ó
++¤Á¤§¤Ã #JN ¡¥¡¥¡¥(¡­§©¡®¡ËŽÁŽªŽ¯
++¤Á¤§¤Ã #JN ¤Á¤§¤Ã
++¤Á¤«¤¯¤Ø¤ó¤É¤¦ #T30 ÃϳÌÊÑÆ°
++¤Á¤«¤¯¤Ø¤ó¤É¤¦ #T35 ÃϳÌÊÑÆ°
++¤Á¤«¤² #JNM ¥Á¥«¥²
++¤Á¤«¤² #JNM ·ì±Æ
++¤Á¤«¤² #JNM Æý±Æ
++¤Á¤«¤² #T35 ¥Á¥«¥²
++¤Á¤«¤² #T35 ·ì±Æ
++¤Á¤«¤² #T35 Æý±Æ
++¤Á¤«¤¹¤ì #T35 Ãϲ¼¥¹¥ì
++¤Á¤«¤ó #T35 ÃÔ´Á
++¤Á¤«¤ó¤Ç¤Ã¤Á¤¢¤² #T35 ÃÔ´Á¤Ç¤Ã¤Á¾å¤²
++¤Á¤­¤ó¤ì¡¼¤¹ #T35 ¥Á¥­¥ó¥ì¡¼¥¹
++¤Á¤­¤ó¤ì¤¨¤¹ #T35 ¥Á¥­¥ó¥ì¡¼¥¹
++¤Á¤²¡¼¤è #JN ¥Á¥²¡¼¥è
++¤Á¤´¤¤¤Í #CJ ¥Á¥´¥¤¥Í
++¤Á¤·¤ç¤¦ #T35 ÃÓ¾Â
++¤Á¤º #T35 ÃÏ¿Þ
++¤Á¤¿¤Í¡¼¤è #JN ¥Á¥¿¥Í¡¼¥è
++¤Á¤Á¤ç¤ó¤Þ¤ó¤Á #JN ¤Á¤Á¤ç¤ó¤Þ¤ó¤Á
++¤Á¤Ã¤Ñ¤ó #KK ¤Á¤Ã¤Ñ¤ó
++¤Á¤Æ¤¤ #KK ÃÏÄì
++¤Á¤Æ¤¤ #T35 ÃÏÄì
++¤Á¤Æ¤¤¤â¤Ê #JN ÃÏÄì¤â¤Ê
++¤Á¤Í¤Ð¡¼ #JN ¥Á¥Í¥Ð¡¼
++¤Á¤Ð¤²¤ó¤¸¤ó #T35 ÀéÍÕ¸¶¿Í
++¤Á¤Ð¤·¤·¤ã #T35 ÃÔÇÍ»à¼Ô
++¤Á¤Ð¤È¤ß¤ó #T35 ÀéÍÕÅÔ̱
++¤Á¤Ð¤é¤­ #CN ¥Á¥Ð¥é¥­
++¤Á¤Ð¤é¤­ #T35 ¥Á¥Ð¥é¥­
++¤Á¤Ð¤é¤® #CN ¥Á¥Ð¥é¥®
++¤Á¤Ð¤é¤® #T35 ¥Á¥Ð¥é¥®
++¤Á¤Ó¤®¤³ #JN ¤Á¤Ó¥®¥³
++¤Á¤Ó¤®¤³¤Ö¤ê #JN ¤Á¤Ó¥®¥³¥Ö¥ê
++¤Á¤Ó¤·¤£ #JN ¤Á¤Ó¤·¤£
++¤Á¤Ó¤Õ¤µ #JN ¥Á¥Ó¥Õ¥µ
++¤Á¤Ó¤â¤é¤é¡¼ #JN ¥Á¥Ó¥â¥é¥é¡¼
++¤Á¤á¤¤ #T35 ÃÏ̾
++¤Á¤ã¤¤ #JN ¡¡¡¡,._.,¡¡
++¤Á¤ã¤¤ #JN ŽÁŽ¬Ž²¡¡
++¤Á¤ã¤Ö¤À¤¤ #JN ¤Á¤ã¤ÖÂæ
++¤Á¤ã¤Ö¤À¤¤ #JN ¨µ¨¬¨µ
++¤Á¤ã¤Ö¤À¤¤¤¤¤É¤¦ #JN ¤Á¤ã¤ÖÂæ°ÜÆ°
++¤Á¤ã¤à #JN ¥Á¥ã¥à
++¤Á¤ã¤à #T35 ¥Á¥ã¥à
++¤Á¤ã¤ó¤³ #JN ¥Á¥ã¥ó¥³
++¤Á¤ã¤ó¤³¤Þ¤¹¤À #T35 ¥Á¥ã¥ó¥³ÁýÅÄ
++¤Á¤ã¤ó¤³¤í #T35 ¥Á¥ã¥ó¥³¥í
++¤Á¤ã¤ó¤µ¤Þ #SUC ¤Á¤ã¤óÍÍ
++¤Á¤ã¤ó¤µ¤Þ #T35 ¤Á¤ã¤óÍÍ
++¤Á¤å¡¼¤Á¤å¡¼¤½¤ó¤° #KK ¤Á¤å¡¼¤Á¤å¡¼¥½¥ó¥°
++¤Á¤å¡¼¤Ü¡¼ #JN ¥Á¥å¡¼¡¦¥Ü¡¼
++¤Á¤å¡¼¤Ü¡¼¤Ç¤¹¤è #JN ¥Á¥å¡¼¥Ü¡¼¤Ç¤¹¤è¡ª
++¤Á¤å¤¦ #T35 ¿ß
++¤Á¤å¤¦¤«¤ê¤ç¤¦¤ê¤í¤Ü¤»¤ó¤³¤¦¤·¤ã #JN Ãæ²ÚÎÁÍý¥í¥ÜÀè¹Ô¼Ô
++¤Á¤å¤¦¤¬¤¯¤»¤¤¤Á¤Ï¤ë #T35 Ãæ³ØÀ¸¤Á¤Ï¤ë
++¤Á¤å¤¦¤±¤¤ #T30 Ãæ·Ñ
++¤Á¤å¤¦¤±¤ó #JN Ãæ·ø
++¤Á¤å¤¦¤±¤ó #T35 Ãæ·ø
++¤Á¤å¤¦¤³¤ª¤ó¤Ê #T35 Ãæ¸Å½÷
++¤Á¤å¤¦¤Á¤å¤¦¤½¤ó¤° #T35 ¤Á¤å¡¼¤Á¤å¡¼¥½¥ó¥°
++¤Á¤å¤¦¤Ö¤ë¤ª¤ó¤Ê #T35 Ãæ¸Å½÷
++¤Á¤å¤¦¤Ü¤¦ #T35 ¿ß˼
++¤Á¤å¤¦¤Ü¤¦¤°¤ó¤À¤ó #T35 ¿ß˼·³ÃÄ
++¤Á¤å¤¦¤Ü¤¦¤ê¤Ë¤å¤¦¤ê¤ç¤¯ #KK ¿ß˼ΥÆý¿©
++¤Á¤å¤× #T35 ¥Á¥å¥×
++¤Á¤å¤×¤¿¤ó #T35 ¥Á¥å¥×¥¿¥ó
++¤Á¤å¤×¤¿¤ó #T35 ŽÁŽ­ŽÌŽßŽÀŽÝ
++¤Á¤æ #JN ¤Á¤æ
++¤Á¤æ¤â¤Ê #JN ¤Á¤æ¤â¤Ê
++¤Á¤ç¤¤¤Î¤ê #T35 ¥Á¥ç¥¤¥Î¥ê
++¤Á¤ç¤¦¤ª¤ì¤°¤ë¤Þ #JN Ķ²¶¼Ö
++¤Á¤ç¤¦¤»¤¤¤É¤Ã¤È #JN .
++¤Á¤ç¤¦¤»¤¤¤É¤Ã¤È #JN Ä´À°¥É¥Ã¥È
++¤Á¤ç¤¦¤»¤ó¤·¤ã #JN Ä©Àï¼Ô
++¤Á¤ç¤¦¤»¤ó¤»¤¤ #JN ĶÀèÀ¸
++¤Á¤ç¤¦¤»¤ó¤»¤¤ #T35 ĶÀèÀ¸
++¤Á¤ç¤¦¤Ë¤Á¤·¤ó¤Ö¤ó #KK ¤Á¤ç¤¦¤Ë¤Á¿·Ê¹
++¤Á¤ç¤¦¤Ë¤Á¤·¤ó¤Ö¤ó #T35 ¤Á¤ç¤¦¤Ë¤Á¿·Ê¹
++¤Á¤ç¤¦¤Õ¤¯¤¹¤ì #T35 ½ÅÊ£¥¹¥ì
++¤Á¤ç¤¦¤Õ¤¯¤¹¤ì¤Ã¤É #T35 ½ÅÊ£¥¹¥ì¥É
++¤Á¤ç¤¦¤Ö¤ó¤ì¤¹ #T35 Ĺʸ¥ì¥¹
++¤Á¤ç¤¦¤ì¤¹ #T35 Ĺ¥ì¥¹
++¤Á¤ç¤¦¤í¤¦ #JN ĹϷ
++¤Á¤ç¤¦¤í¤¦ #T35 ĹϷ
++¤Á¤ç¤¯¤ê¤ó #T30 ľ¥ê¥ó
++¤Á¤ç¤¯¤ê¤ó¤¯ #T30 ľ¥ê¥ó¥¯
++¤Á¤ç¤·¤å¤µ¤ó #T35 ¥Á¥ç¥·¥å¥µ¥ó
++¤Á¤ç¤·¤å¤µ¤ó #T35 ŽÁŽ®Ž¼Ž­Ž»ŽÝ
++¤Á¤ç¤½ #T35 ¥Á¥ç¥½
++¤Á¤ç¤½ #T35 ŽÁŽ®Ž¿
++¤Á¤ç¤Ã¤Ñ¤ê #T35 ¥Á¥ç¥Ã¥Ñ¥ê
++¤Á¤ç¤é¤Í¡¼¤è #JN ¥Á¥ç¥é¥Í¡¼¥è
++¤Á¤ç¤ì¤®¤µ¤é¤À #JN ¥Á¥ç¥ì¥®¥µ¥é¥À
++¤Á¤ç¤ó #T35 ¥Á¥ç¥ó
++¤Á¤ç¤ó #T35 ŽÁŽ®ŽÝ
++¤Á¤ç¤ó¤¤¤ë¤·¤ó¤Ö¤ó #KK ¥Á¥ç¥ó¥¤¥ë¿·Ê¹
++¤Á¤ç¤ó¤¤¤ë¤·¤ó¤Ö¤ó #T35 ¥Á¥ç¥ó¥¤¥ë¿·Ê¹
++¤Á¤ç¤ó¤Ê #CJ ¥Á¥ç¥ó¤Ê
++¤Á¤é¤Í¡¼¤è #JN ¥Á¥é¥Í¡¼¥è¡¡
++¤Á¤ì¤¹ #T30 Ã٥쥹
++¤Á¤ì¤¹ #T35 Ã٥쥹
++¤Á¤ó #T35 Ä¿
++¤Á¤ó #T35 ÄÁ
++¤Á¤ó¤«¤³¤ß¤À¤ó #T35 ÄÁ°ÏÃÄ
++¤Á¤ó¤² #JN ¥Á¥ó¥²
++¤Á¤ó¤² #T35 ¥Á¥ó¥²
++¤Á¤ó¤³¤ª¤ó¤É #T35 ¤Á¤ó¤³²»Æ¬
++¤Á¤ó¤³¤à¤®¤å¡¼ #CJ ¤Á¤ó¤³¤à¤®¤å¡¼
++¤Á¤ó¤³¤à¤®¤å¤¦ #CJ ¤Á¤ó¤³¤à¤®¤å¡¼
++¤Á¤ó¤·¤ã #T35 ÄÁ¼Ö
++¤Á¤ó¤¸¤ç #T35 ÄÁ½÷
++¤Á¤ó¤½¤¦ #T30 ÄÁÁÕ
++¤Á¤ó¤½¤¦¤¢¤é¤· #JN ÄÁÁö¹Ó¤é¤·
++¤Á¤ó¤½¤¦¤¸¤ó #T35 ÄÁÁÕ¿Í
++¤Á¤ó¤½¤¦¤À¤ó #T35 ÄÁÁÕÃÄ
++¤Á¤ó¤½¤¦¤À¤ó #T35 ÄÁÁöÃÄ
++¤Á¤ó¤½¤¦¤É #T35 ÄÁÁÕÅÛ
++¤Á¤ó¤½¤¦¤Ù¤ó¤¸¤ç #T35 ÄÁÁÕÊؽê
++¤Á¤ó¤½¤¦¤â¤é¤é¡¼ #JN ÄÂÁö¥â¥é¥é¡¼
++¤Á¤ó¤Ç¤£¤¤ #T35 ÄÁD
++¤Á¤ó¤Ð¤ó #T35 ÄÁÈ×
++¤Á¤ó¤×¤¦ #KK ÄÁÉ÷
++¤Á¤ó¤×¤¦ #KK ÄÄÉ奦
++¤Á¤ó¤×¤¦ #T35 ÄÁÉ÷
++¤Á¤ó¤×¤¦ #T35 ÄÄÉ奦
++¤Á¤ó¤×¤¯ #T35 ÄÁÉþ
++¤Á¤ó¤Ý¡¼ #JN ¡Ê¡¦¢Ï¡¦¡ËŽÁŽÝŽÎŽßŽ°!!
++¤Á¤ó¤Ý¡¼ #JN ÁÝÎß!
++¤Á¤ó¤Ý¡¼ #JN ŽÁŽÝŽÎŽßŽ°!!
++¤Á¤ó¤Ý¤´¤­¤Ö¤ê #JN ¥Á¥ó¥Ý¥´¥­¥Ö¥ê
++¤Á¤ó¤Ý¤À¤ó #T35 ÄÁÊâÃÄ
++¤Â¤ã¤ó #JN ¥Â¥ã¥ó
++¤Â¤ó¤®¤ç #JN ¤Â¤óµû
++¤Ã¤Æ¤¤¤¦¤«¤¦¡«¤¡¤« #CJ ¤Ã¤Æ¤¤¤¦¤«¡¢¥ô¥¡¥«¡©
++¤Ã¤Æ¤¤¤¦¤«¤¦¡«¤¡¤« #CJ ¤Ã¤Æ¤¤¤¦¤«¡¢Ž³ŽÞŽ§Ž¶¡©
++¤Ã¤Æ¤¤¤¦¤«¤¦¡«¤¡¤« #CJ ¤Ã¤Æ¤¤¤¦¤«¡¢Ž³ŽÞŽ§Ž¶¡©>>
++¤Ä #R5r Äà
++¤Ä #R5 Äà
++¤Ä¡«¤µ¤¯¤Ä¡«¤¨¤½ #JN (?¢Ï?)
++¤Ä¡«¤µ¤¯¤Ä¡«¤¨¤½ #JN ¥Å¥µ¥¯¥Å¥¨¥½
++¤Ä¡«¤µ¤¯¤Ä¡«¤¨¤½ #JN ŽÂŽÞŽ»Ž¸ŽÂŽÞŽ´Ž¿
++¤Ä¡¼ #JN ¤Ä¡¼
++¤Ä¡¼¤« #CJ ¤Ä¡¼¤«
++¤Ä¡¼¤«¤«¤³¤í¤°¤è¤á #JN ¤Ä¡¼¤«²áµî¥í¥°Æɤá
++¤Ä¤¦¡«¤¡¤¤ #JN ¥Ä¥ô¥¡¥¤
++¤Ä¤¦¤¸¤ç¤¦¤Î¤µ¤ó¤Ð¤¤ #CJ Ä̾ï¤Î£³ÇÜ
++¤Ä¤¦¤¸¤ç¤¦¤Î¤µ¤ó¤Ð¤¤ #T35 Ä̾ï¤Î£³ÇÜ
++¤Ä¤¦¤Û¤¦¤·¤Þ¤¹¤¿ #T35 ÄÌÊó¤·¤Þ¤¹¤¿
++¤Ä¤« #KK ÄÍ
++¤Ä¤« #T35 ÄÍ
++¤Ä¤­ #T35 ·î
++¤Ä¤­¤Á¤å¤¦ #T35 ·î¿ß
++¤Ä¤­¤Î¤Ï¤·¤º¤¯ #JN ¤Ä¤­¤Î¤Ï¤·¤º¤¯
++¤Ä¤­¤Ò¤á #KK ·îɱ
++¤Ä¤¸ #T35 ¤Î¤Î¤¿¤ó
++¤Ä¤¸ #T35 ÄÔ
++¤Ä¤¸¡¼¤ó #JN ÄÔ¡¼¤ó
++¤Ä¤¸¡¼¤ó #T35 ÄÔ¡¼¤ó
++¤Ä¤¸¤¤¤ó #T35 ÄÔ¡¼¤ó
++¤Ä¤¸¤¨¤­ #JN ÄÔ±Ø
++¤Ä¤Î¤â¤Ê¡¼ #JN ¤Ä¤Î¥â¥Ê¡¼
++¤Ä¤Ü #CN ÄÛ
++¤Ä¤Ü #T35 ÄÚ
++¤Ä¤Ü #T35 ÄÛ
++¤Ä¤Ü¤Þ¤¸¤ó¤ß¤Ë¤Ê¤Ë¤ç¤ê¡¼¤Ê #JN ÄÛËâ¿Í¡¦ŽÐŽÆŽÅŽÆŽ®ŽØŽ°ŽÅ
++¤Ä¤Þ¤ó¤Í #CJ ¥Ä¥Þ¥ó¥Í
++¤Ä¤â #JN ¥Ä¥â
++¤Ä¤æ¤Ò¤¿ #T35 ¤Ä¤æ¤Ò¤¿
++¤Ä¤é¤¤¤³¤È¤ò¤ª¤â¤¦¤â¤é¤é¡¼ #JN ¿É¤¤¤³¤È¤ò»×¤¦¥â¥é¥é¡¼
++¤Ä¤ê #T35 Äà¤ê
++¤Ä¤ê¤· #T35 Äà¤ê»Õ
++¤Ä¤ë¤Ù¤¸¤±¤ó #T35 ÄáÉÓ»ö·ï
++¤Ä¤ì¤¿ #T35 Äà¤ì¤¿
++¤Å¡¼ #JN ¤Å¡¼
++¤Æ¤£¡¼ #JN £ô¡¡
++¤Æ¤£¡¼¤À #JN ¥Æ¥£¡¼¥À
++¤Æ¤£¤¤¤Ç¤£¤¤¤¨¤Ì #T35 TDN
++¤Æ¤£¤«¤² #JNM ¥Æ¥£¥«¥²
++¤Æ¤£¤«¤² #T35 ¥Æ¥£¥«¥²
++¤Æ¤£¤­¤ã¡¼¤² #T35 ¥Æ¥£¥­¥ã¡¼¥²
++¤Æ¤£¤­¤ã¤¢¤² #T35 ¥Æ¥£¥­¥ã¡¼¥²
++¤Æ¤£¤Ð #T35 ¥Æ¥£¥Ð
++¤Æ¤£¤Ð #T35 ŽÃŽ¨ŽÊŽÞ
++¤Æ¤£¤à¤Ý #T35 ¥Æ¥£¥à¥Ý
++¤Æ¤£¤à¤Ý¤Î¤ï¤®¤ê #T35 ¥Æ¥£¥à¥Ý¤ÎÎØÀÚ¤ê
++¤Æ¤£¤à¤Ý¤Î¤ï¤®¤ê #T35 ŽÃŽ¨ŽÑŽÎŽß¤ÎÎØÀÚ¤ê
++¤Æ¤£¤à¤Ý¤Ó¤ë #T35 ¥Æ¥£¥à¥Ý¥Ó¥ë
++¤Æ¤£¤ó¤Ý #T35 ¥Æ¥£¥ó¥Ý
++¤Æ¤¤¤­¤±¤ó #T35 Äê´ü·ô
++¤Æ¤¤¤­¤ç¤¦ #T35 Ä㶸
++¤Æ¤¤¤³¤¯¤á¤¤¤É #JN ÄëԢ̽ÅÓ
++¤Æ¤¤¤·¤å¤«¤ó¤Ñ¤¯¤â¤Ê¡¼ #JN Äâ¼ç´ØÇò¥â¥Ê¡¼
++¤Æ¤¤¤»¤Ä #T35 ÄêÀâ
++¤Æ¤¤¤É¤Ò¤¯ #KYT ÄøÅÙÄã
++¤Æ¤«¤ê¤Ö¤¿ #T35 ¥Æ¥«¥êÆÚ
++¤Æ¤­¤¸¤ç #T30 ¤Æ¤­¤¸¤ç
++¤Æ¤­¤È #JN ¥Æ¥­¥È
++¤Æ¤¯¤â #KK ¼êÃØéá
++¤Æ¤¯¤â #T35 ¼êÃØéá
++¤Æ¤¹¤Æ¤¹ #CJ ¤Æ¤¹¤Æ¤¹
++¤Æ¤½ #JN ¥Æ¥½
++¤Æ¤½ #JN ŽÃŽ¿
++¤Æ¤½ #T35 ¥Æ¥½
++¤Æ¤½ #T35 ŽÃŽ¿
++¤Æ¤Ã¤³¤¦¤· #T35 ¥Æ¥Ã¥³¥¦¥·
++¤Æ¤Ã¤»¤ó¤«¤¤ #KK ïÄÀðÐò
++¤Æ¤Ã¤»¤ó¤«¤¤ #T35 ïÄÀðÐò
++¤Æ¤Ã¤Æ¤¤¤³¤¦¤»¤ó¤»¤ó¤²¤ó #JN Å°Äì¹³ÀïÀë¸À
++¤Æ¤Ä #T35 Å´
++¤Æ¤Ä¤ª¤¿¤¼¤Ã¤È¤¿¤±¤¢¤Ã¤È¤á¤¤¤Æ¤Ä #JN Å´¥ò¥¿£ÚÉð@¦ÌÅ´
++¤Æ¤Ä¤ª¤¿¤¼¤Ã¤È¤¿¤±¤á¤¤¤Æ¤Ä #JN Å´¥ò¥¿£ÚÉð@¦ÌÅ´
++¤Æ¤Ä¤Î¤ª¤­¤Æ #T35 Å´¤ÎÙÝ
++¤Æ¤Æ¤· #T35 ¤Æ¤Æ¤·
++¤Æ¤Ê¡¼ #JN ¥Æ¥Ê¡¼
++¤Æ¤Õ¤Æ¤Õ #JN ¤Æ¤Õ¤Æ¤Õ
++¤Æ¤á¤§¤â¤Ê¡¼ #JN ¥Æ¥á¥§¥â¥Ê¡¼
++¤Æ¤ë¤¯¤Ï¤Î¤ë #T35 ¤Æ¤ë¤¯¤Ï¤Î¤ë
++¤Æ¤ì¤Û #T35 ¥Æ¥ì¥Û
++¤Æ¤ì¤Û¤·¤å¤¦¤ê¤ç¤¦ #T30 ¥Æ¥ì¥Û½ªÎ»
++¤Æ¤ì¤Û¤Þ¤ó #JN ¥Æ¥ì¥Û¥Þ¥ó
++¤Æ¤ì¤Û¤é¤Ã¤·¤å #T35 ¥Æ¥ì¥Û¥é¥Ã¥·¥å
++¤Æ¤í¤¨¤ê¡¼¤Ê #JN ¥Æ¥í¥¨¥ê¡¼¥Ê
++¤Æ¤ó¤·¤¨¤ó #CJ Å·»È±ê
++¤Æ¤ó¤·¤¨¤ó #T35 Å·»È±ê
++¤Æ¤ó¤Î¤¦ #JN Å·¹Ä
++¤Æ¤ó¤×¤ì #T35 ¥Æ¥ó¥×¥ì
++¤Æ¤ó¤Ý¤Ã¤Æ #KS ¥Æ¥ó¥Ý¤Ã¤Æ
++¤Ç¤¢¤ë¤« #CJ ¤Ç¡¢¤¢¤ë¤«
++¤Ç¤£ #JN ¤Ç¤£
++¤Ç¤£¡¼¤¸¤§¡¼¤â¤Ê¡¼ #JN £Ä£Ê¥â¥Ê¡¼¡¡
++¤Ç¤£¡¼¤Ý #T35 £Ä¥Ý
++¤Ç¤£¤¢¤Ê¤µ¤Þ #JN ¥Ç¥£¥¢¥ÊÍÍ
++¤Ç¤£¤ª¤â¤é¤ó¤É¡¼ #JN ¥Ç¥£¥ª¡¦¥â¥é¥ó¥É¡¼
++¤Ç¤£¤ª¤ó¤°¤ó #T35 DION·³
++¤Ç¤£¤ë¤ì¤¦¡«¤¡¤ó¤¬¡¼ #JN ¥Ç¥£¥ë¥ì¥ô¥¡¥ó¥¬¡¼
++¤Ç¤£¤ë¤ì¤¦¡«¤¡¤ó¤¬¤¢ #JN ¥Ç¥£¥ë¥ì¥ô¥¡¥ó¥¬¡¼
++¤Ç¤¤¤È¤¤¤ì¤À¡¼ #T35 ¥Ç¥¤¥È¥¤¥ì¥À¡¼
++¤Ç¤¤¤È¤¤¤ì¤À¤¢ #T35 ¥Ç¥¤¥È¥¤¥ì¥À¡¼
++¤Ç¤¦¡« #JN DEVU
++¤Ç¤¦¡« #JN ¤à¤·¤ã¤à¤·¤ã¡Ê¡¡¡­¡Ë§¥¡Ê¡®¡Ë
++¤Ç¤¨¤ó¤Ñ¤ß¤ó¤¾¤¯ #T35 ¥Ç¡¼¥ó¥Ñ¥ß¥ó¥¾¥¯
++¤Ç¤¨¤ó¤Ñ¤ß¤ó¤¾¤¯ #T35 ŽÃŽÞŽ°ŽÝŽÊŽßŽÐŽÝŽ¿ŽÞŽ¸
++¤Ç¤«¤Á¤ç¤¦¤¢¤ó¤É¤«¤º #JN ¥Ç¥«Ä¹¡õ¥«¥º
++¤Ç¤¬¤ï #JNS ½ÐÀî
++¤Ç¤¬¤ï #T35 ½ÐÀî
++¤Ç¤¬¤ï¤Ò¤Ã¤·¤À¤â¤½ #T35 ½ÐÀîɬ»à¥À¥â¥½¡ª
++¤Ç¤³ #JN ÆÌ
++¤Ç¤³ #T35 ÆÌ
++¤Ç¤¸¤â¤Ê¤Æ¤¤¤Þ¡¼¤º¤í¤´ #JN ¥Ç¥¸¥â¥Ê¥Æ¥¤¥Þ¡¼¥º¥í¥´
++¤Ç¤¹ #SUC DEATH
++¤Ç¤¹ #SUC ¥Ç¥¹
++¤Ç¤¹¤¯¤È¤Ã¤×¤³¤¦¤«¤¤¤¹¤ì #T35 ¥Ç¥¹¥¯¥È¥Ã¥×¸ø³«¥¹¥ì
++¤Ç¤¹¤±¤É¤Ê¤Ë¤« #CJ ¤Ç¤¹¤±¤É¡¢²¿¤«¡©
++¤Ç¤¹¤Ç¤¹ #CJ ¤Ç¤¹¤Ç¤¹
++¤Ç¤¹¤È¤í¤¤¤µ¤Þ #JN ¥Ç¥¹¥È¥í¥¤ÍÍ
++¤Ç¤½¤Ñ #T35 ¥Ç¥½¥Ñ
++¤Ç¤Õ¤©¤ë¤È¤Ê¤Ê¤· #T35 ¥Ç¥Õ¥©¥ë¥È̵̾¤·
++¤Ç¤Ö¤ª¤¿ #T35 ¥Ç¥Ö¥ò¥¿
++¤Ç¤Ö¤­¤ó #JN ¥Ç¥Ö¥­¥ó
++¤Ç¤Ö¤À¤Ê¡¼ #JN ¥Ç¥Ö¥À¥Ê¡¼
++¤Ç¤Ö¤í¤ó¤² #T35 ¥Ç¥Ö¥í¥ó¥²
++¤Ç¤Ö¤ò¤¿ #T35 ¥Ç¥Ö¥ò¥¿
++¤Ç¤Ö¤ò¤¿¤Ò¤Ã¤­¡¼ #T35 ¥Ç¥Ö¥ò¥¿¥Ò¥Ã¥­¡¼
++¤Ç¤Ö¤ò¤¿¤Ò¤Ã¤­¤¤ #T35 ¥Ç¥Ö¥ò¥¿¥Ò¥Ã¥­¡¼
++¤Ç¤Ø¤é¡¼ #JN ¥Ç¥Ø¥é¡¼
++¤Ç¤Ü¤¹¤º¤á #JN ¥Ç¥Ü¤¹¤º¤á
++¤Ç¤Þ¤Á #T30 ½ÐÄ®
++¤Ç¤Þ¤Á #T35 ½ÐÄ®
++¤Ç¤è¤í¤·¤¤¤« #CJ ¤Ç¤è¤í¤·¤¤¤«
++¤Ç¤ê #R5 ¥Ç¥ê
++¤Ç¤ê¤«¤· #JN ¥Ç¥ê¡Ê¡­§×`¡Ë¥«¥·
++¤Ç¤ó¤­¤ª¤¦ #JN Åŵ¤²¦
++¤Ç¤ó¤²¤­¤Ð¤Á¤Ð¤Á #JN ¤Ç¤ó¤²¤­¥Ð¥Á¥Ð¥Á
++¤Ç¤ó¤·¤ã¤¦¤· #JN Åżֵí
++¤Ç¤ó¤·¤ã¤¬¤¢¤ë #T35 Åż֥¬¡¼¥ë
++¤Ç¤ó¤·¤ã¤®¤å¤¦ #JN Åżֵí
++¤Ç¤ó¤»¤Ä¤­¤ç¤¸¤ó¤¤¤Ç¤Û¤½ #JN ÅÁÀâµð¿ÀŽ²ŽÃŽÞŽÎŽ¿
++¤Ç¤ó¤¿¤Þ #T35 ÅĶÌ
++¤Ç¤ó¤Ä¤¦ #T35 ÅÅ2
++¤Ç¤ó¤È #T35 ÅÄÅÔ
++¤Ç¤ó¤É¤í #T35 ÅÄÅ¥
++¤Ç¤ó¤Ë #T35 ÅÅ2
++¤Ç¤ó¤Ñ #T35 ¥Ç¥ó¥Ñ
++¤Ç¤ó¤Ñ #T35 ÅÅÇÈ
++¤Ç¤ó¤Ñ¤ª¤Ï¤Ê¤Ð¤¿¤±¤¤¤¿ #T35 ÅÅÇÈ¡¦¤ª²ÖȪÈÄ
++¤Ç¤ó¤Ñ¤­¤·¤ã #T35 ÅÅÇȵ­¼Ô
++¤Ç¤ó¤Ñ¤­¤ã¤é #T35 ÅÅÇÈ¥­¥ã¥é
++¤Ç¤ó¤Ñ¤Á¤ç¤¦¤µ¤¤¤ó¤â¤Ê¡¼ #JN ÅÅÇÈÄ´ºº°÷¥â¥Ê¡¼
++¤Ç¤ó¤Ñ¤È¤· #T35 ÅÅÇÈÅÔ»Ô
++¤Ç¤ó¤Ñ¤Ë¤Á¤ã¤ó #T35 ÅÅÇÈ2ch
++¤Ç¤ó¤Ñ¤Ë¤Á¤ã¤ó¤Í¤ë #T35 ÅÅÇÈ2¤Á¤ã¤ó¤Í¤ë
++¤Ç¤ó¤Ñ¤â¤é¤é¡¼ #JN ÅÅÇÈ¥â¥é¥é¡¼
++¤Ç¤ó¤Ñ¤é¤¤¤¿¤¢ #T35 ÅÅÇȥ饤¥¿¡¼
++¤Ç¤ó¤Ñ¤ò¤¿ #T35 ÅÅÇÈ¥ò¥¿
++¤È #SUC ¤È¡£
++¤È¡¼¤Û¤° #CN ¥È¡¼¥Û¥°
++¤È¡¼¤Û¤° #T35 ¥È¡¼¥Û¥°
++¤È¤¤¤¦¤³¤È¤Ë¤·¤¿¤¤¤Î¤Ç¤¹¤Í #CJ ¤È¤¤¤¦¤³¤È¤Ë¤·¤¿¤¤¤Î¤Ç¤¹¤Í
++¤È¤¤¤¦¤³¤È¤Ë¤·¤¿¤¤¤Î¤Ç¤¹¤Í #CJ ¤È¤¤¤¦¤³¤È¤Ë¤·¤¿¤¤¤Î¤Ç¤¹¤Í¡£:)
++¤È¤¤¤Ã¤Æ¤ª¤¯¤®¤ê #CJ ¤È¸À¤Ã¤Æ¤ª¤¯µÁÍý
++¤È¤¤¤Ã¤Æ¤ß¤ë¤Æ¤¹¤È #CJ ¤È¸À¤Ã¤Æ¤ß¤ë¥Æ¥¹¥È
++¤È¤¥¤¶¤¦¡«¤£¤¯¤È¤ê¡¼ #JN ¥È¥¥¥¶¥ô¥£¥¯¥È¥ê¡¼
++¤È¤¦ #T35 Åã
++¤È¤¦¤«¤¤ #CN Åݲõ
++¤È¤¦¤«¤¤ #CN Å쳤
++¤È¤¦¤«¤¤ #KK Åݲõ
++¤È¤¦¤«¤¤ #T35 Åݲõ
++¤È¤¦¤«¤¤ #T35 Å쳤
++¤È¤¦¤­¤å¤¦¤Á¤å¤¦ #T35 ÅìµÞ¿ß
++¤È¤¦¤­¤ç¤¦ #JN Åìµþ
++¤È¤¦¤­¤ç¤¦ #T35 Åìµþ
++¤È¤¦¤­¤ç¤¦¤¢¤¯¤»¤¹ #KK Åìµþ¥¢¥¯¥»¥¹
++¤È¤¦¤­¤ç¤¦¤­¤Æ¤£¤¤ #T35 Åìµþkitty¡Ê¡÷£÷¹Ó
++¤È¤¦¤­¤ç¤¦¤¸¤¨¤ó #JN ¥È¥¦¥­¥ç¥¦¥¸¥¨¥ó
++¤È¤¦¤­¤ç¤¦¤»¤¤¤·¤ó¤Ó¤ç¤¦¤¤¤ó #JN ÅìµþÀº¿Àɱ¡¡¡
++¤È¤¦¤­¤ç¤¦¤È¤»¤¤¤½¤¦¤­¤ç¤¯ #JN ÅìµþÅÔÀ¶ÁݶÉ
++¤È¤¦¤­¤ç¤¦¤È¤ê¤Ä¤Þ¤Ä¤¶¤ï¤Ó¤ç¤¦¤¤¤ó #JN ÅìµþÅÔΩ¾¾Âôɱ¡
++¤È¤¦¤µ¤ó #T30 É㤵¤ó
++¤È¤¦¤¸¤ç¤¦¤»¤ó #T35 «¾åÀþ
++¤È¤¦¤À¤¤¤ª¤Á #T35 ÅìÂçÍî¤Á
++¤È¤¦¤Ï¤È #KK ÅìÈ·
++¤È¤¦¤Ï¤È #T35 ÅìÈ·
++¤È¤¦¤Ö¤Á¤å¤¦ #T35 ÅìÉð¿ß
++¤È¤¦¤Ö¤Ø¤Ã¤É #T35 ƬÉô¥Ø¥Ã¥É
++¤È¤¦¤Û¤° #T35 ¥È¡¼¥Û¥°
++¤È¤¦¤á¤¤¤¢¤Ü¡¼¤ó #T30 Æ©ÌÀ¤¢¤Ü¡¼¤ó
++¤È¤¦¤á¤¤¤¢¤Ü¤ª¤ó #T30 Æ©ÌÀ¤¢¤Ü¡¼¤ó
++¤È¤¦¤è¤³¤È¤Ã¤­¤å¤¦¤Ï¤Þ¤¤¤Ë¤Á¤Ü¤í¤¤¤Á #CJ Åì²£ÆõޤÏËèÆü¥Ü¥í»Ô!
++¤È¤¨¤¤¤Ð¤¹ #JN ÅԱĥХ¹
++¤È¤ª¤â¤ï¤ì #CJ ¤È»×¤ï¤ì¡£
++¤È¤ª¤â¤ï¤ì¤á #CJ ¤È»×¥ï¥ì¥á
++¤È¤­¤å¤ó #T35 ¤È¥­¥å¥ó
++¤È¤¯¤À¤³¤¦¤¤¤Á #JN ÆÁÅĹ̰ì
++¤È¤¯¤Æ¤¤¤ê¤ç¤«¤¯ #T35 ÆÃÄêιµÒ
++¤È¤¯¤Ë¤ó¤®¤ç¤¦¤»¤¤¤·¤ç¤· #JN ÆÃǧ¹ÔÀ¯½ñ»Î
++¤È¤¯¤Ë¤ó¤®¤ç¤¦¤»¤¤¤·¤ç¤· #KK ÆÃǧ¹ÔÀ¯½ñ»Î
++¤È¤¯¤á¤¤ #T35 ƿ̾
++¤È¤¯¤á¤¤¤¯¤· #T35 ƿ̾¶ú
++¤È¤¯¤á¤¤¤±¤¤¤¸¤Ð¤ó #T35 ƿ̾·Ç¼¨ÈÄ
++¤È¤±¤Í¡¼¤è #JN ¡Ê¡¬¦Ç¡¬¡Ë¡¡¥È¥±¥Í¡¼¥è
++¤È¤±¤Í¡¼¤è #JN ¥È¥±¥Í¡¼¥è
++¤È¤³¤í¤Ç #CJ ¤È¤³¤í¤Ç
++¤È¤³¤í¤ó¤È¤Á¤ã¤ê¤Ô¤«¤¡ #JN ¥È¥³¥í¥ó¥È¥Á¥ã¥ê¥Ô¥«¥¡¡ª
++¤È¤· #T35 ÅÔ»Ô
++¤È¤À¤Ê #T35 ¸Íê
++¤È¤Ã¤­¤å¤¦¤¾¤Ì¤´¤¦ #JN Æõޤ¾¤Ì¹æ
++¤È¤Ã¤Æ¤â¤¿¤á¤Ë¤Ê¤ë¤ª¤Ï¤Ê¤· #JN ¤È¤Ã¤Æ¤â¤¿¤á¤Ë¤Ê¤ë¤ªÏÃ
++¤È¤Ã¤È¤È¤¤¤¯¤ª #JN ¤È¤Ã¤È¤ÈÀÂÉ×
++¤È¤Ä¤²¤­ #T35 ÆÍ·â
++¤È¤Ä¤²¤­¤²¤Ã¤¿¡¼¤º #JN ·ãÆÍ¥²¥Ã¥¿¡¼¥º
++¤È¤Ä¤²¤­¤Á¤å¤¦ #T35 ÆÍ·â¿ß
++¤È¤Ê¤«¤¤ #JN ŽÄŽÅŽ¶Ž²
++¤È¤Ó¤¹¤­¡¼¤ä¡¼¤â¤Ê¡¼ #JN Èô¤Ó¥¹¥­¡¼¥ä¡¼¥â¥Ê¡¼
++¤È¤Ô #T35 ¥È¥Ô
++¤È¤Þ¤È #T35 tomato
++¤È¤à #JN ¥È¥à
++¤È¤á #T35 ¥È¥á
++¤È¤â¤è¤â¤Ê¡¼ #JN ÃÎÀ¤¥â¥Ê¡¼
++¤È¤ä¤Þ #T35 ¥È¥äËâ
++¤È¤ä¤Þ #T35 ŽÄŽÔËâ
++¤È¤ä¤Þ¤ó¤³ #T35 ¥È¥ä¥Þ¥ó¥³
++¤È¤ä¤Þ¤ó¤³ #T35 ŽÄŽÔŽÏŽÝŽº
++¤È¤è¤Ï¤·¤·¤ß¤ó #T35 Ë­¶¶»Ô̱
++¤È¤é¤¦¤Þ¡¼ #JN (||Žß§¥Žß)ŽÄŽ×Ž³ŽÏŽ°
++¤È¤é¤¦¤Þ¡¼ #JN ¥È¥é¥¦¥Þ¡¼
++¤È¤é¤¦¤Þ¡¼ #JN ŽÄŽ×Ž³ŽÏŽ°
++¤È¤é¤¯¤ó¤¢¤ó¤É¤«¤×¤¯¤ó #JN ¤È¤é¤¯¤ó¡õ¤«¤×¤¯¤ó
++¤È¤é¤¯¤ó¤¢¤ó¤É¤«¤×¤¯¤ó #JN ¤È¤é¤¯¤ó¡õ¤«¤×¤¯¤ó
++¤È¤é¤é¡¼ #JN ¥È¥é¥é¡¼
++¤È¤ê #CN Ä»
++¤È¤ê #CN ÆÓ
++¤È¤ê #KK ÆÓ
++¤È¤ê #T35 Ä»
++¤È¤ê #T35 ÆÓ
++¤È¤ê¤³¤á #CN ¼è¤ê¹þ¤á
++¤È¤ê¤³¤á #CN Ä»ÊÆ
++¤È¤ê¤³¤á #T35 ¼è¤ê¹þ¤á
++¤È¤ê¤³¤á #T35 Ä»ÊÆ
++¤È¤ê¤µ¤ó #JN ¥È¥ê¤µ¤ó
++¤È¤ê¤Ã¤× #T35 ¥È¥ê¥Ã¥×
++¤È¤ê¤È¤È¤ó¤Ç¤¤¤ë¤â¤é¤é¡¼ #JN Ä»¤ÈÈô¤ó¤Ç¤¤¤ë¥â¥é¥é¡¼
++¤È¤ê¤Ï¤à #T35 Ä»¤Ï¤à
++¤È¤ì¤«¤á #T35 ¥È¥ì¥«¥á
++¤È¤ó #T35 ­Å
++¤È¤ó¤­¤ó #CN ¥È¥ó¥­¥ó
++¤È¤ó¤­¤ó #T35 ¥È¥ó¥­¥ó
++¤È¤ó¤Á¤ã¤â¤ó #KK ¥È¥ó¥Á¥ã¥â¥ó
++¤È¤ó¤Á¤ã¤â¤ó #T35 ¥È¥ó¥Á¥ã¥â¥ó
++¤È¤ó¤É¤ë #CJ ¥È¥ó¥É¥ë
++¤È¤ó¤É¤ë #CJ ­Å­Ë
++¤È¤ó¤É¤ë #JN ­Å­Ë
++¤È¤ó¤Ú¤¤ #T35 ¥È¥ó¥Ú¥¤
++¤É¡¼¤â¤¯¤ó #T35 ¤É¡¼¤â·¯
++¤É¤¤¤¨ #JN ¥É¥¤¥¨
++¤É¤¤¤¨ #R5 ¥É¥¤¥¨
++¤É¤¤¤¨ #T35 ¥É¥¤¥¨
++¤É¤¤¤Ä¤â¤Ê¡¼ #JN ¥É¥¤¥Ä¥â¥Ê¡¼
++¤É¤¦¤·¤·¤ã¤´¤­¤Ö¤ê #JN Ʊ»Ö¼Ò¥´¥­¥Ö¥ê
++¤É¤¦¤¸¤ó #T35 Ʊ¿Í
++¤É¤¦¤¸¤ó¤ª¤ó¤Ê #T35 Ʊ¿Í½÷
++¤É¤¦¤Æ¤¤ #T35 ƸÄç
++¤É¤¦¤Ç¤â¤¤¤¤¤Ë¤À #JN ¤É¤¦¤Ç¤â¤¤¤¤¥Ë¥À
++¤É¤¦¤Ç¤â¤¤¤¤¤ä¡¼ #JN ¥É¥¦¥Ç¥â¥¤¥¤¥ä¡¼
++¤É¤¦¤Ç¤â¤¤¤¤¤ä¤½¤ó¤Ê¤³¤È #JN ¤É¤¦¤Ç¤â¤¤¤¤¤ä¡¢¤½¤ó¤Ê¤³¤È¡ª
++¤É¤¦¤Ç¤â¤¤¤¤¤è #JN ¤É¤¦¤Ç¤â¤¤¤¤¤è
++¤É¤¦¤â¤¹¤ß¤Þ¤»¤ó #JN ¥É¥¦¥â¥¹¥ß¥Þ¥»¥ó
++¤É¤¦¤â¤¹¤ß¤Þ¤»¤ó #JN ŽÄŽÞŽ³ŽÓŽ½ŽÐŽÏŽ¾ŽÝ
++¤É¤¦¤è #CJ ¤É¤¦¤è
++¤É¤¦¤è #SUC ¤É¤¦¤è
++¤É¤¦¤í¤¸¤ç¤¦¤Û¤¦¤Ò¤ç¤¦¤¸¤Ð¤ó #JN ƻϩ¾ðÊóɽ¼¨ÈÄ
++¤É¤©¡¼¡¼¤ó #JN ¥É¥©¡¼¡¼¥ó¡ª¡ª¡ª
++¤É¤©¡¼¡¼¤ó2 #JN ¥É¥©¡¼¡¼¥ó¡ª¡ª¡ª£²
++¤É¤­¤å¤½ #T35 DQS
++¤É¤­¤å¤½ #T35 ¥É¥­¥å¥½
++¤É¤­¤å¤½¤ª¤¦¤³¤¯¤Ë¤Ã¤Ý¤ó #JN ¥É¥­¥å¥½²¦¹ñÆüËÜ
++¤É¤­¤å¤½¤ª¤¦¤³¤¯¤Ë¤Ã¤Ý¤ó #JN ŽÄŽÞŽ·Ž­Ž¿²¦¹ñÆüËÜ
++¤É¤­¤å¤½¤Á¤ã¤ó #JN ŽÄŽÞŽ·Ž­Ž¿¤Á¤ã¤ó
++¤É¤­¤å¤â #KK ¥É¥­¥å¥â
++¤É¤­¤å¤â #T35 ¥É¥­¥å¥â
++¤É¤­¤å¤ó #T35 DJN
++¤É¤­¤å¤ó #T35 £Ä£Ñ£Î
++¤É¤­¤å¤ó #T35 ¥É¥­¥å¥ó
++¤É¤­¤å¤ó¤Ê¤«¤¤¤·¤ã #T35 ¥É¥­¥å¥ó¤Ê²ñ¼Ò
++¤É¤¯¤ª¤È¤³ #T35 ÆÇÃË
++¤É¤¯¤·¤ó¤Æ¤¤¤ª¤¦ #JN ÆÈ¿ÈÄ벦
++¤É¤¯¤¸¤¿ #T35 ¤É¤¯¤¸¤¿
++¤É¤¯¤½ #T35 ÆÇÁÇ
++¤É¤¯¤È¤¦ #CN ÆÈÅç
++¤É¤¯¤È¤¦ #T35 ÆÈÅç
++¤É¤¯¤È¤ë¤Þ¤é #JN ¥É¥¯¥È¥ëM
++¤É¤³¤Ô¡¼ #T35 ¥É¥³£Ð
++¤É¤³¤Ô¤¤ #T35 ¥É¥³P
++¤É¤¹¤¦ #T35 ÅÙ¿ô
++¤É¤»¤¤¤µ¤ó #JN ÅÚÀ±¤µ¤ó
++¤É¤Æ¤Á¤å¡¼ #T35 ¥É¥Æ¥Á¥å¡¼
++¤É¤Æ¤Á¤å¤¦ #T35 ¥É¥Æ¥Á¥å¡¼
++¤É¤Ö¤Í¤º¤ß #T35 ¹ÂÁÍ
++¤É¤à #T35 £Ä£Ï£Í
++¤É¤á¤ë¤É #JN ¥É¥á¥ë¥É
++¤É¤é #JN ¥É¥é
++¤É¤é¤¨¤â¤ó¤Õ¤¯¤â¤È¤Õ¤©¡¼¤à #JN ¥É¥é¤¨¤â¤óÊ¡ËÜ¥Õ¥©¡¼¥à
++¤É¤é¤´¤ó #T35 ¥É¥é¥´¥ó
++¤É¤é¤´¤ó¤ª¤¨¤¹¤È #T35 ¥É¥é¥´¥ó¥ª¥¨¥¹¥È
++¤É¤é¤´¤ó¤¹¤È¤Ã¤× #T35 ¥É¥é¥´¥ó¥¹¥È¥Ã¥×
++¤É¤é¤Ã¤­¤Ê¡¼ #JN ¥É¥é¥Ã¥­¥Ê¡¼
++¤É¤ê¤Á¤ó #T35 ¥É¥ê¥Á¥ó
++¤É¤ê¤ë¤Á¤ó¤Á¤ó #T35 ¥É¥ê¥ë¤Á¤ó¤Á¤ó
++¤É¤ë¤¨¤à¤¤¤¤ #T35 $ME
++¤Ê¤¢¤¹¤¦¤£¤Ã¤Á¤³¤à¤®¤Á¤ã¤ó #T35 ¥Ê¡¼¥¹¥¦¥£¥Ã¥Á¾®Çþ¤Á¤ã¤ó
++¤Ê¤¤¤¹¤Ê¤Ø¤Ã¤É¤Õ¤©¤ó #T35 ¥Ê¥¤¥¹¤Ê¥Ø¥Ã¥É¥Õ¥©¥ó¡ª
++¤Ê¤¨ #KS °à¤¨
++¤Ê¤¨ #T35 °à¤¨
++¤Ê¤¨¤Ê¤¤¤ï #JN ¥Ê¥¨¥Ê¥¤¥ï
++¤Ê¤ª¤ê¤ó #T35 ¤Ê¤ª¤ê¤ó
++¤Ê¤«¤¦¤é¤ï¤Î¤Û¤· #T35 Ã決ϤÎÀ±
++¤Ê¤«¤¸¡¼¤Ô¡¼ #T35 ¤Ê¤«GP
++¤Ê¤«¤¸¤¤¤Ô¤¤ #T35 ¤Ê¤«GP
++¤Ê¤«¤¿¤³ #JN ¤Ê¤«¤¿¤³
++¤Ê¤«¤¿¤³ #T35 ¤Ê¤«¤¿¤³
++¤Ê¤«¤¿¤Þ¤´ #T35 ¤Ê¤«Íñ
++¤Ê¤«¤À¤· #T30 ÃæÅÄ»á
++¤Ê¤«¤Ä¤®¤« #T35 Ãæ·Ñ¤®²Ý
++¤Ê¤«¤Î¤Ò¤È #T35 Ãæ¤Î¿Í
++¤Ê¤¬¤·¤½¤¦¤á¤ó #JN ή¤·¤½¤¦¤á¤ó
++¤Ê¤¬¤Ö¤ó¤Î¤«¤ó¤½¤¦¤â¤¸¤ì¤¹¤æ¤¦¤É¤¦¤¢¤¹¤­¡¼¤¢¡¼¤È #JN Ĺʸ¤Î´¶ÁÛʸ»ú¥ì¥¹Í¶Æ³£Á£Á
++¤Ê¤°¤Á¤ã¤ó¤Í¤ë #T35 ¤Ê¤°¤Á¤ã¤ó¤Í¤ë
++¤Ê¤²¤¹¤Æ¤ë¤â¤Ê¡¼ #JN Åꤲ¼Î¤Æ¤ë¥â¥Ê¡¼
++¤Ê¤´¤ä¤±¤ó #T35 ̾¸Å²°¸©
++¤Ê¤·¤À¤¤ #T35 ̵Âç
++¤Ê¤¾¤Î¤»¤¤¤á¤¤¤¿¤¤ #JN Ææ¤ÎÀ¸Ì¿ÂÎ
++¤Ê¤¾¤Î¤Ë¤Û¤ó¤¸¤ó #JN Ææ¤ÎÆüËÜ¿Í
++¤Ê¤Ã¤Á #JN ¡Ê¡ü¡­¡¼¡®¡ü¡Ë
++¤Ê¤Ã¤Á #JN ¤Ê¤Ã¤Á
++¤Ê¤Ã¤Á #T35 ¤Ê¤Ã¤Á
++¤Ê¤Ã¤Á #T35 °ÂÇÜ
++¤Ê¤Ã¤Á¤¢¤ê¤¬¤È¤¦ #CJ ¤Ê¤Ã¤Á¤¢¤ê¤¬¤È¤¦(¡ü¡­¡¼¡®¡ü)
++¤Ê¤Ã¤Á¤â¤Ê¡¼ #JN ¤Ê¤Ã¤Á¥â¥Ê¡¼
++¤Ê¤Ã¤Á¤å #T35 ¤Ê¤Ã¤Á¤å
++¤Ê¤Ã¤Á¤å¤¦ #T35 Ǽ¿ß
++¤Ê¤Ä¤Á¤å¤¦ #T35 ²Æ¿ß
++¤Ê¤Ä¤Á¤å¤¦¤Ü¤¦ #T35 ²Æ¿ß˼
++¤Ê¤Ä¤Ü¤¦ #T35 ²Æ˼
++¤Ê¤Ä¤á #JN ¥Ê¥Ä¥á
++¤Ê¤Ê¤µ¤ó #JN £·¤µ¤ó
++¤Ê¤Ê¤·¤µ¤ó #T35 ̵̾¤·¤µ¤ó
++¤Ê¤Ê¤·¤µ¤ó¤×¤é¤º¤Þ #JN ̵̾¤·¤µ¤ó¥×¥é¥º¥Þ
++¤Ê¤Ê¤á¤¦¤¨ #T35 ¼Ð¤á¾å
++¤Ê¤Ê¤á¤«¤Ã¤³¤Ï¤ó¤À¤¯¤Æ¤ó¤¿¡¼¤ó¤¨¡¼¤Ï¤ó¤À¤¯¤Æ¤ó¤«¤Ã¤³¤È¤¸¤Ê¤Ê¤á¤×¤ë¤Ã¤Ñ¤Û¤· #JN ¡À(¡¬¢Ï¡¬)¡¿¥×¥ë¥Ã¥Ñ¡ù
++¤Ê¤Ê¤á¤«¤Ã¤³¤Ï¤ó¤À¤¯¤Æ¤ó¤¿¡¼¤ó¤¨¡¼¤Ï¤ó¤À¤¯¤Æ¤ó¤«¤Ã¤³¤È¤¸¤Ê¤Ê¤á¤×¤ë¤Ã¤Ñ¤Û¤· #JN ¡À(Žß¢ÏŽß)¡¿ŽÌŽßŽÙŽ¯ŽÊŽß¡ù
++¤Ê¤Ë¤¤¤Ã¤Æ¤ë¤Õ¤á¤¤ #CJ ²¿¸À¤Ã¤Æ¤ëÉÔÌÀ
++¤Ê¤Ë¤« #KK ²¿¤«
++¤Ê¤Ë¤« #T35 ²¿¤«
++¤Ê¤Ë¤«¤¢¤ë #CJ ¤Ê¤Ë¤«¤¢¤ë¡©
++¤Ê¤Ë¤«¤Ë¤ª¤Ó¤¨¤ë¤®¤³ #JN ((¡¨Žß§¥Žß)Ž¶ŽÞŽ¸Ž¶ŽÞŽ¸ŽÌŽÞŽÙŽÌŽÞŽÙ
++¤Ê¤Ë¤«¤Ë¤ª¤Ó¤¨¤ë¤®¤³ #JN ²¿¤«¤Ë¶±¤¨¤ë¥®¥³
++¤Ê¤Ë¤µ¤Þ #JN ²¿ÍÍ
++¤Ê¤Ë¤µ¤Þ #T35 ²¿ÍÍ
++¤Ê¤Ë¤ß¤Æ¤ó¤À¤è¤µ¤ë #JN ²¿¸«¤Æ¤ó¤À¤è±î
++¤Ê¤Ë¤ç¤ê¡¼¤Ê #JN ŽÅŽÆŽ®ŽØŽ°ŽÅ
++¤Ê¤Î¤é #SUC ¤Ê¤Î¤é
++¤Ê¤Î¤é¤¢ #CJ ¤Ê¤Î¤é¡Á
++¤Ê¤Þ¤¢¤¤¤Ô¤¤ #T35 À¸IP
++¤Ê¤Þ¤¢¤¿¤¿¤«¤¯¤ß¤Þ¤â¤ë #CJ ¤Ê¤ÞÃȤ«¤¯¸«¼é¤ë
++¤Ê¤Þ¤³ #T35 ¤Ê¤Þ¤³
++¤Ê¤Þ¤³¤×¤ì¤¤ #T35 ¤Ê¤Þ¤³¥×¥ì¥¤
++¤Ê¤Þ¤â¤Î #T35 ¥Ê¥Þ¥â¥Î
++¤Ê¤ß¤«¤ì #CJ ¥Ê¥ß¥«¥ì
++¤Ê¤ß¤À¤Ç¤Þ¤¨¤¬¤ß¤¨¤Þ¤»¤ó #CJ ÎÞ¤ÇÁ°¤¬¸«¤¨¤Þ¤»¤ó¡ª
++¤Ê¤à #JN ¥Ê¥â
++¤Ê¤á¤¯¤¸ #JN ¥Ê¥á¥¯¥¸
++¤Ê¤ä¤ß¤¹¤®¤ë¤È¤Ï¤²¤ë #T35 Ǻ¤ß¤¹¤®¤ë¤ÈÆŤ²¤ë
++¤Ê¤æ¤­¤°¤ë¤Þ #JN ̾Àã¼Ö
++¤Ê¤ê¤­¤ê¤¹¤ì #T35 ¤Ê¤ê¤­¤ê¥¹¥ì
++¤Ê¤ê¤¹¤Þ #S5r ¤Ê¤ê¤¹¤Þ
++¤Ê¤ê¤¿¤È¤Ã¤×¤í¤ª¤É #JN ¤Ê¤ê¤¿¤È¤Ã¤×¤í¤ª¤É
++¤Ê¤ê¤¿¤È¤Ã¤×¤í¤ª¤É #JN ¤Ê¤ê¤¿¤È¤Ã¤×¤í¤ª¤É
++¤Ê¤ê¤Ð¤ó #T35 ¥Ê¥ê¥Ð¥ó
++¤Ê¤ì¤¢ #W5 Æë¤ì¹ç
++¤Ê¤ì¤¢¤¤ #T35 Æë¤ì¹ç¤¤
++¤Ê¤í #CJ ¤Ê¤í
++¤Ê¤ó¤¬¤ó¤Æ¤¤¤­¤¢¤Ä #JN Æî´ßÄ㵤°µ
++¤Ê¤ó¤±¤¤¤Ð #T35 ¤Ê¤ó¶¥ÇÏ
++¤Ê¤ó¤À¤«¤Ê¡¼¤¢¤ó¤É¤µ¤¤¤³¡¼¤À #JN ¥Ê¥ó¥À¥«¥Ê¡¼¡õ¥µ¥¤¥³¡¼¥À
++¤Ê¤ó¤À¤«¤ó¤À #CJ ¤Ê¤ó¤À¤«¤ó¤À
++¤Ê¤ó¤Ä¤Ã¤¿¤ê¤·¤Æ #CJ ¤Ê¤ó¤Ä¤Ã¤¿¤ê¤·¤Æ
++¤Ê¤ó¤È¤¤¤¦¤³¤È¤Ç¤·¤ç¤¦ #CJ ¤Ê¤ó¤È¤¤¤¦¤³¤È¤Ç¤·¤ç¤¦
++¤Ê¤ó¤Ð¤¢¤¹¤¯¤¦¤ë #T35 ¥Ê¥ó¥Ð¡¼¥¹¥¯¡¼¥ë
++¤Ê¤ó¤ß¤ó #T35 Æṉ̃
++¤Ê¤ó¤ß¤ó¤¤¤¿ #T35 Æṉ̃ÈÄ
++¤Ê¤ó¤â¤¸¤á¤ò¤¿¤Æ¤è¤ß¤¹¤ë¤Î #CJ ²¿Ê¸»úÌܤò½ÄÆɤߤ¹¤ë¤Î¡©
++¤Ë #T30 ½ªÅß
++¤Ë #T35 2
++¤Ë #T35 ½ªÅß
++¤Ë¡¼ #JN ¥Ë¡¼
++¤Ë¡¼¤¤¤Á¤è¤ó¤¸¤±¤ó #T35 £²¡¦£±£´»ö·ï
++¤Ë¤¤¤Á¤å¤¦ #T35 ny¿ß
++¤Ë¤¤¤Ã¤Ô¤ç¤¦ #CJ ¤Ë°ìɼ
++¤Ë¤­¤³¤¦ #T35 Æó´ü¹»
++¤Ë¤­¤Ó¤¬¤Ç¤­¤¿¤â¤Ê¡¼ #JN ¥Ë¥­¥Ó¤¬½ÐÍ褿¥â¥Ê¡¼
++¤Ë¤¯¤³¤Ã¤×¤ó¤¯¤¨ #CJ ¥Ë¥¯¥³¥Ã¥×¥ó¥¯¥¨!
++¤Ë¤¯¤³¤Ã¤×¤ó¤¯¤¨ #CJ ŽÆŽ¸ŽºŽ¯ŽÌŽßŽÝŽ¸Ž´!
++¤Ë¤¯¤³¤Ã¤×¤ó¤¯¤¨ #JN ¥Ë¥¯¥³¥Ã¥×¥ó¥¯¥¨!
++¤Ë¤¯¤³¤Ã¤×¤ó¤¯¤¨ #JN ŽÆŽ¸ŽºŽ¯ŽÌŽßŽÝŽ¸Ž´!
++¤Ë¤¯¤³¤×¡¼¤ó #CJ (¡¦¢Ï¡¦)¥Ë¥¯¥³¥×¡¼¥ó
++¤Ë¤¯¤³¤×¡¼¤ó #CJ (Ž¥¢ÏŽ¥)ŽÆŽ¸ŽºŽÌŽßŽ°ŽÝ
++¤Ë¤¯¤³¤×¡¼¤ó #CJ ¥Ë¥¯¥³¥×¡¼¥ó
++¤Ë¤¯¤³¤×¡¼¤ó #CJ ŽÆŽ¸ŽºŽÌŽßŽ°ŽÝ
++¤Ë¤¯¤³¤×¡¼¤ó #JN (Ž¥¢ÏŽ¥)ŽÆŽ¸ŽºŽÌŽßŽ°ŽÝ
++¤Ë¤¯¤³¤×¡¼¤ó #JN ¥Ë¥¯¥³¥×¡¼¥ó
++¤Ë¤¯¤³¤×¡¼¤ó #JN ŽÆŽ¸ŽºŽÌŽßŽ°ŽÝ
++¤Ë¤¯¤Ï¤ó¤Ë¤ã #KK ÆùÈ̼ã
++¤Ë¤¯¤Ï¤ó¤Ë¤ã #T35 ÆùÈ̼ã
++¤Ë¤¯¤Ù¤ó¤­ #T35 ÆùÊØ´ï
++¤Ë¤²¤Ã¤È #JN 2¥²¥Ã¥È
++¤Ë¤²¤Æ¤§¤Ë¤²¤Æ¤§¤Ë¤²¤Æ¤§¤Ï¤ä¤¯¤Ë¤²¤Æ¤§¤Ã #JN ƨ¤²¤Æ¤§Æ¨¤²¤Æ¤§Æ¨¤²¤Æ¤§Á᤯ƨ¤²¤Æ¤§¥Ã¡ª
++¤Ë¤³¤ì¤Ã¤È #JN ¥Ë¥³¥ì¥Ã¥È
++¤Ë¤· #JN Æó»à
++¤Ë¤· #JNS Æó»à
++¤Ë¤· #T35 Æó»à
++¤Ë¤·¤¿¤ó #JN Æó»à¥¿¥ó
++¤Ë¤·¤¿¤ó #T35 Æó»à¥¿¥ó
++¤Ë¤·¤Æ¤Ä¤Ð¤¹¤¸¤ã¤Ã¤¯¤¸¤±¤ó #KK À¾Å´¥Ð¥¹¥¸¥ã¥Ã¥¯»ö·ï
++¤Ë¤·¤Æ¤Ä¤Ð¤¹¤¸¤ã¤Ã¤¯¤¸¤±¤ó #T35 À¾Å´¥Ð¥¹¥¸¥ã¥Ã¥¯»ö·ï
++¤Ë¤·¤å¤¦¤Í¤ó¤¤¤Ù¤ó¤È #T35 £²¼þǯ¥¤¥Ù¥ó¥È
++¤Ë¤¸¤²¤ó #T35 Æ󼡸µ
++¤Ë¤¸¤²¤ó¤ª¤¿ #T35 Æ󼡸µ¥ª¥¿
++¤Ë¤¸¤²¤ó¤ò¤¿ #T35 Æ󼡸µ¥ò¥¿
++¤Ë¤¸¤å¤¦ #T35 20
++¤Ë¤¸¤å¤¦¤Ê¤Ê¤·¤­¤¯¤½¤¹¤ì¤¯¤Á¤¯¤Æ¤¤ #JN 27¼°Êµ¥¹¥ì¶îÃàÄú
++¤Ë¤¸¤å¤Ã¤È¤¦¤·¤ó #T35 20Æ®¿À
++¤Ë¤¸¤ç¤¦¤¬¤ï¤é¤Î¤é¤¯¤·¤ç #T35 Æó¾ò²Ï¸¶¤ÎÍî½ñ
++¤Ë¤»¤¢¤æ #T35 µ¶¤¢¤æ
++¤Ë¤»¤Ï¤ë¤Ê¤¢¤ó¤É¤¦¤Ë¤å¤¦¤ê¡¼¤Ê #JN µ¶½ÕºÚ¡õ¤¦¤Ë¤å¤¦¥ê¡¼¥Ê
++¤Ë¤»¤á¤Ã¤» #T35 µ¶¥á¥Ã¥»
++¤Ë¤»¤â¤Ê¡¼ #JN µ¶¥â¥Ê¡¼
++¤Ë¤»¤ó¤Î¤ï¤¶ #CJ 2000¤Îµ»
++¤Ë¤À¡¼ #JN ¥Ë¥À¡¼
++¤Ë¤À¡¼ #JN ŽÆŽÀŽÞŽ°
++¤Ë¤À¡¼¤¿¤¤¤¤ #JN ¥Ë¥À¡¼Âç°Ó
++¤Ë¤À¡¼¤Á¤ç #JN ¥Ë¥À¡¼¥Á¥ç
++¤Ë¤À¤À¡¼ #JN ¥Ë¥À¥À¡¼
++¤Ë¤À¤À¡¼ #JN ¥Ë¥À¥À¡¼
++¤Ë¤Á¤ã¤ó #CJ 2ch
++¤Ë¤Á¤ã¤ó #CJ £²¤Á¤ã¤ó
++¤Ë¤Á¤ã¤ó #T35 2ch
++¤Ë¤Á¤ã¤ó #T35 £²¤Á¤ã¤ó
++¤Ë¤Á¤ã¤ó¤µ¤Ð¤«¤Ã¤Æ¤Ê¤«¤ó¤·¤¸¤ç #T35 2ch»ª¾¡¼ê¤Ê´Æ»ë½ê
++¤Ë¤Á¤ã¤ó¤Æ¤­¤Ë¤Ï #CJ £²£ã£èŪ¤Ë¤Ï
++¤Ë¤Á¤ã¤ó¤Æ¤­¤Ò¤ç¤¦¤« #T35 £²£ã£èŪɾ²Á
++¤Ë¤Á¤ã¤ó¤Í¤ë¤¯¤½¤¹¤ì¤Ã¤É¤Ä¤¤¤Û¤¦¤»¤ó¤»¤ó #JN £²¤Á¤ã¤ó¤Í¤ëʵ¥¹¥ì¥Ã¥ÉÄÉÊüÀïÀþ
++¤Ë¤Á¤ã¤ó¤Í¤ë¤°¤ó¤Ý¤¦¤¬¤¤¤® #JN £²£ã£è·³Ë¡²ñµÄ
++¤Ë¤Á¤ã¤ó¤Í¤ë¤µ¤Ý¡¼¤È¤»¤ó¤¿¡¼ #JN £²¤Á¤ã¤ó¤Í¤ë¥µ¥Ý¡¼¥È¥»¥ó¥¿¡¼
++¤Ë¤Á¤ã¤ó¤Í¤ë¤¼¤ó¤¤¤¿¤Ë¤ó¤­¤È¤¦¤Ê¤á¤ó¤È #T35 2¤Á¤ã¤ó¤Í¤ëÁ´ÈĿ͵¤¥È¡¼¥Ê¥á¥ó¥È
++¤Ë¤Á¤ã¤ó¤Í¤ë¤¿¤¢¤Ü #T35 2¤Á¤ã¤ó¤Í¤ë¥¿¡¼¥Ü
++¤Ë¤Á¤ã¤ó¤Í¤ë¤Ä¤¦ #T35 2ch2
++¤Ë¤Á¤ã¤ó¤Í¤ë¤Ä¤¦ #T35 2¤Á¤ã¤ó¤Í¤ë2
++¤Ë¤Á¤ã¤ó¤Í¤ë¤Ê¤Ê¤Á¤å¤¦¤¤¤¿ #CJ £²¤Á¤ã¤ó¤Í¤ë¼·¿ßÈÄ
++¤Ë¤Á¤ã¤ó¤Í¤ë¤Ê¤Ê¤Á¤å¤¦¤¤¤¿ #T35 £²¤Á¤ã¤ó¤Í¤ë¼·¿ßÈÄ
++¤Ë¤Á¤ã¤ó¤Í¤ë¤Ë #T35 2ch2
++¤Ë¤Á¤ã¤ó¤Í¤ë¤Ë #T35 2¤Á¤ã¤ó¤Í¤ë2
++¤Ë¤Á¤ã¤ó¤Í¤ë¤Î¤Ï¤ó¤Ö¤ó¤Ï¤Í¤¿¤Ç¤Ç¤­¤Æ¤¤¤Þ¤¹ #CJ 2¤Á¤ã¤ó¤Í¤ë¤ÎȾʬ¤Ï¥Í¥¿¤Ç¤Ç¤­¤Æ¤¤¤Þ¤¹
++¤Ë¤Á¤ã¤ó¤Í¤ë¤Ó¤å¤¦¤¢ #T35 2¤Á¤ã¤ó¤Í¤ë¥Ó¥å¡¼¥¢
++¤Ë¤Á¤ã¤ó¤Í¤ë¤Ö¤é¤¦¤¶ #T35 2¤Á¤ã¤ó¤Í¤ë¥Ö¥é¥¦¥¶
++¤Ë¤Á¤ã¤ó¤Ö¤í¤° #T35 2ch-Blog
++¤Ë¤Á¤ã¤ó¤×¤í¤Ð¤¤¤À¤¢ #T35 2ch¥×¥í¥Ð¥¤¥À¡¼
++¤Ë¤Á¤ã¤ó¤ì¤ó¤á¤¤ #JN 2¤Á¤ã¤óÏ¢ÌÁ
++¤Ë¤Ã¤­ #JN Æüµ­
++¤Ë¤Ã¤­ #T35 Æüµ­
++¤Ë¤Ã¤­¡¼ #JN ¥Ë¥Ã¥­¡¼
++¤Ë¤Ã¤¯¤·¤ó¤»¤¤ #T30 ¥Ë¥Ã¥¯¿½ÀÁ
++¤Ë¤Ã¤»¤¤ #T35 ¥Ë¥Ã¥»¥¤
++¤Ë¤Ã¤»¤¤ #T35 ÆüÀÂ
++¤Ë¤Ã¤Ý¤ó¤Ï¤Ï¤ó¤»¤¤¤·¤ë #CJ ÆüËܤÏÈ¿¾Ê¤·¤ë¡ª
++¤Ë¤È¤¦¤¸¤ç¤æ¤¦ #T35 ÆóÅù½÷Í¥
++¤Ë¤È¤¦¤Ø¤¤ #JN ÆóÅùʼ
++¤Ë¤È¤¦¤Ø¤¤ #T35 ÆóÅùʼ
++¤Ë¤Ë¤Á¤ã¤ó¤¬¤¢¤Ã¤¿¤é¤·¤ê¡¼¤º #SUC ¤Ë£²¤Á¤ã¤ó¤¬¤¢¤Ã¤¿¤é¥·¥ê¡¼¥º
++¤Ë¤Ë¤Á¤ã¤ó¤¬¤¢¤Ã¤¿¤é¤·¤ê¡¼¤º #T35 ¤Ë£²¤Á¤ã¤ó¤¬¤¢¤Ã¤¿¤é¥·¥ê¡¼¥º
++¤Ë¤Ë¤Á¤ã¤ó¤¬¤¢¤Ã¤¿¤é¤·¤ê¤¤¤º #T35 ¤Ë£²¤Á¤ã¤ó¤¬¤¢¤Ã¤¿¤é¥·¥ê¡¼¥º
++¤Ë¤Ï¤ï¤é¤Ã¤¿ #CJ ¤Ë¤Ï¾Ð¤Ã¤¿¡ª
++¤Ë¤Û¤ó¤µ¤ó¤­¤ç¤¦¤À¤¤¤¬¤¯ #T35 ÆüËÜ£³µþÂç³Ø
++¤Ë¤Û¤ó¤»¤¤¤á¤¤ #KK ÆüËÜÀ¸Ì¿
++¤Ë¤Û¤ó¤Á¤ã¤ó #KK ¥Ë¥Û¥ó¤Á¤ã¤ó
++¤Ë¤Û¤ó¤Á¤ã¤ó #T35 ¥Ë¥Û¥ó¤Á¤ã¤ó
++¤Ë¤ã¤¦ #JN ¤Ë¤ã¤¦¡¡
++¤Ë¤ä¤Ë¤ä #CJ ¥Ë¥ä¥Ë¥ä
++¤Ë¤ä¤ê #CJ ¡Ê¡±¡¼¡±¡Ë¥Ë¥ä¥ê
++¤Ë¤ä¤ê #CJ ¥Ë¥ä¥ê
++¤Ë¤ä¤ê¤Ã #CJ ¡Ê¡±¡¼¡±¡Ë¥Ë¥ä¥ê¥Ã
++¤Ë¤ä¤ê¤Ã #CJ ¡Ê¡±¡¼¡±¡ËŽÆŽÔŽØŽ¯
++¤Ë¤ä¤ê¤Ã #JN ¡Ê¡±¡¼¡±¡ËŽÆŽÔŽØŽ¯
++¤Ë¤ä¤ê¤Ã #JN ¥Ë¥ä¥ê¥Ã
++¤Ë¤ä¤ê¤Ã #JN ŽÆŽÔŽØŽ¯
++¤Ë¤å¡¼¤¹¤¹¤Æ¡¼¤·¤ç¤ó #KK ¥Ë¥å¡¼¥¹¥¹¥Æ¡¼¥·¥ç¥ó
++¤Ë¤å¤¦¤¹¤½¤¯¤Û¤¦¤×¤é¤¹ #T35 ¥Ë¥å¡¼¥¹Â®Êó+
++¤Ë¤å¤¦¤½¤¯¤×¤é¤¹¤­¤·¤ã #T35 ¥Ë¥å¡¼Â®+µ­¼Ô
++¤Ë¤ç #RT ¤Ë¤ç
++¤Ë¤ç¤¤¤¬¤¿ #T35 ¥Ë¥ç¥¤³ã
++¤Ë¤ç¤¤¤¬¤¿ #T35 ŽÆŽ®Ž²³ã
++¤Ë¤ç¤¬¡¼¤ó #CJ (Žß§ÕŽß)ŽÆŽ®Ž¶ŽÞŽ°ŽÝ
++¤Ë¤ç¤¬¡¼¤ó #CJ ¥Ë¥ç¥¬¡¼¥ó
++¤Ë¤ç¤¬¡¼¤ó #CJ ŽÆŽ®Ž¶ŽÞŽ°ŽÝ
++¤Ë¤ç¤Á¤ó¤À¤ó #T35 ½÷ÄÁÃÄ
++¤Ë¤é¤¤¤à #JN ¥Ë¥é¥¤¥à
++¤Ë¤é¤Á¤ã¤¨¤ë¤»¤¤¤Ð¡¼ #JN ¥Ë¥é¥Á¥ã¥¨¥ë¥»¥¤¥Ð¡¼
++¤Ë¤é¤Á¤ã¤Å¤Þ #JN ¥Ë¥éÃãºÊ
++¤Ë¤é¤Á¤ã¤Í¤³ #JN ¥Ë¥éÃãÇ­
++¤Ë¤é¤Á¤ã¤à¤¹¤á #JN ¥Ë¥éÃã̼
++¤Ë¤é¤à¤· #JN ¥Ë¥éÃî
++¤Ë¤ë¤Ï¡¼¤Ë¤ã¤ó #JN ¤Ë¤ë¤Ï¡¼¤Ë¤ã¤ó
++¤Ë¤ï¤« #T35 ¥Ë¥ï¥«
++¤Ë¤ï¤«¤é¤·¤ê¡¼¤º #CN Äí¤«¤é¥·¥ê¡¼¥º
++¤Ë¤ï¤«¤é¤·¤ê¡¼¤º #T35 Äí¤«¤é¥·¥ê¡¼¥º
++¤Ë¤ï¤«¤é¤·¤ê¤¤¤º #T35 Äí¤«¤é¥·¥ê¡¼¥º
++¤Ë¤ó¤¤¤¿¤ó #JN Ǥ°Õ¤¿¤ó
++¤Ë¤ó¤·¤ó #KK Ç¥¿±
++¤Ë¤ó¤·¤ó #T35 Ç¥¿±
++¤Ë¤ó¤¸¤ã #JN ¥Ë¥ó¥¸¥ã
++¤Ë¤ó¤Æ¤ó¤É¤¦¤«¤¤¤°¤ó¤³¤¦¤¯¤¦¤¿¤¤ #T35 ǤŷƲ³¤·³¹Ò¶õÂâ
++¤Ë¤ó¤é¤¤¤ó #T35 Ǧ¥é¥¤¥ó
++¤Ì¡¼¤ë #T35 ¥Ì¡¼¥ë
++¤Ì¤¦¤¬¤¿ #CN ¤Ì¤¦¤¬¤¿
++¤Ì¤¦¤¬¤¿ #T35 ¤Ì¤¦¤¬¤¿
++¤Ì¤¦¤ë #T35 ¥Ì¡¼¥ë
++¤Ì¤­¤Ê¤ß #F04 ¤Ì¤­¤Ê¤ß
++¤Ì¤­¤Ê¤ß #T35 ¤Ì¤­¤Ê¤ß
++¤Ì¤Ã¤Ø¤Ã¤Û¡¼ #CJ ¥Ì¥Ã¥Ø¥Ã¥Û¡¼
++¤Ì¤Ã¤Ø¤Ã¤Û¡¼ #JN (Ž¥¢ÏŽ¥¢ÏŽ¥)ŽÇŽ¯ŽÍŽ¯ŽÎŽ°
++¤Ì¤Ã¤Ø¤Ã¤Û¡¼ #JN ¤Ì¤Ã¤Ø¤Ã¤Û¡¼
++¤Ì¤Ã¤Ø¤Ã¤Û¡¼ #JN ¥Ì¥Ã¥Ø¥Ã¥Û¡¼
++¤Ì¤Ã¤Ø¤Ã¤Û¡¼ #JN ŽÇŽ¯ŽÍŽ¯ŽÎŽ°
++¤Ì¤Ã¤Ø¤Ã¤Û¡¼ #T35 (¡¦¢Ï¡¦¢Ï¡¦)¥Ì¥Ã¥Ø¥Ã¥Û¡¼
++¤Ì¤Ã¤Ø¤Ã¤Û¡¼ #T35 (Ž¥¢ÏŽ¥¢ÏŽ¥)ŽÇŽ¯ŽÍŽ¯ŽÎŽ°
++¤Ì¤Ã¤Ý¤ó #T35 ¥Ì¥Ã¥Ý¥ó
++¤Ì¤Þ¤Ã¤­ #KK ¤Ì¤Þ¤Ã¤­
++¤Ì¤Þ¤Ã¤­ #T35 ¤Ì¤Þ¤Ã¤­
++¤Ì¤ê¤«¤Ù¤â¤Ê¡¼ #JN ¤Ì¤êÊÉ¥â¥Ê¡¼
++¤Ì¤ë #KY ¥Ì¥ë
++¤Ì¤ë¤Ý #T35 ¤Ì¤ë¤Ý
++¤Í #CJ ne¡ª
++¤Í¡¼¤Î #JN ¥Í¡¼¥Î
++¤Í¡¼¤è¤ª¤Ö¤Í¡¼¤è #JN ¥Í¡¼¥è¡¦¥ª¥Ö¡¦¥Í¡¼¥è
++¤Í¡¼¤è¤É¤¦¤á¤¤ #JN ¥Í¡¼¥èƱÌÁ
++¤Í¤¨ #JN ¤Í¤¨
++¤Í¤¨¤Í¤¨ #CJ ¤Í¤§¤Í¤§
++¤Í¤¨¤Ü¤¯¤¹¤´¤¤¤Ç¤·¤ç #JN ¤Í¤¨¤Ü¤¯¤¹¤´¤¤¤Ç¤·¤ç
++¤Í¤ª¤¦¤¦¤í¤ó¤Á¤ã #T35 ¥Í¥ª±¨Î¶Ãã
++¤Í¤ª¤¿¤¤¤Æ¤¤ #JN ¥Í¥ªÂçÄë
++¤Í¤ª¤à¤®¤Á¤ã #JN ¥Í¥ª¤à¤®Ãã
++¤Í¤ª¤à¤®¤Á¤ã #JN ¥Í¥ªÇþÃã
++¤Í¤«¤Þ #T30 ¥Í¥«¥Þ
++¤Í¤«¤Þ #T35 ¥Í¥«¥Þ
++¤Í¤® #CN ¤Í¤®
++¤Í¤® #CN ¥Í¥®
++¤Í¤® #T35 ¤Í¤®
++¤Í¤® #T35 ¥Í¥®
++¤Í¤¯¤í¤Þ¤é¤é¡¼ #JN ¥Í¥¯¥í¥Þ¥é¥é¡¼
++¤Í¤³¤À¤¤¤¹¤­ #CJ ¤Í¤³Âç¹¥¤­
++¤Í¤³¤ä¤·¤­ #CN Ç­²°Éß
++¤Í¤³¤ä¤·¤­ #T35 Ç­²°Éß
++¤Í¤¹ #JN ¥Í¥¹
++¤Í¤¹¤±¤·¤ó¤¸¤ã #T35 ¥Í¥¹¥±¿®¼Ô
++¤Í¤¹¤â¤Ê¡¼ #JN ¥Í¥¹¥â¥Ê¡¼
++¤Í¤º¤ß¤ª¤È¤³ #JN ¥Í¥º¥ßÃË
++¤Í¤º¤ß¤Ï¤é¤æ¤¦¤¶¤ó #JN Á͸¶Íº»°
++¤Í¤¿ #T35 ¥Í¥¿
++¤Í¤¿¤·¤ç¤¯¤Ë¤ó¤¹¤ì #T35 ¥Í¥¿¿¦¿Í¥¹¥ì
++¤Í¤¿¤¹¤ì #T35 ¥Í¥¿¥¹¥ì
++¤Í¤¿¤À¤í #CJ ¥Í¥¿¤À¤í¡©
++¤Í¤¿¤Ð¤é¤·¤Á¤å¤¦ #T35 ¥Í¥¿¤Ð¤é¤·¿ß
++¤Í¤Á¤±¤Ã¤È¤¸¤¤¤µ¤ó #JN ¥Í¥Á¥±¥Ã¥È¤¸¤¤¤µ¤ó¡¡
++¤Í¤Á¤º¤ó #T35 ¥Í¥Á¥º¥ó
++¤Í¤Á¤º¤ó #T35 ÙÔ¥Á¥º¥ó
++¤Í¤Á¤å¤¦ #T35 ¥Í¿ß
++¤Í¤Á¤ó #T35 ¥ÍÄÁ
++¤Í¤Ã¤È¤Á¤ó #T35 NetÄÁ
++¤Í¤Ã¤È¤×¤ì¤¤¤ä¤¢ #T35 ¥Í¥Ã¥È¥×¥ì¥¤¥ä¡¼
++¤Í¤Ã¤È¤é¤ó¤Ê¤¢ #KK ¥Í¥Ã¥È¥é¥ó¥Ê¡¼
++¤Í¤Ê¤Ù #T35 ¥Í¥Ê¥Ù
++¤Í¤Ë¤Á¤ê¡¼¤ó #JN ¡Ê¡¦¢Ï¡¦¡ËŽÈŽÆŽÁŽØŽ°ŽÝ
++¤Í¤Ë¤Á¤ê¡¼¤ó #JN ¥Í¥Ë¥Á¥ê¡¼¥ó
++¤Í¤Ë¤Á¤ê¡¼¤ó #T35 ¥Í¥Ë¥Á¥ê¡¼¥ó
++¤Í¤á¤ó¤Ê #CJ ¤Í¤á¤ó¤Ê
++¤Í¤é¤¢ #T35 ¥Í¥é¡¼
++¤Í¤é¤ó¤Á¤å¤¦ #T35 ¥Í¥é¥ó¿ß
++¤Í¤ì #CJ ¿²¤ì
++¤Í¤ó¤Á¤ã¤¯ #T35 Ç´Ãå
++¤Í¤ó¤Á¤ã¤¯¤¯¤ó #T35 Ç´Ãå·¯
++¤Í¤ó¤Ö¤Ä¤·¤å¤¦¤È¤¦¤ß¤«¤¤ #KK Ç°Ê©½¡Åϳ¤²ñ
++¤Í¤ó¤Ö¤Ä¤·¤å¤¦¤È¤¦¤ß¤«¤¤ #T35 Ç°Ê©½¡Åϳ¤²ñ
++¤Í¤ó¤ê¤ç¤¦ #T35 dzÎÁ
++¤Î¡¼¤Á¤ã¤ó #JN ¤Î¡¼¤Á¤ã¤ó
++¤Î¡¼¤Í #JN ¥Î¡¼¥Í
++¤Î¤¢¤ª¤¿ #T35 ¥Î¥¢¥ª¥¿
++¤Î¤¤¤Ã¤Ñ¤ó¤Æ¤­¤Ê¤È¤¯¤Á¤ç¤¦ #SUC ¤Î°ìÈÌŪ¤ÊÆÃħ
++¤Î¤¦¤« #JN ÇÀ²È
++¤Î¤¦¤­¤ç¤¦ #T35 ÇÀ¶¨
++¤Î¤¦¤Ê¤¤ #T35 ǾÆâ
++¤Î¤¦¤Ê¤¤¤¢¤Ü¡¼¤ó #T30 ǾÆ⤢¤Ü¡¼¤ó
++¤Î¤ª¤È¤ó¤»¤ó¤»¤¤ #T35 ¥Î¡¼¥È¥óÀèÀ¸
++¤Î¤ª¤È¤ó¤È¤é¤Ã¤× #T35 ¥Î¡¼¥È¥ó¥È¥é¥Ã¥×
++¤Î¤« #CJ ¤Î¤«
++¤Î¤« #SUC ¤Î¤«
++¤Î¤«¡¼ #JN ¥Î¥«¡¼
++¤Î¤°¤½ #T35 NGS
++¤Î¤¹¤¿¤ë¤Ï #T35 ¥Î¥¹¥¿¥ëÇÈ
++¤Î¤Î¤½¡¼¤ê #JN ¤Î¤ÎÁíÍý
++¤Î¤Î¤¿¤ó #JN ¤Î¤Î¤¿¤ó
++¤Î¤Î¤¿¤ó #T35 ¤Î¤Î¤¿¤ó
++¤Î¤Î¤¿¤ó #T35 ÄÔ
++¤Î¤Ó #KSr ¿­¤Ó
++¤Î¤Ó¤Î¤Ó¤·¤¿¤ä¤Ä #JN ¤Î¤Ó¤Î¤Ó¤·¤¿¥ä¥Ä
++¤Î¤Ó¤ç¤ß¤å¤¢¤¢¤à #JN ¥Î¥Ó¥ç¥ß¥å¥¢¥¡¥à
++¤Î¤Ó¤ç¤ß¤å¤¢¤¢¤à #JN ŽÉŽËŽÞŽ®ŽÐŽ­Ž±Ž§ŽÑ
++¤Î¤Ö¤ä¤Ü #T35 ¤Î¤Ö¤ä¤Ü
++¤Î¤è¤«¤ó #CJ ¤Îͽ´¶!!
++¤Î¤é¤Ê¤Ã¤Á #JN ÌîÎɤʤäÁ
++¤Î¤é¤Í¤³ #JN ÌîÎÉÇ­
++¤Î¤ê #T35 ³¤ÂÝ
++¤Î¤ê¤ò #T35 ¥Î¥ê¥ò
++¤Î¤í¤¤¤Þ¤¢¤¹ #CJ ¼ö¤Þ¡¼¤¹
++¤Î¤í¤¾¤¦ #T35 ¤Î¤í¤¾¤¦
++¤Î¤ó¤¹¤Æ #T35 ¥Î¥ó¥¹¥Æ
++¤Ï #KK ÍÕ
++¤Ï #T35 ÍÕ
++¤Ï¤¡ #CJ ¥Ï¥¡¡©
++¤Ï¤¡ #JN ¡Ê¡ë§¥¡ë)ŽÊŽ§¡©
++¤Ï¤¡ #JN ¥Ï¥¡?
++¤Ï¤¡¤Ï¤¡ #CJ (;¡­§¥¡®)¥Ï¥¡¥Ï¥¡
++¤Ï¤¡¤Ï¤¡ #CJ (;¡­§¥¡®)ŽÊŽ§ŽÊŽ§
++¤Ï¤¡¤Ï¤¡ #CJ ¥Ï¥¡¥Ï¥¡
++¤Ï¤¡¤Ï¤¡ #CJ ŽÊŽ§ŽÊŽ§
++¤Ï¤¡¤Ï¤¡ #JN (;¡­§¥¡®)ŽÊŽ§ŽÊŽ§
++¤Ï¤¡¤Ï¤¡ #JN ¥Ï¥¡¥Ï¥¡
++¤Ï¤¡¤Ï¤¡ #JN ŽÊŽ§ŽÊŽ§
++¤Ï¤¡¤Ï¤¡ #T30 ¥Ï¥¡¥Ï¥¡
++¤Ï¤¡¤Ï¤¡ #T30 ŽÊŽ§ŽÊŽ§
++¤Ï¤¡¤Ï¤¡¤Ê¤ó¤Æ¤Ç¤­¤Ê¤¤¤è #CJ ŽÊŽ§ŽÊŽ§¤Ê¤ó¤Æ½ÐÍè¤Ê¤¤¤è¡Ä
++¤Ï¤¡¤Ï¤¡¤Ê¤ó¤Æ¤Ç¤­¤Ê¤¤¤è #JN ¥Ï¥¡¥Ï¥¡¤Ê¤ó¤Æ½ÐÍè¤Ê¤¤¤è¡Ä
++¤Ï¤¡¤Ï¤¡¤Ê¤ó¤Æ¤Ç¤­¤Ê¤¤¤è #JN ŽÊŽ§ŽÊŽ§¤Ê¤ó¤Æ½ÐÍè¤Ê¤¤¤è¡Ä
++¤Ï¤¢ #CJ ¤Ï¤¡¡©
++¤Ï¤¢ #JN ¡Ê¡ë§¥¡ë)ŽÊŽ§¡©
++¤Ï¤¢¤Ï¤¢ #CJ ¥Ï¥¡¥Ï¥¡
++¤Ï¤¤¤­¤ç #CN ÇÑÔÒ
++¤Ï¤¤¤­¤ç #T35 ÇÑÔÒ
++¤Ï¤¤¤¹¤´¤¤¤¹¤´¤¤ #JN ¡³¡ÌŽß§¥Žß¡ÍШŽÊŽ²Ž½ŽºŽÞŽ²Ž½ŽºŽÞŽ²
++¤Ï¤¤¤¹¤´¤¤¤¹¤´¤¤ #JN ¥Ï¥¤¥¹¥´¥¤¥¹¥´¥¤
++¤Ï¤¤¤¹¤´¤¤¤¹¤´¤¤ #JN ŽÊŽ²Ž½ŽºŽÞŽ²Ž½ŽºŽÞŽ²
++¤Ï¤¤¤½¤Ê¤»¤ì¤Ö¤Ë¤Þ¤¿¤¤¤Ã¤Ý #CJ ¥Ï¥¤¥½¤Ê¥»¥ì¥Ö¤Ë¤Þ¤¿°ìÊâ¶á¤Å¤­¤Þ¤·¤¿¤Ç¤¹¡£
++¤Ï¤¤¤Ã¤¤¤½¤¦ #CJ Æþ¤Ã¤¤¤½¤¦
++¤Ï¤¤¤É #JN ¤Ï¤¤¤É
++¤Ï¤¤¤É #T35 ¤Ï¤¤¤É
++¤Ï¤¤¤à¤Ä #T35 ³¥¥à¥Ä
++¤Ï¤«¡¼ #T35 ¥Ï¥«¡¼
++¤Ï¤«¡¼ #T35 Ê衼
++¤Ï¤«¤¢ #T35 ¥Ï¥«¡¼
++¤Ï¤«¤¢ #T35 Ê衼
++¤Ï¤«¤® #KK ÍÕ¸°
++¤Ï¤«¤®¤¤¤¿ #CN ÍÕ¸°ÈÄ
++¤Ï¤«¤®¤¤¤¿ #T35 ÍÕ¸°ÈÄ
++¤Ï¤«¤®¤¤¤¿¤µ¤¤¤â¤¨¤ª¤È¤³¤È¡¼¤Ê¤á¤ó¤È #T35 ÍÕ¸°ÈĺÇdz¤¨Ã˥ȡ¼¥Ê¥á¥ó¥È
++¤Ï¤«¤®¤¤¤¿¤µ¤¤¤â¤¨¤È¡¼¤Ê¤á¤ó¤È #KK ÍÕ¸°ÈĺÇ˨¥È¡¼¥Ê¥á¥ó¥È
++¤Ï¤«¤®¤¤¤¿¤µ¤¤¤â¤¨¤È¡¼¤Ê¤á¤ó¤È #T35 ÍÕ¸°ÈĺÇ˨¥È¡¼¥Ê¥á¥ó¥È
++¤Ï¤«¤®¤»¤ó¤½¤¦ #T35 ÍÕ¸°ÀïÁè
++¤Ï¤«¤®¤Á¤å¤¦ #T35 ÍÕ¸°¿ß
++¤Ï¤«¤®¤Ã¤³ #T35 ÍÕ¸°¤Ã»Ò
++¤Ï¤­¤å¤¦¤ó #CJ HQN
++¤Ï¤®¤¤¤¿ #CN ÇëÈÄ
++¤Ï¤®¤¤¤¿ #T35 ÇëÈÄ
++¤Ï¤®¤ï¤é #CJ (Ç븶
++¤Ï¤®¤ï¤é #CJ Ç븶
++¤Ï¤¯ #T30 ¥Ï¥¯
++¤Ï¤¯¤½¤ê¡¼¤Ê¤Ø #JN ¤Ï¤¯¤½¥ê¡¼¥Ê¤Ø
++¤Ï¤¯¤À¤Ä¤Á¤å¤¦ #T35 ÇíÃ¥¿ß
++¤Ï¤¯¤Á #T35 ÇòÃÔ
++¤Ï¤°¤­ #JN »õ·Ô
++¤Ï¤°¤­ #T35 »õ·Ô
++¤Ï¤°¤ë¤Þ¤ª¤¦ #JN »õ¼Ö²¦
++¤Ï¤°¤ë¤Þ¤ï¤ó¤Á¤§¤ó #JN »õ¼Ö¥ï¥ó¥Á¥§¥ó
++¤Ï¤°¤ë¤Þ¤ï¤ó¤Á¤§¤ó #JN »õ¼Ö¥ï¥ó¥Á¥§¥ó¡Ê²¾¾Î¡Ë
++¤Ï¤°¤ì¤Ê¤Þ¤³ #T35 ¤Ï¤°¤ì¤Ê¤Þ¤³
++¤Ï¤±¡¼¤ó #T30 ¥Ï¥±¡¼¥ó
++¤Ï¤±¡¼¤ó #T30 ŽÊŽ¹Ž°ŽÝ
++¤Ï¤² #T35 »³²¼
++¤Ï¤²¤·¤¯¤¯¤Î¤¤¤Á #JN ·ã¤·¤¯¤¯¥Î°ì
++¤Ï¤²¤·¤¯¤À¤ß¡¼ #JN ·ã¤·¤¯¥À¥ß¡¼
++¤Ï¤²¤·¤¯¤É¤¥¤¤¤¨ #CJ ·ã¤·¤¯¥É¥¥¥¤¥¨¡ª
++¤Ï¤²¤·¤¯¤É¤¦¤¤ #CJ ·ã¤·¤¯Æ±°Õ¡ª
++¤Ï¤²¤·¤¯¤É¤¦¤Ò #CJ ·ã¤·¤¯Æ±Èô¡ª
++¤Ï¤²¤·¤¯¤Ë¤ç¤¦¤¤ #CJ ·ã¤·¤¯Ç¢°Õ¡ª
++¤Ï¤²¤·¤¯¤Ë¤ó¤¸¤ã #JN ·ã¤·¤¯Ç¦¼Ô
++¤Ï¤²¤·¤¯¤Ò¤ç¤¦¤¤ #CJ ·ã¤·¤¯Øá°Í¡ª
++¤Ï¤²¤É¤¦ #CJ ¤Ï¤²¤É¤¦
++¤Ï¤²¤É¤¦ #CJ ÆÅƱ
++¤Ï¤²¤É¤¦ #T30 ¤Ï¤²¤É¤¦
++¤Ï¤²¤É¤¦ #T30 ÆÅƱ
++¤Ï¤²¤â¤Ê¡¼ #JN hage¥â¥Ê¡¼
++¤Ï¤²¤ó¤ê¤·¤å¤® #T35 ÍÕ¸¶Íý¼çµÁ
++¤Ï¤³¤³¤Ç¤¹¤« #CJ ¤Ï¤³¤³¤Ç¤¹¤«¡©
++¤Ï¤³¤³¤Ç¤¹¤« #SUC ¤Ï¤³¤³¤Ç¤¹¤«¡©
++¤Ï¤·¤ë¤ó¤Ç¤¹ #T35 Áö¥ë¥ó¤Ç¤¹
++¤Ï¤¸¤Ã¤³ #T35 ÃѤûÒ
++¤Ï¤¸¤ë¤¹ #T35 ¤Ï¤¸¤ë¤¹
++¤Ï¤¹ #T35 Ï¡
++¤Ï¤¹¤³¤é #T35 Ï¡¥³¥é
++¤Ï¤º #T35 ¥Ï¥º
++¤Ï¤Á¤¤¤Á¤´¤¸¤±¤ó #T35 £¸£±£µ»ö·ï
++¤Ï¤Á¤¬¤Ä¤­¤­ #T35 £¸·î´íµ¡
++¤Ï¤Á¤¸¤ç¤¦¤¸¤Þ¤¸¤«¤ó¤«¤ó¤ê¤»¤ó¤¿¡¼ #JN Ȭ¾æÅç»þ´Ö´ÉÍý¥»¥ó¥¿¡¼
++¤Ï¤Á¤Á¤Á #T35 ¤Ï¤Á¤Á¤Á
++¤Ï¤Á¤È¤¦¤·¤ó¤Î #RT £¸Æ¬¿È¤Î¡¡
++¤Ï¤Á¤È¤¦¤·¤ó¤Î¤Þ¤ë¤Þ¤ë #JN £¸Æ¬¿È¤Î¡û¡û¡¡
++¤Ï¤Ã¤«¡¼ #T35 ¥Ï¥Ã¥«¡¼
++¤Ï¤Ã¤«¤¢ #T35 ¥Ï¥Ã¥«¡¼
++¤Ï¤Ã¤¯¤é¤¤¤¿ #CN ¥Ï¥Ã¥¯¥éÈÄ
++¤Ï¤Ã¤¯¤é¤¤¤¿ #T35 ¥Ï¥Ã¥¯¥éÈÄ
++¤Ï¤Ã¤·¤å #T35 ¥Ï¥Ã¥·¥å
++¤Ï¤Ã¤»¤ó¤Á¤å¤¦ #T35 8000¿ß
++¤Ï¤Ã¤Á¤ã¤±¤Æ¤°¤¥ #CJ ¤Ï¤Ã¤Á¤ã¤±¤Æ¥°¥¥
++¤Ï¤Ã¤Æ¤ó #T35 hatten
++¤Ï¤Ã¤Æ¤ó #T35 ¥Ï¥Ã¥Æ¥ó
++¤Ï¤Ã¤Æ¤ó¤¯¤ó #JN hatten·¯
++¤Ï¤Ã¤Æ¤ó¤·¤Í¡¼¤è #JN ȯŸ¥·¥Í¡¼¥è
++¤Ï¤Ã¤È¤¦¤·¤ó¤ª¤Ë¤®¤ê¤â¤Ê¡¼ #JN £¸Åù¿È¤ª¤Ë¤®¤ê¥â¥Ê¡¼
++¤Ï¤Ã¤È¤¦¤·¤ó¤®¤³ #JN ȬƬ¿È¥®¥³
++¤Ï¤Ã¤È¤¦¤·¤ó¤»¤ó¤è¤¦¤¬¤¯¤ä¤¦¤é¤³¤¿¤Ä #JN ȬƬ¿ÈÀìÍѳڲ°Î¢ßÙßý
++¤Ï¤Ã¤È¤¦¤·¤ó¤á¤ó¤É¤¯¤»¤§ #JN ȬƬ¿ÈŽÒŽÝŽÄŽÞŽ¸Ž¾Žª
++¤Ï¤Ã¤È¤¦¤·¤ó¤â¤Ê¡¼ #JN £¸Æ¬¿È¥â¥Ê¡¼
++¤Ï¤Ã¤È¤¦¤·¤ó¤â¤Ê¡¼¤¯¤ó #JN £¸¤È¤¦¤·¤ó¥â¥Ê¡½¤¯¤ó
++¤Ï¤Ã¤È¤¦¤·¤ó¤ò¤Û¤í¤Ü¤¹¤Ë¤»¤¤¤Á¤µ¤ó #JN £¸Æ¬¿È¤òÌǤܤ¹µ¶£±¤µ¤ó
++¤Ï¤Ã¤Ñ #T35 ÍÕ¤ÃÇÉ
++¤Ï¤Ã¤Ñ¤¿¤¤ #JN ¤Ï¤Ã¤ÑÂâ
++¤Ï¤Ã¤Ô¤¤¤Ä¤ê¤¤¤Õ¤ì¤ó¤º #T35 HappyTreeFriends
++¤Ï¤Ä¤·¤Ð¤ê¤Ã¤¯ #T35 ½é¼Ç¥ê¥Ã¥¯
++¤Ï¤Ä¤É¤¦ #T30 ȯư
++¤Ï¤Ä¤Ò¤Î¤Ç¤Á¤ó¤½¤¦ #T30 ½éÆü¤Î½Ð¡ùÄÁÁö
++¤Ï¤Ç¤¹¤á¤ó¤Ð¡¼ #KK ¥Ï¥Ç¥¹¥á¥ó¥Ð¡¼
++¤Ï¤Ç¤¹¤á¤ó¤Ð¡¼ #T35 ¥Ï¥Ç¥¹¥á¥ó¥Ð¡¼
++¤Ï¤Ç¤¹¤á¤ó¤Ð¤¢ #T35 ¥Ï¥Ç¥¹¥á¥ó¥Ð¡¼
++¤Ï¤È #JN È·
++¤Ï¤È #T35 È·
++¤Ï¤È¤¢¤Ë #JN È··»
++¤Ï¤È¤¢¤Ë #T35 È··»
++¤Ï¤È¤ª¤È¤¦¤È #JN È·Äï
++¤Ï¤È¤ª¤È¤¦¤È #T35 È·Äï
++¤Ï¤È¤ä¤Þ¤æ¤­¤ª #JN È·»³Í³µªÉ×
++¤Ï¤É¤¦¤Û¤¦ #JN ÇÈưˤ
++¤Ï¤Ê #T35 ²Ú
++¤Ï¤Ê¤² #JN É¡ÌÓ
++¤Ï¤Ê¤² #T35 É¡ÌÓ
++¤Ï¤Ê¤Ü¤¦¤· #JN ²Ö˹»Ò
++¤Ï¤Ë¤ã¤ó¤¾¤¦ #JN ¥Ï¥Ë¥ã¥ó¢
++¤Ï¤Í¤À #T35 Ä·¤Í¤À
++¤Ï¤Þ #T35 ¤Ï¤Þ
++¤Ï¤Þ #T35 ¥Ï¥Þ
++¤Ï¤Þ¤Þ¤Ä¤ê #T35 ¤Ï¤Þº×¤ê
++¤Ï¤à #KK ¸ø
++¤Ï¤à #T35 ¸ø
++¤Ï¤à¤³ #JNM ¥Ï¥à»Ò
++¤Ï¤à¤³ #T35 ¥Ï¥à»Ò
++¤Ï¤à¤¹¤¿¡¼ #JN ¡¡¡¡¡¡¡Ê,¡Ë¡¡¡¡¡¡¡¡¡Á("¡¦)
++¤Ï¤à¤¹¤¿¡¼ #JN ¥Ï¥à¥¹¥¿¡¼
++¤Ï¤à¤¿¤í¤¦ #JN ¥Ï¥àÂÀϺ
++¤Ï¤à¤Ê¤×¤È¤é #JN ¥Ï¥à¥Ê¥×¥È¥é
++¤Ï¤ä¤¯¤¢¤ä¤Þ¤ì¤è #CJ Á᤯¼Õ¤ì¤è
++¤Ï¤ä¤ß¤Þ¤¹¤ß #JN ®¿å¿¿À¡
++¤Ï¤é¤·¤Þ #T35 ¥Ï¥é¥·¥Þ
++¤Ï¤é¤·¤Þ¤ó #T35 ¥Ï¥é¥·¥Þ¥ó
++¤Ï¤ê¡¼¤Ý¤Ã¤¿¡¼¤È¤Ø¤É¤¦¤£¤° #JN ¥Ï¥ê¡¼¡¦¥Ý¥Ã¥¿¡¼¤È¥Ø¥É¥¦¥£¥°
++¤Ï¤ë¤¤¤Á¤Ð¤ó #JN ½Õ°ìÈÖ
++¤Ï¤ë¤¤¤Á¤Ð¤ó #T35 ½Õ°ìÈÖ
++¤Ï¤ë¤« #T35 ¥Ï¥ë¥«
++¤Ï¤ë¤Á¤å¤¦ #T35 ½Õ¿ß
++¤Ï¤ë¤ä¤Þ #JNS ½Õ»³
++¤Ï¤ï¤é¤Ã¤¿ #CJ ¤Ï¾Ð¤Ã¤¿¡ª
++¤Ï¤ï¤é¤Ã¤¿ #SUC ¤Ï¾Ð¤Ã¤¿¡ª
++¤Ï¤ó¤«¤¯ #T35 ¤Ï¤ó¤«¤¯
++¤Ï¤ó¤«¤¯¤«¤Ê #T35 Ⱦ³Ñ¥«¥Ê
++¤Ï¤ó¤«¤¯¤«¤Ê¤¤¤¿ #T35 Ⱦ³Ñ¤«¤ÊÈÄ
++¤Ï¤ó¤«¤¯¤Ë¤¸¤²¤ó¤¤¤¿ #T35 Ⱦ³ÑÆ󼡸µÈÄ
++¤Ï¤ó¤«¤¯¤â¤¸¤ì¤Ä #T35 Ⱦ³Ñʸ»úÎó
++¤Ï¤ó¤«¤¯¤â¤¸¤ì¤Ä¤¤¤¿ #CN Ⱦ³Ñʸ»úÎóÈÄ
++¤Ï¤ó¤«¤¯¤â¤¸¤ì¤Ä¤¤¤¿ #KK Ⱦ³Ñʸ»úÎóÈÄ
++¤Ï¤ó¤«¤¯¤â¤¸¤ì¤Ä¤¤¤¿ #T35 Ⱦ³Ñʸ»úÎóÈÄ
++¤Ï¤ó¤­¤å¤¦ #KK ȾµÙ
++¤Ï¤ó¤­¤å¤¦ #KK Ⱦµå
++¤Ï¤ó¤­¤å¤¦ #T35 ȾµÙ
++¤Ï¤ó¤­¤å¤¦ #T35 Ⱦµå
++¤Ï¤ó¤­¤å¤¦¤Ï¤º #T35 ÈȵçŽÊŽ½ŽÞ
++¤Ï¤ó¤°¤ë¤¤¤¿¤À¤¤¤¤¤Á¤Û¤¦¤½¤¯ #T35 ¥Ï¥ó¥°¥ëÈÄÂè°ìˡ§
++¤Ï¤ó¤³¤¦¤è¤³¤¯ #T30 ÈȹÔͽ¹ð
++¤Ï¤ó¤³¤¦¤è¤³¤¯¤¹¤ì #T35 ÈȹÔͽ¹ð¥¹¥ì
++¤Ï¤ó¤·¤ó¤À¤¤¤·¤ó¤µ¤¤¤Ï¤ï¤é¤¨¤¿ #CJ ºå¿ÀÂç¿ÌºÒ¤Ï¾Ð¤¨¤¿¡ª
++¤Ï¤ó¤¸¤ã¤¤¤·¤ã #T35 ÈȺá¼Ô
++¤Ï¤ó¤º¤Ü¤ó¤· #T35 Ⱦ¥º¥Ü¥ó»á
++¤Ï¤ó¤»¤¤¤·¤ë¤ª¤¸¤µ¤ó #JN È¿¾Ê¤·¤ë¤ª¤¸¤µ¤ó
++¤Ï¤ó¤»¤¤¤·¤ë¤ª¤¸¤µ¤ó #T35 È¿¾Ê¤·¤ë¤ª¤¸¤µ¤ó
++¤Ï¤ó¤½¤¦¤ª¡¼¤ë¤¹¤¿¡¼ #JN ÈÂÁ÷¥ª¡¼¥ë¥¹¥¿¡¼
++¤Ï¤ó¤Á¤ó #T35 ÈÈÄÁ
++¤Ï¤ó¤È¤¦ #T35 ȾÅç
++¤Ï¤ó¤É¤ë #T35 ¥Ï¥ó¥É¥ë
++¤Ï¤ó¤É¤ë¤Í¡¼¤à #T35 ¥Ï¥ó¥É¥ë¥Í¡¼¥à
++¤Ï¤ó¤É¤ë¤Í¤¨¤à #T35 ¥Ï¥ó¥É¥ë¥Í¡¼¥à
++¤Ï¤ó¤Ë¤ã #SUC È̼ã
++¤Ï¤ó¤Ë¤ã¤·¤ó¤®¤ç¤¦ #JN È̼㿴·Ð
++¤Ï¤ó¤Î¤¦ #T35 ȾǾ
++¤Ð¡¼ #JN BAR
++¤Ð¡¼ #T35 ¥Ð¡¼
++¤Ð¡¼¤¸¤ó¤­¤é¡¼¤¢¤Ù¤ë #JN ½è½÷¥­¥é¡¼¥¢¥Ù¥ë
++¤Ð¡¼¤¿¤ì #T35 ¥Ð¡¼¥¿¥ì
++¤Ð¡¼¤Á¤ã¤Í¤Ã¤È¤¢¤¤¤É¤ë¤Ë¤·¤à¤é¤Ò¤í¤³12¤µ¤¤ #JN ¥Ð¡¼¥Á¥ã¥ë¥Í¥Ã¥È¥¢¥¤¥É¥ëÀ¾Â¼Çî»Ò£±£²ºÐ
++¤Ð¡¼¤Á¤ã¤ë¤Í¤Ã¤È¤¢¤¤¤É¤ë¤¨¤ë¤¨¤ë¤¨¤ë #JN ¥Ð¡¼¥Á¥ã¥ë¥Í¥Ã¥È¥¢¥¤¥É¥ëLLL
++¤Ð¡¼¤Ü¤Ã¤È #JN ¥Ð¡¼¥Ü¥Ã¥È
++¤Ð¡¼¤ä #JN ¥Ð¡¼¥ä
++¤Ð¡¼¤ä #T35 ¥Ð¡¼¥ä
++¤Ð¤¢ #T35 ¥Ð¡¼
++¤Ð¤¢¤¿¤ì #T35 ¥Ð¡¼¥¿¥ì
++¤Ð¤¢¤ä #T35 ¥Ð¡¼¥ä
++¤Ð¤¤¤«¤¯¤â¤¸ #T35 ÇܳÑʸ»ú
++¤Ð¤¤¤¯¤ì¡¼¤¹ #T35 ¥Ð¥¤¥¯¥ì¡¼¥¹
++¤Ð¤¤¤Ð¤¤ #JN ÊÞ²ÊÞ²
++¤Ð¤¤¤Ð¤¤ #JN ŽÊŽÞŽ²ŽÊŽÞŽ²
++¤Ð¤¤¤í¤ó¤â¤ì¤Î #T35 ¥Ð¥¤¥í¥ó¡¦¥â¥ì¥Î
++¤Ð¤«¡¼ #JN ŽÊŽÞŽ¶Ž°
++¤Ð¤«¡¼ #JN ŽÊŽÞŽ¶Ž°¡´(Žß§ÕŽß)ŽÉ¡«
++¤Ð¤«¤¦¤è #JN ¥Ð¥«¥¦¥è
++¤Ð¤«¤®¤Ã¤³ #T35 ¥Ð¸°¤Ã»Ò
++¤Ð¤«¤À #T35 ¥Ð¥«ÅÄ
++¤Ð¤«¤Ë¤Ï¤³¤Ô¤Ú¤Ç¤­¤Ê¤¤ #CJ ¦Â¦Á¦Ê¦Á¤Ë¤Ï¥³¥Ô¥Ú¤Ç¤­¤Ê¤¤
++¤Ð¤«¤é¤í¤¦ #T35 ¥Ð¥«¥é¥í¥¦
++¤Ð¤«¤í¤ê¡¼¤¿ #T35 ¥Ð­Ê¥¿
++¤Ð¤«¤í¤ê¡¼¤¿ #T35 ŽÊŽÞ­ÊŽÀ
++¤Ð¤«¤í¤ê¡¼¤¿¤é¤ê¤Ã¤È¤ë #CJ ¥Ð­Ê¥¿¥é­È
++¤Ð¤«¤í¤ê¡¼¤¿¤é¤ê¤Ã¤È¤ë #CJ ŽÊŽÞ­ÊŽÀŽ×­È
++¤Ð¤«¤í¤ê¤¤¤¿ #T35 ŽÊŽÞ­ÊŽÀ(¥Ð¥«¥í¥ê¡¼¥¿)
++¤Ð¤«¤í¤ê¤¤¤¿¤é¤ê¤Ã¤È¤ë #CJ ŽÊŽÞ­ÊŽÀŽ×­È
++¤Ð¤«¤ó¤³¤¯ #CN ¥Ð´Ú¹ñ
++¤Ð¤«¤ó¤³¤¯ #T35 ¥Ð´Ú¹ñ
++¤Ð¤­¤å¡¼¤à¤«¡¼ #JN ¥Ð¥­¥å¡¼¥à¥«¡¼
++¤Ð¤¯¤²¤­ #T35 Çú·â
++¤Ð¤¯¤¸¤ã¤Ã¤¯¤¸¤±¤ó #KK ¥Ð¥¹¥¸¥ã¥Ã¥¯»ö·ï
++¤Ð¤¯¤À¤ó¤Í¤º¤ß #JN ÇúÃƥͥº¥ß
++¤Ð¤¯¤Á¤å¡¼¤â¤ó¤À¤¤ #JN Çú¥Á¥å¡¼ÌäÂê
++¤Ð¤° #JN ¥Ð¥°
++¤Ð¤µ¤í¤¹¤ì #T35 ¥Ð¥µ¥í¥¹¥ì
++¤Ð¤¹¤¸¤ã¤Ã¤¯ #T30 ¥Ð¥¹¥¸¥ã¥Ã¥¯
++¤Ð¤º¡¼¤«¤®¤³ #JN ¥Ð¥º¡¼¥«¥®¥³
++¤Ð¤Ã¤µ¤¤¤ä #JN ȲºÎ²°
++¤Ð¤Ä #JN ú¥
++¤Ð¤Ä¤Ð¤³ #T35 ¡ßÈ¢
++¤Ð¤Ä¤Ü¤Ã¤¯¤¹ #T35 ¡ß¥Ü¥Ã¥¯¥¹
++¤Ð¤È¤é¡¼ #JN ¥Ð¥È¥é¡¼
++¤Ð¤È¤í¤ï¤¹¤ì #JN ¥Ð¥È¥í¥ï¥¹¥ì
++¤Ð¤Ð¤¡ #JN ÇÌ¥¡
++¤Ð¤Ó #R5 ¥Ð¥Ó
++¤Ð¤Ó¤ê¤Æ¤£ #T35 ¥Ð¥Ó¥ê¥Æ¥£
++¤Ð¤Ó¤ë¤Ë¤» #KK ¥Ð¥Ó¥ëµ¶
++¤Ð¤Ó¤ë¤Ë¤» #T35 ¥Ð¥Ó¥ëµ¶
++¤Ð¤é¤³¤¦ #CN ¥Ð¥é¹â
++¤Ð¤é¤³¤¦ #T35 ¥Ð¥é¹â
++¤Ð¤é¤Á¤½ #T35 ¥Ð¥é¥Á¥½
++¤Ð¤é¤Á¤½ #T35 ŽÊŽÞŽ×ŽÁŽ¿
++¤Ð¤ë¤«¤ó¤ï¤Ã¤·¤ç¤¤ #JN ¥Ð¥ë¥«¥ó¡¦¥ï¥Ã¥·¥ç¥¤
++¤Ð¤ó #T35 ÈÇ
++¤Ð¤ó¤À¤¤ #T35 ÈÖÂæ
++¤Ð¤ó¤Á¤ç¤¦ #JN ÈÖĹ
++¤Ð¤ó¤Á¤ç¤¦ #T35 ÈÖĹ
++¤Ñ¤¤¤Ñ¤¤ #T35 ¦Ð¡¹
++¤Ñ¤¤¤Ñ¤ó¤­¤ç¤¦¤À¤¤ #JN ¥Ñ¥¤¥Ñ¥ó·»Äï
++¤Ñ¤¯¤ê #T35 ËÑÍû
++¤Ñ¤½¤³¤ó¤­¤å¤¦¤­¤å¤¦¤Ð¤¹¤¿¤¢¤º #T35 ¥Ñ¥½¥³¥óµßµÞ¥Ð¥¹¥¿¡¼¥º
++¤Ñ¤Ã¤È #T35 Pat
++¤Ñ¤Æ #KK ¥Ñ¥Æ
++¤Ñ¤Æ #T35 ¥Ñ¥Æ
++¤Ñ¤È #KS ¥Ñ¥È
++¤Ñ¤È #R5 ¥Ñ¥È
++¤Ñ¤È #T35 Pat
++¤Ñ¤Ô¤³ #T35 ¥Ñ¥Ô¥³
++¤Ñ¤Ú¤Ã¤È¤Þ¤Ú¤Ã¤È #JN ¥Ñ¥Ú¥Ã¥È¥Þ¥Ú¥Ã¥È
++¤Ñ¤ä¤ª #T35 ¥Ñ¥ä¥ª
++¤Ñ¤é¤µ¤¤¤È¤Ô¤è¤ß¡¼ #JN ¡¡(ŽßoŽß¢¿¡Á~~
++¤Ñ¤é¤µ¤¤¤È¤Ô¤è¤ß¡¼ #JN ¥Ñ¥é¥µ¥¤¥È¥Ô¥è¥ß¡¼
++¤Ñ¤é¤µ¤¤¤È¤Ô¤è¤ß¡¼ #JN ¥Ñ¥é¥µ¥¤¥È¥Ô¥è¥ß¡¼
++¤Ñ¤é¤À¤¤¤¹¤±¤¤¤¶¤¤ #T35 ¥Ñ¥é¥À¥¤¥¹·ÐºÑ
++¤Ñ¤é¤â¤ê¤Þ¤Ä¤ê #T35 ¥Ñ¥é¿¹º×¤ê
++¤Ñ¤ì¡¼¤É #JN ¥Ñ¥ì¡¼¥É
++¤Ñ¤í¤ß¤Î¤¯¤ó #JN ¥Ñ¥í¥ß¥Î·¯
++¤Ñ¤ó¤Æ¤£¤é #T35 ¥Ñ¥ó¥Æ¥£¥é
++¤Ñ¤ó¤Ñ¤« #T35 ¥Ñ¥ó¥Ñ¥«
++¤Ñ¤ó¤Ñ¤ó #T35 ¥Ñ¥ó¥Ñ¥ó¡ª
++¤Ò #T35 Èæ
++¤Ò¡¼¤Ë¤Ë¡¼¤Ë¤Ó¤Ã¤¯¤ê #JN ¥Ò¡¼¥Ë¥Ë¡¼¥Ë¡ª
++¤Ò¤¤¤«¤ê¤ã¤¯ #T35 ¤Ò¡Ê°Ê²¼Î¬¡Ë
++¤Ò¤«¤é¤Ó¤É¤ó #T35 ¤Ò¤«¤é¤ÓЧ
++¤Ò¤«¤ê¤Ä¤¦¤·¤ó #KK ¸÷ÄÌ¿®
++¤Ò¤«¤ë #T35 ¥Ò¥«¥ë
++¤Ò¤¬¤¯¤ó #T35 Èæ²Å·¯
++¤Ò¤¬¤· #JNS ´³²Û»Ò
++¤Ò¤¬¤· #T35 ´³²Û»Ò
++¤Ò¤¬¤·¤«¤¿¤â¤Ê¤¹¤± #JN ÅìÊý¥â¥Ê½õ
++¤Ò¤­¤³ #T35 ¥Ò¥­¥³
++¤Ò¤­¤³¡¼¤â¤ê #JN ¥Ò¥­¥³¡¼¥â¥ê
++¤Ò¤­¤³¤â #R5r ¤Ò¤­¤³¤â
++¤Ò¤­¤³¤â #R5r °ú¤­äƤâ
++¤Ò¤­¤³¤â¤é¤é¡¼ #JN ¥Ò¥­¥³¥â¥é¥é¡¼
++¤Ò¤­¤³¤â¤ê¤³¤Þ¤ë #JN ¥Ò¥­¥³¿¹¥³¥Þ¥ë
++¤Ò¤­¤ã¤¯ #T35 ÈôµÓ
++¤Ò¤¯¤½¤ó #JN ¥Ò¥¯¥½¥ó
++¤Ò¤² #JN ¥Ò¥²
++¤Ò¤² #JN ɦ
++¤Ò¤² #T35 ¥Ò¥²
++¤Ò¤²¤à¤· #T35 ¤Ò¤²¤à¤·
++¤Ò¤µ¤ó¤Ê1 #T35 Èá»´¤Ê£±
++¤Ò¤µ¤ó¤Ê¤¤¤Á #JN Èá»´¤Ê£±
++¤Ò¤µ¤ó¤Ê¤¤¤Á #T35 Èá»´¤Ê1
++¤Ò¤·¤À¤Ê #T35 Èé»é¤À¤Ê
++¤Ò¤·¤ç¤¦¤±¤¤¤É¤¦¤¸¤ó #KK ÈôæÆ·ÏƱ¿Í
++¤Ò¤·¤ç¤¦¤±¤¤¤É¤¦¤¸¤ó #T35 ÈôæÆ·ÏƱ¿Í
++¤Ò¤º¤ß #JN ÏÄ
++¤Ò¤½¤Ò¤ì #T35 ¤Ò¤½¤Ò¤ì
++¤Ò¤Ã¤­¡¼ #JN ¥Ò¥Ã¥­¡¼
++¤Ò¤Ã¤­¡¼ #JN ¥Ò¥Ã¥­¡¼
++¤Ò¤Ã¤­¡¼ #T35 ¤Ò¤Ã¤­¡¼
++¤Ò¤Ã¤­¡¼ #T35 ¥Ò¥Ã¥­¡¼
++¤Ò¤Ã¤­¤¤ #T35 ¥Ò¥Ã¥­¡¼
++¤Ò¤Ã¤·¤À¤Ê #CJ ɬ»à¤À¤Ê
++¤Ò¤Ã¤·¤À¤Ê #T35 ɬ»à¤À¤Ê
++¤Ò¤Ã¤¿¤ê #T35 ¤Ò¤Ã¤¿¤ê
++¤Ò¤Ä¤¸ #T35 ÍÓ
++¤Ò¤Ä¤è¤¦¤¢¤¯¤Î¤Ð¤«¤¹¤Æ¤Ð #T35 ɬÍ×°­¤ÎÇϼ¯¼Î¤Æ¾ì
++¤Ò¤Ç¤§¤ä #JN ¤Ò¤Ç¤§¤ä
++¤Ò¤Ç¤é¤ì #KS HIDE¤é¤ì
++¤Ò¤È¤ª¤ª¤¹¤® #T35 ¿ÍÂç¿ù
++¤Ò¤È¤¯¤¤¤ª¤ª¤ß¤ß #JN ¿Í¿©¤¤Â缪
++¤Ò¤È¤Ð¤·¤é #T35 ¿ÍÃì
++¤Ò¤È¤ß¤Á¤ã¤ó #JN Æ·¤Á¤ã¤ó
++¤Ò¤È¤ê¤è¤¦¤­¤ã¤Ã¤× #T35 ¤Ò¤È¤êÍÑ¥­¥ã¥Ã¥×
++¤Ò¤É¤¦¤É¤¦¤Æ¤¤ #T35 ÈóƻƸÄç
++¤Ò¤Ê¤ó¤¸¤ç #T35 ÈòÆñ½ê
++¤Ò¤Ê¤ó¤¸¤ç¤æ¤¦¤É¤¦¤®¤³ #JN ÈòÆñ½êͶƳ¥®¥³
++¤Ò¤Î¤Ç¤Á¤ç¤¦ #T35 Æü½ÐÄ®
++¤Ò¤Ï¤ó¤è¤¦¤Ü¤¦ #T35 ÈãȽÍ×˾
++¤Ò¤Ò¤Ò¤Ò #CJ ¥Ò¥Ò¥Ò¥Ò
++¤Ò¤Ò¤Ò¤Ò¤Ò #CJ ¥Ò¥Ò¥Ò¥Ò¥Ò
++¤Ò¤Õ¤ß¤¯¤À¤ó #T35 £±£²£³£¹ÃÊ
++¤Ò¤Ù #T35 hibe
++¤Ò¤Ù #T35 ¥Ò¥Ù
++¤Ò¤Þ¤Í¡¼¤è #JN ¥Ò¥Þ¥Í¡¼¥è
++¤Ò¤ã¤¯¤µ¤²¤Ï¤¤¤Á¤¢¤²¤Ë¤·¤«¤º #CJ É´¤µ¤²¤Ï°ì¤¢¤²¤Ë¤·¤«¤º
++¤Ò¤ã¤¯¤µ¤ó¤¸¤å¤¦¤Ë¤Ë¤ó¤á¤Î¤½¤¹¤¦¤µ¤ó #T35 132¿ÍÌܤÎÁÇ¿ô¤µ¤ó
++¤Ò¤ã¤¯¤·¤ç¤¦¤È¤· #T35 É´À«ÅÔ»Ô
++¤Ò¤ã¤¯¤¸¤å¤¦¤­¤å¤¦¤±¤¤¤Ç¤ó¤·¤ã #JN 119·ÏÅżÖ
++¤Ò¤ã¤¯¤Ë¤¸¤å¤¦¤Ï¤Ã¤È¤¦¤·¤ó¤â¤Ê¡¼ #JN 128Ƭ¿È¥â¥Ê¡¼
++¤Ò¤ã¤Ã¤Û¤¦ #CJ ¥Ò¥ã¥Ã¥Û¡¼
++¤Ò¤ã¤Ã¤Û¤¦ #CJ ŽËŽ¬Ž¯ŽÎŽ°
++¤Ò¤è¤³ #JN ¥Ò¥è¥³
++¤Ò¤è¤·¤Á¤å¤¦ #T35 ÆüµÈ¿ß
++¤Ò¤é¤¬¤Ê #JN ¤Ò¤é¤¬¤Ê
++¤Ò¤é¤¬¤Ê #T35 ¤Ò¤é¤¬¤Ê
++¤Ò¤é¤¬¤Ê¤Ç¤å¡¼¤¯ #JN ¤º¤£¤³¤´¤¬¤§¤ª¤¬¤¸¤¢¤¯¤­¤®¤²¤ª¤¬¤¥¤³¤¹¡ã°Ê²¼Î¬¡ä
++¤Ò¤é¤¬¤Ê¤Ç¤å¡¼¤¯ #JN ¤Ò¤é¤¬¤ÊDUKE
++¤Ò¤é¤ß¤ß¤â¤Ê¡¼ #JN Ê¿¼ª¥â¥Ê¡¼
++¤Ò¤é¤ß¤ß¤â¤é¤é¡¼ #JN Ê¿¼ª¥â¥é¥é¡¼
++¤Ò¤ê¤ã¤¯ #T35 ¤Ò¡Êά¡Ë
++¤Ò¤í¤·¤µ¤Þ #JNM ÇîÍÍ
++¤Ò¤í¤·¤µ¤Þ #T35 ÇîÍÍ
++¤Ò¤í¤Ò¤È #JN ¥Ò¥í¥Ò¥È
++¤Ò¤í¤Ò¤È #T35 ¥Ò¥í¥Ò¥È
++¤Ò¤í¤Ý¤ó #JN ¤Ò¤í¤Ý¤ó
++¤Ò¤í¤æ¤­ #JN ¤Ò¤í¤æ¤­
++¤Ò¤í¤æ¤­ #JNM ¤Ò¤í¤æ¤­
++¤Ò¤í¤æ¤­ #T35 ¤Ò¤í¤æ¤­
++¤Ò¤í¤æ¤­¤«¤ó¤Á¤ç¤¯¤Ë¤ó #JN ¤Ò¤í¤æ¤­¡÷´Éľ¿Í
++¤Ò¤í¤æ¤­¤«¤ó¤Á¤ç¤¯¤Ë¤ó #JN ¤Ò¤í¤æ¤­¡÷´Éľ¿Í
++¤Ò¤í¤æ¤­¤«¤ó¤Ê¤ª¤È #JNM ¤Ò¤í¤æ¤­¡÷¿ûľ¿Í
++¤Ò¤í¤æ¤­¤³¤¦¤Ë¤ó¤Õ¤¡¤ó¤¯¤é¤Ö #KK ¤Ò¤í¤æ¤­¸øǧ¥Õ¥¡¥ó¥¯¥é¥Ö
++¤Ò¤í¤æ¤­¤Ã¤Ý¤¤¤Î #JN ¤Ò¤í¤æ¤­¤Ã¤Ý¤¤¤Î
++¤Ò¤í¤æ¤³¤«¤ó¤Ê¤ª¤È #JNM ¤Ò¤í¤æ»Ò¡÷¿ûľ¿Í
++¤Ò¤ó¤Ô¤ç¤¦¤«¤¤ #T30 ÉÊɾ²ñ
++¤Ò¤ó¤Ô¤ç¤¦¤«¤¤ #T35 ÉÊɾ²ñ
++¤Ó¡¼ #T35 £Â
++¤Ó¡¼¤°¤ë #JN ¥Ó¡¼¥°¥ë
++¤Ó¡¼¤°¤ë¤¢¤é¤· #JN ¥Ó¡¼¥°¥ë¹Ó¤é¤·
++¤Ó¡¼¤Á¤¯ #T35 BÃ϶è
++¤Ó¤£ #JN ¤Ó¤£
++¤Ó¤¤¤°¤ë¤¢¤é¤· #T35 ¥Ó¡¼¥°¥ë¹Ó¤é¤·
++¤Ó¤­¤ã¤¯ #JN ÈþµÓ
++¤Ó¤·¤ç¤¦¤¸¤ç¤»¤ó¤·¤»¡¼¤é¡¼¤Õ¡¼¤ó #JN Èþ¾¯½÷Àï»Î¥»¡¼¥é¡¼¤Õ¡¼¤ó
++¤Ó¤·¤ç¤¦¤¸¤ç¤Ë¤ó¤Æ¤¤ #T30 Èþ¾¯½÷ǧÄê
++¤Ó¤¸ #T35 ¥Ó¥¸
++¤Ó¤¸¤Í¤¹¤Ë¤å¤¦¤¹¤×¤é¤¹ #T35 ¥Ó¥¸¥Í¥¹¥Ë¥å¡¼¥¹¡Ü
++¤Ó¤¹¤±¤¿¤ó #T35 ¥Ó¥¹¥±¤¿¤ó
++¤Ô¡¼¤³ #T30 ¥Ô¡¼¥³
++¤Ô¡¼¤³¤ä¤í¤¦ #T35 ¥Ô¡¼¥³ÌîϺ
++¤Ô¤¤ #T35 P
++¤Ô¤«¤Á¤å¡¼ #JN ¥Ô¥«¥Á¥å¡¼
++¤Ô¤«¤Á¤å¤¦ #JN ¥Ô¥«¥Á¥å¥¦
++¤Ô¤«¤Á¤å¤¦ #JN ¥Ô¥«¿ß
++¤Ô¤«¤Ä¡¼ #KK ¥Ô¥«¥Ä¡¼
++¤Ô¤¯¤ß¤½ #JN ¥Ô¥¯¥ß¥½
++¤Ô¤¯¤ß¤ó #JN ¥Ô¥¯¥ß¥ó
++¤Ô¤³ #T35 ¥Ô¥³
++¤Ô¤ç¤ó¤Ô¤ç¤ó #JN ¥Ô¥ç¥ó¥Ô¥ç¥ó
++¤Ô¤í #JN ¥Ô¥í¥³
++¤Ô¤í #T35 ¥Ô¥í
++¤Ô¤í #T35 ¥Ô¥í¥³
++¤Ô¤í¤³ #JN ¥Ô¥í
++¤Ô¤í¤³ #T35 ¥Ô¥í
++¤Ô¤í¤³ #T35 ¥Ô¥í¥³
++¤Ô¤ó¤­¡¼ #JN ¥Ô¥ó¥­¡¼
++¤Ô¤ó¤¯¤¿¤ï¤¢¤É¤Ã¤È¤³¤à #T35 pinktower.com
++¤Ô¤ó¤¯¤Á¤ã¤ó¤Í¤ë #T35 Pink¤Á¤ã¤ó¤Í¤ë
++¤Ô¤ó¤Ý¤ó¤À¤Ã¤·¤å #T30 ¥Ô¥ó¥Ý¥ó¥À¥Ã¥·¥å
++¤Õ¡¼¤ó #CJ ¤Õ¡¼¤ó
++¤Õ¡¼¤ó #JN ¤Õ¡¼¤ó¡¡
++¤Õ¡¼¤ó¤­¤ç¤¦¤À¤¤ #JN ¤Õ¡¼¤ó·»Äï
++¤Õ¤¡¡¼¤¹¤È¤®¤³¤¨¤â¤ó #JN ¥Õ¥¡¡¼¥¹¥È¡¦¥®¥³¥¨¥â¥ó
++¤Õ¤¡¡¼¤¹¤È¤®¤³¤ß #JN ¥Õ¥¡¡¼¥¹¥È¡¦¥®¥³¥ß
++¤Õ¤¡¤¤¤Ê¤ë¤¢¤ó¤µ¤¢ #CJ FA
++¤Õ¤¡¤¤¤Ê¤ë¤¢¤ó¤µ¤¢ #CJ FA?
++¤Õ¤¡¤¤¤Ê¤ë¤¢¤ó¤µ¤¢ #CJ ¥Õ¥¡¥¤¥Ê¥ë¥¢¥ó¥µ¡¼¡©
++¤Õ¤¡¤¤¤Ê¤ë¤¿¤Ö¤¦ #T35 ¥Õ¥¡¥¤¥Ê¥ë¥¿¥Ö¡¼
++¤Õ¤¡¤¤¤Ê¤ë¤Õ¤¡¤ó¤¿¤º¤£ #T35 FINAL¡¡FANTAZY
++¤Õ¤¡¤Ã¤¯¤æ¡¼ #JN ¥Õ¥¡¥Ã¥¯¥æ¡¼
++¤Õ¤¡¤Ã¤¯¤æ¤¦¤Ö¤Á¤³¤í¤¹¤¾ #CJ Fuch¡¡You¡¡¤Ö¤Á»¦¤¹¤¾
++¤Õ¤¡¤Ó¤ç #KS ¥Õ¥¡¥Ó¥ç
++¤Õ¤¡¤Ó¤ç¤ó #T35 ¥Õ¥¡¥Ó¥ç¥ó
++¤Õ¤¡¤é¤ª #JN ¥Õ¥¡¥é¥ª
++¤Õ¤¡¤ó¤¿¤¸¡¼ #T35 ¥Õ¥¡¥ó¥¿¥¸¡¼
++¤Õ¤¡¤ó¤¿¤¸¤¤ #T35 ¥Õ¥¡¥ó¥¿¥¸¡¼
++¤Õ¤£¡¼¤Í¤â¤¨ #JN ¥Õ¥£¡¼¥Í˨¤¨
++¤Õ¤£¤Ã¤·¤ã¡¼¤Þ¤ó #JN ¥Õ¥£¥Ã¥·¥ã¡¼¥Þ¥ó
++¤Õ¤£¤ë¤¿ #T30 ¥Õ¥£¥ë¥¿
++¤Õ¤£¤ë¤¿¡¼ #T35 ¥Õ¥£¥ë¥¿¡¼
++¤Õ¤¦¤­¤¤¤¤¤ó #T35 É÷µª°Ñ°÷
++¤Õ¤¦¤Ö¤Ä¤· #T35 ¤Õ¤¦¤Ö¤Ä¤·
++¤Õ¤¦¤ó #CJ ¥Õ¡¼¥ó
++¤Õ¤¦¤ó #CJ ŽÌŽ°ŽÝ
++¤Õ¤§¤é¡¼¤Á¤ç #JN ¥Õ¥§¥é¡¼¥Á¥ç
++¤Õ¤§¤é¡¼¤Á¤ç¤Õ¤¡¤ß¤ê¡¼ #JN ¥Õ¥§¥é¡¼¥Á¥ç¥Õ¥¡¥ß¥ê¡¼
++¤Õ¤§¤é¤Í¡¼¤è #JN ¥Õ¥§¥é¥Í¡¼¥è
++¤Õ¤©¤¦¤É #T35 4rd
++¤Õ¤©¤é¤Í¡¼¤è #JN ¥Õ¥©¥é¥Í¡¼¥è
++¤Õ¤«¤ß¤¨¤¤¤¤¤Á¤í¤¦ #JN ¿¼¿å±Ñ°ìϺ
++¤Õ¤«¤ï¤ê¤ç¤¦ #JN ¤Õ¤«¤ï¤ê¤ç¤¦
++¤Õ¤®¡¼ #JN ¥Õ¥®¡¼
++¤Õ¤®¤¤ #T35 ¥Õ¥®¡¼
++¤Õ¤¯¤·¤ç¤¦ #JN Éû¾­
++¤Õ¤¯¤·¤ç¤¦ #T35 Éû¾­
++¤Õ¤¯¤¹¤¦¤¹¤ì #T35 Ê£¿ô¥¹¥ì
++¤Õ¤¯¤¹¤¦¤¹¤ì¤Ã¤É #T35 Ê£¿ô¥¹¥ì¥Ã¥É
++¤Õ¤¯¤¹¤± #T35 £²£¹½õ
++¤Õ¤¯¤ì¤­ #T35 ʤÎò
++¤Õ¤° #T35 ²ÏÆÚ
++¤Õ¤°¤ê¤é¡¼ #JN ¥Õ¥°¥ê¥é¡¼
++¤Õ¤µ¤ª #JN ¥Õ¥µÉ×
++¤Õ¤µ¤ª #JNM ¤Õ¤µ¤ª
++¤Õ¤µ¤®¤³ #JN ¥Õ¥µ¥®¥³
++¤Õ¤µ¤®¤³¤³¤¦¤Ü¤ò¤Î¤ß¤¹¤®¤¿¤Õ¤µ¤®¤³ #JN ¥Õ¥µ¥®¥³¹ÚÊì¤ò°û¤ß²á¤®¤¿¥Õ¥µ¥®¥³
++¤Õ¤µ¤®¤³¤Þ¤ó¤À¤ó #JN ¥Õ¥µ¥®¥³Ì¡ÃÌ
++¤Õ¤·¤¢¤Ê¤µ¤ó #T30 fusianasan
++¤Õ¤·¤¢¤Ê¤µ¤ó¤È¤é¤Ã¤× #T35 fusianasan¥È¥é¥Ã¥×
++¤Õ¤¸¤ç¤¦ #T30 Éâ¾å
++¤Õ¤¸¤ç¤· #T35 Éå½÷»Ò
++¤Õ¤Á¤å¤¦¤±¤¤¤à¤·¤ç #JN ÉÜÃ淺̳½ê
++¤Õ¤Ã¤­¤ä #T35 Éüµ¢²°
++¤Õ¤Ã¤µ¡¼¤ë¤¿¤¤¤µ #JN ¥Õ¥Ã¥µ¡¼¥ëÂ纴
++¤Õ¤Ã¤µ¤ë¤È¤Ó¤Õ¤µ¤¹¤± #JN ¥Õ¥Ã±îÈô¥Õ¥µ½õ
++¤Õ¤Ã¤µ¤ë¤È¤Ó¤Õ¤µ¤¹¤± #JN ŽÌŽ¯±îÈôŽÌŽ»½õ
++¤Õ¤Ã¤µ¤ì #JN ŽÌŽ¯Ž»ŽÚ
++¤Õ¤È¤¹¤± #JNM ÂÀÊå
++¤Õ¤È¤¹¤± #T35 ÂÀÊå
++¤Õ¤È¤Þ¤· #JN ¥Õ¥È¥Þ¥·
++¤Õ¤È¤Þ¤· #KY ÂÀ¤Þ¤·
++¤Õ¤È¤Þ¤·¤¤¤»¤¤¤È #JN ÂÀ¤Þ¤·¤¤À¸ÅÌ
++¤Õ¤È¤Þ¤·¤¤¤»¤¤¤È #JN ÂÀ¤Þ¤·¤¤À¸ÅÌ
++¤Õ¤È¤Þ¤·¤¤¤Þ¤é¤é¡¼ #JN ÂÀ¤Þ¤·¤¤¥Þ¥é¥é¡¼
++¤Õ¤È¤Þ¤·¤¤¤â¤Ê¡¼ #JN ÂÀ¤Þ¤·¤¤¥â¥Ê¡¼
++¤Õ¤É¤¦¤ß¤Í #T35 ÉÔÆ°Êö
++¤Õ¤Ë¤¯ #T35 ÉåÆù
++¤Õ¤å¤¦¤¸¤ã¤Í¤¤¤¶¤ó #T35 ¥Õ¥å¡¼¥¸¥ã¥Í¥¤¥¶¥ó
++¤Õ¤å¤¦¤¸¤ã¤Í¤¤¤·¤ã¤ó #T35 ¥Õ¥å¡¼¥¸¥ã¥Í¥¤¥·¥ã¥ó
++¤Õ¤æ¤·¤Ð¤±¤ó #JN Å߼Ƹ¤
++¤Õ¤æ¤·¤Ð¤±¤ó #T35 Å߼Ƹ¤
++¤Õ¤æ¤Á¤å¤¦ #T35 Åß¿ß
++¤Õ¤é¤°¤¬¤¿ #T5 ¥Õ¥é¥°¤¬Î©
++¤Õ¤é¤Ã¤·¤å¤Þ¤ó #JN ¥Õ¥é¥Ã¥·¥å¥Þ¥ó
++¤Õ¤é¤Ã¤È¤¹¤ê¤£ #T35 ¥Õ¥é¥Ã¥È3
++¤Õ¤é¤ó¤¹¤Ñ¤ó #T35 ¥Õ¥é¥½¥¹¥Ñ¥ó
++¤Õ¤é¤ó¤¹¤Ñ¤ó #T35 ŽÌŽ×Ž¿Ž½ŽÊŽßŽÝ
++¤Õ¤ê¡¼¤Õ¤©¡¼¤ë #JN FREEFALL
++¤Õ¤ê¤«¤¨¤ê¤â¤Ê¤« #JN ¿¶¤êÊÖ¤ê¥â¥Ê¥«
++¤Õ¤ê¤ó¤Á¤ã¤ó #T35 ÉÔÎѤÁ¤ã¤ó
++¤Õ¤ë¤¦¡«¤§¤ó #JN ¥Õ¥ë¥ô¥§¥ó
++¤Õ¤ë¤¦¡«¤§¤ó #T35 ¥Õ¥ë¥ô¥§¥ó
++¤Õ¤ì¤Ã¤Ä¤í¤Ü #JN ¥Õ¥ì¥Ã¥Ä¥í¥Ü
++¤Ö¤¤ #JN Éô°Ì
++¤Ö¤¤ #JN Éð°Ò
++¤Ö¤¤ #T35 Éð°Ò
++¤Ö¤¤ #T35 Éô°Ì
++¤Ö¤¯¤Þ¤¯ #T30 ¥Ö¥¯¥Þ¥¯
++¤Ö¤µ¤¤¤³ #T35 ¥Ö¥µ¥¤¥³
++¤Ö¤µ¤è¤¯ #JN ¥Ö¥µ¥è¥¯
++¤Ö¤µ¤è¤¯ #T35 ¥Ö¥µ¥è¥¯
++¤Ö¤¿ #JN ÆÚ
++¤Ö¤¿ #T35 ÆÚ
++¤Ö¤Á #T35 Þ¼
++¤Ö¤Á¤³ #JN ¤Ö¤Á¤³
++¤Ö¤Á¤³ #T35 ¤Ö¤Á¤³
++¤Ö¤Ã¤¯ #T35 ¥Ö¥Ã¥¯
++¤Ö¤Ã¤¯¤Þ¡¼¤¯ #T30 ¥Ö¥Ã¥¯¥Þ¡¼¥¯
++¤Ö¤Ã¤·¤Ä #T35 ʪ¼Á
++¤Ö¤Ã¤À #T35 ¥Ö¥Ã¥À
++¤Ö¤Ä¤À¤ó #T35 Ê©ÃÅ
++¤Ö¤É¤¦¤â¤Ê¡¼ #JN Éòƺ¥â¥Ê¡¼
++¤Ö¤Ì¤¹ #T35 ¥Ö¥Ì¥¹
++¤Ö¤Ó¤Á¤å¤¦ #T35 ¥Ö¥Ó¿ß
++¤Ö¤è¤¯ #T35 ¥Ö¥è¥¯
++¤Ö¤é #T35 ¥Ö¥é
++¤Ö¤é¤¦¤¶¤¯¤é¤Ã¤·¤ã #T35 ¥Ö¥é¥¦¥¶¡¼¥¯¥é¥Ã¥·¥ã
++¤Ö¤é¤¦¤¶¤¯¤é¤Ã¤·¤ã¡¼ #T35 ¥Ö¥é¥¦¥¶¡¼¥¯¥é¥Ã¥·¥ã¡¼
++¤Ö¤é¤¯¤é #T35 ¥Ö¥é¥¯¥é
++¤Ö¤é¤¯¤é #T35 ÉôÍî¤é
++¤Ö¤é¤¯¤é¤Á¤§¤Ã¤« #T35 ¥Ö¥é¥¯¥é¥Á¥§¥Ã¥«
++¤Ö¤é¤¯¤é¤Á¤§¤Ã¤«¡¼ #T35 ¥Ö¥é¥¯¥é¥Á¥§¥Ã¥«¡¼
++¤Ö¤é¤Ã¤¯¤Û¤ª¤ë #T35 ¥Ö¥é¥Ã¥¯¥Û¡¼¥ë
++¤Ö¤ë¤ª¤¿ #T35 ¥Ö¥ë¥ò¥¿
++¤Ö¤ë¤É¤Ã¤¯¤½¡¼¤¹ #KK ¥Ö¥ë¥É¥Ã¥¯¥½¡¼¥¹
++¤Ö¤ì¤¤¤º #T35 ̵Îé¿Þ
++¤Ö¤ì¤¤¤ó¤¬ #JN ¥Ö¥ì¥¤¥ó¥¬
++¤Ö¤í¡¼¤É¤Ð¤ó¤É¤ë¡¼¤¿ #T35 ¥Ö¥í¡¼¥É¥Ð¥ó¥É¥ë¡¼¥¿
++¤Ö¤í¡¼¤É¤Ð¤ó¤É¤ë¡¼¤¿¡¼ #T35 ¥Ö¥í¡¼¥É¥Ð¥ó¥É¥ë¡¼¥¿¡¼
++¤Ö¤í¤Ã¤¯¤¹ #T35 ¤Ö¤í¤Ã¤¯¤¹
++¤×¤¤¤¿ #CN ¥×ÈÄ
++¤×¤¤¤¿ #T35 ¥×ÈÄ
++¤×¤¹¤£¤³ #JN ¤×¤¹¤£»Ò
++¤×¤Ã #CJ ¤×¤Ã
++¤×¤Ã #CJ ¥×¥Ã
++¤×¤Ã #CJ ŽÌŽßŽ¯
++¤×¤Ã #JN ¡Ê¡­,_¡µ¡®¡ËŽÌŽßŽ¯
++¤×¤Ã #JN ŽÌŽßŽ¯
++¤×¤Ã¤×¤¯¤×¡¼ #JN ¤×¤Ã¤×¤¯¤×¡¼
++¤×¤Ë #T35 ¤×¤Ë
++¤×¤Ë #T35 ¥×¥Ë
++¤×¤Ë¤ë #T35 ¥×¥Ë¥ë
++¤×¤Ë¤ë¤Á¤å¤¦ #T35 ¥×¥Ë¥ë¿ß
++¤×¤é¤Ê¤ê¤¢ #JN ¥×¥é¥Ê¥ê¥¢
++¤×¤ê¤¦¤ó¤³ #T35 ¤×¤ê¤¦¤ó¤³
++¤×¤ê¤×¤ê¤Ñ¤Ã¤Ñ #JN ¥×¥ê¥×¥ê¥Ñ¥Ã¥Ñ
++¤×¤ê¤ë¤Ê¤é¤¤¤Þ¤Î¤¦¤Á #CJ ¥×¥ê¥ë¥Ê¥é¥¤¥Þ¥Î¥¦¥Á
++¤×¤ê¤ë¤Ê¤é¤¤¤Þ¤Î¤¦¤Á #CJ ŽÌŽßŽØŽÙŽÅŽ×Ž²ŽÏŽÉŽ³ŽÁ
++¤×¤ê¤ë¤Ê¤é¤¤¤Þ¤Î¤¦¤Á #JN ¥×¥ê¥ë¥Ê¥é¥¤¥Þ¥Î¥¦¥Á
++¤×¤ê¤ë¤Ê¤é¤¤¤Þ¤Î¤¦¤Á #JN ŽÌŽßŽØŽÙŽÅŽ×Ž²ŽÏŽÉŽ³ŽÁ
++¤×¤ê¤ó¤¢¤¿¤Þ #T35 ¥×¥ê¥óƬ
++¤×¤ë¤®¤³ #JN ¥×¥ë¥®¥³
++¤×¤ë¤â¤Ê #JN ¥×¥ë¥â¥Ê
++¤×¤í¤­¤·¤­¤»¤¤ #T35 £Ð£Ò£Ï£Ø£Ùµ¬À©
++¤×¤í¤¯¤· #T35 ¥×¥í¥¯¥·
++¤×¤í¤·¤ß¤ó #T35 ¥×¥í»Ô̱
++¤×¤í¤¸¤§¤¯¤È¤¨¤Ã¤¯¤¹ #KK ¥×¥í¥¸¥§¥¯¥È£Ø
++¤×¤í¤¸¤§¤¯¤È¤¨¤Ã¤¯¤¹ #T35 ¥×¥í¥¸¥§¥¯¥ÈX
++¤×¤í¤¸¤§¤¯¤È¤¨¤Ã¤¯¤¹ #T35 ¥×¥í¥¸¥§¥¯¥È£Ø
++¤×¤í¤¸¤§¤¯¤È¤±¡¼ #KK ¥×¥í¥¸¥§¥¯¥È£Ë
++¤×¤í¤¸¤§¤¯¤È¤±¡¼ #T35 ¥×¥í¥¸¥§¥¯¥È£Ë
++¤×¤í¤¸¤§¤¯¤È¤±¤¨ #T35 ¥×¥í¥¸¥§¥¯¥ÈK
++¤×¤í¤Ð¤¬¤ó¤À¤³¤¦ #T35 ¥×¥í¥Ñ¥¬¥ó¥À¹»
++¤×¤í¤Ñ¤¬¤ó¤À¤¿¤ï¤¢ #T35 ¥×¥í¥Ñ¥¬¥ó¥À¥¿¥ï¡¼
++¤Ø¡¼¤â¤Ê¡¼ #JN ¤Ø¡¼¥â¥Ê¡¼
++¤Ø¤¤¤¢¤ó #JN Ê¿°Â
++¤Ø¤¤¤¢¤ó #T35 Ê¿°Â
++¤Ø¤¤¤µ¤»¤Ä #T35 Êĺ¿Àâ
++¤Ø¤§¤¨ #CJ (¡­Ž¥¢ÏŽ¥`)¤Ø¤§¡¼
++¤Ø¤§¤¨ #CJ ¤Ø¤§¡Á
++¤Ø¤¨¤¨¤­¤ß¤é¤¤¤À¤¢¤Ë¤Ê¤Ã¤¿¤Ð¤Ã¤«¤ê¤Ê¤ó¤À #CJ ¤Ø¤¨¡¼·¯¥é¥¤¥À¡¼¤Ë¤Ê¤Ã¤¿¤Ð¤Ã¤«¤ê¤Ê¤ó¤À
++¤Ø¤³ #T35 ±ú
++¤Ø¤Ä¤° #CJ >>¡û¡û¤Ø¹ð¤°
++¤Ø¤Ê¤® #JNS ¤Ø¤Ê¤®
++¤Ø¤Ê¤® #T35 ¤Ø¤Ê¤®
++¤Ø¤Î¤Ø¤Î¤â¤Ø¤¸ #JN ¤Ø¤Î¤Ø¤Î¤â¤Ø¤¸
++¤Ø¤Ü¤ó #T35 ¤Ø¤Ü¤ó
++¤Ø¤ó¤Ê¤¦¤¿ #T35 ÊѤʲÎ
++¤Ù¤Ã¤½¤¦ #T35 ÊÌÁñ
++¤Ù¤Ó¤·¤£ #JN ¥Ù¥Ó¤·¤£
++¤Ù¤ë¤À¤ó¤Ç¤£¡¼¤¢¤é¤· #JN ¥Ù¥ë¥À¥ó¥Ç¥£¡¼¹Ó¤é¤·
++¤Ù¤ì¤â¤é #JN ¥Ù¥ì¥â¥é
++¤Ù¤ó¤­ #T35 ÊØ´ï
++¤Ù¤ó¤¸¤ç¤Î¤é¤¯¤¬¤­ #T35 Êؽê¤ÎÍî½ñ¤­
++¤Ù¤ó¤¼¤ó¤«¤ó #JN ¥Ù¥ó¥¼¥ó´Ä
++¤Ú¡¼¤¸¤Ó¤å¡¼ #T35 ¥Ú¡¼¥¸¥Ó¥å¡¼
++¤Ú¤±¤Ð¤³ #T35 ¥Ú¥±È¢
++¤Ú¤±¤Ü¤Ã¤¯¤¹ #T35 ¥Ú¥±¥Ü¥Ã¥¯¥¹
++¤Ú¤³¤ê #CJ ¤Ú¤³¤ê
++¤Ú¤Ã #CJ ¤Ú¤Ã
++¤Ú¤Ã¤È #T35 ¥Ú¥Ã¥È
++¤Ú¤Ã¤È¤Ü¤È¤ë #T35 ¥Ú¥Ã¥È¥Ü¥È¥ë
++¤Ú¤É #T35 ¥Ú¥É
++¤Ú¤É¤Õ¤£¤ê¤¢ #T35 ¤Ú¤É¤Õ¤£¤ê¤¢
++¤Ú¤É¤Õ¤£¤ê¤¢ #T35 ¥Ú¥É¥Õ¥£¥ê¥¢
++¤Ú¤ä¤ó¤° #JN ¥Ú¥ä¥ó¥°
++¤Ú¤ä¤ó¤° #T35 ¥Ú¥ä¥ó¥°
++¤Ú¤ê¤« #T35 ¥Ú¥ê¥«
++¤Û¡¼¤¹¤¯¤é¤Ã¤·¤ã¡¼ #JN ¥Û¡¼¥¹¥¯¥é¥Ã¥·¥ã¡¼
++¤Û¡¼¤¹¤¯¤é¤Ã¤·¤ã¡¼ #T35 ¥Û¡¼¥¹¥¯¥é¥Ã¥·¥ã¡¼
++¤Û¤¥ #JN ¡ÊŽß¢òŽß¡Ë
++¤Û¤¥ #JN ŽÎŽ©
++¤Û¤¦ #T35 ˤ
++¤Û¤¦¤¨¤¤¤Õ¤ó¤¨¤ó¤í¤¯ #T35 Êõ±ÊÊ®±ìϽ
++¤Û¤¦¤±¤¤ #CN Êñ·Ô
++¤Û¤¦¤±¤¤ #T35 Êñ·Ô
++¤Û¤¦¤¸¤ç¤¦¤â¤Ê¤ë #JN ËÌÛê¥â¥Ê¥ë
++¤Û¤¦¤¹¤¯¤é¤Ã¤·¤ã¤¢ #T35 ¥Û¡¼¥¹¥¯¥é¥Ã¥·¥ã¡¼
++¤Û¤¦¤½¤¯¤«¤¤¤Ò #T35 ˡ§²óÈò
++¤Û¤¦¤Á #T30 ÊüÃÖ
++¤Û¤¦¤Æ¤¤ #JN Ë¡Äî
++¤Û¤«¤ó #T30 ÊÝ´É
++¤Û¤¯¤È¤·¤ó¤±¤ó¤Ç¤ä¤é¤ì¤ë¤â¤Ê¡¼ #JN ËÌÅÍ¿À·ý¤Ç»¦¤é¤ì¤ë¥â¥Ê¡¼
++¤Û¤¯¤Û¤¯¤µ¤Ä¤µ¤Ä #CN ËÌËÌ»¥»¥
++¤Û¤¯¤Û¤¯¤µ¤Ä¤µ¤Ä #T35 ËÌËÌ»¥»¥
++¤Û¤°¤À¤¤ #T35 ¤Û¤°¤À¤¤
++¤Û¤· #T35 À±
++¤Û¤·¤¯¤ó #JN ¡ù¤¯¤ó
++¤Û¤·¤å #T30 Êݼé
++¤Û¤·¤å¤Ï¤¢¤é¤· #CJ Êݼé¤Ï¹Ó¤é¤·
++¤Û¤¹¤£ #CJ ¥Û¥¹¥£¡¦¡¦¡¦
++¤Û¤¹¤£ #CJ ŽÎŽ½Ž¨Ž¥Ž¥Ž¥
++¤Û¤¹¤£ #JN ¥Û¥¹¥£
++¤Û¤¼¤ó #T30 ÊÝÁ´
++¤Û¤Ã¤µ¤ï #T35 ʧÂô
++¤Û¤Ã¤È¤¾¤Ì #KK ¥Û¥Ã¥È¥¾¥Ì
++¤Û¤Ã¤È¤¾¤Ì #T35 ¥Û¥Ã¥È¥¾¥Ì
++¤Û¤Í #JN ¹ü¡¡
++¤Û¤Í¤ª¤¦ #T35 ¹ü²¦
++¤Û¤Î¤ª¤Î¤³¤Þ #T35 ±ê¤Î¥³¥Þ
++¤Û¤à¤¦¤é¤ó #T35 ¥Û¥à¡¼¥é¥ó
++¤Û¤à¤¦¤é¤ó¤¦¤¿¤ì¤Æ #CJ ¥Û¥à¡¼¥é¥óÂǤ¿¤ì¤Æ¡Ä
++¤Û¤á¤Ñ¤² #T35 ¥Û¥á¥Ñ¥²
++¤Û¤é¤è #CJ ¤Û¤é¤è
++¤Û¤ï¤¤¤È¤Ù¡¼¤¹¤«¤ó¤­¤ç¤¦ #JN ¥Û¥ï¥¤¥È¥Ù¡¼¥¹´Ï¶¶
++¤Û¤ó #T35 ËÜ
++¤Û¤ó¤±¤Ê¤° #JN ËܲȤʤ°
++¤Û¤ó¤·¤Ä #T35 ËܼÁ
++¤Û¤ó¤¹¤ì #T35 ËÜ¥¹¥ì
++¤Û¤ó¤¹¤ì¤µ¤ó¤­¤ç¤¦¤À¤¤ #JN ËÜ¥¹¥ì»°·»Äï
++¤Û¤ó¤¹¤ì¤Î¤Ï¤¿ #JN ËÜ¥¹¥ì¤Î´ú
++¤Ü¡¼¤É¤¤¤Á¤é¤ó #T35 ¥Ü¡¼¥É°ìÍ÷
++¤Ü¤¦ #T35 ˼
++¤Ü¤¦¤À #T35 ËÀÂÌ
++¤Ü¤¦¤á¤¤ #T35 Ë´Ì¿
++¤Ü¤ª¤ë¤º #JN ¥Ü¡¼¥ë¥º
++¤Ü¤­¤ó #T30 ¤Ü¤­¤ó
++¤Ü¤¯¤ª¤ó¤Ê #T35 Ëͽ÷
++¤Ü¤¯¤Á¤ó¤«¤ï¤¤¤Á¤å¤®¤À¤ï¤ó #JN ¤Ü¤¯¤Á¤ó¡¢¤«¤ï¤¤¤Á¤å¤®¤À¥ï¥ó¡ª
++¤Ü¤¯¤È¤¦ #JN ÌÚÅá
++¤Ü¤¯¤È¤¦ #T35 ÌÚÅá
++¤Ü¤¯¤Î¤¢¤Ä¤³¤¿¤ó #JN ËͤΤ¢¤Ä¤³¤¿¤ó¡ª
++¤Ü¤¯¤Î¤¢¤Ä¤³¤¿¤ó #JN ËͤΤ¢¤Ä¤³¤¿¤ó¡ª¡³(¡­¡¼`)ŽÉ
++¤Ü¤¯¤Î¤³¤¦¤â¤ó¤â¤Ø¤¤¤µ¤µ¤ì¤½¤¦¤Ç¤¹ #CJ ¥Ü¥¯¤ÎæêÌç¤âÊĺ¿¤µ¤ì¤½¤¦¤Ç¤¹
++¤Ü¤±¤§ #CJ ¥Ü¥±¥§
++¤Ü¤³ #R5 ±ú
++¤Ü¤À #T35 ÊèÂÌ
++¤Ü¤Ã¤­¤¢¤² #JN ¡³(`§¥¡­)¥Î¥Ü¥Ã¥­¥¢¥²
++¤Ü¤Ã¤­¤¢¤² #JN ¡³(`§¥¡­)ŽÉŽÎŽÞŽ¯Ž·Ž±Ž¹ŽÞ
++¤Ü¤Ã¤­¤¢¤² #JN ¥Ü¥Ã¥­¥¢¥²
++¤Ü¤Ã¤­¤¢¤² #JN ŽÎŽÞŽ¯Ž·Ž±Ž¹ŽÞ
++¤Ü¤Ã¤­¤¢¤² #T35 ¥Ü¥Ã¥­¥¢¥²
++¤Ü¤Ã¤­¤Æ¤ó¤· #T35 ËÖµ¯Å·»È
++¤Ü¤Ã¤­¤É¤é¤¨¤â¤ó #JN ¤Ü¤Ã¤­¥É¥é¤¨¤â¤ó¡¡
++¤Ü¤Ã¤·¤å¡¼¤È #JN ¥Ü¥Ã¥·¥å¡¼¥È
++¤Ü¤Ç¤£¤¤¤º¤Ó¤¤¤È #T35 ¥Ü¥Ç¥£¡¼¥º¥Ó¡¼¥È
++¤Ü¤Ü¤ó #T35 ¥ÜËß
++¤Ü¤Ü¤ó #T35 ËХܡ¼¥ó
++¤Ü¤Ü¤ó #T35 ËХܥó
++¤Ü¤Ü¤ó¤¹¤ì #T35 ¥Ü¥Ü¥ó¥¹¥ì
++¤Ü¤ß¤ç¤¦ #CJ ¤Ü¤ß¤ç¡¼
++¤Ü¤ß¤ç¤¦ #T35 ¤Ü¤ß¤ç¡¼
++¤Ü¤ë¤¸¤ç¤¢ #JN ¤Ü¤ë¤¸¤ç¤¢¢¡yBEncckFOU
++¤Ü¤ó¤¯¤é¤¹ #T35 ¥Ü¥ó¥¯¥é¥¹
++¤Ü¤ó¤µ¤¤ #T35 ËߺÏ
++¤Ü¤ó¤µ¤¤¤»¤ó¤»¤¤ #T35 ËߺÏÀèÀ¸
++¤Ü¤ó¤Á¤å¤¦ #T35 Ëß¿ß
++¤Ý #CJ ¤Ý
++¤Ý¡¼¤«¤ó #JN ¡Ê¡û¸ý¡û*¡ËŽÎŽßŽ°Ž¶ŽÝ
++¤Ý¡¼¤«¤ó #JN ¥Ý¡¼¥«¥ó
++¤Ý¡¼¤ë¤Þ¤ó #JN ¥Ý¡¼¥ë¥Þ¥ó
++¤Ý¤¢ #T35 ¥Ý¥¢
++¤Ý¤¤¤º¤ó #T35 ¥Ý¥¤¥º¥ó
++¤Ý¤¤¤º¤ó¤¹¤ì #T35 ¥Ý¥¤¥º¥ó¥¹¥ì
++¤Ý¤¨¤¿¤ó #JN ¥Ý¥¨¤¿¤ó
++¤Ý¤¨¤¿¤ó #T35 ¥Ý¥¨¤¿¤ó
++¤Ý¤«¡¼¤ó #CJ (¡¬§Õ¡¬)¥Ý¥«¡¼¥ó
++¤Ý¤«¡¼¤ó #CJ (Žß§ÕŽß)ŽÎŽßŽ¶Ž°ŽÝ
++¤Ý¤«¡¼¤ó #CJ ¥Ý¥«¡¼¥ó
++¤Ý¤«¡¼¤ó #CJ ŽÎŽßŽ¶Ž°ŽÝ
++¤Ý¤«¡¼¤ó #JN (Žß§ÕŽß)ŽÎŽßŽ¶Ž°ŽÝ
++¤Ý¤«¡¼¤ó #JN ¥Ý¥«¡¼¥ó
++¤Ý¤«¡¼¤ó #JN ŽÎŽßŽ¶Ž°ŽÝ
++¤Ý¤³¡¼¤ê #CJ ¥Ý¥³¡¼¥ê
++¤Ý¤³¡¼¤ê #CJ ŽÎŽßŽºŽ°ŽØ
++¤Ý¤¹¤È¤µ¤ó #JN ¥Ý¥¹¥È¤µ¤ó
++¤Ý¤Ã¤Ý #JN ¤Ý¤Ã¤Ý
++¤Ý¤Ã¤Ý #JN ¥Ý¥Ã¥Ý
++¤Ý¤Ã¤Ý #T35 ¤Ý¤Ã¤Ý
++¤Ý¤Ã¤Ý #T35 ¥Ý¥Ã¥Ý
++¤Ý¤ê¤´¤ó¤â¤Ê¡¼ #JN ¡¡¡¡¡¡¥Ý¥ê¥´¥ó¥â¥Ê¡¼
++¤Ý¤ê¤´¤ó¤â¤Ê¡¼ #JN ¥Ý¥ê¥´¥ó¥â¥Ê¡¼
++¤Ý¤ë¤È¤¬¤ë¤´ #T35 Éòƺ²ç¸ì
++¤Ý¤ì #T35 ¥Ý¥ì
++¤Ý¤ó¤­¤ó¤«¤ó #CN ¥Ý¥ó¥­¥ó¥«¥ó
++¤Ý¤ó¤­¤ó¤«¤ó #T35 ¥Ý¥ó¥­¥ó¥«¥ó
++¤Ý¤ó¤À¤¤ #CN ¥Ý¥óÂç
++¤Ý¤ó¤À¤¤ #T35 ¥Ý¥óÂç
++¤Ý¤ó¤Ð¤· #CN ¥Ý¥ó¶¶
++¤Ý¤ó¤Ð¤· #T35 ¥Ý¥ó¶¶
++¤Þ #JN Ëâ
++¤Þ #T35 Ëâ
++¤Þ¡¼¤¬¤ì¤Ã¤È¤¢¤ó¤É¤Õ¤é¤ó¤½¤ï #JN ¥Þ¡¼¥¬¥ì¥Ã¥È¡õ¥Õ¥é¥ó¥½¥ï
++¤Þ¡¼¤·¡¼ #JN ¥Þ¡¼¥·¡¼
++¤Þ¡¼¤º¤ä #JN £Í£Á£Ò£Ó²°
++¤Þ¡¼¤Á #KK ¥Þ¡¼¥Á
++¤Þ¤¡¤¦¡«¤µ¤² #T35 ¡³(`§¥¡­)¥Î¥Þ¥¡¥ô¥µ¥²
++¤Þ¤¡¤¦¡«¤µ¤² #T35 ¡³(`§¥¡­)ŽÉŽÏŽ§Ž³ŽÞŽ»Ž¹ŽÞ
++¤Þ¤¢¤ª¤Á¤Ä¤± #CJ ¤Þ¤¢Íî¤ÁÃ失
++¤Þ¤¢¤ª¤ó¤¿¤¤¤À¤· #CJ ¤Þ¤¢¸æÂç¤À¤·
++¤Þ¤¢¤Á #T35 ¥Þ¡¼¥Á
++¤Þ¤¤¤¦¡¼ #T35 ¥Þ¥¤¥¦¡¼
++¤Þ¤¤¤®¤ç¤¯ #T35 £Í£ù¶Ì
++¤Þ¤¤¤¯¤½¤½¤Õ¤È #T35 ¥Þ¥¤Êµ¥½¥Õ¥È
++¤Þ¤¤¤¿ #CN ¥ÞÈÄ
++¤Þ¤¤¤¿ #T35 ¥ÞÈÄ
++¤Þ¤¤¤¿¤ó¤Ú¤ó¤®¤ó #JN ¤Þ¤¤¤¿¤ó¥Ú¥ó¥®¥ó
++¤Þ¤¤¤Ë¤Ã¤Á #JN ¥Þ¥¤¥Ë¥Ã¥Á¡¡
++¤Þ¤¤¤Ó¤¤¤à #T35 ¥Þ¥¤¥Ó¡¼¥à
++¤Þ¤¤¤ó¤É¤¯¤é¤Ã¤·¤ã¤¢ #T35 ¥Þ¥¤¥ó¥É¥¯¥é¥Ã¥·¥ã¡¼
++¤Þ¤¦ #JN ¥Þ¥¦
++¤Þ¤¦ #T35 ¥Þ¥¦
++¤Þ¤¦¤¹¤Ñ¤Ã¤È #T35 ¥Þ¥¦¥¹¥Ñ¥Ã¥È
++¤Þ¤¨¤¹¤ì #T35 Á°¥¹¥ì
++¤Þ¤¨¤À¤±¤¤¤¸ #JN Á°Åķļ¡
++¤Þ¤ª¡¼ #JN ¥Þ¥ª¡¼
++¤Þ¤ª¤¦¤â¤Ê¤Õ¤¡¡¼ #JN ËⲦ¥â¥Ê¥Õ¥¡¡¼
++¤Þ¤«¡¼ #T35 ¥Þ¥«¡¼
++¤Þ¤«¤¢ #T35 ¥Þ¥«¡¼
++¤Þ¤«¤¤ #T35 Ë⳦
++¤Þ¤«¤Ä #K5 ¤Þ¤«¤Ä
++¤Þ¤«¤Ä¤¯¤Ã¤Æ¤¤¤¦¤«¤­¤â¤¤ #CJ ¤Þ¤«¤Ä¤¯¤Ã¤Æ¤¤¤¦¤«¥­¥â¥¤
++¤Þ¤­¤³ #JNM ¥Þ¥­¥³
++¤Þ¤­¤³ #JNM Ëâµ´»Ò
++¤Þ¤­¤³ #T35 ¥Þ¥­¥³
++¤Þ¤­¤³ #T35 Ëâµ´»Ò
++¤Þ¤­¤Î¤ë¤­ #JN ËÒÌîαɱ
++¤Þ¤°¤Þ¤° #KK ¤Þ¤°¤Þ¤°
++¤Þ¤°¤í #T35 Ëî
++¤Þ¤±¤¤¤Ì #T35 É餱¸¤
++¤Þ¤³¤Ä #T35 Ëâ¹ü
++¤Þ¤³¤È #JN ¿¿
++¤Þ¤³¤Ô¡¼ #JN ¤Þ¤³¤Ô¡¼
++¤Þ¤³¤Ô¡¼ #T35 ¤Þ¤³¤Ô¡¼
++¤Þ¤³¤Ô¤¤ #T35 ¤Þ¤³¤Ô¡¼
++¤Þ¤³¤Ô¤¹¤È #T35 ¤Þ¤³¤Ô¤¹¤È
++¤Þ¤µ¤ª #JNM ¤Þ¤µ¤ª
++¤Þ¤µ¤ª #JNM ¥Þ¥µ¥ª
++¤Þ¤µ¤ª #JNM ÀµÃË
++¤Þ¤µ¤ª #T35 ¤Þ¤µ¤ª
++¤Þ¤µ¤ª #T35 ¥Þ¥µ¥ª
++¤Þ¤µ¤ª #T35 ÀµÃË
++¤Þ¤µ¤à¤Í¡¼¤è¤«¤Ã¤³¤¦¤£¤º¤Ê¤¨¤Ê¤¤¤ï¤È¤¸¤«¤Ã¤³ #JN ¥Þ¥µ¥à¥Í¡¼¥è¡Êwith¡¡¥Ê¥¨¥Ê¥¤¥ï¡Ë
++¤Þ¤µ¤ä #JNM ¥Þ¥µ¥ä
++¤Þ¤µ¤ä #T35 ¥Þ¥µ¥ä
++¤Þ¤µ¤è¤· #JNM ÀµµÁ
++¤Þ¤·¡¼¤Ö #T35 ¥Þ¥·¡¼¥Ö
++¤Þ¤·¤¤¤Ö #T35 ¥Þ¥·¡¼¥Ö
++¤Þ¤·¤ê¤È #JN ¥Þ¥·¥ê¥È
++¤Þ¤·¤ê¤È #T35 ¥Þ¥·¥ê¥È
++¤Þ¤·¤ó¤¤¤é¤Í¤¤¤À¡¼ #JN ¥Þ¥·¥ó¥¤¥é¥Í¥¤¥À¡¼
++¤Þ¤·¤ó¤µ¤ó #CJ ¤Þ¤·¤ó¤µ¤ó¡¦¡¦¡¦
++¤Þ¤¸¤á¤À¤Ê¡¼ #JN ¥Þ¥¸¥á¥À¥Ê¡¼
++¤Þ¤¸¤ì¤¹ #T30 ¥Þ¥¸¥ì¥¹
++¤Þ¤¸¤ì¤¹¤Þ¤ó #JN ¥Þ¥¸¥ì¥¹¥Þ¥ó
++¤Þ¤¸¤ò¤¿ #T35 ¥Þ¥¸¥ò¥¿
++¤Þ¤¹¤ª #JNM ¥Þ¥¹¥ª
++¤Þ¤¹¤ª #T35 ¥Þ¥¹¥ª
++¤Þ¤¹¤´¤ß #T35 ¥Þ¥¹¥´¥ß
++¤Þ¤¹¤¿ #SUC ¤Þ¤¹¤¿
++¤Þ¤¹¤¿¡¼¤¤¤Ä¤â¤Î¤¿¤Î¤à #CJ ¥Þ¥¹¥¿¡¼¡¢¤¤¤Ä¤â¤Î¤¿¤Î¤à
++¤Þ¤º¤¦ #CJ ¥Þ¥º¡¼
++¤Þ¤º¤¦ #CJ ŽÏŽ½ŽÞŽ°
++¤Þ¤º¤¸¤å¡¼ #T35 ¤Þ¤º¥¸¥å¡¼
++¤Þ¤½¤³ #T35 ¥Þ¥½¥³
++¤Þ¤¿ #CJ ¤Þ¤¿¡©
++¤Þ¤¿¡¼¤ê #T30 ¥Þ¥¿¡¼¥ê
++¤Þ¤¿¡¼¤ê #T30 ¥Þ¥¿¡Á¥ê
++¤Þ¤¿¡¼¤ê¤­¤ã¤é¤®¤ã¤¯¤µ¤Ä¤È¤¦ #KK ¥Þ¥¿¡¼¥ê¥­¥ã¥éµÔ»¦ÅÞ
++¤Þ¤¿¡¼¤ê¤­¤ã¤é¤®¤ã¤¯¤µ¤Ä¤È¤¦¤¢¤é¤· #JN ¥Þ¥¿¡¼¥ê¥­¥ã¥éµÔ»¦Å޹Ӥ餷
++¤Þ¤¿¡¼¤ê¤­¤ã¤é¤®¤ã¤¯¤µ¤Ä¤È¤¦¤½¤¦¤¹¤¤ #JN ¥Þ¥¿¡¼¥ê¥­¥ã¥éµÔ»¦ÅÞÁí¿ã
++¤Þ¤¿¡¼¤ê¤´¤¦ #JN MATAARI¹æ
++¤Þ¤¿¡¼¤ê¤Ê¤ä¤·¤ç¤¯¤ò¤Ä¤¯¤í¤¦ #JN ¥Þ¡¼¥¿¥ê¤ÊÌë¿©¤òºî¤í¤¦
++¤Þ¤¿¡¼¤ê¤á¤À¤ë #JN ¥Þ¥¿¡¼¥ê¥á¥À¥ë
++¤Þ¤¿¡¼¤ê¤á¤À¤ë #JN ŽÏŽÀŽ°ŽØŽÒŽÀŽÞŽÙ
++¤Þ¤¿¤¢¤ê¤¹¤ì #T35 ¥Þ¥¿¡¼¥ê¥¹¥ì
++¤Þ¤¿¤¢¤ê¤Á¤å¤¦ #T35 ¥Þ¥¿¡¼¥ê¿ß
++¤Þ¤¿¤ª¤ª¤µ¤«¤« #CJ ¤Þ¤¿Âçºå¤«
++¤Þ¤¿¤ª¤ª¤µ¤«¤ä #CJ ¤Þ¤¿Âçºå¤ä
++¤Þ¤¿¤Ê¤¬¤¿¤¹¤ì¤« #CJ ¤Þ¤¿±ÊÅÄ¥¹¥ì¤«
++¤Þ¤À¤à #JN ¥Þ¥À¥à
++¤Þ¤Á¤Ó¡¼¤Ó¡¼¤¨¤¹ #KK ¤Þ¤ÁBBS
++¤Þ¤Á¤Ó¤¤¤Ó¤¤¤¨¤¹ #T35 ¤Þ¤ÁBBS
++¤Þ¤Ã¤¿¤ê #T30 ¥Þ¥Ã¥¿¥ê
++¤Þ¤Ã¤¿¤ê #T30 ¤Þ¤Ã¤¿¤ê
++¤Þ¤Ã¤Á¤ç¤â¤Ê¡¼ #JN ¥Þ¥Ã¥Á¥ç¥â¥Ê¡¼
++¤Þ¤Ä¤¤ #T35 ¾¾°æ
++¤Þ¤Ä¤¿¤±¤³ #JN ¾¾¤¿¤±»Ò
++¤Þ¤Ä¤À¤¤¤é #T35 ¾¾Ê¿
++¤Þ¤Ä¤À¤¿¤«¤È #JN ¾¾ÅÄ·¼¿Í
++¤Þ¤Ä¤ê #T35 º×¤ê
++¤Þ¤Ä¤ê¤¢¤­¤¿ #JN º×¤êË°¤­¤¿
++¤Þ¤Ä¤ê¤À¤È¤Ä¤²¤­¤À #JN º×¤ê¤À¢öÆÍ·â¤À¡ª
++¤Þ¤Å #T35 ¥Þ¥Å
++¤Þ¤È¤Ð¤Õ¤ß¤ª #JN Ū¾ìʸÃË
++¤Þ¤É¤« #T35 ¥Þ¥É¥«
++¤Þ¤É¤Ä¤«¤¤ #T35 Áë»È¤¤
++¤Þ¤Ë¡¼ #JN ¥Þ¥Ë¡¼¡¡
++¤Þ¤Ë¡¼¤¯¤Þ¤Ã¤·¤å¤ë¡¼¤à #JN ¥Þ¥Ë¡¼¥¯¥Þ¥Ã¥·¥å¥ë¡¼¥à
++¤Þ¤Ë¡¼¤¯¤Þ¤Ã¤·¤å¤ë¡¼¤à #JN ¥Þ¥Ë¡¼¥¯¥Þ¥Ã¥·¥å¥ë¡¼¥à
++¤Þ¤Ò¤£¤¢ #JN ¥Þ¥Ò¥£¥¢
++¤Þ¤Ò¤£¤¢ #JN ŽÏŽËŽ¨Ž±
++¤Þ¤Ò¤£¤¢ #T35 ¥Þ¥Ò¥£¥¢
++¤Þ¤Ò¤£¤¢¤£¤ç¤¥ #JN ¥Þ¥Ò¥£¥¢¤£¤ç¤¥
++¤Þ¤Ò¤£¤¢¤£¤ç¤¥ #JN ŽÏŽËŽ¨Ž±¤£¤ç¤¥
++¤Þ¤Û¤¦¤Ä¤«¤¤ #T35 ËâË¡»È¤¤
++¤Þ¤Ü¤ó #T35 Ëõ¥Ü¡¼¥ó
++¤Þ¤Ü¤ó #T35 Ëõ¥Ü¥ó
++¤Þ¤Ý¡¼¤é #CJ ¥Þ¥Ý¡¼¥é
++¤Þ¤Þ #CJ ¡Ê¡­§Õ¡®¡Ë¥Þ¥Þ¡¦¡¦¡¦
++¤Þ¤Þ #CJ ¡Ê¡­§Õ¡®¡ËŽÏŽÏ¡¦¡¦¡¦
++¤Þ¤Þ #JN ¡Ê¡­§Õ¡®¡Ë¥Þ¥Þ¡¦¡¦¡¦
++¤Þ¤Þ #JN ¡Ê¡­§Õ¡®¡ËŽÏŽÏ¡¦¡¦¡¦
++¤Þ¤Þ¤´¤ó #T35 ¥Þ¥Þ¥´¥ó
++¤Þ¤Þ¤â¤Ê¡¼¤»¤¤¤Á¤ç¤¦¤º #JN ¥Þ¥Þ¥â¥Ê¡¼À®Ä¹¿Þ
++¤Þ¤Þ¤ó #JN ¥Þ¥Þ¥ó
++¤Þ¤Þ¤ó #T35 ¥Þ¥Þ¥ó
++¤Þ¤à¤³ #T35 ¥Þ¥à¥³
++¤Þ¤á #T35 Ʀ
++¤Þ¤é¤¤¤¢¤ó #JN ¥Þ¥é¥¤¥¢¥ó
++¤Þ¤é¤¹¤¿¡¼ #JN ¥Þ¥é¡¦¥¹¥¿¡¼
++¤Þ¤é¤Í¡¼¤è #JN ¥Þ¥é¥Í¡¼¥è
++¤Þ¤é¤Ü¤¦ #JN ¥Þ¥éË·
++¤Þ¤é¤ß #JN ¥Þ¥éÈþ
++¤Þ¤é¤é¡¼ #JN ¥Þ¥é¥é¡¼
++¤Þ¤é¤é¡¼¤À¤ó¤µ¡¼¤º #JN ¥Þ¥é¥é¡¼¥À¥ó¥µ¡¼¥º
++¤Þ¤é¤é¤É¤Î #JN ¥Þ¥é¥éÅÂ
++¤Þ¤é¤ê¡¼¤Þ¤ó #JN ¥Þ¥é¥ê¡¼¥Þ¥ó
++¤Þ¤ê¤â #JN ÝÜÁô
++¤Þ¤ê¤â #T35 ¤Þ¤ê¤â
++¤Þ¤ë¤¤¤±¤¤ #T35 ´Ý°æ·Ï
++¤Þ¤ë¤¹¤ä #JN £Í£Á£Ò£Ó²°
++¤Þ¤ë¤Á #JN ¥Þ¥ë¥Á
++¤Þ¤ë¤Á #T35 ¥Þ¥ë¥Á
++¤Þ¤ë¤Á¤Ý¤¹¤È #T30 ¥Þ¥ë¥Á¥Ý¥¹¥È
++¤Þ¤ë¤ß #JN ±ßÈþ
++¤Þ¤ë¤ß¤ß¤â¤Ê¡¼ #JN ´Ý¼ª¥â¥Ê¡¼
++¤Þ¤í¤ó #T35 ¥Þ¥í¥ó
++¤Þ¤ï¤·¤®¤³ #JN ¤Þ¤ï¤·¥®¥³
++¤Þ¤ó #T35 Ëþ
++¤Þ¤ó¤¤¤ó¤Ç¤ó¤·¤ã #JN Ëþ°÷ÅżÖ
++¤Þ¤ó¤¬¤Í¤¿¤¹¤ì #T35 Ì¡²è¥Í¥¿¥¹¥ì
++¤Þ¤ó¤­¤ó¤¨¤°¤¼ #T35 ¥Þ¥ó¥­¥óEXE
++¤Þ¤ó¤®¤ã¤ë #T35 ¥Þ¥ó¥®¥ã¥ë
++¤Þ¤ó¤º¤ê #T35 ÒÄ¥º¥ê
++¤Þ¤ó¤»¡¼ #CJ ¥Þ¥ó¥»¡¼
++¤Þ¤ó¤»¡¼¤á¡¼¤¿¡¼ #T35 ¥Þ¥ó¥»¡¼¥á¡¼¥¿¡¼
++¤Þ¤ó¤»¤¨¤á¤¨¤¿¤¢ #T35 ¥Þ¥ó¥»¡¼¥á¡¼¥¿¡¼
++¤Þ¤ó¤É¤¯¤»¤¨ #CJ ¥Þ¥ó¥É¥¯¥»¡¼
++¤Þ¤ó¤Ü¤¦ #JN ¥Þ¥ó¥Ü¥¦
++¤ß¡¼¤È¤Ü¡¼¤ë #JN ¥ß¡¼¥È¥Ü¡¼¥ë
++¤ß¤¤¤Ë¤ã¤¢¤¿¤ó #T35 ¥ß¡¼Æó¥ã¡¼¤¿¤ó
++¤ß¤¦¤Ê #JN ¤ß¤¦¤Ê
++¤ß¤«¤« #KK ¤ß¤«¤«
++¤ß¤«¤« #T35 ¤ß¤«¤«
++¤ß¤«¤É¤¢¤ó #JN ¤ß¤«¤É°Ã
++¤ß¤«¤É¤¢¤ó¤Ê¤¤¤Ö #JN ¤ß¤«¤É°ÃÆâÉô
++¤ß¤­¡¼¤ª #JN ¥ß¥­¡¼¥ª
++¤ß¤®¤Æ¤Ç¤«¤­¤Þ¤·¤¿ #CJ ±¦¼ê¤Ç½ñ¤­¤Þ¤·¤¿
++¤ß¤®¤Ò¤² #T35 ±¦¤Ò¤²
++¤ß¤³¤ß¤³¤Ê¤¢¤¹ #KK Öà½÷¤ß¤³¥Ê¡¼¥¹
++¤ß¤µ¤«¤«¤ª¤ê #T35 Èþºä¹áΤ
++¤ß¤·¤ã¤â¤Ê¡¼ #JN Èþ¼Ó¥â¥Ê¡¼
++¤ß¤·¤ç¤¯¤¯¤ó #T35 ̤¿©·¯
++¤ß¤¹¤º¤â¤Ê¡¼ #JN ´ÑÎë¥â¥Ê¡¼
++¤ß¤¹¤¿¡¼¤Û¤¥ #JN Mr.ŽÎŽ©
++¤ß¤º¤´¤ê¤é #JN ¿å¥´¥ê¥é
++¤ß¤º¤´¤ê¤é #T35 ¿å¥´¥ê¥é
++¤ß¤¾¤Í¤º¤ß #JN ¹ÂÁÍ
++¤ß¤¾¤Í¤º¤ß #T35 ¹ÂÁÍ
++¤ß¤¿¤é¤¤¤Ò¤í¤­ #T35 ¸æ¼êÀöÊØ´ï
++¤ß¤Á¤å #JN (*'-'*)
++¤ß¤Á¤å #JN ¤ß¤Á¤å
++¤ß¤Ã¤·¡¼ #JN ¤ß¤Ã¤·¡¼
++¤ß¤Ã¤·¡¼ #T35 ¤ß¤Ã¤·¡¼
++¤ß¤Ã¤·¤¤ #T35 ¤ß¤Ã¤·¡¼
++¤ß¤Ã¤Õ¤£¡¼¤ª¤ä¤³ #JN ¥ß¥Ã¥Õ¥£¡¼¿Æ»Ò
++¤ß¤Ä¤´¤í #T35 £³£²£µ£¶
++¤ß¤Ä¤ß #T35 £³£²£³
++¤ß¤Ä¤ß¤â¤Ê¡¼ #JN £³£²£³¥â¥Ê¡¼
++¤ß¤É¤Í¤¨ #T35 ¥ß¥É°¹
++¤ß¤É¤ê¤¬¤¨¤ë #T35 Îг¿
++¤ß¤Ê¡¼ #JN ¥ß¥Ê¡¼
++¤ß¤Ê¤»¤Ê¤æ¤­ #JN ¿åÀ¥Ì¾Àã
++¤ß¤Ê¤»¤Ê¤æ¤­ #T35 ¿åÀ¥Ì¾Àã
++¤ß¤Ê¤Å¤­¤¸¤ç¤¦¤Û¤¦¤Ú¡¼¤¸ #KK ¿å̵·î¾ðÊó¥Ú¡¼¥¸
++¤ß¤Ê¤Ý¤ó #T35 ¤ß¤Ê¤Ý¤ó
++¤ß¤Ê¤ß¤Á¤ç¤ó #T35 Æî¥Á¥ç¥ó
++¤ß¤Ê¤ß¤â¤ê¤Þ¤Á #KK ÆĮ
++¤ß¤Ê¤ß¤â¤ê¤Þ¤Á #T35 ÆĮ
++¤ß¤Ê¤â¤È #T35 ¥ß¥Ê¤â¤È
++¤ß¤Ê¤â¤È¤µ¤ó #JN ¸»¤µ¤ó
++¤ß¤Ë¤®¤³ #JN ¥ß¥Ë¥®¥³
++¤ß¤Ë¤â¤é #JN ¥ß¥Ë¥â¥é
++¤ß¤Î¤ï #T35 ̧ÎØ
++¤ß¤ß¤º¤ä¤µ¤ó #T35 ¥ß¥ß¥º²°¤µ¤ó
++¤ß¤ß¤Ê¤·¤â¤Ê¡¼ #JN ¼ª¤Ê¤·¥â¥Ê¡¼
++¤ß¤à¤é #JNS »°Â¼
++¤ß¤à¤é #T35 »°Â¼
++¤ß¤ã¤¢¤À¤¤ #T35 ¤ß¤ã¡ÁÂç
++¤ß¤ã¤Ã¤¯ #JN ¥ß¥ã¥Ã¥¯
++¤ß¤ç¤¥ #JN ¤ß¤ç¤¥
++¤ß¤è¤¦ #JN ¤ß¤ç¤¥
++¤ß¤é¤¤¤Ë¤Ã¤­ #T35 ̤ÍèÆüµ­
++¤ß¤ë¤¯¤«¤Õ¤§ #T35 ¥ß¥ë¥¯¥«¥Õ¥§
++¤ß¤ó¤É #T35 ̱ÅÙ
++¤ß¤ó¤Ê¡¼¤ª¤Á¤±¤Ä¡¼ #JN ¤ß¤ó¤Ê¡¼¤ª¤Á¤±¤Ä¡¼
++¤ß¤ó¤Ê¤«¤é¤Î¤ª¤Í¤¬¤¤ #T35 ¤ß¤ó¤Ê¤«¤é¤Î¤ª¤Í¤¬¤¤
++¤à¤¤¤¿ #CN ¥àÈÄ
++¤à¤¥ #JN ¤à¤¥
++¤à¤«¡¼¤Ç #JN ¥à¥«¡¼¥Ç
++¤à¤«¤Ä¤¯¤Í¤ó #JN ¥à¥«¤Ä¤¯Ç°
++¤à¤®¤å¡¼ #JN ¥à¥®¥å¡¼
++¤à¤±¤é¡¼ #JN ¥à¥±¥é¡¼
++¤à¤·¤«¤´ #T35 ÃîäÆ
++¤à¤·¤Ð¡¼ #JN ¥à¥·¥Ð¡¼
++¤à¤·¤å¤¦ #T35 ̵½­
++¤à¤·¤ç¤¯ #T35 ̵¿¦
++¤à¤¸¤ë¤· #T35 ̵°õ
++¤à¤¹¡¼¤Ë¤ç #JN ¥à¥¹¡¼¥Ë¥ç
++¤à¤¹¤« #T35 ¥à¥¹¥«
++¤à¤Ã¤¯ #JN ¥à¥Ã¥¯
++¤à¤Í¤ª #JNM ¥à¥Í¥ª
++¤à¤Í¤ª #T35 ¥à¥Í¥ª
++¤à¤Í¤ª¤Ï¤¦¤¹ #T35 ¥à¥Í¥ª¥Ï¥¦¥¹
++¤à¤Í¤ò #JN ¥à¥Í¥ò
++¤à¤Í¤ò #JNM ¥à¥Í¥ò
++¤à¤Í¤ò #T35 ¥à¥Í¥ò
++¤à¤Ï¤¡ #JN ¡ÊŽß§¥Žß¡¡¡Ë¥à¥Ï¥¡
++¤à¤Ï¤¡ #JN ¥à¥Ï¥¡
++¤à¤é¤µ¤­ #JN »ç
++¤à¤é¤µ¤­ #T35 »ç
++¤à¤é¤µ¤­¤À #CJ »ç¤À
++¤à¤é¤Î¤·¤ó¤Ü¤ë #JN ¼¤Î¥·¥ó¥Ü¥ë
++¤à¤ê¤À¡¼¤è #JN ¥à¥ê¥À¡¼¥è
++¤à¤ê¤À¡¼¤è #JN ŽÑŽØŽÀŽÞŽ°ŽÖ
++¤á¡¼¤ë¤Ü¤à #T35 ¥á¡¼¥ë¥Ü¥à
++¤á¤¢¤ê¤£ #T35 ¥á¥¢¥ê¥£¡¢¡º¥¢¥ê¥£
++¤á¤¢¤ê¤£¤Î¤Í¤Ä¤¾¤¦¤ì¤¹ #T35 ¥á¥¢¥ê¥£¤ÎÙÔ¤¥ì¥¹¡¢¡º¥¢¥ê¥£¤ÎÙÔ¤¥ì¥¹
++¤á¤¤¤¸ #CN ÌÀ¼£
++¤á¤¤¤¸ #T35 ­í
++¤á¤¤¤¹¤ì #T35 ̾¥¹¥ì
++¤á¤¤¤¹¤ì¤Î¤ª¤«¤ó #CJ ̾¥¹¥ì¤Î°­´¨
++¤á¤¤¤¹¤ì¤Î¤è¤«¤ó #CJ ̾¥¹¥ì¤Îͽ´¶
++¤á¤¤¤Æ¤Ä #T35 ÌÂÅ´
++¤á¤¤¤Ì¤ì¤Î¤è¤«¤ó #CJ ³Æ¥Ì¥ì¤ÎÌ·´¶
++¤á¤¤¤×¤ë¤·¤í¤Ã¤× #T35 MapleSyrup
++¤á¤¤¤è¤Ø¤ó¤¸¤ç¤¦ #CJ ̾ÍÀÊÖ¾å
++¤á¤¤¤ë¤Ü¤à #T35 ¥á¡¼¥ë¥Ü¥à
++¤á¤¨¤Æ¤ë¤¹¤ì #T35 ¥á¡¼¥Æ¥ë¥¹¥ì
++¤á¤«¡¼ #JN ŽÒŽ¶Ž°
++¤á¤«¤¤¤è¤¦ #JN ¥á¥«¤£¤ç¤¥
++¤á¤«¤¦¤Þ¡¼ #JN ŽÒŽ¶Ž³ŽÏŽ°¡ÊŽÒŽ¶Ž°¡Ë
++¤á¤«¤ª¤È¤¿¤± #JN ¥á¥«ZÉð
++¤á¤«¤ª¤Ë¤®¤ê #JN ¥á¥«¤ª¤Ë¤®¤ê
++¤á¤«¤«¤á¤â¤Ê¡¼ #JN ¥á¥«¥«¥á¥â¥Ê¡¼
++¤á¤«¤®¤³ #JN ¥á¥«¥®¥³
++¤á¤«¤²¤é¤é¡¼ #JN ¥á¥«¥²¥é¥é¡¼
++¤á¤«¤·¤é¤Í¡¼¤è #JN ¥á¥«¥·¥é¥Í¡¼¥è
++¤á¤«¤¸¤¨¤ó #JN [¡¦»®¡¦¡§]
++¤á¤«¤¸¤¨¤ó #JN ŽÒŽ¶Ž¼ŽÞŽ´ŽÝ
++¤á¤«¤»¤¤¤È #JN ¥á¥«À¸ÅÌ
++¤á¤«¤½¤¦¤Ç¤â¤Ê¤¤¤è #JN ¥á¥«¤½¤¦¤Ç¤â¤Ê¤¤¤è
++¤á¤«¤½¤é¤Í¡¼¤è #JN ¥á¥«¥½¥é¥Í¡¼¥è
++¤á¤«¤¾¤Ì #JN ¥á¥«¤¾¤Ì
++¤á¤«¤È¤±¤Í¡¼¤è #JN [:Žß/|Žß:]ŽÄŽ¹ŽÈŽ°ŽÖ
++¤á¤«¤È¤±¤Í¡¼¤è #JN ¥á¥«¥È¥±¥Í¡¼¥è
++¤á¤«¤Õ¤§¤é¡¼¤Á¤ç #JN ¥á¥«¥Õ¥§¥é¡¼¥Á¥ç
++¤á¤«¤â¤¦¤³¤Í¤§¤è #JN ¥á¥«ŽÓŽ³ŽºŽÈŽªŽÖ!
++¤á¤«¤â¤Ê¡¼ #JN ¥á¥«¥â¥Ê¡¼
++¤á¤¬¤¨¤ë #JN ¥á¥¬¥¨¥ë
++¤á¤¬¤Ó #KK ¥á¥¬¥Ó
++¤á¤¬¤Ó #T35 ¥á¥¬¥Ó
++¤á¤¬¤ß #T35 ½÷¿À
++¤á¤®¤Î¤¬¤Ç #JN ¥á¡¦¥®¥Î¥¬¡¦¥Ç
++¤á¤± #T35 ¤á¤±
++¤á¤±¤Ã #T35 ¤á¤±¤Ã
++¤á¤±¤ò¤ß¤È¤á¤ë #CJ ¤á¤±¤òǧ¤á¤ë
++¤á¤·¤À¤¤ #T35 ¤á¤·Âç
++¤á¤¹¤Ö¤¿ #T35 »óÆÚ
++¤á¤½¤Ð¡¼ #T35 ¥á¥½¥Ð¡¼
++¤á¤½¤Ð¤¢ #T35 ¥á¥½¥Ð¡¼
++¤á¤¾¤·¤ã¡¼¤ê¡¼ #KK ¥á¥¾¥·¥ã¡¼¥ê¡¼
++¤á¤¾¤·¤ã¡¼¤ê¡¼ #T35 ¥á¥¾¥·¥ã¡¼¥ê¡¼
++¤á¤¾¤·¤ã¤¢¤ê¤¤ #T35 ¥á¥¾¥·¥ã¡¼¥ê¡¼
++¤á¤¿¤ê¤« #T35 ¥á¥¿¥ê¥«
++¤á¤¿¤ê¤Ã¤¯ #KK ¤á¤¿¤ê¤Ã¤¯
++¤á¤À¤Þ #T35 ÌܶÌ
++¤á¤Ç¤Æ¡¼¤è #JN ¥á¥Ç¥Æ¡¼¥è
++¤á¤Ê¤· #JN Ìܤʤ·
++¤á¤à¤Ð¡¼ #T35 ¥á¥à¥Ð¡¼
++¤á¤â¤é¡¼ #JN ¥á¥â¥é¡¼
++¤á¤ê¤±¤ó¤Æ¤ó¤·¤µ¤é #JN ¥á¥ê¥±¥óÅ·»È¡ù¥µ¥é¡ª
++¤á¤ê¤ë¤·¤£¤ë¤Ð¡¼¤Ð¡¼¤° #JN ¥á¥ê¥ë¡¦¤·¤£¥ë¥Ð¡¼¥Ð¡¼¥°
++¤á¤ë¤Ø¤ó #T35 ¥á¥ë¥Ø¥ó
++¤á¤ë¤Ø¤ó¤¤¤¿ #T35 ¥á¥ë¥Ø¥óÈÄ
++¤á¤ë¤Þ¤¬ #T35 ¥á¥ë¥Þ¥¬
++¤á¤í¤¹¤Ñ¡¼ #T35 ¥á¥í¥¹¥Ñ¡¼
++¤á¤í¤¹¤Ñ¤¢ #T35 ¥á¥í¥¹¥Ñ¡¼
++¤á¤í¤ó #T35 ¥á¥í¥ó
++¤á¤ó #T35 ÌÍ
++¤á¤ó¤¿¤ë¤Ø¤ë¤¹¤¤¤¿ #T35 ¥á¥ó¥¿¥ë¥Ø¥ë¥¹ÈÄ
++¤á¤ó¤Æ #T30 ¥á¥ó¥Æ
++¤á¤ó¤É¤¯¤»¤§ #JN ¥á¥ó¥É¥¯¥»¥§
++¤á¤ó¤É¤¯¤»¤§¤»¤¤¤È #JN ŽÒŽÝŽÄŽÞŽ¸Ž¾ŽªÀ¸ÅÌ
++¤á¤ó¤Ð¡¼ #T35 ¥á¥ó¥Ð¡¼
++¤á¤ó¤Ð¤¢ #T35 ¥á¥ó¥Ð¡¼
++¤á¤ó¤Ø¤é¤¢ #T35 ¥á¥ó¥Ø¥é¡¼
++¤á¤ó¤Ø¤ë¤¤¤¿ #T35 ¥á¥ó¥Ø¥ëÈÄ
++¤á¤ó¤Ü¤¦ #T35 ¤á¤ó¤Ü¤¦
++¤â¡¼¤¤¤¿ #CN ¥â¡¼ÈÄ
++¤â¡¼¤¤¤¿ #T35 ¥â¡¼ÈÄ
++¤â¡¼¤³¡¼ #CN ¥â¡¼¥³¡¼
++¤â¡¼¤³¡¼ #T35 ¥â¡¼¥³¡¼
++¤â¡¼¤Ë¤ó¤°¤³¡¼¤Ò¡¼ #CN ¥â¡¼¥Ë¥ó¥°¥³¡¼¥Ò¡¼
++¤â¡¼¤Ë¤ó¤°¤³¡¼¤Ò¡¼ #KK ¥â¡¼¥Ë¥ó¥°¥³¡¼¥Ò¡¼
++¤â¡¼¤Ë¤ó¤°¤à¤¹¤á #JN ¥â¡¼¥Ë¥ó¥°Ì¼¡£
++¤â¡¼¤Ë¤ó¤°¤à¤¹¤á¤¤¤¿ #CN ¥â¡¼¥Ë¥ó¥°Ì¼¡£ÈÄ
++¤â¤¢¤ê #T35 ÁôÍ­
++¤â¤¤¤¿ #CN ¥âÈÄ
++¤â¤¤¤¿ #T35 ¥âÈÄ
++¤â¤¦¤¤¤¿ #T35 ¥â¡¼ÈÄ
++¤â¤¦¤ª¤³¤Ã¤¿¤¾¤¦ #JN ¤â¤¦Åܤä¿¥¾¥¦
++¤â¤¦¤²¤ó #T35 ÌѸÀ
++¤â¤¦¤³¤¦ #T35 ¥â¡¼¥³¡¼
++¤â¤¦¤³¤Í¤¨¤è #JN ¡³(`§¥¡­)ŽÉ¤â¤¦Íè¤Í¤¨¤è
++¤â¤¦¤³¤Í¤¨¤è #CJ ¡³(`§¥¡­)¥Î¤â¤¦Íè¤Í¤¨¤è¡ª
++¤â¤¦¤³¤Í¤¨¤è #CJ ¡³(`§¥¡­)¥Î¤â¤¦Íè¤Í¤¨¤è¡ª¥¦¥ï¥¡¥¡¥ó
++¤â¤¦¤³¤Í¤¨¤è #CJ ¡³(`§¥¡­)ŽÉ¤â¤¦Íè¤Í¤¨¤è¡ª
++¤â¤¦¤³¤Í¤¨¤è #CJ ¡³(`§¥¡­)ŽÉ¤â¤¦Íè¤Í¤¨¤è¡ªŽ³ŽÜŽ§Ž§ŽÝ
++¤â¤¦¤³¤Í¤¨¤è #CJ ¤â¤¦Íè¤Í¤¨¤è¡ª
++¤â¤¦¤³¤Í¤¨¤è #JN ¡³(`§¥¡­)¥Î¤â¤¦Íè¤Í¤¨¤è¡ª¥¦¥ï¥¡¥¡¥ó
++¤â¤¦¤³¤Í¤¨¤è #JN ¡³(`§¥¡­)ŽÉ¤â¤¦Íè¤Í¤¨¤è¡ªŽ³ŽÜŽ§Ž§ŽÝ
++¤â¤¦¤³¤Í¤¨¤è #JN ¥â¥¦¥³¥Í¥¨¥è!!¥¦¥ï¥¡¥¡¥ó!¥â¥¦¥³¥Í¥¨¥è!!¥¦¥ï¥¡¥¡¥ó!¥â¥¦¥³¥Í¥¨¥è!!¥¦¥ï¥¡¥¡¥ó!
++¤â¤¦¤³¤Í¤¨¤è #JN ŽÓŽ³ŽºŽÈŽ´ŽÖ!!Ž³ŽÜŽ§Ž§ŽÝ!ŽÓŽ³ŽºŽÈŽ´ŽÖ!!Ž³ŽÜŽ§Ž§ŽÝ!ŽÓŽ³ŽºŽÈŽ´ŽÖ!!Ž³ŽÜŽ§Ž§ŽÝ!
++¤â¤¦¤³¤Í¤¨¤è¤¦¤ï¤¡¤¡¤ó #JN ¡³(`§¥¡­)ŽÉ¤â¤¦Íè¤Í¤¨¤è¡ªŽ³ŽÜŽ§Ž§ŽÝ
++¤â¤¦¤½¤¦¤½¤¦ #CJ ¤â¤¦¤½¤¦¤½¤¦
++¤â¤¦¤¿¤¢¤ª¤È¤³ #T35 ¥â¡¼¥¿¡¼ÃË
++¤â¤¦¤¿¤¢¤µ¤¤¤¯¤ë #T35 ¥â¡¼¥¿¡¼¥µ¥¤¥¯¥ë
++¤â¤¦¤¿¤Í¤Ý #CJ ¤â¤¦¤¿¤Í¤Ý
++¤â¤¦¤À¤á¤Ý #CJ ¤â¤¦¤À¤á¤Ý
++¤â¤¦¤À¤á¤Ý #T35 ¤â¤¦¤À¤á¤Ý
++¤â¤¦¤Ë¤ó¤°¤³¤¦¤Ò¤¤ #T35 ¥â¡¼¥Ë¥ó¥°¥³¡¼¥Ò¡¼
++¤â¤¦¤ß¤º¤Ý #CJ ¤â¤¦¤ß¤º¤Ý
++¤â¤¦¤ß¤º¤Ý #T35 ¤â¤¦¤ß¤º¤Ý
++¤â¤¦¤â¤¦ #CJ ¤â¡¼¤â¡¼
++¤â¤¨ #KS ˨¤¨
++¤â¤¨ #T35 ˨¤¨
++¤â¤ª¤Î¤­ #T35 ¥â¥ª¥Î¥­
++¤â¤«¡¼ #JN ¥â¥«¡¼
++¤â¤¬¤ì¤¿¤¯¤ó #JN ¥â¥¬¥ì¥¿·¯
++¤â¤¯¤²¤­¤É¤­¤å¤ó #KK ÌÜ·â¥É¥­¥å¥ó
++¤â¤±¤± #JN ¥â¥±¥±
++¤â¤±¤± #JN ŽÓŽ¹Ž¹
++¤â¤³¤¿ #JN ¤â¤³ÂÀ
++¤â¤·¤½¤¦¤ê #JNS ¿¹ÁíÍý
++¤â¤·¤½¤¦¤ê #JNSUC ¿¹ÁíÍý
++¤â¤¸¤ì¤¹ #T35 ʸ»ú¥ì¥¹
++¤â¤¹¤é¡¼ #JN ¥â¥¹¥é¡¼
++¤â¤» #T35 ¤â¤»
++¤â¤»¤¢ #T35 ¤â¤»¤¢
++¤â¤¿¤ª #T35 ¥â¥¿ÃË
++¤â¤Ã¤³¤ê¡¼¤Ê #JN ¥â¥Ã¥³¥ê¡¼¥Ê
++¤â¤Ã¤Á¡¼ #JN ¥â¥Ã¥Á¡¼
++¤â¤Ã¤Á¡¼ #T35 ¥â¥Ã¥Á¡¼
++¤â¤Ã¤Á¤¤ #T35 ¤â¤Ã¤Á¡¼
++¤â¤Ã¤Á¤¤ #T35 ¥â¥Ã¥Á¡¼
++¤â¤Æ¤Í¡¼¤è #JN ¥â¥Æ¥Í¡¼¥è
++¤â¤È¤«¤¤¤¾¤¯¤Î¤Ä¤ê¤­¤Á¤µ¤«¡¼¤Ê #JN ¸µ³¤Â±¤ÎÄà¤ê´ðÃÏ¥µ¥«¡¼¥Ê
++¤â¤È¤«¤¤¤¾¤¯¤Î¤Ä¤ê¤­¤Á¤µ¤«¡¼¤Ê¤È¤½¤Î¤³¤Ö¤ó¤¿¤Á #JN ¸µ³¤Â±¤ÎÄà¤ê´ðÃÏ¥µ¥«¡¼¥Ê¤È¤½¤Î»Òʬ¤¿¤Á
++¤â¤Ê¡¼ #JN ¥â¥Ê¡¼
++¤â¤Ê¡¼¤¦¡¼¤Þ¤ó #JN ¥â¥Ê¡¼¥¦¡¼¥Þ¥ó
++¤â¤Ê¡¼¤«¡¼¤É #JN ¥â¥Ê¡¼¥«¡¼¥É
++¤â¤Ê¡¼¤«¤ó¤³¤¦ #KK ¥â¥Ê¡¼´Ñ¸÷
++¤â¤Ê¡¼¤¯¤¨¤¹¤È #KK ¥â¥Ê¡¼¥¯¥¨¥¹¥È
++¤â¤Ê¡¼¤¯¤¨¤¹¤È #T35 ¥â¥Ê¡¼¥¯¥¨¥¹¥È
++¤â¤Ê¡¼¤¯¤Ã¤­¤ó¤° #JN ¥â¥Ê¡¼¥¯¥Ã¥­¥ó¥°
++¤â¤Ê¡¼¤±¤ó¤¹¤± #JN ¥â¥Ê¡¼·ò²ð
++¤â¤Ê¡¼¤±¤ó¤¹¤±¤¤ #JN ¥â¥Ê¡¼·ò¤¹·Ù
++¤â¤Ê¡¼¤·¤å¤Ö¤ó¤×¤º #JN ¥â¥Ê¡¼¼ïʬÉÛ¿Þ
++¤â¤Ê¡¼¤·¤å¤Ö¤ó¤×¤º¤â¤Ê¡¼¤â¤é¤é¡¼¤Ð¤ó #JN ¥â¥Ê¡¼¼ïʬÉÛ¿Þ¥â¥Ê¡¼¡¦¥â¥é¥é¡¼ÈÇ
++¤â¤Ê¡¼¤·¤å¤Ö¤ó¤ë¤¤¤º¤±¤Ã¤Æ¤¤¤Ð¤ó #JN ¥â¥Ê¡¼¼ïʬÎà¿Þ·èÄêÈÇ
++¤â¤Ê¡¼¤·¤å¤Ö¤ó¤ë¤¤¤º¤¾¤Ë¤Ã¤¯¤Ð¤ó #JN ¥â¥Ê¡¼¼ïʬÎà¿Þ¡¡¥¾¥Ë¥Ã¥¯ÈÇ
++¤â¤Ê¡¼¤·¤å¤Ö¤ó¤ë¤¤¤º¤¾¤Ë¤Ã¤¯¤Ð¤ó #JN ¥â¥Ê¡¼¼ïʬÎà¿Þ¥¾¥Ë¥Ã¥¯ÈÇ
++¤â¤Ê¡¼¤·¤ç¤¦¤á¤Ä #JN ¥â¥Ê¡¼¾ÃÌÇ
++¤â¤Ê¡¼¤¸¤¾¤¦ #JN ¥â¥Ê¡¼ÃÏ¢
++¤â¤Ê¡¼¤¸¤å¤¦¤è¤ó¤»¤¤ #JN ¥â¥Ê¡¼£±£´À¤
++¤â¤Ê¡¼¤¾¤¯¤­¤å¤¦¤­¤ç¤¯¤ª¤¦¤®¤â¤é¤é¡¼¤É¤é¤¤¤Ð¡¼ #JN ¥â¥Ê¡¼Â²¡¦µæ¶Ë±üµÁ¡¦¥â¥é¥é¡¼¥É¥é¥¤¥Ð¡¼
++¤â¤Ê¡¼¤¿¤ó¤¸¤ç¤¦¤Î¤Ò¤ß¤Ä #JN ¥â¥Ê¡¼ÃÂÀ¸¤ÎÈëÌ©
++¤â¤Ê¡¼¤Ç¤¤¤«¤ê¤ò¤Ö¤Ä¤±¤ë¤¹¤ì¤³¤¯¤µ¤¤¤¸¤ç¤¦¤ä¤¯¤¸¤å¤Ã¤«¤¸¤ç¤¦ #JN ¥â¥Ê¡¼¤ÇÅܤê¤ò¤Ö¤Ä¤±¤ë¥¹¥ì¹ñºÝ¾òÌó½½¥ö¾ò
++¤â¤Ê¡¼¤È¤®¤³¤Î¤²¡¼¤à¤·¤ç¤Ã¤× #JN ¥â¥Ê¡¼¤È¥®¥³¤Î¥²¡¼¥à¥·¥ç¥Ã¥×
++¤â¤Ê¡¼¤Î¤¤¤Á¤Ë¤Á #JN ¥â¥Ê¡¼¤Î°ìÆü
++¤â¤Ê¡¼¤Î¤«¤Î¤¸¤ç #JN ¥â¥Ê¡¼¤ÎÈà½÷
++¤â¤Ê¡¼¤Î¤«¤Î¤¸¤ç #JN ¥â¥Ê¡¼¤ÎÈà½÷¡Ê¸Î¿Í¡Ë
++¤â¤Ê¡¼¤Î¤»¤ó¤¾ #JN ¥â¥Ê¡¼¤ÎÀèÁÄ
++¤â¤Ê¡¼¤Ï¤è¤¦¤Á¤·¤Í¤è #JN ¥â¥Ê¡¼¤ÏÍÄÃÕ¡£»à¤Í¤è
++¤â¤Ê¡¼¤Ð¤ó¤É #JN ¥â¥Ê¡¼¥Ð¥ó¥É
++¤â¤Ê¡¼¤Õ¤Ã¤«¤Ä #JN ¥â¥Ê¡¼Éü³è
++¤â¤Ê¡¼¤Þ¤ó #JN ¥â¥Ê¡¼¥Þ¥ó
++¤â¤Ê¡¼¤Þ¤ó #JN ŽÓŽÅŽ°ŽÏŽÝ
++¤â¤Ê¡¼¤à¡¼¤ó¤°¤ó #JN ¥â¥Ê¡¼¥à¡¼¥ó·³
++¤â¤Ê¡¼¤à¡¼¤ó¤°¤ó #JN Ž·ŽÞŽºŽ½ŽÀŽ°·³
++¤â¤Ê¡¼¤à¡¼¤ó¤°¤ó #JN ŽÓŽÅŽ°ŽÑŽ°ŽÝ·³
++¤â¤Ê¡¼¤á¤¿¤ë¤Ð¤ó¤É #JN ¥â¥Ê¡¼¥á¥¿¥ë¥Ð¥ó¥É
++¤â¤Ê¡¼¤ê¤¶ #JN ¥â¥Ê¡¼¥ê¥¶
++¤â¤Ê¤¢ #T35 ¥â¥Ê¡¼
++¤â¤Ê¤¢¤«¤ó¤³¤¦ #T35 ¥â¥Ê¡¼´Ñ¸÷
++¤â¤Ê¤¢¤¯¤¨¤¹¤È #T35 ¥â¥Ê¡¼¥¯¥¨¥¹¥È
++¤â¤Ê¤¢¤¶¤é¤· #JN ¥â¥Ê¥¢¥¶¥é¥·¡¡
++¤â¤Ê¤¢¤é¤Ö #T35 ¥â¥Ê¡Á¤é¤Ö
++¤â¤Ê¤¤¤¢¤ó #JN ¥â¥Ê¥¤¥¢¥ó
++¤â¤Ê¤¨ #JN ¥â¥é»Þ
++¤â¤Ê¤¨¤À¤»¤ó¤»¤¤ #JN ¥â¥Ê»ÞÀèÀ¸
++¤â¤Ê¤¨¤â¤ó #JN ¥â¥Ê¤¨¤â¤ó
++¤â¤Ê¤ª¤¦ #JN ¥â¥Ê²¦
++¤â¤Ê¤« #JN ¥â¥Ê¥«
++¤â¤Ê¤« #JN ¥â¥Ê¥«
++¤â¤Ê¤« #JNS ¥â¥Ê¥«
++¤â¤Ê¤« #T35 ¥â¥Ê¥«
++¤â¤Ê¤« #T35 ºÇÃæ
++¤â¤Ê¤«¤«¤ó¤Î¤ó #JN ¥â¥Ê¥«´Ñ²»
++¤â¤Ê¤«¤² #JN ¥â¥Ê±Æ
++¤â¤Ê¤«¤² #JN ŽÓŽÅ±Æ
++¤â¤Ê¤«¤Á¤ã¤ó #JN ¥â¥Ê¤«¤Á¤ã¤ó
++¤â¤Ê¤«¤ó¤Î¤ó #JN ¥â¥Ê´Ñ²»
++¤â¤Ê¤«¤ó¤Î¤ó #JN ÌÐ̾´Ñ²»
++¤â¤Ê¤®¤³¤»¤­¤æ¤¬¤½¤ê¤ó¤¹¤¿¤ó¤É #JN ¥â¥Ê¥®¥³ÀÐÌý¥¬¥½¥ê¥ó¥¹¥¿¥ó¥É
++¤â¤Ê¤®¤³¤Õ¤£¤ë¤Ï¡¼¤â¤Ë¡¼¤«¤ó¤²¤ó¤¬¤¯¤À¤ó #JN ¥â¥Ê¥®¥³¥Õ¥£¥ë¥Ï¡¼¥â¥Ë¡¼´É¸¹³ÚÃÄ
++¤â¤Ê¤¯¤í¤×¤¹ #JN £Í£Ï£Î£Á£Ã£Ì£Ï£Ð£Ó
++¤â¤Ê¤¯¤í¤ó #JN ¥â¥Ê¥¯¥í¥ó
++¤â¤Ê¤°¤é¤¨¤ê #JN ¥â¥Ê¢·ÃΤ
++¤â¤Ê¤°¤é¤¨¤ê #JN ¥â¥Ê¢·ÃΤ
++¤â¤Ê¤³ #JN ¥â¥Ê»Ò
++¤â¤Ê¤³¤ó #JN ¥â¥Ê¥³¥ó
++¤â¤Ê¤µ¤ó¤±¤¤¤Ê¡¼ #JN ¥â¥Ê¥µ¥ó¡¦¥±¥¤¥Ê¡¼
++¤â¤Ê¤¶¤¤¤³ #JN ¥â¥Ê¥¶¥¤»Ò
++¤â¤Ê¤¸¤¾¤¦ #JN ¥â¥ÊÃÏ¢
++¤â¤Ê¤¸¤é #KK ¥â¥Ê¥¸¥é
++¤â¤Ê¤¸¤é¡¼ #KK ¥â¥Ê¥¸¥é¡¼
++¤â¤Ê¤¸¤é¤¢¤¤¤Ç¤£¡¼ #T35 monazillaID
++¤â¤Ê¤¸¤é¤ª¤ë¤°¤ï¤é #T35 monazilla.org(w
++¤â¤Ê¤»¤ó¤Ë¤ó #JN ¥â¥ÊÀç¿Í
++¤â¤Ê¤½¤¦¤·¤­ #JN ¥â¥ÊÁò¼°
++¤â¤Ê¤È¤í¤Ð¤¸¡¼¤Ê¤¿¤¤¤¤ #JN ¥â¥Ê¥È¥í¡¦¥Ð¥¸¡¼¥ÊÂç°Ó
++¤â¤Ê¤Ë¡¼ #JN ¥â¥Ê¥Ë¡¼
++¤â¤Ê¤Î¤ê¤­¤å¤¦ #JN ¥â¥Ê¥Î¡¡ÍøµÙ
++¤â¤Ê¤Ú #KK ¥â¥Ê¥Ú
++¤â¤Ê¤Ú #T35 ¥â¥Ê¥Ú
++¤â¤Ê¤Û #JN ¥â¥Ê¥Û
++¤â¤Ê¤Ü¤ó #JN ¥â¥Ê¥Ü¥ó
++¤â¤Ê¤Ý¤ì¤ª¤ó¤â¤Ê¤Ñ¤ë¤É #JN ¥â¥Ê¥Ý¥ì¥ª¥ó¡á¥â¥Ê¥Ñ¥ë¥É
++¤â¤Ê¤Þ¤¸¤ó #JN ¥â¥ÊËâ¿À
++¤â¤Ê¤ß¤Ï¤ó¤¿¡¼ #JN ¥â¥Ê¥ß¡¦¥Ï¥ó¥¿¡¼
++¤â¤Ê¤à¤· #JN ¥â¥ÊÃî
++¤â¤Ê¤ê¤«¤º¤­ #JN ¥â¥Ê¤ê¤«¤º¤­
++¤â¤Ê¤ì¤¤ #JN ¥â¥ÊÎî
++¤â¤Ê¤ì¤¤ #JN ¥â¥ÊÎî
++¤â¤Ë¡¼ #JN ¥â¥Ë¡¼
++¤â¤Ë¤« #JN ¥â¥Ë¥«¡¦±¦
++¤â¤Ë¤ã¡¼¤¯¤ó #JN ¥â¥Ë¥ã¡¼·¯
++¤â¤Ë¤ã¡¼¤¯¤ó #JN ¥â¥Ë¥ã¡¼·¯
++¤â¤Ë¤ç #R5 ¤â¤Ë¤ç
++¤â¤Í¡¼ #JN ¥â¥Í¡¼
++¤â¤Í¡¼¤ë #JN ¥â¥Í¡¼¥ë
++¤â¤Í¤¹ #JN ¥â¥Í¥¹
++¤â¤Î¤¯¤í¡¼¤à #JN ¥â¥Î¡¦¥¯¥í¡¼¥à
++¤â¤Î¤¹¤´¤¤¤¤¤­¤ª¤¤¤Ç #CJ ¤â¤Î¤¹¤´¤¤Àª¤¤¤Ç
++¤â¤Î¤Û¤·¤¶¤ª¤¦¤ê #JN ʪ´³¤·´ÈÇä¤ê
++¤â¤Ñ¤¢¤é #T35 ¥â¥Ñ¡¼¥é
++¤â¤Õ¤¡¤Ø¤Õ¤¡ #JN ¥â¥Õ¥¡¤Ø¥Õ¥¡
++¤â¤Þ¡¼ #JN ¥â¥Þ¡¼
++¤â¤ß¤ª¤« #T35 ¥â¥ß²¬
++¤â¤ß¤ª¤« #T35 Ù沬
++¤â¤â¤¤¤í¤µ¤ó¤Ç¡¼¤¯¤ê¡¼¤à¤¹¤Ú¤·¤ã¤ë #JN Åí¿§¥µ¥ó¥Ç¡¼¥¯¥ê¡¼¥àSP
++¤â¤â¤¦¤¤ #T35 ¥â¥â¡¼¥¤
++¤â¤â¤ª¤¤ #T35 ¥â¥â¡¼¥¤
++¤â¤â¤Á¤ã¤ó #JN Åí¤Á¤ã¤ó
++¤â¤â¤ó¤é¡¼ #JN ¥â¥â¥ó¥é¡¼
++¤â¤ä¤· #T35 ¥â¥ä¥·
++¤â¤é #JN ¤â¤é¢ö
++¤â¤é¡¼¤Þ¤ó #JN ¤â¤é¡¼¥Þ¥ó
++¤â¤é¤¨¤â¤ó #JN ¥â¥é¤¨¤â¤ó
++¤â¤é¤ª¤ó¤× #JN ¤â¤é¢ö
++¤â¤é¤³ #JN ¥â¥é»Ò
++¤â¤é¤¿¤¤¤· #JN ¥â¥éÂç»È
++¤â¤é¤Á¤ã¤¨¤ë #JN ¥â¥é¥Á¥ã¥¨¥ë
++¤â¤é¤Ò¤ã¤¯ #JN ¥â¥éÉ´
++¤â¤é¤Þ¤¸¤ó #JN ¥â¥éËâ¿À
++¤â¤é¤Þ¤ó #JN ¤â¤é¥Þ¥ó
++¤â¤é¤è¤·¤«¤² #JN ¥â¥éµÈ±Æ
++¤â¤é¤é #JN ¤â¤é¤é
++¤â¤é¤é¡¼ #JN ¥â¥é¥é¡¼
++¤â¤é¤é¡¼¤¢¤é¤· #JN ¥â¥é¥é¡¼¹Ó¤é¤·
++¤â¤é¤é¡¼¤«¤Á¤ç¤¦ #JN ¥â¥é¥é¡¼²ÝĹ
++¤â¤é¤é¡¼¤µ¤ó¤¸¤å¤¦¤· #JN ¥â¥é¥é¡¼»°½Æ»Î
++¤â¤é¤é¡¼¤Á¤ç¤¦¤«¤ó #JN ¥â¥é¥é¡¼Ä¹´±
++¤â¤é¤é¡¼¤Æ¤£¡¼¤À #JN ¥â¥é¥é¡¼¥Æ¥£¡¼¥À
++¤â¤é¤é¡¼¤Õ¤©¡¼ #JN ¥â¥é¥é¡¼4
++¤â¤é¤é¡¼¤Ö¤Á¤ç¤¦ #JN ¥â¥é¥é¡¼ÉôĹ
++¤â¤é¤é¡¼¤Þ¤Þ #JN ¥â¥é¥é¡¼¥Þ¥Þ
++¤â¤é¤é¤¨¤ë #JN ¥â¥é¥é¥¨¥ë
++¤â¤é¤é¤È¤Î #JN ¥â¥é¥éÅÂ
++¤â¤é¤é¤È¤Î #JN ŽÓŽ×Ž×ÅÂ
++¤â¤é¤é¤È¤Î¤È¤â¤Ê¤«¤² #JN ŽÓŽ×Ž×Å¡ʺ¸¡Ë¤ÈŽÓŽÅ±Æ¡Ê±¦¡Ë
++¤â¤é¤ê #JN ¥â¥é¥ê¡¦º¸
++¤â¤ê #T35 ¿¹
++¤â¤ê¤¢¤¬¤Ã¤Æ¤Þ¤¤¤ê¤Þ¤·¤¿ #CJ À¹¤ê¾å¤¬¤Ã¤Æ¤Þ¤¤¤ê¤Þ¤·¤¿
++¤â¤ê¤Á¤å¤¦ #T35 À¹¿ß
++¤â¤ë #JN ¥â¥ë
++¤â¤ë¤¡ #JN (ŽßŽÛŽß)ŽÓŽÙŽ§!!
++¤â¤ë¤¡ #JN ¥â¥ë¥¡
++¤â¤ì #T35 ϳ¤ì
++¤â¤ì¤¯¤· #T35 ϳ¤ì¶ú
++¤â¤í¤Ï¤Î¤Ä¤ë¤® #CJ ½ô¿Ï¤Î·õ¡£
++¤â¤ó¤­¤¤¤·¤å¤¬¤¢ #T35 ¥â¥ó¥­¡¼¥·¥å¥¬¡¼
++¤â¤ó¤¯¤¢¤ë #CJ ʸ¶ç¤¢¤ë¡©
++¤â¤ó¤ë¤¤ #T30 ÌåÎÞ
++¤ä #SUC ¤ä
++¤ä¤ª #T30 ¥ä¥ª
++¤ä¤ª¤¤ #T35 ¤ä¤ª¤¤
++¤ä¤ª¤­¤ó #KK ¥ä¥ª¥­¥ó
++¤ä¤ª¤­¤ó #T35 ¥ä¥ª¥­¥ó
++¤ä¤ª¤Ï¤² #T35 ¥ä¥ªÆŤ²
++¤ä¤ª¤Ð #T35 ²°¥ª¥Ð
++¤ä¤ª¤Õ¤¯ #KK ¥ä¥ª¥Õ¥¯
++¤ä¤­¤¤¤â #T35 ¤ä¤­¤¤¤â
++¤ä¤­¤Ä¤±¤Ð #T35 ¾ÆÉÕ¤±¿Ï
++¤ä¤­¤Ä¤±¤ä¤¤¤Ð #T35 ¾ÆÉÕ¤±¿Ï
++¤ä¤­¤È¤ê #KK ¾Æ¤­Ä»
++¤ä¤­¤È¤ê #T35 ¾Æ¤­Ä»
++¤ä¤­¤Ê¤ª¤»¤Ç¤ª¤Þ¤¨¤Î¤¢¤¿¤Þ¤â¤ä¤­¤Ê¤ª¤» #CJ ¾Æ¤­¤Ê¤ª¤»¡¢¤Ç¡¢¤ªÁ°¤ÎƬ¤â¾Æ¤­¤Ê¤ª¤»
++¤ä¤­¤ó #JN Ìë¶Ð
++¤ä¤­¤ó #JN Ìë¶Ð¡ú
++¤ä¤¯¤¶ #JN ¥ä¥¯¥¶
++¤ä¤¯¤ë¤Ä #T35 ¥ä¥¯¥ë¥Ä
++¤ä¤¯¤ë¤Ä¤·¤£ #JN ¥ä¥¯¥ë¥Ä¤·¤£
++¤ä¤°¤Ã¤Á¤ç¤ê¡¼¤Ê #JN ¥ä¥°¥Ã¥Á¥ç¥ê¡¼¥Ê
++¤ä¤µ¤·¤ß #JN Í¥¤·¤ß
++¤ä¤· #T35 ¹á¶ñ»Õ
++¤ä¤·¤¬¤Ë #T30 ¥ä¥·¥¬¥Ë
++¤ä¤·¤ã #T35 Ì뺵
++¤ä¤¸¤ë¤·¤Á¤å¤¦ #T35 Ìð°õ¿ß
++¤ä¤¹¤À¤¹¤ì¤Ã¤É #CN ÊÝÅÄ¥¹¥ì¥Ã¥É
++¤ä¤¹¤À¤¹¤ì¤Ã¤É #T35 ÊÝÅÄ¥¹¥ì¥Ã¥É
++¤ä¤¹¤ê #T35 ïÌ
++¤ä¤½¤Þ¡¼ #JN ¥ä¥½¥Þ¡¼
++¤ä¤½¤Þ¡¼¤í¤´¤¤¤ê #JN ¥ä¥½¥Þ¡¼(¥í¥´Æþ¤ê)
++¤ä¤À¤â¤ó #JN ¥ä¥À¥â¥ó
++¤ä¤Ã¤Û¡¼ #CN ¥ä¥Ã¥Û¡¼
++¤ä¤Ã¤Û¡¼ #KK ¥ä¥Ã¥Û¡¼
++¤ä¤Ã¤Û¡¼ #T35 ¥ä¥Ã¥Û¡¼
++¤ä¤Ã¤Û¤ª #T35 ¥ä¥Ã¥Û¡¼
++¤ä¤Ä #JN ¥ä¥Ä
++¤ä¤Ä #T35 ¥ä¥Ä
++¤ä¤Ê¤¬¤·¤ï #JNS ¤ä¤Ê¤¬¤·¤ï
++¤ä¤Ê¤¬¤·¤ï #T35 ¤ä¤Ê¤¬¤·¤ï
++¤ä¤Ê¤®¤µ¤ï¤â¤Ê¡¼ #JN ¥ä¥Ê¥®¥µ¥ï¥â¥Ê¡¼
++¤ä¤Õ #KK ¥ä¥Õ
++¤ä¤Õ¤¦ #CN ÌðÉ÷
++¤ä¤Õ¤¦ #T35 ÌðÉ÷
++¤ä¤Õ¤ª¤¯ #KK ¥ä¥Õ¥ª¥¯
++¤ä¤Õ¤ª¤¯ #T35 ¥ä¥Õ¥ª¥¯
++¤ä¤Ö¤Ë¤é¤ß¤â¤é¤é¡¼ #JN 鮤ˤé¤ß¥â¥é¥é¡¼
++¤ä¤Þ¤¶¤­¤È¤é¤Ã¤× #T35 »³ºê¥È¥é¥Ã¥×
++¤ä¤Þ¤¶¤­¤ï¤¿¤ë #T35 »³ºê¾Ä(^^)
++¤ä¤Þ¤À #JN »³ÅÄ
++¤ä¤á¤Æ¤¿¤â¤ì #CJ ¤ä¤á¤Æ¤¿¤â¤ì
++¤ä¤á¤ì #CJ ¤ä¤á¤ì
++¤ä¤é¤Ê¤¤¤« #CJ ¤ä¤é¤Ê¤¤¤«
++¤ä¤ê¤¹¤®¤¯¤ó #JN ¤ä¤ê¤¹¤®·¯
++¤ä¤ë¤­¤Ê¤· #T35 ¤ä¤ëµ¤¤Ê¤·¡ª
++¤ä¤ë¤¾ #JN ¤ä¤ë¤¾¡ª¡ª
++¤ä¤ë¤Ã¤Æ¤Ö¤· #CJ ¤ä¤ë¤Ã¤ÆÀá
++¤ä¤í¤ª¤¦¤è #CJ ¥ä¥í¡¼¥¦¥è
++¤ä¤í¤ª¤¦¤è #CJ ŽÔŽÛŽ°Ž³ŽÖ
++¤ä¤ï¤é¤Á¤ã¤ó #JNM ¥ä¥ï¥é¤Á¤ã¤ó
++¤ä¤ó¤¸¤ã¤ó #KK ¥ä¥ó¥¸¥ã¥ó
++¤ä¤ó¤¸¤ã¤ó #T35 ¥ä¥ó¥¸¥ã¥ó
++¤ä¤ó¤ä¤ó #CJ ¤ä¤ó¤ä¤ó
++¤ä¤ó¤ä¤ó #T35 ¤ä¤ó¤ä¤ó
++¤æ¡¼¤¨¤¹¤Ó¡¼¤±¡¼¤Ö¤ë¤Ç¤¯¤Ó¤Ä¤Ã¤Æ¤·¤Í #CJ USB¥±¡¼¥Ö¥ë¤Ç¼óÄߤäƻá¤Í
++¤æ¡¼¤¸¡¼ #T35 £Õ£Ç
++¤æ¡¼¤æ¡¼ #JN ¥æ¡¼¥æ¡¼
++¤æ¤¦¤¤¤Á #JN Í´£±
++¤æ¤¦¤«¤ó #JN ͼ´©
++¤æ¤¦¤­¤¬¤Ê¤¯¤Æ¤ß¤ì¤Ê¤¤¤¬¤¾¤¦¤«¤¤¤»¤Ä¤¹¤ì #T35 ͦµ¤¤¬Ìµ¤¯¤Æ¸«¤ì¤Ê¤¤²èÁü²òÀ⥹¥ì
++¤æ¤¦¤³ #T35 ¤æ¤¦¤³
++¤æ¤¦¤·¤ã #T35 ͦ¼Ô
++¤æ¤¦¤·¤ã¤â¤Ê¡¼ #JN ͦ¼Ô¥â¥Ê¡¼
++¤æ¤¦¤·¤ã¤â¤Ê¤¿ #JN ͦ¼Ô¥â¥ÊÂÀ
++¤æ¤¦¤Ç¤£¤¤¤×¤í¤¸¤§¤¯¤È #T35 UD¥×¥í¥¸¥§¥¯¥È
++¤æ¤¦¤É¤¦ #T30 ͶƳ
++¤æ¤¦¤Ê¤ó¤Þ¤Ä¤ê #T35 ¤æ¤¦¤Ê¤óº×¤ê
++¤æ¤¦¤Ï¤È¤¯¤Æ¤¤¤µ¤ì¤Þ¤¹¤¿ #CJ YOU¤ÏÆÃÄꤵ¤ì¤Þ¤¹¤¿
++¤æ¤¦¤Ó¤ó¤æ¤¦¤»¤¤¤¤¤¿ #CJ ͹ÊØ¡¦Í¹À¯ÈÄ
++¤æ¤¦¤Ó¤ó¤æ¤¦¤»¤¤¤¤¤¿ #CN ͹ÊØ¡¦Í¹À¯ÈÄ
++¤æ¤¦¤Ó¤ó¤æ¤¦¤»¤¤¤¤¤¿ #T35 ͹ÊØ¡¦Í¹À¯ÈÄ
++¤æ¤¦¤Ü¤¦ #JN m(-_-m)¡ÁŽ³Ž×ŽÒŽ¼ŽÔŽ°
++¤æ¤¦¤Ü¤¦ #JN ¤æ¤¦Ë·
++¤æ¤¦¤á¤¤¤³¤Æ¤¤ #T35 ͭ̾¸ÇÄê
++¤æ¤¦¤ê¤ç¤¦¤« #T30 Í­ÎÁ²½
++¤æ¤¬¤ß #T35 ÏÄ
++¤æ¤­¤ª¤Ë¤®¤ê¤À¤ë¤Þ #JN À㤪¤Ë¤®¤ê¤À¤ë¤Þ
++¤æ¤­¤¸¤ë¤· #T35 À°õ
++¤æ¤­¤¸¤ë¤·¤®¤å¤¦¤Ë¤å¤¦ #JN À°õµíÆý
++¤æ¤Ã¤­¡¼ #JN ¥æ¥Ã¥­¡¼
++¤æ¤Ã¤­¡¼ #T35 ¥æ¥Ã¥­¡¼
++¤æ¤Ã¤­¤¤ #T35 ¥æ¥Ã¥­¡¼
++¤æ¤Ç¤À¤«¤é #T35 ¤æ¤Ç¤À¤«¤é¡¦¡¦¡¦
++¤æ¤Ë¤Ã¤¯¤¹¤Õ¤é¤Ã¤·¤å #T35 unix¥Õ¥é¥Ã¥·¥å
++¤æ¤Ö¤¿ #T35 ÌýÆÚ
++¤æ¤ó #JN ¤æ¤ó
++¤æ¤ó¤«¡¼¤¹ #JN ¥æ¥ó¥«¡¼¥¹
++¤æ¤ó¤«¡¼¤¹ #T35 ¥æ¥ó¥«¡¼¥¹
++¤æ¤ó¤«¤¢¤¹ #T35 ¥æ¥ó¥«¡¼¥¹
++¤æ¤ó¤æ¤ó #CJ ¤æ¤ó¤æ¤ó
++¤æ¤ó¤æ¤ó #T35 ¤æ¤ó¤æ¤ó
++¤è #CJ YO¡ª
++¤è #CJ yo¡ª
++¤è #CJ yp
++¤è¤¢¤Ë #T35 Â奢¥Ë
++¤è¤¤¡¼¤·¤ç¤â¤Ê¡¼ #JN ¥è¥¤¡¼¥·¥ç¥â¥Ê¡¼
++¤è¤¤¡¼¤·¤ç¤â¤Ê¡¼ #JN ŽÖŽ²Ž°Ž¼Ž®ŽÓŽÅŽ°
++¤è¤¦¤¯¤· #T35 Íζú
++¤è¤¦¤·¤Ñ¤Ñ¤È¤¯¤â¤ê¤¿¤Î¤ó¤¸¤ã¤¦¤¾¤¦ #CJ ¤è¡¼¤·¥Ñ¥ÑÆÃÀ¹Íê¤ó¤¸¤ã¤¦¤¾¡¼
++¤è¤¦¤¸¤ç #T35 ¤ç¤¥¦ÉŽÞ¤ç
++¤è¤¦¤¸¤ç¤æ¤¦¤«¤¤ #JN ¤ç¤¥¦É¡«¤ç¤å¤¥¥õ¤£
++¤è¤¦¤»¤¤ #T35 ÍÅÀº
++¤è¤¦¤Á¤¨¤ó¤«¤é¤Ç¤Ê¤ª¤·¤Æ¤³¤¤ #T35 ÍÄ¡¡ÃÕ¡¡±à¡¡¤«¡¡¤é¡¡½Ð¡¡Ä¾¡¡¤·¡¡¤Æ¡¡¤³¡¡¤¤
++¤è¤¦¤Á¤ó¤À¤ó #T35 ÍÎÄÁÃÄ
++¤è¤© #CJ YO¡ª
++¤è¤© #CJ yo¡ª
++¤è¤© #CJ yp
++¤è¤©¡¼¤¼¤Õ #JN ¥è¥©¡¼¥¼¥Õ
++¤è¤©¡¼¤¼¤Õ¤«¤Ã¤³¤«¤·¤ç¤¦¤«¤Ã¤³¤È¤¸ #JN ¥è¥©¡¼¥¼¥Õ(²¾¾Î)
++¤è¤«¡¼¤ó #JN ¥è¥«¡¼¥ó
++¤è¤¯¤Ö¤«¤ª¤¦ #JN (¡­V¡®)¡Ö
++¤è¤¯¤Ö¤«¤ª¤¦ #JN Íß¿¼²¦
++¤è¤¯¤â #JN ¡Ê¦¨§Õ¦¨¡ËŽÖŽ¸ŽÓŽ¥Ž¥Ž¥
++¤è¤¯¤â #JN ¥è¥¯¥â¡¦¡¦¡¦
++¤è¤¯¤â #JN ŽÖŽ¸ŽÓŽ¥Ž¥Ž¥
++¤è¤³¤Ï¤á #CN ¥è¥³¥Ï¥á
++¤è¤³¤Ï¤á #T35 ¥è¥³¥Ï¥á
++¤è¤³¤ä¤Þ¤µ¤ó¤´¤¯¤· #T35 ²£»³»°¹ñ»Ö
++¤è¤´¤ì #T35 ¥è¥´¥ì
++¤è¤´¤ì #T35 ±ø¤ì
++¤è¤·¤À #JN Yoshida
++¤è¤·¤Î¤ä¤³¤Ô¤Ú #T35 µÈÌî²È¥³¥Ô¥Ú
++¤è¤·¤æ¤­ #T35 ¤è¤·¤æ¤­
++¤è¤·¤è¤· #JN ¡Ê¡¡¡¨§¥¡¨¡Ë¡³¡Ê¡­£ö¡®¡¡¡ËŽÖŽ¼ŽÖŽ¼
++¤è¤·¤è¤· #JN ¤è¤·¤è¤·
++¤è¤¼¤Ë #T35 Â奼¥Ë
++¤è¤½¤¦¤Î¤Ê¤Ê¤á¤¦¤¨ #T35 ͽÁۤμФá¾å
++¤è¤Á¤ì¤¹ #T35 ͽÃΥ쥹
++¤è¤Ã¤­¤å¤ó #JN ¤è¤Ã¤­¤å¤ó
++¤è¤Ã¤­¤å¤ó #T35 ¤è¤Ã¤­¤å¤ó
++¤è¤Ã¤¹¤£¤â¤Ê¡¼ #JN ¤è¤Ã¤¹¤£¥â¥Ê¡¼
++¤è¤Ê¡¼ #JN ¥è¥Ê¡¼
++¤è¤Í #T35 ¢¨
++¤è¤Í¡¼ #JN ¥è¥Í¡¼
++¤è¤ß¡¼¤ê #JN ¥è¥ß¡¼¥ê
++¤è¤á #CJ ²Ç
++¤è¤ë¤Î¤ª¤«¤º #T35 Ìë¤Î¤ª¤«¤º
++¤è¤ó #T35 >>4
++¤è¤ó¤È¤¦¤·¤ó¤Ë¤é¤¤¤à #JN »ÍƬ¿È¥Ë¥é¥¤¥à
++¤è¤ó¤Þ¤ë¤è¤ó #T35 404
++¤è¤ó¤è¤ó #CJ ¤è¤ó¤è¤ó
++¤è¤ó¤è¤ó #T35 ¤è¤ó¤è¤ó
++¤é¡¼ #T35 £Ò£Á£Ò
++¤é¡¼¤¸¤¨¤¤¤ê¤¦¤ï¤¡¤¡¤ó #JN ¥é-¥¸¥¨¥¤¥ê¥¦¥ï¥¡¥¡¥ó
++¤é¡¼¤¸¤¨¤¤¤ê¤¦¤ï¤¡¤¡¤ó #JN Ž×-Ž¼ŽÞŽ´Ž²ŽØŽ³ŽÜŽ§Ž§ŽÝ
++¤é¡¼¤á¤ó #T35 ¥é¡¼¥á¥ó
++¤é¡¼¤á¤ó¤®¤³ #JN ¥é¡¼¥á¥ó¥®¥³
++¤é¡¼¤á¤ó¤®¤³¤¢¤ó¤É¤â¤Ê¡¼ #JN ¥é¡¼¥á¥ó¥®¥³¡õ¥â¥Ê¡¼
++¤é¡¼¤á¤ó¤â¤Ê¡¼ #JN ¥é¡¼¥á¥ó¥â¥Ê¡¼
++¤é¤¢ #T35 RAR
++¤é¤¤¡¼¤è¡¼ #T35 (Ž¥¢ÏŽ¥)Ž×Ž²Ž°ŽÖŽ°!!
++¤é¤¤¡¼¤è¡¼ #T35 ¡Ê¡¦¢Ï¡¦¡Ë¥é¥¤¡¼¥è¡¼!!
++¤é¤¤¡¼¤è¡¼ #T35 ¡Ê¡¦¢Ï¡¦¡ËŽ×Ž²Ž°ŽÖŽ°!!
++¤é¤¤¤¢¤Ã¤È #KK ¥é¥¸¡÷
++¤é¤¤¤¿ #CN ¥éÈÄ
++¤é¤¤¤Á¤ç¤¦ #KK ÍëÄ»
++¤é¤¤¤Á¤ç¤¦ #T35 ÍëÄ»
++¤é¤¤¤Ì #T35 ¥é¥¤¥Ì
++¤é¤¤¤Ì #T35 ¥é¸¤
++¤é¤¤¤Ì #T35 Ž×¸¤
++¤é¤¤¤Ì #T35 Ž×Ž²ŽÇ
++¤é¤¦¡¼¤¸ #T35 ¥é¥¦¡¼¥¸
++¤é¤¦¤á¤¹ #JN ¥é¥¦¥á¥¹
++¤é¤¦¤á¤¹ #T35 ¥é¥¦¥á¥¹
++¤é¤¦¤ó¤¸ #CN ¥é¥¦¥ó¥¸
++¤é¤¦¤ó¤¸ #T35 ¥é¥¦¥ó¥¸
++¤é¤¦¤ó¤¸¤ª¤Õ¤«¤¤ #T30 ¥é¥¦¥ó¥¸¥ª¥Õ²ñ
++¤é¤¦¤ó¤¸¤« #T30 ¥é¥¦¥ó¥¸²½
++¤é¤¦¤ó¤¸¤Ò¤Ê¤ó¤¸¤ç #T35 ¥é¥¦¥ó¥¸ÈòÆñ½ê
++¤é¤¦¤ó¤¸¤ã #T35 ¥é¥¦¥ó¥¸¥ã
++¤é¤¦¤ó¤¸¤ã¡¼ #T35 ¥é¥¦¥ó¥¸¥ã¡¼
++¤é¤¦¤ó¤¸¤ã¤¢ #T35 ¥é¥¦¥ó¥¸¥ã¡¼
++¤é¤¦¤ó¤¸¤ã¤¢¤Í¤® #T35 ¥é¥¦¥ó¥¸¥ã¡¼Ç¬
++¤é¤­¡¼¤Þ¤ó #JN ¥é¥­¡¼¥Þ¥ó
++¤é¤­¡¼¤Þ¤ó #JN ¥é¥­¡¼¥Þ¥ó
++¤é¤¸¤¢¤Ã¤È #KK ¥é¥¸¡÷
++¤é¤¹¤Ü¤¹¤Ï¤¨¤¹¤È¤·¡¼¤â¤¢ #CJ ¥é¥¹¥Ü¥¹¤Ï¥¨¥¹¥È¥·¡¼¥â¥¢
++¤é¤Ã¤­¡¼¤Á¤ó¤Ð #T35 ¥é¥Ã¥­¡¼ÄÁÇÏ
++¤é¤Ã¤È¤­¤é¡¼ #JN ¥é¥Ã¥È¥­¥é¡¼
++¤é¤Æ¤ó¤¢¤Ò¤ã #JN ¥é¥Æ¥ó¥¢¥Ò¥ã
++¤é¤Ç¤£¤½ #T35 ¥é¥Ç¥£¥½
++¤é¤Ê¡¼ #JN ¥é¥Ê¡¼
++¤é¤ê¤é¤ê #T35 ¥é¥ê¥é¥ê
++¤é¤ê¤é¤ê #T35 Ž×ŽØŽ×ŽØ
++¤é¤ë¤¯¤½ #JN ¥é¥ë¥¯¥½
++¤é¤ë¤¯¤½ #T35 ¥é¥ë¥¯¥½
++¤é¤í¡¼ #SUC ¤é¤í¡¼
++¤é¤í¤¦ #SUC ¤é¤í¡¼
++¤ê¡¼¤¼¤ó¤È #JN ¥ê¡¼Á°ÅÓ
++¤ê¡¼¤Õ¤È¤¦¤µ¤¯ #T35 ¥ê¡¼¥ÕÅðºî
++¤ê¡¼¤Þ¤ó #JN ¥ê¡¼¥Þ¥ó
++¤ê¡¼¤Þ¤ó #T30 ¥ê¡¼¥Þ¥ó
++¤ê¡¼¤ê¤Ã¤Ò #JN ­¡¥ê¡¼¥ê¥Ã¥Ò
++¤ê¡¼¤ê¤Ã¤Ò¤¸¤å¤Ë¤¢ #JN ­¢¥ê¡¼¥ê¥Ã¥Ò£Ê£ò
++¤ê¡¼¤ê¤Ã¤Ò¤Ë¤»¤¤ #JN ­£¥ê¡¼¥ê¥Ã¥ÒÆóÀ¤
++¤ê¤¢¤½¤·¤é¤Í¡¼¤è #JN ¥ê¥¢¥ë¥½¥é¥Í¡¼¥è
++¤ê¤¢¤Á¤å¤¦ #T35 ¥ê¥¢¿ß
++¤ê¤¢¤ë #T35 ¥ê¥¢¥ë
++¤ê¤¢¤ë¤¢¤½¤Ñ¤½¤Þ¤½ #JN ¥ê¥¢¥ë¥¢¥½¥Ñ¥½¥Þ¥½
++¤ê¤¢¤ë¤¢¤½¤Ñ¤½¤Þ¤½ #JN ¥ê¥¢¥ëŽ±Ž¿ŽÊŽßŽ¿ŽÏŽ¿
++¤ê¤¢¤ë¤¢¤Ã¤½¡¼ #JN ¥ê¥¢¥ë¤¢¤Ã¤½¡¼
++¤ê¤¢¤ë¤£¤ç¤¥ #JN ¥ê¥¢¥ë¤£¤ç¤¥
++¤ê¤¢¤ë¤£¤ç¤¥¤â¤³¤â¤³¤Ð¡¼¤¸¤ç¤ó #JN ¥ê¥¢¥ë¤£¤ç¤¥¡Ê¤â¤³¤â¤³¥Ð¡¼¥¸¥ç¥ó¡Ë
++¤ê¤¢¤ë¤¤¤é¤Í¡¼¤è #JN ¥ê¥¢¥ë¥¤¥é¥Í¡¼¥è
++¤ê¤¢¤ë¤¦¤Ä #JN ¥ê¥¢¥ëݵ
++¤ê¤¢¤ë¤ª¤Þ¤¨¤¯¤Þ¡¼ #JN ¥ê¥¢¥ë¥ª¥Þ¥¨¥¯¥Þ¡¼
++¤ê¤¢¤ë¤ª¤Þ¤¨¤â¤Ê¡¼ #JN ¥ê¥¢¥ë¥ª¥Þ¥¨¥â¥Ê¡¼
++¤ê¤¢¤ë¤«¤µ¡¼¤ê #JN ¥ê¥¢¥ë¥«¥µ¡¼¥ê
++¤ê¤¢¤ë¤­¤¿¡¼¡¼ #JN ¥ê¥¢¥ë¥­¥¿¡¼
++¤ê¤¢¤ë¤­¤Á¤¬¤¤¤±¤¤¤Û¤¦ #JN ¥ê¥¢¥ë´ðÃϳ°·ÙÊó
++¤ê¤¢¤ë¤®¤³ #JN ¥ê¥¢¥ë¥®¥³
++¤ê¤¢¤ë¤´¤¿¤¤¤Õ¤Þ¤ó¤¾¤¯ #JN ¥ê¥¢¥ë¸ÞÂÎÉÔËþ­
++¤ê¤¢¤ë¤·¤£ #JN ¥ê¥¢¥ë¤·¤£
++¤ê¤¢¤ë¤·¤Í¤Ð¡¼ #JN ¥ê¥¢¥ë¥·¥Í¥Ð¡¼
++¤ê¤¢¤ë¤·¤ç¤¦¤Ü¤¦ #T35 ¥ê¥¢¥ë¾ÃËÉ
++¤ê¤¢¤ë¤·¤é¤Í¡¼¤è #JN ¥ê¥¢¥ë¥·¥é¥Í¡¼¥è
++¤ê¤¢¤ë¤·¤é¤Í¡¼¤è2 #JN ¥ê¥¢¥ë¥·¥é¥Í¡¼¥è£²
++¤ê¤¢¤ë¤¸¤µ¤¯¤¸¤¨¤ó #JN ¥ê¥¢¥ë¥¸¥µ¥¯¥¸¥¨¥ó
++¤ê¤¢¤ë¤¸¤µ¤¯¤¸¤¨¤ó #JN ¥ê¥¢¥ëŽ¼ŽÞŽ»Ž¸Ž¼ŽÞŽ´ŽÝ
++¤ê¤¢¤ë¤¸¤ã¤Ê¤¤¤«¤é¤¯¤½ #CJ ¥ê¥¢¥ë¤¸¤ã¤Ê¤¤¤«¤é¥¯¥½
++¤ê¤¢¤ë¤¸¤ç¤ó¤¸¤ç¤µ¤ó #JN ¥ê¥¢¥ë¥¸¥ç¥ó¥¸¥ç¤µ¤ó
++¤ê¤¢¤ë¤¹¤Ã¤É¤ì #JN ¥ê¥¢¥ëŽ½Ž¯ŽÄŽÞŽÚ
++¤ê¤¢¤ë¤¹¤Õ¤£¤ó¤¯¤¹ #JN ¥ê¥¢¥ë¥¹¥Õ¥£¥ó¥¯¥¹
++¤ê¤¢¤ë¤½¤¦¤Ç¤â¤Ê¤¤¤è #JN ¥ê¥¢¥ë¤½¤¦¤Ç¤â¤Ê¤¤¤è
++¤ê¤¢¤ë¤½¤é¤Í¡¼¤è #JN ¥ê¥¢¥ë¥½¥é¥Í¡¼¥è
++¤ê¤¢¤ë¤½¤ì¤¬¤Ê¤Ë¤« #JN ¥ê¥¢¥ë¥½¥ì¥¬¥Ê¡á¥Ë¥«
++¤ê¤¢¤ë¤¿¤¤¤à #T35 ¥ê¥¢¥ë¥¿¥¤¥à
++¤ê¤¢¤ë¤Á¤å¤¦¤Ü¤¦ #T35 ¥ê¥¢¥ë¿ß˼
++¤ê¤¢¤ë¤Ê¤ª¤Ë¤®¤ê¤â¤Ê¡¼ #JN ¥ê¥¢¥ë¤Ê¤ª¤Ë¤®¤ê¥â¥Ê¡¼
++¤ê¤¢¤ë¤Ê¤ª¤Ë¤®¤ê¤â¤Ê¡¼¤¤¤Á #JN ¥ê¥¢¥ë¤Ê¤ª¤Ë¤®¤ê¥â¥Ê¡¼£±
++¤ê¤¢¤ë¤Ê¤ª¤Ë¤®¤ê¤â¤Ê¡¼¤Ë #JN ¥ê¥¢¥ë¤Ê¤ª¤Ë¤®¤ê¥â¥Ê¡¼£²
++¤ê¤¢¤ë¤Ê¤±¤ó #JN ¥ê¥¢¥ë¤Ê¥±¥ó
++¤ê¤¢¤ë¤Ê¤Ã¤Á #JN ¥ê¥¢¥ë¤Ê¤Ã¤Á
++¤ê¤¢¤ë¤Ê¤É¤»¤¤¤µ¤ó #JN ¥ê¥¢¥ë¤ÊÅÚÀ±¤µ¤ó
++¤ê¤¢¤ë¤Ê¤Í¤¹¤â¤Ê¡¼ #JN ¥ê¥¢¥ë¤Ê¥Í¥¹¥â¥Ê¡¼
++¤ê¤¢¤ë¤Ë¤À¡¼ #JN ¥ê¥¢¥ë¥Ë¥À¡¼
++¤ê¤¢¤ë¤Ï¤¡ #JN ¥ê¥¢¥ë¥Ï¥¡¡©
++¤ê¤¢¤ë¤Ò¤í¤æ¤­ #JN ¥ê¥¢¥ë¤Ò¤í¤æ¤­
++¤ê¤¢¤ë¤Õ¤§¤é¡¼¤Á¤ç #JN ¥ê¥¢¥ë¥Õ¥§¥é¡¼¥Á¥ç
++¤ê¤¢¤ë¤Û¤½¤á #JN ¥ê¥¢¥ëºÙÌÜ
++¤ê¤¢¤ë¤Þ¤À¡¼ #JN ¥ê¥¢¥ë¥Þ¥À¡¼
++¤ê¤¢¤ë¤Þ¤Ë¡¼ #JN ¥ê¥¢¥ë¥ÞÆó¡Ý
++¤ê¤¢¤ë¤à¤Ã¤¯ #JN ¥ê¥¢¥ë¥à¥Ã¥¯
++¤ê¤¢¤ë¤â¤¦¤³¤Í¤¨¤è #JN ¥ê¥¢¥ë¥â¥¦¥³¥Í¥¨¥è
++¤ê¤¢¤ë¤â¤Ê¡¼ #JN ¥ê¥¢¥ë¥â¥Ê¡¼
++¤ê¤¢¤ë¤ä¤À¤â¤ó #JN ¥ê¥¢¥ë¥ä¥À¥â¥ó
++¤ê¤¢¤ë¤è¤·¤Æ¤£¡¼ #JN ¥ê¥¢¥ë¤è¤·¥Æ¥£¡¼
++¤ê¤¢¤ë¤ê¤¢¤ê¤Æ¤£ #T35 ¥ê¥¢¥ë¥ê¥¢¥ê¥Æ¥£
++¤ê¤¢¤ë¤ì¤â¤Ê #JN ¥ê¥¢¥ë¥ì¥â¥Ê
++¤ê¤¤¤Á #T35 reach
++¤ê¤¤¤É¤·¤¤¤¸¤¤¤¢¤¤ #T35 read.cgi
++¤ê¤«¤Á¤ã¤ó #T35 Τ²Â¤Á¤ã¤ó
++¤ê¤­¤·¤ì¤Ç¤£ #T35 ¥ê¥­¥·¥ì¥Ç¥£
++¤ê¤­¤Ã¤É¤â¤é¡¼¤¯ #JN ¥ê¥­¥Ã¥É¡¦¥â¥é¡¼¥¯
++¤ê¤¯ #T35 Φ
++¤ê¤¸¤§¤ó¤ê¤ã #JN Íû·òÎÉ
++¤ê¤Ã¤Ä #T35 ¥ê¥Ã¥Ä
++¤ê¤Ã¤Ä¤¬¤¤¤ë¤µ #JN ¥ê¥Ã¥Ä¤¬¤¤¤ë¤µ
++¤ê¤Ã¤Ý¤¦¤¿¤¤ #JN ΩÊýÂÎ
++¤ê¤Æ¤Ê¤¢ #T35 ¥ê¥Æ¥Ê¡¼
++¤ê¤È¤ë¤¨¤¤¤ê¤¦¤ï¤¡¤¡¤ó #JN ¥ê¥È¥ë¥¨¥¤¥ê¥¦¥¡¥¡¥ó
++¤ê¤È¤ë¤¨¤¤¤ê¤¦¤ï¤¡¤¡¤ó #JN ŽØŽÄŽÙŽ´Ž²ŽØŽ³Ž§Ž§ŽÝ
++¤ê¤Ü¤Ã¤È #T35 ¥ê¥Ü¥Ã¥È
++¤ê¤Ü¤ë¤Ð¡¼¤¹¤Þ¤ó¤«¤Ã¤¿ #JN ¥ê¥Ü¥ë¥Ð¡¼¡¦¥¹¥Þ¥ó¥«¥Ã¥¿
++¤ê¤Ü¤ë¤Ð¡¼¤¹¤Þ¤ó¤«¤Ã¤¿ #JN ¥ê¥Ü¥ë¥ô¥¡¡¼¡¦¥¹¥Þ¥ó¥«¥Ã¥¿
++¤ê¤Ü¤ó #T35 ¥ê¥Ü¥ó
++¤ê¤Ü¤ó¤×¤ì¤¤ #T30 ¥ê¥Ü¥ó¥×¥ì¥¤
++¤ê¤â¡¼¤È¤Û¤¹¤È #T35 ¥ê¥â¡¼¥È¥Û¥¹¥È
++¤ê¤â¤Û #T35 ¥ê¥â¥Û
++¤ê¤ã¤¯ #T35 (ry
++¤ê¤ã¤¯ #T35 ry
++¤ê¤ã¤¯ #T35 ¡Ê£ò£ù
++¤ê¤ã¤¯¤·¤­¤¸¤Á¤ó¤µ¤¤ #T35 ά¼°ÃÏÄú×
++¤ê¤ç¤¦¤¹¤ì¤ª¤È¤³ #JN ÎÉ¥¹¥ìÃË
++¤ê¤ç¤¦¤¹¤ì¤Î¤è¤«¤ó #CJ ÎÉ¥¹¥ì¤Îͽ´¶
++¤ê¤ç¤¦¤Î¤¦ #T35 ξǾ
++¤ê¤ë¤³ #JN ¥ê¥ë»Ò
++¤ê¤í¡¼¤É #T30 ¥ê¥í¡¼¥É
++¤ê¤í¤ª¤É¤¹¤ì¤Ã¤É #T35 ¥ê¥í¡¼¥É¥¹¥ì¥Ã¥É
++¤ê¤í¤¹¤ì #T35 ¥ê¥í¥¹¥ì
++¤ê¤ó¤´¤Ä¤«¤¤ #T35 ¥ê¥ó¥´»È¤¤
++¤ë¤¤ #T35 rui
++¤ë¤Ñ¤ó¤Õ¤é¤Ã¤·¤å #T35 ¥ë¥Ñ¥ó¥Õ¥é¥Ã¥·¥å
++¤ì¡¼ #JN ¥ì¡¼
++¤ì¤¤¤­¤å¤¦¤·¤ã #JN ÎîÛͼÖ
++¤ì¤¤¤¯ #JN ¥ì¥¤¥¯
++¤ì¤¤¤µ¤à #T35 Îä´¨
++¤ì¤¤¤¾¤¦¤³ #T35 Î䢸Ë
++¤ì¤°¤Í¤Ã¤»¤à #T35 Regnessem
++¤ì¤²¡¼ #T35 ¥ì¥²¡¼
++¤ì¤²¡¼¤¤¤¿ #CN ¥ì¥²¡¼ÈÄ
++¤ì¤²¡¼¤¤¤¿ #T35 ¥ì¥²¡¼ÈÄ
++¤ì¤¸ #T35 ¥ì¥¸
++¤ì¤¹ #T30 ¥ì¥¹
++¤ì¤¹¤µ¤¯¤¸¤ç #T30 ¥ì¥¹ºï½ü
++¤ì¤¹¤¹¤ì¤´¤Ð¤¯ #T30 ¥ì¥¹¥¹¥ì¸íÇú
++¤ì¤¹¤¿¤Æ¤´¤Ð¤¯ #T30 ¥ì¥¹Î©¤Æ¸íÇú
++¤ì¤¹¤Ð¤ó¤´¤¦ #T35 ¥ì¥¹ÈÖ¹æ
++¤ì¤Ã¤È¤¦ #KK ÎôƬ
++¤ì¤Ã¤É¤Ö¤Ã¤¯¤¤¤Ï¤ó #CJ ¥ì¥Ã¥É¥Ö¥Ã¥¯°ãÈ¿¡ª¡¢¥ì¥Ã¥É¥«¡¼¥É¡ª
++¤ì¤Ä¤®¤ç¤Ù¤¤¤Ù¡¼¤·¡¼¤Þ¤¤¤Ø¡¼ #CJ ¤ì¤Ä¤®¤ç¡ª¤Ù¤¤¤Ù¡¼¡¡¤·¡¼¤Þ¤¤¤Ø¡¼¢ö
++¤ì¤Ä¤®¤ç¤Ù¤¤¤Ù¡¼¤·¡¼¤Þ¤¤¤Ø¡¼ #T35 ¤ì¤Ä¤®¤ç¡ª¤Ù¤¤¤Ù¡¼¡¡¤·¡¼¤Þ¤¤¤Ø¡¼¢ö
++¤ì¤Ç¤£¤¤¤¹¤µ¤Þ #T35 ¥ì¥Ç¥£¡¼¥¹ÍÍ
++¤ì¤Ù¤ë¤Ò¤¯ #KY ¥ì¥Ù¥ëÄã
++¤ì¤â¤Ê #JN ¥ì¥â¥Ê
++¤ì¤â¤Ê #JN ¥ì¥â¥Ê
++¤ì¤â¤Ê¤¹¤ì #CN ¥ì¥â¥Ê¥¹¥ì
++¤ì¤â¤Ê¤¹¤ì¤Î¤â¤é¤é¡¼ #JN ¥ì¥â¥Ê¥¹¥ì¤Î¥â¥é¥é¡¼
++¤ì¤â¤é¤â¡¼¤Ê #JN ¥ì¥â¥é¥â¡¼¥Ê
++¤ì¤ì¤Û #T35 ¥ì¥ì¥Û
++¤ì¤ó¤¬ #T35 ¥ì¥ó¥¬
++¤í #T35 ϧ
++¤í¡¼¤«¤ë¤ë¡¼¤ë #T35 ¥í¡¼¥«¥ë¥ë¡¼¥ë
++¤í¤¤¤â¤Ê¤Ù¤ë #JN ¥í¥¤¡¦¥â¥Ê¥Ù¥ë
++¤í¤° #T35 ¥í¥°
++¤í¤±¤Ã¤È¤Ç¤Ä¤­¤Ì¤±¤ë #CJ ¥í¥±¥Ã¥È¤ÇÆͤ­È´¤±¤ë
++¤í¤´ #T35 ¥í¥´
++¤í¤Ã¤¯¤·¤Æ¤£ #JN ¥í¥Ã¥¯¥·¥Æ¥£
++¤í¤Ã¤¯¤â¤Ê¡¼ #JN ¥í¥Ã¥¯¥â¥Ê¡¼
++¤í¤Ã¤Ý¤ó¤¾¡¼ #JN ¤í¤Ã¤Ý¤ó¤¾¡¼
++¤í¤Ã¤Ý¤ó¤¾¡¼ #T35 ¤í¤Ã¤Ý¤ó¤¾¡¼
++¤í¤Æ¤¨¤ó #T35 ¥í¥Æ¡¼¥ó
++¤í¤Æ¤¨¤ó #T35 ŽÛŽÃŽ°ŽÝ
++¤í¤Ó¤á¤¹ #JN ¥í¥Ó¥á¥¹
++¤í¤Ó¤á¤¹ #T35 ¥í¥Ó¥á¥¹
++¤í¤Ó¤é¡¼ #T35 ¥í¥Ó¥é¡¼
++¤í¤Õ¤È¤×¤é¤¹¤ï¤ó #CN ¥í¥Õ¥È¥×¥é¥¹¥ï¥ó
++¤í¤à #KS ROM
++¤í¤à #R5 £Ò£Ï£Í
++¤í¤à #T35 R@M
++¤í¤à #T35 ROM
++¤í¤à #T35 £Ò£Ï£Í
++¤í¤ê #T35 ¥í¥ê
++¤í¤ê¤³¤ó #T35 ¥í¥ê¥³¥ó
++¤í¤ê¤Ú¤É #T35 ¥í¥ê¥Ú¥É
++¤í¤ë #CJ (lol
++¤í¤ì #KK ¥í¥ì
++¤í¤í #JN ¥í¥í
++¤í¤í #T35 ¥í¥í
++¤í¤ó¤² #T35 ¥í¥óÌÓ
++¤ï¡¼¤â¤Ê¡¼ #JN ¤ï¡¼¤â¤Ê¡¼
++¤ï¤¤¤Ç¤¹¤è¤ó¤¸¤å¤¦ #JN ¥ï¥¤¥Æ¡«¥¹£´£°
++¤ï¤¤¤Ó¡¼¤Ó¡¼¤Û¤¦¤Á¤ß¤ó #T35 £Ù£Â£ÂÊüÃÖ̱
++¤ï¤«¤ª¤¯ #T35 ¤ï¤«¤ª¤¯
++¤ï¤«¤Î¤Ï¤Ê #T35 WAKANOHANA
++¤ï¤«¤á #T35 ¤ï¤«¤á
++¤ï¤±¤ï¤«¤é¤ó #JN ¥ï¥±¥ï¥«¥é¥ó
++¤ï¤µ¤Ó #T35 ¥ï¥µ¥Ó
++¤ï¤¸¤ª #CN ϱö
++¤ï¤¸¤ª #KK ϱö
++¤ï¤¸¤ª #T35 ϱö
++¤ï¤»¤À¤¨¤­ #JN Áá°ðÅıØ
++¤ï¤¿¤Ê¤Ù #T35 ÅÏÊÕ
++¤ï¤¿¤Ê¤Ù¤â¤Ê¡¼ #JN ¥ï¥¿¥Ê¥Ù¥â¥Ê¡¼
++¤ï¤¿¤Ê¤Ù¤â¤Ê¡¼ #JN ¥ï¥¿¥Ê¥Ù¥â¥Ê¡¼
++¤ï¤Ê #T35 æ«
++¤ï¤Ê¡¼ #JN ¥ï¥Ê¡¼
++¤ï¤é #CJ (ÏÎ
++¤ï¤é #CJ (w
++¤ï¤é #CJ (£÷
++¤ï¤é #CJ (¥ï¥é
++¤ï¤é #CJ (Ü×
++¤ï¤é #CJ (ŽÜŽ×
++¤ï¤é #CJ w
++¤ï¤é #CJ ¤ï¤é
++¤ï¤é #CJ ¥ï¥é
++¤ï¤é #CJ ÏÎ
++¤ï¤é1 #JN ¥ï¥é1
++¤ï¤é1 #JN ŽÜŽ×1
++¤ï¤é¤£ #CJ ¥ï¥é¥£
++¤ï¤é¤¿ #CJ ¥ï¥é¥¿
++¤ï¤é¤¿ #CJ ŽÜŽ×ŽÀ
++¤ï¤é¤Ó #T35 ¡ÊÏÏ
++¤ï¤é¤ï¤»¤ë¤Ê #CJ ¥ï¥é¥ï¥»¥ë¥Ê
++¤ï¤é¤ï¤»¤ë¤Ê #CJ ŽÜŽ×ŽÜŽ¾ŽÙŽÅ
++¤ï¤ê¤ª #T35 ¥ï¥ê¥ª
++¤ï¤ë¤ì #R5 ¤ï¤ë¤ì
++¤ï¤ì¤¶¡¼ #T35 ¥ï¥ì¥¶¡¼
++¤ï¤ì¤¶¤Á¤å¤¦¤Ü¤¦ #T35 ¥ï¥ì¥¶¿ß˼
++¤ï¤ì¤º #T35 ¥ï¥ì¥º
++¤ï¤ì¤â¤Î #KK ¤ï¤ì¤â¤Î
++¤ï¤ì¤â¤Î #T35 ¤ï¤ì¤â¤Î
++¤ï¤ì¤â¤Î #T35 ³ä¤ìʪ
++¤ï¤í¤¿ #CJ ¥ï¥í¥¿
++¤ï¤ó¤À¡¼ #T35 WONDER
++¤ò¤«¤­¤³¤à¤¹¤ì¤À¤è #CJ ¤ò½ñ¤­¹þ¤à¥¹¥ì¤À¤è¡ª¡ª
++¤ò¤«¤­¤³¤à¤¹¤ì¤À¤è #JN ¡Ê¡¦¢Ï¡¦¡Ë
++¤ò¤¿ #JN ¥ò¥¿
++¤ò¤¿ #T35 ¥ò¥¿
++¤ò¤¿¤·¤Ë¤Ê¤Þ¤ë¤Þ¤ë #JN Ž¦ŽÀ42700
++¤ò¤¿¤¿¤¿¤­ #T35 ¥ò¥¿Ã¡¤­
++¤ò¤¿¤¿¤¿¤­¤ò¤¿ #T35 ¥ò¥¿Ã¡¤­¥ò¥¿
++¤ò¤¿¤Á¤§¤Ã¤¯ #T30 ¥ò¥¿¥Á¥§¥Ã¥¯
++¤ò¤¿¤Á¤§¤Ã¤¯¤¢¤Ë¤ò¤¿¤Ø¤ó #JN ¥ò¥¿¥Á¥§¥Ã¥¯¡Ê¥¢¥Ë¥ò¥¿ÊÔ¡Ë
++¤ò¤¿¤é¡¼ #JN ¥ò¥¿¥é¡¼
++¤ò¤¿¤é¡¼ #JN Ž¦ŽÀŽ×Ž°
++¤ò¤Á #T30 ¥ò¥Á
++¤ò¤Á¤¤¤¿ #CN ¥ò¥ÁÈÄ
++¤ò¤Á¤¤¤¿ #T35 ¥ò¥ÁÈÄ
++¤ò¤Ã¤Á #T30 ¥ò¥Ã¥Á
++¤ò¤Ã¤Á¤¤¤¿ #CN ¥ò¥Ã¥ÁÈÄ
++¤ò¤Ã¤Á¤¤¤¿ #T35 ¥ò¥Ã¥ÁÈÄ
++¤ò¤ð #T35 ¤ò¤ð
++¤ó¡¼ #JN ¤ó¡Á¡ª¡©
++¤ó¤¬¤ó¤° #CJ ¤ó¤¬¤ó¤°
++¤ó¤¸¤ã #CJ ¤ó¤¸¤ã¡ª
++¤ó¤À¤è #JN ¥ó¥À¥è
++¤ó¤À¤ó¤À #CJ ¤ó¤À¤ó¤À
++¤ó¤Ç #JN ¤ó¤Ç¡¡
++¤ó¤Ê¤³¤¿¤¢¤Ê¤¤ #CJ ¤ó¤Ê¤³¤¿¡¼¤Ê¤¤
++¤ó¤Ê¤ï¤±¤Í¡¼¤è #JN ¤ó¤Ê¤ï¤±¥Í¡¼¥è
++¤ó¤Þ #JN (`¦Æ.¡­)¡ã¤ó¤Þ!
++¤ó¤Þ #JN ¤ó¤Þ¡ª
diff --git a/meta-openembedded/meta-oe/recipes-support/anthy/anthy/native-helpers.patch b/meta-openembedded/meta-oe/recipes-support/anthy/anthy/native-helpers.patch
new file mode 100644
index 000000000..47ce007b7
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/anthy/anthy/native-helpers.patch
@@ -0,0 +1,58 @@
+upstream: not applicable
+author: pH5
+comment: Stage the native anthy helpers mkfiledic, mkdepgraph, mkworddic,
+comment: calctrans and proccorpus.
+
+Index: anthy-9100h/mkanthydic/Makefile.am
+===================================================================
+--- anthy-9100h.orig/mkanthydic/Makefile.am
++++ anthy-9100h/mkanthydic/Makefile.am
+@@ -3,7 +3,7 @@ noinst_SCRIPTS =
+ CLEANFILES = anthy.dic
+ INCLUDES = -I$(top_srcdir)/ -DSRCDIR=\"$(srcdir)\"
+
+-noinst_PROGRAMS = mkfiledic
++bin_PROGRAMS = mkfiledic
+ mkfiledic_SOURCES = mkfiledic.c
+ mkfiledic_LDADD = ../src-diclib/libdiclib.la
+
+Index: anthy-9100h/depgraph/Makefile.am
+===================================================================
+--- anthy-9100h.orig/depgraph/Makefile.am
++++ anthy-9100h/depgraph/Makefile.am
+@@ -9,7 +9,7 @@ CLEANFILES = anthy.dep
+ EXTRA_DIST = indepword.txt $(DEPWORDS)
+
+ # Generate the dictionary
+-noinst_PROGRAMS = mkdepgraph
++bin_PROGRAMS = mkdepgraph
+ mkdepgraph_SOURCES = mkdepgraph.c
+ mkdepgraph_LDADD = ../src-main/libanthy.la ../src-worddic/libanthydic.la
+
+Index: anthy-9100h/mkworddic/Makefile.am
+===================================================================
+--- anthy-9100h.orig/mkworddic/Makefile.am
++++ anthy-9100h/mkworddic/Makefile.am
+@@ -26,7 +26,8 @@ DIC_FILES = @top_srcdir@/alt-cannadic/gc
+ @top_srcdir@/mkworddic/udict
+
+ # Generate the dictionary
+-noinst_PROGRAMS = mkworddic
++#noinst_PROGRAMS = mkworddic
++bin_PROGRAMS = mkworddic
+ mkworddic_SOURCES = mkdic.c writewords.c mkudic.c calcfreq.c mkdic.h
+ mkworddic_LDADD = ../src-worddic/libanthydic.la
+
+Index: anthy-9100h/calctrans/Makefile.am
+===================================================================
+--- anthy-9100h.orig/calctrans/Makefile.am
++++ anthy-9100h/calctrans/Makefile.am
+@@ -3,7 +3,7 @@ EXTRA_DIST =\
+ corpus.3.txt corpus.4.txt corpus.5.txt\
+ corpus_info weak_words
+
+-noinst_PROGRAMS = calctrans proccorpus
++bin_PROGRAMS = calctrans proccorpus
+ INCLUDES = -I$(top_srcdir)/
+
+ calctrans_SOURCES = calctrans.c input_set.c input_set.h corpus.c
diff --git a/meta-openembedded/meta-oe/recipes-support/anthy/anthy/not_build_elc.patch b/meta-openembedded/meta-oe/recipes-support/anthy/anthy/not_build_elc.patch
new file mode 100644
index 000000000..1c5c49400
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/anthy/anthy/not_build_elc.patch
@@ -0,0 +1,17 @@
+upstream: not applicable
+source: stolen from debian
+
+Index: anthy-9100h/src-util/Makefile.am
+===================================================================
+--- anthy-9100h.orig/src-util/Makefile.am
++++ anthy-9100h/src-util/Makefile.am
+@@ -8,7 +8,8 @@ ELISP_FILES = anthy.el anthy-dic.el anth
+ anthy-isearch.el anthy-azik.el anthy-kyuri.el
+ EXTRA_DIST = $(ELISP_FILES) typetab dic-tool-usage.txt anthy.i
+ bin_PROGRAMS = anthy-dic-tool anthy-agent anthy-morphological-analyzer
+-ELCFILES = anthy.elc anthy-dic.elc anthy-azik.elc anthy-conf.elc anthy-isearch.elc anthy-kyuri.elc leim-list.elc
++#ELCFILES = anthy.elc anthy-dic.elc anthy-azik.elc anthy-conf.elc anthy-isearch.elc anthy-kyuri.elc leim-list.elc
++ELCFILES =
+ if ELISP
+ lisp_LISP = $(ELISP_FILES)
+ endif
diff --git a/meta-openembedded/meta-oe/recipes-support/anthy/anthy/target-helpers.patch b/meta-openembedded/meta-oe/recipes-support/anthy/anthy/target-helpers.patch
new file mode 100644
index 000000000..d22c3562a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/anthy/anthy/target-helpers.patch
@@ -0,0 +1,111 @@
+diff -Nurp anthy-9100h.org/calctrans/Makefile.am anthy-9100h/calctrans/Makefile.am
+--- anthy-9100h.org/calctrans/Makefile.am 2007-10-27 23:02:59.000000000 +0900
++++ anthy-9100h/calctrans/Makefile.am 2014-11-11 17:14:42.152999991 +0900
+@@ -15,31 +15,31 @@ dict_source_files = anthy.cand_info anth
+
+ update_params:
+ rm -f parsed_data2
+- ./proccorpus $(srcdir)/corpus.?.txt > parsed_data
+- ./calctrans parsed_data -o $(srcdir)/corpus_info
+- ./calctrans parsed_data -e -o $(srcdir)/weak_words
++ proccorpus $(srcdir)/corpus.?.txt > parsed_data
++ calctrans parsed_data -o $(srcdir)/corpus_info
++ calctrans parsed_data -e -o $(srcdir)/weak_words
+ make do_update_params
+
+ update_params0:
+ rm -f parsed_data2
+- ./proccorpus $(srcdir)/corpus.0.txt > parsed_data
+- ./calctrans parsed_data -o $(srcdir)/corpus_info
+- ./calctrans parsed_data -e -o $(srcdir)/weak_words
++ proccorpus $(srcdir)/corpus.0.txt > parsed_data
++ calctrans parsed_data -o $(srcdir)/corpus_info
++ calctrans parsed_data -e -o $(srcdir)/weak_words
+ make do_update_params
+
+ update_params2:
+- ./proccorpus $(srcdir)/corpus.?.txt >> parsed_data2
+- ./calctrans parsed_data parsed_data2 -o $(srcdir)/corpus_info
+- ./calctrans parsed_data parsed_data2 -e -o $(srcdir)/weak_words
++ proccorpus $(srcdir)/corpus.?.txt >> parsed_data2
++ calctrans parsed_data parsed_data2 -o $(srcdir)/corpus_info
++ calctrans parsed_data parsed_data2 -e -o $(srcdir)/weak_words
+ make do_update_params
+
+ do_update_params:
+- ./calctrans -c $(srcdir)/corpus_info
++ calctrans -c $(srcdir)/corpus_info
+ rm -f $(dict_source_files)
+ make $(dict_source_files)
+
+-$(dict_source_files): $(srcdir)/corpus_info $(srcdir)/weak_words calctrans
+- ./calctrans -c $(srcdir)/corpus_info $(srcdir)/weak_words
++$(dict_source_files): $(srcdir)/corpus_info $(srcdir)/weak_words
++ calctrans -c $(srcdir)/corpus_info $(srcdir)/weak_words
+
+ noinst_DATA = $(dict_source_files)
+ CLEANFILES = $(dict_source_files) parsed_data parsed_data2 anthy.feature_info
+diff -Nurp anthy-9100h.org/depgraph/Makefile.am anthy-9100h/depgraph/Makefile.am
+--- anthy-9100h.org/depgraph/Makefile.am 2008-11-29 21:46:14.000000000 +0900
++++ anthy-9100h/depgraph/Makefile.am 2014-11-11 17:12:03.813999991 +0900
+@@ -9,11 +9,11 @@ CLEANFILES = anthy.dep
+ EXTRA_DIST = indepword.txt $(DEPWORDS)
+
+ # Generate the dictionary
+-noinst_PROGRAMS = mkdepgraph
+-mkdepgraph_SOURCES = mkdepgraph.c
+-mkdepgraph_LDADD = ../src-main/libanthy.la ../src-worddic/libanthydic.la
++#noinst_PROGRAMS = mkdepgraph
++#mkdepgraph_SOURCES = mkdepgraph.c
++#mkdepgraph_LDADD = ../src-main/libanthy.la ../src-worddic/libanthydic.la
+
+-anthy.dep : mkdepgraph $(DEPWORDS)
+- ./mkdepgraph
++anthy.dep : $(DEPWORDS)
++ mkdepgraph
+
+ noinst_DATA = anthy.dep
+diff -Nurp anthy-9100h.org/mkanthydic/Makefile.am anthy-9100h/mkanthydic/Makefile.am
+--- anthy-9100h.org/mkanthydic/Makefile.am 2007-04-14 18:01:10.000000000 +0900
++++ anthy-9100h/mkanthydic/Makefile.am 2014-11-11 17:10:34.792999991 +0900
+@@ -3,12 +3,12 @@ noinst_SCRIPTS =
+ CLEANFILES = anthy.dic
+ INCLUDES = -I$(top_srcdir)/ -DSRCDIR=\"$(srcdir)\"
+
+-noinst_PROGRAMS = mkfiledic
+-mkfiledic_SOURCES = mkfiledic.c
+-mkfiledic_LDADD = ../src-diclib/libdiclib.la
++#noinst_PROGRAMS = mkfiledic
++#mkfiledic_SOURCES = mkfiledic.c
++#mkfiledic_LDADD = ../src-diclib/libdiclib.la
+
+-anthy.dic : mkfiledic ../mkworddic/anthy.wdic ../depgraph/anthy.dep ../calctrans/anthy.cand_info ../calctrans/anthy.trans_info ../calctrans/anthy.corpus_array ../calctrans/anthy.corpus_bucket
+- ./mkfiledic
++anthy.dic : ../mkworddic/anthy.wdic ../depgraph/anthy.dep ../calctrans/anthy.cand_info ../calctrans/anthy.trans_info ../calctrans/anthy.corpus_array ../calctrans/anthy.corpus_bucket
++ mkfiledic
+
+
+ # To install
+diff -Nurp anthy-9100h.org/mkworddic/Makefile.am anthy-9100h/mkworddic/Makefile.am
+--- anthy-9100h.org/mkworddic/Makefile.am 2009-01-23 12:31:31.000000000 +0900
++++ anthy-9100h/mkworddic/Makefile.am 2014-11-11 17:13:31.946999992 +0900
+@@ -26,14 +26,14 @@ DIC_FILES = @top_srcdir@/alt-cannadic/gc
+ @top_srcdir@/mkworddic/udict
+
+ # Generate the dictionary
+-noinst_PROGRAMS = mkworddic
+-mkworddic_SOURCES = mkdic.c writewords.c mkudic.c calcfreq.c mkdic.h
+-mkworddic_LDADD = ../src-worddic/libanthydic.la
++#noinst_PROGRAMS = mkworddic
++#mkworddic_SOURCES = mkdic.c writewords.c mkudic.c calcfreq.c mkdic.h
++#mkworddic_LDADD = ../src-worddic/libanthydic.la
+
+ noinst_DATA = anthy.wdic
+
+-anthy.wdic : mkworddic $(DIC_FILES)
+- ./mkworddic -f ./dict.args
++anthy.wdic : $(DIC_FILES)
++ mkworddic -f ./dict.args
+
+
+ # To install
diff --git a/meta-openembedded/meta-oe/recipes-support/anthy/anthy_9100h.bb b/meta-openembedded/meta-oe/recipes-support/anthy/anthy_9100h.bb
new file mode 100644
index 000000000..a65d324ea
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/anthy/anthy_9100h.bb
@@ -0,0 +1,45 @@
+DESCRIPTION="Anthy is a system for Japanese input method. It converts Hiragana text to Kana Kanji mixed text."
+AUTHOR = "Anthy Developers <anthy-dev@lists.sourceforge.jp>"
+HOMEPAGE = "http://anthy.sourceforge.jp"
+
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=11f384074d8e93e263b5664ef08a411a"
+
+SRC_URI = "http://osdn.dl.sourceforge.jp/anthy/37536/anthy-9100h.tar.gz \
+ file://not_build_elc.patch \
+ file://2ch_t.patch \
+"
+
+SRC_URI_append_class-target = "file://target-helpers.patch"
+SRC_URI_append_class-native = "file://native-helpers.patch"
+
+SRC_URI[md5sum] = "1f558ff7ed296787b55bb1c6cf131108"
+SRC_URI[sha256sum] = "d256f075f018b4a3cb0d165ed6151fda4ba7db1621727e0eb54569b6e2275547"
+
+DEPENDS_class-target = "anthy-native"
+RDEPENDS_${PN}_class-target = "libanthy0"
+
+inherit autotools pkgconfig
+
+PACKAGES += "${PN}-el libanthy0 libanthy-dev"
+
+FILES_${PN}-dbg += "${libdir}/.debug"
+FILES_libanthy0 = "${libdir}/libanthy.so.* \
+ ${libdir}/libanthydic.so.* \
+ ${libdir}/libanthyinput.so.* \
+"
+
+FILES_libanthy-dev = "${libdir}/libanthy*.la \
+ ${libdir}/libanthy*.a \
+ ${libdir}/libanthy*.so \
+ ${includedir}/anthy \
+ ${libdir}/pkgconfig/anthy.pc \
+"
+
+FILES_${PN}-el = "${datadir}/emacs/*"
+FILES_${PN} = "${datadir}/* \
+ ${bindir}/* \
+ ${sysconfdir}/anthy-conf \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/asio/asio.inc b/meta-openembedded/meta-oe/recipes-support/asio/asio.inc
new file mode 100644
index 000000000..54f78e41d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/asio/asio.inc
@@ -0,0 +1,15 @@
+DESCRIPTION = "Asio is a cross-platform C++ library for network and low-level \
+ I/O programming that provides developers with a consistent asynchronous \
+ model using a modern C++ approach."
+AUTHOR = "Christopher M. Kohlhoff (chris at kohlhoff dot com)"
+HOMEPAGE = "http://think-async.com/Asio"
+SECTION = "libs"
+LICENSE = "BSL-1.0"
+
+DEPENDS = "boost openssl"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/asio/${BP}.tar.bz2"
+
+inherit autotools
+
+ALLOW_EMPTY_${PN} = "1"
diff --git a/meta-openembedded/meta-oe/recipes-support/asio/asio/0001-Automatically-handle-glibc-variant-of-strerror_r-wit.patch b/meta-openembedded/meta-oe/recipes-support/asio/asio/0001-Automatically-handle-glibc-variant-of-strerror_r-wit.patch
new file mode 100644
index 000000000..4244b97a8
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/asio/asio/0001-Automatically-handle-glibc-variant-of-strerror_r-wit.patch
@@ -0,0 +1,46 @@
+From 45c855400842fd40f200ae9b7abf9debf4ab5436 Mon Sep 17 00:00:00 2001
+From: Christopher Kohlhoff <chris@kohlhoff.com>
+Date: Sun, 28 Aug 2016 09:21:53 +1000
+Subject: [PATCH] Automatically handle glibc variant of strerror_r without
+ #ifdefs.
+
+---
+Upstream-Status: Backport https://github.com/chriskohlhoff/asio/commit/443bc17d13eb5e37de780ea6e23157493cf7b3b9
+ include/asio/impl/error_code.ipp | 16 +++++++---------
+ 1 file changed, 7 insertions(+), 9 deletions(-)
+
+diff --git a/include/asio/impl/error_code.ipp b/include/asio/impl/error_code.ipp
+index ccb70dd..a117658 100644
+--- a/include/asio/impl/error_code.ipp
++++ b/include/asio/impl/error_code.ipp
+@@ -97,20 +97,18 @@ public:
+ #if defined(__sun) || defined(__QNX__) || defined(__SYMBIAN32__)
+ using namespace std;
+ return strerror(value);
+-#elif defined(__MACH__) && defined(__APPLE__) \
+- || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) \
+- || defined(_AIX) || defined(__hpux) || defined(__osf__) \
+- || defined(__ANDROID__)
+- char buf[256] = "";
+- using namespace std;
+- strerror_r(value, buf, sizeof(buf));
+- return buf;
+ #else
+ char buf[256] = "";
+- return strerror_r(value, buf, sizeof(buf));
++ using namespace std;
++ return strerror_result(strerror_r(value, buf, sizeof(buf)), buf);
+ #endif
+ #endif // defined(ASIO_WINDOWS)
+ }
++
++private:
++ // Helper function to adapt the result from glibc's variant of strerror_r.
++ static const char* strerror_result(int, const char* s) { return s; }
++ static const char* strerror_result(const char* s, const char*) { return s; }
+ };
+
+ } // namespace detail
+--
+2.9.3
+
diff --git a/meta-openembedded/meta-oe/recipes-support/asio/asio/0001-use-POSIX-poll.h-instead-of-sys-poll.h.patch b/meta-openembedded/meta-oe/recipes-support/asio/asio/0001-use-POSIX-poll.h-instead-of-sys-poll.h.patch
new file mode 100644
index 000000000..7f95f5a25
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/asio/asio/0001-use-POSIX-poll.h-instead-of-sys-poll.h.patch
@@ -0,0 +1,64 @@
+From dac36a170188917e2f61b0394ba8a2f6509ddf3a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <adraszik@tycoint.com>
+Date: Tue, 8 Nov 2016 20:39:55 +0000
+Subject: [PATCH] use POSIX poll.h instead of sys/poll.h
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+POSIX specifies that <poll.h> is the correct header to
+include for poll()
+ http://pubs.opengroup.org/onlinepubs/009695399/functions/poll.html
+whereas <sys/poll.h> is only needed for ancient glibc (<2.3),
+so let's follow POSIX instead.
+
+As a side-effect, this silences numerous compilation warnings
+when compiling against the musl C-library:
+
+In file included from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/socket_types.hpp:57:0,
+ from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/impl/error_code.ipp:29,
+ from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/error_code.hpp:185,
+ from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/throw_error.hpp:19,
+ from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/impl/posix_tss_ptr.ipp:23,
+ from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/posix_tss_ptr.hpp:74,
+ from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/tss_ptr.hpp:27,
+ from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/call_stack.hpp:20,
+ from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/impl/handler_alloc_hook.ipp:19,
+ from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/handler_alloc_hook.hpp:78,
+ from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/handler_alloc_helpers.hpp:21,
+ from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/bind_handler.hpp:19,
+ from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/wrapped_handler.hpp:18,
+ from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/io_service.hpp:24,
+ from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/basic_io_object.hpp:19,
+ from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/basic_socket.hpp:20,
+ from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/basic_datagram_socket.hpp:20,
+ from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio.hpp:19,
+ from ../../../../asio-1.10.6/src/examples/cpp03/buffers/reference_counted.cpp:11:
+<sysroot>/usr/include/sys/poll.h:1:2: warning: #warning redirecting incorrect #include <sys/poll.h> to <poll.h> [-Wcpp]
+ #warning redirecting incorrect #include <sys/poll.h> to <poll.h>
+ ^~~~~~~
+
+etc.
+
+Signed-off-by: André Draszik <adraszik@tycoint.com>
+---
+Upstream-Status: Submitted https://svn.boost.org/trac/boost/ticket/12419
+ include/asio/detail/socket_types.hpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/asio/detail/socket_types.hpp b/include/asio/detail/socket_types.hpp
+index f2600c2..cb61b8e 100644
+--- a/include/asio/detail/socket_types.hpp
++++ b/include/asio/detail/socket_types.hpp
+@@ -54,7 +54,7 @@
+ #else
+ # include <sys/ioctl.h>
+ # if !defined(__SYMBIAN32__)
+-# include <sys/poll.h>
++# include <poll.h>
+ # endif
+ # include <sys/types.h>
+ # include <sys/stat.h>
+--
+2.10.2
+
diff --git a/meta-openembedded/meta-oe/recipes-support/asio/asio_1.10.6.bb b/meta-openembedded/meta-oe/recipes-support/asio/asio_1.10.6.bb
new file mode 100644
index 000000000..565603984
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/asio/asio_1.10.6.bb
@@ -0,0 +1,11 @@
+require asio.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=fede5286a78559dd646e355ab0cc8f04"
+
+SRC_URI[md5sum] = "85d014a356a6e004cd30ccd4c9b6a5c2"
+SRC_URI[sha256sum] = "e0d71c40a7b1f6c1334008fb279e7361b32a063e020efd21e40d9d8ff037195e"
+
+SRC_URI += "\
+ file://0001-Automatically-handle-glibc-variant-of-strerror_r-wit.patch \
+ file://0001-use-POSIX-poll.h-instead-of-sys-poll.h.patch \
+"
diff --git a/meta-openembedded/meta-oe/recipes-support/atop/atop/0001-include-missing-header-files.patch b/meta-openembedded/meta-oe/recipes-support/atop/atop/0001-include-missing-header-files.patch
new file mode 100644
index 000000000..3708f60ba
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/atop/atop/0001-include-missing-header-files.patch
@@ -0,0 +1,97 @@
+From 7b651793269b6b86f12c43c30b751b86def27222 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 18 Mar 2017 17:56:40 -0700
+Subject: [PATCH] include missing header files
+
+fixes build with musl
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ deviate.c | 1 +
+ procdbase.c | 2 +-
+ showgeneric.c | 2 +-
+ showlinux.c | 2 +-
+ showprocs.c | 2 +-
+ showsys.c | 2 +-
+ 6 files changed, 6 insertions(+), 5 deletions(-)
+
+diff --git a/deviate.c b/deviate.c
+index 7cf1b49..8e615af 100644
+--- a/deviate.c
++++ b/deviate.c
+@@ -178,6 +178,7 @@ static const char rcsid[] = "$Id: deviate.c,v 1.45 2010/10/23 14:02:03 gerlof Ex
+ #include <stdio.h>
+ #include <errno.h>
+ #include <fcntl.h>
++#include <stdlib.h>
+ #include <unistd.h>
+ #include <limits.h>
+ #include <memory.h>
+diff --git a/procdbase.c b/procdbase.c
+index 9cab347..0487d26 100644
+--- a/procdbase.c
++++ b/procdbase.c
+@@ -67,7 +67,7 @@ static const char rcsid[] = "$Id: procdbase.c,v 1.8 2010/04/23 12:19:35 gerlof E
+ #include <fcntl.h>
+ #include <unistd.h>
+ #include <string.h>
+-#include <malloc.h>
++#include <stdlib.h>
+
+ #include "atop.h"
+ #include "photoproc.h"
+diff --git a/showgeneric.c b/showgeneric.c
+index 775afa8..3d5be0e 100644
+--- a/showgeneric.c
++++ b/showgeneric.c
+@@ -268,7 +268,7 @@ static const char rcsid[] = "$Id: showgeneric.c,v 1.71 2010/10/25 19:08:32 gerlo
+ #include <errno.h>
+ #include <fcntl.h>
+ #include <string.h>
+-#include <termio.h>
++#include <termios.h>
+ #include <unistd.h>
+ #include <stdarg.h>
+ #include <curses.h>
+diff --git a/showlinux.c b/showlinux.c
+index 6e60754..aba2ee6 100644
+--- a/showlinux.c
++++ b/showlinux.c
+@@ -274,7 +274,7 @@ static const char rcsid[] = "$Id: showlinux.c,v 1.70 2010/10/23 14:04:12 gerlof
+ #include <string.h>
+ #include <errno.h>
+ #include <fcntl.h>
+-#include <termio.h>
++#include <termios.h>
+ #include <unistd.h>
+ #include <stdarg.h>
+ #include <curses.h>
+diff --git a/showprocs.c b/showprocs.c
+index 5194524..f0169ad 100644
+--- a/showprocs.c
++++ b/showprocs.c
+@@ -94,7 +94,7 @@ static const char rcsid[] = "$Id: showprocs.c,v 1.15 2011/09/05 11:44:16 gerlof
+ #include <string.h>
+ #include <errno.h>
+ #include <fcntl.h>
+-#include <termio.h>
++#include <termios.h>
+ #include <unistd.h>
+ #include <stdarg.h>
+ #include <curses.h>
+diff --git a/showsys.c b/showsys.c
+index 26331be..5a05fe5 100644
+--- a/showsys.c
++++ b/showsys.c
+@@ -80,7 +80,7 @@ static const char rcsid[] = "XXXXXX";
+ #include <string.h>
+ #include <errno.h>
+ #include <fcntl.h>
+-#include <termio.h>
++#include <termios.h>
+ #include <unistd.h>
+ #include <stdarg.h>
+ #include <curses.h>
+--
+2.12.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/atop/atop/fix-permissions.patch b/meta-openembedded/meta-oe/recipes-support/atop/atop/fix-permissions.patch
new file mode 100644
index 000000000..ee7419993
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/atop/atop/fix-permissions.patch
@@ -0,0 +1,52 @@
+Update permissions of executable files that remove setuid bit and make everyone
+could read.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+diff --git a/Makefile b/Makefile
+index a65b9b6..21d9828 100644
+--- a/Makefile
++++ b/Makefile
+@@ -66,7 +66,7 @@ systemdinstall: genericinstall
+ chmod 0644 $(DESTDIR)$(SYSDPATH)/atopacct.service
+ cp atop.cronsystemd $(DESTDIR)$(CRNPATH)/atop
+ cp atop-pm.sh $(DESTDIR)$(PMPATHD)
+- chmod 0711 $(DESTDIR)$(PMPATHD)/atop-pm.sh
++ chmod 0755 $(DESTDIR)$(PMPATHD)/atop-pm.sh
+ #
+ # only when making on target system:
+ #
+@@ -91,11 +91,11 @@ sysvinstall: genericinstall
+ #
+ if [ -d $(DESTDIR)$(PMPATH1) ]; \
+ then cp 45atoppm $(DESTDIR)$(PMPATH1); \
+- chmod 0711 $(DESTDIR)$(PMPATH1)/45atoppm; \
++ chmod 0755 $(DESTDIR)$(PMPATH1)/45atoppm; \
+ fi
+ if [ -d $(DESTDIR)$(PMPATH2) ]; \
+ then cp 45atoppm $(DESTDIR)$(PMPATH2); \
+- chmod 0711 $(DESTDIR)$(PMPATH2)/45atoppm; \
++ chmod 0755 $(DESTDIR)$(PMPATH2)/45atoppm; \
+ fi
+ #
+ #
+@@ -139,7 +139,7 @@ genericinstall: atop atopacctd
+ #
+ cp atop $(DESTDIR)$(BINPATH)/atop
+ chown root $(DESTDIR)$(BINPATH)/atop
+- chmod 04711 $(DESTDIR)$(BINPATH)/atop
++ chmod 0755 $(DESTDIR)$(BINPATH)/atop
+ ln -sf atop $(DESTDIR)$(BINPATH)/atopsar
+ cp atopacctd $(DESTDIR)$(SBINPATH)/atopacctd
+ chown root $(DESTDIR)$(SBINPATH)/atopacctd
+@@ -147,7 +147,7 @@ genericinstall: atop atopacctd
+ cp atop $(DESTDIR)$(BINPATH)/atop-$(VERS)
+ ln -sf atop-$(VERS) $(DESTDIR)$(BINPATH)/atopsar-$(VERS)
+ cp atop.daily $(DESTDIR)$(SCRPATH)
+- chmod 0711 $(DESTDIR)$(SCRPATH)/atop.daily
++ chmod 0755 $(DESTDIR)$(SCRPATH)/atop.daily
+ cp man/atop.1 $(DESTDIR)$(MAN1PATH)
+ cp man/atopsar.1 $(DESTDIR)$(MAN1PATH)
+ cp man/atoprc.5 $(DESTDIR)$(MAN5PATH)
diff --git a/meta-openembedded/meta-oe/recipes-support/atop/atop/remove-bashisms.patch b/meta-openembedded/meta-oe/recipes-support/atop/atop/remove-bashisms.patch
new file mode 100644
index 000000000..f1fcbfed7
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/atop/atop/remove-bashisms.patch
@@ -0,0 +1,33 @@
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+diff --git a/atop-pm.sh b/atop-pm.sh
+index 7f41a86..3ff4ab5 100755
+--- a/atop-pm.sh
++++ b/atop-pm.sh
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+
+ case "$1" in
+ pre) /usr/bin/systemctl stop atop
+diff --git a/atop.daily b/atop.daily
+index 24d33bd..f29bd94 100755
+--- a/atop.daily
++++ b/atop.daily
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+
+ CURDAY=`date +%Y%m%d`
+ LOGPATH=/var/log/atop
+@@ -16,7 +16,7 @@ then
+
+ while ps -p `cat $PIDFILE` > /dev/null
+ do
+- let CNT+=1
++ CNT=$((CNT+1))
+
+ if [ $CNT -gt 5 ]
+ then
diff --git a/meta-openembedded/meta-oe/recipes-support/atop/atop/sysvinit-implement-status.patch b/meta-openembedded/meta-oe/recipes-support/atop/atop/sysvinit-implement-status.patch
new file mode 100644
index 000000000..5994d3e08
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/atop/atop/sysvinit-implement-status.patch
@@ -0,0 +1,27 @@
+Implement the sub-command status.
+
+Upstream-Status: Pending
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+diff --git a/atop.init b/atop.init
+index 108bdc5..9f89fad 100755
+--- a/atop.init
++++ b/atop.init
+@@ -18,6 +18,8 @@
+ # Check existance of binaries
+ [ -f /usr/bin/atop ] || exit 0
+
++[ -f /etc/init.d/functions ] && . /etc/init.d/functions
++
+ PIDFILE=/var/run/atop.pid
+ RETVAL=0
+
+@@ -63,6 +65,7 @@ case "$1" in
+ ;;
+
+ status)
++ status atop
+ ;;
+
+ reload)
diff --git a/meta-openembedded/meta-oe/recipes-support/atop/atop/volatiles.99_atop b/meta-openembedded/meta-oe/recipes-support/atop/atop/volatiles.99_atop
new file mode 100644
index 000000000..24ea3f205
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/atop/atop/volatiles.99_atop
@@ -0,0 +1 @@
+d root root 0755 /var/volatile/log/atop none
diff --git a/meta-openembedded/meta-oe/recipes-support/atop/atop/volatiles.atop.conf b/meta-openembedded/meta-oe/recipes-support/atop/atop/volatiles.atop.conf
new file mode 100644
index 000000000..2f230004d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/atop/atop/volatiles.atop.conf
@@ -0,0 +1 @@
+d /var/volatile/log/atop - - - -
diff --git a/meta-openembedded/meta-oe/recipes-support/atop/atop_2.2.3.bb b/meta-openembedded/meta-oe/recipes-support/atop/atop_2.2.3.bb
new file mode 100644
index 000000000..1ab9e7cf9
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/atop/atop_2.2.3.bb
@@ -0,0 +1,63 @@
+SUMMARY = "Monitor for system resources and process activity"
+DESCRIPTION = "Atop is an ASCII full-screen performance monitor for Linux that \
+is capable of reporting the activity of all processes (even if processes have \
+finished during the interval), daily logging of system and process activity for \
+long-term analysis, highlighting overloaded system resources by using colors, \
+etc. At regular intervals, it shows system-level activity related to the CPU, \
+memory, swap, disks (including LVM) and network layers, and for every process \
+(and thread) it shows e.g. the CPU utilization, memory growth, disk \
+utilization, priority, username, state, and exit code."
+HOMEPAGE = "http://www.atoptool.nl"
+SECTION = "console/utils"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833"
+
+DEPENDS = "ncurses zlib"
+
+ATOP_VER = "${@'-'.join(d.getVar('PV').rsplit('.', 1))}"
+
+SRC_URI = " \
+ http://www.atoptool.nl/download/${BPN}-${ATOP_VER}.tar.gz \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'file://volatiles.atop.conf', 'file://volatiles.99_atop', d)} \
+ file://0001-include-missing-header-files.patch \
+ file://remove-bashisms.patch \
+ file://fix-permissions.patch \
+ file://sysvinit-implement-status.patch \
+"
+
+SRC_URI[md5sum] = "034dc1544f2ec4e4d2c739d320dc326d"
+SRC_URI[sha256sum] = "c785b8a2355be28b3de6b58a8ea4c4fcab8fadeaa57a99afeb03c66fac8e055d"
+
+S = "${WORKDIR}/${BPN}-${ATOP_VER}"
+
+do_compile() {
+ oe_runmake all
+}
+
+do_install() {
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ make DESTDIR=${D} VERS=${ATOP_VER} SYSDPATH=${systemd_system_unitdir} \
+ PMPATHD=${systemd_unitdir}/system-sleep systemdinstall
+ install -d ${D}${sysconfdir}/tmpfiles.d
+ install -m 644 ${WORKDIR}/volatiles.atop.conf ${D}${sysconfdir}/tmpfiles.d/atop.conf
+ rm -f ${D}${systemd_system_unitdir}/atopacct.service
+ else
+ make DESTDIR=${D} VERS=${ATOP_VER} sysvinstall
+ install -d ${D}${sysconfdir}/default/volatiles
+ install -m 644 ${WORKDIR}/volatiles.99_atop ${D}${sysconfdir}/default/volatiles/99_atop
+ rm -f ${D}${sysconfdir}/init.d/atopacct
+ fi
+
+ # remove atopacct related files
+ rm -rf ${D}${sbindir} ${D}${mandir}/man8
+}
+
+inherit systemd
+
+SYSTEMD_SERVICE_${PN} = "atop.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+FILES_${PN} += "${systemd_unitdir}/system-sleep"
+
+RDEPENDS_${PN} = "procps"
diff --git a/meta-openembedded/meta-oe/recipes-support/augeas/augeas.inc b/meta-openembedded/meta-oe/recipes-support/augeas/augeas.inc
new file mode 100644
index 000000000..185abae18
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/augeas/augeas.inc
@@ -0,0 +1,33 @@
+SUMMARY = "Augeas configuration API"
+HOMEPAGE = "http://augeas.net/"
+BUGTRACKER = "https://fedorahosted.org/augeas/report/1"
+
+LICENSE = "LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=bbb461211a33b134d42ed5ee802b37ff"
+
+SRC_URI = "http://download.augeas.net/${BP}.tar.gz \
+ file://add-missing-argz-conditional.patch \
+ file://sepbuildfix.patch \
+ file://0001-Unset-need_charset_alias-when-building-for-musl.patch \
+ "
+
+DEPENDS = "readline libxml2"
+
+inherit autotools pkgconfig
+
+PACKAGES =+ "${PN}-lenses lib${BPN}"
+
+FILES_${PN}-lenses = "${datadir}/augeas/lenses"
+FILES_lib${BPN} = "${libdir}/lib*${SOLIBS}"
+
+RDEPENDS_lib${BPN} += "${PN}-lenses"
+RRECOMMENDS_lib${BPN} += "${PN}"
+
+LEAD_SONAME = "libaugeas.so"
+
+do_install_append() {
+ rm -fr ${D}${datadir}/vim
+}
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[libselinux] = "--with-selinux,--without-selinux,libselinux"
diff --git a/meta-openembedded/meta-oe/recipes-support/augeas/augeas/0001-Unset-need_charset_alias-when-building-for-musl.patch b/meta-openembedded/meta-oe/recipes-support/augeas/augeas/0001-Unset-need_charset_alias-when-building-for-musl.patch
new file mode 100644
index 000000000..0ba7c76a3
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/augeas/augeas/0001-Unset-need_charset_alias-when-building-for-musl.patch
@@ -0,0 +1,31 @@
+From 32b15332e2130a54b25f4fbf6f58b407b851dd8f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 13 Apr 2015 17:02:13 -0700
+Subject: [PATCH] Unset need_charset_alias when building for musl
+
+localcharset uses ac_cv_gnu_library_2_1 from glibc21.m4
+which actually shoudl be fixed in gnulib and then all downstream
+projects will get it eventually. For now we apply the fix to
+coreutils
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ gnulib/lib/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/gnulib/lib/Makefile.am b/gnulib/lib/Makefile.am
+index 963b22d..75788d2 100644
+--- a/gnulib/lib/Makefile.am
++++ b/gnulib/lib/Makefile.am
+@@ -463,7 +463,7 @@ install-exec-localcharset: all-local
+ case '$(host_os)' in \
+ darwin[56]*) \
+ need_charset_alias=true ;; \
+- darwin* | cygwin* | mingw* | pw32* | cegcc*) \
++ darwin* | cygwin* | mingw* | pw32* | cegcc* | linux-musl*) \
+ need_charset_alias=false ;; \
+ *) \
+ need_charset_alias=true ;; \
diff --git a/meta-openembedded/meta-oe/recipes-support/augeas/augeas/add-missing-argz-conditional.patch b/meta-openembedded/meta-oe/recipes-support/augeas/augeas/add-missing-argz-conditional.patch
new file mode 100644
index 000000000..368bb4176
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/augeas/augeas/add-missing-argz-conditional.patch
@@ -0,0 +1,27 @@
+From 9a6e6374da7d7056db0950f0f7d6b8b905009775 Mon Sep 17 00:00:00 2001
+From: Constantin Musca <constantinx.musca@intel.com>
+Date: Fri, 15 Jul 2016 10:04:48 +0300
+Subject: [PATCH] Add missing GL_GENERATE_ARGZ_H conditional
+
+- GL_GENERATE_ARGZ_H is used in gnulib/lib/Makefile.am
+
+Upstream-Status: Pending
+Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
+
+---
+ configure.ac | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index 72b6984..fb9653e 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -55,6 +55,8 @@ AC_ARG_WITH([failmalloc],
+
+ AM_CONDITIONAL([WITH_FAILMALLOC], [test x$with_failmalloc != xno])
+
++AM_CONDITIONAL([GL_GENERATE_ARGZ_H], [test -n "$ARGZ_H"])
++
+ dnl --enable-debug=(yes|no)
+ AC_ARG_ENABLE([debug],
+ [AC_HELP_STRING([--enable-debug=no/yes],
diff --git a/meta-openembedded/meta-oe/recipes-support/augeas/augeas/sepbuildfix.patch b/meta-openembedded/meta-oe/recipes-support/augeas/augeas/sepbuildfix.patch
new file mode 100644
index 000000000..2b18618fb
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/augeas/augeas/sepbuildfix.patch
@@ -0,0 +1,31 @@
+From 8a277957a2579e7149c1850675441b288192077c Mon Sep 17 00:00:00 2001
+From: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Date: Fri, 15 Jul 2016 10:04:48 +0300
+Subject: [PATCH] augeas: fix separate builddirs
+
+Ensure that builds in separate builddirs (${B} != ${S}) correctly install the
+lenses files.
+
+Upstream-Status: Pending
+
+RP 2013/4/17
+
+---
+ Makefile.am | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 87d511a..7710b3b 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -5,8 +5,8 @@ ACLOCAL_AMFLAGS = -I gnulib/m4
+ lensdir=$(datadir)/augeas/lenses/dist
+ lenstestdir=$(datadir)/augeas/lenses/dist/tests
+
+-dist_lens_DATA=$(wildcard lenses/*.aug)
+-dist_lenstest_DATA=$(wildcard lenses/tests/*.aug)
++dist_lens_DATA=$(wildcard $(top_srcdir)/lenses/*.aug)
++dist_lenstest_DATA=$(wildcard $(top_srcdir)lenses/tests/*.aug)
+
+ EXTRA_DIST=augeas.spec build/ac-aux/move-if-change Makefile.am HACKING.md
+
diff --git a/meta-openembedded/meta-oe/recipes-support/augeas/augeas_1.5.0.bb b/meta-openembedded/meta-oe/recipes-support/augeas/augeas_1.5.0.bb
new file mode 100644
index 000000000..c4f62e747
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/augeas/augeas_1.5.0.bb
@@ -0,0 +1,4 @@
+require augeas.inc
+
+SRC_URI[md5sum] = "01190e455c513124a2dae29a1182c113"
+SRC_URI[sha256sum] = "223bb6e6fe3e9e92277dafd5d34e623733eb969a72a382998d204feab253f73f"
diff --git a/meta-openembedded/meta-oe/recipes-support/avro/avro-c/0001-avro-c-Fix-build-with-clang-compiler.patch b/meta-openembedded/meta-oe/recipes-support/avro/avro-c/0001-avro-c-Fix-build-with-clang-compiler.patch
new file mode 100644
index 000000000..01235d8ef
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/avro/avro-c/0001-avro-c-Fix-build-with-clang-compiler.patch
@@ -0,0 +1,37 @@
+From 518bb8ccfb3f3fc143fbd571782f3e40573d01b5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 10 Apr 2017 09:15:04 -0700
+Subject: [PATCH] avro-c: Fix build with clang compiler
+
+Clang advertizes itself to be compatible with gcc 4.2.1
+while that was true several years ago, it now supports
+a lot more newer features, the test to just check gcc
+version should be supplanted with clang check as well
+so atomic support in clang can be asserted as well
+
+Fixes
+
+lang/c/src/avro/refcount.h:301:2: error: "No atomic implementation!"
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lang/c/src/avro/refcount.h | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/lang/c/src/avro/refcount.h b/lang/c/src/avro/refcount.h
+index 69afa4fc..d76ba057 100644
+--- a/lang/c/src/avro/refcount.h
++++ b/lang/c/src/avro/refcount.h
+@@ -118,7 +118,8 @@ avro_refcount_dec(volatile int *refcount)
+ * GCC intrinsics
+ */
+
+-#elif (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) > 40500
++#elif (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) > 40500 \
++|| defined(__clang__)
+
+ static inline void
+ avro_refcount_set(volatile int *refcount, int value)
+--
+2.12.2
+
diff --git a/meta-openembedded/meta-oe/recipes-support/avro/avro-c_1.8.1.bb b/meta-openembedded/meta-oe/recipes-support/avro/avro-c_1.8.1.bb
new file mode 100644
index 000000000..276fe2b5a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/avro/avro-c_1.8.1.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Apache Avro data serialization system."
+HOMEPAGE = "http://apr.apache.org/"
+SECTION = "libs"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=73bdf70f268f0b3b9c5a83dd7a6f3324"
+
+DEPENDS = "jansson zlib xz"
+PV .= "+git${SRCPV}"
+
+SRCREV = "4b3677c32b879e0e7f717eb95f9135ac654da760"
+SRC_URI = "git://github.com/apache/avro \
+ file://0001-avro-c-Fix-build-with-clang-compiler.patch;patchdir=../../ \
+"
+
+S = "${WORKDIR}/git/lang/c"
+
+LDFLAGS_append_libc-uclibc = " -lm"
+
+inherit cmake
diff --git a/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc/0001-configure.ac-add-check-for-NO_GETCONTEXT-definition.patch b/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/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/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc/musl_header_fix.patch b/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc/musl_header_fix.patch
new file mode 100644
index 000000000..4a1849665
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc_7.6.0.bb b/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc_7.6.0.bb
new file mode 100644
index 000000000..dcb68f028
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/frame/pessimizing-move.patch b/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/frame/pessimizing-move.patch
new file mode 100644
index 000000000..aa5a56ab8
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/frame/pessimizing-move.patch
@@ -0,0 +1,27 @@
+let compiler decide on copy elision
+Fixes compiler errors with clang
+| ../../frame-2.5.0/src/x11/device_x11.cpp:126:13: error: moving a temporary object prevents copy elision [-Werror,-Wpessimizing-move]
+| std::move(UniqueUFAxis(static_cast<oif::frame::UFAxis*>(axis)));
+| ^
+| ../../frame-2.5.0/src/x11/device_x11.cpp:126:13: note: remove std::move call here
+| std::move(UniqueUFAxis(static_cast<oif::frame::UFAxis*>(axis)));
+| ^~~~~~~~~~ ~
+| 1 error generated.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+
+Index: frame-2.5.0/src/x11/device_x11.cpp
+===================================================================
+--- frame-2.5.0.orig/src/x11/device_x11.cpp
++++ frame-2.5.0/src/x11/device_x11.cpp
+@@ -122,8 +122,7 @@ UFDeviceX11::UFDeviceX11(Display* displa
+ UFAxis_* axis = new UFAxis(type, valuator_info->min, valuator_info->max,
+ valuator_info->resolution);
+
+- axes_[type] =
+- std::move(UniqueUFAxis(static_cast<oif::frame::UFAxis*>(axis)));
++ axes_[type] = UniqueUFAxis(static_cast<oif::frame::UFAxis*>(axis));
+
+ axis_map_[valuator_info->number] = type;
+
diff --git a/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/frame_2.5.0.bb b/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/frame_2.5.0.bb
new file mode 100644
index 000000000..da1a2a36f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/frame_2.5.0.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Frame handles simultaneous touches"
+
+HOMEPAGE = "https://launchpad.net/frame"
+
+LICENSE = "GPLv3 & LGPLv3"
+LIC_FILES_CHKSUM = " \
+ file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02 \
+ file://COPYING.GPL3;md5=d32239bcb673463ab874e80d47fae504 \
+"
+
+inherit autotools pkgconfig
+
+SRC_URI = "https://launchpad.net/${BPN}/trunk/v${PV}/+download/${BPN}-${PV}.tar.gz \
+ file://pessimizing-move.patch"
+SRC_URI[md5sum] = "02baa941091c5d198cd1623b3ad36e68"
+SRC_URI[sha256sum] = "cfb9ab52cdccd926f1822a457264d0014c7eb9f4600a72626063dd073b26256f"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
+PACKAGECONFIG[x11] = "--enable-x11, --disable-x11, libxi xext virtual/xserver"
+
+PACKAGE_BEFORE_PN += "${PN}-test"
+FILES_${PN}-test = "${bindir}/frame-test*"
+
+SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"
diff --git a/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/geis/0001-libgeis-Compare-the-first-character-of-string-to-nul.patch b/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/geis/0001-libgeis-Compare-the-first-character-of-string-to-nul.patch
new file mode 100644
index 000000000..3b3acab24
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/geis/0001-libgeis-Compare-the-first-character-of-string-to-nul.patch
@@ -0,0 +1,43 @@
+From 1e48821ba109b00e9c2931f12aa206c4ef54fd71 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 24 Apr 2017 12:34:55 -0700
+Subject: [PATCH] libgeis: Compare the first character of string to null
+
+gcc7 wants to be specific when it comes to comparing characters
+and strings
+
+fixes
+
+| ../../../../../../../workspace/sources/geis/libgeis/geis_v1.c: In function '_v1_subscribe_device':
+| ../../../../../../../workspace/sources/geis/libgeis/geis_v1.c:613:20: error: comparison between pointer and zero character constant [-Werror=pointer-compare]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ libgeis/geis_v1.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/libgeis/geis_v1.c b/libgeis/geis_v1.c
+index 67045ee..07c0851 100644
+--- a/libgeis/geis_v1.c
++++ b/libgeis/geis_v1.c
+@@ -610,7 +610,7 @@ _v1_subscribe_device(GeisInstance instance,
+ const char **gesture_list)
+ {
+ GeisStatus result = GEIS_UNKNOWN_ERROR;
+- if (gesture_list == GEIS_ALL_GESTURES)
++ if (gesture_list[0][0] == GEIS_ALL_GESTURES)
+ {
+ geis_debug("subscribing device %d for all gestures", device_id);
+ }
+@@ -757,7 +757,7 @@ geis_unsubscribe(GeisInstance instance,
+ GeisGestureType *gesture_list)
+ {
+ GeisStatus status = GEIS_STATUS_NOT_SUPPORTED;
+- if (gesture_list == GEIS_ALL_GESTURES)
++ if (gesture_list[0] == GEIS_ALL_GESTURES)
+ {
+ status = geis_subscription_deactivate(instance->subscription);
+ }
+--
+2.12.2
+
diff --git a/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/geis/fix-indentation-for-gcc6.patch b/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/geis/fix-indentation-for-gcc6.patch
new file mode 100644
index 000000000..389e1b3fd
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/geis/fix-indentation-for-gcc6.patch
@@ -0,0 +1,14 @@
+--- geis-2.2.17/libgeis/geis_subscription.c.orig 2016-06-17 12:04:21.062938443 -0400
++++ geis-2.2.17/libgeis/geis_subscription.c 2016-06-17 12:05:02.934939172 -0400
+@@ -237,9 +237,10 @@
+ GeisSize i;
+ for (i = 0; i < bag->sub_store_size; ++i)
+ {
+- if (bag->sub_store[i])
++ if (bag->sub_store[i]) {
+ _subscription_unref(bag->sub_store[i]);
+ bag->sub_store[i] = NULL;
++ }
+ }
+ }
+
diff --git a/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/geis_2.2.17.bb b/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/geis_2.2.17.bb
new file mode 100644
index 000000000..30d41a16e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/geis_2.2.17.bb
@@ -0,0 +1,55 @@
+SUMMARY = "An implementation of the GEIS interface"
+DESCRIPTION = "An implementation of the GEIS (Gesture Engine Interface and Support) \
+interface\
+GEIS is a library for applications and toolkit programmers which \
+provides a consistent platform independent interface for any \
+system-wide input gesture recognition mechanism."
+
+HOMEPAGE = "https://launchpad.net/geis"
+
+LICENSE = "GPLv3 & LGPLv3"
+LIC_FILES_CHKSUM = " \
+ file://COPYING;md5=6a6a8e020838b23406c81b19c1d46df6 \
+ file://COPYING.GPL;md5=f27defe1e96c2e1ecd4e0c9be8967949 \
+"
+
+inherit autotools pkgconfig python3native lib_package distro_features_check
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+DEPENDS += "grail dbus-glib python3 virtual/libx11 libxext libxi libxcb dbus frame"
+
+SRC_URI = "https://launchpad.net/${BPN}/trunk/${PV}/+download/${BPN}-${PV}.tar.xz \
+ file://fix-indentation-for-gcc6.patch \
+ file://0001-libgeis-Compare-the-first-character-of-string-to-nul.patch \
+ "
+SRC_URI[md5sum] = "2ff9d76a3ea5794516bb02c9d1924faf"
+SRC_URI[sha256sum] = "8a60f5683852094038904e690d23cc5a90a980fc52da67f0f28890baa25c70eb"
+
+EXTRA_OECONF = "--disable-integration-tests"
+
+FILES_${PN}-bin = "${bindir}"
+RDEPENDS_${PN}-bin = " \
+ python3-compression \
+ python3-core \
+ python3-crypt \
+ python3-ctypes \
+ python3-fcntl \
+ python3-misc \
+ python3-pickle \
+ python3-shell \
+ python3-stringold \
+ python3-threading \
+"
+
+FILES_${PN} += " \
+ ${datadir}/geisview \
+ ${libdir}/${PYTHON_DIR}/site-packages/geis* \
+ ${libdir}/${PYTHON_DIR}/site-packages/_*.so \
+"
+
+FILES_${PN}-dbg += "${libdir}/${PYTHON_DIR}/site-packages/.debug"
+
+FILES_${PN}-dev += "${libdir}/${PYTHON_DIR}/site-packages/_*.la"
+
+FILES_${PN}-staticdev += "${libdir}/${PYTHON_DIR}/site-packages/_*.a"
diff --git a/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/grail_3.1.1.bb b/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/grail_3.1.1.bb
new file mode 100644
index 000000000..22fd0f48e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/grail_3.1.1.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Gesture Recognition And Instantiation Library"
+
+HOMEPAGE = "https://launchpad.net/grail"
+
+LICENSE = "GPLv3 & LGPLv3"
+LIC_FILES_CHKSUM = " \
+ file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02 \
+ file://COPYING.GPL3;md5=d32239bcb673463ab874e80d47fae504 \
+"
+
+inherit autotools pkgconfig
+
+DEPENDS = "frame"
+CXXFLAGS_append_toolchain-clang = " -Wno-pessimizing-move"
+SRC_URI = "https://launchpad.net/${BPN}/trunk/${PV}/+download/${BPN}-${PV}.tar.bz2"
+SRC_URI[md5sum] = "0df1b3ec6167920f310e2effe6e2ad44"
+SRC_URI[sha256sum] = "5eed1f650f042481daa3a2de5e7d43261fe343b2a1b1e240f3b7fc26572c9df3"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
+PACKAGECONFIG[x11] = "--with-x11, --without-x11, libxi"
+
+PACKAGE_BEFORE_PN += "${PN}-test"
+FILES_${PN}-test = "${bindir}/grail-test*"
+SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"
diff --git a/meta-openembedded/meta-oe/recipes-support/ccid/ccid/no-dep-on-libfl.patch b/meta-openembedded/meta-oe/recipes-support/ccid/ccid/no-dep-on-libfl.patch
new file mode 100644
index 000000000..477cc31ad
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/ccid/ccid/no-dep-on-libfl.patch
@@ -0,0 +1,18 @@
+No need to link with libfl.
+
+Upstream-Status: Pending
+Signed-off-by: Jacob Kroon <jacob.kroon@mikrodidakt.se>
+
+Index: ccid-1.4.8/src/Makefile.am
+===================================================================
+--- ccid-1.4.8.orig/src/Makefile.am
++++ ccid-1.4.8/src/Makefile.am
+@@ -53,7 +53,7 @@ PROVIDED_BY_PCSC = debug.c
+ endif
+
+ libccid_la_SOURCES = $(COMMON) $(USB) $(TOKEN_PARSER) $(PROVIDED_BY_PCSC) $(T1)
+-libccid_la_LIBADD = $(LEXLIB) $(LIBUSB_LIBS) $(PTHREAD_LIBS)
++libccid_la_LIBADD = $(LIBUSB_LIBS) $(PTHREAD_LIBS)
+ libccid_la_CFLAGS = $(PCSC_CFLAGS) $(LIBUSB_CFLAGS) $(PTHREAD_CFLAGS) \
+ $(SYMBOL_VISIBILITY) -D$(CCID_VERSION) -DSIMCLIST_NO_DUMPRESTORE
+ libccid_la_LDFLAGS = -avoid-version
diff --git a/meta-openembedded/meta-oe/recipes-support/ccid/ccid_1.4.24.bb b/meta-openembedded/meta-oe/recipes-support/ccid/ccid_1.4.24.bb
new file mode 100644
index 000000000..31145d0ef
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/ccid/ccid_1.4.24.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Generic USB CCID smart card reader driver"
+HOMEPAGE = "http://pcsclite.alioth.debian.org/ccid.html"
+LICENSE = "LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
+
+DEPENDS = "virtual/libusb0 pcsc-lite"
+RDEPENDS_${PN} = "pcsc-lite"
+
+SRC_URI = "https://alioth.debian.org/frs/download.php/file/4171/ccid-${PV}.tar.bz2 \
+ file://no-dep-on-libfl.patch \
+"
+
+SRC_URI[md5sum] = "915a03cda85b60fefbe3654cbdc68ca9"
+SRC_URI[sha256sum] = "62cb73c6c009c9799c526f05a05e25f00f0ad86d50f82a714dedcfbf4a7e4176"
+
+inherit autotools pkgconfig
+
+FILES_${PN} += "${libdir}/pcsc/"
+FILES_${PN}-dbg += "${libdir}/pcsc/drivers/*/*/*/.debug"
diff --git a/meta-openembedded/meta-oe/recipes-support/ceres-solver/ceres-solver_1.14.bb b/meta-openembedded/meta-oe/recipes-support/ceres-solver/ceres-solver_1.14.bb
new file mode 100644
index 000000000..29917c8a1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/ceres-solver/ceres-solver_1.14.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 = "facb199f3eda902360f9e1d5271372b7e54febe1"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "libeigen glog"
+
+inherit cmake
+
+# Only a static library and headers are created
+ALLOW_EMPTY_${PN} = "1"
+
+FILES_${PN}-dev += "${libdir}/cmake/*"
diff --git a/meta-openembedded/meta-oe/recipes-support/ckermit/ckermit_302.bb b/meta-openembedded/meta-oe/recipes-support/ckermit/ckermit_302.bb
new file mode 100644
index 000000000..61c08ee27
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/ckermit/ckermit_302.bb
@@ -0,0 +1,61 @@
+DESCRIPTION = "C-Kermit is a combined serial and network communication \
+software package offering a consistent, medium-independent, \
+cross-platform approach to connection establishment, terminal \
+sessions, file transfer, character-set translation, and automation \
+of communication tasks."
+HOMEPAGE = "www.kermitproject.org/ck90.html"
+SECTION = "console/network"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING.TXT;md5=932ca542d6c6cb8a59a0bcd76ab67cc3"
+
+SRC_URI = "http://www.kermitproject.org/ftp/kermit/archives/cku${PV}.tar.gz;subdir=${BPN}-${PV}"
+SRC_URI[md5sum] = "eac4dbf18b45775e4cdee5a7c74762b0"
+SRC_URI[sha256sum] = "0d5f2cd12bdab9401b4c836854ebbf241675051875557783c332a6a40dac0711"
+
+
+export CC2 = "${CC}"
+export BINDIR = "${bindir}"
+export MANDIR = "${mandir}/man1"
+export INFODIR = "${infodir}"
+
+EXTRA_OEMAKE = "-e MAKEFLAGS="
+
+# Additional flags. For uclibc we add -DNOARROWKEYS which stops ckermit
+# trying to look inside the stdio headers.
+CKERMIT_ADDITIONAL = ""
+CKERMIT_ADDITIONAL_libc-uclibc = "-DNOARROWKEYS"
+CKERMIT_ADDITIONAL_libc-musl = "-DNOARROWKEYS"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+do_compile () {
+ # The original makefile doesn't differentiate between CC and CC_FOR_BUILD,
+ # so we build wart manually. Note that you need a ckwart.o with the proper
+ # timestamp to make this hack work:
+ ${BUILD_CC} -c ckwart.c
+ ${BUILD_CC} -o wart ckwart.o
+ ./wart ckcpro.w ckcpro.c
+
+ # read ${S}/ckccfg.txt to understand this :-)
+ oe_runmake wermit CFLAGS="${CFLAGS} -DLINUX -DCK_POSIX_SIG \
+ -DNOTCPOPTS -DLINUXFSSTND -DNOCOTFMC -DPOSIX -DUSE_STRERROR \
+ -DNOSYSLOG -DHAVE_PTMX -DNO_DNS_SRV -DNOGFTIMER \
+ -DNOB_50 -DNOB_75 -DNOB_134 -DNOB_150 -DNOB_200 \
+ -DNOB_1800 -DNOB_3600 -DNOB_7200 -DNOB_76K -DNOB_230K \
+ -DNOB_460K -DNOB_921K \
+ -DNOCSETS -DNONET -DNOUNICODE -DNOHELP -DNODEBUG \
+ -DNOFRILLS -DNOFTP -DNODIAL -DNOPUSH -DNOIKSD -DNOHTTP -DNOFLOAT \
+ -DNOSERVER -DNOSEXP -DNORLOGIN -DNOOLDMODEMS -DNOSSH -DNOLISTEN \
+ -DNORESEND -DNOAUTODL -DNOSTREAMING -DNOHINTS -DNOCKXYZ -DNOLEARN \
+ -DNOMKDIR -DNOPERMS -DNOCKTIMERS -DNOCKREGEX -DNOREALPATH \
+ -DCK_SMALL -DNOLOGDIAL -DNORENAME -DNOWHATAMI \
+ ${CKERMIT_ADDITIONAL}"
+}
+
+do_install () {
+ install -d ${D}${BINDIR} ${D}${MANDIR} ${D}${INFODIR}
+ oe_runmake 'DESTDIR=${D}' install
+ # Fix up dangling symlink
+ rm ${D}${BINDIR}/kermit-sshsub
+ (cd ${D}${BINDIR} && ln -s ${BINDIR}/kermit kermit-sshusb)
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest-2.10.2/fix-cmake-install.patch b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest-2.10.2/fix-cmake-install.patch
new file mode 100644
index 000000000..0feafef5b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest-2.10.2/fix-cmake-install.patch
@@ -0,0 +1,17 @@
+Description: install cmake files into /usr/lib/cmake/cpprestsdk
+Author: Gianfranco Costamagna <locutusofborg@debian.org>
+Upstream-Status: https://github.com/Microsoft/cpprestsdk/pull/737
+Forwarded: https://github.com/Microsoft/cpprestsdk/pull/737
+Last-Update: 2018-04-19
+
+--- cpprest-2.10.2.orig/CMakeLists.txt
++++ cpprest-2.10.2/CMakeLists.txt
+@@ -18,7 +18,7 @@ enable_testing()
+ set(WERROR ON CACHE BOOL "Treat Warnings as Errors.")
+ set(CPPREST_EXCLUDE_WEBSOCKETS OFF CACHE BOOL "Exclude websockets functionality.")
+ set(CPPREST_EXCLUDE_COMPRESSION OFF CACHE BOOL "Exclude compression functionality.")
+-set(CPPREST_EXPORT_DIR lib/cpprestsdk CACHE STRING "Directory to install CMake config files.")
++set(CPPREST_EXPORT_DIR lib/cmake/cpprestsdk CACHE STRING "Directory to install CMake config files.")
+ set(CPPREST_INSTALL_HEADERS ON CACHE BOOL "Install header files.")
+ set(CPPREST_INSTALL ON CACHE BOOL "Add install commands.")
+
diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.2.bb b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.2.bb
new file mode 100644
index 000000000..2ba6fc66c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.2.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design."
+SECTION = "libs/network"
+HOMEPAGE = "https://github.com/Microsoft/cpprestsdk/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${S}/../license.txt;md5=a2e15b954769218ff912468eecd6a02f"
+DEPENDS = "openssl websocketpp zlib boost"
+
+SRC_URI = "git://github.com/Microsoft/cpprestsdk.git;protocol=https;branch=master"
+
+SRC_URI += "file://fix-cmake-install.patch"
+
+# tag 2.10.2
+SRCREV= "fea848e2a77563cf2a6f28f8eab396fd6e787fbf"
+
+S = "${WORKDIR}/git/Release"
+
+inherit cmake
diff --git a/meta-openembedded/meta-oe/recipes-support/ctapi-common/ctapi-common_1.1-14.bb b/meta-openembedded/meta-oe/recipes-support/ctapi-common/ctapi-common_1.1-14.bb
new file mode 100644
index 000000000..3a049e76d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/ctapi-common/ctapi-common_1.1-14.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Common files and packaging infrastructure for CT-API modules"
+HOMEPAGE = "http://fedoraproject.org/"
+SECTION = "System Environment/Libraries"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://../ctapi-common.LICENSE;md5=8744cd52545ecb45befebd0da6f70f0a"
+
+SRC_URI = "http://ftp.riken.jp/Linux/fedora/releases/23/Everything/source/SRPMS/c/${BPN}-${PV}.fc23.src.rpm;extract=ctapi-common.LICENSE \
+ http://ftp.riken.jp/Linux/fedora/releases/23/Everything/source/SRPMS/c/${BPN}-${PV}.fc23.src.rpm;extract=ctapi-common.README"
+SRC_URI[md5sum] = "5b7259ef1c8cd9ae801fca7a5cb548c1"
+SRC_URI[sha256sum] = "87a74eb0a66055c34ba2c5c919e74f3211c5950ae1c2cbab967fdf4137f5de91"
+
+do_compile() {
+ install -pm 644 ${WORKDIR}/ctapi-common.LICENSE LICENSE
+ install -pm 644 ${WORKDIR}/ctapi-common.README README
+ echo ${libdir}/ctapi > ctapi.conf
+}
+
+do_install() {
+ install -Dpm 644 ctapi.conf ${D}${sysconfdir}/ld.so.conf.d/ctapi-${TARGET_ARCH}.conf
+ install -dm 755 ${D}${libdir}/ctapi
+}
+
+FILES_${PN} += "${libdir}/ctapi"
diff --git a/meta-openembedded/meta-oe/recipes-support/daemonize/daemonize_git.bb b/meta-openembedded/meta-oe/recipes-support/daemonize/daemonize_git.bb
new file mode 100644
index 000000000..4790883a7
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/daemonize/daemonize_git.bb
@@ -0,0 +1,15 @@
+SUMMARY = "A tool to run a command as a daemon"
+HOMEPAGE = "http://software.clapper.org/daemonize/"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=3cf9084faa88bc8554a9139d8d7dd35f"
+PV = "1.7.7+git${SRCPV}"
+
+inherit autotools
+
+SRCREV = "6b10308b13c13e7b911e75e27bf7e65c30d58799"
+SRC_URI = "git://github.com/bmc/daemonize.git \
+ file://fix-ldflags-for-gnuhash.patch"
+
+S = "${WORKDIR}/git"
+
+EXTRA_AUTORECONF += "--exclude=autoheader"
diff --git a/meta-openembedded/meta-oe/recipes-support/daemonize/files/fix-ldflags-for-gnuhash.patch b/meta-openembedded/meta-oe/recipes-support/daemonize/files/fix-ldflags-for-gnuhash.patch
new file mode 100644
index 000000000..4fa2ee1b3
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/daemonize/files/fix-ldflags-for-gnuhash.patch
@@ -0,0 +1,23 @@
+Add the LDFLAGS to the final link to avoid errors with missing GNU_HASH
+
+Upstream-Status: Submitted [https://github.com/bmc/daemonize/pull/22]
+
+Signed-off-by: Derek Straka <derek@asterius.io>
+
+diff --git a/Makefile.in b/Makefile.in
+index 8a4d078..40d3dee 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -24,10 +24,10 @@ LDFLAGS = @LDFLAGS@
+ all: daemonize
+
+ daemonize: daemonize.o getopt.o $(MISSING_OBJECTS)
+- $(CC) $(CFLAGS) -o $@ $^
++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^
+
+ testdaemon: testdaemon.o
+- $(CC) $(CFLAGS) -o $@ $^
++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^
+
+ psman: daemonize.ps
+
diff --git a/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/0001-daemontools-Fix-QA-Issue.patch b/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/0001-daemontools-Fix-QA-Issue.patch
new file mode 100644
index 000000000..30e37cb1d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/0001-daemontools-Fix-QA-Issue.patch
@@ -0,0 +1,26 @@
+From a86c4209da695909424db0c9108592194a3094b7 Mon Sep 17 00:00:00 2001
+From: Lei Maohui <leimaohui@cn.fujitsu.com>
+Date: Sat, 6 Aug 2016 00:47:37 +0900
+Subject: [PATCH] daemontools: Fix QA Issue
+
+To fix the QA Issues as following:
+
+ERROR: daemontools-0.76-r0 do_package_qa: QA Issue: No GNU_HASH in the elf binary: '/build-poky/tmp/work/i586-poky-linux/daemontools/0.76-r0/packages-split/daemontools/usr/bin/tai64nlocal'
+
+Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
+---
+ src/conf-ld | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/conf-ld b/src/conf-ld
+index 2a44210..c7e7755 100644
+--- a/src/conf-ld
++++ b/src/conf-ld
+@@ -1,3 +1,3 @@
+-${CC}
++${CC} ${LDFLAGS}
+
+ This will be used to link .o files into an executable.
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/0001-daemontools-native-Fix-a-warning.patch b/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/0001-daemontools-native-Fix-a-warning.patch
new file mode 100644
index 000000000..8d9577d5f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/0001-daemontools-native-Fix-a-warning.patch
@@ -0,0 +1,26 @@
+From a43a3327ccd4b06a3bcf0c87d518a97c6b39ac02 Mon Sep 17 00:00:00 2001
+From: Lei Maohui <leimaohui@cn.fujitsu.com>
+Date: Sat, 6 Aug 2016 02:09:53 +0900
+Subject: [PATCH] daemontools: Fix a warning
+
+To fix the warning as following:
+
+WARNING: daemontools-native-0.76-r0 do_populate_sysroot: File '/build-poky/tmp/sysroots/x86_64-linux/usr/bin/chkshsgr' from daemontools-native was already stripped, this will prevent future debugging!
+
+Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
+---
+ src/conf-ld | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/conf-ld b/src/conf-ld
+index 59a0de7..1d0518a 100644
+--- a/src/conf-ld
++++ b/src/conf-ld
+@@ -1,3 +1,3 @@
+-gcc -s
++gcc
+
+ This will be used to link .o files into an executable.
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/0001-error.h-include-errno.h-instead-of-extern-int.diff b/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/0001-error.h-include-errno.h-instead-of-extern-int.diff
new file mode 100644
index 000000000..ce1959782
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/0001-error.h-include-errno.h-instead-of-extern-int.diff
@@ -0,0 +1,25 @@
+From d3e7651e2f2492dd1031d09a99713644b604cab5 Mon Sep 17 00:00:00 2001
+From: Gerrit Pape <pape@smarden.org>
+Date: Wed, 12 Dec 2007 13:44:15 +0000
+Subject: [PATCH] error.h: '#include <errno.h>' instead of 'extern int errno;'
+
+---
+ daemontools-0.76/src/error.h | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git daemontools-0.76.orig/src/error.h daemontools-0.76/src/error.h
+index 086fb55..f7e8273 100644
+--- daemontools-0.76.orig/src/error.h
++++ daemontools-0.76/src/error.h
+@@ -3,7 +3,7 @@
+ #ifndef ERROR_H
+ #define ERROR_H
+
+-extern int errno;
++#include <errno.h>
+
+ extern int error_intr;
+ extern int error_nomem;
+--
+1.5.4.2
+
diff --git a/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/0002-supervise.c-.-supervise-may-be-a-symlink-if-it-s-da.diff b/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/0002-supervise.c-.-supervise-may-be-a-symlink-if-it-s-da.diff
new file mode 100644
index 000000000..73dce9072
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/0002-supervise.c-.-supervise-may-be-a-symlink-if-it-s-da.diff
@@ -0,0 +1,47 @@
+From 7ee585cab1d5b68f804a5601a66ae87799c8a7c3 Mon Sep 17 00:00:00 2001
+From: Gerrit Pape <pape@smarden.org>
+Date: Sun, 24 Feb 2008 10:54:26 +0000
+Subject: [PATCH] supervise.c: ./supervise may be a symlink, if it's dangling, create link target
+
+---
+ daemontools-0.76/src/supervise.c | 17 ++++++++++++++++-
+ 1 files changed, 16 insertions(+), 1 deletions(-)
+
+diff --git daemontools-0.76.orig/src/supervise.c daemontools-0.76/src/supervise.c
+index 2482ad2..f43cabf 100644
+--- daemontools-0.76.orig/src/supervise.c
++++ daemontools-0.76/src/supervise.c
+@@ -208,6 +208,8 @@ void doit(void)
+ int main(int argc,char **argv)
+ {
+ struct stat st;
++ int r;
++ char buf[256];
+
+ dir = argv[1];
+ if (!dir || argv[2])
+@@ -232,7 +234,20 @@ int main(int argc,char **argv)
+ if (errno != error_noent)
+ strerr_die4sys(111,FATAL,"unable to stat ",dir,"/down: ");
+
+- mkdir("supervise",0700);
++ if (mkdir("supervise",0700) == -1) {
++ if ((r = readlink("supervise", buf, 256)) != -1) {
++ if (r == 256) {
++ errno = EOVERFLOW;
++ strerr_die1sys(111,"unable to readlink ./supervise: ");
++ }
++ buf[r] = 0;
++ mkdir(buf, 0700);
++ }
++ else {
++ if ((errno != ENOENT) && (errno != EINVAL))
++ strerr_die1sys(111, "unable to readlink ./supervise: ");
++ }
++ }
+ fdlock = open_append("supervise/lock");
+ if ((fdlock == -1) || (lock_exnb(fdlock) == -1))
+ strerr_die4sys(111,FATAL,"unable to acquire ",dir,"/supervise/lock: ");
+--
+1.5.4.2
+
diff --git a/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/cross-compile.patch b/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/cross-compile.patch
new file mode 100644
index 000000000..f164c2d10
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/cross-compile.patch
@@ -0,0 +1,45 @@
+make sure it can be compiled for cross target
+
+1. never try to compile target binary by native gcc
+2. target's chkshsgr doesn't work on native.
+3. it's wrong to do target tests on native.
+
+Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
+
+diff -Nurp daemontools-0.76.orig/src/conf-cc daemontools-0.76/src/conf-cc
+--- daemontools-0.76.orig/src/conf-cc 2001-07-13 00:49:49.000000000 +0800
++++ daemontools-0.76/src/conf-cc 2014-11-26 09:34:38.828812162 +0800
+@@ -1,3 +1,3 @@
+-gcc -O2 -Wimplicit -Wunused -Wcomment -Wchar-subscripts -Wuninitialized -Wshadow -Wcast-qual -Wcast-align -Wwrite-strings
++${CC} -O2 -Wimplicit -Wunused -Wcomment -Wchar-subscripts -Wuninitialized -Wshadow -Wcast-qual -Wcast-align -Wwrite-strings
+
+ This will be used to compile .c files.
+diff -Nurp daemontools-0.76.orig/src/conf-ld daemontools-0.76/src/conf-ld
+--- daemontools-0.76.orig/src/conf-ld 2001-07-13 00:49:49.000000000 +0800
++++ daemontools-0.76/src/conf-ld 2014-11-26 09:34:49.880811730 +0800
+@@ -1,3 +1,3 @@
+-gcc -s
++${CC}
+
+ This will be used to link .o files into an executable.
+diff -Nurp daemontools-0.76.orig/src/Makefile daemontools-0.76/src/Makefile
+--- daemontools-0.76.orig/src/Makefile 2001-07-13 00:49:49.000000000 +0800
++++ daemontools-0.76/src/Makefile 2014-11-26 09:38:47.120802459 +0800
+@@ -165,7 +165,7 @@ hassgprm.h: choose compile hassgprm.h1 h
+
+ hasshsgr.h: chkshsgr choose compile hasshsgr.h1 hasshsgr.h2 load \
+ tryshsgr.c warn-shsgr
+- ./chkshsgr || ( cat warn-shsgr; exit 1 )
++ chkshsgr || ( cat warn-shsgr; exit 1 )
+ ./choose clr tryshsgr hasshsgr.h1 hasshsgr.h2 > hasshsgr.h
+
+ haswaitp.h: choose compile haswaitp.h1 haswaitp.h2 load trywaitp.c
+@@ -265,7 +265,7 @@ readproctitle.o: compile error.h readpro
+ rts: envdir envuidgid fghack matchtest multilog pgrphack \
+ readproctitle rts.tests setlock setuidgid softlimit supervise svc \
+ svok svscan svscanboot svstat tai64n tai64nlocal
+- env - /bin/sh rts.tests 2>&1 | cat -v > rts
++ echo "Warning: We can not run test on cross target."
+
+ scan_ulong.o: compile scan.h scan_ulong.c
+ ./compile scan_ulong.c
diff --git a/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools_0.76.bb b/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools_0.76.bb
new file mode 100644
index 000000000..84e9bca0e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools_0.76.bb
@@ -0,0 +1,51 @@
+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 \
+status report. \
+multilog saves error messages to one or more logs. It optionally timestamps \
+each line and, for each log, includes or excludes lines matching specified \
+patterns. It automatically rotates logs to limit the amount of disk space \
+used. If the disk fills up, it pauses and tries again, without losing any \
+data."
+
+SECTION = "System/Servers"
+
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/PD;md5=b3597d12946881e13cb3b548d1173851"
+LICENSE = "PD"
+
+SRC_URI = "http://cr.yp.to/daemontools/${BPN}-${PV}.tar.gz \
+ file://0001-error.h-include-errno.h-instead-of-extern-int.diff \
+ file://0002-supervise.c-.-supervise-may-be-a-symlink-if-it-s-da.diff "
+
+SRC_URI_append_class-target = "file://cross-compile.patch \
+ file://0001-daemontools-Fix-QA-Issue.patch "
+
+SRC_URI_append_class-native = "file://0001-daemontools-native-Fix-a-warning.patch "
+
+SRC_URI[md5sum] = "1871af2453d6e464034968a0fbcb2bfc"
+SRC_URI[sha256sum] = "a55535012b2be7a52dcd9eccabb9a198b13be50d0384143bd3b32b8710df4c1f"
+
+S = "${WORKDIR}/admin/${BPN}-${PV}"
+
+DEPENDS += "daemontools-native"
+DEPENDS_class-native = ""
+
+do_compile() {
+ ./package/compile
+}
+
+do_install() {
+ install -d ${D}/${bindir}
+}
+
+do_install_append_class-native() {
+ install -m 755 ${S}/compile/chkshsgr ${D}/${bindir}
+}
+
+do_install_append_class-target() {
+ install -m755 ${S}/command/* ${D}/${bindir}
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/debsums/debsums_2.2.2.bb b/meta-openembedded/meta-oe/recipes-support/debsums/debsums_2.2.2.bb
new file mode 100644
index 000000000..13f20eb94
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/devmem2/devmem2.bb b/meta-openembedded/meta-oe/recipes-support/devmem2/devmem2.bb
new file mode 100644
index 000000000..c86eb2e4b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/devmem2/devmem2.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Simple program to read/write from/to any location in memory"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://devmem2.c;endline=38;md5=a9eb9f3890384519f435aedf986297cf"
+PR = "r7"
+
+SRC_URI = "http://www.free-electrons.com/pub/mirror/devmem2.c;downloadfilename=devmem2-new.c \
+ file://devmem2-fixups-2.patch;apply=yes;striplevel=0"
+S = "${WORKDIR}"
+
+CFLAGS += "-DFORCE_STRICT_ALIGNMENT"
+
+python do_unpack_append() {
+ os.rename("devmem2-new.c", "devmem2.c")
+}
+
+do_compile() {
+ ${CC} -o devmem2 devmem2.c ${CFLAGS} ${LDFLAGS}
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install devmem2 ${D}${bindir}
+}
+
+SRC_URI[md5sum] = "e23f236e94be4c429aa1ceac0f01544b"
+SRC_URI[sha256sum] = "3b15515693bae1ebd14d914e46d388edfec2175829ea1576a7a0c8606ebbe639"
diff --git a/meta-openembedded/meta-oe/recipes-support/devmem2/devmem2/devmem2-fixups-2.patch b/meta-openembedded/meta-oe/recipes-support/devmem2/devmem2/devmem2-fixups-2.patch
new file mode 100644
index 000000000..4517797fc
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/devmem2/devmem2/devmem2-fixups-2.patch
@@ -0,0 +1,91 @@
+--- devmem2.c 2004-08-05 01:55:25.000000000 +0200
++++ devmem2_modif.c 2011-01-13 15:48:37.798799784 +0100
+@@ -45,12 +45,16 @@
+ #define MAP_SIZE 4096UL
+ #define MAP_MASK (MAP_SIZE - 1)
+
++static inline void *fixup_addr(void *addr, size_t size);
++
+ int main(int argc, char **argv) {
+ int fd;
+ void *map_base, *virt_addr;
+- unsigned long read_result, writeval;
++ unsigned long read_result, write_val;
+ off_t target;
+ int access_type = 'w';
++ char fmt_str[128];
++ size_t data_size;
+
+ if(argc < 2) {
+ fprintf(stderr, "\nUsage:\t%s { address } [ type [ data ] ]\n"
+@@ -79,38 +83,51 @@
+ virt_addr = map_base + (target & MAP_MASK);
+ switch(access_type) {
+ case 'b':
++ data_size = sizeof(unsigned char);
++ virt_addr = fixup_addr(virt_addr, data_size);
+ read_result = *((unsigned char *) virt_addr);
+ break;
+ case 'h':
++ data_size = sizeof(unsigned short);
++ virt_addr = fixup_addr(virt_addr, data_size);
+ read_result = *((unsigned short *) virt_addr);
+ break;
+ case 'w':
++ data_size = sizeof(unsigned long);
++ virt_addr = fixup_addr(virt_addr, data_size);
+ read_result = *((unsigned long *) virt_addr);
+ break;
+ default:
+ fprintf(stderr, "Illegal data type '%c'.\n", access_type);
+ exit(2);
+ }
+- printf("Value at address 0x%X (%p): 0x%X\n", target, virt_addr, read_result);
++ sprintf(fmt_str, "Read at address 0x%%08lX (%%p): 0x%%0%dlX\n", 2*data_size);
++ printf(fmt_str, (unsigned long)target, virt_addr, read_result);
+ fflush(stdout);
+
+ if(argc > 3) {
+- writeval = strtoul(argv[3], 0, 0);
++ write_val = strtoul(argv[3], 0, 0);
+ switch(access_type) {
+ case 'b':
+- *((unsigned char *) virt_addr) = writeval;
++ virt_addr = fixup_addr(virt_addr, sizeof(unsigned char));
++ *((unsigned char *) virt_addr) = write_val;
+ read_result = *((unsigned char *) virt_addr);
+ break;
+ case 'h':
+- *((unsigned short *) virt_addr) = writeval;
++ virt_addr = fixup_addr(virt_addr, sizeof(unsigned short));
++ *((unsigned short *) virt_addr) = write_val;
+ read_result = *((unsigned short *) virt_addr);
+ break;
+ case 'w':
+- *((unsigned long *) virt_addr) = writeval;
++ virt_addr = fixup_addr(virt_addr, sizeof(unsigned long));
++ *((unsigned long *) virt_addr) = write_val;
+ read_result = *((unsigned long *) virt_addr);
+ break;
+ }
+- printf("Written 0x%X; readback 0x%X\n", writeval, read_result);
++ sprintf(fmt_str, "Write at address 0x%%08lX (%%p): 0x%%0%dlX, "
++ "readback 0x%%0%dlX\n", 2*data_size, 2*data_size);
++ printf(fmt_str, (unsigned long)target, virt_addr,
++ write_val, read_result);
+ fflush(stdout);
+ }
+
+@@ -119,3 +136,12 @@
+ return 0;
+ }
+
++static inline void *fixup_addr(void *addr, size_t size)
++{
++#ifdef FORCE_STRICT_ALIGNMENT
++ unsigned long aligned_addr = (unsigned long)addr;
++ aligned_addr &= ~(size - 1);
++ addr = (void *)aligned_addr;
++#endif
++ return addr;
++}
diff --git a/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util-native_0.9.bb b/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util-native_0.9.bb
new file mode 100644
index 000000000..aeca23bf2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util-native_0.9.bb
@@ -0,0 +1,15 @@
+require dfu-util_${PV}.bb
+
+inherit native deploy
+
+DEPENDS = "libusb1-native"
+
+SRC_URI += "file://0001-Revert-Makefile.am-Drop-static-dfu-util.patch"
+
+do_deploy[sstate-outputdirs] = "${DEPLOY_DIR_TOOLS}"
+do_deploy() {
+ install -m 0755 src/dfu-util_static ${DEPLOYDIR}/dfu-util-${PV}
+ rm -f ${DEPLOYDIR}/dfu-util
+ ln -sf ./dfu-util-${PV} ${DEPLOYDIR}/dfu-util
+}
+addtask deploy before do_package after do_install
diff --git a/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util/0001-Revert-Makefile.am-Drop-static-dfu-util.patch b/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util/0001-Revert-Makefile.am-Drop-static-dfu-util.patch
new file mode 100644
index 000000000..1c6ad0807
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util/0001-Revert-Makefile.am-Drop-static-dfu-util.patch
@@ -0,0 +1,68 @@
+From c2aab3b9ae1febcb6b4c6561a59df1930a57b394 Mon Sep 17 00:00:00 2001
+From: Martin JaMa Jansa <Martin.Jansa@gmail.com>
+Date: Thu, 11 Aug 2011 11:19:52 +0200
+Subject: [PATCH] Revert "Makefile.am: Drop static dfu-util"
+
+This reverts commit fe0426ddc04f503d148c5e5f931f16b8f674f071.
+
+Signed-off-by: Martin JaMa Jansa <Martin.Jansa@gmail.com>
+---
+ configure.ac | 2 +-
+ src/Makefile.am | 22 +++++++++++++++++++++-
+ 2 files changed, 22 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index f5a43b8..6a3757e 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -21,7 +21,7 @@ AS_IF([test x$native_libusb = xno], [
+ AC_MSG_ERROR([*** Required libusb-1.0 >= 1.0.0 not installed ***]))
+ ])
+
+-LIBS="$LIBS $USB_LIBS"
++LIBS="$LIBS $USB_LIBS -lpthread"
+ CFLAGS="$CFLAGS $USB_CFLAGS"
+
+ # Checks for header files.
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 70179c4..e8736ee 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -1,6 +1,6 @@
+ AM_CFLAGS = -Wall -Wextra
+
+-bin_PROGRAMS = dfu-util dfu-suffix dfu-prefix
++bin_PROGRAMS = dfu-util dfu-util_static dfu-suffix dfu-prefix
+ dfu_util_SOURCES = main.c \
+ portable.h \
+ dfu_load.c \
+@@ -19,6 +19,26 @@ dfu_util_SOURCES = main.c \
+ quirks.c \
+ quirks.h
+
++dfu_util_static_SOURCES = main.c \
++ portable.h \
++ dfu_load.c \
++ dfu_load.h \
++ dfu_util.c \
++ dfu_util.h \
++ dfuse.c \
++ dfuse.h \
++ dfuse_mem.c \
++ dfuse_mem.h \
++ dfu.c \
++ dfu.h \
++ usb_dfu.h \
++ dfu_file.c \
++ dfu_file.h \
++ quirks.c \
++ quirks.h
++
++dfu_util_static_LDFLAGS = -static
++
+ dfu_suffix_SOURCES = suffix.c \
+ dfu_file.h \
+ dfu_file.c
+--
+2.7.2
+
diff --git a/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util_0.9.bb b/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util_0.9.bb
new file mode 100644
index 000000000..76e1552c0
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util_0.9.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "USB Device Firmware Upgrade utility"
+HOMEPAGE = "http://dfu-util.sourceforge.net"
+SECTION = "devel"
+AUTHOR = "Harald Welte <laforge@openmoko.org>"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+SRC_URI = "http://dfu-util.gnumonks.org/releases/${BP}.tar.gz"
+
+inherit autotools pkgconfig
+
+DEPENDS = "libusb1"
+
+SRC_URI[md5sum] = "233bb1e08ef4b405062445d84e28fde6"
+SRC_URI[sha256sum] = "36428c6a6cb3088cad5a3592933385253da5f29f2effa61518ee5991ea38f833"
diff --git a/meta-openembedded/meta-oe/recipes-support/digitemp/digitemp_git.bb b/meta-openembedded/meta-oe/recipes-support/digitemp/digitemp_git.bb
new file mode 100644
index 000000000..460aa1438
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/digitemp/digitemp_git.bb
@@ -0,0 +1,25 @@
+SUMMARY = "read temperature sensors in a 1-Wire net"
+SECTION = "util"
+DEPENDS = "libusb1"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=44fee82a1d2ed0676cf35478283e0aa0"
+
+PV = "3.7.1+git${SRCPV}"
+
+SRC_URI = "git://github.com/bcl/digitemp"
+
+SRCREV = "389f67655efa1674f595106c3a47b5ad082609a7"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OEMAKE = "ds9097 ds9097u \
+ SYSTYPE='Linux' \
+"
+do_configure() {
+ rm -f digitemp_*
+}
+
+do_install() {
+ install -d ${D}${sbindir}
+ install -m 0755 digitemp_* ${D}${sbindir}
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/dos2unix/dos2unix_7.4.0.bb b/meta-openembedded/meta-oe/recipes-support/dos2unix/dos2unix_7.4.0.bb
new file mode 100644
index 000000000..8d3c578d0
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/dos2unix/dos2unix_7.4.0.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.4.0
+SRCREV = "1182533bde3c1fe65be2ead465e87671faa2c027"
+
+S = "${WORKDIR}/git/dos2unix"
+
+inherit gettext perlnative
+
+# The dos2unix NLS relies on po4a-native, while po4a recipe is
+# provided by meta-perl layer, so make it optional here, you
+# need have meta-perl in bblayers.conf before enabling nls in
+# PACKAGECONFIG.
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[nls] = "ENABLE_NLS=1,ENABLE_NLS=,po4a-native"
+
+EXTRA_OEMAKE = "${PACKAGECONFIG_CONFARGS} LDFLAGS_USER='${LDFLAGS}'"
+EXTRA_OEMAKE_class-native = "ENABLE_NLS="
+
+do_install () {
+ oe_runmake DESTDIR="${D}${base_prefix}" install
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-support/dstat/dstat_0.7.3.bb b/meta-openembedded/meta-oe/recipes-support/dstat/dstat_0.7.3.bb
new file mode 100644
index 000000000..18af738fa
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/dstat/dstat_0.7.3.bb
@@ -0,0 +1,22 @@
+SUMMARY = "versatile resource statics tool"
+DESCRIPTION = "Dstat is a versatile replacement for vmstat, iostat, netstat and ifstat. \
+Dstat overcomes some of their limitations and adds some extra features, more counters \
+and flexibility. Dstat is handy for monitoring systems during performance tuning tests, \
+benchmarks or troubleshooting."
+HOMEPAGE = "http://dag.wiee.rs/home-made/dstat"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS += "asciidoc-native xmlto-native"
+
+SRC_URI = "git://github.com/dagwieers/dstat.git"
+
+SRCREV = "ebace6d4177f8748f35cec87f7a49946046b0a20"
+
+S = "${WORKDIR}/git"
+
+do_install() {
+ oe_runmake 'DESTDIR=${D}' install
+}
+
+RDEPENDS_${PN} += "python-core python-misc python-resource python-shell python-unixadmin"
diff --git a/meta-openembedded/meta-oe/recipes-support/eject/eject/eject-2.1.1-verbose.patch b/meta-openembedded/meta-oe/recipes-support/eject/eject/eject-2.1.1-verbose.patch
new file mode 100644
index 000000000..740360606
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/eject/eject/eject-2.1.1-verbose.patch
@@ -0,0 +1,19 @@
+Kept to help with debugging
+
+Upstream-Status: Pending
+
+Signed-off-by: Morgan Little <morgan.little@windriver.com>
+
+--- eject-2.1.1/eject.c.tn 2005-08-24 11:27:42.000000000 +0200
++++ eject-2.1.1/eject.c 2005-08-24 11:33:05.000000000 +0200
+@@ -638,7 +638,9 @@
+ unsigned char sense_buffer[32];
+
+ if ((ioctl(fd, SG_GET_VERSION_NUM, &k) < 0) || (k < 30000)) {
+- printf("not an sg device, or old sg driver\n");
++ if (v_option) {
++ printf(_("not an sg device, or old sg driver\n"));
++ }
+ return 0;
+ }
+
diff --git a/meta-openembedded/meta-oe/recipes-support/eject/eject/eject-2.1.5-error-return.patch b/meta-openembedded/meta-oe/recipes-support/eject/eject/eject-2.1.5-error-return.patch
new file mode 100644
index 000000000..5e13036c5
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/eject/eject/eject-2.1.5-error-return.patch
@@ -0,0 +1,12 @@
+Upstream-Status: Inappropriate [the upstream is no longer active]
+
+--- eject/eject.c.orig 2013-09-11 18:08:36.000000000 +0800
++++ eject/eject.c 2013-09-11 18:09:05.000000000 +0800
+@@ -207,7 +207,6 @@
+ "If omitted, name defaults to `%s'.\n"
+ "By default tries -r, -s, -f, and -q in order until success.\n"),
+ DEFAULTDEVICE);
+- exit(1);
+ }
+
+
diff --git a/meta-openembedded/meta-oe/recipes-support/eject/eject/eject-2.1.5-spaces.patch b/meta-openembedded/meta-oe/recipes-support/eject/eject/eject-2.1.5-spaces.patch
new file mode 100644
index 000000000..a16c4b1ce
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/eject/eject/eject-2.1.5-spaces.patch
@@ -0,0 +1,66 @@
+Kept to help with spaces in the mount path
+
+Upstream-Status: Backport
+
+Linux mangles spaces in mount points by changing them to an octal string
+of '\040'. So lets scan the mount point and fix it up by replacing all
+occurrences off '\0##' with the ASCII value of 0##. Requires a writable
+string as input as we mangle in place. Some of this was taken from the
+util-linux package.
+
+Signed-off-by: Morgan Little <morgan.little@windriver.com>
+--- eject/eject.c.ori 2007-06-24 00:08:44 -0700
++++ eject/eject.c 2007-06-24 00:12:44 -0700
+@@ -370,6 +370,30 @@
+
+
+ /*
++ * Linux mangles spaces in mount points by changing them to an octal string
++ * of '\040'. So lets scan the mount point and fix it up by replacing all
++ * occurrences off '\0##' with the ASCII value of 0##. Requires a writable
++ * string as input as we mangle in place. Some of this was taken from the
++ * util-linux package.
++ */
++#define octalify(a) ((a) & 7)
++#define tooctal(s) (64*octalify(s[1]) + 8*octalify(s[2]) + octalify(s[3]))
++#define isoctal(a) (((a) & ~7) == '0')
++static char *DeMangleMount(char *s)
++{
++ char *tmp = s;
++ while ((tmp = strchr(tmp, '\\')) != NULL) {
++ if (isoctal(tmp[1]) && isoctal(tmp[2]) && isoctal(tmp[3])) {
++ tmp[0] = tooctal(tmp);
++ memmove(tmp+1, tmp+4, strlen(tmp)-3);
++ }
++ ++tmp;
++ }
++ return s;
++}
++
++
++/*
+ * Given name, such as foo, see if any of the following exist:
+ *
+ * foo (if foo starts with '.' or '/')
+@@ -884,8 +908,8 @@
+ if (((strcmp(s1, name) == 0) || (strcmp(s2, name) == 0)) ||
+ ((maj != -1) && (maj == mtabmaj) && (min == mtabmin))) {
+ FCLOSE(fp);
+- *deviceName = strdup(s1);
+- *mountName = strdup(s2);
++ *deviceName = DeMangleMount(strdup(s1));
++ *mountName = DeMangleMount(strdup(s2));
+ return 1;
+ }
+ }
+@@ -928,8 +952,8 @@
+ rc = sscanf(line, "%1023s %1023s", s1, s2);
+ if (rc >= 2 && s1[0] != '#' && strcmp(s2, name) == 0) {
+ FCLOSE(fp);
+- *deviceName = strdup(s1);
+- *mountName = strdup(s2);
++ *deviceName = DeMangleMount(strdup(s1));
++ *mountName = DeMangleMount(strdup(s2));
+ return 1;
+ }
+ }
diff --git a/meta-openembedded/meta-oe/recipes-support/eject/eject/eject-timeout.patch b/meta-openembedded/meta-oe/recipes-support/eject/eject/eject-timeout.patch
new file mode 100644
index 000000000..de8146f32
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/eject/eject/eject-timeout.patch
@@ -0,0 +1,17 @@
+allow a longer timeout
+
+Upstream-Status: Backport
+
+Signed-off-by: Morgan Little <morgan.little@windriver.com>
+
+--- eject/eject.c.orig 2006-08-07 16:35:15.000000000 +0200
++++ eject/eject.c 2006-08-07 16:35:54.000000000 +0200
+@@ -723,7 +723,7 @@
+ io_hdr.dxfer_len = 0;
+ io_hdr.dxferp = inqBuff;
+ io_hdr.sbp = sense_buffer;
+- io_hdr.timeout = 2000;
++ io_hdr.timeout = 10000;
+
+ io_hdr.cmdp = allowRmBlk;
+ status = ioctl(fd, SG_IO, (void *)&io_hdr);
diff --git a/meta-openembedded/meta-oe/recipes-support/eject/eject_2.1.5.bb b/meta-openembedded/meta-oe/recipes-support/eject/eject_2.1.5.bb
new file mode 100644
index 000000000..49a3d74f6
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/eject/eject_2.1.5.bb
@@ -0,0 +1,37 @@
+DESCRIPTION = "Eject allows removable media (typically a CD-ROM, floppy disk, tape, or JAZ or ZIP disk) to be ejected under software control."
+HOMEPAGE = "http://eject.sourceforge.net/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
+
+inherit autotools gettext update-alternatives
+
+SRC_URI = "http://sources.openembedded.org/${BP}.tar.gz \
+ file://eject-2.1.5-error-return.patch \
+ file://eject-2.1.1-verbose.patch \
+ file://eject-2.1.5-spaces.patch \
+ file://eject-timeout.patch \
+"
+
+SRC_URI[md5sum] = "b96a6d4263122f1711db12701d79f738"
+SRC_URI[sha256sum] = "ef9f7906484cfde4ba223b2682a37058f9a3c7d3bb1adda7a34a67402e2ffe55"
+
+S = "${WORKDIR}/${BPN}"
+
+PR = "r1"
+
+do_compile_prepend() {
+ # PO subdir must be in build directory
+ if [ ! ${S} = ${B} ]; then
+ mkdir -p ${B}/po
+ cp -r ${S}/po/* ${B}/po/
+ fi
+}
+
+ALTERNATIVE_${PN} = "volname eject"
+ALTERNATIVE_LINK_NAME[volname] = "${bindir}/volname"
+ALTERNATIVE_LINK_NAME[eject] = "${bindir}/eject"
+ALTERNATIVE_PRIORITY[volname] = "100"
+ALTERNATIVE_PRIORITY[eject] = "100"
+
+ALTERNATIVE_${PN}-doc = "eject.1"
+ALTERNATIVE_LINK_NAME[eject.1] = "${mandir}/man1/eject.1"
diff --git a/meta-openembedded/meta-oe/recipes-support/enca/enca/configure-hack.patch b/meta-openembedded/meta-oe/recipes-support/enca/enca/configure-hack.patch
new file mode 100644
index 000000000..85abcdcf0
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/enca/enca/configure-hack.patch
@@ -0,0 +1,12 @@
+--- enca-1.9/configure.ac.orig 2006-02-15 00:57:39.000000000 -0800
++++ enca-1.9/configure.ac 2006-02-15 00:57:46.000000000 -0800
+@@ -92,9 +92,6 @@
+ dnl And for gtk-doc
+ gtk_CHECK_GTK_DOC
+
+-dnl Check for good random number sources
+-AC_CHECK_FILES(/dev/random /dev/urandom /dev/srandom /dev/arandom)
+-
+ dnl Dirty path hack. Helps some people with badly set up search paths.
+ if test "$prefix" = "NONE"; then
+ LDFLAGS="$LDFLAGS -L$ac_default_prefix/lib"
diff --git a/meta-openembedded/meta-oe/recipes-support/enca/enca/configure-remove-dumbness.patch b/meta-openembedded/meta-oe/recipes-support/enca/enca/configure-remove-dumbness.patch
new file mode 100644
index 000000000..6f6f3e320
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/enca/enca/configure-remove-dumbness.patch
@@ -0,0 +1,26 @@
+--- enca-1.9/configure.ac.orig 2006-06-29 15:30:44.000000000 +0100
++++ enca-1.9/configure.ac 2006-06-29 15:31:41.000000000 +0100
+@@ -92,14 +92,15 @@
+ dnl And for gtk-doc
+ gtk_CHECK_GTK_DOC
+
+-dnl Dirty path hack. Helps some people with badly set up search paths.
+-if test "$prefix" = "NONE"; then
+- LDFLAGS="$LDFLAGS -L$ac_default_prefix/lib"
+- CPPFLAGS="$CPPFLAGS -I$ac_default_prefix/include"
+-else
+- LDFLAGS="$LDFLAGS -L$prefix/lib"
+- CPPFLAGS="$CPPFLAGS -I$prefix/include"
+-fi
++# This is really dumb code
++#dnl Dirty path hack. Helps some people with badly set up search paths.
++#if test "$prefix" = "NONE"; then
++# LDFLAGS="$LDFLAGS -L$ac_default_prefix/lib"
++# CPPFLAGS="$CPPFLAGS -I$ac_default_prefix/include"
++#else
++# LDFLAGS="$LDFLAGS -L$prefix/lib"
++# CPPFLAGS="$CPPFLAGS -I$prefix/include"
++#fi
+
+ dnl Checks for libraries.
+ ye_CHECK_LIBM
diff --git a/meta-openembedded/meta-oe/recipes-support/enca/enca/dont-run-tests.patch b/meta-openembedded/meta-oe/recipes-support/enca/enca/dont-run-tests.patch
new file mode 100644
index 000000000..321d1e620
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/enca/enca/dont-run-tests.patch
@@ -0,0 +1,13 @@
+Index: enca-1.9/Makefile.am
+===================================================================
+--- enca-1.9.orig/Makefile.am 2005-11-24 11:21:32.000000000 +0100
++++ enca-1.9/Makefile.am 2006-04-11 11:14:21.832502904 +0200
+@@ -2,7 +2,7 @@
+ if MAINTAINER_MODE
+ SUBDIRS = tools data script lib src devel-docs test
+ else
+-SUBDIRS = tools script lib src devel-docs test
++SUBDIRS = tools script lib src devel-docs
+ endif
+ man_MANS = man/enca.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/enca/enca/libenca-003-iconv.patch b/meta-openembedded/meta-oe/recipes-support/enca/enca/libenca-003-iconv.patch
new file mode 100644
index 000000000..dbf0fb8ea
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/enca/enca/libenca-003-iconv.patch
@@ -0,0 +1,28 @@
+From 7e144495093187143a3d1589f74c2eac37e4d790 Mon Sep 17 00:00:00 2001
+From: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
+Date: Sun, 4 May 2014 15:49:28 +0200
+Subject: [PATCH] libiconv.m4: Fix AM_ICONV macro usage
+
+This patch come straight from the Buildroot source tree.
+
+Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
+Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
+---
+ m4/libiconv.m4 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/m4/libiconv.m4 b/m4/libiconv.m4
+index fc8c6f8..3a59549 100644
+--- a/m4/libiconv.m4
++++ b/m4/libiconv.m4
+@@ -17,7 +17,7 @@ AC_REQUIRE([AC_C_CONST])dnl
+ dnl
+
+ dnl Use standard iconv test
+-AM_ICONV
++m4_pattern_allow([AM_ICONV])
+ CONVERTOR_LIBS="$CONVERTOR_LIBS $LIBICONV"
+
+ dnl Compile iconvcap.c and run it to determine what encodings iconv actually
+--
+1.9.3
diff --git a/meta-openembedded/meta-oe/recipes-support/enca/enca/makefile-remove-tools.patch b/meta-openembedded/meta-oe/recipes-support/enca/enca/makefile-remove-tools.patch
new file mode 100644
index 000000000..accfbccd6
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/enca/enca/makefile-remove-tools.patch
@@ -0,0 +1,13 @@
+--- enca-1.9/Makefile.am.orig 2006-06-29 15:34:55.000000000 +0100
++++ enca-1.9/Makefile.am 2006-06-29 15:35:20.000000000 +0100
+@@ -1,8 +1,8 @@
+ # @(#) $Id: Makefile.am,v 1.35 2005/11/24 10:21:32 yeti Exp $
+ if MAINTAINER_MODE
+-SUBDIRS = tools data script lib src devel-docs test
++SUBDIRS = data script lib src devel-docs test
+ else
+-SUBDIRS = tools script lib src devel-docs
++SUBDIRS = script lib src devel-docs
+ endif
+ man_MANS = man/enca.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/enca/enca_1.9.bb b/meta-openembedded/meta-oe/recipes-support/enca/enca_1.9.bb
new file mode 100644
index 000000000..bf19843b2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/enca/enca_1.9.bb
@@ -0,0 +1,37 @@
+SUMMARY = "Enca is an Extremely Naive Charset Analyser"
+SECTION = "libs"
+HOMEPAGE = "http://trific.ath.cx/software/enca/"
+
+DEPENDS += "gettext-native"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=24b9569831c46d4818450b55282476b4"
+
+SRC_URI = "http://www.sourcefiles.org/Networking/Tools/Miscellanenous/enca-${PV}.tar.bz2 \
+ file://configure-hack.patch \
+ file://dont-run-tests.patch \
+ file://configure-remove-dumbness.patch \
+ file://makefile-remove-tools.patch \
+ file://libenca-003-iconv.patch "
+
+SRC_URI[md5sum] = "b3581e28d68d452286fb0bfe58bed3b3"
+SRC_URI[sha256sum] = "02acfef2b24a9c842612da49338138311f909f1cd33933520c07b8b26c410f4d"
+
+inherit autotools
+
+do_configure_prepend() {
+ # remove failing test which checks for something that isn't even used
+ sed -i -e '/ye_FUNC_SCANF_MODIF_SIZE_T/d' ${S}/configure.ac
+}
+
+do_configure_append() {
+ sed -i s:-I/usr/include::g ${B}/Makefile
+ sed -i s:-I/usr/include::g ${B}/*/Makefile
+}
+
+do_compile() {
+ cd ${S}/tools && ${BUILD_CC} -o make_hash make_hash.c
+ cd ${B}
+ oe_runmake
+}
+
diff --git a/meta-openembedded/meta-oe/recipes-support/epeg/epeg_git.bb b/meta-openembedded/meta-oe/recipes-support/epeg/epeg_git.bb
new file mode 100644
index 000000000..6b23bbf78
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/epeg/epeg_git.bb
@@ -0,0 +1,13 @@
+SUMMARY = "Epeg is a small library for handling thumbnails"
+DESCRIPTION = "Insanely fast JPEG/ JPG thumbnail scaling with the minimum fuss and CPU overhead. It makes use of libjpeg features of being able to load an image by only decoding the DCT coefficients needed to reconstruct an image of the size desired."
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e7732a9290ea1e4b034fdc15cf49968d \
+ file://COPYING-PLAIN;md5=f59cacc08235a546b0c34a5422133035"
+DEPENDS = "jpeg libexif"
+
+SRC_URI = "git://github.com/mattes/epeg.git"
+SRCREV = "337f55346425fbf2d283e794b702318ef2a74bcb"
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
diff --git a/meta-openembedded/meta-oe/recipes-support/espeak/espeak-data_1.48.04.bb b/meta-openembedded/meta-oe/recipes-support/espeak/espeak-data_1.48.04.bb
new file mode 100644
index 000000000..79b2cc1f4
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/espeak/espeak-data_1.48.04.bb
@@ -0,0 +1,24 @@
+require espeak.inc
+
+inherit native
+
+PACKAGES = "${PN}"
+FILES_${PN} = "${layout_datadir}"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+TARGET_ARCH = "${MACHINE_ARCH}"
+
+do_compile() {
+ # Fixing byte order of phoneme data files
+ cd "${S}/platforms/big_endian"
+ sed -i '/^ *CC *=/d' Makefile
+ sed -i 's/\(.*BYTE_ORDER\)/#undef BYTE_ORDER\n#define BYTE_ORDER BIG_ENDIAN\n\1/' espeak-phoneme-data.c
+ oe_runmake
+ ./espeak-phoneme-data "${S}/espeak-data"
+ cp -f phondata phonindex phontab "${S}/espeak-data"
+}
+
+do_install() {
+ install -d ${D}${layout_datadir}/espeak-data
+ install -m 0644 ${S}/espeak-data/phon* ${D}${layout_datadir}/espeak-data
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/espeak/espeak.inc b/meta-openembedded/meta-oe/recipes-support/espeak/espeak.inc
new file mode 100644
index 000000000..60b3f73c8
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/espeak/espeak.inc
@@ -0,0 +1,14 @@
+DESCRIPTION = "eSpeak is a compact open source software speech synthesizer"
+SECTION = "base"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://License.txt;md5=cb7a20edb4c9f5f478de6523dcd7362c"
+
+SRC_URI = "http://downloads.sourceforge.net/espeak/espeak-1.48.04-source.zip \
+ file://gcc-narrowing-warning-fix.patch \
+"
+SRC_URI[md5sum] = "cadd7482eaafe9239546bdc09fa244c3"
+SRC_URI[sha256sum] = "bf9a17673adffcc28ff7ea18764f06136547e97bbd9edf2ec612f09b207f0659"
+
+S = "${WORKDIR}/espeak-${PV}-source"
+
+DEPENDS = "portaudio-v19"
diff --git a/meta-openembedded/meta-oe/recipes-support/espeak/espeak_1.48.04.bb b/meta-openembedded/meta-oe/recipes-support/espeak/espeak_1.48.04.bb
new file mode 100644
index 000000000..552f40413
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/espeak/espeak_1.48.04.bb
@@ -0,0 +1,41 @@
+require espeak.inc
+inherit siteinfo
+
+EXTRA_PHONEMES = '${@bb.utils.contains("SITEINFO_ENDIANNESS", "be", "espeak-data (= ${PV})", "", d)}'
+RDEPENDS_${PN} = "portaudio-v19 ${EXTRA_PHONEMES}"
+
+CXXFLAGS += "-DUSE_PORTAUDIO"
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+FILES_${PN} += "${datadir}/espeak-data"
+
+do_configure() {
+ # "speak" binary, a TTS engine, uses portaudio in either APIs V18 or V19, use V19
+ cp "${S}/src/portaudio19.h" "${S}/src/portaudio.h"
+}
+
+do_compile() {
+ cd src
+ oe_runmake
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install -d ${D}${libdir}
+ install -d ${D}${includedir}/espeak
+ install -d ${D}${datadir}/espeak-data
+
+ # we do not ship "speak" binary though.
+ install -m 0755 ${S}/src/espeak ${D}${bindir}
+ install -m 0644 ${S}/src/speak_lib.h ${D}${includedir}/espeak/
+ ln -sf espeak/espeak.h ${D}${includedir}/
+ oe_libinstall -so -C src libespeak ${D}${libdir}
+
+ if [ "${SITEINFO_ENDIANNESS}" = "be" ] ; then
+ # the big-endian phon* files are provided by the package espeak-data
+ rm -f ${S}/espeak-data/phon*
+ fi
+
+ cp -prf ${S}/espeak-data/* ${D}${datadir}/espeak-data
+ chown -R root:root ${D}${datadir}/espeak-data
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/espeak/files/gcc-narrowing-warning-fix.patch b/meta-openembedded/meta-oe/recipes-support/espeak/files/gcc-narrowing-warning-fix.patch
new file mode 100644
index 000000000..2a9b4607d
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/eventlog/eventlog_0.2.13.bb b/meta-openembedded/meta-oe/recipes-support/eventlog/eventlog_0.2.13.bb
new file mode 100644
index 000000000..13eb7943f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/eventlog/eventlog_0.2.13.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Replacement syslog API"
+HOMEPAGE = "http://www.balabit.com/network-security/syslog-ng/opensource-logging-system"
+DESCRIPTION = "The EventLog library aims to be a replacement of the \
+ simple syslog() API provided on UNIX systems. The \
+ major difference between EventLog and syslog is that \
+ EventLog tries to add structure to messages. EventLog \
+ provides an interface to build, format and output an \
+ event record. The exact format and output method can \
+ be customized by the administrator via a configuration \
+ file. his package is the runtime part of the library. \
+"
+
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b8ba8e77bcda9a53fac0fe39fe957767"
+
+SRC_URI = "https://www.balabit.com/downloads/syslog-ng/open-source-edition/3.4.2/source/${BPN}_${PV}.tar.gz"
+
+inherit autotools pkgconfig
+
+SRC_URI[md5sum] = "68ec8d1ea3b98fa35002bb756227c315"
+SRC_URI[sha256sum] = "7cb4e6f316daede4fa54547371d5c986395177c12dbdec74a66298e684ac8b85"
diff --git a/meta-openembedded/meta-oe/recipes-support/farsight/libnice_0.1.13.bb b/meta-openembedded/meta-oe/recipes-support/farsight/libnice_0.1.13.bb
new file mode 100644
index 000000000..48c8221a3
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/farsight/libnice_0.1.13.bb
@@ -0,0 +1,36 @@
+SUMMARY = "Interactive Connectivity Establishment library"
+DESCRIPTION = "Libnice is an implementation of the IETF's draft Interactive Connectivity Establishment standard (ICE)."
+HOMEPAGE = "http://nice.freedesktop.org/wiki/"
+SRC_URI = "http://nice.freedesktop.org/releases/libnice-${PV}.tar.gz"
+SRC_URI[md5sum] = "3226faeaf48a9150ada00da2e2865959"
+SRC_URI[sha256sum] = "61112d9f3be933a827c8365f20551563953af6718057928f51f487bfe88419e1"
+
+LICENSE = "LGPLv2.1 & MPLv1.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=9c42325015702feda4f4d2f19a55b767 \
+ file://COPYING.LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \
+ file://COPYING.MPL;md5=3c617710e51cdbe0fc00716f056dfb1a \
+"
+
+DEPENDS = "glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[gupnp] = "--enable-gupnp,--disable-gupnp,gupnp-igd"
+
+inherit autotools pkgconfig gtk-doc gobject-introspection
+
+FILES_${PN} += "${libdir}/gstreamer-1.0/*.so"
+FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la"
+FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a"
+FILES_${PN}-dbg += "${libdir}/gstreamer-1.0/.debug"
+
+do_configure_prepend() {
+ mkdir ${S}/m4 || true
+}
+
+do_compile_append() {
+ for i in $(find ${B} -name "*.pc") ; do
+ sed -i -e s:${STAGING_DIR_TARGET}::g \
+ -e s:/${TARGET_SYS}::g \
+ $i
+ done
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/fbset/fbset-2.1/fbset-2.1-fix-makefile-dep.patch b/meta-openembedded/meta-oe/recipes-support/fbset/fbset-2.1/fbset-2.1-fix-makefile-dep.patch
new file mode 100644
index 000000000..41ab8af3d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/fbset/fbset-2.1/fbset-2.1-fix-makefile-dep.patch
@@ -0,0 +1,31 @@
+From 3db6782de1de7ca4f1bb9ee7652c4f2808e57539 Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Thu, 10 Jan 2013 12:24:33 +0800
+Subject: [PATCH] fbset 2.1 fix makefile dep modes.tab.c
+
+Upstream-Status: Inappropriate [no upstream]
+
+fix the error in parallel build:
+make: *** No rule to make target `modes.tab.h', needed by `lex.yy.o'. Stop.
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+---
+ Makefile | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 61536c1..09183e5 100644
+--- a/Makefile
++++ b/Makefile
+@@ -15,7 +15,7 @@ fbset: fbset.o modes.tab.o lex.yy.o
+
+ fbset.o: fbset.c fbset.h fb.h
+ modes.tab.o: modes.tab.c fbset.h fb.h
+-lex.yy.o: lex.yy.c fbset.h modes.tab.h
++lex.yy.o: lex.yy.c fbset.h modes.tab.c
+
+ lex.yy.c: modes.l
+ $(FLEX) modes.l
+--
+1.7.4.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/fbset/fbset-2.1/makefile.patch b/meta-openembedded/meta-oe/recipes-support/fbset/fbset-2.1/makefile.patch
new file mode 100644
index 000000000..82b1c61e9
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/fbset/fbset-2.1/makefile.patch
@@ -0,0 +1,11 @@
+--- fbset-2.1/Makefile.orig 2006-05-28 04:04:27.412095480 +0200
++++ fbset-2.1/Makefile 2006-05-28 04:14:05.379231120 +0200
+@@ -2,7 +2,7 @@
+ # Linux Frame Buffer Device Configuration
+ #
+
+-CC = gcc -Wall -O2 -I.
++CFLAGS = -Wall -O2 -I.
+ BISON = bison -d
+ FLEX = flex
+ INSTALL = install
diff --git a/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes.bb b/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes.bb
new file mode 100644
index 000000000..5f6f9909b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes.bb
@@ -0,0 +1,23 @@
+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"
+
+PV = "0.1.0"
+PR = "r6"
+
+SRC_URI = "file://fb.modes"
+S = "${WORKDIR}"
+
+do_install() {
+ install -d ${D}${sysconfdir}
+ install -m 0644 ${WORKDIR}/fb.modes ${D}${sysconfdir}
+}
+
+inherit allarch
+
+# fb.modes file is MACHINE_ARCH, base.bbclass correctly changes it to MACHINE_ARCH, but too late for allarch.bbclass
+# to disable "all" behavior (found when comparing qemuarm and qemux86 signatures)
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+CONFFILES_${PN} = "${sysconfdir}/fb.modes"
diff --git a/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes/fb.modes b/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes/fb.modes
new file mode 100644
index 000000000..ba5e6ed71
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes/fb.modes
@@ -0,0 +1,3 @@
+# By default there is nothing in this file just a reminder to define some
+# modes in OE
+
diff --git a/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes/om-gta01/fb.modes b/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes/om-gta01/fb.modes
new file mode 100644
index 000000000..446d23dd8
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes/om-gta01/fb.modes
@@ -0,0 +1,29 @@
+# Timings for GTA01 VGA and QVGA mode
+
+mode "480x640"
+ # D: 26.000 MHz, H: 43.334 kHz, V: 65.657 Hz
+ geometry 480 640 480 640 16
+ timings 38461 104 8 2 16 8 2
+ accel false
+endmode
+
+mode "vga"
+ # D: 26.000 MHz, H: 43.334 kHz, V: 65.657 Hz
+ geometry 480 640 480 640 16
+ timings 38461 104 8 2 16 8 2
+ accel false
+endmode
+
+mode "240x320"
+ # D: 8.475 MHz, H: 24.635 kHz, V: 75.569 Hz
+ geometry 240 320 240 320 16
+ timings 118000 88 8 2 2 8 2
+ accel false
+endmode
+
+mode "qvga"
+ # D: 8.475 MHz, H: 24.635 kHz, V: 75.569 Hz
+ geometry 240 320 240 320 16
+ timings 118000 88 8 2 2 8 2
+ accel false
+endmode
diff --git a/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes/omap3-pandora/fb.modes b/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes/omap3-pandora/fb.modes
new file mode 100644
index 000000000..0c87401b5
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes/omap3-pandora/fb.modes
@@ -0,0 +1,6 @@
+mode "800x480-65"
+ # D: 36.001 MHz, H: 34.124 kHz, V: 64.998 Hz
+ geometry 800 480 800 480 16
+ timings 27777 40 214 10 34 1 1
+ rgba 5/11,6/5,5/0,0/0
+endmode
diff --git a/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes/qemuarm/fb.modes b/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes/qemuarm/fb.modes
new file mode 100644
index 000000000..111456479
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes/qemuarm/fb.modes
@@ -0,0 +1,17 @@
+# QEMU versatilepb machine, qemuarm in OE
+
+mode "vga" "640x480"
+ geometry 640 480 640 480 16
+endmode
+
+mode "vga-portrait" "480x640"
+ geometry 480 640 480 640 16
+endmode
+
+mode "qvga" "320x240"
+ geometry 320 240 320 240 16
+endmode
+
+mode "qvga-portrait" "240x320"
+ geometry 240 320 240 320 16
+endmode
diff --git a/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes/qemumips/fb.modes b/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes/qemumips/fb.modes
new file mode 100644
index 000000000..111456479
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes/qemumips/fb.modes
@@ -0,0 +1,17 @@
+# QEMU versatilepb machine, qemuarm in OE
+
+mode "vga" "640x480"
+ geometry 640 480 640 480 16
+endmode
+
+mode "vga-portrait" "480x640"
+ geometry 480 640 480 640 16
+endmode
+
+mode "qvga" "320x240"
+ geometry 320 240 320 240 16
+endmode
+
+mode "qvga-portrait" "240x320"
+ geometry 240 320 240 320 16
+endmode
diff --git a/meta-openembedded/meta-oe/recipes-support/fbset/fbset/0001-fbset-including-asm-types.h-is-needed-on-all-linux-s.patch b/meta-openembedded/meta-oe/recipes-support/fbset/fbset/0001-fbset-including-asm-types.h-is-needed-on-all-linux-s.patch
new file mode 100644
index 000000000..7f45dbea8
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/fbset/fbset/0001-fbset-including-asm-types.h-is-needed-on-all-linux-s.patch
@@ -0,0 +1,34 @@
+From 06edd88833da93361d5408b880fbb890df332497 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 19 Jan 2016 01:55:47 +0000
+Subject: [PATCH] fbset: including asm/types.h is needed on all linux systems
+
+including asm/types.h is needed to get Linux typedef's like
+__s32 and so on which are independent of C library therefore this
+define should not be guarded by __GLIBC__ but by __linux__
+
+Helps to compile it on musl systems
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ fbset.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/fbset.h b/fbset.h
+index 9b1d2ac..0d8def8 100644
+--- a/fbset.h
++++ b/fbset.h
+@@ -15,7 +15,7 @@
+ #include <stdio.h>
+ #include <sys/types.h>
+
+-#ifdef __GLIBC__
++#ifdef __linux__
+ #include <asm/types.h>
+ #endif
+
+--
+2.7.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/fbset/fbset_2.1.bb b/meta-openembedded/meta-oe/recipes-support/fbset/fbset_2.1.bb
new file mode 100644
index 000000000..fbf834da1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/fbset/fbset_2.1.bb
@@ -0,0 +1,38 @@
+#
+# Copyright Matthias Hentges <devel@hentges.net> (c) 2006
+# License: MIT (see http://www.opensource.org/licenses/mit-license.php for a copy of the license)
+#
+# Filename: fbset_2.1.bb
+# 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"
+DEPENDS = "bison-native flex-native"
+
+PR = "r4"
+
+SRC_URI = "http://ftp.debian.org/debian/pool/main/f/fbset/fbset_2.1.orig.tar.gz \
+ file://makefile.patch \
+ file://fbset-2.1-fix-makefile-dep.patch \
+ file://0001-fbset-including-asm-types.h-is-needed-on-all-linux-s.patch \
+"
+
+inherit update-alternatives
+
+do_install() {
+ install -d ${D}${sbindir} ${D}${datadir}/man/man8 ${D}${datadir}/man/man5
+ install -m 0755 ${B}/fbset ${D}${sbindir}/fbset.real
+ install -m 0644 ${B}/*.5 ${D}${datadir}/man/man5
+ install -m 0644 ${B}/*.8 ${D}${datadir}/man/man8
+}
+
+ALTERNATIVE_fbset = "fbset"
+ALTERNATIVE_LINK_NAME[fbset] = "${sbindir}/fbset"
+ALTERNATIVE_TARGET[fbset] = "${sbindir}/fbset.real"
+ALTERNATIVE_PRIORITY[fbset] = "55"
+
+SRC_URI[md5sum] = "40ed9608f46d787bfb65fd1269f7f459"
+SRC_URI[sha256sum] = "517fa062d7b2d367f931a1c6ebb2bef84907077f0ce3f0c899e34490bbea9338"
diff --git a/meta-openembedded/meta-oe/recipes-support/fftw/fftw/0001-NEON-autodetection-segfaults-assume-neon-present.patch b/meta-openembedded/meta-oe/recipes-support/fftw/fftw/0001-NEON-autodetection-segfaults-assume-neon-present.patch
new file mode 100644
index 000000000..6340f42f4
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/fftw/fftw/0001-NEON-autodetection-segfaults-assume-neon-present.patch
@@ -0,0 +1,80 @@
+From 97af5a2efbe30726ce4d7c921efed6afc32a314f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Sun, 25 Dec 2016 13:41:19 +0100
+Subject: [PATCH] NEON autodetection segfaults: assume neon present
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+If TUNE_FEATURES contain 'neon' we can assume our machine supports it
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+---
+ simd-support/neon.c | 46 +---------------------------------------------
+ 1 file changed, 1 insertion(+), 45 deletions(-)
+
+diff --git a/simd-support/neon.c b/simd-support/neon.c
+index 86b2cb6..8d6537e 100644
+--- a/simd-support/neon.c
++++ b/simd-support/neon.c
+@@ -23,54 +23,10 @@
+
+ #if HAVE_NEON
+
+-/* check for an environment where signals are known to work */
+-#if defined(unix) || defined(linux)
+- # include <signal.h>
+- # include <setjmp.h>
+-
+- static jmp_buf jb;
+-
+- static void sighandler(int x)
+- {
+- UNUSED(x);
+- longjmp(jb, 1);
+- }
+-
+- static int really_have_neon(void)
+- {
+- void (*oldsig)(int);
+- oldsig = signal(SIGILL, sighandler);
+- if (setjmp(jb)) {
+- signal(SIGILL, oldsig);
+- return 0;
+- } else {
+- /* paranoia: encode the instruction in binary because the
+- assembler may not recognize it without -mfpu=neon */
+- /*asm volatile ("vand q0, q0, q0");*/
+- asm volatile (".long 0xf2000150");
+- signal(SIGILL, oldsig);
+- return 1;
+- }
+- }
+-
+- int X(have_simd_neon)(void)
+- {
+- static int init = 0, res;
+-
+- if (!init) {
+- res = really_have_neon();
+- init = 1;
+- }
+- return res;
+- }
+-
+-
+-#else
+-/* don't know how to autodetect NEON; assume it is present */
++/* autodetect NEON broken; assume it is present */
+ int X(have_simd_neon)(void)
+ {
+ return 1;
+ }
+-#endif
+
+ #endif
+--
+2.5.5
+
diff --git a/meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.7.bb b/meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.7.bb
new file mode 100644
index 000000000..aae6ec952
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.7.bb
@@ -0,0 +1,80 @@
+DESCRIPTION = "FFTW"
+SECTION = "libs"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+SRC_URI = " \
+ http://www.fftw.org/fftw-${PV}.tar.gz \
+ file://0001-NEON-autodetection-segfaults-assume-neon-present.patch \
+"
+SRC_URI[md5sum] = "0d5915d7d39b3253c1cc05030d79ac47"
+SRC_URI[sha256sum] = "3b609b7feba5230e8f6dd8d245ddbefac324c5a6ae4186947670d9ac2cd25573"
+
+inherit autotools pkgconfig
+
+# we had multiple recipes in the past
+PROVIDES = "fftwl fftwf"
+
+EXTRA_OECONF = "--disable-fortran --enable-shared --enable-threads"
+
+CFLAGS += "-D_GNU_SOURCE"
+
+FFTW_NEON = "${@bb.utils.contains('TUNE_FEATURES', 'neon', '--enable-neon', '', d)}"
+FFTW_NEON_class-native = ""
+
+do_configure() {
+ # configure fftw
+ rm -rf ${WORKDIR}/build-fftw
+ mkdir -p ${B}
+ cd ${B}
+ # full (re)configure
+ autotools_do_configure
+ mv ${B} ${WORKDIR}/build-fftw
+
+ # configure fftwl
+ rm -rf ${WORKDIR}/build-fftwl
+ mkdir -p ${B}
+ cd ${B}
+ # configure only
+ oe_runconf --enable-long-double
+ mv ${B} ${WORKDIR}/build-fftwl
+
+ # configure fftwf
+ rm -rf ${WORKDIR}/build-fftwf
+ mkdir -p ${B}
+ cd ${B}
+ # configure only
+ oe_runconf --enable-single ${FFTW_NEON}
+ mv ${B} ${WORKDIR}/build-fftwf
+}
+
+do_compile() {
+ for lib in fftw fftwl fftwf; do
+ cd ${WORKDIR}/build-$lib
+ autotools_do_compile
+ done
+}
+
+do_install() {
+ for lib in fftw fftwl fftwf; do
+ cd ${WORKDIR}/build-$lib
+ autotools_do_install
+ done
+}
+
+
+PACKAGES =+ "libfftw libfftwl libfftwf"
+FILES_libfftw = "${libdir}/libfftw3.so.* ${libdir}/libfftw3_*.so.*"
+FILES_libfftwl = "${libdir}/libfftw3l.so.* ${libdir}/libfftw3l_*.so.*"
+FILES_libfftwf = "${libdir}/libfftw3f.so.* ${libdir}/libfftw3f_*.so.*"
+
+PACKAGES =+ "fftw-wisdom fftwl-wisdom fftwf-wisdom fftw-wisdom-to-conf"
+FILES_fftw-wisdom = "${bindir}/fftw-wisdom"
+FILES_fftwl-wisdom = "${bindir}/fftwl-wisdom"
+FILES_fftwf-wisdom = "${bindir}/fftwf-wisdom"
+FILES_fftw-wisdom-to-conf = "${bindir}/fftw-wisdom-to-conf"
+
+FILES_${PN}-dev += "${libdir}/cmake"
+RDEPENDS_${PN}-dev = "libfftw libfftwl libfftwf"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/fltk/fltk-native.bb b/meta-openembedded/meta-oe/recipes-support/fltk/fltk-native.bb
new file mode 100644
index 000000000..2636287e3
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/fltk/fltk-native.bb
@@ -0,0 +1,21 @@
+require ${BPN}.inc
+
+DEPENDS = "zlib-native jpeg-native libpng-native libxext-native libxft-native"
+
+inherit native
+
+EXTRA_OECMAKE += " \
+ -DOPTION_BUILD_SHARED_LIBS=OFF \
+ -DOPTION_USE_THREADS=OFF \
+ -DOPTION_USE_XDBE=OFF \
+ -DOPTION_USE_XFT=OFF \
+ -DOPTION_BUILD_EXAMPLES=OFF \
+ -DOPTION_USE_XINERAMA=OFF \
+ -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/meta-openembedded/meta-oe/recipes-support/fltk/fltk.bb b/meta-openembedded/meta-oe/recipes-support/fltk/fltk.bb
new file mode 100644
index 000000000..ec9e04bed
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/fltk/fltk.bb
@@ -0,0 +1,46 @@
+require ${BPN}.inc
+
+DEPENDS = "alsa-lib zlib jpeg libpng libxext libxft"
+
+inherit distro_features_check binconfig lib_package gtk-icon-cache mime
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI += "file://0003-CMake-build-Force-shared-libs-with-unsuffixed-names.patch"
+
+EXTRA_OECMAKE = " \
+ -DOPTION_BUILD_SHARED_LIBS=ON \
+ -DOPTION_USE_THREADS=ON \
+ -DOPTION_USE_XDBE=ON \
+ -DOPTION_USE_XFT=ON \
+ -DFLTK_CONFIG_PATH=${libdir}/cmake \
+"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'opengl', d)}"
+
+PACKAGECONFIG[examples] = "-DOPTION_BUILD_EXAMPLES=ON,-DOPTION_BUILD_EXAMPLES=OFF,"
+PACKAGECONFIG[cairo] = "-DOPTION_CAIRO=ON,-DOPTION_CAIRO=OFF,cairo"
+PACKAGECONFIG[opengl] = "-DOPTION_USE_GL=ON,-DOPTION_USE_GL=OFF,virtual/libgl"
+PACKAGECONFIG[xinerama] = "-DOPTION_USE_XINERAMA=ON,-DOPTION_USE_XINERAMA=OFF,libxinerama"
+PACKAGECONFIG[xfixes] = "-DOPTION_USE_XFIXES=ON,-DOPTION_USE_XFIXES=OFF,libxfixes"
+PACKAGECONFIG[xcursor] = "-DOPTION_USE_XCURSOR=ON,-DOPTION_USE_XCURSOR=OFF,libxcursor"
+
+do_install_append() {
+ sed -i -e 's,${STAGING_DIR_HOST},,g' ${D}${bindir}/fltk-config
+}
+
+python populate_packages_prepend () {
+ if (d.getVar('DEBIAN_NAMES')):
+ d.setVar('PKG_${BPN}', 'libfltk${PV}')
+}
+
+LEAD_SONAME = "libfltk.so"
+
+# .desktop / icons / mime only necessary for fluid app
+FILES_${PN}-bin += " \
+ ${datadir}/applications \
+ ${datadir}/icons \
+ ${datadir}/mime \
+"
+
+# cmake files
+FILES_${PN}-dev += "${datadir}/fltk"
diff --git a/meta-openembedded/meta-oe/recipes-support/fltk/fltk.inc b/meta-openembedded/meta-oe/recipes-support/fltk/fltk.inc
new file mode 100644
index 000000000..dbe700af0
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/fltk/fltk.inc
@@ -0,0 +1,21 @@
+SUMMARY = "FLTK is a cross-platform C++ GUI toolkit"
+HOMEPAGE = "http://www.fltk.org"
+SECTION = "libs"
+LICENSE = "LGPLv2 & FLTK"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f6b26344a24a941a01a5b0826e80b5ca"
+
+SRC_URI = " \
+ http://fltk.org/pub/fltk/1.3.4/${BP}-source.tar.gz \
+ file://disable_test.patch \
+ file://fltk-no-freetype-config.patch \
+ file://0001-Fl_Preferences.cxx-do-not-use-dlopen-in-case-glibc-s.patch \
+ file://0002-always-build-fluid-and-export-pointers.patch \
+"
+
+PV = "1.3.4-1"
+SRC_URI[md5sum] = "d7fcd27ab928648e1a1366dd2e273970"
+SRC_URI[sha256sum] = "7fb2c8882433ce694e6900c94fda505e8f4ed3fa9c7e597007098a33b85c53f4"
+
+inherit cmake pkgconfig
+
+TARGET_CC_ARCH += "${LDFLAGS} -DXFT_MAJOR=2"
diff --git a/meta-openembedded/meta-oe/recipes-support/fltk/fltk/0001-Fl_Preferences.cxx-do-not-use-dlopen-in-case-glibc-s.patch b/meta-openembedded/meta-oe/recipes-support/fltk/fltk/0001-Fl_Preferences.cxx-do-not-use-dlopen-in-case-glibc-s.patch
new file mode 100644
index 000000000..e6e68a0cb
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/fltk/fltk/0001-Fl_Preferences.cxx-do-not-use-dlopen-in-case-glibc-s.patch
@@ -0,0 +1,39 @@
+From e76a062338063615c069fedc5a143cc38c34d9b2 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Tue, 28 Feb 2017 01:00:21 +0100
+Subject: [PATCH] Fl_Preferences.cxx: do not use dlopen in case glibc's headers
+ are missing
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+| /home/work/x86_64-linux/fltk-native/1.3.4-1-r0/fltk-1.3.4-1/src/Fl_Preferences.cxx: In static member function ‘static int Fl_Plugin_Manager::load(const char*)’:
+| /home/work/x86_64-linux/fltk-native/1.3.4-1-r0/fltk-1.3.4-1/src/Fl_Preferences.cxx:1741:27: error: ‘RTLD_LAZY’ was not declared in this scope
+| dl = dlopen(filename, RTLD_LAZY);
+| ^~~~~~~~~
+| /home/work/x86_64-linux/fltk-native/1.3.4-1-r0/fltk-1.3.4-1/src/Fl_Preferences.cxx:1741:36: error: ‘dlopen’ was not declared in this scope
+| dl = dlopen(filename, RTLD_LAZY);
+| ^
+| src/CMakeFiles/fltk.dir/build.make:1217: recipe for target 'src/CMakeFiles/fltk.dir/Fl_Preferences.cxx.o' failed
+
+Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+---
+ src/Fl_Preferences.cxx | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/Fl_Preferences.cxx b/src/Fl_Preferences.cxx
+index 1233bb1..7857b9b 100644
+--- a/src/Fl_Preferences.cxx
++++ b/src/Fl_Preferences.cxx
+@@ -1737,7 +1737,7 @@ int Fl_Plugin_Manager::load(const char *filename) {
+ HMODULE dl = LoadLibrary(filename);
+ #else
+ void * dl = NULL;
+-# if HAVE_DLSYM
++# if HAVE_DLSYM && HAVE_DLFCN_H
+ dl = dlopen(filename, RTLD_LAZY);
+ # endif
+ #endif
+--
+2.9.3
+
diff --git a/meta-openembedded/meta-oe/recipes-support/fltk/fltk/0002-always-build-fluid-and-export-pointers.patch b/meta-openembedded/meta-oe/recipes-support/fltk/fltk/0002-always-build-fluid-and-export-pointers.patch
new file mode 100644
index 000000000..cca977c66
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/fltk/fltk/0002-always-build-fluid-and-export-pointers.patch
@@ -0,0 +1,31 @@
+From 16010cb1a69ea2326d8102b7f1e34b65aca4b278 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Tue, 28 Feb 2017 01:20:42 +0100
+Subject: [PATCH] always build fluid and export pointers
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+---
+ CMake/export.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMake/export.cmake b/CMake/export.cmake
+index 968186a..95e04eb 100644
+--- a/CMake/export.cmake
++++ b/CMake/export.cmake
+@@ -21,7 +21,7 @@
+ # final config and export
+ #######################################################################
+ # Set the fluid executable path
+-if(CMAKE_CROSSCOMPILING)
++if(FALSE)
+ find_file(FLUID_PATH
+ NAMES fluid fluid.exe
+ PATHS ENV PATH
+--
+2.9.3
+
diff --git a/meta-openembedded/meta-oe/recipes-support/fltk/fltk/0003-CMake-build-Force-shared-libs-with-unsuffixed-names.patch b/meta-openembedded/meta-oe/recipes-support/fltk/fltk/0003-CMake-build-Force-shared-libs-with-unsuffixed-names.patch
new file mode 100644
index 000000000..1f2f8aecf
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/fltk/fltk/0003-CMake-build-Force-shared-libs-with-unsuffixed-names.patch
@@ -0,0 +1,41 @@
+From bc38fb41044503c9debf5710910c51dd29674b6a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Fri, 15 Dec 2017 22:14:01 +0100
+Subject: [PATCH] CMake build: Force shared libs with unsuffixed names
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+For windows build sake CMake complains when a project wants to build shared and
+static libraries with same name. This caused the authors of fltk to generate
+libraries with names suffixed by '_SHARED' when building fltk with cmake -
+autotools builds do not suffix.
+
+Reasons to build shared libs with correct names:
+
+* Shared libraries are the preferred choice for embedded devices
+* There are projects (e.g yoshimi) expecting shared libraries with unsuffixed
+ names - as created by autotools build. These projects link against static
+ libraries by accident causing unusable binaries.
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ CMake/macros.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMake/macros.cmake b/CMake/macros.cmake
+index 4def62d..ab675f0 100644
+--- a/CMake/macros.cmake
++++ b/CMake/macros.cmake
+@@ -49,7 +49,7 @@ macro(FL_ADD_LIBRARY LIBNAME LIBTYPE LIBFILES)
+ PROPERTIES
+ VERSION ${FLTK_VERSION_FULL}
+ SOVERSION ${FLTK_VERSION_MAJOR}.${FLTK_VERSION_MINOR}
+- PREFIX "lib" # for MSVC static/shared coexistence
++ OUTPUT_NAME ${LIBNAME} CLEAN_DIRECT_OUTPUT 1
+ )
+ endif (${LIBTYPE} STREQUAL "SHARED")
+
+--
+2.9.5
+
diff --git a/meta-openembedded/meta-oe/recipes-support/fltk/fltk/disable_test.patch b/meta-openembedded/meta-oe/recipes-support/fltk/fltk/disable_test.patch
new file mode 100644
index 000000000..1f5fd25e0
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/fltk/fltk/disable_test.patch
@@ -0,0 +1,11 @@
+--- a/Makefile.orig 2015-11-26 15:35:31.485357862 +0800
++++ b/Makefile 2015-11-26 15:35:37.037357764 +0800
+@@ -18,7 +18,7 @@
+
+ include makeinclude
+
+-DIRS = $(IMAGEDIRS) src $(CAIRODIR) fluid test documentation
++DIRS = $(IMAGEDIRS) src $(CAIRODIR) fluid documentation
+
+ all: makeinclude fltk-config
+ for dir in $(DIRS); do\
diff --git a/meta-openembedded/meta-oe/recipes-support/fltk/fltk/fltk-no-freetype-config.patch b/meta-openembedded/meta-oe/recipes-support/fltk/fltk/fltk-no-freetype-config.patch
new file mode 100644
index 000000000..2a9915bea
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/fltk/fltk/fltk-no-freetype-config.patch
@@ -0,0 +1,40 @@
+From 699420d306cadbb5285942e09f4383d84b01985d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Fri, 13 Jan 2017 13:21:23 +0100
+Subject: [PATCH] replace freetype-config by pkg-config
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Pending
+
+Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+---
+ configure.ac | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index f0efd48..3af5ecb 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1006,12 +1006,12 @@ case $host_os_gui in
+
+ xft_found=no
+ if test x$enable_xft != xno; then
+- AC_PATH_PROG(FTCONFIG, freetype-config)
++ AC_PATH_PROG(PKGCONFIG,pkg-config)
+
+- if test "x$FTCONFIG" != x; then
+- CPPFLAGS="`$FTCONFIG --cflags` $CPPFLAGS"
+- CFLAGS="`$FTCONFIG --cflags` $CFLAGS"
+- CXXFLAGS="`$FTCONFIG --cflags` $CXXFLAGS"
++ if test "x$PKGCONFIG" != x; then
++ CPPFLAGS="`$PKGCONFIG --cflags xft` $CPPFLAGS"
++ CFLAGS="`$PKGCONFIG --cflags xft` $CFLAGS"
++ CXXFLAGS="`$PKGCONFIG --cflags xft` $CXXFLAGS"
+
+ AC_CHECK_LIB(fontconfig, FcPatternCreate)
+ AC_CHECK_HEADER(X11/Xft/Xft.h,
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/0001-Fix-gstreamer-1.0-detection.patch b/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/0001-Fix-gstreamer-1.0-detection.patch
new file mode 100644
index 000000000..a567cba92
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/0001-Fix-gstreamer-1.0-detection.patch
@@ -0,0 +1,27 @@
+From 368989526c32cdf9d680a397fede3cb773fa2609 Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Fri, 28 Jul 2017 16:31:41 -0400
+Subject: [PATCH] Fix gstreamer-1.0 detection
+
+Upstream State: Backport
+
+---
+ cmake/FindGStreamer_1_0.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cmake/FindGStreamer_1_0.cmake b/cmake/FindGStreamer_1_0.cmake
+index 3aa8fc6..6fbc0ec 100644
+--- a/cmake/FindGStreamer_1_0.cmake
++++ b/cmake/FindGStreamer_1_0.cmake
+@@ -59,7 +59,7 @@ macro(FIND_GSTREAMER_COMPONENT _component_prefix _pkgconfig_name _library)
+
+ string(REGEX MATCH "(.*)>=(.*)" _dummy "${_pkgconfig_name}")
+ if ("${CMAKE_MATCH_2}" STREQUAL "")
+- pkg_check_modules(PC_${_component_prefix} "${_pkgconfig_name} >= ${GStreamer_FIND_VERSION}")
++ pkg_check_modules(PC_${_component_prefix} "${_pkgconfig_name} >= ${GSTREAMER_1_0_MINIMUM_VERSION}")
+ else ()
+ pkg_check_modules(PC_${_component_prefix} ${_pkgconfig_name})
+ endif ()
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/winpr-makecert-Build-with-install-RPATH.patch b/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/winpr-makecert-Build-with-install-RPATH.patch
new file mode 100644
index 000000000..0d7dcc28d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/winpr-makecert-Build-with-install-RPATH.patch
@@ -0,0 +1,31 @@
+Subject: [PATCH] winpr-makecert: Build with install RPATH
+
+As we are installing "winpr-makecert" manually, we do want
+to refer to the library in DESTDIR, not the one resting in
+the build tree.
+
+Update it for 2.0.0.
+
+Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
+Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
+---
+ winpr/tools/makecert-cli/CMakeLists.txt | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/winpr/tools/makecert-cli/CMakeLists.txt b/winpr/tools/makecert-cli/CMakeLists.txt
+index 74afa09..8d00ef1 100644
+--- a/winpr/tools/makecert-cli/CMakeLists.txt
++++ b/winpr/tools/makecert-cli/CMakeLists.txt
+@@ -44,6 +44,9 @@ set(${MODULE_PREFIX}_LIBS winpr-tools)
+
+ target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
+
++set_target_properties(${MODULE_NAME} PROPERTIES
++ BUILD_WITH_INSTALL_RPATH 1)
++
+ set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "WinPR/Tools")
+
+ install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT tools EXPORT WinPRTargets)
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_git.bb b/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_git.bb
new file mode 100644
index 000000000..88aec9c41
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_git.bb
@@ -0,0 +1,86 @@
+# Copyright (C) 2010-2012 O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license
+
+DESCRIPTION = "FreeRDP RDP client & server library"
+HOMEPAGE = "http://www.freerdp.com"
+DEPENDS = "openssl alsa-lib pcsc-lite"
+SECTION = "net"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+inherit pkgconfig cmake gitpkgv
+
+PV = "2.0.0+gitr${SRCPV}"
+PKGV = "${GITPKGVTAG}"
+
+SRCREV = "1648deb435ad52206f7aa2afe4b4dff71d9329bc"
+SRC_URI = "git://github.com/FreeRDP/FreeRDP.git \
+ file://winpr-makecert-Build-with-install-RPATH.patch \
+ file://0001-Fix-gstreamer-1.0-detection.patch \
+"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECMAKE += " \
+ -DWITH_ALSA=ON \
+ -DWITH_PCSC=ON \
+ -DWITH_FFMPEG=OFF \
+ -DWITH_CUNIT=OFF \
+ -DWITH_NEON=OFF \
+ -DBUILD_STATIC_LIBS=OFF \
+ -DCMAKE_POSITION_INDEPENDANT_CODE=ON \
+ -DWITH_MANPAGES=OFF \
+"
+
+PACKAGECONFIG ??= " \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'directfb pam pulseaudio wayland x11', d)}\
+ gstreamer cups \
+"
+
+X11_DEPS = "virtual/libx11 libxinerama libxext libxcursor libxv libxi libxrender libxfixes libxdamage libxrandr libxkbfile"
+PACKAGECONFIG[x11] = "-DWITH_X11=ON -DWITH_XINERAMA=ON -DWITH_XEXT=ON -DWITH_XCURSOR=ON -DWITH_XV=ON -DWITH_XI=ON -DWITH_XRENDER=ON -DWITH_XFIXES=ON -DWITH_XDAMAGE=ON -DWITH_XRANDR=ON -DWITH_XKBFILE=ON,-DWITH_X11=OFF,${X11_DEPS}"
+PACKAGECONFIG[wayland] = "-DWITH_WAYLAND=ON,-DWITH_WAYLAND=OFF,wayland"
+PACKAGECONFIG[directfb] = "-DWITH_DIRECTFB=ON,-DWITH_DIRECTFB=OFF,directfb"
+PACKAGECONFIG[pam] = "-DWITH_PAM=ON,-DWITH_PAM=OFF,libpam"
+PACKAGECONFIG[pulseaudio] = "-DWITH_PULSEAUDIO=ON,-DWITH_PULSEAUDIO=OFF,pulseaudio"
+PACKAGECONFIG[gstreamer] = "-DWITH_GSTREAMER_1_0=ON,-DWITH_GSTREAMER_1_0=OFF,gstreamer1.0 gstreamer1.0-plugins-base"
+PACKAGECONFIG[cups] = "-DWITH_CUPS=ON,-DWITH_CUPS=OFF,cups"
+
+PACKAGES =+ "libfreerdp"
+
+LEAD_SONAME = "libfreerdp.so"
+FILES_libfreerdp = "${libdir}/lib*${SOLIBS}"
+
+PACKAGES_DYNAMIC += "^libfreerdp-plugin-.*"
+
+# we will need winpr-makecert to generate TLS certificates
+do_install_append () {
+ install -d ${D}${bindir}
+ install -m755 winpr/tools/makecert-cli/winpr-makecert ${D}${bindir}
+ rm -rf ${D}${libdir}/cmake
+ rm -rf ${D}${libdir}/freerdp
+}
+
+python populate_packages_prepend () {
+ freerdp_root = d.expand('${libdir}/freerdp')
+
+ do_split_packages(d, freerdp_root, '^(audin_.*)\.so$',
+ output_pattern='libfreerdp-plugin-%s',
+ description='FreeRDP plugin %s',
+ prepend=True, extra_depends='libfreerdp-plugin-audin')
+
+ do_split_packages(d, freerdp_root, '^(rdpsnd_.*)\.so$',
+ output_pattern='libfreerdp-plugin-%s',
+ description='FreeRDP plugin %s',
+ prepend=True, extra_depends='libfreerdp-plugin-rdpsnd')
+
+ do_split_packages(d, freerdp_root, '^(tsmf_.*)\.so$',
+ output_pattern='libfreerdp-plugin-%s',
+ description='FreeRDP plugin %s',
+ prepend=True, extra_depends='libfreerdp-plugin-tsmf')
+
+ do_split_packages(d, freerdp_root, '^([^-]*)\.so$',
+ output_pattern='libfreerdp-plugin-%s',
+ description='FreeRDP plugin %s',
+ prepend=True, extra_depends='')
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.5.bb b/meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.5.bb
new file mode 100644
index 000000000..63d9acf05
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/gd/gd_2.2.5.bb
@@ -0,0 +1,48 @@
+SUMMARY = "gd is a library used to create PNG, JPEG, or WBMP images"
+DESCRIPTION = "The gd graphics library allows your code to quickly draw images \
+complete with lines, arcs, text, multiple colors, cut and paste from other \
+images, and flood fills, and to write out the result as a PNG or JPEG file. \
+This is particularly useful in Web applications, where PNG and JPEG are two \
+of the formats accepted for inline images by most browsers. Note that gd is not \
+a paint program."
+HOMEPAGE = "http://libgd.bitbucket.org/"
+
+SECTION = "libs"
+LICENSE = "GD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=07384b3aa2e0d39afca0d6c40286f545"
+
+DEPENDS = "freetype libpng jpeg zlib tiff"
+
+SRC_URI = "git://github.com/libgd/libgd.git;branch=GD-2.2 \
+ "
+
+SRCREV = "8255231b68889597d04d451a72438ab92a405aba"
+
+S = "${WORKDIR}/git"
+
+inherit autotools binconfig gettext pkgconfig
+
+EXTRA_OECONF += " --disable-rpath \
+ --with-jpeg=${STAGING_LIBDIR}/.. \
+ --with-freetype=yes \
+ --without-fontconfig \
+ --without-webp \
+ --without-xpm \
+ --without-x \
+ "
+
+EXTRA_OEMAKE = 'LDFLAGS="${LDFLAGS}"'
+
+do_install_append() {
+ # cleanup buildpaths from gdlib.pc
+ sed -i -e 's#${STAGING_DIR_HOST}##g' ${D}${libdir}/pkgconfig/gdlib.pc
+}
+
+PACKAGES += "${PN}-tools"
+
+FILES_${PN} = "${libdir}/lib*${SOLIBS}"
+FILES_${PN}-tools = "${bindir}/*"
+
+PROVIDES += "${PN}-tools"
+RPROVIDES_${PN}-tools = "${PN}-tools"
+RDEPENDS_${PN}-tools = "perl perl-module-strict"
diff --git a/meta-openembedded/meta-oe/recipes-support/gflags/gflags_2.2.0.bb b/meta-openembedded/meta-oe/recipes-support/gflags/gflags_2.2.0.bb
new file mode 100644
index 000000000..28b652a64
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/gflags/gflags_2.2.0.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "The gflags package contains a C++ library that implements commandline flags processing. It includes built-in support for standard types such as string and the ability to define flags in the source file in which they are used"
+
+HOMEPAGE = "https://github.com/gflags/gflags"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING.txt;md5=c80d1a3b623f72bb85a4c75b556551df"
+
+SRC_URI = "git://github.com/gflags/gflags.git"
+SRCREV = "f8a0efe03aa69b3336d8e228b37d4ccb17324b88"
+
+S = "${WORKDIR}/git"
+
+FILES_${PN}-dev += "${libdir}/cmake"
+
+inherit cmake
+
+EXTRA_OECMAKE="-DBUILD_SHARED_LIBS=ON -DREGISTER_INSTALL_PREFIX=OFF -DLIB_INSTALL_DIR=${baselib}"
+
+PACKAGES =+ "${PN}-bash-completion"
+FILES_${PN}-bash-completion += "${bindir}/gflags_completions.sh"
+RDEPENDS_${PN}-bash-completion = "bash bash-completion"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/glog/glog/0001-configure.ac-Allow-user-to-disable-gflags.patch b/meta-openembedded/meta-oe/recipes-support/glog/glog/0001-configure.ac-Allow-user-to-disable-gflags.patch
new file mode 100644
index 000000000..596281ff6
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/glog/glog/0001-configure.ac-Allow-user-to-disable-gflags.patch
@@ -0,0 +1,35 @@
+From 0fabde0515e180c53961c27346dd7a79cffa4c1f Mon Sep 17 00:00:00 2001
+From: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
+Date: Thu, 11 Aug 2016 11:49:36 +0200
+Subject: [PATCH] configure.ac: Allow user to disable gflags
+
+Under some circumstances like cross-compilation, the user might not want
+to enable support for gflags.
+
+This patch allows support for --without-gflags
+
+Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
+---
+ configure.ac | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 7b4d21e7ae8a..eba5e5cda1ea 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -136,7 +136,11 @@ AC_ARG_WITH(gflags, AS_HELP_STRING[--with-gflags=GFLAGS_DIR],
+ CFLAGS="$CFLAGS $GFLAGS_CFLAGS"
+ LIBS="$LIBS $GFLAGS_LIBS"
+ )
+-AC_CHECK_LIB(gflags, main, ac_cv_have_libgflags=1, ac_cv_have_libgflags=0)
++if test x"$with_gflags" = x"no"; then
++ ac_cv_have_libgflags=0
++else
++ AC_CHECK_LIB(gflags, main, ac_cv_have_libgflags=1, ac_cv_have_libgflags=0)
++fi
+ if test x"$ac_cv_have_libgflags" = x"1"; then
+ AC_DEFINE(HAVE_LIB_GFLAGS, 1, [define if you have google gflags library])
+ if test x"$GFLAGS_LIBS" = x""; then
+--
+2.8.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/glog/glog_0.3.4.bb b/meta-openembedded/meta-oe/recipes-support/glog/glog_0.3.4.bb
new file mode 100644
index 000000000..d7c1974c6
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/glog/glog_0.3.4.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "The glog library implements application-level logging. This \
+library provides logging APIs based on C++-style streams and various helper \
+macros."
+HOMEPAGE = "https://github.com/google/glog"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=dc9db360e0bbd4e46672f3fd91dd6c4b"
+
+DEPENDS = "libunwind"
+
+SRC_URI = " \
+ git://github.com/google/glog.git \
+ file://0001-configure.ac-Allow-user-to-disable-gflags.patch \
+"
+
+SRCREV = "d8cb47f77d1c31779f3ff890e1a5748483778d6a"
+
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[gflags] = ",--without-gflags,gflags,"
+
+inherit autotools pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_2017-08-20.18.bb b/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_2017-08-20.18.bb
new file mode 100644
index 000000000..b72ffa9a1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_2017-08-20.18.bb
@@ -0,0 +1,36 @@
+SUMMARY = "The GNU portability library"
+DESCRIPTION = "A collection of software subroutines which are designed to \
+be usable on many operating systems. The goal of the project \
+is to make it easy for free software authors to make their \
+software run on many operating systems. Since source is designed \
+to be copied from gnulib, it is not a library per-se, as much \
+as a collection of portable idioms to be used in other projects."
+
+HOMEPAGE = "http://www.gnu.org/software/gnulib/"
+SECTION = "devel"
+LICENSE = "LGPLv2+"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=56a22a6e5bcce45e2c8ac184f81412b5"
+SRCREV = "b23000de1e47c7d580e0e220966dd1ee42a5e5bc"
+
+SRC_URI = "git://git.sv.gnu.org/gnulib;protocol=git \
+"
+
+S = "${WORKDIR}/git"
+
+do_install () {
+ cd ${S}
+ git checkout master
+ git clone ${S} ${D}/${datadir}/gnulib
+}
+
+do_patch[noexec] = "1"
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
+do_package[noexec] = "1"
+do_packagedata[noexec] = "1"
+deltask package_write_ipk
+deltask package_write_deb
+deltask package_write_rpm
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-Support-Atomic-ops-on-clang.patch b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-Support-Atomic-ops-on-clang.patch
new file mode 100644
index 000000000..2fd21c278
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-Support-Atomic-ops-on-clang.patch
@@ -0,0 +1,31 @@
+From aa0a63209af6813d87255ec3ab339f2dbbf27d6d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 6 Mar 2017 13:38:46 -0800
+Subject: [PATCH] Support Atomic ops on clang
+
+clang pretends to be gcc 4.2 which is a lie
+it actually supports a lot more features then
+gcc 4.2, here it depends on gcc 4.7 to enable
+the atomics and fails for clang
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
+
+---
+ src/base/atomicops.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/base/atomicops.h b/src/base/atomicops.h
+index dac95be..390733c 100644
+--- a/src/base/atomicops.h
++++ b/src/base/atomicops.h
+@@ -124,7 +124,7 @@
+ #include "base/atomicops-internals-linuxppc.h"
+ #elif defined(__GNUC__) && defined(__mips__)
+ #include "base/atomicops-internals-mips.h"
+-#elif defined(__GNUC__) && GCC_VERSION >= 40700
++#elif defined(__GNUC__) && GCC_VERSION >= 40700 || defined(__clang__)
+ #include "base/atomicops-internals-gcc.h"
+ #elif defined(__clang__) && CLANG_VERSION >= 30400
+ #include "base/atomicops-internals-gcc.h"
diff --git a/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-Use-ucontext_t-instead-of-struct-ucontext.patch b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-Use-ucontext_t-instead-of-struct-ucontext.patch
new file mode 100644
index 000000000..b3033621b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-Use-ucontext_t-instead-of-struct-ucontext.patch
@@ -0,0 +1,34 @@
+From 230cd84486145c5bb1d69d4c9a544e00adbcc9b5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 1 Jul 2017 13:21:21 -0700
+Subject: [PATCH] Use ucontext_t instead of struct ucontext
+
+Newer glibc has dropped the ucontext tag from exposing
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ src/stacktrace_powerpc-linux-inl.h | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/src/stacktrace_powerpc-linux-inl.h b/src/stacktrace_powerpc-linux-inl.h
+index 3b3843b..a301a46 100644
+--- a/src/stacktrace_powerpc-linux-inl.h
++++ b/src/stacktrace_powerpc-linux-inl.h
+@@ -53,7 +53,6 @@
+ #elif defined(HAVE_UCONTEXT_H)
+ #include <ucontext.h> // for ucontext_t
+ #endif
+-typedef ucontext ucontext_t;
+
+ // PowerPC64 Little Endian follows BE wrt. backchain, condition register,
+ // and LR save area, so no need to adjust the reading struct.
+@@ -202,7 +201,7 @@ static int GET_STACK_TRACE_OR_FRAMES {
+ struct rt_signal_frame_32 {
+ char dummy[64 + 16];
+ siginfo_t info;
+- struct ucontext uc;
++ ucontext_t uc;
+ // We don't care about the rest, since IP value is at 'uc' field.A
+ } *sigframe = reinterpret_cast<rt_signal_frame_32*>(current);
+ result[n] = (void*) sigframe->uc.uc_mcontext.uc_regs->gregs[PT_NIP];
diff --git a/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-disbale-heap-checkers-and-debug-allocator-on-musl.patch b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-disbale-heap-checkers-and-debug-allocator-on-musl.patch
new file mode 100644
index 000000000..ab3ceb964
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-disbale-heap-checkers-and-debug-allocator-on-musl.patch
@@ -0,0 +1,26 @@
+From 06605158852f9364519391fa11070ba5ec4303e9 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(+)
+
+diff --git a/configure.ac b/configure.ac
+index 70b49a3..8154c5c 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -51,6 +51,8 @@ case "$host" in
+ *-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/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-fix-build-with-musl-libc.patch b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-fix-build-with-musl-libc.patch
new file mode 100644
index 000000000..0a72ff27c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-fix-build-with-musl-libc.patch
@@ -0,0 +1,59 @@
+From 034e7da08c3fbffcba8cf8d4e24a71a16558db5a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 16 Jul 2017 15:51:28 -0700
+Subject: [PATCH] fix build with musl libc
+
+Patch from https://github.com/gperftools/gperftools/pull/765/
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ configure.ac | 1 +
+ src/malloc_hook_mmap_linux.h | 8 ++++++--
+ 2 files changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index b42fea3..70b49a3 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -188,6 +188,7 @@ AC_HEADER_STDC
+ AC_CHECK_TYPES([__int64]) # defined in some windows platforms
+ AC_CHECK_TYPES([struct mallinfo],,, [#include <malloc.h>])
+ AC_CHECK_TYPES([Elf32_Versym],,, [#include <elf.h>]) # for vdso_support.h
++AC_CHECK_FUNCS(__sbrk) # for intercepting glibc memory allocator
+ AC_CHECK_FUNCS(sbrk) # for tcmalloc to get memory
+ AC_CHECK_FUNCS(geteuid) # for turning off services when run as root
+ AC_CHECK_FUNCS(fork) # for the pthread_atfork setup
+diff --git a/src/malloc_hook_mmap_linux.h b/src/malloc_hook_mmap_linux.h
+index 79ac4e3..d444635 100755
+--- a/src/malloc_hook_mmap_linux.h
++++ b/src/malloc_hook_mmap_linux.h
+@@ -46,6 +46,10 @@
+ #include <errno.h>
+ #include "base/linux_syscall_support.h"
+
++#ifndef __GLIBC__
++typedef off64_t __off64_t;
++#endif
++
+ // The x86-32 case and the x86-64 case differ:
+ // 32b has a mmap2() syscall, 64b does not.
+ // 64b and 32b have different calling conventions for mmap().
+@@ -168,7 +172,7 @@ extern "C" void* mmap64(void *start, size_t length, int prot, int flags,
+ return result;
+ }
+
+-# if !defined(__USE_FILE_OFFSET64) || !defined(__REDIRECT_NTH)
++# if defined(__GLIBC__) && (!defined(__USE_FILE_OFFSET64) || !defined(__REDIRECT_NTH))
+
+ extern "C" void* mmap(void *start, size_t length, int prot, int flags,
+ int fd, off_t offset) __THROW {
+@@ -206,7 +210,7 @@ extern "C" void* mremap(void* old_addr, size_t old_size, size_t new_size,
+ return result;
+ }
+
+-#ifndef __UCLIBC__
++#if HAVE___SBRK
+ // libc's version:
+ extern "C" void* __sbrk(ptrdiff_t increment);
+
diff --git a/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-include-fcntl.h-for-loff_t-definition.patch b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-include-fcntl.h-for-loff_t-definition.patch
new file mode 100644
index 000000000..4c63e73b3
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/0001-include-fcntl.h-for-loff_t-definition.patch
@@ -0,0 +1,26 @@
+From a16a73f0819d26219ee83cd98eea82786d7c1755 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 16 Jul 2017 19:28:17 -0700
+Subject: [PATCH] include fcntl.h for loff_t definition
+
+Fixes
+linux_syscall_support.h:2641:26: error: 'loff_t' has not been declared
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ src/base/linux_syscall_support.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/base/linux_syscall_support.h b/src/base/linux_syscall_support.h
+index 85347a2..70431ca 100644
+--- a/src/base/linux_syscall_support.h
++++ b/src/base/linux_syscall_support.h
+@@ -162,6 +162,7 @@ extern "C" {
+ #include <unistd.h>
+ #include <linux/unistd.h>
+ #include <endian.h>
++#include <fcntl.h>
+
+ #ifdef __mips__
+ /* Include definitions of the ABI currently in use. */
diff --git a/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/disable_libunwind_aarch64.patch b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/disable_libunwind_aarch64.patch
new file mode 100644
index 000000000..c3c578418
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/disable_libunwind_aarch64.patch
@@ -0,0 +1,30 @@
+From 564f800e3e24647c095f7a321bf3ebdccfbf762d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 2 Sep 2017 12:02:04 -0700
+Subject: [PATCH] Disable libunwind on aarch64
+
+Fixes hangs when using libtcmalloc.so
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ configure.ac | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index 8154c5c..063b260 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -69,6 +69,11 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM(, [return __PPC64__])],
+ [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/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/sgidef.patch b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/sgidef.patch
new file mode 100644
index 000000000..10274a6de
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools/sgidef.patch
@@ -0,0 +1,25 @@
+From 259b420444c52463795b4b582a2ab7511149eea7 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 16 Oct 2017 21:26:40 -0700
+Subject: [PATCH] sgidef.h does not exist on musl and its not needed to compile
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+
+---
+ src/base/linux_syscall_support.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/base/linux_syscall_support.h b/src/base/linux_syscall_support.h
+index 70431ca..b23ca59 100644
+--- a/src/base/linux_syscall_support.h
++++ b/src/base/linux_syscall_support.h
+@@ -164,7 +164,7 @@ extern "C" {
+ #include <endian.h>
+ #include <fcntl.h>
+
+-#ifdef __mips__
++#if defined(__mips__) && defined(__glibc__)
+ /* Include definitions of the ABI currently in use. */
+ #include <sgidefs.h>
+ #endif
diff --git a/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.6.1.bb b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.6.1.bb
new file mode 100644
index 000000000..ecac6c5cc
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/gpm/gpm/0001-Use-sigemptyset-API-instead-of-__sigemptyset.patch b/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/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/meta-openembedded/meta-oe/recipes-support/gpm/gpm/gpm.service.in b/meta-openembedded/meta-oe/recipes-support/gpm/gpm/gpm.service.in
new file mode 100644
index 000000000..ee6c040fa
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/gpm/gpm/gpm.service.in
@@ -0,0 +1,9 @@
+[Unit]
+Description=Virtual console mouse server
+
+[Service]
+Type=forking
+ExecStart=@bindir@/gpm -m /dev/input/mice -t imps2
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-openembedded/meta-oe/recipes-support/gpm/gpm/init b/meta-openembedded/meta-oe/recipes-support/gpm/gpm/init
new file mode 100644
index 000000000..2dcf9ab04
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/gpm/gpm/init
@@ -0,0 +1,32 @@
+#! /bin/sh
+
+# Grab the common functions
+#. /etc/init.d/functions
+
+# FIXME:
+# Add a configuration file for GPM here
+
+test -x /usr/sbin/gpm || exit 0
+
+case "$1" in
+ start)
+ if [ ! -p /dev/gpmdata ]; then
+ mkfifo /dev/gpmdata
+ fi
+
+ echo "Starting GPM:"
+ start-stop-daemon -S -x /usr/sbin/gpm -- -R -m /dev/psaux -t ps2
+ ;;
+ stop)
+ echo "Stopping GPM:"
+ start-stop-daemon -K -x /usr/sbin/gpm
+ ;;
+ restart|force-reload)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ usage /etc/init.d/gpm
+esac
+
+exit 0
diff --git a/meta-openembedded/meta-oe/recipes-support/gpm/gpm/no-docs.patch b/meta-openembedded/meta-oe/recipes-support/gpm/gpm/no-docs.patch
new file mode 100644
index 000000000..3faef84ee
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/gpm/gpm/no-docs.patch
@@ -0,0 +1,18 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+Index: gpm-1.99.7/Makefile.in
+===================================================================
+--- gpm-1.99.7.orig/Makefile.in 2008-07-24 03:36:35.000000000 -0700
++++ gpm-1.99.7/Makefile.in 2010-06-22 18:28:45.269507001 -0700
+@@ -19,7 +19,7 @@
+ # user-overridable flags, but it's also all the implicit rule looks at.
+ # missing ?
+
+-SUBDIRS = src doc contrib
++SUBDIRS = src
+
+
+ ### simple, but effective rules
diff --git a/meta-openembedded/meta-oe/recipes-support/gpm/gpm/processcreds.patch b/meta-openembedded/meta-oe/recipes-support/gpm/gpm/processcreds.patch
new file mode 100644
index 000000000..d647eca0a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/gpm/gpm/processcreds.patch
@@ -0,0 +1,12 @@
+Index: gpm-1.99.7/src/daemon/processconn.c
+===================================================================
+--- gpm-1.99.7.orig/src/daemon/processconn.c 2010-09-29 17:36:18.571782951 +0400
++++ gpm-1.99.7/src/daemon/processconn.c 2010-09-29 17:42:44.659991758 +0400
+@@ -20,6 +20,7 @@
+ *
+ ********/
+
++#define _GNU_SOURCE
+ #include <sys/socket.h> /* accept */
+ #include <stdlib.h> /* malloc */
+ #include <unistd.h> /* close */
diff --git a/meta-openembedded/meta-oe/recipes-support/gpm/gpm_git.bb b/meta-openembedded/meta-oe/recipes-support/gpm/gpm_git.bb
new file mode 100644
index 000000000..51c4dd639
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/gpm/gpm_git.bb
@@ -0,0 +1,47 @@
+DESCRIPTION = "GPM (General Purpose Mouse) is a mouse server \
+for the console and xterm, with sample clients included \
+(emacs, etc)."
+SECTION = "console/utils"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=18810669f13b87348459e611d31ab760"
+
+PV = "1.99.7+git${SRCREV}"
+PR = "r2"
+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://0001-Use-sigemptyset-API-instead-of-__sigemptyset.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+inherit autotools-brokensep update-rc.d systemd
+
+INITSCRIPT_NAME = "gpm"
+INITSCRIPT_PARAMS = "defaults"
+
+do_configure_prepend() {
+ (cd ${S};./autogen.sh;cd -)
+}
+
+do_install_append () {
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}${systemd_system_unitdir}
+ sed 's:@bindir@:${bindir}:' < ${WORKDIR}/gpm.service.in >${D}${systemd_system_unitdir}/gpm.service
+ fi
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
+ install -D -m 0755 ${WORKDIR}/init ${D}/${sysconfdir}/init.d/gpm
+ fi
+ install -D -m 0644 ${S}/src/headers/gpm.h ${D}${includedir}/gpm.h
+ ln -s libgpm.so.2 ${D}${libdir}/libgpm.so
+}
+
+SYSTEMD_SERVICE_${PN} = "gpm.service"
+
+FILES_${PN} += "${datadir}/emacs"
diff --git a/meta-openembedded/meta-oe/recipes-support/gradm/gradm/0001-Makefile-Append-instead-of-overriding-LDFLAGS.patch b/meta-openembedded/meta-oe/recipes-support/gradm/gradm/0001-Makefile-Append-instead-of-overriding-LDFLAGS.patch
new file mode 100644
index 000000000..09a60127a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/gradm/gradm/0001-Makefile-Append-instead-of-overriding-LDFLAGS.patch
@@ -0,0 +1,26 @@
+From d67e93ada37d7237983fd10894c18b92f4243d50 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 18 Mar 2017 08:51:45 -0700
+Subject: [PATCH] Makefile: Append instead of overriding LDFLAGS
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index 28557ff..deed94c 100644
+--- a/Makefile
++++ b/Makefile
+@@ -29,7 +29,7 @@ OPT_FLAGS := -O2
+ # for older versions of grsecurity, comment the above line and uncomment the below:
+ #OPT_FLAGS := $(shell if [ "`uname -m`" != "sparc64" ] && [ "`uname -m`" != "x86_64" ]; then echo "-O2" ; else echo "-O2 -m64" ; fi)
+ CFLAGS := $(OPT_FLAGS) -fPIE -Wcast-qual -DGRSEC_DIR=\"$(GRSEC_DIR)\" -D_LARGEFILE64_SOURCE
+-LDFLAGS= -pie
++LDFLAGS+= -pie
+ INSTALL = /usr/bin/install -c
+
+ # FHS
+--
+2.12.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/gradm/gradm/0001-Makefile-remove-strip.patch b/meta-openembedded/meta-oe/recipes-support/gradm/gradm/0001-Makefile-remove-strip.patch
new file mode 100644
index 000000000..f0c697c7b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/gradm/gradm/0001-Makefile-remove-strip.patch
@@ -0,0 +1,61 @@
+From fbf7b9e5a8e2978acd5b0a7a8311912a080ee9b9 Mon Sep 17 00:00:00 2001
+From: Qian Lei <qianl.fnst@cn.fujitsu.com>
+Date: Thu, 18 Dec 2014 11:09:01 +0800
+Subject: [PATCH] Makefile: remove strip
+
+Avoid QA error by removing strip from Makefile
+
+[...]
+ERROR: QA Issue: File '/sbin/gradm' from gradm was already stripped,
+this will prevent future debugging! [already-stripped]
+ERROR: QA Issue: File '/sbin/grlearn' from gradm was already stripped,
+this will prevent future debugging! [already-stripped]
+[...]
+
+Upstream-Status: Pending
+
+Signed-off-by: Qian Lei <qianl.fnst@cn.fujitsu.com>
+
+---
+ Makefile | 7 ++-----
+ 1 file changed, 2 insertions(+), 5 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 6c33fee..3570a4e 100644
+--- a/Makefile
++++ b/Makefile
+@@ -24,7 +24,6 @@ MKNOD=/bin/mknod
+ #CC=/usr/bin/diet /usr/bin/gcc
+ CC=/usr/bin/gcc
+ FIND=/usr/bin/find
+-STRIP=/usr/bin/strip
+ LIBS := $(shell if [ "`uname -m`" != "sparc64" -a "`uname -m`" != "x86_64" ]; then echo "-lfl" ; else echo "" ; fi)
+ OPT_FLAGS := -O2
+ # for older versions of grsecurity, comment the above line and uncomment the below:
+@@ -140,15 +139,12 @@ install: $(GRADM_BIN) gradm.8 policy grlearn
+ @mkdir -p $(DESTDIR)/sbin
+ @echo "Installing gradm..."
+ @$(INSTALL) -m 0755 $(GRADM_BIN) $(DESTDIR)/sbin
+- @$(STRIP) $(DESTDIR)/sbin/$(GRADM_BIN)
+ @if [ -f $(GRADM_PAM) ] ; then \
+ echo "Installing gradm_pam..." ; \
+ $(INSTALL) -m 4755 $(GRADM_PAM) $(DESTDIR)/sbin ; \
+- $(STRIP) $(DESTDIR)/sbin/$(GRADM_PAM) ; \
+ fi
+ @echo "Installing grlearn..."
+ @$(INSTALL) -m 0700 grlearn $(DESTDIR)/sbin
+- @$(STRIP) $(DESTDIR)/sbin/grlearn
+ @mkdir -p -m 700 $(DESTDIR)$(GRSEC_DIR)
+ @if [ ! -f $(DESTDIR)$(GRSEC_DIR)/policy ] ; then \
+ if [ -f $(DESTDIR)$(GRSEC_DIR)/acl ] ; then \
+@@ -168,6 +164,7 @@ install: $(GRADM_BIN) gradm.8 policy grlearn
+ $(MKNOD) -m 0622 $(DESTDIR)/dev/grsec c 1 13 ; \
+ fi \
+ fi
++ @mkdir -p $(DESTDIR)/etc/udev/rules.d
+ @if [ -d $(DESTDIR)/etc/udev/rules.d ] ; then \
+ echo "ACTION!=\"add|change\", GOTO=\"permissions_end\"" > $(DESTDIR)/etc/udev/rules.d/80-grsec.rules ; \
+ echo "KERNEL==\"grsec\", MODE=\"0622\"" >> $(DESTDIR)/etc/udev/rules.d/80-grsec.rules ; \
+--
+1.8.3.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/gradm/gradm_3.1.bb b/meta-openembedded/meta-oe/recipes-support/gradm/gradm_3.1.bb
new file mode 100644
index 000000000..1a4261a9e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/gradm/gradm_3.1.bb
@@ -0,0 +1,52 @@
+SUMMARY = "Administration program for the grsecurity RBAC syste"
+DESCRIPTION = "\
+gradm is the userspace RBAC parsing and authentication program for \
+grsecurity grsecurity aims to be a complete security system. gradm \
+performs several tasks for the RBAC system including authenticated \
+via a password to the kernel and parsing rules to be passed to the \
+kernel"
+HOMEPAGE = "http://grsecurity.net/index.php"
+SECTION = "admin"
+LICENSE = "GPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4641e94ec96f98fabc56ff9cc48be14b"
+DEPENDS = "flex-native bison-native ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
+
+SRC_URI = "http://grsecurity.net/stable/${BP}-201507191652.tar.gz \
+ file://0001-Makefile-remove-strip.patch \
+ file://0001-Makefile-Append-instead-of-overriding-LDFLAGS.patch \
+ "
+SRC_URI[md5sum] = "ecec72d3a9b6d84c00eda97957b707b6"
+SRC_URI[sha256sum] = "2f14c357bf0459e502a4e108b76c3f6240aa484762d07bb1687796b9b9297a50"
+
+S = "${WORKDIR}/gradm"
+
+inherit autotools-brokensep
+
+do_compile() {
+ oe_runmake 'CC=${CC}' \
+ 'OPT_FLAGS=${CFLAGS}' \
+ 'LLEX=${STAGING_BINDIR_NATIVE}/lex' \
+ 'FLEX=${STAGING_BINDIR_NATIVE}/flex' \
+ 'BISON=${STAGING_BINDIR_NATIVE}/bison' \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'pam', ' ', 'nopam', d)}
+}
+
+do_install() {
+ oe_runmake 'CC=${CC}' \
+ 'DESTDIR=${D}' \
+ 'LLEX=${STAGING_BINDIR_NATIVE}/lex' \
+ 'FLEX=${STAGING_BINDIR_NATIVE}/flex' \
+ 'BISON=${STAGING_BINDIR_NATIVE}/bison' \
+ install
+
+ # The device nodes are generated by postinstall or udev
+ rm -rf ${D}/dev
+}
+
+pkg_postinst_${PN}() {
+ # make sure running on the target
+ if [ x"$D" != "x" ]; then
+ exit 1
+ fi
+ /bin/mknod -m 0622 /dev/grsec c 1 13
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/gsl/gsl.inc b/meta-openembedded/meta-oe/recipes-support/gsl/gsl.inc
new file mode 100644
index 000000000..40613930b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/gsl/gsl.inc
@@ -0,0 +1,9 @@
+DESCRIPTION = "GNU Scientific Library"
+HOMEPAGE = "http://www.gnu.org/software/gsl/"
+SECTION = "libs"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+inherit autotools pkgconfig binconfig
+
+LEAD_SONAME = "libgsl.so"
diff --git a/meta-openembedded/meta-oe/recipes-support/gsl/gsl_1.15.bb b/meta-openembedded/meta-oe/recipes-support/gsl/gsl_1.15.bb
new file mode 100644
index 000000000..620e7804c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/gsl/gsl_1.15.bb
@@ -0,0 +1,7 @@
+include gsl.inc
+
+SRC_URI = "${GNU_MIRROR}/gsl/gsl-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "494ffefd90eef4ada678c306bab4030b"
+SRC_URI[sha256sum] = "85b907e57902e2b7606ef3aef960302ffdd13bd9dc5b8fcbfa75e4f0bf340ea3"
+
diff --git a/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap/0001-Fix-out-of-tree-builds.patch b/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/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/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap/0001-stdgsoap2-Fix-build-with-musl.patch b/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/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/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.51.bb b/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.51.bb
new file mode 100644
index 000000000..887584461
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.51.bb
@@ -0,0 +1,44 @@
+DESCRIPTION = "The gSOAP toolkit provides a unique SOAP-to-C/C++ language binding \
+for the development of SOAP Web Services and clients."
+SECTION = "devel"
+LICENSE = "GPL-2.0-with-OpenSSL-exception"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4f40a941379143186f9602242c3fb729 \
+ file://GPLv2_license.txt;md5=a33672dbe491b6517750a0389063508b"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}2/${BPN}_${PV}.zip \
+ file://0001-Fix-out-of-tree-builds.patch \
+ file://0001-stdgsoap2-Fix-build-with-musl.patch \
+ "
+SRC_URI[md5sum] = "212951d6e1435bb51fa4320f458809ea"
+SRC_URI[sha256sum] = "3e7bb24a9e492f5cb86daca34054c9787152f1d7b70add36b789d03816d5ffa1"
+
+inherit autotools
+
+BBCLASSEXTEND = "native"
+
+S = "${WORKDIR}/${BPN}-2.8"
+
+PARALLEL_MAKE = ""
+
+EXTRA_OEMAKE_class-target = "SOAP=${STAGING_BINDIR_NATIVE}/soapcpp2"
+
+DEPENDS = "openssl zlib flex bison"
+DEPENDS_append_class-target = " gsoap-native"
+
+do_install_append() {
+ install -d ${D}${libdir}
+ for lib in libgsoapssl libgsoapssl++ libgsoap libgsoapck++ libgsoap++ libgsoapck
+ do
+ oe_libinstall -C gsoap $lib ${D}${libdir}
+ done
+}
+
+do_install_class-native() {
+ oe_runmake DESTDIR=${D} BINDIR=${D}${bindir} install
+}
+
+FILES_${PN} = "${bindir}/wsdl2h ${bindir}/soapcpp2"
+FILES_${PN} += "${datadir}"
+FILES_${PN}-staticdev = "${libdir}"
+FILES_${PN}-dev = "${includedir}"
+RRECOMMENDS_${PN}-dev = "${PN}-staticdev"
diff --git a/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/0001-backtrace-Replace-struct-ucontext-with-ucontext_t.patch b/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/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/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp-0.3-beta15-autodetect-717479.patch b/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp-0.3-beta15-autodetect-717479.patch
new file mode 100644
index 000000000..1ec6a61b3
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp-0.3-beta15-autodetect-717479.patch
@@ -0,0 +1,92 @@
+Auto-detect disks if none specified
+
+Refer to:
+https://bugzilla.redhat.com/show_bug.cgi?id=717479
+
+Index: hddtemp-0.3-beta15/doc/hddtemp.8
+===================================================================
+--- hddtemp-0.3-beta15.orig/doc/hddtemp.8
++++ hddtemp-0.3-beta15/doc/hddtemp.8
+@@ -19,7 +19,7 @@
+ hddtemp \- Utility to monitor hard drive temperature
+ .SH SYNOPSIS
+ .B hddtemp
+-.RI [ options ] " [type:]disk" ...
++.RI [ options ] " [[type:]disk]" ...
+ .SH "DESCRIPTION"
+ .PP
+ .B hddtemp
+@@ -35,7 +35,8 @@ You can specify one or more device drive
+ with a
+ .B type
+ like PATA, SATA or SCSI to force hddtemp too use one of these type
+-(because detection can fail).
++(because detection can fail). If no paths are specified, autodetection of
++installed drives is attempted.
+
+
+ .SH "OPTIONS"
+Index: hddtemp-0.3-beta15/src/hddtemp.c
+===================================================================
+--- hddtemp-0.3-beta15.orig/src/hddtemp.c
++++ hddtemp-0.3-beta15/src/hddtemp.c
+@@ -54,6 +54,7 @@
+ #include <linux/hdreg.h>
+ #include <ctype.h>
+ #include <assert.h>
++#include <glob.h>
+
+ // Application specific includes
+ #include "ata.h"
+@@ -255,6 +256,7 @@ int main(int argc, char* argv[]) {
+ int ret = 0;
+ int show_db;
+ struct disk * ldisks;
++ glob_t diskglob;
+
+ backtrace_sigsegv();
+ backtrace_sigill();
+@@ -423,11 +425,6 @@ int main(int argc, char* argv[]) {
+ exit(0);
+ }
+
+- if(argc - optind <= 0) {
+- fprintf(stderr, _("Too few arguments: you must specify one drive, at least.\n"));
+- exit(1);
+- }
+-
+ if(debug) {
+ /* argc = optind + 1;*/
+ quiet = 1;
+@@ -438,6 +435,23 @@ int main(int argc, char* argv[]) {
+ exit(1);
+ }
+
++ memset(&diskglob, 0, sizeof(glob_t));
++ if(argc - optind <= 0) {
++ if(glob("/dev/[hs]d[a-z]", 0, NULL, &diskglob) == 0) {
++ argc = diskglob.gl_pathc;
++ argv = diskglob.gl_pathv;
++ optind = 0;
++ } else {
++ argc = 0;
++ }
++ }
++
++ if(argc - optind <= 0) {
++ globfree(&diskglob);
++ fprintf(stderr, _("Too few arguments: you must specify one drive, at least.\n"));
++ exit(1);
++ }
++
+ init_bus_types();
+
+ /* collect disks informations */
+@@ -531,6 +545,7 @@ int main(int argc, char* argv[]) {
+ else {
+ do_direct_mode(ldisks);
+ }
++ globfree(&diskglob);
+
+ return ret;
+ }
diff --git a/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp-no-nls-support.patch b/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp-no-nls-support.patch
new file mode 100644
index 000000000..8f6b9c3c4
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp-no-nls-support.patch
@@ -0,0 +1,66 @@
+diff -ru hddtemp-0.3-beta15.orig/configure.in hddtemp-0.3-beta15/configure.in
+--- hddtemp-0.3-beta15.orig/configure.in 2005-10-17 20:14:19.000000000 +0100
++++ hddtemp-0.3-beta15/configure.in 2008-06-27 00:00:46.000000000 +0100
+@@ -17,6 +17,7 @@
+ # append the host alias to the tools for cross compiling
+ AC_HEADER_STDC
+ AC_CHECK_HEADERS(fcntl.h)
++AC_CHECK_HEADERS(iconv.h)
+ AC_CHECK_HEADERS(netinet/in.h)
+ AC_CHECK_TYPE(in_addr_t, ,[AC_DEFINE_UNQUOTED([in_addr_t], [uint32_t], [Define to 'uint32_t' if <netinet/in.h> does not define.])], [#include <netinet/in.h>])
+
+@@ -29,6 +30,8 @@
+ AM_GNU_GETTEXT
+ #AM_GNU_GETTEXT([external])
+
++AC_CHECK_FUNCS([bindtextdomain textdomain iconv])
++
+ dnl reasonable guesses for where stuff is installed
+ dnl if we don't do that now, the config.h will use ${prefix}
+ dnl for DEFAULT_DATABASE_PATH.
+diff -ru hddtemp-0.3-beta15.orig/src/hddtemp.c hddtemp-0.3-beta15/src/hddtemp.c
+--- hddtemp-0.3-beta15.orig/src/hddtemp.c 2006-04-19 03:37:35.000000000 +0100
++++ hddtemp-0.3-beta15/src/hddtemp.c 2008-06-26 23:59:40.000000000 +0100
+@@ -276,8 +276,12 @@
+ backtrace_sigbus();
+
+ setlocale (LC_ALL, "");
++#ifdef HAVE_BINDTEXTDOMAIN
+ bindtextdomain (PACKAGE, LOCALEDIR);
++#endif
++#ifdef HAVE_TEXTDOMAIN
+ textdomain (PACKAGE);
++#endif
+
+ show_db = debug = numeric = quiet = wakeup = af_hint = syslog_interval = 0;
+ unit = DEFAULT;
+diff -ru hddtemp-0.3-beta15.orig/src/utf8.c hddtemp-0.3-beta15/src/utf8.c
+--- hddtemp-0.3-beta15.orig/src/utf8.c 2006-04-19 03:37:02.000000000 +0100
++++ hddtemp-0.3-beta15/src/utf8.c 2008-06-27 00:02:15.000000000 +0100
+@@ -23,7 +23,9 @@
+
+ // Standard includes
+ #include <stdlib.h>
++#ifdef HAVE_ICONV_H
+ #include <iconv.h>
++#endif
+ #include <langinfo.h>
+ #include <locale.h>
+ #include <string.h>
+@@ -34,6 +36,7 @@
+
+ static char *iconv_from_utf8_to_locale(const char *string, const char* fallback_string)
+ {
++#ifdef HAVE_ICONV
+ const size_t buffer_inc = 80; // Increment buffer size in 80 bytes step
+ const char *charset;
+ iconv_t cd;
+@@ -93,6 +96,8 @@
+ if (dest_buffer != NULL)
+ free(dest_buffer); // free buffer
+ free(src_buffer); // free string
++#endif
++
+ return strdup(fallback_string); // and return fallback string
+ }
+
diff --git a/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp.db b/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp.db
new file mode 100644
index 000000000..7b0cbd93e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp.db
@@ -0,0 +1,531 @@
+#
+# Insert a regular expression for support of the model or the serie of your hard drive.
+# If you don't know what to put in the second field, put the number
+# that appears most often for your brand :o)
+# A value of zero meens that we know that the drive doesn't have
+# a temperature sensor (you can set the unit to C or F).
+#
+############################################################################
+# The following list was found at (http://www.almico.com/forumharddisks.php)
+# If your drive is in the list send me a mail.
+#
+# Manufacturer Model Size Notes
+# FUJITSU FUJITSU MPF3102AH 10.0GB
+# FUJITSU FUJITSU MPG3204AH E 20.0GB
+# FUJITSU FUJITSU MPG3307AT 30.0GB
+# FUJITSU FUJITSU MPG3409AH 40.0GB
+# FUJITSU FUJITSU MPG3409AH EF 40.0GB
+# HITACHI HITACHI_DK23CA-10 9.8GB
+# HITACHI HITACHI_DK23CA-15 14.7GB
+# SAMSUNG SAMSUNG SV3012H 29.4GB
+# SEAGATE ST310210A 10.0GB
+# SEAGATE ST310211A 9.8GB
+# SEAGATE ST310215A 10.0GB
+# SEAGATE ST315320A 14.9GB
+# SEAGATE ST320410A 19.6GB
+# SEAGATE ST320413A 19.6GB
+# SEAGATE ST320420A 19.9GB
+# SEAGATE ST330610A 29.3GB
+# SEAGATE ST330620A 29.3GB
+# SEAGATE ST330621A 29.3GB
+# SEAGATE ST330630A 29.9GB
+# SEAGATE ST340016A 39.1GB
+# SEAGATE ST340810ACE 39.1GB
+# SEAGATE ST380020ACE 78.2GB
+# WESTERN DIGITAL WDC AC210200D 10.0GB
+# WESTERN DIGITAL WDC AC29100D 8.9GB
+# WESTERN DIGITAL WDC AC420400D 19.9GB
+# WESTERN DIGITAL WDC WD102AA 10.0GB
+#
+#################################################
+
+########################################
+############# ExcelStor drives
+########################################
+# "ExcelStor Technology CT215" ??? ? "ExcelStor CT215"
+"ExcelStor Technology J3.0" 194 C "ExcelStor Technology 3xy (xy GB)"
+"ExcelStor Technology J6.0" 194 C "ExcelStor Technology 6xy (xy GB)"
+"ExcelStor Technology J680" 194 C "ExcelStor Technology J680 (80 GB)"
+"ExcelStor Technology J860" 194 C "ExcelStor Technology J860 (60 GB)"
+"ExcelStor Technology J880" 194 C "ExcelStor Technology J880 (80 GB)"
+
+
+
+########################################
+############# Fujitsu drives
+########################################
+"FUJITSU MHM2100AT" 0 C "Fujitsu MHM2100AT"
+
+"FUJITSU MHN2150AT" 194 C "Fujitsu MHN2150AT"
+"FUJITSU MHN2200AT" 194 C "Fujitsu MHN2200AT"
+"FUJITSU MHN2300AT" 194 C "Fujitsu MHN2300AT"
+
+"FUJITSU MHR2020AT" 194 C "Fujitsu MHR2020AT"
+"FUJITSU MHR2030AT" 194 C "Fujitsu MHR2030AT"
+
+"FUJITSU MHS2030AT" 194 C "Fujitsu MHS2030AT"
+"FUJITSU MHS2040AT" 194 C "Fujitsu MHS2040AT"
+"FUJITSU MHS2060AT" 194 C "Fujitsu MHS2060AT (Apple PowerBook G4)"
+
+"FUJITSU MHT2030AC" 194 C "Fujitsu Mobile 30GB, 2MB, 4200RPM (automotive)"
+
+"FUJITSU MHT2030AT" 194 C "Fujitsu MHT2030AT"
+"FUJITSU MHT2040AH" 194 C "Fujitsu MHT2040AH"
+"FUJITSU MHT2040AT" 194 C "Fujitsu MHT2040AT"
+"FUJITSU MHT2060AH" 194 C "Fujitsu MHT2060AH"
+"FUJITSU MHT2060AT" 194 C "Fujitsu MHT2060AT"
+"FUJITSU MHT2080AH" 194 C "Fujitsu MHT2080AH"
+
+"FUJITSU MHU2100AT" 194 C "Fujitsu MHU2100AT 100GB, 8MB (4200RPM)"
+
+"FUJITSU MHV2100AH" 194 C "FUJITSU MHV2100AH"
+"FUJITSU MHV2100AT" 194 C "FUJITSU MHV2100AT"
+"FUJITSU MHV2100BH" 194 C "FUJITSU MHV2100BH"
+"FUJITSU MHV2060AH" 194 C "FUJITSU MHV2060AH"
+"FUJITSU MHV2080[AB]H" 194 C "FUJITSU MHV2080AH"
+
+"FUJITSU MPF3204AH" 194 C "Fujitsu MPF3204AH"
+
+"FUJITSU MPG3204AT.*" 194 C "Fujitsu MPG3204AT"
+"FUJITSU MPG3307AT" 194 C "Fujitsu MPG3307AT"
+"FUJITSU MPG3409AT.*" 194 C "Fujitsu MPG3409AT E"
+"FUJITSU MPG3409AH.*" 194 C "Fujitsu MPG3409AH E"
+"FUJITSU MPG3204AH" 194 C "Fujitsu MPG3204AH"
+"FUJITSU MPG3102AT E" 194 C "FUJITSU MPG3102AT E"
+
+
+
+########################################
+############# Hitachi drives
+########################################
+"HITACHI_DK13FA-40B" 194 C "Hitachi DK13FA-40B"
+"HITACHI_DK228A-65" 0 C "Hitachi DK228A-65"
+"HITACHI_DK23CA-(15|20|30|30B|75)" 194 C "Hitachi DK23CA series"
+"HITACHI_DK23DA-[234]0" 194 C "Hitachi DK23DA series"
+"HITACHI_DK23EA-[2346]0" 194 C "Hitachi DK23EA series"
+"HITACHI_DK23EB-40" 194 C "Hitachi DK23EB series"
+"HITACHI_DK23FA-[468]0" 194 C "Hitachi DK23FA series"
+"HITACHI_DK23FB-[46]0" 194 C "Hitachi DK23FB series"
+
+"HDS722516VLAT[28]0" 194 C "Hitachi Deskstar 7K250 160GB 2/8MB cache"
+"HDS722525VLAT80" 194 C "Hitachi Deskstar 7K250 200/250GB, 7200RPM, 8MB, Parallel-ATA"
+"HDS722512VLAT80" 194 C "Hitachi Deskstar 7K250 80GB"
+"HDS722540VLAT20" 194 C "Hitachi Deskstar 7K250, 40GB, 7200RPM, 2MB cache"
+"HDS722580VLAT20" 194 C "Deskstar 7K250 60GB"
+"HDS724040KLSA80" 194 C "Hitachi Deskstar 7K250 400GB, 7200RPM, 8MB, Serial-ATA"
+"HDS728080PLAT20" 194 C "Hitachi Deskstar 7K80 80GB"
+
+"HDS722525VLSA80" 194 C "Hitachi Deskstar 7K250 250GB, 7200RPM, 8MB, SATA"
+"HDS722516VLSA80" 194 C "Hitachi Deskstar 7K250 160GB 8Mo cache SATA"
+"HDS722580VLSA80" 194 C "Hitachi Deskstar 7K250 80GB SATA"
+"HDS728040PLAT20" 194 C "Hitachi Deskstar 7K80 40GB"
+
+"HDS724040KLAT80" 194 C "Hitachi Deskstar 7K400 400GB 8Mo cache PATA"
+
+"HDT7225(16|25)DLAT80" 194 C "Hitachi Deskstar T7K250 series, 7200RPM, 8MB, PATA"
+"HDT722516DLA380 V43O" 194 C "Hitachi T7K250 SATA"
+"HDT722525DLA380" 194 C "Hitachi Deskstar T7K250 250GB 8Mo cache SATAII"
+"HDT725050VLA360" 194 C "Hitachi Deskstar T7K500 500GB, 7200RPM, 16MB, SATA II"
+
+"HTE721010G9AT00" 194 C "Hitachi Travelstar 100GB (7200RPM)"
+"HTE726060M9AT00" 194 C "Hitachi Travelstar 60GB (7200RPM)"
+"HTS424030M9AT00" 194 C "Hitachi Travelstar 30GB (4200RPM)"
+"HTS424040M9AT00" 194 C "Hitachi Travelstar 4K40 40GB 2MB cache (4200RPM)"
+"HTS541010G9SA00" 194 C "Hitachi Travelstar 100GB SATA"
+"HTS541040G9AT00" 194 C "Hitachi Travelstar 40GB (5400RPM)"
+"HTS541080G9AT00" 194 C "Hitachi Travelstar 80GB (5400RPM)"
+"HTS548020M9AT00" 194 C "Hitachi Travelstar 20GB (5400RPM)"
+"HTS548030M9AT00" 194 C "Hitachi Travelstar 30GB (5400RPM)"
+"HTS548040M9AT00" 194 C "Hitachi Travelstar 40GB (5400RPM)"
+"HTS548060M9AT00" 194 C "Hitachi Travelstar 60GB (5400RPM)"
+"HTS548080M9AT00" 194 C "Hitachi Travelstar 80GB (5400RPM)"
+"HTS721080G9AT00" 194 C "Hitachi Travelstar 7K100 80GB (7200RPM)"
+"HTS726060M9AT00" 194 C "Hitachi Travelstar 60GB"
+
+
+########################################
+############# IBM drives
+########################################
+
+# DJSA serie is using F0h command to report temperature and also have
+# SMART capabilties but it was reported not to work.
+# "DJSA-2(30|32|10|20|05)" 0 C "IBM Travelstar 20GN, 32GH, 30GT series"
+
+"IBM-DARA-212000" 0 C "IBM Travelstar 12GN"
+"IBM-DTTA-35*" 0 C "IBM Deskstar 16GP serie"
+
+# according to specifications they do not seems to have sensor
+# but I prefer waiting for a report
+#"IBM-DTTA-37*" 0 C "IBM Deskstar 14GXP serie"
+
+"IBM-DJNA-35.*" 231 C "IBM Deskstar 25 GP serie"
+"IBM-DJNA-37.*" 231 C "IBM Deskstar 22 GXP serie"
+"IBM-DHEA-(34330|36480)" 0 C "IBM Deskstar 5 serie"
+"IBM-DHEA-(34331|36481|38451)" 0 C "IBM Deskstar 8 serie"
+"IBM-DPTA-37.*" 231 C "IBM Deskstar 34GXP serie"
+"IBM-DPTA-35.*" 231 C "IBM Deskstar 37GP serie"
+"IBM-DTLA-30[57]0[123467][05]" 194 C "IBM Deskstar 40GV & 75GXP series"
+"IC25N0[1234]0ATCS04-0" 194 C "IBM Travelstar 40GN serie"
+"IC25N0[24]0ATC[SX]05-0" 194 C "IBM Travelstar 40GNX serie"
+"IC25N0(10|15|20|30)ATDA04-0" 194 C "IBM Travelstar 30GN serie"
+"IC25N0[23468]0ATMR04*" 194 C "Hitachi Travelstar 80GN"
+"IC25T048ATDA05-0" 194 C "IBM Travelstar 48GH serie"
+"IC25T060ATC[SX]05-0" 194 C "IBM Travelstar 60GH serie"
+"IC35L0[12346]0AVER07" 194 C "IBM Deskstar 60GXP serie"
+"IC35L[01][02468]0AVV[AN]07*" 194 C "IBM Deskstar 120GXP serie"
+"IC35L[01][23689]0AVV207*" 194 C "IBM Deskstar 180GXP serie"
+
+########################################
+############# Maxtor drives
+########################################
+#"Maxtor 2B0[012][04568]H1" ??? C "Maxtor Fireball 541DX"
+"Maxtor 2F0[234]0[LJ]0" 194 C "Maxtor Fireball 3"
+# which one must I trust ?
+#"Maxtor 4D040H2" 9 C "Maxtor DiamondMax D540X-4D"
+#"Maxtor 4D040H2" 0 C "Maxtor 4D040H2"
+#"Maxtor 4D080H4" 12 C "Maxtor DiamondMax D540X-4D"
+#"Maxtor 4D060H3" 12 C "Maxtor DiamondMax D540X-4D"
+#"Maxtor 4D080H4" 9 C "Maxtor DiamondMax D540X-4D"
+"MAXTOR 4K0[468]0H[234]" 194 C "Maxtor DiamondMax D540X serie"
+"MAXTOR 4K020H1" 194 C "Maxtor 4K020H1"
+"Maxtor 4A300J0" 194 C "Maxtor MaxLine II 300GB 5400RPM"
+"Maxtor 4[RA](25|16|12|08|06)0[LJ]0" 194 C "Maxtor DiamondMax 16"
+"Maxtor 5(1024|1369|2049|2732|3073|4098)U(2|3|4|6|8)" 0 C "Maxtor DiamondMax Plus 40"
+"Maxtor 5A250J0" 194 C "Maxtor MaXline II 250GB 5400RPM"
+"Maxtor 5A300J0" 194 C "Maxtor 5A300J0"
+"Maxtor 5T0[24]0H[24]" 0 C "Maxtor DiamondMax Plus 60"
+"Maxtor 6E0[234]0L0" 194 C "Maxtor DiamondMax Plus 8"
+"MAXTOR 6L0[2468]0[LJ][1234]" 194 C "Maxtor DiamondMax Plus D740X family"
+"Maxtor 6V320F0" 194 C "Maxtor Diamond Max 10 SATA II 320 GB"
+"Maxtor 6Y(06|08|12|16|20|25)0[LPM]0" 194 C "Maxtor DiamondMax Plus 9"
+"Maxtor 7L300[RS]0" 194 C "Maxtor 7L300R0 MaxLine+III 300GB 7200rpm"
+"Maxtor 7Y250[PM]0" 194 C "Maxtor MaXLine Plus II 250GB 7200RPM"
+"Maxtor 94098U8" 11 C "Maxtor DiamondMax 40 94098U8"
+
+#"Maxtor 6(B|L)(08|12|16|20|25|30)0[RSPM]0" 194 C "Maxtor DiamondMax Plus 10"
+"Maxtor 6B080M0" 194 C "Maxtor DiamondMax 10 80GB 8MB SATA"
+"Maxtor 6B120M0" 194 C "Maxtor DiamondMax 10 120GB 8MB SATA"
+"Maxtor 6B160M0" 194 C "Maxtor DiamondMax 10 160GB 8MB SATA"
+"Maxtor 6B160P0" 194 C "Maxtor DiamondMax 10 160GB 8MB ATA/133"
+"Maxtor 6B200M0" 194 C "Maxtor DiamondMax 10 200GB 8MB SATA"
+"Maxtor 6B200P0" 194 C "Maxtor DiamondMax 10 200GB 8MB ATA/133"
+"Maxtor 6B250R0" 194 C "Maxtor DiamondMax 10 250GB 16MB ATA/133"
+"Maxtor 6B250S0" 194 C "Maxtor DiamondMax 10 250GB 16MB SATA"
+"Maxtor 6B300R0" 194 C "Maxtor DiamondMax 10 300GB 16MB ATA/133"
+"Maxtor 6B300S0" 194 C "Maxtor DiamondMax 10 300GB 16MB SATA"
+"Maxtor 6L080L0" 194 C "Maxtor DiamondMax 10 80GB 2MB ATA/133 RoHS"
+"Maxtor 6L080M0" 194 C "Maxtor DiamondMax 10 80GB 8MB SATA RoHS"
+"Maxtor 6L080P0" 194 C "Maxtor DiamondMax 10 80GB 8MB ATA/133 RoHS"
+"Maxtor 6L120M0" 194 C "Maxtor DiamondMax 10 120GB 8MB SATA RoHS"
+"Maxtor 6L120P0" 194 C "Maxtor DiamondMax 10 120GB 8MB ATA/133 RoHS"
+"Maxtor 6L160M0" 194 C "Maxtor DiamondMax 10 160GB 8MB SATA RoHS"
+"Maxtor 6L160P0" 194 C "Maxtor DiamondMax 10 160GB 8MB ATA/133 RoHS"
+"Maxtor 6L200M0" 194 C "Maxtor DiamondMax 10 200GB 8MB SATA RoHS"
+"Maxtor 6L200P0" 194 C "Maxtor DiamondMax 10 200GB 8MB ATA/133 RoHS"
+"Maxtor 6L250R0" 194 C "Maxtor DiamondMax 10 250GB 16MB ATA/133 RoHS"
+"Maxtor 6L250S0" 194 C "Maxtor DiamondMax 10 250GB 16MB SATA RoHS"
+"Maxtor 6L300R0" 194 C "Maxtor DiamondMax 10 300GB 16MB ATA/133 RoHS"
+"Maxtor 6L300S0" 194 C "Maxtor DiamondMax 10 300GB 16MB SATA RoHS"
+"Maxtor 6V080E0" 194 C "Maxtor DiamondMax 10 80GB 8MB SATAII RoHS"
+"Maxtor 6V160E0" 194 C "Maxtor DiamondMax 10 160GB 8MB SATAII RoHS"
+"Maxtor 6V200E0" 194 C "Maxtor DiamondMax 10 200GB 8MB SATAII RoHS"
+"Maxtor 6V250F0" 194 C "Maxtor DiamondMax 10 250GB 16MB SATAII RoHS"
+"Maxtor 6V300F0" 194 C "Maxtor DiamondMax 10 300GB 16MB SATAII RoHS"
+
+
+
+########################################
+############# Quantum drives
+########################################
+"QUANTUM FIREBALLP AS40.0" 0 C "Quantum Fireball AS40"
+"QUANTUM FIREBALL CX10.2A" 0 C "Quantum Fireball CX10.2A"
+#"QUANTUM FIREBALLlct10 20" 4 C "Quantum Fireball CT10 20GB"
+# I suspect the QUANTUM FIREBALL_TM2110A to have a sensor in field 9...
+# "QUANTUM FIREBALL_TM2110A" 9 C "Quantum Fireball TM2110A"
+
+
+
+########################################
+############# Samsung drives
+########################################
+# somenone reported a problem with the SP8004H which reports a temperature
+# 10°C below the ambient temperature
+"SAMSUNG HA(200|250)JC" 194 C "Samsung SpinPoint V120CE series"
+"SAMSUNG HD160JJ" 194 C "Samsung 160GB, 7200RPM, 8MB cache, SATA"
+"SAMSUNG HD160JJ/P" 194 C "Samsung SpinPoint P80 SD 160GB (7200RPM, 8MB cache)"
+"SAMSUNG HD[30|32|40][01]L[DJ]" 194 C "Samsung SpinPoint T133 series (300-400MB)"
+"SAMSUNG HD250KD" 194 C "Samsung SpinPoint T133 series (250 MB PATA)"
+"SAMSUNG HD321KJ" 194 C "Samsung Spinpoint T166 (7200RPM, 16MB cache) - SATA"
+"SAMSUNG HD501LJ" 194 C "Samsung HD501LJ"
+"SAMSUNG MP0(302|402|603|804)H" 194 C "Samsung SpinPoint M40 2.5inch"
+"SAMSUNG SW0434A" 0 C "Samsung SW0434A"
+"SAMSUNG SP(2001|4002|6003|8004|40A2)H" 194 C "Samsung SpinPoint P40 serie"
+"SAMSUNG SP(0612|0802|1203|1604|0812|1213|1614)N" 194 C "Samsung SpinPoint P80 serie"
+"SAMSUNG SP(0612|0802|1203|1604|0812|1213|1614)C" 194 C "Samsung SpinPoint P80 series - SATA"
+"SAMSUNG SP0411N" 194 C "Samsung SpinPoint PL40 serie"
+"SAMSUNG SP0822N" 194 C "Samsung SP0822N"
+"SAMSUNG SP(0812|1213|1614)C" 194 C "Samsung Spinpoint 160G SATA"
+"SAMSUNG SP2[05]14N" 194 C "Samsung SpinPoint P120 series (7200RPM, 8MB cache)"
+"SAMSUNG SP2[05]04C" 194 C "Samsung SpinPoint P120 series - SATA"
+"SAMSUNG SV0432A" 0 C "Samsung SV0432A"
+"SAMSUNG SV3002H" 0 C "Samsung SpinPoint V30 serie"
+"SAMSUNG SV(2001|4002|4012|6003|8004)H" 194 C "Samsung SpinPoint V40 serie"
+#"SAMSUNG SV(0221|0602|0813|1204)H" 9 C "Samsung SpinPoint V60 serie"
+#"SAMSUNG SV1204H" 194 C "Samsung 120G"
+"SAMSUNG SV(0401|0802|1203|1604)N" 194 C "Samsung SpinPoint V80 serie"
+"SAMSUNG SV4012H" 194 C "Samsung 40GB, 5400RPM, 2MB cache"
+
+########################################
+############# Seagate drives
+########################################
+"Seagate Technology 1275MB - ST31276A" 0 C "Seagate ST31276A"
+"ST3412A" 0 C "Seagate ST3412A"
+"ST38641A" 0 C "Seagate ST38641A"
+"ST310014A" 194 C "Seagate ST310014A"
+"ST310210A" 0 C "Seagate ST310210A"
+"ST310211A" 194 C "Seagate ST310211A"
+"ST310220A" 0 C "Seagate ST310220A"
+# SEAGATE ST313021A 13.0GB
+"ST313021A" 0 C "Seagate U8 ST313021A"
+"ST310240A" 0 C "Seagate Medalist 10240 Ultra ATA-3"
+"ST315320A" 194 C "Seagate ST315320A"
+"ST320423A" 0 C "Seagate U10 20423, Ultra ATA/66"
+"ST320011A" 194 C "Seagate ST320011A"
+"ST320014A" 194 C "Seagate ST320014A (5400 rpm, 20Gb)"
+"ST320410A" 194 C "Seagate ST320410A"
+"ST320413A" 194 C "Seagate ST320413A"
+"ST320414A" 194 C "Seagate ST320414A"
+"ST320420A" 194 C "Seagate Barracuda II ST320420A"
+"ST330013A" 194 C "Seagate ST330013A Barracuda ATA V 30GB, 7200 rpm"
+"ST330620A" 194 C "Seagate ST330620A"
+"ST330621A" 194 C "Seagate ST330621A"
+"ST330630A" 194 C "Seagate Barracuda ST330630A"
+"ST340014A" 194 C "Seagate Barracuda 7200.7 40Gb"
+"ST340015A" 194 C "Seagate Barracuda 5400.1 40GB"
+"ST340016A" 194 C "Seagate ST340016A"
+"ST340810A" 194 C "Seagate U Series 40810 (40Gb, Ultra ATA/100, 5400 rpm)"
+"ST340823A" 194 C "Seagate U Series 5 40823"
+"ST340824A" 194 C "Seagate Barracuda III"
+"ST360015A" 194 C "Seagate Barracuda V ST360015A"
+"ST360020A" 194 C "Seagate U Series 60020"
+"ST360021A" 194 C "Seagate Barracuda IV ST360021A"
+"ST380011A" 194 C "Seagate Barracuda 7200.7 80GB"
+"ST380012A" 194 C "Seagate ST380012A 80GB"
+"ST380013A" 194 C "Seagate Barracuda 7200.7 80GB"
+"ST380013AS" 194 C "Seagate Barracuda 7200.7 80GB (Serial ATA)"
+"ST380020A" 194 C "Seagate U Series 80020 (80Gb, Ultra ATA/100, 5400 rpm)"
+"ST380021A" 194 C "Seagate Barracuda IV ST380021A"
+"ST380022A" 194 C "Seagate Barracuda U7 80022, Ultra ATA/100"
+"ST380023A" 194 C "Seagate Barracuda V ST380023A"
+"ST380817AS" 194 C "Seagate Barracuda 7200.7 80GB - SATA"
+"ST39111A" 194 C "Seagate ST39111A (from Sun Ultra)"
+"ST3120020A" 194 C "Seagate ST3120020A"
+"ST3120022A" 194 C "Seagate Baraccuda 7200.7 120GB"
+"ST3120023A" 194 C "Seagate Barracuda V ST3120023A"
+"ST3120024A" 194 C "Seagate Barracuda V ST3120024A"
+"ST3120025ACE" 194 C "Seagate Barracuda V ST3120025ACE"
+"ST3120026A" 194 C "Seagate Barracuda V ST3120026A"
+"ST3160021A" 194 C "Seagate Barracuda 7200.7 - ST3160021A"
+"ST3160023(A|AS)" 194 C "Seagate Barracuda V ST3160023A and AS (160Gb, ATA100 or Serial ATA)"
+"ST316081[12](A|AS)" 194 C "Seagate Barracuda 7200.9 160GB"
+"ST3160827AS" 194 C "Seagate Barracuda 7200.7 160GB (Serial ATA)"
+"ST3200021A" 194 C "Seagate Barracuda 7200.7 Plus 200GB"
+"ST3200822(A|AS)" 194 C "Seagate Barracuda 7200.7 Plus 200GB (PATA or SATA)"
+"ST3200826A" 194 C "Seagate Barracuda 7200.8 200GB"
+"ST3250623A" 194 C "Seagate Barracuda 7200.16 250GB"
+"ST3250624AS" 194 C "Seagate Barracuda 7200.9 250GB SATA"
+"ST3250624NS" 194 C "Seagate NL35 SATA (RAID-Edition) 7200 250GB"
+"ST3250823A" 194 C "Seagate Barracuda 7200.8 250GB"
+"ST3250823A" 194 C "Seagate Barracuda 7200.7 Plus 250GB"
+"ST3250823NS" 194 C "Seagate NL35 SATA (RAID-Edition) 7200 250GB"
+"ST3300831A" 194 C "Seagate 300GB ST3300831A"
+"ST3400832A" 194 C "Seagate Barracuda 7200.8 Plus 400GB"
+"ST3400633(A|AS)" 194 C "Seagate Barracuda 7200.7 400 GB"
+"ST3500630NS" 194 C "Seagate"
+"ST3400632NS" 194 C "Seagate"
+"ST380[28]110(A|AS)" 194 C "Seagate Barracuda 7200.9 80 GB"
+"ST910021A" 194 C "Seagate Momentus 7200.1 100GB"
+"ST910082[35]A" 194 C "Seagate Momentus 5400.2 100GB"
+"ST9120821A" 194 C "Seagate Momentus 5400.2 120GB"
+"ST94019A" 194 C "Seagate ST94019A"
+"ST94813A" 194 C "Seagate Momentus 5400.2 40GB"
+"ST94[08]11A" 194 C "Seagate ST94011A"
+"ST960821A" 194 C "Seagate ST960821A"
+"ST960822A" 194 C "Seagate Momentus 5400.2 60GB"
+"ST96812AS" 194 C "Seagate Momentus 5400.2 60GB SATA"
+"ST9808211A" 194 C "Seagate Momentus 5400.2 80GB"
+"ST98823AS" 194 C "Seagate Momentus 5400.2 80GB SATA"
+
+########################################
+############# TOSHIBA Laptops
+########################################
+"MK4313MAT" 220 C "Toshiba MK4313MAT"
+"TOSHIBA MK1032GAX" 194 C "Toshiba MK1032GAX"
+"TOSHIBA MK1032GSX" 194 C "Toshiba MK1032GSX"
+"TOSHIBA MK1517GAP" 0 C "Toshiba MK1517GAP"
+"TOSHIBA MK2018GAS" 226 F "Toshiba MK2018GAS"
+"TOSHIBA MK2023GAS" 194 C "Toshiba MK2023GAS"
+
+"TOSHIBA MK3017GAP" 0 C "Toshiba MK3017GAP"
+"TOSHIBA MK3021GAS" 194 C "Toshiba MK3021GAS"
+"TOSHIBA MK3025GAS" 194 C "Toshiba MK3025GAS"
+
+#"TOSHIBA MK4019GAX" 222 C "Toshiba MK4019GAX"
+"TOSHIBA MK4021GAS" 194 C "Toshiba MK4021GAS"
+"TOSHIBA MK4025GAS" 194 C "Toshiba MK4025GAS 40 Go"
+"TOSHIBA MK4026GAS" 194 C "Toshiba MK4026GAS 40 Go"
+"TOSHIBA MK4032GAX" 194 C "Toshiba MK4032GAX"
+
+"TOSHIBA MK6021GAS" 194 C "Toshiba MK6021GAS"
+"TOSHIBA MK6022GAX" 194 C "Toshiba MK6022GAX"
+"TOSHIBA MK6025GAS" 194 C "Toshiba MK6025GAS"
+"TOSHIBA MK6026GAX" 194 C "Toshiba MK6026GAX"
+"TOSHIBA MK8025GAS" 194 C "Toshiba MK8025GAS"
+"TOSHIBA MK8026GAX" 194 C "Toshiba MK8026GAX"
+"TOSHIBA MK8032GSX" 194 C "Toshiba MK8032GSX"
+
+"MK4025GAS" 194 C "Toshiba MK4025GAS"
+
+
+########################################
+############# Western Digital drives
+########################################
+# WDC AC310100B and WDC AC2850F are reported not working
+# no more informations were given
+"WDC AC22000L" 0 C "Western Digital Caviar AC22000"
+"WDC AC420400D" 231 C "Western Digital Caviar AC420400D"
+"WDC AC418000D" 231 C "Western Digital AC418000D"
+"WDC WD135BA" 231 C "Western Digital WD135BA"
+
+"WDC WD100EB-00BHF0" 0 C "Western Digital 100EB-00BHF0"
+"WDC WD200BB-00AUA1" 0 C "Western Digital Caviar WD200BB"
+#"WDC WD200BB-60DGA0" 0 C "Western Digital Caviar WD200BB"
+"WDC WD300BB-00CAA0" 0 C "Western Digital WD300BB"
+"WDC WD360GD-00FNA0" 194 C "Western Digital SATA Raptor 36.7GB"
+"WDC WD400BB-00CAA0" 0 C "Western Digital 400BB-00CAA0"
+"WDC WD400BB-00[DJ][KH]A0" 194 C "Western Digital Caviar WD400BB"
+"WDC WD400BB-23JHC0" 194 C "Western Digital 23JHC0"
+#"WDC WD400BB-00GFA0" 0 C ""
+"WDC WD400BB-55HEA0" 194 C "Western Digital Caviar WD400BB"
+"WDC WD400BB-(18CA|00DE)A0" 0 C "Western Digital Caviar WD400BB"
+"WDC WD400BB-75FJA1" 194 C "Western Digital Caviar WD400BB"
+"WDC WD400EB-00CPF0" 0 C "Western Digital 400EB-00CPF0"
+"WDC WD400JB-00(JJ|FM|FS)A0" 194 C "Western Digital Caviar 40GB Special Edition 8MB"
+"WDC WD400JB-00ETA0" 194 C "Western Digital 400JB-00ETA0"
+"WDC WD400JB-00JJC0" 194 C "Western Digital 400JB-00JJC0 40GB"
+"WDC WD400LB-00DNA0" 194 C "Western Digital 400LB-00DNA0"
+"WDC WD400UE-22HCT0" 194 C "Western Digital 40GB Notebook HDD"
+"WDC WD400VE-75HDT1" 194 C "Western Digital Scorpio 40GB"
+"WDC WD600BB-32BSA0" 0 C "Western Digital 600BB-32BSA0"
+"WDC WD600JB-00ETA0" 194 C "Western Digital 600JB-00ETA0"
+"WDC WD600LB-00DNA0" 194 C "Western Digital 60GB"
+"WDC WD600VE-75HDT0" 194 C "Western Digital 600VE-75HDT0"
+"WDC WD600VE-00HDT0" 194 C "Western Digital 600VE-00HDT0"
+"WDC WD740GD-00FL21.0" 194 C "Western Digital SATA Raptor"
+"WDC WD740GD-([05]0FL[AC][01]|75FLA1)" 194 C "Western Digital SATA Raptor 74GB 8MB"
+"WDC WD800BB-00CAA1" 0 C "Western Digital WD800BB-00CAA1"
+"WDC WD800BB-(00|22)DKA0" 194 C "Western Digital WD800BB 80 Go"
+"WDC WD800BB-32CCB0" 194 C "Western Digital 800BB-32CCB0"
+"WDC WD800BB-55HEA0" 194 C "Western Digital 800BB-55HEA0"
+"WDC WD800BB-00JHA0" 194 C "Western Digital 800BB-00JHA0"
+"WDC WD800BB-00JKA0" 194 C "Western Digital 800BB-00JKA0"
+"WDC WD800BB-55JKA0" 194 C "Western Digital 800BB-55JKA0"
+"WDC WD800BB-75FRA0" 194 C "Western Digital Caviar WD800BB"
+"WDC WD800JB-00CRA1" 0 C "Western Digital Caviar WD800JB"
+"WDC WD800JB-00(ET|FM|FS)A0" 194 C "Western Digital Caviar 80GB Special Edition 8MB"
+"WDC WD800JB-00JJ[AC]0" 194 C "Western Digital WD800JB"
+"WDC WD800JD-(00|55|75)(HK|JR|JN)[AC]0" 194 C "Western Digital SATA 80GB, 8MB Cache"
+"WDC WD800LB-(00|55)DNA0" 194 C "Western Digital Caviar WD800LB 80 Go ATA-100"
+"WDC WD800VE-07HDT0" 194 C "Western Digital 800VE-07HDT0"
+"WDC WD1200BB-00(FTA|GUA)0" 194 C "Western Digital Caviar EIDE 2MB Cache"
+"WDC WD1200JB-00(EV|FU|GV|RE)A0" 194 C "Western Digital Caviar 120GB Special Edition 8MB"
+"WDC WD1200JB-22GVA0" 194 C "Western Digital Caviar 120GB"
+"WDC WD1200JD-00(FYB|GBB|HBC)0" 194 C "Western Digital WD1200JD"
+"WDC WD1200LB-55EDA0" 194 C "Western Digital WD1220LB"
+"WDC WD1200SB-01KB[AC]0" 194 C "Western Digital Caviar RE (Raid Edition) 120 GB"
+"WDC WD1600BB-00DWA0" 194 C "Western Digital Caviar WD1600BB"
+"WDC WD1600JB-(00EV|00FU|00GV|22GV|75GV)A0" 194 C "Western Digital Caviar 160GB Special Edition 8MB"
+"WDC WD2000BB-00FTA0" 194 C "Western Digital WD2000BB"
+"WDC WD2000JB-(00EV|32EV|34EV|00FU|00GV|55GV|98GV|00KF)A0" 194 C "Western Digital Caviar 200GB Special Edition 8MB"
+"WDC WD2000JB-00GVC0" 194 C "Western Digital WD2000JB"
+"WDC WD2000JD-00FYB0" 194 C "Western Digital WD2000JD"
+"WDC WD2000JS-00MHB1" 194 C "Western Digital SATA 200GB"
+"WDC WD2500JB-(00RE|00EV|00FU|32FU|00GV|55GV)A0" 194 C "Western Digital Caviar 250GB Special Edition 8MB"
+"WDC WD2500JB-00GVC0" 194 C "Western Digital 250GB"
+"WDC WD2500JD-(00G|32H|75H)BB0" 194 C "Western Digital SATA Caviar 250GB Special Edition 8MB"
+"WDC WD2500JD-40HBC0" 194 C "Western Digital WD2500JD-40HBC0"
+"WDC WD2500PB-98FBA0" 194 C "Western Digital Caviar 250GB Special Edition 8MB"
+"WDC WD2500PD-00FZB1" 194 C "Western Digital WD2500PD-00FZB1"
+"WDC WD2500SD-01KCB0" 194 C "Western Digital Caviar RE 250GB 8MB"
+"WDC WD3000JB-00KFA0" 194 C "Western Digital WD3000JB"
+"WDC WD3200JB-00KFA0" 194 C "Western Digital Caviar 320GB 8MB"
+"WDC WD4000KD-00NAB0" 194 C "Western Digital Caviar SE16 400GB 16MB"
+"WDC WD4000YR-01PLB0" 194 C "Western Digital Caviar RE2 400GB 16MB"
+"WD4000YS-01MPB0" 194 C "Western Digital RE2 7200 SATA II 400 GB"
+
+# not sure for next
+# "WDC WD1200JB-00CRA1" 9 C "Western Digital 1200JB-00CRA1"
+# "WDC WD273BA" 9 C "Western Digital WD273BA"
+
+
+
+
+########################################################################################################################
+########################################################################################################################
+########################################################################################################################
+########################################################################################################################
+########################################################################################################################
+########################################################################################################################
+########################################################################################################################
+########################################################################################################################
+########################################################################################################################
+########################################################################################################################
+########################################################################################################################
+########################################################################################################################
+########################################################################################################################
+########################################################################################################################
+
+"ST3750640AS" 194 C "Seagate Barracuda 7200.10 SATA 750GB"
+"ST3750840AS" 194 C "Seagate Barracuda 7200.10 SATA 750GB"
+"ST3500630AS" 194 C "Seagate Barracuda 7200.10 SATA 500GB"
+"ST3500830AS" 194 C "Seagate Barracuda 7200.10 SATA 500GB"
+"ST3400620AS" 194 C "Seagate Barracuda 7200.10 SATA 400GB"
+"ST3400620A" 194 C "Seagate Barracuda 7200.10 400GB"
+"ST3400820AS" 194 C "Seagate Barracuda 7200.10 SATA 400GB"
+"ST3320620AS" 194 C "Seagate Barracuda 7200.10 SATA 320GB"
+"ST3320820AS" 194 C "Seagate Barracuda 7200.10 SATA 320GB"
+"ST3300620AS" 194 C "Seagate Barracuda 7200.10 SATA 300GB"
+"ST3300820AS" 194 C "Seagate Barracuda 7200.10 SATA 300GB"
+"ST3250620AS" 194 C "Seagate Barracuda 7200.10 SATA 250GB"
+"ST3250820AS" 194 C "Seagate Barracuda 7200.10 SATA 250GB"
+"ST3250410AS" 194 C "Seagate Barracuda 7200.10 SATA 250GB"
+"ST3250310AS" 194 C "Seagate Barracuda 7200.10 SATA 250GB"
+"ST3200820AS" 194 C "Seagate Barracuda 7200.10 SATA 200GB"
+"ST3160815AS" 194 C "Seagate Barracuda 7200.10 SATA 160GB"
+"ST3160215AS" 194 C "Seagate Barracuda 7200.10 SATA 160GB"
+"ST3120815AS" 194 C "Seagate Barracuda 7200.10 SATA 120GB"
+"ST3120215AS" 194 C "Seagate Barracuda 7200.10 SATA 120GB"
+"ST380815AS" 194 C "Seagate Barracuda 7200.10 SATA 80GB"
+"ST380215AS" 194 C "Seagate Barracuda 7200.10 SATA 80GB"
+"ST340815AS" 194 C "Seagate Barracuda 7200.10 SATA 40GB"
+"ST340215AS" 194 C "Seagate Barracuda 7200.10 SATA 40GB"
+"ST3300622AS" 194 C "Seagate Barracuda 7200.9 SATA2.5 300GB"
+"ST3300831A" 194 C "Seagate Barracuda 7200.8 PATA 300GB"
+
+"Maxtor 7(L|V)250(F|R|S)0" 194 C "Maxtor MaXLine III 250GB 7200rpm"
+"Maxtor 7(L|V)300(F|R|S)0" 194 C "Maxtor MaXLine III 300GB 7200rpm"
+"MAXTOR STM3320620AS" 194 C ""
+
+"WDC WD1500ADFD-00NLR[01]" 194 C "Western Digital Raptor 150GB"
+"WDC WD1600JS-00NCB1" 194 C "Western Digital Caviar 1600JS 160GB Sata"
+"WDC WD1600SD-01KCC0" 194 C "Western Digital Caviar RE Serial ATA series"
+"WDC WD2500JD-57HBC0" 194 C "Western Digital Caviar SE (Serial ATA) 250 GB"
+"WDC WD2500JS" 194 C "Western Digital WD2500JS"
+"WDC WD2500JS-41MVB1" 194 C "Western Digital SATAII Caviar 250GB Special Edition 8MB"
+"WDC WD2500JD-00HBB0" 194 C "Western Digital SATA 250GB"
+"WDC WD2500KS-00MJB0" 194 C "Western Digital SATA-II Caviar 250GB Special Edition 16MB"
+"WDC WD2500YD-01NVB1" 194 C "Western Digital Caviar RE 250GB 16MB"
+"WDC WD3000JS-00PDB0" 194 C "Western Digital WD3000JS"
+"WDC WD3200KS-00PFB0" 194 C "Western Digital Caviar 320GB 16MB"
+"WDC WD3200JD-22KLB0" 194 C "Western Digital Caviar SE 320GB 8MB"
+"WDC WD3200SD-01KNB0" 194 C "Western Digital Caviar RE 320GB SATA 8MB"
diff --git a/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp_0.3-beta15-52.diff b/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp_0.3-beta15-52.diff
new file mode 100644
index 000000000..057b1fd1d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp_0.3-beta15-52.diff
@@ -0,0 +1,2288 @@
+Megapatch from debian
+
+Original URL: http://ftp.debian.org/debian/pool/main/h/hddtemp/hddtemp_0.3-beta15-52.diff.gz
+
+Filtered with:
+ filterdiff -p1 -x README -x 'debian/*'
+
+
+Upstream-Status: unmaintained
+
+Index: hddtemp-0.3-beta15/doc/hddtemp.8
+===================================================================
+--- hddtemp-0.3-beta15.orig/doc/hddtemp.8
++++ hddtemp-0.3-beta15/doc/hddtemp.8
+@@ -58,6 +58,10 @@ Execute hddtemp in TCP/IP daemon mode (p
+ .B \-f, \-\-file=\fIfile\fI
+ Specify the database file to use.
+ .TP
++.B \-F, \-\-foreground
++Don't fork into the background even in daemon mode. This is useful
++when running under a process supervisor.
++.TP
+ .B \-l, \-\-listen=\fIaddr\fR
+ Listen on a specific address. \fIaddr\fR is a string containing a
+ host name or a numeric host address string. The numeric host address
+@@ -80,6 +84,9 @@ seconds.
+ .B \-q, \-\-quiet
+ Don't check if the drive is supported.
+ .TP
++.B \-u, \-\-unit=\fIC|F\fR
++Force output temperature either in Celsius or Fahrenheit.
++.TP
+ .B \-v, \-\-version
+ Display hddtemp version number.
+ .TP
+@@ -96,7 +103,7 @@ Listen on IPv6 sockets only.
+ .SH "DRIVE DATABASE"
+ If you know your drive has a temperature sensor but it is being
+ reported unsupported, tell me which model and which manufacturer it
+-is, and/or just add a new entry in /usr/share/misc/hddtemp.db. Each
++is, and/or just add a new entry in /etc/hddtemp.db. Each
+ line of hddtemp.db is either a comment, a blank line or a line
+ containing:
+ .TP
+@@ -112,7 +119,7 @@ set of drives from its model name or fro
+ Feedback is welcome (see the REPORT section below).
+
+ .SH "TCP/IP DAEMON MODE"
+-Exemple of type forcing:
++Example of type forcing:
+ .PP
+ # hddtemp SATA:/dev/sda PATA:/dev/hda
+ .PP
+@@ -120,7 +127,7 @@ To test
+ .B hddtemp
+ in daemon mode, start it like this:
+ .PP
+-# hddtemp -d /dev/hd[abcd]
++# hddtemp \-d /dev/hd[abcd]
+ .PP
+ .PP
+ and use
+@@ -165,8 +172,8 @@ and 12 are often reported to match a tem
+ investigation they do not. But fields 194 (which is the standard
+ field for temperature) and 231 are good candidates.
+ .PP
+-Then, you can send me a report with outputs from `hddtemp --debug ...',
+-`smartctl' or `hdparm -i ...', and/or add an entry in hddtemp.db
++Then, you can send me a report with outputs from `hddtemp \-\-debug ...',
++`smartctl' or `hdparm \-i ...', and/or add an entry in hddtemp.db
+ yourself.
+
+ .SH "BUGS"
+@@ -183,5 +190,5 @@ supported on i386 architectures only.
+ .PP
+ Emmanuel Varagnat (hddtemp@guzu.net).
+ .PP
+-This manual page was originaly written by Aurelien Jarno <aurel32@debian.org>,
++This manual page was originally written by Aurelien Jarno <aurel32@debian.org>,
+ for the Debian GNU/Linux system (but may be used by others).
+Index: hddtemp-0.3-beta15/po/fr.po
+===================================================================
+--- hddtemp-0.3-beta15.orig/po/fr.po
++++ hddtemp-0.3-beta15/po/fr.po
+@@ -7,9 +7,9 @@
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: fr\n"
+-"Report-Msgid-Bugs-To: hddtemp@guzu.net\n"
+-"POT-Creation-Date: 2005-02-25 22:43+0100\n"
+-"PO-Revision-Date: 2003-06-03 00:58GMT+1\n"
++"Report-Msgid-Bugs-To: \n"
++"POT-Creation-Date: 2006-06-29 16:24+0200\n"
++"PO-Revision-Date: 2011-08-30 16:38+0200\n"
+ "Last-Translator: Aurelien Jarno <aurelien@aurel32.net>\n"
+ "Language-Team: FRANCAIS <fr@li.org>\n"
+ "MIME-Version: 1.0\n"
+@@ -17,23 +17,7 @@ msgstr ""
+ "Content-Transfer-Encoding: 8bit\n"
+ "X-Generator: KBabel 1.0.1\n"
+
+-#: src/hddtemp.c:112
+-#, c-format
+-msgid ""
+-"\n"
+-"Regexp%s| Value | Description\n"
+-"------%s---------------------\n"
+-msgstr ""
+-"\n"
+-"Regexp%s| Valeur | Description\n"
+-"------%s----------------------\n"
+-
+-#: src/hddtemp.c:118
+-#, c-format
+-msgid "%s%s| %5d | %s\n"
+-msgstr "%s%s| %5d | %s\n"
+-
+-#: src/hddtemp.c:161
++#: src/hddtemp.c:156
+ #, c-format
+ msgid ""
+ "\n"
+@@ -46,7 +30,7 @@ msgstr ""
+ "Modèle: %s\n"
+ "\n"
+
+-#: src/hddtemp.c:188
++#: src/hddtemp.c:189
+ #, c-format
+ msgid ""
+ "WARNING: Drive %s doesn't seem to have a temperature sensor.\n"
+@@ -60,75 +44,60 @@ msgstr ""
+ "net).\n"
+ "ATTENTION : Voir les options --help, --debug et --drivebase.\n"
+
+-#: src/hddtemp.c:192
++#: src/hddtemp.c:197
+ #, c-format
+ msgid "%s: %s: no sensor\n"
+ msgstr "%s: %s : pas de capteur\n"
+
+-#: src/hddtemp.c:197
+-#, c-format
+-msgid ""
+-"WARNING: Drive %s doesn't appear in the database of supported drives\n"
+-"WARNING: But using a common value, it reports something.\n"
+-"WARNING: Note that the temperature shown could be wrong.\n"
+-"WARNING: See --help, --debug and --drivebase options.\n"
+-"WARNING: And don't forget you can add your drive to hddtemp.db\n"
+-msgstr ""
+-"ATTENTION : Le lecteur %s n'apparait pas dans la base de données des "
+-"lecteurs supportés\n"
+-"ATTENTION : Mais en utilisant une valeur courante, il renvoie quelque "
+-"chose.\n"
+-"ATTENTION : Notez que la température renvoyée peut être erronée.\n"
+-"ATTENTION : Voir les options --help, --debug et --drivebase.\n"
+-"ATTENTION : Et n'oubliez pas d'ajouter votre lecteur au fichier hddtemp.db\n"
+-
+-#: src/hddtemp.c:202
++#: src/hddtemp.c:211
+ #, c-format
+ msgid "%s: %s: %d%sC or %sF\n"
+ msgstr "%s: %s : %d%sC ou %sF\n"
+
+-#: src/hddtemp.c:214
++#: src/hddtemp.c:235
+ #, c-format
+ msgid "%s: %s: drive is sleeping\n"
+ msgstr "%s: %s : le lecteur est en veille\n"
+
+-#: src/hddtemp.c:217
++#: src/hddtemp.c:242
+ #, c-format
+-msgid "%s: %s: known drive, but it doesn't have a temperature sensor.\n"
++msgid "%s: %s: drive supported, but it doesn't have a temperature sensor.\n"
+ msgstr ""
+ "%s: %s: lecteur connu, mais il ne possède pas de capteur de température.\n"
+
+-#: src/hddtemp.c:220
++#: src/hddtemp.c:246
+ #, c-format
+ msgid "ERROR: %s: %s: unknown returned status\n"
+ msgstr "ERREUR : %s : %s : status inconnu\n"
+
+-#: src/hddtemp.c:235
++#: src/hddtemp.c:261
+ #, c-format
+ msgid ""
+ "\n"
+ "If one of the field value seems to match the temperature, be sure to read\n"
+-"the hddtemp man page before sending me a report (section REPORT). Thanks.\n"
++"the hddtemp man page before sending a report (section REPORT). Thanks.\n"
+ msgstr ""
+
+-#: src/hddtemp.c:308
++#: src/hddtemp.c:338
+ #, c-format
+ msgid "ERROR: invalid separator.\n"
+ msgstr "ERREUR : séparateur invalide.\n"
+
+-#: src/hddtemp.c:319
++#: src/hddtemp.c:349
+ #, c-format
+ msgid "ERROR: invalid port number.\n"
+ msgstr "ERREUR : numéro de port invalide.\n"
+
+-#: src/hddtemp.c:329
+-#, fuzzy, c-format
++#: src/hddtemp.c:371
++#, c-format
+ msgid ""
+-" Usage: hddtemp [OPTIONS] DISK1 [DISK2]...\n"
++" Usage: hddtemp [OPTIONS] [TYPE:]DISK1 [[TYPE:]DISK2]...\n"
+ "\n"
+ " hddtemp displays the temperature of drives supplied in argument.\n"
+ " Drives must support S.M.A.R.T.\n"
+ "\n"
++" TYPE could be SATA, PATA or SCSI. If omitted hddtemp will try to guess.\n"
++"\n"
+ " -b --drivebase : display database file content that allow hddtemp to\n"
+ " recognize supported drives.\n"
+ " -D --debug : display various S.M.A.R.T. fields and their values.\n"
+@@ -138,6 +107,7 @@ msgid ""
+ " -d --daemon : run hddtemp in TCP/IP daemon mode (port %d by "
+ "default.)\n"
+ " -f --file=FILE : specify database file to use.\n"
++" -F --foreground : don't daemonize, stay in foreground.\n"
+ " -l --listen=addr : listen on a specific interface (in TCP/IP daemon "
+ "mode).\n"
+ " -n --numeric : print only the temperature.\n"
+@@ -145,6 +115,8 @@ msgid ""
+ " -s --separator=C : separator to use between fields (in TCP/IP daemon "
+ "mode).\n"
+ " -S --syslog=s : log temperature to syslog every s seconds.\n"
++" -u --unit=[C|F] : force output temperature either in Celsius or "
++"Fahrenheit.\n"
+ " -q --quiet : do not check if the drive is supported.\n"
+ " -v --version : display hddtemp version number.\n"
+ " -w --wake-up : wake-up the drive if need.\n"
+@@ -153,11 +125,14 @@ msgid ""
+ "\n"
+ "Report bugs or new drives to <hddtemp@guzu.net>.\n"
+ msgstr ""
+-" Utilisation: hddtemp [OPTIONS] DISQUE1 [DISQUE2]...\n"
++" Utilisation: hddtemp [OPTIONS] [TYPE:]DISQUE1 [[TYPE:]DISQUE2]...\n"
+ "\n"
+ " hddtemp affiche la température des lecteurs passés en argument.\n"
+ " Les lecteurs doivent avoir le support S.M.A.R.T.\n"
+ "\n"
++" TYPE peut être SATA, PATA ou SCSI. Si le type est omis, hddtemp essaiera\n"
++" de le deviner.\n"
++"\n"
+ " -b --drivebase : affiche le contenu du fichier de base de donnée "
+ "qui \n"
+ " permet à hddtemp de reconnaître les lecteurs "
+@@ -172,6 +147,7 @@ msgstr ""
+ "défaut).\n"
+ " -f --file=FILE : specifie le fichier à utiliser comme base de "
+ "données.\n"
++" -F --foreground : ne pas démoniser, rester au premier plan.\n"
+ " -l --listen=addr : écoute sur une interface spécifique (en mode démon "
+ "TCP/IP).\n"
+ " -n --numeric : affiche seulement la température.\n"
+@@ -180,6 +156,8 @@ msgstr ""
+ "démon TCP/IP).\n"
+ " -S --syslog=s : enregistre la température dans syslog tous les s "
+ "secondes.\n"
++" -u --unit=[C|F] : affiche la température en degrés Celsius ou "
++"Fahrenheit.\n"
+ " -q --quiet : ne vérifie pas si le lecteur est supporté.\n"
+ " -v --version : affiche la version de hddtemp.\n"
+ " -w --wake-up : réveiller le lecteur si nécessaire.\n"
+@@ -188,62 +166,95 @@ msgstr ""
+ "\n"
+ "Report bugs or new drives to <hddtemp@guzu.net>.\n"
+
+-#: src/hddtemp.c:522
++#: src/hddtemp.c:402
+ #, c-format
+ msgid "hddtemp version %s\n"
+ msgstr "hddtemp version %s\n"
+
+-#: src/hddtemp.c:547
++#: src/hddtemp.c:418
+ #, c-format
+ msgid "ERROR: invalid interval.\n"
+ msgstr "ERREUR : intervalle invalide.\n"
+
+-#: src/hddtemp.c:547
++#: src/hddtemp.c:438
++#, c-format
+ msgid "Too few arguments: you must specify one drive, at least.\n"
+ msgstr "Trop peu d'arguments : vous devez spécifier au moins un lecteur.\n"
+
+-#: src/hddtemp.c:557
++#: src/hddtemp.c:448
++#, c-format
+ msgid "ERROR: can't use --debug and --daemon or --syslog options together.\n"
+ msgstr ""
+ "ERREUR: impossible d'utiliser les options --debug et --daemon ou --syslog en "
+ "même temps.\n"
+
+-#: src/hddtemp.c:583
++#: src/hddtemp.c:505
+ #, c-format
+ msgid "ERROR: %s: can't determine bus type (or this bus type is unknown)\n"
+ msgstr ""
+ "ERREUR: %s: impossible de déterminer le type de bus (ou ce type de bus est "
+ "inconnu)\n"
+
+-#: src/ata.c:66 src/scsi.c:68
++#: src/ata.c:66 src/scsi.c:64
+ msgid "unknown"
+ msgstr "inconnu"
+
+-#: src/ata.c:98
++#: src/ata.c:85 src/ata.c:104 src/scsi.c:91
+ #, c-format
+-msgid "field(%d)\t = %d\n"
+-msgstr "champ(%d)\t = %d\n"
+-
+-#: src/ata.c:167
+ msgid "S.M.A.R.T. not available"
+ msgstr "S.M.A.R.T. non disponible"
+
+-#: src/db.c:180
++#: src/db.c:115
++#, c-format
++msgid ""
++"\n"
++"Regexp%s| Value | Description\n"
++"------%s---------------------\n"
++msgstr ""
++"\n"
++"Regexp%s| Valeur | Description\n"
++"------%s----------------------\n"
++
++#: src/db.c:121
++#, c-format
++msgid "%s%s| %5d | %s\n"
++msgstr "%s%s| %5d | %s\n"
++
++#: src/db.c:236
+ #, c-format
+ msgid "hddtemp: can't open %1$s: %2$s\n"
+ msgstr "hddtemp: ne peut ouvrir %1$s: %2$s\n"
+
+-#: src/db.c:194
++#: src/db.c:250
+ #, c-format
+ msgid "ERROR: syntax error at line %1$d in %2$s\n"
+ msgstr "ERREUR: erreur de syntaxe à la ligne %1$d: %2$s\n"
+
+-#: src/db.c:201
++#: src/db.c:257
+ #, c-format
+ msgid " ERROR: line exceed %1$d characters in %2$s.\n"
+ msgstr " ERREUR: ligne exécdant %1$d caractères dans %2$s.\n"
+
+-#: src/scsi.c:112 src/scsi.c:130
++#: src/scsi.c:111 src/scsi.c:129
+ #, c-format
+ msgid "log sense failed : %s"
+ msgstr "echec de 'log sense' : %s "
++
++#~ msgid ""
++#~ "WARNING: Drive %s doesn't appear in the database of supported drives\n"
++#~ "WARNING: But using a common value, it reports something.\n"
++#~ "WARNING: Note that the temperature shown could be wrong.\n"
++#~ "WARNING: See --help, --debug and --drivebase options.\n"
++#~ "WARNING: And don't forget you can add your drive to hddtemp.db\n"
++#~ msgstr ""
++#~ "ATTENTION : Le lecteur %s n'apparait pas dans la base de données des "
++#~ "lecteurs supportés\n"
++#~ "ATTENTION : Mais en utilisant une valeur courante, il renvoie quelque "
++#~ "chose.\n"
++#~ "ATTENTION : Notez que la température renvoyée peut être erronée.\n"
++#~ "ATTENTION : Voir les options --help, --debug et --drivebase.\n"
++#~ "ATTENTION : Et n'oubliez pas d'ajouter votre lecteur au fichier hddtemp."
++#~ "db\n"
++
++#~ msgid "field(%d)\t = %d\n"
++#~ msgstr "champ(%d)\t = %d\n"
+Index: hddtemp-0.3-beta15/po/ru.po
+===================================================================
+--- hddtemp-0.3-beta15.orig/po/ru.po
++++ hddtemp-0.3-beta15/po/ru.po
+@@ -6,8 +6,8 @@
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: hddtemp 0.3-beta3\n"
+-"Report-Msgid-Bugs-To: hddtemp@guzu.net\n"
+-"POT-Creation-Date: 2005-02-25 22:43+0100\n"
++"Report-Msgid-Bugs-To: \n"
++"POT-Creation-Date: 2006-06-29 16:24+0200\n"
+ "PO-Revision-Date: 2003-03-08 16:42+0300\n"
+ "Last-Translator: Michael Shigorin <mike@altlinux.ru>\n"
+ "Language-Team: Russian <ru@li.org>\n"
+@@ -15,23 +15,7 @@ msgstr ""
+ "Content-Type: text/plain; charset=koi8-r\n"
+ "Content-Transfer-Encoding: 8bit\n"
+
+-#: src/hddtemp.c:112
+-#, c-format
+-msgid ""
+-"\n"
+-"Regexp%s| Value | Description\n"
+-"------%s---------------------\n"
+-msgstr ""
+-"\n"
+-"òÅÇÜËÓ%s| úÎÁÞ. | ïÐÉÓÁÎÉÅ \n"
+-"------%s---------------------\n"
+-
+-#: src/hddtemp.c:118
+-#, c-format
+-msgid "%s%s| %5d | %s\n"
+-msgstr ""
+-
+-#: src/hddtemp.c:161
++#: src/hddtemp.c:156
+ #, c-format
+ msgid ""
+ "\n"
+@@ -40,7 +24,7 @@ msgid ""
+ "\n"
+ msgstr ""
+
+-#: src/hddtemp.c:188
++#: src/hddtemp.c:189
+ #, c-format
+ msgid ""
+ "WARNING: Drive %s doesn't seem to have a temperature sensor.\n"
+@@ -53,72 +37,59 @@ msgstr ""
+ "÷îéíáîéå: åÓÌÉ ×Ù ÔÏÞÎÏ ÚÎÁÅÔÅ, ÞÔÏ ÄÁÔÞÉË ÅÓÔØ, ÎÁÐÉÛÉÔÅ hddtemp@guzu.net\n"
+ "÷îéíáîéå: (ÓÍ. ÏÐÃÉÉ --help, --debug É --drivebase).\n"
+
+-#: src/hddtemp.c:192
++#: src/hddtemp.c:197
+ #, c-format
+ msgid "%s: %s: no sensor\n"
+ msgstr "%s: %s: ÎÅÔ ÄÁÔÞÉËÁ\n"
+
+-#: src/hddtemp.c:197
+-#, c-format
+-msgid ""
+-"WARNING: Drive %s doesn't appear in the database of supported drives\n"
+-"WARNING: But using a common value, it reports something.\n"
+-"WARNING: Note that the temperature shown could be wrong.\n"
+-"WARNING: See --help, --debug and --drivebase options.\n"
+-"WARNING: And don't forget you can add your drive to hddtemp.db\n"
+-msgstr ""
+-"÷îéíáîéå: äÉÓË %s ÎÅ ×ËÌÀÞÅÎ × ÂÁÚÕ ÄÁÎÎÙÈ ÐÏÄÄÅÒÖÉ×ÁÅÍÙÈ ÐÒÉ×ÏÄÏ×.\n"
+-"÷îéíáîéå: îÏ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÒÁÓÐÒÏÓÔÒÁÎÅÎÎÙÈ ÐÁÒÁÍÅÔÒÏ× ÏÎ ÞÔÏ-ÔÏ ×ÙÄÁÅÔ.\n"
+-"÷îéíáîéå: úÁÍÅÔØÔÅ, ÞÔÏ ÐÏËÁÚÁÎÎÁÑ ÔÅÍÐÅÒÁÔÕÒÁ ÍÏÖÅÔ ÔÁËÏ×ÏÊ ÎÅ Ñ×ÌÑÔØÓÑ.\n"
+-"÷îéíáîéå: óÍ. ÏÐÃÉÉ --help, --debug É --drivebase.\n"
+-"÷îéíáîéå: é ÎÅ ÚÁÂÕÄØÔÅ, ÞÔÏ ÍÏÖÎÏ ÄÏÂÁ×ÉÔØ ÐÒÉ×ÏÄ × hddtemp.db\n"
+-
+-#: src/hddtemp.c:202
++#: src/hddtemp.c:211
+ #, c-format
+ msgid "%s: %s: %d%sC or %sF\n"
+ msgstr "%s: %s: %d%sC ÉÌÉ %sF\n"
+
+-#: src/hddtemp.c:214
++#: src/hddtemp.c:235
+ #, c-format
+ msgid "%s: %s: drive is sleeping\n"
+ msgstr "%s: %s: ÎÅÔ ÄÁÔÞÉËÁ\n"
+
+-#: src/hddtemp.c:217
+-#, c-format
+-msgid "%s: %s: known drive, but it doesn't have a temperature sensor.\n"
++#: src/hddtemp.c:242
++#, fuzzy, c-format
++msgid "%s: %s: drive supported, but it doesn't have a temperature sensor.\n"
+ msgstr "%s: %s: ÉÚ×ÅÓÔÎÙÊ ÄÉÓË, ÎÅ ÓÏÄÅÒÖÁÝÉÊ ÄÁÔÞÉËÁ ÔÅÍÐÅÒÁÔÕÒÙ.\n"
+
+-#: src/hddtemp.c:220
++#: src/hddtemp.c:246
+ #, c-format
+ msgid "ERROR: %s: %s: unknown returned status\n"
+ msgstr "ïûéâëá: %s: %s: ÎÅÉÚ×ÅÓÔÎÙÊ ÓÔÁÔÕÓ ×ÏÚ×ÒÁÔÁ\n"
+
+-#: src/hddtemp.c:235
++#: src/hddtemp.c:261
+ #, c-format
+ msgid ""
+ "\n"
+ "If one of the field value seems to match the temperature, be sure to read\n"
+-"the hddtemp man page before sending me a report (section REPORT). Thanks.\n"
++"the hddtemp man page before sending a report (section REPORT). Thanks.\n"
+ msgstr ""
+
+-#: src/hddtemp.c:308
++#: src/hddtemp.c:338
+ #, c-format
+ msgid "ERROR: invalid separator.\n"
+ msgstr "ïûéâëá: ÎÅ×ÅÒÎÙÊ ÒÁÚÄÅÌÉÔÅÌØ.\n"
+
+-#: src/hddtemp.c:319
++#: src/hddtemp.c:349
+ #, c-format
+ msgid "ERROR: invalid port number.\n"
+ msgstr "ïýéâëá: ÎÅ×ÅÒÎÙÊ ÎÏÍÅÒ ÐÏÒÔÁ.\n"
+
+-#: src/hddtemp.c:329
++#: src/hddtemp.c:371
+ #, fuzzy, c-format
+ msgid ""
+-" Usage: hddtemp [OPTIONS] DISK1 [DISK2]...\n"
++" Usage: hddtemp [OPTIONS] [TYPE:]DISK1 [[TYPE:]DISK2]...\n"
+ "\n"
+ " hddtemp displays the temperature of drives supplied in argument.\n"
+ " Drives must support S.M.A.R.T.\n"
+ "\n"
++" TYPE could be SATA, PATA or SCSI. If omitted hddtemp will try to guess.\n"
++"\n"
+ " -b --drivebase : display database file content that allow hddtemp to\n"
+ " recognize supported drives.\n"
+ " -D --debug : display various S.M.A.R.T. fields and their values.\n"
+@@ -128,6 +99,7 @@ msgid ""
+ " -d --daemon : run hddtemp in TCP/IP daemon mode (port %d by "
+ "default.)\n"
+ " -f --file=FILE : specify database file to use.\n"
++" -F --foreground : don't daemonize, stay in foreground.\n"
+ " -l --listen=addr : listen on a specific interface (in TCP/IP daemon "
+ "mode).\n"
+ " -n --numeric : print only the temperature.\n"
+@@ -135,6 +107,8 @@ msgid ""
+ " -s --separator=C : separator to use between fields (in TCP/IP daemon "
+ "mode).\n"
+ " -S --syslog=s : log temperature to syslog every s seconds.\n"
++" -u --unit=[C|F] : force output temperature either in Celsius or "
++"Fahrenheit.\n"
+ " -q --quiet : do not check if the drive is supported.\n"
+ " -v --version : display hddtemp version number.\n"
+ " -w --wake-up : wake-up the drive if need.\n"
+@@ -168,59 +142,90 @@ msgstr ""
+ "\n"
+ "óÏÏÂÝÅÎÉÑ Ï ÏÛÉÂËÁÈ É ÄÁÎÎÙÅ ÄÌÑ ÄÉÓËÏ× ÏÔÐÒÁ×ÌÑÊÔÅ ÎÁ <hddtemp@guzu.net>.\n"
+
+-#: src/hddtemp.c:522
++#: src/hddtemp.c:402
+ #, c-format
+ msgid "hddtemp version %s\n"
+ msgstr "÷ÅÒÓÉÑ hddtemp: %s\n"
+
+-#: src/hddtemp.c:547
++#: src/hddtemp.c:418
+ #, fuzzy, c-format
+ msgid "ERROR: invalid interval.\n"
+ msgstr "ïûéâëá: ÎÅ×ÅÒÎÙÊ ÒÁÚÄÅÌÉÔÅÌØ.\n"
+
+-#: src/hddtemp.c:547
++#: src/hddtemp.c:438
++#, c-format
+ msgid "Too few arguments: you must specify one drive, at least.\n"
+ msgstr ""
+
+-#: src/hddtemp.c:557
+-#, fuzzy
++#: src/hddtemp.c:448
++#, fuzzy, c-format
+ msgid "ERROR: can't use --debug and --daemon or --syslog options together.\n"
+ msgstr "ïûéâëá: ÏÄÎÏ×ÒÅÍÅÎÎÏÅ ÉÓÐÏÌØÚÏ×ÁÎÉÅ --debug É --daemon ÎÅÄÏÐÕÓÔÉÍÏ.\n"
+
+-#: src/hddtemp.c:583
++#: src/hddtemp.c:505
+ #, c-format
+ msgid "ERROR: %s: can't determine bus type (or this bus type is unknown)\n"
+ msgstr "ïûéâëá: %s: ÎÅ×ÏÚÍÏÖÎÏ ÏÐÒÅÄÅÌÉÔØ ÔÉÐ ÛÉÎÙ\n"
+
+-#: src/ata.c:66 src/scsi.c:68
++#: src/ata.c:66 src/scsi.c:64
+ msgid "unknown"
+ msgstr "ÎÅÉÚ×."
+
+-#: src/ata.c:98
++#: src/ata.c:85 src/ata.c:104 src/scsi.c:91
+ #, c-format
+-msgid "field(%d)\t = %d\n"
+-msgstr "ÐÏÌÅ(%d)\t = %d\n"
+-
+-#: src/ata.c:167
+ msgid "S.M.A.R.T. not available"
+ msgstr "S.M.A.R.T. ÎÅÄÏÓÔÕÐÅÎ"
+
+-#: src/db.c:180
++#: src/db.c:115
++#, c-format
++msgid ""
++"\n"
++"Regexp%s| Value | Description\n"
++"------%s---------------------\n"
++msgstr ""
++"\n"
++"òÅÇÜËÓ%s| úÎÁÞ. | ïÐÉÓÁÎÉÅ \n"
++"------%s---------------------\n"
++
++#: src/db.c:121
++#, c-format
++msgid "%s%s| %5d | %s\n"
++msgstr ""
++
++#: src/db.c:236
+ #, c-format
+ msgid "hddtemp: can't open %1$s: %2$s\n"
+ msgstr "hddtemp: ÎÅ ÍÏÇÕ ÏÔËÒÙÔØ %1$s: %2$s\n"
+
+-#: src/db.c:194
++#: src/db.c:250
+ #, c-format
+ msgid "ERROR: syntax error at line %1$d in %2$s\n"
+ msgstr "óÉÎÔÁËÓÉÞÅÓËÁÑ ïûéâëá × ÓÔÒÏËÅ %1$d ÆÁÊÌÁ %2$s\n"
+
+-#: src/db.c:201
++#: src/db.c:257
+ #, c-format
+ msgid " ERROR: line exceed %1$d characters in %2$s.\n"
+ msgstr "ïûéâëá: ÓÔÒÏËÁ ÄÌÉÎÎÅÅ %1$d ÓÉÍ×ÏÌÏ× × %2$s.\n"
+
+-#: src/scsi.c:112 src/scsi.c:130
++#: src/scsi.c:111 src/scsi.c:129
+ #, c-format
+ msgid "log sense failed : %s"
+ msgstr ""
++
++#~ msgid ""
++#~ "WARNING: Drive %s doesn't appear in the database of supported drives\n"
++#~ "WARNING: But using a common value, it reports something.\n"
++#~ "WARNING: Note that the temperature shown could be wrong.\n"
++#~ "WARNING: See --help, --debug and --drivebase options.\n"
++#~ "WARNING: And don't forget you can add your drive to hddtemp.db\n"
++#~ msgstr ""
++#~ "÷îéíáîéå: äÉÓË %s ÎÅ ×ËÌÀÞÅÎ × ÂÁÚÕ ÄÁÎÎÙÈ ÐÏÄÄÅÒÖÉ×ÁÅÍÙÈ ÐÒÉ×ÏÄÏ×.\n"
++#~ "÷îéíáîéå: îÏ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÒÁÓÐÒÏÓÔÒÁÎÅÎÎÙÈ ÐÁÒÁÍÅÔÒÏ× ÏÎ ÞÔÏ-ÔÏ "
++#~ "×ÙÄÁÅÔ.\n"
++#~ "÷îéíáîéå: úÁÍÅÔØÔÅ, ÞÔÏ ÐÏËÁÚÁÎÎÁÑ ÔÅÍÐÅÒÁÔÕÒÁ ÍÏÖÅÔ ÔÁËÏ×ÏÊ ÎÅ "
++#~ "Ñ×ÌÑÔØÓÑ.\n"
++#~ "÷îéíáîéå: óÍ. ÏÐÃÉÉ --help, --debug É --drivebase.\n"
++#~ "÷îéíáîéå: é ÎÅ ÚÁÂÕÄØÔÅ, ÞÔÏ ÍÏÖÎÏ ÄÏÂÁ×ÉÔØ ÐÒÉ×ÏÄ × hddtemp.db\n"
++
++#~ msgid "field(%d)\t = %d\n"
++#~ msgstr "ÐÏÌÅ(%d)\t = %d\n"
+Index: hddtemp-0.3-beta15/po/sv.po
+===================================================================
+--- hddtemp-0.3-beta15.orig/po/sv.po
++++ hddtemp-0.3-beta15/po/sv.po
+@@ -6,8 +6,8 @@
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: hddtemp 0.3-beta14-4\n"
+-"Report-Msgid-Bugs-To: hddtemp@guzu.net\n"
+-"POT-Creation-Date: 2005-02-25 22:43+0100\n"
++"Report-Msgid-Bugs-To: \n"
++"POT-Creation-Date: 2006-06-29 16:24+0200\n"
+ "PO-Revision-Date: 2005-11-02 19:03+0100\n"
+ "Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
+ "Language-Team: Swedish <sv@li.org>\n"
+@@ -17,23 +17,7 @@ msgstr ""
+ "X-Poedit-Language: swe\n"
+ "X-Poedit-Country: swe\n"
+
+-#: src/hddtemp.c:112
+-#, c-format
+-msgid ""
+-"\n"
+-"Regexp%s| Value | Description\n"
+-"------%s---------------------\n"
+-msgstr ""
+-"\n"
+-"Regexp%s| Värde | Beskrivning\n"
+-"------%s---------------------\n"
+-
+-#: src/hddtemp.c:118
+-#, c-format
+-msgid "%s%s| %5d | %s\n"
+-msgstr "%s%s| %5d | %s\n"
+-
+-#: src/hddtemp.c:161
++#: src/hddtemp.c:156
+ #, c-format
+ msgid ""
+ "\n"
+@@ -46,7 +30,7 @@ msgstr ""
+ "Modell: %s\n"
+ "\n"
+
+-#: src/hddtemp.c:188
++#: src/hddtemp.c:189
+ #, c-format
+ msgid ""
+ "WARNING: Drive %s doesn't seem to have a temperature sensor.\n"
+@@ -60,76 +44,63 @@ msgstr ""
+ "net).\n"
+ "VARNING: Se --help, --debug och --drivebase flaggorna.\n"
+
+-#: src/hddtemp.c:192
++#: src/hddtemp.c:197
+ #, c-format
+ msgid "%s: %s: no sensor\n"
+ msgstr "%s: %s: ingen sensor\n"
+
+-#: src/hddtemp.c:197
+-#, c-format
+-msgid ""
+-"WARNING: Drive %s doesn't appear in the database of supported drives\n"
+-"WARNING: But using a common value, it reports something.\n"
+-"WARNING: Note that the temperature shown could be wrong.\n"
+-"WARNING: See --help, --debug and --drivebase options.\n"
+-"WARNING: And don't forget you can add your drive to hddtemp.db\n"
+-msgstr ""
+-"VARNING: Disken %s verkar inte finnas i databasen över diskar som stöds\n"
+-"VARNING: Men använder man ett vanligt värde rapporterar den något.\n"
+-"VARNING: Notera att temperaturen som visas kan vara felaktig.\n"
+-"VARNING: Se --help, --debug och --drivebase flaggorna.\n"
+-"VARNING: Och glöm inte att du kan lägga till din disk till hddtemp.db\n"
+-
+-#: src/hddtemp.c:202
++#: src/hddtemp.c:211
+ #, c-format
+ msgid "%s: %s: %d%sC or %sF\n"
+ msgstr "%s: %s: %d%sC eller %sF\n"
+
+-#: src/hddtemp.c:214
++#: src/hddtemp.c:235
+ #, c-format
+ msgid "%s: %s: drive is sleeping\n"
+ msgstr "%s: %s: disken sover\n"
+
+-#: src/hddtemp.c:217
+-#, c-format
+-msgid "%s: %s: known drive, but it doesn't have a temperature sensor.\n"
++#: src/hddtemp.c:242
++#, fuzzy, c-format
++msgid "%s: %s: drive supported, but it doesn't have a temperature sensor.\n"
+ msgstr "%s: %s: känd disk men den har ingen temperatursensor.\n"
+
+-#: src/hddtemp.c:220
++#: src/hddtemp.c:246
+ #, c-format
+ msgid "ERROR: %s: %s: unknown returned status\n"
+ msgstr "FEL: %s: %s: okänd returnerad status\n"
+
+-#: src/hddtemp.c:235
+-#, c-format
++#: src/hddtemp.c:261
++#, fuzzy, c-format
+ msgid ""
+ "\n"
+ "If one of the field value seems to match the temperature, be sure to read\n"
+-"the hddtemp man page before sending me a report (section REPORT). Thanks.\n"
++"the hddtemp man page before sending a report (section REPORT). Thanks.\n"
+ msgstr ""
+ "\n"
+ "Om ett av fältvärdena verkar matcha temperaturen, var säker på att du\n"
+ "läst manualsidan för hddtemp före du skickar en rapport till mig (sektionen\n"
+ "REPORT). Tack.\n"
+
+-#: src/hddtemp.c:308
++#: src/hddtemp.c:338
+ #, c-format
+ msgid "ERROR: invalid separator.\n"
+ msgstr "FEL: ogiltig separator.\n"
+
+-#: src/hddtemp.c:319
++#: src/hddtemp.c:349
+ #, c-format
+ msgid "ERROR: invalid port number.\n"
+ msgstr "FEL: ogiltigt portnummer.\n"
+
+-#: src/hddtemp.c:329
+-#, c-format
++#: src/hddtemp.c:371
++#, fuzzy, c-format
+ msgid ""
+-" Usage: hddtemp [OPTIONS] DISK1 [DISK2]...\n"
++" Usage: hddtemp [OPTIONS] [TYPE:]DISK1 [[TYPE:]DISK2]...\n"
+ "\n"
+ " hddtemp displays the temperature of drives supplied in argument.\n"
+ " Drives must support S.M.A.R.T.\n"
+ "\n"
++" TYPE could be SATA, PATA or SCSI. If omitted hddtemp will try to guess.\n"
++"\n"
+ " -b --drivebase : display database file content that allow hddtemp to\n"
+ " recognize supported drives.\n"
+ " -D --debug : display various S.M.A.R.T. fields and their values.\n"
+@@ -139,6 +110,7 @@ msgid ""
+ " -d --daemon : run hddtemp in TCP/IP daemon mode (port %d by "
+ "default.)\n"
+ " -f --file=FILE : specify database file to use.\n"
++" -F --foreground : don't daemonize, stay in foreground.\n"
+ " -l --listen=addr : listen on a specific interface (in TCP/IP daemon "
+ "mode).\n"
+ " -n --numeric : print only the temperature.\n"
+@@ -146,6 +118,8 @@ msgid ""
+ " -s --separator=C : separator to use between fields (in TCP/IP daemon "
+ "mode).\n"
+ " -S --syslog=s : log temperature to syslog every s seconds.\n"
++" -u --unit=[C|F] : force output temperature either in Celsius or "
++"Fahrenheit.\n"
+ " -q --quiet : do not check if the drive is supported.\n"
+ " -v --version : display hddtemp version number.\n"
+ " -w --wake-up : wake-up the drive if need.\n"
+@@ -184,61 +158,91 @@ msgstr ""
+ "\n"
+ "Rapportera buggar eller nya hårddiskar till <hddtemp@guzu.net>.\n"
+
+-#: src/hddtemp.c:522
++#: src/hddtemp.c:402
+ #, c-format
+ msgid "hddtemp version %s\n"
+ msgstr "hddtemp version %s\n"
+
+-#: src/hddtemp.c:547
++#: src/hddtemp.c:418
+ #, c-format
+ msgid "ERROR: invalid interval.\n"
+ msgstr "FEL: ogiltigt intervall.\n"
+
+-#: src/hddtemp.c:547
++#: src/hddtemp.c:438
++#, c-format
+ msgid "Too few arguments: you must specify one drive, at least.\n"
+ msgstr "För få argument: du måste specificera åtminstone en disk.\n"
+
+-#: src/hddtemp.c:557
++#: src/hddtemp.c:448
++#, c-format
+ msgid "ERROR: can't use --debug and --daemon or --syslog options together.\n"
+ msgstr ""
+ "FEL: kan inte använda --debug och --daemon eller --syslog flaggorna "
+ "tillsammans.\n"
+
+-#: src/hddtemp.c:583
++#: src/hddtemp.c:505
+ #, c-format
+ msgid "ERROR: %s: can't determine bus type (or this bus type is unknown)\n"
+ msgstr ""
+ "FEL: %s: kan inte fastställa busstyp (eller så är denna busstyp okänd)\n"
+
+-#: src/ata.c:66 src/scsi.c:68
++#: src/ata.c:66 src/scsi.c:64
+ msgid "unknown"
+ msgstr "okänd"
+
+-#: src/ata.c:98
++#: src/ata.c:85 src/ata.c:104 src/scsi.c:91
+ #, c-format
+-msgid "field(%d)\t = %d\n"
+-msgstr "fält(%d)\t = %d\n"
+-
+-#: src/ata.c:167
+ msgid "S.M.A.R.T. not available"
+ msgstr "S.M.A.R.T. är inte tillgänglig"
+
+-#: src/db.c:180
++#: src/db.c:115
++#, c-format
++msgid ""
++"\n"
++"Regexp%s| Value | Description\n"
++"------%s---------------------\n"
++msgstr ""
++"\n"
++"Regexp%s| Värde | Beskrivning\n"
++"------%s---------------------\n"
++
++#: src/db.c:121
++#, c-format
++msgid "%s%s| %5d | %s\n"
++msgstr "%s%s| %5d | %s\n"
++
++#: src/db.c:236
+ #, c-format
+ msgid "hddtemp: can't open %1$s: %2$s\n"
+ msgstr "hddtemp: kan inte öppna %1$s: %2$s\n"
+
+-#: src/db.c:194
++#: src/db.c:250
+ #, c-format
+ msgid "ERROR: syntax error at line %1$d in %2$s\n"
+ msgstr "FEL: syntaxfel på rad %1$d i %2$s\n"
+
+-#: src/db.c:201
++#: src/db.c:257
+ #, c-format
+ msgid " ERROR: line exceed %1$d characters in %2$s.\n"
+ msgstr " FEL: raden överstiger %1$d tecken i %2$s.\n"
+
+-#: src/scsi.c:112 src/scsi.c:130
++#: src/scsi.c:111 src/scsi.c:129
+ #, c-format
+ msgid "log sense failed : %s"
+ msgstr "igenkänning av logg misslyckades : %s"
++
++#~ msgid ""
++#~ "WARNING: Drive %s doesn't appear in the database of supported drives\n"
++#~ "WARNING: But using a common value, it reports something.\n"
++#~ "WARNING: Note that the temperature shown could be wrong.\n"
++#~ "WARNING: See --help, --debug and --drivebase options.\n"
++#~ "WARNING: And don't forget you can add your drive to hddtemp.db\n"
++#~ msgstr ""
++#~ "VARNING: Disken %s verkar inte finnas i databasen över diskar som stöds\n"
++#~ "VARNING: Men använder man ett vanligt värde rapporterar den något.\n"
++#~ "VARNING: Notera att temperaturen som visas kan vara felaktig.\n"
++#~ "VARNING: Se --help, --debug och --drivebase flaggorna.\n"
++#~ "VARNING: Och glöm inte att du kan lägga till din disk till hddtemp.db\n"
++
++#~ msgid "field(%d)\t = %d\n"
++#~ msgstr "fält(%d)\t = %d\n"
+Index: hddtemp-0.3-beta15/po/pt.po
+===================================================================
+--- hddtemp-0.3-beta15.orig/po/pt.po
++++ hddtemp-0.3-beta15/po/pt.po
+@@ -7,7 +7,7 @@ msgid ""
+ msgstr ""
+ "Project-Id-Version: hddtemp 0.3-beta14\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2005-02-25 22:43+0100\n"
++"POT-Creation-Date: 2006-06-29 16:24+0200\n"
+ "PO-Revision-Date: 2006-03-29 23:22+0000\n"
+ "Last-Translator: Miguel Figueiredo <elmig@debianp.org>\n"
+ "Language-Team: Portuguese <traduz@debianpt.org>\n"
+@@ -15,23 +15,7 @@ msgstr ""
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+
+-#: src/hddtemp.c:112
+-#, c-format
+-msgid ""
+-"\n"
+-"Regexp%s| Value | Description\n"
+-"------%s---------------------\n"
+-msgstr ""
+-"\n"
+-"Regexp%s| Valor | Descrição\n"
+-"------%s-------------------\n"
+-
+-#: src/hddtemp.c:118
+-#, c-format
+-msgid "%s%s| %5d | %s\n"
+-msgstr "%s%s| %5d | %s\n"
+-
+-#: src/hddtemp.c:161
++#: src/hddtemp.c:156
+ #, c-format
+ msgid ""
+ "\n"
+@@ -44,7 +28,7 @@ msgstr ""
+ "Modelo: %s\n"
+ "\n"
+
+-#: src/hddtemp.c:188
++#: src/hddtemp.c:189
+ #, c-format
+ msgid ""
+ "WARNING: Drive %s doesn't seem to have a temperature sensor.\n"
+@@ -54,79 +38,68 @@ msgid ""
+ msgstr ""
+ "AVISO: O disco %s não parece ter um sensor de temperatura.\n"
+ "AVISO: Isto não significa que não tem nenhum.\n"
+-"AVISO: Se tem a certeza que tem um, por favor contacte-me (hddtemp@guzu.net).\n"
++"AVISO: Se tem a certeza que tem um, por favor contacte-me (hddtemp@guzu."
++"net).\n"
+ "AVISO: Veja as opções --help, --debug e --drivebase.\n"
+
+-#: src/hddtemp.c:192
++#: src/hddtemp.c:197
+ #, c-format
+ msgid "%s: %s: no sensor\n"
+ msgstr "%s: %s: sem sensor\n"
+
+-#: src/hddtemp.c:197
+-#, c-format
+-msgid ""
+-"WARNING: Drive %s doesn't appear in the database of supported drives\n"
+-"WARNING: But using a common value, it reports something.\n"
+-"WARNING: Note that the temperature shown could be wrong.\n"
+-"WARNING: See --help, --debug and --drivebase options.\n"
+-"WARNING: And don't forget you can add your drive to hddtemp.db\n"
+-msgstr ""
+-"AVISO: O disco %s não parece estar na base de dados de discos suportados\n"
+-"AVISO: Mas ao utilizar um valor usual, relata alguma coisa.\n"
+-"AVISO: Note que a temperatura mostrada pode estar errada.\n"
+-"AVISO: Veja as opções --help, --debug e --frivebase.\n"
+-"AVISO: E não se esqueça de adicionar o seu disco a hddtemp.db\n"
+-
+-#: src/hddtemp.c:202
++#: src/hddtemp.c:211
+ #, c-format
+ msgid "%s: %s: %d%sC or %sF\n"
+ msgstr "%s: %s: %d%sC ou %sF\n"
+
+-#: src/hddtemp.c:214
++#: src/hddtemp.c:235
+ #, c-format
+ msgid "%s: %s: drive is sleeping\n"
+ msgstr "%s: %s: o disco está adormecido\n"
+
+-#: src/hddtemp.c:217
+-#, c-format
+-msgid "%s: %s: known drive, but it doesn't have a temperature sensor.\n"
++#: src/hddtemp.c:242
++#, fuzzy, c-format
++msgid "%s: %s: drive supported, but it doesn't have a temperature sensor.\n"
+ msgstr "%s: %s: disco conhecido, mas não tem um sensor de temperatura.\n"
+
+-#: src/hddtemp.c:220
++#: src/hddtemp.c:246
+ #, c-format
+ msgid "ERROR: %s: %s: unknown returned status\n"
+ msgstr "ERRO: %s: %s: estado devolvido desconhecido\n"
+
+-#: src/hddtemp.c:235
+-#, c-format
++#: src/hddtemp.c:261
++#, fuzzy, c-format
+ msgid ""
+ "\n"
+ "If one of the field value seems to match the temperature, be sure to read\n"
+-"the hddtemp man page before sending me a report (section REPORT). Thanks.\n"
++"the hddtemp man page before sending a report (section REPORT). Thanks.\n"
+ msgstr ""
+ "\n"
+-"Se um dos campos de valores parecer coincidir com a temperatura, assegure-se\n"
++"Se um dos campos de valores parecer coincidir com a temperatura, assegure-"
++"se\n"
+ "que lê a página do manual hddtemp antes de me enviar um relatório (secção\n"
+ "REPORT). Obrigado.\n"
+
+-#: src/hddtemp.c:308
++#: src/hddtemp.c:338
+ #, c-format
+ msgid "ERROR: invalid separator.\n"
+ msgstr "ERRO: separador inválido.\n"
+
+-#: src/hddtemp.c:319
++#: src/hddtemp.c:349
+ #, c-format
+ msgid "ERROR: invalid port number.\n"
+ msgstr "ERRO: número de port inválido\n"
+
+-#: src/hddtemp.c:329
+-#, c-format
++#: src/hddtemp.c:371
++#, fuzzy, c-format
+ msgid ""
+-" Usage: hddtemp [OPTIONS] DISK1 [DISK2]...\n"
++" Usage: hddtemp [OPTIONS] [TYPE:]DISK1 [[TYPE:]DISK2]...\n"
+ "\n"
+ " hddtemp displays the temperature of drives supplied in argument.\n"
+ " Drives must support S.M.A.R.T.\n"
+ "\n"
++" TYPE could be SATA, PATA or SCSI. If omitted hddtemp will try to guess.\n"
++"\n"
+ " -b --drivebase : display database file content that allow hddtemp to\n"
+ " recognize supported drives.\n"
+ " -D --debug : display various S.M.A.R.T. fields and their values.\n"
+@@ -136,6 +109,7 @@ msgid ""
+ " -d --daemon : run hddtemp in TCP/IP daemon mode (port %d by "
+ "default.)\n"
+ " -f --file=FILE : specify database file to use.\n"
++" -F --foreground : don't daemonize, stay in foreground.\n"
+ " -l --listen=addr : listen on a specific interface (in TCP/IP daemon "
+ "mode).\n"
+ " -n --numeric : print only the temperature.\n"
+@@ -143,6 +117,8 @@ msgid ""
+ " -s --separator=C : separator to use between fields (in TCP/IP daemon "
+ "mode).\n"
+ " -S --syslog=s : log temperature to syslog every s seconds.\n"
++" -u --unit=[C|F] : force output temperature either in Celsius or "
++"Fahrenheit.\n"
+ " -q --quiet : do not check if the drive is supported.\n"
+ " -v --version : display hddtemp version number.\n"
+ " -w --wake-up : wake-up the drive if need.\n"
+@@ -156,19 +132,23 @@ msgstr ""
+ " hddtemp mostra a temperatura dos discos indicados no argumento.\n"
+ " Os discos têm de suportar S.M.A.R.T.\n"
+ "\n"
+-" -b --drivebase : mostrar o conteúdo do ficheiro de base de dados que\n"
++" -b\t --drivebase : mostrar o conteúdo do ficheiro de base de dados que\n"
+ " permite ao hddtemp reconhecer os discos suportados.\n"
+-" -D --debug : mostrar vários campos S.M.A.R.T. e os seus valores.\n"
+-" Útil para encontrar um valor que pareça coincidir com "
+-" a temperatura e/ou para me enviar um relatório.\n"
++" -D\t --debug : mostrar vários campos S.M.A.R.T. e os seus valores.\n"
++" Útil para encontrar um valor que pareça coincidir "
++"com a temperatura e/ou para me enviar um relatório.\n"
+ " (feito para cada disco indicado).\n"
+-" -d --daemon : correr o hddtemp no modo daemon TCP/IP\n (porto %d por omissão.)\n"
++" -d --daemon : correr o hddtemp no modo daemon TCP/IP\n"
++" (porto %d por omissão.)\n"
+ " -f --file=FILE : especificar o ficheiro de base de dados a utilizar.\n"
+-" -l --listen=addr : escutar um interface específico (no modo daemon TCP/IP).\n"
++" -l --listen=addr : escutar um interface específico (no modo daemon TCP/"
++"IP).\n"
+ " -n --numeric : escrever apenas a temperatura.\n"
+ " -p --port=# : port para escutar (no modo daemon TCP/IP).\n"
+-" -s --separator=C : separador a utilizar entre campos (no modo daemon TCP/IP).\n"
+-" -S --syslog=s : registar a temperatura para o syslog a cada s segundos.\n"
++" -s --separator=C : separador a utilizar entre campos (no modo daemon "
++"TCP/IP).\n"
++" -S --syslog=s : registar a temperatura para o syslog a cada s "
++"segundos.\n"
+ " -q --quiet : não verificar se o disco é suportado.\n"
+ " -v --version : mostrar o número da versão do hddtemp.\n"
+ " -w --wake-up : acordar o disco se necessário.\n"
+@@ -177,58 +157,93 @@ msgstr ""
+ "\n"
+ "Relatar bugs ou novos discos para <hddtemp@guzu.net>.\n"
+
+-#: src/hddtemp.c:522
++#: src/hddtemp.c:402
+ #, c-format
+ msgid "hddtemp version %s\n"
+ msgstr "hddtemp versão %s\n"
+
+-#: src/hddtemp.c:547
++#: src/hddtemp.c:418
+ #, c-format
+ msgid "ERROR: invalid interval.\n"
+ msgstr "ERRO: intervalo inválido.\n"
+
+-#: src/hddtemp.c:547
++#: src/hddtemp.c:438
++#, c-format
+ msgid "Too few arguments: you must specify one drive, at least.\n"
+-msgstr "Número de argumentos insuficiente: tem de especificar pelo menos um disco.\n"
++msgstr ""
++"Número de argumentos insuficiente: tem de especificar pelo menos um disco.\n"
+
+-#: src/hddtemp.c:557
++#: src/hddtemp.c:448
++#, c-format
+ msgid "ERROR: can't use --debug and --daemon or --syslog options together.\n"
+-msgstr "ERRO: não pode utilizar em conjunto as opções --debug e --daemon ou --syslog.\n"
++msgstr ""
++"ERRO: não pode utilizar em conjunto as opções --debug e --daemon ou --"
++"syslog.\n"
+
+-#: src/hddtemp.c:583
++#: src/hddtemp.c:505
+ #, c-format
+ msgid "ERROR: %s: can't determine bus type (or this bus type is unknown)\n"
+-msgstr "ERRO: %s: não é possível determinar o tipo do bus (ou este tipo de bus é desconhecido)\n"
++msgstr ""
++"ERRO: %s: não é possível determinar o tipo do bus (ou este tipo de bus é "
++"desconhecido)\n"
+
+-#: src/ata.c:66 src/scsi.c:68
++#: src/ata.c:66 src/scsi.c:64
+ msgid "unknown"
+ msgstr "desconhecido"
+
+-#: src/ata.c:98
++#: src/ata.c:85 src/ata.c:104 src/scsi.c:91
+ #, c-format
+-msgid "field(%d)\t = %d\n"
+-msgstr "campo(%d)\t = %d\n"
+-
+-#: src/ata.c:167
+ msgid "S.M.A.R.T. not available"
+ msgstr "S.M.A.R.T. não está disponível"
+
+-#: src/db.c:180
++#: src/db.c:115
++#, c-format
++msgid ""
++"\n"
++"Regexp%s| Value | Description\n"
++"------%s---------------------\n"
++msgstr ""
++"\n"
++"Regexp%s| Valor | Descrição\n"
++"------%s-------------------\n"
++
++#: src/db.c:121
++#, c-format
++msgid "%s%s| %5d | %s\n"
++msgstr "%s%s| %5d | %s\n"
++
++#: src/db.c:236
+ #, c-format
+ msgid "hddtemp: can't open %1$s: %2$s\n"
+ msgstr "hddtemp: não pode abrir %1$s: %2$s\n"
+
+-#: src/db.c:194
++#: src/db.c:250
+ #, c-format
+ msgid "ERROR: syntax error at line %1$d in %2$s\n"
+ msgstr "ERRO: erro de sintaxe na linha %1$d em %2$s\n"
+
+-#: src/db.c:201
++#: src/db.c:257
+ #, c-format
+ msgid " ERROR: line exceed %1$d characters in %2$s.\n"
+ msgstr " ERRO: a linha execedeu %1$d caracteres em %2$s.\n"
+
+-#: src/scsi.c:112 src/scsi.c:130
++#: src/scsi.c:111 src/scsi.c:129
+ #, c-format
+ msgid "log sense failed : %s"
+ msgstr "detecção de log falhou: %s"
++
++#~ msgid ""
++#~ "WARNING: Drive %s doesn't appear in the database of supported drives\n"
++#~ "WARNING: But using a common value, it reports something.\n"
++#~ "WARNING: Note that the temperature shown could be wrong.\n"
++#~ "WARNING: See --help, --debug and --drivebase options.\n"
++#~ "WARNING: And don't forget you can add your drive to hddtemp.db\n"
++#~ msgstr ""
++#~ "AVISO: O disco %s não parece estar na base de dados de discos suportados\n"
++#~ "AVISO: Mas ao utilizar um valor usual, relata alguma coisa.\n"
++#~ "AVISO: Note que a temperatura mostrada pode estar errada.\n"
++#~ "AVISO: Veja as opções --help, --debug e --frivebase.\n"
++#~ "AVISO: E não se esqueça de adicionar o seu disco a hddtemp.db\n"
++
++#~ msgid "field(%d)\t = %d\n"
++#~ msgstr "campo(%d)\t = %d\n"
+Index: hddtemp-0.3-beta15/po/de.po
+===================================================================
+--- /dev/null
++++ hddtemp-0.3-beta15/po/de.po
+@@ -0,0 +1,250 @@
++# German translation of hddtemp.
++# Copyright (C) 2008 Free Software Foundation, Inc.
++# This file is distributed under the same license as the hddtemp package.
++# Vinzenz Vietzke <vinz@v1nz.org>, 2008.
++# ,
++#
++#
++msgid ""
++msgstr ""
++"Project-Id-Version: hddtemp 0.3-beta15-44\n"
++"Report-Msgid-Bugs-To: hddtemp@packages.debian.org\n"
++"POT-Creation-Date: 2006-06-29 16:24+0200\n"
++"PO-Revision-Date: 2011-08-30 16:40+0200\n"
++"Last-Translator: Vinzenz Vietzke <vinz@v1nz.org>\n"
++"Language-Team: <debian-l10n-german@lists.debian.org>\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=UTF-8\n"
++"Content-Transfer-Encoding: 8bit"
++
++#: src/hddtemp.c:156
++#, c-format
++msgid ""
++"\n"
++"================= hddtemp %s ==================\n"
++"Model: %s\n"
++"\n"
++msgstr ""
++"\n"
++"================= hddtemp %s ==================\n"
++"Modell: %s\n"
++"\n"
++
++#: src/hddtemp.c:189
++#, c-format
++msgid ""
++"WARNING: Drive %s doesn't seem to have a temperature sensor.\n"
++"WARNING: This doesn't mean it hasn't got one.\n"
++"WARNING: If you are sure it has one, please contact me (hddtemp@guzu."
++"net).\n"
++"WARNING: See --help, --debug and --drivebase options.\n"
++msgstr ""
++"WARNUNG: Laufwerk %s scheint keinen Temperatur-Sensor zu haben.\n"
++"WARNUNG: Das bedeutet nicht, dass es keinen besitzt.\n"
++"WARNUNG: Falls Sie sicher sind, dass es einen besitzt, kontaktieren Sie "
++"mich bitte (hddtemp@guzu.net).\n"
++"WARNUNG: Siehe Optionen --help, --debug und --drivebase.\n"
++
++#: src/hddtemp.c:197
++#, c-format
++msgid "%s: %s: no sensor\n"
++msgstr "%s: %s: kein Sensor\n"
++
++#: src/hddtemp.c:211
++#, c-format
++msgid "%s: %s: %d%sC or %sF\n"
++msgstr "%s: %s: %d%s°C oder %s°F\n"
++
++#: src/hddtemp.c:235
++#, c-format
++msgid "%s: %s: drive is sleeping\n"
++msgstr "%s: %s: Laufwerk schläft\n"
++
++#: src/hddtemp.c:242
++#, c-format
++msgid "%s: %s: drive supported, but it doesn't have a temperature sensor.\n"
++msgstr ""
++"%s: %s: Laufwerk unterstützt, aber es hat keinen Temperatur-Sensor.\n"
++
++#: src/hddtemp.c:246
++#, c-format
++msgid "ERROR: %s: %s: unknown returned status\n"
++msgstr "FEHLER: %s: %s: zurückgegebener Status unbekannt\n"
++
++#: src/hddtemp.c:261
++#, c-format
++msgid ""
++"\n"
++"If one of the field value seems to match the temperature, be sure to read\n"
++"the hddtemp man page before sending a report (section REPORT). Thanks.\n"
++msgstr ""
++"\n"
++"Falls einer der Feldwerte der Temperatur zu entsprechen scheint, stellen "
++"Sie\n"
++"sicher, die hddtemp-Handbuchseite gelesen zu haben, bevor Sie einen "
++"Bericht\n"
++"senden (Abschnitt BERICHT). Danke.\n"
++
++#: src/hddtemp.c:338
++#, c-format
++msgid "ERROR: invalid separator.\n"
++msgstr "FEHLER: ungültiges Trennzeichen.\n"
++
++#: src/hddtemp.c:349
++#, c-format
++msgid "ERROR: invalid port number.\n"
++msgstr "FEHLER: ungültige Portnummer.\n"
++
++#: src/hddtemp.c:371
++#, c-format
++msgid ""
++" Usage: hddtemp [OPTIONS] [TYPE:]DISK1 [[TYPE:]DISK2]...\n"
++"\n"
++" hddtemp displays the temperature of drives supplied in argument.\n"
++" Drives must support S.M.A.R.T.\n"
++"\n"
++" TYPE could be SATA, PATA or SCSI. If omitted hddtemp will try to guess.\n"
++"\n"
++" -b --drivebase : display database file content that allow hddtemp "
++"to\n"
++" recognize supported drives.\n"
++" -D --debug : display various S.M.A.R.T. fields and their "
++"values.\n"
++" Useful to find a value that seems to match the\n"
++" temperature and/or to send me a report.\n"
++" (done for every drive supplied).\n"
++" -d --daemon : run hddtemp in TCP/IP daemon mode (port %d by "
++"default.)\n"
++" -f --file=FILE : specify database file to use.\n"
++" -F --foreground : don't daemonize, stay in foreground.\n"
++" -l --listen=addr : listen on a specific interface (in TCP/IP daemon "
++"mode).\n"
++" -n --numeric : print only the temperature.\n"
++" -p --port=# : port to listen to (in TCP/IP daemon mode).\n"
++" -s --separator=C : separator to use between fields (in TCP/IP daemon "
++"mode).\n"
++" -S --syslog=s : log temperature to syslog every s seconds.\n"
++" -u --unit=[C|F] : force output temperature either in Celsius or "
++"Fahrenheit.\n"
++" -q --quiet : do not check if the drive is supported.\n"
++" -v --version : display hddtemp version number.\n"
++" -w --wake-up : wake-up the drive if need.\n"
++" -4 : listen on IPv4 sockets only.\n"
++" -6 : listen on IPv6 sockets only.\n"
++"\n"
++"Report bugs or new drives to <hddtemp@guzu.net>.\n"
++msgstr ""
++" Verwendung: hddtemp [OPTIONEN] [TYP:]LAUFWERK1 [[TYP:]LAUFWERK2]...\n"
++"\n"
++" hddtemp zeigt die Temperatur der via Argument angegeben Laufwerke.\n"
++" Laufwerke müssen S.M.A.R.T. unterstützen.\n"
++"\n"
++" TYP kann SATA, PATA oder SCSI sein. Falls ausgelassen, wird hddtemp \n"
++" versuchen, diesen zu erraten.\n"
++"\n"
++" -b --drivebase : Datenbank-Datei-Inhalt anzeigen, der hddtemp "
++"erlaubt\n"
++" unterstützte Laufwerke zu erkennen.\n"
++" -D --debug : verschiedene S.M.A.R.T.-Felder und deren Werte "
++"anzeigen.\n"
++" Nützlich, um Werte zu finden, die der Temperatur "
++"entsprechen\n"
++" und/oder um mir einen Bericht zu senden.\n"
++" (bereits erledigt für jedes bereitgestellte "
++"Laufwerk).\n"
++" -d --daemon : hddtemp im TCP/IP-Daemon-Modus ausführen "
++"(Standardmäßig Port %d)\n"
++" -f --file=DATEI : zu verwendende Datenbank-Datei festlegen.\n"
++" -F --foreground : nicht daemonisieren, im Vordergrund bleiben.\n"
++" -l --listen=addr : auf einer bestimmten Schnittstelle auf Anfragen "
++"warten (im TCP/IP-Daemon-Modus).\n"
++" -n --numeric : nur die Temperatur ausgeben.\n"
++" -p --port=# : Port, auf dem auf Anfragen gewartet werden soll "
++"(im TCP/IP-Daemon-Modus).\n"
++" -s --separator=C : Trennzeichen zur Verwendung zwischen Feldern (im "
++"TCP/IP-Daemon-Modus).\n"
++" -S --syslog=s : Temperatur alle s Sekunden in das syslog "
++"eintragen.\n"
++" -u --unit=[C|F] : Ausgabe der Temperatur entweder in Celsius oder "
++"Fahrenheit erzwingen.\n"
++" -q --quiet : nicht prüfen, ob das Laufwerk unterstützt wird.\n"
++" -v --version : Versionsnummer von hddtemp anzeigen.\n"
++" -w --wake-up : Laufwerk bei Bedarf aufwecken.\n"
++" -4 : nur auf IPv4-Sockets auf Anfragen warten.\n"
++" -6 : nur auf IPv6-Sockets auf Anfragen warten.\n"
++"\n"
++"Fehler oder neue Laufwerke an <hddtemp@guzu.net> melden.\n"
++
++#: src/hddtemp.c:402
++#, c-format
++msgid "hddtemp version %s\n"
++msgstr "hddtemp Version %s\n"
++
++#: src/hddtemp.c:418
++#, c-format
++msgid "ERROR: invalid interval.\n"
++msgstr "FEHLER: ungültiges Intervall.\n"
++
++#: src/hddtemp.c:438
++#, c-format
++msgid "Too few arguments: you must specify one drive, at least.\n"
++msgstr "Zu wenige Argumente: Sie müssen mindestens ein Laufwerk angeben.\n"
++
++#: src/hddtemp.c:448
++#, c-format
++msgid "ERROR: can't use --debug and --daemon or --syslog options together.\n"
++msgstr ""
++"FEHLER: kann Optionen --debug und --daemon oder --syslog nicht zusammen "
++"verwenden.\n"
++
++#: src/hddtemp.c:505
++#, c-format
++msgid "ERROR: %s: can't determine bus type (or this bus type is unknown)\n"
++msgstr ""
++"FEHLER: %s: kann Bus-Typ nicht ermitteln (oder dieser Bus-Typ ist "
++"unbekannt)\n"
++
++#: src/ata.c:66 src/scsi.c:64
++msgid "unknown"
++msgstr "unbekannt"
++
++#: src/ata.c:85 src/ata.c:104 src/scsi.c:91
++#, c-format
++msgid "S.M.A.R.T. not available"
++msgstr "S.M.A.R.T. nicht verfügbar"
++
++#: src/db.c:115
++#, c-format
++msgid ""
++"\n"
++"Regexp%s| Value | Description\n"
++"------%s---------------------\n"
++msgstr ""
++"\n"
++"Regexp%s| Wert | Beschreibung\n"
++"------%s---------------------\n"
++
++#: src/db.c:121
++#, c-format
++msgid "%s%s| %5d | %s\n"
++msgstr "%s%s| %5d | %s\n"
++
++#: src/db.c:236
++#, c-format
++msgid "hddtemp: can't open %1$s: %2$s\n"
++msgstr "hddtemp: kann %1$s nicht öffnen: %2$s\n"
++
++#: src/db.c:250
++#, c-format
++msgid "ERROR: syntax error at line %1$d in %2$s\n"
++msgstr "FEHLER: Syntaxfehler in Zeile %1$d in %2$s\n"
++
++#: src/db.c:257
++#, c-format
++msgid " ERROR: line exceed %1$d characters in %2$s.\n"
++msgstr " FEHLER: Zeile überschreitet %1$d Zeichen in %2$s.\n"
++
++#: src/scsi.c:111 src/scsi.c:129
++#, c-format
++msgid "log sense failed : %s"
++msgstr "Protokoll-Erkennung fehlgeschlagen : %s"
+Index: hddtemp-0.3-beta15/po/LINGUAS
+===================================================================
+--- hddtemp-0.3-beta15.orig/po/LINGUAS
++++ hddtemp-0.3-beta15/po/LINGUAS
+@@ -1,2 +1,2 @@
+ # Set of available languages.
+-fr pt ru sv
++de fr pt ru sv
+Index: hddtemp-0.3-beta15/po/hddtemp.pot
+===================================================================
+--- hddtemp-0.3-beta15.orig/po/hddtemp.pot
++++ hddtemp-0.3-beta15/po/hddtemp.pot
+@@ -1,35 +1,22 @@
+-
+-# Copyright (C) 2006 Free Software Foundation, Inc.
+-# This file is distributed under the same license as the 'hddtemp' package.
+-# Emmanuel VARAGNAT <hddtemp@guzu.net>, 2006.
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR Free Software Foundation, Inc.
++# This file is distributed under the same license as the PACKAGE package.
++# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+ #
+ #, fuzzy
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+-"Report-Msgid-Bugs-To: hddtemp@guzu.net\n"
+-"POT-Creation-Date: 2005-02-25 22:43+0100\n"
++"Report-Msgid-Bugs-To: \n"
++"POT-Creation-Date: 2006-06-29 16:24+0200\n"
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+-"Last-Translator: Emmanuel Varagnat <hddtemp@guzu.net>\n"
++"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+ "Language-Team: LANGUAGE <LL@li.org>\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=CHARSET\n"
+ "Content-Transfer-Encoding: 8bit\n"
+
+-#: src/hddtemp.c:112
+-#, c-format
+-msgid ""
+-"\n"
+-"Regexp%s| Value | Description\n"
+-"------%s---------------------\n"
+-msgstr ""
+-
+-#: src/hddtemp.c:118
+-#, c-format
+-msgid "%s%s| %5d | %s\n"
+-msgstr ""
+-
+-#: src/hddtemp.c:161
++#: src/hddtemp.c:156
+ #, c-format
+ msgid ""
+ "\n"
+@@ -38,7 +25,7 @@ msgid ""
+ "\n"
+ msgstr ""
+
+-#: src/hddtemp.c:188
++#: src/hddtemp.c:189
+ #, c-format
+ msgid ""
+ "WARNING: Drive %s doesn't seem to have a temperature sensor.\n"
+@@ -47,67 +34,59 @@ msgid ""
+ "WARNING: See --help, --debug and --drivebase options.\n"
+ msgstr ""
+
+-#: src/hddtemp.c:192
+-#, c-format
+-msgid "%s: %s: no sensor\n"
+-msgstr ""
+-
+ #: src/hddtemp.c:197
+ #, c-format
+-msgid ""
+-"WARNING: Drive %s doesn't appear in the database of supported drives\n"
+-"WARNING: But using a common value, it reports something.\n"
+-"WARNING: Note that the temperature shown could be wrong.\n"
+-"WARNING: See --help, --debug and --drivebase options.\n"
+-"WARNING: And don't forget you can add your drive to hddtemp.db\n"
++msgid "%s: %s: no sensor\n"
+ msgstr ""
+
+-#: src/hddtemp.c:202
++#: src/hddtemp.c:211
+ #, c-format
+ msgid "%s: %s: %d%sC or %sF\n"
+ msgstr ""
+
+-#: src/hddtemp.c:214
++#: src/hddtemp.c:235
+ #, c-format
+ msgid "%s: %s: drive is sleeping\n"
+ msgstr ""
+
+-#: src/hddtemp.c:217
++#: src/hddtemp.c:242
+ #, c-format
+-msgid "%s: %s: known drive, but it doesn't have a temperature sensor.\n"
++msgid "%s: %s: drive supported, but it doesn't have a temperature sensor.\n"
+ msgstr ""
+
+-#: src/hddtemp.c:220
++#: src/hddtemp.c:246
+ #, c-format
+ msgid "ERROR: %s: %s: unknown returned status\n"
+ msgstr ""
+
+-#: src/hddtemp.c:235
++#: src/hddtemp.c:261
+ #, c-format
+ msgid ""
+ "\n"
+ "If one of the field value seems to match the temperature, be sure to read\n"
+-"the hddtemp man page before sending me a report (section REPORT). Thanks.\n"
++"the hddtemp man page before sending a report (section REPORT). Thanks.\n"
+ msgstr ""
+
+-#: src/hddtemp.c:308
++#: src/hddtemp.c:338
+ #, c-format
+ msgid "ERROR: invalid separator.\n"
+ msgstr ""
+
+-#: src/hddtemp.c:319
++#: src/hddtemp.c:349
+ #, c-format
+ msgid "ERROR: invalid port number.\n"
+ msgstr ""
+
+-#: src/hddtemp.c:329
++#: src/hddtemp.c:371
+ #, c-format
+ msgid ""
+-" Usage: hddtemp [OPTIONS] DISK1 [DISK2]...\n"
++" Usage: hddtemp [OPTIONS] [TYPE:]DISK1 [[TYPE:]DISK2]...\n"
+ "\n"
+ " hddtemp displays the temperature of drives supplied in argument.\n"
+ " Drives must support S.M.A.R.T.\n"
+ "\n"
++" TYPE could be SATA, PATA or SCSI. If omitted hddtemp will try to guess.\n"
++"\n"
+ " -b --drivebase : display database file content that allow hddtemp to\n"
+ " recognize supported drives.\n"
+ " -D --debug : display various S.M.A.R.T. fields and their values.\n"
+@@ -117,6 +96,7 @@ msgid ""
+ " -d --daemon : run hddtemp in TCP/IP daemon mode (port %d by "
+ "default.)\n"
+ " -f --file=FILE : specify database file to use.\n"
++" -F --foreground : don't daemonize, stay in foreground.\n"
+ " -l --listen=addr : listen on a specific interface (in TCP/IP daemon "
+ "mode).\n"
+ " -n --numeric : print only the temperature.\n"
+@@ -124,6 +104,8 @@ msgid ""
+ " -s --separator=C : separator to use between fields (in TCP/IP daemon "
+ "mode).\n"
+ " -S --syslog=s : log temperature to syslog every s seconds.\n"
++" -u --unit=[C|F] : force output temperature either in Celsius or "
++"Fahrenheit.\n"
+ " -q --quiet : do not check if the drive is supported.\n"
+ " -v --version : display hddtemp version number.\n"
+ " -w --wake-up : wake-up the drive if need.\n"
+@@ -133,58 +115,69 @@ msgid ""
+ "Report bugs or new drives to <hddtemp@guzu.net>.\n"
+ msgstr ""
+
+-#: src/hddtemp.c:522
++#: src/hddtemp.c:402
+ #, c-format
+ msgid "hddtemp version %s\n"
+ msgstr ""
+
+-#: src/hddtemp.c:547
++#: src/hddtemp.c:418
+ #, c-format
+ msgid "ERROR: invalid interval.\n"
+ msgstr ""
+
+-#: src/hddtemp.c:547
++#: src/hddtemp.c:438
++#, c-format
+ msgid "Too few arguments: you must specify one drive, at least.\n"
+ msgstr ""
+
+-#: src/hddtemp.c:557
++#: src/hddtemp.c:448
++#, c-format
+ msgid "ERROR: can't use --debug and --daemon or --syslog options together.\n"
+ msgstr ""
+
+-#: src/hddtemp.c:583
++#: src/hddtemp.c:505
+ #, c-format
+ msgid "ERROR: %s: can't determine bus type (or this bus type is unknown)\n"
+ msgstr ""
+
+-#: src/ata.c:66 src/scsi.c:68
++#: src/ata.c:66 src/scsi.c:64
+ msgid "unknown"
+ msgstr ""
+
+-#: src/ata.c:98
++#: src/ata.c:85 src/ata.c:104 src/scsi.c:91
+ #, c-format
+-msgid "field(%d)\t = %d\n"
++msgid "S.M.A.R.T. not available"
+ msgstr ""
+
+-#: src/ata.c:167
+-msgid "S.M.A.R.T. not available"
++#: src/db.c:115
++#, c-format
++msgid ""
++"\n"
++"Regexp%s| Value | Description\n"
++"------%s---------------------\n"
++msgstr ""
++
++#: src/db.c:121
++#, c-format
++msgid "%s%s| %5d | %s\n"
+ msgstr ""
+
+-#: src/db.c:180
++#: src/db.c:236
+ #, c-format
+ msgid "hddtemp: can't open %1$s: %2$s\n"
+ msgstr ""
+
+-#: src/db.c:194
++#: src/db.c:250
+ #, c-format
+ msgid "ERROR: syntax error at line %1$d in %2$s\n"
+ msgstr ""
+
+-#: src/db.c:201
++#: src/db.c:257
+ #, c-format
+ msgid " ERROR: line exceed %1$d characters in %2$s.\n"
+ msgstr ""
+
+-#: src/scsi.c:112 src/scsi.c:130
++#: src/scsi.c:111 src/scsi.c:129
+ #, c-format
+ msgid "log sense failed : %s"
+ msgstr ""
+Index: hddtemp-0.3-beta15/src/sata.c
+===================================================================
+--- hddtemp-0.3-beta15.orig/src/sata.c
++++ hddtemp-0.3-beta15/src/sata.c
+@@ -118,11 +118,22 @@ static enum e_gettemp sata_get_temperatu
+ int i;
+ u16 * p;
+
+- if(dsk->db_entry && dsk->db_entry->attribute_id == 0) {
++ if(dsk->db_entry->attribute_id == 0) {
+ close(dsk->fd);
+ dsk->fd = -1;
+ return GETTEMP_NOSENSOR;
+ }
++
++ switch(ata_get_powermode(dsk->fd)) {
++ case PWM_STANDBY:
++ case PWM_SLEEPING:
++ if (!wakeup)
++ return GETTEMP_DRIVE_SLEEP;
++ case PWM_UNKNOWN:
++ case PWM_ACTIVE: /* active or idle */
++ default:
++ break;
++ }
+
+ /* get SMART values */
+ if(sata_enable_smart(dsk->fd) != 0) {
+@@ -154,24 +165,15 @@ static enum e_gettemp sata_get_temperatu
+ }
+
+ /* temperature */
+- if(dsk->db_entry && dsk->db_entry->attribute_id > 0)
+- field = sata_search_temperature(values, dsk->db_entry->attribute_id);
+- else
+- field = sata_search_temperature(values, DEFAULT_ATTRIBUTE_ID);
++ field = sata_search_temperature(values, dsk->db_entry->attribute_id);
+
+ if(field)
+ dsk->value = *(field+3);
+
+ if(dsk->db_entry && dsk->value != -1)
+ return GETTEMP_KNOWN;
+- else {
+- if(dsk->value != -1) {
+- return GETTEMP_GUESS;
+- }
+- else {
+- return GETTEMP_UNKNOWN;
+- }
+- }
++ else
++ return GETTEMP_UNKNOWN;
+
+ /* never reached */
+ }
+Index: hddtemp-0.3-beta15/src/satacmds.c
+===================================================================
+--- hddtemp-0.3-beta15.orig/src/satacmds.c
++++ hddtemp-0.3-beta15/src/satacmds.c
+@@ -39,7 +39,7 @@
+ #include <sys/ioctl.h>
+ #include <scsi/sg.h>
+ #include <linux/hdreg.h>
+-#include <netinet/in.h>
++#include <byteswap.h>
+
+ // Application specific includes
+ #include "satacmds.h"
+@@ -80,8 +80,8 @@ int sata_pass_thru(int device, unsigned
+
+ ret = scsi_SG_IO(device, cdb, sizeof(cdb), buffer, cmd[3] * 512, sense, sizeof(sense), dxfer_direction);
+
+- /* Verify SATA magics */
+- if (sense[0] != 0x72 || sense[7] != 0x0e || sense[9] != 0x0e || sense[10] != 0x00)
++ /* Verify SATA magic */
++ if (sense[0] != 0x72)
+ return 1;
+ else
+ return ret;
+@@ -95,10 +95,10 @@ void sata_fixstring(unsigned char *s, in
+ p = s;
+ end = &s[bytecount & ~1]; /* bytecount must be even */
+
+- /* convert from big-endian to host byte order */
++ /* convert from big-endian to string order */
+ for (p = end ; p != s;) {
+ unsigned short *pp = (unsigned short *) (p -= 2);
+- *pp = ntohs(*pp);
++ *pp = bswap_16(*pp);
+ }
+
+ /* strip leading blanks */
+Index: hddtemp-0.3-beta15/src/backtrace.c
+===================================================================
+--- hddtemp-0.3-beta15.orig/src/backtrace.c
++++ hddtemp-0.3-beta15/src/backtrace.c
+@@ -16,9 +16,10 @@
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
++#define _GNU_SOURCE
+ #include <features.h>
+
+-#if defined(__i386__) && defined(__GLIBC__)
++#if (defined(__i386__) || defined(__x86_64__)) && defined(__GLIBC__)
+
+ #include <execinfo.h>
+
+@@ -31,8 +32,12 @@
+ #include <bits/sigcontext.h>
+ #include <sys/param.h>
+
+-#define __USE_GNU
+ #include <ucontext.h>
++#if defined(__i386__)
++# define REG_IP REG_EIP
++#elif defined(__x86_64__)
++# define REG_IP REG_RIP
++#endif
+
+ #define MAX_BTSIZE 64
+
+@@ -42,7 +47,6 @@ void backtrace_handler(int n, siginfo_t
+ static char **messages = NULL;
+ static size_t btsize = 0;
+ static size_t i;
+- static unsigned int old_eip, old_ebp;
+ static char *strerr = "???";
+ static FILE *fstrm;
+
+@@ -61,10 +65,10 @@ void backtrace_handler(int n, siginfo_t
+ SIC_CASE(SEGV_MAPERR);
+ SIC_CASE(SEGV_ACCERR);
+ }
+- fprintf(fstrm, "=== SEGFAULT (%s) : invalid access to %p, in 0x%08x\n",
++ fprintf(fstrm, "=== SEGFAULT (%s) : invalid access to %p, in %p\n",
+ strerr,
+ ist->si_addr,
+- puc->uc_mcontext.gregs[REG_EIP]);
++ (void*)puc->uc_mcontext.gregs[REG_IP]);
+ break;
+ case SIGILL:
+ switch(ist->si_code) {
+@@ -77,10 +81,10 @@ void backtrace_handler(int n, siginfo_t
+ SIC_CASE(ILL_COPROC);
+ SIC_CASE(ILL_BADSTK);
+ }
+- fprintf(fstrm, "=== ILLEGAL INSTR (%s) : invalid access to %p, in 0x%08x\n",
++ fprintf(fstrm, "=== ILLEGAL INSTR (%s) : invalid access to %p, in %p\n",
+ strerr,
+ ist->si_addr,
+- puc->uc_mcontext.gregs[REG_EIP]);
++ (void*)puc->uc_mcontext.gregs[REG_IP]);
+ break;
+ case SIGBUS:
+ switch(ist->si_code) {
+@@ -88,10 +92,10 @@ void backtrace_handler(int n, siginfo_t
+ SIC_CASE(BUS_ADRERR);
+ SIC_CASE(BUS_OBJERR);
+ }
+- fprintf(fstrm, "=== BUS ERROR (%p) : invalid access to %p, in 0x%08x\n",
++ fprintf(fstrm, "=== BUS ERROR (%p) : invalid access to %p, in %p\n",
+ strerr,
+ ist->si_addr,
+- puc->uc_mcontext.gregs[REG_EIP]);
++ (void*)puc->uc_mcontext.gregs[REG_IP]);
+ break;
+ }
+ fflush(fstrm);
+@@ -101,7 +105,7 @@ void backtrace_handler(int n, siginfo_t
+ /*
+ old_eip = *(unsigned int*)((void*)&n-4);
+ old_ebp = *(unsigned int*)((void*)&n-8);
+- *(unsigned int*)((void*)&n-4) = puc->uc_mcontext.gregs[REG_EIP];
++ *(unsigned int*)((void*)&n-4) = puc->uc_mcontext.gregs[REG_IP];
+ *(unsigned int*)((void*)&n-8) = puc->uc_mcontext.gregs[REG_EBP];
+
+ btsize = backtrace(btinfo, MAX_BTSIZE);
+@@ -111,14 +115,14 @@ void backtrace_handler(int n, siginfo_t
+ */
+
+ btsize = backtrace(btinfo, MAX_BTSIZE);
+- btinfo[1] = (void*) puc->uc_mcontext.gregs[REG_EIP];
++ btinfo[1] = (void*) puc->uc_mcontext.gregs[REG_IP];
+
+ messages = backtrace_symbols(btinfo, btsize);
+
+ for(i = 1;
+ i < btsize;
+ i++)
+- fprintf(fstrm, "[%d] #%d: %s\n", getpid(), i, messages[i]);
++ fprintf(fstrm, "[%d] #%zu: %s\n", getpid(), i, messages[i]);
+ fflush(fstrm);
+ fclose(fstrm);
+
+Index: hddtemp-0.3-beta15/src/daemon.c
+===================================================================
+--- hddtemp-0.3-beta15.orig/src/daemon.c
++++ hddtemp-0.3-beta15/src/daemon.c
+@@ -163,19 +163,16 @@ void daemon_send_msg(struct disk *ldisks
+
+ switch(dsk->ret) {
+ case GETTEMP_NOT_APPLICABLE:
+- n = snprintf(msg, sizeof(msg), "%s%c%s%c%s%c%c",
++ n = snprintf(msg, sizeof(msg), "%s%c%s%cNA%c*",
+ dsk->drive, separator,
+ dsk->model, separator,
+- "NA", separator,
+- '*');
++ separator);
+ break;
+- case GETTEMP_GUESS:
+ case GETTEMP_UNKNOWN:
+- n = snprintf(msg, sizeof(msg), "%s%c%s%c%s%c%c",
++ n = snprintf(msg, sizeof(msg), "%s%c%s%cUNK%c*",
+ dsk->drive, separator,
+- dsk->model, separator,
+- "UNK", separator,
+- '*');
++ dsk->model, separator,
++ separator);
+ break;
+ case GETTEMP_KNOWN:
+ n = snprintf(msg, sizeof(msg), "%s%c%s%c%d%c%c",
+@@ -185,26 +182,23 @@ void daemon_send_msg(struct disk *ldisks
+ get_unit(dsk));
+ break;
+ case GETTEMP_NOSENSOR:
+- n = snprintf(msg, sizeof(msg), "%s%c%s%c%s%c%c",
++ n = snprintf(msg, sizeof(msg), "%s%c%s%cNOS%c*",
+ dsk->drive, separator,
+ dsk->model, separator,
+- "NOS", separator,
+- '*');
++ separator);
+ break;
+ case GETTEMP_DRIVE_SLEEP:
+- n = snprintf(msg, sizeof(msg), "%s%c%s%c%s%c%c",
++ n = snprintf(msg, sizeof(msg), "%s%c%s%cSLP%c*",
+ dsk->drive, separator,
+ dsk->model, separator,
+- "SLP", separator,
+- '*');
++ separator);
+ break;
+ case GETTEMP_ERROR:
+ default:
+- n = snprintf(msg, sizeof(msg), "%s%c%s%c%s%c%c",
++ n = snprintf(msg, sizeof(msg), "%s%c%s%cERR%c*",
+ dsk->drive, separator,
+ (dsk->model) ? dsk->model : "???", separator,
+- "ERR", separator,
+- '*');
++ separator);
+ break;
+ }
+ write(cfd,&separator, 1);
+@@ -222,14 +216,11 @@ void daemon_syslog(struct disk *ldisks)
+ for(dsk = ldisks; dsk; dsk = dsk->next) {
+ switch(dsk->ret) {
+ case GETTEMP_KNOWN:
+- case GETTEMP_GUESS:
+- value_to_unit(dsk);
+-
+ syslog(LOG_INFO, "%s: %s: %d %c",
+ dsk->drive,
+ dsk->model,
+- dsk->value,
+- dsk->db_entry->unit);
++ value_to_unit(dsk),
++ get_unit(dsk));
+ break;
+ case GETTEMP_DRIVE_SLEEP:
+ syslog(LOG_WARNING, _("%s: %s: drive is sleeping"),
+@@ -270,28 +261,30 @@ void do_daemon_mode(struct disk *ldisks)
+ fd_set deffds;
+ time_t next_time;
+
+- switch(fork()) {
+- case -1:
+- perror("fork");
+- exit(2);
+- break;
+- case 0:
+- break;
+- default:
+- exit(0);
+- }
+-
+- setsid();
+-
+- switch(fork()) {
+- case -1:
+- perror("fork");
+- exit(2);
+- break;
+- case 0:
+- break;
+- default:
+- exit(0);
++if (!foreground) {
++ switch(fork()) {
++ case -1:
++ perror("fork");
++ exit(2);
++ break;
++ case 0:
++ break;
++ default:
++ exit(0);
++ }
++
++ setsid();
++
++ switch(fork()) {
++ case -1:
++ perror("fork");
++ exit(2);
++ break;
++ case 0:
++ break;
++ default:
++ exit(0);
++ }
+ }
+ chdir("/");
+ umask(0);
+Index: hddtemp-0.3-beta15/src/hddtemp.c
+===================================================================
+--- hddtemp-0.3-beta15.orig/src/hddtemp.c
++++ hddtemp-0.3-beta15/src/hddtemp.c
+@@ -75,7 +75,7 @@ char * listen_addr;
+ char separator = SEPARATOR;
+
+ struct bustype * bus[BUS_TYPE_MAX];
+-int tcp_daemon, debug, quiet, numeric, wakeup, af_hint;
++int tcp_daemon, debug, quiet, numeric, wakeup, foreground, af_hint;
+
+ static enum { DEFAULT, CELSIUS, FAHRENHEIT } unit;
+
+@@ -194,23 +194,7 @@ static void display_temperature(struct d
+ if (numeric && quiet)
+ printf("0\n");
+ else
+- printf(_("%s: %s: no sensor\n"), dsk->drive, dsk->model);
+-
+- break;
+- case GETTEMP_GUESS:
+-
+- if(!quiet)
+- fprintf(stderr,
+- _("WARNING: Drive %s doesn't appear in the database of supported drives\n"
+- "WARNING: But using a common value, it reports something.\n"
+- "WARNING: Note that the temperature shown could be wrong.\n"
+- "WARNING: See --help, --debug and --drivebase options.\n"
+- "WARNING: And don't forget you can add your drive to hddtemp.db\n"), dsk->drive);
+-
+- if (! numeric)
+- printf(_("%s: %s: %d%sC or %sF\n"), dsk->drive, dsk->model, dsk->value, degree, degree);
+- else
+- printf("%d\n", value_to_unit(dsk));
++ fprintf(stderr, _("%s: %s: no sensor\n"), dsk->drive, dsk->model);
+
+ break;
+ case GETTEMP_KNOWN:
+@@ -232,14 +216,14 @@ static void display_temperature(struct d
+ if (numeric && quiet)
+ printf("0\n");
+ else
+- printf(_("%s: %s: drive is sleeping\n"), dsk->drive, dsk->model);
++ fprintf(stderr, _("%s: %s: drive is sleeping\n"), dsk->drive, dsk->model);
+
+ break;
+ case GETTEMP_NOSENSOR:
+ if (numeric && quiet)
+ printf("0\n");
+ else
+- printf(_("%s: %s: drive supported, but it doesn't have a temperature sensor.\n"), dsk->drive, dsk->model);
++ fprintf(stderr, _("%s: %s: drive supported, but it doesn't have a temperature sensor.\n"), dsk->drive, dsk->model);
+
+ break;
+ default:
+@@ -268,8 +252,9 @@ void do_direct_mode(struct disk *ldisks)
+
+ int main(int argc, char* argv[]) {
+ int i, c, lindex = 0, db_loaded = 0;
++ int ret = 0;
+ int show_db;
+- struct disk * ldisks;
++ struct disk * ldisks;
+
+ backtrace_sigsegv();
+ backtrace_sigill();
+@@ -283,7 +268,7 @@ int main(int argc, char* argv[]) {
+ textdomain (PACKAGE);
+ #endif
+
+- show_db = debug = numeric = quiet = wakeup = af_hint = syslog_interval = 0;
++ show_db = debug = numeric = quiet = wakeup = af_hint = syslog_interval = foreground = 0;
+ unit = DEFAULT;
+ portnum = PORT_NUMBER;
+ listen_addr = NULL;
+@@ -298,6 +283,7 @@ int main(int argc, char* argv[]) {
+ {"drivebase", 0, NULL, 'b'},
+ {"debug", 0, NULL, 'D'},
+ {"file", 1, NULL, 'f'},
++ {"foreground", 0, NULL, 'F'},
+ {"listen", 1, NULL, 'l'},
+ {"version", 0, NULL, 'v'},
+ {"port", 1, NULL, 'p'},
+@@ -309,7 +295,7 @@ int main(int argc, char* argv[]) {
+ {0, 0, 0, 0}
+ };
+
+- c = getopt_long (argc, argv, "bDdf:l:hp:qs:u:vnw46S:", long_options, &lindex);
++ c = getopt_long (argc, argv, "bDdf:l:hp:qs:u:vnw46FS:", long_options, &lindex);
+ if (c == -1)
+ break;
+
+@@ -386,12 +372,13 @@ int main(int argc, char* argv[]) {
+ " (done for every drive supplied).\n"
+ " -d --daemon : run hddtemp in TCP/IP daemon mode (port %d by default.)\n"
+ " -f --file=FILE : specify database file to use.\n"
++ " -F --foreground : don't daemonize, stay in foreground.\n"
+ " -l --listen=addr : listen on a specific interface (in TCP/IP daemon mode).\n"
+ " -n --numeric : print only the temperature.\n"
+ " -p --port=# : port to listen to (in TCP/IP daemon mode).\n"
+ " -s --separator=C : separator to use between fields (in TCP/IP daemon mode).\n"
+ " -S --syslog=s : log temperature to syslog every s seconds.\n"
+- " -u --unit=[C|F] : force output temperature either in Celius or Fahrenheit.\n"
++ " -u --unit=[C|F] : force output temperature either in Celsius or Fahrenheit.\n"
+ " -q --quiet : do not check if the drive is supported.\n"
+ " -v --version : display hddtemp version number.\n"
+ " -w --wake-up : wake-up the drive if need.\n"
+@@ -422,6 +409,9 @@ int main(int argc, char* argv[]) {
+ }
+ }
+ break;
++ case 'F':
++ foreground = 1;
++ break;
+ default:
+ exit(1);
+ }
+@@ -493,6 +483,7 @@ int main(int argc, char* argv[]) {
+ if( (dsk->fd = open(dsk->drive, O_RDONLY | O_NONBLOCK)) < 0) {
+ snprintf(dsk->errormsg, MAX_ERRORMSG_SIZE, "open: %s\n", strerror(errno));
+ dsk->type = ERROR;
++ ret = 1;
+ continue;
+ }
+
+@@ -505,6 +496,7 @@ int main(int argc, char* argv[]) {
+
+ ldisks = dsk->next;
+ free(dsk);
++ ret = 1;
+ continue;
+ }
+
+@@ -518,11 +510,17 @@ int main(int argc, char* argv[]) {
+ db_loaded = 1;
+ }
+
++ dsk->db_entry = (struct harddrive_entry *)malloc(sizeof(struct harddrive_entry));
+ dbe = is_a_supported_drive(dsk->model);
+- if(dbe) {
+- dsk->db_entry = (struct harddrive_entry *)malloc(sizeof(struct harddrive_entry));
++ if(dbe)
+ memcpy(dsk->db_entry, dbe, sizeof(struct harddrive_entry));
+- }
++ else {
++ dsk->db_entry->regexp = "";
++ dsk->db_entry->description = "";
++ dsk->db_entry->attribute_id = DEFAULT_ATTRIBUTE_ID;
++ dsk->db_entry->unit = 'C';
++ dsk->db_entry->next = NULL;
++ }
+ }
+ }
+
+@@ -534,5 +532,5 @@ int main(int argc, char* argv[]) {
+ do_direct_mode(ldisks);
+ }
+
+- return 0;
++ return ret;
+ }
+Index: hddtemp-0.3-beta15/src/ata.c
+===================================================================
+--- hddtemp-0.3-beta15.orig/src/ata.c
++++ hddtemp-0.3-beta15/src/ata.c
+@@ -75,7 +75,7 @@ static enum e_gettemp ata_get_temperatur
+ int i;
+ u16 * p;
+
+- if(dsk->db_entry && dsk->db_entry->attribute_id == 0) {
++ if(dsk->db_entry->attribute_id == 0) {
+ close(dsk->fd);
+ dsk->fd = -1;
+ return GETTEMP_NOSENSOR;
+@@ -140,24 +140,15 @@ static enum e_gettemp ata_get_temperatur
+ */
+
+ /* temperature */
+- if(dsk->db_entry && dsk->db_entry->attribute_id > 0)
+- field = ata_search_temperature(values, dsk->db_entry->attribute_id);
+- else
+- field = ata_search_temperature(values, DEFAULT_ATTRIBUTE_ID);
++ field = ata_search_temperature(values, dsk->db_entry->attribute_id);
+
+ if(field)
+ dsk->value = *(field+3);
+
+- if(dsk->db_entry && dsk->value != -1)
++ if(dsk->value != -1)
+ return GETTEMP_KNOWN;
+- else {
+- if(dsk->value != -1) {
+- return GETTEMP_GUESS;
+- }
+- else {
+- return GETTEMP_UNKNOWN;
+- }
+- }
++ else
++ return GETTEMP_UNKNOWN;
+
+ /* never reached */
+ }
+Index: hddtemp-0.3-beta15/src/hddtemp.h
+===================================================================
+--- hddtemp-0.3-beta15.orig/src/hddtemp.h
++++ hddtemp-0.3-beta15/src/hddtemp.h
+@@ -39,8 +39,6 @@ enum e_gettemp {
+ GETTEMP_ERROR, /* Error */
+ GETTEMP_NOT_APPLICABLE, /* */
+ GETTEMP_UNKNOWN, /* Drive is not in database */
+- GETTEMP_GUESS, /* Not in database, but something was guessed, user must
+- check that the temperature returned is correct */
+ GETTEMP_KNOWN, /* Drive appear in database */
+ GETTEMP_NOSENSOR, /* Drive appear in database but is known to have no sensor */
+ GETTEMP_DRIVE_SLEEP /* Drive is sleeping */
+@@ -78,7 +76,7 @@ struct bustype {
+
+ extern struct bustype * bus[BUS_TYPE_MAX];
+ extern char errormsg[MAX_ERRORMSG_SIZE];
+-extern int tcp_daemon, debug, quiet, wakeup, af_hint;
++extern int tcp_daemon, debug, quiet, wakeup, af_hint, foreground;
+ extern char separator;
+ extern long portnum, syslog_interval;
+ extern char * listen_addr;
+Index: hddtemp-0.3-beta15/src/scsicmds.c
+===================================================================
+--- hddtemp-0.3-beta15.orig/src/scsicmds.c
++++ hddtemp-0.3-beta15/src/scsicmds.c
+@@ -147,6 +147,7 @@ int scsi_inquiry(int device, unsigned ch
+ return 1;
+ else {
+ scsi_fixstring(buffer + 8, 24);
++ buffer[32] = 0;
+ return 0;
+ }
+ }
diff --git a/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/init b/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/init
new file mode 100644
index 000000000..0df8f67f6
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/init
@@ -0,0 +1,100 @@
+#!/bin/sh
+#
+# skeleton example file to build /etc/init.d/ scripts.
+# This file should be used to construct scripts for /etc/init.d.
+#
+# Written by Miquel van Smoorenburg <miquels@cistron.nl>.
+# Modified for Debian GNU/Linux
+# by Ian Murdock <imurdock@gnu.ai.mit.edu>.
+#
+# Version: @(#)skeleton 1.8 03-Mar-1998 miquels@cistron.nl
+#
+
+### BEGIN INIT INFO
+# Provides: hddtemp
+# Required-Start: $remote_fs $syslog $network
+# Required-Stop: $remote_fs $syslog $network
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: disk temperature monitoring daemon
+# Description: hddtemp is a disk temperature monitoring daemon
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+NAME=hddtemp
+DAEMON=/usr/sbin/$NAME
+DESC="disk temperature monitoring daemon"
+
+DISKS="/dev/hd[a-z] /dev/hd[a-z][a-z]"
+DISKS="$DISKS /dev/sd[a-z] /dev/sd[a-z][a-z]"
+DISKS="$DISKS /dev/sr[a-z] /dev/sr[a-z][a-z]"
+INTERFACE="0.0.0.0"
+PORT="7634"
+SEPARATOR="|"
+RUN_SYSLOG="0"
+
+# Reads config file (will override defaults above)
+[ -r /etc/default/hddtemp ] && . /etc/default/hddtemp
+
+if [ -n "$RUN_SYSLOG" ] && [ "$RUN_SYSLOG" != "0" ] ; then
+ SYSLOG_ARG="-S $RUN_SYSLOG"
+fi
+
+if [ "$RUN_DAEMON" = "true" ] || [ "$RUN_DAEMON" = "yes" ] ; then
+ DAEMON_ARG="-d -l $INTERFACE -p $PORT -s $SEPARATOR"
+fi
+
+[ -x "$DAEMON" ] || exit 0
+
+. /lib/lsb/init-functions
+
+case "$1" in
+ start)
+ # master switch
+ if [ -n "$DAEMON_ARG" ] || [ -n "$SYSLOG_ARG" ] ; then
+ log_daemon_msg "Starting $DESC" "$NAME:"
+ CDROMS_LIST=$(sed -ne 's/^drive name:\t\+\(.*\)$/ \/dev\/\1/p' /proc/sys/dev/cdrom/info 2>/dev/null) || :
+ CDROMS_LIST="$CDROMS_LIST $(grep -sl '^ide-scsi ' /proc/ide/hd*/driver | awk -F / '{ print "/dev/"$4 }')"
+ for disk in $DISKS ; do
+ echo $CDROMS_LIST | grep -wq $disk && continue
+ echo $DISKS_NOPROBE | grep -wq $disk && continue
+ if $DAEMON -wn $OPTIONS $disk 2>/dev/null | grep -q '^[0-9]\+$' ; then
+ DISKS_LIST="$DISKS_LIST $disk";
+ fi
+ done
+ if [ -n "$DISKS_LIST" ] || [ -n "$DISKS_NOPROBE" ] ; then
+ start-stop-daemon --start --quiet --exec $DAEMON -- $DAEMON_ARG $SYSLOG_ARG $OPTIONS $DISKS_NOPROBE $DISKS_LIST
+ ret=$?
+ log_progress_msg "$DISKS_NOPROBE$DISKS_LIST"
+ log_end_msg $ret
+ else
+ log_progress_msg "no disks with monitoring capability were found."
+ log_end_msg 0
+ fi
+ fi
+ ;;
+ stop)
+ # master switch
+ if [ "$RUN_DAEMON" = "true" ] || [ "$RUN_DAEMON" = "yes" ] || [ "$RUN_SYSLOG" != "0" ] ; then
+ log_daemon_msg "Stopping $DESC" "$NAME"
+ start-stop-daemon --stop --oknodo --exec $DAEMON --retry 30
+ log_end_msg $?
+ fi
+ ;;
+ force-reload|reload)
+ exit 3
+ ;;
+ restart)
+ $0 stop && $0 start
+ ;;
+ status)
+ status_of_proc $DAEMON $NAME
+ exit $?
+ ;;
+ *)
+ echo "Usage: /etc/init.d/$NAME {start|stop|restart|status}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
diff --git a/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp_0.3-beta15.bb b/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp_0.3-beta15.bb
new file mode 100644
index 000000000..4a871bf4f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp_0.3-beta15.bb
@@ -0,0 +1,33 @@
+SUMMARY = "Hard disk temperature monitor daemon"
+SECTION = "console/network"
+LICENSE = "GPLv2+"
+
+PR = "r1"
+
+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 \
+"
+
+SRC_URI[md5sum] = "8b829339e1ae9df701684ec239021bb8"
+SRC_URI[sha256sum] = "618541584054093d53be8a2d9e81c97174f30f00af91cb8700a97e442d79ef5b"
+
+LIC_FILES_CHKSUM = "file://GPL-2;md5=eb723b61539feef013de476e68b5c50a"
+
+inherit autotools gettext update-rc.d
+
+FILES_${PN} += "/usr/share/misc/hddtemp.db"
+
+do_install_append() {
+ install -d ${D}/usr/share/misc/
+ install -m 0644 ${WORKDIR}/hddtemp.db ${D}/usr/share/misc/hddtemp.db
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0644 ${WORKDIR}/init ${D}${sysconfdir}/init.d/hddtemp
+}
+
+INITSCRIPT_NAME = "hddtemp"
+INITSCRIPT_PARAMS = "start 99 2 3 4 5 . stop 20 0 1 6 ."
diff --git a/meta-openembedded/meta-oe/recipes-support/hidapi/hidapi_git.bb b/meta-openembedded/meta-oe/recipes-support/hidapi/hidapi_git.bb
new file mode 100644
index 000000000..a34797ff5
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/hidapi/hidapi_git.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Multi-platform library to interface with USB and Bluetooth HID-Class devices"
+AUTHOR = "Alan Ott"
+HOMEPAGE = "http://www.signal11.us/oss/hidapi/"
+SECTION = "libs"
+LICENSE = "BSD-3-Clause | GPLv3"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=7c3949a631240cb6c31c50f3eb696077"
+DEPENDS = "libusb udev"
+PV = "0.7.99+0.8.0-rc1+git${SRCPV}"
+
+SRCREV = "d17db57b9d4354752e0af42f5f33007a42ef2906"
+SRC_URI = "git://github.com/signal11/hidapi.git"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-support/htop/files/0001-Use-pkg-config.patch b/meta-openembedded/meta-oe/recipes-support/htop/files/0001-Use-pkg-config.patch
new file mode 100644
index 000000000..fc0d86e33
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/htop/files/0001-Use-pkg-config.patch
@@ -0,0 +1,39 @@
+We need to use pkg-config to find the ncurses library instead of the
+ncurses*-config applications.
+
+Signed-off-by: Paul Barker <pbarker@toganlabs.com>
+Signed-off-by: Robert Joslyn <robert.joslyn@redrectangle.org>
+
+Upstream-status: Inappropriate
+ (`ncurses*-config` can be used outside of OpenEmbedded)
+
+diff --git a/configure.ac b/configure.ac
+index 559dc4d..77aea22 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -185,10 +185,10 @@ m4_define([HTOP_CHECK_LIB],
+
+ AC_ARG_ENABLE(unicode, [AS_HELP_STRING([--enable-unicode], [enable Unicode support])], ,enable_unicode="yes")
+ if test "x$enable_unicode" = xyes; then
+- HTOP_CHECK_SCRIPT([ncursesw6], [addnwstr], [HAVE_LIBNCURSESW], "ncursesw6-config",
+- HTOP_CHECK_SCRIPT([ncursesw], [addnwstr], [HAVE_LIBNCURSESW], "ncursesw6-config",
+- HTOP_CHECK_SCRIPT([ncursesw], [addnwstr], [HAVE_LIBNCURSESW], "ncursesw5-config",
+- HTOP_CHECK_SCRIPT([ncurses], [addnwstr], [HAVE_LIBNCURSESW], "ncurses5-config",
++ HTOP_CHECK_SCRIPT([ncursesw6], [addnwstr], [HAVE_LIBNCURSESW], "pkg-config ncursesw6",
++ HTOP_CHECK_SCRIPT([ncursesw], [addnwstr], [HAVE_LIBNCURSESW], "pkg-config ncursesw6",
++ HTOP_CHECK_SCRIPT([ncursesw], [addnwstr], [HAVE_LIBNCURSESW], "pkg-config ncursesw5",
++ HTOP_CHECK_SCRIPT([ncurses], [addnwstr], [HAVE_LIBNCURSESW], "pkg-config ncurses5",
+ HTOP_CHECK_LIB([ncursesw6], [addnwstr], [HAVE_LIBNCURSESW],
+ HTOP_CHECK_LIB([ncursesw], [addnwstr], [HAVE_LIBNCURSESW],
+ HTOP_CHECK_LIB([ncurses], [addnwstr], [HAVE_LIBNCURSESW],
+@@ -201,8 +201,8 @@ if test "x$enable_unicode" = xyes; then
+ [AC_CHECK_HEADERS([ncurses/curses.h],[:],
+ [AC_CHECK_HEADERS([ncurses.h],[:],[missing_headers="$missing_headers $ac_header"])])])])
+ else
+- HTOP_CHECK_SCRIPT([ncurses6], [refresh], [HAVE_LIBNCURSES], "ncurses6-config",
+- HTOP_CHECK_SCRIPT([ncurses], [refresh], [HAVE_LIBNCURSES], "ncurses5-config",
++ HTOP_CHECK_SCRIPT([ncurses6], [refresh], [HAVE_LIBNCURSES], "pkg-config ncurses6",
++ HTOP_CHECK_SCRIPT([ncurses], [refresh], [HAVE_LIBNCURSES], "pkg-config ncurses5",
+ HTOP_CHECK_LIB([ncurses6], [refresh], [HAVE_LIBNCURSES],
+ HTOP_CHECK_LIB([ncurses], [refresh], [HAVE_LIBNCURSES],
+ missing_libraries="$missing_libraries libncurses"
diff --git a/meta-openembedded/meta-oe/recipes-support/htop/htop_2.1.0.bb b/meta-openembedded/meta-oe/recipes-support/htop/htop_2.1.0.bb
new file mode 100644
index 000000000..33508f984
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/htop/htop_2.1.0.bb
@@ -0,0 +1,35 @@
+SUMMARY = "Interactive process viewer"
+HOMEPAGE = "http://hisham.hm/htop"
+SECTION = "console/utils"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c312653532e8e669f30e5ec8bdc23be3"
+
+DEPENDS = "ncurses"
+
+SRC_URI = "http://hisham.hm/htop/releases/${PV}/${BP}.tar.gz \
+ file://0001-Use-pkg-config.patch"
+SRC_URI[md5sum] = "f262b66ad6c194782f4d3a80627e84c8"
+SRC_URI[sha256sum] = "3260be990d26e25b6b49fc9d96dbc935ad46e61083c0b7f6df413e513bf80748"
+
+inherit autotools pkgconfig
+
+PACKAGECONFIG ??= "proc \
+ cgroup \
+ taskstats \
+ unicode \
+ linux-affinity \
+ delayacct"
+PACKAGECONFIG[proc] = "--enable-proc,--disable-proc"
+PACKAGECONFIG[openvz] = "--enable-openvz,--disable-openvz"
+PACKAGECONFIG[cgroup] = "--enable-cgroup,--disable-cgroup"
+PACKAGECONFIG[vserver] = "--enable-vserver,--disable-vserver"
+PACKAGECONFIG[taskstats] = "--enable-taskstats,--disable-taskstats"
+PACKAGECONFIG[unicode] = "--enable-unicode,--disable-unicode"
+PACKAGECONFIG[linux-affinity] = "--enable-linux-affinity,--disable-linux-affinity"
+PACKAGECONFIG[hwloc] = "--enable-hwloc,--disable-hwloc,hwloc"
+PACKAGECONFIG[setuid] = "--enable-setuid,--disable-setuid"
+PACKAGECONFIG[delayacct] = "--enable-delayacct,--disable-delayacct,libnl"
+
+do_configure_prepend () {
+ rm -rf ${S}/config.h
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/hunspell/hunspell_1.6.2.bb b/meta-openembedded/meta-oe/recipes-support/hunspell/hunspell_1.6.2.bb
new file mode 100644
index 000000000..5feea8987
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/hunspell/hunspell_1.6.2.bb
@@ -0,0 +1,17 @@
+SUMMARY = "A spell checker and morphological analyzer library"
+HOMEPAGE = "http://hunspell.github.io/"
+LICENSE = "GPLv3 | LGPLv3"
+LIC_FILES_CHKSUM = " \
+ file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
+ file://COPYING.LESSER;md5=e6a600fd5e1d9cbde2d983680233ad02 \
+"
+
+SRC_URI = "https://github.com/${BPN}/${BPN}/archive/v${PV}.tar.gz"
+SRC_URI[md5sum] = "1a54504cb470aafa6530bb372a10dc04"
+SRC_URI[sha256sum] = "3cd9ceb062fe5814f668e4f22b2fa6e3ba0b339b921739541ce180cac4d6f4c4"
+
+inherit autotools pkgconfig gettext
+
+RDEPENDS_${PN} = "perl"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_git.bb b/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_git.bb
new file mode 100644
index 000000000..679673ba0
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_git.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "Hardware identification and configuration data"
+HOMEPAGE = "https://github.com/vcrhonek/hwdata"
+SECTION = "System/Base"
+
+LICENSE = "GPL-2.0+"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1556547711e8246992b999edd9445a57"
+
+PV = "0.298+git${SRCPV}"
+SRCREV = "9030fbd6ab1538f4d77d3cf1e0b463a7ec25b5c4"
+SRC_URI = "git://github.com/vcrhonek/${BPN}.git"
+
+S = "${WORKDIR}/git"
+
+do_configure() {
+ ${S}/configure --datadir=${datadir} --libdir=${libdir}
+}
+
+do_install() {
+ oe_runmake install DESTDIR=${D}
+}
+
+FILES_${PN} = "${libdir}/* \
+ ${datadir}/* "
diff --git a/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel/avoid-obsolete-gnutls-apis.patch b/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel/avoid-obsolete-gnutls-apis.patch
new file mode 100644
index 000000000..41fccc3ab
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel/avoid-obsolete-gnutls-apis.patch
@@ -0,0 +1,55 @@
+From 7136a908a056d0e36c89b6e1c39adff8ce2bb1d4 Mon Sep 17 00:00:00 2001
+From: Andre McCurdy <armccurdy@gmail.com>
+Date: Wed, 1 Nov 2017 13:17:34 -0700
+Subject: [PATCH] avoid obsolete gnutls apis
+
+The gnutls_*_set_priority() family of functions was marked deprecated
+in gnutls 2.12.x and removed completely in 3.5.x. These functions
+have been superceded by gnutls_priority_set_direct(), which was added
+in gnutls 2.2.0 (released 2007-12-14).
+
+Rather than simply update the custom gnutls_*_set_priority() calls to
+use gnutls_priority_set_direct(), drop the custom priority selection
+completely and use the recommended approach of letting gnutls pick a
+reasonable set of defaults.
+
+Upstream-Status: Pending
+
+Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
+---
+ src/tls-gnutls.c | 12 ++----------
+ 1 file changed, 2 insertions(+), 10 deletions(-)
+
+diff --git a/src/tls-gnutls.c b/src/tls-gnutls.c
+index d7b7c91..749e9ef 100644
+--- a/src/tls-gnutls.c
++++ b/src/tls-gnutls.c
+@@ -48,11 +48,6 @@ tls_pull (struct ikstls_data *data, char *buffer, size_t len)
+ static int
+ tls_handshake (struct ikstls_data **datap, ikstransport *trans, void *sock)
+ {
+- const int protocol_priority[] = { GNUTLS_TLS1, GNUTLS_SSL3, 0 };
+- const int kx_priority[] = { GNUTLS_KX_RSA, 0 };
+- const int cipher_priority[] = { GNUTLS_CIPHER_3DES_CBC, GNUTLS_CIPHER_ARCFOUR, 0};
+- const int comp_priority[] = { GNUTLS_COMP_ZLIB, GNUTLS_COMP_NULL, 0 };
+- const int mac_priority[] = { GNUTLS_MAC_SHA, GNUTLS_MAC_MD5, 0 };
+ struct ikstls_data *data;
+ int ret;
+
+@@ -81,11 +76,8 @@ tls_handshake (struct ikstls_data **datap, ikstransport *trans, void *sock)
+ return IKS_NOMEM;
+ }
+
+- gnutls_protocol_set_priority (data->sess, protocol_priority);
+- gnutls_cipher_set_priority(data->sess, cipher_priority);
+- gnutls_compression_set_priority(data->sess, comp_priority);
+- gnutls_kx_set_priority(data->sess, kx_priority);
+- gnutls_mac_set_priority(data->sess, mac_priority);
++ gnutls_set_default_priority (data->sess);
++
+ gnutls_credentials_set (data->sess, GNUTLS_CRD_CERTIFICATE, data->cred);
+
+ gnutls_transport_set_push_function (data->sess, (gnutls_push_func) tls_push);
+--
+1.9.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel/fix-configure-option-parsing.patch b/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel/fix-configure-option-parsing.patch
new file mode 100644
index 000000000..05accdd9c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel/fix-configure-option-parsing.patch
@@ -0,0 +1,62 @@
+From 17a5cf8f70b86d8a2195562e2d9dcccb4fa35c83 Mon Sep 17 00:00:00 2001
+From: Andre McCurdy <armccurdy@gmail.com>
+Date: Tue, 31 Oct 2017 20:05:58 -0700
+Subject: [PATCH] fix configure option parsing
+
+Don't over-write with_openssl etc by trying to set to $enablevar
+
+Upstream-Status: Pending
+
+Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
+---
+ configure.ac | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 82e6d2d..823e6c1 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -56,17 +56,17 @@ fi
+ dnl Options for overriding TLS checks
+ AC_ARG_WITH([openssl],
+ AS_HELP_STRING([--without-openssl],[disable checking for openssl]),
+- [with_openssl=$enableval],
+- [with_openssl=yes]
++ [],
++ [with_openssl=auto]
+ )
+ AC_ARG_WITH([gnutls],
+ AS_HELP_STRING([--without-gnutls],[disable checking for GNU TLS]),
+- [with_gnutls=$enableval],
+- [with_gnutls=yes]
++ [],
++ [with_gnutls=auto]
+ )
+
+ dnl Check OpenSSL
+-if test "x$with_openssl" = "xyes"; then
++if test "x$with_openssl" != "xno"; then
+ PKG_CHECK_MODULES([OPENSSL], openssl >= 0.9.8, have_openssl=yes, have_openssl=no)
+ if test "x$have_openssl" = "xyes"; then
+ LIBOPENSSL_CFLAGS="$OPENSSL_CFLAGS"
+@@ -78,7 +78,7 @@ if test "x$with_openssl" = "xyes"; then
+ fi
+
+ dnl Check GNU TLS
+-if test "x$with_gnutls" = "xyes"; then
++if test "x$with_gnutls" != "xno"; then
+ if test "x$have_openssl" != "xyes"; then
+ PKG_CHECK_MODULES([GNUTLS], gnutls >= 2.0.0, have_gnutls=yes, have_gnutls=no)
+ if test "x$have_gnutls" = "xyes"; then
+@@ -94,7 +94,7 @@ fi
+ dnl Option for overriding Python check
+ AC_ARG_ENABLE([python],
+ AS_HELP_STRING([--disable-python],[disable checking for Python bindings]),
+- [with_python=$enableval],
++ [],
+ [with_python=yes]
+ )
+
+--
+1.9.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel_1.5.bb b/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel_1.5.bb
new file mode 100644
index 000000000..0903e90d7
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel_1.5.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Fast and portable XML parser and Jabber protocol library"
+HOMEPAGE = "https://github.com/meduketto/iksemel"
+SECTION = "libs"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499"
+
+SRCREV = "978b733462e41efd5db72bc9974cb3b0d1d5f6fa"
+PV = "1.5+git${SRCPV}"
+
+SRC_URI = "git://github.com/meduketto/iksemel.git;protocol=https \
+ file://fix-configure-option-parsing.patch \
+ file://avoid-obsolete-gnutls-apis.patch"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig lib_package
+
+# TLS support requires either openssl or gnutls (if both are enabled openssl will be used).
+PACKAGECONFIG ?= "gnutls"
+
+PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls"
+PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl"
+
+EXTRA_OECONF = "--disable-python"
diff --git a/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.7.bb b/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.7.bb
new file mode 100644
index 000000000..669534eaa
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.7.bb
@@ -0,0 +1,82 @@
+SUMMARY = "ImageMagick is an image convertion tools"
+SECTION = "console/utils"
+LICENSE = "ImageMagick"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=dad5a98f173fd3fa6958a1a58c6131c1"
+# FIXME: There are many more checked libraries. All should be added or explicitly disabled to get consistent results.
+DEPENDS = "lcms bzip2 jpeg libpng librsvg tiff zlib fftw freetype"
+
+BASE_PV := "${PV}"
+PV .= "_7"
+SRC_URI = "git://github.com/ImageMagick/ImageMagick.git "
+SRCREV = "e12602b39b5e778240d286b6f9bbbc0fe3fb26c5"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig update-alternatives
+
+# xml disabled because it's using xml2-config --prefix to determine prefix which returns just /usr with our libxml2
+# if someone needs xml support then fix it first
+EXTRA_OECONF = "--program-prefix= --program-suffix=.im7 --without-perl --disable-openmp --without-xml --disable-opencl"
+
+CACHED_CONFIGUREVARS = "ac_cv_sys_file_offset_bits=yes"
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
+PACKAGECONFIG[graphviz] = "--with-gvc,--without-gvc,graphviz"
+PACKAGECONFIG[jp2] = "--with-jp2,,jasper"
+PACKAGECONFIG[lzma] = "--with-lzma,--without-lzma,xz"
+PACKAGECONFIG[openjpeg] = "--with-openjp2,--without-openjp2,openjpeg"
+PACKAGECONFIG[pango] = "--with-pango,--without-pango,pango cairo"
+PACKAGECONFIG[webp] = "--with-webp,--without-webp,libwebp"
+PACKAGECONFIG[wmf] = "--with-wmf,--without-wmf,libwmf"
+PACKAGECONFIG[x11] = "--with-x,--without-x,virtual/libx11 libxext libxt"
+
+FILES_${PN} += "${libdir}/ImageMagick-${BASE_PV}/config-Q16* \
+ ${datadir}/ImageMagick-7"
+
+FILES_${PN}-dev += "${libdir}/ImageMagick-${BASE_PV}/modules-Q16/*/*.a"
+
+FILES_${PN}-dbg += "${libdir}/ImageMagick-${BASE_PV}/modules-Q16/*/.debug/*"
+
+BBCLASSEXTEND = "native"
+
+ALTERNATIVE_PRIORITY = "100"
+
+ALTERNATIVE_${PN} = "animate compare composite conjure convert display \
+ identify import mogrify montage stream"
+
+ALTERNATIVE_TARGET[animate] = "${bindir}/animate.im7"
+ALTERNATIVE_TARGET[compare] = "${bindir}/compare.im7"
+ALTERNATIVE_TARGET[composite] = "${bindir}/composite.im7"
+ALTERNATIVE_TARGET[conjure] = "${bindir}/conjure.im7"
+ALTERNATIVE_TARGET[convert] = "${bindir}/convert.im7"
+ALTERNATIVE_TARGET[display] = "${bindir}/display.im7"
+ALTERNATIVE_TARGET[identify] = "${bindir}/identify.im7"
+ALTERNATIVE_TARGET[import] = "${bindir}/import.im7"
+ALTERNATIVE_TARGET[mogrify] = "${bindir}/mogrify.im7"
+ALTERNATIVE_TARGET[montage] = "${bindir}/montage.im7"
+ALTERNATIVE_TARGET[stream] = "${bindir}/stream.im7"
+
+ALTERNATIVE_${PN}-doc = "animate.1 compare.1 composite.1 conjure.1 \
+ convert.1 display.1 identify.1 import.1 mogrify.1 montage.1 stream.1"
+
+ALTERNATIVE_LINK_NAME[animate.1] = "${mandir}/man1/animate.1"
+ALTERNATIVE_TARGET[animate.1] = "${mandir}/man1/animate.im7.1"
+ALTERNATIVE_LINK_NAME[compare.1] = "${mandir}/man1/compare.1"
+ALTERNATIVE_TARGET[compare.1] = "${mandir}/man1/compare.im7.1"
+ALTERNATIVE_LINK_NAME[composite.1] = "${mandir}/man1/composite.1"
+ALTERNATIVE_TARGET[composite.1] = "${mandir}/man1/composite.im7.1"
+ALTERNATIVE_LINK_NAME[conjure.1] = "${mandir}/man1/conjure.1"
+ALTERNATIVE_TARGET[conjure.1] = "${mandir}/man1/conjure.im7.1"
+ALTERNATIVE_LINK_NAME[convert.1] = "${mandir}/man1/convert.1"
+ALTERNATIVE_TARGET[convert.1] = "${mandir}/man1/convert.im7.1"
+ALTERNATIVE_LINK_NAME[display.1] = "${mandir}/man1/display.1"
+ALTERNATIVE_TARGET[display.1] = "${mandir}/man1/display.im7.1"
+ALTERNATIVE_LINK_NAME[identify.1] = "${mandir}/man1/identify.1"
+ALTERNATIVE_TARGET[identify.1] = "${mandir}/man1/identify.im7.1"
+ALTERNATIVE_LINK_NAME[import.1] = "${mandir}/man1/import.1"
+ALTERNATIVE_TARGET[import.1] = "${mandir}/man1/import.im7.1"
+ALTERNATIVE_LINK_NAME[mogrify.1] = "${mandir}/man1/mogrify.1"
+ALTERNATIVE_TARGET[mogrify.1] = "${mandir}/man1/mogrify.im7.1"
+ALTERNATIVE_LINK_NAME[montage.1] = "${mandir}/man1/montage.1"
+ALTERNATIVE_TARGET[montage.1] = "${mandir}/man1/montage.im7.1"
+ALTERNATIVE_LINK_NAME[stream.1] = "${mandir}/man1/stream.1"
+ALTERNATIVE_TARGET[stream.1] = "${mandir}/man1/stream.im7.1"
diff --git a/meta-openembedded/meta-oe/recipes-support/inih/libinih_git.bb b/meta-openembedded/meta-oe/recipes-support/inih/libinih_git.bb
new file mode 100644
index 000000000..5030c78a3
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/inih/libinih_git.bb
@@ -0,0 +1,19 @@
+SUMMARY = "C and C++ INI Library"
+HOMEPAGE = "http://code.google.com/p/inih/"
+PV = "0.0+gitr${SRCPV}"
+PKGV = "${GITPKGVTAG}"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=dae28cbf28207425e0d0b3eb835f4bde"
+
+PR = "r3"
+
+# The github repository provides a cmake and pkg-config integration
+SRCREV = "25078f7156eb8647b3b35dd25f9ae6f8c4ee0589"
+SRC_URI = "git://github.com/OSSystems/inih.git"
+
+S = "${WORKDIR}/git"
+
+inherit gitpkgv cmake
+
+# We don't have libinih since we only have static libraries
+ALLOW_EMPTY_${PN} = "1"
diff --git a/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools/inotify-nosys-fix-system-call-number.patch b/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/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/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools/inotifywait-fix-compile-error-with-GCC-6.patch b/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools/inotifywait-fix-compile-error-with-GCC-6.patch
new file mode 100644
index 000000000..ba042a24b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools/inotifywait-fix-compile-error-with-GCC-6.patch
@@ -0,0 +1,45 @@
+From 7affb288d6c0726e7b1ebc317a878927b6ef0d02 Mon Sep 17 00:00:00 2001
+From: Andrea Galbusera <gizero@gmail.com>
+Date: Tue, 13 Sep 2016 08:10:29 +0200
+Subject: [PATCH] inotifywait: fix compile error with GCC 6
+
+Fails to compile with misleading-indentation error
+
+| src/inotifywait.c: In function 'output_event_csv':
+| src/inotifywait.c:126:5: error: this 'if' clause does not guard... [-Werror=misleading-indentation]
+| if (filename != NULL)
+| ^~
+| src/inotifywait.c:129:2: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the 'if'
+| printf("%s,", csv_escape( inotifytools_event_to_str( event->mask ) ) );
+| ^~~~~~
+| cc1: all warnings being treated as errors
+
+Fix indentation to resolve.
+
+Upstream-Status: Submitted [https://github.com/rvoicilas/inotify-tools/pull/66]
+
+Signed-off-by: Andrea Galbusera <gizero@gmail.com>
+---
+ src/inotifywait.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/inotifywait.c b/src/inotifywait.c
+index c5ce5e3..404a85b 100644
+--- a/src/inotifywait.c
++++ b/src/inotifywait.c
+@@ -122,9 +122,9 @@ void validate_format( char * fmt ) {
+
+
+ void output_event_csv( struct inotify_event * event ) {
+- char *filename = csv_escape(inotifytools_filename_from_wd(event->wd));
+- if (filename != NULL)
+- printf("%s,", filename);
++ char *filename = csv_escape(inotifytools_filename_from_wd(event->wd));
++ if (filename != NULL)
++ printf("%s,", filename);
+
+ printf("%s,", csv_escape( inotifytools_event_to_str( event->mask ) ) );
+ if ( event->len > 0 )
+--
+1.9.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools_git.bb b/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools_git.bb
new file mode 100644
index 000000000..efc753d5b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools_git.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Command line tools and C library providing a simple interface to inotify"
+AUTHOR = "Rohan McGovern <rohan@mcgovern.id.au>"
+HOMEPAGE = "http://wiki.github.com/rvoicilas/inotify-tools"
+SECTION = "console/devel"
+LICENSE = "GPL-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ac6c26e52aea428ee7f56dc2c56424c6"
+
+SRCREV = "1df9af4d6cd0f4af4b1b19254bcf056aed4ae395"
+PV = "3.14+git${SRCPV}"
+
+SRC_URI = "git://github.com/rvoicilas/${BPN} \
+ file://inotifywait-fix-compile-error-with-GCC-6.patch \
+ file://inotify-nosys-fix-system-call-number.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+inherit autotools
+
+EXTRA_OECONF = "--disable-doxygen"
+
+PACKAGES =+ "libinotifytools"
+
+FILES_libinotifytools = "${libdir}/lib*.so.*"
diff --git a/meta-openembedded/meta-oe/recipes-support/joe/joe/0001-adjust-signature-of-main.patch b/meta-openembedded/meta-oe/recipes-support/joe/joe/0001-adjust-signature-of-main.patch
new file mode 100644
index 000000000..00f48e8a2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/joe/joe/0001-adjust-signature-of-main.patch
@@ -0,0 +1,30 @@
+From 27e4639254f2b2eb7d04790bd8cf16ecfcbac1c2 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 19 Oct 2016 01:07:16 +0000
+Subject: [PATCH] adjust signature of main()
+
+clang complains about the types of main() function
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ main.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/main.c b/main.c
+index 81ba543..ee7506c 100644
+--- a/main.c
++++ b/main.c
+@@ -159,7 +159,7 @@ extern int breakflg;
+
+ unsigned char **mainenv;
+
+-int main(int argc, unsigned char **argv, unsigned char **envv)
++int main(int argc, char **argv, char **envv)
+ {
+ CAP *cap;
+ unsigned char *s;
+--
+1.9.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/joe/joe_3.1.bb b/meta-openembedded/meta-oe/recipes-support/joe/joe_3.1.bb
new file mode 100644
index 000000000..1ad355b5a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/joe/joe_3.1.bb
@@ -0,0 +1,17 @@
+SECTION = "console/utils"
+SUMMARY = "Console text editor with good functionality, good choice for vi-haters"
+HOMEPAGE = "http://joe-editor.sourceforge.net/"
+LICENSE = "GPLv1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=da10ed7cf8038981c580e11c1d3e8fb6"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/joe-editor/joe-${PV}.tar.gz \
+ file://0001-adjust-signature-of-main.patch \
+ "
+
+PACKAGECONFIG ??= "curses"
+PACKAGECONFIG[curses] = "--enable-curses,--disable-curses,ncurses,ncurses-terminfo"
+
+inherit autotools
+
+SRC_URI[md5sum] = "2a6ef018870fca9b7df85401994fb0e0"
+SRC_URI[sha256sum] = "252390e4bc687957f09f334095904c8cc53b39c7b663ed47861ae1d11aef5946"
diff --git a/meta-openembedded/meta-oe/recipes-support/lcms/lcms_2.7.bb b/meta-openembedded/meta-oe/recipes-support/lcms/lcms_2.7.bb
new file mode 100644
index 000000000..12ccb2050
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/lcms/lcms_2.7.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Little cms is a small-footprint, speed optimized color management engine"
+SECTION = "libs"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6c786c3b7a4afbd3c990f1b81261d516"
+SRC_URI = "${SOURCEFORGE_MIRROR}/lcms/lcms2-${PV}.tar.gz"
+SRC_URI[md5sum] = "06c1626f625424a811fb4b5eb070839d"
+SRC_URI[sha256sum] = "4524234ae7de185e6b6da5d31d6875085b2198bc63b1211f7dde6e2d197d6a53"
+
+DEPENDS = "tiff"
+
+BBCLASSEXTEND = "native"
+
+S = "${WORKDIR}/lcms2-${PV}"
+
+inherit autotools
diff --git a/meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.11.bb b/meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.11.bb
new file mode 100644
index 000000000..2f9ac336e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.11.bb
@@ -0,0 +1,27 @@
+SUMMARY = "A graphical front-end for gcov"
+HOMEPAGE = "http://ltp.sourceforge.net/coverage/lcov.php"
+DESCRIPTION = "LCOV is a graphical front-end for GCC's coverage testing \
+tool gcov. It collects gcov data for multiple source files and creates \
+HTML pages containing the source code annotated with coverage information. \
+It also adds overview pages for easy navigation within the file structure. \
+LCOV supports statement, function and branch coverage measurement."
+LICENSE = "GPL-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+RDEPENDS_${PN} += " \
+ gcov \
+ perl \
+ perl-module-filehandle \
+ perl-module-getopt-std \
+ perl-module-digest-sha \
+"
+
+SRC_URI = "http://downloads.sourceforge.net/ltp/${BP}.tar.gz"
+
+SRC_URI[md5sum] = "e79b799ae3ce149aa924c7520e993024"
+SRC_URI[sha256sum] = "c282de8d678ecbfda32ce4b5c85fc02f77c2a39a062f068bd8e774d29ddc9bf8"
+
+do_install() {
+ oe_runmake install PREFIX=${D}
+}
+
diff --git a/meta-openembedded/meta-oe/recipes-support/libatasmart/files/0001-Makefile.am-add-CFLAGS-and-LDFLAGS-definiton.patch b/meta-openembedded/meta-oe/recipes-support/libatasmart/files/0001-Makefile.am-add-CFLAGS-and-LDFLAGS-definiton.patch
new file mode 100644
index 000000000..8c867acca
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libatasmart/files/0001-Makefile.am-add-CFLAGS-and-LDFLAGS-definiton.patch
@@ -0,0 +1,41 @@
+From 75c1d3b8667328d874590a5321eb244256b7d932 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <Mingli.Yu@windriver.com>
+Date: Wed, 18 Jan 2017 07:35:58 +0000
+Subject: [PATCH] Makefile.am: add CFLAGS and LDFLAGS definiton
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+* When build libatasmart, we need first build strpool in host
+ env. To build strpool, the compiler is host compiler, but
+ the CFLAGS and LDFLAGS are for cross-compiler, so unify them
+ to fix below error.
+ | make -C strpool strpool
+ | make[1]: Entering directory '../libatasmart/0.19-r0/build/strpool'
+ | gcc -DHAVE_CONFIG_H -I. -I../../git/strpool -I.. -isystem../build/tmp/sysroots/x86_64-linux/usr/include -O2 -pipe -O2 -pipe -g -fstack-protector-strong -pie -fpie -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security -c -o strpool.o `test -f '../strpool.c' || echo '../../git/strpool/'`../strpool.c
+ | gcc: error: unrecognized command line option ‘-fstack-protector-strong’
+ | make[1]: *** [Makefile:404: strpool.o] Error 1
+
+Upstream-Status: Pending
+
+Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
+---
+ strpool/Makefile.am | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/strpool/Makefile.am b/strpool/Makefile.am
+index b041cea..013fcd3 100644
+--- a/strpool/Makefile.am
++++ b/strpool/Makefile.am
+@@ -17,6 +17,8 @@
+ # <http://www.gnu.org/licenses/>.
+
+ CC = @CC_FOR_BUILD@
++CFLAGS = @BUILD_CFLAGS@
++LDFLAGS = @BUILD_LDFLAGS@
+ AM_CFLAGS = @BUILD_CFLAGS@
+ AM_LDFLAGS = @BUILD_LDFLAGS@
+
+--
+2.11.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/libatasmart/libatasmart_0.19.bb b/meta-openembedded/meta-oe/recipes-support/libatasmart/libatasmart_0.19.bb
new file mode 100644
index 000000000..4cfb73293
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libatasmart/libatasmart_0.19.bb
@@ -0,0 +1,21 @@
+SUMMARY = "ATA S.M.A.R.T. Reading and Parsing Library"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1"
+
+DEPENDS = "udev"
+
+SRCREV = "de6258940960443038b4c1651dfda3620075e870"
+SRC_URI = "git://git.0pointer.de/libatasmart.git \
+ file://0001-Makefile.am-add-CFLAGS-and-LDFLAGS-definiton.patch \
+"
+
+S = "${WORKDIR}/git"
+
+inherit autotools lib_package pkgconfig
+
+do_install_append() {
+ sed -i -e s://:/:g -e 's:=${libdir}/libudev.la:-ludev:g' ${D}${libdir}/libatasmart.la
+}
+
+PACKAGES =+ "${PN}-dev-vala"
+FILES_${PN}-dev-vala = "${datadir}/vala"
diff --git a/meta-openembedded/meta-oe/recipes-support/libbytesize/files/0001-remove-python2-support.patch b/meta-openembedded/meta-oe/recipes-support/libbytesize/files/0001-remove-python2-support.patch
new file mode 100644
index 000000000..b57e39fbc
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_0.10.bb b/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_0.10.bb
new file mode 100644
index 000000000..690302149
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/libcanberra/files/0001-build-gtk-and-gtk3-version-for-canberra_gtk_play.patch b/meta-openembedded/meta-oe/recipes-support/libcanberra/files/0001-build-gtk-and-gtk3-version-for-canberra_gtk_play.patch
new file mode 100644
index 000000000..4e0984f36
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libcanberra/files/0001-build-gtk-and-gtk3-version-for-canberra_gtk_play.patch
@@ -0,0 +1,92 @@
+From 4a89ddffbb14d747adbe3365ace4db87de52ba39 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Mon, 16 Sep 2013 16:08:28 +0200
+Subject: [PATCH] build gtk- and gtk3-version for canberra_gtk_play
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+---
+ src/Makefile.am | 25 +++++++++++++++----------
+ 1 files changed, 15 insertions(+), 10 deletions(-)
+
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 56ed96d..fc72e1f 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -319,9 +319,6 @@ endif
+
+ if HAVE_GTK_ANY
+
+-bin_PROGRAMS += \
+- canberra-gtk-play
+-
+ include_HEADERS += \
+ canberra-gtk.h
+
+@@ -329,6 +326,9 @@ endif
+
+ if HAVE_GTK3
+
++bin_PROGRAMS += \
++ canberra-gtk3-play
++
+ lib_LTLIBRARIES += \
+ libcanberra-gtk3.la
+
+@@ -367,6 +367,9 @@ endif
+
+ if HAVE_GTK
+
++bin_PROGRAMS += \
++ canberra-gtk-play
++
+ lib_LTLIBRARIES += \
+ libcanberra-gtk.la
+
+@@ -399,14 +402,17 @@ endif
+
+ if HAVE_GTK3
+
+-canberra_gtk_play_LDADD = \
++canberra_gtk3_play_LDADD = \
+ $(GTK3_LIBS) \
+ libcanberra.la \
+ libcanberra-gtk3.la
+-canberra_gtk_play_CFLAGS = \
++canberra_gtk3_play_CFLAGS = \
+ $(GTK3_CFLAGS)
+
+-else
++canberra_gtk3_play_SOURCES = \
++ canberra-gtk-play.c
++
++endif
+ if HAVE_GTK
+
+ canberra_gtk_play_LDADD = \
+@@ -416,7 +422,9 @@ canberra_gtk_play_LDADD = \
+ canberra_gtk_play_CFLAGS = \
+ $(GTK_CFLAGS)
+
+-endif
++canberra_gtk_play_SOURCES = \
++ canberra-gtk-play.c
++
+ endif
+
+ if HAVE_GTK_ANY
+@@ -424,9 +432,6 @@ if HAVE_GTK_ANY
+ dist_gsdgtkmodules_DATA = \
+ canberra-gtk-module.desktop
+
+-canberra_gtk_play_SOURCES = \
+- canberra-gtk-play.c
+-
+ EXTRA_DIST += \
+ libcanberra-login-sound.desktop.in \
+ libcanberra-ready-sound.desktop.in \
+--
+1.7.6.5
+
diff --git a/meta-openembedded/meta-oe/recipes-support/libcanberra/libcanberra_0.30.bb b/meta-openembedded/meta-oe/recipes-support/libcanberra/libcanberra_0.30.bb
new file mode 100644
index 000000000..72c93abe1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libcanberra/libcanberra_0.30.bb
@@ -0,0 +1,62 @@
+SUMMARY = "Implementation of XDG Sound Theme and Name Specifications"
+DESCRIPTION = "Libcanberra is an implementation of the XDG Sound Theme and Name Specifications, for generating event sounds on free desktops."
+LICENSE = "LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \
+ file://src/canberra.h;beginline=7;endline=24;md5=c616c687cf8da540a14f917e0d23ab03"
+
+DEPENDS = "libtool libvorbis"
+
+inherit autotools gtk-doc
+
+SRC_URI = " \
+ http://0pointer.de/lennart/projects/${BPN}/${BPN}-${PV}.tar.xz \
+ file://0001-build-gtk-and-gtk3-version-for-canberra_gtk_play.patch \
+"
+SRC_URI[md5sum] = "34cb7e4430afaf6f447c4ebdb9b42072"
+SRC_URI[sha256sum] = "c2b671e67e0c288a69fc33dc1b6f1b534d07882c2aceed37004bf48c601afa72"
+
+EXTRA_OECONF = "\
+ --enable-null \
+ --disable-oss \
+ --disable-tdb \
+ --disable-lynx \
+"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa pulseaudio', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk gtk3', '', d)} \
+"
+PACKAGECONFIG[alsa] = "--enable-alsa, --disable-alsa, alsa-lib"
+PACKAGECONFIG[pulseaudio] = "--enable-pulse, --disable-pulse, pulseaudio"
+PACKAGECONFIG[gstreamer] = "--enable-gstreamer, --disable-gstreamer, gstreamer1.0"
+PACKAGECONFIG[gtk] = "--enable-gtk, --disable-gtk, gtk+"
+PACKAGECONFIG[gtk3] = "--enable-gtk3, --disable-gtk3, gtk+3"
+
+python populate_packages_prepend() {
+ plugindir = d.expand('${libdir}/${BPN}-${PV}/')
+ do_split_packages(d, plugindir, '^libcanberra-(.*)\.so$', 'libcanberra-%s', '%s support library', extra_depends='' )
+ do_split_packages(d, plugindir, '^libcanberra-(.*)\.la$', 'libcanberra-%s', '%s support library', extra_depends='' )
+}
+
+PACKAGES =+ "${PN}-gnome ${PN}-gtk2 ${PN}-gtk3 ${PN}-systemd"
+PACKAGES_DYNAMIC += "^libcanberra-.*"
+
+FILES_${PN} = "${bindir}/ ${libdir}/${BPN}.so.*"
+
+FILES_${PN}-dev += "${datadir}/vala/vapi ${libdir}/*/modules/*.la ${libdir}/*/*.la"
+
+FILES_${PN}-dbg += "${libdir}/${BPN}-${PV}/.debug ${libdir}/gtk-*/modules/.debug"
+
+FILES_${PN}-gtk2 = "${libdir}/${BPN}-gtk.so.* \
+ ${libdir}/gtk-2.0/modules/*.so \
+ ${bindir}/canberra-gtk-play"
+
+# -gtk3 ships a symlink to a .so
+INSANE_SKIP_${PN}-gtk3 = "dev-so"
+FILES_${PN}-gtk3 = "${libdir}/${BPN}-gtk3.so.* \
+ ${libdir}/gtk-3.0/modules/*.so \
+ ${bindir}/canberra-gtk3-play"
+
+FILES_${PN}-gnome = "${libdir}/gnome-settings-daemon-3.0/ \
+ ${datadir}/gdm/ ${datadir}/gnome/"
+
+FILES_${PN}-systemd = "${systemd_unitdir}/system/*.service"
diff --git a/meta-openembedded/meta-oe/recipes-support/libcyusbserial/libcyusbserial_git.bb b/meta-openembedded/meta-oe/recipes-support/libcyusbserial/libcyusbserial_git.bb
new file mode 100644
index 000000000..74b5e21e2
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/libee/libee.inc b/meta-openembedded/meta-oe/recipes-support/libee/libee.inc
new file mode 100644
index 000000000..e5a145ab2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libee/libee.inc
@@ -0,0 +1,39 @@
+SUMMARY = "An Event Expression Library inspired by CEE"
+DESCRIPTION = "The core idea of libee is to provide a small \
+but hopefully convenient API layer above the CEE standard."
+
+HOMEPAGE = "http://www.libee.org"
+SECTION = "base"
+
+LICENSE = "LGPL-2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1c2687de35e36ba3b999136236a66cd6"
+
+SRC_URI = "http://www.libee.org/download/files/download/${BPN}-${PV}.tar.gz\
+ file://libee-parallel-make.patch \
+ file://run-ptest \
+ file://ezapi1.sh \
+"
+
+inherit autotools ptest pkgconfig
+
+DEPENDS += "libestr"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'testbench', '', d)}"
+
+PACKAGECONFIG[debug] = "--enable-debug,--disable-debug,,"
+PACKAGECONFIG[testbench] = "--enable-testbench,--disable-testbench,,"
+
+TESTDIR = "tests"
+
+# We presume the tests we are going to install so just build them directly.
+#
+do_compile_ptest() {
+ oe_runmake -C ${TESTDIR} genfile ezapi1
+}
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}
+ install -m 0755 ${B}/${TESTDIR}/genfile ${D}${PTEST_PATH}
+ install -m 0755 ${B}/${TESTDIR}/.libs/ezapi1 ${D}${PTEST_PATH}
+ install -m 0755 ${WORKDIR}/ezapi1.sh ${D}${PTEST_PATH}
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/libee/libee/ezapi1.sh b/meta-openembedded/meta-oe/recipes-support/libee/libee/ezapi1.sh
new file mode 100755
index 000000000..e9db5e614
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libee/libee/ezapi1.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+#
+echo ---------------------------------------------------------------------------
+echo A very basic test for the event class
+echo ---------------------------------------------------------------------------
+rm -f infile
+./genfile 100 > infile
+./ezapi1 -iinfile
+if [ $? -ne 0 ] ; then
+ echo "FAIL: $0"
+ exit 1
+fi
+echo "PASS: $0"
+rm -f infile
diff --git a/meta-openembedded/meta-oe/recipes-support/libee/libee/libee-parallel-make.patch b/meta-openembedded/meta-oe/recipes-support/libee/libee/libee-parallel-make.patch
new file mode 100644
index 000000000..25e5c6ae0
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libee/libee/libee-parallel-make.patch
@@ -0,0 +1,20 @@
+fix parallel compiling problem
+
+without specifying libee_convert_DEPENDENCIES = libee.la, libee_convert
+can't find libee.la when linking as libee is not generated yet.
+
+Upstream-Status: pending
+
+Signed-off-by: Yao Zhao <yao.zhao@windriver.com>
+---
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 08aaa9e..f0c78f7 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -46,5 +46,6 @@ libee_la_LDFLAGS = -version-info 0:0:0
+ libee_convert_SOURCES = convert.c
+ libee_convert_CPPFLAGS = -I$(top_srcdir) $(LIBEE_CFLAGS) $(LIBESTR_CFLAGS) $(LIBXML2_CFLAGS)
+ libee_convert_LDADD = $(LIBEE_LIBS) $(LIBXML2_LIBS) $(LIBESTR_LIBS)
++libee_convert_DEPENDENCIES = libee.la
+
+ include_HEADERS =
diff --git a/meta-openembedded/meta-oe/recipes-support/libee/libee/run-ptest b/meta-openembedded/meta-oe/recipes-support/libee/libee/run-ptest
new file mode 100755
index 000000000..3cb660764
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libee/libee/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+#
+./ezapi1.sh
diff --git a/meta-openembedded/meta-oe/recipes-support/libee/libee_0.4.1.bb b/meta-openembedded/meta-oe/recipes-support/libee/libee_0.4.1.bb
new file mode 100644
index 000000000..ef2c20db5
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libee/libee_0.4.1.bb
@@ -0,0 +1,4 @@
+require ${BPN}.inc
+
+SRC_URI[md5sum] = "7bbf4160876c12db6193c06e2badedb2"
+SRC_URI[sha256sum] = "c0dac01938593deee06c3d161e4eda4ecc0fd7317e1321bd96e301aceb7fb027"
diff --git a/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.3.4.bb b/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.3.4.bb
new file mode 100644
index 000000000..bc3b32e38
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.3.4.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms."
+AUTHOR = "Benoît Jacob and Gaël Guennebaud and others"
+HOMEPAGE = "http://eigen.tuxfamily.org/"
+LICENSE = "MPL-2.0"
+LIC_FILES_CHKSUM = "file://COPYING.MPL2;md5=815ca599c9df247a0c7f619bab123dad"
+
+SRC_URI = "http://bitbucket.org/eigen/eigen/get/${PV}.tar.bz2;downloadfilename=${BP}.tar.bz2"
+SRC_URI[md5sum] = "a7aab9f758249b86c93221ad417fbe18"
+SRC_URI[sha256sum] = "dd254beb0bafc695d0f62ae1a222ff85b52dbaa3a16f76e781dce22d0d20a4a6"
+
+S = "${WORKDIR}/eigen-eigen-5a0156e40feb"
+
+inherit cmake
+
+FILES_${PN} = "${includedir} ${libdir}"
+FILES_${PN}-dev = "${datadir}/eigen3/cmake ${datadir}/cmake/Modules ${datadir}/pkgconfig"
+
+# ${PN} is empty so we need to tweak -dev and -dbg package dependencies
+RDEPENDS_${PN}-dev = ""
+RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})"
diff --git a/meta-openembedded/meta-oe/recipes-support/libestr/libestr_0.1.10.bb b/meta-openembedded/meta-oe/recipes-support/libestr/libestr_0.1.10.bb
new file mode 100644
index 000000000..9bff4f35a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libestr/libestr_0.1.10.bb
@@ -0,0 +1,11 @@
+SUMMARY = "some essentials for string handling (and a bit more)"
+HOMEPAGE = "http://libestr.adiscon.com/"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=9d6c993486c18262afba4ca5bcb894d0"
+
+SRC_URI = "http://libestr.adiscon.com/files/download/${BP}.tar.gz"
+
+SRC_URI[md5sum] = "f4c9165a23587e77f7efe65d676d5e8e"
+SRC_URI[sha256sum] = "bd655e126e750edd18544b88eb1568d200a424a0c23f665eb14bbece07ac703c"
+
+inherit autotools
diff --git a/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.4.bb b/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.4.bb
new file mode 100644
index 000000000..6bea16582
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.4.bb
@@ -0,0 +1,31 @@
+DESCRIPTION = "libftdi is a library to talk to FTDI chips.\
+FT232BM/245BM, FT2232C/D and FT232/245R using libusb,\
+including the popular bitbang mode."
+HOMEPAGE = "http://www.intra2net.com/en/developer/libftdi/"
+SECTION = "libs"
+
+LICENSE = "LGPLv2.1 & GPLv2"
+LIC_FILES_CHKSUM= "\
+ file://COPYING.GPL;md5=751419260aa954499f7abaabaa882bbe \
+ file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2 \
+"
+
+DEPENDS = "libusb1"
+
+SRC_URI = "http://www.intra2net.com/en/developer/${BPN}/download/${BPN}1-${PV}.tar.bz2"
+
+SRC_URI[md5sum] = "0c09fb2bb19a57c839fa6845c6c780a2"
+SRC_URI[sha256sum] = "ec36fb49080f834690c24008328a5ef42d3cf584ef4060f3a35aa4681cb31b74"
+
+S = "${WORKDIR}/${BPN}1-${PV}"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[cpp-wrapper] = "-DFTDI_BUILD_CPP=on -DFTDIPP=on,-DFTDI_BUILD_CPP=off -DFTDIPP=off,boost"
+
+inherit cmake binconfig pkgconfig
+
+EXTRA_OECMAKE = "-DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')}"
+
+FILES_${PN}-dev += "${libdir}/cmake"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/libgit2/libgit2_0.24.3.bb b/meta-openembedded/meta-oe/recipes-support/libgit2/libgit2_0.24.3.bb
new file mode 100644
index 000000000..8f580f9ff
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libgit2/libgit2_0.24.3.bb
@@ -0,0 +1,23 @@
+SUMMARY = "the Git linkable library"
+HOMEPAGE = "http://libgit2.github.com/"
+LICENSE = "GPL-2.0-with-GCC-exception"
+LIC_FILES_CHKSUM = "file://COPYING;md5=34197a479f637beb9e09e56893f48bc2"
+
+DEPENDS = "curl openssl zlib libssh2"
+
+SRC_URI = "git://github.com/libgit2/libgit2.git;branch=maint/v0.24"
+SRCREV = "4cf1ec7cff28da8838a2f0a9fb330e312ea3f963"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+EXTRA_OECMAKE = "\
+ -DTHREADSAFE=ON \
+ -DBUILD_CLAR=OFF \
+ -DSHA1_TYPE="builtin" \
+ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+ -DBUILD_EXAMPLES=OFF \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod.inc b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod.inc
new file mode 100644
index 000000000..cd7750623
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod.inc
@@ -0,0 +1,21 @@
+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"
+
+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}/*"
+
+RRECOMMENDS_TOOLS = "${@bb.utils.contains('PACKAGECONFIG', 'tools', '${PN}-tools', '',d)}"
+RRECOMMENDS_${PN} += "${RRECOMMENDS_TOOLS}"
diff --git a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_0.3.3.bb b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_0.3.3.bb
new file mode 100644
index 000000000..09fb65a08
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_0.3.3.bb
@@ -0,0 +1,4 @@
+require libgpiod.inc
+
+SRC_URI[md5sum] = "2aa1e1a80c3c919ae142ab9a55fb59ca"
+SRC_URI[sha256sum] = "b773e557af1a497f786825462a776b7bf90168e67ee0a5bc5d2473a5674dc38c"
diff --git a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.0.1.bb b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.0.1.bb
new file mode 100644
index 000000000..51499fd72
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.0.1.bb
@@ -0,0 +1,4 @@
+require libgpiod.inc
+
+SRC_URI[md5sum] = "2ca0c3eb17d69e367b6f6a109ca86e41"
+SRC_URI[sha256sum] = "972924195367f5fb045c023d65340c4b7dfc8764499516be446553865208dedc"
diff --git a/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb b/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb
new file mode 100644
index 000000000..ba380ed30
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb
@@ -0,0 +1,44 @@
+SUMMARY = "Library for interfacing with IIO devices"
+HOMEPAGE = "https://wiki.analog.com/resources/tools-software/linux-software/libiio"
+SECTION = "libs"
+LICENSE = "LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING.txt;md5=7c13b3376cea0ce68d2d2da0a1b3a72c"
+
+SRCREV = "fa82974d8bd1fded78e630ab71a7ded1b11d0e33"
+PV = "0.14+git${SRCPV}"
+
+SRC_URI = "git://github.com/analogdevicesinc/libiio.git;protocol=https"
+
+S = "${WORKDIR}/git"
+
+inherit cmake pythonnative systemd
+
+DEPENDS = " \
+ flex-native bison-native libaio \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)} \
+"
+
+EXTRA_OECMAKE = " \
+ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+ -DUDEV_RULES_INSTALL_DIR=${nonarch_base_libdir}/udev/rules.d \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '-DWITH_SYSTEMD=ON -DSYSTEMD_UNIT_INSTALL_DIR=${systemd_system_unitdir}', '', d)} \
+"
+
+PACKAGECONFIG ??= "USB_BACKEND NETWORK_BACKEND"
+
+PACKAGECONFIG[USB_BACKEND] = "-DWITH_USB_BACKEND=ON,-DWITH_USB_BACKEND=OFF,libusb1,libxml2"
+PACKAGECONFIG[NETWORK_BACKEND] = "-DWITH_NETWORK_BACKEND=ON,-DWITH_NETWORK_BACKEND=OFF,libxml2"
+
+PACKAGES =+ "${PN}-iiod ${PN}-tests ${PN}-python"
+
+RDEPENDS_${PN}-python = "${PN} python-ctypes python-stringold"
+
+FILES_${PN}-iiod = " \
+ ${sbindir}/iiod \
+ ${systemd_system_unitdir}/iiod.service \
+"
+FILES_${PN}-tests = "${bindir}"
+FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}"
+
+SYSTEMD_PACKAGES = "${PN}-iiod"
+SYSTEMD_SERVICE_${PN}-iiod = "iiod.service"
diff --git a/meta-openembedded/meta-oe/recipes-support/libjs/libjs-jquery_1.7.2.bb b/meta-openembedded/meta-oe/recipes-support/libjs/libjs-jquery_1.7.2.bb
new file mode 100644
index 000000000..7f425cdea
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libjs/libjs-jquery_1.7.2.bb
@@ -0,0 +1,25 @@
+SUMMARY = "JavaScript library for dynamic web applications"
+HOMEPAGE = "https://jquery.com/"
+LICENSE = "MIT | BSD | GPL-2"
+LIC_FILES_CHKSUM = "file://usr/share/doc/libjs-jquery/copyright;md5=5d1ec6f95e0a91d38e2f71de93ddb00e"
+
+SRC_URI = "http://kr.archive.ubuntu.com/ubuntu/pool/main/j/jquery/${BPN}_${PV}+debian-1ubuntu1~ubuntu12.04.1_all.deb;subdir=${BP}"
+SRC_URI[md5sum] = "fa511ab67f6e960c5b6d39a4d665e47f"
+SRC_URI[sha256sum] = "190ca18a71e35c8ab2ba73fe5be3c7cc601fe20b45709d801110818f1b602cc1"
+
+JQUERYDIR = "${datadir}/javascript/jquery"
+JQUERYDOCDIR = "${docdir}/libjs-jquery"
+
+do_install() {
+ install -d -m 0755 ${D}${JQUERYDIR}
+ install -m 0644 ${S}${JQUERYDIR}/jquery.js ${D}${JQUERYDIR}/
+ install -m 0644 ${S}${JQUERYDIR}/jquery.min.js ${D}${JQUERYDIR}/
+
+ ln -sf jquery.min.js ${D}${JQUERYDIR}/jquery.lite.js
+ ln -sf jquery.min.js ${D}${JQUERYDIR}/jquery.pack.js
+
+ install -d -m 0644 ${D}${JQUERYDOCDIR}
+ install -m 0644 ${S}${JQUERYDOCDIR}/copyright ${D}${JQUERYDOCDIR}/
+}
+
+FILES_${PN} = "/usr/share/javascript/jquery"
diff --git a/meta-openembedded/meta-oe/recipes-support/libjs/libjs-sizzle_1.10.18.bb b/meta-openembedded/meta-oe/recipes-support/libjs/libjs-sizzle_1.10.18.bb
new file mode 100644
index 000000000..4928b6c3a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libjs/libjs-sizzle_1.10.18.bb
@@ -0,0 +1,19 @@
+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"
+
+SRC_URI = "http://kr.archive.ubuntu.com/ubuntu/pool/universe/s/sizzle/sizzle_1.10.18.orig.tar.gz"
+SRC_URI[md5sum] = "91477c1edeef9f8100ffd6c4d31725b5"
+SRC_URI[sha256sum] = "8e04ab84bb74b2e338dffc63cd2e52b007f1d8af01b3d25da4d2e07f2b5890f8"
+
+S = "${WORKDIR}/sizzle-${PV}"
+
+SIZZLEDIR = "${S}/dist"
+
+do_install() {
+ install -d -m 0755 ${D}/${datadir}/javascript/sizzle/
+ install -m 0644 ${SIZZLEDIR}/*.js ${D}/${datadir}/javascript/sizzle/
+}
+
+FILES_${PN} = "${datadir}/javascript/sizzle/"
diff --git a/meta-openembedded/meta-oe/recipes-support/liblinebreak/liblinebreak_1.2.bb b/meta-openembedded/meta-oe/recipes-support/liblinebreak/liblinebreak_1.2.bb
new file mode 100644
index 000000000..d0463a640
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/liblinebreak/liblinebreak_1.2.bb
@@ -0,0 +1,11 @@
+DESCRIPTION = "Liblinebreak is an implementation of the line breaking algorithm as described in Unicode 5.1.0 Standard Annex 14, Revision 22"
+HOMEPAGE = "http://vimgadgets.sourceforge.net/liblinebreak/"
+SECTION = "libs"
+LICENSE = "Zlib"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=3715191da62bafb5cfc4ff36195b2ec3"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/project/vimgadgets/liblinebreak/${PV}/liblinebreak-${PV}.tar.gz"
+SRC_URI[md5sum] = "d18039259001ccb24b5dd4648c49c5ad"
+SRC_URI[sha256sum] = "9efcb0cb1afc75ad1e92d2b2dbf4d9c77b072d6656c5f1a150af8b718d0c7b76"
+
+inherit autotools
diff --git a/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.55.bb b/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.55.bb
new file mode 100644
index 000000000..0930a277b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.55.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "A small C library that is supposed to make it easy to run an HTTP server as part of another application"
+HOMEPAGE = "http://www.gnu.org/software/libmicrohttpd/"
+LICENSE = "LGPL-2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=9331186f4f80db7da0e724bdd6554ee5"
+SECTION = "net"
+DEPENDS = "libgcrypt gnutls file"
+
+SRC_URI = "http://ftp.gnu.org/gnu/libmicrohttpd/${BPN}-${PV}.tar.gz"
+SRC_URI[md5sum] = "1c20f84a8b9cf692dd50b558b3571a3a"
+SRC_URI[sha256sum] = "0c1cab8dc9f2588bd3076a28f77a7f8de9560cbf2d80e53f9a8696ada80ed0f8"
+
+inherit autotools lib_package pkgconfig gettext
+
+CFLAGS += "-pthread -D_REENTRANT"
+
+EXTRA_OECONF += "--disable-static --with-gnutls=${STAGING_LIBDIR}/../"
+
+PACKAGECONFIG ?= "curl"
+PACKAGECONFIG_append_class-target = "\
+ ${@bb.utils.filter('DISTRO_FEATURES', 'largefile', d)} \
+"
+PACKAGECONFIG[largefile] = "--enable-largefile,--disable-largefile,,"
+PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl,"
+
+do_compile_append() {
+ sed -i s:-L${STAGING_LIBDIR}::g libmicrohttpd.pc
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/libnih/libnih-1.0.3/0001-signal.c-SIGCLD-and-SIGCHILD-are-same-on-sytem-V-sys.patch b/meta-openembedded/meta-oe/recipes-support/libnih/libnih-1.0.3/0001-signal.c-SIGCLD-and-SIGCHILD-are-same-on-sytem-V-sys.patch
new file mode 100644
index 000000000..a43b4b176
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libnih/libnih-1.0.3/0001-signal.c-SIGCLD-and-SIGCHILD-are-same-on-sytem-V-sys.patch
@@ -0,0 +1,28 @@
+From f1b9992caf9910f9f7afae401045e42572cc84ff Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 1 Apr 2017 08:50:35 -0700
+Subject: [PATCH] signal.c: SIGCLD and SIGCHILD are same on sytem V systems
+
+Musl drops the SIGCLD legacy
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ nih/signal.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/nih/signal.c b/nih/signal.c
+index a241df9..691c8e6 100644
+--- a/nih/signal.c
++++ b/nih/signal.c
+@@ -87,7 +87,7 @@ static const SignalName signal_names[] = {
+ { SIGSTKFLT, "STKFLT" },
+ #endif
+ { SIGCHLD, "CHLD" },
+- { SIGCLD, "CLD" },
++ { SIGCHLD, "CLD" },
+ { SIGCONT, "CONT" },
+ { SIGSTOP, "STOP" },
+ { SIGTSTP, "TSTP" },
+--
+2.12.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/libnih/libnih-1.0.3/libnih_1.0.3-4ubuntu16.patch b/meta-openembedded/meta-oe/recipes-support/libnih/libnih-1.0.3/libnih_1.0.3-4ubuntu16.patch
new file mode 100644
index 000000000..5d125c851
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libnih/libnih-1.0.3/libnih_1.0.3-4ubuntu16.patch
@@ -0,0 +1,3593 @@
+--- libnih-1.0.3.orig/ChangeLog
++++ libnih-1.0.3/ChangeLog
+@@ -1,3 +1,84 @@
++2013-03-13 Steve Langasek <steve.langasek@ubuntu.com>
++
++ * nih/watch.c (nih_watch_walk_filter): New NihFileFilter function
++ passed to nih_dir_walk_scan() to ensure the nih_watch_new() filter
++ function is passed the NihWatch data rather than the data passed to
++ the nih_dir_walk() NihFileVisitor function (LP: #776532).
++
++ * nih/tests/test_watch.c (test_new): New test "with filter and data"
++ to ensure filter is passed correct value.
++
++2013-02-28 James Hunt <james.hunt@ubuntu.com>
++
++ * Removal of gcc 'malloc' function attribute resulting from
++ a clarification in its description which makes its use invalid.
++ (LP: #1123588).
++
++2013-02-05 James Hunt <james.hunt@ubuntu.com>
++
++ * nih/logging.c: nih_log_abort_message(): Remove erroneous check
++ left over from use of __abort_msg weak symbol.
++ * nih/tests/test_logging.c: Remove unecessary check on whether
++ __nih_abort_msg has an address.
++
++2012-12-13 Stéphane Graber <stgraber@ubuntu.com>
++
++ * nih-dbus-tool/type.c, nih-dbus-tool/marshal.c: Update dbus code
++ generator to allow for empty lists for type 'as'. This drops the
++ != NULL check for NULL terminated arrays and moves the iteration
++ loop inside an 'if' statement.
++
++2012-12-11 Dmitrijs Ledkovs <dmitrijs.ledkovs@canonical.com>
++
++ * nih/file.c (nih_dir_walk_scan): Fallback to lstat, if the
++ non-portable dirent.d_type is not available (LP: #672643) (Closes:
++ #695604).
++
++2012-12-10 Petr Lautrbach <plautrba@redhat.com>
++
++ * nih/tests/test_file.c: don't use dirent.d_type (not portable)
++
++2012-10-25 James Hunt <james.hunt@ubuntu.com>
++
++ * nih/logging.c: Use our own __nih_abort_msg rather than the
++ (e)glibc private symbol __abort_msg to avoid upgrade issues (LP: #997359).
++ * nih/tests/test_logging.c: Update tests for __nih_abort_msg.
++
++2011-08-31 James Hunt <james.hunt@ubuntu.com>
++
++ * nih-dbus-tool/tests/test_com.netsplit.Nih.Test_object.c
++ (test_unix_fd_to_str): Sanity check value before invoking strchr in
++ case it returns address of null (which would give a misleading test
++ pass).
++ * nih-dbus-tool/tests/test_com.netsplit.Nih.Test_proxy.c
++ (test_unix_fd_to_str, test_unix_fd_to_str_sync): Sanity check value
++ before invoking strchr in case it returns address of null (which would
++ give a misleading test pass).
++ * nih/config.c (): nih_config_block_end: Add check to ensure strchr()
++ doesn't return address of null since this would result in a misleading
++ return value of TRUE.
++
++ * nih/string.c (nih_str_split): Fixes to avoid over-running
++ input string and also returning an empty string array entry
++ when repeat is true (LP: #834813).
++ * nih/tests/test_string.c (test_str_split): Added a lot of new
++ tests for nih_str_split().
++
++2011-08-26 James Hunt <james.hunt@ubuntu.com>
++
++ * nih/io.c (nih_io_select_fds): Ensure number of fds being managed
++ is within limits.
++
++ * nih/config.c, nih/error.h, nih/io.c, nih/test_files.h: Correct
++ typos in comments.
++
++2011-06-20 James Hunt <james.hunt@ubuntu.com>
++
++ * nih/watch.c (nih_watch_handle): Handle non-directory watches;
++ previously a file watch resulted in an invalid file path ending in
++ a single slash (LP:#777097).
++ * nih/tests/test_watch.c: Added explicit test for watch on a file.
++
+ 2010-12-23 Scott James Remnant <scott@netsplit.com>
+
+ * NEWS: Release 1.0.3
+--- libnih-1.0.3.orig/nih/watch.c
++++ libnih-1.0.3/nih/watch.c
+@@ -2,8 +2,8 @@
+ *
+ * watch.c - watching of files and directories with inotify
+ *
+- * Copyright © 2009 Scott James Remnant <scott@netsplit.com>.
+- * Copyright © 2009 Canonical Ltd.
++ * Copyright © 2011 Scott James Remnant <scott@netsplit.com>.
++ * Copyright © 2011 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2, as
+@@ -71,6 +71,9 @@
+ uint32_t events, uint32_t cookie,
+ const char *name,
+ int *caught_free);
++static int nih_watch_walk_filter (void *data, const char *path,
++ int is_dir)
++ __attribute__ ((warn_unused_result));
+
+
+ /**
+@@ -91,7 +94,7 @@
+ * sub-directories will be automatically watched.
+ *
+ * Additionally, the set of files and directories within @path can be
+- * limited by passing a @filter function which will recieve the paths and
++ * limited by passing a @filter function which will receive the paths and
+ * may return TRUE to indicate that the path received should not be watched.
+ *
+ * When a file is created within @path, or moved from outside this location
+@@ -104,7 +107,7 @@
+ * files that exist under @path when the watch is first added. This only
+ * occurs if the watch can be added.
+ *
+- * This is a very high level wrapped around the inotify API; lower levels
++ * This is a very high level wrapper around the inotify API; lower levels
+ * can be obtained using the inotify API itself and some of the helper
+ * functions used by this one.
+ *
+@@ -185,6 +188,35 @@
+ }
+
+
++ /**
++ * nih_watch_walk_filter:
++ * @data: NihWatch,
++ * @path: path to file,
++ * @is_dir: TRUE if @path is a directory.
++ *
++ * Callback function for nih_dir_walk(), used by nih_watch_add() to wrap
++ * the user-specified NihFileFilter (watch->filter) with a filter that can
++ * take watch itself as an argument.
++ *
++ * Returns: TRUE if the path should be ignored, FALSE otherwise.
++ **/
++static int
++nih_watch_walk_filter (void *data, const char *path, int is_dir)
++{
++ NihWatch *watch;
++
++ watch = (NihWatch *)data;
++
++ nih_assert (watch);
++
++ /* No filter, so accept all files */
++ if (! watch->filter)
++ return FALSE;
++
++ return watch->filter (watch->data, path, is_dir);
++}
++
++
+ /**
+ * nih_watch_handle_by_wd:
+ * @watch: watch to search,
+@@ -295,7 +327,7 @@
+ * one; errors within the walk are warned automatically, so if this
+ * fails, it means we literally couldn't watch the top-level.
+ */
+- if (subdirs && (nih_dir_walk (path, watch->filter,
++ if (subdirs && (nih_dir_walk (path, nih_watch_walk_filter,
+ (NihFileVisitor)nih_watch_add_visitor,
+ NULL, watch) < 0)) {
+ NihError *err;
+@@ -494,12 +526,21 @@
+ return;
+ }
+
++ /* Every other event must come with a name */
++ if (name && *name) {
+
+- /* Every other event must come with a name. */
+- if ((! name) || strchr (name, '/'))
+- return;
++ /* If name refers to a directory, there should be no associated
++ * path - just the name of the path element.
++ */
++ if (strchr (name, '/'))
++ return;
+
+- path = NIH_MUST (nih_sprintf (NULL, "%s/%s", handle->path, name));
++ /* Event occured for file within a watched directory */
++ path = NIH_MUST (nih_sprintf (NULL, "%s/%s", handle->path, name));
++ } else {
++ /* File event occured */
++ path = NIH_MUST (nih_strdup (NULL, handle->path));
++ }
+
+ /* Check the filter */
+ if (watch->filter && watch->filter (watch->data, path,
+--- libnih-1.0.3.orig/nih/hash.h
++++ libnih-1.0.3/nih/hash.h
+@@ -141,7 +141,7 @@
+ * @hash: hash table to iterate,
+ * @iter: name of iterator variable.
+ *
+- * Expans to nested for statements that iterate over each entry in each
++ * Expands to nested for statements that iterate over each entry in each
+ * bin of @hash, except for the bin head pointer, setting @iter to each
+ * entry for the block within the loop. A variable named _@iter_i is used
+ * to iterate the hash bins.
+@@ -203,7 +203,7 @@
+ NihKeyFunction key_function,
+ NihHashFunction hash_function,
+ NihCmpFunction cmp_function)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ NihList * nih_hash_add (NihHash *hash, NihList *entry);
+ NihList * nih_hash_add_unique (NihHash *hash, NihList *entry);
+--- libnih-1.0.3.orig/nih/main.h
++++ libnih-1.0.3/nih/main.h
+@@ -138,7 +138,7 @@
+
+ NihMainLoopFunc *nih_main_loop_add_func (const void *parent,
+ NihMainLoopCb callback, void *data)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ void nih_main_term_signal (void *data, NihSignal *signal);
+
+--- libnih-1.0.3.orig/nih/command.h
++++ libnih-1.0.3/nih/command.h
+@@ -123,7 +123,7 @@
+
+ NihCommand *nih_command_join (const void *parent,
+ const NihCommand *a, const NihCommand *b)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ NIH_END_EXTERN
+
+--- libnih-1.0.3.orig/nih/config.h
++++ libnih-1.0.3/nih/config.h
+@@ -140,10 +140,10 @@
+ char * nih_config_next_token (const void *parent, const char *file,
+ size_t len, size_t *pos, size_t *lineno,
+ const char *delim, int dequote)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ char * nih_config_next_arg (const void *parent, const char *file,
+ size_t len, size_t *pos, size_t *lineno)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ void nih_config_next_line (const char *file, size_t len,
+ size_t *pos, size_t *lineno);
+
+@@ -155,15 +155,15 @@
+
+ char ** nih_config_parse_args (const void *parent, const char *file,
+ size_t len, size_t *pos, size_t *lineno)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ char * nih_config_parse_command (const void *parent, const char *file,
+ size_t len, size_t *pos, size_t *lineno)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ char * nih_config_parse_block (const void *parent, const char *file,
+ size_t len, size_t *pos, size_t *lineno,
+ const char *type)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ int nih_config_skip_block (const char *file, size_t len,
+ size_t *lineno, size_t *pos,
+ const char *type, size_t *endpos)
+--- libnih-1.0.3.orig/nih/io.c
++++ libnih-1.0.3/nih/io.c
+@@ -2,8 +2,8 @@
+ *
+ * io.c - file and socket input/output handling
+ *
+- * Copyright © 2009 Scott James Remnant <scott@netsplit.com>.
+- * Copyright © 2009 Canonical Ltd.
++ * Copyright © 2011 Scott James Remnant <scott@netsplit.com>.
++ * Copyright © 2011 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2, as
+@@ -165,6 +165,7 @@
+ nih_assert (readfds != NULL);
+ nih_assert (writefds != NULL);
+ nih_assert (exceptfds != NULL);
++ nih_assert (*nfds <= FD_SETSIZE);
+
+ nih_io_init ();
+
+@@ -186,6 +187,9 @@
+ *nfds = nih_max (*nfds, watch->fd + 1);
+ }
+ }
++
++ /* Re-check in case we exceeded the limit in the loop */
++ nih_assert (*nfds <= FD_SETSIZE);
+ }
+
+ /**
+@@ -901,7 +905,7 @@
+ * read and placed into the receive buffer or queue, and the reader function
+ * is called if set.
+ *
+- * Any data or messaages in the send buffer or queue are written out if the
++ * Any data or messages in the send buffer or queue are written out if the
+ * @events includes NIH_IO_WRITE.
+ *
+ * Errors are handled when data is read, and result in the error handled
+@@ -1211,7 +1215,7 @@
+ * This function is called when the local end of a file descriptor being
+ * managed by NihIo should be closed. Usually this is because the remote
+ * end has been closed (without error) but it can also be because no
+- * error handler was given
++ * error handler was given.
+ *
+ * Normally this just calls the close handler, or if not available, it
+ * closes the file descriptor and frees the structure (which may be
+@@ -1291,7 +1295,7 @@
+ * @io: structure to be destroyed.
+ *
+ * Closes the file descriptor associated with an NihIo structure so that
+- * the structure can be freed. IF an error is caught by closing the
++ * the structure can be freed. If an error is caught by closing the
+ * descriptor, the error handler is called instead of the error being raised;
+ * this allows you to group your error handling in one place rather than
+ * special-case close.
+--- libnih-1.0.3.orig/nih/watch.h
++++ libnih-1.0.3/nih/watch.h
+@@ -156,7 +156,7 @@
+ NihCreateHandler create_handler,
+ NihModifyHandler modify_handler,
+ NihDeleteHandler delete_handler, void *data)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ int nih_watch_add (NihWatch *watch, const char *path, int subdirs)
+ __attribute__ ((warn_unused_result));
+--- libnih-1.0.3.orig/nih/tree.h
++++ libnih-1.0.3/nih/tree.h
+@@ -344,9 +344,9 @@
+
+ void nih_tree_init (NihTree *tree);
+ NihTree * nih_tree_new (const void *parent)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ NihTreeEntry *nih_tree_entry_new (const void *parent)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ NihTree * nih_tree_add (NihTree *tree, NihTree *node,
+ NihTreeWhere where);
+--- libnih-1.0.3.orig/nih/file.c
++++ libnih-1.0.3/nih/file.c
+@@ -65,7 +65,7 @@
+ /* Prototypes for static functions */
+ static char **nih_dir_walk_scan (const char *path, NihFileFilter filter,
+ void *data)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ static int nih_dir_walk_visit (const char *dirname, NihList *dirs,
+ const char *path, NihFileFilter filter,
+ NihFileVisitor visitor,
+@@ -619,6 +619,8 @@
+ struct dirent *ent;
+ char **paths;
+ size_t npaths;
++ int isdir;
++ struct stat statbuf;
+
+ nih_assert (path != NULL);
+
+@@ -640,7 +642,15 @@
+ subpath = NIH_MUST (nih_sprintf (NULL, "%s/%s",
+ path, ent->d_name));
+
+- if (filter && filter (data, subpath, ent->d_type == DT_DIR))
++ if (ent->d_type == DT_UNKNOWN) {
++ if ( lstat (subpath, &statbuf))
++ isdir = 0;
++ else
++ isdir = S_ISDIR(statbuf.st_mode);
++ } else
++ isdir = ent->d_type == DT_DIR;
++
++ if (filter && filter (data, subpath, isdir))
+ continue;
+
+ NIH_MUST (nih_str_array_addp (&paths, NULL, &npaths, subpath));
+--- libnih-1.0.3.orig/nih/alloc.c
++++ libnih-1.0.3/nih/alloc.c
+@@ -119,8 +119,7 @@
+ static inline int nih_alloc_context_free (NihAllocCtx *ctx);
+
+ static inline NihAllocRef *nih_alloc_ref_new (NihAllocCtx *parent,
+- NihAllocCtx *child)
+- __attribute__ ((malloc));
++ NihAllocCtx *child);
+ static inline void nih_alloc_ref_free (NihAllocRef *ref);
+ static inline NihAllocRef *nih_alloc_ref_lookup (NihAllocCtx *parent,
+ NihAllocCtx *child);
+--- libnih-1.0.3.orig/nih/timer.h
++++ libnih-1.0.3/nih/timer.h
+@@ -59,7 +59,7 @@
+ * @months: months (1-12),
+ * @wdays: days of week (0-7).
+ *
+- * Indidcates when scheduled timers should be run, each member is a bit
++ * Indicates when scheduled timers should be run, each member is a bit
+ * field where the bit is 1 if the timer should be run for that value and
+ * 0 if not.
+ **/
+@@ -117,14 +117,14 @@
+
+ NihTimer *nih_timer_add_timeout (const void *parent, time_t timeout,
+ NihTimerCb callback, void *data)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ NihTimer *nih_timer_add_periodic (const void *parent, time_t period,
+ NihTimerCb callback, void *data)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ NihTimer *nih_timer_add_scheduled (const void *parent,
+ NihTimerSchedule *schedule,
+ NihTimerCb callback, void *data)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ NihTimer *nih_timer_next_due (void);
+ void nih_timer_poll (void);
+--- libnih-1.0.3.orig/nih/config.c
++++ libnih-1.0.3/nih/config.c
+@@ -2,8 +2,8 @@
+ *
+ * config.c - configuration file parsing
+ *
+- * Copyright © 2009 Scott James Remnant <scott@netsplit.com>.
+- * Copyright © 2009 Canonical Ltd.
++ * Copyright © 2011 Scott James Remnant <scott@netsplit.com>.
++ * Copyright © 2011 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2, as
+@@ -657,7 +657,7 @@
+ * of the returned string are freed, the returned string will also be
+ * freed.
+ *
+- * Returns: the command found or NULL on raised error.
++ * Returns: the newly allocated command found or NULL on raised error.
+ **/
+ char *
+ nih_config_parse_command (const void *parent,
+@@ -714,7 +714,7 @@
+ * @lineno: line number,
+ * @type: block identifier.
+ *
+- * Extracts a block of text from @line, stopping when the pharse "end @type"
++ * Extracts a block of text from @line, stopping when the phrase "end @type"
+ * is encountered without any quotes or blackslash escaping within it.
+ *
+ * @file may be a memory mapped file, in which case @pos should be given
+@@ -950,7 +950,7 @@
+ return FALSE;
+
+ /* Must be whitespace after */
+- if (! strchr (NIH_CONFIG_WS, file[p + 3]))
++ if (file[p + 3] && ! strchr (NIH_CONFIG_WS, file[p + 3]))
+ return FALSE;
+
+ /* Find the second word */
+--- libnih-1.0.3.orig/nih/option.h
++++ libnih-1.0.3/nih/option.h
+@@ -124,11 +124,11 @@
+ char ** nih_option_parser (const void *parent,
+ int argc, char *argv[],
+ NihOption *options, int break_nonopt)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ NihOption *nih_option_join (const void *parent,
+ const NihOption *a, const NihOption *b)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ int nih_option_count (NihOption *option, const char *arg);
+ int nih_option_int (NihOption *option, const char *arg);
+--- libnih-1.0.3.orig/nih/signal.h
++++ libnih-1.0.3/nih/signal.h
+@@ -76,7 +76,7 @@
+
+ NihSignal * nih_signal_add_handler (const void *parent, int signum,
+ NihSignalHandler handler, void *data)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ void nih_signal_handler (int signum);
+ void nih_signal_poll (void);
+--- libnih-1.0.3.orig/nih/list.h
++++ libnih-1.0.3/nih/list.h
+@@ -37,7 +37,7 @@
+ * after a known entry, and remove an entry from the list.
+ *
+ * List entries may be created in one of two ways. The most common is to
+- * embed the NihList structure as the frist member of your own structure,
++ * embed the NihList structure as the first member of your own structure,
+ * and initialise it with nih_list_init() after allocating the structure.
+ * Alternatively you may create NihListEntry structures with
+ * nih_list_entry_new() and point at your own data from them.
+@@ -196,10 +196,10 @@
+
+ void nih_list_init (NihList *entry);
+ NihList * nih_list_new (const void *parent)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ NihListEntry *nih_list_entry_new (const void *parent)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+
+ NihList * nih_list_add (NihList *list, NihList *entry);
+--- libnih-1.0.3.orig/nih/logging.c
++++ libnih-1.0.3/nih/logging.c
+@@ -39,11 +39,11 @@
+
+
+ /**
+- * __abort_msg:
++ * __nih_abort_msg:
+ *
+- * A glibc variable that keeps the assertion message in the core dump.
++ * A variable that keeps the assertion message in the core dump.
+ **/
+-extern char *__abort_msg __attribute__ ((weak));
++char *__nih_abort_msg = NULL;
+
+ /**
+ * logger:
+@@ -114,19 +114,16 @@
+ * nih_log_abort_message:
+ * @message: message to be logged.
+ *
+- * Save @message in the glibc __abort_msg variable so it can be retrieved
++ * Save @message in the __nih_abort_msg variable so it can be retrieved
+ * by debuggers if we should crash at this point.
+ **/
+ static void
+ nih_log_abort_message (const char *message)
+ {
+- if (! &__abort_msg)
+- return;
++ if (__nih_abort_msg)
++ nih_discard (__nih_abort_msg);
+
+- if (__abort_msg)
+- nih_discard (__abort_msg);
+-
+- __abort_msg = NIH_MUST (nih_strdup (NULL, message));
++ __nih_abort_msg = NIH_MUST (nih_strdup (NULL, message));
+ }
+
+ /**
+--- libnih-1.0.3.orig/nih/test_files.h
++++ libnih-1.0.3/nih/test_files.h
+@@ -1,7 +1,7 @@
+ /* libnih
+ *
+- * Copyright © 2009 Scott James Remnant <scott@netsplit.com>.
+- * Copyright © 2009 Canonical Ltd.
++ * Copyright © 2011 Scott James Remnant <scott@netsplit.com>.
++ * Copyright © 2011 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2, as
+@@ -39,7 +39,7 @@
+ * TEST_FILENAME:
+ * @_var: variable to store filename in.
+ *
+- * Generate a filename that may be used for testing, it's unlinked it if
++ * Generate a filename that may be used for testing, it's unlinked if it
+ * exists and it's up to you to unlink it when done. @_var should be at
+ * least PATH_MAX long.
+ **/
+--- libnih-1.0.3.orig/nih/test_process.h
++++ libnih-1.0.3/nih/test_process.h
+@@ -36,7 +36,7 @@
+ * Spawn a child in which a test can be performed without affecting the
+ * main flow of the process. The pid of the child is stored in @_pid.
+ *
+- * This macro ensures that the child has begun exectution before the
++ * This macro ensures that the child has begun execution before the
+ * parent is allowed to continue through the usual use of a pipe.
+ *
+ * A block of code should follow this macro, which is the code that will
+--- libnih-1.0.3.orig/nih/child.h
++++ libnih-1.0.3/nih/child.h
+@@ -98,7 +98,7 @@
+ NihChildWatch *nih_child_add_watch (const void *parent, pid_t pid,
+ NihChildEvents events,
+ NihChildHandler handler, void *data)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ void nih_child_poll (void);
+
+--- libnih-1.0.3.orig/nih/alloc.h
++++ libnih-1.0.3/nih/alloc.h
+@@ -299,7 +299,7 @@
+ * It is permissible to take references to foo within its scope, or by
+ * functions called, in which case it will not be freed. Also it is
+ * generally nonsensical to allocate with a parent, since this too will
+- * prevent it from beign freed.
++ * prevent it from being freed.
+ **/
+ #define nih_local __attribute__ ((cleanup(_nih_discard_local)))
+
+@@ -307,11 +307,11 @@
+ NIH_BEGIN_EXTERN
+
+ void * nih_alloc (const void *parent, size_t size)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ void * nih_realloc (void *ptr, const void *parent,
+ size_t size)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ int nih_free (void *ptr);
+ int nih_discard (void *ptr);
+--- libnih-1.0.3.orig/nih/io.h
++++ libnih-1.0.3/nih/io.h
+@@ -269,7 +269,7 @@
+ NihIoWatch * nih_io_add_watch (const void *parent, int fd,
+ NihIoEvents events,
+ NihIoWatcher watcher, void *data)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ void nih_io_select_fds (int *nfds, fd_set *readfds,
+ fd_set *writefds, fd_set *exceptfds);
+@@ -278,12 +278,12 @@
+
+
+ NihIoBuffer * nih_io_buffer_new (const void *parent)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ int nih_io_buffer_resize (NihIoBuffer *buffer, size_t grow);
+ char * nih_io_buffer_pop (const void *parent,
+ NihIoBuffer *buffer, size_t *len)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ void nih_io_buffer_shrink (NihIoBuffer *buffer, size_t len);
+ int nih_io_buffer_push (NihIoBuffer *buffer,
+ const char *str, size_t len)
+@@ -291,7 +291,7 @@
+
+
+ NihIoMessage *nih_io_message_new (const void *parent)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ int nih_io_message_add_control (NihIoMessage *message, int level,
+ int type, socklen_t len,
+@@ -300,7 +300,7 @@
+
+ NihIoMessage *nih_io_message_recv (const void *parent, int fd,
+ size_t *len)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ ssize_t nih_io_message_send (NihIoMessage *message, int fd)
+ __attribute__ ((warn_unused_result));
+
+@@ -310,7 +310,7 @@
+ NihIoCloseHandler close_handler,
+ NihIoErrorHandler error_handler,
+ void *data)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ void nih_io_shutdown (NihIo *io);
+ int nih_io_destroy (NihIo *io);
+
+@@ -319,14 +319,14 @@
+
+ char * nih_io_read (const void *parent, NihIo *io,
+ size_t *len)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ int nih_io_write (NihIo *io, const char *str,
+ size_t len)
+ __attribute__ ((warn_unused_result));
+
+ char * nih_io_get (const void *parent, NihIo *io,
+ const char *delim)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ int nih_io_printf (NihIo *io, const char *format, ...)
+ __attribute__ ((warn_unused_result, format (printf, 2, 3)));
+--- libnih-1.0.3.orig/nih/test_output.h
++++ libnih-1.0.3/nih/test_output.h
+@@ -61,10 +61,10 @@
+
+ /**
+ * TEST_FEATURE:
+- * @_feat: name of function feature being tested.
++ * @_feat: name of function or group feature being tested.
+ *
+- * Output a message indicating that a sub-test of a function is being
+- * performed, specifically the feature named _feat.
++ * Output a message indicating that a sub-test of a function or
++ * group is being performed, specifically the feature named _feat.
+ **/
+ #define TEST_FEATURE(_feat) \
+ printf ("...%s\n", _feat);
+--- libnih-1.0.3.orig/nih/error.h
++++ libnih-1.0.3/nih/error.h
+@@ -1,7 +1,7 @@
+ /* libnih
+ *
+- * Copyright © 2009 Scott James Remnant <scott@netsplit.com>.
+- * Copyright © 2009 Canonical Ltd.
++ * Copyright © 2011 Scott James Remnant <scott@netsplit.com>.
++ * Copyright © 2011 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2, as
+@@ -111,7 +111,7 @@
+ * @message: human-readable message.
+ *
+ * Raises an error with the given details in the current error context,
+- * if an unhandled error already exists then an error message is emmitted
++ * if an unhandled error already exists then an error message is emitted
+ * through the logging system; you should try to avoid this.
+ *
+ * @message should be a static string, as it will not be freed when the
+@@ -126,7 +126,7 @@
+ * @format: format string for human-readable message.
+ *
+ * Raises an error with the given details in the current error context,
+- * if an unhandled error already exists then an error message is emmitted
++ * if an unhandled error already exists then an error message is emitted
+ * through the logging system; you should try to avoid this.
+ *
+ * The human-readable message for the error is parsed according to @format,
+@@ -140,7 +140,7 @@
+ * nih_error_raise_system:
+ *
+ * Raises an error with details taken from the current value of errno,
+- * if an unhandled error already exists then an error message is emmitted
++ * if an unhandled error already exists then an error message is emitted
+ * through the logging system; you should try to avoid this.
+ **/
+ #define nih_error_raise_system() \
+@@ -162,7 +162,7 @@
+ * @error: existing object to raise.
+ *
+ * Raises the existing error object in the current error context,
+- * if an unhandled error already exists then an error message is emmitted
++ * if an unhandled error already exists then an error message is emitted
+ * through the logging system; you should try to avoid this.
+ *
+ * This is normally used to raise a taken error that has not been handled,
+@@ -182,7 +182,7 @@
+ * @message: human-readable message.
+ *
+ * Raises an error with the given details in the current error context,
+- * if an unhandled error already exists then an error message is emmitted
++ * if an unhandled error already exists then an error message is emitted
+ * through the logging system; you should try to avoid this.
+ *
+ * Will return from the current function with @retval, which may be left
+@@ -199,7 +199,7 @@
+ * @retval: return value for function.
+ *
+ * Raises an error with details taken from the current value of errno,
+- * if an unhandled error already exists then an error message is emmitted
++ * if an unhandled error already exists then an error message is emitted
+ * through the logging system; you should try to avoid this.
+ *
+ * Will return from the current function with @retval, which may be left
+--- libnih-1.0.3.orig/nih/string.h
++++ libnih-1.0.3/nih/string.h
+@@ -35,60 +35,60 @@
+ NIH_BEGIN_EXTERN
+
+ char * nih_sprintf (const void *parent, const char *format, ...)
+- __attribute__ ((format (printf, 2, 3), warn_unused_result, malloc));
++ __attribute__ ((format (printf, 2, 3), warn_unused_result));
+
+ char * nih_vsprintf (const void *parent, const char *format,
+ va_list args)
+- __attribute__ ((format (printf, 2, 0), warn_unused_result, malloc));
++ __attribute__ ((format (printf, 2, 0), warn_unused_result));
+
+ char * nih_strdup (const void *parent, const char *str)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ char * nih_strndup (const void *parent, const char *str, size_t len)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ char * nih_strcat (char **str, const void *parent, const char *src)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ char * nih_strncat (char **str, const void *parent, const char *src,
+ size_t len)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ char * nih_strcat_sprintf (char **str, const void *parent,
+ const char *format, ...)
+- __attribute__ ((format (printf, 3, 4), warn_unused_result, malloc));
++ __attribute__ ((format (printf, 3, 4), warn_unused_result));
+ char * nih_strcat_vsprintf (char **str, const void *parent,
+ const char *format, va_list args)
+- __attribute__ ((format (printf, 3, 0), warn_unused_result, malloc));
++ __attribute__ ((format (printf, 3, 0), warn_unused_result));
+
+ char **nih_str_split (const void *parent, const char *str,
+ const char *delim, int repeat)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ char **nih_str_array_new (const void *parent)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ char **nih_str_array_add (char ***array, const void *parent, size_t *len,
+ const char *str)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ char **nih_str_array_addn (char ***array, const void *parent, size_t *len,
+ const char *str, size_t strlen)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ char **nih_str_array_addp (char ***array, const void *parent, size_t *len,
+ void *ptr)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ char **nih_str_array_copy (const void *parent, size_t *len,
+ char * const *array)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ char **nih_str_array_append (char ***array, const void *parent, size_t *len,
+ char * const *args)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ char * nih_str_wrap (const void *parent, const char *str, size_t len,
+ size_t first_indent, size_t indent)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ size_t nih_str_screen_width (void);
+ char * nih_str_screen_wrap (const void *parent, const char *str,
+ size_t first_indent, size_t indent)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ NIH_END_EXTERN
+
+--- libnih-1.0.3.orig/nih/string.c
++++ libnih-1.0.3/nih/string.c
+@@ -405,7 +405,7 @@
+ const char *ptr;
+
+ /* Skip initial delimiters */
+- while (repeat && strchr (delim, *str))
++ while (repeat && *str && strchr (delim, *str))
+ str++;
+
+ /* Find the end of the token */
+@@ -413,6 +413,13 @@
+ while (*str && (! strchr (delim, *str)))
+ str++;
+
++ /* Don't create an empty string array element in repeat
++ * mode if there is no token (as a result of a
++ * duplicated delimiter character).
++ */
++ if (repeat && (str == ptr))
++ continue;
++
+ if (! nih_str_array_addn (&array, parent, &len,
+ ptr, str - ptr)) {
+ nih_free (array);
+--- libnih-1.0.3.orig/nih/file.h
++++ libnih-1.0.3/nih/file.h
+@@ -82,7 +82,7 @@
+
+ char *nih_file_read (const void *parent, const char *path,
+ size_t *length)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ void *nih_file_map (const char *path, int flags, size_t *length)
+ __attribute__ ((warn_unused_result));
+--- libnih-1.0.3.orig/nih/tests/test_option.c
++++ libnih-1.0.3/nih/tests/test_option.c
+@@ -1574,7 +1574,7 @@
+ output = tmpfile ();
+ TEST_CHILD (pid) {
+ TEST_DIVERT_STDOUT (output) {
+- char **args;
++ char **args __attribute__((unused));
+
+ args = nih_option_parser (NULL, argc, argv,
+ options, FALSE);
+@@ -1652,7 +1652,7 @@
+ unsetenv ("COLUMNS");
+
+ TEST_DIVERT_STDOUT (output) {
+- char **args;
++ char **args __attribute__((unused));
+
+ args = nih_option_parser (NULL, argc, argv,
+ options, FALSE);
+--- libnih-1.0.3.orig/nih/tests/test_logging.c
++++ libnih-1.0.3/nih/tests/test_logging.c
+@@ -31,7 +31,7 @@
+ #include <nih/main.h>
+
+
+-extern char *__abort_msg __attribute__ ((weak));
++extern char *__nih_abort_msg;
+
+ static NihLogLevel last_priority = NIH_LOG_UNKNOWN;
+ static char * last_message = NULL;
+@@ -156,68 +156,63 @@
+ }
+
+
+- /* Check that a fatal message is also stored in the glibc __abort_msg
++ /* Check that a fatal message is also stored in the __nih_abort_msg
+ * variable.
+ */
+- if (&__abort_msg) {
+- TEST_FEATURE ("with fatal message");
+- TEST_ALLOC_FAIL {
+- __abort_msg = NULL;
+- last_priority = NIH_LOG_UNKNOWN;
+- last_message = NULL;
+-
+- ret = nih_log_message (NIH_LOG_FATAL,
+- "message with %s %d formatting",
+- "some", 20);
+-
+- TEST_EQ (ret, 0);
+- TEST_EQ (last_priority, NIH_LOG_FATAL);
+- TEST_EQ_STR (last_message, "message with some 20 formatting");
+-
+- TEST_NE_P (__abort_msg, NULL);
+- TEST_ALLOC_PARENT (__abort_msg, NULL);
+- TEST_EQ_STR (__abort_msg, "message with some 20 formatting");
++ TEST_FEATURE ("with fatal message");
++ TEST_ALLOC_FAIL {
++ __nih_abort_msg = NULL;
++ last_priority = NIH_LOG_UNKNOWN;
++ last_message = NULL;
+
+- free (last_message);
+- }
++ ret = nih_log_message (NIH_LOG_FATAL,
++ "message with %s %d formatting",
++ "some", 20);
+
++ TEST_EQ (ret, 0);
++ TEST_EQ (last_priority, NIH_LOG_FATAL);
++ TEST_EQ_STR (last_message, "message with some 20 formatting");
+
+- /* Check that a fatal message can safely overwrite one already stored
+- * in the glibc __abort_msg variable.
+- */
+- TEST_FEATURE ("with second fatal message");
+- TEST_ALLOC_FAIL {
+- TEST_ALLOC_SAFE {
+- msg = nih_strdup (NULL, "test");
+- }
+-
+- __abort_msg = msg;
+- TEST_FREE_TAG (msg);
+-
+- last_priority = NIH_LOG_UNKNOWN;
+- last_message = NULL;
+-
+- ret = nih_log_message (NIH_LOG_FATAL,
+- "message with %s %d formatting",
+- "some", 20);
+-
+- TEST_EQ (ret, 0);
+- TEST_EQ (last_priority, NIH_LOG_FATAL);
+- TEST_EQ_STR (last_message, "message with some 20 formatting");
+-
+- TEST_FREE (msg);
+-
+- TEST_NE_P (__abort_msg, NULL);
+- TEST_ALLOC_PARENT (__abort_msg, NULL);
+- TEST_EQ_STR (__abort_msg, "message with some 20 formatting");
++ TEST_NE_P (__nih_abort_msg, NULL);
++ TEST_ALLOC_PARENT (__nih_abort_msg, NULL);
++ TEST_EQ_STR (__nih_abort_msg, "message with some 20 formatting");
+
+- free (last_message);
+- }
+- } else {
+- printf ("SKIP: __abort_msg not available\n");
++ free (last_message);
+ }
+
+
++ /* Check that a fatal message can safely overwrite one already stored
++ * in the __nih_abort_msg variable.
++ */
++ TEST_FEATURE ("with second fatal message");
++ TEST_ALLOC_FAIL {
++ TEST_ALLOC_SAFE {
++ msg = nih_strdup (NULL, "test");
++ }
++
++ __nih_abort_msg = msg;
++ TEST_FREE_TAG (msg);
++
++ last_priority = NIH_LOG_UNKNOWN;
++ last_message = NULL;
++
++ ret = nih_log_message (NIH_LOG_FATAL,
++ "message with %s %d formatting",
++ "some", 20);
++
++ TEST_EQ (ret, 0);
++ TEST_EQ (last_priority, NIH_LOG_FATAL);
++ TEST_EQ_STR (last_message, "message with some 20 formatting");
++
++ TEST_FREE (msg);
++
++ TEST_NE_P (__nih_abort_msg, NULL);
++ TEST_ALLOC_PARENT (__nih_abort_msg, NULL);
++ TEST_EQ_STR (__nih_abort_msg, "message with some 20 formatting");
++
++ free (last_message);
++ }
++
+ /* Check that the nih_debug macro wraps the call properly and
+ * includes the function in which the message occurred.
+ */
+--- libnih-1.0.3.orig/nih/tests/test_hash.c
++++ libnih-1.0.3/nih/tests/test_hash.c
+@@ -470,7 +470,8 @@
+ test_lookup (void)
+ {
+ NihHash *hash;
+- NihList *entry1, *entry2, *entry3, *ptr;
++ NihList *entry1, *entry2, *ptr;
++ NihList *entry3 __attribute__((unused));
+
+ TEST_FUNCTION ("nih_hash_lookup");
+ hash = nih_hash_string_new (NULL, 0);
+--- libnih-1.0.3.orig/nih/tests/test_main.c
++++ libnih-1.0.3/nih/tests/test_main.c
+@@ -457,7 +457,7 @@
+ test_main_loop (void)
+ {
+ NihMainLoopFunc *func;
+- NihTimer *timer;
++ NihTimer *timer __attribute__((unused));
+ int ret;
+
+ /* Check that we can run through the main loop, and that the
+--- libnih-1.0.3.orig/nih/tests/test_watch.c
++++ libnih-1.0.3/nih/tests/test_watch.c
+@@ -2,8 +2,8 @@
+ *
+ * test_watch.c - test suite for nih/watch.c
+ *
+- * Copyright © 2009 Scott James Remnant <scott@netsplit.com>.
+- * Copyright © 2009 Canonical Ltd.
++ * Copyright © 2011 Scott James Remnant <scott@netsplit.com>.
++ * Copyright © 2011 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2, as
+@@ -39,6 +39,8 @@
+ #include <nih/error.h>
+ #include <nih/logging.h>
+
++/* Read "The Hitchhikers Guide to the Galaxy" */
++#define FILTER_VALUE 42
+
+ static int
+ my_filter (void *data,
+@@ -54,6 +56,26 @@
+ return FALSE;
+ }
+
++/* Set by my_filter2 () so it knows if it has already been called */
++static int my_filter2_called = 0;
++
++static int
++my_filter2 (int *value,
++ const char *path,
++ int is_dir)
++{
++ /* we only want to toggle the value once */
++ if (my_filter2_called)
++ return TRUE;
++
++ my_filter2_called = 1;
++
++ nih_assert (value && *value == FILTER_VALUE);
++ *value = 0;
++
++ return FALSE;
++}
++
+ static int create_called = 0;
+ static int modify_called = 0;
+ static int delete_called = 0;
+@@ -553,6 +575,44 @@
+ nih_free (watch);
+ }
+
++ /* Ensure the file filter gets passed the correct data pointer.
++ */
++ TEST_FEATURE ("with filter and data");
++
++ /* Ensure we have a new directory */
++ TEST_FILENAME (dirname);
++ mkdir (dirname, 0755);
++
++ /* Create a single file */
++ strcpy (filename, dirname);
++ strcat (filename, "/foo");
++
++ fd = fopen (filename, "w");
++ fprintf (fd, "test\n");
++ fclose (fd);
++
++ TEST_ALLOC_FAIL {
++ int watch_data = FILTER_VALUE;
++
++ /* Reset required to appease TEST_ALLOC_FAIL */
++ my_filter2_called = 0;
++
++ watch = nih_watch_new (NULL, dirname,
++ TRUE, TRUE,
++ (NihFileFilter)my_filter2,
++ NULL, NULL, NULL,
++ &watch_data);
++
++ TEST_NE_P (watch, NULL);
++
++ /* Ensure the filter was called and changed the value */
++
++ TEST_NE (my_filter2_called, 0);
++ TEST_EQ (watch_data, 0);
++
++ nih_free (watch);
++ }
++
+ strcpy (filename, dirname);
+ strcat (filename, "/bar");
+ chmod (filename, 0755);
+@@ -946,13 +1006,82 @@
+ nih_error_init ();
+
+ TEST_FILENAME (dirname);
+- mkdir (dirname, 0755);
++ TEST_EQ (mkdir (dirname, 0755), 0);
+
+- watch = nih_watch_new (NULL, dirname, TRUE, TRUE, my_filter,
+- my_create_handler, my_modify_handler,
++ TEST_FEATURE ("with watched file");
++ strcpy (filename, dirname);
++ strcat (filename, "/foo");
++
++ /* Create file first since we don't set a create handler on the
++ * watch.
++ */
++ fd = fopen (filename, "w");
++ fprintf (fd, "bar\n");
++ fclose (fd);
++
++ create_called = 0;
++ modify_called = 0;
++ delete_called = 0;
++ logger_called = 0;
++ last_path = NULL;
++ last_watch = NULL;
++ last_data = NULL;
++
++ watch = nih_watch_new (NULL, filename, FALSE, FALSE, NULL,
++ NULL, my_modify_handler,
+ my_delete_handler, &watch);
++ TEST_NE_P (watch, NULL);
++
++ /* Now, modify the existing file to trigger the modify handler. */
++ fd = fopen (filename, "a+");
++ fprintf (fd, "baz\n");
++ fclose (fd);
++
++ nfds = 0;
++ FD_ZERO (&readfds);
++ FD_ZERO (&writefds);
++ FD_ZERO (&exceptfds);
++
++ nih_io_select_fds (&nfds, &readfds, &writefds, &exceptfds);
++ select (nfds, &readfds, &writefds, &exceptfds, NULL);
++ nih_io_handle_fds (&readfds, &writefds, &exceptfds);
++
++ TEST_EQ_STR (watch->path, filename);
++
++ /* Ensure no regression to old behaviour (LP:#777097) */
++ TEST_NE (last_path[ strlen(last_path) - 1 ], '/');
++
++ TEST_EQ_STR (last_path, filename);
++ TEST_EQ (modify_called, 1);
++
++ unlink (filename);
++
++ nfds = 0;
++ FD_ZERO (&readfds);
++ FD_ZERO (&writefds);
++ FD_ZERO (&exceptfds);
++
++ nih_io_select_fds (&nfds, &readfds, &writefds, &exceptfds);
++ select (nfds, &readfds, &writefds, &exceptfds, NULL);
++ nih_io_handle_fds (&readfds, &writefds, &exceptfds);
+
++ TEST_EQ (delete_called, 1);
+
++ rmdir (filename);
++ nih_free (last_path);
++
++ create_called = 0;
++ modify_called = 0;
++ delete_called = 0;
++ logger_called = 0;
++ last_path = NULL;
++ last_watch = NULL;
++ last_data = NULL;
++
++
++ watch = nih_watch_new (NULL, dirname, TRUE, TRUE, my_filter,
++ my_create_handler, my_modify_handler,
++ my_delete_handler, &watch);
+ /* Check that creating a file within the directory being watched
+ * results in the create handler being called, and passed the full
+ * path of the created file to it.
+--- libnih-1.0.3.orig/nih/tests/test_string.c
++++ libnih-1.0.3/nih/tests/test_string.c
+@@ -619,6 +619,215 @@
+ nih_free (array);
+ }
+
++ TEST_FEATURE ("with no repeat and multiple identical delimiter "
++ "characters at string start");
++ TEST_ALLOC_FAIL {
++ array = nih_str_split (NULL, "\t\tthis is a test", " \t", FALSE);
++
++ if (test_alloc_failed) {
++ TEST_EQ_P (array, NULL);
++ continue;
++ }
++
++ TEST_ALLOC_SIZE (array, sizeof (char *) * 7);
++ for (i = 0; i < 6; i++)
++ TEST_ALLOC_PARENT (array[i], array);
++
++ TEST_EQ_STR (array[0], "");
++ TEST_EQ_STR (array[1], "");
++ TEST_EQ_STR (array[2], "this");
++ TEST_EQ_STR (array[3], "is");
++ TEST_EQ_STR (array[4], "a");
++ TEST_EQ_STR (array[5], "test");
++ TEST_EQ_P (array[6], NULL);
++
++ nih_free (array);
++ }
++
++ TEST_FEATURE ("with no repeat and multiple different delimiter "
++ "characters at string start");
++ TEST_ALLOC_FAIL {
++ array = nih_str_split (NULL, " \tthis is a test", " \t", FALSE);
++
++ if (test_alloc_failed) {
++ TEST_EQ_P (array, NULL);
++ continue;
++ }
++
++ TEST_ALLOC_SIZE (array, sizeof (char *) * 7);
++ for (i = 0; i < 6; i++)
++ TEST_ALLOC_PARENT (array[i], array);
++
++ TEST_EQ_STR (array[0], "");
++ TEST_EQ_STR (array[1], "");
++ TEST_EQ_STR (array[2], "this");
++ TEST_EQ_STR (array[3], "is");
++ TEST_EQ_STR (array[4], "a");
++ TEST_EQ_STR (array[5], "test");
++ TEST_EQ_P (array[6], NULL);
++
++ nih_free (array);
++ }
++
++ TEST_FEATURE ("with no repeat and multiple identical delimiter "
++ "characters within string");
++ TEST_ALLOC_FAIL {
++ array = nih_str_split (NULL, "this is a\t\ttest", " \t", FALSE);
++
++ if (test_alloc_failed) {
++ TEST_EQ_P (array, NULL);
++ continue;
++ }
++
++ TEST_ALLOC_SIZE (array, sizeof (char *) * 8);
++ for (i = 0; i < 7; i++)
++ TEST_ALLOC_PARENT (array[i], array);
++
++ TEST_EQ_STR (array[0], "this");
++ TEST_EQ_STR (array[1], "is");
++ TEST_EQ_STR (array[2], "");
++ TEST_EQ_STR (array[3], "");
++ TEST_EQ_STR (array[4], "a");
++ TEST_EQ_STR (array[5], "");
++ TEST_EQ_STR (array[6], "test");
++ TEST_EQ_P (array[7], NULL);
++
++ nih_free (array);
++ }
++
++ TEST_FEATURE ("with no repeat and multiple different delimiter "
++ "characters within string");
++ TEST_ALLOC_FAIL {
++ array = nih_str_split (NULL, "this is \n\ta\ttest", " \t\n", FALSE);
++
++ if (test_alloc_failed) {
++ TEST_EQ_P (array, NULL);
++ continue;
++ }
++
++ TEST_ALLOC_SIZE (array, sizeof (char *) * 7);
++ for (i = 0; i < 6; i++)
++ TEST_ALLOC_PARENT (array[i], array);
++
++ TEST_EQ_STR (array[0], "this");
++ TEST_EQ_STR (array[1], "is");
++ TEST_EQ_STR (array[2], "");
++ TEST_EQ_STR (array[3], "");
++ TEST_EQ_STR (array[4], "a");
++ TEST_EQ_STR (array[5], "test");
++ TEST_EQ_P (array[6], NULL);
++
++ nih_free (array);
++ }
++
++ TEST_FEATURE ("with no repeat and multiple identical delimiter "
++ "characters at string end");
++ TEST_ALLOC_FAIL {
++ array = nih_str_split (NULL, "this is a test ", " \t", FALSE);
++
++ if (test_alloc_failed) {
++ TEST_EQ_P (array, NULL);
++ continue;
++ }
++
++ TEST_ALLOC_SIZE (array, sizeof (char *) * 6);
++ for (i = 0; i < 5; i++)
++ TEST_ALLOC_PARENT (array[i], array);
++
++ TEST_EQ_STR (array[0], "this");
++ TEST_EQ_STR (array[1], "is");
++ TEST_EQ_STR (array[2], "a");
++ TEST_EQ_STR (array[3], "test");
++ TEST_EQ_STR (array[4], "");
++ TEST_EQ_P (array[5], NULL);
++
++ nih_free (array);
++ }
++
++ TEST_FEATURE ("with no repeat and multiple different delimiter "
++ "characters at string end");
++ TEST_ALLOC_FAIL {
++ array = nih_str_split (NULL, "this is a test \t", " \t", FALSE);
++
++ if (test_alloc_failed) {
++ TEST_EQ_P (array, NULL);
++ continue;
++ }
++
++ TEST_ALLOC_SIZE (array, sizeof (char *) * 6);
++ for (i = 0; i < 5; i++)
++ TEST_ALLOC_PARENT (array[i], array);
++
++ TEST_EQ_STR (array[0], "this");
++ TEST_EQ_STR (array[1], "is");
++ TEST_EQ_STR (array[2], "a");
++ TEST_EQ_STR (array[3], "test");
++ TEST_EQ_STR (array[4], "");
++ TEST_EQ_P (array[5], NULL);
++
++ nih_free (array);
++ }
++
++ TEST_FEATURE ("with no repeat and multiple identical delimiter "
++ "characters at beginning, middle and end of string");
++ TEST_ALLOC_FAIL {
++ array = nih_str_split (NULL, " this is\n\n\na test\t\t\t", " \t\n", FALSE);
++
++ if (test_alloc_failed) {
++ TEST_EQ_P (array, NULL);
++ continue;
++ }
++
++ TEST_ALLOC_SIZE (array, sizeof (char *) * 12);
++ for (i = 0; i < 11; i++)
++ TEST_ALLOC_PARENT (array[i], array);
++
++ TEST_EQ_STR (array[0], "");
++ TEST_EQ_STR (array[1], "");
++ TEST_EQ_STR (array[2], "");
++ TEST_EQ_STR (array[3], "this");
++ TEST_EQ_STR (array[4], "is");
++ TEST_EQ_STR (array[5], "");
++ TEST_EQ_STR (array[6], "");
++ TEST_EQ_STR (array[7], "a");
++ TEST_EQ_STR (array[8], "test");
++ TEST_EQ_STR (array[9], "");
++ TEST_EQ_STR (array[10], "");
++ TEST_EQ_P (array[11], NULL);
++
++ nih_free (array);
++ }
++
++ TEST_FEATURE ("with no repeat and multiple different delimiter "
++ "characters at beginning, middle and end of string");
++ TEST_ALLOC_FAIL {
++ array = nih_str_split (NULL, ": \nthis is\t \n:a test:\n ", "\n :\t", FALSE);
++
++ if (test_alloc_failed) {
++ TEST_EQ_P (array, NULL);
++ continue;
++ }
++
++ TEST_ALLOC_SIZE (array, sizeof (char *) * 13);
++ for (i = 0; i < 12; i++)
++ TEST_ALLOC_PARENT (array[i], array);
++
++ TEST_EQ_STR (array[0], "");
++ TEST_EQ_STR (array[1], "");
++ TEST_EQ_STR (array[2], "");
++ TEST_EQ_STR (array[3], "this");
++ TEST_EQ_STR (array[4], "is");
++ TEST_EQ_STR (array[5], "");
++ TEST_EQ_STR (array[6], "");
++ TEST_EQ_STR (array[7], "");
++ TEST_EQ_STR (array[8], "a");
++ TEST_EQ_STR (array[9], "test");
++ TEST_EQ_STR (array[10], "");
++ TEST_EQ_STR (array[11], "");
++ TEST_EQ_P (array[12], NULL);
++
++ nih_free (array);
++ }
+
+ /* Check that we can split a string treating multiple consecutive
+ * matching characters as a single separator to be skipped.
+@@ -645,6 +854,177 @@
+ nih_free (array);
+ }
+
++ /* Check that we can split a string containing multiple
++ * occurences of one of the delimiter characters at the
++ * beginning of the string.
++ */
++ TEST_FEATURE ("with repeat and multiple identical adjacent delimiter characters at string start");
++ TEST_ALLOC_FAIL {
++ array = nih_str_split (NULL, "\n\nhello", " \t\r\n", TRUE);
++
++ if (test_alloc_failed) {
++ TEST_EQ_P (array, NULL);
++ continue;
++ }
++
++ TEST_ALLOC_SIZE (array, sizeof (char *) * 2);
++ for (i = 0; i < 1; i++)
++ TEST_ALLOC_PARENT (array[i], array);
++
++ TEST_EQ_STR (array[0], "hello");
++ TEST_EQ_P (array[1], NULL);
++
++ nih_free (array);
++ }
++
++ TEST_FEATURE ("with repeat and multiple different adjacent delimiter characters at string start");
++ TEST_ALLOC_FAIL {
++ array = nih_str_split (NULL, "\n\r hello", " \t\r\n", TRUE);
++
++ if (test_alloc_failed) {
++ TEST_EQ_P (array, NULL);
++ continue;
++ }
++
++ TEST_ALLOC_SIZE (array, sizeof (char *) * 2);
++ for (i = 0; i < 1; i++)
++ TEST_ALLOC_PARENT (array[i], array);
++
++ TEST_EQ_STR (array[0], "hello");
++ TEST_EQ_P (array[1], NULL);
++
++ nih_free (array);
++ }
++
++ TEST_FEATURE ("with repeat and multiple identical adjacent delimiter "
++ "characters within string");
++ TEST_ALLOC_FAIL {
++ array = nih_str_split (NULL, "hello\n\rworld", " \t\n\r", TRUE);
++
++ if (test_alloc_failed) {
++ TEST_EQ_P (array, NULL);
++ continue;
++ }
++
++ TEST_ALLOC_SIZE (array, sizeof (char *) * 3);
++ for (i = 0; i < 2; i++)
++ TEST_ALLOC_PARENT (array[i], array);
++
++ TEST_EQ_STR (array[0], "hello");
++ TEST_EQ_STR (array[1], "world");
++ TEST_EQ_P (array[2], NULL);
++
++ nih_free (array);
++ }
++
++ TEST_FEATURE ("with repeat and multiple different adjacent delimiter "
++ "characters within string");
++ TEST_ALLOC_FAIL {
++ array = nih_str_split (NULL, "hello\n\r\tworld", " \t\n\r", TRUE);
++
++ if (test_alloc_failed) {
++ TEST_EQ_P (array, NULL);
++ continue;
++ }
++
++ TEST_ALLOC_SIZE (array, sizeof (char *) * 3);
++ for (i = 0; i < 2; i++)
++ TEST_ALLOC_PARENT (array[i], array);
++
++ TEST_EQ_STR (array[0], "hello");
++ TEST_EQ_STR (array[1], "world");
++ TEST_EQ_P (array[2], NULL);
++
++ nih_free (array);
++ }
++
++ TEST_FEATURE ("with repeat and multiple identical adjacent delimiter "
++ "characters at string end");
++ TEST_ALLOC_FAIL {
++ array = nih_str_split (NULL, "hello\n\n\n\n\n\n\n", " \t\r\n", TRUE);
++
++ if (test_alloc_failed) {
++ TEST_EQ_P (array, NULL);
++ continue;
++ }
++
++ TEST_ALLOC_SIZE (array, sizeof (char *) * 2);
++ for (i = 0; i < 1; i++)
++ TEST_ALLOC_PARENT (array[i], array);
++
++ TEST_EQ_STR (array[0], "hello");
++ TEST_EQ_P (array[1], NULL);
++
++ nih_free (array);
++ }
++
++ TEST_FEATURE ("with repeat and multiple different adjacent delimiter "
++ "characters at string end");
++ TEST_ALLOC_FAIL {
++ array = nih_str_split (NULL, "hello \r\t\r\t\n ", " \t\r\n", TRUE);
++
++ if (test_alloc_failed) {
++ TEST_EQ_P (array, NULL);
++ continue;
++ }
++
++ TEST_ALLOC_SIZE (array, sizeof (char *) * 2);
++ for (i = 0; i < 1; i++)
++ TEST_ALLOC_PARENT (array[i], array);
++
++ TEST_EQ_STR (array[0], "hello");
++ TEST_EQ_P (array[1], NULL);
++
++ nih_free (array);
++ }
++
++ TEST_FEATURE ("with repeat and multiple identical adjacent delimiter "
++ "characters at beginning, middle and end of string");
++ TEST_ALLOC_FAIL {
++ array = nih_str_split (NULL,
++ " hello\n\n\n, world\n\n\n",
++ "\r\t\n ", TRUE);
++
++ if (test_alloc_failed) {
++ TEST_EQ_P (array, NULL);
++ continue;
++ }
++
++ TEST_ALLOC_SIZE (array, sizeof (char *) * 4);
++ for (i = 0; i < 3; i++)
++ TEST_ALLOC_PARENT (array[i], array);
++
++ TEST_EQ_STR (array[0], "hello");
++ TEST_EQ_STR (array[1], ",");
++ TEST_EQ_STR (array[2], "world");
++ TEST_EQ_P (array[3], NULL);
++
++ nih_free (array);
++ }
++
++ TEST_FEATURE ("with repeat and multiple different adjacent delimiter "
++ "characters at beginning, middle and end of string");
++ TEST_ALLOC_FAIL {
++ array = nih_str_split (NULL,
++ "\n \r\thello\n\n\r , \n\t\rworld\t \r\n \n",
++ " \t\n\r", TRUE);
++
++ if (test_alloc_failed) {
++ TEST_EQ_P (array, NULL);
++ continue;
++ }
++
++ TEST_ALLOC_SIZE (array, sizeof (char *) * 4);
++ for (i = 0; i < 3; i++)
++ TEST_ALLOC_PARENT (array[i], array);
++
++ TEST_EQ_STR (array[0], "hello");
++ TEST_EQ_STR (array[1], ",");
++ TEST_EQ_STR (array[2], "world");
++ TEST_EQ_P (array[3], NULL);
++
++ nih_free (array);
++ }
+
+ /* Check that we can give an empty string, and end up with a
+ * one-element array that only contains a NULL pointer.
+--- libnih-1.0.3.orig/nih/tests/test_file.c
++++ libnih-1.0.3/nih/tests/test_file.c
+@@ -724,6 +724,25 @@
+ return FALSE;
+ }
+
++/* find only frodo files */
++static int
++my_filter_frodo_file (void *data,
++ const char *path,
++ int is_dir)
++{
++ char *slash;
++
++ if (is_dir)
++ return FALSE;
++
++ slash = strrchr (path, '/');
++ if (strcmp (slash, "/frodo"))
++ return TRUE;
++
++ return FALSE;
++}
++
++
+ static int logger_called = 0;
+
+ static int
+@@ -905,6 +924,48 @@
+ TEST_EQ_STR (v->path, filename);
+
+ nih_free (visited);
++
++ /* Try also inverse filter */
++ TEST_ALLOC_SAFE {
++ visitor_called = 0;
++ visited = nih_list_new (NULL);
++ }
++
++ ret = nih_dir_walk (dirname, my_filter_frodo_file,
++ my_visitor, NULL, &ret);
++
++ TEST_EQ (ret, 0);
++ TEST_EQ (visitor_called, 4);
++
++ v = (Visited *)visited->next;
++ TEST_EQ (v->data, &ret);
++ TEST_EQ_STR (v->dirname, dirname);
++ strcpy (filename, dirname);
++ strcat (filename, "/bar");
++ TEST_EQ_STR (v->path, filename);
++
++ v = (Visited *)v->entry.next;
++ TEST_EQ (v->data, &ret);
++ TEST_EQ_STR (v->dirname, dirname);
++ strcpy (filename, dirname);
++ strcat (filename, "/bar/frodo");
++ TEST_EQ_STR (v->path, filename);
++
++ v = (Visited *)v->entry.next;
++ TEST_EQ (v->data, &ret);
++ TEST_EQ_STR (v->dirname, dirname);
++ strcpy (filename, dirname);
++ strcat (filename, "/baz");
++ TEST_EQ_STR (v->path, filename);
++
++ v = (Visited *)v->entry.next;
++ TEST_EQ (v->data, &ret);
++ TEST_EQ_STR (v->dirname, dirname);
++ strcpy (filename, dirname);
++ strcat (filename, "/frodo");
++ TEST_EQ_STR (v->path, filename);
++
++ nih_free (visited);
+ }
+
+
+--- libnih-1.0.3.orig/debian/control
++++ libnih-1.0.3/debian/control
+@@ -0,0 +1,81 @@
++Source: libnih
++Section: libs
++Priority: required
++Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
++XSBC-Original-Maintainer: Scott James Remnant <scott@netsplit.com>
++Standards-Version: 3.9.4
++Build-Depends: debhelper (>= 9), pkg-config (>= 0.22), libdbus-1-dev (>= 1.4), libexpat1-dev (>= 2.0.0), dbus (>= 1.4), libc6-dev (>= 2.15~) | libc6.1-dev (>= 2.15~),
++ dh-autoreconf, autopoint, dpkg-dev (>= 1.16.1~)
++# To cross build this package also needs: libdbus-1-dev:native (>= 1.4), libexpat1-dev:native (>= 2.0.0)
++# But :native build-deps are not supported yet, so instead one can do
++# $ apt-get build-dep libnih
++# $ apt-get build-dep libnih -aarmhf
++# instead to get all required build-deps
++Vcs-Bzr: lp:ubuntu/libnih
++XSC-Debian-Vcs-Git: git://git.debian.org/git/collab-maint/libnih.git
++XSC-Debian-Vcs-Browser: http://git.debian.org/?p=collab-maint/libnih.git;a=summary
++Homepage: https://launchpad.net/libnih
++
++Package: libnih1
++Architecture: any
++Pre-Depends: ${misc:Pre-Depends}, ${shlibs:Depends}, ${misc:Depends}
++Multi-Arch: same
++Description: NIH Utility Library
++ libnih is a light-weight "standard library" of C functions to ease the
++ development of other libraries and applications, especially those
++ normally found in /lib.
++ .
++ This package contains the shared library.
++
++Package: libnih-dev
++Priority: optional
++Section: libdevel
++Architecture: any
++Multi-Arch: same
++Depends: libnih1 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
++Description: NIH Utility Library (development files)
++ libnih is a light-weight "standard library" of C functions to ease the
++ development of other libraries and applications, especially those
++ normally found in /lib.
++ .
++ This package contains the static library and C header files which are
++ needed for developing software using libnih.
++
++Package: libnih-dbus1
++Architecture: any
++Pre-Depends: ${misc:Pre-Depends}
++Depends: libnih1 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
++Multi-Arch: same
++Description: NIH D-Bus Bindings Library
++ libnih-dbus is a D-Bus bindings library that integrates with the main
++ loop provided by libnih.
++ .
++ This package contains the shared library.
++
++Package: libnih-dbus-dev
++Priority: optional
++Section: libdevel
++Architecture: any
++Multi-Arch: same
++Depends: libnih-dbus1 (= ${binary:Version}), libnih-dev (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
++Recommends: nih-dbus-tool (= ${binary:Version})
++Description: NIH D-Bus Bindings Library (development files)
++ libnih-dbus is a D-Bus bindings library that integrates with the main
++ loop provided by libnih.
++ .
++ This package contains the static library and C header files which are
++ needed for developing software using libnih-dbus.
++
++Package: nih-dbus-tool
++Section: devel
++Architecture: any
++Multi-Arch: foreign
++Depends: ${shlibs:Depends}, ${misc:Depends}
++Recommends: libnih-dbus-dev (= ${binary:Version})
++Description: NIH D-Bus Binding Tool
++ nih-dbus-tool generates C source code from the D-Bus Introspection XML
++ data provided by most services; either to make implementing the
++ described objects in C programs or to make proxying to the described
++ remote objects easier.
++ .
++ The generated code requires libnih-dbus-dev to be compiled.
+--- libnih-1.0.3.orig/debian/libnih-dev.install
++++ libnih-1.0.3/debian/libnih-dev.install
+@@ -0,0 +1,6 @@
++lib/*/libnih.a
++lib/*/libnih.so
++usr/include/libnih.h
++usr/include/nih
++usr/lib/*/pkgconfig/libnih.pc
++usr/share/aclocal/libnih.m4
+--- libnih-1.0.3.orig/debian/libnih1.docs
++++ libnih-1.0.3/debian/libnih1.docs
+@@ -0,0 +1,3 @@
++AUTHORS
++NEWS
++README
+--- libnih-1.0.3.orig/debian/libnih-dbus1.install
++++ libnih-1.0.3/debian/libnih-dbus1.install
+@@ -0,0 +1 @@
++lib/*/libnih-dbus.so.*
+--- libnih-1.0.3.orig/debian/libnih1.install
++++ libnih-1.0.3/debian/libnih1.install
+@@ -0,0 +1 @@
++lib/*/libnih.so.*
+--- libnih-1.0.3.orig/debian/rules
++++ libnih-1.0.3/debian/rules
+@@ -0,0 +1,54 @@
++#!/usr/bin/make -f
++
++include /usr/share/dpkg/architecture.mk
++
++%:
++ dh $@ --with autoreconf
++
++
++CFLAGS := -Wall -fstack-protector -fPIE $(shell dpkg-buildflags --get CFLAGS)
++LDFLAGS := -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -pie $(shell dpkg-buildflags --get LDFLAGS)
++
++override_dh_auto_configure:
++ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
++ dh_auto_configure -- CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
++ --libdir=/lib/$(DEB_HOST_MULTIARCH)
++else
++ dh_auto_configure -B build-dbus-tool/ -- CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
++ --libdir=/lib/$(DEB_BUILD_MULTIARCH) \
++ --host=$(DEB_BUILD_GNU_TYPE)
++ dh_auto_build -B build-dbus-tool/ --parallel
++ dh_auto_configure -- CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
++ NIH_DBUS_TOOL=$(CURDIR)/build-dbus-tool/nih-dbus-tool/nih-dbus-tool \
++ --libdir=/lib/$(DEB_HOST_MULTIARCH)
++endif
++
++override_dh_auto_build:
++ dh_auto_build --parallel
++
++override_dh_auto_test:
++ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
++ dh_auto_test --parallel
++endif
++
++override_dh_auto_install:
++ dh_auto_install -- pkgconfigdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH)/pkgconfig
++
++override_dh_makeshlibs:
++ dh_makeshlibs -plibnih1 -V 'libnih1 (>= 1.0.0)'
++ dh_makeshlibs -plibnih-dbus1 -V 'libnih-dbus1 (>= 1.0.0)'
++ dh_makeshlibs -Nlibnih1 -Nlibnih-dbus1
++
++override_dh_shlibdeps:
++ dh_shlibdeps
++ sed -i 's/2\.14/2.15/' debian/*.substvars
++ sed -i 's/>= 2.15)/>= 2.15~)/g' debian/*.substvars
++
++
++# Symlink /usr/share/doc directories together
++override_dh_installdocs:
++ dh_installdocs --link-doc=libnih1
++
++override_dh_clean:
++ rm -rf build-dbus-tool/
++ dh_clean
+--- libnih-1.0.3.orig/debian/compat
++++ libnih-1.0.3/debian/compat
+@@ -0,0 +1 @@
++9
+--- libnih-1.0.3.orig/debian/nih-dbus-tool.install
++++ libnih-1.0.3/debian/nih-dbus-tool.install
+@@ -0,0 +1,2 @@
++usr/bin/nih-dbus-tool
++usr/share/man/man1/nih-dbus-tool.1
+--- libnih-1.0.3.orig/debian/copyright
++++ libnih-1.0.3/debian/copyright
+@@ -0,0 +1,18 @@
++This is the Ubuntu package of libnih, the NIH Utility Library.
++
++Copyright © 2009 Canonical Ltd.
++Copyright © 2009 Scott James Remnant <scott@netsplit.com>
++
++Licence:
++
++This program is free software; you can redistribute it and/or modify
++it under the terms of the GNU General Public License version 2, as
++published by the Free Software Foundation.
++
++This program is distributed in the hope that it will be useful, but
++WITHOUT ANY WARRANTY; without even the implied warranty of
++MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++General Public License for more details.
++
++On Ubuntu systems, the complete text of the GNU General Public License
++can be found in ‘/usr/share/common-licenses/GPL-2’.
+--- libnih-1.0.3.orig/debian/libnih-dbus1.postinst
++++ libnih-1.0.3/debian/libnih-dbus1.postinst
+@@ -0,0 +1,53 @@
++#!/bin/sh
++
++set -e
++
++if [ "$1" = configure ]; then
++ # A dependent library of Upstart has changed, so restart Upstart
++ # such that it can safely unmount the root filesystem (LP: #740390)
++
++ # Query running version of Upstart, but only when we know
++ # that initctl will work.
++ #
++ # The calculated version string may be the null string if
++ # Upstart is not running (where for example an alternative
++ # init is running outside a chroot environment) or if the
++ # query failed for some reason. However, the version check
++ # below handles a null version string correctly.
++ UPSTART_VERSION_RUNNING=$(initctl version 2>/dev/null |\
++ awk '{print $3}'|tr -d ')' || :)
++
++ if ischroot; then
++ # Do not honour re-exec when requested from within a
++ # chroot since:
++ #
++ # (a) The version of Upstart outside might not support it.
++ # (b) An isolated environment such as a chroot should
++ # not be able to modify its containing environment.
++ #
++ # A sufficiently new Upstart will actually handle a re-exec
++ # request coming from telinit within a chroot correctly (by
++ # doing nothing) but it's simple enough to perform the check
++ # here and save Upstart the effort.
++ :
++ elif dpkg --compare-versions "$UPSTART_VERSION_RUNNING" ge 1.6.1; then
++ # We are not running inside a chroot and the running version
++ # of Upstart supports stateful re-exec, so we can
++ # restart immediately.
++ #
++ # XXX: Note that the check on the running version must
++ # remain *indefinitely* since it's the only safe way to
++ # know if stateful re-exec is supported: simply checking
++ # packaged version numbers is not sufficient since
++ # the package could be upgraded multiple times without a
++ # reboot.
++ telinit u || :
++ else
++ # Before we shutdown or reboot, we need to re-exec so that we
++ # can safely remount the root filesystem; we can't just do that
++ # here because we lose state.
++ touch /var/run/init.upgraded || :
++ fi
++fi
++
++#DEBHELPER#
+--- libnih-1.0.3.orig/debian/changelog.DEBIAN
++++ libnih-1.0.3/debian/changelog.DEBIAN
+@@ -0,0 +1,118 @@
++libnih (1.0.3-4) unstable; urgency=low
++
++ * Rebuild for new libc to update versioned dependency; this comes from
++ the __abort_msg dependency, dpkg-shlibs needs overriding since this is
++ actually a weak link, but this rebuild fixes things for now.
++ Closes: #625257.
++
++ -- Scott James Remnant <scott@netsplit.com> Mon, 02 May 2011 15:08:33 -0700
++
++libnih (1.0.3-3) unstable; urgency=low
++
++ * New maintainer. Closes: #624442.
++
++ -- Scott James Remnant <scott@netsplit.com> Thu, 28 Apr 2011 14:26:05 -0700
++
++libnih (1.0.3-2) unstable; urgency=low
++
++ * Bump build dependency on libdbus-1-dev and dbus to (>= 1.4) for Unix file
++ descriptor passing support.
++
++ -- Michael Biebl <biebl@debian.org> Thu, 10 Feb 2011 20:25:18 +0100
++
++libnih (1.0.3-1ubuntu1) natty; urgency=low
++
++ * Rebuild with libc6-dev (>= 2.13~).
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 18 Feb 2011 12:09:29 +0100
++
++libnih (1.0.3-1) unstable; urgency=low
++
++ * New upstream release.
++ * Bump debhelper compatibility level to 8 and update build dependency
++ accordingly.
++
++ -- Michael Biebl <biebl@debian.org> Mon, 07 Feb 2011 22:19:13 +0100
++
++libnih (1.0.2-2) unstable; urgency=low
++
++ * Install library development files to /usr/lib and not /lib.
++ * Remove libtool *.la files as there are no reverse dependencies referencing
++ them.
++ * Bump Standards-Version to 3.9.1. No further changes.
++
++ -- Michael Biebl <biebl@debian.org> Sun, 02 Jan 2011 21:09:40 +0100
++
++libnih (1.0.2-1ubuntu3) natty; urgency=low
++
++ * Disable some tests on ppc64 to build an initial package.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 18 Nov 2010 10:59:38 +0100
++
++libnih (1.0.2-1ubuntu2) maverick; urgency=low
++
++ * Re-add -fPIE to the testsuite on armel, removing all armel-specific tests;
++ current gcc-4.4 don't seem affected by the ICE anymore (see LP #398403).
++
++ -- Loïc Minier <loic.minier@linaro.org> Mon, 23 Aug 2010 10:25:31 +0200
++
++libnih (1.0.2-1ubuntu1) maverick; urgency=low
++
++ * Rebuild with libc6-dev (>= 2.12~), after checking that
++ __abort_msg is available with the same signature in eglibc 2.12.
++ * Don't build the testsuite with -fPIE on armel; LP: #398403.
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 30 May 2010 02:54:56 +0200
++
++libnih (1.0.2-1) unstable; urgency=low
++
++ * Initial upload to Debian. Closes: #585071
++ * Based on the Ubuntu package for Lucid done by Scott James Remnant with the
++ following changes:
++ - Switch packages to priority optional.
++ - Use binary:Version instead of Source-Version.
++ - Bump Standards-Version to 3.8.4.
++ - Add Homepage and Vcs-* fields.
++ - Don't symlink /usr/share/doc directories.
++ - Refer to versioned /usr/share/common-licenses/GPL-2 file in
++ debian/copyright.
++ - List all symbols explicitly instead of using a wildcard and add symbols
++ introduced in 1.0.1.
++ - Use the symbols files to create the correct version info instead of
++ specifying it manually via shlibs.
++ - Switch to source format 3.0 (quilt).
++ - Add watch file to track new upstream releases.
++
++ -- Michael Biebl <biebl@debian.org> Sun, 13 Jun 2010 23:36:52 +0200
++
++libnih (1.0.1-1) lucid; urgency=low
++
++ * New upstream release:
++ - Add missing __nih_* symbols to linker version script so that we
++ can link Upstart's test suite.
++ - Glibc __abort_msg symbol now only linked as a weak symbol.
++
++ -- Scott James Remnant <scott@ubuntu.com> Thu, 04 Feb 2010 14:53:26 -0800
++
++libnih (1.0.0-2build1) lucid; urgency=low
++
++ * Rebuild to pick up relaxed dependency on libc6, after checking that
++ __abort_msg is available with the same signature in eglibc 2.11.
++ LP: #508702.
++
++ -- Matthias Klose <doko@ubuntu.com> Mon, 18 Jan 2010 16:09:13 +0100
++
++libnih (1.0.0-2) lucid; urgency=low
++
++ * debian/control: Add build-dependency on dbus so the test suite can
++ pass on the buildds.
++
++ -- Scott James Remnant <scott@ubuntu.com> Sat, 28 Nov 2009 23:28:27 +0000
++
++libnih (1.0.0-1) lucid; urgency=low
++
++ * First upstream release. Previously this code was included in the
++ upstart, mountall and ureadahead source packages.
++
++ -- Scott James Remnant <scott@ubuntu.com> Sat, 28 Nov 2009 21:14:00 +0000
++
+--- libnih-1.0.3.orig/debian/libnih1.symbols
++++ libnih-1.0.3/debian/libnih1.symbols
+@@ -0,0 +1,2 @@
++libnih.so.1 libnih1 #MINVER#
++ *@LIBNIH_1_0 1.0.0
+--- libnih-1.0.3.orig/debian/libnih-dbus-dev.install
++++ libnih-1.0.3/debian/libnih-dbus-dev.install
+@@ -0,0 +1,5 @@
++lib/*/libnih-dbus.a
++lib/*/libnih-dbus.so
++usr/include/libnih-dbus.h
++usr/include/nih-dbus
++usr/lib/*/pkgconfig/libnih-dbus.pc
+--- libnih-1.0.3.orig/debian/libnih1.postinst
++++ libnih-1.0.3/debian/libnih1.postinst
+@@ -0,0 +1,53 @@
++#!/bin/sh
++
++set -e
++
++if [ "$1" = configure ]; then
++ # A dependent library of Upstart has changed, so restart Upstart
++ # such that it can safely unmount the root filesystem (LP: #740390)
++
++ # Query running version of Upstart, but only when we know
++ # that initctl will work.
++ #
++ # The calculated version string may be the null string if
++ # Upstart is not running (where for example an alternative
++ # init is running outside a chroot environment) or if the
++ # query failed for some reason. However, the version check
++ # below handles a null version string correctly.
++ UPSTART_VERSION_RUNNING=$(initctl version 2>/dev/null |\
++ awk '{print $3}'|tr -d ')' || :)
++
++ if ischroot; then
++ # Do not honour re-exec when requested from within a
++ # chroot since:
++ #
++ # (a) The version of Upstart outside might not support it.
++ # (b) An isolated environment such as a chroot should
++ # not be able to modify its containing environment.
++ #
++ # A sufficiently new Upstart will actually handle a re-exec
++ # request coming from telinit within a chroot correctly (by
++ # doing nothing) but it's simple enough to perform the check
++ # here and save Upstart the effort.
++ :
++ elif dpkg --compare-versions "$UPSTART_VERSION_RUNNING" ge 1.6.1; then
++ # We are not running inside a chroot and the running version
++ # of Upstart supports stateful re-exec, so we can
++ # restart immediately.
++ #
++ # XXX: Note that the check on the running version must
++ # remain *indefinitely* since it's the only safe way to
++ # know if stateful re-exec is supported: simply checking
++ # packaged version numbers is not sufficient since
++ # the package could be upgraded multiple times without a
++ # reboot.
++ telinit u || :
++ else
++ # Before we shutdown or reboot, we need to re-exec so that we
++ # can safely remount the root filesystem; we can't just do that
++ # here because we lose state.
++ touch /var/run/init.upgraded || :
++ fi
++fi
++
++#DEBHELPER#
+--- libnih-1.0.3.orig/debian/libnih-dbus1.symbols
++++ libnih-1.0.3/debian/libnih-dbus1.symbols
+@@ -0,0 +1,2 @@
++libnih-dbus.so.1 libnih-dbus1 #MINVER#
++ *@LIBNIH_DBUS_1_0 1.0.0
+--- libnih-1.0.3.orig/debian/changelog
++++ libnih-1.0.3/debian/changelog
+@@ -0,0 +1,213 @@
++libnih (1.0.3-4ubuntu16) raring; urgency=low
++
++ * debian/{libnih1.postinst,libnih-dbus1.postinst}: Force an upgrade to
++ restart Upstart (to pick up new package version) if the running
++ instance supports it.
++ * Merge of important fixes from lp:~upstart-devel/libnih/nih
++ (LP: #776532, LP: #777097, LP: #834813, LP: #1123588).
++
++ -- James Hunt <james.hunt@ubuntu.com> Thu, 14 Mar 2013 09:14:22 +0000
++
++libnih (1.0.3-4ubuntu15) raring; urgency=low
++
++ * Enable cross-building, sans adding :native build-dependencies.
++ See comments in debian/control.
++ * Lintian fixes.
++
++ -- Dmitrijs Ledkovs <dmitrij.ledkov@ubuntu.com> Tue, 08 Jan 2013 15:38:58 +0000
++
++libnih (1.0.3-4ubuntu14) raring; urgency=low
++
++ * Update dbus code generator to allow for empty lists for type 'as'.
++ This drops the != NULL check for NULL terminated arrays and moves the
++ iteration loop inside an 'if' statement.
++
++ -- Stéphane Graber <stgraber@ubuntu.com> Thu, 13 Dec 2012 10:00:27 -0500
++
++libnih (1.0.3-4ubuntu13) raring; urgency=low
++
++ [ Petr Lautrbach <plautrba@redhat.com>, Dmitrijs Ledkovs ]
++ * Fallback to lstat, if dirent.d_type is not available (not portable)
++ (LP: #672643) (Closes: #695604)
++
++ -- Dmitrijs Ledkovs <dmitrij.ledkov@ubuntu.com> Tue, 11 Dec 2012 17:26:52 +0000
++
++libnih (1.0.3-4ubuntu12) raring; urgency=low
++
++ * nih/logging.c: Use our own __nih_abort_msg rather than the (e)glibc
++ private symbol __abort_msg to avoid upgrade issues (LP: #997359).
++ * nih/tests/test_logging.c: Update tests for __nih_abort_msg.
++
++ -- James Hunt <james.hunt@ubuntu.com> Thu, 25 Oct 2012 10:57:30 +0100
++
++libnih (1.0.3-4ubuntu11) quantal; urgency=low
++
++ * Addition of debian/libnih-dbus1.postinst and
++ debian/libnih1.postinst to force Upstart re-exec on shutdown
++ to avoid unmounting disks uncleanly (LP: #740390).
++
++ -- James Hunt <james.hunt@ubuntu.com> Wed, 03 Oct 2012 16:49:40 +0100
++
++libnih (1.0.3-4ubuntu10) quantal; urgency=low
++
++ * Update config.guess,sub for aarch64
++
++ -- Wookey <wookey@wookware.org> Mon, 01 Oct 2012 12:57:05 +0100
++
++libnih (1.0.3-4ubuntu9) precise; urgency=low
++
++ * Mark the nih-dbus-tool package Multi-Arch: foreign so it can be used as
++ a build-dependency of upstart when cross-building.
++
++ -- Steve Langasek <steve.langasek@ubuntu.com> Wed, 15 Feb 2012 22:57:50 -0800
++
++libnih (1.0.3-4ubuntu8) precise; urgency=low
++
++ * libnih1 needs a versioned Pre-Depend on libc6 instead of just a Depend,
++ because libc6 itself uses runlevel from the upstart package in its
++ preinst, which in turn uses libnih1, which needs to be loadable (i.e.,
++ its symbol references resolve). We therefore need to ensure that
++ libnih1's dependencies are always unpacked before libnih1 itself is
++ unpacked. While having something further up the stack (such as upstart,
++ or something on top of upstart) being marked Essential: yes and with the
++ necessary pre-depends would let apt handle this for us with its
++ "immediate configuration" support, but for various reasons we don't want
++ to make upstart essential. LP: #508083.
++
++ -- Steve Langasek <steve.langasek@ubuntu.com> Fri, 10 Feb 2012 12:13:25 -0800
++
++libnih (1.0.3-4ubuntu7) precise; urgency=low
++
++ * Relax dependency on libc6.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 08 Feb 2012 23:43:21 +0100
++
++libnih (1.0.3-4ubuntu6) precise; urgency=low
++
++ * Rebuild with libc6-dev (>= 2.15~).
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 08 Feb 2012 21:48:57 +0100
++
++libnih (1.0.3-4ubuntu5) precise; urgency=low
++
++ * Mark libnih-dev and libnih-dbus-dev Multi-Arch: same as well.
++
++ -- Steve Langasek <steve.langasek@ubuntu.com> Sun, 06 Nov 2011 14:45:07 -0800
++
++libnih (1.0.3-4ubuntu4) precise; urgency=low
++
++ * Make libnih1 and libnih-dbus1 installable using multi-arch.
++
++ -- James Hunt <james.hunt@ubuntu.com> Tue, 01 Nov 2011 14:25:09 -0400
++
++libnih (1.0.3-4ubuntu3) precise; urgency=low
++
++ * Build to install with eglibc-2.15.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 14 Oct 2011 14:05:03 +0200
++
++libnih (1.0.3-4ubuntu2) oneiric; urgency=low
++
++ * Use dpkg-buildflags to get the build flags.
++ * Build with the default build flags, don't hard-code -Os. LP: #791315.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 15 Jun 2011 16:45:42 +0200
++
++libnih (1.0.3-4ubuntu1) oneiric; urgency=low
++
++ * Merge from debian unstable. Retained Ubuntu Build-Depends and Priority.
++
++ -- James Hunt <james.hunt@ubuntu.com> Mon, 23 May 2011 19:28:19 +0100
++
++libnih (1.0.3-1ubuntu1) natty; urgency=low
++
++ * Rebuild with libc6-dev (>= 2.13~).
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 18 Feb 2011 12:09:29 +0100
++
++libnih (1.0.3-1) natty; urgency=low
++
++ * New upstream release:
++ - Added support for passing file descriptors over D-Bus to nih-dbus-tool
++
++ -- Scott James Remnant <scott@ubuntu.com> Thu, 23 Dec 2010 22:28:24 +0000
++
++libnih (1.0.2-2) natty; urgency=low
++
++ * Revert the previous upload. It is never acceptable to simply disable
++ tests, especially when it turns out that the test that was disabled
++ was failing because there was a serious bug that could cause kernel
++ panics for people on boot.
++
++ Test suites are here for a reason.
++
++ * Bumped libdbus Build-Dependency to the version with the bug fix that
++ caused the test suite to fail.
++
++ -- Scott James Remnant <scott@ubuntu.com> Wed, 08 Dec 2010 19:40:15 +0000
++
++libnih (1.0.2-1ubuntu3) natty; urgency=low
++
++ * Disable some tests on ppc64 to build an initial package.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 18 Nov 2010 10:59:38 +0100
++
++libnih (1.0.2-1ubuntu2) maverick; urgency=low
++
++ * Re-add -fPIE to the testsuite on armel, removing all armel-specific tests;
++ current gcc-4.4 don't seem affected by the ICE anymore (see LP #398403).
++
++ -- Loïc Minier <loic.minier@linaro.org> Mon, 23 Aug 2010 10:25:31 +0200
++
++libnih (1.0.2-1ubuntu1) maverick; urgency=low
++
++ * Rebuild with libc6-dev (>= 2.12~), after checking that
++ __abort_msg is available with the same signature in eglibc 2.12.
++ * Don't build the testsuite with -fPIE on armel; LP: #398403.
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 30 May 2010 02:54:56 +0200
++
++libnih (1.0.2-1) maverick; urgency=low
++
++ * New upstream release:
++ - Rename AC_COPYRIGHT to NIH_COPYRIGHT to avoid conflict with other
++ packages.
++ - Add serial to libnih.m4
++ - Add NIH_WITH_LOCAL_LIBNIH macro.
++
++ * Fix use of ${Source-Version} to be ${binary:Version}
++ * Add debian/source/format with "1.0" to be future compatible.
++ * Bump standards version.
++
++ -- Scott James Remnant <scott@ubuntu.com> Tue, 27 Apr 2010 10:49:55 -0700
++
++libnih (1.0.1-1) lucid; urgency=low
++
++ * New upstream release:
++ - Add missing __nih_* symbols to linker version script so that we
++ can link Upstart's test suite.
++ - Glibc __abort_msg symbol now only linked as a weak symbol.
++
++ -- Scott James Remnant <scott@ubuntu.com> Thu, 04 Feb 2010 14:53:26 -0800
++
++libnih (1.0.0-2build1) lucid; urgency=low
++
++ * Rebuild to pick up relaxed dependency on libc6, after checking that
++ __abort_msg is available with the same signature in eglibc 2.11.
++ LP: #508702.
++
++ -- Matthias Klose <doko@ubuntu.com> Mon, 18 Jan 2010 16:09:13 +0100
++
++libnih (1.0.0-2) lucid; urgency=low
++
++ * debian/control: Add build-dependency on dbus so the test suite can
++ pass on the buildds.
++
++ -- Scott James Remnant <scott@ubuntu.com> Sat, 28 Nov 2009 23:28:27 +0000
++
++libnih (1.0.0-1) lucid; urgency=low
++
++ * First upstream release. Previously this code was included in the
++ upstart, mountall and ureadahead source packages.
++
++ -- Scott James Remnant <scott@ubuntu.com> Sat, 28 Nov 2009 21:14:00 +0000
+--- libnih-1.0.3.orig/debian/source/format
++++ libnih-1.0.3/debian/source/format
+@@ -0,0 +1 @@
++1.0
+--- libnih-1.0.3.orig/nih-dbus/dbus_proxy.h
++++ libnih-1.0.3/nih-dbus/dbus_proxy.h
+@@ -146,14 +146,14 @@
+ const char *name, const char *path,
+ NihDBusLostHandler lost_handler,
+ void *data)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ NihDBusProxySignal *nih_dbus_proxy_connect (NihDBusProxy *proxy,
+ const NihDBusInterface *interface,
+ const char *name,
+ NihDBusSignalHandler handler,
+ void *data)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ NIH_END_EXTERN
+
+--- libnih-1.0.3.orig/nih-dbus/dbus_object.h
++++ libnih-1.0.3/nih-dbus/dbus_object.h
+@@ -61,8 +61,7 @@
+ DBusConnection *connection,
+ const char *path,
+ const NihDBusInterface **interfaces,
+- void *data)
+- __attribute__ ((malloc));
++ void *data);
+
+ NIH_END_EXTERN
+
+--- libnih-1.0.3.orig/nih-dbus/dbus_util.h
++++ libnih-1.0.3/nih-dbus/dbus_util.h
+@@ -26,7 +26,7 @@
+ NIH_BEGIN_EXTERN
+
+ char *nih_dbus_path (const void *parent, const char *root, ...)
+- __attribute__ ((sentinel, warn_unused_result, malloc));
++ __attribute__ ((sentinel, warn_unused_result));
+
+ NIH_END_EXTERN
+
+--- libnih-1.0.3.orig/nih-dbus/dbus_pending_data.h
++++ libnih-1.0.3/nih-dbus/dbus_pending_data.h
+@@ -104,7 +104,7 @@
+ NihDBusReplyHandler handler,
+ NihDBusErrorHandler error_handler,
+ void *data)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ NIH_END_EXTERN
+
+--- libnih-1.0.3.orig/nih-dbus/dbus_proxy.c
++++ libnih-1.0.3/nih-dbus/dbus_proxy.c
+@@ -46,11 +46,11 @@
+ __attribute__ ((warn_unused_result));
+ static char *nih_dbus_proxy_name_rule (const void *parent,
+ NihDBusProxy *proxy)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ static int nih_dbus_proxy_signal_destroy (NihDBusProxySignal *proxied);
+ static char *nih_dbus_proxy_signal_rule (const void *parent,
+ NihDBusProxySignal *proxied)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ /* Prototypes for handler functions */
+ static DBusHandlerResult nih_dbus_proxy_name_owner_changed (DBusConnection *connection,
+--- libnih-1.0.3.orig/nih-dbus-tool/symbol.c
++++ libnih-1.0.3/nih-dbus-tool/symbol.c
+@@ -40,10 +40,10 @@
+ /* Prototypes for static functions */
+ static char *symbol_strcat_interface (char **str, const void *parent,
+ const char *format, ...)
+- __attribute__ ((format (printf, 3, 4), warn_unused_result, malloc));
++ __attribute__ ((format (printf, 3, 4), warn_unused_result));
+ static char *symbol_strcat_title (char **str, const void *parent,
+ const char *format, ...)
+- __attribute__ ((format (printf, 3, 4), warn_unused_result, malloc));
++ __attribute__ ((format (printf, 3, 4), warn_unused_result));
+
+
+ /**
+--- libnih-1.0.3.orig/nih-dbus-tool/demarshal.h
++++ libnih-1.0.3/nih-dbus-tool/demarshal.h
+@@ -37,7 +37,7 @@
+ const char *prefix, const char *interface_symbol,
+ const char *member_symbol, const char *symbol,
+ NihList *structs)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ NIH_END_EXTERN
+
+--- libnih-1.0.3.orig/nih-dbus-tool/symbol.h
++++ libnih-1.0.3/nih-dbus-tool/symbol.h
+@@ -28,22 +28,22 @@
+ int symbol_valid (const char *symbol);
+
+ char *symbol_from_name (const void *parent, const char *name)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ char *symbol_impl (const void *parent, const char *prefix,
+ const char *interface_name, const char *name,
+ const char *postfix)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ char *symbol_extern (const void *parent, const char *prefix,
+ const char *interface_symbol, const char *midfix,
+ const char *symbol, const char *postfix)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ char *symbol_typedef (const void *parent, const char *prefix,
+ const char *interface_symbol, const char *midfix,
+ const char *symbol, const char *postfix)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ NIH_END_EXTERN
+
+--- libnih-1.0.3.orig/nih-dbus-tool/output.h
++++ libnih-1.0.3/nih-dbus-tool/output.h
+@@ -35,9 +35,9 @@
+ __attribute__ ((warn_unused_result));
+
+ char *output_preamble (const void *parent, const char *path)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ char *output_sentinel (const void *parent, const char *path)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ NIH_END_EXTERN
+
+--- libnih-1.0.3.orig/nih-dbus-tool/parse.h
++++ libnih-1.0.3/nih-dbus-tool/parse.h
+@@ -95,7 +95,7 @@
+
+ ParseStack *parse_stack_push (const void *parent, NihList *stack,
+ ParseStackType type, void *data)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ ParseStack *parse_stack_top (NihList *stack);
+
+ void parse_start_tag (XML_Parser xmlp, const char *tag,
+@@ -103,7 +103,7 @@
+ void parse_end_tag (XML_Parser xmlp, const char *tag);
+
+ Node * parse_xml (const void *parent, int fd, const char *filename)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ NIH_END_EXTERN
+
+--- libnih-1.0.3.orig/nih-dbus-tool/type.h
++++ libnih-1.0.3/nih-dbus-tool/type.h
+@@ -94,43 +94,43 @@
+
+ char * type_of (const void * parent,
+ DBusSignatureIter *iter)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ TypeVar * type_var_new (const void *parent, const char *type,
+ const char *name)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ char * type_var_to_string (const void *parent, TypeVar *var)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ char * type_var_layout (const void *parent, NihList *vars)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ TypeFunc * type_func_new (const void *parent, const char *type,
+ const char *name)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ char * type_func_to_string (const void *parent, TypeFunc *func)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ char * type_func_to_typedef (const void *parent, TypeFunc *func)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ char * type_func_layout (const void *parent, NihList *funcs)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ TypeStruct *type_struct_new (const void *parent, const char *name)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ char * type_struct_to_string (const void *parent, TypeStruct *structure)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ char * type_to_const (char **type, const void *parent)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ char * type_to_pointer (char **type, const void *parent)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ char * type_to_static (char **type, const void *parent)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ char * type_to_extern (char **type, const void *parent)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ char * type_strcat_assert (char **block, const void *parent,
+ TypeVar *var, TypeVar *prev, TypeVar *next)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ NIH_END_EXTERN
+
+--- libnih-1.0.3.orig/nih-dbus-tool/argument.h
++++ libnih-1.0.3/nih-dbus-tool/argument.h
+@@ -61,7 +61,7 @@
+
+ Argument *argument_new (const void *parent, const char *name,
+ const char *type, NihDBusArgDir direction)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ int argument_start_tag (XML_Parser xmlp, const char *tag,
+ char * const *attr)
+--- libnih-1.0.3.orig/nih-dbus-tool/indent.h
++++ libnih-1.0.3/nih-dbus-tool/indent.h
+@@ -26,9 +26,9 @@
+ NIH_BEGIN_EXTERN
+
+ char *indent (char **str, const void *parent, int level)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ char *comment (char **str, const void *parent)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ NIH_END_EXTERN
+
+--- libnih-1.0.3.orig/nih-dbus-tool/main.c
++++ libnih-1.0.3/nih-dbus-tool/main.c
+@@ -52,10 +52,10 @@
+ /* Prototypes for local functions */
+ char *source_file_path (const void *parent, const char *output_path,
+ const char *filename)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ char *header_file_path (const void *parent, const char *output_path,
+ const char *filename)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+
+ /**
+--- libnih-1.0.3.orig/nih-dbus-tool/signal.h
++++ libnih-1.0.3/nih-dbus-tool/signal.h
+@@ -58,7 +58,7 @@
+ int signal_name_valid (const char *name);
+
+ Signal * signal_new (const void *parent, const char *name)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ int signal_start_tag (XML_Parser xmlp, const char *tag,
+ char * const *attr)
+@@ -76,18 +76,18 @@
+ char * signal_object_function (const void *parent, const char *prefix,
+ Interface *interface, Signal *signal,
+ NihList *prototypes, NihList *structs)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ char * signal_proxy_function (const void *parent, const char *prefix,
+ Interface *interface, Signal *signal,
+ NihList *prototypes, NihList *typedefs,
+ NihList *structs)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ char * signal_args_array (const void *parent, const char *prefix,
+ Interface *interface, Signal *signal,
+ NihList *prototypes)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ NIH_END_EXTERN
+
+--- libnih-1.0.3.orig/nih-dbus-tool/marshal.c
++++ libnih-1.0.3/nih-dbus-tool/marshal.c
+@@ -49,7 +49,7 @@
+ const char *prefix, const char *interface_symbol,
+ const char *member_symbol, const char *symbol,
+ NihList *structs)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ static char *marshal_array (const void *parent,
+ DBusSignatureIter *iter,
+ const char *iter_name, const char *name,
+@@ -58,7 +58,7 @@
+ const char *prefix, const char *interface_symbol,
+ const char *member_symbol, const char *symbol,
+ NihList *structs)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ static char *marshal_struct (const void *parent,
+ DBusSignatureIter *iter,
+ const char *iter_name, const char *name,
+@@ -67,7 +67,7 @@
+ const char *prefix, const char *interface_symbol,
+ const char *member_symbol, const char *symbol,
+ NihList *structs)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+
+ /**
+@@ -364,6 +364,7 @@
+ nih_local TypeVar *element_len_var = NULL;
+ nih_local char * block = NULL;
+ nih_local char * vars_block = NULL;
++ nih_local char * loop_block = NULL;
+
+ nih_assert (iter != NULL);
+ nih_assert (iter_name != NULL);
+@@ -448,7 +449,7 @@
+ nih_list_add (locals, &array_iter_var->entry);
+
+ if (dbus_type_is_fixed (element_type)) {
+- if (! nih_strcat_sprintf (&code, parent,
++ if (! nih_strcat_sprintf (&loop_block, parent,
+ "for (size_t %s = 0; %s < %s; %s++) {\n",
+ loop_name, loop_name, len_name, loop_name)) {
+ nih_free (code);
+@@ -456,6 +457,12 @@
+ }
+ } else {
+ if (! nih_strcat_sprintf (&code, parent,
++ "if (%s) {\n",
++ name)) {
++ nih_free (code);
++ return NULL;
++ }
++ if (! nih_strcat_sprintf (&loop_block, parent,
+ "for (size_t %s = 0; %s[%s]; %s++) {\n",
+ loop_name, name, loop_name, loop_name)) {
+ nih_free (code);
+@@ -576,7 +583,7 @@
+ }
+
+
+- if (! nih_strcat_sprintf (&code, parent,
++ if (! nih_strcat_sprintf (&loop_block, parent,
+ "%s"
+ "\n"
+ "%s"
+@@ -590,9 +597,34 @@
+ }
+
+ /* Close the container again */
++ if (! nih_strcat_sprintf (&loop_block, parent,
++ "}\n")) {
++ nih_free (code);
++ return NULL;
++ }
++
++ if (dbus_type_is_fixed (element_type)) {
++ if (! nih_strcat_sprintf (&code, parent,
++ "%s\n", loop_block)) {
++ nih_free (code);
++ return NULL;
++ }
++ }
++ else {
++ if (! indent (&loop_block, NULL, 1)) {
++ nih_free (code);
++ return NULL;
++ }
++
++ if (! nih_strcat_sprintf (&code, parent,
++ "%s"
++ "}\n\n", loop_block)) {
++ nih_free (code);
++ return NULL;
++ }
++ }
++
+ if (! nih_strcat_sprintf (&code, parent,
+- "}\n"
+- "\n"
+ "if (! dbus_message_iter_close_container (&%s, &%s)) {\n"
+ "%s"
+ "}\n",
+--- libnih-1.0.3.orig/nih-dbus-tool/demarshal.c
++++ libnih-1.0.3/nih-dbus-tool/demarshal.c
+@@ -51,7 +51,7 @@
+ const char *prefix, const char *interface_symbol,
+ const char *member_symbol, const char *symbol,
+ NihList *structs)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ static char *demarshal_array (const void *parent,
+ DBusSignatureIter *iter,
+ const char *parent_name,
+@@ -62,7 +62,7 @@
+ const char *prefix, const char *interface_symbol,
+ const char *member_symbol, const char *symbol,
+ NihList *structs)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ static char *demarshal_struct (const void *parent,
+ DBusSignatureIter *iter,
+ const char *parent_name,
+@@ -73,7 +73,7 @@
+ const char *prefix, const char *interface_symbol,
+ const char *member_symbol, const char *symbol,
+ NihList *structs)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+
+ /**
+--- libnih-1.0.3.orig/nih-dbus-tool/interface.h
++++ libnih-1.0.3/nih-dbus-tool/interface.h
+@@ -61,7 +61,7 @@
+
+ Interface *interface_new (const void *parent,
+ const char *name)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ int interface_start_tag (XML_Parser xmlp,
+ const char *tag,
+@@ -81,26 +81,26 @@
+ Interface *interface,
+ int with_handlers,
+ NihList *prototypes)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ char * interface_signals_array (const void *parent,
+ const char *prefix,
+ Interface *interface,
+ int with_filters,
+ NihList *prototypes)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ char * interface_properties_array (const void *parent,
+ const char *prefix,
+ Interface *interface,
+ int with_handlers,
+ NihList *prototypes)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ char * interface_struct (const void *parent,
+ const char *prefix,
+ Interface *interface,
+ int object,
+ NihList *prototypes)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+
+ char * interface_proxy_get_all_function (const void *parent,
+@@ -108,7 +108,7 @@
+ Interface *interface,
+ NihList *prototypes,
+ NihList *structs)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ char * interface_proxy_get_all_notify_function (const void *parent,
+ const char *prefix,
+@@ -116,14 +116,14 @@
+ NihList *prototypes,
+ NihList *typedefs,
+ NihList *structs)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ char * interface_proxy_get_all_sync_function (const void *parent,
+ const char *prefix,
+ Interface *interface,
+ NihList *prototypes,
+ NihList *structs)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ NIH_END_EXTERN
+
+--- libnih-1.0.3.orig/nih-dbus-tool/method.h
++++ libnih-1.0.3/nih-dbus-tool/method.h
+@@ -62,7 +62,7 @@
+ int method_name_valid (const char *name);
+
+ Method * method_new (const void *parent, const char *name)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ int method_start_tag (XML_Parser xmlp, const char *tag,
+ char * const *attr)
+@@ -82,33 +82,33 @@
+ Interface *interface, Method *method,
+ NihList *prototypes, NihList *handlers,
+ NihList *structs)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ char * method_reply_function (const void *parent, const char *prefix,
+ Interface *interface, Method *method,
+ NihList *prototypes, NihList *structs)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ char * method_proxy_function (const void *parent, const char *prefix,
+ Interface *interface, Method *method,
+ NihList *prototypes, NihList *structs)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ char * method_proxy_notify_function (const void *parent, const char *prefix,
+ Interface *interface, Method *method,
+ NihList *prototypes, NihList *typedefs,
+ NihList *structs)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ char * method_proxy_sync_function (const void *parent, const char *prefix,
+ Interface *interface, Method *method,
+ NihList *prototypes, NihList *structs)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ char * method_args_array (const void *parent, const char *prefix,
+ Interface *interface, Method *method,
+ NihList *prototypes)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ NIH_END_EXTERN
+
+--- libnih-1.0.3.orig/nih-dbus-tool/node.h
++++ libnih-1.0.3/nih-dbus-tool/node.h
+@@ -47,7 +47,7 @@
+ int node_path_valid (const char *name);
+
+ Node * node_new (const void *parent, const char *path)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ int node_start_tag (XML_Parser xmlp, const char *tag,
+ char * const *attr)
+@@ -59,18 +59,18 @@
+
+ char * node_interfaces_array (const void *parent, const char *prefix,
+ Node *node, int object, NihList *prototypes)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ char * node_object_functions (const void *parent, const char *prefix,
+ Node *node,
+ NihList *prototypes, NihList *handlers,
+ NihList *structs, NihList *externs)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ char * node_proxy_functions (const void *parent, const char *prefix,
+ Node *node,
+ NihList *prototypes, NihList *structs,
+ NihList *typedefs, NihList *externs)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ NIH_END_EXTERN
+
+--- libnih-1.0.3.orig/nih-dbus-tool/marshal.h
++++ libnih-1.0.3/nih-dbus-tool/marshal.h
+@@ -35,7 +35,7 @@
+ const char *prefix, const char *interface_symbol,
+ const char *member_symbol, const char *symbol,
+ NihList *structs)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ NIH_END_EXTERN
+
+--- libnih-1.0.3.orig/nih-dbus-tool/type.c
++++ libnih-1.0.3/nih-dbus-tool/type.c
+@@ -1101,7 +1101,7 @@
+ nih_assert (block != NULL);
+ nih_assert (var != NULL);
+
+- if (! strchr (var->type, '*'))
++ if (! strchr (var->type, '*') || ! strcmp (var->type, "char * const *"))
+ return *block;
+
+ if (next && (! strcmp (next->type, "size_t"))) {
+--- libnih-1.0.3.orig/nih-dbus-tool/property.h
++++ libnih-1.0.3/nih-dbus-tool/property.h
+@@ -65,7 +65,7 @@
+ const char *name,
+ const char *type,
+ NihDBusAccess access)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ int property_start_tag (XML_Parser xmlp, const char *tag,
+ char * const *attr)
+@@ -88,7 +88,7 @@
+ NihList *prototypes,
+ NihList *handlers,
+ NihList *structs)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ char * property_object_set_function (const void *parent,
+ const char *prefix,
+ Interface *interface,
+@@ -96,7 +96,7 @@
+ NihList *prototypes,
+ NihList *handlers,
+ NihList *structs)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ char * property_proxy_get_function (const void *parent,
+ const char *prefix,
+@@ -104,7 +104,7 @@
+ Property *property,
+ NihList *prototypes,
+ NihList *structs)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ char * property_proxy_get_notify_function (const void *parent,
+ const char *prefix,
+ Interface *interface,
+@@ -112,7 +112,7 @@
+ NihList *prototypes,
+ NihList *typedefs,
+ NihList *structs)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ char * property_proxy_set_function (const void *parent,
+ const char *prefix,
+@@ -120,7 +120,7 @@
+ Property *property,
+ NihList *prototypes,
+ NihList *structs)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ char * property_proxy_set_notify_function (const void *parent,
+ const char *prefix,
+ Interface *interface,
+@@ -128,7 +128,7 @@
+ NihList *prototypes,
+ NihList *typedefs,
+ NihList *structs)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ char * property_proxy_get_sync_function (const void *parent,
+ const char *prefix,
+@@ -136,14 +136,14 @@
+ Property *property,
+ NihList *prototypes,
+ NihList *structs)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ char * property_proxy_set_sync_function (const void *parent,
+ const char *prefix,
+ Interface *interface,
+ Property *property,
+ NihList *prototypes,
+ NihList *structs)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ NIH_END_EXTERN
+
+--- libnih-1.0.3.orig/nih-dbus-tool/tests/test_main.c
++++ libnih-1.0.3/nih-dbus-tool/tests/test_main.c
+@@ -100,10 +100,10 @@
+
+ extern char *source_file_path (const void *parent, const char *output_path,
+ const char *filename)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+ extern char *header_file_path (const void *parent, const char *output_path,
+ const char *filename)
+- __attribute__ ((warn_unused_result, malloc));
++ __attribute__ ((warn_unused_result));
+
+ void
+ test_source_file_path (void)
+--- libnih-1.0.3.orig/nih-dbus-tool/tests/test_com.netsplit.Nih.Test_object.c
++++ libnih-1.0.3/nih-dbus-tool/tests/test_com.netsplit.Nih.Test_object.c
+@@ -12524,6 +12524,7 @@
+ dbus_message_iter_init (reply, &iter);
+
+ dbus_message_iter_get_basic (&iter, &str_value);
++ TEST_NE (str_value[0], '\0');
+ TEST_TRUE (strchr ("0123456789", str_value[0]));
+
+ dbus_message_unref (reply);
+--- libnih-1.0.3.orig/nih-dbus-tool/tests/test_marshal.c
++++ libnih-1.0.3/nih-dbus-tool/tests/test_marshal.c
+@@ -1479,39 +1479,41 @@
+ "\treturn -1;\n"
+ "}\n"
+ "\n"
+- "for (size_t value_i = 0; value[value_i]; value_i++) {\n"
+- "\tDBusMessageIter value_element_iter;\n"
+- "\tconst int16_t * value_element;\n"
+- "\tsize_t value_element_len;\n"
++ "if (value) {\n"
++ "\tfor (size_t value_i = 0; value[value_i]; value_i++) {\n"
++ "\t\tDBusMessageIter value_element_iter;\n"
++ "\t\tconst int16_t * value_element;\n"
++ "\t\tsize_t value_element_len;\n"
+ "\n"
+- "\tvalue_element = value[value_i];\n"
+- "\tvalue_element_len = value_len[value_i];\n"
++ "\t\tvalue_element = value[value_i];\n"
++ "\t\tvalue_element_len = value_len[value_i];\n"
+ "\n"
+
+- "\t/* Marshal an array onto the message */\n"
+- "\tif (! dbus_message_iter_open_container (&value_iter, DBUS_TYPE_ARRAY, \"n\", &value_element_iter)) {\n"
+- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
+- "\t\treturn -1;\n"
+- "\t}\n"
++ "\t\t/* Marshal an array onto the message */\n"
++ "\t\tif (! dbus_message_iter_open_container (&value_iter, DBUS_TYPE_ARRAY, \"n\", &value_element_iter)) {\n"
++ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
++ "\t\t\treturn -1;\n"
++ "\t\t}\n"
+ "\n"
+- "\tfor (size_t value_element_i = 0; value_element_i < value_element_len; value_element_i++) {\n"
+- "\t\tint16_t value_element_element;\n"
++ "\t\tfor (size_t value_element_i = 0; value_element_i < value_element_len; value_element_i++) {\n"
++ "\t\t\tint16_t value_element_element;\n"
+ "\n"
+- "\t\tvalue_element_element = value_element[value_element_i];\n"
++ "\t\t\tvalue_element_element = value_element[value_element_i];\n"
+ "\n"
+- "\t\t/* Marshal a int16_t onto the message */\n"
+- "\t\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_INT16, &value_element_element)) {\n"
+- "\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n"
++ "\t\t\t/* Marshal a int16_t onto the message */\n"
++ "\t\t\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_INT16, &value_element_element)) {\n"
++ "\t\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n"
++ "\t\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
++ "\t\t\t\treturn -1;\n"
++ "\t\t\t}\n"
++ "\t\t}\n"
++ "\n"
++ "\t\tif (! dbus_message_iter_close_container (&value_iter, &value_element_iter)) {\n"
+ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
+ "\t\t\treturn -1;\n"
+ "\t\t}\n"
+- "\t}\n"
+- "\n"
+- "\tif (! dbus_message_iter_close_container (&value_iter, &value_element_iter)) {\n"
+- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
+- "\t\treturn -1;\n"
+- "\t}\n"
+
++ "\t}\n"
+ "}\n"
+ "\n"
+ "if (! dbus_message_iter_close_container (&iter, &value_iter)) {\n"
+@@ -1766,15 +1768,17 @@
+ "\treturn -1;\n"
+ "}\n"
+ "\n"
+- "for (size_t value_i = 0; value[value_i]; value_i++) {\n"
+- "\tconst char *value_element;\n"
++ "if (value) {\n"
++ "\tfor (size_t value_i = 0; value[value_i]; value_i++) {\n"
++ "\t\tconst char *value_element;\n"
+ "\n"
+- "\tvalue_element = value[value_i];\n"
++ "\t\tvalue_element = value[value_i];\n"
+ "\n"
+- "\t/* Marshal a char * onto the message */\n"
+- "\tif (! dbus_message_iter_append_basic (&value_iter, DBUS_TYPE_STRING, &value_element)) {\n"
+- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
+- "\t\treturn -1;\n"
++ "\t\t/* Marshal a char * onto the message */\n"
++ "\t\tif (! dbus_message_iter_append_basic (&value_iter, DBUS_TYPE_STRING, &value_element)) {\n"
++ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
++ "\t\t\treturn -1;\n"
++ "\t\t}\n"
+ "\t}\n"
+ "}\n"
+ "\n"
+@@ -1933,35 +1937,39 @@
+ "\treturn -1;\n"
+ "}\n"
+ "\n"
+- "for (size_t value_i = 0; value[value_i]; value_i++) {\n"
+- "\tDBusMessageIter value_element_iter;\n"
+- "\tchar * const * value_element;\n"
++ "if (value) {\n"
++ "\tfor (size_t value_i = 0; value[value_i]; value_i++) {\n"
++ "\t\tDBusMessageIter value_element_iter;\n"
++ "\t\tchar * const * value_element;\n"
+ "\n"
+- "\tvalue_element = value[value_i];\n"
++ "\t\tvalue_element = value[value_i];\n"
+ "\n"
+- "\t/* Marshal an array onto the message */\n"
+- "\tif (! dbus_message_iter_open_container (&value_iter, DBUS_TYPE_ARRAY, \"s\", &value_element_iter)) {\n"
+- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
+- "\t\treturn -1;\n"
+- "\t}\n"
+- "\n"
+- "\tfor (size_t value_element_i = 0; value_element[value_element_i]; value_element_i++) {\n"
+- "\t\tconst char *value_element_element;\n"
++ "\t\t/* Marshal an array onto the message */\n"
++ "\t\tif (! dbus_message_iter_open_container (&value_iter, DBUS_TYPE_ARRAY, \"s\", &value_element_iter)) {\n"
++ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
++ "\t\t\treturn -1;\n"
++ "\t\t}\n"
+ "\n"
+- "\t\tvalue_element_element = value_element[value_element_i];\n"
++ "\t\tif (value_element) {\n"
++ "\t\t\tfor (size_t value_element_i = 0; value_element[value_element_i]; value_element_i++) {\n"
++ "\t\t\t\tconst char *value_element_element;\n"
++ "\n"
++ "\t\t\t\tvalue_element_element = value_element[value_element_i];\n"
++ "\n"
++ "\t\t\t\t/* Marshal a char * onto the message */\n"
++ "\t\t\t\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_STRING, &value_element_element)) {\n"
++ "\t\t\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n"
++ "\t\t\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
++ "\t\t\t\t\treturn -1;\n"
++ "\t\t\t\t}\n"
++ "\t\t\t}\n"
++ "\t\t}\n"
+ "\n"
+- "\t\t/* Marshal a char * onto the message */\n"
+- "\t\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_STRING, &value_element_element)) {\n"
+- "\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n"
++ "\t\tif (! dbus_message_iter_close_container (&value_iter, &value_element_iter)) {\n"
+ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
+ "\t\t\treturn -1;\n"
+ "\t\t}\n"
+ "\t}\n"
+- "\n"
+- "\tif (! dbus_message_iter_close_container (&value_iter, &value_element_iter)) {\n"
+- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
+- "\t\treturn -1;\n"
+- "\t}\n"
+ "}\n"
+ "\n"
+ "if (! dbus_message_iter_close_container (&iter, &value_iter)) {\n"
+@@ -2194,16 +2202,18 @@
+ "\treturn -1;\n"
+ "}\n"
+ "\n"
+- "for (size_t value_item2_i = 0; value_item2[value_item2_i]; value_item2_i++) {\n"
+- "\tconst char *value_item2_element;\n"
++ "if (value_item2) {\n"
++ "\tfor (size_t value_item2_i = 0; value_item2[value_item2_i]; value_item2_i++) {\n"
++ "\t\tconst char *value_item2_element;\n"
+ "\n"
+- "\tvalue_item2_element = value_item2[value_item2_i];\n"
++ "\t\tvalue_item2_element = value_item2[value_item2_i];\n"
+ "\n"
+- "\t/* Marshal a char * onto the message */\n"
+- "\tif (! dbus_message_iter_append_basic (&value_item2_iter, DBUS_TYPE_STRING, &value_item2_element)) {\n"
+- "\t\tdbus_message_iter_abandon_container (&value_iter, &value_item2_iter);\n"
+- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
+- "\t\treturn -1;\n"
++ "\t\t/* Marshal a char * onto the message */\n"
++ "\t\tif (! dbus_message_iter_append_basic (&value_item2_iter, DBUS_TYPE_STRING, &value_item2_element)) {\n"
++ "\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_item2_iter);\n"
++ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
++ "\t\t\treturn -1;\n"
++ "\t\t}\n"
+ "\t}\n"
+ "}\n"
+ "\n"
+@@ -2642,41 +2652,43 @@
+ "\treturn -1;\n"
+ "}\n"
+ "\n"
+- "for (size_t value_i = 0; value[value_i]; value_i++) {\n"
+- "\tDBusMessageIter value_element_iter;\n"
+- "\tconst char * value_element_item0;\n"
+- "\tuint32_t value_element_item1;\n"
+- "\tconst MyStructArrayValueElement *value_element;\n"
++ "if (value) {\n"
++ "\tfor (size_t value_i = 0; value[value_i]; value_i++) {\n"
++ "\t\tDBusMessageIter value_element_iter;\n"
++ "\t\tconst char * value_element_item0;\n"
++ "\t\tuint32_t value_element_item1;\n"
++ "\t\tconst MyStructArrayValueElement *value_element;\n"
+ "\n"
+- "\tvalue_element = value[value_i];\n"
++ "\t\tvalue_element = value[value_i];\n"
+ "\n"
+- "\t/* Marshal a structure onto the message */\n"
+- "\tif (! dbus_message_iter_open_container (&value_iter, DBUS_TYPE_STRUCT, NULL, &value_element_iter)) {\n"
+- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
+- "\t\treturn -1;\n"
+- "\t}\n"
++ "\t\t/* Marshal a structure onto the message */\n"
++ "\t\tif (! dbus_message_iter_open_container (&value_iter, DBUS_TYPE_STRUCT, NULL, &value_element_iter)) {\n"
++ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
++ "\t\t\treturn -1;\n"
++ "\t\t}\n"
+ "\n"
+- "\tvalue_element_item0 = value_element->item0;\n"
++ "\t\tvalue_element_item0 = value_element->item0;\n"
+ "\n"
+- "\t/* Marshal a char * onto the message */\n"
+- "\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_STRING, &value_element_item0)) {\n"
+- "\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n"
+- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
+- "\t\treturn -1;\n"
+- "\t}\n"
++ "\t\t/* Marshal a char * onto the message */\n"
++ "\t\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_STRING, &value_element_item0)) {\n"
++ "\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n"
++ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
++ "\t\t\treturn -1;\n"
++ "\t\t}\n"
+ "\n"
+- "\tvalue_element_item1 = value_element->item1;\n"
++ "\t\tvalue_element_item1 = value_element->item1;\n"
+ "\n"
+- "\t/* Marshal a uint32_t onto the message */\n"
+- "\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_UINT32, &value_element_item1)) {\n"
+- "\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n"
+- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
+- "\t\treturn -1;\n"
+- "\t}\n"
++ "\t\t/* Marshal a uint32_t onto the message */\n"
++ "\t\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_UINT32, &value_element_item1)) {\n"
++ "\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n"
++ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
++ "\t\t\treturn -1;\n"
++ "\t\t}\n"
+ "\n"
+- "\tif (! dbus_message_iter_close_container (&value_iter, &value_element_iter)) {\n"
+- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
+- "\t\treturn -1;\n"
++ "\t\tif (! dbus_message_iter_close_container (&value_iter, &value_element_iter)) {\n"
++ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
++ "\t\t\treturn -1;\n"
++ "\t\t}\n"
+ "\t}\n"
+ "}\n"
+ "\n"
+@@ -2912,41 +2924,43 @@
+ "\treturn -1;\n"
+ "}\n"
+ "\n"
+- "for (size_t value_i = 0; value[value_i]; value_i++) {\n"
+- "\tDBusMessageIter value_element_iter;\n"
+- "\tconst char * value_element_item0;\n"
+- "\tuint32_t value_element_item1;\n"
+- "\tconst MyDictEntryArrayValueElement *value_element;\n"
++ "if (value) {\n"
++ "\tfor (size_t value_i = 0; value[value_i]; value_i++) {\n"
++ "\t\tDBusMessageIter value_element_iter;\n"
++ "\t\tconst char * value_element_item0;\n"
++ "\t\tuint32_t value_element_item1;\n"
++ "\t\tconst MyDictEntryArrayValueElement *value_element;\n"
+ "\n"
+- "\tvalue_element = value[value_i];\n"
++ "\t\tvalue_element = value[value_i];\n"
+ "\n"
+- "\t/* Marshal a structure onto the message */\n"
+- "\tif (! dbus_message_iter_open_container (&value_iter, DBUS_TYPE_DICT_ENTRY, NULL, &value_element_iter)) {\n"
+- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
+- "\t\treturn -1;\n"
+- "\t}\n"
++ "\t\t/* Marshal a structure onto the message */\n"
++ "\t\tif (! dbus_message_iter_open_container (&value_iter, DBUS_TYPE_DICT_ENTRY, NULL, &value_element_iter)) {\n"
++ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
++ "\t\t\treturn -1;\n"
++ "\t\t}\n"
+ "\n"
+- "\tvalue_element_item0 = value_element->item0;\n"
++ "\t\tvalue_element_item0 = value_element->item0;\n"
+ "\n"
+- "\t/* Marshal a char * onto the message */\n"
+- "\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_STRING, &value_element_item0)) {\n"
+- "\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n"
+- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
+- "\t\treturn -1;\n"
+- "\t}\n"
++ "\t\t/* Marshal a char * onto the message */\n"
++ "\t\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_STRING, &value_element_item0)) {\n"
++ "\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n"
++ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
++ "\t\t\treturn -1;\n"
++ "\t\t}\n"
+ "\n"
+- "\tvalue_element_item1 = value_element->item1;\n"
++ "\t\tvalue_element_item1 = value_element->item1;\n"
+ "\n"
+- "\t/* Marshal a uint32_t onto the message */\n"
+- "\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_UINT32, &value_element_item1)) {\n"
+- "\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n"
+- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
+- "\t\treturn -1;\n"
+- "\t}\n"
++ "\t\t/* Marshal a uint32_t onto the message */\n"
++ "\t\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_UINT32, &value_element_item1)) {\n"
++ "\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n"
++ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
++ "\t\t\treturn -1;\n"
++ "\t\t}\n"
+ "\n"
+- "\tif (! dbus_message_iter_close_container (&value_iter, &value_element_iter)) {\n"
+- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
+- "\t\treturn -1;\n"
++ "\t\tif (! dbus_message_iter_close_container (&value_iter, &value_element_iter)) {\n"
++ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
++ "\t\t\treturn -1;\n"
++ "\t\t}\n"
+ "\t}\n"
+ "}\n"
+ "\n"
+--- libnih-1.0.3.orig/nih-dbus-tool/tests/test_com.netsplit.Nih.Test_proxy.c
++++ libnih-1.0.3/nih-dbus-tool/tests/test_com.netsplit.Nih.Test_proxy.c
+@@ -27359,6 +27359,7 @@
+ TEST_TRUE (unix_fd_to_str_replied);
+
+ TEST_EQ_P (last_data, parent);
++ TEST_NE (last_str_value[0], '\0');
+ TEST_TRUE (strchr ("0123456789", last_str_value[0]));
+ TEST_ALLOC_PARENT (last_str_value, parent);
+
+@@ -27673,6 +27674,7 @@
+
+ TEST_EQ (ret, 0);
+
++ TEST_NE (str_value[0], '\0');
+ TEST_TRUE (strchr ("0123456789", str_value[0]));
+ TEST_ALLOC_PARENT (str_value, parent);
+
+--- libnih-1.0.3.orig/nih-dbus-tool/tests/test_property.c
++++ libnih-1.0.3/nih-dbus-tool/tests/test_property.c
+@@ -8733,7 +8733,7 @@
+ TypeVar * var;
+ NihListEntry * attrib;
+ NihDBusProxy * proxy = NULL;
+- void * parent = NULL;
++ void * parent __attribute__((unused)) = NULL;
+ pid_t pid = -1;
+ int status;
+ DBusMessage * method_call;
+--- libnih-1.0.3.orig/nih-dbus-tool/tests/expected/test_method_object_function_standard.c
++++ libnih-1.0.3/nih-dbus-tool/tests/expected/test_method_object_function_standard.c
+@@ -136,17 +136,19 @@
+ goto enomem;
+ }
+
+- for (size_t output_i = 0; output[output_i]; output_i++) {
+- const char *output_element;
++ if (output) {
++ for (size_t output_i = 0; output[output_i]; output_i++) {
++ const char *output_element;
+
+- output_element = output[output_i];
++ output_element = output[output_i];
+
+- /* Marshal a char * onto the message */
+- if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) {
+- dbus_message_iter_abandon_container (&iter, &output_iter);
+- dbus_message_unref (reply);
+- reply = NULL;
+- goto enomem;
++ /* Marshal a char * onto the message */
++ if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) {
++ dbus_message_iter_abandon_container (&iter, &output_iter);
++ dbus_message_unref (reply);
++ reply = NULL;
++ goto enomem;
++ }
+ }
+ }
+
+--- libnih-1.0.3.orig/nih-dbus-tool/tests/expected/test_method_reply_function_standard.c
++++ libnih-1.0.3/nih-dbus-tool/tests/expected/test_method_reply_function_standard.c
+@@ -7,7 +7,6 @@
+ DBusMessageIter output_iter;
+
+ nih_assert (message != NULL);
+- nih_assert (output != NULL);
+
+ /* If the sender doesn't care about a reply, don't bother wasting
+ * effort constructing and sending one.
+@@ -28,16 +27,18 @@
+ return -1;
+ }
+
+- for (size_t output_i = 0; output[output_i]; output_i++) {
+- const char *output_element;
+-
+- output_element = output[output_i];
+-
+- /* Marshal a char * onto the message */
+- if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) {
+- dbus_message_iter_abandon_container (&iter, &output_iter);
+- dbus_message_unref (reply);
+- return -1;
++ if (output) {
++ for (size_t output_i = 0; output[output_i]; output_i++) {
++ const char *output_element;
++
++ output_element = output[output_i];
++
++ /* Marshal a char * onto the message */
++ if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) {
++ dbus_message_iter_abandon_container (&iter, &output_iter);
++ dbus_message_unref (reply);
++ return -1;
++ }
+ }
+ }
+
+--- libnih-1.0.3.orig/nih-dbus-tool/tests/expected/test_method_reply_function_deprecated.c
++++ libnih-1.0.3/nih-dbus-tool/tests/expected/test_method_reply_function_deprecated.c
+@@ -7,7 +7,6 @@
+ DBusMessageIter output_iter;
+
+ nih_assert (message != NULL);
+- nih_assert (output != NULL);
+
+ /* If the sender doesn't care about a reply, don't bother wasting
+ * effort constructing and sending one.
+@@ -28,16 +27,18 @@
+ return -1;
+ }
+
+- for (size_t output_i = 0; output[output_i]; output_i++) {
+- const char *output_element;
+-
+- output_element = output[output_i];
+-
+- /* Marshal a char * onto the message */
+- if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) {
+- dbus_message_iter_abandon_container (&iter, &output_iter);
+- dbus_message_unref (reply);
+- return -1;
++ if (output) {
++ for (size_t output_i = 0; output[output_i]; output_i++) {
++ const char *output_element;
++
++ output_element = output[output_i];
++
++ /* Marshal a char * onto the message */
++ if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) {
++ dbus_message_iter_abandon_container (&iter, &output_iter);
++ dbus_message_unref (reply);
++ return -1;
++ }
+ }
+ }
+
+--- libnih-1.0.3.orig/nih-dbus-tool/tests/expected/test_method_object_function_no_input.c
++++ libnih-1.0.3/nih-dbus-tool/tests/expected/test_method_object_function_no_input.c
+@@ -88,17 +88,19 @@
+ goto enomem;
+ }
+
+- for (size_t output_i = 0; output[output_i]; output_i++) {
+- const char *output_element;
++ if (output) {
++ for (size_t output_i = 0; output[output_i]; output_i++) {
++ const char *output_element;
+
+- output_element = output[output_i];
++ output_element = output[output_i];
+
+- /* Marshal a char * onto the message */
+- if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) {
+- dbus_message_iter_abandon_container (&iter, &output_iter);
+- dbus_message_unref (reply);
+- reply = NULL;
+- goto enomem;
++ /* Marshal a char * onto the message */
++ if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) {
++ dbus_message_iter_abandon_container (&iter, &output_iter);
++ dbus_message_unref (reply);
++ reply = NULL;
++ goto enomem;
++ }
+ }
+ }
+
diff --git a/meta-openembedded/meta-oe/recipes-support/libnih/libnih_1.0.3.bb b/meta-openembedded/meta-oe/recipes-support/libnih/libnih_1.0.3.bb
new file mode 100644
index 000000000..3e35f4d1f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libnih/libnih_1.0.3.bb
@@ -0,0 +1,38 @@
+# Copyright (c) 2013 LG Electronics, Inc.
+
+SUMMARY = "libnih library"
+HOMEPAGE = "https://launchpad.net/libnih"
+DESCRIPTION = "libnih is a small library for C application development \
+ containing functions that, despite its name, are not implemented \
+ elsewhere in the standard library set. \
+ \
+ libnih is roughly equivalent to other C libraries such as glib, \
+ except that its focus is on a small size and intended for \
+ applications that sit very low in the software stack, especially \
+ outside of /usr. \
+ \
+ It expressly does not reimplement functions that already exist in \
+ libraries ordinarily shipped in /lib such libc6, and does not do \
+ foolish things like invent arbitrary typedefs for perfectly good C types."
+
+SECTION = "libs"
+
+LICENSE = "GPL-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+DEPENDS = "dbus libnih-native"
+DEPENDS_class-native = "dbus-native"
+
+SRC_URI = "https://launchpad.net/${BPN}/1.0/${PV}/+download/${BP}.tar.gz \
+ file://libnih_1.0.3-4ubuntu16.patch \
+ file://0001-signal.c-SIGCLD-and-SIGCHILD-are-same-on-sytem-V-sys.patch \
+ "
+
+SRC_URI[md5sum] = "db7990ce55e01daffe19006524a1ccb0"
+SRC_URI[sha256sum] = "897572df7565c0a90a81532671e23c63f99b4efde2eecbbf11e7857fbc61f405"
+
+inherit autotools
+inherit gettext
+
+# target libnih requires native nih-dbus-tool
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/liboauth/liboauth_1.0.3.bb b/meta-openembedded/meta-oe/recipes-support/liboauth/liboauth_1.0.3.bb
new file mode 100644
index 000000000..3311da5a8
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/liboauth/liboauth_1.0.3.bb
@@ -0,0 +1,16 @@
+# Copyright (C) 2014 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+DESCRIPTION = "C library implementing OAuth Core RFC 5849"
+HOMEPAGE = "http://liboauth.sourceforge.net"
+LICENSE = "MIT|GPL-2.0"
+LIC_FILES_CHKSUM = "file://COPYING.MIT;md5=6266718a5241c045c8099d9be48817df \
+ file://COPYING.GPL;md5=0636e73ff0215e8d672dc4c32c317bb3"
+SECTION = "libs"
+DEPENDS = "curl openssl"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BP}.tar.gz"
+SRC_URI[md5sum] = "689b46c2b3ab1a39735ac33f714c4f7f"
+SRC_URI[sha256sum] = "0df60157b052f0e774ade8a8bac59d6e8d4b464058cc55f9208d72e41156811f"
+
+inherit autotools pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-support/libol/libol/configure.patch b/meta-openembedded/meta-oe/recipes-support/libol/libol/configure.patch
new file mode 100644
index 000000000..87695fb06
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libol/libol/configure.patch
@@ -0,0 +1,14 @@
+Index: libol-0.3.18/configure.in
+===================================================================
+--- libol-0.3.18.orig/configure.in 2006-03-27 14:44:52.000000000 +0000
++++ libol-0.3.18/configure.in 2014-07-18 07:05:56.029481372 +0000
+@@ -1,7 +1,7 @@
+ dnl Process this file with autoconf to produce a configure script.
+-AC_INIT(src/abstract_io.c)
++AC_INIT(libol, "0.3.18")
+
+-AM_INIT_AUTOMAKE(libol, "0.3.18", 1)
++AM_INIT_AUTOMAKE([foreign])
+ if test -n "$SNAPSHOT_VERSION"; then
+ VERSION=$VERSION+$SNAPSHOT_VERSION
+ fi
diff --git a/meta-openembedded/meta-oe/recipes-support/libol/libol_0.3.18.bb b/meta-openembedded/meta-oe/recipes-support/libol/libol_0.3.18.bb
new file mode 100644
index 000000000..d7adb2b94
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libol/libol_0.3.18.bb
@@ -0,0 +1,20 @@
+SUMMARY = "A tiny C support library"
+HOMEPAGE = "https://my.balabit.com/downloads/libol"
+SECTION = "libs"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b"
+
+SRC_URI = "http://www.balabit.com/downloads/libol/0.3/${BP}.tar.gz \
+ file://configure.patch"
+SRC_URI[md5sum] = "cbadf4b7ea276dfa85acc38a1cc5ff17"
+SRC_URI[sha256sum] = "9de3bf13297ff882e02a1e6e5f6bf760a544aff92a9d8a1cf4328a32005cefe7"
+
+inherit autotools binconfig
+
+do_compile_prepend() {
+ install ${S}/utils/make_class.in ${B}/utils
+}
+
+do_install_append() {
+ rm -fr ${D}${bindir}
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/liboop/liboop/explicit_linking.patch b/meta-openembedded/meta-oe/recipes-support/liboop/liboop/explicit_linking.patch
new file mode 100644
index 000000000..05d3bf6f4
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/liboop/liboop/explicit_linking.patch
@@ -0,0 +1,20 @@
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -51,7 +51,7 @@ noinst_PROGRAMS = test-oop
+
+ test_oop_SOURCES = test-oop.c
+ test_oop_CFLAGS = $(GLIB2_CFLAGS) $(GLIB_INCLUDES) $(TCL_INCLUDES) $(WWW_INCLUDES)
+-test_oop_LDADD = $(lib_LTLIBRARIES)
++test_oop_LDADD = $(lib_LTLIBRARIES) $(GLIB2_LIBS) $(ADNS_LIBS) $(TCL_LIBS) $(READLINE_LIBS)
+
+ release: dist
+ gzip -dc $(PACKAGE)-$(VERSION).tar.gz | bzip2 -9 \
+--- a/liboop-glib2.pc.in
++++ b/liboop-glib2.pc.in
+@@ -7,5 +7,5 @@ Name: liboop-glib2
+ Description: Event loop management library (GLIB2 support)
+ Version: @VERSION@
+ Requires: liboop = @VERSION@ glib-2.0
+-Libs: -L${libdir} -loop-glib2
++Libs: -L${libdir} -loop-glib2 @GLIB2_LIBS@
+ Cflags: -D_REENTRANT -I${includedir}
diff --git a/meta-openembedded/meta-oe/recipes-support/liboop/liboop/new-readline-typedef.patch b/meta-openembedded/meta-oe/recipes-support/liboop/liboop/new-readline-typedef.patch
new file mode 100644
index 000000000..0a0242032
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/liboop/liboop/new-readline-typedef.patch
@@ -0,0 +1,11 @@
+--- a/test-oop.c
++++ b/test-oop.c
+@@ -180,7 +180,7 @@ static void *stop_readline(oop_source *s
+ static void add_readline(oop_source *src) {
+ rl_callback_handler_install(
+ (char *) "> ", /* readline isn't const-correct */
+- (VFunction *) on_readline);
++ (rl_vcpfunc_t *) on_readline);
+ oop_readline_register(src);
+ src->on_signal(src,SIGQUIT,stop_readline,NULL);
+ }
diff --git a/meta-openembedded/meta-oe/recipes-support/liboop/liboop/read_bugfixes.patch b/meta-openembedded/meta-oe/recipes-support/liboop/liboop/read_bugfixes.patch
new file mode 100644
index 000000000..1880a241a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/liboop/liboop/read_bugfixes.patch
@@ -0,0 +1,40 @@
+From: Ian Jackson <ijackson@chiark.greenend.org.uk>
+Applied-Upstream: no
+Bug-Debian: http://bugs.debian.org/579604
+Subject: oop-read.h bugfixes
+
+Some years ago I contributed a feature for reading lines and records
+to liboop: oop-read.h and read.c. Since it took a while for that
+feature to make it into distributed versions, for a long time I've
+been using my own copy of the source file. It seems that I fixed a
+couple of bugs in my copy which are still in the Debian package. I
+can't find any record of me having told anyone about them and now I
+find that 1.0-6 still has the bugs.
+
+There are two fixes:
+ * Initialise "rd->discard" properly
+ * Avoid rd->neednotcheck becoming negative
+
+--- a/read.c
++++ b/read.c
+@@ -114,6 +114,7 @@ oop_read *oop_rd_new(oop_source *oop, oo
+ rd->allocbuf= 0;
+ rd->used= 0;
+ rd->alloc= buf ? bufsz : 0;
++ rd->discard= 0;
+ rd->neednotcheck= 0;
+ rd->displacedchar= -1;
+ rd->style= *OOP_RD_STYLE_IMMED;
+@@ -235,7 +236,11 @@ static void *on_process(oop_source *oop,
+
+ if (rd->discard) {
+ rd->used -= rd->discard;
+- rd->neednotcheck -= rd->discard;
++ if (rd->neednotcheck > rd->discard) {
++ rd->neednotcheck -= rd->discard;
++ } else {
++ rd->neednotcheck= 0;
++ }
+ memmove(buf, buf + rd->discard, rd->used);
+ rd->discard= 0;
+ }
diff --git a/meta-openembedded/meta-oe/recipes-support/liboop/liboop/tcl_dev.patch b/meta-openembedded/meta-oe/recipes-support/liboop/liboop/tcl_dev.patch
new file mode 100644
index 000000000..e738be54c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/liboop/liboop/tcl_dev.patch
@@ -0,0 +1,22 @@
+--- a/configure
++++ b/configure
+@@ -19935,7 +19935,7 @@
+ fi
+
+ if test xno != x$with_tcl; then
+- for version in 8.4 8.3 8.2 8.1 8.0 ; do
++ for version in "" 8.4 8.3 8.2 8.1 8.0 ; do
+ CPPFLAGS="$save_cppflags -I/usr/include/tcl$version"
+ as_ac_Lib=`echo "ac_cv_lib_tcl$version''_Tcl_Main" | $as_tr_sh`
+ echo "$as_me:$LINENO: checking for Tcl_Main in -ltcl$version" >&5
+--- a/configure.ac
++++ b/configure.ac
+@@ -71,7 +71,7 @@
+ fi
+
+ if test xno != x$with_tcl; then
+- for version in 8.4 8.3 8.2 8.1 8.0 ; do
++ for version in "" 8.4 8.3 8.2 8.1 8.0 ; do
+ CPPFLAGS="$save_cppflags -I/usr/include/tcl$version"
+ AC_CHECK_LIB(tcl$version,Tcl_Main,[
+ AC_CHECK_HEADER(tcl.h,[
diff --git a/meta-openembedded/meta-oe/recipes-support/liboop/liboop_1.0.bb b/meta-openembedded/meta-oe/recipes-support/liboop/liboop_1.0.bb
new file mode 100644
index 000000000..82818c242
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/liboop/liboop_1.0.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "Liboop is a low-level event loop management library for POSIX-based operating systems"
+HOMEPAGE = "http://liboop.org/"
+LICENSE = "GPL-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8b54f38ccbd44feb80ab90e01af8b700"
+
+SRC_URI = "http://ftp.debian.org/debian/pool/main/libo/liboop/liboop_${PV}.orig.tar.gz \
+ file://read_bugfixes.patch \
+ file://explicit_linking.patch \
+ file://tcl_dev.patch \
+ file://new-readline-typedef.patch \
+"
+
+SRC_URI[md5sum] = "36cb971047d3af02369446f5e0b315a2"
+SRC_URI[sha256sum] = "34d83c6e0f09ee15cb2bc3131e219747c3b612bb57cf7d25318ab90da9a2d97c"
+
+PACKAGECONFIG ?= ""
+PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline"
+PACKAGECONFIG[glib] = "--with-glib,--without-glib,glib-2.0 libpcre"
+PACKAGECONFIG[tcl] = "--with-tcl,--without-tcl,tcl"
+
+EXTRA_OECONF += "--without-adns -without-libwww"
+
+inherit autotools pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.7.bb b/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.7.bb
new file mode 100644
index 000000000..949c33752
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.7.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Library for using PKCS"
+DESCRIPTION = "\
+Libp11 is a library implementing a small layer on top of PKCS \
+make using PKCS"
+HOMEPAGE = "http://www.opensc-project.org/libp11"
+SECTION = "Development/Libraries"
+LICENSE = "LGPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fad9b3332be894bab9bc501572864b29"
+DEPENDS = "libtool openssl"
+
+SRC_URI = "git://github.com/OpenSC/libp11.git"
+SRCREV = "64569a391897bd29c5060b19fa4613e619e59277"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--disable-static"
+
+do_install_append () {
+ rm -rf ${D}${libdir}/*.la
+ rm -rf ${D}${docdir}/${BPN}
+}
+
+FILES_${PN} += "${libdir}/engines/pkcs11.so"
+FILES_${PN}-dev += "${libdir}/engines/libpkcs11${SOLIBSDEV}"
diff --git a/meta-openembedded/meta-oe/recipes-support/libraw1394/libraw1394_2.1.2.bb b/meta-openembedded/meta-oe/recipes-support/libraw1394/libraw1394_2.1.2.bb
new file mode 100644
index 000000000..337780789
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libraw1394/libraw1394_2.1.2.bb
@@ -0,0 +1,11 @@
+SUMMARY = "base library for low-level IEEE 1394 accesses"
+HOMEPAGE = "https://ieee1394.wiki.kernel.org/index.php/Libraries#libraw1394"
+SECTION = "libs"
+LICENSE = "LGPL-2.1"
+LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=d8045f3b8f929c1cb29a1e3fd737b499"
+
+SRC_URI = "https://www.kernel.org/pub/linux/libs/ieee1394/${BPN}-${PV}.tar.gz"
+SRC_URI[md5sum] = "45031ab15ca93e50c19886a38bc1814a"
+SRC_URI[sha256sum] = "ddc4e32721cdfe680d964aaede68ac606a20cd17dd2ba70e2d7e0692086ab57c"
+
+inherit autotools
diff --git a/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf/use.pkg-config.for.freetype2.patch b/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf/use.pkg-config.for.freetype2.patch
new file mode 100644
index 000000000..1116c34d0
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf/use.pkg-config.for.freetype2.patch
@@ -0,0 +1,62 @@
+From 8cf318197eea91bec6057308befbb29426d69014 Mon Sep 17 00:00:00 2001
+From: Richard Purdie <richard.purdie@linuxfoundation.org>
+Date: Thu, 22 May 2014 10:59:33 +0100
+Subject: [PATCH] freetype-config was removed from oe-core in
+
+commit 5870bd272b0b077d0826fb900b251884c1c05061
+
+ binconfig-disabled: Add class and use
+
+---
+ configure.in | 38 +++++---------------------------------
+ 1 file changed, 5 insertions(+), 33 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index 865075e..d7a5a81 100644
+--- a/configure.in
++++ b/configure.in
+@@ -90,39 +90,11 @@ case "$host" in
+ esac
+ AM_CONDITIONAL(USE_VERSION_RC, test x$use_version_rc = xtrue)
+
+-dnl Check for the FreeType 2 library
+-dnl
+-dnl Get the cflags and libraries from the freetype-config script
+-dnl
+-AC_ARG_WITH(freetype-prefix,[ --with-freetype-prefix=PFX Prefix where FREETYPE is
+-installed (optional)],
+- freetype_prefix="$withval", freetype_prefix="")
+-AC_ARG_WITH(freetype-exec-prefix,[ --with-freetype-exec-prefix=PFX Exec prefix
+-where FREETYPE is installed (optional)],
+- freetype_exec_prefix="$withval", freetype_exec_prefix="")
+-
+-if test x$freetype_exec_prefix != x ; then
+- freetype_args="$freetype_args --exec-prefix=$freetype_exec_prefix"
+- if test x${FREETYPE_CONFIG+set} != xset ; then
+- FREETYPE_CONFIG=$freetype_exec_prefix/bin/freetype-config
+- fi
+-fi
+-if test x$freetype_prefix != x ; then
+- freetype_args="$freetype_args --prefix=$freetype_prefix"
+- if test x${FREETYPE_CONFIG+set} != xset ; then
+- FREETYPE_CONFIG=$freetype_prefix/bin/freetype-config
+- fi
+-fi
+-AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)
+-no_freetype=""
+-if test "$FREETYPE_CONFIG" = "no" ; then
+- AC_MSG_ERROR([
+-*** Unable to find FreeType2 library (http://www.freetype.org/)
+-])
+-else
+- CFLAGS="$CFLAGS `$FREETYPE_CONFIG $freetypeconf_args --cflags`"
+- LIBS="$LIBS `$FREETYPE_CONFIG $freetypeconf_args --libs`"
+-fi
++PKG_CHECK_MODULES(FREETYPE2, freetype2,
++ CFLAGS="$CFLAGS $FREETYPE2_CFLAGS"
++ LIBS="$LIBS $FREETYPE2_LIBS",
++ AC_MSG_ERROR([*** Unable to find FreeType2 library (http://www.freetype.org/)])
++)
+
+ dnl Check for SDL
+ SDL_VERSION=1.2.4
diff --git a/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf_2.0.11.bb b/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf_2.0.11.bb
new file mode 100644
index 000000000..d8b378f2c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf_2.0.11.bb
@@ -0,0 +1,29 @@
+SUMMARY = "Simple DirectMedia Layer truetype font library"
+SECTION = "libs"
+DEPENDS = "virtual/libsdl freetype"
+LICENSE = "Zlib"
+LIC_FILES_CHKSUM = "file://COPYING;md5=22800d1b3701377aae0b61ee36f5c303"
+
+SRC_URI = "http://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-${PV}.tar.gz \
+ file://use.pkg-config.for.freetype2.patch \
+"
+SRC_URI[md5sum] = "61e29bd9da8d245bc2471d1b2ce591aa"
+SRC_URI[sha256sum] = "724cd895ecf4da319a3ef164892b72078bd92632a5d812111261cde248ebcdb7"
+
+S = "${WORKDIR}/SDL_ttf-${PV}"
+
+inherit autotools pkgconfig
+
+LDFLAGS += "-lm"
+
+do_configure_prepend() {
+ # make autoreconf happy
+ touch ${S}/NEWS ${S}/AUTHORS ${S}/ChangeLog
+
+ # Removing these files fixes a libtool version mismatch.
+ MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4"
+
+ for i in ${MACROS}; do
+ rm -f ${S}/acinclude/$i
+ done
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf/automake_foreign.patch b/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf/automake_foreign.patch
new file mode 100644
index 000000000..871e6e94e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf/automake_foreign.patch
@@ -0,0 +1,21 @@
+From f9c4ad3a171d676e3818b8f6897f325ccf0b2203 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 9 May 2017 00:57:10 -0700
+
+---
+ Makefile.am | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/Makefile.am b/Makefile.am
+index 8166d91..8e05e49 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -2,6 +2,8 @@
+
+ lib_LTLIBRARIES = libSDL2_ttf.la
+
++AUTOMAKE_OPTIONS = foreign
++
+ libSDL2_ttfincludedir = $(includedir)/SDL2
+ libSDL2_ttfinclude_HEADERS = \
+ SDL_ttf.h
diff --git a/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf/use.pkg-config.for.freetype2.patch b/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf/use.pkg-config.for.freetype2.patch
new file mode 100644
index 000000000..1dfbec6ed
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf/use.pkg-config.for.freetype2.patch
@@ -0,0 +1,62 @@
+From e6d2c0e130811c15b5f5cc10221fae182cb8609e Mon Sep 17 00:00:00 2001
+From: Richard Purdie <richard.purdie@linuxfoundation.org>
+Date: Thu, 22 May 2014 10:59:33 +0100
+Subject: [PATCH] freetype-config was removed from oe-core in
+
+commit 5870bd272b0b077d0826fb900b251884c1c05061
+
+ binconfig-disabled: Add class and use
+
+---
+ configure.in | 38 +++++---------------------------------
+ 1 file changed, 5 insertions(+), 33 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index 9b36e15..f300cae 100644
+--- a/configure.in
++++ b/configure.in
+@@ -86,39 +86,11 @@ case "$host" in
+ esac
+ AM_CONDITIONAL(USE_VERSION_RC, test x$use_version_rc = xtrue)
+
+-dnl Check for the FreeType 2 library
+-dnl
+-dnl Get the cflags and libraries from the freetype-config script
+-dnl
+-AC_ARG_WITH(freetype-prefix,[ --with-freetype-prefix=PFX Prefix where FREETYPE is
+-installed (optional)],
+- freetype_prefix="$withval", freetype_prefix="")
+-AC_ARG_WITH(freetype-exec-prefix,[ --with-freetype-exec-prefix=PFX Exec prefix
+-where FREETYPE is installed (optional)],
+- freetype_exec_prefix="$withval", freetype_exec_prefix="")
+-
+-if test x$freetype_exec_prefix != x ; then
+- freetype_args="$freetype_args --exec-prefix=$freetype_exec_prefix"
+- if test x${FREETYPE_CONFIG+set} != xset ; then
+- FREETYPE_CONFIG=$freetype_exec_prefix/bin/freetype-config
+- fi
+-fi
+-if test x$freetype_prefix != x ; then
+- freetype_args="$freetype_args --prefix=$freetype_prefix"
+- if test x${FREETYPE_CONFIG+set} != xset ; then
+- FREETYPE_CONFIG=$freetype_prefix/bin/freetype-config
+- fi
+-fi
+-AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)
+-no_freetype=""
+-if test "$FREETYPE_CONFIG" = "no" ; then
+- AC_MSG_ERROR([
+-*** Unable to find FreeType2 library (http://www.freetype.org/)
+-])
+-else
+- CFLAGS="$CFLAGS `$FREETYPE_CONFIG $freetypeconf_args --cflags`"
+- LIBS="$LIBS `$FREETYPE_CONFIG $freetypeconf_args --libs`"
+-fi
++PKG_CHECK_MODULES(FREETYPE2, freetype2,
++ CFLAGS="$CFLAGS $FREETYPE2_CFLAGS"
++ LIBS="$LIBS $FREETYPE2_LIBS",
++ AC_MSG_ERROR([*** Unable to find FreeType2 library (http://www.freetype.org/)])
++)
+
+ dnl Check for SDL
+ SDL_VERSION=2.0.0
diff --git a/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf_2.0.14.bb b/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf_2.0.14.bb
new file mode 100644
index 000000000..4601593ad
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf_2.0.14.bb
@@ -0,0 +1,30 @@
+SUMMARY = "Simple DirectMedia Layer truetype font library"
+SECTION = "libs"
+DEPENDS = "virtual/libsdl2 freetype virtual/libgl"
+LICENSE = "Zlib"
+LIC_FILES_CHKSUM = "file://COPYING.txt;md5=cb33e7c4df9fbde389f149ad6bc93ce5"
+
+SRC_URI = " \
+ http://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-${PV}.tar.gz \
+ file://use.pkg-config.for.freetype2.patch \
+ file://automake_foreign.patch \
+"
+SRC_URI[md5sum] = "e53c05e1e7f1382c316afd6c763388b1"
+SRC_URI[sha256sum] = "34db5e20bcf64e7071fe9ae25acaa7d72bdc4f11ab3ce59acc768ab62fe39276"
+
+S = "${WORKDIR}/SDL2_ttf-${PV}"
+
+inherit autotools pkgconfig distro_features_check
+
+# links to libGL.so
+REQUIRED_DISTRO_FEATURES += "x11 opengl"
+
+do_configure_prepend() {
+ # Removing these files fixes a libtool version mismatch.
+ MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4"
+
+ for i in ${MACROS}; do
+ rm -f ${S}/acinclude/$i
+ done
+}
+ASNEEDED = ""
diff --git a/meta-openembedded/meta-oe/recipes-support/libsmi/libsmi/libsmi-fix-the-test-dump-files.patch b/meta-openembedded/meta-oe/recipes-support/libsmi/libsmi/libsmi-fix-the-test-dump-files.patch
new file mode 100644
index 000000000..134a8bb41
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libsmi/libsmi/libsmi-fix-the-test-dump-files.patch
@@ -0,0 +1,277 @@
+From 460d3a5ef450c30b34a663a073ee53329441ef6e Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Tue, 23 Feb 2016 16:34:38 +0800
+Subject: [PATCH] libsmi: fix the test dump files
+
+These test dump files were generated by smidump 0.4.5
+which would not match with the ones generated by 0.4.8,
+so update them with the ones for 0.4.8.
+
+Upstream-Status: Pending
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+---
+ test/dumps/cm/MAU-MIB | 8 ++++----
+ test/dumps/cm/RMON2-MIB | 6 +++---
+ test/dumps/sming/IF-MIB | 22 +++++++++++++---------
+ test/dumps/sming/MAU-MIB | 19 +++++++++++--------
+ test/dumps/sming/RMON2-MIB | 40 ++++++++++++++++++++++++----------------
+ test/dumps/sming/SNMPv2-MIB | 11 +++++++----
+ 6 files changed, 62 insertions(+), 44 deletions(-)
+
+diff --git a/test/dumps/cm/MAU-MIB b/test/dumps/cm/MAU-MIB
+index 0d97284..0cfd4e1 100644
+--- a/test/dumps/cm/MAU-MIB
++++ b/test/dumps/cm/MAU-MIB
+@@ -53,7 +53,7 @@
+ <attribute name="text">
+ <composite type="text">
+ <attribute name="string">
+- <string>#Conceptual model of MAU-MIB - generated by smidump 0.4.5#</string>
++ <string>#Conceptual model of MAU-MIB - generated by smidump 0.4.8#</string>
+ </attribute>
+ <attribute name="font">
+ <font name="Courier"/>
+@@ -1294,7 +1294,7 @@
+ <point val="29.52,49.18"/>
+ </attribute>
+ <attribute name="obj_bb">
+- <rectangle val="28.67,32.93;30.37,34.63"/>
++ <rectangle val="28.67,32.93;30.37,34.62"/>
+ </attribute>
+ <attribute name="orth_points">
+ <point val="29.52,49.18"/>
+@@ -1678,7 +1678,7 @@
+ <point val="37.68,49.18"/>
+ </attribute>
+ <attribute name="obj_bb">
+- <rectangle val="28.67,32.93;30.37,34.63"/>
++ <rectangle val="28.67,32.93;30.37,34.62"/>
+ </attribute>
+ <attribute name="orth_points">
+ <point val="37.68,49.18"/>
+@@ -1737,7 +1737,7 @@
+ <point val="29.52,35.78"/>
+ </attribute>
+ <attribute name="obj_bb">
+- <rectangle val="28.67,32.93;30.37,34.63"/>
++ <rectangle val="28.67,32.93;30.37,34.62"/>
+ </attribute>
+ <attribute name="orth_points">
+ <point val="29.52,35.78"/>
+diff --git a/test/dumps/cm/RMON2-MIB b/test/dumps/cm/RMON2-MIB
+index 30ae8dd..1b9d268 100644
+--- a/test/dumps/cm/RMON2-MIB
++++ b/test/dumps/cm/RMON2-MIB
+@@ -53,7 +53,7 @@
+ <attribute name="text">
+ <composite type="text">
+ <attribute name="string">
+- <string>#Conceptual model of RMON2-MIB - generated by smidump 0.4.5#</string>
++ <string>#Conceptual model of RMON2-MIB - generated by smidump 0.4.8#</string>
+ </attribute>
+ <attribute name="font">
+ <font name="Courier"/>
+@@ -2841,8 +2841,8 @@
+ </attribute>
+ <attribute name="orth_points">
+ <point val="18.80,55.45"/>
+- <point val="18.80,68.63"/>
+- <point val="22.80,68.63"/>
++ <point val="18.80,68.62"/>
++ <point val="22.80,68.62"/>
+ <point val="22.80,81.80"/>
+ </attribute>
+ <attribute name="orth_orient">
+diff --git a/test/dumps/sming/IF-MIB b/test/dumps/sming/IF-MIB
+index 21432cb..c2ffc06 100644
+--- a/test/dumps/sming/IF-MIB
++++ b/test/dumps/sming/IF-MIB
+@@ -1,16 +1,18 @@
+ //
+-// This module has been generated by smidump 0.4.5. Do not edit.
++// This module has been generated by smidump 0.4.8. Do not edit.
+ //
+ module IF-MIB {
+
+- import IANAifType-MIB (IANAifType);
+- import IRTF-NMRG-SMING (Counter32, Counter64,
+- DisplayString255, Gauge32,
+- PhysAddress, TimeStamp, TimeTicks,
+- TruthValue);
+- import IRTF-NMRG-SMING-SNMP (AutonomousType, RowStatus,
+- TestAndIncr, mib-2);
+- import SNMPv2-MIB (snmpTraps);
++ import SNMPv2-SMI (MODULE-IDENTITY, OBJECT-TYPE, Counter32,
++ Gauge32, Counter64, Integer32, TimeTicks,
++ mib-2, NOTIFICATION-TYPE);
++ import SNMPv2-TC (TEXTUAL-CONVENTION, DisplayString,
++ PhysAddress, TruthValue, RowStatus,
++ TimeStamp, AutonomousType, TestAndIncr);
++ import SNMPv2-CONF (MODULE-COMPLIANCE, OBJECT-GROUP,
++ NOTIFICATION-GROUP);
++ import SNMPv2-MIB (snmpTraps);
++ import IANAifType-MIB (IANAifType);
+
+ //
+ // MODULE META INFORMATION
+@@ -79,6 +81,7 @@ module IF-MIB {
+ typedef InterfaceIndex {
+ type Integer32 (1..2147483647);
+ format "d";
++ status current;
+ description
+ "A unique value, greater than zero, for each interface or
+ interface sub-layer in the managed system. It is
+@@ -91,6 +94,7 @@ module IF-MIB {
+ typedef InterfaceIndexOrZero {
+ type Integer32 (0..2147483647);
+ format "d";
++ status current;
+ description
+ "This textual convention is an extension of the
+ InterfaceIndex convention. The latter defines a greater
+diff --git a/test/dumps/sming/MAU-MIB b/test/dumps/sming/MAU-MIB
+index 2cffd99..64cf714 100644
+--- a/test/dumps/sming/MAU-MIB
++++ b/test/dumps/sming/MAU-MIB
+@@ -1,15 +1,18 @@
+ //
+-// This module has been generated by smidump 0.4.5. Do not edit.
++// This module has been generated by smidump 0.4.8. Do not edit.
+ //
+ module MAU-MIB {
+
+- import IANA-MAU-MIB (IANAifJackType,
+- IANAifMauAutoNegCapBits,
+- IANAifMauMediaAvailable,
+- IANAifMauTypeListBits);
+- import IF-MIB (InterfaceIndex);
+- import IRTF-NMRG-SMING (Counter32, Counter64, TruthValue);
+- import IRTF-NMRG-SMING-SNMP (AutonomousType, mib-2);
++ import SNMPv2-SMI (Counter32, Integer32, Counter64, OBJECT-TYPE,
++ MODULE-IDENTITY, NOTIFICATION-TYPE, mib-2);
++ import SNMPv2-TC (TruthValue, AutonomousType,
++ TEXTUAL-CONVENTION);
++ import SNMPv2-CONF (OBJECT-GROUP, MODULE-COMPLIANCE,
++ NOTIFICATION-GROUP);
++ import IF-MIB (InterfaceIndex);
++ import IANA-MAU-MIB (IANAifMauTypeListBits,
++ IANAifMauMediaAvailable,
++ IANAifMauAutoNegCapBits, IANAifJackType);
+
+ //
+ // MODULE META INFORMATION
+diff --git a/test/dumps/sming/RMON2-MIB b/test/dumps/sming/RMON2-MIB
+index 423b9bc..04763e5 100644
+--- a/test/dumps/sming/RMON2-MIB
++++ b/test/dumps/sming/RMON2-MIB
+@@ -1,23 +1,26 @@
+ //
+-// This module has been generated by smidump 0.4.5. Do not edit.
++// This module has been generated by smidump 0.4.8. Do not edit.
+ //
+ module RMON2-MIB {
+
+- import IF-MIB (ifIndex);
+- import IRTF-NMRG-SMING (Counter32, DisplayString255,
+- Gauge32, IpAddress, TimeStamp,
+- TimeTicks);
+- import IRTF-NMRG-SMING-SNMP (RowStatus, mib-2);
+- import RMON-MIB (OwnerString, channelEntry,
+- etherStatsEntry, filter,
+- filterEntry, history,
+- historyControlEntry,
+- hostControlEntry, hosts, matrix,
+- matrixControlEntry, statistics);
+- import TOKEN-RING-RMON-MIB (ringStationControlEntry,
+- sourceRoutingStatsEntry,
+- tokenRing, tokenRingMLStatsEntry,
+- tokenRingPStatsEntry);
++ import SNMPv2-SMI (MODULE-IDENTITY, OBJECT-TYPE,
++ Counter32, Integer32, Gauge32,
++ IpAddress, TimeTicks, mib-2);
++ import SNMPv2-TC (TEXTUAL-CONVENTION, RowStatus,
++ DisplayString, TimeStamp);
++ import SNMPv2-CONF (MODULE-COMPLIANCE, OBJECT-GROUP);
++ import IF-MIB (ifIndex);
++ import RMON-MIB (OwnerString, statistics, history,
++ hosts, matrix, filter,
++ etherStatsEntry,
++ historyControlEntry,
++ hostControlEntry,
++ matrixControlEntry, filterEntry,
++ channelEntry);
++ import TOKEN-RING-RMON-MIB (tokenRing, tokenRingMLStatsEntry,
++ tokenRingPStatsEntry,
++ ringStationControlEntry,
++ sourceRoutingStatsEntry);
+
+ //
+ // MODULE META INFORMATION
+@@ -167,6 +170,7 @@ module RMON2-MIB {
+
+ typedef ZeroBasedCounter32 {
+ type Gauge32;
++ status current;
+ description
+ "This TC describes an object that counts events with the
+ following semantics: objects of this type will be set to
+@@ -188,6 +192,7 @@ module RMON2-MIB {
+
+ typedef LastCreateTime {
+ type TimeTicks;
++ status current;
+ description
+ "This TC describes an object that stores the value of the
+ sysUpTime object at the last time its entry was created.
+@@ -208,6 +213,7 @@ module RMON2-MIB {
+
+ typedef TimeFilter {
+ type TimeTicks;
++ status current;
+ description
+ "To be used for the index to a table. Allows an application
+ to download only those rows changed since a particular time.
+@@ -424,6 +430,7 @@ module RMON2-MIB {
+
+ typedef DataSource {
+ type ObjectIdentifier;
++ status current;
+ description
+ "Identifies the source of the data that the associated
+ function is configured to analyze. This source can be any
+@@ -439,6 +446,7 @@ module RMON2-MIB {
+
+ typedef ControlString {
+ type OctetString (0..255);
++ status current;
+ description
+ "This data type is used to communicate with a modem or a
+
+diff --git a/test/dumps/sming/SNMPv2-MIB b/test/dumps/sming/SNMPv2-MIB
+index ca355c8..0c88939 100644
+--- a/test/dumps/sming/SNMPv2-MIB
++++ b/test/dumps/sming/SNMPv2-MIB
+@@ -1,11 +1,14 @@
+ //
+-// This module has been generated by smidump 0.4.5. Do not edit.
++// This module has been generated by smidump 0.4.8. Do not edit.
+ //
+ module SNMPv2-MIB {
+
+- import IRTF-NMRG-SMING (Counter32, DisplayString255,
+- TimeStamp, TimeTicks, snmpModules);
+- import IRTF-NMRG-SMING-SNMP (TestAndIncr, mib-2);
++ import SNMPv2-SMI (MODULE-IDENTITY, OBJECT-TYPE,
++ NOTIFICATION-TYPE, TimeTicks, Counter32,
++ snmpModules, mib-2);
++ import SNMPv2-TC (DisplayString, TestAndIncr, TimeStamp);
++ import SNMPv2-CONF (MODULE-COMPLIANCE, OBJECT-GROUP,
++ NOTIFICATION-GROUP);
+
+ //
+ // MODULE META INFORMATION
+--
+1.9.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/libsmi/libsmi/smi.conf b/meta-openembedded/meta-oe/recipes-support/libsmi/libsmi/smi.conf
new file mode 100644
index 000000000..7e4da86d9
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libsmi/libsmi/smi.conf
@@ -0,0 +1,48 @@
+#
+# smi.conf - Global/User SMI configuration file. (EXAMPLE)
+#
+# Copyright (c) 2000 Frank Strauss, Technical University of Braunschweig.
+#
+# See the file "COPYING" for information on usage and redistribution
+# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+#
+# @(#) $Id: smi.conf-example 1134 2001-06-11 09:59:13Z strauss $
+#
+#
+# See smi_config(3) for detailed information on configuration files.
+#
+
+# Extend (note the semicolon) the libsmi default module search path.
+path :/usr/share/mibs/iana
+path :/usr/share/mibs/ietf
+path :/usr/share/mibs/irtf
+path :/usr/share/mibs/tubs
+
+# EXPERIMENTAL: Add a caching method (works only on UNIX systems).
+# NOTE: the cache directory must exist and permissions must be
+# handled appropriately. A simple but insecure way is to apply
+# a tmp flag to the directory (chmod 1777 /usr/local/share/mibs/cache).
+#cache /usr/local/share/mibs/cache /usr/local/bin/smicache -d /usr/local/share/mibs/cache -p http://www.ibr.cs.tu-bs.de/projects/libsmi/smicache/
+
+# Don't show any errors by default.
+level 0
+
+# Preload some basic SMIv2 modules.
+load SNMPv2-SMI
+load SNMPv2-TC
+load SNMPv2-CONF
+
+# Make smilint shout loud to report all errors and warnings.
+smilint: level 9
+
+# But please don't claim about any names longer than 32 chars.
+# (note: this is the prefix of errors `namelength-32-module,
+# -type, -object, -enumeration, and -bit)
+smilint: hide namelength-32
+
+# Preloading some more modules for special applications.
+tcpdump: load DISMAN-SCRIPT-MIB
+tcpdump: load IF-MIB
+
+smiquery: load IF-MIB
+
diff --git a/meta-openembedded/meta-oe/recipes-support/libsmi/libsmi_0.5.0.bb b/meta-openembedded/meta-oe/recipes-support/libsmi/libsmi_0.5.0.bb
new file mode 100644
index 000000000..b537ce67d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libsmi/libsmi_0.5.0.bb
@@ -0,0 +1,32 @@
+SUMMARY = "A Library to Access SMI MIB Information"
+HOMEPAGE = "https://www.ibr.cs.tu-bs.de/projects/libsmi"
+
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=3ad3076f9332343a21636cfd351f05b7"
+
+SRC_URI = "https://www.ibr.cs.tu-bs.de/projects/${BPN}/download/${BP}.tar.gz \
+ file://smi.conf \
+ file://libsmi-fix-the-test-dump-files.patch \
+ "
+
+SRC_URI[md5sum] = "4bf47483c06c9f07d1b10fbc74eddf11"
+SRC_URI[sha256sum] = "f21accdadb1bb328ea3f8a13fc34d715baac6e2db66065898346322c725754d3"
+
+RDEPENDS_${PN} += "wget"
+
+inherit autotools
+
+EXTRA_OECONF = "ac_cv_path_SH=${base_bindir}/sh ac_cv_path_WGET=${bindir}/wget"
+
+do_install_append () {
+ install -d ${D}${sysconfdir}
+ install -m 0644 ${WORKDIR}/smi.conf ${D}${sysconfdir}/smi.conf
+}
+
+PACKAGES += "${PN}-mibs ${PN}-pibs ${PN}-yang"
+
+FILES_${PN}-mibs += "${datadir}/mibs"
+FILES_${PN}-pibs += "${datadir}/pibs"
+FILES_${PN}-yang += "${datadir}/yang"
+
+RRECOMMENDS_${PN} = "${BPN}-mibs"
diff --git a/meta-openembedded/meta-oe/recipes-support/libsoc/libsoc_0.8.2.bb b/meta-openembedded/meta-oe/recipes-support/libsoc/libsoc_0.8.2.bb
new file mode 100644
index 000000000..01708df35
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libsoc/libsoc_0.8.2.bb
@@ -0,0 +1,32 @@
+SUMMARY = "Library for interfacing with common SoC peripherals"
+DESCRIPTION = "libsoc is a C library to interface with common peripherals (gpio, i2c, spi, pwm) \
+ found in SoC (System on Chips) through generic Linux Kernel interfaces."
+
+HOMEPAGE = "https://github.com/jackmitch/libsoc"
+
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=e0bfebea12a718922225ba987b2126a5"
+
+inherit autotools pkgconfig python-dir
+
+SRCREV = "fd1ad6e7823fa76d8db0d3c5884faffa8ffddafb"
+SRC_URI = "git://github.com/jackmitch/libsoc.git"
+
+S = "${WORKDIR}/git"
+
+BOARD ??= "devboard"
+
+PACKAGECONFIG ?= ""
+
+PACKAGECONFIG[disabledebug] = "--disable-debug,,"
+PACKAGECONFIG[allboardconfigs] = "--with-board-configs,,"
+PACKAGECONFIG[enableboardconfig] = "--enable-board=${BOARD},,"
+PACKAGECONFIG[python] = "--enable-python=${PYTHON_PN},,${PYTHON_PN}"
+
+PACKAGES =+ "${@bb.utils.contains('PACKAGECONFIG', 'python', \
+ '${PYTHON_PN}-libsoc-staticdev ${PYTHON_PN}-libsoc', '', d)}"
+
+RDEPENDS_${PN} = "libgcc"
+
+FILES_${PYTHON_PN}-libsoc-staticdev += "${PYTHON_SITEPACKAGES_DIR}/*/*.a"
+FILES_${PYTHON_PN}-libsoc += "${PYTHON_SITEPACKAGES_DIR}"
diff --git a/meta-openembedded/meta-oe/recipes-support/libssh/libssh_0.7.3.bb b/meta-openembedded/meta-oe/recipes-support/libssh/libssh_0.7.3.bb
new file mode 100644
index 000000000..79e7dc599
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libssh/libssh_0.7.3.bb
@@ -0,0 +1,34 @@
+SUMMARY = "Multiplatform C library implementing the SSHv2 and SSHv1 protocol"
+HOMEPAGE = "http://www.libssh.org"
+SECTION = "libs"
+
+DEPENDS = "zlib openssl libgcrypt"
+
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=388a4fb1dea8ceae0be78ba9b01fc139"
+
+SRC_URI = "git://git.libssh.org/projects/libssh.git;branch=v0-7"
+SRCREV = "cdf7690e038230623cbbf6b024ece62f41efa98d"
+S = "${WORKDIR}/git"
+
+EXTRA_OECMAKE = " \
+ -DWITH_GCRYPT=1 \
+ -DWITH_PCAP=1 \
+ -DWITH_SFTP=1 \
+ -DWITH_ZLIB=1 \
+ -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \
+ "
+
+PACKAGECONFIG ??=""
+PACKAGECONFIG[gssapi] = "-DWITH_GSSAPI=1, -DWITH_GSSAPI=0, krb5, "
+
+inherit cmake
+
+do_configure_prepend () {
+ # Disable building of examples
+ sed -i -e '/add_subdirectory(examples)/s/^/#DONOTWANT/' ${S}/CMakeLists.txt \
+ || bbfatal "Failed to disable examples"
+}
+
+FILES_${PN}-dev += "${libdir}/cmake"
+TOOLCHAIN = "gcc"
diff --git a/meta-openembedded/meta-oe/recipes-support/libssh2/libssh2_1.8.0.bb b/meta-openembedded/meta-oe/recipes-support/libssh2/libssh2_1.8.0.bb
new file mode 100644
index 000000000..94bfb8f87
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libssh2/libssh2_1.8.0.bb
@@ -0,0 +1,26 @@
+SUMMARY = "A client-side C library implementing the SSH2 protocol"
+HOMEPAGE = "http://www.libssh2.org/"
+SECTION = "libs"
+
+DEPENDS = "zlib"
+
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c5cf34fc0acb44b082ef50ef5e4354ca"
+
+SRC_URI = "http://www.libssh2.org/download/${BP}.tar.gz"
+SRC_URI[md5sum] = "3d1147cae66e2959ea5441b183de1b1c"
+SRC_URI[sha256sum] = "39f34e2f6835f4b992cafe8625073a88e5a28ba78f83e8099610a7b3af4676d4"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF += "\
+ --with-libz \
+ --with-libz-prefix=${STAGING_LIBDIR} \
+ "
+
+# only one of openssl and gcrypt could be set
+PACKAGECONFIG ??= "openssl"
+PACKAGECONFIG[openssl] = "--with-openssl --with-libssl-prefix=${STAGING_LIBDIR},--without-openssl,openssl"
+PACKAGECONFIG[gcrypt] = "--with-libgcrypt --with-libgcrypt-prefix=${STAGING_EXECPREFIXDIR},--without-libgcrypt,libgcrypt"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/libtar/files/0002-Do-not-strip-libtar.patch b/meta-openembedded/meta-oe/recipes-support/libtar/files/0002-Do-not-strip-libtar.patch
new file mode 100644
index 000000000..31c0d29e9
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/libtar/files/fix_libtool_sysroot.patch b/meta-openembedded/meta-oe/recipes-support/libtar/files/fix_libtool_sysroot.patch
new file mode 100644
index 000000000..178a97029
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/libtar/libtar_1.2.20.bb b/meta-openembedded/meta-oe/recipes-support/libtar/libtar_1.2.20.bb
new file mode 100644
index 000000000..60710f416
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/libteam/libteam/0001-include-sys-select.h-for-fd_set-definition.patch b/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/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/meta-openembedded/meta-oe/recipes-support/libteam/libteam/0001-team_basic_test.py-disable-RedHat-specific-test.patch b/meta-openembedded/meta-oe/recipes-support/libteam/libteam/0001-team_basic_test.py-disable-RedHat-specific-test.patch
new file mode 100644
index 000000000..468a55f34
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libteam/libteam/0001-team_basic_test.py-disable-RedHat-specific-test.patch
@@ -0,0 +1,32 @@
+From 00debe6bd4cf5a3133a8fbaab75f7447a39fa655 Mon Sep 17 00:00:00 2001
+From: Wenzong Fan <wenzong.fan@windriver.com>
+Date: Thu, 12 Apr 2018 01:54:15 +0000
+Subject: [PATCH] team_basic_test.py: disable RedHat specific test
+
+The test _run_teamd_initscripts() is for RedHat ifcfg scripts which are
+incompatible with OE:
+ /etc/sysconfig/network-scripts/ifcfg-*
+
+Upstream-Status: Inappropriate [OE Specific]
+
+Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
+---
+ scripts/team_basic_test.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/scripts/team_basic_test.py b/scripts/team_basic_test.py
+index b05be9e..faabd18 100755
+--- a/scripts/team_basic_test.py
++++ b/scripts/team_basic_test.py
+@@ -171,7 +171,7 @@ TEAM_PORT_CONFIG='{"prio": 10}'
+ try:
+ for mode_name in self._team_modes:
+ self._run_one_mode(mode_name)
+- self._run_teamd_initscripts()
++ #self._run_teamd_initscripts()
+ finally:
+ cmd_exec("modprobe -r team_mode_loadbalance team_mode_roundrobin team_mode_activebackup team_mode_broadcast team");
+
+--
+2.13.3
+
diff --git a/meta-openembedded/meta-oe/recipes-support/libteam/libteam/0002-teamd-Re-adjust-include-header-order.patch b/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/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/meta-openembedded/meta-oe/recipes-support/libteam/libteam/run-ptest b/meta-openembedded/meta-oe/recipes-support/libteam/libteam/run-ptest
new file mode 100644
index 000000000..4ba5acf05
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libteam/libteam/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+python $(dirname $0)/team_basic_test.py
diff --git a/meta-openembedded/meta-oe/recipes-support/libteam/libteam_1.27.bb b/meta-openembedded/meta-oe/recipes-support/libteam/libteam_1.27.bb
new file mode 100644
index 000000000..442592de9
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libteam/libteam_1.27.bb
@@ -0,0 +1,42 @@
+SUMMARY = "Library for controlling team network device"
+HOMEPAGE = "http://www.libteam.org/"
+SECTION = "libs/network"
+
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = "libnl libdaemon jansson"
+
+SRC_URI = "git://github.com/jpirko/libteam \
+ file://0001-include-sys-select.h-for-fd_set-definition.patch \
+ file://0002-teamd-Re-adjust-include-header-order.patch \
+ file://0001-team_basic_test.py-disable-RedHat-specific-test.patch \
+ file://run-ptest \
+ "
+SRCREV = "91a928a56a501daac5ce8b3c16bd9943661f1d16"
+
+SRC_URI[md5sum] = "565114d70c41bff6093d8e57be284e8a"
+SRC_URI[sha256sum] = "d65286379141db141bea33424ec0507bb0f827a0bf03d9c65004bb593e3d5545"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig ptest
+
+FILES_${PN} = "${libdir}/libteam${SOLIBS} \
+"
+
+PACKAGES += "${PN}-dctl ${PN}-utils"
+FILES_${PN}-dctl = "${libdir}/libteamdctl${SOLIBS} \
+"
+FILES_${PN}-utils = "${bindir}/bond2team \
+ ${bindir}/teamd \
+ ${bindir}/teamdctl \
+ ${bindir}/teamnl \
+"
+
+RDEPENDS_${PN}-utils = "bash"
+RDEPENDS_${PN}-ptest = "python"
+
+do_install_ptest() {
+ install ${S}/scripts/team_basic_test.py ${D}${PTEST_PATH}/
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/libtinyxml/libtinyxml/enforce-use-stl.patch b/meta-openembedded/meta-oe/recipes-support/libtinyxml/libtinyxml/enforce-use-stl.patch
new file mode 100644
index 000000000..88c962bbe
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libtinyxml/libtinyxml/enforce-use-stl.patch
@@ -0,0 +1,20 @@
+Description: TinyXml is built with TIXML_USE_STL, so we have to
+ enforce it when the library is used.
+Author: Felix Geyer <debfx-pkg@fobos.de>
+
+Upstream-Status: Pending
+
+diff -Nur tinyxml-2.5.3/tinyxml.h tinyxml-2.5.3.patch/tinyxml.h
+--- tinyxml-2.5.3/tinyxml.h 2007-05-07 00:41:23.000000000 +0200
++++ tinyxml-2.5.3.patch/tinyxml.h 2009-07-08 22:32:03.000000000 +0200
+@@ -26,6 +26,10 @@
+ #ifndef TINYXML_INCLUDED
+ #define TINYXML_INCLUDED
+
++#ifndef TIXML_USE_STL
++ #define TIXML_USE_STL
++#endif
++
+ #ifdef _MSC_VER
+ #pragma warning( push )
+ #pragma warning( disable : 4530 )
diff --git a/meta-openembedded/meta-oe/recipes-support/libtinyxml/libtinyxml/entity-encoding.patch b/meta-openembedded/meta-oe/recipes-support/libtinyxml/libtinyxml/entity-encoding.patch
new file mode 100644
index 000000000..b801506ea
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libtinyxml/libtinyxml/entity-encoding.patch
@@ -0,0 +1,62 @@
+Description: TinyXML incorrectly encodes text element containing
+ an ampersand followed by either x or #.
+
+Origin: http://sourceforge.net/tracker/index.php?func=detail&aid=3031828&group_id=13559&atid=313559
+
+Upstream-Status: Pending
+
+diff -u -r1.105 tinyxml.cpp
+--- a/tinyxml.cpp
++++ b/tinyxml.cpp
+@@ -57,30 +57,7 @@
+ {
+ unsigned char c = (unsigned char) str[i];
+
+- if ( c == '&'
+- && i < ( (int)str.length() - 2 )
+- && str[i+1] == '#'
+- && str[i+2] == 'x' )
+- {
+- // Hexadecimal character reference.
+- // Pass through unchanged.
+- // &#xA9; -- copyright symbol, for example.
+- //
+- // The -1 is a bug fix from Rob Laveaux. It keeps
+- // an overflow from happening if there is no ';'.
+- // There are actually 2 ways to exit this loop -
+- // while fails (error case) and break (semicolon found).
+- // However, there is no mechanism (currently) for
+- // this function to return an error.
+- while ( i<(int)str.length()-1 )
+- {
+- outString->append( str.c_str() + i, 1 );
+- ++i;
+- if ( str[i] == ';' )
+- break;
+- }
+- }
+- else if ( c == '&' )
++ if ( c == '&' )
+ {
+ outString->append( entity[0].str, entity[0].strLength );
+ ++i;
+diff -u -r1.89 xmltest.cpp
+--- a/xmltest.cpp
++++ b/xmltest.cpp
+@@ -1340,6 +1340,16 @@
+ }*/
+ }
+
++ #ifdef TIXML_USE_STL
++ {
++ TiXmlDocument xml;
++ xml.Parse("<foo>foo&amp;#xa+bar</foo>");
++ std::string str;
++ str << xml;
++ XmlTest( "Entity escaping", "<foo>foo&amp;#xa+bar</foo>", str.c_str() );
++ }
++ #endif
++
+ /* 1417717 experiment
+ {
+ TiXmlDocument xml;
diff --git a/meta-openembedded/meta-oe/recipes-support/libtinyxml/libtinyxml_2.6.2.bb b/meta-openembedded/meta-oe/recipes-support/libtinyxml/libtinyxml_2.6.2.bb
new file mode 100644
index 000000000..138df9f30
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libtinyxml/libtinyxml_2.6.2.bb
@@ -0,0 +1,45 @@
+# (c) Copyright 2012 Hewlett-Packard Development Company, L.P.
+
+SUMMARY = "a simple, small, minimal, C++ XML parser"
+HOMEPAGE = "http://www.sourceforge.net/projects/tinyxml"
+LICENSE = "Zlib"
+LIC_FILES_CHKSUM = "file://readme.txt;md5=f8f366f3370dda889f60faa7db162cf4"
+SECTION = "libs"
+
+PR = "r5"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/tinyxml/tinyxml_${@'${PV}'.replace('.', '_')}.tar.gz \
+ file://enforce-use-stl.patch \
+ file://entity-encoding.patch"
+SRC_URI[md5sum] = "c1b864c96804a10526540c664ade67f0"
+SRC_URI[sha256sum] = "15bdfdcec58a7da30adc87ac2b078e4417dbe5392f3afb719f9ba6d062645593"
+
+S = "${WORKDIR}/tinyxml"
+
+EXTRA_CXXFLAGS = "-I. -fPIC"
+
+do_compile() {
+ ${CXX} ${CXXFLAGS} ${EXTRA_CXXFLAGS} -c -o tinyxml.o tinyxml.cpp
+ ${CXX} ${CXXFLAGS} ${EXTRA_CXXFLAGS} -c -o tinyxmlerror.o tinyxmlerror.cpp
+ ${CXX} ${CXXFLAGS} ${EXTRA_CXXFLAGS} -c -o tinyxmlparser.o tinyxmlparser.cpp
+ ${CXX} ${CXXFLAGS} \
+ -shared \
+ -Wl,-soname,libtinyxml.so.${PV} \
+ -o libtinyxml.so.${PV} \
+ ${LDFLAGS} \
+ tinyxml.o \
+ tinyxmlparser.o \
+ tinyxmlerror.o
+
+}
+
+do_install() {
+ install -d ${D}${libdir}
+ install -m 0755 ${S}/libtinyxml.so.${PV} ${D}${libdir}
+ ln -sf libtinyxml.so.${PV} ${D}${libdir}/libtinyxml.so
+
+ install -d ${D}${includedir}
+ install -m 0644 ${S}/tinyxml.h ${D}${includedir}
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_5.0.1.bb b/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_5.0.1.bb
new file mode 100644
index 000000000..8b5ab44fd
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_5.0.1.bb
@@ -0,0 +1,17 @@
+SUMMARY = "TinyXML-2 is a simple, small, efficient, C++ XML parser that can be easily integrating into other programs"
+HOMEPAGE = "http://www.grinninglizard.com/tinyxml2/"
+SECTION = "libs"
+LICENSE = "Zlib"
+LIC_FILES_CHKSUM = "file://tinyxml2.cpp;endline=22;md5=c19221dbd8a66ad3090462af4c5de5e7"
+
+SRC_URI = "git://github.com/leethomason/tinyxml2.git"
+
+SRCREV = "37bc3aca429f0164adf68c23444540b4a24b5778"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+FILES_${PN}-dev += "${libdir}/cmake/"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/libusbg/libusbg/0001-Fix-out-of-tree-builds.patch b/meta-openembedded/meta-oe/recipes-support/libusbg/libusbg/0001-Fix-out-of-tree-builds.patch
new file mode 100644
index 000000000..6be49fbca
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libusbg/libusbg/0001-Fix-out-of-tree-builds.patch
@@ -0,0 +1,39 @@
+From 6118c6ec1291a5c731aa8d4f0c1eb8cce43d47ad Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Mon, 4 Aug 2014 09:04:08 +0200
+Subject: [PATCH] Fix out-of-tree builds
+
+The include flag should point to the source directory, not the build
+directory.
+
+Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
+Upstream-status: Submitted [https://github.com/libusbg/libusbg/pull/9]
+---
+ examples/Makefile.am | 2 +-
+ src/Makefile.am | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/examples/Makefile.am b/examples/Makefile.am
+index f9f9407..ef4f81e 100644
+--- a/examples/Makefile.am
++++ b/examples/Makefile.am
+@@ -1,5 +1,5 @@
+ bin_PROGRAMS = show-gadgets gadget-acm-ecm
+ gadget_acm_ecm_SOURCES = gadget-acm-ecm.c
+ show_gadgets_SOURCES = show-gadgets.c
+-AM_CPPFLAGS=-I../include/
++AM_CPPFLAGS=-I$(top_srcdir)/include/
+ AM_LDFLAGS=-L../src/ -lusbg
+diff --git a/src/Makefile.am b/src/Makefile.am
+index d955a4c..2f71366 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -1,4 +1,4 @@
+ lib_LTLIBRARIES = libusbg.la
+ libusbg_la_SOURCES = usbg.c
+ libusbg_la_LDFLAGS = -version-info 0:1:0
+-AM_CPPFLAGS=-I../include/
++AM_CPPFLAGS=-I$(top_srcdir)/include/
+--
+1.9.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/libusbg/libusbg_git.bb b/meta-openembedded/meta-oe/recipes-support/libusbg/libusbg_git.bb
new file mode 100644
index 000000000..97d60a6a8
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libusbg/libusbg_git.bb
@@ -0,0 +1,16 @@
+SUMMARY = "USB Gadget Configfs Library"
+
+LICENSE = "GPLv2 & LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://COPYING.LGPL;md5=4fbd65380cdd255951079008b364516c"
+
+inherit autotools
+
+PV = "0.1.0"
+SRCREV = "a826d136e0e8fa53815f1ba05893e6dd74208c15"
+SRC_URI = "git://github.com/libusbg/libusbg.git \
+ file://0001-Fix-out-of-tree-builds.patch \
+ "
+
+S = "${WORKDIR}/git"
+
diff --git a/meta-openembedded/meta-oe/recipes-support/libutempter/libutempter.bb b/meta-openembedded/meta-oe/recipes-support/libutempter/libutempter.bb
new file mode 100644
index 000000000..8c84cb376
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libutempter/libutempter.bb
@@ -0,0 +1,41 @@
+SUMMARY = "A privileged helper for utmp/wtmp updates"
+DESCRIPTION = "\
+This library provides interface for terminal emulators such as \
+screen and xterm to record user sessions to utmp and wtmp files."
+HOMEPAGE = "ftp://ftp.altlinux.org/pub/people/ldv/utempter"
+SECTION = "System Environment/Libraries"
+LICENSE = "GPLv2 & GPLv2+ & LGPLv2 & MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
+
+SRCREV = "3ef74fff310f09e2601e241b9f042cd39d591018"
+PV = "1.1.6-alt2+git${SRCPV}"
+
+SRC_URI = "git://git.altlinux.org/people/ldv/packages/libutempter.git \
+ file://0001-Fix-macro-error.patch \
+ file://libutempter-remove-glibc-assumption.patch \
+ "
+
+S = "${WORKDIR}/git/${BPN}"
+
+CFLAGS += "-DLIBEXECDIR=${libexecdir}"
+
+do_compile() {
+ oe_runmake \
+ libdir=${libdir} \
+ libexecdir=${libexecdir}
+}
+
+do_install() {
+ oe_runmake install \
+ DESTDIR=${D} \
+ libdir="${libdir}" \
+ libexecdir="${libexecdir}" \
+ includedir=${includedir} \
+ mandir=${mandir}
+
+ rm -f ${D}${libdir}/*.a
+}
+
+FILES_${PN} = "${libdir}/*.so.*"
+FILES_${PN} += "${libexecdir}/utempter/utempter"
+FILES_${PN}-dbg += "${libexecdir}/utempter/.debug/utempter"
diff --git a/meta-openembedded/meta-oe/recipes-support/libutempter/libutempter/0001-Fix-macro-error.patch b/meta-openembedded/meta-oe/recipes-support/libutempter/libutempter/0001-Fix-macro-error.patch
new file mode 100644
index 000000000..8140ea343
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libutempter/libutempter/0001-Fix-macro-error.patch
@@ -0,0 +1,36 @@
+From fc2bd592ad17d1c2a2a989750e69dfaedc28c633 Mon Sep 17 00:00:00 2001
+From: Qian Lei <qianl.fnst@cn.fujitsu.com>
+Date: Fri, 9 Jan 2015 10:40:29 +0800
+Subject: [PATCH] Fix macro error
+
+compile error when build on almost all architectures.
+
+Upstream-Status: Pending
+Signed-off-by: Qian Lei <qianl.fnst@cn.fujitsu.com>
+---
+ iface.c | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/iface.c b/iface.c
+index 5951d81..27793f0 100644
+--- a/iface.c
++++ b/iface.c
+@@ -43,7 +43,14 @@
+ __result; }))
+ #endif
+
+-#define UTEMPTER_DEFAULT_PATHNAME LIBEXECDIR "/utempter/utempter"
++#ifdef LIBEXECDIR
++# define CAT_PATH(DIR1,DIR2) DIR1##DIR2
++# define RAW_UTEMPTER_PATH CAT_PATH(LIBEXECDIR,/utempter/utempter)
++#else
++# define RAW_UTEMPTER_PATH /usr/lib/libtempter/utempter/utempter
++#endif
++#define STR_PATH(RAW_STR) #RAW_STR
++#define UTEMPTER_DEFAULT_PATHNAME STR_PATH(RAW_UTEMPTER_PATH)
+
+ static const char *utempter_pathname;
+ static int saved_fd = -1;
+--
+1.8.3.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/libutempter/libutempter/libutempter-remove-glibc-assumption.patch b/meta-openembedded/meta-oe/recipes-support/libutempter/libutempter/libutempter-remove-glibc-assumption.patch
new file mode 100644
index 000000000..6ed93355b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libutempter/libutempter/libutempter-remove-glibc-assumption.patch
@@ -0,0 +1,81 @@
+diff -Naur libutempter-1.1.6.orig/utempter.c libutempter-1.1.6/utempter.c
+--- libutempter-1.1.6.orig/utempter.c 2010-11-04 13:14:53.000000000 -0400
++++ libutempter-1.1.6/utempter.c 2014-06-20 16:37:09.762403323 -0400
+@@ -34,13 +34,7 @@
+ #include <sys/stat.h>
+ #include <utmp.h>
+
+-#ifdef __GLIBC__
+ # include <pty.h>
+-#elif defined(__FreeBSD__)
+-# include <libutil.h>
+-#else
+-# error Unsupported platform
+-#endif /* __GLIBC__ || __FreeBSD__ */
+
+ #define DEV_PREFIX "/dev/"
+ #define DEV_PREFIX_LEN (sizeof(DEV_PREFIX)-1)
+@@ -106,17 +100,12 @@
+
+ static int
+ write_uwtmp_record(const char *user, const char *term, const char *host,
+-#ifdef __GLIBC__
+ pid_t pid,
+-#endif
+ int add)
+ {
+ struct utmp ut;
+ struct timeval tv;
+-
+-#ifdef __GLIBC__
+ size_t offset;
+-#endif
+
+ memset(&ut, 0, sizeof(ut));
+
+@@ -128,8 +117,6 @@
+ if (host)
+ strncpy(ut.ut_host, host, sizeof(ut.ut_host));
+
+-#ifdef __GLIBC__
+-
+ offset = (strlen(term) <= sizeof(ut.ut_id)) ? 0 :
+ strlen(term) - sizeof(ut.ut_id);
+ strncpy(ut.ut_id, term + offset, sizeof(ut.ut_id));
+@@ -156,27 +143,6 @@
+
+ (void) updwtmp(_PATH_WTMP, &ut);
+
+-#elif defined(__FreeBSD__)
+-
+- ut.ut_time = tv.tv_sec;
+-
+- if (add)
+- {
+- login(&ut);
+- } else
+- {
+- if (logout(term) != 1)
+- {
+-#ifdef UTEMPTER_DEBUG
+- fprintf(stderr, "utempter: logout: %s\n",
+- strerror(errno));
+-#endif
+- exit(EXIT_FAILURE);
+- }
+- }
+-
+-#endif /* __GLIBC__ || __FreeBSD__ */
+-
+ #ifdef UTEMPTER_DEBUG
+ fprintf(stderr,
+ "utempter: DEBUG: utmp/wtmp record %s for terminal '%s'\n",
+@@ -255,8 +221,6 @@
+ validate_device(device);
+
+ return write_uwtmp_record(pw->pw_name, device + DEV_PREFIX_LEN, host,
+-#ifdef __GLIBC__
+ pid,
+-#endif
+ add);
+ }
diff --git a/meta-openembedded/meta-oe/recipes-support/links/files/ac-prog-cxx.patch b/meta-openembedded/meta-oe/recipes-support/links/files/ac-prog-cxx.patch
new file mode 100644
index 000000000..41c382685
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/links/files/ac-prog-cxx.patch
@@ -0,0 +1,11 @@
+--- links-2.1pre20/configure.in.orig 2005-12-21 15:23:49.000000000 +0000
++++ links-2.1pre20/configure.in 2005-12-21 15:23:59.000000000 +0000
+@@ -18,7 +18,7 @@
+ dnl Checks for programs.
+ AC_PROG_CC
+
+-#AC_PROG_CXX
++AC_PROG_CXX
+ #AC_PROG_AWK
+ #AM_PROG_LEX
+ #AC_PROG_YACC
diff --git a/meta-openembedded/meta-oe/recipes-support/links/files/links2.desktop b/meta-openembedded/meta-oe/recipes-support/links/files/links2.desktop
new file mode 100644
index 000000000..a05bce1b2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/links/files/links2.desktop
@@ -0,0 +1,14 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=Links
+Comment=Links is a browser very similar to lynx
+Comment[es]=El links es un browser para modo texto, similar a lynx
+Comment[pl]=Links jest przeglÄ…darkÄ… podobnÄ… do lynksa
+Comment[pt]=O links é um browser para modo texto, similar ao lynx
+Comment[pt_BR]=O links é um browser para modo texto, similar ao lynx
+Exec=links -g
+Terminal=true
+Icon=links2
+Type=Application
+Categories=Application;ConsoleOnly;Network;WebBrowser;
+# vi: encoding=utf-8
diff --git a/meta-openembedded/meta-oe/recipes-support/links/links-x11_2.7.bb b/meta-openembedded/meta-oe/recipes-support/links/links-x11_2.7.bb
new file mode 100644
index 000000000..2ae11ac97
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/links/links-x11_2.7.bb
@@ -0,0 +1,31 @@
+require links.inc
+
+DEPENDS += "virtual/libx11"
+RCONFLICTS_${PN} = "links"
+
+inherit distro_features_check
+# depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI += " file://links2.desktop \
+ http://www.xora.org.uk/oe/links2.png;name=icon"
+
+S = "${WORKDIR}/links-${PV}"
+
+EXTRA_OECONF = "--enable-graphics \
+ --with-ssl=${STAGING_LIBDIR}/.. --with-libjpeg \
+ --without-libtiff --without-svgalib --without-fb \
+ --without-directfb --without-pmshell --without-atheos \
+ --with-x --without-gpm"
+
+do_install_append() {
+ install -d ${D}/${datadir}/applications
+ install -m 0644 ${WORKDIR}/links2.desktop ${D}/${datadir}/applications
+ install -d ${D}/${datadir}/pixmaps
+ install -m 0644 ${WORKDIR}/links2.png ${D}/${datadir}/pixmaps
+}
+
+SRC_URI[md5sum] = "d06aa6e14b2172d73188871a5357185a"
+SRC_URI[sha256sum] = "0c182b1cbcdfd5cdcd2f75a6032d1a4b660d07c1225c1e07757cec81d3302130"
+SRC_URI[icon.md5sum] = "477e8787927c634614bac01b44355a33"
+SRC_URI[icon.sha256sum] = "eddcd8b8c8698aa621d1a453943892d77b72ed492e0d14e0dbac5c6a57e52f47"
diff --git a/meta-openembedded/meta-oe/recipes-support/links/links.inc b/meta-openembedded/meta-oe/recipes-support/links/links.inc
new file mode 100644
index 000000000..e07240820
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/links/links.inc
@@ -0,0 +1,17 @@
+DESCRIPTION = "Links is graphics and text mode WWW \
+browser, similar to Lynx."
+HOMEPAGE = "http://links.twibright.com/"
+SECTION = "console/network"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=65e735be2e05d5943803344148f57603"
+DEPENDS = "jpeg libpng flex openssl zlib"
+
+SRC_URI = "http://links.twibright.com/download/links-${PV}.tar.bz2 \
+ file://ac-prog-cxx.patch \
+"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[bzip2] = "--with-bzip2,--without-bzip2,bzip2"
+PACKAGECONFIG[lzma] = "--with-lzma,--without-lzma,xz"
+
+inherit autotools pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-support/links/links_2.7.bb b/meta-openembedded/meta-oe/recipes-support/links/links_2.7.bb
new file mode 100644
index 000000000..e80dd7bca
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/links/links_2.7.bb
@@ -0,0 +1,13 @@
+require links.inc
+
+DEPENDS += "gpm"
+RCONFLICTS_${PN} = "links-x11"
+
+EXTRA_OECONF = "--enable-graphics \
+ --with-ssl=${STAGING_LIBDIR}/.. --with-libjpeg \
+ --without-libtiff --without-svgalib --with-fb \
+ --without-directfb --without-pmshell --without-atheos \
+ --without-x"
+
+SRC_URI[md5sum] = "d06aa6e14b2172d73188871a5357185a"
+SRC_URI[sha256sum] = "0c182b1cbcdfd5cdcd2f75a6032d1a4b660d07c1225c1e07757cec81d3302130"
diff --git a/meta-openembedded/meta-oe/recipes-support/lio-utils/lio-utils/0001-Makefiles-Respect-environment-variables-and-add-LDFL.patch b/meta-openembedded/meta-oe/recipes-support/lio-utils/lio-utils/0001-Makefiles-Respect-environment-variables-and-add-LDFL.patch
new file mode 100644
index 000000000..9608b7e75
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/lio-utils/lio-utils/0001-Makefiles-Respect-environment-variables-and-add-LDFL.patch
@@ -0,0 +1,61 @@
+From 2cc2315eecaa48fd24792aaa889dc7d9fb96978b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 20 Mar 2017 22:18:44 -0700
+Subject: [PATCH] Makefiles: Respect environment variables and add LDFLAGS to
+ linker cmdline
+
+Fixes QA errors about GNU_HASH
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ mib-modules/Makefile | 10 +++++-----
+ tools/Makefile | 2 +-
+ 2 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/mib-modules/Makefile b/mib-modules/Makefile
+index 0d54c9b..051d4d2 100644
+--- a/mib-modules/Makefile
++++ b/mib-modules/Makefile
+@@ -17,13 +17,13 @@ TARG = iscsiTargetMib.so
+ OBJS = iscsiTargetMib.o iscsiMib.o scsiMib.o ipsAuthMib.o \
+ iscsiAuthData.o
+
+-CC = gcc
+-CFLAGS = -I$(INCLDIR) -I$(INCLDIR)/agent -I$(INCLDIR)/agent/mibgroup -shared -fPIC
++CC ?= gcc
++CFLAGS += -I$(INCLDIR) -I$(INCLDIR)/agent -I$(INCLDIR)/agent/mibgroup -shared -fPIC
+ CFLAGS += -I../include -Wall -Werror
+ #CFLAGS +=$(AUTO_CFLAGS)
+
+-LD = gcc -shared
+-
++LD ?= gcc
++LDFLAGS += -shared
+ INSTALL = install
+
+ all: $(TARG)
+@@ -32,7 +32,7 @@ all: $(TARG)
+ $(CC) $(CFLAGS) -o $@ -c $<
+
+ $(TARG): $(OBJS)
+- $(LD) -o $@ $(OBJS)
++ $(LD) -o $@ $(OBJS) $(LDFLAGS)
+
+ clean:
+ rm -f $(OBJS) $(TARG)
+diff --git a/tools/Makefile b/tools/Makefile
+index 79ed3cd..ffd9bf3 100644
+--- a/tools/Makefile
++++ b/tools/Makefile
+@@ -6,7 +6,7 @@ ISCSI_NAME_OBJS = $(ISCSI_NAME_SRCS:.c=.o)
+ all:: $(ISCSI_NAME)
+
+ $(ISCSI_NAME): $(ISCSI_NAME_OBJS)
+- $(CC) -o $@ $(CFLAGS) $(ISCSI_NAME_OBJS)
++ $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(ISCSI_NAME_OBJS)
+
+ clean:
+ rm -f $(ISCSI_NAME_OBJS) $(ISCSI_NAME)
+--
+2.12.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb b/meta-openembedded/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb
new file mode 100644
index 000000000..3a6319c31
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb
@@ -0,0 +1,62 @@
+SUMMARY = "lio-utils"
+DESCRIPTION = "a simple low-level configuration tool set for the Target+iSCSI (LIO)"
+HOMEPAGE = "http://linux-iscsi.org/index.php/Lio-utils"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://debian/copyright;md5=c3ea231a32635cbb5debedf3e88aa3df"
+
+PV = "4.1+git${SRCPV}"
+
+SRC_URI = "git://risingtidesystems.com/lio-utils.git \
+ file://0001-Makefiles-Respect-environment-variables-and-add-LDFL.patch \
+ "
+SRCREV = "28bd928655bdc7bd3cf380f0196630690c51e05f"
+S = "${WORKDIR}/git"
+
+inherit distutils
+
+EXTRA_OEMAKE += "DESTDIR=${D}"
+
+do_compile() {
+ cd ${S}/tcm-py
+ distutils_do_compile
+
+ cd ${S}/lio-py
+ distutils_do_compile
+
+ if test -d ${S}/tools; then
+ oe_runmake -C ${S}/tools
+ fi
+}
+
+do_install() {
+ cd ${S}/tcm-py
+ distutils_do_install
+
+ cd ${S}/lio-py
+ distutils_do_install
+
+ SITE_PACKAGES=${D}/${PYTHON_SITEPACKAGES_DIR}
+ install -d ${D}/${sbindir}
+ for var in tcm_node tcm_dump tcm_loop tcm_fabric lio_dump lio_node; do
+ if [ ! -h ${D}/${sbindir}/${var} ];then
+ chmod a+x ${SITE_PACKAGES}/${var}.py
+ ln -s ${PYTHON_SITEPACKAGES_DIR}/${var}.py ${D}/${sbindir}/${var}
+ fi
+ done
+
+ if test -d ${S}/tools; then
+ oe_runmake -C ${S}/tools install
+ fi
+
+ install -d ${D}/etc/target/
+ install -d ${D}/etc/init.d/
+ install -m 755 ${S}/scripts/rc.target ${D}/etc/init.d/
+ install -m 755 ${S}/conf/tcm_start.default ${D}/etc/target/tcm_start.sh
+ install -m 755 ${S}/conf/lio_start.default ${D}/etc/target/lio_start.sh
+}
+
+RDEPENDS_${PN} += "python-stringold python-subprocess python-shell \
+ python-datetime python-textutils python-crypt python-netclient python-email \
+ bash"
+
+FILES_${PN} += "${sbindir}/* /etc/init.d/* /etc/target/*"
diff --git a/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev_git.bb b/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev_git.bb
new file mode 100644
index 000000000..507ce3fe5
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev_git.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Locking devices library"
+SECTION = "libs"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM="file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+PV = "1.0.3+git${SRCPV}"
+
+SRCREV = "16b899645d32012cc94cc9232f64d4ddaaf0b795"
+SRC_URI = "git://anonscm.debian.org/lockdev/lockdev.git"
+
+S = "${WORKDIR}/git"
+
+inherit lib_package autotools-brokensep
+
+do_configure_prepend () {
+ ./scripts/git-version > VERSION
+
+ # Make automake happy
+ touch ChangeLog
+}
+
+CFLAGS_append_libc-musl = " -D__GNU_LIBRARY__"
diff --git a/meta-openembedded/meta-oe/recipes-support/log4c/log4c/0001-Use-the-API-properly-in-the-example-format-security-.patch b/meta-openembedded/meta-oe/recipes-support/log4c/log4c/0001-Use-the-API-properly-in-the-example-format-security-.patch
new file mode 100644
index 000000000..9ff9d7002
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/log4c/log4c/0001-Use-the-API-properly-in-the-example-format-security-.patch
@@ -0,0 +1,26 @@
+From 97f0b7b25474fab25f5757f7c50a77e20be5d05b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Franti=C5=A1ek=20Dvo=C5=99=C3=A1k?= <valtri@civ.zcu.cz>
+Date: Mon, 7 Sep 2015 15:00:48 +0200
+Subject: [PATCH] Use the API properly in the example (format security error
+ fixed).
+
+---
+ examples/helloworld1/mylog.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/examples/helloworld1/mylog.h b/examples/helloworld1/mylog.h
+index 280f3dc..57e5369 100644
+--- a/examples/helloworld1/mylog.h
++++ b/examples/helloworld1/mylog.h
+@@ -39,7 +39,7 @@ static LOG4C_INLINE int mylog_fini(){
+
+ static LOG4C_INLINE void mylog_msg(char *catName,int a_priority, char *msg){
+ #ifndef WITHOUT_LOG4C
+- log4c_category_log(log4c_category_get(catName), a_priority, msg);
++ log4c_category_log(log4c_category_get(catName), a_priority, "%s", msg);
+ #else
+ printf(msg);
+ #endif
+--
+2.12.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/log4c/log4c/fix_configure_with-expat.patch b/meta-openembedded/meta-oe/recipes-support/log4c/log4c/fix_configure_with-expat.patch
new file mode 100644
index 000000000..4872eb4f5
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/log4c/log4c/fix_configure_with-expat.patch
@@ -0,0 +1,21 @@
+The original use of AC_ARG_WITH is buggy and causes expat support
+to be *disabled* if "--with-expat" is passed to configure.
+
+Upstream status: pending
+
+Index: log4c-1.2.4/configure.in
+===================================================================
+--- log4c-1.2.4.orig/configure.in
++++ log4c-1.2.4/configure.in
+@@ -217,9 +217,9 @@ AC_ARG_WITH(expat,
+ have any effect and Log4C uses some bundled yacc/lex code
+ for parsing it's configuration file.
+ ]),
+- with_expat=no,
++ [],
+ with_expat=yes)
+-if test x$with_expat = xyes ; then
++if test x$with_expat != xno ; then
+ use_expat=yes
+ AM_PATH_EXPAT(1.95.1)
+ fi
diff --git a/meta-openembedded/meta-oe/recipes-support/log4c/log4c_1.2.4.bb b/meta-openembedded/meta-oe/recipes-support/log4c/log4c_1.2.4.bb
new file mode 100644
index 000000000..ef7ad847a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/log4c/log4c_1.2.4.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Log4c is a C library for flexible logging to files, syslog and other destinations"
+HOMEPAGE = "http://log4c.sourceforge.net"
+LICENSE = "LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz \
+ file://fix_configure_with-expat.patch \
+ file://0001-Use-the-API-properly-in-the-example-format-security-.patch \
+ "
+
+SRC_URI[md5sum] = "0d94919136e1d16b68427562e74cb3dd"
+SRC_URI[sha256sum] = "5991020192f52cc40fa852fbf6bbf5bd5db5d5d00aa9905c67f6f0eadeed48ea"
+
+PACKAGECONFIG ??= "expat"
+PACKAGECONFIG[expat] = "--with-expat,--without-expat,expat"
+
+BINCONFIG = "${bindir}/log4c-config"
+
+inherit autotools binconfig-disabled
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/log4cpp/files/fix-pc.patch b/meta-openembedded/meta-oe/recipes-support/log4cpp/files/fix-pc.patch
new file mode 100644
index 000000000..b8fb42e5f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/log4cpp/files/fix-pc.patch
@@ -0,0 +1,20 @@
+diff -Nurd ./log4cpp.orig/configure.in ./log4cpp/configure.in
+--- ./log4cpp.orig/configure.in 2009-09-07 16:57:46.000000000 -0400
++++ ./log4cpp/configure.in 2016-02-23 12:57:11.567240018 -0500
+@@ -130,7 +130,6 @@
+ # ----------------------------------------------------------------------------
+
+ AC_CONFIG_LIBCONFIG_IN([log4cpp])
+-AC_CONFIG_PKGCONFIG_IN([log4cpp], [C++ library for flexible logging, modeled after Log4j])
+
+ AC_CONFIG_FILES([
+ Makefile
+diff -Nurd ./log4cpp.orig/log4cpp.pc.in ./log4cpp/log4cpp.pc.in
+--- ./log4cpp.orig/log4cpp.pc.in 2004-01-27 05:24:25.000000000 -0500
++++ ./log4cpp/log4cpp.pc.in 2016-02-22 15:06:55.769327491 -0500
+@@ -7,4 +7,4 @@
+ Description: C++ library for flexible logging, modeled after Log4j
+ Version: @VERSION@
+ Libs: -L${libdir} @log4cpp_libs@
+-Cflags: -I${includedir} @log4cpp_cflags@
++Cflags: -I${includedir}
diff --git a/meta-openembedded/meta-oe/recipes-support/log4cpp/log4cpp_1.1.2.bb b/meta-openembedded/meta-oe/recipes-support/log4cpp/log4cpp_1.1.2.bb
new file mode 100644
index 000000000..dc52c9ff4
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/log4cpp/log4cpp_1.1.2.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "A library of C++ classes for flexible logging to files, syslog, IDSA and other destinations."
+HOMEPAGE = "http://sourceforge.net/projects/log4cpp/"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
+
+RC = "rc5"
+SRC_URI = "http://downloads.sourceforge.net/${BPN}/${BP}${RC}.tar.gz \
+ file://fix-pc.patch;striplevel=2 \
+ "
+SRC_URI[md5sum] = "58b4591a2f3e7ef3d5e3e7cfb3a81a62"
+SRC_URI[sha256sum] = "a611d99a20af6676c60219762771c0bfac90f4879bbde70038ece75338b588ec"
+
+S = "${WORKDIR}/${BPN}"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "\
+ --enable-doxygen=no \
+ --enable-dot=no \
+ --enable-html-docs=no \
+ --enable-latex-docs=no \
+"
diff --git a/meta-openembedded/meta-oe/recipes-support/logwarn/logwarn_1.0.14.bb b/meta-openembedded/meta-oe/recipes-support/logwarn/logwarn_1.0.14.bb
new file mode 100644
index 000000000..5ae36bb67
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/lvm2/files/0001-Avoid-bashisms-in-init-scripts.patch b/meta-openembedded/meta-oe/recipes-support/lvm2/files/0001-Avoid-bashisms-in-init-scripts.patch
new file mode 100644
index 000000000..e86ab25e6
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/lvm2/files/0001-Avoid-bashisms-in-init-scripts.patch
@@ -0,0 +1,182 @@
+From 916ea0c70fd063ab7b81f16fd917a75dc02edf4f Mon Sep 17 00:00:00 2001
+From: Peter Kjellerstedt <pkj@axis.com>
+Date: Fri, 17 Mar 2017 03:18:28 +0100
+Subject: [PATCH] Avoid bashisms in init scripts
+
+Upstream-Status: Inappropriate
+
+Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
+---
+ scripts/blk_availability_init_red_hat.in | 4 ++--
+ scripts/clvmd_init_red_hat.in | 6 +++---
+ scripts/cmirrord_init_red_hat.in | 4 ++--
+ scripts/lvm2_cluster_activation_red_hat.sh.in | 4 ++--
+ scripts/lvm2_lvmetad_init_red_hat.in | 4 ++--
+ scripts/lvm2_lvmpolld_init_red_hat.in | 4 ++--
+ scripts/lvm2_monitoring_init_red_hat.in | 4 ++--
+ scripts/lvm2_monitoring_init_rhel4 | 4 ++--
+ 8 files changed, 17 insertions(+), 17 deletions(-)
+
+diff --git a/scripts/blk_availability_init_red_hat.in b/scripts/blk_availability_init_red_hat.in
+index a84ffe7..6b855b7 100644
+--- a/scripts/blk_availability_init_red_hat.in
++++ b/scripts/blk_availability_init_red_hat.in
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+ #
+ # Copyright (C) 2012 Red Hat, Inc. All rights reserved.
+ #
+@@ -53,6 +53,6 @@ case "$1" in
+ status)
+ ;;
+ *)
+- echo $"Usage: $0 {start|stop|status}"
++ echo "Usage: $0 {start|stop|status}"
+ ;;
+ esac
+diff --git a/scripts/clvmd_init_red_hat.in b/scripts/clvmd_init_red_hat.in
+index d7f3392..abc8011 100644
+--- a/scripts/clvmd_init_red_hat.in
++++ b/scripts/clvmd_init_red_hat.in
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+ #
+ # clvmd - Clustered LVM Daemon init script
+ #
+@@ -161,7 +161,7 @@ restart() {
+ fi
+ }
+
+-[ "$EUID" != "0" ] && {
++[ "$(id -u)" != "0" ] && {
+ echo "clvmd init script can only be executed as root user"
+ exit 4
+ }
+@@ -206,7 +206,7 @@ case "$1" in
+ ;;
+
+ *)
+- echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
++ echo "Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
+ rtrn=2
+ ;;
+ esac
+diff --git a/scripts/cmirrord_init_red_hat.in b/scripts/cmirrord_init_red_hat.in
+index d4b7e37..d442cbc 100755
+--- a/scripts/cmirrord_init_red_hat.in
++++ b/scripts/cmirrord_init_red_hat.in
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+ #
+ # chkconfig: - 22 78
+ # description: Starts and stops cmirrord
+@@ -101,7 +101,7 @@ case "$1" in
+ ;;
+
+ *)
+- echo $"Usage: $0 {start|stop|restart|status}"
++ echo "Usage: $0 {start|stop|restart|status}"
+ ;;
+ esac
+
+diff --git a/scripts/lvm2_cluster_activation_red_hat.sh.in b/scripts/lvm2_cluster_activation_red_hat.sh.in
+index abea026..d8cba2e 100644
+--- a/scripts/lvm2_cluster_activation_red_hat.sh.in
++++ b/scripts/lvm2_cluster_activation_red_hat.sh.in
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+
+ sbindir=@sbindir@
+
+@@ -54,7 +54,7 @@ case "$1" in
+ rtrn=$?
+ ;;
+ *)
+- echo $"Usage: $0 {activate|deactivate}"
++ echo "Usage: $0 {activate|deactivate}"
+ rtrn=3
+ ;;
+ esac
+diff --git a/scripts/lvm2_lvmetad_init_red_hat.in b/scripts/lvm2_lvmetad_init_red_hat.in
+index b2f5d50..96269a9 100644
+--- a/scripts/lvm2_lvmetad_init_red_hat.in
++++ b/scripts/lvm2_lvmetad_init_red_hat.in
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+ #
+ # Copyright (C) 2012 Red Hat, Inc. All rights reserved.
+ #
+@@ -105,7 +105,7 @@ case "$1" in
+ ;;
+
+ *)
+- echo $"Usage: $0 {start|stop|force-stop|restart|condrestart|try-restart|status}"
++ echo "Usage: $0 {start|stop|force-stop|restart|condrestart|try-restart|status}"
+ ;;
+ esac
+
+diff --git a/scripts/lvm2_lvmpolld_init_red_hat.in b/scripts/lvm2_lvmpolld_init_red_hat.in
+index c521955..cdbaece 100644
+--- a/scripts/lvm2_lvmpolld_init_red_hat.in
++++ b/scripts/lvm2_lvmpolld_init_red_hat.in
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+ #
+ # Copyright (C) 2015 Red Hat, Inc. All rights reserved.
+ #
+@@ -107,7 +107,7 @@ case "$1" in
+ ;;
+
+ *)
+- echo $"Usage: $0 {start|stop|force-stop|restart|condrestart|try-restart|status}"
++ echo "Usage: $0 {start|stop|force-stop|restart|condrestart|try-restart|status}"
+ ;;
+ esac
+
+diff --git a/scripts/lvm2_monitoring_init_red_hat.in b/scripts/lvm2_monitoring_init_red_hat.in
+index de7ff0d..9ff6bb7 100644
+--- a/scripts/lvm2_monitoring_init_red_hat.in
++++ b/scripts/lvm2_monitoring_init_red_hat.in
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+ #
+ # Copyright (C) 2007-2009 Red Hat, Inc. All rights reserved.
+ #
+@@ -128,7 +128,7 @@ case "$1" in
+ ;;
+
+ *)
+- echo $"Usage: $0 {start|stop|restart|status|force-stop}"
++ echo "Usage: $0 {start|stop|restart|status|force-stop}"
+ ;;
+ esac
+
+diff --git a/scripts/lvm2_monitoring_init_rhel4 b/scripts/lvm2_monitoring_init_rhel4
+index 8eb06c5..2e8d0f7 100644
+--- a/scripts/lvm2_monitoring_init_rhel4
++++ b/scripts/lvm2_monitoring_init_rhel4
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+ #
+ # Copyright (C) 2007 Red Hat, Inc. All rights reserved.
+ #
+@@ -93,7 +93,7 @@ case "$1" in
+ ;;
+
+ *)
+- echo $"Usage: $0 {start|stop|restart|status|force-stop}"
++ echo "Usage: $0 {start|stop|restart|status|force-stop}"
+ ;;
+ esac
+
+--
+2.12.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/files/0001-implement-libc-specific-reopen_stream.patch b/meta-openembedded/meta-oe/recipes-support/lvm2/files/0001-implement-libc-specific-reopen_stream.patch
new file mode 100644
index 000000000..5d72402bd
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/lvm2/files/0001-implement-libc-specific-reopen_stream.patch
@@ -0,0 +1,79 @@
+From e3103459416616d3b8508e7176e897b0ae6c90f2 Mon Sep 17 00:00:00 2001
+From: Dengke Du <dengke.du@windriver.com>
+Date: Tue, 25 Oct 2016 11:49:40 +0000
+Subject: [PATCH] implement libc specific reopen_stream
+
+musl defines stdin/stdio/stderr as constant types which means
+we can not assign to them as we are doing here but works ok with glibc
+therefore abstract out the _reopen_stream definition depending upon if
+we are using glibc or otherwise
+
+Origin:
+http://git.alpinelinux.org/cgit/aports/tree/main/lvm2/fix-stdio-usage.patch
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Dengke Du <dengke.du@windriver.com>
+
+---
+ lib/log/log.c | 6 ++++++
+ tools/lvmcmdline.c | 6 +++---
+ 2 files changed, 9 insertions(+), 3 deletions(-)
+
+diff --git a/lib/log/log.c b/lib/log/log.c
+index c933154..3581084 100644
+--- a/lib/log/log.c
++++ b/lib/log/log.c
+@@ -161,6 +161,7 @@ static void _check_and_replace_standard_log_streams(FILE *old_stream, FILE *new_
+ * Close and reopen standard stream on file descriptor fd.
+ */
+ int reopen_standard_stream(FILE **stream, const char *mode)
++#ifdef __GLIBC__
+ {
+ int fd, fd_copy, new_fd;
+ const char *name;
+@@ -207,6 +208,11 @@ int reopen_standard_stream(FILE **stream, const char *mode)
+ *stream = new_stream;
+ return 1;
+ }
++#else
++{
++ return (freopen(NULL, mode, *stream) != NULL);
++}
++#endif
+
+ void init_log_fn(lvm2_log_fn_t log_fn)
+ {
+diff --git a/tools/lvmcmdline.c b/tools/lvmcmdline.c
+index 9a4deb7..f1f18e6 100644
+--- a/tools/lvmcmdline.c
++++ b/tools/lvmcmdline.c
+@@ -1818,7 +1818,7 @@ static int _check_standard_fds(void)
+ int err = is_valid_fd(STDERR_FILENO);
+
+ if (!is_valid_fd(STDIN_FILENO) &&
+- !(stdin = fopen(_PATH_DEVNULL, "r"))) {
++ !freopen(_PATH_DEVNULL, "r", stdin)) {
+ if (err)
+ perror("stdin stream open");
+ else
+@@ -1828,7 +1828,7 @@ static int _check_standard_fds(void)
+ }
+
+ if (!is_valid_fd(STDOUT_FILENO) &&
+- !(stdout = fopen(_PATH_DEVNULL, "w"))) {
++ !freopen(_PATH_DEVNULL, "w", stdout)) {
+ if (err)
+ perror("stdout stream open");
+ /* else no stdout */
+@@ -1836,7 +1836,7 @@ static int _check_standard_fds(void)
+ }
+
+ if (!is_valid_fd(STDERR_FILENO) &&
+- !(stderr = fopen(_PATH_DEVNULL, "w"))) {
++ !freopen(_PATH_DEVNULL, "w", stderr)) {
+ printf("stderr stream open: %s\n",
+ strerror(errno));
+ return 0;
+--
+2.12.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/files/0002-Guard-use-of-mallinfo-with-__GLIBC__.patch b/meta-openembedded/meta-oe/recipes-support/lvm2/files/0002-Guard-use-of-mallinfo-with-__GLIBC__.patch
new file mode 100644
index 000000000..95dcede33
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/lvm2/files/0002-Guard-use-of-mallinfo-with-__GLIBC__.patch
@@ -0,0 +1,30 @@
+From 3ae9c0b607ec33fb07f32a41e9d28cc9068dd39a Mon Sep 17 00:00:00 2001
+From: Dengke Du <dengke.du@windriver.com>
+Date: Tue, 25 Oct 2016 11:52:44 +0000
+Subject: [PATCH] Guard use of mallinfo() with __GLIBC__
+
+This API is glibc-only
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Dengke Du <dengke.du@windriver.com>
+
+---
+ lib/mm/memlock.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/mm/memlock.c b/lib/mm/memlock.c
+index da90144..f34f890 100644
+--- a/lib/mm/memlock.c
++++ b/lib/mm/memlock.c
+@@ -150,7 +150,7 @@ static void _touch_memory(void *mem, size_t size)
+
+ static void _allocate_memory(void)
+ {
+-#ifndef VALGRIND_POOL
++#if !defined(VALGRIND_POOL) && defined(__GLIBC__)
+ void *stack_mem;
+ struct rlimit limit;
+ int i, area = 0, missing = _size_malloc_tmp, max_areas = 32, hblks;
+--
+2.12.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/files/0003-include-fcntl.h-for-O_-defines-and-fcntl-signature.patch b/meta-openembedded/meta-oe/recipes-support/lvm2/files/0003-include-fcntl.h-for-O_-defines-and-fcntl-signature.patch
new file mode 100644
index 000000000..9ab1c06d2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/lvm2/files/0003-include-fcntl.h-for-O_-defines-and-fcntl-signature.patch
@@ -0,0 +1,30 @@
+From b1ad91a059d99afd1ce25823b7c0a8d3ac63d2fd Mon Sep 17 00:00:00 2001
+From: Dengke Du <dengke.du@windriver.com>
+Date: Tue, 25 Oct 2016 11:55:49 +0000
+Subject: [PATCH 3/4] include fcntl.h for O_* defines and fcntl() signature
+
+On glibc _somehow_ this header gets pulled in indirectly
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Dengke Du <dengke.du@windriver.com>
+---
+Upstream-Status: Pending
+---
+ libdaemon/server/daemon-server.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/libdaemon/server/daemon-server.c b/libdaemon/server/daemon-server.c
+index 6af6de9..a9590e7 100644
+--- a/libdaemon/server/daemon-server.c
++++ b/libdaemon/server/daemon-server.c
+@@ -18,6 +18,7 @@
+ #include "daemon-server.h"
+ #include "daemon-log.h"
+
++#include <fcntl.h>
+ #include <dlfcn.h>
+ #include <errno.h>
+ #include <pthread.h>
+--
+2.9.3
+
diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/files/0004-tweak-MODPROBE_CMD-for-cross-compile.patch b/meta-openembedded/meta-oe/recipes-support/lvm2/files/0004-tweak-MODPROBE_CMD-for-cross-compile.patch
new file mode 100644
index 000000000..aaeaa725d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/lvm2/files/0004-tweak-MODPROBE_CMD-for-cross-compile.patch
@@ -0,0 +1,38 @@
+From 0012ea63f6070a5d41fa380970f9c30b953237d2 Mon Sep 17 00:00:00 2001
+From: Dengke Du <dengke.du@windriver.com>
+Date: Tue, 25 Oct 2016 11:59:40 +0000
+Subject: [PATCH 4/4] tweak MODPROBE_CMD for cross compile
+
+Lvm uses variable MODPROBE_CMD at runtime, so build time detection of modprobe
+is incorrect.
+------
+|lvm lvcreate --thinpool wrl/pool00 --size 5556m --config devices
+{ preferred_names=["^/dev/mapper/", "^/dev/md/", "^/dev/sd"]
+filter=["r|/loop1$|","r|/loop2$|","r|/loop3$|","r|/loop4$|","r|/loop5$|","r|/loop6$|","r|/loop7$|"] }
+|tmp/sysroots/x86_64-linux/usr/bin/modprobe: execvp failed: No such file or directory
+|tmp/sysroots/x86_64-linux/usr/bin/modprobe failed: 2
+------
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+Signed-off-by: Dengke Du <dengke.du@windriver.com>
+---
+ configure.in | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/configure.in b/configure.in
+index cc77aab..a3579f2 100644
+--- a/configure.in
++++ b/configure.in
+@@ -1853,7 +1853,6 @@ if test "$UDEV_SYNC" = yes; then
+ fi
+
+ ################################################################################
+-AC_PATH_TOOL(MODPROBE_CMD, modprobe)
+
+ if test -n "$MODPROBE_CMD"; then
+ AC_DEFINE_UNQUOTED([MODPROBE_CMD], ["$MODPROBE_CMD"], [The path to 'modprobe', if available.])
+--
+2.9.3
+
diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/files/0005-do-not-build-manual.patch b/meta-openembedded/meta-oe/recipes-support/lvm2/files/0005-do-not-build-manual.patch
new file mode 100644
index 000000000..15aa9f500
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/lvm2/files/0006-start-lvm2-monitor.service-after-tmp.mount.patch b/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/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/meta-openembedded/meta-oe/recipes-support/lvm2/files/lvm.conf b/meta-openembedded/meta-oe/recipes-support/lvm2/files/lvm.conf
new file mode 100644
index 000000000..c2bb85d8b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/lvm2/files/lvm.conf
@@ -0,0 +1,326 @@
+# This is an example configuration file for the LVM2 system.
+# It contains the default settings that would be used if there was no
+# /etc/lvm/lvm.conf file.
+#
+# Refer to 'man lvm.conf' for further information including the file layout.
+#
+# To put this file in a different directory and override /etc/lvm set
+# the environment variable LVM_SYSTEM_DIR before running the tools.
+
+
+# This section allows you to configure which block devices should
+# be used by the LVM system.
+devices {
+
+ # Where do you want your volume groups to appear ?
+ dir = "/dev"
+
+ # An array of directories that contain the device nodes you wish
+ # to use with LVM2.
+ scan = [ "/dev" ]
+
+ # A filter that tells LVM2 to only use a restricted set of devices.
+ # The filter consists of an array of regular expressions. These
+ # expressions can be delimited by a character of your choice, and
+ # prefixed with either an 'a' (for accept) or 'r' (for reject).
+ # The first expression found to match a device name determines if
+ # the device will be accepted or rejected (ignored). Devices that
+ # don't match any patterns are accepted.
+
+ # Be careful if there there are symbolic links or multiple filesystem
+ # entries for the same device as each name is checked separately against
+ # the list of patterns. The effect is that if any name matches any 'a'
+ # pattern, the device is accepted; otherwise if any name matches any 'r'
+ # pattern it is rejected; otherwise it is accepted.
+
+ # Don't have more than one filter line active at once: only one gets used.
+
+ # Run vgscan after you change this parameter to ensure that
+ # the cache file gets regenerated (see below).
+ # If it doesn't do what you expect, check the output of 'vgscan -vvvv'.
+
+
+ # By default we accept every block device:
+ filter = [ "a/.*/" ]
+
+ # Exclude the cdrom drive
+ # filter = [ "r|/dev/cdrom|" ]
+
+ # When testing I like to work with just loopback devices:
+ # filter = [ "a/loop/", "r/.*/" ]
+
+ # Or maybe all loops and ide drives except hdc:
+ # filter =[ "a|loop|", "r|/dev/hdc|", "a|/dev/ide|", "r|.*|" ]
+
+ # Use anchors if you want to be really specific
+ # filter = [ "a|^/dev/hda8$|", "r/.*/" ]
+
+ # The results of the filtering are cached on disk to avoid
+ # rescanning dud devices (which can take a very long time). By
+ # default this cache file is hidden in the /etc/lvm directory.
+ # It is safe to delete this file: the tools regenerate it.
+ cache = "/etc/lvm/.cache"
+
+ # You can turn off writing this cache file by setting this to 0.
+ write_cache_state = 1
+
+ # Advanced settings.
+
+ # List of pairs of additional acceptable block device types found
+ # in /proc/devices with maximum (non-zero) number of partitions.
+ # types = [ "fd", 16 ]
+
+ # If sysfs is mounted (2.6 kernels) restrict device scanning to
+ # the block devices it believes are valid.
+ # 1 enables; 0 disables.
+ sysfs_scan = 1
+
+ # By default, LVM2 will ignore devices used as components of
+ # software RAID (md) devices by looking for md superblocks.
+ # 1 enables; 0 disables.
+ md_component_detection = 1
+}
+
+# This section that allows you to configure the nature of the
+# information that LVM2 reports.
+log {
+
+ # Controls the messages sent to stdout or stderr.
+ # There are three levels of verbosity, 3 being the most verbose.
+ verbose = 0
+
+ # Should we send log messages through syslog?
+ # 1 is yes; 0 is no.
+ syslog = 1
+
+ # Should we log error and debug messages to a file?
+ # By default there is no log file.
+ #file = "/var/log/lvm2.log"
+
+ # Should we overwrite the log file each time the program is run?
+ # By default we append.
+ overwrite = 0
+
+ # What level of log messages should we send to the log file and/or syslog?
+ # There are 6 syslog-like log levels currently in use - 2 to 7 inclusive.
+ # 7 is the most verbose (LOG_DEBUG).
+ level = 0
+
+ # Format of output messages
+ # Whether or not (1 or 0) to indent messages according to their severity
+ indent = 1
+
+ # Whether or not (1 or 0) to display the command name on each line output
+ command_names = 0
+
+ # A prefix to use before the message text (but after the command name,
+ # if selected). Default is two spaces, so you can see/grep the severity
+ # of each message.
+ prefix = " "
+
+ # To make the messages look similar to the original LVM tools use:
+ # indent = 0
+ # command_names = 1
+ # prefix = " -- "
+
+ # Set this if you want log messages during activation.
+ # Don't use this in low memory situations (can deadlock).
+ # activation = 0
+}
+
+# Configuration of metadata backups and archiving. In LVM2 when we
+# talk about a 'backup' we mean making a copy of the metadata for the
+# *current* system. The 'archive' contains old metadata configurations.
+# Backups are stored in a human readeable text format.
+backup {
+
+ # Should we maintain a backup of the current metadata configuration ?
+ # Use 1 for Yes; 0 for No.
+ # Think very hard before turning this off!
+ backup = 1
+
+ # Where shall we keep it ?
+ # Remember to back up this directory regularly!
+ backup_dir = "/etc/lvm/backup"
+
+ # Should we maintain an archive of old metadata configurations.
+ # Use 1 for Yes; 0 for No.
+ # On by default. Think very hard before turning this off.
+ archive = 1
+
+ # Where should archived files go ?
+ # Remember to back up this directory regularly!
+ archive_dir = "/etc/lvm/archive"
+
+ # What is the minimum number of archive files you wish to keep ?
+ retain_min = 10
+
+ # What is the minimum time you wish to keep an archive file for ?
+ retain_days = 30
+}
+
+# Settings for the running LVM2 in shell (readline) mode.
+shell {
+
+ # Number of lines of history to store in ~/.lvm_history
+ history_size = 100
+}
+
+
+# Miscellaneous global LVM2 settings
+global {
+
+ # The file creation mask for any files and directories created.
+ # Interpreted as octal if the first digit is zero.
+ umask = 077
+
+ # Allow other users to read the files
+ #umask = 022
+
+ # Enabling test mode means that no changes to the on disk metadata
+ # will be made. Equivalent to having the -t option on every
+ # command. Defaults to off.
+ test = 0
+
+ # Whether or not to communicate with the kernel device-mapper.
+ # Set to 0 if you want to use the tools to manipulate LVM metadata
+ # without activating any logical volumes.
+ # If the device-mapper kernel driver is not present in your kernel
+ # setting this to 0 should suppress the error messages.
+ activation = 1
+
+ # If we can't communicate with device-mapper, should we try running
+ # the LVM1 tools?
+ # This option only applies to 2.4 kernels and is provided to help you
+ # switch between device-mapper kernels and LVM1 kernels.
+ # The LVM1 tools need to be installed with .lvm1 suffices
+ # e.g. vgscan.lvm1 and they will stop working after you start using
+ # the new lvm2 on-disk metadata format.
+ # The default value is set when the tools are built.
+ # fallback_to_lvm1 = 0
+
+ # The default metadata format that commands should use - "lvm1" or "lvm2".
+ # The command line override is -M1 or -M2.
+ # Defaults to "lvm1" if compiled in, else "lvm2".
+ # format = "lvm1"
+
+ # Location of proc filesystem
+ proc = "/proc"
+
+ # Type of locking to use. Defaults to file-based locking (1).
+ # Turn locking off by setting to 0 (dangerous: risks metadata corruption
+ # if LVM2 commands get run concurrently).
+ locking_type = 1
+
+ # 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 = "/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
+ # format_libraries = "liblvm2format1.so"
+ # Full pathnames can be given.
+
+ # Search this directory first for shared libraries.
+ # library_dir = "/lib"
+}
+
+activation {
+ # Device used in place of missing stripes if activating incomplete volume.
+ # For now, you need to set this up yourself first (e.g. with 'dmsetup')
+ # For example, you could make it return I/O errors using the 'error'
+ # target or make it return zeros.
+ missing_stripe_filler = "/dev/ioerror"
+
+ # Size (in KB) of each copy operation when mirroring
+ mirror_region_size = 512
+
+ # How much stack (in KB) to reserve for use while devices suspended
+ reserved_stack = 256
+
+ # How much memory (in KB) to reserve for use while devices suspended
+ reserved_memory = 8192
+
+ # Nice value used while devices suspended
+ process_priority = -18
+
+ # If volume_list is defined, each LV is only activated if there is a
+ # match against the list.
+ # "vgname" and "vgname/lvname" are matched exactly.
+ # "@tag" matches any tag set in the LV or VG.
+ # "@*" matches if any tag defined on the host is also set in the LV or VG
+ #
+ # volume_list = [ "vg1", "vg2/lvol1", "@tag1", "@*" ]
+}
+
+
+####################
+# Advanced section #
+####################
+
+# Metadata settings
+#
+# metadata {
+ # Default number of copies of metadata to hold on each PV. 0, 1 or 2.
+ # You might want to override it from the command line with 0
+ # when running pvcreate on new PVs which are to be added to large VGs.
+
+ # pvmetadatacopies = 1
+
+ # Approximate default size of on-disk metadata areas in sectors.
+ # You should increase this if you have large volume groups or
+ # you want to retain a large on-disk history of your metadata changes.
+
+ # pvmetadatasize = 255
+
+ # List of directories holding live copies of text format metadata.
+ # These directories must not be on logical volumes!
+ # It's possible to use LVM2 with a couple of directories here,
+ # preferably on different (non-LV) filesystems, and with no other
+ # on-disk metadata (pvmetadatacopies = 0). Or this can be in
+ # addition to on-disk metadata areas.
+ # The feature was originally added to simplify testing and is not
+ # supported under low memory situations - the machine could lock up.
+ #
+ # Never edit any files in these directories by hand unless you
+ # you are absolutely sure you know what you are doing! Use
+ # the supplied toolset to make changes (e.g. vgcfgrestore).
+
+ # dirs = [ "/etc/lvm/metadata", "/mnt/disk2/lvm/metadata2" ]
+#}
+
+# Event daemon
+#
+dmeventd {
+ # mirror_library is the library used when monitoring a mirror device.
+ #
+ # "libdevmapper-event-lvm2mirror.so" attempts to recover from
+ # failures. It removes failed devices from a volume group and
+ # reconfigures a mirror as necessary. If no mirror library is
+ # provided, mirrors are not monitored through dmeventd.
+
+ mirror_library = "@libdir@/device-mapper/libdevmapper-event-lvm2mirror.so"
+
+ # snapshot_library is the library used when monitoring a snapshot device.
+ #
+ # "libdevmapper-event-lvm2snapshot.so" monitors the filling of
+ # snapshots and emits a warning through syslog when the use of
+ # the snapshot exceeds 80%. The warning is repeated when 85%, 90% and
+ # 95% of the snapshot is filled.
+
+ snapshot_library = "@libdir@/device-mapper/libdevmapper-event-lvm2snapshot.so"
+
+ # thin_library is the library used when monitoring a thin device.
+ #
+ # "libdevmapper-event-lvm2thin.so" monitors the filling of
+ # pool and emits a warning through syslog when the use of
+ # the pool exceeds 80%. The warning is repeated when 85%, 90% and
+ # 95% of the pool is filled.
+
+ thin_library = "@libdir@/device-mapper/libdevmapper-event-lvm2thin.so"
+
+ # Full path of the dmeventd binary.
+ #
+ # executable = "@DMEVENTD_PATH@"
+}
+
diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.02.171.bb b/meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.02.171.bb
new file mode 100644
index 000000000..b6ae90240
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc b/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc
new file mode 100644
index 000000000..289e07d8d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc
@@ -0,0 +1,60 @@
+HOMEPAGE = "https://www.sourceware.org/lvm2/"
+SECTION = "utils"
+DESCRIPTION = "LVM2 is a set of utilities to manage logical volumes in Linux."
+LICENSE = "GPLv2 & LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=12713b4d9386533feeb07d6e4831765a \
+ file://COPYING.LIB;md5=fbc093901857fcd118f065f900982c24"
+
+DEPENDS += "util-linux"
+
+SRC_URI = "ftp://sources.redhat.com/pub/lvm2/old/LVM2.${PV}.tgz \
+ file://lvm.conf \
+ file://0001-implement-libc-specific-reopen_stream.patch \
+ file://0002-Guard-use-of-mallinfo-with-__GLIBC__.patch \
+ file://0003-include-fcntl.h-for-O_-defines-and-fcntl-signature.patch \
+ file://0004-tweak-MODPROBE_CMD-for-cross-compile.patch \
+ file://0001-Avoid-bashisms-in-init-scripts.patch \
+ file://0005-do-not-build-manual.patch \
+ file://0006-start-lvm2-monitor.service-after-tmp.mount.patch \
+ "
+S = "${WORKDIR}/LVM2.${PV}"
+
+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 ??= "odirect ${LVM2_PACKAGECONFIG}"
+
+PACKAGECONFIG[dmeventd] = "--enable-dmeventd,--disable-dmeventd"
+PACKAGECONFIG[lvmetad] = "--enable-lvmetad,--disable-lvmetad"
+PACKAGECONFIG[odirect] = "--enable-o_direct,--disable-o_direct"
+PACKAGECONFIG[readline] = "--enable-readline,--disable-readline,readline"
+PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux"
+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/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-explicitly-do-not-install-libdm.patch b/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-explicitly-do-not-install-libdm.patch
new file mode 100644
index 000000000..e85818dbd
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.02.171.bb b/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.02.171.bb
new file mode 100644
index 000000000..84881e744
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.02.171.bb
@@ -0,0 +1,54 @@
+require lvm2.inc
+
+SRC_URI[md5sum] = "153b7bb643eb26073274968e9026fa8f"
+SRC_URI[sha256sum] = "b815a711a2fabaa5c3dc1a4a284df0268bf0f325f0fc0f5c9530c9bbb54b9964"
+
+SRC_URI += "file://0001-explicitly-do-not-install-libdm.patch"
+
+DEPENDS += "autoconf-archive-native"
+
+CACHED_CONFIGUREVARS += "MODPROBE_CMD=${base_sbindir}/modprobe"
+
+do_install_append() {
+ # Install machine specific configuration file
+ install -d ${D}${sysconfdir}/lvm
+ install -m 0644 ${WORKDIR}/lvm.conf ${D}${sysconfdir}/lvm/lvm.conf
+ sed -i -e 's:@libdir@:${libdir}:g' ${D}${sysconfdir}/lvm/lvm.conf
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ oe_runmake 'DESTDIR=${D}' install install_systemd_units
+ sed -i -e 's:/usr/bin/true:${base_bindir}/true:g' ${D}${systemd_system_unitdir}/blk-availability.service
+ else
+ oe_runmake 'DESTDIR=${D}' install install_initscripts
+ mv ${D}${sysconfdir}/rc.d/init.d ${D}${sysconfdir}/init.d
+ rm -rf ${D}${sysconfdir}/rc.d
+ fi
+}
+
+PACKAGE_BEFORE_PN = "${PN}-scripts ${PN}-udevrules"
+
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE_${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'dmeventd', 'lvm2-monitor.service dm-event.socket dm-event.service', '', d)} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'lvmetad', 'lvm2-lvmetad.socket lvm2-pvscan@.service', '', d)} \
+ blk-availability.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+FILES_${PN} += "${libdir}/device-mapper/*.so"
+FILES_${PN}-scripts = " \
+ ${sbindir}/blkdeactivate \
+ ${sbindir}/fsadm \
+ ${sbindir}/lvmconf \
+ ${sbindir}/lvmdump \
+"
+# Specified explicitly for the udev rules, just in case that it does not get picked
+# up automatically:
+FILES_${PN}-udevrules = "${nonarch_base_libdir}/udev/rules.d"
+RDEPENDS_${PN}_append_class-target = " libdevmapper"
+
+RDEPENDS_${PN}-scripts = "${PN} (= ${EXTENDPKGV}) bash"
+RRECOMMENDS_${PN}_class-target = "${PN}-scripts (= ${EXTENDPKGV})"
+
+CONFFILES_${PN} += "${sysconfdir}/lvm/lvm.conf"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-support/mailcap/mailcap_2.1.48.bb b/meta-openembedded/meta-oe/recipes-support/mailcap/mailcap_2.1.48.bb
new file mode 100644
index 000000000..114ce4607
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/mailcap/mailcap_2.1.48.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Helper application and MIME type associations for file types"
+HOMEPAGE = "https://pagure.io/mailcap"
+DESCRIPTION = "The mailcap file is used by the metamail program. Metamail reads the \
+mailcap file to determine how it should display non-text or multimedia \
+material. Basically, mailcap associates a particular type of file \
+with a particular program that a mail agent or other program can call \
+in order to handle the file. Mailcap should be installed to allow \
+certain programs to be able to handle non-text files. \
+\
+Also included in this package is the mime.types file which contains a \
+list of MIME types and their filename extension associations, used \
+by several applications e.g. to determine MIME types for filenames."
+
+SECTION = "System Environment/Base"
+
+LICENSE = "PD & MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=100fcfb84512ccc03ffc7d89ac391305"
+
+SRC_URI = "https://releases.pagure.org/${BPN}/${BP}.tar.xz"
+
+SRC_URI[md5sum] = "2c26e18e912a5cf00318fcf7f8f2d747"
+SRC_URI[sha256sum] = "d7b023b237d6053bf05ff6786e0663c55c614efcc99cdf856120be13b5c29157"
+
+do_install() {
+ oe_runmake install DESTDIR=${D} sysconfdir=${sysconfdir} mandir=${mandir}
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/mbuffer/mbuffer_20140310.bb b/meta-openembedded/meta-oe/recipes-support/mbuffer/mbuffer_20140310.bb
new file mode 100644
index 000000000..3467d2898
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/mbuffer/mbuffer_20140310.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "mbuffer is a tool for buffering data streams with a large set of unique features."
+HOMEPAGE = "http://www.maier-komor.de/mbuffer.html"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d32239bcb673463ab874e80d47fae504"
+SECTION = "console/network"
+
+SRC_URI = " \
+ http://www.maier-komor.de/software/mbuffer/mbuffer-20140310.tgz \
+"
+
+SRC_URI[md5sum] = "9937d7f666c19a2e6b2499b04dbecc44"
+SRC_URI[sha256sum] = "ab90b6fdce16db2bf08bcda0bc5d2bfb053a9a163d2a24f95fbf246460549b99"
+
+inherit autotools
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[md5] = "--enable-md5,--disable-md5,openssl"
+
+do_configure() {
+ ( cd ${S}; gnu-configize )
+ oe_runconf
+}
+
diff --git a/meta-openembedded/meta-oe/recipes-support/mcelog/mce-inject_git.bb b/meta-openembedded/meta-oe/recipes-support/mcelog/mce-inject_git.bb
new file mode 100644
index 000000000..f87614491
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/mcelog/mce-inject_git.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Linux machine check injector tool"
+DESCRIPTION = "mce-inject allows to inject machine check errors on the \
+software level into a running Linux kernel. This is intended for \
+validation of the kernel machine check handler."
+SECTION = "System Environment/Base"
+
+SRC_URI = "git://git.kernel.org/pub/scm/utils/cpu/mce/mce-inject.git"
+
+SRCREV = "4cbe46321b4a81365ff3aafafe63967264dbfec5"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://README;beginline=30;md5=94c18755082a2da9c9cf97cba3ad47d6"
+
+S = "${WORKDIR}/git"
+
+COMPATIBLE_HOST = '(x86_64.*|i.86.*)-linux'
+
+inherit autotools-brokensep
+
+EXTRA_OEMAKE = "destdir=${D}"
diff --git a/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog/run-ptest b/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog/run-ptest
new file mode 100644
index 000000000..ba7a2c768
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+make -C tests test
diff --git a/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_1.49.bb b/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_1.49.bb
new file mode 100644
index 000000000..84633a76c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_1.49.bb
@@ -0,0 +1,35 @@
+SUMMARY = "mcelog daemon accounts memory and some other errors in various ways."
+DESCRIPTION = "mcelog is required by both 32bit x86 Linux kernels (since 2.6.30) \
+and 64bit Linux kernels (since early 2.6 kernel releases) to log machine checks \
+and should run on all Linux systems that need error handling."
+HOMEPAGE = "http://mcelog.org/"
+SECTION = "System Environment/Base"
+
+SRC_URI = "git://git.kernel.org/pub/scm/utils/cpu/mce/mcelog.git;protocol=http; \
+ file://run-ptest \
+"
+
+SRCREV = "2cfdf29b2ef98ccd5ed42cdde8bbe437e0d6412f"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://README.md;md5=279840fabb191e6cd9150492d31b0e20"
+
+S = "${WORKDIR}/git"
+
+inherit autotools-brokensep ptest
+
+COMPATIBLE_HOST = '(x86_64.*|i.86.*)-linux'
+
+do_install_append() {
+ install -d ${D}${sysconfdir}/cron.hourly
+ install -m 0755 ${S}/mcelog.cron ${D}${sysconfdir}/cron.hourly/
+ sed -i 's/bash/sh/' ${D}${sysconfdir}/cron.hourly/mcelog.cron
+}
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}
+ cp -r ${S}/tests ${S}/input ${D}${PTEST_PATH}
+ sed -i 's#../../mcelog#mcelog#' ${D}${PTEST_PATH}/tests/test
+}
+
+RDEPENDS_${PN}-ptest += "${PN} make bash mce-inject"
diff --git a/meta-openembedded/meta-oe/recipes-support/mg/mg/0001-Undefine-REGEX-for-musl-based-systems.patch b/meta-openembedded/meta-oe/recipes-support/mg/mg/0001-Undefine-REGEX-for-musl-based-systems.patch
new file mode 100644
index 000000000..130267931
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/mg/mg/0001-Undefine-REGEX-for-musl-based-systems.patch
@@ -0,0 +1,39 @@
+From a370ccd9447752c555aeca04f64021efedde4db3 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 7 Apr 2017 17:16:19 -0700
+Subject: [PATCH] Undefine REGEX for musl based systems
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ GNUmakefile | 1 -
+ Makefile | 2 +-
+ 2 files changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/GNUmakefile b/GNUmakefile
+index 7bf7dca..0e10030 100644
+--- a/GNUmakefile
++++ b/GNUmakefile
+@@ -41,7 +41,6 @@ endif
+ CC?= gcc
+ CFLAGS?= -O2 -pipe
+ CFLAGS+= -g -Wall
+-CPPFLAGS= -DREGEX
+ CPPFLAGS+= -D_GNU_SOURCE
+ CPPFLAGS+= $(BSD_CPPFLAGS) -D__dead=__dead2
+ LIBS= $(CURSES_LIBS) $(BSD_LIBS)
+diff --git a/Makefile b/Makefile
+index 94ce340..d516bbc 100644
+--- a/Makefile
++++ b/Makefile
+@@ -10,7 +10,7 @@ DPADD+= ${LIBCURSES} ${LIBUTIL}
+ # REGEX -- create regular expression functions.
+ # STARTUPFILE -- look for and handle initialization file.
+ #
+-CFLAGS+=-Wall -DREGEX
++CFLAGS+=-Wall
+
+ SRCS= autoexec.c basic.c bell.c buffer.c cinfo.c dir.c display.c \
+ echo.c extend.c file.c fileio.c funmap.c help.c kbd.c keymap.c \
+--
+2.12.2
+
diff --git a/meta-openembedded/meta-oe/recipes-support/mg/mg/0001-fileio-Include-sys-param.h-for-MAXNAMLEN.patch b/meta-openembedded/meta-oe/recipes-support/mg/mg/0001-fileio-Include-sys-param.h-for-MAXNAMLEN.patch
new file mode 100644
index 000000000..551f1df16
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/mg/mg/0001-fileio-Include-sys-param.h-for-MAXNAMLEN.patch
@@ -0,0 +1,25 @@
+From 51539bcd2ee9f765595c0be16eebc1daee112b27 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 7 Apr 2017 16:52:59 -0700
+Subject: [PATCH 1/2] fileio: Include sys/param.h for MAXNAMLEN
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ fileio.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/fileio.c b/fileio.c
+index 48a67a2..9b69665 100644
+--- a/fileio.c
++++ b/fileio.c
+@@ -12,6 +12,7 @@
+ #include <sys/time.h>
+ #include <sys/types.h>
+ #include <sys/wait.h>
++#include <sys/param.h>
+ #include <dirent.h>
+ #include <errno.h>
+ #include <fcntl.h>
+--
+2.12.2
+
diff --git a/meta-openembedded/meta-oe/recipes-support/mg/mg/0002-fileio-Define-DEFFILEMODE-if-platform-is-missing.patch b/meta-openembedded/meta-oe/recipes-support/mg/mg/0002-fileio-Define-DEFFILEMODE-if-platform-is-missing.patch
new file mode 100644
index 000000000..907d67064
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/mg/mg/0002-fileio-Define-DEFFILEMODE-if-platform-is-missing.patch
@@ -0,0 +1,28 @@
+From ce24a29cabb8f1774d262e120e5764a2afeb3825 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 7 Apr 2017 16:53:49 -0700
+Subject: [PATCH 2/2] fileio: Define DEFFILEMODE if platform is missing
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ fileio.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/fileio.c b/fileio.c
+index 9b69665..a852fd2 100644
+--- a/fileio.c
++++ b/fileio.c
+@@ -28,6 +28,10 @@
+ #include "kbd.h"
+ #include "pathnames.h"
+
++#if !defined(DEFFILEMODE)
++# define DEFFILEMODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)/* 0666*/
++#endif
++
+ static char *bkuplocation(const char *);
+ static int bkupleavetmp(const char *);
+
+--
+2.12.2
+
diff --git a/meta-openembedded/meta-oe/recipes-support/mg/mg_20170401.bb b/meta-openembedded/meta-oe/recipes-support/mg/mg_20170401.bb
new file mode 100644
index 000000000..dad1d008b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/mg/mg_20170401.bb
@@ -0,0 +1,37 @@
+SUMMARY = "A portable version of the mg maintained by the OpenBSD team"
+HOMEPAGE = "http://homepage.boetes.org/software/mg/"
+LICENSE = "PD"
+LIC_FILES_CHKSUM = "file://version.c;md5=1895eb37bf6bd79cdc5c89d8166fabfb"
+DEPENDS = "ncurses libbsd"
+SECTION = "console/editors"
+
+SRC_URI = "http://homepage.boetes.org/software/mg/mg-${PV}.tar.gz \
+ file://0001-fileio-Include-sys-param.h-for-MAXNAMLEN.patch \
+ file://0002-fileio-Define-DEFFILEMODE-if-platform-is-missing.patch \
+ "
+SRC_URI_append_libc-musl = "\
+ file://0001-Undefine-REGEX-for-musl-based-systems.patch \
+ "
+SRC_URI[md5sum] = "884388589fb38c2109ad9fed328be20a"
+SRC_URI[sha256sum] = "0a3608b17c153960cb1d954ca3b62445a77c0c1a18aa5c8c58aba9f6b8d62aab"
+
+# CFLAGS isn't in EXTRA_OEMAKE, as the makefile picks it up via ?=
+EXTRA_OEMAKE = "\
+ 'CC=${CC}' \
+ 'LDFLAGS=${LDFLAGS}' \
+ \
+ 'prefix=${prefix}' \
+ 'bindir=${bindir}' \
+ 'libdir=${libdir}' \
+ 'includedir=${includedir}' \
+ 'mandir=${mandir}' \
+ 'PKG_CONFIG=pkg-config' \
+"
+
+CFLAGS += "-I${STAGING_INCDIR}/bsd"
+
+do_install () {
+ oe_runmake install DESTDIR=${D}
+}
+
+inherit pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-support/mime-support/mime-support_3.48.bb b/meta-openembedded/meta-oe/recipes-support/mime-support/mime-support_3.48.bb
new file mode 100644
index 000000000..d617b6620
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/mime-support/mime-support_3.48.bb
@@ -0,0 +1,58 @@
+SECTION = "base"
+SUMMARY = "MIME files 'mime.types' & 'mailcap', and support programs"
+LICENSE = "PD"
+LIC_FILES_CHKSUM = "file://debian/README;md5=36bbe2ace0a05c3fb684b73208fbf30b"
+
+DEPENDS = "file"
+RDEPENDS_${PN} = "perl"
+RRECOMMENDS_${PN} = "file"
+
+SRC_URI = "${DEBIAN_MIRROR}/main/m/mime-support/mime-support_${PV}-1.tar.gz"
+S = "${WORKDIR}/${BPN}"
+
+FILES_${PN} += " ${libdir}/mime"
+
+docdir_append = "/${BPN}"
+
+do_install () {
+ install -d ${D}${sysconfdir}
+ install -d ${D}${libdir}/mime/packages
+ install -d ${D}${docdir}
+ install -d ${D}${sbindir}
+ install -d ${D}${bindir}
+ install -d ${D}${mandir}/man1
+ install -d ${D}${mandir}/man5
+ install -d ${D}${mandir}/man8
+ install -m 644 mime.types ${D}${sysconfdir}/
+ install -m 644 mailcap ${D}${libdir}/mime/
+ install -m 644 mailcap.order ${D}${sysconfdir}/
+ install -m 644 mailcap.man ${D}${mandir}/man5/mailcap.5
+ install -m 644 mailcap.order.man ${D}${mandir}/man5/mailcap.order.5
+# install -m 755 install-mime ${D}${sbindir}/
+# install -m 644 install-mime.man ${D}${mandir}/man8/install-mime.8
+ install -m 755 update-mime ${D}${sbindir}/
+ install -m 644 update-mime.man ${D}${mandir}/man8/update-mime.8
+ install -m 755 run-mailcap ${D}${bindir}/
+ install -m 644 run-mailcap.man ${D}${mandir}/man1/run-mailcap.1
+# install -m 644 rfcs/* ${D}${docdir}/
+ install -m 644 debian/changelog ${D}${docdir}/changelog.Debian
+ install -m 644 debian/README ${D}${docdir}/copyright
+ install -m 755 debian-view ${D}${libdir}/mime/
+ install -m 755 playaudio ${D}${libdir}/mime/
+ install -m 755 playdsp ${D}${libdir}/mime/
+ install -m 644 mailcap.entries ${D}${libdir}/mime/packages/mime-support
+ cd ${D}${mandir}; gzip -9fv */*
+ cd ${D}${docdir}; gzip -9v *
+ cd ${D}${docdir}; gunzip copyright.gz
+ cd ${D}${bindir}; ln -s run-mailcap see
+ cd ${D}${bindir}; ln -s run-mailcap edit
+ cd ${D}${bindir}; ln -s run-mailcap compose
+ cd ${D}${bindir}; ln -s run-mailcap print
+ cd ${D}${mandir}/man1; ln -s run-mailcap.1.gz see.1.gz
+ cd ${D}${mandir}/man1; ln -s run-mailcap.1.gz edit.1.gz
+ cd ${D}${mandir}/man1; ln -s run-mailcap.1.gz compose.1.gz
+ cd ${D}${mandir}/man1; ln -s run-mailcap.1.gz print.1.gz
+}
+
+SRC_URI[md5sum] = "d6e5d715e331147352c50c158dbdec6d"
+SRC_URI[sha256sum] = "a529c7892cb786f514af71f4ca5a4c3ebc58b538a49ff959c0d97592d38f040a"
diff --git a/meta-openembedded/meta-oe/recipes-support/mini-iconv/mini-iconv.bb b/meta-openembedded/meta-oe/recipes-support/mini-iconv/mini-iconv.bb
new file mode 100644
index 000000000..0f1548aa2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/mini-iconv/mini-iconv.bb
@@ -0,0 +1,20 @@
+# Copyright (C) 2012 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "A minimal iconv implementation w/ support for UTF-8, ASCII, ISO-8859-1"
+HOMEPAGE = "http://tinderbox.dev.gentoo.org/portage/local/misc/mini-iconv/"
+LICENSE = "MPL-1.1"
+SECTION = "libs"
+DEPENDS = ""
+PROVIDES = "virtual/libiconv"
+LIC_FILES_CHKSUM = "file://iconv.c;beginline=1;endline=6;md5=35af9d9924327fe8a0a1fe3a2cb454c8"
+SRC_URI = "http://mirror.meleeweb.net/pub/linux/gentoo/distfiles/mini-iconv.tar.bz2"
+SRC_URI[md5sum] = "84412221e26505a2b3855d4a1cdcd0e0"
+SRC_URI[sha256sum] = "3552262bf1bcf8e859a2a3a7adfb0367af8593383e730c492e981477aac0a0d4"
+
+
+S = "${WORKDIR}/${PN}"
+
+do_install() {
+ oe_runmake install DESTDIR=${D} PREFIX=${prefix} LIB=${base_libdir}
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/minini/minini_1.2.b.bb b/meta-openembedded/meta-oe/recipes-support/minini/minini_1.2.b.bb
new file mode 100644
index 000000000..4a73f1212
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/minini/minini_1.2.b.bb
@@ -0,0 +1,39 @@
+SUMMARY = "A minimal INI file parser"
+DESCRIPTION = "minIni is a programmer's library to read and write INI files in \
+embedded systems. minIni takes little resources, has a deterministic memory \
+footprint and can be configured for various kinds of file I/O libraries. minIni \
+provides functionality for reading, writing and deleting keys from an INI file, \
+all in 830 lines of (commented) source code (version 1.2) in C (the code also \
+compiles in C++ and comes with a wrapper class)."
+HOMEPAGE = "https://code.google.com/p/minini/"
+
+# License is Apache 2.0 with an exception to allow object code built from
+# unmodified original sources to be distributed more freely. See LICENSE
+# file for details.
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=eb21481ad45c5578ae8c8d37b8c8d76d"
+
+SRC_URI = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/minini/minIni_12b.zip;subdir=${BP}"
+
+SRC_URI[md5sum] = "32740621098e3f0a321c7c23f4bcbc5d"
+SRC_URI[sha256sum] = "b08839af74acb36061fb76e1123bf56711bc5cf7a08b32e189b0ad78a2e888e2"
+
+do_configure[noexec] = "1"
+
+do_compile() {
+ ${CC} ${CFLAGS} -fPIC -c minIni.c -o minIni.o
+ ${CC} ${LDFLAGS} -shared -Wl,-soname,libminini.so.0 minIni.o -o libminini.so.0.0
+}
+
+do_install () {
+
+ install -d ${D}${libdir}
+ install -m 0644 libminini.so.0.0 ${D}${libdir}/
+ ln -s libminini.so.0.0 ${D}${libdir}/libminini.so
+ ln -s libminini.so.0.0 ${D}${libdir}/libminini.so.0
+
+ install -d ${D}${includedir}/minini
+ install -m 0644 minIni.h ${D}${includedir}/minini/
+ install -m 0644 minGlue-stdio.h ${D}${includedir}/minini/minGlue.h
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-kpartx-include-limits.h-for-PATH_MAX.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-kpartx-include-limits.h-for-PATH_MAX.patch
new file mode 100644
index 000000000..46dd8e23b
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-multipath-attempt-at-common-multipath.rules.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-multipath-attempt-at-common-multipath.rules.patch
new file mode 100644
index 000000000..acb426954
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0002-RH-fixup-udev-rules-for-redhat.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0002-RH-fixup-udev-rules-for-redhat.patch
new file mode 100644
index 000000000..e63d2eb33
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0003-RH-Remove-the-property-blacklist-exception-builtin.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0003-RH-Remove-the-property-blacklist-exception-builtin.patch
new file mode 100644
index 000000000..684e959d6
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0004-RH-don-t-start-without-a-config-file.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0004-RH-don-t-start-without-a-config-file.patch
new file mode 100644
index 000000000..87a6d3fb6
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0005-RH-add-mpathconf.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0005-RH-add-mpathconf.patch
new file mode 100644
index 000000000..acef41023
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0006-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0006-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch
new file mode 100644
index 000000000..dc291b812
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0007-RH-trigger-change-uevent-on-new-device-creation.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0007-RH-trigger-change-uevent-on-new-device-creation.patch
new file mode 100644
index 000000000..025a3512e
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0008-libmultipath-change-how-RADOS-checker-is-enabled.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0008-libmultipath-change-how-RADOS-checker-is-enabled.patch
new file mode 100644
index 000000000..f67880993
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0009-multipath-set-verbosity-to-default-during-config.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0009-multipath-set-verbosity-to-default-during-config.patch
new file mode 100644
index 000000000..17d2d9179
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0010-mpath-skip-device-configs-without-vendor-product.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0010-mpath-skip-device-configs-without-vendor-product.patch
new file mode 100644
index 000000000..396b6d32e
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0011-multipathd-fix-show-maps-json-crash.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0011-multipathd-fix-show-maps-json-crash.patch
new file mode 100644
index 000000000..12d6d38a7
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0012-multipath-tools-modify-Makefile.inc-for-cross-compil.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0012-multipath-tools-modify-Makefile.inc-for-cross-compil.patch
new file mode 100644
index 000000000..5ccd4aed8
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0013-Always-use-devmapper.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0013-Always-use-devmapper.patch
new file mode 100644
index 000000000..52240f643
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0014-Always-use-devmapper-for-kpartx.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0014-Always-use-devmapper-for-kpartx.patch
new file mode 100644
index 000000000..f951213c1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0014-Always-use-devmapper-for-kpartx.patch
@@ -0,0 +1,37 @@
+From 7f5869cd32a7b3f717d9544b35562d9d01ca6510 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Wed, 5 Jul 2017 03:03:16 -0400
+Subject: [PATCH 14/14] Always use devmapper for kpartx
+
+Do not try to compute the LIBDM_API_COOKIE make variable
+from host information when cross-compiling.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Aws Ismail <aws.ismail@windriver.com>
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
+
+Rebase to 0.7.1
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ kpartx/Makefile | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/kpartx/Makefile b/kpartx/Makefile
+index bfa6fe8..be87124 100644
+--- a/kpartx/Makefile
++++ b/kpartx/Makefile
+@@ -8,9 +8,7 @@ LDFLAGS += $(BIN_LDFLAGS)
+
+ LIBDEPS += -ldevmapper
+
+-ifneq ($(call check_func,dm_task_set_cookie,/usr/include/libdevmapper.h),0)
+- CFLAGS += -DLIBDM_API_COOKIE
+-endif
++CFLAGS += -DLIBDM_API_COOKIE
+
+ OBJS = bsd.o dos.o kpartx.o solaris.o unixware.o dasd.o sun.o \
+ gpt.o mac.o ps3.o crc32.o lopart.o xstrncpy.o devmapper.o
+--
+2.8.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/multipath.conf.example b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/multipath.conf.example
new file mode 100644
index 000000000..6bbeadba2
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/multipathd.oe b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/multipathd.oe
new file mode 100755
index 000000000..3bdf875e3
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/multipathd.oe
@@ -0,0 +1,146 @@
+#!/bin/bash
+#
+# multipathd Starts the multipath daemon
+#
+# chkconfig: - 06 87
+# description: Manages device-mapper multipath devices
+
+### BEGIN INIT INFO
+# Provides: multipathd
+# Required-Start:
+# Required-Stop:
+# Default-Start:
+# Default-Stop:
+# Short-Description: Control multipathd
+# Description: This service monitors and manages
+# device-mapper multipath devices
+### END INIT INFO
+
+DAEMON=/sbin/multipathd
+prog=`basename $DAEMON`
+initdir=/etc/init.d
+lockdir=/var/lock/subsys
+sysconfig=/etc/sysconfig
+syspath=/sys/block
+
+RETVAL=0
+
+teardown_slaves()
+{
+pushd $1 > /dev/null
+if [ -d "slaves" ]; then
+for slave in slaves/*;
+do
+ if [ "$slave" = "slaves/*" ]; then
+ read dev < $1/dev
+ tablename=`dmsetup table --target multipath | sed -n "s/\(.*\): .* $dev .*/\1/p"`
+ if ! [ -z $tablename ]; then
+ echo "Root is on a multipathed device, multipathd can not be stopped"
+ exit 1
+ fi
+ else
+ local_slave=`readlink -f $slave`;
+ teardown_slaves $local_slave;
+ fi
+ done
+
+else
+ read dev < $1/dev
+ tablename=`dmsetup table --target multipath | sed -n "s/\(.*\): .* $dev .*/\1/p"`
+ if ! [ -z $tablename ]; then
+ echo "Root is on a multipathed device, multipathd can not be stopped"
+ exit 1
+ fi
+fi
+popd > /dev/null
+}
+
+#
+# See how we were called.
+#
+
+start() {
+ test -x $DAEMON || exit 5
+ echo -n $"Starting $prog daemon: "
+ start-stop-daemon --start --quiet --exec $DAEMON
+ RETVAL=$?
+ [ $RETVAL -eq 0 ] && touch $lockdir/$prog
+ echo
+}
+
+force_stop() {
+ echo -n $"Stopping $prog daemon: "
+ killall $DAEMON
+ RETVAL=$?
+ [ $RETVAL -eq 0 ] && rm -f $lockdir/$prog
+ echo
+}
+
+stop() {
+ root_dev=$(awk '{ if ($1 !~ /^[ \t]*#/ && $2 == "/") { print $1; }}' /etc/mtab)
+ dm_num=`dmsetup info -c --noheadings -o minor $root_dev 2> /dev/null`
+ if [ $? -eq 0 ]; then
+ root_dm_device="dm-$dm_num"
+ [ -d $syspath/$root_dm_device ] && teardown_slaves $syspath/$root_dm_device
+ fi
+
+ force_stop
+}
+
+restart() {
+ stop
+ start
+}
+
+force_restart() {
+ force_stop
+ start
+}
+
+reload() {
+ echo -n "Reloading $prog: "
+ trap "" SIGHUP
+ killall $DAEMON -s SIGHUP -v
+ RETVAL=$?
+ echo
+}
+
+case "$1" in
+start)
+ start
+ ;;
+stop)
+ stop
+ ;;
+force-stop)
+ force_stop
+ ;;
+force-reload|reload)
+ reload
+ ;;
+restart)
+ restart
+ ;;
+force-restart)
+ force_restart
+ ;;
+condrestart|try-restart)
+ if [ -f $lockdir/$prog ]; then
+ restart
+ fi
+ ;;
+status)
+ if pidof -o %PPID $DAEMON > /dev/null; then
+ echo "Running"
+ RETVAL=0
+ else
+ echo "Not running"
+ RETVAL=1
+ fi
+ ;;
+*)
+ echo $"Usage: $0 {start|stop|force-stop|status|restart|force-restart|condrestart|reload}"
+ RETVAL=2
+esac
+
+exit $RETVAL
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.7.1.bb b/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.7.1.bb
new file mode 100644
index 000000000..6ec5dffcc
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/nano/nano.inc b/meta-openembedded/meta-oe/recipes-support/nano/nano.inc
new file mode 100644
index 000000000..22f0fb2a0
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nano/nano.inc
@@ -0,0 +1,17 @@
+DESCRIPTION = "GNU nano (Nano's ANOther editor, or \
+Not ANOther editor) is an enhanced clone of the \
+Pico text editor."
+HOMEPAGE = "http://www.nano-editor.org/"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949"
+SECTION = "console/utils"
+DEPENDS = "ncurses file"
+RDEPENDS_${PN} = "ncurses-terminfo"
+
+PV_MAJOR = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}"
+
+SRC_URI = "https://nano-editor.org/dist/v${PV_MAJOR}/nano-${PV}.tar.xz"
+
+inherit autotools gettext pkgconfig
+
+PACKAGECONFIG[tiny] = "--enable-tiny,"
diff --git a/meta-openembedded/meta-oe/recipes-support/nano/nano_2.9.3.bb b/meta-openembedded/meta-oe/recipes-support/nano/nano_2.9.3.bb
new file mode 100644
index 000000000..afb0cf2e7
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nano/nano_2.9.3.bb
@@ -0,0 +1,4 @@
+include nano.inc
+
+SRC_URI[md5sum] = "6dd37f010d6a985bf0e5f8ed091ff919"
+SRC_URI[sha256sum] = "7783bcfd4b2d5dc0bf64d4bd07b1a19e7ba3c91da881a4249772a36b972d4012"
diff --git a/meta-openembedded/meta-oe/recipes-support/ne10/ne10/0001-CMakeLists.txt-Remove-mthumb-interwork.patch b/meta-openembedded/meta-oe/recipes-support/ne10/ne10/0001-CMakeLists.txt-Remove-mthumb-interwork.patch
new file mode 100644
index 000000000..9f2faaa52
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/ne10/ne10/0001-CMakeLists.txt-Remove-mthumb-interwork.patch
@@ -0,0 +1,44 @@
+From 8a0d1cbfcc0649b2696c9cf20f877366de259ce3 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 12 Nov 2016 18:15:26 +0000
+Subject: [PATCH] CMakeLists.txt: Remove -mthumb-interwork
+
+This option is meaningless with aapcs ABI
+which is the default for Linux and android
+for armv7+ architectures
+
+As an aside it helps in compiling with clang
+where this option is absent
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ CMakeLists.txt | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 784a5a8..68da920 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -117,7 +117,7 @@ if(ANDROID_PLATFORM)
+
+ # Adding cflags for armv7. Aarch64 does not need such flags.
+ if(${NE10_TARGET_ARCH} STREQUAL "armv7")
+- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mthumb-interwork -mthumb -march=armv7-a -mfloat-abi=${FLOAT_ABI} -mfpu=vfp3")
++ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mthumb -march=armv7-a -mfloat-abi=${FLOAT_ABI} -mfpu=vfp3")
+ if(NE10_ARM_HARD_FLOAT)
+ # "--no-warn-mismatch" is needed for linker to suppress linker error about not all functions use VFP register to pass argument, eg.
+ # .../arm-linux-androideabi/bin/ld: error: ..../test-float.o
+@@ -138,8 +138,8 @@ if(ANDROID_PLATFORM)
+ ${CMAKE_C_FLAGS}")
+ elseif(GNULINUX_PLATFORM)
+ if("${NE10_TARGET_ARCH}" STREQUAL "armv7")
+- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mthumb-interwork -mthumb -march=armv7-a -mfpu=vfp3 -funsafe-math-optimizations")
+- set(CMAKE_ASM_FLAGS "${CMAKE_C_FLAGS} -mthumb-interwork -mthumb -march=armv7-a -mfpu=neon")
++ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mthumb -march=armv7-a -mfpu=vfp3 -funsafe-math-optimizations")
++ set(CMAKE_ASM_FLAGS "${CMAKE_C_FLAGS} -mthumb -march=armv7-a -mfpu=neon")
+ # Turn on asm optimization for Linux on ARM v7.
+ set(NE10_ASM_OPTIMIZATION on)
+ endif()
+--
+1.8.3.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/ne10/ne10/0001-Dont-specify-march-explicitly.patch b/meta-openembedded/meta-oe/recipes-support/ne10/ne10/0001-Dont-specify-march-explicitly.patch
new file mode 100644
index 000000000..a8fea82dc
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/ne10/ne10/0001-Dont-specify-march-explicitly.patch
@@ -0,0 +1,38 @@
+From 66d332e4b631eef800c6f62cd347b164ee3b59d4 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 19 Apr 2017 10:11:21 -0700
+Subject: [PATCH] Dont specify -march explicitly
+
+it assumes armv7-a for all armv7 based machines but that may
+not be true e.g. machines based on armv7ve and cortexa-7
+it causes conflicts in OE builds because it specifies -march
+in recipes anyway so this is redundant in CMakeLists.txt
+
+Fixes
+
+| cc1: warning: switch -mcpu=cortex-a7 conflicts with -march=armv7-a switch
+| cc1: warning: switch -mcpu=cortex-a7 conflicts with -march=armv7-a switch
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ CMakeLists.txt | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 68da920..a4b94b9 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -138,8 +138,8 @@ if(ANDROID_PLATFORM)
+ ${CMAKE_C_FLAGS}")
+ elseif(GNULINUX_PLATFORM)
+ if("${NE10_TARGET_ARCH}" STREQUAL "armv7")
+- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mthumb -march=armv7-a -mfpu=vfp3 -funsafe-math-optimizations")
+- set(CMAKE_ASM_FLAGS "${CMAKE_C_FLAGS} -mthumb -march=armv7-a -mfpu=neon")
++ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mthumb -mfpu=vfp3 -funsafe-math-optimizations")
++ set(CMAKE_ASM_FLAGS "${CMAKE_C_FLAGS} -mthumb -mfpu=neon")
+ # Turn on asm optimization for Linux on ARM v7.
+ set(NE10_ASM_OPTIMIZATION on)
+ endif()
+--
+2.12.2
+
diff --git a/meta-openembedded/meta-oe/recipes-support/ne10/ne10_1.2.1.bb b/meta-openembedded/meta-oe/recipes-support/ne10/ne10_1.2.1.bb
new file mode 100644
index 000000000..76e0741b1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/ne10/ne10_1.2.1.bb
@@ -0,0 +1,46 @@
+DESCRIPTION = "Library containing NEON-optimized implementations for a common set of functions"
+HOMEPAGE = "http://projectne10.github.io/Ne10/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e7fe20c9be97be5579e3ab5d92d3a218"
+SECTION = "libs"
+
+SRC_URI = "git://github.com/projectNe10/Ne10.git \
+ file://0001-CMakeLists.txt-Remove-mthumb-interwork.patch \
+ file://0001-Dont-specify-march-explicitly.patch \
+ "
+SRCREV = "18c4c982a595dad069cd8df4932aefb1d257591f"
+
+S = "${WORKDIR}/git"
+PV .= "gitr+${SRCPV}"
+
+inherit cmake
+
+NE10_TARGET_ARCH = ""
+EXTRA_OECMAKE = '-DGNULINUX_PLATFORM=ON -DNE10_BUILD_SHARED=ON -DNE10_LINUX_TARGET_ARCH="${NE10_TARGET_ARCH}"'
+
+COMPATIBLE_MACHINE_aarch64 = "(.*)"
+COMPATIBLE_MACHINE_armv7a = "(.*)"
+
+python () {
+ if any(t.startswith('armv7') for t in d.getVar('TUNE_FEATURES').split()):
+ d.setVar('NE10_TARGET_ARCH', 'armv7')
+ bb.debug(2, 'Building Ne10 for armv7')
+ elif any(t.startswith('aarch64') for t in d.getVar('TUNE_FEATURES').split()):
+ d.setVar('NE10_TARGET_ARCH', 'aarch64')
+ bb.debug(2, 'Building Ne10 for aarch64')
+ else:
+ raise bb.parse.SkipRecipe("Incompatible with archs other than armv7 and aarch64")
+}
+
+do_install() {
+ install -d ${D}${libdir}
+ install -d ${D}${includedir}
+ install -m 0644 ${S}/inc/NE10*.h ${D}${includedir}/
+ install -m 0644 ${B}/modules/libNE10.a ${D}${libdir}/
+ install -m 0755 ${B}/modules/libNE10.so.* ${D}${libdir}/
+ cp -a ${B}/modules/libNE10.so ${D}${libdir}/
+}
+
+# ERROR: QA Issue: ELF binary 'ne10/1.2.1-r0/packages-split/ne10/usr/lib/libNE10.so.10' has relocations in .text [textrel]
+# ERROR: QA Issue: ELF binary 'ne10/1.2.1-r0/packages-split/ne10/usr/lib/libNE10.so.10' has relocations in .text [textrel]
+INSANE_SKIP_${PN} += "textrel"
diff --git a/meta-openembedded/meta-oe/recipes-support/neon/neon/pkgconfig.patch b/meta-openembedded/meta-oe/recipes-support/neon/neon/pkgconfig.patch
new file mode 100644
index 000000000..239dba8e2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/neon/neon/pkgconfig.patch
@@ -0,0 +1,15 @@
+Upstream-Status: Inappropriate [configuration]
+
+---
+ neon.pc.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- neon-0.30.1.orig/neon.pc.in
++++ neon-0.30.1/neon.pc.in
+@@ -7,5 +7,5 @@ Name: neon
+ Description: HTTP/WebDAV client library
+ Version: @NEON_VERSION@
+ Libs: -L${libdir} -lneon @NEON_PC_LIBS@
+-Libs.private: @NEON_LIBS@
++Libs.private: -L${libdir} -lz -lgcrypt -lgpg-error -lexpat -lgnutls
+ Cflags: -I${includedir}/neon @NEON_CFLAGS@
diff --git a/meta-openembedded/meta-oe/recipes-support/neon/neon_0.30.2.bb b/meta-openembedded/meta-oe/recipes-support/neon/neon_0.30.2.bb
new file mode 100644
index 000000000..00b79f633
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/neon/neon_0.30.2.bb
@@ -0,0 +1,38 @@
+SUMMARY = "An HTTP and WebDAV client library with a C interface"
+HOMEPAGE = "http://www.webdav.org/neon/"
+SECTION = "libs"
+LICENSE = "LGPLv2+"
+LIC_FILES_CHKSUM = "file://src/COPYING.LIB;md5=f30a9716ef3762e3467a2f62bf790f0a \
+ file://src/ne_utils.h;beginline=1;endline=20;md5=2caca609538eddaa6f6adf120a218037"
+
+SRC_URI = "${DEBIAN_MIRROR}/main/n/neon27/neon27_${PV}.orig.tar.gz \
+ file://pkgconfig.patch \
+ "
+
+SRC_URI[md5sum] = "e28d77bf14032d7f5046b3930704ef41"
+SRC_URI[sha256sum] = "db0bd8cdec329b48f53a6f00199c92d5ba40b0f015b153718d1b15d3d967fbca"
+
+inherit autotools binconfig-disabled lib_package pkgconfig
+
+# Enable gnutls or openssl, not both
+PACKAGECONFIG ?= "expat gnutls libproxy webdav zlib"
+PACKAGECONFIG_class-native = "expat gnutls webdav zlib"
+
+PACKAGECONFIG[expat] = "--with-expat,--without-expat,expat"
+PACKAGECONFIG[gnutls] = "--with-ssl=gnutls,,gnutls"
+PACKAGECONFIG[gssapi] = "--with-gssapi,--without-gssapi,krb5"
+PACKAGECONFIG[libproxy] = "--with-libproxy,--without-libproxy,libproxy"
+PACKAGECONFIG[libxml2] = "--with-libxml2,--without-libxml2,libxml2"
+PACKAGECONFIG[openssl] = "--with-ssl=openssl,,openssl"
+PACKAGECONFIG[webdav] = "--enable-webdav,--disable-webdav,"
+PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib"
+
+EXTRA_OECONF += "--enable-shared"
+
+do_compile_append() {
+ oe_runmake -C test
+}
+
+BINCONFIG = "${bindir}/neon-config"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/nmon/nmon/0001-lmon16g.c-Adjust-system-headers.patch b/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/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/meta-openembedded/meta-oe/recipes-support/nmon/nmon_16g.bb b/meta-openembedded/meta-oe/recipes-support/nmon/nmon_16g.bb
new file mode 100644
index 000000000..e77faa30a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nmon/nmon_16g.bb
@@ -0,0 +1,31 @@
+SUMMARY = "nmon performance monitor"
+HOMEPAGE = "http://nmon.sf.net"
+SECTION = "console/utils"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://${WORKDIR}/Documentation.txt;md5=dbb13658cf55d687c4f2ff771a696d4a"
+DEPENDS = "ncurses"
+DEPENDS_append_libc-musl = " bsd-headers"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/nmon/lmon${PV}.c;name=lmon \
+ ${SOURCEFORGE_MIRROR}/nmon/Documentation.txt;name=doc \
+ file://0001-lmon16g.c-Adjust-system-headers.patch \
+"
+SRC_URI[lmon.md5sum] = "246ccfc74d5af55d992601fc4d3d4a72"
+SRC_URI[lmon.sha256sum] = "da82dd693b503b062854dfe7dbb5d36b347872ab44a4aa05b97e9d577747f688"
+SRC_URI[doc.md5sum] = "dbb13658cf55d687c4f2ff771a696d4a"
+SRC_URI[doc.sha256sum] = "1f7f83afe62a7210be5e83cd24157adb854c14599efe0b377a7ecca933869278"
+
+CFLAGS += "-D JFS -D GETUSER -Wall -D LARGEMEM"
+LDFLAGS += "-ltinfo -lncursesw -lm"
+ASNEEDED_pn-nmon = ""
+
+S = "${WORKDIR}"
+
+do_compile() {
+ ${CC} ${CFLAGS} ${LDFLAGS} lmon${PV}.c -o nmon
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 nmon ${D}${bindir}
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/numactl/numactl/0001-define-run-test-target.patch b/meta-openembedded/meta-oe/recipes-support/numactl/numactl/0001-define-run-test-target.patch
new file mode 100644
index 000000000..78ffb22f8
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/numactl/numactl/0001-define-run-test-target.patch
@@ -0,0 +1,32 @@
+rename test target as run-test
+
+Upstream-Statue: Pending
+
+test target not only compile the test files, but also run them, which is
+not suitable for cross-compile environment, so rename it as run-test.
+
+and define test target to compile the test files.
+
+Signed-off-by: Roy Li <rongqing.li@windriver.com>
+---
+ Makefile.am | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index b6db339..de176c4 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -124,7 +124,9 @@ regress2: $(check_PROGRAMS)
+ test_numademo: numademo
+ ./numademo -t -e 10M
+
+-test: all $(check_PROGRAMS) regress1 regress2 test_numademo
++test: all $(check_PROGRAMS)
++
++run-test: all $(check_PROGRAMS) regress1 regress2 test_numademo
+
+ TESTS_ENVIRONMENT = builddir='$(builddir)'; export builddir;
+
+--
+1.9.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/numactl/numactl/Fix-the-test-output-format.patch b/meta-openembedded/meta-oe/recipes-support/numactl/numactl/Fix-the-test-output-format.patch
new file mode 100644
index 000000000..9812ecc8b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/numactl/numactl/Fix-the-test-output-format.patch
@@ -0,0 +1,64 @@
+From 59fd750a84bbe5874dec936d2bee9ef11a1b6505 Mon Sep 17 00:00:00 2001
+From: Li xin <lixin.fnst@cn.fujitsu.com>
+Date: Tue, 21 Jul 2015 02:01:22 +0900
+Subject: [PATCH] Fix the test output format
+
+Upstream-Status: Pending
+
+Signed-off-by: Roy Li <rongqing.li@windriver.com>
+Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
+---
+ test/regress | 6 +++---
+ test/regress2 | 11 +++++------
+ 2 files changed, 8 insertions(+), 9 deletions(-)
+
+diff --git a/test/regress b/test/regress
+index 2ce1705..d086a47 100755
+--- a/test/regress
++++ b/test/regress
+@@ -74,6 +74,7 @@ probe_hardware()
+ if [ $numnodes -lt 2 ] ; then
+ echo "need at least two nodes with at least $NEEDPAGES each of"
+ echo "free memory for mempolicy regression tests"
++ echo "FAIL: numa regress"
+ exit 77 # Skip test
+ fi
+ }
+@@ -207,10 +208,9 @@ main()
+ rm A B
+
+ if [ "$EXIT" = 0 ] ; then
+- echo '========SUCCESS'
++ echo 'PASS: numactl regress'
+ else
+- echo '========FAILURE'
+- exit 1
++ echo 'FAIL: numactl regress'
+ fi
+ }
+
+diff --git a/test/regress2 b/test/regress2
+index aa6ea41..450c510 100755
+--- a/test/regress2
++++ b/test/regress2
+@@ -9,12 +9,11 @@ testdir=`dirname "$0"`
+ export PATH=${builddir}:$PATH
+
+ T() {
+- echo "$@"
+- if ! $VALGRIND "$@" ; then
+- echo $1 FAILED!!!!
+- exit 1
+- fi
+- echo
++ if ! $VALGRIND "$@" 2>&1 1>/dev/null; then
++ echo "FAIL: $1"
++ else
++ echo "PASS: $1"
++ fi
+ }
+
+ # still broken
+--
+1.8.4.2
+
diff --git a/meta-openembedded/meta-oe/recipes-support/numactl/numactl/Makefile b/meta-openembedded/meta-oe/recipes-support/numactl/numactl/Makefile
new file mode 100644
index 000000000..9a5134c3f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/numactl/numactl/Makefile
@@ -0,0 +1,7 @@
+.PHONY: regress1 regress2
+
+regress1:
+ cd test ; ./regress
+
+regress2:
+ cd test ; ./regress2
diff --git a/meta-openembedded/meta-oe/recipes-support/numactl/numactl/fix-null-pointer.patch b/meta-openembedded/meta-oe/recipes-support/numactl/numactl/fix-null-pointer.patch
new file mode 100644
index 000000000..53952aef9
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/numactl/numactl/fix-null-pointer.patch
@@ -0,0 +1,28 @@
+[PATCH] return 0 if distance_table is NULL
+
+Upstream-Status: Pending
+
+read_distance_table() maybe return 0, but distance_table is not set,
+if distance_table is used, and will lead to SEGFAULT
+
+Signed-off-by: Roy Li <rongqing.li@windriver.com>
+---
+ distance.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/distance.c b/distance.c
+index 4a26972..c6ca021 100755
+--- a/distance.c
++++ b/distance.c
+@@ -113,6 +113,8 @@ int numa_distance(int a, int b)
+ int err = read_distance_table();
+ if (err < 0)
+ return 0;
++ if (!distance_table)
++ return 0;
+ }
+ return distance_table[a * distance_numnodes + b];
+ }
+--
+1.7.10.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/numactl/numactl/run-ptest b/meta-openembedded/meta-oe/recipes-support/numactl/numactl/run-ptest
new file mode 100755
index 000000000..215f7c25b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/numactl/numactl/run-ptest
@@ -0,0 +1,9 @@
+#!/bin/sh
+make regress1
+make regress2
+if numademo -t -e 10M; then
+ echo "PASS: numademo"
+else
+ echo "FAIL: numademo"
+fi
+
diff --git a/meta-openembedded/meta-oe/recipes-support/numactl/numactl_git.bb b/meta-openembedded/meta-oe/recipes-support/numactl/numactl_git.bb
new file mode 100644
index 000000000..b9cbcf09d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/numactl/numactl_git.bb
@@ -0,0 +1,61 @@
+SUMMARY = "Development package for building Applications that use numa"
+HOMEPAGE = "http://oss.sgi.com/projects/libnuma/"
+DESCRIPTION = "Simple NUMA policy support. It consists of a numactl program \
+to run other programs with a specific NUMA policy and a libnuma to do \
+allocations with NUMA policy in applications."
+LICENSE = "GPL-2.0 & LGPL-2.1"
+SECTION = "apps"
+RDEPENDS_${PN} = "perl"
+
+inherit autotools-brokensep ptest
+
+LIC_FILES_CHKSUM = "file://README;beginline=19;endline=32;md5=5644cc3851cb2499f6c48e52fe198bd9"
+
+SRCREV = "ea3a70681c2f523fe58e1d44527f478ca76db74e"
+PV = "2.0.11+git${SRCPV}"
+
+SRC_URI = "git://github.com/numactl/numactl \
+ file://fix-null-pointer.patch \
+ file://Fix-the-test-output-format.patch \
+ file://Makefile \
+ file://run-ptest \
+ file://0001-define-run-test-target.patch \
+"
+
+S = "${WORKDIR}/git"
+
+# ARM does not currently support NUMA
+COMPATIBLE_HOST = "^((?!arm).*)$"
+
+do_install() {
+ oe_runmake DESTDIR=${D} prefix=${D}/usr install
+ #remove the empty man2 directory
+ rm -r ${D}${mandir}/man2
+}
+
+do_compile_ptest() {
+ oe_runmake test
+}
+
+do_install_ptest() {
+ #install tests binaries
+ local test_binaries="distance ftok mbind_mig_pages migrate_pages move_pages \
+ mynode nodemap node-parse pagesize prefered randmap realloc_test \
+ tbitmap tshared"
+
+ [ ! -d ${D}/${PTEST_PATH}/test ] && mkdir -p ${D}/${PTEST_PATH}/test
+ for i in $test_binaries; do
+ install -m 0755 ${B}/test/.libs/$i ${D}${PTEST_PATH}/test
+ done
+
+ local test_scripts="checktopology checkaffinity printcpu regress regress2 \
+ shmtest runltp bind_range"
+ for i in $test_scripts; do
+ install -m 0755 ${B}/test/$i ${D}${PTEST_PATH}/test
+ done
+
+ install -m 0755 ${WORKDIR}/Makefile ${D}${PTEST_PATH}/
+ install -m 0755 ${B}/.libs/numactl ${D}${PTEST_PATH}/
+}
+
+RDEPENDS_${PN}-ptest = "bash"
diff --git a/meta-openembedded/meta-oe/recipes-support/ode/ode/install.patch b/meta-openembedded/meta-oe/recipes-support/ode/ode/install.patch
new file mode 100644
index 000000000..2f6cdb008
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/ode/ode/install.patch
@@ -0,0 +1,23 @@
+--- ode-0.9.orig/Makefile.am 2007-02-21 15:54:54.000000000 +0100
++++ ode-0.9/Makefile.am 2010-08-21 16:15:55.000000000 +0200
+@@ -25,13 +25,13 @@
+
+ if USE_SONAME
+ install-exec-hook:
+- ln -s $(libdir)/@ODE_SONAME@.@ODE_REVISION@.@ODE_AGE@ \
+- $(libdir)/libode.so
+- ln -s $(libdir)/@ODE_SONAME@.@ODE_REVISION@.@ODE_AGE@ \
+- $(libdir)/@ODE_SONAME@
+- ln -s $(libdir)/@ODE_SONAME@.@ODE_REVISION@.@ODE_AGE@ \
+- $(libdir)/@ODE_SONAME@.@ODE_REVISION@
+- /sbin/ldconfig
++ ln -s @ODE_SONAME@.@ODE_REVISION@.@ODE_AGE@ \
++ $(DESTDIR)/$(libdir)/libode.so
++ ln -s @ODE_SONAME@.@ODE_REVISION@.@ODE_AGE@ \
++ $(DESTDIR)/$(libdir)/@ODE_SONAME@
++ ln -s @ODE_SONAME@.@ODE_REVISION@.@ODE_AGE@ \
++ $(DESTDIR)/$(libdir)/@ODE_SONAME@.@ODE_REVISION@
++ echo /sbin/ldconfig
+ else
+ install-exec-hook:
+ endif
diff --git a/meta-openembedded/meta-oe/recipes-support/onig/files/configure.patch b/meta-openembedded/meta-oe/recipes-support/onig/files/configure.patch
new file mode 100644
index 000000000..5fa700f19
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/onig/files/configure.patch
@@ -0,0 +1,13 @@
+Index: onig-5.9.3/configure.in
+===================================================================
+--- onig-5.9.3.orig/configure.in 2012-10-26 07:06:14.000000000 +0000
++++ onig-5.9.3/configure.in 2014-07-18 08:02:52.701574484 +0000
+@@ -3,7 +3,7 @@
+
+ AC_CONFIG_MACRO_DIR([m4])
+
+-AM_INIT_AUTOMAKE
++AM_INIT_AUTOMAKE([foreign])
+ AC_CONFIG_HEADER(config.h)
+
+
diff --git a/meta-openembedded/meta-oe/recipes-support/onig/files/do-not-use-system-headers.patch b/meta-openembedded/meta-oe/recipes-support/onig/files/do-not-use-system-headers.patch
new file mode 100644
index 000000000..b93602a26
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/onig/files/do-not-use-system-headers.patch
@@ -0,0 +1,44 @@
+Author: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
+
+When build on host with older eglibc (Ubuntu 12.04) build fails with:
+
+/tmp/OE/build/tmp-eglibc/sysroots/genericarmv8/usr/include/bits/predefs.h:23:3: error: #error "Never use <bits/predefs.h> directly; include <stdc-predef.h> instead."
+
+Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
+
+Upstream-Status: Inappropriate [embedded specific]
+
+---
+ Makefile.am | 2 +-
+ sample/Makefile.am | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+--- onig-5.9.3.orig/Makefile.am
++++ onig-5.9.3/Makefile.am
+@@ -4,11 +4,11 @@ sampledir = $(top_srcdir)/sample
+ libname = libonig.la
+
+ ACLOCAL_AMFLAGS = -I m4
+ #AM_CFLAGS = -DNOT_RUBY
+ AM_CFLAGS =
+-INCLUDES = -I$(top_srcdir) -I$(includedir)
++INCLUDES = -I$(top_srcdir)
+
+ SUBDIRS = . sample
+
+ include_HEADERS = oniguruma.h oniggnu.h onigposix.h
+ lib_LTLIBRARIES = $(libname)
+--- onig-5.9.3.orig/sample/Makefile.am
++++ onig-5.9.3/sample/Makefile.am
+@@ -1,10 +1,10 @@
+ noinst_PROGRAMS = encode listcap names posix simple sql syntax crnl
+
+ libname = $(top_builddir)/libonig.la
+ LDADD = $(libname)
+-INCLUDES = -I$(top_srcdir) -I$(includedir)
++INCLUDES = -I$(top_srcdir)
+
+ encode_SOURCES = encode.c
+ listcap_SOURCES = listcap.c
+ names_SOURCES = names.c
+ posix_SOURCES = posix.c
diff --git a/meta-openembedded/meta-oe/recipes-support/onig/onig_5.9.6.bb b/meta-openembedded/meta-oe/recipes-support/onig/onig_5.9.6.bb
new file mode 100644
index 000000000..abbaf98c0
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/onig/onig_5.9.6.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "Regular expressions library. The characteristics of this \
+library is that different character encoding for every regular expression \
+object can be specified."
+HOMEPAGE = "https://web.archive.org/web/20150807014439/http://www.geocities.jp/kosako3/oniguruma/"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0d4861b5bc0c392a5aa90d9d76ebd86f"
+
+SRC_URI = "https://web.archive.org/web/20150807014439/http://www.geocities.jp/kosako3/oniguruma/archive/${BP}.tar.gz \
+ file://do-not-use-system-headers.patch \
+ file://configure.patch"
+
+SRC_URI[md5sum] = "d08f10ea5c94919780e6b7bed1ef9830"
+SRC_URI[sha256sum] = "d5642010336a6f68b7f2e34b1f1cb14be333e4d95c2ac02b38c162caf44e47a7"
+
+BINCONFIG = "${bindir}/onig-config"
+
+inherit autotools binconfig-disabled
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/tools.conf b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/tools.conf
new file mode 100644
index 000000000..f6cae70cc
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/tools.conf
@@ -0,0 +1,2 @@
+[guestinfo]
+disable-perf-mon=1
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/vmtoolsd.init b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/vmtoolsd.init
new file mode 100644
index 000000000..38280464a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/vmtoolsd.init
@@ -0,0 +1,66 @@
+#!/bin/sh
+#
+# vmtoolsd Start/stop the vmware tools daemon
+#
+# chkconfig: 2345 90 60
+# description: vmtoolsd is a daemon that starts up. for some reason, it
+# doesn't include a sysv init startup file in the latest release.
+# so i have to write this
+#
+
+### BEGIN INIT INFO
+# Provides: vmtoolsd
+# Required-Start: $local_fs $syslog
+# Required-Stop: $local_fs $syslog
+# Default-Start: 2345
+# Default-Stop: 90
+# Short-Description: Run vmware tools daemon
+### END INIT INFO
+
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/bin/vmtoolsd
+NAME=vmtoolsd
+DESC="vmware tools daemon"
+VMTOOLSDARGS=" -b /var/run/vmtoolsd.pid "
+RETVAL="1"
+
+# source function library
+. /etc/init.d/functions
+
+test -f $DAEMON || exit 0
+
+
+case "$1" in
+ start)
+ echo -n "Starting vmware tools daemon: "
+ start-stop-daemon --start --quiet --exec $DAEMON -- $VMTOOLSDARGS
+ RETVAL=$?
+ if [ $RETVAL -eq 0 ] ; then
+ echo "OK"
+ else
+ echo "FAIL"
+ fi
+ ;;
+ stop)
+ echo -n "Stopping vmware tools daemon: "
+ start-stop-daemon --stop --quiet --pidfile /var/run/vmtoolsd.pid
+ RETVAL=$?
+ if [ $RETVAL -eq 0 ] ; then
+ echo "OK"
+ else
+ echo "FAIL"
+ fi
+ ;;
+ status)
+ status vmtoolsd
+ exit $?
+ ;;
+ restart)
+ $0 stop && sleep 1 && $0 start
+ ;;
+ *)
+ echo "Usage: /etc/init.d/vmtoolsd {start|stop|status|restart}"
+ exit 1
+esac
+
+exit $RETVAL
diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/vmtoolsd.service b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/files/vmtoolsd.service
new file mode 100644
index 000000000..d30e38055
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Remove-assumptions-about-glibc-being-only-libc-imple.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Remove-assumptions-about-glibc-being-only-libc-imple.patch
new file mode 100644
index 000000000..9773b4a94
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch
new file mode 100644
index 000000000..e9cb873f1
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-add-include-sys-sysmacros.h.patch b/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/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/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-include-poll.h-instead-of-obsolete-sys-poll.h.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-include-poll.h-instead-of-obsolete-sys-poll.h.patch
new file mode 100644
index 000000000..d26bf2dd3
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0003-Rename-poll.h-to-vm_poll.h.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0003-Rename-poll.h-to-vm_poll.h.patch
new file mode 100644
index 000000000..8641778d0
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0004-Add-Wno-incompatible-pointer-types-and-Wno-error-add.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0004-Add-Wno-incompatible-pointer-types-and-Wno-error-add.patch
new file mode 100644
index 000000000..010516761
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0005-Use-configure-test-for-struct-timespec.patch b/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/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/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0006-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch b/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/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/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0007-Use-configure-to-test-for-feature-instead-of-platfor.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0007-Use-configure-to-test-for-feature-instead-of-platfor.patch
new file mode 100644
index 000000000..5adf9b0f9
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0008-use-posix-strerror_r-unless-gnu.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0008-use-posix-strerror_r-unless-gnu.patch
new file mode 100644
index 000000000..3d1291c9f
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0009-Add-support-for-building-with-system-libtirpc.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0009-Add-support-for-building-with-system-libtirpc.patch
new file mode 100644
index 000000000..2bee5ac82
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0010-gnu-ucontext.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0010-gnu-ucontext.patch
new file mode 100644
index 000000000..c9beac1fc
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0011-Use-configure-test-for-sys-stat.h-include.patch b/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/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/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.1.5.bb b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.1.5.bb
new file mode 100644
index 000000000..c32d2c5b3
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.1.5.bb
@@ -0,0 +1,114 @@
+# 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://vmtoolsd.init \
+ file://0001-configure.ac-don-t-use-dnet-config.patch \
+ file://0002-add-include-sys-sysmacros.h.patch \
+ file://0001-Remove-assumptions-about-glibc-being-only-libc-imple.patch \
+ file://0002-include-poll.h-instead-of-obsolete-sys-poll.h.patch \
+ file://0003-Rename-poll.h-to-vm_poll.h.patch \
+ file://0004-Add-Wno-incompatible-pointer-types-and-Wno-error-add.patch \
+ file://0005-Use-configure-test-for-struct-timespec.patch \
+ file://0006-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch \
+ file://0007-Use-configure-to-test-for-feature-instead-of-platfor.patch \
+ file://0008-use-posix-strerror_r-unless-gnu.patch \
+ file://0011-Use-configure-test-for-sys-stat.h-include.patch \
+ "
+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 update-rc.d
+
+SYSTEMD_SERVICE_${PN} = "vmtoolsd.service"
+
+EXTRA_OECONF = "--without-icu --disable-multimon --disable-docs \
+ --disable-tests --without-gtkmm --without-xerces --without-pam \
+ --disable-grabbitmqproxy --disable-vgauth --disable-deploypkg \
+ --without-root-privileges --without-kernel-modules"
+
+NO_X11_FLAGS = "--without-x --without-gtk2 --without-gtk3"
+X11_DEPENDS = "libxext libxi libxrender libxrandr libxtst gtk+ gdk-pixbuf"
+PACKAGECONFIG[x11] = ",${NO_X11_FLAGS},${X11_DEPENDS}"
+
+# fuse gets implicitly detected; there is no --without-fuse option.
+PACKAGECONFIG[fuse] = ",,fuse"
+
+CFLAGS_append_toolchain-clang = " -Wno-address-of-packed-member"
+FILES_${PN} += "\
+ ${libdir}/open-vm-tools/plugins/vmsvc/lib*.so \
+ ${libdir}/open-vm-tools/plugins/common/lib*.so \
+ ${sysconfdir}/vmware-tools/tools.conf \
+ "
+FILES_${PN}-locale += "${datadir}/open-vm-tools/messages"
+FILES_${PN}-dev += "${libdir}/open-vm-tools/plugins/common/lib*.la"
+FILES_${PN}-dbg += "\
+ ${libdir}/open-vm-tools/plugins/common/.debug \
+ ${libdir}/open-vm-tools/plugins/vmsvc/.debug \
+ "
+
+CONFFILES_${PN} += "${sysconfdir}/vmware-tools/tools.conf"
+
+RDEPENDS_${PN} = "util-linux libdnet fuse"
+
+do_install_append() {
+ ln -sf ${sbindir}/mount.vmhgfs ${D}/sbin/mount.vmhgfs
+ install -d ${D}${sysconfdir}/vmware-tools
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}${systemd_unitdir}/system
+ install -m 644 ${WORKDIR}/*.service ${D}${systemd_unitdir}/system
+ else
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/vmtoolsd.init ${D}${sysconfdir}/init.d/vmtoolsd
+ fi
+ install -m 0644 ${WORKDIR}/tools.conf ${D}${sysconfdir}/vmware-tools/tools.conf
+}
+
+do_configure_prepend() {
+ export CUSTOM_DNET_NAME=dnet
+ export CUSTOM_DNET_LIBS=-L${STAGING_LIBDIR}/libdnet.so
+}
+
+INITSCRIPT_PACKAGES = "${PN}"
+INITSCRIPT_NAME_${PN} = "vmtoolsd"
+INITSCRIPT_PARAMS_${PN} = "start 90 2 3 4 5 . stop 60 0 1 6 ."
+
+python() {
+ if 'networking-layer' not in d.getVar('BBFILE_COLLECTIONS').split() or \
+ 'filesystems-layer' not in d.getVar('BBFILE_COLLECTIONS').split():
+ raise bb.parse.SkipRecipe('Requires meta-networking and meta-filesystems to be present.')
+}
+
diff --git a/meta-openembedded/meta-oe/recipes-support/openct/openct/etc-openct.udev.in-disablePROGRAM.patch b/meta-openembedded/meta-oe/recipes-support/openct/openct/etc-openct.udev.in-disablePROGRAM.patch
new file mode 100644
index 000000000..745f923af
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/openct/openct/etc-openct.udev.in-disablePROGRAM.patch
@@ -0,0 +1,31 @@
+From e0d3e0bb1e38ff851696a7d8826e651d364ad8ce Mon Sep 17 00:00:00 2001
+From: Li xin <lixin.fnst@cn.fujitsu.com>
+Date: Fri, 5 Dec 2014 02:00:57 +0900
+Subject: [PATCH 1/2] etc/openct.udev.in: disablePROGRAM
+
+Bug fix: https://bugzilla.redhat.com/show_bug.cgi?id=287871
+
+Upstream-status: Pending
+
+Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
+---
+ etc/openct.udev.in | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/etc/openct.udev.in b/etc/openct.udev.in
+index d11d0e1..48083c9 100644
+--- a/etc/openct.udev.in
++++ b/etc/openct.udev.in
+@@ -22,7 +22,8 @@ ACTION!="add", GOTO="openct_usb_rules_end"
+ # 2010-01-06 removed, as latest udev doesn't know WAIT_FOR_ATTR any more.
+
+ # sleep for 100ms - the wait_for_sysfs might not be enough
+-PROGRAM="/bin/sleep 0.1"
++# Disabled in this package - see https://bugzilla.redhat.com/287871
++# PROGRAM="/bin/sleep 0.1"
+
+ # ccid
+ ATTR{bInterfaceClass}=="0b", ATTR{bInterfaceSubClass}=="00", ATTR{bInterfaceProtocol}=="00", ATTRS{idVendor}=="?*" RUN+="@udevdir@/openct_usb /dev/$parent"
+--
+1.8.4.2
+
diff --git a/meta-openembedded/meta-oe/recipes-support/openct/openct/etc-openct_usb.in-modify-UDEVINFO.patch b/meta-openembedded/meta-oe/recipes-support/openct/openct/etc-openct_usb.in-modify-UDEVINFO.patch
new file mode 100644
index 000000000..d5e3fe575
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/openct/openct/etc-openct_usb.in-modify-UDEVINFO.patch
@@ -0,0 +1,35 @@
+From d93985a137b553b2723235d03bda341dab14064f Mon Sep 17 00:00:00 2001
+From: Li xin <lixin.fnst@cn.fujitsu.com>
+Date: Fri, 5 Dec 2014 02:04:03 +0900
+Subject: [PATCH 2/2] etc/openct_usb.in: modify UDEVINFO
+
+this patch is from Fedora
+
+Upstream-status: Pending
+
+Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
+---
+ etc/openct_usb.in | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/etc/openct_usb.in b/etc/openct_usb.in
+index 32f91aa..917467d 100644
+--- a/etc/openct_usb.in
++++ b/etc/openct_usb.in
+@@ -15,10 +15,10 @@ if [ -z "$DEVNAME" ]; then
+ # Guess udev info interface.
+ # Newer udev uses udevadm
+ #
+- if which udevinfo > /dev/null 2>&1; then
+- UDEVINFO="udevinfo"
+- else
++ if which udevadm > /dev/null 2>&1; then
+ UDEVINFO="udevadm info"
++ else
++ UDEVINFO="udevinfo"
+ fi
+ DEVNAME=/dev/$($UDEVINFO --query=name --path=$(dirname $DEVPATH))
+ fi
+--
+1.8.4.2
+
diff --git a/meta-openembedded/meta-oe/recipes-support/openct/openct/openct.init b/meta-openembedded/meta-oe/recipes-support/openct/openct/openct.init
new file mode 100644
index 000000000..c6896095e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/openct/openct/openct.init
@@ -0,0 +1,89 @@
+#!/bin/sh
+#
+# openct This shell script takes care of starting and stopping OpenCT.
+#
+# chkconfig: 2345 24 89
+# description: OpenCT is a middleware framework for smart card terminals.
+#
+# processname: ifdhandler
+# config: /etc/openct.conf
+
+### BEGIN INIT INFO
+# Provides: openct
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Should-Start: $syslog $network
+# Should-Stop: $syslog $network
+# Short-Description: Middleware framework for smart card terminals
+# Description: This starts/stops the OpenCT middleware framework support
+# for smart card terminals.
+### END INIT INFO
+
+. /etc/init.d/functions
+
+exec="/usr/sbin/openct-control"
+prog=openct
+proc=ifdhandler
+
+OPENCT_OPTIONS=
+[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
+
+lockfile=/var/lock/subsys/$prog
+
+start() {
+ retval=0
+ if ! status $proc >/dev/null 2>&1 ; then
+ action $"Initializing OpenCT smart card terminals: " \
+ $exec $OPENCT_OPTIONS init
+ retval=$?
+ [ $retval -eq 0 ] && touch $lockfile
+ fi
+ return $retval
+}
+
+stop() {
+ if status $proc >/dev/null 2>&1 ; then
+ action $"Stopping OpenCT smart card terminals: " \
+ $exec $OPENCT_OPTIONS shutdown
+ fi
+ retval=$?
+ if [ $retval -eq 0 ] ; then
+ rm -f /var/run/openct/status
+ rm -f $lockfile
+ fi
+ return $retval
+}
+
+restart() {
+ stop
+ start
+}
+
+oct_status() {
+ status $proc
+ retval=$?
+ if [ -e /var/run/openct/status ] ; then
+ $exec $OPENCT_OPTIONS status
+ [ -e /var/run/openct/status ] && \
+ echo $"Waiting for reader attach/detach events..."
+ fi
+ return $retval
+}
+
+case "$1" in
+ start|stop|restart)
+ $1
+ ;;
+ reload|force-reload)
+ restart
+ ;;
+ status)
+ oct_status
+ ;;
+ try-restart|condrestart)
+ [ ! -f $lockfile ] || restart
+ ;;
+ *)
+ echo $"Usage: $0 {start|stop|status|restart|try-restart|reload|force-reload}"
+ exit 2
+esac
diff --git a/meta-openembedded/meta-oe/recipes-support/openct/openct/openct.service b/meta-openembedded/meta-oe/recipes-support/openct/openct/openct.service
new file mode 100644
index 000000000..c9ec497fa
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/openct/openct/openct.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Openct Middleware framework for smart card terminals
+After=syslog.target network.target
+
+[Service]
+EnvironmentFile=-/etc/sysconfig/openct
+ExecStart=/usr/sbin/openct-control $OPENCT_OPTIONS init
+ExecStop=/usr/sbin/openct-control $OPENCT_OPTIONS shutdown
+RemainAfterExit=yes
+KillMode=none
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-openembedded/meta-oe/recipes-support/openct/openct/openct.sysconfig b/meta-openembedded/meta-oe/recipes-support/openct/openct/openct.sysconfig
new file mode 100644
index 000000000..ffc270790
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/openct/openct/openct.sysconfig
@@ -0,0 +1,5 @@
+# -*- sh -*-
+# Extra options to pass to openct-control.
+# Consult "/usr/sbin/openct-control -h" for available options.
+#
+OPENCT_OPTIONS=""
diff --git a/meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb b/meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb
new file mode 100644
index 000000000..913290cd9
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb
@@ -0,0 +1,94 @@
+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, \
+as CT-API driver, or as a small and lean middleware, \
+so applications can use it with minimal overhead. \
+OpenCT also has a primitive mechanism to export smart card \
+readers to remote machines via TCP/IP."
+
+DEPENDS += "libtool pcsc-lite libusb-compat"
+
+SRC_URI = " \
+ ${DEBIAN_MIRROR}/main/o/${BPN}/${BPN}_${PV}.orig.tar.gz \
+ file://etc-openct.udev.in-disablePROGRAM.patch \
+ file://etc-openct_usb.in-modify-UDEVINFO.patch \
+ file://openct.init \
+ file://openct.sysconfig \
+ file://openct.service \
+"
+
+SRC_URI[md5sum] = "a1da3358ab798f1cb9232f1dbababc21"
+SRC_URI[sha256sum] = "6cd3e2933d29eb1f875c838ee58b8071fd61f0ec8ed5922a86c01c805d181a68"
+
+LICENSE = "LGPLv2+"
+LIC_FILES_CHKSUM = "file://LGPL-2.1;md5=2d5025d4aa3495befef8f17206a5b0a1"
+
+inherit systemd
+SYSTEMD_SERVICE_${PN} += "openct.service "
+SYSTEMD_AUTO_ENABLE = "enable"
+
+EXTRA_OECONF=" \
+ --disable-static \
+ --enable-usb \
+ --enable-pcsc \
+ --enable-doc \
+ --enable-api-doc \
+ --with-udev=${nonarch_base_libdir}/udev \
+ --with-bundle=${libdir}/pcsc/drivers \
+"
+
+inherit autotools pkgconfig
+
+FILES_${PN} += " \
+ ${libdir}/ctapi \
+ ${nonarch_base_libdir}/udev \
+ ${libdir}/openct-ifd.so \
+ ${libdir}/pcsc \
+ /run/openct/status \
+"
+
+FILES_${PN}-dbg += " \
+ ${libdir}/ctapi/.debug \
+ ${libdir}/pcsc/drivers/openct-ifd.bundle/Contents/Linux/.debug \
+"
+
+INSANE_SKIP_${PN} += "dev-deps"
+
+do_install_append() {
+ rm -r ${D}/${localstatedir}/run
+}
+
+do_install () {
+ rm -rf ${D}
+ install -d ${D}/etc
+ install -dm 755 ${D}${nonarch_base_libdir}/udev
+ # fix up hardcoded paths
+ sed -i -e 's,/etc/,${sysconfdir}/,' -e 's,/usr/sbin/,${sbindir}/,' \
+ ${WORKDIR}/openct.service ${WORKDIR}/openct.init
+
+ oe_runmake install DESTDIR=${D}
+ install -dm 755 ${D}${libdir}/ctapi/
+ mv ${D}${libdir}/libopenctapi.so ${D}${libdir}/ctapi/
+ install -Dpm 644 etc/openct.udev ${D}/etc/udev/rules.d/60-openct.rules
+ install -pm 644 etc/openct.conf ${D}/etc/openct.conf
+
+ install -Dpm 755 ${WORKDIR}/openct.init ${D}/etc/init.d/openct
+ install -Dpm 644 ${WORKDIR}/openct.sysconfig ${D}/etc/sysconfig/openct
+
+ install -d ${D}/${systemd_unitdir}/system
+ install -m 644 ${WORKDIR}/openct.service ${D}/${systemd_unitdir}/system
+
+ so=$(find ${D} -name \*.so | sed "s|^${D}||")
+ sed -i -e 's|\\(LIBPATH\\s*\\).*|\\1$so|' etc/reader.conf
+ install -Dpm 644 etc/reader.conf ${D}/etc/reader.conf.d/openct.conf
+
+ install -dm 755 ${D}${localstatedir}/run/openct
+ touch ${D}${localstatedir}/run/openct/status
+ chmod 644 ${D}${localstatedir}/run/openct/status
+}
+
+pkg_postinst_${PN} () {
+ ln -sf ctapi/libopenctapi.so ${libdir}/libopenctapi.so
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch
new file mode 100644
index 000000000..4d76ad40c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch
@@ -0,0 +1,38 @@
+From 4801a057730632225337d7f6d26b9335e6b9b078 Mon Sep 17 00:00:00 2001
+From: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
+Date: Thu, 31 Mar 2016 00:20:15 +0200
+Subject: [PATCH] 3rdparty/ippicv: Use pre-downloaded ipp
+
+Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
+Signed-off-by: Ismo Puustinen <ismo.puustinen@intel.com>
+---
+ 3rdparty/ippicv/ippicv.cmake | 15 +--------------
+ 1 file changed, 1 insertion(+), 14 deletions(-)
+
+diff --git a/3rdparty/ippicv/ippicv.cmake b/3rdparty/ippicv/ippicv.cmake
+index d601da4bb..f6fc1098c 100644
+--- a/3rdparty/ippicv/ippicv.cmake
++++ b/3rdparty/ippicv/ippicv.cmake
+@@ -39,18 +39,5 @@ function(download_ippicv root_var)
+ endif()
+
+ set(THE_ROOT "${OpenCV_BINARY_DIR}/3rdparty/ippicv")
+- ocv_download(FILENAME ${OPENCV_ICV_NAME}
+- HASH ${OPENCV_ICV_HASH}
+- URL
+- "${OPENCV_IPPICV_URL}"
+- "$ENV{OPENCV_IPPICV_URL}"
+- "https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/"
+- DESTINATION_DIR "${THE_ROOT}"
+- ID IPPICV
+- STATUS res
+- UNPACK RELATIVE_URL)
+-
+- if(res)
+- set(${root_var} "${THE_ROOT}/${OPENCV_ICV_PACKAGE_SUBDIR}" PARENT_SCOPE)
+- endif()
++ set(${root_var} "${THE_ROOT}/${OPENCV_ICV_PACKAGE_SUBDIR}" PARENT_SCOPE)
+ endfunction()
+--
+2.13.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Dont-use-isystem.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Dont-use-isystem.patch
new file mode 100644
index 000000000..6dd48fcdc
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-build-workaround-GCC-7.1.1-compilation-issue-with-sa.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-build-workaround-GCC-7.1.1-compilation-issue-with-sa.patch
new file mode 100644
index 000000000..0140633db
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-carotene-don-t-use-__asm__-with-aarch64.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-carotene-don-t-use-__asm__-with-aarch64.patch
new file mode 100644
index 000000000..a1a56e0e4
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-Do-not-enable-asm-with-clang.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-Do-not-enable-asm-with-clang.patch
new file mode 100644
index 000000000..22e868a03
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-Make-opencv-ts-create-share-library-intead-of-static.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-Make-opencv-ts-create-share-library-intead-of-static.patch
new file mode 100644
index 000000000..a845505a8
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-Make-opencv-ts-create-share-library-intead-of-static.patch
@@ -0,0 +1,26 @@
+From 350525293aef65490e80104ddd99e1b21c5d54b0 Mon Sep 17 00:00:00 2001
+From: Bian Naimeng <biannm@cn.fujitsu.com>
+Date: Wed, 19 Apr 2017 03:11:37 +0900
+Subject: [PATCH 2/3] Make opencv-ts create share library intead of static.
+
+Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
+---
+ modules/ts/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/ts/CMakeLists.txt b/modules/ts/CMakeLists.txt
+index f95bed079..ee67858df 100644
+--- a/modules/ts/CMakeLists.txt
++++ b/modules/ts/CMakeLists.txt
+@@ -4,7 +4,7 @@ if(NOT BUILD_opencv_ts AND NOT BUILD_TESTS AND NOT BUILD_PERF_TESTS)
+ ocv_module_disable(ts)
+ endif()
+
+-set(OPENCV_MODULE_TYPE STATIC)
++#set(OPENCV_MODULE_TYPE STATIC)
+ set(OPENCV_MODULE_IS_PART_OF_WORLD FALSE)
+
+ if(WINRT)
+--
+2.13.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-imgcodecs-refactoring-improve-code-quality.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0002-imgcodecs-refactoring-improve-code-quality.patch
new file mode 100644
index 000000000..39f33af9d
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0003-To-fix-errors-as-following.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0003-To-fix-errors-as-following.patch
new file mode 100644
index 000000000..a22b04a90
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0003-imgproc-test-add-checks-for-remove-call.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0003-imgproc-test-add-checks-for-remove-call.patch
new file mode 100644
index 000000000..5f4a60c96
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/opencv/opencv/CVE-2017-14136.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/CVE-2017-14136.patch
new file mode 100644
index 000000000..7ad50a2d2
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/opencv/opencv/already-exists.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/already-exists.patch
new file mode 100644
index 000000000..6e24f2de8
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/already-exists.patch
@@ -0,0 +1,394 @@
+From e4bf148cddf277834e57c9afeec8daff8378a655 Mon Sep 17 00:00:00 2001
+From: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
+Date: Wed, 22 Nov 2017 15:27:07 +0100
+Subject: [PATCH] Fix: File already exists in database: caffe.proto
+
+Fixes error when importing python cv
+
+Upstream-status: Backport https://github.com/opencv/opencv/pull/10092
+Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
+---
+ modules/dnn/CMakeLists.txt | 6 +++---
+ modules/dnn/src/caffe/caffe_importer.cpp | 1 -
+ modules/dnn/src/caffe/caffe_io.cpp | 1 -
+ modules/dnn/src/caffe/caffe_io.hpp | 2 +-
+ modules/dnn/src/caffe/{caffe.proto => opencv-caffe.proto} | 0
+ 5 files changed, 4 insertions(+), 6 deletions(-)
+ rename modules/dnn/src/caffe/{caffe.proto => opencv-caffe.proto} (100%)
+
+diff --git a/modules/dnn/CMakeLists.txt b/modules/dnn/CMakeLists.txt
+index c6329a742263..8ef00ef983ff 100644
+--- a/modules/dnn/CMakeLists.txt
++++ b/modules/dnn/CMakeLists.txt
+@@ -55,13 +55,13 @@ ocv_warnings_disable(CMAKE_CXX_FLAGS
+
+ if(PROTOBUF_UPDATE_FILES)
+ file(GLOB proto_files src/tensorflow/*.proto)
+- list(APPEND proto_files src/caffe/caffe.proto)
++ list(APPEND proto_files src/caffe/opencv-caffe.proto)
+ PROTOBUF_GENERATE_CPP(Protobuf_HDRS Protobuf_SRCS ${proto_files})
+ else()
+ file(GLOB fw_srcs ${CMAKE_CURRENT_SOURCE_DIR}/misc/tensorflow/*.cc)
+ file(GLOB fw_hdrs ${CMAKE_CURRENT_SOURCE_DIR}/misc/tensorflow/*.h)
+- list(APPEND fw_srcs ${CMAKE_CURRENT_SOURCE_DIR}/misc/caffe/caffe.pb.cc)
+- list(APPEND fw_hdrs ${CMAKE_CURRENT_SOURCE_DIR}/misc/caffe/caffe.pb.h)
++ list(APPEND fw_srcs ${CMAKE_CURRENT_SOURCE_DIR}/misc/caffe/opencv-caffe.pb.cc)
++ list(APPEND fw_hdrs ${CMAKE_CURRENT_SOURCE_DIR}/misc/caffe/opencv-caffe.pb.h)
+ list(APPEND Protobuf_SRCS ${fw_srcs})
+ list(APPEND Protobuf_HDRS ${fw_hdrs})
+ list(APPEND Protobuf_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/misc/caffe)
+diff --git a/modules/dnn/src/caffe/caffe_importer.cpp b/modules/dnn/src/caffe/caffe_importer.cpp
+index c075651b95b3..2c977c84b0f4 100644
+--- a/modules/dnn/src/caffe/caffe_importer.cpp
++++ b/modules/dnn/src/caffe/caffe_importer.cpp
+@@ -42,7 +42,6 @@
+ #include "../precomp.hpp"
+
+ #ifdef HAVE_PROTOBUF
+-#include "caffe.pb.h"
+
+ #include <iostream>
+ #include <fstream>
+diff --git a/modules/dnn/src/caffe/caffe_io.cpp b/modules/dnn/src/caffe/caffe_io.cpp
+index 0f46ea77df9a..1d3c518f1328 100644
+--- a/modules/dnn/src/caffe/caffe_io.cpp
++++ b/modules/dnn/src/caffe/caffe_io.cpp
+@@ -99,7 +99,6 @@
+ #include <fstream>
+ #include <vector>
+
+-#include "caffe.pb.h"
+ #include "caffe_io.hpp"
+ #include "glog_emulator.hpp"
+
+diff --git a/modules/dnn/src/caffe/caffe_io.hpp b/modules/dnn/src/caffe/caffe_io.hpp
+index 09bc5709a24e..f5912c3bcec1 100644
+--- a/modules/dnn/src/caffe/caffe_io.hpp
++++ b/modules/dnn/src/caffe/caffe_io.hpp
+@@ -91,7 +91,7 @@
+ #define __OPENCV_DNN_CAFFE_IO_HPP__
+ #ifdef HAVE_PROTOBUF
+
+-#include "caffe.pb.h"
++#include "opencv-caffe.pb.h"
+
+ namespace cv {
+ namespace dnn {
+diff --git a/modules/dnn/src/caffe/caffe.proto b/modules/dnn/src/caffe/opencv-caffe.proto
+similarity index 100%
+rename from modules/dnn/src/caffe/caffe.proto
+rename to modules/dnn/src/caffe/opencv-caffe.proto
+diff --git a/modules/dnn/src/layers/detection_output_layer.cpp b/modules/dnn/src/layers/detection_output_layer.cpp
+index 0b72326f7e7d..f413bad5b81a 100644
+--- a/modules/dnn/src/layers/detection_output_layer.cpp
++++ b/modules/dnn/src/layers/detection_output_layer.cpp
+@@ -44,7 +44,7 @@
+ #include "layers_common.hpp"
+ #include <float.h>
+ #include <string>
+-#include <caffe.pb.h>
++#include <opencv-caffe.pb.h>
+
+ namespace cv
+ {
+diff --git a/modules/dnn/src/caffe/caffe_importer.cpp b/modules/dnn/src/caffe/caffe_importer.cpp
+index 2c977c84b0f4..a1827a381117 100644
+--- a/modules/dnn/src/caffe/caffe_importer.cpp
++++ b/modules/dnn/src/caffe/caffe_importer.cpp
+@@ -78,8 +78,8 @@ static cv::String toString(const T &v)
+
+ class CaffeImporter : public Importer
+ {
+- caffe::NetParameter net;
+- caffe::NetParameter netBinary;
++ opencvcaffe::NetParameter net;
++ opencvcaffe::NetParameter netBinary;
+
+ public:
+
+@@ -197,7 +197,7 @@ public:
+ }
+ }
+
+- void blobShapeFromProto(const caffe::BlobProto &pbBlob, MatShape& shape)
++ void blobShapeFromProto(const opencvcaffe::BlobProto &pbBlob, MatShape& shape)
+ {
+ shape.clear();
+ if (pbBlob.has_num() || pbBlob.has_channels() || pbBlob.has_height() || pbBlob.has_width())
+@@ -209,7 +209,7 @@ public:
+ }
+ else if (pbBlob.has_shape())
+ {
+- const caffe::BlobShape &_shape = pbBlob.shape();
++ const opencvcaffe::BlobShape &_shape = pbBlob.shape();
+
+ for (int i = 0; i < _shape.dim_size(); i++)
+ shape.push_back((int)_shape.dim(i));
+@@ -218,7 +218,7 @@ public:
+ CV_Error(Error::StsError, "Unknown shape of input blob");
+ }
+
+- void blobFromProto(const caffe::BlobProto &pbBlob, cv::Mat &dstBlob)
++ void blobFromProto(const opencvcaffe::BlobProto &pbBlob, cv::Mat &dstBlob)
+ {
+ MatShape shape;
+ blobShapeFromProto(pbBlob, shape);
+@@ -233,7 +233,7 @@ public:
+ dstData[i] = pbBlob.data(i);
+ }
+
+- void extractBinaryLayerParms(const caffe::LayerParameter& layer, LayerParams& layerParams)
++ void extractBinaryLayerParms(const opencvcaffe::LayerParameter& layer, LayerParams& layerParams)
+ {
+ const std::string &name = layer.name();
+
+@@ -247,7 +247,7 @@ public:
+ if (li == netBinary.layer_size() || netBinary.layer(li).blobs_size() == 0)
+ return;
+
+- const caffe::LayerParameter &binLayer = netBinary.layer(li);
++ const opencvcaffe::LayerParameter &binLayer = netBinary.layer(li);
+ layerParams.blobs.resize(binLayer.blobs_size());
+ for (int bi = 0; bi < binLayer.blobs_size(); bi++)
+ {
+@@ -289,7 +289,7 @@ public:
+
+ for (int li = 0; li < layersSize; li++)
+ {
+- const caffe::LayerParameter &layer = net.layer(li);
++ const opencvcaffe::LayerParameter &layer = net.layer(li);
+ String name = layer.name();
+ String type = layer.type();
+ LayerParams layerParams;
+@@ -313,7 +313,7 @@ public:
+ addedBlobs.clear();
+ }
+
+- void addOutput(const caffe::LayerParameter &layer, int layerId, int outNum)
++ void addOutput(const opencvcaffe::LayerParameter &layer, int layerId, int outNum)
+ {
+ const std::string &name = layer.top(outNum);
+
+diff --git a/modules/dnn/src/caffe/caffe_io.hpp b/modules/dnn/src/caffe/caffe_io.hpp
+index f5912c3bcec1..24cd5fa254eb 100644
+--- a/modules/dnn/src/caffe/caffe_io.hpp
++++ b/modules/dnn/src/caffe/caffe_io.hpp
+@@ -98,9 +98,9 @@ namespace dnn {
+
+ // Read parameters from a file into a NetParameter proto message.
+ void ReadNetParamsFromTextFileOrDie(const char* param_file,
+- caffe::NetParameter* param);
++ opencvcaffe::NetParameter* param);
+ void ReadNetParamsFromBinaryFileOrDie(const char* param_file,
+- caffe::NetParameter* param);
++ opencvcaffe::NetParameter* param);
+
+ }
+ }
+diff --git a/modules/dnn/src/caffe/opencv-caffe.proto b/modules/dnn/src/caffe/opencv-caffe.proto
+index 3d23fb48ea6a..df4e1d3269ae 100644
+--- a/modules/dnn/src/caffe/opencv-caffe.proto
++++ b/modules/dnn/src/caffe/opencv-caffe.proto
+@@ -48,7 +48,7 @@
+
+ syntax = "proto2";
+
+-package caffe;
++package opencvcaffe;
+
+ // Specifies the shape (dimensions) of a Blob.
+ message BlobShape {
+diff --git a/modules/dnn/src/layers/detection_output_layer.cpp b/modules/dnn/src/layers/detection_output_layer.cpp
+index f413bad5b81a..832c257eebf9 100644
+--- a/modules/dnn/src/layers/detection_output_layer.cpp
++++ b/modules/dnn/src/layers/detection_output_layer.cpp
+@@ -72,7 +72,7 @@ public:
+
+ int _backgroundLabelId;
+
+- typedef caffe::PriorBoxParameter_CodeType CodeType;
++ typedef opencvcaffe::PriorBoxParameter_CodeType CodeType;
+ CodeType _codeType;
+
+ bool _varianceEncodedInTarget;
+@@ -85,7 +85,7 @@ public:
+ enum { _numAxes = 4 };
+ static const std::string _layerName;
+
+- typedef std::map<int, std::vector<caffe::NormalizedBBox> > LabelBBox;
++ typedef std::map<int, std::vector<opencvcaffe::NormalizedBBox> > LabelBBox;
+
+ bool getParameterDict(const LayerParams &params,
+ const std::string &parameterName,
+@@ -131,11 +131,11 @@ public:
+ {
+ String codeTypeString = params.get<String>("code_type").toLowerCase();
+ if (codeTypeString == "corner")
+- _codeType = caffe::PriorBoxParameter_CodeType_CORNER;
++ _codeType = opencvcaffe::PriorBoxParameter_CodeType_CORNER;
+ else if (codeTypeString == "center_size")
+- _codeType = caffe::PriorBoxParameter_CodeType_CENTER_SIZE;
++ _codeType = opencvcaffe::PriorBoxParameter_CodeType_CENTER_SIZE;
+ else
+- _codeType = caffe::PriorBoxParameter_CodeType_CORNER;
++ _codeType = opencvcaffe::PriorBoxParameter_CodeType_CORNER;
+ }
+
+ DetectionOutputLayerImpl(const LayerParams &params)
+@@ -215,7 +215,7 @@ public:
+ GetConfidenceScores(confidenceData, num, numPriors, _numClasses, allConfidenceScores);
+
+ // Retrieve all prior bboxes
+- std::vector<caffe::NormalizedBBox> priorBBoxes;
++ std::vector<opencvcaffe::NormalizedBBox> priorBBoxes;
+ std::vector<std::vector<float> > priorVariances;
+ GetPriorBBoxes(priorData, numPriors, priorBBoxes, priorVariances);
+
+@@ -272,7 +272,7 @@ public:
+ for (size_t j = 0; j < indices.size(); ++j, ++count)
+ {
+ int idx = indices[j];
+- const caffe::NormalizedBBox& decode_bbox = label_bboxes->second[idx];
++ const opencvcaffe::NormalizedBBox& decode_bbox = label_bboxes->second[idx];
+ outputsData[count * 7] = i;
+ outputsData[count * 7 + 1] = label;
+ outputsData[count * 7 + 2] = scores[idx];
+@@ -355,7 +355,7 @@ public:
+
+ // Compute bbox size
+ template<bool normalized>
+- static float BBoxSize(const caffe::NormalizedBBox& bbox)
++ static float BBoxSize(const opencvcaffe::NormalizedBBox& bbox)
+ {
+ if (bbox.xmax() < bbox.xmin() || bbox.ymax() < bbox.ymin())
+ {
+@@ -388,10 +388,10 @@ public:
+ // Decode a bbox according to a prior bbox
+ template<bool variance_encoded_in_target>
+ static void DecodeBBox(
+- const caffe::NormalizedBBox& prior_bbox, const std::vector<float>& prior_variance,
++ const opencvcaffe::NormalizedBBox& prior_bbox, const std::vector<float>& prior_variance,
+ const CodeType code_type,
+- const bool clip_bbox, const caffe::NormalizedBBox& bbox,
+- caffe::NormalizedBBox& decode_bbox)
++ const bool clip_bbox, const opencvcaffe::NormalizedBBox& bbox,
++ opencvcaffe::NormalizedBBox& decode_bbox)
+ {
+ float bbox_xmin = variance_encoded_in_target ? bbox.xmin() : prior_variance[0] * bbox.xmin();
+ float bbox_ymin = variance_encoded_in_target ? bbox.ymin() : prior_variance[1] * bbox.ymin();
+@@ -399,13 +399,13 @@ public:
+ float bbox_ymax = variance_encoded_in_target ? bbox.ymax() : prior_variance[3] * bbox.ymax();
+ switch(code_type)
+ {
+- case caffe::PriorBoxParameter_CodeType_CORNER:
++ case opencvcaffe::PriorBoxParameter_CodeType_CORNER:
+ decode_bbox.set_xmin(prior_bbox.xmin() + bbox_xmin);
+ decode_bbox.set_ymin(prior_bbox.ymin() + bbox_ymin);
+ decode_bbox.set_xmax(prior_bbox.xmax() + bbox_xmax);
+ decode_bbox.set_ymax(prior_bbox.ymax() + bbox_ymax);
+ break;
+- case caffe::PriorBoxParameter_CodeType_CENTER_SIZE:
++ case opencvcaffe::PriorBoxParameter_CodeType_CENTER_SIZE:
+ {
+ float prior_width = prior_bbox.xmax() - prior_bbox.xmin();
+ CV_Assert(prior_width > 0);
+@@ -431,7 +431,7 @@ public:
+ };
+ if (clip_bbox)
+ {
+- // Clip the caffe::NormalizedBBox such that the range for each corner is [0, 1]
++ // Clip the opencvcaffe::NormalizedBBox such that the range for each corner is [0, 1]
+ decode_bbox.set_xmin(std::max(std::min(decode_bbox.xmin(), 1.f), 0.f));
+ decode_bbox.set_ymin(std::max(std::min(decode_bbox.ymin(), 1.f), 0.f));
+ decode_bbox.set_xmax(std::max(std::min(decode_bbox.xmax(), 1.f), 0.f));
+@@ -443,11 +443,11 @@ public:
+
+ // Decode a set of bboxes according to a set of prior bboxes
+ static void DecodeBBoxes(
+- const std::vector<caffe::NormalizedBBox>& prior_bboxes,
++ const std::vector<opencvcaffe::NormalizedBBox>& prior_bboxes,
+ const std::vector<std::vector<float> >& prior_variances,
+ const CodeType code_type, const bool variance_encoded_in_target,
+- const bool clip_bbox, const std::vector<caffe::NormalizedBBox>& bboxes,
+- std::vector<caffe::NormalizedBBox>& decode_bboxes)
++ const bool clip_bbox, const std::vector<opencvcaffe::NormalizedBBox>& bboxes,
++ std::vector<opencvcaffe::NormalizedBBox>& decode_bboxes)
+ {
+ CV_Assert(prior_bboxes.size() == prior_variances.size());
+ CV_Assert(prior_bboxes.size() == bboxes.size());
+@@ -470,7 +470,7 @@ public:
+
+ // Decode all bboxes in a batch
+ static void DecodeBBoxesAll(const std::vector<LabelBBox>& all_loc_preds,
+- const std::vector<caffe::NormalizedBBox>& prior_bboxes,
++ const std::vector<opencvcaffe::NormalizedBBox>& prior_bboxes,
+ const std::vector<std::vector<float> >& prior_variances,
+ const int num, const bool share_location,
+ const int num_loc_classes, const int background_label_id,
+@@ -503,10 +503,10 @@ public:
+ // Get prior bounding boxes from prior_data
+ // prior_data: 1 x 2 x num_priors * 4 x 1 blob.
+ // num_priors: number of priors.
+- // prior_bboxes: stores all the prior bboxes in the format of caffe::NormalizedBBox.
++ // prior_bboxes: stores all the prior bboxes in the format of opencvcaffe::NormalizedBBox.
+ // prior_variances: stores all the variances needed by prior bboxes.
+ static void GetPriorBBoxes(const float* priorData, const int& numPriors,
+- std::vector<caffe::NormalizedBBox>& priorBBoxes,
++ std::vector<opencvcaffe::NormalizedBBox>& priorBBoxes,
+ std::vector<std::vector<float> >& priorVariances)
+ {
+ priorBBoxes.clear(); priorBBoxes.resize(numPriors);
+@@ -514,7 +514,7 @@ public:
+ for (int i = 0; i < numPriors; ++i)
+ {
+ int startIdx = i * 4;
+- caffe::NormalizedBBox& bbox = priorBBoxes[i];
++ opencvcaffe::NormalizedBBox& bbox = priorBBoxes[i];
+ bbox.set_xmin(priorData[startIdx]);
+ bbox.set_ymin(priorData[startIdx + 1]);
+ bbox.set_xmax(priorData[startIdx + 2]);
+@@ -565,7 +565,7 @@ public:
+ {
+ labelBBox[label].resize(numPredsPerClass);
+ }
+- caffe::NormalizedBBox& bbox = labelBBox[label][p];
++ opencvcaffe::NormalizedBBox& bbox = labelBBox[label][p];
+ bbox.set_xmin(locData[startIdx + c * 4]);
+ bbox.set_ymin(locData[startIdx + c * 4 + 1]);
+ bbox.set_xmax(locData[startIdx + c * 4 + 2]);
+@@ -612,7 +612,7 @@ public:
+ // nms_threshold: a threshold used in non maximum suppression.
+ // top_k: if not -1, keep at most top_k picked indices.
+ // indices: the kept indices of bboxes after nms.
+- static void ApplyNMSFast(const std::vector<caffe::NormalizedBBox>& bboxes,
++ static void ApplyNMSFast(const std::vector<opencvcaffe::NormalizedBBox>& bboxes,
+ const std::vector<float>& scores, const float score_threshold,
+ const float nms_threshold, const float eta, const int top_k,
+ std::vector<int>& indices)
+@@ -674,10 +674,10 @@ public:
+
+ // Compute the jaccard (intersection over union IoU) overlap between two bboxes.
+ template<bool normalized>
+- static float JaccardOverlap(const caffe::NormalizedBBox& bbox1,
+- const caffe::NormalizedBBox& bbox2)
++ static float JaccardOverlap(const opencvcaffe::NormalizedBBox& bbox1,
++ const opencvcaffe::NormalizedBBox& bbox2)
+ {
+- caffe::NormalizedBBox intersect_bbox;
++ opencvcaffe::NormalizedBBox intersect_bbox;
+ if (bbox2.xmin() > bbox1.xmax() || bbox2.xmax() < bbox1.xmin() ||
+ bbox2.ymin() > bbox1.ymax() || bbox2.ymax() < bbox1.ymin())
+ {
+diff --git a/modules/dnn/src/caffe/caffe_io.cpp b/modules/dnn/src/caffe/caffe_io.cpp
+index 1d3c518f1328..3cf6e255aa60 100644
+--- a/modules/dnn/src/caffe/caffe_io.cpp
++++ b/modules/dnn/src/caffe/caffe_io.cpp
+@@ -107,7 +107,7 @@ namespace dnn {
+
+ using std::string;
+ using std::map;
+-using namespace caffe;
++using namespace opencvcaffe;
+ using namespace ::google::protobuf;
+ using namespace ::google::protobuf::io;
+
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/fixpkgconfig.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/fixpkgconfig.patch
new file mode 100644
index 000000000..3aeda7d44
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/fixpkgconfig.patch
@@ -0,0 +1,29 @@
+diff --git a/cmake/OpenCVGenPkgconfig.cmake b/cmake/OpenCVGenPkgconfig.cmake
+index b8cb8777c06b..75281ee964fd 100644
+--- a/cmake/OpenCVGenPkgconfig.cmake
++++ b/cmake/OpenCVGenPkgconfig.cmake
+@@ -27,7 +27,7 @@ macro(fix_prefix lst isown)
+ get_filename_component(libdir "${item}" PATH)
+ get_filename_component(libname "${item}" NAME_WE)
+ string(REGEX REPLACE "^lib(.*)" "\\1" libname "${libname}")
+- list(APPEND _lst "-L${libdir}" "-l${libname}")
++ list(APPEND _lst "-l${libname}")
+ else()
+ list(APPEND _lst "-l${item}")
+ endif()
+@@ -66,10 +66,14 @@ ocv_list_unique(_3rdparty)
+
+ set(OPENCV_PC_LIBS
+ "-L\${exec_prefix}/${OPENCV_LIB_INSTALL_PATH}"
++ "-L\${exec_prefix}/${OPENCV_3P_LIB_INSTALL_PATH}"
+ "${_modules}"
+ )
+ if (BUILD_SHARED_LIBS)
+- set(OPENCV_PC_LIBS_PRIVATE "${_extra}")
++ set(OPENCV_PC_LIBS_PRIVATE
++ "-L\${exec_prefix}/${OPENCV_LIB_INSTALL_PATH}"
++ "${_extra}"
++ )
+ else()
+ set(OPENCV_PC_LIBS_PRIVATE
+ "-L\${exec_prefix}/${OPENCV_3P_LIB_INSTALL_PATH}"
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/javagen.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/javagen.patch
new file mode 100644
index 000000000..56526ecd8
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/javagen.patch
@@ -0,0 +1,16 @@
+Upstream-status: Inappropriate [OE specific] https://github.com/opencv/opencv/pull/10039#issuecomment-342539288
+
+Signed-off-by: Ricardo Ribalda <ricardo.ribalda@gmail.com>
+diff --git a/modules/java/CMakeLists.txt b/modules/java/CMakeLists.txt
+index 74bc0ef04169..4622fbf9a5f1 100644
+--- a/modules/java/CMakeLists.txt
++++ b/modules/java/CMakeLists.txt
+@@ -291,7 +291,7 @@ foreach(java_file ${step3_input_files})
+ endif()
+ if(__configure)
+ configure_file("${java_file}" "${java_src_dir}/${output_name}" @ONLY)
+- elseif(NOT "${java_file}" MATCHES "${OpenCV_BINARY_DIR}/")
++ elseif(EXISTS "${java_file}" AND NOT "${java_file}" MATCHES "${OpenCV_BINARY_DIR}/")
+ configure_file("${java_file}" "${java_src_dir}/${output_name}" COPYONLY)
+ else()
+ add_custom_command(OUTPUT "${java_src_dir}/${output_name}"
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/protobuf.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/protobuf.patch
new file mode 100644
index 000000000..c63dc142e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/protobuf.patch
@@ -0,0 +1,57 @@
+Upstream-status: Inappropriate [OE specific]
+
+Signed-off-by: Ricardo Ribalda <ricardo.ribalda@gmail.com>
+diff --git a/cmake/OpenCVFindLibProtobuf.cmake b/cmake/OpenCVFindLibProtobuf.cmake
+index b6ce1e7fd56b..e916ec0df2a6 100644
+--- a/cmake/OpenCVFindLibProtobuf.cmake
++++ b/cmake/OpenCVFindLibProtobuf.cmake
+@@ -7,21 +7,21 @@ OCV_OPTION(BUILD_PROTOBUF "Force to build libprotobuf from sources" ON)
+ OCV_OPTION(PROTOBUF_UPDATE_FILES "Force to rebuild .proto files" OFF)
+
+ if(PROTOBUF_UPDATE_FILES)
+- if(NOT DEFINED Protobuf_PROTOC_EXECUTABLE)
++ if(NOT DEFINED PROTOBUF_PROTOC_EXECUTABLE)
+ find_package(Protobuf QUIET)
+ endif()
+- if(DEFINED Protobuf_PROTOC_EXECUTABLE AND EXISTS ${Protobuf_PROTOC_EXECUTABLE})
+- message(STATUS "The protocol buffer compiler is found (${Protobuf_PROTOC_EXECUTABLE})")
++ if(DEFINED PROTOBUF_PROTOC_EXECUTABLE AND EXISTS ${PROTOBUF_PROTOC_EXECUTABLE})
++ message(STATUS "The protocol buffer compiler is found (${PROTOBUF_PROTOC_EXECUTABLE})")
+ else()
+- message(FATAL_ERROR "The protocol buffer compiler is not found (Protobuf_PROTOC_EXECUTABLE='${Protobuf_PROTOC_EXECUTABLE}')")
++ message(FATAL_ERROR "The protocol buffer compiler is not found (PROTOBUF_PROTOC_EXECUTABLE='${PROTOBUF_PROTOC_EXECUTABLE}')")
+ endif()
+ endif()
+
+-if(NOT BUILD_PROTOBUF AND NOT (DEFINED Protobuf_INCLUDE_DIRS AND DEFINED Protobuf_LIBRARIES))
++if(NOT BUILD_PROTOBUF AND NOT (DEFINED PROTOBUF_INCLUDE_DIR AND DEFINED PROTOBUF_LIBRARIES))
+ find_package(Protobuf QUIET)
+ endif()
+
+-if(Protobuf_FOUND)
++if(PROTOBUF_FOUND OR (DEFINED PROTOBUF_INCLUDE_DIR AND DEFINED PROTOBUF_LIBRARIES))
+ # nothing
+ else()
+ set(Protobuf_LIBRARIES libprotobuf)
+diff --git a/modules/dnn/CMakeLists.txt b/modules/dnn/CMakeLists.txt
+index 2a71568d1a44..c6329a742263 100644
+--- a/modules/dnn/CMakeLists.txt
++++ b/modules/dnn/CMakeLists.txt
+@@ -7,7 +7,7 @@ if(DEFINED BUILD_opencv_dnn AND NOT BUILD_opencv_dnn)
+ endif()
+
+ include(${OpenCV_SOURCE_DIR}/cmake/OpenCVFindLibProtobuf.cmake)
+-if(NOT Protobuf_FOUND)
++if(NOT PROTOBUF_FOUND)
+ ocv_module_disable(opencv_dnn)
+ endif()
+
+@@ -72,7 +72,7 @@ ocv_source_group("Src\\protobuf" FILES ${Protobuf_SRCS} ${Protobuf_HDRS})
+ ocv_module_include_directories(include ${Protobuf_INCLUDE_DIRS})
+
+ ocv_glob_module_sources(${Protobuf_SRCS} ${Protobuf_HDRS} ${CBLAS_H_PROXY_PATH})
+-ocv_create_module(${Protobuf_LIBRARIES} ${LAPACK_LIBRARIES})
++ocv_create_module(${PROTOBUF_LIBRARIES} ${LAPACK_LIBRARIES})
+ ocv_add_samples()
+ ocv_add_accuracy_tests()
+ ocv_add_perf_tests()
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/tinydnn.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/tinydnn.patch
new file mode 100644
index 000000000..c433fc312
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/tinydnn.patch
@@ -0,0 +1,34 @@
+Upstream-status: Inappropriate [OE specific]
+
+Signed-off-by: Ricardo Ribalda <ricardo.ribalda@gmail.com>
+diff --git a/modules/dnn_modern/CMakeLists.txt b/modules/dnn_modern/CMakeLists.txt
+index 79b64b12160b..ba06a0a163e4 100644
+--- a/modules/dnn_modern/CMakeLists.txt
++++ b/modules/dnn_modern/CMakeLists.txt
+@@ -15,24 +15,8 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
+ # MODULE REQUIREMENTS
+ # ----------------------------------------------------------------------------
+
+-set(TINY_DNN_CPP_PATH "${OpenCV_BINARY_DIR}/3rdparty/tinydnn")
+-set(TINY_DNN_CPP_ROOT "${TINY_DNN_CPP_PATH}/tiny-dnn-1.0.0a3")
+-ocv_download(FILENAME "v1.0.0a3.tar.gz"
+- HASH "adb1c512e09ca2c7a6faef36f9c53e59"
+- URL
+- "${OPENCV_TINY_DNN_URL}"
+- "$ENV{OPENCV_TINY_DNN_URL}"
+- "https://github.com/tiny-dnn/tiny-dnn/archive/"
+- DESTINATION_DIR "${TINY_DNN_CPP_PATH}"
+- STATUS TINY_DNN_DOWNLOAD_SUCCESS
+- ID "tiny-dnn"
+- UNPACK RELATIVE_URL)
+-
+-if(NOT TINY_DNN_DOWNLOAD_SUCCESS)
+- message(STATUS "Failed to download tiny-dnn sources")
+-endif()
+-
+-find_package(TinyDNN QUIET)
++set(TINYDNN_INCLUDE_DIRS "${OpenCV_SOURCE_DIR}/3rdparty/tinydnn/tiny-dnn-1.0.0a3")
++set(TinyDNN_FOUND TRUE)
+
+ include(CheckCXXCompilerFlag)
+ CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/uselocalxfeatures.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/uselocalxfeatures.patch
new file mode 100644
index 000000000..fc273a891
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/uselocalxfeatures.patch
@@ -0,0 +1,20 @@
+diff --git a/modules/xfeatures2d/CMakeLists.txt b/modules/xfeatures2d/CMakeLists.txt
+index e1755595..c7009c47 100644
+--- a/modules/xfeatures2d/CMakeLists.txt
++++ b/modules/xfeatures2d/CMakeLists.txt
+@@ -5,10 +5,10 @@ ocv_define_module(xfeatures2d opencv_core opencv_imgproc opencv_features2d openc
+ include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/download_vgg.cmake)
+ include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/download_boostdesc.cmake)
+ set(DOWNLOAD_DIR "${OpenCV_BINARY_DIR}/downloads/xfeatures2d")
+-download_boost_descriptors("${DOWNLOAD_DIR}" boost_status)
+-download_vgg_descriptors("${DOWNLOAD_DIR}" vgg_status)
+-if(NOT boost_status OR NOT vgg_status)
+- ocv_module_disable(xfeatures2d)
+-endif()
++#download_boost_descriptors("${DOWNLOAD_DIR}" boost_status)
++#download_vgg_descriptors("${DOWNLOAD_DIR}" vgg_status)
++#if(NOT boost_status OR NOT vgg_status)
++# ocv_module_disable(xfeatures2d)
++#endif()
+
+ ocv_module_include_directories("${DOWNLOAD_DIR}")
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.3.bb b/meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.3.bb
new file mode 100644
index 000000000..ca62de7c8
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.3.bb
@@ -0,0 +1,203 @@
+SUMMARY = "Opencv : The Open Computer Vision Library"
+HOMEPAGE = "http://opencv.org/"
+SECTION = "libs"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2b2f8752cc5edf504d283107d033f544"
+
+ARM_INSTRUCTION_SET_armv4 = "arm"
+ARM_INSTRUCTION_SET_armv5 = "arm"
+
+DEPENDS = "libtool swig-native bzip2 zlib glib-2.0 libwebp"
+
+SRCREV_opencv = "87c27a074db9f6d9d60513f351daa903606ca370"
+SRCREV_contrib = "2a9d1b22ed76eb22fad1a5edf6faf4d05f207b13"
+SRCREV_ipp = "a62e20676a60ee0ad6581e217fe7e4bada3b95db"
+SRCREV_boostdesc = "34e4206aef44d50e6bbcd0ab06354b52e7466d26"
+SRCREV_vgg = "fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d"
+SRC_URI[tinydnn.md5sum] = "adb1c512e09ca2c7a6faef36f9c53e59"
+SRC_URI[tinydnn.sha256sum] = "e2c61ce8c5debaa644121179e9dbdcf83f497f39de853f8dd5175846505aa18b"
+
+def ipp_filename(d):
+ import re
+ arch = d.getVar('TARGET_ARCH', True)
+ if re.match("i.86$", arch):
+ return "ippicv_2017u2_lnx_ia32_20170418.tgz"
+ else:
+ return "ippicv_2017u2_lnx_intel64_20170418.tgz"
+
+def ipp_md5sum(d):
+ import re
+ arch = d.getVar('TARGET_ARCH', True)
+ if re.match("i.86$", arch):
+ return "f2cece00d802d4dea86df52ed095257e"
+ else:
+ return "808b791a6eac9ed78d32a7666804320e"
+
+IPP_FILENAME = "${@ipp_filename(d)}"
+IPP_MD5 = "${@ipp_md5sum(d)}"
+
+SRCREV_FORMAT = "opencv_contrib_ipp_boostdesc_vgg"
+SRC_URI = "git://github.com/opencv/opencv.git;name=opencv \
+ git://github.com/opencv/opencv_contrib.git;destsuffix=contrib;name=contrib \
+ git://github.com/opencv/opencv_3rdparty.git;branch=ippicv/master_20170418;destsuffix=ipp;name=ipp \
+ git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_boostdesc_20161012;destsuffix=boostdesc;name=boostdesc \
+ git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_vgg_20160317;destsuffix=vgg;name=vgg \
+ https://github.com/tiny-dnn/tiny-dnn/archive/v1.0.0a3.tar.gz;destsuffix=git/3rdparty/tinydnn/tiny-dnn-1.0.0a3;name=tinydnn;unpack=false \
+ file://0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch \
+ file://fixpkgconfig.patch \
+ file://uselocalxfeatures.patch;patchdir=../contrib/ \
+ file://tinydnn.patch;patchdir=../contrib/ \
+ file://0002-Make-opencv-ts-create-share-library-intead-of-static.patch \
+ file://0003-To-fix-errors-as-following.patch \
+ file://0001-build-workaround-GCC-7.1.1-compilation-issue-with-sa.patch \
+ file://0002-imgcodecs-refactoring-improve-code-quality.patch \
+ file://0003-imgproc-test-add-checks-for-remove-call.patch \
+ file://0001-Dont-use-isystem.patch \
+ file://0001-carotene-don-t-use-__asm__-with-aarch64.patch \
+ file://0002-Do-not-enable-asm-with-clang.patch \
+ file://CVE-2017-14136.patch \
+ file://javagen.patch \
+ file://protobuf.patch \
+ file://already-exists.patch \
+"
+PV = "3.3+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+do_unpack_extra() {
+ mkdir -p ${S}/3rdparty/tinydnn/
+ tar xzf ${WORKDIR}/v1.0.0a3.tar.gz -C ${S}/3rdparty/tinydnn/
+ tar xzf ${WORKDIR}/ipp/ippicv/${IPP_FILENAME} -C ${WORKDIR}
+ cp ${WORKDIR}/vgg/*.i ${WORKDIR}/contrib/modules/xfeatures2d/src
+ cp ${WORKDIR}/boostdesc/*.i ${WORKDIR}/contrib/modules/xfeatures2d/src
+}
+addtask unpack_extra after do_unpack before do_patch
+
+EXTRA_OECMAKE = "-DOPENCV_EXTRA_MODULES_PATH=${WORKDIR}/contrib/modules \
+ -DWITH_1394=OFF \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DOPENCV_ICV_HASH=${IPP_MD5} \
+ -DIPPROOT=${WORKDIR}/ippicv_lnx \
+ ${@bb.utils.contains("TARGET_CC_ARCH", "-msse3", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1", "", d)} \
+ ${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.1", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1", "", d)} \
+ ${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.2", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1 -DENABLE_SSE42=1", "", d)} \
+ ${@oe.utils.conditional("libdir", "/usr/lib64", "-DLIB_SUFFIX=64", "", d)} \
+ ${@oe.utils.conditional("libdir", "/usr/lib32", "-DLIB_SUFFIX=32", "", d)} \
+"
+EXTRA_OECMAKE_append_x86 = " -DX86=ON"
+
+PACKAGECONFIG ??= "python3 eigen jpeg png tiff v4l libv4l gstreamer samples tbb gphoto2 \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "gtk", "", d)} \
+ ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "libav", "", d)}"
+
+PACKAGECONFIG[amdblas] = "-DWITH_OPENCLAMDBLAS=ON,-DWITH_OPENCLAMDBLAS=OFF,libclamdblas,"
+PACKAGECONFIG[amdfft] = "-DWITH_OPENCLAMDFFT=ON,-DWITH_OPENCLAMDFFT=OFF,libclamdfft,"
+PACKAGECONFIG[dnn] = "-DBUILD_opencv_dnn=ON -DPROTOBUF_UPDATE_FILES=ON -DBUILD_PROTOBUF=OFF,-DBUILD_opencv_dnn=OFF,protobuf protobuf-native,"
+PACKAGECONFIG[eigen] = "-DWITH_EIGEN=ON,-DWITH_EIGEN=OFF,libeigen gflags glog,"
+PACKAGECONFIG[freetype] = "-DBUILD_opencv_freetype=ON,-DBUILD_opencv_freetype=OFF,freetype,"
+PACKAGECONFIG[gphoto2] = "-DWITH_GPHOTO2=ON,-DWITH_GPHOTO2=OFF,libgphoto2,"
+PACKAGECONFIG[gstreamer] = "-DWITH_GSTREAMER=ON,-DWITH_GSTREAMER=OFF,gstreamer1.0 gstreamer1.0-plugins-base,"
+PACKAGECONFIG[gtk] = "-DWITH_GTK=ON,-DWITH_GTK=OFF,gtk+3,"
+PACKAGECONFIG[jasper] = "-DWITH_JASPER=ON,-DWITH_JASPER=OFF,jasper,"
+PACKAGECONFIG[java] = "-DJAVA_INCLUDE_PATH=${JAVA_HOME}/include -DJAVA_INCLUDE_PATH2=${JAVA_HOME}/include/linux -DJAVA_AWT_INCLUDE_PATH=${JAVA_HOME}/include -DJAVA_AWT_LIBRARY=${JAVA_HOME}/lib/amd64/libjawt.so -DJAVA_JVM_LIBRARY=${JAVA_HOME}/lib/amd64/server/libjvm.so,,ant-native fastjar-native openjdk-8-native,"
+PACKAGECONFIG[jpeg] = "-DWITH_JPEG=ON,-DWITH_JPEG=OFF,jpeg,"
+PACKAGECONFIG[libav] = "-DWITH_FFMPEG=ON,-DWITH_FFMPEG=OFF,libav,"
+PACKAGECONFIG[libv4l] = "-DWITH_LIBV4L=ON,-DWITH_LIBV4L=OFF,v4l-utils,"
+PACKAGECONFIG[opencl] = "-DWITH_OPENCL=ON,-DWITH_OPENCL=OFF,opencl-headers virtual/opencl-icd,"
+PACKAGECONFIG[oracle-java] = "-DJAVA_INCLUDE_PATH=${ORACLE_JAVA_HOME}/include -DJAVA_INCLUDE_PATH2=${ORACLE_JAVA_HOME}/include/linux -DJAVA_AWT_INCLUDE_PATH=${ORACLE_JAVA_HOME}/include -DJAVA_AWT_LIBRARY=${ORACLE_JAVA_HOME}/lib/amd64/libjawt.so -DJAVA_JVM_LIBRARY=${ORACLE_JAVA_HOME}/lib/amd64/server/libjvm.so,,ant-native oracle-jse-jdk oracle-jse-jdk-native,"
+PACKAGECONFIG[png] = "-DWITH_PNG=ON,-DWITH_PNG=OFF,libpng,"
+PACKAGECONFIG[python2] = "-DPYTHON2_NUMPY_INCLUDE_DIRS:PATH=${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages/numpy/core/include,,python-numpy,"
+PACKAGECONFIG[python3] = "-DPYTHON3_NUMPY_INCLUDE_DIRS:PATH=${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages/numpy/core/include,,python3-numpy,"
+PACKAGECONFIG[samples] = "-DBUILD_EXAMPLES=ON -DINSTALL_PYTHON_EXAMPLES=ON,-DBUILD_EXAMPLES=OFF,,"
+PACKAGECONFIG[tbb] = "-DWITH_TBB=ON,-DWITH_TBB=OFF,tbb,"
+PACKAGECONFIG[text] = "-DBUILD_opencv_text=ON,-DBUILD_opencv_text=OFF,tesseract,"
+PACKAGECONFIG[tiff] = "-DWITH_TIFF=ON,-DWITH_TIFF=OFF,tiff,"
+PACKAGECONFIG[v4l] = "-DWITH_V4L=ON,-DWITH_V4L=OFF,v4l-utils,"
+
+inherit pkgconfig cmake
+
+inherit ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'distutils3-base', '', d)}
+inherit ${@bb.utils.contains('PACKAGECONFIG', 'python2', 'distutils-base', '', d)}
+
+export PYTHON_CSPEC="-I${STAGING_INCDIR}/${PYTHON_DIR}"
+export PYTHON="${STAGING_BINDIR_NATIVE}/${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3', 'python', d)}"
+export ORACLE_JAVA_HOME="${STAGING_DIR_NATIVE}/usr/bin/java"
+export JAVA_HOME="${STAGING_DIR_NATIVE}/usr/lib/jvm/openjdk-8-native"
+export ANT_DIR="${STAGING_DIR_NATIVE}/usr/share/ant/"
+
+TARGET_CC_ARCH += "-I${S}/include "
+
+PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'samples', '${PN}-samples', '', d)} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'oracle-java', '${PN}-java', '', d)} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'java', '${PN}-java', '', d)} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'python2', 'python-${BPN}', '', d)} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3-${BPN}', '', d)} \
+ ${PN}-apps"
+
+python populate_packages_prepend () {
+ cv_libdir = d.expand('${libdir}')
+ do_split_packages(d, cv_libdir, '^lib(.*)\.so$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev', allow_links=True)
+ do_split_packages(d, cv_libdir, '^lib(.*)\.la$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev')
+ do_split_packages(d, cv_libdir, '^lib(.*)\.a$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev')
+ do_split_packages(d, cv_libdir, '^lib(.*)\.so\.*', 'lib%s', 'OpenCV %s library', extra_depends='', allow_links=True)
+
+ pn = d.getVar('PN')
+ metapkg = pn + '-dev'
+ d.setVar('ALLOW_EMPTY_' + metapkg, "1")
+ blacklist = [ metapkg ]
+ metapkg_rdepends = [ ]
+ packages = d.getVar('PACKAGES').split()
+ for pkg in packages[1:]:
+ if not pkg in blacklist and not pkg in metapkg_rdepends and pkg.endswith('-dev'):
+ metapkg_rdepends.append(pkg)
+ d.setVar('RRECOMMENDS_' + metapkg, ' '.join(metapkg_rdepends))
+
+ metapkg = pn
+ d.setVar('ALLOW_EMPTY_' + metapkg, "1")
+ blacklist = [ metapkg, "libopencv-ts" ]
+ metapkg_rdepends = [ ]
+ for pkg in packages[1:]:
+ if not pkg in blacklist and not pkg in metapkg_rdepends and not pkg.endswith('-dev') and not pkg.endswith('-dbg') and not pkg.endswith('-doc') and not pkg.endswith('-locale') and not pkg.endswith('-staticdev'):
+ metapkg_rdepends.append(pkg)
+ d.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends))
+}
+
+PACKAGES_DYNAMIC += "^libopencv-.*"
+
+FILES_${PN} = ""
+FILES_${PN}-dbg += "${datadir}/OpenCV/java/.debug/* ${datadir}/OpenCV/samples/bin/.debug/*"
+FILES_${PN}-dev = "${includedir} ${libdir}/pkgconfig ${datadir}/OpenCV/*.cmake"
+FILES_${PN}-staticdev += "${datadir}/OpenCV/3rdparty/lib/*.a"
+FILES_${PN}-apps = "${bindir}/* ${datadir}/OpenCV"
+FILES_${PN}-java = "${datadir}/OpenCV/java"
+FILES_${PN}-samples = "${datadir}/OpenCV/samples/"
+
+INSANE_SKIP_${PN}-java = "libdir"
+INSANE_SKIP_${PN}-dbg = "libdir"
+
+ALLOW_EMPTY_${PN} = "1"
+
+SUMMARY_python-opencv = "Python bindings to opencv"
+FILES_python-opencv = "${PYTHON_SITEPACKAGES_DIR}/*"
+RDEPENDS_python-opencv = "python-core python-numpy"
+
+SUMMARY_python3-opencv = "Python bindings to opencv"
+FILES_python3-opencv = "${PYTHON_SITEPACKAGES_DIR}/*"
+RDEPENDS_python3-opencv = "python3-core python3-numpy"
+
+do_install_append() {
+ cp ${S}/include/opencv/*.h ${D}${includedir}/opencv/
+ sed -i '/blobtrack/d' ${D}${includedir}/opencv/cvaux.h
+
+ # Move Python files into correct library folder (for multilib build)
+ if [ "$libdir" != "/usr/lib" -a -d ${D}/usr/lib ]; then
+ mv ${D}/usr/lib/* ${D}/${libdir}/
+ rm -rf ${D}/usr/lib
+ fi
+
+ if ${@bb.utils.contains("PACKAGECONFIG", "samples", "true", "false", d)}; then
+ install -d ${D}${datadir}/OpenCV/samples/bin/
+ cp -f bin/*-tutorial-* bin/*-example-* ${D}${datadir}/OpenCV/samples/bin/
+ fi
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/initscript b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/initscript
new file mode 100644
index 000000000..08d1067a7
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/initscript
@@ -0,0 +1,35 @@
+#! /bin/sh
+#
+# This is an init script for openembedded
+# Copy it to /etc/init.d/openldap and type
+# > update-rc.d openldap defaults 60
+#
+
+# Source function library.
+. /etc/init.d/functions
+
+slapd=/usr/sbin/slapd
+test -x "$slapd" || exit 0
+
+
+case "$1" in
+ start)
+ echo -n "Starting OpenLDAP: "
+ start-stop-daemon --start --quiet --exec $slapd
+ echo "."
+ ;;
+ stop)
+ echo -n "Stopping OpenLDAP: "
+ start-stop-daemon --stop --quiet --pidfile /var/run/slapd.pid
+ echo "."
+ ;;
+ status)
+ status $slapd;
+ exit $?
+ ;;
+ *)
+ echo "Usage: /etc/init.d/openldap {start|stop|status}"
+ exit 1
+esac
+
+exit 0
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/install-strip.patch b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/install-strip.patch
new file mode 100644
index 000000000..2992b7030
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/install-strip.patch
@@ -0,0 +1,14 @@
+# This patch ensures that the install operations which strip
+# programs and libraries (LTINSTALL) work in a cross build
+# environment.
+--- openldap-2.2.24/.pc/install-strip.patch/build/top.mk 2005-01-20 09:00:55.000000000 -0800
++++ openldap-2.2.24/build/top.mk 2005-04-16 13:48:20.536710376 -0700
+@@ -116,7 +116,7 @@
+ LTLINK_MOD = $(LIBTOOL) $(LTONLY_MOD) --mode=link \
+ $(CC) $(LT_CFLAGS) $(LDFLAGS) $(LTFLAGS_MOD)
+
+-LTINSTALL = $(LIBTOOL) --mode=install $(INSTALL)
++LTINSTALL = STRIPPROG="" $(LIBTOOL) --mode=install $(top_srcdir)/contrib/ldapc++/install-sh -c
+ LTFINISH = $(LIBTOOL) --mode=finish
+
+ # Misc UNIX commands used in build environment
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/kill-icu.patch b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/kill-icu.patch
new file mode 100644
index 000000000..dcf541137
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/kill-icu.patch
@@ -0,0 +1,30 @@
+From: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
+
+slapd depends on ICU if it was built first.
+
+Upstream-status: inappropiate [embedded specific]
+---
+ configure.in | 8 --------
+ 1 file changed, 8 deletions(-)
+
+--- openldap-2.4.23.orig/configure.in
++++ openldap-2.4.23/configure.in
+@@ -2045,18 +2045,10 @@ if test $ol_enable_ndb != no ; then
+ SLAPD_LIBS="$SLAPD_LIBS \$(SLAPD_NDB_LIBS)"
+ fi
+ fi
+
+ dnl ----------------------------------------------------------------
+-dnl International Components for Unicode
+-OL_ICU
+-if test "$ol_icu" = no ; then
+- AC_MSG_WARN([ICU not available])
+-else
+- ICU_LIBS="$ol_icu"
+-fi
+-dnl ----------------------------------------------------------------
+ dnl
+ dnl Check for Cyrus SASL
+ dnl
+ WITH_SASL=no
+ ol_link_sasl=no
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-2.4.28-gnutls-gcrypt.patch b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-2.4.28-gnutls-gcrypt.patch
new file mode 100644
index 000000000..c7b1552c1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-2.4.28-gnutls-gcrypt.patch
@@ -0,0 +1,17 @@
+From http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/net-nds/openldap/files/
+
+Upstream-status: Unknown
+
+--
+
+--- openldap-2.4.28/configure.in.orig 2012-02-11 22:40:36.004360795 +0000
++++ openldap-2.4.28/configure.in 2012-02-11 22:40:13.410986851 +0000
+@@ -1214,7 +1214,7 @@
+ ol_with_tls=gnutls
+ ol_link_tls=yes
+
+- TLS_LIBS="-lgnutls"
++ TLS_LIBS="-lgnutls -lgcrypt"
+
+ AC_DEFINE(HAVE_GNUTLS, 1,
+ [define if you have GNUtls])
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-CVE-2015-3276.patch b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-CVE-2015-3276.patch
new file mode 100644
index 000000000..de9ca528a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-CVE-2015-3276.patch
@@ -0,0 +1,59 @@
+openldap CVE-2015-3276
+
+the patch comes from:
+https://bugzilla.redhat.com/show_bug.cgi?id=1238322
+https://bugzilla.redhat.com/attachment.cgi?id=1055640
+
+The nss_parse_ciphers function in libraries/libldap/tls_m.c in
+OpenLDAP does not properly parse OpenSSL-style multi-keyword mode
+cipher strings, which might cause a weaker than intended cipher to
+be used and allow remote attackers to have unspecified impact via
+unknown vectors.
+
+Signed-off-by: Li Wang <li.wang@windriver.com>
+---
+ libraries/libldap/tls_m.c | 27 ++++++++++++++++-----------
+ 1 file changed, 16 insertions(+), 11 deletions(-)
+
+diff --git a/libraries/libldap/tls_m.c b/libraries/libldap/tls_m.c
+index 9b101f9..e6f3051 100644
+--- a/libraries/libldap/tls_m.c
++++ b/libraries/libldap/tls_m.c
+@@ -621,18 +621,23 @@ nss_parse_ciphers(const char *cipherstr, int cipher_list[ciphernum])
+ */
+ if (mask || strength || protocol) {
+ for (i=0; i<ciphernum; i++) {
+- if (((ciphers_def[i].attr & mask) ||
+- (ciphers_def[i].strength & strength) ||
+- (ciphers_def[i].version & protocol)) &&
+- (cipher_list[i] != -1)) {
+- /* Enable the NULL ciphers only if explicity
+- * requested */
+- if (ciphers_def[i].attr & SSL_eNULL) {
+- if (mask & SSL_eNULL)
+- cipher_list[i] = action;
+- } else
++ /* if more than one mask is provided
++ * then AND logic applies (to match openssl)
++ */
++ if ( cipher_list[i] == -1) )
++ continue;
++ if ( mask && ! (ciphers_def[i].attr & mask) )
++ continue;
++ if ( strength && ! (ciphers_def[i].strength & strength) )
++ continue;
++ if ( protocol && ! (ciphers_def[i].version & protocol) )
++ continue;
++ /* Enable the NULL ciphers only if explicity requested */
++ if (ciphers_def[i].attr & SSL_eNULL) {
++ if (mask & SSL_eNULL)
+ cipher_list[i] = action;
+- }
++ } else
++ cipher_list[i] = action;
+ }
+ } else {
+ for (i=0; i<ciphernum; i++) {
+--
+1.7.9.5
+
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-m4-pthread.patch b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-m4-pthread.patch
new file mode 100644
index 000000000..b669b7254
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-m4-pthread.patch
@@ -0,0 +1,20 @@
+--- openldap-2.3.11/build/openldap.m4.orig 2005-11-11 00:11:18.604322590 -0800
++++ openldap-2.3.11/build/openldap.m4 2005-11-11 00:26:21.621145856 -0800
+@@ -788,7 +788,7 @@ AC_DEFUN([OL_PTHREAD_TEST_FUNCTION],[[
+ ]])
+
+ AC_DEFUN([OL_PTHREAD_TEST_PROGRAM],
+-AC_LANG_SOURCE([OL_PTHREAD_TEST_INCLUDES
++[AC_LANG_SOURCE([[OL_PTHREAD_TEST_INCLUDES
+
+ int main(argc, argv)
+ int argc;
+@@ -796,7 +796,7 @@ int main(argc, argv)
+ {
+ OL_PTHREAD_TEST_FUNCTION
+ }
+-]))
++]])])
+ dnl --------------------------------------------------------------------
+ AC_DEFUN([OL_PTHREAD_TRY], [# Pthread try link: $1 ($2)
+ if test "$ol_link_threads" = no ; then
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/slapd.service b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/slapd.service
new file mode 100644
index 000000000..f5f83fdc3
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/slapd.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Standalone LDAP Daemon
+After=syslog.target network.target
+
+[Service]
+Type=forking
+ExecStart=@SBINDIR@/slapd
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/thread_stub.patch b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/thread_stub.patch
new file mode 100644
index 000000000..540ba4a63
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/thread_stub.patch
@@ -0,0 +1,20 @@
+openldap: set pointer
+
+When the function ldap_pvt_thread_pool_getkey() succeeds, it
+must set the value of *data since the caller may try to use it.
+
+Upstream-Status: pending
+
+Signed-off-by: Joe Slater <jslater@windriver.com>
+
+
+--- a/libraries/libldap_r/thr_stub.c
++++ b/libraries/libldap_r/thr_stub.c
+@@ -217,6 +217,7 @@ ldap_pvt_thread_pool_unidle ( ldap_pvt_t
+ int ldap_pvt_thread_pool_getkey (
+ void *ctx, void *key, void **data, ldap_pvt_thread_pool_keyfree_t **kfree )
+ {
++ if (data) *data = NULL; /* avoid problems with uninitialized *data */
+ return(0);
+ }
+
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/use-urandom.patch b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/use-urandom.patch
new file mode 100644
index 000000000..e7b988faf
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/use-urandom.patch
@@ -0,0 +1,38 @@
+openldap: assume /dev/urandom exists
+
+When we are cross-compiling, we want to assume
+that /dev/urandom exists. We could change the source
+code to look for it, but this is the easy way out.
+
+Upstream-Status: pending
+
+Signed-off-by: Joe Slater <jslater@windriver.com>
+
+
+--- a/configure.in
++++ b/configure.in
+@@ -2142,8 +2142,8 @@ fi
+
+ dnl ----------------------------------------------------------------
+ dnl Check for entropy sources
++dev=no
+ if test $cross_compiling != yes && test "$ac_cv_mingw32" != yes ; then
+- dev=no
+ if test -r /dev/urandom ; then
+ dev="/dev/urandom";
+ elif test -r /idev/urandom ; then
+@@ -2156,9 +2156,11 @@ if test $cross_compiling != yes && test
+ dev="/idev/random";
+ fi
+
+- if test $dev != no ; then
+- AC_DEFINE_UNQUOTED(URANDOM_DEVICE,"$dev",[set to urandom device])
+- fi
++elif test $cross_compiling == yes ; then
++ dev="/dev/urandom";
++fi
++if test $dev != no ; then
++ AC_DEFINE_UNQUOTED(URANDOM_DEVICE,"$dev",[set to urandom device])
+ fi
+
+ dnl ----------------------------------------------------------------
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.45.bb b/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.45.bb
new file mode 100644
index 000000000..82d661983
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.45.bb
@@ -0,0 +1,256 @@
+# OpenLDAP, a license free (see http://www.OpenLDAP.org/license.html)
+#
+SUMMARY = "OpenLDAP Directory Service"
+DESCRIPTION = "OpenLDAP Software is an open source implementation of the Lightweight Directory Access Protocol."
+HOMEPAGE = "http://www.OpenLDAP.org/license.html"
+# The OpenLDAP Public License - see the HOMEPAGE - defines
+# the license. www.openldap.org claims this is Open Source
+# (see http://www.openldap.org), the license appears to be
+# basically BSD. opensource.org does not record this license
+# at present (so it is apparently not OSI certified).
+LICENSE = "OpenLDAP"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=25fd3721960f39128cd15a749fd21139 \
+ file://LICENSE;md5=153d07ef052c4a37a8fac23bc6031972 \
+"
+SECTION = "libs"
+
+LDAP_VER = "${@'.'.join(d.getVar('PV').split('.')[0:2])}"
+
+SRC_URI = "ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/${BP}.tgz \
+ file://openldap-m4-pthread.patch \
+ file://kill-icu.patch \
+ file://openldap-2.4.28-gnutls-gcrypt.patch \
+ file://use-urandom.patch \
+ file://initscript \
+ file://slapd.service \
+ file://thread_stub.patch \
+ file://openldap-CVE-2015-3276.patch \
+"
+
+SRC_URI[md5sum] = "00ff8301277cdfd0af728a6927042a13"
+SRC_URI[sha256sum] = "cdd6cffdebcd95161a73305ec13fc7a78e9707b46ca9f84fb897cd5626df3824"
+
+DEPENDS = "util-linux groff-native"
+
+# The original top.mk used INSTALL, not INSTALL_STRIP_PROGRAM when
+# installing .so and executables, this fails in cross compilation
+# environments
+SRC_URI += "file://install-strip.patch"
+
+inherit autotools-brokensep update-rc.d systemd
+
+# CV SETTINGS
+# Required to work round AC_FUNC_MEMCMP which gets the wrong answer
+# when cross compiling (should be in site?)
+EXTRA_OECONF += "ac_cv_func_memcmp_working=yes"
+
+# CONFIG DEFINITIONS
+# The following is necessary because it cannot be determined for a
+# cross compile automagically. Select should yield fine on all OE
+# systems...
+EXTRA_OECONF += "--with-yielding-select=yes"
+# Shared libraries are nice...
+EXTRA_OECONF += "--enable-dynamic"
+
+PACKAGECONFIG ??= "gnutls modules \
+ mdb ldap meta monitor null passwd shell proxycache dnssrv \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \
+"
+#--with-tls with TLS/SSL support auto|openssl|gnutls [auto]
+PACKAGECONFIG[gnutls] = "--with-tls=gnutls,,gnutls libgcrypt"
+PACKAGECONFIG[openssl] = "--with-tls=openssl,,openssl"
+
+PACKAGECONFIG[sasl] = "--with-cyrus-sasl,--without-cyrus-sasl,cyrus-sasl"
+PACKAGECONFIG[modules] = "lt_cv_dlopen_self=yes --enable-modules,--disable-modules,libtool"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6"
+
+# SLAPD options
+#
+# UNIX crypt(3) passwd support:
+EXTRA_OECONF += "--enable-crypt"
+
+# SLAPD BACKEND
+#
+# The backend must be set by the configuration. This controls the
+# required database.
+#
+# Backends="bdb dnssrv hdb ldap mdb meta monitor ndb null passwd perl relay shell sock sql"
+#
+# Note that multiple backends can be built. The ldbm backend requires a
+# build-time choice of database API. The bdb backend forces this to be
+# DB4. To use the gdbm (or other) API the Berkely database module must
+# be removed from the build.
+md = "${libexecdir}/openldap"
+#
+#--enable-bdb enable Berkeley DB backend no|yes|mod yes
+# The Berkely DB is the standard choice. This version of OpenLDAP requires
+# the version 4 implementation or better.
+PACKAGECONFIG[bdb] = "--enable-bdb=yes,--enable-bdb=no,db"
+
+#--enable-dnssrv enable dnssrv backend no|yes|mod no
+PACKAGECONFIG[dnssrv] = "--enable-dnssrv=mod,--enable-dnssrv=no"
+
+#--enable-hdb enable Hierarchical DB backend no|yes|mod no
+PACKAGECONFIG[hdb] = "--enable-hdb=yes,--enable-hdb=no,db"
+
+#--enable-ldap enable ldap backend no|yes|mod no
+PACKAGECONFIG[ldap] = "--enable-ldap=mod,--enable-ldap=no,"
+
+#--enable-mdb enable mdb database backend no|yes|mod [yes]
+PACKAGECONFIG[mdb] = "--enable-mdb=yes,--enable-mdb=no,"
+
+#--enable-meta enable metadirectory backend no|yes|mod no
+PACKAGECONFIG[meta] = "--enable-meta=mod,--enable-meta=no,"
+
+#--enable-monitor enable monitor backend no|yes|mod yes
+PACKAGECONFIG[monitor] = "--enable-monitor=mod,--enable-monitor=no,"
+
+#--enable-ndb enable MySQL NDB Cluster backend no|yes|mod [no]
+PACKAGECONFIG[ndb] = "--enable-ndb=mod,--enable-ndb=no,"
+
+#--enable-null enable null backend no|yes|mod no
+PACKAGECONFIG[null] = "--enable-null=mod,--enable-null=no,"
+
+#--enable-passwd enable passwd backend no|yes|mod no
+PACKAGECONFIG[passwd] = "--enable-passwd=mod,--enable-passwd=no,"
+
+#--enable-perl enable perl backend no|yes|mod no
+# This requires a loadable perl dynamic library, if enabled without
+# doing something appropriate (building perl?) the build will pick
+# up the build machine perl - not good (inherit perlnative?)
+PACKAGECONFIG[perl] = "--enable-perl=mod,--enable-perl=no,perl"
+
+#--enable-relay enable relay backend no|yes|mod [yes]
+PACKAGECONFIG[relay] = "--enable-relay=mod,--enable-relay=no,"
+
+#--enable-shell enable shell backend no|yes|mod no
+# configure: WARNING: Use of --without-threads is recommended with back-shell
+PACKAGECONFIG[shell] = "--enable-shell=mod --without-threads,--enable-shell=no,"
+
+#--enable-sock enable sock backend no|yes|mod [no]
+PACKAGECONFIG[sock] = "--enable-sock=mod,--enable-sock=no,"
+
+#--enable-sql enable sql backend no|yes|mod no
+# sql requires some sql backend which provides sql.h, sqlite* provides
+# sqlite.h (which may be compatible but hasn't been tried.)
+PACKAGECONFIG[sql] = "--enable-sql=mod,--enable-sql=no,sqlite3"
+
+#--enable-dyngroup Dynamic Group overlay no|yes|mod no
+# This is a demo, Proxy Cache defines init_module which conflicts with the
+# same symbol in dyngroup
+PACKAGECONFIG[dyngroup] = "--enable-dyngroup=mod,--enable-dyngroup=no,"
+
+#--enable-proxycache Proxy Cache overlay no|yes|mod no
+PACKAGECONFIG[proxycache] = "--enable-proxycache=mod,--enable-proxycache=no,"
+FILES_${PN}-overlay-proxycache = "${md}/pcache-*.so.*"
+PACKAGES += "${PN}-overlay-proxycache"
+
+# Append URANDOM_DEVICE='/dev/urandom' to CPPFLAGS:
+# This allows tls to obtain random bits from /dev/urandom, by default
+# it was disabled for cross-compiling.
+CPPFLAGS_append = " -D_GNU_SOURCE -DURANDOM_DEVICE=\'/dev/urandom\' -fPIC"
+
+LDFLAGS_append = " -pthread"
+
+do_configure() {
+ cp ${STAGING_DATADIR_NATIVE}/libtool/build-aux/ltmain.sh ${S}/build
+ rm -f ${S}/libtool
+ aclocal
+ libtoolize --force --copy
+ gnu-configize
+ autoconf
+ oe_runconf
+}
+
+LEAD_SONAME = "libldap-${LDAP_VER}.so.*"
+
+# The executables go in a separate package. This allows the
+# installation of the libraries with no daemon support.
+# Each module also has its own package - see above.
+PACKAGES += "${PN}-slapd ${PN}-slurpd ${PN}-bin"
+
+# Package contents - shift most standard contents to -bin
+FILES_${PN} = "${libdir}/lib*.so.* ${sysconfdir}/openldap/ldap.* ${localstatedir}/${BPN}/data"
+FILES_${PN}-slapd = "${sysconfdir}/init.d ${libexecdir}/slapd ${sbindir} ${localstatedir}/run ${localstatedir}/volatile/run \
+ ${sysconfdir}/openldap/slapd.* ${sysconfdir}/openldap/schema \
+ ${sysconfdir}/openldap/DB_CONFIG.example ${systemd_unitdir}/system/*"
+FILES_${PN}-slurpd = "${libexecdir}/slurpd ${localstatedir}/openldap-slurp ${localstatedir}/run ${localstatedir}/volatile/run"
+FILES_${PN}-bin = "${bindir}"
+FILES_${PN}-dev = "${includedir} ${libdir}/lib*.so ${libdir}/*.la ${libdir}/*.a ${libexecdir}/openldap/*.a ${libexecdir}/openldap/*.la ${libexecdir}/openldap/*.so"
+FILES_${PN}-dbg += "${libexecdir}/openldap/.debug"
+
+do_install_append() {
+ install -d ${D}${sysconfdir}/init.d
+ cat ${WORKDIR}/initscript > ${D}${sysconfdir}/init.d/openldap
+ chmod 755 ${D}${sysconfdir}/init.d/openldap
+ # This is duplicated in /etc/openldap and is for slapd
+ rm -f ${D}${localstatedir}/openldap-data/DB_CONFIG.example
+
+ # Installing slapd under ${sbin} is more FHS and LSB compliance
+ mv ${D}${libexecdir}/slapd ${D}/${sbindir}/slapd
+ rmdir --ignore-fail-on-non-empty ${D}${libexecdir}
+ SLAPTOOLS="slapadd slapcat slapdn slapindex slappasswd slaptest slapauth slapacl slapschema"
+ cd ${D}/${sbindir}/
+ rm -f ${SLAPTOOLS}
+ for i in ${SLAPTOOLS}; do ln -sf slapd $i; done
+
+ rmdir "${D}${localstatedir}/run"
+ rmdir --ignore-fail-on-non-empty "${D}${localstatedir}"
+
+ install -d ${D}${systemd_unitdir}/system/
+ install -m 0644 ${WORKDIR}/slapd.service ${D}${systemd_unitdir}/system/
+ sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/*.service
+
+ # Uses mdm as the database
+ # and localstatedir as data directory ...
+ sed -e 's/# modulepath/modulepath/' \
+ -e 's/# moduleload\s*back_bdb.*/moduleload back_mdb/' \
+ -e 's/database\s*bdb/database mdb/' \
+ -e 's%^directory\s*.*%directory ${localstatedir}/${BPN}/data/%' \
+ -i ${D}${sysconfdir}/openldap/slapd.conf
+
+ mkdir -p ${D}${localstatedir}/${BPN}/data
+
+
+}
+
+INITSCRIPT_PACKAGES = "${PN}-slapd"
+INITSCRIPT_NAME_${PN}-slapd = "openldap"
+INITSCRIPT_PARAMS_${PN}-slapd = "defaults"
+SYSTEMD_SERVICE_${PN}-slapd = "hostapd.service"
+SYSTEMD_AUTO_ENABLE_${PN}-slapd ?= "disable"
+
+
+PACKAGES_DYNAMIC += "^${PN}-backends.* ^${PN}-backend-.*"
+
+# The modules require their .so to be dynamicaly loaded
+INSANE_SKIP_${PN}-backend-dnssrv += "dev-so"
+INSANE_SKIP_${PN}-backend-ldap += "dev-so"
+INSANE_SKIP_${PN}-backend-meta += "dev-so"
+INSANE_SKIP_${PN}-backend-mdb += "dev-so"
+INSANE_SKIP_${PN}-backend-monitor += "dev-so"
+INSANE_SKIP_${PN}-backend-null += "dev-so"
+INSANE_SKIP_${PN}-backend-passwd += "dev-so"
+INSANE_SKIP_${PN}-backend-shell += "dev-so"
+
+
+python populate_packages_prepend () {
+ backend_dir = d.expand('${libexecdir}/openldap')
+ do_split_packages(d, backend_dir, 'back_([a-z]*)\.so$', 'openldap-backend-%s', 'OpenLDAP %s backend', prepend=True, extra_depends='', allow_links=True)
+ do_split_packages(d, backend_dir, 'back_([a-z]*)\-.*\.so\..*$', 'openldap-backend-%s', 'OpenLDAP %s backend', extra_depends='', allow_links=True)
+
+ metapkg = "${PN}-backends"
+ d.setVar('ALLOW_EMPTY_' + metapkg, "1")
+ d.setVar('FILES_' + metapkg, "")
+ metapkg_rdepends = []
+ packages = d.getVar('PACKAGES').split()
+ for pkg in packages[1:]:
+ if pkg.count("openldap-backend-") and not pkg in metapkg_rdepends and not pkg.count("-dev") and not pkg.count("-dbg") and not pkg.count("static") and not pkg.count("locale"):
+ metapkg_rdepends.append(pkg)
+ d.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends))
+ d.setVar('DESCRIPTION_' + metapkg, 'OpenLDAP backends meta package')
+ packages.append(metapkg)
+ d.setVar('PACKAGES', ' '.join(packages))
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.16.0.bb b/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.16.0.bb
new file mode 100644
index 000000000..fd67181dc
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.16.0.bb
@@ -0,0 +1,44 @@
+SUMMARY = "Smart card library and applications"
+DESCRIPTION = "OpenSC is a tool for accessing smart card devices. Basic\
+functionality (e.g. SELECT FILE, READ BINARY) should work on any ISO\
+7816-4 compatible smart card. Encryption and decryption using private\
+keys on the smart card is possible with PKCS\
+such as the FINEID (Finnish Electronic IDentity) card. Swedish Posten\
+eID cards have also been confirmed to work."
+
+HOMEPAGE = "http://www.opensc-project.org/opensc/"
+SECTION = "System Environment/Libraries"
+
+SRC_URI = "${DEBIAN_MIRROR}/main/o/${BPN}/${BPN}_${PV}.orig.tar.gz"
+
+SRC_URI[md5sum] = "724d128f23cd7a74b28d04300ce7bcbd"
+SRC_URI[sha256sum] = "3ac8c29542bb48179e7086d35a1b8907a4e86aca3de3323c2f48bd74eaaf5729"
+
+DEPENDS = "openct pcsc-lite virtual/libiconv openssl"
+
+LICENSE = "LGPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = " \
+ --disable-static \
+ --enable-openct \
+ --disable-pcsc \
+ --disable-ctapi \
+ --disable-doc \
+"
+EXTRA_OEMAKE = "DESTDIR=${D}"
+
+RDEPENDS_${PN} = "readline"
+
+FILES_${PN} += "\
+ ${libdir}/opensc-pkcs11.so \
+ ${libdir}/onepin-opensc-pkcs11.so \
+ ${libdir}/pkcs11-spy.so \
+"
+FILES_${PN}-dev += "\
+ ${libdir}/pkcs11/opensc-pkcs11.so \
+ ${libdir}/pkcs11/onepin-opensc-pkcs11.so \
+ ${libdir}/pkcs11/pkcs11-spy.so \
+"
diff --git a/meta-openembedded/meta-oe/recipes-support/opensync/wbxml2_0.10.8.bb b/meta-openembedded/meta-oe/recipes-support/opensync/wbxml2_0.10.8.bb
new file mode 100644
index 000000000..8c948c565
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/opensync/wbxml2_0.10.8.bb
@@ -0,0 +1,23 @@
+SUMMARY = "WBXML parsing and encoding library"
+HOMEPAGE = "http://libwbxml.opensync.org/"
+SECTION = "libs"
+LICENSE = "LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c1128ee5341ccd5927d8bafe4b6266e1"
+
+DEPENDS = "expat"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/libwbxml/libwbxml-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "f5031e9f730ffd9dc6a2d1ded585e1d1"
+SRC_URI[sha256sum] = "a057daa098f12838eb4e635bb28413027f1b73819872c3fbf64e3207790a3f7d"
+
+S = "${WORKDIR}/libwbxml-${PV}"
+
+inherit cmake pkgconfig
+
+EXTRA_OECMAKE = "-DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')}"
+
+PACKAGES += "${PN}-tools"
+
+FILES_${PN}-tools = "${bindir}"
+FILES_${PN} = "${libdir}/*.so.*"
diff --git a/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/checkserverkey b/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/checkserverkey
new file mode 100644
index 000000000..bcfa36101
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/checkserverkey
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+if [ ! -f "/etc/openwbem/serverkey.pem" ]; then
+ if [ -f "/etc/ssl/servercerts/servercert.pem" \
+ -a -f "/etc/ssl/servercerts/serverkey.pem" ]; then
+ echo "Using common server certificate /etc/ssl/servercerts/servercert.pem"
+ ln -s /etc/ssl/servercerts/server{cert,key}.pem /etc/openwbem/
+ else
+ echo "FAILED: Starting OpenWBEM server"
+ echo "There is no ssl server key available for OpenWBEM server to use."
+ echo -e "Please generate one with the following script and start the OpenWBEM service again:\n"
+ echo "##################################"
+ echo "/etc/openwbem/owgencert"
+ echo "================================="
+
+ echo "NOTE: The script uses /dev/random device for generating some random bits while generating the server key."
+ echo " If this takes too long, you can replace the value of \"RANDFILE\" in /etc/openwsman/ssleay.cnf with /dev/urandom. Please understand the implications"
+ exit 1
+ fi
+fi
diff --git a/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/loadmof.sh b/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/loadmof.sh
new file mode 100644
index 000000000..dd87811a3
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/loadmof.sh
@@ -0,0 +1,118 @@
+#!/bin/sh
+#
+# options:
+# loadmof.sh <MOF_PATH> <NAMESPACE> <FILES>
+#
+# - or -
+#
+# options:
+# loadmof.sh -n <NAMESPACE> <FILES> [...]
+#
+# The former is preserved for compatibility with Pegasus and
+# sblim providers. The latter is preferred. If $1 is "-n",
+# the latter code path is executed. Otherwise the former is
+# executed.
+
+if [ "x$1" != "x-n" -a "x$1" != "x-v" ]; then
+# OLD STYLE
+if [ -f "/etc/init.d/owcimomd" ]; then
+ /etc/init.d/owcimomd status 1>&2 > /dev/null
+ if [ $? = "0" ]; then
+ CIMOM_RUNNING="true"
+ else
+ CIMOM_RUNNING="false"
+ fi
+else
+ exit 1
+fi
+if [ "$YAST_IS_RUNNING" = "instsys" ]; then
+ CIMOM_RUNNING="false"
+fi
+
+CIMOM=$1
+shift
+case "$CIMOM" in
+ pegasus)
+ exit 0
+ ;;
+esac
+MOF_PATH=$1
+shift
+NS=$1
+shift
+
+REPOSITORY="/var/lib/openwbem"
+#tmp_dir=`mktemp -d -p /tmp openwbem.XXXXXX`
+case "$CIMOM_RUNNING" in
+ true|false)
+ while [ "$#" -gt 0 ]
+ do
+ echo "Loading $MOF_PATH/$1"
+ #sed "s/cmpi:/cmpi::/g" $MOF_PATH/$1 > $tmp_dir/$1
+ /usr/bin/owmofc -c -n $NS -d $REPOSITORY $MOF_PATH/$1 > /dev/null 2>&1
+ shift
+ done
+ ;;
+esac
+#rm -rf $tmp_dir
+# END OLD STYLE
+
+else
+# NEW STYLE
+if [ "x$3" = "x" ]; then
+ echo "Usage: $0 -n <NAMESPACE> <FILES> [...]"
+ exit 1
+fi
+
+if [ "x$1" = "x-v" ]; then
+ VERBOSE=1
+ shift
+fi
+
+# get rid of "-n" arg
+shift
+
+NS="$1"
+
+shift
+
+DBDIR=/var/lib/openwbem
+LOGFILE=$DBDIR/loadmof.log
+CIMOM_INIT=/etc/init.d/owcimomd
+if [ "$YAST_IS_RUNNING" != "instsys" ] ; then
+ $CIMOM_INIT status > /dev/null 2>&1
+ CIMOM_RUNNING=$?
+fi
+if [ "x$CIMOM_RUNNING" = "x0" ]; then
+ $CIMOM_INIT stop > /dev/null 2>&1
+fi
+bkpdir=$DBDIR/backup-$$
+mkdir $bkpdir
+cp -a $DBDIR/*.{dat,ndx,lock} $bkpdir/
+rm -f $LOGFILE.9
+for i in 8 7 6 5 4 3 2 1 0; do
+ let newI=$i+1
+ if [ -f $LOGFILE.$i ]; then
+ mv $LOGFILE.$i $LOGFILE.$newI
+ fi
+done
+if [ -f $LOGFILE ]; then
+ mv $LOGFILE $LOGFILE.0
+fi
+if [ "x$VERBOSE" = "x1" ]; then
+ /usr/bin/owmofc -c -n $NS -d $DBDIR -s /usr/share/mof/cim-current "$@" 2>&1 | tee $LOGFILE
+else
+ /usr/bin/owmofc -c -n $NS -d $DBDIR -s /usr/share/mof/cim-current "$@" > $LOGFILE 2>&1
+fi
+RVAL=$?
+if [ "x$RVAL" != "x0" ]; then
+ echo "MOF import failed! Check $LOGFILE for details."
+ mv $bkpdir/* $DBDIR/
+fi
+rm -rf $bkpdir
+if [ "x$CIMOM_RUNNING" = "x0" ]; then
+ $CIMOM_INIT start > /dev/null 2>&1
+fi
+exit $RVAL
+fi
+
diff --git a/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/novell-openwbem-root-acl.mof b/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/novell-openwbem-root-acl.mof
new file mode 100644
index 000000000..c9970c79e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/novell-openwbem-root-acl.mof
@@ -0,0 +1,21 @@
+#pragma namespace("root/security")
+
+instance of OpenWBEM_NamespaceACL
+{
+ nspace = "root";
+ capability = "";
+};
+
+instance of OpenWBEM_NamespaceACL
+{
+ nspace = "root/cimv2";
+ capability = "";
+};
+
+instance of OpenWBEM_UserACL
+{
+ nspace = "root/cimv2";
+ username = "root";
+ capability = "rw";
+};
+
diff --git a/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/openwbem-etc_pam.d_openwbem b/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/openwbem-etc_pam.d_openwbem
new file mode 100644
index 000000000..b3785aa49
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/openwbem-etc_pam.d_openwbem
@@ -0,0 +1,7 @@
+#%PAM-1.0
+auth required pam_unix2.so nullok
+auth required pam_nologin.so
+account required pam_unix2.so
+password required pam_pwcheck.so nullok
+password required pam_unix2.so nullok use_first_pass use_authtok
+session required pam_unix2.so none
diff --git a/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/openwbem-owcimomd.init b/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/openwbem-owcimomd.init
new file mode 100644
index 000000000..47fa8a7c6
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/openwbem-owcimomd.init
@@ -0,0 +1,131 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: owcimomd
+# Required-Start: $network
+# Required-Stop: $network
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: OpenWBEM CIMOM Daemon
+# Description: owcimomd
+# Start/Stop the OpenWBEM CIMOM Daemon
+### END INIT INFO
+#
+#
+# chkconfig: 2345 36 64
+# description: OpenWBEM CIMOM Daemon
+# processname: owcimomd
+
+NAME=owcimomd
+DAEMON=/usr/sbin/$NAME
+OPTIONS=
+PIDFILE=/var/run/$NAME.pid
+
+if [ $EUID != 0 ]; then
+ echo "This script must be run as root."
+ exit 1;
+fi
+
+if [ "$DESCRIPTIVE" = "" ]; then
+ DESCRIPTIVE="OpenWBEM CIMOM Daemon"
+fi
+
+lockfile=${SVIlock:-/var/lock/subsys/$NAME}
+
+[ -x $DAEMON ] || exit 0
+
+# See how we were called.
+. /etc/init.d/functions
+
+start() {
+ if [ ! -f "/etc/openwbem/serverkey.pem" ]; then
+ if [ -f "/etc/ssl/servercerts/servercert.pem" \
+ -a -f "/etc/ssl/servercerts/serverkey.pem" ]; then
+ echo "Using common server certificate /etc/ssl/servercerts/servercert.pem"
+ ln -s /etc/ssl/servercerts/server{cert,key}.pem /etc/openwbem/
+ else
+ echo "Generating OpenWBEM server public certificate and private key"
+ FQDN=`hostname --fqdn`
+ if [ "x${FQDN}" = "x" ]; then
+ FQDN=localhost.localdomain
+ fi
+cat << EOF | sh /etc/openwbem/owgencert > /dev/null 2>&1
+--
+SomeState
+SomeCity
+SomeOrganization
+SomeOrganizationalUnit
+${FQDN}
+root@${FQDN}
+EOF
+ fi
+ fi
+
+ # Start daemons.
+ echo -n "Starting the $DESCRIPTIVE"
+ daemon $DAEMON $OPTIONS > /dev/null 2>&1
+ RETVAL=$?
+
+ if [ $RETVAL -eq 0 ]; then
+ touch $lockfile
+ success
+ fi
+
+ echo
+ return $RETVAL
+}
+
+stop() {
+ # Stop daemons.
+ echo -n "Shutting down $DESCRIPTIVE"
+ killproc $DAEMON
+ RETVAL=$?
+
+ if [ $RETVAL -eq 0 ]; then
+ rm -f $lockfile
+ success
+ else
+ failure
+ fi
+ echo
+ return $RETVAL
+}
+
+restart() {
+ stop
+ start
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart|force-reload)
+ restart
+ ;;
+
+ reload)
+ echo -n "Reload service $DESCRIPTIVE"
+ killproc -p $PIDFILE -HUP $DAEMON
+ RETVAL=$?
+ echo
+ exit $RETVAL
+ ;;
+
+ status)
+ echo -n "Checking for service $DESCRIPTIVE"
+ status $DAEMON
+ RETVAL=$?
+ exit $RETVAL
+ ;;
+
+ *)
+ echo "Usage: $0 {restart|start|stop|reload|force-reload|status}"
+esac
+
+exit $RETVAL
diff --git a/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/openwbem-rpmlintrc b/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/openwbem-rpmlintrc
new file mode 100644
index 000000000..785e32aaa
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/openwbem-rpmlintrc
@@ -0,0 +1,2 @@
+addFilter("devel-file-in-non-devel-package .*/lib.*\.so")
+
diff --git a/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/owcimomd.service b/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/owcimomd.service
new file mode 100644
index 000000000..c6694b719
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/owcimomd.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Web Based Enterprise Management (WBEM) Implementation
+After=syslog.target
+
+[Service]
+Type=forking
+ExecStart=/usr/sbin/owcimomd
+ExecStartPre=/etc/openwbem/checkserverkey
+PIDFile=/var/run/owcimomd.pid
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/rmmof.sh b/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/rmmof.sh
new file mode 100644
index 000000000..a495415be
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/rmmof.sh
@@ -0,0 +1,53 @@
+#!/bin/sh
+#
+# options:
+# rmmof.sh <MOF_PATH> <NAMESPACE> <FILES>
+#
+# - or -
+#
+# options:
+# loadmof.sh -n <NAMESPACE> <FILES> [...]
+#
+# The former is preserved for compatibility with Pegasus and
+# sblim providers. The latter is preferred. If $1 is "-n",
+# the latter code path is executed. Otherwise the former is
+# executed.
+
+if [ "x$3" = "x" ]; then
+ echo "Usage: $0 -n <NAMESPACE> <FILES> [...]"
+ exit 1
+fi
+
+# get rid of "-n" arg
+shift
+
+NS="$1"
+
+shift
+
+DBDIR=/var/lib/openwbem
+CIMOM_INIT=/etc/init.d/owcimomd
+if [ "$YAST_IS_RUNNING" != "instsys" ] ; then
+ $CIMOM_INIT status
+ CIMOM_RUNNING=$?
+fi
+if [ "x$CIMOM_RUNNING" = "x0" ]; then
+ $CIMOM_INIT stop
+fi
+bkpdir=/tmp/owrep.bkp-$$
+mkdir $bkpdir
+cp -a $DBDIR $bkpdir/
+echo "Compiling MOF files"
+/usr/bin/owmofc -r -n $NS -d $DBDIR "$@" > /dev/null 2>&1
+RVAL=$?
+if [ "x$RVAL" != "x0" ]; then
+ echo "MOF import failed!"
+ rm -rf $DBDIR
+ mv $bkpdir/openwbem $DBDIR
+fi
+rm -rf $bkpdir
+if [ "x$CIMOM_RUNNING" = "x0" ]; then
+ $CIMOM_INIT start
+fi
+exit $RVAL
+
diff --git a/meta-openembedded/meta-oe/recipes-support/p910nd/p910nd/fix-var-lock.patch b/meta-openembedded/meta-oe/recipes-support/p910nd/p910nd/fix-var-lock.patch
new file mode 100644
index 000000000..aa84e180e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/p910nd/p910nd/fix-var-lock.patch
@@ -0,0 +1,30 @@
+Use /var/lock instead of /var/lock/subsys
+
+Upstream-Status: Inappropriate [configuration]
+
+Index: p910nd/p910nd.8
+===================================================================
+--- p910nd.orig/p910nd.8 2011-11-14 22:41:41.904615879 +0100
++++ p910nd/p910nd.8 2011-11-14 22:49:52.299047607 +0100
+@@ -83,7 +83,7 @@
+ .SH "SEE ALSO"
+ printcap(5), hosts_access(5)
+ .SH FILES
+-/var/run/p9100d.pid, /var/lock/subsys/p9100d, /etc/hosts.allow, /etc/hosts.deny
++/var/run/p9100d.pid, /var/lock/p9100d, /etc/hosts.allow, /etc/hosts.deny
+ .SH COPYRIGHT
+ .I p910nd
+ is under the GNU Public License Version 2
+Index: p910nd/p910nd.c
+===================================================================
+--- p910nd.orig/p910nd.c 2011-11-14 22:47:41.986401420 +0100
++++ p910nd/p910nd.c 2011-11-14 22:49:27.274923524 +0100
+@@ -122,7 +122,7 @@
+ #ifdef LOCKFILE_DIR
+ #define LOCKFILE LOCKFILE_DIR "/p910%cd"
+ #else
+-#define LOCKFILE "/var/lock/subsys/p910%cd"
++#define LOCKFILE "/var/lock/p910%cd"
+ #endif
+ #ifndef PRINTERFILE
+ #define PRINTERFILE "/dev/lp%c"
diff --git a/meta-openembedded/meta-oe/recipes-support/p910nd/p910nd_0.95.bb b/meta-openembedded/meta-oe/recipes-support/p910nd/p910nd_0.95.bb
new file mode 100644
index 000000000..5ebbb29e1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/p910nd/p910nd_0.95.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "A small network printer daemon for embedded situations that passes the job directly to the printer"
+HOMEPAGE = "http://p910nd.sourceforge.net/"
+SECTION = "console/utils"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
+
+PR = "r2"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/p910nd/p910nd-${PV}.tar.bz2 \
+ file://fix-var-lock.patch"
+
+SRC_URI[md5sum] = "c7ac6afdf7730ac8387a8e87198d4491"
+SRC_URI[sha256sum] = "7d78642c86dc247fbdef1ff85c56629dcdc6b2a457c786420299e284fffcb029"
+
+do_compile () {
+ ${CC} ${LDFLAGS} -o p910nd p910nd.c
+}
+
+do_install () {
+ install -D -m 0755 ${S}/p910nd ${D}${sbindir}/p910nd
+ install -D -m 0644 ${S}/p910nd.conf ${D}${sysconfdir}/p910nd.conf
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.22.bb b/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.22.bb
new file mode 100644
index 000000000..90d58b00d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.22.bb
@@ -0,0 +1,49 @@
+SUMMARY = "PC/SC Lite smart card framework and applications"
+HOMEPAGE = "http://pcsclite.alioth.debian.org/"
+LICENSE = "BSD & GPLv3+"
+LICENSE_${PN} = "BSD"
+LICENSE_${PN}-lib = "BSD"
+LICENSE_${PN}-doc = "BSD"
+LICENSE_${PN}-dev = "BSD"
+LICENSE_${PN}-dbg = "BSD & GPLv3+"
+LICENSE_${PN}-spy = "GPLv3+"
+LICENSE_${PN}-spy-dev = "GPLv3+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f38b3d1c7ef7fc2c8b6d20cd38efdc29"
+DEPENDS = "udev"
+
+SRC_URI = "https://alioth.debian.org/frs/download.php/file/4225/pcsc-lite-${PV}.tar.bz2"
+SRC_URI[md5sum] = "0ec103b1ef298d0c58d6ef6b00b9cf17"
+SRC_URI[sha256sum] = "6a358f61ed3b66a7f6e1f4e794a94c7be4c81b7a58ec360c33791e8d7d9bd405"
+
+
+inherit autotools systemd pkgconfig
+
+EXTRA_OECONF = " \
+ --disable-libusb \
+ --enable-libudev \
+ --enable-usbdropdir=${libdir}/pcsc/drivers \
+"
+
+S = "${WORKDIR}/pcsc-lite-${PV}"
+
+PACKAGES = "${PN} ${PN}-dbg ${PN}-dev ${PN}-lib ${PN}-doc ${PN}-spy ${PN}-spy-dev"
+
+RRECOMMENDS_${PN} = "ccid"
+
+FILES_${PN} = "${sbindir}/pcscd"
+FILES_${PN}-lib = "${libdir}/libpcsclite*${SOLIBS}"
+FILES_${PN}-dev = "${includedir} \
+ ${libdir}/pkgconfig \
+ ${libdir}/libpcsclite.la \
+ ${libdir}/libpcsclite.so"
+
+FILES_${PN}-spy = "${bindir}/pcsc-spy \
+ ${libdir}/libpcscspy*${SOLIBS}"
+FILES_${PN}-spy-dev = "${libdir}/libpcscspy.la \
+ ${libdir}/libpcscspy.so "
+
+RPROVIDES_${PN} += "${PN}-systemd"
+RREPLACES_${PN} += "${PN}-systemd"
+RCONFLICTS_${PN} += "${PN}-systemd"
+SYSTEMD_SERVICE_${PN} = "pcscd.socket"
+RDEPENDS_${PN}-spy +="python"
diff --git a/meta-openembedded/meta-oe/recipes-support/picocom/picocom_git.bb b/meta-openembedded/meta-oe/recipes-support/picocom/picocom_git.bb
new file mode 100644
index 000000000..e091094cf
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/picocom/picocom_git.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Lightweight and minimal (~20K) dumb-terminal emulation program"
+SECTION = "console/utils"
+LICENSE = "GPLv2+"
+HOMEPAGE = "http://code.google.com/p/picocom/"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3000e4830620e310fe65c0eb69df9e8a"
+
+BASEPV = "2.2"
+PV = "${BASEPV}+git${SRCPV}"
+
+SRCREV = "deffd18c24145bd6f965f44e735a50b65810ccdc"
+
+SRC_URI = "git://github.com/npat-efault/picocom"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OEMAKE = "'CC=${CC}' 'LD=${CC}' 'VERSION=${BASEPV}' \
+ 'CFLAGS=${CFLAGS}' 'LDFLAGS=${LDFLAGS}' "
+
+do_install () {
+ install -d ${D}${bindir}
+ install -m 0755 ${BPN} pcasc pcxm pcym pczm ${D}${bindir}/
+}
+
diff --git a/meta-openembedded/meta-oe/recipes-support/pidgin/libotr/fix_qa-issue_include.patch b/meta-openembedded/meta-oe/recipes-support/pidgin/libotr/fix_qa-issue_include.patch
new file mode 100644
index 000000000..ecdbffb51
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pidgin/libotr/fix_qa-issue_include.patch
@@ -0,0 +1,18 @@
+libotr: Fix QA-issue where also files from buildhost would be included
+
+Warning was:
+cc1: warning: include location "/usr/include" is unsafe for
+cross-compilation [-Wpoison-system-directories]
+
+Upstream-Status: Pending
+
+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 @@
+-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/meta-openembedded/meta-oe/recipes-support/pidgin/libotr/sepbuild.patch b/meta-openembedded/meta-oe/recipes-support/pidgin/libotr/sepbuild.patch
new file mode 100644
index 000000000..dda17a957
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pidgin/libotr/sepbuild.patch
@@ -0,0 +1,16 @@
+Fix builds with ${B} != ${S}
+
+Upstream-Status: Pending
+
+RP 2014/7/17
+
+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 @@
+-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/meta-openembedded/meta-oe/recipes-support/pidgin/libotr_4.1.1.bb b/meta-openembedded/meta-oe/recipes-support/pidgin/libotr_4.1.1.bb
new file mode 100644
index 000000000..c70124421
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pidgin/libotr_4.1.1.bb
@@ -0,0 +1,15 @@
+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 libgpg-error"
+
+SRC_URI = "http://www.cypherpunks.ca/otr/${BP}.tar.gz \
+ file://fix_qa-issue_include.patch \
+ file://sepbuild.patch \
+"
+
+SRC_URI[md5sum] = "dac5a8778a35f674c046ddf5d97e4d81"
+SRC_URI[sha256sum] = "8b3b182424251067a952fb4e6c7b95a21e644fbb27fbd5f8af2b2ed87ca419f5"
+
+inherit autotools pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr_4.0.2.bb b/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr_4.0.2.bb
new file mode 100644
index 000000000..5a21cd3fc
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/pidgin-cross-python-265.patch b/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/pidgin-cross-python-265.patch
new file mode 100644
index 000000000..312fc8593
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/pidgin-cross-python-265.patch
@@ -0,0 +1,42 @@
+From 855cc20bafa30597ae7a62f7672d42654b25cde0 Mon Sep 17 00:00:00 2001
+From: Herrie <github.com@herrie.org>
+Date: Mon, 24 Jul 2017 21:30:16 +0200
+Subject: [PATCH] Use pkg-config instead of ${PYTHON}-config to find python
+
+---
+ configure.ac | 21 ++++++++-------------
+ 1 file changed, 8 insertions(+), 13 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index d20a18e..c741829 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1567,20 +1567,15 @@ AM_CONDITIONAL(ENABLE_DBUS, test "x$enable_dbus" = "xyes")
+ dnl Check for Python headers (currently useful only for libgnt)
+ dnl (Thanks to XChat)
+ if test "x$enable_consoleui" = "xyes" -a ! -z "$PYTHON" -a x"$PYTHON" != x"no" ; then
+- AC_MSG_CHECKING(for Python compile flags)
+- if test -f ${PYTHON}-config; then
+- PY_CFLAGS=`${PYTHON}-config --includes`
+- PY_LIBS=`${PYTHON}-config --libs`
+- AC_DEFINE(USE_PYTHON, [1], [Define if python headers are available.])
+- AC_MSG_RESULT(ok)
+- else
+- AC_MSG_RESULT([Cannot find ${PYTHON}-config])
+- PY_CFLAGS=""
+- PY_LIBS=""
+- fi
++ AC_MSG_CHECKING(for Python compile flags)
++ PKG_CHECK_MODULES(PY, python, [
++ AC_SUBST(PY_CFLAGS)
++ AC_SUBST(PY_LIBS)
++ ], [
++ AC_MSG_RESULT(no)
++ AC_MSG_ERROR([Can't find python])
++ ])
+ fi
+-AC_SUBST(PY_CFLAGS)
+-AC_SUBST(PY_LIBS)
+
+ dnl #######################################################################
+ dnl # Check for Mono support
diff --git a/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/purple-OE-branding-25.patch b/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/purple-OE-branding-25.patch
new file mode 100644
index 000000000..9a24fbbc5
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/purple-OE-branding-25.patch
@@ -0,0 +1,24 @@
+From 43e9db656431ffb22b429d5fca4ce3b4af21bc9e Mon Sep 17 00:00:00 2001
+From: Herrie <github.com@herrie.org>
+Date: Mon, 24 Jul 2017 21:30:16 +0200
+
+---
+ libpurple/protocols/irc/irc.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/libpurple/protocols/irc/irc.h b/libpurple/protocols/irc/irc.h
+index fde35c4..66e52dd 100644
+--- a/libpurple/protocols/irc/irc.h
++++ b/libpurple/protocols/irc/irc.h
+@@ -40,9 +40,9 @@
+
+ #define IRC_DEFAULT_CHARSET "UTF-8"
+ #define IRC_DEFAULT_AUTODETECT FALSE
+-#define IRC_DEFAULT_ALIAS "purple"
++#define IRC_DEFAULT_ALIAS "OE-user"
+
+-#define IRC_DEFAULT_QUIT "Leaving."
++#define IRC_DEFAULT_QUIT "Powered by OE: www.openembedded.org"
+
+ #define IRC_INITIAL_BUFSIZE 1024
+
diff --git a/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/sanitize-configure.ac.patch b/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/sanitize-configure.ac.patch
new file mode 100644
index 000000000..84dbcdc27
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/sanitize-configure.ac.patch
@@ -0,0 +1,43 @@
+From c3058f9eadaf5ff28ba776cfed54b609a93a1249 Mon Sep 17 00:00:00 2001
+From: Herrie <github.com@herrie.org>
+Date: Mon, 24 Jul 2017 21:30:16 +0200
+
+---
+ configure.ac | 10 +---------
+ 1 file changed, 1 insertion(+), 9 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index b8acd2a..d20a18e 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -642,7 +642,7 @@ if test "x$enable_consoleui" = "xyes"; then
+ if test "x$enable_consoleui" = "xyes"; then
+ dnl # Some distros put the headers in ncursesw/, some don't
+ found_ncurses_h=no
+- for location in $ac_ncurses_includes $NCURSES_HEADERS /usr/include/ncursesw /usr/include
++ for location in $ac_ncurses_includes $NCURSES_HEADERS
+ do
+ f="$location/ncurses.h"
+ orig_CFLAGS="$CFLAGS"
+@@ -2397,10 +2397,6 @@ if test "$kerberos" != "no" ; then
+ KRB4_CFLAGS="$KRB4_CFLAGS -I${kerberos}/include/kerberosIV"
+ fi
+ KRB4_LDFLAGS="-L${kerberos}/lib"
+- elif test -d /usr/local/include/kerberosIV ; then
+- KRB4_CFLAGS="-I/usr/local/include/kerberosIV"
+- elif test -d /usr/include/kerberosIV ; then
+- KRB4_CFLAGS="-I/usr/include/kerberosIV"
+ fi
+ AC_DEFINE(ZEPHYR_USES_KERBEROS, 1, [Define if kerberos should be used in Zephyr.])
+
+@@ -2433,10 +2429,6 @@ if test "$zephyr" != "no" ; then
+ ZEPHYR_LDFLAGS="-L${zephyr}/lib"
+ elif test -d /usr/athena/include/zephyr ; then
+ ZEPHYR_CFLAGS="-I/usr/athena/include"
+- elif test -d /usr/include/zephyr ; then
+- ZEPHYR_CFLAGS="-I/usr/include"
+- elif test -d /usr/local/include/zephyr ; then
+- ZEPHYR_CFLAGS="-I/usr/local/include"
+ fi
+ AC_DEFINE(LIBZEPHYR_EXT, 1 , [Define if external libzephyr should be used.])
+ AM_CONDITIONAL(EXTERNAL_LIBZEPHYR, test "x$zephyr" != "xno")
diff --git a/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.12.0.bb b/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.12.0.bb
new file mode 100644
index 000000000..088f08b7d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.12.0.bb
@@ -0,0 +1,120 @@
+SUMMARY = "multi-protocol instant messaging client"
+SECTION = "x11/network"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+DEPENDS = "python virtual/libintl intltool-native libxml2 gconf glib-2.0-native"
+
+inherit autotools gettext pkgconfig gconf perlnative
+
+SRC_URI = "\
+ ${SOURCEFORGE_MIRROR}/pidgin/pidgin-${PV}.tar.bz2 \
+ file://sanitize-configure.ac.patch \
+ file://purple-OE-branding-25.patch \
+ file://pidgin-cross-python-265.patch \
+"
+
+SRC_URI[md5sum] = "8287400c4e5663e0e7844e868d5152af"
+SRC_URI[sha256sum] = "8c3d3536d6d3c971bd433ff9946678af70a0f6aa4e6969cc2a83bb357015b7f8"
+
+PACKAGECONFIG ??= "gnutls consoleui avahi dbus idn nss \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 gtk startup-notification', '', d)} \
+"
+PACKAGECONFIG[farsight2] = "--enable-farstream,--disable-farstream,farsight2"
+# --disable-gstreamer compile without GStreamer audio support
+# --disable-gstreamer-video
+# compile without GStreamer 1.0 Video Overlay support
+# --disable-gstreamer-interfaces
+# compile without GStreamer 0.10 interface support
+# --with-gstreamer=<version>
+# compile with GStreamer 0.10 or 1.0 interface
+PACKAGECONFIG[gstreamer] = "--enable-gstreamer,--disable-gstreamer,gstreamer"
+PACKAGECONFIG[vv] = "--enable-vv,--disable-vv,gstreamer"
+PACKAGECONFIG[idn] = "--enable-idn,--disable-idn,libidn"
+PACKAGECONFIG[gtk] = "--enable-gtkui,--disable-gtkui,gtk+"
+PACKAGECONFIG[x11] = "--with-x=yes --x-includes=${STAGING_INCDIR} --x-libraries=${STAGING_LIBDIR},--with-x=no,virtual/libx11"
+PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-startup-notification,startup-notification"
+PACKAGECONFIG[consoleui] = "--enable-consoleui --with-ncurses-headers=${STAGING_INCDIR},--disable-consoleui,ncurses"
+PACKAGECONFIG[gnutls] = "--enable-gnutls --with-gnutls-includes=${STAGING_INCDIR} --with-gnutls-libs=${STAGING_LIBDIR},--disable-gnutls,gnutls,libpurple-plugin-ssl-gnutls"
+PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus dbus-glib"
+PACKAGECONFIG[avahi] = "--enable-avahi,--disable-avahi,avahi"
+PACKAGECONFIG[nss] = "--enable-nss,--disable-nss,nss nspr,libpurple-plugin-ssl-nss"
+
+EXTRA_OECONF = " \
+ --disable-perl \
+ --disable-tcl \
+ --disable-gevolution \
+ --disable-schemas-install \
+ --disable-gtkspell \
+ --disable-meanwhile \
+ --disable-nm \
+ --disable-screensaver \
+"
+
+do_configure_prepend() {
+ touch ${S}/po/Makefile
+ sed -i "s#PY_VERSION=`$PYTHON -c 'import sys ; print sys.version[0:3]'`#PY_VERSION=${PYTHON_BASEVERSION}#g" ${S}/configure.ac
+}
+
+OE_LT_RPATH_ALLOW=":${libdir}/purple-2:"
+OE_LT_RPATH_ALLOW[export]="1"
+
+PACKAGES =+ "libpurple-dbg libpurple-dev libpurple libgnt-dbg libgnt libgnt-dev finch-dbg finch finch-dev ${PN}-data"
+
+LEAD_SONAME = "libpurple.so.0"
+FILES_libpurple = "${libdir}/libpurple*.so.* ${libdir}/purple-2 ${bindir}/purple-* ${sysconfdir}/gconf/schemas/purple* ${datadir}/purple/ca-certs"
+FILES_libpurple-dev = "${libdir}/libpurple*.la \
+ ${libdir}/libpurple*.so \
+ ${libdir}/purple-2/*.la \
+ ${libdir}/purple-2/libjabber.so \
+ ${libdir}/purple-2/liboscar.so \
+ ${libdir}/purple-2/libymsg.so \
+ ${datadir}/aclocal"
+FILES_libpurple-dbg += "${libdir}/.debug/libpurple* \
+ ${libdir}/purple-2/.debug"
+FILES_libgnt = "${libdir}/libgnt.so.* ${libdir}/gnt/*.so"
+FILES_libgnt-dev = "${libdir}/gnt/*.la"
+FILES_libgnt-dbg = "${libdir}/gnt/.debug"
+FILES_finch = "${bindir}/finch"
+FILES_finch-dev = "${libdir}/finch/*.la"
+FILES_finch-dbg = "${bindir}/.debug/finch \
+ ${libdir}/finch/.debug"
+
+FILES_${PN} = "${bindir} ${datadir}/${PN} ${libdir}/${PN}/*.so \
+ ${datadir}/applications"
+RRECOMMENDS_${PN} = "${PN}-data libpurple-protocol-irc libpurple-protocol-xmpp"
+
+FILES_${PN}-data = "${datadir}/pixmaps ${datadir}/sounds ${datadir}/icons ${datadir}/appdata"
+FILES_${PN}-dev += "${libdir}/${PN}/*.la"
+
+PACKAGES_DYNAMIC += "^libpurple-protocol-.* ^libpurple-plugin-.* ^pidgin-plugin-.* ^finch-plugin-.*"
+
+python populate_packages_prepend () {
+ pidgroot = d.expand('${libdir}/pidgin')
+ purple = d.expand('${libdir}/purple-2')
+ finch = d.expand('${libdir}/finch')
+
+ do_split_packages(d, pidgroot, '^([^l][^i][^b].*)\.so$',
+ output_pattern='pidgin-plugin-%s',
+ description='Pidgin plugin %s',
+ prepend=True, extra_depends='')
+
+ do_split_packages(d, purple, '^lib(.*)\.so$',
+ output_pattern='libpurple-protocol-%s',
+ description='Libpurple protocol plugin for %s',
+ prepend=True, extra_depends='')
+
+ do_split_packages(d, purple, '^(ssl-.*)\.so$',
+ output_pattern='libpurple-plugin-%s',
+ description='libpurple plugin %s',
+ prepend=True, extra_depends='libpurple-plugin-ssl')
+
+ do_split_packages(d, purple, '^([^l][^i][^b].*)\.so$',
+ output_pattern='libpurple-plugin-%s',
+ description='libpurple plugin %s',
+ prepend=True, extra_depends='')
+
+ do_split_packages(d, finch, '^([^l][^i][^b].*)\.so$',
+ output_pattern='finch-plugin-%s',
+ description='Finch plugin %s',
+ prepend=True, extra_depends='')
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/pngcheck/pngcheck/0001-make-Respect-variables-from-environement.patch b/meta-openembedded/meta-oe/recipes-support/pngcheck/pngcheck/0001-make-Respect-variables-from-environement.patch
new file mode 100644
index 000000000..2d0ea0252
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pngcheck/pngcheck/0001-make-Respect-variables-from-environement.patch
@@ -0,0 +1,60 @@
+From 6245f18091cad11520c159248c1cf7a84f12857c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 5 Apr 2017 13:15:43 -0700
+Subject: [PATCH] make: Respect variables from environement
+
+link with shared zlib
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Makefile.unx | 18 ++++++++----------
+ 1 file changed, 8 insertions(+), 10 deletions(-)
+
+diff --git a/Makefile.unx b/Makefile.unx
+index 772da46..4ae7061 100644
+--- a/Makefile.unx
++++ b/Makefile.unx
+@@ -24,18 +24,16 @@ ZINC = -I$(ZPATH)
+ ZLIB = $(ZPATH)/libz.a
+
+ INCS = $(ZINC)
+-LIBS = $(ZLIB)
++LIBS = -lz
+
+-CC = gcc
+-LD = gcc
+-RM = rm
+-CFLAGS = -O -Wall $(INCS) -DUSE_ZLIB
++CC ?= gcc
++LD ?= gcc
++RM ?= rm
++CFLAGS += -O -Wall $(INCS) -DUSE_ZLIB
+ # [note that -Wall is a gcc-specific compilation flag ("all warnings on")]
+ O = .o
+ E =
+
+-LDFLAGS =
+-
+ PROG = pngcheck
+ PROG2 = pngsplit
+ PROG3 = png-fix-IDAT-windowsize
+@@ -57,13 +55,13 @@ EXES = $(PROG)$(E) $(PROG2)$(E) $(PROG3)$(E)
+ all: $(EXES)
+
+ $(PROG)$(E): $(PROG).c
+- $(CC) $(CFLAGS) -o $@ $(PROG).c $(LIBS)
++ $(CC) $(CFLAGS) -o $@ $(PROG).c $(LDFLAGS) $(LIBS)
+
+ $(PROG2)$(E): gpl/$(PROG2).c
+- $(CC) $(CFLAGS) -o $@ gpl/$(PROG2).c $(LIBS)
++ $(CC) $(CFLAGS) -o $@ gpl/$(PROG2).c $(LDFLAGS) $(LIBS)
+
+ $(PROG3)$(E): gpl/$(PROG3).c
+- $(CC) $(CFLAGS) -o $@ gpl/$(PROG3).c $(LIBS)
++ $(CC) $(CFLAGS) -o $@ gpl/$(PROG3).c $(LDFLAGS) $(LIBS)
+
+
+ # maintenance ---------------------------------------------------------------
+--
+2.12.2
+
diff --git a/meta-openembedded/meta-oe/recipes-support/pngcheck/pngcheck/0001-png-fix-IDAT-windowsize-Fix-format-string-errors-in-.patch b/meta-openembedded/meta-oe/recipes-support/pngcheck/pngcheck/0001-png-fix-IDAT-windowsize-Fix-format-string-errors-in-.patch
new file mode 100644
index 000000000..6d4465fbe
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pngcheck/pngcheck/0001-png-fix-IDAT-windowsize-Fix-format-string-errors-in-.patch
@@ -0,0 +1,36 @@
+From d4d8257953bd1e7be167aed24c0578362cc5f675 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 5 Apr 2017 13:12:30 -0700
+Subject: [PATCH 1/2] png-fix-IDAT-windowsize: Fix format string errors in
+ fprintf
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ gpl/png-fix-IDAT-windowsize.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/gpl/png-fix-IDAT-windowsize.c b/gpl/png-fix-IDAT-windowsize.c
+index 6d4ef9c..d212017 100644
+--- a/gpl/png-fix-IDAT-windowsize.c
++++ b/gpl/png-fix-IDAT-windowsize.c
+@@ -127,7 +127,7 @@ int main(int argc, char *argv[])
+ fprintf(stderr, " Compiled with zlib %s; using zlib %s.\n",
+ ZLIB_VERSION, zlib_version);
+ fprintf(stderr, "\n");
+- fprintf(stderr, png_fix_IDAT_windowsize_usage);
++ fprintf(stderr, "%s", png_fix_IDAT_windowsize_usage);
+ fflush(stderr);
+ return 1;
+ }
+@@ -143,7 +143,7 @@ int main(int argc, char *argv[])
+ fflush(stdout);
+
+ if ( argn == argc ) {
+- fprintf(stderr, png_fix_IDAT_windowsize_usage);
++ fprintf(stderr, "%s", png_fix_IDAT_windowsize_usage);
+ fflush(stderr);
+ return 5;
+ } else {
+--
+2.12.2
+
diff --git a/meta-openembedded/meta-oe/recipes-support/pngcheck/pngcheck/10-pngsplit-format-strings.patch b/meta-openembedded/meta-oe/recipes-support/pngcheck/pngcheck/10-pngsplit-format-strings.patch
new file mode 100644
index 000000000..f2c86689e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pngcheck/pngcheck/10-pngsplit-format-strings.patch
@@ -0,0 +1,40 @@
+From: Jari Aalto <jari.aalto@cante.net>
+Subject: Correct fomat strings fro hardened build flags
+
+---
+ gpl/pngsplit.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+--- a/gpl/pngsplit.c
++++ b/gpl/pngsplit.c
+@@ -141,8 +141,8 @@
+ 0 == strncmp( argv[argn], "-quiet", 2 ) )
+ verbose = 0;
+ else {
+- fprintf(stderr, pngsplit_hdr);
+- fprintf(stderr, pngsplit_usage);
++ fprintf(stderr, "%s", pngsplit_hdr);
++ fprintf(stderr, "%s", pngsplit_usage);
+ fflush(stderr);
+ return 1;
+ }
+@@ -150,8 +150,8 @@
+ }
+
+ if ( argn == argc ) {
+- fprintf(stderr, pngsplit_hdr);
+- fprintf(stderr, pngsplit_usage);
++ fprintf(stderr, "%s", pngsplit_hdr);
++ fprintf(stderr, "%s", pngsplit_usage);
+ fflush(stderr);
+ return 5;
+ } else {
+@@ -162,7 +162,7 @@
+
+ /*============================= MAIN LOOP =============================*/
+
+- fprintf(stdout, pngsplit_hdr);
++ fprintf(stdout, "%s", pngsplit_hdr);
+ fflush(stdout);
+
+ while (argn <= argc) {
diff --git a/meta-openembedded/meta-oe/recipes-support/pngcheck/pngcheck_2.3.0.bb b/meta-openembedded/meta-oe/recipes-support/pngcheck/pngcheck_2.3.0.bb
new file mode 100644
index 000000000..9f617ecda
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pngcheck/pngcheck_2.3.0.bb
@@ -0,0 +1,29 @@
+SUMMARY = "pngcheck verifies the integrity of PNG, JNG and MNG files"
+HOMEPAGE = "http://www.libpng.org/pub/png/apps/pngcheck.html"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://gpl/COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+DEPENDS = "zlib libpng"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/project/png-mng/${BPN}/${PV}/${BPN}-${PV}.tar.gz \
+ file://10-pngsplit-format-strings.patch \
+ file://0001-png-fix-IDAT-windowsize-Fix-format-string-errors-in-.patch \
+ file://0001-make-Respect-variables-from-environement.patch \
+ "
+
+SRC_URI[md5sum] = "980bd6d9a3830fdce746d7fe3c9166ee"
+SRC_URI[sha256sum] = "77f0a039ac64df55fbd06af6f872fdbad4f639d009bbb5cd5cbe4db25690f35f"
+
+CFLAGS += "-DUSE_ZLIB"
+
+EXTRA_OEMAKE = "-f ${S}/Makefile.unx"
+
+do_compile() {
+ oe_runmake
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install pngcheck ${D}${bindir}
+ install png-fix-IDAT-windowsize ${D}${bindir}
+ install pngsplit ${D}${bindir}
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/poco/poco/run-ptest b/meta-openembedded/meta-oe/recipes-support/poco/poco/run-ptest
new file mode 100644
index 000000000..c479f7ac1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/poco/poco/run-ptest
@@ -0,0 +1,9 @@
+#!/bin/sh
+while read runner; do
+ pushd . >/dev/null
+ cd bin
+ echo Testing $runner
+ ./$runner-testrunner -all
+ popd >/dev/null
+done < testrunners
+
diff --git a/meta-openembedded/meta-oe/recipes-support/poco/poco_1.8.0.1.bb b/meta-openembedded/meta-oe/recipes-support/poco/poco_1.8.0.1.bb
new file mode 100644
index 000000000..160b4d391
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/poco/poco_1.8.0.1.bb
@@ -0,0 +1,106 @@
+SUMMARY = "Modern, powerful open source cross-platform C++ class libraries"
+DESCRIPTION = "Modern, powerful open source C++ class libraries and frameworks for building network- and internet-based applications that run on desktop, server, mobile and embedded systems."
+SECTION = "libs"
+HOMEPAGE = "http://pocoproject.org/"
+LICENSE = "BSL-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4267f48fc738f50380cbeeb76f95cebc"
+
+# These dependencies are required by Foundation
+DEPENDS = "libpcre zlib"
+
+inherit cmake ptest
+
+BBCLASSEXTEND = "native"
+
+SRCREV = "af527ab21fca5ab2659285408aec9920ed7c7b17"
+SRC_URI = " \
+ git://github.com/pocoproject/poco.git \
+ file://run-ptest \
+ "
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=RelWithDebInfo -DPOCO_UNBUNDLED=ON \
+ -DZLIB_LIBRARY_RELEASE:STRING=z -DPCRE_LIBRARY:STRING=pcre \
+ ${@bb.utils.contains('PTEST_ENABLED', '1', '-DENABLE_TESTS=ON ', '', d)}"
+
+# For the native build we want to use the bundled version
+EXTRA_OECMAKE_append_class-native = " -DPOCO_UNBUNDLED=OFF"
+
+# do not use rpath
+EXTRA_OECMAKE_append = " -DCMAKE_SKIP_RPATH=ON"
+
+# By default the most commonly used poco components are built
+# Foundation is built anyway and doesn't need to be listed explicitly
+# these don't have dependencies outside oe-core
+PACKAGECONFIG ??= "XML JSON MongoDB PDF Util Net NetSSL Crypto Data DataSQLite Zip"
+
+PACKAGECONFIG[XML] = "-DENABLE_XML=ON -DEXPAT_LIBRARY:STRING=expat,-DENABLE_XML=OFF,expat"
+PACKAGECONFIG[JSON] = "-DENABLE_JSON=ON,-DENABLE_JSON=OFF"
+PACKAGECONFIG[MongoDB] = "-DENABLE_MONGODB=ON,-DENABLE_MONGODB=OFF"
+PACKAGECONFIG[PDF] = "-DENABLE_PDF=ON,-DENABLE_PDF=OFF,zlib"
+PACKAGECONFIG[Util] = "-DENABLE_UTIL=ON,-DENABLE_UTIL=OFF"
+PACKAGECONFIG[Net] = "-DENABLE_NET=ON,-DENABLE_NET=OFF"
+PACKAGECONFIG[NetSSL] = "-DENABLE_NETSSL=ON -DOPENSSL_SSL_LIBRARY:STRING=ssl -DOPENSSL_CRYPTO_LIBRARY:STRING=crypto,-DENABLE_NETSSL=OFF,openssl"
+PACKAGECONFIG[Crypto] = "-DENABLE_CRYPTO=ON -DOPENSSL_SSL_LIBRARY:STRING=ssl -DOPENSSL_CRYPTO_LIBRARY:STRING=crypto,-DENABLE_CRYPTO=OFF,openssl"
+PACKAGECONFIG[Data] = "-DENABLE_DATA=ON,-DENABLE_DATA=OFF"
+PACKAGECONFIG[DataSQLite] = "-DENABLE_DATA_SQLITE=ON -DSQLITE3_LIBRARY:STRING=sqlite3,-DENABLE_DATA_SQLITE=OFF,sqlite3"
+PACKAGECONFIG[Zip] = "-DENABLE_ZIP=ON,-DENABLE_ZIP=OFF"
+
+# Additional components not build by default,
+# they might have dependencies not included in oe-core
+# or they don't work on all architectures
+PACKAGECONFIG[mod_poco] = "-DENABLE_APACHECONNECTOR=ON,-DENABLE_APACHECONNECTOR=OFF,apr apache2"
+PACKAGECONFIG[CppParser] = "-DENABLE_CPPPARSER=ON,-DENABLE_CPPPARSER=OFF"
+PACKAGECONFIG[DataMySQL] = "-DENABLE_DATA_MYSQL=ON -DMYSQL_LIB:STRING=mysqlclient_r,-DENABLE_DATA_MYSQL=OFF,mariadb"
+PACKAGECONFIG[DataODBC] = "-DENABLE_DATA_ODBC=ON,-DENABLE_DATA_ODBC=OFF,libiodbc"
+PACKAGECONFIG[PageCompiler] = "-DENABLE_PAGECOMPILER=ON,-DENABLE_PAGECOMPILER=OFF"
+PACKAGECONFIG[PageCompilerFile2Page] = "-DENABLE_PAGECOMPILER_FILE2PAGE=ON,-DENABLE_PAGECOMPILER_FILE2PAGE=OFF"
+PACKAGECONFIG[SevenZip] = "-DENABLE_SEVENZIP=ON,-DENABLE_SEVENZIP=OFF"
+
+# Make a package for each library
+PACKAGES = "${PN}-dbg ${POCO_PACKAGES}"
+python __anonymous () {
+ packages = []
+ testrunners = []
+ components = d.getVar("PACKAGECONFIG").split()
+ components.append("Foundation")
+ for lib in components:
+ pkg = ("poco-%s" % lib.lower()).replace("_","")
+ packages.append(pkg)
+ if not d.getVar("FILES_%s" % pkg):
+ d.setVar("FILES_%s" % pkg, "${libdir}/libPoco%s.so.*" % lib)
+ testrunners.append("%s" % lib)
+
+ d.setVar("POCO_PACKAGES", " ".join(packages))
+ d.setVar("POCO_TESTRUNNERS", "\n".join(testrunners))
+}
+
+# "poco" is a metapackage which pulls in all Poco components
+PACKAGES += "${PN}"
+RRECOMMENDS_${PN} += "${POCO_PACKAGES}"
+RRECOMMENDS_${PN}_class-native = ""
+ALLOW_EMPTY_${PN} = "1"
+
+# -dev last to pick up the remaining stuff
+PACKAGES += "${PN}-dev ${PN}-staticdev"
+FILES_${PN}-dev = "${includedir} ${libdir}/libPoco*.so ${libdir}/cmake"
+FILES_${PN}-staticdev = "${libdir}/libPoco*.a"
+
+# ptest support
+FILES_${PN}-dbg += "${PTEST_PATH}/bin/.debug"
+
+# cppunit is only built if tests are enabled
+PACKAGES += "${PN}-cppunit"
+FILES_${PN}-cppunit += "${libdir}/libCppUnit.so*"
+ALLOW_EMPTY_${PN}-cppunit = "1"
+
+RDEPENDS_${PN}-ptest += "${PN}-cppunit"
+
+do_install_ptest () {
+ cp -rf ${B}/bin/ ${D}${PTEST_PATH}
+ cp -f ${B}/lib/libCppUnit.so* ${D}${libdir}
+ cp -rf ${B}/*/testsuite/data ${D}${PTEST_PATH}/bin/
+ find "${D}${PTEST_PATH}" -executable -exec chrpath -d {} \;
+ echo "${POCO_TESTRUNNERS}" > "${D}${PTEST_PATH}/testrunners"
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/poppler/poppler-data_0.4.8.bb b/meta-openembedded/meta-oe/recipes-support/poppler/poppler-data_0.4.8.bb
new file mode 100644
index 000000000..343b6db81
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/poppler/poppler-data_0.4.8.bb
@@ -0,0 +1,36 @@
+SUMMARY = "Encoding files for Poppler"
+DESCRIPTION = "Encoding files for use with poppler that enable poppler to \
+ correctly render CJK and Cyrrilic."
+LICENSE = "BSD & GPLv2 & GPLv3+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4870b98343f0bbb25fa43b9d2ba59448 \
+ file://COPYING.adobe;md5=63c6a8a9df204c00461fa5f163d8a663 \
+ file://COPYING.gpl2;md5=751419260aa954499f7abaabaa882bbe \
+"
+
+inherit allarch
+
+INHIBIT_DEFAULT_DEPS = "1"
+
+CMAP_RESOURCES_BASE = "https://github.com/adobe-type-tools/cmap-resources/raw/0561ebca035813ed04c3485bca636a0aa7abdc1d/cmapresources_identity-0/CMap"
+
+SRC_URI = "http://poppler.freedesktop.org/${BP}.tar.gz \
+ ${CMAP_RESOURCES_BASE}/Identity-H;name=idh \
+ ${CMAP_RESOURCES_BASE}/Identity-V;name=idv"
+
+SRC_URI[md5sum] = "00f8989c804de84af0ba2ea629949980"
+SRC_URI[sha256sum] = "1096a18161f263cccdc6d8a2eb5548c41ff8fcf9a3609243f1b6296abdf72872"
+SRC_URI[idh.md5sum] = "009c93cf0141ab7bd6acb7eea14306cc"
+SRC_URI[idh.sha256sum] = "ae702c203a82ea124e9b96590f821db6fbf8754e2c4547a9dba0e82f94739e95"
+SRC_URI[idv.md5sum] = "2f32a45d43d001c26eeac6b878855fbf"
+SRC_URI[idv.sha256sum] = "89a85daf7031e93c883e76b9168a226dfd585bf5506e9e1956772163f15cb082"
+
+do_compile() {
+}
+
+do_install() {
+ oe_runmake install DESTDIR=${D} prefix=${prefix} datadir=${datadir}
+ install -d ${D}${datadir}/poppler/cMap
+ install -m644 ${WORKDIR}/Identity-* ${D}${datadir}/poppler/cMap/
+}
+
+FILES_${PN} += "${datadir}"
diff --git a/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-Do-not-overwrite-all-our-build-flags.patch b/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-Do-not-overwrite-all-our-build-flags.patch
new file mode 100644
index 000000000..18f508519
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-Do-not-overwrite-all-our-build-flags.patch
@@ -0,0 +1,38 @@
+From b6fc6c36d359a50503138cd87d7147faf6dff893 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Sat, 17 Mar 2018 20:52:10 +0100
+Subject: [PATCH] Do not overwrite all our build flags
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ cmake/modules/PopplerMacros.cmake | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/cmake/modules/PopplerMacros.cmake b/cmake/modules/PopplerMacros.cmake
+index ccb2790..0f392cb 100644
+--- a/cmake/modules/PopplerMacros.cmake
++++ b/cmake/modules/PopplerMacros.cmake
+@@ -125,14 +125,14 @@ if(CMAKE_COMPILER_IS_GNUCXX)
+ set(DEFAULT_COMPILE_WARNINGS_EXTRA "${_warn} ${_warnx}")
+
+ set(_save_cxxflags "${CMAKE_CXX_FLAGS}")
+- set(CMAKE_CXX_FLAGS "-fno-exceptions -fno-check-new -fno-common -D_DEFAULT_SOURCE")
++ set(CMAKE_CXX_FLAGS "-fno-exceptions -fno-check-new -fno-common -D_DEFAULT_SOURCE ${_save_cxxflags}")
+ set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g ${_save_cxxflags}")
+ set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG ${_save_cxxflags}")
+ set(CMAKE_CXX_FLAGS_DEBUG "-g -O2 -fno-reorder-blocks -fno-schedule-insns -fno-inline ${_save_cxxflags}")
+ set(CMAKE_CXX_FLAGS_DEBUGFULL "-g3 -fno-inline ${_save_cxxflags}")
+ set(CMAKE_CXX_FLAGS_PROFILE "-g3 -fno-inline -ftest-coverage -fprofile-arcs ${_save_cxxflags}")
+ set(_save_cflags "${CMAKE_C_FLAGS}")
+- set(CMAKE_C_FLAGS "-std=c99 -D_DEFAULT_SOURCE")
++ set(CMAKE_C_FLAGS "-std=c99 -D_DEFAULT_SOURCE ${_save_cflags}")
+ set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g ${_save_cflags}")
+ set(CMAKE_C_FLAGS_RELEASE "-O2 -DNDEBUG ${_save_cflags}")
+ set(CMAKE_C_FLAGS_DEBUG "-g -O2 -fno-reorder-blocks -fno-schedule-insns -fno-inline ${_save_cflags}")
+--
+2.14.3
diff --git a/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0002-CairoOutputDev.cc-fix-build-error-when-using-fixedpo.patch b/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0002-CairoOutputDev.cc-fix-build-error-when-using-fixedpo.patch
new file mode 100644
index 000000000..3c231fe93
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0002-CairoOutputDev.cc-fix-build-error-when-using-fixedpo.patch
@@ -0,0 +1,100 @@
+From 6287663e7db04df7e6dec58a1fc5bb5d510e8bde Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Mon, 9 Apr 2018 19:11:20 +0200
+Subject: [PATCH] CairoOutputDev.cc: fix build error when using fixedpoint
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Fixes:
+| <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc: In function 'int splashRound(SplashCoord)':
+| <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc:1604:28: error: call of overloaded 'floor(FixedPoint)' is ambiguous
+| return (int)floor(x + 0.5);
+| ^
+| In file included from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/features.h:428:0,
+| from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/arm-oe-linux-gnueabi/bits/os_defines.h:39,
+| from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/arm-oe-linux-gnueabi/bits/c++config.h:533,
+| from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/cstdint:38,
+| from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc:44:
+| <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/bits/mathcalls.h:165:1: note: candidate: double floor(double)
+| __MATHCALLX (floor,, (_Mdouble_ __x), (__const__));
+| ^
+| In file included from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/math.h:36:0,
+| from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc:46:
+| <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/cmath:260:3: note: candidate: constexpr float std::floor(float)
+| floor(float __x)
+| ^~~~~
+| <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/cmath:264:3: note: candidate: constexpr long double std::floor(long double)
+| floor(long double __x)
+| ^~~~~
+| <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc: In function 'int splashCeil(SplashCoord)':
+| <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc:1608:21: error: call of overloaded 'ceil(SplashCoord&)' is ambiguous
+| return (int)ceil(x);
+| ^
+| In file included from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/features.h:428:0,
+| from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/arm-oe-linux-gnueabi/bits/os_defines.h:39,
+| from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/arm-oe-linux-gnueabi/bits/c++config.h:533,
+| from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/cstdint:38,
+| from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc:44:
+| <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/bits/mathcalls.h:159:1: note: candidate: double ceil(double)
+| __MATHCALLX (ceil,, (_Mdouble_ __x), (__const__));
+| ^
+| In file included from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/math.h:36:0,
+| from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc:46:
+| <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/cmath:165:3: note: candidate: constexpr float std::ceil(float)
+| ceil(float __x)
+| ^~~~
+| <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/cmath:169:3: note: candidate: constexpr long double std::ceil(long double)
+| ceil(long double __x)
+| ^~~~
+| <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc: In function 'int splashFloor(SplashCoord)':
+| <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc:1612:22: error: call of overloaded 'floor(SplashCoord&)' is ambiguous
+| return (int)floor(x);
+| ^
+| In file included from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/features.h:428:0,
+| from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/arm-oe-linux-gnueabi/bits/os_defines.h:39,
+| from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/arm-oe-linux-gnueabi/bits/c++config.h:533,
+| from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/cstdint:38,
+| from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc:44:
+| <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/bits/mathcalls.h:165:1: note: candidate: double floor(double)
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ poppler/CairoOutputDev.cc | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/poppler/CairoOutputDev.cc b/poppler/CairoOutputDev.cc
+index 18124b8f..4c85ad65 100644
+--- a/poppler/CairoOutputDev.cc
++++ b/poppler/CairoOutputDev.cc
+@@ -1602,15 +1602,27 @@ void CairoOutputDev::endActualText(GfxState *state)
+ }
+
+ static inline int splashRound(SplashCoord x) {
++#if defined(USE_FIXEDPOINT)
++ return FixedPoint::floor(x + 0.5);
++#else
+ return (int)floor(x + 0.5);
++#endif
+ }
+
+ static inline int splashCeil(SplashCoord x) {
++#if defined(USE_FIXEDPOINT)
++ return FixedPoint::ceil(x);
++#else
+ return (int)ceil(x);
++#endif
+ }
+
+ static inline int splashFloor(SplashCoord x) {
++#if defined(USE_FIXEDPOINT)
++ return FixedPoint::floor(x);
++#else
+ return (int)floor(x);
++#endif
+ }
+
+ static
+--
+2.14.3
+
diff --git a/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.63.0.bb b/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.63.0.bb
new file mode 100644
index 000000000..8acb35628
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.63.0.bb
@@ -0,0 +1,56 @@
+SUMMARY = "Poppler is a PDF rendering library based on the xpdf-3.0 code base"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+SRC_URI = " \
+ http://poppler.freedesktop.org/${BP}.tar.xz \
+ file://0001-Do-not-overwrite-all-our-build-flags.patch \
+ file://0002-CairoOutputDev.cc-fix-build-error-when-using-fixedpo.patch \
+"
+SRC_URI[md5sum] = "66a54da4896b1408611699feda5c1821"
+SRC_URI[sha256sum] = "27cc8addafc791e1a26ce6acc2b490926ea73a4f89196dd8a7742cff7cf8a111"
+
+DEPENDS = "fontconfig zlib cairo lcms"
+
+inherit cmake pkgconfig gobject-introspection
+
+PACKAGECONFIG ??= "jpeg openjpeg png tiff nss ${@bb.utils.contains('BBFILE_COLLECTIONS', 'qt5-layer', 'qt5', '', d)}"
+PACKAGECONFIG[jpeg] = "-DWITH_JPEG=ON -DENABLE_DCTDECODER=libjpeg,-DWITH_JPEG=OFF -DENABLE_DCTDECODER=none,jpeg"
+PACKAGECONFIG[png] = "-DWITH_PNG=ON,-DWITH_PNG=OFF,libpng"
+PACKAGECONFIG[tiff] = "-DWITH_TIFF=ON,-DWITH_TIFF=OFF,tiff"
+PACKAGECONFIG[curl] = "-DENABLE_LIBCURL=ON,-DENABLE_LIBCURL=OFF,curl"
+PACKAGECONFIG[openjpeg] = "-DENABLE_LIBOPENJPEG=openjpeg2,-DENABLE_LIBOPENJPEG=none,openjpeg"
+PACKAGECONFIG[qt5] = "-DENABLE_QT5=ON,-DENABLE_QT5=OFF,qtbase qttools-native"
+PACKAGECONFIG[nss] = "-DWITH_NSS3=ON,-DWITH_NSS3=OFF,nss"
+
+# surprise - did not expect this to work :)
+inherit ${@bb.utils.contains('PACKAGECONFIG', 'qt5', 'cmake_qt5', '', d)}
+
+SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"
+
+EXTRA_OECMAKE += " \
+ -DENABLE_XPDF_HEADERS=ON \
+ -DBUILD_GTK_TESTS=OFF \
+ -DENABLE_ZLIB=ON \
+"
+
+do_configure_append() {
+ # poppler macro uses pkg-config to check for g-ir runtimes. Something
+ # makes them point to /usr/bin. Align them to sysroot - that's where the
+ # git-wrappers are:
+ sed -i 's: ${bindir}/g-ir: ${STAGING_BINDIR}/g-ir:' ${B}/build.ninja
+}
+
+# check for TARGET_FPU=soft and inform configure of the result so it can disable some floating points
+def get_poppler_fpu_setting(bb, d):
+ if d.getVar('TARGET_FPU') in [ 'soft' ]:
+ return "-DUSE_FIXEDPOINT=ON"
+ return ""
+
+EXTRA_OECMAKE += "${@get_poppler_fpu_setting(bb, d)}"
+
+PACKAGES =+ "libpoppler libpoppler-glib"
+FILES_libpoppler = "${libdir}/libpoppler.so.*"
+FILES_libpoppler-glib = "${libdir}/libpoppler-glib.so.*"
+
+RDEPENDS_libpoppler = "poppler-data"
diff --git a/meta-openembedded/meta-oe/recipes-support/portaudio/files/ldflags.patch b/meta-openembedded/meta-oe/recipes-support/portaudio/files/ldflags.patch
new file mode 100644
index 000000000..aca93a51f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/portaudio/files/ldflags.patch
@@ -0,0 +1,51 @@
+Upstream forgot to pass LDFLAGS to everything apart from the main library.
+
+Upstream-Status: Pending
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+
+diff --git a/Makefile.in b/Makefile.in
+index 5e1a764..61ecdd1 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -171,20 +171,20 @@ lib/$(PALIB): lib-stamp $(LTOBJS) $(MAKEFILE) $(PAINC)
+ @WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) $(PA_LDFLAGS) -o lib/$(PALIB) $(LTOBJS) $(DLL_LIBS)
+
+ $(ALL_TESTS): bin/%: lib/$(PALIB) $(MAKEFILE) $(PAINC) test/%.c
+- @WITH_ASIO_FALSE@ $(LIBTOOL) --mode=link $(CC) -o $@ $(CFLAGS) $(top_srcdir)/test/$*.c lib/$(PALIB) $(LIBS)
+- @WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) -o $@ $(CXXFLAGS) $(top_srcdir)/test/$*.c lib/$(PALIB) $(LIBS)
++ @WITH_ASIO_FALSE@ $(LIBTOOL) --mode=link $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(top_srcdir)/test/$*.c lib/$(PALIB) $(LIBS)
++ @WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) -o $@ $(CXXFLAGS) $(LDFLAGS) $(top_srcdir)/test/$*.c lib/$(PALIB) $(LIBS)
+
+ $(EXAMPLES): bin/%: lib/$(PALIB) $(MAKEFILE) $(PAINC) examples/%.c
+- @WITH_ASIO_FALSE@ $(LIBTOOL) --mode=link $(CC) -o $@ $(CFLAGS) $(top_srcdir)/examples/$*.c lib/$(PALIB) $(LIBS)
+- @WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) -o $@ $(CXXFLAGS) $(top_srcdir)/examples/$*.c lib/$(PALIB) $(LIBS)
++ @WITH_ASIO_FALSE@ $(LIBTOOL) --mode=link $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(top_srcdir)/examples/$*.c lib/$(PALIB) $(LIBS)
++ @WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) -o $@ $(CXXFLAGS) $(LDFLAGS) $(top_srcdir)/examples/$*.c lib/$(PALIB) $(LIBS)
+
+ $(SELFTESTS): bin/%: lib/$(PALIB) $(MAKEFILE) $(PAINC) qa/%.c
+- @WITH_ASIO_FALSE@ $(LIBTOOL) --mode=link $(CC) -o $@ $(CFLAGS) $(top_srcdir)/qa/$*.c lib/$(PALIB) $(LIBS)
+- @WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) -o $@ $(CXXFLAGS) $(top_srcdir)/qa/$*.c lib/$(PALIB) $(LIBS)
++ @WITH_ASIO_FALSE@ $(LIBTOOL) --mode=link $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(top_srcdir)/qa/$*.c lib/$(PALIB) $(LIBS)
++ @WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) -o $@ $(CXXFLAGS) $(LDFLAGS) $(top_srcdir)/qa/$*.c lib/$(PALIB) $(LIBS)
+
+ bin/paloopback: lib/$(PALIB) $(MAKEFILE) $(PAINC) $(LOOPBACK_OBJS)
+- @WITH_ASIO_FALSE@ $(LIBTOOL) --mode=link $(CC) -o $@ $(CFLAGS) $(LOOPBACK_OBJS) lib/$(PALIB) $(LIBS)
+- @WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) -o $@ $(CXXFLAGS) $(LOOPBACK_OBJS) lib/$(PALIB) $(LIBS)
++ @WITH_ASIO_FALSE@ $(LIBTOOL) --mode=link $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(LOOPBACK_OBJS) lib/$(PALIB) $(LIBS)
++ @WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) -o $@ $(CXXFLAGS) $(LDFLAGS) $(LOOPBACK_OBJS) lib/$(PALIB) $(LIBS)
+
+ install: lib/$(PALIB) portaudio-2.0.pc
+ $(INSTALL) -d $(DESTDIR)$(libdir)
+@@ -224,10 +224,10 @@ distclean: clean
+ $(CC) -c $(CFLAGS) $< -o $@
+
+ %.lo: %.c $(MAKEFILE) $(PAINC)
+- $(LIBTOOL) --mode=compile $(CC) -c $(CFLAGS) $< -o $@
++ $(LIBTOOL) --mode=compile $(CC) -c $(CFLAGS) $(LDFLAGS) $< -o $@
+
+ %.lo: %.cpp $(MAKEFILE) $(PAINC)
+- $(LIBTOOL) --mode=compile --tag=CXX $(CXX) -c $(CXXFLAGS) $< -o $@
++ $(LIBTOOL) --mode=compile --tag=CXX $(CXX) -c $(CXXFLAGS) $(LDFLAGS) $< -o $@
+
+ %.o: %.cpp $(MAKEFILE) $(PAINC)
+ $(CXX) -c $(CXXFLAGS) $< -o $@
diff --git a/meta-openembedded/meta-oe/recipes-support/portaudio/portaudio-v19_20161030.bb b/meta-openembedded/meta-oe/recipes-support/portaudio/portaudio-v19_20161030.bb
new file mode 100644
index 000000000..489f8ad9e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/portaudio/portaudio-v19_20161030.bb
@@ -0,0 +1,32 @@
+SUMMARY = "A portable audio library"
+SECTION = "libs/multimedia"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=26107732c2ab637c5710446fcfaf02df"
+
+PV = "v190600"
+
+SRC_URI = "http://www.portaudio.com/archives/pa_stable_v190600_20161030.tgz \
+ file://ldflags.patch"
+SRC_URI[md5sum] = "4df8224e047529ca9ad42f0521bf81a8"
+SRC_URI[sha256sum] = "f5a21d7dcd6ee84397446fa1fa1a0675bb2e8a4a6dceb4305a8404698d8d1513"
+
+S = "${WORKDIR}/portaudio"
+
+inherit autotools pkgconfig
+
+PACKAGECONFIG ??= "alsa jack"
+PACKAGECONFIG[alsa] = "--with-alsa, --without-alsa, alsa-lib,"
+PACKAGECONFIG[jack] = "--with-jack, --without-jack, jack,"
+
+EXTRA_OECONF = "--without-oss --without-asihpi"
+
+do_install_append() {
+ mkdir --parents ${D}${bindir}
+ for b in ${B}/bin/pa*; do
+ # Bit nasty, should always work
+ ${B}/*-libtool --mode install install $b ${D}${bindir}
+ done
+}
+
+PACKAGES += "portaudio-examples"
+FILES_portaudio-examples = "${bindir}"
diff --git a/meta-openembedded/meta-oe/recipes-support/pps-tools/pps-tools_git.bb b/meta-openembedded/meta-oe/recipes-support/pps-tools/pps-tools_git.bb
new file mode 100644
index 000000000..8bf903699
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pps-tools/pps-tools_git.bb
@@ -0,0 +1,17 @@
+SUMMARY = "User-space tools for LinuxPPS"
+HOMEPAGE = "http://linuxpps.org"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+PV = "0.0.0+git${SRCPV}"
+SRCREV = "0deb9c7e135e9380a6d09e9d2e938a146bb698c8"
+SRC_URI = "git://github.com/ago/pps-tools.git"
+
+S = "${WORKDIR}/git"
+
+do_install() {
+ install -d ${D}${bindir} ${D}${includedir} \
+ ${D}${includedir}/sys
+ oe_runmake 'DESTDIR=${D}' install
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/procmail/procmail/from-debian-to-fix-compile-errors.patch b/meta-openembedded/meta-oe/recipes-support/procmail/procmail/from-debian-to-fix-compile-errors.patch
new file mode 100644
index 000000000..8341a8ecd
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/procmail/procmail/from-debian-to-fix-compile-errors.patch
@@ -0,0 +1,606 @@
+From 898e9514bc889b4a540f667efed95a5af101c824 Mon Sep 17 00:00:00 2001
+From: Li xin <lixin.fnst@cn.fujitsu.com>
+Date: Tue, 2 Dec 2014 07:00:36 +0900
+Subject: [PATCH 1/3] From debian to fix compile errors
+
+Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
+---
+ src/Makefile.0 | 7 +++----
+ src/autoconf | 64 +++++++++++++-------------------------------------------
+ src/comsat.c | 65 +++++++++++++++++++--------------------------------------
+ src/fields.c | 6 +++---
+ src/foldinfo.h | 2 +-
+ src/formail.c | 6 +++---
+ src/formisc.c | 2 +-
+ src/formisc.h | 2 +-
+ src/mailfold.c | 14 ++++++++++---
+ src/manconf.c | 2 +-
+ src/memblk.c | 24 ++++++++++-----------
+ src/memblk.h | 2 +-
+ src/network.h | 10 ++-------
+ src/pipes.c | 10 ++++-----
+ src/procmail.c | 3 +--
+ src/recommend.c | 2 +-
+ 16 files changed, 81 insertions(+), 140 deletions(-)
+
+diff --git a/src/Makefile.0 b/src/Makefile.0
+index 6eb5b51..15a2039 100644
+--- a/src/Makefile.0
++++ b/src/Makefile.0
+@@ -40,7 +40,7 @@ multigram: multigram.$(O) $(MG_OBJ) setid
+ @cd ..; $(MAKE) config.check
+
+ _autotst: _autotst.$(O) sublib.c sublib.h
+- $(CC) $(CFLAGS) $@.$(O) -o $@ $(LDFLAGS)
++ gcc $@.$(O) -o $@ $(LDFLAGS)
+
+ ../autoconf.h: autoconf Makefile ../patchlevel.h
+ @echo No this was not make -n >make_n
+@@ -175,17 +175,16 @@ recommend: recommend.$(O) sublib.$(O)
+
+ ../man/man.sed: manconf.c ../autoconf.h ../config.h includes.h procmail.h
+ ../man/man.sed: ../patchlevel.h
+- @$(CC) $(CFLAGS) "-DBINDIR=\"$(VISIBLE_BINDIR)\"" -o _autotst \
++ gcc "-DBINDIR=\"$(VISIBLE_BINDIR)\"" -o _autotst \
+ manconf.c $(LDFLAGS)
+ @./_autotst $@
+ @echo Housekeeping file >$@
+- @$(RM) _autotst
+
+ clean:
+ $(RM) -r _locktest
+ $(RM) procmail.$(O) $(PM_OBJ) lockfile.$(O) $(LF_OBJ) formail.$O \
+ $(FM_OBJ) multigram.$(O) $(MG_OBJ) $(BINSS) multigram ../autoconf.h \
+- _autotst* lookfor _locktst* grepfor recommend recommend.$(O) manconf \
++ lookfor _locktst* grepfor recommend recommend.$(O) manconf \
+ _Makefile lock.log *core* targetdir.h setid setid.$(O) gethome \
+ gethome.$(O) make_n realloc.log
+
+diff --git a/src/autoconf b/src/autoconf
+index 1cb4c42..ff78048 100755
+--- a/src/autoconf
++++ b/src/autoconf
+@@ -68,8 +68,6 @@
+ # #define NOfsync
+ #Ok #define endpwent()
+ #Ok #define endgrent()
+-#Ok #define endhostent()
+-#Ok #define endservent()
+ #Ok #define endprotoent()
+ # #define h_0addr_list h_addr
+ #Ok #define NOpw_passwd
+@@ -896,7 +894,7 @@ int main(){int i=0;
+ {uid_t vuid_t;i+=vuid_t=1;}
+ {gid_t vgid_t;i+=vgid_t=1;}
+ #ifndef NO_COMSAT
+- {struct hostent vhostent;i+=!(vhostent.h_addr_list=0);}
++ {struct addrinfo res; i+=!(res.ai_socktype=0);}
+ #endif
+ #ifndef NOuname
+ {struct utsname vutsname;i+=!(*vutsname.nodename='\0');}
+@@ -917,8 +915,6 @@ do
+ test -z "$i3" && grepfor mode_t 'typedef int mode_t;' && i3=I
+ test -z "$i4" && grepfor uid_t 'typedef int uid_t;' && i4=I
+ test -z "$i5" && grepfor gid_t 'typedef int gid_t;' && i5=I
+- test -z "$i6" && grepfor h_addr_list '#define h_0addr_list h_addr' && i6=I
+- test -z "$i6" && grepfor hostent '#define h_0addr_list h_addr' && i6=I
+ test -z "$i6" && grepfor member '#define h_0addr_list h_addr' && i6=I
+ test -z "$i7" && grepfor utsname "#define NOuname \
+ /* <sys/utsname.h> is there, but empty */" && i7=I
+@@ -1048,8 +1044,12 @@ int main(){char a[2];
+ {struct utsname b;uname(&b);}
+ #endif
+ #ifndef NO_COMSAT
+- gethostbyname("0");getprotobyname(COMSATprotocol);endhostent();endservent();
+- endprotoent();
++ {
++ struct addrinfo *res, hints;
++ memset(&hints, '\0', sizeof(hints));
++ if(getaddrinfo(COMSAThost,BIFF_serviceport,&hints,&res))
++ freeaddrinfo(res);
++ }
+ #endif
+ _exit(0);
+ return 0;}
+@@ -1103,14 +1103,9 @@ grepfor uname "\
+ /* <sys/utsname.h> defines it, the libraries don't */"
+ grepfor endpwent '#define endpwent()'
+ grepfor endgrent '#define endgrent()'
+-if grepfor gethostbyname '#define NO_COMSAT'
++if grepfor getaddrinfo '#define NO_COMSAT'
+ then
+ :
+-else
+- grepfor getprotobyname '#define UDP_protocolno 17'
+- grepfor endhostent '#define endhostent()'
+- grepfor endservent '#define endservent()'
+- grepfor endprotoent '#define endprotoent()'
+ fi
+ grepfor strstr '#define SLOWstrstr' ||
+ grepfor clock '#define SLOWstrstr'
+@@ -1239,39 +1234,9 @@ int main(argc,argv)int argc;const char*argv[];
+ printf("/* Insufficient memory to perform the benchmark! */\n");
+ #endif /* SLOWstrstr */
+ #ifndef NO_COMSAT
+-#ifndef UDP_protocolno
+- ;{ const struct protoent*p;
+- if(p=getprotobyname(COMSATprotocol))
+- { printf("#define UDP_protocolno %d\n",p->p_proto);
+-#else
+- ;{ if(1)
+- {
+-#endif
+- ;{ const struct servent*serv;
+- if(serv=getservbyname(COMSATservice,COMSATprotocol))
+- printf("#define BIFF_serviceport \"%d\"\n",
+- ntohs(serv->s_port));
+- }
+-#ifdef AF_INET
+- ;{ const struct hostent*host;
+- if(!strcmp("localhost",COMSAThost)&&
+- (host=gethostbyname(COMSAThost))&&
+- host->h_0addr_list&&host->h_addrtype==AF_INET&&
+- host->h_length)
+- { int j=host->h_length;
+- const unsigned char*ad=(void*)host->h_0addr_list;
+- printf("#define IP_localhost {");
+- printf("%d",*ad++);
+- while(--j)
+- printf(",%d",*ad++);
+- puts("}");
+- }
+- }
++#ifndef AF_INET
++ puts("#define NO_COMSAT");
+ #endif /* AF_INET */
+- }
+- else
+- puts("#define NO_COMSAT");
+- }
+ #endif /* NO_COMSAT */
+ ;{ unsigned long s=(size_t)~0;int bits;
+ for(bits=1;s>>=1;bits++);
+@@ -1470,15 +1435,14 @@ cat /usr/lib/sendmail.cf /etc/sendmail.cf /etc/mail/sendmail.cf 2>$DEVNULL |
+ grep 'Mlocal.*procmail' >$DEVNULL ||
+ echo '#define CF_no_procmail_yet' >>$ACONF
+
+-cat /usr/lib/sendmail.cf /etc/sendmail.cf /etc/mail/sendmail.cf 2>$DEVNULL |
+- grep '^V' >$DEVNULL ||
+- echo '#define buggy_SENDMAIL' >>$ACONF
++# cat /usr/lib/sendmail.cf /etc/sendmail.cf /etc/mail/sendmail.cf 2>$DEVNULL |
++# grep '^V' >$DEVNULL ||
++# echo '#define buggy_SENDMAIL' >>$ACONF
+
+ lpath='/bin'
+ bins="/bin"
+
+-for newd in /usr/bin /usr/ucb /usr/5bin $BINDIR /local/bin /usr/local/bin \
+- /global/bin /usr/bin/X11 /usr/X*/bin
++for newd in /usr/bin $BINDIR /usr/bin/X11 /usr/X*/bin
+ do
+ if test -d $newd
+ then
+diff --git a/src/comsat.c b/src/comsat.c
+index 77dba34..5082b16 100644
+--- a/src/comsat.c
++++ b/src/comsat.c
+@@ -27,7 +27,8 @@ static /*const*/char rcsid[]=
+ #include "comsat.h"
+
+ static int csvalid; /* is it turned on with a good address? */
+-static struct sockaddr_in csaddr;
++static struct addrinfo cai;
++static struct sockaddr *csaddr;
+ static char*cslastf,*cslgname;
+
+ void setlfcs(folder)const char*folder; /* set lastfolder for comsat */
+@@ -62,56 +63,32 @@ void setlgcs(name)const char*name; /* set logname for comsat */
+ }
+
+ int setcomsat(chp)const char*chp;
+-{ char*chad;int newvalid; struct sockaddr_in newaddr;
++{ char*chad;int newvalid; struct addrinfo *res, hints;
+ chad=strchr(chp,SERV_ADDRsep); /* @ separator? */
+ if(!chad&&!renvint(-1L,chp))
+ return csvalid=0; /* turned off comsat */
+ newvalid=1;
+ if(chad)
+ *chad++='\0'; /* split the specifier */
++ if(!chad||!*chp) /* no service */
++ chp=BIFF_serviceport; /* new balls please! */
+ if(!chad||!*chad) /* no host */
+-#ifndef IP_localhost /* Is "localhost" preresolved? */
+ chad=COMSAThost; /* nope, use default */
+-#else /* IP_localhost */
+- { static const unsigned char ip_localhost[]=IP_localhost;
+- newaddr.sin_family=AF_INET;
+- tmemmove(&newaddr.sin_addr,ip_localhost,sizeof ip_localhost);
+- }
+- else
+-#endif /* IP_localhost */
+- { const struct hostent*host; /* what host? paranoid checks */
+- if(!(host=gethostbyname(chad))||!host->h_0addr_list)
+- { bbzero(&newaddr.sin_addr,sizeof newaddr.sin_addr);
+- newvalid=0; /* host can't be found, too bad */
+- }
+- else
+- { newaddr.sin_family=host->h_addrtype; /* address number found */
+- tmemmove(&newaddr.sin_addr,host->h_0addr_list,host->h_length);
+- }
+- endhostent();
+- }
+- if(newvalid) /* so far, so good */
+- { int s;
+- if(!*chp) /* no service */
+- chp=BIFF_serviceport; /* new balls please! */
+- s=strtol(chp,&chad,10);
+- if(chp!=chad) /* the service is not numeric */
+- newaddr.sin_port=htons((short)s); /* network order */
+- else
+- { const struct servent*serv;
+- serv=getservbyname(chp,COMSATprotocol); /* so get its no. */
+- if(serv)
+- newaddr.sin_port=serv->s_port;
+- else
+- { newaddr.sin_port=htons((short)0); /* no such service */
+- newvalid=0;
+- }
+- endservent();
+- }
+- }
++ bzero(&hints,sizeof(hints));
++ hints.ai_socktype=SOCK_DGRAM;
++ hints.ai_flags=AI_ADDRCONFIG;
++ if(getaddrinfo(chad,chp,&hints,&res))
++ newvalid=0;
++
+ onguard(); /* update the address atomically */
+ if(csvalid=newvalid)
+- tmemmove(&csaddr,&newaddr,sizeof(newaddr));
++ { if(csaddr)
++ free(csaddr);
++ csaddr=malloc(res->ai_addrlen);
++ tmemmove(csaddr,res->ai_addr,res->ai_addrlen);
++ tmemmove(&cai,res,sizeof(cai));
++ freeaddrinfo(res);
++ }
+ offguard();
+ return newvalid;
+ }
+@@ -120,7 +97,7 @@ void sendcomsat(folder)const char*folder;
+ { int s;const char*p;
+ if(!csvalid||!buf) /* is comat on and set to a valid address? */
+ return;
+- if(!*cslgname||strlen(cslgname)+2>linebuf) /* is $LOGNAME bogus? */
++ if(!cslgname||!*cslgname||strlen(cslgname)+2>linebuf)/* is $LOGNAME bogus? */
+ return;
+ if(!(p=folder?folder:cslastf)) /* do we have a folder? */
+ return;
+@@ -132,8 +109,8 @@ void sendcomsat(folder)const char*folder;
+ }
+ strlcat(buf,COMSATxtrsep,linebuf); /* custom seperator */
+ strlcat(buf,p,linebuf); /* where was it delivered? */
+- if((s=socket(AF_INET,SOCK_DGRAM,UDP_protocolno))>=0)
+- { sendto(s,buf,strlen(buf),0,(struct sockaddr*)&csaddr,sizeof(csaddr));
++ if((s=socket(cai.ai_family,cai.ai_socktype,cai.ai_protocol))>=0)
++ { sendto(s,buf,strlen(buf),0,csaddr,cai.ai_addrlen);
+ rclose(s);
+ yell("Notified comsat:",buf);
+ }
+diff --git a/src/fields.c b/src/fields.c
+index a2bd77f..37ed154 100644
+--- a/src/fields.c
++++ b/src/fields.c
+@@ -110,16 +110,16 @@ void dispfield(p)register const struct field*p;
+ /* try and append one valid field to rdheader from stdin */
+ int readhead P((void))
+ { int idlen;
+- getline();
++ get_line();
+ if((idlen=breakfield(buf,buffilled))<=0) /* not the start of a valid field */
+ return 0;
+ if(idlen==STRLEN(FROM)&&eqFrom_(buf)) /* it's a From_ line */
+ { if(rdheader)
+ return 0; /* the From_ line was a fake! */
+- for(;buflast=='>';getline()); /* gather continued >From_ lines */
++ for(;buflast=='>';get_line()); /* gather continued >From_ lines */
+ }
+ else
+- for(;;getline()) /* get the rest of the continued field */
++ for(;;get_line()) /* get the rest of the continued field */
+ { switch(buflast) /* will this line be continued? */
+ { case ' ':case '\t': /* yep, it sure is */
+ continue;
+diff --git a/src/foldinfo.h b/src/foldinfo.h
+index 9e4ebb6..797f9be 100644
+--- a/src/foldinfo.h
++++ b/src/foldinfo.h
+@@ -10,7 +10,7 @@
+
+ #define ft_lock(type) ((type)>ft_MAILDIR) /* kernel lock fd */
+ #define ft_atime(type) ((type)==ft_FILE) /* force atime < mtime */
+-#define ft_dotlock(type) ((type)==ft_FILE) /* dotlock $DEFAULT */
++#define ft_dotlock(type) ((type)>ft_MAILDIR) /* dotlock $DEFAULT */
+ #define ft_delim(type) ((type)==ft_FILE) /* add MMDF delim */
+ #define ft_checkcloser(type) ((type)>ft_MH)
+ #define ft_forceblank(type) ((type)!=ft_MAILDIR) /* force blank line at end */
+diff --git a/src/formail.c b/src/formail.c
+index fe5e6be..1f5c9dd 100644
+--- a/src/formail.c
++++ b/src/formail.c
+@@ -758,9 +758,9 @@ startover:
+ lputssn(buf,buffilled),ctlength-=buffilled,buffilled=lnl=0;
+ ;{ int tbl=buflast,lwr='\n';
+ while(--ctlength>=0&&tbl!=EOF) /* skip Content-Length: bytes */
+- lnl=lwr==tbl&&lwr=='\n',putcs(lwr=tbl),tbl=getchar();
++ lnl=lwr==tbl&&lwr=='\n',lputcs(lwr=tbl),tbl=getchar();
+ if((buflast=tbl)=='\n'&&lwr!=tbl) /* just before a line break? */
+- putcs('\n'),buflast=getchar(); /* wrap up loose end */
++ lputcs('\n'),buflast=getchar(); /* wrap up loose end */
+ }
+ if(!quiet&&ctlength>0)
+ { charNUM(num,ctlength);
+@@ -819,7 +819,7 @@ splitit: { if(!lnl) /* did the previous mail end with an empty line? */
+ { if(split) /* gobble up the next start separator */
+ { buffilled=0;
+ #ifdef sMAILBOX_SEPARATOR
+- getline();buffilled=0; /* but only if it's defined */
++ get_line();buffilled=0; /* but only if it's defined */
+ #endif
+ if(buflast!=EOF) /* if any */
+ goto splitit;
+diff --git a/src/formisc.c b/src/formisc.c
+index d6cab90..338733b 100644
+--- a/src/formisc.c
++++ b/src/formisc.c
+@@ -115,7 +115,7 @@ void loadchar(c)const int c; /* append one character to buf */
+ buf[buffilled++]=c;
+ }
+
+-int getline P((void)) /* read a newline-terminated line */
++int get_line P((void)) /* read a newline-terminated line */
+ { if(buflast==EOF) /* at the end of our Latin already? */
+ { loadchar('\n'); /* fake empty line */
+ return EOF; /* spread the word */
+diff --git a/src/formisc.h b/src/formisc.h
+index 1c4ca20..f25211c 100644
+--- a/src/formisc.h
++++ b/src/formisc.h
+@@ -17,4 +17,4 @@ void
+ char*
+ skipwords P((char*start));
+ int
+- getline P((void));
++ get_line P((void));
+diff --git a/src/mailfold.c b/src/mailfold.c
+index 917b502..6c8bcf4 100644
+--- a/src/mailfold.c
++++ b/src/mailfold.c
+@@ -30,6 +30,7 @@ static /*const*/char rcsid[]=
+
+ int logopened,rawnonl;
+ off_t lasttell;
++static int trunced;
+ static long lastdump;
+ static volatile int mailread; /* if the mail is completely read in already */
+ static struct dyna_array confield; /* escapes, concatenations */
+@@ -81,6 +82,7 @@ long dump(s,type,source,len)const int s,type;const char*source;
+ long len;
+ { int i;long part;
+ lasttell=i= -1;SETerrno(EBADF);
++ trunced=0;
+ if(s>=0)
+ { if(ft_lock(type)&&(lseek(s,(off_t)0,SEEK_END),fdlock(s)))
+ nlog("Kernel-lock failed\n");
+@@ -120,13 +122,18 @@ jin: while(part&&(i=rwrite(s,source,BLKSIZ<part?BLKSIZ:(int)part)))
+ }
+ writefin:
+ i=type!=ft_PIPE&&fsync(s)&&errno!=EINVAL; /* EINVAL => wasn't a file */
++ if ((i||len)&&lasttell>=0)
++ { int serrno=errno;
++ if(!ftruncate(s,lasttell)) trunced=1;
++ SETerrno(serrno);
++ }
+ if(ft_lock(type))
+ { int serrno=errno; /* save any error information */
+ if(fdunlock())
+ nlog("Kernel-unlock failed\n");
+ SETerrno(serrno);
+ }
+- i=rclose(s)||i;
++ i=rclose(s)||i; /* if this fails, we should truncate, but it's too late */
+ } /* return an error even if nothing was to be sent */
+ return i&&!len?-1:len;
+ }
+@@ -237,7 +244,7 @@ dumpf: { switch(errno)
+ #endif
+ default:writeerr(buf);
+ }
+- if(lasttell>=0&&!truncate(boxname,lasttell)&&(logopened||verbose))
++ if(lasttell>=0&&trunced&&(logopened||verbose))
+ nlog("Truncated file to former size\n"); /* undo garbage */
+ ret0: return 0;
+ }
+@@ -378,7 +385,8 @@ void readmail(rhead,tobesent)const long tobesent;
+ dfilled=mailread=0;
+ else if(rhead) /* only read in a new header */
+ { memblk new;
+- dfilled=mailread=0;makeblock(&new,0);readdyn(&new,&dfilled,0);
++ dfilled=mailread=0;makeblock(&new,0);
++ readdyn(&new,&dfilled,thebody-themail.p);
+ if(tobesent>dfilled&&isprivate) /* put it in place here */
+ { tmemmove(themail.p+dfilled,thebody,filled-=tobesent);
+ tmemmove(themail.p,new.p,dfilled);
+diff --git a/src/manconf.c b/src/manconf.c
+index a9e9f1c..5c8ec36 100644
+--- a/src/manconf.c
++++ b/src/manconf.c
+@@ -233,7 +233,7 @@ a security violation was found (e.g. \1.B \2-@PRESERVOPT@\1or variable\
+ \2-@PRESERVOPT@\1and\1.BR \2-@FROMWHOPT@ .\1");
+ pc("LMTPOPT",LMTPOPT);
+ #else
+- ps("LMTPOPTdesc","");ps("LMTPusage","");
++ ps("LMTPOPTdesc","");ps("LMTPusage","\1");
+ #endif
+ pname("INIT_UMASK",0);printf("0%lo/g\n",(unsigned long)INIT_UMASK);lines--;
+ pn("DEFlinebuf",DEFlinebuf);
+diff --git a/src/memblk.c b/src/memblk.c
+index e2f13f0..97e02d3 100644
+--- a/src/memblk.c
++++ b/src/memblk.c
+@@ -51,11 +51,11 @@ void lockblock(mb)memblk*const mb;
+ {
+ #ifdef USE_MMAP
+ if(mb->fd>=0)
+- { long len=mb->len+1;
+- if(munmap(mb->p,len))
+- mmapfailed(len); /* don't want to continue here */
+- if((mb->p=mmap(0,len,PROT_READ,MAP_PRIVATE,mb->fd,(off_t)0))==MAP_FAILED)
+- mmapfailed(len);
++ { long mlen=mb->len+1;
++ if(munmap(mb->p,mlen))
++ mmapfailed(mlen); /* don't want to continue here */
++ if((mb->p=mmap(0,mlen,PROT_READ,MAP_PRIVATE,mb->fd,(off_t)0))==MAP_FAILED)
++ mmapfailed(mlen);
+ close(mb->fd);
+ mb->fd=ropen(devnull,O_RDWR,0); /* XXX Perhaps -1 is better? */
+ }
+@@ -77,8 +77,8 @@ int resizeblock(mb,len,nonfatal)memblk*const mb;const long len;
+ strcpy(filename,MMAP_DIR);
+ if(unique(filename,strchr(filename,'\0'),MMAP_FILE_LEN,MMAP_PERM,0,0)&&
+ (mb->fd=ropen(filename,O_RDWR,MMAP_PERM),unlink(filename),mb->fd>=0))
+- { mb->filelen=len;
+- if(lseek(mb->fd,mb->filelen-1,SEEK_SET)<0||1!=rwrite(mb->fd,empty,1))
++ { mb->filelen=len+1;
++ if(lseek(mb->fd,len,SEEK_SET)<0||1!=rwrite(mb->fd,empty,1))
+ dropf: { close(mb->fd);mb->fd= -1;
+ if(verbose)nlog("Unable to extend or use tempfile");
+ }
+@@ -98,9 +98,9 @@ dropf: { close(mb->fd);mb->fd= -1;
+ }
+ }
+ if(mb->fd>=0)
+- { if(len>mb->filelen) /* need to extend? */
+- { mb->filelen=len;
+- if(lseek(mb->fd,mb->filelen-1,SEEK_SET)<0||1!=rwrite(mb->fd,empty,1))
++ { if(len>=mb->filelen) /* need to extend? */
++ { mb->filelen=len+1;
++ if(lseek(mb->fd,len,SEEK_SET)<0||1!=rwrite(mb->fd,empty,1))
+ { char*p=malloc(len+1); /* can't extend, switch to malloc */
+ tmemmove(p,mb->p,mb->len);
+ munmap(mb->p,mb->len+1);
+@@ -124,9 +124,9 @@ mmap: if((mb->p=mmap(0,len+1,P_RW,MAP_SHARED,mb->fd,(off_t)0))==MAP_FAILED)
+ }
+ else
+ mb->p=realloc(mb->p,len+1);
+- mb->len=len+1;
+- mb->p[len]='\0';
++ mb->len=len;
+ ret1:
++ mb->p[len]='\0';
+ return 1;
+ }
+
+diff --git a/src/memblk.h b/src/memblk.h
+index 6fd1d1d..b57f369 100644
+--- a/src/memblk.h
++++ b/src/memblk.h
+@@ -1,6 +1,6 @@
+ typedef struct memblk {
+ char*p; /* where it starts */
+- long len; /* currently allocated size */
++ long len; /* current size, not including trailing NUL */
+ #ifdef USE_MMAP
+ off_t filelen; /* how long is the file */
+ int fd; /* file which is mmap()ed */
+diff --git a/src/network.h b/src/network.h
+index d7d08f2..b09b6c4 100644
+--- a/src/network.h
++++ b/src/network.h
+@@ -1,19 +1,13 @@
+ /*$Id: network.h,v 1.7 1997/04/02 03:15:41 srb Exp $*/
+
+-#include <sys/socket.h> /* socket() sendto() AF_INET
++#include <sys/socket.h> /* socket() sendto() */
+ /* SOCK_DGRAM */
+-#include <netdb.h> /* gethostbyname() getservbyname()
+- /* getprotobyname() */
+-#include <netinet/in.h> /* htons() struct sockaddr_in */
++#include <netdb.h> /* getaddrinfo() */
+
+ #ifndef BIFF_serviceport
+ #define BIFF_serviceport COMSATservice
+ #endif
+
+-#ifndef h_0addr_list
+-#define h_0addr_list h_addr_list[0] /* POSIX struct member */
+-#endif
+-
+ #ifndef NO_const /* since network.h is outside the autoconf const check */
+ #ifdef const /* loop, we need this backcheck for some systems */
+ #undef const
+diff --git a/src/pipes.c b/src/pipes.c
+index 1fdb9e6..7754300 100644
+--- a/src/pipes.c
++++ b/src/pipes.c
+@@ -145,7 +145,9 @@ int pipthrough(line,source,len)char*line,*source;const long len;
+ if(Stdout)
+ { *(eq=strchr(Stdout,'\0')-1)='\0'; /* chop the '=' */
+ if(!(backblock=getenv(Stdout))) /* no current value? */
+- PRDB=PWRB= -1;
++ { PRDB=PWRB= -1;
++ backlen=0;
++ }
+ else
+ { backlen=strlen(backblock);
+ goto pip;
+@@ -155,9 +157,7 @@ int pipthrough(line,source,len)char*line,*source;const long len;
+ pip: rpipe(pbackfd);
+ rpipe(pinfd); /* main pipes setup */
+ if(!(pidchild=sfork())) /* create a sending procmail */
+- { if(Stdout&&backblock)
+- backlen=strlen(backblock);
+- else
++ { if(!Stdout)
+ backblock=source,backlen=len;
+ childsetup();rclose(PRDI);rclose(PRDB);
+ rpipe(poutfd);rclose(STDOUT);
+@@ -194,7 +194,7 @@ perr: progerr(line,excode,pwait==4); /* I'm going to tell my mommy! */
+ makeblock(&temp,Stdfilled);
+ tmemmove(temp.p,Stdout,Stdfilled);
+ readdyn(&temp,&Stdfilled,Stdfilled+backlen+1);
+- Stdout=realloc(Stdout,&Stdfilled+1);
++ Stdout=realloc(Stdout,Stdfilled+1);
+ tmemmove(Stdout,temp.p,Stdfilled+1);
+ freeblock(&temp);
+ retStdout(Stdout,pwait&&pipw,!backblock);
+diff --git a/src/procmail.c b/src/procmail.c
+index 4a232f2..2bb449b 100644
+--- a/src/procmail.c
++++ b/src/procmail.c
+@@ -652,8 +652,7 @@ commint:do skipspace(); /* skip whitespace */
+ nrcond= -1;
+ if(tolock) /* clear temporary buffer for lockfile name */
+ free(tolock);
+- for(i=maxindex(flags);i;i--) /* clear the flags */
+- flags[i]=0;
++ bbzero(flags,sizeof(flags)); /* clear the flags */
+ for(tolock=0,locknext=0;;)
+ { chp=skpspace(chp);
+ switch(i= *chp++)
+diff --git a/src/recommend.c b/src/recommend.c
+index 5d41e01..9002268 100644
+--- a/src/recommend.c
++++ b/src/recommend.c
+@@ -47,7 +47,7 @@ int main(argc,argv)const int argc;const char*const argv[];
+ printf("chmod %lo %s\n",(unsigned long)(sgid|PERMIS),argv[2]);
+ else if(chmdir==1)
+ goto nogchmod;
+- if(chmdir)
++ if(0)
+ printf("chmod %c+w %s/.\n",chmdir==1?'g':'a',mailspooldir);
+ nogchmod:
+ return EXIT_SUCCESS;
+--
+1.8.4.2
+
diff --git a/meta-openembedded/meta-oe/recipes-support/procmail/procmail/from-debian-to-fix-man-file.patch b/meta-openembedded/meta-oe/recipes-support/procmail/procmail/from-debian-to-fix-man-file.patch
new file mode 100644
index 000000000..7b3c643b2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/procmail/procmail/from-debian-to-fix-man-file.patch
@@ -0,0 +1,83 @@
+From 3cbc5e6e624235f9ba40cfd5a2b18c11be371399 Mon Sep 17 00:00:00 2001
+From: Li xin <lixin.fnst@cn.fujitsu.com>
+Date: Tue, 2 Dec 2014 07:02:01 +0900
+Subject: [PATCH 2/3] From debian to fix man file
+
+Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
+---
+ man/procmail.man | 24 +++++++++++++++++-------
+ man/procmailrc.man | 2 +-
+ 2 files changed, 18 insertions(+), 8 deletions(-)
+
+diff --git a/man/procmail.man b/man/procmail.man
+index 175043a..1274ce8 100644
+--- a/man/procmail.man
++++ b/man/procmail.man
+@@ -44,11 +44,11 @@ at the end.
+ should be invoked automatically over the
+ .B @DOT_FORWARD@
+ file mechanism as soon as mail arrives. Alternatively, when installed by
+-a system administrator, it can be invoked from within the mailer immediately.
+-When invoked, it first sets some environment variables to default values,
+-reads the mail message from stdin until an EOF, separates the body from the
+-header, and then, if no command line arguments are present, it starts to look
+-for a file named
++a system administrator (and in the standard Red Hat Linux configuration), it
++can be invoked from within the mailer immediately. When invoked, it
++first sets some environment variables to default values, reads the mail message from
++stdin until an EOF, separates the body from the header, and then, if no command line
++arguments are present, it starts to look for a file named
+ .BR @PROCMAILRC@ .
+ According to the processing recipes in this file,
+ the mail message that just arrived gets distributed into the right folder
+@@ -166,7 +166,8 @@ must be specified on the command line. After the rcfile, procmail will
+ accept an unlimited number of arguments.@ETCRCS_desc@
+ For some advanced usage of this option you should look in the
+ .B EXAMPLES
+-section below.@LMTPOPTdesc@.SH ARGUMENTS
++section below.@LMTPOPTdesc@
++.SH ARGUMENTS
+ Any arguments containing an '=' are considered to be environment variable
+ assignments, they will
+ .I all
+@@ -723,6 +724,15 @@ path.@FW_comment@
+ .fi
+ .ad
+ .PP
++Some mailers (notably exim) do not currently accept the above syntax.
++In such case use this instead:
++.PP
++.na
++.nf
++|/usr/bin/procmail
++.fi
++.ad
++.PP
+ Procmail can also be invoked to postprocess an already filled system
+ mailbox. This can be useful if you don't want to or can't use a
+ $HOME/@DOT_FORWARD@ file (in which case the following script could
+@@ -754,7 +764,7 @@ exit 0
+ .SS "A sample small @PROCMAILRC@:"
+ .na
+ .nf
+-PATH=/bin:/usr/bin:@BINDIR@
++PATH=/usr/local/bin:/usr/bin:/bin
+ MAILDIR=$HOME/Mail #you'd better make sure it exists
+ DEFAULT=$MAILDIR/mbox #completely optional
+ LOGFILE=$MAILDIR/from #recommended
+diff --git a/man/procmailrc.man b/man/procmailrc.man
+index 472035f..7bf08dd 100644
+--- a/man/procmailrc.man
++++ b/man/procmailrc.man
+@@ -779,7 +779,7 @@ one trailing newline will be stripped.
+ .PP
+ Some non-optimal and non-obvious regexps set MATCH to an incorrect
+ value. The regexp can be made to work by removing one or more unneeded
+-'*', '+', or '?' operator on the left-hand side of the \e/ token.
++\&'*', '+', or '?' operator on the left-hand side of the \e/ token.
+ .SH MISCELLANEOUS
+ If the regular expression contains `\fB@TO_key@\fP' it will be substituted by
+ .na
+--
+1.8.4.2
+
diff --git a/meta-openembedded/meta-oe/recipes-support/procmail/procmail/from-debian-to-modify-parameters.patch b/meta-openembedded/meta-oe/recipes-support/procmail/procmail/from-debian-to-modify-parameters.patch
new file mode 100644
index 000000000..a94e43670
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/procmail/procmail/from-debian-to-modify-parameters.patch
@@ -0,0 +1,127 @@
+From 95c742242769721f963c50702e1445fb70c6a45a Mon Sep 17 00:00:00 2001
+From: Li xin <lixin.fnst@cn.fujitsu.com>
+Date: Tue, 2 Dec 2014 07:07:33 +0900
+Subject: [PATCH 3/3] From debian to modify parameters
+
+Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
+---
+ Makefile | 16 ++++++++--------
+ config.h | 13 +++++++------
+ 2 files changed, 15 insertions(+), 14 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 1e9568c..9e48201 100644
+--- a/Makefile
++++ b/Makefile
+@@ -23,7 +23,7 @@ MAN5DIR = $(MANDIR)/man$(MAN5SUFFIX)
+
+ # Uncomment to install compressed man pages (possibly add extra suffix
+ # to the definitions of MAN?DIR and/or MAN?SUFFIX by hand)
+-#MANCOMPRESS = compress
++# MANCOMPRESS = compress
+
+ ############################*#
+ # Things that can be made are:
+@@ -55,7 +55,7 @@ MAN5DIR = $(MANDIR)/man$(MAN5SUFFIX)
+
+ LOCKINGTEST=__defaults__
+
+-#LOCKINGTEST=/tmp . # Uncomment and add any directories you see fit.
++LOCKINGTEST=/tmp . # Uncomment and add any directories you see fit.
+ # If LOCKINGTEST is defined, autoconf will NOT
+ # prompt you to enter additional directories.
+ # See INSTALL for more information about the
+@@ -65,7 +65,7 @@ LOCKINGTEST=__defaults__
+ # Only edit below this line if you *think* you know what you are doing #
+ ########################################################################
+
+-#LOCKINGTEST=100 # Uncomment (and change) if you think you know
++LOCKINGTEST=100 # Uncomment (and change) if you think you know
+ # it better than the autoconf lockingtests.
+ # This will cause the lockingtests to be hotwired.
+ # 100 to enable fcntl()
+@@ -74,20 +74,20 @@ LOCKINGTEST=__defaults__
+ # Or them together to get the desired combination.
+
+ # Optional system libraries we search for
+-SEARCHLIBS = -lm -ldir -lx -lsocket -lnet -linet -lnsl_s -lnsl_i -lnsl -lsun \
+- -lgen -lsockdns -ldl
++SEARCHLIBS = -lm -ldir -lx -lsocket -lnet -linet -lnsl_s -lnsl_i -lsun \
++ -lgen -lsockdns
+ # -lresolv # not really needed, is it?
+
+ # Informal list of directories where we look for the libraries in SEARCHLIBS
+-LIBPATHS=/lib /usr/lib /usr/local/lib
++LIBPATHS=/lib /usr/lib
+
+ GCC_WARNINGS = -O2 -pedantic -Wreturn-type -Wunused -Wformat -Wtraditional \
+ -Wpointer-arith -Wconversion -Waggregate-return \
+ #-Wimplicit -Wshadow -Wid-clash-6 #-Wuninitialized
+
+ # The place to put your favourite extra cc flag
+-CFLAGS0 = -O #$(GCC_WARNINGS)
+-LDFLAGS0= -s
++CFLAGS0 = $(RPM_OPT_FLAGS) #$(GCC_WARNINGS)
++LDFLAGS0=
+ # Read my libs :-)
+ LIBS=
+
+diff --git a/config.h b/config.h
+index c4135a9..a07453f 100644
+--- a/config.h
++++ b/config.h
+@@ -35,7 +35,8 @@
+ */
+ /*#define DEFSPATH "PATH=/bin:/usr/bin" /* */
+ /*#define DEFPATH "PATH=$HOME/bin:/bin:/usr/bin" /* */
+-
++#define DEFPATH "PATH=$HOME/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin" /* */
++
+ /* every environment variable appearing in PRESTENV will be set or wiped
+ * out of the environment (variables without an '=' sign will be thrown
+ * out), e.g. you could define PRESTENV as follows:
+@@ -46,13 +47,13 @@
+ */
+ #define PRESTENV {"IFS","ENV","PWD",0}
+
+-/*#define GROUP_PER_USER /* uncomment this if each
++#define GROUP_PER_USER /* uncomment this if each
+ user has his or her own
+ group and procmail can therefore trust a $HOME/.procmailrc that
+ is group writable or contained in a group writable home directory
+ if the group involved is the user's default group. */
+
+-/*#define LMTP /* uncomment this if you
++#define LMTP /* uncomment this if you
+ want to use procmail
+ as an LMTP (rfc2033) server, presumably for invocation by an MTA.
+ The file examples/local_procmail_lmtp.m4 contains info on how to
+@@ -79,7 +80,7 @@
+
+ /*#define NO_fcntl_LOCK /* uncomment any of these three if you */
+ /*#define NO_lockf_LOCK /* definitely do not want procmail to make */
+-/*#define NO_flock_LOCK /* use of those kernel-locking methods */
++#define NO_flock_LOCK /* use of those kernel-locking methods */
+ /* If you set LOCKINGTEST to a binary number
+ than there's no need to set these. These #defines are only useful
+ if you want to disable particular locking styles but are unsure which
+@@ -91,14 +92,14 @@
+ restriction does not apply to the /etc/procmailrc and
+ /etc/procmailrcs files) */
+
+-/*#define NO_NFS_ATIME_HACK /* uncomment if you're definitely not using
++#define NO_NFS_ATIME_HACK /* uncomment if you're definitely not using
+ NFS mounted filesystems and can't afford
+ procmail to sleep for 1 sec. before writing to an empty regular
+ mailbox. This lets programs correctly judge whether there is unread
+ mail present. procmail automatically suppresses this when it isn't
+ needed or under heavy load. */
+
+-/*#define DEFsendmail "/usr/sbin/sendmail" /* uncomment and/or change if
++#define DEFsendmail "/usr/sbin/sendmail" /* uncomment and/or change if
+ the autoconfigured default
+ SENDMAIL is not suitable. This program should quack like a sendmail:
+ it should accept the -oi flag (to tell it to _not_ treat a line
+--
+1.8.4.2
+
diff --git a/meta-openembedded/meta-oe/recipes-support/procmail/procmail/man-file-mailstat.1-from-debian.patch b/meta-openembedded/meta-oe/recipes-support/procmail/procmail/man-file-mailstat.1-from-debian.patch
new file mode 100644
index 000000000..46d973e06
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/procmail/procmail/man-file-mailstat.1-from-debian.patch
@@ -0,0 +1,60 @@
+From 8ac56108e5f0a72d1bec0fb4f1fa4763a2479331 Mon Sep 17 00:00:00 2001
+From: Li xin <lixin.fnst@cn.fujitsu.com>
+Date: Tue, 2 Dec 2014 06:56:14 +0900
+Subject: [PATCH] man file mailstat.1 from debian
+
+Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
+---
+ debian/mailstat.1 | 40 ++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 40 insertions(+)
+ create mode 100644 debian/mailstat.1
+
+diff --git a/debian/mailstat.1 b/debian/mailstat.1
+new file mode 100644
+index 0000000..f13265a
+--- /dev/null
++++ b/debian/mailstat.1
+@@ -0,0 +1,40 @@
++.TH MAILSTAT 1
++.SH NAME
++mailstat \- shows mail-arrival statistics
++.SH SYNOPSIS
++.B mailstat
++[\-klmots] [logfile]
++.SH DESCRIPTION
++.B mailstat
++parses a procmail-generated $LOGFILE and displays
++a summary about the messages delivered to all folders
++(total size, average size, nr of messages).
++The $LOGFILE is truncated to zero length, unless the
++.B -k
++option is used.
++Exit code 0 if mail arrived, 1 if no mail arrived.
++.SH OPTIONS
++.TP
++.I \-k
++keep logfile intact
++.TP
++.I \-l
++long display format
++.TP
++.I \-m
++merge any errors into one line
++.TP
++.I \-o
++use the old logfile
++.TP
++.I \-t
++terse display format
++.TP
++.I \-s
++silent in case of no mail
++.SH NOTES
++Customise to your heart's content, this program is only provided as a
++guideline.
++.SH AUTHOR
++This manual page was written by Santiago Vila <sanvila@debian.org>
++for the Debian GNU/Linux distribution (but may be used by others).
+--
+1.8.4.2
+
diff --git a/meta-openembedded/meta-oe/recipes-support/procmail/procmail_3.22.bb b/meta-openembedded/meta-oe/recipes-support/procmail/procmail_3.22.bb
new file mode 100644
index 000000000..aa474ceb1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/procmail/procmail_3.22.bb
@@ -0,0 +1,45 @@
+SUMMARY = "Mail processing program"
+DESCRIPTION = "Procmail can be used to create mail-servers, mailing lists, sort your\
+incoming mail into separate folders/files (real convenient when subscribing\
+to one or more mailing lists or for prioritising your mail), preprocess\
+your mail, start any programs upon mail arrival (e.g. to generate different\
+chimes on your workstation for different types of mail) or selectively\
+forward certain incoming mail automatically to someone."
+HOMEPAGE = "http://www.procmail.org/"
+SECTION = "Applications/System"
+
+SRC_URI = "http://www.ring.gr.jp/archives/net/mail/${BPN}/${BP}.tar.gz \
+ file://from-debian-to-fix-compile-errors.patch \
+ file://from-debian-to-modify-parameters.patch \
+ file://from-debian-to-fix-man-file.patch \
+ file://man-file-mailstat.1-from-debian.patch"
+SRC_URI[md5sum] = "1678ea99b973eb77eda4ecf6acae53f1"
+SRC_URI[sha256sum] = "087c75b34dd33d8b9df5afe9e42801c9395f4bf373a784d9bc97153b0062e117"
+
+LICENSE = "GPL-2.0 & Artistic-1.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a71e50e197a992c862379e576e669757 \
+ file://Artistic;md5=505e00d03c3428cde21b17b2a386590e"
+
+DEPENDS = "libnet"
+inherit autotools-brokensep
+do_configure() {
+ find examples -type f | xargs chmod 644
+ export CC="${BUILD_CC}"
+ export LD="${BUILD_LD}"
+ export CFLAGS="${BUILD_CFLAGS}"
+ export AR="${BUILD_AR}"
+ export AS="${BUILD_AS}"
+ make TARGET_CFLAGS="$TARGET_CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" LDFLAGS0="${LDFLAGS}" autoconf.h
+}
+
+do_compile() {
+ oe_runmake -i TARGET_CFLAGS="$TARGET_CFLAGS -Wno-comments -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" LDFLAGS0="${LDFLAGS}"
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install -d ${D}${mandir}/man1
+ install -d ${D}${mandir}/man5
+ oe_runmake -i BASENAME=${D}/usr MANDIR=${D}${mandir} install
+ install -m 0644 debian/mailstat.1 ${D}${mandir}/man1
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/pv/pv_1.5.3.bb b/meta-openembedded/meta-oe/recipes-support/pv/pv_1.5.3.bb
new file mode 100644
index 000000000..5e3dd67c5
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pv/pv_1.5.3.bb
@@ -0,0 +1,11 @@
+SUMMARY = "Terminal-based tool for monitoring the progress of data through a pipeline"
+
+LICENSE = "Artistic-2.0"
+LIC_FILES_CHKSUM = "file://doc/COPYING;md5=9c50db2589ee3ef10a9b7b2e50ce1d02"
+
+SRC_URI = "http://www.ivarch.com/programs/sources/pv-${PV}.tar.bz2"
+SRC_URI[md5sum] = "efe8e9e4cad5f3264a32258a63bf2c8e"
+SRC_URI[sha256sum] = "76f3999b1c3b3027163dce6ef667cdf8dafb75218ee25e54a03bfe590478f90e"
+
+inherit autotools
+
diff --git a/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/Makefile b/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/Makefile
new file mode 100644
index 000000000..00b7d5262
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/Makefile
@@ -0,0 +1,3 @@
+
+
+all: pxaregs
diff --git a/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/i2c.patch b/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/i2c.patch
new file mode 100644
index 000000000..36983ec47
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/i2c.patch
@@ -0,0 +1,15 @@
+Index: pxaregs-1.14/pxaregs.c
+===================================================================
+--- pxaregs-1.14.orig/pxaregs.c
++++ pxaregs-1.14/pxaregs.c
+@@ -21,10 +21,6 @@
+ #include <fcntl.h>
+ #include <ctype.h>
+
+-#include <linux/i2c.h>
+-#include <linux/i2c-dev.h>
+-
+-
+ // fd for /dev/mem
+ static int fd = -1;
+
diff --git a/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/munmap.patch b/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/munmap.patch
new file mode 100644
index 000000000..a9c4b95cf
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/munmap.patch
@@ -0,0 +1,22 @@
+Index: pxaregs-1.14/pxaregs.c
+===================================================================
+--- pxaregs-1.14.orig/pxaregs.c
++++ pxaregs-1.14/pxaregs.c
+@@ -1794,7 +1794,7 @@ static int getmem(u32 addr)
+ regaddr = map + (addr & MAP_MASK);
+
+ val = *(u32*) regaddr;
+- munmap(0,MAP_SIZE);
++ munmap(map,MAP_SIZE);
+
+ return val;
+ }
+@@ -1829,7 +1829,7 @@ static void putmem(u32 addr, u32 val)
+ regaddr = map + (addr & MAP_MASK);
+
+ *(u32*) regaddr = val;
+- munmap(0,MAP_SIZE);
++ munmap(map,MAP_SIZE);
+ }
+
+ static u32 lastaddr = 0;
diff --git a/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/pxaregs.c b/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/pxaregs.c
new file mode 100644
index 000000000..062e758d9
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/pxaregs.c
@@ -0,0 +1,1975 @@
+/*
+ * pxaregs - tool to display and modify PXA250's registers at runtime
+ *
+ * (c) Copyright 2002 by M&N Logistik-Lösungen Online GmbH
+ * set under the GPLv2
+ *
+ * $Id: pxaregs.c,v 1.14 2003/11/12 13:14:43 schurig Exp $
+ *
+ * Please send patches to h.schurig, working at mn-logistik.de
+ * - added fix from Bernhard Nemec
+ * - i2c registers from Stefan Eletzhofer
+*/
+
+#include <stdio.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/mman.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <ctype.h>
+
+#include <linux/i2c.h>
+#include <linux/i2c-dev.h>
+
+
+// fd for /dev/mem
+static int fd = -1;
+
+typedef unsigned int u32;
+
+struct reg_info {
+ char *name;
+ u32 addr;
+ int shift;
+ u32 mask;
+ char type;
+ char *desc;
+};
+
+
+static struct reg_info regs[] = {
+{ "IBMR", 0x40301680, 0, 0xffffffff, 'x', "I2C Bus Monitor Register" },
+{ "IBMR_SDAS", 0x40301680, 0, 0x00000001, 'x', "SDA Status" },
+{ "IBMR_SCLS", 0x40301680, 1, 0x00000001, 'x', "SDA Status" },
+
+{ "IDBR", 0x40301688, 0, 0xffffffff, 'x', "I2C Data Buffer Register" },
+{ "IDBR_IDB", 0x40301688, 0, 0x000000ff, 'x', "I2C Data Buffer" },
+
+{ "ICR", 0x40301690, 0, 0xffffffff, 'x', "I2C Control Register" },
+{ "ICR_START", 0x40301690, 0, 1, 'x', " start bit " },
+{ "ICR_STOP", 0x40301690, 1, 1, 'x', " stop bit " },
+{ "ICR_ACKNAK",0x40301690, 2, 1, 'x', " send ACK(0) or NAK(1)" },
+{ "ICR_TB", 0x40301690, 3, 1, 'x', " transfer byte bit " },
+{ "ICR_MA", 0x40301690, 4, 1, 'x', " master abort " },
+{ "ICR_SCLE", 0x40301690, 5, 1, 'x', " master clock enable " },
+{ "ICR_IUE", 0x40301690, 6, 1, 'x', " unit enable " },
+{ "ICR_GCD", 0x40301690, 7, 1, 'x', " general call disable " },
+{ "ICR_ITEIE", 0x40301690, 8, 1, 'x', " enable tx interrupts " },
+{ "ICR_IRFIE", 0x40301690, 9, 1, 'x', " enable rx interrupts " },
+{ "ICR_BEIE", 0x40301690, 10, 1, 'x', " enable bus error ints " },
+{ "ICR_SSDIE", 0x40301690, 11, 1, 'x', " slave STOP detected int enable " },
+{ "ICR_ALDIE", 0x40301690, 12, 1, 'x', " enable arbitration interrupt " },
+{ "ICR_SADIE", 0x40301690, 13, 1, 'x', " slave address detected int enable " },
+{ "ICR_UR", 0x40301690, 14, 1, 'x', " unit reset " },
+{ "ICR_FM", 0x40301690, 15, 1, 'x', " fast mode " },
+
+{ "ISR", 0x40301698, 0, 0xffffffff, 'x', "I2C Status Register" },
+{ "ISR_RWM", 0x40301698, 0, 1, 'x', " read/write mode " },
+{ "ISR_ACKNAK",0x40301698, 1, 1, 'x', " ack/nak status " },
+{ "ISR_UB", 0x40301698, 2, 1, 'x', " unit busy " },
+{ "ISR_IBB", 0x40301698, 3, 1, 'x', " bus busy " },
+{ "ISR_SSD", 0x40301698, 4, 1, 'x', " slave stop detected " },
+{ "ISR_ALD", 0x40301698, 5, 1, 'x', " arbitration loss detected " },
+{ "ISR_ITE", 0x40301698, 6, 1, 'x', " tx buffer empty " },
+{ "ISR_IRF", 0x40301698, 7, 1, 'x', " rx buffer full " },
+{ "ISR_GCAD", 0x40301698, 8, 1, 'x', " general call address detected " },
+{ "ISR_SAD", 0x40301698, 9, 1, 'x', " slave address detected " },
+{ "ISR_BED", 0x40301698, 10, 1, 'x', " bus error no ACK/NAK " },
+
+{ "ISAR", 0x403016A0, 0, 0xffffffff, 'x', "I2C Slave Address Register" },
+{ "ISAR_SA", 0x403016A0, 0, 0x0000007f, 'x', "I2C Slave Address" },
+
+{ "PMCR", 0x40F00000, 0, 0xffffffff, 'x', "Power Manager Control Register (3-23)" },
+{ "PMCR_IDAE", 0x40F00000, 0, 0x00000001, 'd', "PM imprecise data abort abort signal" },
+
+{ "PSSR", 0x40F00004, 0, 0xffffffff, 'x', "Power Manager Sleep Status Register (3-29)" },
+{ "PSSR_SSS", 0x40F00004, 0, 0x00000001, 'd', "PM chip was in sleep by setting sleep mode bit" },
+{ "PSSR_BFS", 0x40F00004, 1, 0x00000001, 'd', "PM nBATT_FAULT has been asserted" },
+{ "PSSR_VFS", 0x40F00004, 2, 0x00000001, 'd', "PM nVDD_FAULT was asserted while in Run or Idle" },
+{ "PSSR_PH", 0x40F00004, 4, 0x00000001, 'd', "PM GPIO pins are held in their sleep state" },
+{ "PSSR_RDH", 0x40F00004, 5, 0x00000001, 'd', "PM receivers of all input GPIO are disabled" },
+
+{ "PSPR", 0x40F00008, 0, 0xffffffff, 'x', "Power Manager Scratch Pad Register (3-30)" },
+
+{ "PWER", 0x40F0000C, 0, 0xffffffff, 'x', "Power Manager Wake-Up Enable Register (3-25)" },
+{ "PWER_WE0", 0x40F0000C, 0, 0x00000001, 'd', "PM wake up due to GPIO 0 edge detect enabled" },
+{ "PWER_WE1", 0x40F0000C, 1, 0x00000001, 'd', "PM wake up due to GPIO 1 edge detect enabled" },
+{ "PWER_WE2", 0x40F0000C, 2, 0x00000001, 'd', "PM wake up due to GPIO 2 edge detect enabled" },
+{ "PWER_WE3", 0x40F0000C, 3, 0x00000001, 'd', "PM wake up due to GPIO 3 edge detect enabled" },
+{ "PWER_WE4", 0x40F0000C, 4, 0x00000001, 'd', "PM wake up due to GPIO 4 edge detect enabled" },
+{ "PWER_WE5", 0x40F0000C, 5, 0x00000001, 'd', "PM wake up due to GPIO 5 edge detect enabled" },
+{ "PWER_WE6", 0x40F0000C, 6, 0x00000001, 'd', "PM wake up due to GPIO 6 edge detect enabled" },
+{ "PWER_WE7", 0x40F0000C, 7, 0x00000001, 'd', "PM wake up due to GPIO 7 edge detect enabled" },
+{ "PWER_WE8", 0x40F0000C, 8, 0x00000001, 'd', "PM wake up due to GPIO 8 edge detect enabled" },
+{ "PWER_WE9", 0x40F0000C, 9, 0x00000001, 'd', "PM wake up due to GPIO 9 edge detect enabled" },
+{ "PWER_WE10", 0x40F0000C, 10, 0x00000001, 'd', "PM wake up due to GPIO10 edge detect enabled" },
+{ "PWER_WE11", 0x40F0000C, 11, 0x00000001, 'd', "PM wake up due to GPIO11 edge detect enabled" },
+{ "PWER_WE12", 0x40F0000C, 12, 0x00000001, 'd', "PM wake up due to GPIO12 edge detect enabled" },
+{ "PWER_WE13", 0x40F0000C, 13, 0x00000001, 'd', "PM wake up due to GPIO13 edge detect enabled" },
+{ "PWER_WE14", 0x40F0000C, 14, 0x00000001, 'd', "PM wake up due to GPIO14 edge detect enabled" },
+{ "PWER_WE15", 0x40F0000C, 15, 0x00000001, 'd', "PM wake up due to GPIO15 edge detect enabled" },
+{ "PWER_WERTC",0x40F0000C, 31, 0x00000001, 'd', "PM wake up due to RTC alarm enabled" },
+
+{ "PRER", 0x40F00010, 0, 0xffffffff, 'x', "Power Manager Rising Edge Detect Enable Register (3-26)" },
+{ "PRER_RE0", 0x40F00010, 0, 0x00000001, 'd', "PM wake up due to GPIO 0 rising edge detect enabled" },
+{ "PRER_RE1", 0x40F00010, 1, 0x00000001, 'd', "PM wake up due to GPIO 1 rising edge detect enabled" },
+{ "PRER_RE2", 0x40F00010, 2, 0x00000001, 'd', "PM wake up due to GPIO 2 rising edge detect enabled" },
+{ "PRER_RE3", 0x40F00010, 3, 0x00000001, 'd', "PM wake up due to GPIO 3 rising edge detect enabled" },
+{ "PRER_RE4", 0x40F00010, 4, 0x00000001, 'd', "PM wake up due to GPIO 4 rising edge detect enabled" },
+{ "PRER_RE5", 0x40F00010, 5, 0x00000001, 'd', "PM wake up due to GPIO 5 rising edge detect enabled" },
+{ "PRER_RE6", 0x40F00010, 6, 0x00000001, 'd', "PM wake up due to GPIO 6 rising edge detect enabled" },
+{ "PRER_RE7", 0x40F00010, 7, 0x00000001, 'd', "PM wake up due to GPIO 7 rising edge detect enabled" },
+{ "PRER_RE8", 0x40F00010, 8, 0x00000001, 'd', "PM wake up due to GPIO 8 rising edge detect enabled" },
+{ "PRER_RE9", 0x40F00010, 9, 0x00000001, 'd', "PM wake up due to GPIO 9 rising edge detect enabled" },
+{ "PRER_RE10", 0x40F00010, 10, 0x00000001, 'd', "PM wake up due to GPIO10 rising edge detect enabled" },
+{ "PRER_RE11", 0x40F00010, 11, 0x00000001, 'd', "PM wake up due to GPIO11 rising edge detect enabled" },
+{ "PRER_RE12", 0x40F00010, 12, 0x00000001, 'd', "PM wake up due to GPIO12 rising edge detect enabled" },
+{ "PRER_RE13", 0x40F00010, 13, 0x00000001, 'd', "PM wake up due to GPIO13 rising edge detect enabled" },
+{ "PRER_RE14", 0x40F00010, 14, 0x00000001, 'd', "PM wake up due to GPIO14 rising edge detect enabled" },
+{ "PRER_RE15", 0x40F00010, 15, 0x00000001, 'd', "PM wake up due to GPIO15 rising edge detect enabled" },
+
+{ "PFER", 0x40F00014, 0, 0xffffffff, 'x', "Power Manager Falling Detect Enable Register (3-27)" },
+{ "PFER_FE0", 0x40F00014, 0, 0x00000001, 'd', "PM wake up due to GPIO 0 falling edge detect enabled" },
+{ "PFER_FE1", 0x40F00014, 1, 0x00000001, 'd', "PM wake up due to GPIO 1 falling edge detect enabled" },
+{ "PFER_FE2", 0x40F00014, 2, 0x00000001, 'd', "PM wake up due to GPIO 2 falling edge detect enabled" },
+{ "PFER_FE3", 0x40F00014, 3, 0x00000001, 'd', "PM wake up due to GPIO 3 falling edge detect enabled" },
+{ "PFER_FE4", 0x40F00014, 4, 0x00000001, 'd', "PM wake up due to GPIO 4 falling edge detect enabled" },
+{ "PFER_FE5", 0x40F00014, 5, 0x00000001, 'd', "PM wake up due to GPIO 5 falling edge detect enabled" },
+{ "PFER_FE6", 0x40F00014, 6, 0x00000001, 'd', "PM wake up due to GPIO 6 falling edge detect enabled" },
+{ "PFER_FE7", 0x40F00014, 7, 0x00000001, 'd', "PM wake up due to GPIO 7 falling edge detect enabled" },
+{ "PFER_FE8", 0x40F00014, 8, 0x00000001, 'd', "PM wake up due to GPIO 8 falling edge detect enabled" },
+{ "PFER_FE9", 0x40F00014, 9, 0x00000001, 'd', "PM wake up due to GPIO 9 falling edge detect enabled" },
+{ "PFER_FE10", 0x40F00014, 10, 0x00000001, 'd', "PM wake up due to GPIO10 falling edge detect enabled" },
+{ "PFER_FE11", 0x40F00014, 11, 0x00000001, 'd', "PM wake up due to GPIO11 falling edge detect enabled" },
+{ "PFER_FE12", 0x40F00014, 12, 0x00000001, 'd', "PM wake up due to GPIO12 falling edge detect enabled" },
+{ "PFER_FE13", 0x40F00014, 13, 0x00000001, 'd', "PM wake up due to GPIO13 falling edge detect enabled" },
+{ "PFER_FE14", 0x40F00014, 14, 0x00000001, 'd', "PM wake up due to GPIO14 falling edge detect enabled" },
+{ "PFER_FE15", 0x40F00014, 15, 0x00000001, 'd', "PM wake up due to GPIO15 falling edge detect enabled" },
+
+{ "PEDR", 0x40F00018, 0, 0xffffffff, 'x', "Power Manager Edge Detect Status Register (3-28)" },
+{ "PEDR_ED0", 0x40F00018, 0, 0x00000001, 'd', "PM wake up due to edge on GPIO 0 detected" },
+{ "PEDR_ED1", 0x40F00018, 1, 0x00000001, 'd', "PM wake up due to edge on GPIO 1 detected" },
+{ "PEDR_ED2", 0x40F00018, 2, 0x00000001, 'd', "PM wake up due to edge on GPIO 2 detected" },
+{ "PEDR_ED3", 0x40F00018, 3, 0x00000001, 'd', "PM wake up due to edge on GPIO 3 detected" },
+{ "PEDR_ED4", 0x40F00018, 4, 0x00000001, 'd', "PM wake up due to edge on GPIO 4 detected" },
+{ "PEDR_ED5", 0x40F00018, 5, 0x00000001, 'd', "PM wake up due to edge on GPIO 5 detected" },
+{ "PEDR_ED6", 0x40F00018, 6, 0x00000001, 'd', "PM wake up due to edge on GPIO 6 detected" },
+{ "PEDR_ED7", 0x40F00018, 7, 0x00000001, 'd', "PM wake up due to edge on GPIO 7 detected" },
+{ "PEDR_ED8", 0x40F00018, 8, 0x00000001, 'd', "PM wake up due to edge on GPIO 8 detected" },
+{ "PEDR_ED9", 0x40F00018, 9, 0x00000001, 'd', "PM wake up due to edge on GPIO 9 detected" },
+{ "PEDR_ED10", 0x40F00018, 10, 0x00000001, 'd', "PM wake up due to edge on GPIO10 detected" },
+{ "PEDR_ED11", 0x40F00018, 11, 0x00000001, 'd', "PM wake up due to edge on GPIO11 detected" },
+{ "PEDR_ED12", 0x40F00018, 12, 0x00000001, 'd', "PM wake up due to edge on GPIO12 detected" },
+{ "PEDR_ED13", 0x40F00018, 13, 0x00000001, 'd', "PM wake up due to edge on GPIO13 detected" },
+{ "PEDR_ED14", 0x40F00018, 14, 0x00000001, 'd', "PM wake up due to edge on GPIO14 detected" },
+{ "PEDR_ED15", 0x40F00018, 15, 0x00000001, 'd', "PM wake up due to edge on GPIO15 detected" },
+
+{ "PCFR", 0x40F0001C, 0, 0xffffffff, 'x', "Power Manager General Configuration Register (3-24)" },
+{ "PCFR_OPDE", 0x40F0001C, 0, 0x00000001, 'd', "PM stop 3.6864 MHz oscillator during sleep" },
+{ "PCFR_FP", 0x40F0001C, 1, 0x00000001, 'd', "PM PCMCIA signals float during sleep" },
+{ "PCFR_FS", 0x40F0001C, 2, 0x00000001, 'd', "PM static chip select signals float during sleep" },
+
+{ "PGSR0", 0x40F00020, 0, 0xffffffff, 'x', "Power Manager GPIO Sleep State Register 0 (3-32)" },
+{ "PGSR_SS0", 0x40F00020, 0, 0x00000001, 'd', "PM GPIO pin 0 is driven to 1 during sleep" },
+{ "PGSR_SS1", 0x40F00020, 1, 0x00000001, 'd', "PM GPIO pin 1 is driven to 1 during sleep" },
+{ "PGSR_SS2", 0x40F00020, 2, 0x00000001, 'd', "PM GPIO pin 2 is driven to 1 during sleep" },
+{ "PGSR_SS3", 0x40F00020, 3, 0x00000001, 'd', "PM GPIO pin 3 is driven to 1 during sleep" },
+{ "PGSR_SS4", 0x40F00020, 4, 0x00000001, 'd', "PM GPIO pin 4 is driven to 1 during sleep" },
+{ "PGSR_SS5", 0x40F00020, 5, 0x00000001, 'd', "PM GPIO pin 5 is driven to 1 during sleep" },
+{ "PGSR_SS6", 0x40F00020, 6, 0x00000001, 'd', "PM GPIO pin 6 is driven to 1 during sleep" },
+{ "PGSR_SS7", 0x40F00020, 7, 0x00000001, 'd', "PM GPIO pin 7 is driven to 1 during sleep" },
+{ "PGSR_SS8", 0x40F00020, 8, 0x00000001, 'd', "PM GPIO pin 8 is driven to 1 during sleep" },
+{ "PGSR_SS9", 0x40F00020, 9, 0x00000001, 'd', "PM GPIO pin 9 is driven to 1 during sleep" },
+{ "PGSR_SS10", 0x40F00020, 10, 0x00000001, 'd', "PM GPIO pin 10 is driven to 1 during sleep" },
+{ "PGSR_SS11", 0x40F00020, 11, 0x00000001, 'd', "PM GPIO pin 11 is driven to 1 during sleep" },
+{ "PGSR_SS12", 0x40F00020, 12, 0x00000001, 'd', "PM GPIO pin 12 is driven to 1 during sleep" },
+{ "PGSR_SS13", 0x40F00020, 13, 0x00000001, 'd', "PM GPIO pin 13 is driven to 1 during sleep" },
+{ "PGSR_SS14", 0x40F00020, 14, 0x00000001, 'd', "PM GPIO pin 14 is driven to 1 during sleep" },
+{ "PGSR_SS15", 0x40F00020, 15, 0x00000001, 'd', "PM GPIO pin 15 is driven to 1 during sleep" },
+{ "PGSR_SS16", 0x40F00020, 16, 0x00000001, 'd', "PM GPIO pin 16 is driven to 1 during sleep" },
+{ "PGSR_SS17", 0x40F00020, 17, 0x00000001, 'd', "PM GPIO pin 17 is driven to 1 during sleep" },
+{ "PGSR_SS18", 0x40F00020, 18, 0x00000001, 'd', "PM GPIO pin 18 is driven to 1 during sleep" },
+{ "PGSR_SS19", 0x40F00020, 19, 0x00000001, 'd', "PM GPIO pin 19 is driven to 1 during sleep" },
+{ "PGSR_SS20", 0x40F00020, 20, 0x00000001, 'd', "PM GPIO pin 20 is driven to 1 during sleep" },
+{ "PGSR_SS21", 0x40F00020, 21, 0x00000001, 'd', "PM GPIO pin 21 is driven to 1 during sleep" },
+{ "PGSR_SS22", 0x40F00020, 22, 0x00000001, 'd', "PM GPIO pin 22 is driven to 1 during sleep" },
+{ "PGSR_SS23", 0x40F00020, 23, 0x00000001, 'd', "PM GPIO pin 23 is driven to 1 during sleep" },
+{ "PGSR_SS24", 0x40F00020, 24, 0x00000001, 'd', "PM GPIO pin 24 is driven to 1 during sleep" },
+{ "PGSR_SS25", 0x40F00020, 25, 0x00000001, 'd', "PM GPIO pin 25 is driven to 1 during sleep" },
+{ "PGSR_SS26", 0x40F00020, 26, 0x00000001, 'd', "PM GPIO pin 26 is driven to 1 during sleep" },
+{ "PGSR_SS27", 0x40F00020, 27, 0x00000001, 'd', "PM GPIO pin 27 is driven to 1 during sleep" },
+{ "PGSR_SS28", 0x40F00020, 28, 0x00000001, 'd', "PM GPIO pin 28 is driven to 1 during sleep" },
+{ "PGSR_SS29", 0x40F00020, 29, 0x00000001, 'd', "PM GPIO pin 29 is driven to 1 during sleep" },
+{ "PGSR_SS30", 0x40F00020, 30, 0x00000001, 'd', "PM GPIO pin 30 is driven to 1 during sleep" },
+{ "PGSR_SS31", 0x40F00020, 31, 0x00000001, 'd', "PM GPIO pin 31 is driven to 1 during sleep" },
+
+{ "PGSR1", 0x40F00024, 0, 0xffffffff, 'x', "Power Manager GPIO Sleep State Register 1 (3-32)" },
+{ "PGSR_SS32", 0x40F00024, 0, 0x00000001, 'd', "PM GPIO pin 32 is driven to 1 during sleep" },
+{ "PGSR_SS33", 0x40F00024, 1, 0x00000001, 'd', "PM GPIO pin 33 is driven to 1 during sleep" },
+{ "PGSR_SS34", 0x40F00024, 2, 0x00000001, 'd', "PM GPIO pin 34 is driven to 1 during sleep" },
+{ "PGSR_SS35", 0x40F00024, 3, 0x00000001, 'd', "PM GPIO pin 35 is driven to 1 during sleep" },
+{ "PGSR_SS36", 0x40F00024, 4, 0x00000001, 'd', "PM GPIO pin 36 is driven to 1 during sleep" },
+{ "PGSR_SS37", 0x40F00024, 5, 0x00000001, 'd', "PM GPIO pin 37 is driven to 1 during sleep" },
+{ "PGSR_SS38", 0x40F00024, 6, 0x00000001, 'd', "PM GPIO pin 38 is driven to 1 during sleep" },
+{ "PGSR_SS39", 0x40F00024, 7, 0x00000001, 'd', "PM GPIO pin 39 is driven to 1 during sleep" },
+{ "PGSR_SS40", 0x40F00024, 8, 0x00000001, 'd', "PM GPIO pin 40 is driven to 1 during sleep" },
+{ "PGSR_SS41", 0x40F00024, 9, 0x00000001, 'd', "PM GPIO pin 41 is driven to 1 during sleep" },
+{ "PGSR_SS42", 0x40F00024, 10, 0x00000001, 'd', "PM GPIO pin 42 is driven to 1 during sleep" },
+{ "PGSR_SS43", 0x40F00024, 11, 0x00000001, 'd', "PM GPIO pin 43 is driven to 1 during sleep" },
+{ "PGSR_SS44", 0x40F00024, 12, 0x00000001, 'd', "PM GPIO pin 44 is driven to 1 during sleep" },
+{ "PGSR_SS45", 0x40F00024, 13, 0x00000001, 'd', "PM GPIO pin 45 is driven to 1 during sleep" },
+{ "PGSR_SS46", 0x40F00024, 14, 0x00000001, 'd', "PM GPIO pin 46 is driven to 1 during sleep" },
+{ "PGSR_SS47", 0x40F00024, 15, 0x00000001, 'd', "PM GPIO pin 47 is driven to 1 during sleep" },
+{ "PGSR_SS48", 0x40F00024, 16, 0x00000001, 'd', "PM GPIO pin 48 is driven to 1 during sleep" },
+{ "PGSR_SS49", 0x40F00024, 17, 0x00000001, 'd', "PM GPIO pin 49 is driven to 1 during sleep" },
+{ "PGSR_SS50", 0x40F00024, 18, 0x00000001, 'd', "PM GPIO pin 50 is driven to 1 during sleep" },
+{ "PGSR_SS51", 0x40F00024, 19, 0x00000001, 'd', "PM GPIO pin 51 is driven to 1 during sleep" },
+{ "PGSR_SS52", 0x40F00024, 20, 0x00000001, 'd', "PM GPIO pin 52 is driven to 1 during sleep" },
+{ "PGSR_SS53", 0x40F00024, 21, 0x00000001, 'd', "PM GPIO pin 53 is driven to 1 during sleep" },
+{ "PGSR_SS54", 0x40F00024, 22, 0x00000001, 'd', "PM GPIO pin 54 is driven to 1 during sleep" },
+{ "PGSR_SS55", 0x40F00024, 23, 0x00000001, 'd', "PM GPIO pin 55 is driven to 1 during sleep" },
+{ "PGSR_SS56", 0x40F00024, 24, 0x00000001, 'd', "PM GPIO pin 56 is driven to 1 during sleep" },
+{ "PGSR_SS57", 0x40F00024, 25, 0x00000001, 'd', "PM GPIO pin 57 is driven to 1 during sleep" },
+{ "PGSR_SS58", 0x40F00024, 26, 0x00000001, 'd', "PM GPIO pin 58 is driven to 1 during sleep" },
+{ "PGSR_SS59", 0x40F00024, 27, 0x00000001, 'd', "PM GPIO pin 59 is driven to 1 during sleep" },
+{ "PGSR_SS60", 0x40F00024, 28, 0x00000001, 'd', "PM GPIO pin 60 is driven to 1 during sleep" },
+{ "PGSR_SS61", 0x40F00024, 29, 0x00000001, 'd', "PM GPIO pin 61 is driven to 1 during sleep" },
+{ "PGSR_SS62", 0x40F00024, 30, 0x00000001, 'd', "PM GPIO pin 62 is driven to 1 during sleep" },
+{ "PGSR_SS63", 0x40F00024, 31, 0x00000001, 'd', "PM GPIO pin 63 is driven to 1 during sleep" },
+
+{ "PGSR2", 0x40F00028, 0, 0xffffffff, 'x', "Power Manager GPIO Sleep State Register 2 (3-33)" },
+{ "PGSR_SS64", 0x40F00028, 0, 0x00000001, 'd', "PM GPIO pin 64 is driven to 1 during sleep" },
+{ "PGSR_SS65", 0x40F00028, 1, 0x00000001, 'd', "PM GPIO pin 65 is driven to 1 during sleep" },
+{ "PGSR_SS66", 0x40F00028, 2, 0x00000001, 'd', "PM GPIO pin 66 is driven to 1 during sleep" },
+{ "PGSR_SS67", 0x40F00028, 3, 0x00000001, 'd', "PM GPIO pin 67 is driven to 1 during sleep" },
+{ "PGSR_SS68", 0x40F00028, 4, 0x00000001, 'd', "PM GPIO pin 68 is driven to 1 during sleep" },
+{ "PGSR_SS69", 0x40F00028, 5, 0x00000001, 'd', "PM GPIO pin 69 is driven to 1 during sleep" },
+{ "PGSR_SS70", 0x40F00028, 6, 0x00000001, 'd', "PM GPIO pin 70 is driven to 1 during sleep" },
+{ "PGSR_SS71", 0x40F00028, 7, 0x00000001, 'd', "PM GPIO pin 71 is driven to 1 during sleep" },
+{ "PGSR_SS72", 0x40F00028, 8, 0x00000001, 'd', "PM GPIO pin 72 is driven to 1 during sleep" },
+{ "PGSR_SS73", 0x40F00028, 9, 0x00000001, 'd', "PM GPIO pin 73 is driven to 1 during sleep" },
+{ "PGSR_SS74", 0x40F00028, 10, 0x00000001, 'd', "PM GPIO pin 74 is driven to 1 during sleep" },
+{ "PGSR_SS75", 0x40F00028, 11, 0x00000001, 'd', "PM GPIO pin 75 is driven to 1 during sleep" },
+{ "PGSR_SS76", 0x40F00028, 12, 0x00000001, 'd', "PM GPIO pin 76 is driven to 1 during sleep" },
+{ "PGSR_SS77", 0x40F00028, 13, 0x00000001, 'd', "PM GPIO pin 77 is driven to 1 during sleep" },
+{ "PGSR_SS78", 0x40F00028, 14, 0x00000001, 'd', "PM GPIO pin 78 is driven to 1 during sleep" },
+{ "PGSR_SS79", 0x40F00028, 15, 0x00000001, 'd', "PM GPIO pin 79 is driven to 1 during sleep" },
+{ "PGSR_SS80", 0x40F00028, 16, 0x00000001, 'd', "PM GPIO pin 80 is driven to 1 during sleep" },
+
+{ "RCSR", 0x40F00030, 0, 0xffffffff, 'x', "Power Manager Reset Controller Status Register (3-34)" },
+{ "RCSR_HWR", 0x40F00030, 0, 0x00000001, 'd', "PM hardware reset occurred" },
+{ "RCSR_WDR", 0x40F00030, 1, 0x00000001, 'd', "PM watchdog reset occurred" },
+{ "RCSR_SMR", 0x40F00030, 2, 0x00000001, 'd', "PM sleep mode occurred" },
+{ "RCSR_GFR", 0x40F00030, 3, 0x00000001, 'd', "PM GPIO reset occurred" },
+
+// PXA255
+{ "PMFW", 0x40F00034, 0, 0xffffffff, 'x', "Power Manager Fast Sleep Wakeup Register (3-31)" },
+{ "PMFW_FWAKE",0x40F00034, 1, 0x00000001, 'x', "Fast Wakeup Enable" },
+
+{ "CCCR", 0x41300000, 0, 0xffffffff, 'x', "Core Clock Configuration Register (3-35)" },
+{ "CCCR_L", 0x41300000, 0, 0x0000001f, 'x', "CM crystal freq to memory freq multiplier" },
+{ "CCCR_M", 0x41300000, 5, 0x00000003, 'x', "CM memory freq to run mode freq multiplier" },
+{ "CCCR_N", 0x41300000, 7, 0x00000007, 'x', "CM run mode freq to turbo freq multiplier" },
+
+{ "CKEN", 0x41300004, 0, 0xffffffff, 'x', "Clock Enable Register (3-36)" },
+{ "CKEN_0", 0x41300004, 0, 0x00000001, 'd', "CM PWM0 clock enabled" },
+{ "CKEN_1", 0x41300004, 1, 0x00000001, 'd', "CM PWM1 clock enabled" },
+{ "CKEN_2", 0x41300004, 2, 0x00000001, 'd', "CM AC97 clock enabled" },
+{ "CKEN_3", 0x41300004, 3, 0x00000001, 'd', "CM SSP clock enabled" },
+{ "CKEN_5", 0x41300004, 5, 0x00000001, 'd', "CM STUART clock enabled" },
+{ "CKEN_6", 0x41300004, 6, 0x00000001, 'd', "CM FFUART clock enabled" },
+{ "CKEN_7", 0x41300004, 7, 0x00000001, 'd', "CM BTUART clock enabled" },
+{ "CKEN_8", 0x41300004, 8, 0x00000001, 'd', "CM I2S clock enabled" },
+{ "CKEN_11", 0x41300004, 11, 0x00000001, 'd', "CM USB clock enabled" },
+{ "CKEN_12", 0x41300004, 12, 0x00000001, 'd', "CM MMC clock enabled" },
+{ "CKEN_13", 0x41300004, 13, 0x00000001, 'd', "CM FIPC clock enabled" },
+{ "CKEN_14", 0x41300004, 14, 0x00000001, 'd', "CM I2C clock enabled" },
+{ "CKEN_16", 0x41300004, 16, 0x00000001, 'd', "CM LCD clock enabled" },
+
+{ "OSCC", 0x41300008, 0, 0xffffffff, 'x', "Oscillator Configuration Register (3-38)" },
+{ "OSCC_OOK", 0x41300008, 0, 0x00000001, 'd', "CM 32.768 kHz oscillator enabled and stabilized" },
+{ "OSCC_OON", 0x41300008, 1, 0x00000001, 'd', "CM 32.768 kHz oscillator enabled" },
+
+// TODO: CP14-Registers (3-37)
+
+{ "GPLR0", 0x40E00000, 0, 0xffffffff, 'x', "GPIO Pin Level Register 0 (4-7)" },
+#if defined(CONFIG_ARCH_RAMSES)
+{ "GPLR0_0", 0x40E00000, 0, 0x00000001, 'd', "GPIO 0 (nc) level" },
+{ "GPLR0_1", 0x40E00000, 1, 0x00000001, 'd', "GPIO 1 (nPFI) level" },
+{ "GPLR0_2", 0x40E00000, 2, 0x00000001, 'd', "GPIO 2 (BAT_DATA) level" },
+{ "GPLR0_3", 0x40E00000, 3, 0x00000001, 'd', "GPIO 3 (IRQ_KEY) level" },
+{ "GPLR0_4", 0x40E00000, 4, 0x00000001, 'd', "GPIO 4 (IRQ_ETH) level" },
+{ "GPLR0_5", 0x40E00000, 5, 0x00000001, 'd', "GPIO 5 (nc) level" },
+{ "GPLR0_6", 0x40E00000, 6, 0x00000001, 'd', "GPIO 6 (MMC_CLK) level" },
+{ "GPLR0_7", 0x40E00000, 7, 0x00000001, 'd', "GPIO 7 (IRQ_GSM) level" },
+{ "GPLR0_8", 0x40E00000, 8, 0x00000001, 'd', "GPIO 8 (nPCC_S1_CD) level" },
+{ "GPLR0_9", 0x40E00000, 9, 0x00000001, 'd', "GPIO 9 (MMC_CD) level" },
+{ "GPLR0_10", 0x40E00000, 10, 0x00000001, 'd', "GPIO 10 (IRQ_RTC) level" },
+{ "GPLR0_11", 0x40E00000, 11, 0x00000001, 'd', "GPIO 11 (nc 3M6) level" },
+{ "GPLR0_12", 0x40E00000, 12, 0x00000001, 'd', "GPIO 12 (nc) level" },
+{ "GPLR0_13", 0x40E00000, 13, 0x00000001, 'd', "GPIO 13 (IRQ_DOCK) level" },
+{ "GPLR0_14", 0x40E00000, 14, 0x00000001, 'd', "GPIO 14 (nc) level" },
+{ "GPLR0_15", 0x40E00000, 15, 0x00000001, 'd', "GPIO 15 (nCS1) level" },
+{ "GPLR0_16", 0x40E00000, 16, 0x00000001, 'd', "GPIO 16 (PWM0) level" },
+{ "GPLR0_17", 0x40E00000, 17, 0x00000001, 'd', "GPIO 17 (PWM1) level" },
+{ "GPLR0_18", 0x40E00000, 18, 0x00000001, 'd', "GPIO 18 (RDY) level" },
+{ "GPLR0_19", 0x40E00000, 19, 0x00000001, 'd', "GPIO 19 (nc nPCC_S0_IRQ) level" },
+{ "GPLR0_20", 0x40E00000, 20, 0x00000001, 'd', "GPIO 20 (nc) level" },
+{ "GPLR0_21", 0x40E00000, 21, 0x00000001, 'd', "GPIO 21 (AC97_IRQ) level" },
+{ "GPLR0_22", 0x40E00000, 22, 0x00000001, 'd', "GPIO 22 (nPCC_S1_IRQ) level" },
+{ "GPLR0_23", 0x40E00000, 23, 0x00000001, 'd', "GPIO 23 (UART_INTA) level" },
+{ "GPLR0_24", 0x40E00000, 24, 0x00000001, 'd', "GPIO 24 (UART_INTB) level" },
+{ "GPLR0_25", 0x40E00000, 25, 0x00000001, 'd', "GPIO 25 (UART_INTC) level" },
+{ "GPLR0_26", 0x40E00000, 26, 0x00000001, 'd', "GPIO 26 (UART_INTD) level" },
+{ "GPLR0_27", 0x40E00000, 27, 0x00000001, 'd', "GPIO 27 (nc CPLD_FREE) level" },
+{ "GPLR0_28", 0x40E00000, 28, 0x00000001, 'd', "GPIO 28 (AUD_BITCLK) level" },
+{ "GPLR0_29", 0x40E00000, 29, 0x00000001, 'd', "GPIO 29 (AUD_SDIN0) level" },
+{ "GPLR0_30", 0x40E00000, 30, 0x00000001, 'd', "GPIO 30 (AUD_SDOUT) level" },
+{ "GPLR0_31", 0x40E00000, 31, 0x00000001, 'd', "GPIO 31 (AUD_SYNC) level" },
+#else
+{ "GPLR0_0", 0x40E00000, 0, 0x00000001, 'd', "GPIO 0 level" },
+{ "GPLR0_1", 0x40E00000, 1, 0x00000001, 'd', "GPIO 1 level" },
+{ "GPLR0_2", 0x40E00000, 2, 0x00000001, 'd', "GPIO 2 level" },
+{ "GPLR0_3", 0x40E00000, 3, 0x00000001, 'd', "GPIO 3 level" },
+{ "GPLR0_4", 0x40E00000, 4, 0x00000001, 'd', "GPIO 4 level" },
+{ "GPLR0_5", 0x40E00000, 5, 0x00000001, 'd', "GPIO 5 level" },
+{ "GPLR0_6", 0x40E00000, 6, 0x00000001, 'd', "GPIO 6 level" },
+{ "GPLR0_7", 0x40E00000, 7, 0x00000001, 'd', "GPIO 7 level" },
+{ "GPLR0_8", 0x40E00000, 8, 0x00000001, 'd', "GPIO 8 level" },
+{ "GPLR0_9", 0x40E00000, 9, 0x00000001, 'd', "GPIO 9 level" },
+{ "GPLR0_10", 0x40E00000, 10, 0x00000001, 'd', "GPIO 10 level" },
+{ "GPLR0_11", 0x40E00000, 11, 0x00000001, 'd', "GPIO 11 level" },
+{ "GPLR0_12", 0x40E00000, 12, 0x00000001, 'd', "GPIO 12 level" },
+{ "GPLR0_13", 0x40E00000, 13, 0x00000001, 'd', "GPIO 13 level" },
+{ "GPLR0_14", 0x40E00000, 14, 0x00000001, 'd', "GPIO 14 level" },
+{ "GPLR0_15", 0x40E00000, 15, 0x00000001, 'd', "GPIO 15 level" },
+{ "GPLR0_16", 0x40E00000, 16, 0x00000001, 'd', "GPIO 16 level" },
+{ "GPLR0_17", 0x40E00000, 17, 0x00000001, 'd', "GPIO 17 level" },
+{ "GPLR0_18", 0x40E00000, 18, 0x00000001, 'd', "GPIO 18 level" },
+{ "GPLR0_19", 0x40E00000, 19, 0x00000001, 'd', "GPIO 19 level" },
+{ "GPLR0_20", 0x40E00000, 20, 0x00000001, 'd', "GPIO 20 level" },
+{ "GPLR0_21", 0x40E00000, 21, 0x00000001, 'd', "GPIO 21 level" },
+{ "GPLR0_22", 0x40E00000, 22, 0x00000001, 'd', "GPIO 22 level" },
+{ "GPLR0_23", 0x40E00000, 23, 0x00000001, 'd', "GPIO 23 level" },
+{ "GPLR0_24", 0x40E00000, 24, 0x00000001, 'd', "GPIO 24 level" },
+{ "GPLR0_25", 0x40E00000, 25, 0x00000001, 'd', "GPIO 25 level" },
+{ "GPLR0_26", 0x40E00000, 26, 0x00000001, 'd', "GPIO 26 level" },
+{ "GPLR0_27", 0x40E00000, 27, 0x00000001, 'd', "GPIO 27 level" },
+{ "GPLR0_28", 0x40E00000, 28, 0x00000001, 'd', "GPIO 28 level" },
+{ "GPLR0_29", 0x40E00000, 29, 0x00000001, 'd', "GPIO 29 level" },
+{ "GPLR0_30", 0x40E00000, 30, 0x00000001, 'd', "GPIO 30 level" },
+{ "GPLR0_31", 0x40E00000, 31, 0x00000001, 'd', "GPIO 31 level" },
+#endif
+
+{ "GPLR1", 0x40E00004, 0, 0xffffffff, 'x', "GPIO Level Register 1 (4-8)" },
+#if defined(CONFIG_ARCH_RAMSES)
+{ "GPLR1_32", 0x40E00004, 0, 0x00000001, 'd', "GPIO 32 (AUD_SDIN1) level" },
+{ "GPLR1_33", 0x40E00004, 1, 0x00000001, 'd', "GPIO 33 (nCS5) level" },
+{ "GPLR1_34", 0x40E00004, 2, 0x00000001, 'd', "GPIO 34 (FF_RXD) level" },
+{ "GPLR1_35", 0x40E00004, 3, 0x00000001, 'd', "GPIO 35 (FF_CTS) level" },
+{ "GPLR1_36", 0x40E00004, 4, 0x00000001, 'd', "GPIO 36 (FF_DCD) level" },
+{ "GPLR1_37", 0x40E00004, 5, 0x00000001, 'd', "GPIO 37 (FF_DSR) level" },
+{ "GPLR1_38", 0x40E00004, 6, 0x00000001, 'd', "GPIO 38 (FF_RI) level" },
+{ "GPLR1_39", 0x40E00004, 7, 0x00000001, 'd', "GPIO 39 (FF_TXD) level" },
+{ "GPLR1_40", 0x40E00004, 8, 0x00000001, 'd', "GPIO 40 (FF_DTR) level" },
+{ "GPLR1_41", 0x40E00004, 9, 0x00000001, 'd', "GPIO 41 (FF_RTS) level" },
+{ "GPLR1_42", 0x40E00004, 10, 0x00000001, 'd', "GPIO 42 (BT_RXD) level" },
+{ "GPLR1_43", 0x40E00004, 11, 0x00000001, 'd', "GPIO 43 (BT_TXD) level" },
+{ "GPLR1_44", 0x40E00004, 12, 0x00000001, 'd', "GPIO 44 (BT_CTS) level" },
+{ "GPLR1_45", 0x40E00004, 13, 0x00000001, 'd', "GPIO 45 (BT_RTS) level" },
+{ "GPLR1_46", 0x40E00004, 14, 0x00000001, 'd', "GPIO 46 (IR_RXD) level" },
+{ "GPLR1_47", 0x40E00004, 15, 0x00000001, 'd', "GPIO 47 (IR_TXD) level" },
+{ "GPLR1_48", 0x40E00004, 16, 0x00000001, 'd', "GPIO 48 (nPOE) level" },
+{ "GPLR1_49", 0x40E00004, 17, 0x00000001, 'd', "GPIO 49 (nPWE) level" },
+{ "GPLR1_50", 0x40E00004, 18, 0x00000001, 'd', "GPIO 50 (nPIOR) level" },
+{ "GPLR1_51", 0x40E00004, 19, 0x00000001, 'd', "GPIO 51 (nPIOW) level" },
+{ "GPLR1_52", 0x40E00004, 20, 0x00000001, 'd', "GPIO 52 (nPCE1) level" },
+{ "GPLR1_53", 0x40E00004, 21, 0x00000001, 'd', "GPIO 53 (nPCE2) level" },
+{ "GPLR1_54", 0x40E00004, 22, 0x00000001, 'd', "GPIO 54 (nPKTSEL) level" },
+{ "GPLR1_55", 0x40E00004, 23, 0x00000001, 'd', "GPIO 55 (nPREG) level" },
+{ "GPLR1_56", 0x40E00004, 24, 0x00000001, 'd', "GPIO 56 (nPWAIT) level" },
+{ "GPLR1_57", 0x40E00004, 25, 0x00000001, 'd', "GPIO 57 (nIOIS16) level" },
+{ "GPLR1_58", 0x40E00004, 26, 0x00000001, 'd', "GPIO 58 (LDD0) level" },
+{ "GPLR1_59", 0x40E00004, 27, 0x00000001, 'd', "GPIO 59 (LDD1) level" },
+{ "GPLR1_60", 0x40E00004, 28, 0x00000001, 'd', "GPIO 60 (LDD2) level" },
+{ "GPLR1_61", 0x40E00004, 29, 0x00000001, 'd', "GPIO 61 (LDD3) level" },
+{ "GPLR1_62", 0x40E00004, 30, 0x00000001, 'd', "GPIO 62 (LDD4) level" },
+{ "GPLR1_63", 0x40E00004, 31, 0x00000001, 'd', "GPIO 63 (LDD5) level" },
+#else
+{ "GPLR1_32", 0x40E00004, 0, 0x00000001, 'd', "GPIO 32 level" },
+{ "GPLR1_33", 0x40E00004, 1, 0x00000001, 'd', "GPIO 33 level" },
+{ "GPLR1_34", 0x40E00004, 2, 0x00000001, 'd', "GPIO 34 level" },
+{ "GPLR1_35", 0x40E00004, 3, 0x00000001, 'd', "GPIO 35 level" },
+{ "GPLR1_36", 0x40E00004, 4, 0x00000001, 'd', "GPIO 36 level" },
+{ "GPLR1_37", 0x40E00004, 5, 0x00000001, 'd', "GPIO 37 level" },
+{ "GPLR1_38", 0x40E00004, 6, 0x00000001, 'd', "GPIO 38 level" },
+{ "GPLR1_39", 0x40E00004, 7, 0x00000001, 'd', "GPIO 39 level" },
+{ "GPLR1_40", 0x40E00004, 8, 0x00000001, 'd', "GPIO 40 level" },
+{ "GPLR1_41", 0x40E00004, 9, 0x00000001, 'd', "GPIO 41 level" },
+{ "GPLR1_42", 0x40E00004, 10, 0x00000001, 'd', "GPIO 42 level" },
+{ "GPLR1_43", 0x40E00004, 11, 0x00000001, 'd', "GPIO 43 level" },
+{ "GPLR1_44", 0x40E00004, 12, 0x00000001, 'd', "GPIO 44 level" },
+{ "GPLR1_45", 0x40E00004, 13, 0x00000001, 'd', "GPIO 45 level" },
+{ "GPLR1_46", 0x40E00004, 14, 0x00000001, 'd', "GPIO 46 level" },
+{ "GPLR1_47", 0x40E00004, 15, 0x00000001, 'd', "GPIO 47 level" },
+{ "GPLR1_48", 0x40E00004, 16, 0x00000001, 'd', "GPIO 48 level" },
+{ "GPLR1_49", 0x40E00004, 17, 0x00000001, 'd', "GPIO 49 level" },
+{ "GPLR1_50", 0x40E00004, 18, 0x00000001, 'd', "GPIO 50 level" },
+{ "GPLR1_51", 0x40E00004, 19, 0x00000001, 'd', "GPIO 51 level" },
+{ "GPLR1_52", 0x40E00004, 20, 0x00000001, 'd', "GPIO 52 level" },
+{ "GPLR1_53", 0x40E00004, 21, 0x00000001, 'd', "GPIO 53 level" },
+{ "GPLR1_54", 0x40E00004, 22, 0x00000001, 'd', "GPIO 54 level" },
+{ "GPLR1_55", 0x40E00004, 23, 0x00000001, 'd', "GPIO 55 level" },
+{ "GPLR1_56", 0x40E00004, 24, 0x00000001, 'd', "GPIO 56 level" },
+{ "GPLR1_57", 0x40E00004, 25, 0x00000001, 'd', "GPIO 57 level" },
+{ "GPLR1_58", 0x40E00004, 26, 0x00000001, 'd', "GPIO 58 level" },
+{ "GPLR1_59", 0x40E00004, 27, 0x00000001, 'd', "GPIO 59 level" },
+{ "GPLR1_60", 0x40E00004, 28, 0x00000001, 'd', "GPIO 60 level" },
+{ "GPLR1_61", 0x40E00004, 29, 0x00000001, 'd', "GPIO 61 level" },
+{ "GPLR1_62", 0x40E00004, 30, 0x00000001, 'd', "GPIO 62 level" },
+{ "GPLR1_63", 0x40E00004, 31, 0x00000001, 'd', "GPIO 63 level" },
+#endif
+
+{ "GPLR2", 0x40E00008, 0, 0xffffffff, 'x', "GPIO Level Register 2 (4-8)" },
+#if defined(CONFIG_ARCH_RAMSES)
+{ "GPLR2_64", 0x40E00008, 0, 0x00000001, 'd', "GPIO 64 (LDD6) level" },
+{ "GPLR2_65", 0x40E00008, 1, 0x00000001, 'd', "GPIO 65 (LDD7) level" },
+{ "GPLR2_66", 0x40E00008, 2, 0x00000001, 'd', "GPIO 66 (nc) level" },
+{ "GPLR2_67", 0x40E00008, 3, 0x00000001, 'd', "GPIO 67 (nc) level" },
+{ "GPLR2_68", 0x40E00008, 4, 0x00000001, 'd', "GPIO 68 (nc) level" },
+{ "GPLR2_69", 0x40E00008, 5, 0x00000001, 'd', "GPIO 69 (nc) level" },
+{ "GPLR2_70", 0x40E00008, 6, 0x00000001, 'd', "GPIO 70 (nc) level" },
+{ "GPLR2_71", 0x40E00008, 7, 0x00000001, 'd', "GPIO 71 (nc) level" },
+{ "GPLR2_72", 0x40E00008, 8, 0x00000001, 'd', "GPIO 72 (nc) level" },
+{ "GPLR2_73", 0x40E00008, 9, 0x00000001, 'd', "GPIO 73 (nc) level" },
+{ "GPLR2_74", 0x40E00008, 10, 0x00000001, 'd', "GPIO 74 (FCLK) level" },
+{ "GPLR2_75", 0x40E00008, 11, 0x00000001, 'd', "GPIO 75 (LCLK) level" },
+{ "GPLR2_76", 0x40E00008, 12, 0x00000001, 'd', "GPIO 76 (PCLK) level" },
+{ "GPLR2_77", 0x40E00008, 13, 0x00000001, 'd', "GPIO 77 (BIAS) level" },
+{ "GPLR2_78", 0x40E00008, 14, 0x00000001, 'd', "GPIO 78 (nCS2) level" },
+{ "GPLR2_79", 0x40E00008, 15, 0x00000001, 'd', "GPIO 79 (nCS3) level" },
+{ "GPLR2_80", 0x40E00008, 16, 0x00000001, 'd', "GPIO 80 (nCS4) level" },
+{ "GPLR2_81", 0x40E00008, 17, 0x00000001, 'd', "GPIO 81 (nc) level" },
+{ "GPLR2_82", 0x40E00008, 18, 0x00000001, 'd', "GPIO 82 (nc) level" },
+{ "GPLR2_83", 0x40E00008, 19, 0x00000001, 'd', "GPIO 83 (nc) level" },
+{ "GPLR2_84", 0x40E00008, 20, 0x00000001, 'd', "GPIO 84 (nc) level" },
+#else
+{ "GPLR2_64", 0x40E00008, 0, 0x00000001, 'd', "GPIO 64 level" },
+{ "GPLR2_65", 0x40E00008, 1, 0x00000001, 'd', "GPIO 65 level" },
+{ "GPLR2_66", 0x40E00008, 2, 0x00000001, 'd', "GPIO 66 level" },
+{ "GPLR2_67", 0x40E00008, 3, 0x00000001, 'd', "GPIO 67 level" },
+{ "GPLR2_68", 0x40E00008, 4, 0x00000001, 'd', "GPIO 68 level" },
+{ "GPLR2_69", 0x40E00008, 5, 0x00000001, 'd', "GPIO 69 level" },
+{ "GPLR2_70", 0x40E00008, 6, 0x00000001, 'd', "GPIO 70 level" },
+{ "GPLR2_71", 0x40E00008, 7, 0x00000001, 'd', "GPIO 71 level" },
+{ "GPLR2_72", 0x40E00008, 8, 0x00000001, 'd', "GPIO 72 level" },
+{ "GPLR2_73", 0x40E00008, 9, 0x00000001, 'd', "GPIO 73 level" },
+{ "GPLR2_74", 0x40E00008, 10, 0x00000001, 'd', "GPIO 74 level" },
+{ "GPLR2_75", 0x40E00008, 11, 0x00000001, 'd', "GPIO 75 level" },
+{ "GPLR2_76", 0x40E00008, 12, 0x00000001, 'd', "GPIO 76 level" },
+{ "GPLR2_77", 0x40E00008, 13, 0x00000001, 'd', "GPIO 77 level" },
+{ "GPLR2_78", 0x40E00008, 14, 0x00000001, 'd', "GPIO 78 level" },
+{ "GPLR2_79", 0x40E00008, 15, 0x00000001, 'd', "GPIO 79 level" },
+{ "GPLR2_80", 0x40E00008, 16, 0x00000001, 'd', "GPIO 80 level" },
+{ "GPLR2_81", 0x40E00008, 17, 0x00000001, 'd', "GPIO 81 level" },
+{ "GPLR2_82", 0x40E00008, 18, 0x00000001, 'd', "GPIO 82 level" },
+{ "GPLR2_83", 0x40E00008, 19, 0x00000001, 'd', "GPIO 83 level" },
+{ "GPLR2_84", 0x40E00008, 20, 0x00000001, 'd', "GPIO 84 level" },
+#endif
+
+{ "GPDR0", 0x40E0000C, 0, 0xffffffff, 'x', "GPIO Direction Register 0 (4-9)" },
+{ "GPDR0_0", 0x40E0000C, 0, 0x00000001, 'd', "GPIO 0 i/o direction (1=output)" },
+{ "GPDR0_1", 0x40E0000C, 1, 0x00000001, 'd', "GPIO 1 i/o direction (1=output)" },
+{ "GPDR0_2", 0x40E0000C, 2, 0x00000001, 'd', "GPIO 2 i/o direction (1=output)" },
+{ "GPDR0_3", 0x40E0000C, 3, 0x00000001, 'd', "GPIO 3 i/o direction (1=output)" },
+{ "GPDR0_4", 0x40E0000C, 4, 0x00000001, 'd', "GPIO 4 i/o direction (1=output)" },
+{ "GPDR0_5", 0x40E0000C, 5, 0x00000001, 'd', "GPIO 5 i/o direction (1=output)" },
+{ "GPDR0_6", 0x40E0000C, 6, 0x00000001, 'd', "GPIO 6 i/o direction (1=output)" },
+{ "GPDR0_7", 0x40E0000C, 7, 0x00000001, 'd', "GPIO 7 i/o direction (1=output)" },
+{ "GPDR0_8", 0x40E0000C, 8, 0x00000001, 'd', "GPIO 8 i/o direction (1=output)" },
+{ "GPDR0_9", 0x40E0000C, 9, 0x00000001, 'd', "GPIO 9 i/o direction (1=output)" },
+{ "GPDR0_10", 0x40E0000C, 10, 0x00000001, 'd', "GPIO 10 i/o direction (1=output)" },
+{ "GPDR0_11", 0x40E0000C, 11, 0x00000001, 'd', "GPIO 11 i/o direction (1=output)" },
+{ "GPDR0_12", 0x40E0000C, 12, 0x00000001, 'd', "GPIO 12 i/o direction (1=output)" },
+{ "GPDR0_13", 0x40E0000C, 13, 0x00000001, 'd', "GPIO 13 i/o direction (1=output)" },
+{ "GPDR0_14", 0x40E0000C, 14, 0x00000001, 'd', "GPIO 14 i/o direction (1=output)" },
+{ "GPDR0_15", 0x40E0000C, 15, 0x00000001, 'd', "GPIO 15 i/o direction (1=output)" },
+{ "GPDR0_16", 0x40E0000C, 16, 0x00000001, 'd', "GPIO 16 i/o direction (1=output)" },
+{ "GPDR0_17", 0x40E0000C, 17, 0x00000001, 'd', "GPIO 17 i/o direction (1=output)" },
+{ "GPDR0_18", 0x40E0000C, 18, 0x00000001, 'd', "GPIO 18 i/o direction (1=output)" },
+{ "GPDR0_19", 0x40E0000C, 19, 0x00000001, 'd', "GPIO 19 i/o direction (1=output)" },
+{ "GPDR0_20", 0x40E0000C, 20, 0x00000001, 'd', "GPIO 20 i/o direction (1=output)" },
+{ "GPDR0_21", 0x40E0000C, 21, 0x00000001, 'd', "GPIO 21 i/o direction (1=output)" },
+{ "GPDR0_22", 0x40E0000C, 22, 0x00000001, 'd', "GPIO 22 i/o direction (1=output)" },
+{ "GPDR0_23", 0x40E0000C, 23, 0x00000001, 'd', "GPIO 23 i/o direction (1=output)" },
+{ "GPDR0_24", 0x40E0000C, 24, 0x00000001, 'd', "GPIO 24 i/o direction (1=output)" },
+{ "GPDR0_25", 0x40E0000C, 25, 0x00000001, 'd', "GPIO 25 i/o direction (1=output)" },
+{ "GPDR0_26", 0x40E0000C, 26, 0x00000001, 'd', "GPIO 26 i/o direction (1=output)" },
+{ "GPDR0_27", 0x40E0000C, 27, 0x00000001, 'd', "GPIO 27 i/o direction (1=output)" },
+{ "GPDR0_28", 0x40E0000C, 28, 0x00000001, 'd', "GPIO 28 i/o direction (1=output)" },
+{ "GPDR0_29", 0x40E0000C, 29, 0x00000001, 'd', "GPIO 29 i/o direction (1=output)" },
+{ "GPDR0_30", 0x40E0000C, 30, 0x00000001, 'd', "GPIO 30 i/o direction (1=output)" },
+{ "GPDR0_31", 0x40E0000C, 31, 0x00000001, 'd', "GPIO 31 i/o direction (1=output)" },
+
+{ "GPDR1", 0x40E00010, 0, 0xffffffff, 'x', "GPIO Direction Register 1 (4-9)" },
+{ "GPDR1_32", 0x40E00010, 0, 0x00000001, 'd', "GPIO 32 i/o direction (1=output)" },
+{ "GPDR1_33", 0x40E00010, 1, 0x00000001, 'd', "GPIO 33 i/o direction (1=output)" },
+{ "GPDR1_34", 0x40E00010, 2, 0x00000001, 'd', "GPIO 34 i/o direction (1=output)" },
+{ "GPDR1_35", 0x40E00010, 3, 0x00000001, 'd', "GPIO 35 i/o direction (1=output)" },
+{ "GPDR1_36", 0x40E00010, 4, 0x00000001, 'd', "GPIO 36 i/o direction (1=output)" },
+{ "GPDR1_37", 0x40E00010, 5, 0x00000001, 'd', "GPIO 37 i/o direction (1=output)" },
+{ "GPDR1_38", 0x40E00010, 6, 0x00000001, 'd', "GPIO 38 i/o direction (1=output)" },
+{ "GPDR1_39", 0x40E00010, 7, 0x00000001, 'd', "GPIO 39 i/o direction (1=output)" },
+{ "GPDR1_40", 0x40E00010, 8, 0x00000001, 'd', "GPIO 40 i/o direction (1=output)" },
+{ "GPDR1_41", 0x40E00010, 9, 0x00000001, 'd', "GPIO 41 i/o direction (1=output)" },
+{ "GPDR1_42", 0x40E00010, 10, 0x00000001, 'd', "GPIO 42 i/o direction (1=output)" },
+{ "GPDR1_43", 0x40E00010, 11, 0x00000001, 'd', "GPIO 43 i/o direction (1=output)" },
+{ "GPDR1_44", 0x40E00010, 12, 0x00000001, 'd', "GPIO 44 i/o direction (1=output)" },
+{ "GPDR1_45", 0x40E00010, 13, 0x00000001, 'd', "GPIO 45 i/o direction (1=output)" },
+{ "GPDR1_46", 0x40E00010, 14, 0x00000001, 'd', "GPIO 46 i/o direction (1=output)" },
+{ "GPDR1_47", 0x40E00010, 15, 0x00000001, 'd', "GPIO 47 i/o direction (1=output)" },
+{ "GPDR1_48", 0x40E00010, 16, 0x00000001, 'd', "GPIO 48 i/o direction (1=output)" },
+{ "GPDR1_49", 0x40E00010, 17, 0x00000001, 'd', "GPIO 49 i/o direction (1=output)" },
+{ "GPDR1_50", 0x40E00010, 18, 0x00000001, 'd', "GPIO 50 i/o direction (1=output)" },
+{ "GPDR1_51", 0x40E00010, 19, 0x00000001, 'd', "GPIO 51 i/o direction (1=output)" },
+{ "GPDR1_52", 0x40E00010, 20, 0x00000001, 'd', "GPIO 52 i/o direction (1=output)" },
+{ "GPDR1_53", 0x40E00010, 21, 0x00000001, 'd', "GPIO 53 i/o direction (1=output)" },
+{ "GPDR1_54", 0x40E00010, 22, 0x00000001, 'd', "GPIO 54 i/o direction (1=output)" },
+{ "GPDR1_55", 0x40E00010, 23, 0x00000001, 'd', "GPIO 55 i/o direction (1=output)" },
+{ "GPDR1_56", 0x40E00010, 24, 0x00000001, 'd', "GPIO 56 i/o direction (1=output)" },
+{ "GPDR1_57", 0x40E00010, 25, 0x00000001, 'd', "GPIO 57 i/o direction (1=output)" },
+{ "GPDR1_58", 0x40E00010, 26, 0x00000001, 'd', "GPIO 58 i/o direction (1=output)" },
+{ "GPDR1_59", 0x40E00010, 27, 0x00000001, 'd', "GPIO 59 i/o direction (1=output)" },
+{ "GPDR1_60", 0x40E00010, 28, 0x00000001, 'd', "GPIO 60 i/o direction (1=output)" },
+{ "GPDR1_61", 0x40E00010, 29, 0x00000001, 'd', "GPIO 61 i/o direction (1=output)" },
+{ "GPDR1_62", 0x40E00010, 30, 0x00000001, 'd', "GPIO 62 i/o direction (1=output)" },
+{ "GPDR1_63", 0x40E00010, 31, 0x00000001, 'd', "GPIO 63 i/o direction (1=output)" },
+
+{ "GPDR2", 0x40E00014, 0, 0xffffffff, 'x', "GPIO Direction Register 2 (4-9)" },
+{ "GPDR2_64", 0x40E00014, 0, 0x00000001, 'd', "GPIO 64 i/o direction (1=output)" },
+{ "GPDR2_65", 0x40E00014, 1, 0x00000001, 'd', "GPIO 65 i/o direction (1=output)" },
+{ "GPDR2_66", 0x40E00014, 2, 0x00000001, 'd', "GPIO 66 i/o direction (1=output)" },
+{ "GPDR2_67", 0x40E00014, 3, 0x00000001, 'd', "GPIO 67 i/o direction (1=output)" },
+{ "GPDR2_68", 0x40E00014, 4, 0x00000001, 'd', "GPIO 68 i/o direction (1=output)" },
+{ "GPDR2_69", 0x40E00014, 5, 0x00000001, 'd', "GPIO 69 i/o direction (1=output)" },
+{ "GPDR2_70", 0x40E00014, 6, 0x00000001, 'd', "GPIO 70 i/o direction (1=output)" },
+{ "GPDR2_71", 0x40E00014, 7, 0x00000001, 'd', "GPIO 71 i/o direction (1=output)" },
+{ "GPDR2_72", 0x40E00014, 8, 0x00000001, 'd', "GPIO 72 i/o direction (1=output)" },
+{ "GPDR2_73", 0x40E00014, 9, 0x00000001, 'd', "GPIO 73 i/o direction (1=output)" },
+{ "GPDR2_74", 0x40E00014, 10, 0x00000001, 'd', "GPIO 74 i/o direction (1=output)" },
+{ "GPDR2_75", 0x40E00014, 11, 0x00000001, 'd', "GPIO 75 i/o direction (1=output)" },
+{ "GPDR2_76", 0x40E00014, 12, 0x00000001, 'd', "GPIO 76 i/o direction (1=output)" },
+{ "GPDR2_77", 0x40E00014, 13, 0x00000001, 'd', "GPIO 77 i/o direction (1=output)" },
+{ "GPDR2_78", 0x40E00014, 14, 0x00000001, 'd', "GPIO 78 i/o direction (1=output)" },
+{ "GPDR2_79", 0x40E00014, 15, 0x00000001, 'd', "GPIO 79 i/o direction (1=output)" },
+{ "GPDR2_80", 0x40E00014, 16, 0x00000001, 'd', "GPIO 80 i/o direction (1=output)" },
+{ "GPDR2_81", 0x40E00014, 17, 0x00000001, 'd', "GPIO 81 i/o direction (1=output)" },
+{ "GPDR2_82", 0x40E00014, 18, 0x00000001, 'd', "GPIO 82 i/o direction (1=output)" },
+{ "GPDR2_83", 0x40E00014, 19, 0x00000001, 'd', "GPIO 83 i/o direction (1=output)" },
+{ "GPDR2_84", 0x40E00014, 20, 0x00000001, 'd', "GPIO 84 i/o direction (1=output)" },
+
+{ "GPSR0", 0x40E00018, 0, 0xffffffff, 'x', "GPIO Set Register 0 (4-10)" },
+{ "GPSR0_0", 0x40E00018, 0, 0x00000001, 'd', "GPIO 0 set" },
+{ "GPSR0_1", 0x40E00018, 1, 0x00000001, 'd', "GPIO 1 set" },
+{ "GPSR0_2", 0x40E00018, 2, 0x00000001, 'd', "GPIO 2 set" },
+{ "GPSR0_3", 0x40E00018, 3, 0x00000001, 'd', "GPIO 3 set" },
+{ "GPSR0_4", 0x40E00018, 4, 0x00000001, 'd', "GPIO 4 set" },
+{ "GPSR0_5", 0x40E00018, 5, 0x00000001, 'd', "GPIO 5 set" },
+{ "GPSR0_6", 0x40E00018, 6, 0x00000001, 'd', "GPIO 6 set" },
+{ "GPSR0_7", 0x40E00018, 7, 0x00000001, 'd', "GPIO 7 set" },
+{ "GPSR0_8", 0x40E00018, 8, 0x00000001, 'd', "GPIO 8 set" },
+{ "GPSR0_9", 0x40E00018, 9, 0x00000001, 'd', "GPIO 9 set" },
+{ "GPSR0_10", 0x40E00018, 10, 0x00000001, 'd', "GPIO 10 set" },
+{ "GPSR0_11", 0x40E00018, 11, 0x00000001, 'd', "GPIO 11 set" },
+{ "GPSR0_12", 0x40E00018, 12, 0x00000001, 'd', "GPIO 12 set" },
+{ "GPSR0_13", 0x40E00018, 13, 0x00000001, 'd', "GPIO 13 set" },
+{ "GPSR0_14", 0x40E00018, 14, 0x00000001, 'd', "GPIO 14 set" },
+{ "GPSR0_15", 0x40E00018, 15, 0x00000001, 'd', "GPIO 15 set" },
+{ "GPSR0_16", 0x40E00018, 16, 0x00000001, 'd', "GPIO 16 set" },
+{ "GPSR0_17", 0x40E00018, 17, 0x00000001, 'd', "GPIO 17 set" },
+{ "GPSR0_18", 0x40E00018, 18, 0x00000001, 'd', "GPIO 18 set" },
+{ "GPSR0_19", 0x40E00018, 19, 0x00000001, 'd', "GPIO 19 set" },
+{ "GPSR0_20", 0x40E00018, 20, 0x00000001, 'd', "GPIO 20 set" },
+{ "GPSR0_21", 0x40E00018, 21, 0x00000001, 'd', "GPIO 21 set" },
+{ "GPSR0_22", 0x40E00018, 22, 0x00000001, 'd', "GPIO 22 set" },
+{ "GPSR0_23", 0x40E00018, 23, 0x00000001, 'd', "GPIO 23 set" },
+{ "GPSR0_24", 0x40E00018, 24, 0x00000001, 'd', "GPIO 24 set" },
+{ "GPSR0_25", 0x40E00018, 25, 0x00000001, 'd', "GPIO 25 set" },
+{ "GPSR0_26", 0x40E00018, 26, 0x00000001, 'd', "GPIO 26 set" },
+{ "GPSR0_27", 0x40E00018, 27, 0x00000001, 'd', "GPIO 27 set" },
+{ "GPSR0_28", 0x40E00018, 28, 0x00000001, 'd', "GPIO 28 set" },
+{ "GPSR0_29", 0x40E00018, 29, 0x00000001, 'd', "GPIO 29 set" },
+{ "GPSR0_30", 0x40E00018, 30, 0x00000001, 'd', "GPIO 30 set" },
+{ "GPSR0_31", 0x40E00018, 31, 0x00000001, 'd', "GPIO 31 set" },
+
+{ "GPSR1", 0x40E0001C, 0, 0xffffffff, 'x', "GPIO Set Register 1 (4-10)" },
+{ "GPSR1_32", 0x40E0001C, 0, 0x00000001, 'd', "GPIO 32 set" },
+{ "GPSR1_33", 0x40E0001C, 1, 0x00000001, 'd', "GPIO 33 set" },
+{ "GPSR1_34", 0x40E0001C, 2, 0x00000001, 'd', "GPIO 34 set" },
+{ "GPSR1_35", 0x40E0001C, 3, 0x00000001, 'd', "GPIO 35 set" },
+{ "GPSR1_36", 0x40E0001C, 4, 0x00000001, 'd', "GPIO 36 set" },
+{ "GPSR1_37", 0x40E0001C, 5, 0x00000001, 'd', "GPIO 37 set" },
+{ "GPSR1_38", 0x40E0001C, 6, 0x00000001, 'd', "GPIO 38 set" },
+{ "GPSR1_39", 0x40E0001C, 7, 0x00000001, 'd', "GPIO 39 set" },
+{ "GPSR1_40", 0x40E0001C, 8, 0x00000001, 'd', "GPIO 40 set" },
+{ "GPSR1_41", 0x40E0001C, 9, 0x00000001, 'd', "GPIO 41 set" },
+{ "GPSR1_42", 0x40E0001C, 10, 0x00000001, 'd', "GPIO 42 set" },
+{ "GPSR1_43", 0x40E0001C, 11, 0x00000001, 'd', "GPIO 43 set" },
+{ "GPSR1_44", 0x40E0001C, 12, 0x00000001, 'd', "GPIO 44 set" },
+{ "GPSR1_45", 0x40E0001C, 13, 0x00000001, 'd', "GPIO 45 set" },
+{ "GPSR1_46", 0x40E0001C, 14, 0x00000001, 'd', "GPIO 46 set" },
+{ "GPSR1_47", 0x40E0001C, 15, 0x00000001, 'd', "GPIO 47 set" },
+{ "GPSR1_48", 0x40E0001C, 16, 0x00000001, 'd', "GPIO 48 set" },
+{ "GPSR1_49", 0x40E0001C, 17, 0x00000001, 'd', "GPIO 49 set" },
+{ "GPSR1_50", 0x40E0001C, 18, 0x00000001, 'd', "GPIO 50 set" },
+{ "GPSR1_51", 0x40E0001C, 19, 0x00000001, 'd', "GPIO 51 set" },
+{ "GPSR1_52", 0x40E0001C, 20, 0x00000001, 'd', "GPIO 52 set" },
+{ "GPSR1_53", 0x40E0001C, 21, 0x00000001, 'd', "GPIO 53 set" },
+{ "GPSR1_54", 0x40E0001C, 22, 0x00000001, 'd', "GPIO 54 set" },
+{ "GPSR1_55", 0x40E0001C, 23, 0x00000001, 'd', "GPIO 55 set" },
+{ "GPSR1_56", 0x40E0001C, 24, 0x00000001, 'd', "GPIO 56 set" },
+{ "GPSR1_57", 0x40E0001C, 25, 0x00000001, 'd', "GPIO 57 set" },
+{ "GPSR1_58", 0x40E0001C, 26, 0x00000001, 'd', "GPIO 58 set" },
+{ "GPSR1_59", 0x40E0001C, 27, 0x00000001, 'd', "GPIO 59 set" },
+{ "GPSR1_60", 0x40E0001C, 28, 0x00000001, 'd', "GPIO 60 set" },
+{ "GPSR1_61", 0x40E0001C, 29, 0x00000001, 'd', "GPIO 61 set" },
+{ "GPSR1_62", 0x40E0001C, 30, 0x00000001, 'd', "GPIO 62 set" },
+{ "GPSR1_63", 0x40E0001C, 31, 0x00000001, 'd', "GPIO 63 set" },
+
+{ "GPSR2", 0x40E00020, 0, 0xffffffff, 'x', "GPIO Set Register 2 (4-11)" },
+{ "GPSR2_64", 0x40E00020, 0, 0x00000001, 'd', "GPIO 64 set" },
+{ "GPSR2_65", 0x40E00020, 1, 0x00000001, 'd', "GPIO 65 set" },
+{ "GPSR2_66", 0x40E00020, 2, 0x00000001, 'd', "GPIO 66 set" },
+{ "GPSR2_67", 0x40E00020, 3, 0x00000001, 'd', "GPIO 67 set" },
+{ "GPSR2_68", 0x40E00020, 4, 0x00000001, 'd', "GPIO 68 set" },
+{ "GPSR2_69", 0x40E00020, 5, 0x00000001, 'd', "GPIO 69 set" },
+{ "GPSR2_70", 0x40E00020, 6, 0x00000001, 'd', "GPIO 70 set" },
+{ "GPSR2_71", 0x40E00020, 7, 0x00000001, 'd', "GPIO 71 set" },
+{ "GPSR2_72", 0x40E00020, 8, 0x00000001, 'd', "GPIO 72 set" },
+{ "GPSR2_73", 0x40E00020, 9, 0x00000001, 'd', "GPIO 73 set" },
+{ "GPSR2_74", 0x40E00020, 10, 0x00000001, 'd', "GPIO 74 set" },
+{ "GPSR2_75", 0x40E00020, 11, 0x00000001, 'd', "GPIO 75 set" },
+{ "GPSR2_76", 0x40E00020, 12, 0x00000001, 'd', "GPIO 76 set" },
+{ "GPSR2_77", 0x40E00020, 13, 0x00000001, 'd', "GPIO 77 set" },
+{ "GPSR2_78", 0x40E00020, 14, 0x00000001, 'd', "GPIO 78 set" },
+{ "GPSR2_79", 0x40E00020, 15, 0x00000001, 'd', "GPIO 79 set" },
+{ "GPSR2_80", 0x40E00020, 16, 0x00000001, 'd', "GPIO 80 set" },
+{ "GPSR2_81", 0x40E00020, 17, 0x00000001, 'd', "GPIO 81 set" },
+{ "GPSR2_82", 0x40E00020, 18, 0x00000001, 'd', "GPIO 82 set" },
+{ "GPSR2_83", 0x40E00020, 19, 0x00000001, 'd', "GPIO 83 set" },
+{ "GPSR2_84", 0x40E00020, 20, 0x00000001, 'd', "GPIO 84 set" },
+
+{ "GPCR0", 0x40E00024, 0, 0xffffffff, 'x', "GPIO Clear Register 0 (4-11)" },
+{ "GPCR0_0", 0x40E00024, 0, 0x00000001, 'd', "GPIO 0 clear" },
+{ "GPCR0_1", 0x40E00024, 1, 0x00000001, 'd', "GPIO 1 clear" },
+{ "GPCR0_2", 0x40E00024, 2, 0x00000001, 'd', "GPIO 2 clear" },
+{ "GPCR0_3", 0x40E00024, 3, 0x00000001, 'd', "GPIO 3 clear" },
+{ "GPCR0_4", 0x40E00024, 4, 0x00000001, 'd', "GPIO 4 clear" },
+{ "GPCR0_5", 0x40E00024, 5, 0x00000001, 'd', "GPIO 5 clear" },
+{ "GPCR0_6", 0x40E00024, 6, 0x00000001, 'd', "GPIO 6 clear" },
+{ "GPCR0_7", 0x40E00024, 7, 0x00000001, 'd', "GPIO 7 clear" },
+{ "GPCR0_8", 0x40E00024, 8, 0x00000001, 'd', "GPIO 8 clear" },
+{ "GPCR0_9", 0x40E00024, 9, 0x00000001, 'd', "GPIO 9 clear" },
+{ "GPCR0_10", 0x40E00024, 10, 0x00000001, 'd', "GPIO 10 clear" },
+{ "GPCR0_11", 0x40E00024, 11, 0x00000001, 'd', "GPIO 11 clear" },
+{ "GPCR0_12", 0x40E00024, 12, 0x00000001, 'd', "GPIO 12 clear" },
+{ "GPCR0_13", 0x40E00024, 13, 0x00000001, 'd', "GPIO 13 clear" },
+{ "GPCR0_14", 0x40E00024, 14, 0x00000001, 'd', "GPIO 14 clear" },
+{ "GPCR0_15", 0x40E00024, 15, 0x00000001, 'd', "GPIO 15 clear" },
+{ "GPCR0_16", 0x40E00024, 16, 0x00000001, 'd', "GPIO 16 clear" },
+{ "GPCR0_17", 0x40E00024, 17, 0x00000001, 'd', "GPIO 17 clear" },
+{ "GPCR0_18", 0x40E00024, 18, 0x00000001, 'd', "GPIO 18 clear" },
+{ "GPCR0_19", 0x40E00024, 19, 0x00000001, 'd', "GPIO 19 clear" },
+{ "GPCR0_20", 0x40E00024, 20, 0x00000001, 'd', "GPIO 20 clear" },
+{ "GPCR0_21", 0x40E00024, 21, 0x00000001, 'd', "GPIO 21 clear" },
+{ "GPCR0_22", 0x40E00024, 22, 0x00000001, 'd', "GPIO 22 clear" },
+{ "GPCR0_23", 0x40E00024, 23, 0x00000001, 'd', "GPIO 23 clear" },
+{ "GPCR0_24", 0x40E00024, 24, 0x00000001, 'd', "GPIO 24 clear" },
+{ "GPCR0_25", 0x40E00024, 25, 0x00000001, 'd', "GPIO 25 clear" },
+{ "GPCR0_26", 0x40E00024, 26, 0x00000001, 'd', "GPIO 26 clear" },
+{ "GPCR0_27", 0x40E00024, 27, 0x00000001, 'd', "GPIO 27 clear" },
+{ "GPCR0_28", 0x40E00024, 28, 0x00000001, 'd', "GPIO 28 clear" },
+{ "GPCR0_29", 0x40E00024, 29, 0x00000001, 'd', "GPIO 29 clear" },
+{ "GPCR0_30", 0x40E00024, 30, 0x00000001, 'd', "GPIO 30 clear" },
+{ "GPCR0_31", 0x40E00024, 31, 0x00000001, 'd', "GPIO 31 clear" },
+
+{ "GPCR1", 0x40E00028, 0, 0xffffffff, 'x', "GPIO Clear Register 1 (4-11)" },
+{ "GPCR1_32", 0x40E00028, 0, 0x00000001, 'd', "GPIO 32 clear" },
+{ "GPCR1_33", 0x40E00028, 1, 0x00000001, 'd', "GPIO 33 clear" },
+{ "GPCR1_34", 0x40E00028, 2, 0x00000001, 'd', "GPIO 34 clear" },
+{ "GPCR1_35", 0x40E00028, 3, 0x00000001, 'd', "GPIO 35 clear" },
+{ "GPCR1_36", 0x40E00028, 4, 0x00000001, 'd', "GPIO 36 clear" },
+{ "GPCR1_37", 0x40E00028, 5, 0x00000001, 'd', "GPIO 37 clear" },
+{ "GPCR1_38", 0x40E00028, 6, 0x00000001, 'd', "GPIO 38 clear" },
+{ "GPCR1_39", 0x40E00028, 7, 0x00000001, 'd', "GPIO 39 clear" },
+{ "GPCR1_40", 0x40E00028, 8, 0x00000001, 'd', "GPIO 40 clear" },
+{ "GPCR1_41", 0x40E00028, 9, 0x00000001, 'd', "GPIO 41 clear" },
+{ "GPCR1_42", 0x40E00028, 10, 0x00000001, 'd', "GPIO 42 clear" },
+{ "GPCR1_43", 0x40E00028, 11, 0x00000001, 'd', "GPIO 43 clear" },
+{ "GPCR1_44", 0x40E00028, 12, 0x00000001, 'd', "GPIO 44 clear" },
+{ "GPCR1_45", 0x40E00028, 13, 0x00000001, 'd', "GPIO 45 clear" },
+{ "GPCR1_46", 0x40E00028, 14, 0x00000001, 'd', "GPIO 46 clear" },
+{ "GPCR1_47", 0x40E00028, 15, 0x00000001, 'd', "GPIO 47 clear" },
+{ "GPCR1_48", 0x40E00028, 16, 0x00000001, 'd', "GPIO 48 clear" },
+{ "GPCR1_49", 0x40E00028, 17, 0x00000001, 'd', "GPIO 49 clear" },
+{ "GPCR1_50", 0x40E00028, 18, 0x00000001, 'd', "GPIO 50 clear" },
+{ "GPCR1_51", 0x40E00028, 19, 0x00000001, 'd', "GPIO 51 clear" },
+{ "GPCR1_52", 0x40E00028, 20, 0x00000001, 'd', "GPIO 52 clear" },
+{ "GPCR1_53", 0x40E00028, 21, 0x00000001, 'd', "GPIO 53 clear" },
+{ "GPCR1_54", 0x40E00028, 22, 0x00000001, 'd', "GPIO 54 clear" },
+{ "GPCR1_55", 0x40E00028, 23, 0x00000001, 'd', "GPIO 55 clear" },
+{ "GPCR1_56", 0x40E00028, 24, 0x00000001, 'd', "GPIO 56 clear" },
+{ "GPCR1_57", 0x40E00028, 25, 0x00000001, 'd', "GPIO 57 clear" },
+{ "GPCR1_58", 0x40E00028, 26, 0x00000001, 'd', "GPIO 58 clear" },
+{ "GPCR1_59", 0x40E00028, 27, 0x00000001, 'd', "GPIO 59 clear" },
+{ "GPCR1_60", 0x40E00028, 28, 0x00000001, 'd', "GPIO 60 clear" },
+{ "GPCR1_61", 0x40E00028, 29, 0x00000001, 'd', "GPIO 61 clear" },
+{ "GPCR1_62", 0x40E00028, 30, 0x00000001, 'd', "GPIO 62 clear" },
+{ "GPCR1_63", 0x40E00028, 31, 0x00000001, 'd', "GPIO 63 clear" },
+
+{ "GPCR2", 0x40E0002C, 0, 0xffffffff, 'x', "GPIO Clear Register 2 (4-12)" },
+{ "GPCR2_64", 0x40E0002C, 0, 0x00000001, 'd', "GPIO 64 clear" },
+{ "GPCR2_65", 0x40E0002C, 1, 0x00000001, 'd', "GPIO 65 clear" },
+{ "GPCR2_66", 0x40E0002C, 2, 0x00000001, 'd', "GPIO 66 clear" },
+{ "GPCR2_67", 0x40E0002C, 3, 0x00000001, 'd', "GPIO 67 clear" },
+{ "GPCR2_68", 0x40E0002C, 4, 0x00000001, 'd', "GPIO 68 clear" },
+{ "GPCR2_69", 0x40E0002C, 5, 0x00000001, 'd', "GPIO 69 clear" },
+{ "GPCR2_70", 0x40E0002C, 6, 0x00000001, 'd', "GPIO 70 clear" },
+{ "GPCR2_71", 0x40E0002C, 7, 0x00000001, 'd', "GPIO 71 clear" },
+{ "GPCR2_72", 0x40E0002C, 8, 0x00000001, 'd', "GPIO 72 clear" },
+{ "GPCR2_73", 0x40E0002C, 9, 0x00000001, 'd', "GPIO 73 clear" },
+{ "GPCR2_74", 0x40E0002C, 10, 0x00000001, 'd', "GPIO 74 clear" },
+{ "GPCR2_75", 0x40E0002C, 11, 0x00000001, 'd', "GPIO 75 clear" },
+{ "GPCR2_76", 0x40E0002C, 12, 0x00000001, 'd', "GPIO 76 clear" },
+{ "GPCR2_77", 0x40E0002C, 13, 0x00000001, 'd', "GPIO 77 clear" },
+{ "GPCR2_78", 0x40E0002C, 14, 0x00000001, 'd', "GPIO 78 clear" },
+{ "GPCR2_79", 0x40E0002C, 15, 0x00000001, 'd', "GPIO 79 clear" },
+{ "GPCR2_80", 0x40E0002C, 16, 0x00000001, 'd', "GPIO 80 clear" },
+{ "GPCR2_81", 0x40E0002C, 17, 0x00000001, 'd', "GPIO 81 clear" },
+{ "GPCR2_82", 0x40E0002C, 18, 0x00000001, 'd', "GPIO 82 clear" },
+{ "GPCR2_83", 0x40E0002C, 19, 0x00000001, 'd', "GPIO 83 clear" },
+{ "GPCR2_84", 0x40E0002C, 20, 0x00000001, 'd', "GPIO 84 clear" },
+
+{ "GRER0", 0x40E00030, 0, 0xffffffff, 'x', "GPIO Raising Edge Detect Enable Register 0 (4-13)" },
+{ "GRER0_0", 0x40E00030, 0, 0x00000001, 'd', "GPIO 0 raising edge detect enabled" },
+{ "GRER0_1", 0x40E00030, 1, 0x00000001, 'd', "GPIO 1 raising edge detect enabled" },
+{ "GRER0_2", 0x40E00030, 2, 0x00000001, 'd', "GPIO 2 raising edge detect enabled" },
+{ "GRER0_3", 0x40E00030, 3, 0x00000001, 'd', "GPIO 3 raising edge detect enabled" },
+{ "GRER0_4", 0x40E00030, 4, 0x00000001, 'd', "GPIO 4 raising edge detect enabled" },
+{ "GRER0_5", 0x40E00030, 5, 0x00000001, 'd', "GPIO 5 raising edge detect enabled" },
+{ "GRER0_6", 0x40E00030, 6, 0x00000001, 'd', "GPIO 6 raising edge detect enabled" },
+{ "GRER0_7", 0x40E00030, 7, 0x00000001, 'd', "GPIO 7 raising edge detect enabled" },
+{ "GRER0_8", 0x40E00030, 8, 0x00000001, 'd', "GPIO 8 raising edge detect enabled" },
+{ "GRER0_9", 0x40E00030, 9, 0x00000001, 'd', "GPIO 9 raising edge detect enabled" },
+{ "GRER0_10", 0x40E00030, 10, 0x00000001, 'd', "GPIO 10 raising edge detect enabled" },
+{ "GRER0_11", 0x40E00030, 11, 0x00000001, 'd', "GPIO 11 raising edge detect enabled" },
+{ "GRER0_12", 0x40E00030, 12, 0x00000001, 'd', "GPIO 12 raising edge detect enabled" },
+{ "GRER0_13", 0x40E00030, 13, 0x00000001, 'd', "GPIO 13 raising edge detect enabled" },
+{ "GRER0_14", 0x40E00030, 14, 0x00000001, 'd', "GPIO 14 raising edge detect enabled" },
+{ "GRER0_15", 0x40E00030, 15, 0x00000001, 'd', "GPIO 15 raising edge detect enabled" },
+{ "GRER0_16", 0x40E00030, 16, 0x00000001, 'd', "GPIO 16 raising edge detect enabled" },
+{ "GRER0_17", 0x40E00030, 17, 0x00000001, 'd', "GPIO 17 raising edge detect enabled" },
+{ "GRER0_18", 0x40E00030, 18, 0x00000001, 'd', "GPIO 18 raising edge detect enabled" },
+{ "GRER0_19", 0x40E00030, 19, 0x00000001, 'd', "GPIO 19 raising edge detect enabled" },
+{ "GRER0_20", 0x40E00030, 20, 0x00000001, 'd', "GPIO 20 raising edge detect enabled" },
+{ "GRER0_21", 0x40E00030, 21, 0x00000001, 'd', "GPIO 21 raising edge detect enabled" },
+{ "GRER0_22", 0x40E00030, 22, 0x00000001, 'd', "GPIO 22 raising edge detect enabled" },
+{ "GRER0_23", 0x40E00030, 23, 0x00000001, 'd', "GPIO 23 raising edge detect enabled" },
+{ "GRER0_24", 0x40E00030, 24, 0x00000001, 'd', "GPIO 24 raising edge detect enabled" },
+{ "GRER0_25", 0x40E00030, 25, 0x00000001, 'd', "GPIO 25 raising edge detect enabled" },
+{ "GRER0_26", 0x40E00030, 26, 0x00000001, 'd', "GPIO 26 raising edge detect enabled" },
+{ "GRER0_27", 0x40E00030, 27, 0x00000001, 'd', "GPIO 27 raising edge detect enabled" },
+{ "GRER0_28", 0x40E00030, 28, 0x00000001, 'd', "GPIO 28 raising edge detect enabled" },
+{ "GRER0_29", 0x40E00030, 29, 0x00000001, 'd', "GPIO 29 raising edge detect enabled" },
+{ "GRER0_30", 0x40E00030, 30, 0x00000001, 'd', "GPIO 30 raising edge detect enabled" },
+{ "GRER0_31", 0x40E00030, 31, 0x00000001, 'd', "GPIO 31 raising edge detect enabled" },
+
+{ "GRER1", 0x40E00034, 0, 0xffffffff, 'x', "GPIO Raising Edge Detect Enable Register 1 (4-13)" },
+{ "GRER1_32", 0x40E00034, 0, 0x00000001, 'd', "GPIO 32 raising edge detect enabled" },
+{ "GRER1_33", 0x40E00034, 1, 0x00000001, 'd', "GPIO 33 raising edge detect enabled" },
+{ "GRER1_34", 0x40E00034, 2, 0x00000001, 'd', "GPIO 34 raising edge detect enabled" },
+{ "GRER1_35", 0x40E00034, 3, 0x00000001, 'd', "GPIO 35 raising edge detect enabled" },
+{ "GRER1_36", 0x40E00034, 4, 0x00000001, 'd', "GPIO 36 raising edge detect enabled" },
+{ "GRER1_37", 0x40E00034, 5, 0x00000001, 'd', "GPIO 37 raising edge detect enabled" },
+{ "GRER1_38", 0x40E00034, 6, 0x00000001, 'd', "GPIO 38 raising edge detect enabled" },
+{ "GRER1_39", 0x40E00034, 7, 0x00000001, 'd', "GPIO 39 raising edge detect enabled" },
+{ "GRER1_40", 0x40E00034, 8, 0x00000001, 'd', "GPIO 40 raising edge detect enabled" },
+{ "GRER1_41", 0x40E00034, 9, 0x00000001, 'd', "GPIO 41 raising edge detect enabled" },
+{ "GRER1_42", 0x40E00034, 10, 0x00000001, 'd', "GPIO 42 raising edge detect enabled" },
+{ "GRER1_43", 0x40E00034, 11, 0x00000001, 'd', "GPIO 43 raising edge detect enabled" },
+{ "GRER1_44", 0x40E00034, 12, 0x00000001, 'd', "GPIO 44 raising edge detect enabled" },
+{ "GRER1_45", 0x40E00034, 13, 0x00000001, 'd', "GPIO 45 raising edge detect enabled" },
+{ "GRER1_46", 0x40E00034, 14, 0x00000001, 'd', "GPIO 46 raising edge detect enabled" },
+{ "GRER1_47", 0x40E00034, 15, 0x00000001, 'd', "GPIO 47 raising edge detect enabled" },
+{ "GRER1_48", 0x40E00034, 16, 0x00000001, 'd', "GPIO 48 raising edge detect enabled" },
+{ "GRER1_49", 0x40E00034, 17, 0x00000001, 'd', "GPIO 49 raising edge detect enabled" },
+{ "GRER1_50", 0x40E00034, 18, 0x00000001, 'd', "GPIO 50 raising edge detect enabled" },
+{ "GRER1_51", 0x40E00034, 19, 0x00000001, 'd', "GPIO 51 raising edge detect enabled" },
+{ "GRER1_52", 0x40E00034, 20, 0x00000001, 'd', "GPIO 52 raising edge detect enabled" },
+{ "GRER1_53", 0x40E00034, 21, 0x00000001, 'd', "GPIO 53 raising edge detect enabled" },
+{ "GRER1_54", 0x40E00034, 22, 0x00000001, 'd', "GPIO 54 raising edge detect enabled" },
+{ "GRER1_55", 0x40E00034, 23, 0x00000001, 'd', "GPIO 55 raising edge detect enabled" },
+{ "GRER1_56", 0x40E00034, 24, 0x00000001, 'd', "GPIO 56 raising edge detect enabled" },
+{ "GRER1_57", 0x40E00034, 25, 0x00000001, 'd', "GPIO 57 raising edge detect enabled" },
+{ "GRER1_58", 0x40E00034, 26, 0x00000001, 'd', "GPIO 58 raising edge detect enabled" },
+{ "GRER1_59", 0x40E00034, 27, 0x00000001, 'd', "GPIO 59 raising edge detect enabled" },
+{ "GRER1_60", 0x40E00034, 28, 0x00000001, 'd', "GPIO 60 raising edge detect enabled" },
+{ "GRER1_61", 0x40E00034, 29, 0x00000001, 'd', "GPIO 61 raising edge detect enabled" },
+{ "GRER1_62", 0x40E00034, 30, 0x00000001, 'd', "GPIO 62 raising edge detect enabled" },
+{ "GRER1_63", 0x40E00034, 31, 0x00000001, 'd', "GPIO 63 raising edge detect enabled" },
+
+{ "GRER2", 0x40E00038, 0, 0xffffffff, 'x', "GPIO Raising Edge Detect Enable Register 2 (4-13)" },
+{ "GRER2_64", 0x40E00038, 0, 0x00000001, 'd', "GPIO 64 raising edge detect enabled" },
+{ "GRER2_65", 0x40E00038, 1, 0x00000001, 'd', "GPIO 65 raising edge detect enabled" },
+{ "GRER2_66", 0x40E00038, 2, 0x00000001, 'd', "GPIO 66 raising edge detect enabled" },
+{ "GRER2_67", 0x40E00038, 3, 0x00000001, 'd', "GPIO 67 raising edge detect enabled" },
+{ "GRER2_68", 0x40E00038, 4, 0x00000001, 'd', "GPIO 68 raising edge detect enabled" },
+{ "GRER2_69", 0x40E00038, 5, 0x00000001, 'd', "GPIO 69 raising edge detect enabled" },
+{ "GRER2_70", 0x40E00038, 6, 0x00000001, 'd', "GPIO 70 raising edge detect enabled" },
+{ "GRER2_71", 0x40E00038, 7, 0x00000001, 'd', "GPIO 71 raising edge detect enabled" },
+{ "GRER2_72", 0x40E00038, 8, 0x00000001, 'd', "GPIO 72 raising edge detect enabled" },
+{ "GRER2_73", 0x40E00038, 9, 0x00000001, 'd', "GPIO 73 raising edge detect enabled" },
+{ "GRER2_74", 0x40E00038, 10, 0x00000001, 'd', "GPIO 74 raising edge detect enabled" },
+{ "GRER2_75", 0x40E00038, 11, 0x00000001, 'd', "GPIO 75 raising edge detect enabled" },
+{ "GRER2_76", 0x40E00038, 12, 0x00000001, 'd', "GPIO 76 raising edge detect enabled" },
+{ "GRER2_77", 0x40E00038, 13, 0x00000001, 'd', "GPIO 77 raising edge detect enabled" },
+{ "GRER2_78", 0x40E00038, 14, 0x00000001, 'd', "GPIO 78 raising edge detect enabled" },
+{ "GRER2_79", 0x40E00038, 15, 0x00000001, 'd', "GPIO 79 raising edge detect enabled" },
+{ "GRER2_80", 0x40E00038, 16, 0x00000001, 'd', "GPIO 80 raising edge detect enabled" },
+{ "GRER2_81", 0x40E00038, 17, 0x00000001, 'd', "GPIO 81 raising edge detect enabled" },
+{ "GRER2_82", 0x40E00038, 18, 0x00000001, 'd', "GPIO 82 raising edge detect enabled" },
+{ "GRER2_83", 0x40E00038, 19, 0x00000001, 'd', "GPIO 83 raising edge detect enabled" },
+{ "GRER2_84", 0x40E00038, 20, 0x00000001, 'd', "GPIO 84 raising edge detect enabled" },
+
+{ "GFER0", 0x40E0003C, 0, 0xffffffff, 'x', "GPIO Falling Edge Detect Enable Register 0 (4-14)" },
+{ "GFER0_0", 0x40E0003C, 0, 0x00000001, 'd', "GPIO 0 falling edge detect enabled" },
+{ "GFER0_1", 0x40E0003C, 1, 0x00000001, 'd', "GPIO 1 falling edge detect enabled" },
+{ "GFER0_2", 0x40E0003C, 2, 0x00000001, 'd', "GPIO 2 falling edge detect enabled" },
+{ "GFER0_3", 0x40E0003C, 3, 0x00000001, 'd', "GPIO 3 falling edge detect enabled" },
+{ "GFER0_4", 0x40E0003C, 4, 0x00000001, 'd', "GPIO 4 falling edge detect enabled" },
+{ "GFER0_5", 0x40E0003C, 5, 0x00000001, 'd', "GPIO 5 falling edge detect enabled" },
+{ "GFER0_6", 0x40E0003C, 6, 0x00000001, 'd', "GPIO 6 falling edge detect enabled" },
+{ "GFER0_7", 0x40E0003C, 7, 0x00000001, 'd', "GPIO 7 falling edge detect enabled" },
+{ "GFER0_8", 0x40E0003C, 8, 0x00000001, 'd', "GPIO 8 falling edge detect enabled" },
+{ "GFER0_9", 0x40E0003C, 9, 0x00000001, 'd', "GPIO 9 falling edge detect enabled" },
+{ "GFER0_10", 0x40E0003C, 10, 0x00000001, 'd', "GPIO 10 falling edge detect enabled" },
+{ "GFER0_11", 0x40E0003C, 11, 0x00000001, 'd', "GPIO 11 falling edge detect enabled" },
+{ "GFER0_12", 0x40E0003C, 12, 0x00000001, 'd', "GPIO 12 falling edge detect enabled" },
+{ "GFER0_13", 0x40E0003C, 13, 0x00000001, 'd', "GPIO 13 falling edge detect enabled" },
+{ "GFER0_14", 0x40E0003C, 14, 0x00000001, 'd', "GPIO 14 falling edge detect enabled" },
+{ "GFER0_15", 0x40E0003C, 15, 0x00000001, 'd', "GPIO 15 falling edge detect enabled" },
+{ "GFER0_16", 0x40E0003C, 16, 0x00000001, 'd', "GPIO 16 falling edge detect enabled" },
+{ "GFER0_17", 0x40E0003C, 17, 0x00000001, 'd', "GPIO 17 falling edge detect enabled" },
+{ "GFER0_18", 0x40E0003C, 18, 0x00000001, 'd', "GPIO 18 falling edge detect enabled" },
+{ "GFER0_19", 0x40E0003C, 19, 0x00000001, 'd', "GPIO 19 falling edge detect enabled" },
+{ "GFER0_20", 0x40E0003C, 20, 0x00000001, 'd', "GPIO 20 falling edge detect enabled" },
+{ "GFER0_21", 0x40E0003C, 21, 0x00000001, 'd', "GPIO 21 falling edge detect enabled" },
+{ "GFER0_22", 0x40E0003C, 22, 0x00000001, 'd', "GPIO 22 falling edge detect enabled" },
+{ "GFER0_23", 0x40E0003C, 23, 0x00000001, 'd', "GPIO 23 falling edge detect enabled" },
+{ "GFER0_24", 0x40E0003C, 24, 0x00000001, 'd', "GPIO 24 falling edge detect enabled" },
+{ "GFER0_25", 0x40E0003C, 25, 0x00000001, 'd', "GPIO 25 falling edge detect enabled" },
+{ "GFER0_26", 0x40E0003C, 26, 0x00000001, 'd', "GPIO 26 falling edge detect enabled" },
+{ "GFER0_27", 0x40E0003C, 27, 0x00000001, 'd', "GPIO 27 falling edge detect enabled" },
+{ "GFER0_28", 0x40E0003C, 28, 0x00000001, 'd', "GPIO 28 falling edge detect enabled" },
+{ "GFER0_29", 0x40E0003C, 29, 0x00000001, 'd', "GPIO 29 falling edge detect enabled" },
+{ "GFER0_30", 0x40E0003C, 30, 0x00000001, 'd', "GPIO 30 falling edge detect enabled" },
+{ "GFER0_31", 0x40E0003C, 31, 0x00000001, 'd', "GPIO 31 falling edge detect enabled" },
+
+{ "GFER1", 0x40E00040, 0, 0xffffffff, 'x', "GPIO Falling Edge Detect Enable Register 1 (4-14)" },
+{ "GFER1_32", 0x40E00040, 0, 0x00000001, 'd', "GPIO 32 falling edge detect enabled" },
+{ "GFER1_33", 0x40E00040, 1, 0x00000001, 'd', "GPIO 33 falling edge detect enabled" },
+{ "GFER1_34", 0x40E00040, 2, 0x00000001, 'd', "GPIO 34 falling edge detect enabled" },
+{ "GFER1_35", 0x40E00040, 3, 0x00000001, 'd', "GPIO 35 falling edge detect enabled" },
+{ "GFER1_36", 0x40E00040, 4, 0x00000001, 'd', "GPIO 36 falling edge detect enabled" },
+{ "GFER1_37", 0x40E00040, 5, 0x00000001, 'd', "GPIO 37 falling edge detect enabled" },
+{ "GFER1_38", 0x40E00040, 6, 0x00000001, 'd', "GPIO 38 falling edge detect enabled" },
+{ "GFER1_39", 0x40E00040, 7, 0x00000001, 'd', "GPIO 39 falling edge detect enabled" },
+{ "GFER1_40", 0x40E00040, 8, 0x00000001, 'd', "GPIO 40 falling edge detect enabled" },
+{ "GFER1_41", 0x40E00040, 9, 0x00000001, 'd', "GPIO 41 falling edge detect enabled" },
+{ "GFER1_42", 0x40E00040, 10, 0x00000001, 'd', "GPIO 42 falling edge detect enabled" },
+{ "GFER1_43", 0x40E00040, 11, 0x00000001, 'd', "GPIO 43 falling edge detect enabled" },
+{ "GFER1_44", 0x40E00040, 12, 0x00000001, 'd', "GPIO 44 falling edge detect enabled" },
+{ "GFER1_45", 0x40E00040, 13, 0x00000001, 'd', "GPIO 45 falling edge detect enabled" },
+{ "GFER1_46", 0x40E00040, 14, 0x00000001, 'd', "GPIO 46 falling edge detect enabled" },
+{ "GFER1_47", 0x40E00040, 15, 0x00000001, 'd', "GPIO 47 falling edge detect enabled" },
+{ "GFER1_48", 0x40E00040, 16, 0x00000001, 'd', "GPIO 48 falling edge detect enabled" },
+{ "GFER1_49", 0x40E00040, 17, 0x00000001, 'd', "GPIO 49 falling edge detect enabled" },
+{ "GFER1_50", 0x40E00040, 18, 0x00000001, 'd', "GPIO 50 falling edge detect enabled" },
+{ "GFER1_51", 0x40E00040, 19, 0x00000001, 'd', "GPIO 51 falling edge detect enabled" },
+{ "GFER1_52", 0x40E00040, 20, 0x00000001, 'd', "GPIO 52 falling edge detect enabled" },
+{ "GFER1_53", 0x40E00040, 21, 0x00000001, 'd', "GPIO 53 falling edge detect enabled" },
+{ "GFER1_54", 0x40E00040, 22, 0x00000001, 'd', "GPIO 54 falling edge detect enabled" },
+{ "GFER1_55", 0x40E00040, 23, 0x00000001, 'd', "GPIO 55 falling edge detect enabled" },
+{ "GFER1_56", 0x40E00040, 24, 0x00000001, 'd', "GPIO 56 falling edge detect enabled" },
+{ "GFER1_57", 0x40E00040, 25, 0x00000001, 'd', "GPIO 57 falling edge detect enabled" },
+{ "GFER1_58", 0x40E00040, 26, 0x00000001, 'd', "GPIO 58 falling edge detect enabled" },
+{ "GFER1_59", 0x40E00040, 27, 0x00000001, 'd', "GPIO 59 falling edge detect enabled" },
+{ "GFER1_60", 0x40E00040, 28, 0x00000001, 'd', "GPIO 60 falling edge detect enabled" },
+{ "GFER1_61", 0x40E00040, 29, 0x00000001, 'd', "GPIO 61 falling edge detect enabled" },
+{ "GFER1_62", 0x40E00040, 30, 0x00000001, 'd', "GPIO 62 falling edge detect enabled" },
+{ "GFER1_63", 0x40E00040, 31, 0x00000001, 'd', "GPIO 63 falling edge detect enabled" },
+
+{ "GFER2", 0x40E00044, 0, 0xffffffff, 'x', "GPIO Falling Edge Detect Enable Register 2 (4-14)" },
+{ "GFER2_64", 0x40E00044, 0, 0x00000001, 'd', "GPIO 64 falling edge detect enabled" },
+{ "GFER2_65", 0x40E00044, 1, 0x00000001, 'd', "GPIO 65 falling edge detect enabled" },
+{ "GFER2_66", 0x40E00044, 2, 0x00000001, 'd', "GPIO 66 falling edge detect enabled" },
+{ "GFER2_67", 0x40E00044, 3, 0x00000001, 'd', "GPIO 67 falling edge detect enabled" },
+{ "GFER2_68", 0x40E00044, 4, 0x00000001, 'd', "GPIO 68 falling edge detect enabled" },
+{ "GFER2_69", 0x40E00044, 5, 0x00000001, 'd', "GPIO 69 falling edge detect enabled" },
+{ "GFER2_70", 0x40E00044, 6, 0x00000001, 'd', "GPIO 70 falling edge detect enabled" },
+{ "GFER2_71", 0x40E00044, 7, 0x00000001, 'd', "GPIO 71 falling edge detect enabled" },
+{ "GFER2_72", 0x40E00044, 8, 0x00000001, 'd', "GPIO 72 falling edge detect enabled" },
+{ "GFER2_73", 0x40E00044, 9, 0x00000001, 'd', "GPIO 73 falling edge detect enabled" },
+{ "GFER2_74", 0x40E00044, 10, 0x00000001, 'd', "GPIO 74 falling edge detect enabled" },
+{ "GFER2_75", 0x40E00044, 11, 0x00000001, 'd', "GPIO 75 falling edge detect enabled" },
+{ "GFER2_76", 0x40E00044, 12, 0x00000001, 'd', "GPIO 76 falling edge detect enabled" },
+{ "GFER2_77", 0x40E00044, 13, 0x00000001, 'd', "GPIO 77 falling edge detect enabled" },
+{ "GFER2_78", 0x40E00044, 14, 0x00000001, 'd', "GPIO 78 falling edge detect enabled" },
+{ "GFER2_79", 0x40E00044, 15, 0x00000001, 'd', "GPIO 79 falling edge detect enabled" },
+{ "GFER2_80", 0x40E00044, 16, 0x00000001, 'd', "GPIO 80 falling edge detect enabled" },
+{ "GFER2_81", 0x40E00044, 17, 0x00000001, 'd', "GPIO 81 falling edge detect enabled" },
+{ "GFER2_82", 0x40E00044, 18, 0x00000001, 'd', "GPIO 82 falling edge detect enabled" },
+{ "GFER2_83", 0x40E00044, 19, 0x00000001, 'd', "GPIO 83 falling edge detect enabled" },
+{ "GFER2_84", 0x40E00044, 20, 0x00000001, 'd', "GPIO 84 falling edge detect enabled" },
+
+{ "GEDR0", 0x40E00048, 0, 0xffffffff, 'x', "GPIO Edge Detect Register 0 (4-15)" },
+{ "GEDR0_0", 0x40E00048, 0, 0x00000001, 'd', "GPIO 0 edge detected" },
+{ "GEDR0_1", 0x40E00048, 1, 0x00000001, 'd', "GPIO 1 edge detected" },
+{ "GEDR0_2", 0x40E00048, 2, 0x00000001, 'd', "GPIO 2 edge detected" },
+{ "GEDR0_3", 0x40E00048, 3, 0x00000001, 'd', "GPIO 3 edge detected" },
+{ "GEDR0_4", 0x40E00048, 4, 0x00000001, 'd', "GPIO 4 edge detected" },
+{ "GEDR0_5", 0x40E00048, 5, 0x00000001, 'd', "GPIO 5 edge detected" },
+{ "GEDR0_6", 0x40E00048, 6, 0x00000001, 'd', "GPIO 6 edge detected" },
+{ "GEDR0_7", 0x40E00048, 7, 0x00000001, 'd', "GPIO 7 edge detected" },
+{ "GEDR0_8", 0x40E00048, 8, 0x00000001, 'd', "GPIO 8 edge detected" },
+{ "GEDR0_9", 0x40E00048, 9, 0x00000001, 'd', "GPIO 9 edge detected" },
+{ "GEDR0_10", 0x40E00048, 10, 0x00000001, 'd', "GPIO 10 edge detected" },
+{ "GEDR0_11", 0x40E00048, 11, 0x00000001, 'd', "GPIO 11 edge detected" },
+{ "GEDR0_12", 0x40E00048, 12, 0x00000001, 'd', "GPIO 12 edge detected" },
+{ "GEDR0_13", 0x40E00048, 13, 0x00000001, 'd', "GPIO 13 edge detected" },
+{ "GEDR0_14", 0x40E00048, 14, 0x00000001, 'd', "GPIO 14 edge detected" },
+{ "GEDR0_15", 0x40E00048, 15, 0x00000001, 'd', "GPIO 15 edge detected" },
+{ "GEDR0_16", 0x40E00048, 16, 0x00000001, 'd', "GPIO 16 edge detected" },
+{ "GEDR0_17", 0x40E00048, 17, 0x00000001, 'd', "GPIO 17 edge detected" },
+{ "GEDR0_18", 0x40E00048, 18, 0x00000001, 'd', "GPIO 18 edge detected" },
+{ "GEDR0_19", 0x40E00048, 19, 0x00000001, 'd', "GPIO 19 edge detected" },
+{ "GEDR0_20", 0x40E00048, 20, 0x00000001, 'd', "GPIO 20 edge detected" },
+{ "GEDR0_21", 0x40E00048, 21, 0x00000001, 'd', "GPIO 21 edge detected" },
+{ "GEDR0_22", 0x40E00048, 22, 0x00000001, 'd', "GPIO 22 edge detected" },
+{ "GEDR0_23", 0x40E00048, 23, 0x00000001, 'd', "GPIO 23 edge detected" },
+{ "GEDR0_24", 0x40E00048, 24, 0x00000001, 'd', "GPIO 24 edge detected" },
+{ "GEDR0_25", 0x40E00048, 25, 0x00000001, 'd', "GPIO 25 edge detected" },
+{ "GEDR0_26", 0x40E00048, 26, 0x00000001, 'd', "GPIO 26 edge detected" },
+{ "GEDR0_27", 0x40E00048, 27, 0x00000001, 'd', "GPIO 27 edge detected" },
+{ "GEDR0_28", 0x40E00048, 28, 0x00000001, 'd', "GPIO 28 edge detected" },
+{ "GEDR0_29", 0x40E00048, 29, 0x00000001, 'd', "GPIO 29 edge detected" },
+{ "GEDR0_30", 0x40E00048, 30, 0x00000001, 'd', "GPIO 30 edge detected" },
+{ "GEDR0_31", 0x40E00048, 31, 0x00000001, 'd', "GPIO 31 edge detected" },
+
+{ "GEDR1", 0x40E0004C, 0, 0xffffffff, 'x', "GPIO Edge Detect Register 1 (4-16)" },
+{ "GEDR1_32", 0x40E0004C, 0, 0x00000001, 'd', "GPIO 32 edge detected" },
+{ "GEDR1_33", 0x40E0004C, 1, 0x00000001, 'd', "GPIO 33 edge detected" },
+{ "GEDR1_34", 0x40E0004C, 2, 0x00000001, 'd', "GPIO 34 edge detected" },
+{ "GEDR1_35", 0x40E0004C, 3, 0x00000001, 'd', "GPIO 35 edge detected" },
+{ "GEDR1_36", 0x40E0004C, 4, 0x00000001, 'd', "GPIO 36 edge detected" },
+{ "GEDR1_37", 0x40E0004C, 5, 0x00000001, 'd', "GPIO 37 edge detected" },
+{ "GEDR1_38", 0x40E0004C, 6, 0x00000001, 'd', "GPIO 38 edge detected" },
+{ "GEDR1_39", 0x40E0004C, 7, 0x00000001, 'd', "GPIO 39 edge detected" },
+{ "GEDR1_40", 0x40E0004C, 8, 0x00000001, 'd', "GPIO 40 edge detected" },
+{ "GEDR1_41", 0x40E0004C, 9, 0x00000001, 'd', "GPIO 41 edge detected" },
+{ "GEDR1_42", 0x40E0004C, 10, 0x00000001, 'd', "GPIO 42 edge detected" },
+{ "GEDR1_43", 0x40E0004C, 11, 0x00000001, 'd', "GPIO 43 edge detected" },
+{ "GEDR1_44", 0x40E0004C, 12, 0x00000001, 'd', "GPIO 44 edge detected" },
+{ "GEDR1_45", 0x40E0004C, 13, 0x00000001, 'd', "GPIO 45 edge detected" },
+{ "GEDR1_46", 0x40E0004C, 14, 0x00000001, 'd', "GPIO 46 edge detected" },
+{ "GEDR1_47", 0x40E0004C, 15, 0x00000001, 'd', "GPIO 47 edge detected" },
+{ "GEDR1_48", 0x40E0004C, 16, 0x00000001, 'd', "GPIO 48 edge detected" },
+{ "GEDR1_49", 0x40E0004C, 17, 0x00000001, 'd', "GPIO 49 edge detected" },
+{ "GEDR1_50", 0x40E0004C, 18, 0x00000001, 'd', "GPIO 50 edge detected" },
+{ "GEDR1_51", 0x40E0004C, 19, 0x00000001, 'd', "GPIO 51 edge detected" },
+{ "GEDR1_52", 0x40E0004C, 20, 0x00000001, 'd', "GPIO 52 edge detected" },
+{ "GEDR1_53", 0x40E0004C, 21, 0x00000001, 'd', "GPIO 53 edge detected" },
+{ "GEDR1_54", 0x40E0004C, 22, 0x00000001, 'd', "GPIO 54 edge detected" },
+{ "GEDR1_55", 0x40E0004C, 23, 0x00000001, 'd', "GPIO 55 edge detected" },
+{ "GEDR1_56", 0x40E0004C, 24, 0x00000001, 'd', "GPIO 56 edge detected" },
+{ "GEDR1_57", 0x40E0004C, 25, 0x00000001, 'd', "GPIO 57 edge detected" },
+{ "GEDR1_58", 0x40E0004C, 26, 0x00000001, 'd', "GPIO 58 edge detected" },
+{ "GEDR1_59", 0x40E0004C, 27, 0x00000001, 'd', "GPIO 59 edge detected" },
+{ "GEDR1_60", 0x40E0004C, 28, 0x00000001, 'd', "GPIO 60 edge detected" },
+{ "GEDR1_61", 0x40E0004C, 29, 0x00000001, 'd', "GPIO 61 edge detected" },
+{ "GEDR1_62", 0x40E0004C, 30, 0x00000001, 'd', "GPIO 62 edge detected" },
+{ "GEDR1_63", 0x40E0004C, 31, 0x00000001, 'd', "GPIO 63 edge detected" },
+
+{ "GEDR2", 0x40E00050, 0, 0xffffffff, 'x', "GPIO Edge Detect Register 2 (4-16)" },
+{ "GEDR2_64", 0x40E00050, 0, 0x00000001, 'd', "GPIO 64 edge detected" },
+{ "GEDR2_65", 0x40E00050, 1, 0x00000001, 'd', "GPIO 65 edge detected" },
+{ "GEDR2_66", 0x40E00050, 2, 0x00000001, 'd', "GPIO 66 edge detected" },
+{ "GEDR2_67", 0x40E00050, 3, 0x00000001, 'd', "GPIO 67 edge detected" },
+{ "GEDR2_68", 0x40E00050, 4, 0x00000001, 'd', "GPIO 68 edge detected" },
+{ "GEDR2_69", 0x40E00050, 5, 0x00000001, 'd', "GPIO 69 edge detected" },
+{ "GEDR2_70", 0x40E00050, 6, 0x00000001, 'd', "GPIO 70 edge detected" },
+{ "GEDR2_71", 0x40E00050, 7, 0x00000001, 'd', "GPIO 71 edge detected" },
+{ "GEDR2_72", 0x40E00050, 8, 0x00000001, 'd', "GPIO 72 edge detected" },
+{ "GEDR2_73", 0x40E00050, 9, 0x00000001, 'd', "GPIO 73 edge detected" },
+{ "GEDR2_74", 0x40E00050, 10, 0x00000001, 'd', "GPIO 74 edge detected" },
+{ "GEDR2_75", 0x40E00050, 11, 0x00000001, 'd', "GPIO 75 edge detected" },
+{ "GEDR2_76", 0x40E00050, 12, 0x00000001, 'd', "GPIO 76 edge detected" },
+{ "GEDR2_77", 0x40E00050, 13, 0x00000001, 'd', "GPIO 77 edge detected" },
+{ "GEDR2_78", 0x40E00050, 14, 0x00000001, 'd', "GPIO 78 edge detected" },
+{ "GEDR2_79", 0x40E00050, 15, 0x00000001, 'd', "GPIO 79 edge detected" },
+{ "GEDR2_80", 0x40E00050, 16, 0x00000001, 'd', "GPIO 80 edge detected" },
+{ "GEDR2_81", 0x40E00050, 17, 0x00000001, 'd', "GPIO 81 edge detected" },
+{ "GEDR2_82", 0x40E00050, 18, 0x00000001, 'd', "GPIO 82 edge detected" },
+{ "GEDR2_83", 0x40E00050, 19, 0x00000001, 'd', "GPIO 83 edge detected" },
+{ "GEDR2_84", 0x40E00050, 20, 0x00000001, 'd', "GPIO 84 edge detected" },
+
+{ "GAFR0L", 0x40E00054, 0, 0xffffffff, 'x', "GPIO Alternate Function Register 0 Lower (4-17)" },
+{ "GAFR0L_0", 0x40E00054, 0, 0x00000003, 'x', "GPIO 0 alternate function select" },
+{ "GAFR0L_1", 0x40E00054, 2, 0x00000003, 'x', "GPIO 1 alternate function select" },
+{ "GAFR0L_2", 0x40E00054, 4, 0x00000003, 'x', "GPIO 2 alternate function select" },
+{ "GAFR0L_3", 0x40E00054, 6, 0x00000003, 'x', "GPIO 3 alternate function select" },
+{ "GAFR0L_4", 0x40E00054, 8, 0x00000003, 'x', "GPIO 4 alternate function select" },
+{ "GAFR0L_5", 0x40E00054, 10, 0x00000003, 'x', "GPIO 5 alternate function select" },
+{ "GAFR0L_6", 0x40E00054, 12, 0x00000003, 'x', "GPIO 6 alternate function select" },
+{ "GAFR0L_7", 0x40E00054, 14, 0x00000003, 'x', "GPIO 7 alternate function select" },
+{ "GAFR0L_8", 0x40E00054, 16, 0x00000003, 'x', "GPIO 8 alternate function select" },
+{ "GAFR0L_9", 0x40E00054, 18, 0x00000003, 'x', "GPIO 9 alternate function select" },
+{ "GAFR0L_10", 0x40E00054, 20, 0x00000003, 'x', "GPIO 10 alternate function select" },
+{ "GAFR0L_11", 0x40E00054, 22, 0x00000003, 'x', "GPIO 11 alternate function select" },
+{ "GAFR0L_12", 0x40E00054, 24, 0x00000003, 'x', "GPIO 12 alternate function select" },
+{ "GAFR0L_13", 0x40E00054, 26, 0x00000003, 'x', "GPIO 13 alternate function select" },
+{ "GAFR0L_14", 0x40E00054, 28, 0x00000003, 'x', "GPIO 14 alternate function select" },
+{ "GAFR0L_15", 0x40E00054, 30, 0x00000003, 'x', "GPIO 15 alternate function select" },
+
+{ "GAFR0U", 0x40E00058, 0, 0xffffffff, 'x', "GPIO Alternate Function Register 0 Upper (4-18)" },
+{ "GAFR0U_16", 0x40E00058, 0, 0x00000003, 'x', "GPIO 16 alternate function select" },
+{ "GAFR0U_17", 0x40E00058, 2, 0x00000003, 'x', "GPIO 17 alternate function select" },
+{ "GAFR0U_18", 0x40E00058, 4, 0x00000003, 'x', "GPIO 18 alternate function select" },
+{ "GAFR0U_19", 0x40E00058, 6, 0x00000003, 'x', "GPIO 19 alternate function select" },
+{ "GAFR0U_20", 0x40E00058, 8, 0x00000003, 'x', "GPIO 20 alternate function select" },
+{ "GAFR0U_21", 0x40E00058, 10, 0x00000003, 'x', "GPIO 21 alternate function select" },
+{ "GAFR0U_22", 0x40E00058, 12, 0x00000003, 'x', "GPIO 22 alternate function select" },
+{ "GAFR0U_23", 0x40E00058, 14, 0x00000003, 'x', "GPIO 23 alternate function select" },
+{ "GAFR0U_24", 0x40E00058, 16, 0x00000003, 'x', "GPIO 24 alternate function select" },
+{ "GAFR0U_25", 0x40E00058, 18, 0x00000003, 'x', "GPIO 25 alternate function select" },
+{ "GAFR0U_26", 0x40E00058, 20, 0x00000003, 'x', "GPIO 26 alternate function select" },
+{ "GAFR0U_27", 0x40E00058, 22, 0x00000003, 'x', "GPIO 27 alternate function select" },
+{ "GAFR0U_28", 0x40E00058, 24, 0x00000003, 'x', "GPIO 28 alternate function select" },
+{ "GAFR0U_29", 0x40E00058, 26, 0x00000003, 'x', "GPIO 29 alternate function select" },
+{ "GAFR0U_30", 0x40E00058, 28, 0x00000003, 'x', "GPIO 30 alternate function select" },
+{ "GAFR0U_31", 0x40E00058, 30, 0x00000003, 'x', "GPIO 31 alternate function select" },
+
+{ "GAFR1L", 0x40E0005C, 0, 0xffffffff, 'x', "GPIO Alternate Function Register 1 Lower (4-18)" },
+{ "GAFR1L_32", 0x40E0005C, 0, 0x00000003, 'x', "GPIO 32 alternate function select" },
+{ "GAFR1L_33", 0x40E0005C, 2, 0x00000003, 'x', "GPIO 33 alternate function select" },
+{ "GAFR1L_34", 0x40E0005C, 4, 0x00000003, 'x', "GPIO 34 alternate function select" },
+{ "GAFR1L_35", 0x40E0005C, 6, 0x00000003, 'x', "GPIO 35 alternate function select" },
+{ "GAFR1L_36", 0x40E0005C, 8, 0x00000003, 'x', "GPIO 36 alternate function select" },
+{ "GAFR1L_37", 0x40E0005C, 10, 0x00000003, 'x', "GPIO 37 alternate function select" },
+{ "GAFR1L_38", 0x40E0005C, 12, 0x00000003, 'x', "GPIO 38 alternate function select" },
+{ "GAFR1L_39", 0x40E0005C, 14, 0x00000003, 'x', "GPIO 39 alternate function select" },
+{ "GAFR1L_40", 0x40E0005C, 16, 0x00000003, 'x', "GPIO 40 alternate function select" },
+{ "GAFR1L_41", 0x40E0005C, 18, 0x00000003, 'x', "GPIO 41 alternate function select" },
+{ "GAFR1L_42", 0x40E0005C, 20, 0x00000003, 'x', "GPIO 42 alternate function select" },
+{ "GAFR1L_43", 0x40E0005C, 22, 0x00000003, 'x', "GPIO 43 alternate function select" },
+{ "GAFR1L_44", 0x40E0005C, 24, 0x00000003, 'x', "GPIO 44 alternate function select" },
+{ "GAFR1L_45", 0x40E0005C, 26, 0x00000003, 'x', "GPIO 45 alternate function select" },
+{ "GAFR1L_46", 0x40E0005C, 28, 0x00000003, 'x', "GPIO 46 alternate function select" },
+{ "GAFR1L_47", 0x40E0005C, 30, 0x00000003, 'x', "GPIO 47 alternate function select" },
+
+{ "GAFR1U", 0x40E00060, 0, 0xffffffff, 'x', "GPIO Alternate Function Register 1 Upper (4-19)" },
+{ "GAFR1U_48", 0x40E00060, 0, 0x00000003, 'x', "GPIO 48 alternate function select" },
+{ "GAFR1U_49", 0x40E00060, 2, 0x00000003, 'x', "GPIO 49 alternate function select" },
+{ "GAFR1U_50", 0x40E00060, 4, 0x00000003, 'x', "GPIO 50 alternate function select" },
+{ "GAFR1U_51", 0x40E00060, 6, 0x00000003, 'x', "GPIO 51 alternate function select" },
+{ "GAFR1U_52", 0x40E00060, 8, 0x00000003, 'x', "GPIO 52 alternate function select" },
+{ "GAFR1U_53", 0x40E00060, 10, 0x00000003, 'x', "GPIO 53 alternate function select" },
+{ "GAFR1U_54", 0x40E00060, 12, 0x00000003, 'x', "GPIO 54 alternate function select" },
+{ "GAFR1U_55", 0x40E00060, 14, 0x00000003, 'x', "GPIO 55 alternate function select" },
+{ "GAFR1U_56", 0x40E00060, 16, 0x00000003, 'x', "GPIO 56 alternate function select" },
+{ "GAFR1U_57", 0x40E00060, 18, 0x00000003, 'x', "GPIO 57 alternate function select" },
+{ "GAFR1U_58", 0x40E00060, 20, 0x00000003, 'x', "GPIO 58 alternate function select" },
+{ "GAFR1U_59", 0x40E00060, 22, 0x00000003, 'x', "GPIO 59 alternate function select" },
+{ "GAFR1U_60", 0x40E00060, 24, 0x00000003, 'x', "GPIO 60 alternate function select" },
+{ "GAFR1U_61", 0x40E00060, 26, 0x00000003, 'x', "GPIO 61 alternate function select" },
+{ "GAFR1U_62", 0x40E00060, 28, 0x00000003, 'x', "GPIO 62 alternate function select" },
+{ "GAFR1U_63", 0x40E00060, 30, 0x00000003, 'x', "GPIO 63 alternate function select" },
+
+{ "GAFR2L", 0x40E00064, 0, 0xffffffff, 'x', "GPIO Alternate Function Register 2 Lower (4-19)" },
+{ "GAFR2L_64", 0x40E00064, 0, 0x00000003, 'x', "GPIO 64 alternate function select" },
+{ "GAFR2L_65", 0x40E00064, 2, 0x00000003, 'x', "GPIO 65 alternate function select" },
+{ "GAFR2L_66", 0x40E00064, 4, 0x00000003, 'x', "GPIO 66 alternate function select" },
+{ "GAFR2L_67", 0x40E00064, 6, 0x00000003, 'x', "GPIO 67 alternate function select" },
+{ "GAFR2L_68", 0x40E00064, 8, 0x00000003, 'x', "GPIO 68 alternate function select" },
+{ "GAFR2L_69", 0x40E00064, 10, 0x00000003, 'x', "GPIO 69 alternate function select" },
+{ "GAFR2L_70", 0x40E00064, 12, 0x00000003, 'x', "GPIO 70 alternate function select" },
+{ "GAFR2L_71", 0x40E00064, 14, 0x00000003, 'x', "GPIO 71 alternate function select" },
+{ "GAFR2L_72", 0x40E00064, 16, 0x00000003, 'x', "GPIO 72 alternate function select" },
+{ "GAFR2L_73", 0x40E00064, 18, 0x00000003, 'x', "GPIO 73 alternate function select" },
+{ "GAFR2L_74", 0x40E00064, 20, 0x00000003, 'x', "GPIO 74 alternate function select" },
+{ "GAFR2L_75", 0x40E00064, 22, 0x00000003, 'x', "GPIO 75 alternate function select" },
+{ "GAFR2L_76", 0x40E00064, 24, 0x00000003, 'x', "GPIO 76 alternate function select" },
+{ "GAFR2L_77", 0x40E00064, 26, 0x00000003, 'x', "GPIO 77 alternate function select" },
+{ "GAFR2L_78", 0x40E00064, 28, 0x00000003, 'x', "GPIO 78 alternate function select" },
+{ "GAFR2L_79", 0x40E00064, 30, 0x00000003, 'x', "GPIO 79 alternate function select" },
+
+{ "GAFR2U", 0x40E00068, 0, 0xffffffff, 'x', "GPIO Alternate Function Register 2 Upper (4-19)" },
+{ "GAFR2U_80", 0x40E00068, 0, 0x00000003, 'x', "GPIO 80 alternate function select" },
+{ "GAFR2U_81", 0x40E00068, 2, 0x00000003, 'x', "GPIO 81 alternate function select" },
+{ "GAFR2U_82", 0x40E00068, 4, 0x00000003, 'x', "GPIO 82 alternate function select" },
+{ "GAFR2U_83", 0x40E00068, 6, 0x00000003, 'x', "GPIO 83 alternate function select" },
+{ "GAFR2U_84", 0x40E00068, 8, 0x00000003, 'x', "GPIO 84 alternate function select" },
+
+{ "ICMR", 0x40D00004, 0, 0xffffffff, 'x', "Interrupt Controller Mask Register (4-22)" },
+{ "ICMR_IM7", 0x40D00004, 7, 0x00000001, 'x', "Pending IRQ 7 (HWUART) unmasked?" },
+{ "ICMR_IM8", 0x40D00004, 8, 0x00000001, 'x', "Pending IRQ 8 (GPIO0) unmasked" },
+{ "ICMR_IM9", 0x40D00004, 9, 0x00000001, 'x', "Pending IRQ 9 (GPIO1) unmasked" },
+{ "ICMR_IM10", 0x40D00004, 10, 0x00000001, 'x', "Pending IRQ 10 (GPIO2_80) unmasked" },
+{ "ICMR_IM11", 0x40D00004, 11, 0x00000001, 'x', "Pending IRQ 11 (USB) unmasked" },
+{ "ICMR_IM12", 0x40D00004, 12, 0x00000001, 'x', "Pending IRQ 12 (PMU) unmasked" },
+{ "ICMR_IM13", 0x40D00004, 13, 0x00000001, 'x', "Pending IRQ 13 (I2S) unmasked" },
+{ "ICMR_IM14", 0x40D00004, 14, 0x00000001, 'x', "Pending IRQ 14 (AC97) unmasked" },
+{ "ICMR_IM17", 0x40D00004, 17, 0x00000001, 'x', "Pending IRQ 17 (LCD) unmasked" },
+{ "ICMR_IM18", 0x40D00004, 18, 0x00000001, 'x', "Pending IRQ 18 (I2C) unmasked" },
+{ "ICMR_IM19", 0x40D00004, 19, 0x00000001, 'x', "Pending IRQ 19 (ICP) unmasked" },
+{ "ICMR_IM20", 0x40D00004, 20, 0x00000001, 'x', "Pending IRQ 20 (STUART) unmasked" },
+{ "ICMR_IM21", 0x40D00004, 21, 0x00000001, 'x', "Pending IRQ 21 (BTUART) unmasked" },
+{ "ICMR_IM22", 0x40D00004, 22, 0x00000001, 'x', "Pending IRQ 22 (FFUART) unmasked" },
+{ "ICMR_IM23", 0x40D00004, 23, 0x00000001, 'x', "Pending IRQ 23 (MMC) unmasked" },
+{ "ICMR_IM24", 0x40D00004, 24, 0x00000001, 'x', "Pending IRQ 24 (SSP) unmasked" },
+{ "ICMR_IM25", 0x40D00004, 25, 0x00000001, 'x', "Pending IRQ 25 (DMA) unmasked" },
+{ "ICMR_IM26", 0x40D00004, 26, 0x00000001, 'x', "Pending IRQ 26 (OSMR0) unmasked" },
+{ "ICMR_IM27", 0x40D00004, 27, 0x00000001, 'x', "Pending IRQ 27 (OSMR1) unmasked" },
+{ "ICMR_IM28", 0x40D00004, 28, 0x00000001, 'x', "Pending IRQ 28 (OSMR2) unmasked" },
+{ "ICMR_IM29", 0x40D00004, 29, 0x00000001, 'x', "Pending IRQ 29 (OSMR3) unmasked" },
+{ "ICMR_IM30", 0x40D00004, 30, 0x00000001, 'x', "Pending IRQ 30 (RTCCLK) unmasked" },
+{ "ICMR_IM31", 0x40D00004, 31, 0x00000001, 'x', "Pending IRQ 31 (RTCALM) unmasked" },
+
+{ "ICLR", 0x40D00008, 0, 0xffffffff, 'x', "Interrupt Controller Level Register (4-23)" },
+{ "ICLR_IL7", 0x40D00008, 7, 0x00000001, 'x', "IRQ 8 (HWUART) generates FIQ?" },
+{ "ICLR_IL8", 0x40D00008, 8, 0x00000001, 'x', "IRQ 8 (GPIO0) generates FIQ" },
+{ "ICLR_IL9", 0x40D00008, 9, 0x00000001, 'x', "IRQ 9 (GPIO1) generates FIQ" },
+{ "ICLR_IL10", 0x40D00008, 10, 0x00000001, 'x', "IRQ 10 (GPIO2_80) generates FIQ" },
+{ "ICLR_IL11", 0x40D00008, 11, 0x00000001, 'x', "IRQ 11 (USB) generates FIQ" },
+{ "ICLR_IL12", 0x40D00008, 12, 0x00000001, 'x', "IRQ 12 (PMU) generates FIQ" },
+{ "ICLR_IL13", 0x40D00008, 13, 0x00000001, 'x', "IRQ 13 (I2S) generates FIQ" },
+{ "ICLR_IL14", 0x40D00008, 14, 0x00000001, 'x', "IRQ 14 (AC97) generates FIQ" },
+{ "ICLR_IL17", 0x40D00008, 17, 0x00000001, 'x', "IRQ 17 (LCD) generates FIQ" },
+{ "ICLR_IL18", 0x40D00008, 18, 0x00000001, 'x', "IRQ 18 (I2C) generates FIQ" },
+{ "ICLR_IL19", 0x40D00008, 19, 0x00000001, 'x', "IRQ 19 (ICP) generates FIQ" },
+{ "ICLR_IL20", 0x40D00008, 20, 0x00000001, 'x', "IRQ 10 (STUART) generates FIQ" },
+{ "ICLR_IL21", 0x40D00008, 21, 0x00000001, 'x', "IRQ 21 (BTUART) generates FIQ" },
+{ "ICLR_IL22", 0x40D00008, 22, 0x00000001, 'x', "IRQ 22 (FFUART) generates FIQ" },
+{ "ICLR_IL23", 0x40D00008, 23, 0x00000001, 'x', "IRQ 23 (MMC) generates FIQ" },
+{ "ICLR_IL24", 0x40D00008, 24, 0x00000001, 'x', "IRQ 24 (SSP) generates FIQ" },
+{ "ICLR_IL25", 0x40D00008, 25, 0x00000001, 'x', "IRQ 25 (DMA) generates FIQ" },
+{ "ICLR_IL26", 0x40D00008, 26, 0x00000001, 'x', "IRQ 26 (OSMR0) generates FIQ" },
+{ "ICLR_IL27", 0x40D00008, 27, 0x00000001, 'x', "IRQ 27 (OSMR1) generates FIQ" },
+{ "ICLR_IL28", 0x40D00008, 28, 0x00000001, 'x', "IRQ 28 (OSMR2) generates FIQ" },
+{ "ICLR_IL29", 0x40D00008, 29, 0x00000001, 'x', "IRQ 29 (OSMR3) generates FIQ" },
+{ "ICLR_IL30", 0x40D00008, 30, 0x00000001, 'x', "IRQ 30 (RTCCLK) generates FIQ" },
+{ "ICLR_IL31", 0x40D00008, 31, 0x00000001, 'x', "IRQ 31 (RTCALM) generates FIQ" },
+
+{ "ICCR", 0x40D00014, 0, 0xffffffff, 'x', "Interrupt Controller Control Register (4-23)" },
+{ "ICCR_DIM", 0x40D00014, 8, 0x00000001, 'x', "ONLY enabled and unmasked IRQ bring CPU from idle to run" },
+
+{ "ICIP", 0x40D00000, 0, 0xffffffff, 'x', "Interrupt Controller IRQ Pending Register (4-24)" },
+
+{ "ICFP", 0x40D0000C, 0, 0xffffffff, 'x', "Interrupt Controller FIQ Pending Register (4-24)" },
+
+{ "ICPR", 0x40D00010, 0, 0xffffffff, 'x', "Interrupt Controller Pending Register (4-25)" },
+{ "ICPR_IS7", 0x40D00010, 7, 0x00000001, 'x', "IRQ 7 (HWUART) pending" },
+{ "ICPR_IS8", 0x40D00010, 8, 0x00000001, 'x', "IRQ 8 (GPIO0) pending" },
+{ "ICPR_IS9", 0x40D00010, 9, 0x00000001, 'x', "IRQ 9 (GPIO1) pending" },
+{ "ICPR_IS10", 0x40D00010, 10, 0x00000001, 'x', "IRQ 10 (GPIO2_80) pending" },
+{ "ICPR_IS11", 0x40D00010, 11, 0x00000001, 'x', "IRQ 11 (USB) pending" },
+{ "ICPR_IS12", 0x40D00010, 12, 0x00000001, 'x', "IRQ 12 (PMU) pending" },
+{ "ICPR_IS13", 0x40D00010, 13, 0x00000001, 'x', "IRQ 13 (I2S) pending" },
+{ "ICPR_IS14", 0x40D00010, 14, 0x00000001, 'x', "IRQ 14 (AC97) pending" },
+{ "ICPR_IS17", 0x40D00010, 17, 0x00000001, 'x', "IRQ 17 (LCD) pending" },
+{ "ICPR_IS18", 0x40D00010, 18, 0x00000001, 'x', "IRQ 18 (I2C) pending" },
+{ "ICPR_IS19", 0x40D00010, 19, 0x00000001, 'x', "IRQ 19 (ICP) pending" },
+{ "ICPR_IS20", 0x40D00010, 20, 0x00000001, 'x', "IRQ 10 (STUART) pending" },
+{ "ICPR_IS21", 0x40D00010, 21, 0x00000001, 'x', "IRQ 21 (BTUART) pending" },
+{ "ICPR_IS22", 0x40D00010, 22, 0x00000001, 'x', "IRQ 22 (FFUART) pending" },
+{ "ICPR_IS23", 0x40D00010, 23, 0x00000001, 'x', "IRQ 23 (MMC) pending" },
+{ "ICPR_IS24", 0x40D00010, 24, 0x00000001, 'x', "IRQ 24 (SSP) pending" },
+{ "ICPR_IS25", 0x40D00010, 25, 0x00000001, 'x', "IRQ 25 (DMA) pending" },
+{ "ICPR_IS26", 0x40D00010, 26, 0x00000001, 'x', "IRQ 26 (OSMR0) pending" },
+{ "ICPR_IS27", 0x40D00010, 27, 0x00000001, 'x', "IRQ 27 (OSMR1) pending" },
+{ "ICPR_IS28", 0x40D00010, 28, 0x00000001, 'x', "IRQ 28 (OSMR2) pending" },
+{ "ICPR_IS29", 0x40D00010, 29, 0x00000001, 'x', "IRQ 29 (OSMR3) pending" },
+{ "ICPR_IS30", 0x40D00010, 30, 0x00000001, 'x', "IRQ 30 (RTCCLK) pending" },
+{ "ICPR_IS31", 0x40D00010, 31, 0x00000001, 'x', "IRQ 31 (RTCALM) pending" },
+
+{ "RTTR", 0x4090000C, 0, 0xffffffff, 'x', "RTC Trim Register (4-30)" },
+{ "RTTR_CK_DIV", 0x4090000C, 0, 0x0000ffff, 'x', "RTC Clock Divider Count" },
+{ "RTTR_DEL", 0x4090000C, 16, 0x000003ff, 'x', "RTC Trim delete Count" },
+{ "RTTR_LCK", 0x4090000C, 31, 0x00000001, 'x', "RTC Locking for RTTR" },
+
+{ "RTAR", 0x40900010, 0, 0xffffffff, 'x', "RTC Alarm Register (4-30)" },
+{ "RTAR_RTMV", 0x40900010, 0, 0xffffffff, 'x', "RTC Target Match Value" },
+
+{ "RCNR", 0x40900000, 0, 0xffffffff, 'x', "RTC Counter Register (4-31)" },
+{ "RCNR_RCV", 0x40900000, 0, 0xffffffff, 'x', "RTC Count Value" },
+
+{ "RTSR", 0x40900008, 0, 0xffffffff, 'x', "RTC Status Register (4-32)" },
+{ "RTSR_AL", 0x40900008, 0, 0x00000001, 'x', "RTC Alarm Interrupt detected" },
+{ "RTSR_HZ", 0x40900008, 1, 0x00000001, 'x', "RTC Hz Interrupt detected" },
+{ "RTSR_ALE", 0x40900008, 2, 0x00000001, 'x', "RTC Alarm Interrupt Enable" },
+{ "RTSR_HZE", 0x40900008, 3, 0x00000001, 'x', "RTC Hz Interrupt Enable" },
+
+{ "OSMR0", 0x40A00000, 0, 0xffffffff, 'x', "OS Timer Match Register 0 (4-36)" },
+{ "OSMR1", 0x40A00004, 0, 0xffffffff, 'x', "OS Timer Match Register 1 (4-36)" },
+{ "OSMR2", 0x40A00008, 0, 0xffffffff, 'x', "OS Timer Match Register 2 (4-36)" },
+{ "OSMR3", 0x40A0000C, 0, 0xffffffff, 'x', "OS Timer Match Register 3 (4-36)" },
+
+{ "OIER", 0x40A0001C, 0, 0xffffffff, 'x', "OS Timer Interrupt Enable Register (4-36)" },
+{ "OIER_E0", 0x40A0001C, 0, 0x00000001, 'x', "OS Interrupt for OSMR0 enabled" },
+{ "OIER_E1", 0x40A0001C, 1, 0x00000001, 'x', "OS Interrupt for OSMR1 enabled" },
+{ "OIER_E2", 0x40A0001C, 2, 0x00000001, 'x', "OS Interrupt for OSMR2 enabled" },
+{ "OIER_E3", 0x40A0001C, 3, 0x00000001, 'x', "OS Interrupt for OSMR3 enabled" },
+
+{ "OWER", 0x40A00018, 0, 0xffffffff, 'x', "OS Timer Watchdog Match Enable Register (4-37)" },
+{ "OWER_WME", 0x40A00018, 0, 0x00000001, 'x', "OSMR3 match causes a reset" },
+
+{ "OSCR", 0x40A00010, 0, 0xffffffff, 'x', "OS Timer Count Register (4-37)" },
+{ "OSCR_OSCV", 0x40A00010, 0, 0xffffffff, 'x', "OS Timer Count Value" },
+
+{ "OSSR", 0x40A00014, 0, 0xffffffff, 'x', "OS Timer Status Register (4-38)" },
+{ "OSSR_M0", 0x40A00014, 0, 0x00000001, 'x', "OS OSMR0 matched OSCR0" },
+{ "OSSR_M1", 0x40A00014, 1, 0x00000001, 'x', "OS OSMR1 matched OSCR1" },
+{ "OSSR_M2", 0x40A00014, 2, 0x00000001, 'x', "OS OSMR2 matched OSCR2" },
+{ "OSSR_M3", 0x40A00014, 3, 0x00000001, 'x', "OS OSMR3 matched OSCR3" },
+
+{ "PWMCTL0", 0x40B00000, 0, 0xffffffff, 'x', "PWM Control Register 0 (4-41)" },
+{ "PWMCTL0_PRESCALE", 0x40B00000, 0, 0x0000003f, 'd', "PWM0 Prescale Divisor" },
+{ "PWMCTL0_SD", 0x40B00000, 5, 0x00000001, 'x', "PWM0 abrupt shutdown" },
+
+{ "PWMDUTY0", 0x40B00004, 0, 0xffffffff, 'x', "PWM Duty Cycle Register 0 (4-42)" },
+{ "PWMDUTY0_DCYCLE", 0x40B00004, 0, 0x000003ff, 'd', "PWM0 Duty Cycle" },
+{ "PWMDUTY0_FDCYCLE", 0x40B00004, 10, 0x00000001, 'x', "PWM_OUT0 is set high and does not toggle" },
+
+{ "PWMPERVAL0", 0x40B00008, 0, 0xffffffff, 'x', "PWM Period Control Register 0 (4-43)" },
+{ "PWMPERVAL0_PV", 0x40B00008, 0, 0x000003ff, 'd', "PWM0 Period Cycle Length" },
+
+{ "PWMCTL1", 0x40C00000, 0, 0xffffffff, 'x', "PWM Control Register 1 (4-41)" },
+{ "PWMCTL1_PRESCALE", 0x40C00000, 0, 0x0000003f, 'd', "PWM1 Prescale Divisor" },
+{ "PWMCTL1_SD", 0x40C00000, 5, 0x00000001, 'x', "PWM1 abrupt shutdown" },
+
+{ "PWMDUTY1", 0x40C00004, 0, 0xffffffff, 'x', "PWM Duty Cycle Register 1 (4-42)" },
+{ "PWMDUTY1_DCYCLE", 0x40C00004, 0, 0x000003ff, 'd', "PWM1 Duty Cycle" },
+{ "PWMDUTY1_FDCYCLE", 0x40C00004, 10, 0x00000001, 'x', "PWM_OUT1 is set high and does not toggle" },
+
+{ "PWMPERVAL1", 0x40C00008, 0, 0xffffffff, 'x', "PWM Period Control Register 1 (4-43)" },
+{ "PWMPERVAL1_PV", 0x40C00008, 0, 0x000003ff, 'd', "PWM1 Period Cycle Length" },
+
+
+{ "LCCR0", 0x44000000, 0, 0xffffffff, 'x', "LCD Controller Control Register 0 (7-23)" },
+{ "LCCR0_ENB", 0x44000000, 0, 0x00000001, 'd', "LCD controller enable" },
+{ "LCCR0_CMS", 0x44000000, 1, 0x00000001, 'd', "LCD monochrome operation enable" },
+{ "LCCR0_SDS", 0x44000000, 2, 0x00000001, 'd', "LCD dual panel display enable" },
+{ "LCCR0_LDM", 0x44000000, 3, 0x00000001, 'd', "LCD disable done IRQ disable" },
+{ "LCCR0_SFM", 0x44000000, 4, 0x00000001, 'd', "LCD start of frame IRQ disable" },
+{ "LCCR0_IUM", 0x44000000, 5, 0x00000001, 'd', "LCD fifo underrun error IRQ disable" },
+{ "LCCR0_EFM", 0x44000000, 6, 0x00000001, 'd', "LCD end of frame IRQ disable" },
+{ "LCCR0_PAS", 0x44000000, 7, 0x00000001, 'd', "LCD active display enable" },
+{ "LCCR0_DPD", 0x44000000, 9, 0x00000001, 'd', "LCD send 8 pixel on L_DD[7:0] at each clock" },
+{ "LCCR0_DIS", 0x44000000, 10, 0x00000001, 'd', "LCD controller disable" },
+{ "LCCR0_QDM", 0x44000000, 11, 0x00000001, 'd', "LCD quick disable IRQ disable" },
+{ "LCCR0_PDD", 0x44000000, 12, 0x000000FF, 'd', "LCD palette DMA request delay" },
+{ "LCCR0_BM", 0x44000000, 20, 0x00000001, 'd', "LCD branch start IRQ disable" },
+{ "LCCR0_OUM", 0x44000000, 21, 0x00000001, 'd', "LCD fifo underrun IRQ disable" },
+
+{ "LCCR1", 0x44000004, 0, 0xffffffff, 'x', "LCD Controller Control Register 1 (7-26)" },
+{ "LCCR1_PPL", 0x44000004, 0, 0x000003ff, 'd', "LCD pixels per line (+1)" },
+{ "LCCR1_HSW", 0x44000004, 10, 0x0000003f, 'd', "LCD horizontal sync pulse width (+1)" },
+{ "LCCR1_ELW", 0x44000004, 16, 0x000000ff, 'd', "LCD end of line pixel clock wait count (+1)" },
+{ "LCCR1_BLW", 0x44000004, 24, 0x000000ff, 'd', "LCD beginning of line pixel clock wait count (+1)" },
+
+{ "LCCR2", 0x44000008, 0, 0xffffffff, 'x', "LCD Controller Control Register 2 (7-28)" },
+{ "LCCR2_LPP", 0x44000008, 0, 0x000003ff, 'd', "LCD lines per panel (+1)" },
+{ "LCCR2_VSW", 0x44000008, 10, 0x0000003f, 'd', "LCD vertical sync pulse width (+1)" },
+{ "LCCR2_EFW", 0x44000008, 16, 0x000000ff, 'd', "LCD end of frame line clock wait count (+1)" },
+{ "LCCR2_BFW", 0x44000008, 24, 0x000000ff, 'd', "LCD beginning of frame line clock wait count (+1)" },
+
+{ "LCCR3", 0x4400000C, 0, 0xffffffff, 'x', "LCD Controller Control Register 3 (7-31)" },
+{ "LCCR3_PCD", 0x4400000C, 0, 0x000000ff, 'd', "LCD pixel clock divisor (+1)" },
+{ "LCCR3_ACB", 0x4400000C, 8, 0x000000ff, 'd', "LCD AC bias pin frequency (+1)" },
+{ "LCCR3_API", 0x4400000C, 16, 0x0000000f, 'd', "LCD AC bias pin transitions per interrupt" },
+{ "LCCR3_VSP", 0x4400000C, 20, 0x00000001, 'd', "LCD L_FCLK vertical sync polarity active low" },
+{ "LCCR3_HSP", 0x4400000C, 21, 0x00000001, 'd', "LCD L_LCLK horizontal sync polarity active low" },
+{ "LCCR3_PCP", 0x4400000C, 22, 0x00000001, 'd', "LCD data sampled on falling edge of L_PCLK" },
+{ "LCCR3_OEP", 0x4400000C, 23, 0x00000001, 'd', "LCD L_BIAS output enable active low" },
+{ "LCCR3_BPP", 0x4400000C, 24, 0x00000007, '<', "LCD bits per pixel" },
+{ "LCCR3_DPC", 0x4400000C, 27, 0x00000007, 'd', "LCD double pixel clock rate at L_PCLK" },
+
+
+{ "FBR0", 0x44000020, 0, 0xffffffff, 'x', "FBR0" },
+{ "FBR1", 0x44000020, 0, 0xffffffff, 'x', "FBR1" },
+{ "LCSR", 0x44000038, 0, 0xffffffff, 'x', "LCD Controller Status Register (7-40)" },
+{ "LIIDR", 0x4400003C, 0, 0xffffffff, 'x', "LCD Controller Interrupt ID Register (7-41)" },
+// TODO
+
+{ "TRGBBR", 0x44000040, 0, 0xffffffff, 'x', "TMED RBG Seed Register (7-42)" },
+{ "TRGBBR_TRS",0x44000040, 0, 0x000000ff, 'x', "Red Seed" },
+{ "TRGBBR_TGS",0x44000040, 8, 0x000000ff, 'x', "Green Seed" },
+{ "TRGBBR_TBS",0x44000040, 16, 0x000000ff, 'x', "Blue Seed" },
+
+{ "TCR", 0x44000044, 0, 0xffffffff, 'x', "TMED Control Register (7-44)" },
+{ "TCR_COAM", 0x44000044, 0, 0x00000001, 'x', "Color Offset Adjuster Matrix" },
+{ "TCR_FNAM", 0x44000044, 1, 0x00000001, 'x', "Frame Number Adjuster Matrix" },
+{ "TCR_COAE", 0x44000044, 2, 0x00000001, 'x', "Color Offset Adjuster Enable" },
+{ "TCR_FNAME", 0x44000044, 3, 0x00000001, 'x', "Frame Number Adjuster Enable" },
+{ "TCR_TVBS", 0x44000044, 4, 0x0000000f, 'd', "Vertical Beat Suppression" },
+{ "TCR_THBS", 0x44000044, 8, 0x0000000f, 'd', "Horizontal Beat Suppression" },
+{ "TCR_TED", 0x44000044, 14, 0x00000001, 'x', "Energy Distribution Matrix Select" },
+
+{ "FDADR0", 0x44000200, 0, 0xffffffff, 'x', "FDADR0" },
+{ "FSADR0", 0x44000204, 0, 0xffffffff, 'x', "FSADR0" },
+{ "FIDR0", 0x44000208, 0, 0xffffffff, 'x', "FODR0" },
+{ "LDCMD0", 0x4400020C, 0, 0xffffffff, 'x', "LDCMD0" },
+{ "FDADR1", 0x44000210, 0, 0xffffffff, 'x', "FDADR1" },
+{ "FSADR1", 0x44000214, 0, 0xffffffff, 'x', "FSADR1" },
+{ "FIDR1", 0x44000218, 0, 0xffffffff, 'x', "FIDR1" },
+{ "LDCMD1", 0x4400021C, 0, 0xffffffff, 'x', "LDCMD1" },
+// TODO
+
+
+
+
+{ "MDCNFG", 0x48000000, 0, 0xffffffff, 'x', "SDRAM Configuration Register (6-9)" },
+{ "MDCNFG_DE0", 0x48000000, 0, 0x00000001, 'd', "SDRAM enable for partition 0" },
+{ "MDCNFG_DE1", 0x48000000, 1, 0x00000001, 'd', "SDRAM enable for partition 1" },
+{ "MDCNFG_DWID0", 0x48000000, 2, 0x00000001, 'd', "SDRAM data width (0=32, 1=16)" },
+{ "MDCNFG_DCAC0", 0x48000000, 3, 0x00000003, 'd', "Column address bits for partition pair 0/1" },
+{ "MDCNFG_DRAC0", 0x48000000, 5, 0x00000003, 'd', "Row address bits for partition pair 0/1" },
+{ "MDCNFG_DNB0", 0x48000000, 7, 0x00000001, 'd', "Banks in partition pair 0/1 (0=2, 1=4)" },
+{ "MDCNFG_DTC0", 0x48000000, 8, 0x00000003, 'd', "Timing Category for partition pair 0/1" },
+{ "MDCNFG_DADDR0", 0x48000000,10, 0x00000001, 'd', "Use alternate addressing for partition pair 0/1" },
+{ "MDCNFG_DLATCH0", 0x48000000,11, 0x00000001, 'd', "Return data latching scheme for partition pair 0/1" },
+{ "MDCNFG_DSA11110",0x48000000,12, 0x00000001, 'd', "use SA1111 address muxing for partition pair 0/1" },
+{ "MDCNFG_DE2", 0x48000000,16, 0x00000001, 'd', "SDRAM enable for partition 2" },
+{ "MDCNFG_DE3", 0x48000000,17, 0x00000001, 'd', "SDRAM enable for partition 3" },
+{ "MDCNFG_DWID2", 0x48000000,18, 0x00000001, 'd', "SDRAM data width (0=32, 1=16)" },
+{ "MDCNFG_DCAC2", 0x48000000,19, 0x00000003, 'd', "Column address bits for partition pair 2/3" },
+{ "MDCNFG_DRAC2", 0x48000000,21, 0x00000003, 'd', "Row address bits for partition pair 2/3" },
+{ "MDCNFG_DNB2", 0x48000000,23, 0x00000001, 'd', "Banks in partition pair 2/3 (0=2, 1=4)" },
+{ "MDCNFG_DTC2", 0x48000000,24, 0x00000003, 'd', "Timing Category for partition pair 2/3" },
+{ "MDCNFG_DADDR2", 0x48000000,26, 0x00000001, 'd', "Use alternate addressing for partition pair 2/3" },
+{ "MDCNFG_DLATCH2", 0x48000000,27, 0x00000001, 'd', "Return data latching scheme for partition pair 2/3" },
+{ "MDCNFG_DSA11112",0x48000000,28, 0x00000001, 'd', "use SA1111 address muxing for partition pair 2/3" },
+
+{ "MDREFR", 0x48000004, 0, 0xffffffff, 'x', "SDRAM Refresh Configuration Register (6-15)" },
+{ "MDREFR_DRI", 0x48000004, 0, 0x00000fff, 'x', "SDRAM Refresh intervall, all paritions" },
+{ "MDREFR_E0PIN", 0x48000004,12, 0x00000001, 'x', "SDRAM Clock Enable Pin 0 Level" },
+{ "MDREFR_K0RUN", 0x48000004,13, 0x00000001, 'x', "SDRAM Clock Run Pin 0" },
+{ "MDREFR_K0DB2", 0x48000004,14, 0x00000001, 'x', "SDRAM Clock Pin 0 Divide/2" },
+{ "MDREFR_E1PIN", 0x48000004,15, 0x00000001, 'x', "SDRAM Clock Enable Pin 1 Level" },
+{ "MDREFR_K1RUN", 0x48000004,16, 0x00000001, 'x', "SDRAM Clock Run Pin 1" },
+{ "MDREFR_K1DB2", 0x48000004,17, 0x00000001, 'x', "SDRAM Clock Pin 1 Divide/2" },
+{ "MDREFR_K2RUN", 0x48000004,18, 0x00000001, 'x', "SDRAM Clock Run Pin 2" },
+{ "MDREFR_K2DB2", 0x48000004,19, 0x00000001, 'x', "SDRAM Clock Pin 2 Divide/2" },
+{ "MDREFR_APD", 0x48000004,20, 0x00000001, 'x', "SDRAM Auto Power Down enable" },
+{ "MDREFR_SLFRSH", 0x48000004,22, 0x00000001, 'x', "SDRAM Self-Refresh" },
+{ "MDREFR_K0FREE", 0x48000004,23, 0x00000001, 'x', "SDRAM Free Running Control for SDCLK0" },
+{ "MDREFR_K1FREE", 0x48000004,24, 0x00000001, 'x', "SDRAM Free Running Control for SDCLK1" },
+{ "MDREFR_K2FREE", 0x48000004,25, 0x00000001, 'x', "SDRAM Free Running Control for SDCLK2" },
+
+{ "MSC0", 0x48000008, 0, 0xffffffff, 'x', "Asynchronous Static Memory Control Register 0 (6-45)" },
+{ "MSC0_RT0", 0x48000008, 0, 0x00000007, 'd', "nCS[0] ROM Type" },
+{ "MSC0_RBW0", 0x48000008, 3, 0x00000001, 'd', "nCS[0] ROM Bus Width (1=16bit)" },
+{ "MSC0_RDF0", 0x48000008, 4, 0x0000000f, 'd', "nCS[0] ROM Delay First Access" },
+{ "MSC0_RDN0", 0x48000008, 8, 0x0000000f, 'd', "nCS[0] ROM Delay Next Access" },
+{ "MSC0_RRR0", 0x48000008,12, 0x00000007, 'd', "nCS[0] ROM/SRAM Recovery Time" },
+{ "MSC0_RBUFF0", 0x48000008,15, 0x00000001, 'd', "nCS[0] Return Buffer Behavior (1=streaming)" },
+{ "MSC0_RT1", 0x48000008,16, 0x00000007, 'd', "nCS[1] ROM Type" },
+{ "MSC0_RBW1", 0x48000008,19, 0x00000001, 'd', "nCS[1] ROM Bus Width (1=16bit)" },
+{ "MSC0_RDF1", 0x48000008,20, 0x0000000f, 'd', "nCS[1] ROM Delay First Access" },
+{ "MSC0_RDN1", 0x48000008,24, 0x0000000f, 'd', "nCS[1] ROM Delay Next Access" },
+{ "MSC0_RRR1", 0x48000008,28, 0x00000007, 'd', "nCS[1] ROM/SRAM Recovery Time" },
+{ "MSC0_RBUFF1", 0x48000008,31, 0x00000001, 'd', "nCS[1] Return Buffer Behavior (1=streaming)" },
+
+{ "MSC1", 0x4800000C, 0, 0xffffffff, 'x', "Asynchronous Static Memory Control Register 1 (6-45)" },
+{ "MSC1_RT2", 0x4800000C, 0, 0x00000007, 'd', "nCS[2] ROM Type" },
+{ "MSC1_RBW2", 0x4800000C, 3, 0x00000001, 'd', "nCS[2] ROM Bus Width (1=16bit)" },
+{ "MSC1_RDF2", 0x4800000C, 4, 0x0000000f, 'd', "nCS[2] ROM Delay First Access" },
+{ "MSC1_RDN2", 0x4800000C, 8, 0x0000000f, 'd', "nCS[2] ROM Delay Next Access" },
+{ "MSC1_RRR2", 0x4800000C,12, 0x00000007, 'd', "nCS[2] ROM/SRAM Recovery Time" },
+{ "MSC1_RBUFF2", 0x4800000C,15, 0x00000001, 'd', "nCS[2] Return Buffer Behavior (1=streaming)" },
+{ "MSC1_RT3", 0x4800000C,16, 0x00000007, 'd', "nCS[3] ROM Type" },
+{ "MSC1_RBW3", 0x4800000C,19, 0x00000001, 'd', "nCS[3] ROM Bus Width (1=16bit)" },
+{ "MSC1_RDF3", 0x4800000C,20, 0x0000000f, 'd', "nCS[3] ROM Delay First Access" },
+{ "MSC1_RDN3", 0x4800000C,24, 0x0000000f, 'd', "nCS[3] ROM Delay Next Access" },
+{ "MSC1_RRR3", 0x4800000C,28, 0x00000007, 'd', "nCS[3] ROM/SRAM Recovery Time" },
+{ "MSC1_RBUFF3", 0x4800000C,31, 0x00000001, 'd', "nCS[3] Return Buffer Behavior (1=streaming)" },
+
+{ "MSC2", 0x48000010, 0, 0xffffffff, 'x', "Asynchronous Static Memory Control Register 2 (6-45)" },
+{ "MSC2_RT4", 0x48000010, 0, 0x00000007, 'd', "nCS[4] ROM Type" },
+{ "MSC2_RBW4", 0x48000010, 3, 0x00000001, 'd', "nCS[4] ROM Bus Width (1=16bit)" },
+{ "MSC2_RDF4", 0x48000010, 4, 0x0000000f, 'd', "nCS[4] ROM Delay First Access" },
+{ "MSC2_RDN4", 0x48000010, 8, 0x0000000f, 'd', "nCS[4] ROM Delay Next Access" },
+{ "MSC2_RRR4", 0x48000010,12, 0x00000007, 'd', "nCS[4] ROM/SRAM Recovery Time" },
+{ "MSC2_RBUFF4", 0x48000010,15, 0x00000001, 'd', "nCS[4] Return Buffer Behavior (1=streaming)" },
+{ "MSC2_RT5", 0x48000010,16, 0x00000007, 'd', "nCS[5] ROM Type" },
+{ "MSC2_RBW5", 0x48000010,19, 0x00000001, 'd', "nCS[5] ROM Bus Width (1=16bit)" },
+{ "MSC2_RDF5", 0x48000010,20, 0x0000000f, 'd', "nCS[5] ROM Delay First Access" },
+{ "MSC2_RDN5", 0x48000010,24, 0x0000000f, 'd', "nCS[5] ROM Delay Next Access" },
+{ "MSC2_RRR5", 0x48000010,28, 0x00000007, 'd', "nCS[5] ROM/SRAM Recovery Time" },
+{ "MSC2_RBUFF5", 0x48000010,31, 0x00000001, 'd', "nCS[5] Return Buffer Behavior (1=streaming)" },
+
+{ "MECR", 0x48000014, 0, 0xffffffff, 'x', "Expansion Memory Configuration Register (6-61)" },
+{ "MECR_NOS", 0x48000014, 0, 0x00000001, 'x', "Number of Sockets (1=2 Sockets)" },
+{ "MECR_CIT", 0x48000014, 1, 0x00000001, 'x', "Card inserted" },
+
+{ "SXCNFG", 0x4800001C, 0, 0xffffffff, 'x', "Synchronous Static Memory Configuration Register (6-33)" },
+{ "SXCNFG_SXEN0", 0x4800001C, 0, 0x00000001, 'x', "Partition 0 enabled as SX memory" },
+{ "SXCNFG_SXEN1", 0x4800001C, 1, 0x00000001, 'x', "Partition 1 enabled as SX memory" },
+{ "SXCNFG_SXCL0", 0x4800001C, 2, 0x00000007, 'x', "Partition 0/1 CAS Latency" },
+{ "SXCNFG_SXRL0", 0x4800001C, 5, 0x00000007, 'x', "Partition 0/1 RAS Latency" },
+{ "SXCNFG_SXRA0", 0x4800001C, 8, 0x00000003, 'x', "Partition 0/1 row address bit count" },
+{ "SXCNFG_SXCA0", 0x4800001C,10, 0x00000003, 'x', "Partition 0/1 column address bit count" },
+{ "SXCNFG_SXTP0", 0x4800001C,12, 0x00000003, 'x', "Partition 0/1 memory type" },
+{ "SXCNFG_SXLATCH0",0x4800001C,14, 0x00000001, 'x', "Partition 0/1 return data with return clock" },
+{ "SXCNFG_SXEN2", 0x4800001C,16, 0x00000001, 'x', "Partition 2 enabled as SX memory" },
+{ "SXCNFG_SXEN3", 0x4800001C,17, 0x00000001, 'x', "Partition 3 enabled as SX memory" },
+{ "SXCNFG_SXCL2", 0x4800001C,18, 0x00000007, 'x', "Partition 2/3 CAS Latency" },
+{ "SXCNFG_SXRL2", 0x4800001C,21, 0x00000007, 'x', "Partition 2/3 RAS Latency" },
+{ "SXCNFG_SXRA2", 0x4800001C,24, 0x00000003, 'x', "Partition 2/3 row address bit count" },
+{ "SXCNFG_SXCA2", 0x4800001C,26, 0x00000003, 'x', "Partition 2/3 column address bit count" },
+{ "SXCNFG_SXTP2", 0x4800001C,28, 0x00000003, 'x', "Partition 2/3 memory type" },
+{ "SXCNFG_SXLATCH2",0x4800001C,30, 0x00000001, 'x', "Partition 2/3 return data with return clock" },
+
+{ "SXMRS", 0x48000024, 0, 0xffffffff, 'x', "MRS value to be written to SX Memory (6-38)" },
+
+{ "MCMEM0", 0x48000028, 0, 0xffffffff, 'x', "MEM Control for PCMCIA Socket 0 (6-58)" },
+{ "MCMEM0_SET", 0x48000028, 0, 0x0000007f, 'd', "Address set time" },
+{ "MCMEM0_ASST", 0x48000028, 7, 0x0000001f, 'd', "Command assertion time" },
+{ "MCMEM0_HOLD", 0x48000028,14, 0x0000003f, 'd', "Address hold time" },
+
+{ "MCMEM1", 0x4800002C, 0, 0xffffffff, 'x', "MEM Control for PCMCIA Socket 1 (6-58)" },
+{ "MCMEM1_SET", 0x4800002C, 0, 0x0000007f, 'd', "Address set time" },
+{ "MCMEM1_ASST", 0x4800002C, 7, 0x0000001f, 'd', "Command assertion time" },
+{ "MCMEM1_HOLD", 0x4800002C,14, 0x0000003f, 'd', "Address hold time" },
+
+{ "MCATT0", 0x48000030, 0, 0xffffffff, 'x', "ATT Control for PCMCIA Socket 0 (6-59)" },
+{ "MCATT0_SET", 0x48000030, 0, 0x0000007f, 'd', "Address set time" },
+{ "MCATT0_ASST", 0x48000030, 7, 0x0000001f, 'd', "Command assertion time" },
+{ "MCATT0_HOLD", 0x48000030,14, 0x0000003f, 'd', "Address hold time" },
+
+{ "MCATT1", 0x48000034, 0, 0xffffffff, 'x', "ATT Control for PCMCIA Socket 1 (6-59)" },
+{ "MCATT1_SET", 0x48000034, 0, 0x0000007f, 'd', "Address set time" },
+{ "MCATT1_ASST", 0x48000034, 7, 0x0000001f, 'd', "Command assertion time" },
+{ "MCATT1_HOLD", 0x48000034,14, 0x0000003f, 'd', "Address hold time" },
+
+{ "MCIO0", 0x48000038, 0, 0xffffffff, 'x', "I/O Control for PCMCIA Socket 0 (6-59)" },
+{ "MCIO0_SET", 0x48000038, 0, 0x0000007f, 'd', "Address set time" },
+{ "MCIO0_ASST", 0x48000038, 7, 0x0000001f, 'd', "Command assertion time" },
+{ "MCIO0_HOLD", 0x48000038,14, 0x0000003f, 'd', "Address hold time" },
+
+{ "MCIO1", 0x4800003C, 0, 0xffffffff, 'x', "I/O Control for PCMCIA Socket 1 (6-59)" },
+{ "MCIO1_SET", 0x4800003C, 0, 0x0000007f, 'd', "Address set time" },
+{ "MCIO1_ASST", 0x4800003C, 7, 0x0000001f, 'd', "Command assertion time" },
+{ "MCIO1_HOLD", 0x4800003C,14, 0x0000003f, 'd', "Address hold time" },
+
+{ "MDMRS", 0x48000040, 0, 0xffffffff, 'x', "SDRAM Mode Register Set Configuration Register (6-12)" },
+{ "MDMRS_MDBL0", 0x48000040, 0, 0x00000007, 'x', "SDRAM Partition 0/1 burst length" },
+{ "MDMRS_MDADD0", 0x48000040, 3, 0x00000001, 'x', "SDRAM Partition 0/1 burst type" },
+{ "MDMRS_MDCL0", 0x48000040, 4, 0x00000007, 'x', "SDRAM Partition 0/1 CAS latency" },
+{ "MDMRS_MDMRS0", 0x48000040, 7, 0x000000ff, 'x', "MRS value to be written to SDRAM Partition 0/1" },
+{ "MDMRS_MDBL2", 0x48000040,16, 0x00000007, 'x', "SDRAM Partition 2/3 burst length" },
+{ "MDMRS_MDADD2", 0x48000040,19, 0x00000001, 'x', "SDRAM Partition 2/3 burst type" },
+{ "MDMRS_MDCL2", 0x48000040,20, 0x00000007, 'x', "SDRAM Partition 2/3 CAS latency" },
+{ "MDMRS_MDMRS2", 0x48000040,23, 0x000000ff, 'x', "MRS value to be written to SDRAM Partition 2/3" },
+
+{ "BOOTDEF", 0x48000044, 0, 0xffffffff, 'x', "Boot Time Defaults (6-73)" },
+{ "BOOTDEF_BOOTSEL",0x48000044, 0, 0x00000007, 'x', "Boot Configuration at BOOT_SEL pins" },
+{ "BOOTDEF_PKGTYPE",0x48000044, 3, 0x00000001, 'x', "Processor type, 1 for PXA250" },
+
+{ "MDMRSLP", 0x48000058, 0, 0xffffffff, 'x', "Low-Power SDRAM Mode Register Set Configuration Register (6-14)" },
+// TODO
+
+
+
+{ "MMC_STRPCL", 0x41100000, 0, 0xffffffff, 'x', "MMC Start/Stop Clock (15-23)" },
+
+{ "MMC_STAT", 0x41100004, 0, 0xffffffff, 'x', "MMC Status Register (15-24)" },
+{ "MMC_STAT_READ_TIME_OUT", 0x41100004, 0, 0x00000001, 'x', "Read Time Out" },
+{ "MMC_STAT_TIME_OUT_RESP", 0x41100004, 1, 0x00000001, 'x', "Time Out Response" },
+{ "MMC_STAT_CRC_WRITE_ERROR", 0x41100004, 2, 0x00000001, 'x', "CRC Write Error" },
+{ "MMC_STAT_CRC_READ_ERR", 0x41100004, 3, 0x00000001, 'x', "CRC Read Error" },
+{ "MMC_STAT_SPI_READ_ERR_TKN", 0x41100004, 4, 0x00000001, 'x', "SPI Read Error Token" },
+{ "MMC_STAT_RES_CRC_ERR", 0x41100004, 5, 0x00000001, 'x', "Response CRC Error" },
+{ "MMC_STAT_XMIT_FIFO_EMPTY", 0x41100004, 6, 0x00000001, 'x', "Transmit FIFO Empty" },
+{ "MMC_STAT_RECV_FIFO_EMPTY", 0x41100004, 7, 0x00000001, 'x', "Receive FIFO Empty" },
+{ "MMC_STAT_CLK_EN", 0x41100004, 8, 0x00000001, 'x', "Clock Enabled" },
+{ "MMC_STAT_DATA_TRAN_DONE", 0x41100004,11, 0x00000001, 'x', "Data Transmission Done" },
+{ "MMC_STAT_PRG_DONE", 0x41100004,12, 0x00000001, 'x', "Program Done" },
+{ "MMC_STAT_END_CMD_RES", 0x41100004,13, 0x00000001, 'x', "End Command Response" },
+
+{ "MMC_CLKRT", 0x41100008, 0, 0xffffffff, 'x', "MMC Clock Read Timeout Register (15-26)" },
+{ "MMC_CLK_RATE", 0x41100008, 0, 0x00000007, 'x', "Read Time Out bitmask" },
+
+{ "MMC_SPI", 0x4110000c, 0, 0xffffffff, 'x', "MMC SPI mode (15-27)" },
+{ "MMC_SPI_EN", 0x4110000c, 0, 0x00000001, 'x', "SPI mode enabled" },
+{ "MMC_SPI_CRC_ON", 0x4110000c, 1, 0x00000001, 'x', "CRC generation enabled" },
+{ "MMC_SPI_CS_EN", 0x4110000c, 2, 0x00000001, 'x', "SPI chip select enabled" },
+{ "MMC_SPI_CS_ADDRESS", 0x4110000c, 3, 0x00000001, 'x', "CS0 enabled" },
+
+{ "MMC_CMDAT", 0x41100010, 0, 0xffffffff, 'x', "MMC Command Data (15-28)" },
+{ "MMC_CMDAT_RF", 0x41100010, 0, 0x00000003, 'x', "response format" },
+{ "MMC_CMDAT_DATA_EN", 0x41100010, 2, 0x00000001, 'x', "current cmd includes data transfer" },
+{ "MMC_CMDAT_WRITE", 0x41100010, 3, 0x00000001, 'x', "data transfer is a write" },
+{ "MMC_CMDAT_STREAM", 0x41100010, 4, 0x00000001, 'x', "data transfer is in stream mode" },
+{ "MMC_CMDAT_BUSY", 0x41100010, 5, 0x00000001, 'x', "busy signal is expected after data transfer" },
+{ "MMC_CMDAT_INIT", 0x41100010, 6, 0x00000001, 'x', "precede cmd with 80 clocks" },
+{ "MMC_CMDAT_DMA_EN", 0x41100010, 7, 0x00000001, 'x', "enable DMA mode" },
+
+{ "MMC_RESTO", 0x41100014, 0, 0xffffffff, 'x', "MMC Response Time Out (15-29)" },
+{ "MMC_RESTO_TO", 0x41100014, 0, 0x0000007f, 'd', "clocks before a response time out" },
+
+{ "MMC_RDTO", 0x41100018, 0, 0xffffffff, 'x', "MMC Read Time Out (15-29)" },
+{ "MMC_RDTO_TO", 0x41100018, 0, 0x0000ffff, 'd', "time until read time out" },
+
+{ "MMC_BLKLEN", 0x4110001C, 0, 0xffffffff, 'x', "MMC Block Len Register (15-30)" },
+{ "MMC_BLKLEN_LEN", 0x4110001C, 0, 0x000003ff, 'd', "Number of bytes in the block" },
+
+{ "MMC_NOB", 0x41100020, 0, 0xffffffff, 'x', "MMC Block Number Register (15-30)" },
+{ "MMC_NOB_N", 0x41100020, 0, 0x0000ffff, 'd', "number of blocks" },
+
+{ "MMC_PRTBUF", 0x41100024, 0, 0xffffffff, 'x', "MMC Partial Buffer Register (15-31)" },
+{ "MMC_PRTBUF_FULL", 0x41100024, 0, 0x00000001, 'x', "Buffer is partially full" },
+
+{ "MMC_IMASK", 0x41100028, 0, 0xffffffff, 'x', "MMC Interrupt Mask Register (15-31)" },
+{ "MMC_IMASK_DATATRAN", 0x41100028, 0, 0x00000001, 'x', "Data Transfer Done masked" },
+{ "MMC_IMASK_PRGDONE", 0x41100028, 1, 0x00000001, 'x', "Programming Done masked" },
+{ "MMC_IMASK_ENDCMD", 0x41100028, 2, 0x00000001, 'x', "End Command Response masked" },
+{ "MMC_IMASK_STOPCMD", 0x41100028, 3, 0x00000001, 'x', "Ready for Stop Transaction Command masked" },
+{ "MMC_IMASK_CLOCKOFF", 0x41100028, 4, 0x00000001, 'x', "Clock Is Off masked" },
+{ "MMC_IMASK_RXFIFO", 0x41100028, 5, 0x00000001, 'x', "Receive FIFO Read Request masked" },
+{ "MMC_IMASK_TXFIFO", 0x41100028, 6, 0x00000001, 'x', "Transmit FIFO Write Request masked" },
+
+{ "MMC_IREG", 0x4110002c, 0, 0xffffffff, 'x', "MMC Interrupt Register (15-33)" },
+{ "MMC_IREG_DATATRAN", 0x4110002c, 0, 0x00000001, 'x', "Data Transfer Done or Read TimeOut occured" },
+{ "MMC_IREG_PRGDONE", 0x4110002c, 1, 0x00000001, 'x', "Card has finished programming" },
+{ "MMC_IREG_ENDCMD", 0x4110002c, 2, 0x00000001, 'x', "MMC has received response or Response TimeOut" },
+{ "MMC_IREG_STOPCMD", 0x4110002c, 3, 0x00000001, 'x', "MMC is ready for the Stop Transaction Command" },
+{ "MMC_IREG_CLOCKOFF", 0x4110002c, 4, 0x00000001, 'x', "MMC clock has been turned off" },
+{ "MMC_IREG_RXFIFO", 0x4110002c, 5, 0x00000001, 'x', "Request for data read from receive FIFO" },
+{ "MMC_IREG_TXFIFO", 0x4110002c, 6, 0x00000001, 'x', "Request to data write to transmit FIFO" },
+
+{ "MMC_CMD", 0x41100030, 0, 0xffffffff, 'x', "MMC Command Register (15-34)" },
+{ "MMC_CMD_INDEX", 0x41100030, 0, 0x0000003f, 'x', "command index" },
+
+{ "MMC_ARGH", 0x41100034, 0, 0xffffffff, 'x', "MMC Higher Argument Register (15-36)" },
+{ "MMC_ARGH_ARG", 0x41100034, 0, 0x0000ffff, 'x', "upper 16 bits of command argument" },
+
+{ "MMC_ARGL", 0x41100038, 0, 0xffffffff, 'x', "MMC Lower Argument Register (15-36)" },
+{ "MMC_ARGL_ARG", 0x41100038, 0, 0x0000ffff, 'x', "upper 16 bits of command argument" },
+
+
+#if defined(CONFIG_ARCH_PXA_IDP) || defined(CONFIG_ARCH_RAMSES)
+// CS5+0x03C00000 CPLD 0x14000000
+// CS1 Alt-Flash 0x04000000
+// CS0 Flash 0x00000000
+
+{ "CPLD_PWR", 0x17C00004, 0, 0x000000ff, 'x', "CPLD_PERIPH_PWR" },
+{ "CPLD_PWR_CORE", 0x17C00004, 0, 0x00000001, 'd', "Variable core enable - latch value in first" },
+#ifdef CONFIG_ARCH_PXA_IDP
+{ "CPLD_PWR_MQ", 0x17C00004, 2, 0x00000001, 'd', "MQ1132 power switch" },
+#else
+{ "CPLD_PWR_SL811HS", 0x17C00004, 2, 0x00000001, 'd', "SL811HS power switch" },
+#endif
+{ "CPLD_PWR_PER", 0x17C00004, 3, 0x00000001, 'd', "peripheral power enable" },
+{ "CPLD_PWR_RST", 0x17C00004, 4, 0x00000001, 'd', "peripheral reset" },
+
+{ "CPLD_LED", 0x17C00008, 0, 0x000000ff, 'x', "CPLD_LED_CONTROL" },
+{ "CPLD_LED_CIR", 0x17C00008, 0, 0x00000001, 'd', "CIR" },
+{ "CPLD_LED_HB", 0x17C00008, 5, 0x00000001, 'd', "red LED (0=on)" },
+{ "CPLD_LED_BUSY", 0x17C00008, 6, 0x00000001, 'd', "green LED (0=on)" },
+{ "CPLD_LED_FLASH", 0x17C00008, 7, 0x00000001, 'd', "red LED flash enable" },
+
+{ "CPLD_KBD_COL_HIGH", 0x17C0000C, 0, 0x000000ff, 'x', "CPLD" },
+
+{ "CPLD_KBD_COL_LOW", 0x17C00010, 0, 0x000000ff, 'x', "CPLD" },
+
+{ "CPLD_PCCARD_EN", 0x17C00014, 0, 0x000000ff, 'x', "CPLD PC-Card Enable" },
+{ "CPLD_PCC0_ENABLE", 0x17C00014, 0, 0x00000001, 'd', "PC-Card 0 enable" },
+{ "CPLD_PCC1_ENABLE", 0x17C00014, 1, 0x00000001, 'd', "PC-Card 1 enable" },
+{ "CPLD_PCC0_RESET", 0x17C00014, 6, 0x00000001, 'd', "PC-Card 0 reset" },
+{ "CPLD_PCC1_RESET", 0x17C00014, 7, 0x00000001, 'd', "PC-Card 1 reset" },
+
+/*
+{ "CPLD_GPIOH_DIR", 0x17C00018, 0, 0xffffffff, 'x', "CPLD" },
+{ "CPLD_GPIOH_VALUE", 0x17C0001C, 0, 0xffffffff, 'x', "CPLD" },
+{ "CPLD_GPIOL_DIR", 0x17C00020, 0, 0xffffffff, 'x', "CPLD" },
+{ "CPLD_GPIOL_VALUE", 0x17C00024, 0, 0xffffffff, 'x', "CPLD" },
+
+ WHEN "00110" =>
+ data(7) <= l3_data_out; -- L3 IIS control bus - direction of data bit
+ data(6) <= '0';
+ data(5) <= '0';
+ data(4) <= '0';
+ data(3) <= '0';
+ data(2) <= '0';
+ data(1) <= gpslow_out(1); -- direction of pld_gpio_09
+ data(0) <= gpslow_out(0); -- direction of pld_gpio_08
+
+ WHEN "00111" => -- gpio on async bus
+ data(7) <= l3_data_io; -- L3 IIS control bus - always reads pin
+ data(6) <= l3_clk; -- L3 IIS control bus - read back clock
+ data(5) <= l3_mode; -- L3 IIS control bus - read back mode
+ data(4) <= '0';
+ data(3) <= '0';
+ data(2) <= '0';
+ data(1) <= gpslow_io(1); -- gpio on async bus
+ data(0) <= gpslow_io(0); -- gpio on async bus
+
+ WHEN "01000" =>
+ data <= gp_out; -- direction of pld_gpio_07 through 00
+
+ WHEN "01001" => -- gpio on high speed bus
+ data <= gp_io;
+*/
+
+{ "CPLD_PCCARD_PWR", 0x17C00028, 0, 0x000000ff, 'x', "CPLD PC-Card Power" },
+{ "CPLD_PCC0_PWR0", 0x17C00028, 0, 0x00000001, 'd', "PC-Card 0 Pwr 0" },
+{ "CPLD_PCC0_PWR1", 0x17C00028, 1, 0x00000001, 'd', "PC-Card 0 Pwr 1" },
+{ "CPLD_PCC0_PWR2", 0x17C00028, 2, 0x00000001, 'd', "PC-Card 0 Pwr 2" },
+{ "CPLD_PCC0_PWR3", 0x17C00028, 3, 0x00000001, 'd', "PC-Card 0 Pwr 3" },
+{ "CPLD_PCC1_PWR0", 0x17C00028, 4, 0x00000001, 'd', "PC-Card 1 Pwr 0" },
+{ "CPLD_PCC1_PWR1", 0x17C00028, 5, 0x00000001, 'd', "PC-Card 1 Pwr 1" },
+{ "CPLD_PCC1_PWR2", 0x17C00028, 6, 0x00000001, 'd', "PC-Card 1 Pwr 2" },
+{ "CPLD_PCC1_PWR3", 0x17C00028, 7, 0x00000001, 'd', "PC-Card 1 Pwr 3" },
+
+{ "CPLD_MISC", 0x17C0002C, 0, 0x000000ff, 'x', "CPLD_MISC_CTRL" },
+{ "CPLD_MISC_SER1EN", 0x17C0002C, 0, 0x00000001, 'd', "RS-232 on FF UART enable" },
+{ "CPLD_MISC_SER2EN", 0x17C0002C, 1, 0x00000001, 'd', "RS-232 on BT UART enable" },
+{ "CPLD_MISC_SER3EN", 0x17C0002C, 2, 0x00000001, 'd', "RS-232 on ST UART enable" },
+{ "CPLD_MISC_IRDAFIR", 0x17C0002C, 3, 0x00000001, 'd', "IrDA FIR enable" },
+{ "CPLD_MISC_IRDAMD0", 0x17C0002C, 4, 0x00000001, 'd', "IrDA mode 0" },
+{ "CPLD_MISC_IRDAMD1", 0x17C0002C, 5, 0x00000001, 'd', "IrDA mode 1" },
+#ifdef CONFIG_ARCH_PXA_IDP
+{ "CPLD_MISC_I2SPWR", 0x17C0002C, 7, 0x00000001, 'd', "UDA1341 power switch" },
+#endif
+
+{ "CPLD_LCD", 0x17C00030, 0, 0x000000ff, 'x', "CPLD LCD Control", },
+#ifdef CONFIG_ARCH_PXA_IDP
+{ "CPLD_LCD_PWR", 0x17C00030, 0, 0x00000001, 'd', "LCD Power" },
+{ "CPLD_LCD_BACKLIGHT", 0x17C00030, 1, 0x00000001, 'd', "LCD Backlight" },
+{ "CPLD_LCD_VLCD", 0x17C00030, 2, 0x00000001, 'd', "LCD VLCD" },
+#else
+{ "CPLD_LCD_VCC", 0x17C00030, 0, 0x00000001, 'd', "LCD VCC" },
+{ "CPLD_LCD_DISPOFF", 0x17C00030, 2, 0x00000001, 'd', "LCD nDISPOFF" },
+#endif
+
+{ "CPLD_FLASH", 0x17C00034, 0, 0x000000ff, 'x', "CPLD Flash Control" },
+{ "CPLD_FLASH_WE", 0x17C00034, 0, 0x00000001, 'd', "CPLD StrataFlash Write Enable" },
+#ifdef CONFIG_ARCH_PXA_IDP
+{ "CPLD_FLASH_MWE", 0x17C00034, 1, 0x00000001, 'd', "CPLD MPlus Write Enable" },
+{ "CPLD_FLASH_MOE", 0x17C00034, 2, 0x00000001, 'd', "CPLD MPlus Output Enable" },
+
+{ "CPLD_CS", 0x17C00038, 0, 0x000000ff, 'x', "CPLD Chip Select Register" },
+{ "CPLD_CS_CS0EN", 0x17C00038, 0, 0x00000001, 'd', "CPLD Chip Select 0 Enable" },
+{ "CPLD_CS_CS1EN", 0x17C00038, 1, 0x00000001, 'd', "CPLD Chip Select 1 Enable" },
+{ "CPLD_CS_CS2EN", 0x17C00038, 2, 0x00000001, 'd', "CPLD Chip Select 2 Enable" },
+{ "CPLD_CS_CS3EN", 0x17C00038, 3, 0x00000001, 'd', "CPLD Chip Select 3 Enable" },
+{ "CPLD_CS_CS4EN", 0x17C00038, 4, 0x00000001, 'd', "CPLD Chip Select 4 Enable" },
+//{ "CPLD_CS_CS5EN", 0x17C00038, 4, 0x00000001, 'd', "CPLD Chip Select 5 Enable" },
+#endif
+
+{ "CPLD_KB_ROW", 0x17C00050, 0, 0x000000ff, 'x', "CPLD" },
+
+{ "CPLD_PCCARD0_STATUS", 0x17C00054, 0, 0x000000ff, 'x', "CPLD PC-Card 0 Status" },
+{ "CPLD_PCC0_VS1", 0x17C00054, 0, 0x00000001, 'd', "PC-Card 0 VS1" },
+{ "CPLD_PCC0_VS2", 0x17C00054, 1, 0x00000001, 'd', "PC-Card 0 VS2" },
+{ "CPLD_PCC0_BVD1", 0x17C00054, 2, 0x00000001, 'd', "PC-Card 0 BVD1" },
+{ "CPLD_PCC0_BVD2", 0x17C00054, 3, 0x00000001, 'd', "PC-Card 0 BVD2" },
+{ "CPLD_PCC0_INPACK", 0x17C00054, 4, 0x00000001, 'd', "PC-Card 0 INPACK" },
+{ "CPLD_PCC0_IRQ", 0x17C00054, 5, 0x00000001, 'd', "PC-Card 0 IRQ" },
+{ "CPLD_PCC0_STRESET", 0x17C00054, 6, 0x00000001, 'd', "PC-Card 0 RESET" },
+{ "CPLD_PCC0_WRPROT", 0x17C00054, 7, 0x00000001, 'd', "PC-Card 0 WRPROT" },
+
+{ "CPLD_PCCARD1_STATUS", 0x17C00058, 0, 0x000000ff, 'x', "CPLD PC-Card 1 Status" },
+{ "CPLD_PCC1_VS1", 0x17C00058, 0, 0x00000001, 'd', "PC-Card 1 VS1" },
+{ "CPLD_PCC1_VS2", 0x17C00058, 1, 0x00000001, 'd', "PC-Card 1 VS2" },
+{ "CPLD_PCC1_BVD1", 0x17C00058, 2, 0x00000001, 'd', "PC-Card 1 BVD1" },
+{ "CPLD_PCC1_BVD2", 0x17C00058, 3, 0x00000001, 'd', "PC-Card 1 BVD2" },
+{ "CPLD_PCC1_INPACK", 0x17C00058, 4, 0x00000001, 'd', "PC-Card 1 INPACK" },
+{ "CPLD_PCC1_IRQ", 0x17C00058, 5, 0x00000001, 'd', "PC-Card 1 IRQ" },
+{ "CPLD_PCC1_STRESET", 0x17C00058, 6, 0x00000001, 'd', "PC-Card 1 RESET" },
+{ "CPLD_PCC1_WRPROT", 0x17C00058, 7, 0x00000001, 'd', "PC-Card 1 WRPROT" },
+
+{ "CPLD_MISC_STATUS", 0x17C0005C, 0, 0x000000ff, 'x', "CPLD Misc Status" },
+{ "CPLD_MISC_USB_D_CON", 0x17C0005C, 0, 0x00000001, 'd', "Charge status" },
+{ "CPLD_MISC_WALL_IN", 0x17C0005C, 1, 0x00000001, 'd', "Charge status" },
+{ "CPLD_MISC_CHG_STS", 0x17C0005C, 2, 0x00000001, 'd', "Charge status" },
+{ "CPLD_MISC_MMC_WPROT", 0x17C0005C, 7, 0x00000001, 'd', "MMC write protect" },
+
+{ "CPLD_VER_YEAR", 0x17C00060, 0, 0x000000ff, 'x', "CPLD Year" },
+{ "CPLD_VER_MONTH", 0x17C00064, 0, 0x000000ff, 'x', "CPLD Month" },
+{ "CPLD_VER_DAY", 0x17C00068, 0, 0x000000ff, 'x', "CPLD Day" },
+{ "CPLD_VER_REV", 0x17C0006C, 0, 0x000000ff, 'x', "CPLD Revision" },
+
+{ "CPLD_VSTAT", 0x17C0007C, 0, 0x000000ff, 'x', "CPLD Voltage Status" },
+#ifdef CONFIG_ARCH_PXA_IDP
+{ "CPLD_BSTAT_V3GOOD", 0x17C0007C, 0, 0x00000001, 'x', "v3good" },
+#endif
+{ "CPLD_BSTAT_BWE", 0x17C0007C, 1, 0x00000001, 'x', "bwe" },
+
+#endif
+
+#if defined(CONFIG_ARCH_RAMSES)
+{ "UARTA_RHR", 0x0C002E00, 0, 0xffffffff, 'x', "UART A RHR/THR" },
+{ "UARTA_IER", 0x0C002E04, 0, 0xffffffff, 'x', "UART A IER" },
+{ "UARTA_FCR", 0x0C002E08, 0, 0xffffffff, 'x', "UART A FCR/IIR" },
+{ "UARTA_LCR", 0x0C002E0C, 0, 0xffffffff, 'x', "UART A LCR" },
+{ "UARTA_MCR", 0x0C002E10, 0, 0xffffffff, 'x', "UART A MCR" },
+{ "UARTA_LSR", 0x0C002E14, 0, 0xffffffff, 'x', "UART A LSR" },
+{ "UARTA_MSR", 0x0C002E18, 0, 0xffffffff, 'x', "UART A MSR" },
+{ "UARTA_SPR", 0x0C002E1C, 0, 0xffffffff, 'x', "UART A SPR" },
+
+{ "UARTB_RHR", 0x0C002D00, 0, 0xffffffff, 'x', "UART B RHR/THR" },
+{ "UARTB_IER", 0x0C002D04, 0, 0xffffffff, 'x', "UART B IER" },
+{ "UARTB_FCR", 0x0C002D08, 0, 0xffffffff, 'x', "UART B FCR/IIR" },
+{ "UARTB_LCR", 0x0C002D0C, 0, 0xffffffff, 'x', "UART B LCR" },
+{ "UARTB_MCR", 0x0C002D10, 0, 0xffffffff, 'x', "UART B MCR" },
+{ "UARTB_LSR", 0x0C002D14, 0, 0xffffffff, 'x', "UART B LSR" },
+{ "UARTB_MSR", 0x0C002D18, 0, 0xffffffff, 'x', "UART B MSR" },
+{ "UARTB_SPR", 0x0C002D1C, 0, 0xffffffff, 'x', "UART B SPR" },
+
+{ "UARTD_RHR", 0x0C002B00, 0, 0xffffffff, 'x', "UART C RHR/THR" },
+{ "UARTD_IER", 0x0C002B04, 0, 0xffffffff, 'x', "UART C IER" },
+{ "UARTD_FCR", 0x0C002B08, 0, 0xffffffff, 'x', "UART C FCR/IIR" },
+{ "UARTD_LCR", 0x0C002B0C, 0, 0xffffffff, 'x', "UART C LCR" },
+{ "UARTD_MCR", 0x0C002B10, 0, 0xffffffff, 'x', "UART C MCR" },
+{ "UARTD_LSR", 0x0C002B14, 0, 0xffffffff, 'x', "UART C LSR" },
+{ "UARTD_MSR", 0x0C002B18, 0, 0xffffffff, 'x', "UART C MSR" },
+{ "UARTD_SPR", 0x0C002B1C, 0, 0xffffffff, 'x', "UART C SPR" },
+
+{ "UARTD_RHR", 0x0C002700, 0, 0xffffffff, 'x', "UART D RHR/THR" },
+{ "UARTD_IER", 0x0C002704, 0, 0xffffffff, 'x', "UART D IER" },
+{ "UARTD_FCR", 0x0C002708, 0, 0xffffffff, 'x', "UART D FCR/IIR" },
+{ "UARTD_LCR", 0x0C00270C, 0, 0xffffffff, 'x', "UART D LCR" },
+{ "UARTD_MCR", 0x0C002710, 0, 0xffffffff, 'x', "UART D MCR" },
+{ "UARTD_LSR", 0x0C002714, 0, 0xffffffff, 'x', "UART D LSR" },
+{ "UARTD_MSR", 0x0C002718, 0, 0xffffffff, 'x', "UART D MSR" },
+{ "UARTD_SPR", 0x0C00271C, 0, 0xffffffff, 'x', "UART D SPR" },
+
+#endif
+
+};
+
+
+
+#define MAP_SIZE 4096
+#define MAP_MASK ( MAP_SIZE - 1 )
+
+static int getmem(u32 addr)
+{
+ void *map, *regaddr;
+ u32 val;
+
+ //printf("getmem(0x%08x)\n", addr);
+
+ if (fd == -1) {
+ fd = open("/dev/mem", O_RDWR | O_SYNC);
+ if (fd<0) {
+ perror("open(\"/dev/mem\")");
+ exit(1);
+ }
+ }
+
+ map = mmap(0,
+ MAP_SIZE,
+ PROT_READ | PROT_WRITE,
+ MAP_SHARED,
+ fd,
+ addr & ~MAP_MASK
+ );
+ if (map == (void*)-1 ) {
+ perror("mmap()");
+ exit(1);
+ }
+
+ regaddr = map + (addr & MAP_MASK);
+
+ val = *(u32*) regaddr;
+ munmap(0,MAP_SIZE);
+
+ return val;
+}
+
+static void putmem(u32 addr, u32 val)
+{
+ void *map, *regaddr;
+ static int fd = -1;
+
+ //printf("putmem(0x%08x, 0x%08x)\n", addr, val);
+
+ if (fd == -1) {
+ fd = open("/dev/mem", O_RDWR | O_SYNC);
+ if (fd<0) {
+ perror("open(\"/dev/mem\")");
+ exit(1);
+ }
+ }
+
+ map = mmap(0,
+ MAP_SIZE,
+ PROT_READ | PROT_WRITE,
+ MAP_SHARED,
+ fd,
+ addr & ~MAP_MASK
+ );
+ if (map == (void*)-1 ) {
+ perror("mmap()");
+ exit(1);
+ }
+
+ regaddr = map + (addr & MAP_MASK);
+
+ *(u32*) regaddr = val;
+ munmap(0,MAP_SIZE);
+}
+
+static u32 lastaddr = 0;
+static u32 newaddr = 1;
+static u32 data = 0;
+static u32 shiftdata;
+
+
+static void dumpentry(int i)
+{
+ int j;
+
+ if (regs[i].addr != lastaddr) newaddr = 1;
+ if (newaddr) {
+ newaddr = 0;
+ lastaddr = regs[i].addr;
+ data = getmem(lastaddr);
+ printf("\n%s\n", regs[i].desc);
+ printf("%-24s 0x%08x ", regs[i].name, data);
+ shiftdata = data;
+ for (j=32; j>0; j--) {
+ printf("%c", shiftdata & 0x80000000 ? '1' : '0');
+ shiftdata = shiftdata << 1;
+ if (j==9 || j==17 || j==25) printf(" ");
+ }
+
+ printf("\n");
+ }
+
+ if (regs[i].shift != 0 || regs[i].mask != 0xffffffff) {
+ shiftdata = (data >> regs[i].shift) & regs[i].mask;
+ printf("%-25s ", regs[i].name);
+ switch (regs[i].type) {
+ case 'x': printf("%8x", shiftdata);
+ break;
+ case '<': printf("%8u", 1 << shiftdata);
+ break;
+ default:
+ printf("%8u", shiftdata);
+ }
+ printf(" %s\n", regs[i].desc);
+ }
+}
+
+
+static void dumpall(void)
+{
+ int i;
+ int n=sizeof(regs)/sizeof(struct reg_info);
+
+ for (i=0; i<n; i++) {
+ dumpentry(i);
+ }
+}
+
+
+static void dumpmatching(char *name)
+{
+ int i;
+ int n=sizeof(regs)/sizeof(struct reg_info);
+
+
+ for (i=0; i<n; i++) {
+ if (strstr(regs[i].name, name))
+ dumpentry(i);
+ }
+}
+
+
+static void setreg(char *name, u32 val)
+{
+ int i;
+ u32 mem;
+ int found=0;
+ int count=0;
+ int n=sizeof(regs)/sizeof(struct reg_info);
+
+
+ for (i=0; i<n; i++) {
+ if (strcmp(regs[i].name, name)==0) {
+ found = i;
+ //printf("Matched %s with %s, count=%d\n", regs[i].name, name, count);
+ count++;
+ }
+ }
+ if (count!=1) {
+ printf("No or more than one matching register found\n");
+ exit(1);
+ }
+
+ mem = getmem(regs[found].addr);
+ //printf("Old contents: 0x%08x\n", mem);
+ mem &= ~(regs[found].mask << regs[found].shift);
+ //printf("Unmasked contents: 0x%08x\n", mem);
+ val &= regs[found].mask;
+ //printf("mask: 0x%08x\n", regs[found].mask);
+ //printf("masked val: 0x%08x\n", val);
+ mem |= val << regs[found].shift;
+ //printf("Embedded value: 0x%08x\n", mem);
+ putmem(regs[found].addr, mem);
+}
+
+
+int main(int argc, char *argv[])
+{
+ char *p;
+ u32 val;
+
+ if (argc == 1) {
+ dumpall();
+ return 0;
+ }
+
+ // Uppercase first argument
+ if (argc >= 2) {
+ p = argv[1];
+ while (*p) {
+ *p = toupper(*p);
+ p++;
+ }
+ }
+
+ if (argc == 2) {
+ dumpmatching(argv[1]);
+ return 0;
+ }
+
+ if (argc == 3) {
+ sscanf(argv[2],"%i",&val);
+ setreg(argv[1], val);
+ return 0;
+ }
+
+ printf("Usage: %s - to dump all known registers\n"
+ " %s <name> - to dump named register\n"
+ " %s <name> <value> - to set named register\n",
+ argv[0], argv[0], argv[0]);
+ return 1;
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/serial.patch b/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/serial.patch
new file mode 100644
index 000000000..06853851d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/serial.patch
@@ -0,0 +1,14 @@
+Index: pxaregs-1.14/pxaregs.c
+===================================================================
+--- pxaregs-1.14.orig/pxaregs.c
++++ pxaregs-1.14/pxaregs.c
+@@ -78,6 +78,9 @@ static struct reg_info regs[] = {
+ { "ISAR", 0x403016A0, 0, 0xffffffff, 'x', "I2C Slave Address Register" },
+ { "ISAR_SA", 0x403016A0, 0, 0x0000007f, 'x', "I2C Slave Address" },
+
++{ "HW_MCR", 0x41600010, 0, 0xffffffff, 'x', "HWUART Modem Control Register" },
++{ "HW_MSR", 0x41600018, 0, 0xffffffff, 'x', "HWUART Modem Status Register" },
++
+ { "PMCR", 0x40F00000, 0, 0xffffffff, 'x', "Power Manager Control Register (3-23)" },
+ { "PMCR_IDAE", 0x40F00000, 0, 0x00000001, 'd', "PM imprecise data abort abort signal" },
+
diff --git a/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/usb.patch b/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/usb.patch
new file mode 100644
index 000000000..59f21fe3c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/usb.patch
@@ -0,0 +1,17 @@
+Index: pxaregs-1.14/pxaregs.c
+===================================================================
+--- pxaregs-1.14.orig/pxaregs.c
++++ pxaregs-1.14/pxaregs.c
+@@ -78,6 +78,12 @@ static struct reg_info regs[] = {
+ { "ISAR", 0x403016A0, 0, 0xffffffff, 'x', "I2C Slave Address Register" },
+ { "ISAR_SA", 0x403016A0, 0, 0x0000007f, 'x', "I2C Slave Address" },
+
++{ "UP2OCR", 0x40600020, 0, 0xffffffff, 'x', "USB Port 2 Output Control Register" },
++{ "UP2OCR_SEOS", 0x40600020, 24, 7, 'x', "USB Port 2 Single-Ended Output Select" },
++{ "UP2OCR_HXOE", 0x40600020, 17, 1, 'x', "USB Port 2 Tranceiver OE" },
++{ "UP2OCR_HXS", 0x40600020, 16, 1, 'x', "USB Port 2 Tranceiver Output Select" },
++{ "UP2OCR_IDON", 0x40600020, 10, 1, 'x', "OTG ID Read Enable" },
++
+ { "HW_MCR", 0x41600010, 0, 0xffffffff, 'x', "HWUART Modem Control Register" },
+ { "HW_MSR", 0x41600018, 0, 0xffffffff, 'x', "HWUART Modem Status Register" },
+
diff --git a/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs_1.14.bb b/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs_1.14.bb
new file mode 100644
index 000000000..30c41fffb
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs_1.14.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Tool to display and modify PXA registers at runtime"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://pxaregs.c;endline=12;md5=668d061b7637acc68cb8071c9be372e6"
+AUTHOR = "Holger Schurig <hs4233@mail.mn-solutions.de>"
+HOMEPAGE = "http://www.mn-logistik.de/unsupported/pxa250/"
+
+SRC_URI = "file://pxaregs.c \
+ file://i2c.patch \
+ file://munmap.patch \
+ file://serial.patch \
+ file://usb.patch "
+
+S = "${WORKDIR}"
+
+do_compile() {
+ ${CC} pxaregs.c -o pxaregs ${CFLAGS} ${LDFLAGS}
+}
+
+do_install() {
+ install -d ${D}${sbindir}/
+ install -m 0755 pxaregs ${D}${sbindir}/
+}
+
+SRC_URI[md5sum] = "a43baa88842cd5926dbffb6fb87624f6"
+SRC_URI[sha256sum] = "f339b91cd8ab348052c36b36d20033e4bffc3666bc836ff72d5704f025e1c057"
diff --git a/meta-openembedded/meta-oe/recipes-support/raptor2/files/0001-configure.ac-do-additional-checks-on-libxml2-also-wh.patch b/meta-openembedded/meta-oe/recipes-support/raptor2/files/0001-configure.ac-do-additional-checks-on-libxml2-also-wh.patch
new file mode 100644
index 000000000..7faeb130a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/raptor2/files/0001-configure.ac-do-additional-checks-on-libxml2-also-wh.patch
@@ -0,0 +1,34 @@
+From 3f97aac5a1f43ef57b02fb9ccdcadd41a6b69fa9 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Tue, 27 Oct 2015 10:21:24 +0100
+Subject: [PATCH] configure.ac: do additional checks on libxml2 also when
+ detected by pkg-config
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Applied [1]
+
+[1] https://github.com/dajobe/raptor/pull/33
+
+Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 10ff870..35fa08e 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -601,7 +601,7 @@ have_libxml=0
+ need_libxml=0
+
+ oCPPFLAGS="$CPPFLAGS"
+-if test "X$XML_CONFIG" != X; then
++if test "X$libxml_source" != X; then
+ CPPFLAGS="$LIBXML_CFLAGS $CPPFLAGS"
+ LIBS="$LIBS $LIBXML_LIBS"
+ AC_CHECK_FUNC(xmlCreatePushParserCtxt, have_xmlCreatePushParserCtxt=yes, have_xmlCreatePushParserCtxt=no)
+--
+2.1.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/raptor2/raptor2_2.0.15.bb b/meta-openembedded/meta-oe/recipes-support/raptor2/raptor2_2.0.15.bb
new file mode 100644
index 000000000..dd00c14f7
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/raptor2/raptor2_2.0.15.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Library for parsing and serializing RDF syntaxes"
+LICENSE = "GPLv2 | LGPLv2.1 | Apache-2.0"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE.txt;md5=b840e5ae3aeb897f45b473341348cd9c \
+ file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
+ file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \
+ file://LICENSE-2.0.txt;md5=3b83ef96387f14655fc854ddc3c6bd57 \
+"
+
+DEPENDS = "libxml2 libxslt curl yajl"
+
+SRC_URI = " \
+ http://download.librdf.org/source/${BPN}-${PV}.tar.gz \
+ file://0001-configure.ac-do-additional-checks-on-libxml2-also-wh.patch \
+"
+SRC_URI[md5sum] = "a39f6c07ddb20d7dd2ff1f95fa21e2cd"
+SRC_URI[sha256sum] = "ada7f0ba54787b33485d090d3d2680533520cd4426d2f7fb4782dd4a6a1480ed"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = " \
+ --without-xml2-config \
+ --without-curl-config \
+ --without-xslt-config \
+"
diff --git a/meta-openembedded/meta-oe/recipes-support/rdfind/files/reproducible_build.patch b/meta-openembedded/meta-oe/recipes-support/rdfind/files/reproducible_build.patch
new file mode 100644
index 000000000..36728a788
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/rdfind/files/reproducible_build.patch
@@ -0,0 +1,46 @@
+Description: sort the filelist when it is complete to get reproducible behaviour
+Author: Reiner Herrmann <reiner@reiner-h.de>
+Bug-Debian: https://bugs.debian.org/795790
+
+Upstream-Status: Pending
+
+Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
+
+Index: rdfind-1.3.4/Fileinfo.hh
+===================================================================
+--- rdfind-1.3.4.orig/Fileinfo.hh
++++ rdfind-1.3.4/Fileinfo.hh
+@@ -189,6 +189,10 @@ public:
+ static bool compareondepth(const Fileinfo &a, const Fileinfo &b)
+ {return (a.depth() < b.depth());}
+
++ //returns true if a has lower filename than b)
++ static bool compareonfilename(const Fileinfo &a, const Fileinfo &b)
++ {return (a.name().compare(b.name()) < 0);}
++
+ //fills with bytes from the file. if lasttype is supplied,
+ //it is used to see if the file needs to be read again - useful if
+ //file is shorter than the length of the bytes field.
+@@ -235,6 +239,10 @@ public:
+ static bool equaldepth(const Fileinfo &a, const Fileinfo &b)
+ {return (a.depth()==b.depth());}
+
++ //returns true if filenames are equal
++ static bool equalfilename(const Fileinfo &a, const Fileinfo &b)
++ {return (a.name()==b.name());}
++
+ //returns true if file is a regular file. call readfileinfo first!
+ bool isRegularFile() {return m_info.is_file;}
+
+Index: rdfind-1.3.4/rdfind.cc
+===================================================================
+--- rdfind-1.3.4.orig/rdfind.cc
++++ rdfind-1.3.4/rdfind.cc
+@@ -349,6 +349,7 @@ int main(int narg, char *argv[])
+ cout<<dryruntext<<"Now have "<<filelist1.size()<<" files in total."<<endl;
+
+
++ gswd.sortlist(&Fileinfo::compareonfilename,&Fileinfo::equalfilename);
+
+ //mark files with a unique number
+ gswd.markitems();
diff --git a/meta-openembedded/meta-oe/recipes-support/rdfind/rdfind_1.3.4.bb b/meta-openembedded/meta-oe/recipes-support/rdfind/rdfind_1.3.4.bb
new file mode 100644
index 000000000..4d984ee05
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/rdfind/rdfind_1.3.4.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Rdfind is a program that finds duplicate files"
+HOMEPAGE = "https://rdfind.pauldreik.se/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=9ac2e7cff1ddaf48b6eab6028f23ef88"
+
+DEPENDS = "nettle"
+
+SRC_URI = "https://rdfind.pauldreik.se/${BP}.tar.gz \
+ file://reproducible_build.patch \
+"
+
+SRC_URI[md5sum] = "97c0cb35933588413583c61d3b5f9adf"
+SRC_URI[sha256sum] = "a5f0b3f72093d927b93898c993479b35682cccb47f7393fb72bd4803212fcc7d"
+
+inherit autotools
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/read-edid/read-edid/0001-configure-remove-check-for-x86.h-we-don-t-build-get-.patch b/meta-openembedded/meta-oe/recipes-support/read-edid/read-edid/0001-configure-remove-check-for-x86.h-we-don-t-build-get-.patch
new file mode 100644
index 000000000..440800235
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/read-edid/read-edid/0001-configure-remove-check-for-x86.h-we-don-t-build-get-.patch
@@ -0,0 +1,28 @@
+From eb7590cc2cdd5c35403af4567d8524e017010f1c Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Sat, 11 May 2013 07:58:17 +0200
+Subject: [PATCH] configure: remove check for x86.h, we don't build get-edid
+
+Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
+
+Upstream-status: Inappropriate [OE specific]
+---
+ configure.in | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index ac85a21..f53e904 100644
+--- a/configure.in
++++ b/configure.in
+@@ -8,8 +8,6 @@ dnl Checks for programs
+
+ AC_PROG_CC
+
+-AC_CHECK_HEADER([libx86.h], [], [AC_MSG_ERROR([libx86.h not found])])
+-
+ dnl Simple, huh?
+
+ AC_OUTPUT([Makefile])
+--
+1.8.1.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/read-edid/read-edid_2.0.0.bb b/meta-openembedded/meta-oe/recipes-support/read-edid/read-edid_2.0.0.bb
new file mode 100644
index 000000000..b002906fa
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/read-edid/read-edid_2.0.0.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "read-edid elucidates various very useful informations from a conforming PnP monitor"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d0bf70fa1ef81fe4741ec0e6231dadfd"
+
+SRC_URI = "http://polypux.org/projects/read-edid/read-edid-${PV}.tar.gz \
+ file://0001-configure-remove-check-for-x86.h-we-don-t-build-get-.patch"
+
+SRC_URI[md5sum] = "586e7fa1167773b27f4e505edc93274b"
+SRC_URI[sha256sum] = "246ec14ec509e09ac26fe6862b120481b2cc881e2f142ba40886d6eec15e77e8"
+
+inherit autotools
+
+do_compile() {
+ oe_runmake parse-edid
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 parse-edid ${D}${bindir}
+}
+
+PACKAGES =+ "parse-edid"
+FILES_parse-edid = "${bindir}/parse-edid"
diff --git a/meta-openembedded/meta-oe/recipes-support/rsnapshot/rsnapshot/configure-fix-cmd_rsync.patch b/meta-openembedded/meta-oe/recipes-support/rsnapshot/rsnapshot/configure-fix-cmd_rsync.patch
new file mode 100644
index 000000000..6466df4e0
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/rsnapshot/rsnapshot/configure-fix-cmd_rsync.patch
@@ -0,0 +1,44 @@
+From 26ad431e19788898fb4ed19ff91392e8b20f1bab Mon Sep 17 00:00:00 2001
+From: Wenzong Fan <wenzong.fan@windriver.com>
+Date: Thu, 16 Oct 2014 04:06:55 -0400
+Subject: [PATCH] fix cmd_rsync
+
+Don't break configure if rsync is not installed on host.
+
+rsync is a runtime dependency and this change is only used for
+generating rsnapshot.conf.default. It allows cmd_rsync to use
+default path if options --without-rsync is specfied.
+
+Upstream-Status: Pending
+
+Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
+---
+ configure.ac | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index bc9df9e..2a33d29 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -55,7 +55,7 @@ AC_ARG_WITH(rsync,
+ AC_MSG_ERROR(rsync not found)
+ fi
+ else
+- AC_MSG_ERROR(rsync is required)
++ RSYNC=no
+ fi
+ ]
+ )
+@@ -67,7 +67,8 @@ if test "$RSYNC" = ""; then
+ fi
+ dnl bail out if we can't find it
+ if test "$RSYNC" = "no"; then
+- AC_MSG_ERROR(rsync is required)
++ RSYNC=${bindir}/rsync
++ AC_SUBST(CMD_RSYNC, "cmd_rsync $RSYNC")
+ fi
+
+
+--
+1.7.9.5
+
diff --git a/meta-openembedded/meta-oe/recipes-support/rsnapshot/rsnapshot_git.bb b/meta-openembedded/meta-oe/recipes-support/rsnapshot/rsnapshot_git.bb
new file mode 100644
index 000000000..aefe3627e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/rsnapshot/rsnapshot_git.bb
@@ -0,0 +1,53 @@
+SUMMARY = "A filesystem snapshot utility based on rsync"
+HOMEPAGE = "http://www.rsnapshot.org"
+BUGTRACKER = "https://sourceforge.net/projects/rsnapshot/"
+SECTION = "console/network"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=892f569a555ba9c07a568a7c0c4fa63a"
+
+RDEPENDS_${PN} = "rsync \
+ perl \
+ perl-module-dirhandle \
+ perl-module-cwd \
+ perl-module-getopt-std \
+ perl-module-file-path \
+ perl-module-file-stat \
+ perl-module-posix \
+ perl-module-fcntl \
+ perl-module-io-file \
+ perl-module-constant \
+ perl-module-overloading \
+ "
+
+SRCREV = "27209563f924a22f510698ea225f53ea52f07cb4"
+PV = "1.4.2+git${SRCPV}"
+
+SRC_URI = "git://github.com/DrHyde/${BPN};branch=master;protocol=git \
+ file://configure-fix-cmd_rsync.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+inherit autotools
+
+# Fix rsnapshot.conf.default:
+# don't inject the host path into target configs.
+EXTRA_OECONF += "--without-cp \
+ --without-rm \
+ --without-du \
+ --without-ssh \
+ --without-logger \
+ --without-rsync \
+ ac_cv_path_PERL=${bindir}/perl \
+ ac_cv_path_MOUNT=${base_bindir}/mount \
+ ac_cv_path_UMOUNT=${base_bindir}/umount \
+ "
+
+# Create 't/include.ac' before starting the autoreconf to fix configure
+# error: configure.ac:302: file 't/include.ac' does not exist
+do_configure_prepend(){
+ saved_dir=`pwd`
+ cd ${S}; ./autogen.sh
+ cd ${saved_dir}
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_svn.bb b/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_svn.bb
new file mode 100644
index 000000000..255754d5d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_svn.bb
@@ -0,0 +1,22 @@
+SUMMARY = "A user-space tool to show and modify the state of GPIOs on the S3c24xx platform"
+SECTION = "console/utils"
+AUTHOR = "Werner Almesberger <werner@openmoko.org>"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://gpio.c;endline=12;md5=cfb91c686857b2e60852b4925d90a3e1"
+SRCREV = "4949"
+PV = "1.0+svnr${SRCPV}"
+PR = "r2"
+
+SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=gpio;protocol=http"
+S = "${WORKDIR}/gpio"
+
+CLEANBROKEN = "1"
+
+do_compile() {
+ ${CC} ${CFLAGS} ${LDFLAGS} -o ${PN} gpio.c
+}
+
+do_install() {
+ install -d ${D}${sbindir}
+ install -m 0755 ${PN} ${D}${sbindir}
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_svn.bb b/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_svn.bb
new file mode 100644
index 000000000..976a4f15e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_svn.bb
@@ -0,0 +1,21 @@
+SUMMARY = "A user-space tool to show and modify the state of GPIOs on the S3c64xx platform"
+SECTION = "console/utils"
+AUTHOR = "Werner Almesberger <werner@openmoko.org>"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://gpio-s3c6410.c;endline=12;md5=060cda1be945ad9194593f11d56d55c7"
+SRCREV = "4949"
+PV = "1.0+svnr${SRCPV}"
+
+SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=gpio;protocol=http"
+S = "${WORKDIR}/gpio"
+
+CLEANBROKEN = "1"
+
+do_compile() {
+ ${CC} ${CFLAGS} ${LDFLAGS} -o ${PN} gpio-s3c6410.c
+}
+
+do_install() {
+ install -d ${D}${sbindir}
+ install -m 0755 ${PN} ${D}${sbindir}
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_svn.bb b/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_svn.bb
new file mode 100644
index 000000000..2d5935dd3
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_svn.bb
@@ -0,0 +1,32 @@
+SUMMARY = "JTAG utility to interface w/ a S3C2410 device"
+SECTION = "devel"
+AUTHOR = "Harald Welte <laforge@openmoko.org>"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://parport.c;endline=19;md5=b5681091b0fd8c5f7068835c441bf0c8"
+SRCREV = "4268"
+PV = "0.1+svnr${SRCPV}"
+PR = "r1"
+
+SRC_URI = "svn://svn.openmoko.org/trunk/src/host/;module=sjf2410-linux;protocol=http"
+S = "${WORKDIR}/sjf2410-linux"
+
+inherit native deploy
+do_deploy[sstate-outputdirs] = "${DEPLOY_DIR_TOOLS}"
+
+CFLAGS += "-DLINUX_PPDEV"
+
+do_compile() {
+ oe_runmake
+}
+
+do_install() {
+ install -d ${D}/${bindir}
+ install -m 0755 sjf2410 ${D}/${bindir}
+}
+
+do_deploy() {
+ install -d ${DEPLOY_DIR_TOOLS}
+ install -m 0755 sjf2410 ${DEPLOY_DIR_TOOLS}/sjf2410-${PV}
+}
+
+addtask deploy before do_build after do_install
diff --git a/meta-openembedded/meta-oe/recipes-support/satyr/files/0001-do-not-support-python2.patch b/meta-openembedded/meta-oe/recipes-support/satyr/files/0001-do-not-support-python2.patch
new file mode 100644
index 000000000..9e95a3f9d
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/satyr/files/0002-fix-compile-failure-against-musl-C-library.patch b/meta-openembedded/meta-oe/recipes-support/satyr/files/0002-fix-compile-failure-against-musl-C-library.patch
new file mode 100644
index 000000000..5827eb4d1
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.23.bb b/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.23.bb
new file mode 100644
index 000000000..f795c3717
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/sdparm/files/make-sysroot-work.patch b/meta-openembedded/meta-oe/recipes-support/sdparm/files/make-sysroot-work.patch
new file mode 100644
index 000000000..3fd85d9e2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/sdparm/files/make-sysroot-work.patch
@@ -0,0 +1,31 @@
+From 15f0722bc5481cca5ba92adceab8c769112e4ea6 Mon Sep 17 00:00:00 2001
+From: Dengke Du <dengke.du@windriver.com>
+Date: Mon, 24 Oct 2016 07:28:13 +0000
+Subject: [PATCH] sdparm: make sysroot work
+
+Upstream-Status: Pending
+
+Add = before the included dir to make sysroot work
+
+Signed-off-by: Roy.Li <rongqing.li@windriver.com>
+Signed-off-by: Dengke Du <dengke.du@windriver.com>
+---
+ src/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 61dd9f8..42c911f 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -41,7 +41,7 @@ sglib_SOURCES = ../lib/sg_lib.c \
+ ../lib/sg_pt_common.c
+
+ if HAVE_SGUTILS
+-INCLUDES = -I/scsi
++INCLUDES = -I=@includedir@/scsi
+ sdparm_LDADD = @GETOPT_O_FILES@ @os_libs@ @SGUTILS_LIBS@
+ sdparm_DEPENDENCIES = @GETOPT_O_FILES@
+ else
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.10.bb b/meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.10.bb
new file mode 100644
index 000000000..3299a77aa
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.10.bb
@@ -0,0 +1,24 @@
+SUMMARY = "fetch and change SCSI mode pages"
+DESCRIPTION = "The sdparm utility accesses and optionally modifies \
+SCSI devices' mode page and inquiry data."
+HOMEPAGE = "http://sg.danny.cz/sg/sdparm.html"
+SECTION = "console/utils"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ecab6c36b7ba82c675581dd0afde36f7 \
+ file://lib/BSD_LICENSE;md5=1d52f4a66f1e0ed96776bf354ab7a2ed"
+DEPENDS="sg3-utils"
+SRC_URI = "http://sg.danny.cz/sg/p/${BPN}-${PV}.tgz \
+ file://make-sysroot-work.patch \
+ "
+MIRRORS += "http://sg.danny.cz/sg/p https://fossies.org/linux/misc"
+
+PACKAGES =+ "${PN}-scripts"
+RDEPENDS_${PN}-scripts += "bash ${PN}"
+
+SRC_URI[md5sum] = "bdae64375376ce8fe4bf9521c1db858f"
+SRC_URI[sha256sum] = "1ea1ed1bb1ee2aef62392618fa42da9ed027d5e655f174525c39235778292ab3"
+
+inherit autotools
+
+# Put the bash scripts to ${PN}-scripts
+FILES_${PN}-scripts = "${bindir}/sas_disk_blink ${bindir}/scsi_ch_swp"
diff --git a/meta-openembedded/meta-oe/recipes-support/serial-utils/pty-forward-native.bb b/meta-openembedded/meta-oe/recipes-support/serial-utils/pty-forward-native.bb
new file mode 100644
index 000000000..7f59b3eca
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/serial-utils/pty-forward-native.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Receive a forwarded serial from serial-forward and provide a PTY"
+AUTHOR = "Holger 'Zecke' Freyther"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ebb5c50ab7cab4baeffba14977030c07"
+SECTION = "console/network"
+SRCREV = "00dbec2636ae0385ad028587e20e446272ff97ec"
+PV = "1.1+gitr${SRCPV}"
+
+SRC_URI = "git://github.com/freesmartphone/cornucopia.git;protocol=https"
+S = "${WORKDIR}/git/tools/serial_forward"
+
+inherit autotools native
+
+do_deploy[sstate-outputdirs] = "${DEPLOY_DIR_IMAGE}"
+do_deploy() {
+ install -d ${DEPLOY_DIR_IMAGE}
+ install -m 0755 ${B}/src/pty_forward ${DEPLOY_DIR_IMAGE}/pty-forward
+}
+
+addtask deploy before do_package after do_install
diff --git a/meta-openembedded/meta-oe/recipes-support/serial-utils/serial-forward/0001-serial_forward-Disable-default-static-linking.patch b/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/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/meta-openembedded/meta-oe/recipes-support/serial-utils/serial-forward_git.bb b/meta-openembedded/meta-oe/recipes-support/serial-utils/serial-forward_git.bb
new file mode 100644
index 000000000..0ef829856
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/serial-utils/serial-forward_git.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Forward a serial using TCP/IP"
+AUTHOR = "Holger 'Zecke' Freyther'"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ebb5c50ab7cab4baeffba14977030c07"
+SECTION = "console/devel"
+SRCREV = "07c6fdede0870edc37a8d51d033b6e7e29aa7c91"
+PV = "1.1+gitr${SRCPV}"
+
+SRC_URI = "git://github.com/freesmartphone/cornucopia.git \
+ file://0001-serial_forward-Disable-default-static-linking.patch;striplevel=3 \
+ "
+S = "${WORKDIR}/git/tools/serial_forward"
+
+inherit autotools
diff --git a/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.42.bb b/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.42.bb
new file mode 100644
index 000000000..c7de05740
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.42.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Utilities for working with generic SCSI devices"
+
+DESCRIPTION = "This package contains low level utilities for devices that use the SCSI command set"
+
+HOMEPAGE = "http://sg.danny.cz/sg/sg3_utils.html"
+SECTION = "console/admin"
+
+LICENSE = "GPLv2+ & BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f90da7fc52172599dbf082d7620f18ca"
+
+SRC_URI = "http://sg.danny.cz/sg/p/sg3_utils-${PV}.tgz"
+MIRRORS += "http://sg.danny.cz/sg/p https://fossies.org/linux/misc"
+
+SRC_URI[md5sum] = "28080de5bf2222f8b55a29093bec8aea"
+SRC_URI[sha256sum] = "1dcb7a0309bd0ba3d4a83acb526973b80106ee26cd9f7398186cd3f0633c9ef3"
+
+inherit autotools-brokensep
+
+S = "${WORKDIR}/sg3_utils-${PV}"
+
+RDEPENDS_${PN} += "bash"
diff --git a/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils/0001-Fix-build-with-clang.patch b/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils/0001-Fix-build-with-clang.patch
new file mode 100644
index 000000000..7b627c16d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils/0001-Fix-build-with-clang.patch
@@ -0,0 +1,29 @@
+From fa8371d348f6a8b0799b2e6c38247dd1399d85e3 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 8 Apr 2017 08:49:48 -0700
+Subject: [PATCH] Fix build with clang
+
+ATTRIBUTE_FORMAT_ARG macro gets computed to be empty with clang
+whereas it does support format attribute, we hard code it
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/shar-opts.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/shar-opts.h b/src/shar-opts.h
+index a287046..172676f 100644
+--- a/src/shar-opts.h
++++ b/src/shar-opts.h
+@@ -377,7 +377,7 @@ extern tOptions sharOptions;
+ # define ATTRIBUTE_FORMAT_ARG(_a)
+ # endif
+
+-static inline char* aoGetsText(char const* pz) ATTRIBUTE_FORMAT_ARG(1);
++static inline char* aoGetsText(char const* pz) __attribute__ ((format_arg(1)));
+ static inline char* aoGetsText(char const* pz) {
+ if (pz == NULL) return NULL;
+ return (char*)gettext(pz);
+--
+2.12.2
+
diff --git a/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb b/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb
new file mode 100644
index 000000000..812fee955
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb
@@ -0,0 +1,21 @@
+SUMMARY = "This is the set of GNU shar utilities."
+HOMEPAGE = "http://www.gnu.org/software/sharutils/"
+SECTION = "console/utils"
+LICENSE="GPLv3+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+inherit gettext autotools
+
+SRC_URI = "ftp://ftp.gnu.org/gnu/${BPN}/${BP}.tar.gz \
+ file://0001-Fix-build-with-clang.patch \
+"
+SRC_URI[md5sum] = "32a51b23e25ad5e6af4b89f228be1800"
+SRC_URI[sha256sum] = "ee336e68549664e7a19b117adf02edfdeac6307f22e5ba78baca457116914637"
+
+do_install_append() {
+ if [ -e ${D}${libdir}/charset.alias ]
+ then
+ rm -rf ${D}${libdir}/charset.alias
+ rmdir --ignore-fail-on-non-empty ${D}${libdir}
+ fi
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/smem/smem_1.4.bb b/meta-openembedded/meta-oe/recipes-support/smem/smem_1.4.bb
new file mode 100644
index 000000000..519020f3b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/smem/smem_1.4.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Report application memory usage in a meaningful way"
+DESCRIPTION = "smem is a tool that can give numerous reports on memory usage on Linux \
+systems. Unlike existing tools, smem can report proportional set size (PSS), \
+which is a more meaningful representation of the amount of memory used by \
+libraries and applications in a virtual memory system."
+HOMEPAGE = "http://www.selenic.com/smem/"
+SECTION = "Applications/System"
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "http://www.selenic.com/${BPN}/download/${BP}.tar.gz"
+SRC_URI[md5sum] = "fe79435c3930389bfdb560255c802162"
+SRC_URI[sha256sum] = "2ea9f878f4cf3c276774c3f7e2a41977a1f2d64f98d2dcb6a15f1f3d84df61ec"
+
+do_compile() {
+ ${CC} ${CFLAGS} ${LDFLAGS} smemcap.c -o smemcap
+}
+
+do_install() {
+ install -d ${D}/${bindir}/
+ install -d ${D}/${mandir}/man8
+ install -m 0755 ${S}/smem ${D}${bindir}/
+ install -m 0755 ${S}/smemcap ${D}${bindir}/
+ install -m 0644 ${S}/smem.8 ${D}/${mandir}/man8/
+}
+RDEPENDS_${PN} += "python-textutils python-compression python-shell python-codecs"
diff --git a/meta-openembedded/meta-oe/recipes-support/spitools/spitools_git.bb b/meta-openembedded/meta-oe/recipes-support/spitools/spitools_git.bb
new file mode 100644
index 000000000..3f6cdc63d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/spitools/spitools_git.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "This package contains some simple command line tools to help using Linux spidev devices"
+HOMEPAGE = "https://github.com/cpb-/spi-tools"
+AUTHOR = "Christophe BLAESS"
+LICENSE="GPLv2"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8c16666ae6c159876a0ba63099614381"
+
+PR = "r0"
+
+BPV = "0.8.1"
+PV = "${BPV}"
+SRCREV = "318bcae5249722873bf58b27afdd20473c7047cc"
+
+S = "${WORKDIR}/git"
+
+SRC_URI = "git://github.com/cpb-/spi-tools.git;protocol=git"
+
+
+inherit autotools
+
diff --git a/meta-openembedded/meta-oe/recipes-support/srecord/files/add-option-to-remove-docs.patch b/meta-openembedded/meta-oe/recipes-support/srecord/files/add-option-to-remove-docs.patch
new file mode 100644
index 000000000..9b2bd9979
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/srecord/files/add-option-to-remove-docs.patch
@@ -0,0 +1,57 @@
+Add option to build this utility without a documentation.
+
+For full documentation building are necessary utilities like
+groff and ps2pdf. Full documentation can takes a lot of space.
+So it can be disabled by overloading makefile variable WITHOUT_DOC.
+
+Upstream-Status: Inappropriate [Other]
+Workaround specific to our build system.
+
+Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
+
+diff --git a/Makefile.in b/Makefile.in
+index 9bdd8f1..a2b5494 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -141,6 +141,14 @@ GROFF = @GROFF@
+ #
+ SOELIM = @SOELIM@
+
++# Option to build this utility without building and installing the documentation.
++WITHOUT_DOC ?= 0
++ifeq ($(WITHOUT_DOC),0)
++ BUILD_DOC = all-doc
++ INST_DOC = install-doc
++ CLR_DOC = clean-doc
++endif
++
+ # ---------------------------------------------------------
+ # You should not need to change anything below this line.
+
+@@ -4090,7 +4098,7 @@ bin/test_url_decode: $(test_url_decode_obj) .bin srecord/libsrecord.la
+ $(LIBTOOL) --mode=link --tag=CXX $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ \
+ $(test_url_decode_obj) srecord/libsrecord.la $(LDFLAGS) $(LIBS)
+
+-all: all-bin all-doc
++all: all-bin $(BUILD_DOC)
+
+ all-bin: bin/srec_cat bin/srec_cmp bin/srec_info bin/test_arglex_ambiguous \
+ bin/test_crc16 bin/test_fletcher16 bin/test_gecos \
+@@ -4156,7 +4164,7 @@ test_files = t0001a t0002a t0003a t0004a t0005a t0006a t0007a t0008a t0009a \
+ sure: $(test_files)
+ @echo Passed All Tests
+
+-clean: clean-bin clean-doc clean-misc clean-obj
++clean: clean-bin $(CLR_DOC) clean-misc clean-obj
+
+ clean-bin:
+ rm -f bin/srec_cat bin/srec_cmp bin/srec_info bin/test_arglex_ambiguous
+@@ -4443,7 +4451,7 @@ distclean-directories:
+ rm -rf test/fletcher16/.libs test/gecos/.libs test/hyphen/.libs
+ rm -rf test/url_decode/.libs
+
+-install: install-bin install-doc install-include install-libdir install-man
++install: install-bin $(INST_DOC) install-include install-libdir install-man
+
+ install-bin: $(bindir)/srec_cat $(bindir)/srec_cmp $(bindir)/srec_info
+
diff --git a/meta-openembedded/meta-oe/recipes-support/srecord/srecord_1.64.bb b/meta-openembedded/meta-oe/recipes-support/srecord/srecord_1.64.bb
new file mode 100644
index 000000000..fe1af476f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/srecord/srecord_1.64.bb
@@ -0,0 +1,23 @@
+SUMMARY = "A collection of powerful tools for manipulating EPROM load files."
+SECTION = "devel"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8dfcbf2f0a144b97f0931b6394debea7"
+
+SRC_URI = " \
+ http://srecord.sourceforge.net/srecord-${PV}.tar.gz \
+ file://add-option-to-remove-docs.patch \
+"
+
+SRC_URI[md5sum] = "4de4a7497472d7972645c2af91313769"
+SRC_URI[sha256sum] = "49a4418733c508c03ad79a29e95acec9a2fbc4c7306131d2a8f5ef32012e67e2"
+
+DEPENDS = "libtool-native boost groff-native"
+
+inherit autotools-brokensep
+
+EXTRA_OECONF = "--without-gcrypt LIBTOOL=${STAGING_BINDIR_CROSS}/${HOST_SYS}-libtool"
+
+# Set variable WITHOUT_DOC=0 to enable documentation generation
+EXTRA_OEMAKE = "WITHOUT_DOC=1"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0001-Use-pragma-once-unconditionally.patch b/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0001-Use-pragma-once-unconditionally.patch
new file mode 100644
index 000000000..ef6ae00e3
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0001-ssieventmonitor-ordered-comparison-between-pointers-.patch b/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/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/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0002-Convert-macros-into-functions.patch b/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0002-Convert-macros-into-functions.patch
new file mode 100644
index 000000000..351301cdc
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0003-Replace-canonicalize_file_name-with-realpath-API.patch b/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/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/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0004-engine-Fix-indentation-and-missing-semi-colon.patch b/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/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/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0005-engine-Define-SENTINEL.patch b/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0005-engine-Define-SENTINEL.patch
new file mode 100644
index 000000000..6f4dbf18e
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/0006-tools-Add-missing-includes-and-use-realpath-instead-.patch b/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/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/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/configure-cflags.patch b/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi/configure-cflags.patch
new file mode 100644
index 000000000..d45be590c
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi_1.0.1.bb b/meta-openembedded/meta-oe/recipes-support/ssiapi/ssiapi_1.0.1.bb
new file mode 100644
index 000000000..5eb4696b5
--- /dev/null
+++ b/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/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0001-dpkg-start-stop-daemon-Accept-SIG-prefixed-signal-na.patch b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0001-dpkg-start-stop-daemon-Accept-SIG-prefixed-signal-na.patch
new file mode 100644
index 000000000..e988efded
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0001-dpkg-start-stop-daemon-Accept-SIG-prefixed-signal-na.patch
@@ -0,0 +1,39 @@
+From 685645a20e39cf2ab7db8d1f5e3666a4228abca8 Mon Sep 17 00:00:00 2001
+From: Ioan-Adrian Ratiu <adrian.ratiu@ni.com>
+Date: Wed, 8 Jul 2015 09:44:57 +0300
+Subject: [PATCH 1/1] dpkg start-stop-daemon: Accept SIG prefixed signal names
+
+---
+ utils/start-stop-daemon.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/utils/start-stop-daemon.c b/utils/start-stop-daemon.c
+index 6aebe9b..e805082 100644
+--- a/utils/start-stop-daemon.c
++++ b/utils/start-stop-daemon.c
+@@ -18,6 +18,9 @@
+ * and Andreas Schuldei <andreas@schuldei.org>
+ *
+ * Changes by Ian Jackson: added --retry (and associated rearrangements).
++ *
++ * Changes by Haris Okanovic <haris.okanovic@ni.com> to support 'SIG'
++ * prefixed signal names placed in public domain as well.
+ */
+
+ #include <config.h>
+@@ -661,6 +664,12 @@ parse_signal(const char *sig_str, int *sig_num)
+ if (parse_unsigned(sig_str, 10, sig_num) == 0)
+ return 0;
+
++ /* Skip over optional "SIG" prefix */
++ if (strncmp(sig_str, "SIG", 3) == 0) {
++ warning("Using deprecated signal name %s. Drop the 'SIG' prefix.\n", sig_str);
++ sig_str += 3;
++ }
++
+ for (i = 0; i < array_count(siglist); i++) {
+ if (strcmp(sig_str, siglist[i].name) == 0) {
+ *sig_num = siglist[i].signal;
+--
+2.1.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.17.25.bb b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.17.25.bb
new file mode 100644
index 000000000..cc2727b75
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.17.25.bb
@@ -0,0 +1,38 @@
+SUMMARY = "Debian's start-stop-daemon utility extracted from the dpkg \
+package"
+LICENSE = "PD"
+LIC_FILES_CHKSUM = "file://utils/start-stop-daemon.c;endline=21;md5=8fbd0497a7d0b01e99820bffcb58e9ad"
+# start-stop-daemon is usually shipped by dpkg
+DEPENDS = "ncurses"
+RCONFLICTS_${PN} = "dpkg"
+
+SRC_URI = " \
+ ${DEBIAN_MIRROR}/main/d/dpkg/dpkg_${PV}.tar.xz \
+ file://0001-dpkg-start-stop-daemon-Accept-SIG-prefixed-signal-na.patch \
+"
+
+SRC_URI[md5sum] = "e48fcfdb2162e77d72c2a83432d537ca"
+SRC_URI[sha256sum] = "07019d38ae98fb107c79dbb3690cfadff877f153b8c4970e3a30d2e59aa66baa"
+
+inherit autotools gettext pkgconfig
+
+S = "${WORKDIR}/dpkg-${PV}"
+
+EXTRA_OECONF = " \
+ --without-bz2 \
+ --without-selinux \
+"
+
+do_install_append () {
+ # remove everything that is not related to start-stop-daemon, since there
+ # is no explicit rule for only installing ssd
+ find ${D} -type f -not -name "*start-stop-daemon*" -exec rm {} \;
+ find ${D} -depth -type d -empty -exec rmdir {} \;
+
+ # support for buggy init.d scripts that refer to an alternative
+ # explicit path to start-stop-daemon
+ if [ "${base_sbindir}" != "${sbindir}" ]; then
+ mkdir -p ${D}${base_sbindir}
+ ln -sf ${sbindir}/start-stop-daemon ${D}${base_sbindir}/start-stop-daemon
+ fi
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/synergy/synergy_git.bb b/meta-openembedded/meta-oe/recipes-support/synergy/synergy_git.bb
new file mode 100644
index 000000000..68f0387ba
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/synergy/synergy_git.bb
@@ -0,0 +1,35 @@
+SUMMARY = "Synergy - control multiple computers with one keyboard and mouse"
+HOMEPAGE = "http://synergy-project.org"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d2ba51ca68e055566aade24662f9eb41"
+LICENSE = "GPL-2.0-with-OpenSSL-exception"
+SECTION = "x11/utils"
+
+DEPENDS = "virtual/libx11 libxtst libxinerama curl openssl"
+do_unpack_extra[depends] = "unzip-native:do_populate_sysroot"
+
+# depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI = "git://github.com/symless/synergy.git;protocol=http"
+
+# Version 1.8.8-stable
+SRCREV ?= "c30301e23424db1125664da17deb8c3aa6aec52d"
+PV = "1.8.8+${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+inherit cmake distro_features_check
+
+do_unpack_extra() {
+ cd ${S}/ext
+ for file in *.zip; do
+ fname="${file##*/}"
+ unzip $file -d ${fname%.*}
+ done
+}
+addtask unpack_extra after do_unpack before do_patch
+
+do_install() {
+ install -d ${D}/usr/bin
+ install -m 0755 ${S}/bin/synergy* ${D}/usr/bin/
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/Fix-the-memory-leak-problem-when-HAVE_ENVIRON-defined.patch b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/Fix-the-memory-leak-problem-when-HAVE_ENVIRON-defined.patch
new file mode 100644
index 000000000..5d481f232
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/Fix-the-memory-leak-problem-when-HAVE_ENVIRON-defined.patch
@@ -0,0 +1,29 @@
+Fix the memory leak problem when HAVE_ENVIRON is defined
+
+Upstream-Status: Pending
+
+Signed-off-by: Xufeng Zhang <xufeng.zhang@windriver.com>
+---
+Index: syslog-ng-3.8.1/lib/gprocess.c
+===================================================================
+--- syslog-ng-3.8.1.orig/lib/gprocess.c
++++ syslog-ng-3.8.1/lib/gprocess.c
+@@ -1432,6 +1432,18 @@ g_process_startup_ok(void)
+ void
+ g_process_finish(void)
+ {
++#ifdef HAVE_ENVIRON
++ int i = 0;
++
++ while (environ[i]) {
++ g_free(environ[i]);
++ ++i;
++ }
++ if (environ)
++ g_free(environ);
++ if (process_opts.argv_orig)
++ free(process_opts.argv_orig);
++#endif
+ g_process_remove_pidfile();
+ }
+
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/configure.ac-add-option-enable-thread-tls-to-manage-.patch b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/configure.ac-add-option-enable-thread-tls-to-manage-.patch
new file mode 100644
index 000000000..c172e4e74
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/configure.ac-add-option-enable-thread-tls-to-manage-.patch
@@ -0,0 +1,47 @@
+configure.ac: add option --enable-thread-tls to manage thread ssl support
+
+Add option --enable-thread-tls to manage the including of thread
+local storage, so we could explicitly disable it.
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ configure.ac | 17 +++++++++++------
+ 1 file changed, 11 insertions(+), 6 deletions(-)
+
+Index: syslog-ng-3.8.1/configure.ac
+===================================================================
+--- syslog-ng-3.8.1.orig/configure.ac
++++ syslog-ng-3.8.1/configure.ac
+@@ -147,6 +147,9 @@ AC_ARG_ENABLE(gprof,
+ AC_ARG_ENABLE(memtrace,
+ [ --enable-memtrace Enable alternative leak debugging code.])
+
++AC_ARG_ENABLE(thread-tls,
++ [ --enable-thread-tls Enable Thread Transport Layer Security support.],,enable_thread_tls="no")
++
+ AC_ARG_ENABLE(dynamic-linking,
+ [ --enable-dynamic-linking Link everything dynamically.],,enable_dynamic_linking="auto")
+
+@@ -486,12 +489,14 @@ dnl ************************************
+ dnl Is the __thread keyword available?
+ dnl ***************************************************************************
+
+-AC_LINK_IFELSE([AC_LANG_PROGRAM(
+-[[#include <pthread.h>
+-__thread int a;
+-]],
+-[a=0;])],
+-[ac_cv_have_tls=yes; AC_DEFINE_UNQUOTED(HAVE_THREAD_KEYWORD, 1, "Whether Transport Layer Security is supported by the system")])
++if test "x$enable_thread_tls" != "xno"; then
++ AC_LINK_IFELSE([AC_LANG_PROGRAM(
++ [[#include <pthread.h>
++ __thread int a;
++ ]],
++ [a=0;])],
++ [ac_cv_have_tls=yes; AC_DEFINE_UNQUOTED(HAVE_THREAD_KEYWORD, 1, "Whether Transport Layer Security is supported by the system")])
++fi
+
+ dnl ***************************************************************************
+ dnl How to do static linking?
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/fix-config-libnet.patch b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/fix-config-libnet.patch
new file mode 100644
index 000000000..553f4a517
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/fix-config-libnet.patch
@@ -0,0 +1,63 @@
+Subject: [PATCH] add libnet enable option
+
+Upstream-Status: Pending
+
+This would avoid a implicit auto-detecting result.
+
+Signed-off-by: Ming Liu <ming.liu@windriver.com>
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+---
+ configure.ac | 27 +++++++++++++++++----------
+ 1 files changed, 17 insertions(+), 10 deletions(-)
+
+Index: syslog-ng-3.8.1/configure.ac
+===================================================================
+--- syslog-ng-3.8.1.orig/configure.ac
++++ syslog-ng-3.8.1/configure.ac
+@@ -104,6 +104,9 @@ AC_CONFIG_HEADERS(config.h)
+ dnl ***************************************************************************
+ dnl Arguments
+
++AC_ARG_ENABLE(libnet,
++ [ --enable-libnet Enable libnet support.],, enable_libnet="no")
++
+ AC_ARG_WITH(libnet,
+ [ --with-libnet=path use path to libnet-config script],
+ ,
+@@ -893,22 +896,26 @@ dnl ************************************
+ dnl libnet headers/libraries
+ dnl ***************************************************************************
+ AC_MSG_CHECKING(for LIBNET)
+-if test "x$with_libnet" = "x"; then
+- LIBNET_CONFIG="`which libnet-config`"
+-else
+- LIBNET_CONFIG="$with_libnet/libnet-config"
+-fi
++if test "x$enable_libnet" = xyes; then
++ if test "x$with_libnet" = "x"; then
++ LIBNET_CONFIG="`which libnet-config`"
++ else
++ LIBNET_CONFIG="$with_libnet/libnet-config"
++ fi
++
++ if test -n "$LIBNET_CONFIG" -a -x "$LIBNET_CONFIG"; then
++ LIBNET_CFLAGS="`$LIBNET_CONFIG --defines`"
++ LIBNET_LIBS="`$LIBNET_CONFIG --libs`"
++ AC_MSG_RESULT(yes)
++ else
++ AC_MSG_ERROR([Could not find libnet, and libnet support was explicitly enabled.])
++ fi
+
+-if test -n "$LIBNET_CONFIG" -a -x "$LIBNET_CONFIG"; then
+- LIBNET_CFLAGS="`$LIBNET_CONFIG --defines`"
+- LIBNET_LIBS="`$LIBNET_CONFIG --libs`"
+- AC_MSG_RESULT(yes)
+ else
+ LIBNET_LIBS=
+ AC_MSG_RESULT(no)
+ fi
+
+-
+ if test "x$enable_spoof_source" = "xauto"; then
+ AC_MSG_CHECKING(whether to enable spoof source support)
+ if test "x$LIBNET_LIBS" != "x"; then
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/fix-invalid-ownership.patch b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/fix-invalid-ownership.patch
new file mode 100644
index 000000000..54ecce57e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/fix-invalid-ownership.patch
@@ -0,0 +1,25 @@
+syslog-ng: fix wrong ownership issue
+
+Upstream-Status: Pending
+
+The ownership of build user is preserved for some target files, fixed it by
+adding --no-same-owner option to tar when extracting files.
+
+Signed-off-by: Ming Liu <ming.liu@windriver.com>
+---
+ scl/Makefile.am | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+Index: syslog-ng-3.8.1/scl/Makefile.am
+===================================================================
+--- syslog-ng-3.8.1.orig/scl/Makefile.am
++++ syslog-ng-3.8.1/scl/Makefile.am
+@@ -27,7 +27,7 @@ scl-install-data-local:
+ fi; \
+ done
+ $(mkinstalldirs) $(DESTDIR)/$(scldir)
+- (cd $(srcdir)/scl; tar cf - $(SCL_SUBDIRS)) | (cd $(DESTDIR)/$(scldir) && tar xf -)
++ (cd $(srcdir)/scl; tar cf - $(SCL_SUBDIRS)) | (cd $(DESTDIR)/$(scldir) && tar xf - --no-same-owner)
+ chmod -R u+rwX $(DESTDIR)/$(scldir)
+
+ scl-uninstall-local:
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/initscript b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/initscript
new file mode 100644
index 000000000..910030f41
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/initscript
@@ -0,0 +1,62 @@
+#! /bin/sh
+#
+# This is an init script for openembedded
+# Copy it to /etc/init.d/syslog-ng and type
+# > update-rc.d syslog-ng defaults 5
+#
+
+# Source function library
+. /etc/init.d/functions
+
+syslog_ng=/usr/sbin/syslog-ng
+test -x "$syslog_ng" || exit 0
+
+PIDFILE=/var/run/syslog-ng/syslog-ng.pid
+
+create_xconsole() {
+ test -e /dev/xconsole || mknod -m 640 /dev/xconsole p
+ test -x /sbin/restorecon && /sbin/restorecon /dev/xconsole
+}
+
+RETVAL=0
+
+case "$1" in
+ start)
+ [ "${VERBOSE}" != "no" ] && echo -n "Starting syslog-ng:"
+ create_xconsole
+ start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $syslog_ng
+ [ "${VERBOSE}" != "no" ] && echo "."
+ ;;
+ stop)
+ [ "${VERBOSE}" != "no" ] && echo -n "Stopping syslog-ng:"
+ start-stop-daemon --stop --quiet --pidfile $PIDFILE
+ [ "${VERBOSE}" != "no" ] && echo "."
+ ;;
+ reload|force-reload)
+ start-stop-daemon --stop --quiet --signal 1 --exec $syslog_ng
+ ;;
+ restart)
+ echo "Stopping syslog-ng:"
+ start-stop-daemon --stop --quiet --pidfile $PIDFILE
+ echo -n "Waiting for syslog-ng to die off"
+ for i in 1 2 3 ;
+ do
+ sleep 1
+ echo -n "."
+ done
+ echo ""
+ echo -n "Starting syslog-ng:"
+ create_xconsole
+ start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $syslog_ng
+ echo "."
+ ;;
+ status)
+ status $syslog_ng
+ RETVAL=$?
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|reload|restart|force-reload|status}"
+ exit 1
+esac
+
+exit $RETVAL
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf
new file mode 100644
index 000000000..0c6f54355
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf
@@ -0,0 +1,155 @@
+@version: 3.8
+#
+# Syslog-ng configuration file, compatible with default Debian syslogd
+# installation. Originally written by anonymous (I can't find his name)
+# Revised, and rewrited by me (SZALAY Attila <sasa@debian.org>)
+
+# First, set some global options.
+options { chain_hostnames(off); flush_lines(0); use_dns(no); use_fqdn(no);
+ owner("root"); group("adm"); perm(0640); stats_freq(0);
+ bad_hostname("^gconfd$");
+};
+
+########################
+# Sources
+########################
+# This is the default behavior of sysklogd package
+# Logs may come from unix stream, but not from another machine.
+#
+source s_src { unix-dgram("/dev/log"); internal();
+ file("/proc/kmsg" program_override("kernel"));
+};
+
+# If you wish to get logs from remote machine you should uncomment
+# this and comment the above source line.
+#
+#source s_net { tcp(ip(127.0.0.1) port(1000) authentication(required) encrypt(allow)); };
+
+########################
+# Destinations
+########################
+# First some standard logfile
+#
+destination d_auth { file("/var/log/auth.log"); };
+destination d_cron { file("/var/log/cron.log"); };
+destination d_daemon { file("/var/log/daemon.log"); };
+destination d_kern { file("/var/log/kern.log"); };
+destination d_lpr { file("/var/log/lpr.log"); };
+destination d_mail { file("/var/log/mail.log"); };
+destination d_syslog { file("/var/log/syslog"); };
+destination d_user { file("/var/log/user.log"); };
+destination d_uucp { file("/var/log/uucp.log"); };
+
+# This files are the log come from the mail subsystem.
+#
+destination d_mailinfo { file("/var/log/mail/mail.info"); };
+destination d_mailwarn { file("/var/log/mail/mail.warn"); };
+destination d_mailerr { file("/var/log/mail/mail.err"); };
+
+# Logging for INN news system
+#
+destination d_newscrit { file("/var/log/news/news.crit"); };
+destination d_newserr { file("/var/log/news/news.err"); };
+destination d_newsnotice { file("/var/log/news/news.notice"); };
+
+# Some 'catch-all' logfiles.
+#
+destination d_debug { file("/var/log/debug"); };
+destination d_error { file("/var/log/error"); };
+destination d_messages { file("/var/log/messages"); };
+
+# The root's console.
+#
+destination d_console { usertty("root"); };
+
+# Virtual console.
+#
+destination d_console_all { file("/dev/tty10"); };
+
+# The named pipe /dev/xconsole is for the nsole' utility. To use it,
+# you must invoke nsole' with the -file' option:
+#
+# $ xconsole -file /dev/xconsole [...]
+#
+destination d_xconsole { pipe("/dev/xconsole"); };
+
+# Send the messages to an other host
+#
+#destination d_net { tcp("127.0.0.1" port(1000) authentication(on) encrypt(on) log_fifo_size(1000)); };
+
+# Debian only
+destination d_ppp { file("/var/log/ppp.log"); };
+
+########################
+# Filters
+########################
+# Here's come the filter options. With this rules, we can set which
+# message go where.
+
+filter f_dbg { level(debug); };
+filter f_info { level(info); };
+filter f_notice { level(notice); };
+filter f_warn { level(warn); };
+filter f_err { level(err); };
+filter f_crit { level(crit .. emerg); };
+
+filter f_debug { level(debug) and not facility(auth, authpriv, news, mail); };
+filter f_error { level(err .. emerg) ; };
+filter f_messages { level(info,notice,warn) and
+ not facility(auth,authpriv,cron,daemon,mail,news); };
+
+filter f_auth { facility(auth, authpriv) and not filter(f_debug); };
+filter f_cron { facility(cron) and not filter(f_debug); };
+filter f_daemon { facility(daemon) and not filter(f_debug); };
+filter f_kern { facility(kern) and not filter(f_debug); };
+filter f_lpr { facility(lpr) and not filter(f_debug); };
+filter f_local { facility(local0, local1, local3, local4, local5,
+ local6, local7) and not filter(f_debug); };
+filter f_mail { facility(mail) and not filter(f_debug); };
+filter f_news { facility(news) and not filter(f_debug); };
+filter f_syslog3 { not facility(auth, authpriv, mail) and not filter(f_debug); };
+filter f_user { facility(user) and not filter(f_debug); };
+filter f_uucp { facility(uucp) and not filter(f_debug); };
+
+filter f_cnews { level(notice, err, crit) and facility(news); };
+filter f_cother { level(debug, info, notice, warn) or facility(daemon, mail); };
+
+filter f_ppp { facility(local2) and not filter(f_debug); };
+filter f_console { level(warn .. emerg); };
+
+########################
+# Log paths
+########################
+log { source(s_src); filter(f_auth); destination(d_auth); };
+log { source(s_src); filter(f_cron); destination(d_cron); };
+log { source(s_src); filter(f_daemon); destination(d_daemon); };
+log { source(s_src); filter(f_kern); destination(d_kern); };
+log { source(s_src); filter(f_lpr); destination(d_lpr); };
+log { source(s_src); filter(f_syslog3); destination(d_syslog); };
+log { source(s_src); filter(f_user); destination(d_user); };
+log { source(s_src); filter(f_uucp); destination(d_uucp); };
+
+log { source(s_src); filter(f_mail); destination(d_mail); };
+#log { source(s_src); filter(f_mail); filter(f_info); destination(d_mailinfo); };
+#log { source(s_src); filter(f_mail); filter(f_warn); destination(d_mailwarn); };
+#log { source(s_src); filter(f_mail); filter(f_err); destination(d_mailerr); };
+
+log { source(s_src); filter(f_news); filter(f_crit); destination(d_newscrit); };
+log { source(s_src); filter(f_news); filter(f_err); destination(d_newserr); };
+log { source(s_src); filter(f_news); filter(f_notice); destination(d_newsnotice); };
+#log { source(s_src); filter(f_cnews); destination(d_console_all); };
+#log { source(s_src); filter(f_cother); destination(d_console_all); };
+
+#log { source(s_src); filter(f_ppp); destination(d_ppp); };
+
+log { source(s_src); filter(f_debug); destination(d_debug); };
+log { source(s_src); filter(f_error); destination(d_error); };
+log { source(s_src); filter(f_messages); destination(d_messages); };
+
+log { source(s_src); filter(f_console); destination(d_console_all);
+ destination(d_xconsole); };
+log { source(s_src); filter(f_crit); destination(d_console); };
+
+# All messages send to a remote site
+#
+#log { source(s_src); destination(d_net); };
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch
new file mode 100644
index 000000000..6b30c20c1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch
@@ -0,0 +1,31 @@
+From 0be9c08dd3f825e92fa02d4a08d8aff743109e61 Mon Sep 17 00:00:00 2001
+From: Li xin <lixin.fnst@cn.fujitsu.com>
+Date: Wed, 17 Jun 2015 14:46:30 +0900
+Subject: [PATCH] syslog-ng.service: the syslog-ng service can not start
+ successfully,so modify it.
+
+Upstream-Status: pending
+
+Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
+---
+ contrib/systemd/syslog-ng.service | 5 ++---
+ 1 file changed, 2 insertion(+), 3 deletions(-)
+
+diff --git a/contrib/systemd/syslog-ng.service b/contrib/systemd/syslog-ng.service
+index fc16f8d..8e09deb 100644
+--- a/contrib/systemd/syslog-ng.service
++++ b/contrib/systemd/syslog-ng.service
+@@ -4,8 +4,8 @@ Description=System Logger Daemon
+
+ [Service]
+ Type=notify
+-ExecStart=/usr/sbin/syslog-ng -F $SYSLOGNG_OPTS
+-ExecReload=/bin/kill -HUP $MAINPID
++ExecStart=@SBINDIR@/syslog-ng -F $SYSLOGNG_OPTS -p @LOCALSTATEDIR@/run/syslogd.pid
++ExecReload=@BASEBINDIR@/kill -HUP $MAINPID
+ EnvironmentFile=-/etc/default/syslog-ng
+ EnvironmentFile=-/etc/sysconfig/syslog-ng
+ StandardOutput=journal
+--
+1.8.4.2
+
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/volatiles.03_syslog-ng b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/volatiles.03_syslog-ng
new file mode 100644
index 000000000..3c4a50d54
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/volatiles.03_syslog-ng
@@ -0,0 +1 @@
+d root root 0755 /var/run/syslog-ng none
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc b/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc
new file mode 100644
index 000000000..771cdb196
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc
@@ -0,0 +1,114 @@
+SUMMARY = "Alternative system logger daemon"
+DESCRIPTION = "syslog-ng, as the name shows, is a syslogd replacement, \
+but with new functionality for the new generation. The original syslogd \
+allows messages only to be sorted based on priority/facility pairs; \
+syslog-ng adds the possibility to filter based on message contents using \
+regular expressions. The new configuration scheme is intuitive and powerful. \
+Forwarding logs over TCP and remembering all forwarding hops makes it \
+ideal for firewalled environments. \
+"
+HOMEPAGE = "http://www.balabit.com/network-security/syslog-ng/opensource-logging-system"
+
+LICENSE = "GPLv2 & LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=24c0c5cb2c83d9f2ab725481e4df5240"
+
+# util-linux added to get libuuid
+DEPENDS = "libpcre flex eventlog glib-2.0 openssl util-linux"
+
+SRC_URI = "https://github.com/balabit/syslog-ng/releases/download/${BP}/${BP}.tar.gz \
+ file://syslog-ng.conf \
+ file://initscript \
+ file://volatiles.03_syslog-ng \
+ file://configure.ac-add-option-enable-thread-tls-to-manage-.patch \
+"
+
+inherit autotools gettext systemd pkgconfig update-rc.d
+
+EXTRA_OECONF = " \
+ --enable-dynamic-linking \
+ --disable-sub-streams \
+ --disable-pacct \
+ --localstatedir=${localstatedir}/lib/${BPN} \
+ --sysconfdir=${sysconfdir}/${BPN} \
+ --with-module-dir=${libdir}/${BPN} \
+ --with-sysroot=${STAGING_DIR_HOST} \
+ --without-mongoc --disable-mongodb \
+ --with-librabbitmq-client=no \
+ --disable-python \
+ --disable-java --disable-java-modules \
+ --with-pidfile-dir=${localstatedir}/run/${BPN} \
+ ${CONFIG_TLS} \
+"
+
+CONFIG_TLS = "--enable-thread-tls"
+CONFIG_TLS_arm = "${@oe.utils.conditional( "DEBUG_BUILD", "1", " --disable-thread-tls", " --enable-thread-tls", d )}"
+
+PACKAGECONFIG ??= " \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 systemd', d)} \
+"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,,"
+PACKAGECONFIG[systemd] = "--enable-systemd --with-systemdsystemunitdir=${systemd_unitdir}/system/,--disable-systemd --without-systemdsystemunitdir,systemd,"
+PACKAGECONFIG[linux-caps] = "--enable-linux-caps,--disable-linux-caps,libcap,"
+PACKAGECONFIG[dbi] = "--enable-sql,--disable-sql,libdbi,"
+PACKAGECONFIG[libnet] = "--enable-libnet --with-libnet=${STAGING_BINDIR_CROSS},--disable-libnet,libnet,"
+PACKAGECONFIG[http] = "--enable-http,--disable-http,curl,"
+PACKAGECONFIG[smtp] = "--enable-smtp --with-libesmtp=${STAGING_LIBDIR},--disable-smtp,libesmtp,"
+PACKAGECONFIG[json] = "--enable-json,--disable-json,json-c,"
+PACKAGECONFIG[tcp-wrapper] = "--enable-tcp-wrapper,--disable-tcp-wrapper,tcp-wrappers,"
+PACKAGECONFIG[geoip] = "--enable-geoip,--disable-geoip,geoip,"
+PACKAGECONFIG[native] = "--enable-native,--disable-native,,"
+
+do_configure_prepend() {
+ olddir=$(pwd)
+ cd ${AUTOTOOLS_SCRIPT_PATH}
+
+ ACLOCAL="$ACLOCAL" autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} -I ${S}/m4 ${ACLOCALEXTRAPATH} || die "extra autoreconf execution failed."
+
+ cd $olddir
+}
+
+do_install_prepend() {
+ sed -i -e 's,@SBINDIR@,${sbindir},g' ${S}/contrib/systemd/*.service
+ sed -i -e 's,@LOCALSTATEDIR@,${localstatedir},g' ${S}/contrib/systemd/*.service
+ sed -i -e 's,@BASEBINDIR@,${base_bindir},g' ${S}/contrib/systemd/*.service
+}
+
+do_install_append() {
+ install -d ${D}/${sysconfdir}/${BPN}
+ install ${WORKDIR}/syslog-ng.conf ${D}${sysconfdir}/${BPN}/${BPN}.conf
+ install -d ${D}/${sysconfdir}/init.d
+ install -m 755 ${WORKDIR}/initscript ${D}/${sysconfdir}/init.d/syslog
+ install -d ${D}/${sysconfdir}/default/volatiles/
+ install -m 755 ${WORKDIR}/volatiles.03_syslog-ng ${D}/${sysconfdir}/default/volatiles/03_syslog-ng
+ install -d ${D}/${localstatedir}/lib/${BPN}
+ # Remove /var/run as it is created on startup
+ rm -rf ${D}${localstatedir}/run
+}
+
+FILES_${PN} += "${datadir}/include/scl/ ${datadir}/xsd ${datadir}/tools"
+RDEPENDS_${PN} += "gawk"
+
+# This overcomes the syslog-ng rdepends on syslog-ng-dev QA Error
+PACKAGES =+ "${PN}-libs ${PN}-libs-dev ${PN}-libs-dbg"
+FILES_${PN}-libs = "${libdir}/${BPN}/*.so ${libdir}/libsyslog-ng-*.so*"
+FILES_${PN}-libs-dev = "${libdir}/${BPN}/lib*.la"
+FILES_${PN}-libs-dbg = "${libdir}/${BPN}/.debug"
+FILES_${PN}-staticdev += "${libdir}/${BPN}/libtest/*.a"
+INSANE_SKIP_${PN}-libs = "dev-so"
+RDEPENDS_${PN} += "${PN}-libs"
+
+CONFFILES_${PN} = "${sysconfdir}/${BPN}.conf ${sysconfdir}/scl.conf"
+
+# syslog initscript is handled explicitly because order of
+# update-rc.d and update-alternatives is important
+RDEPENDS_${PN} += " ${@oe.utils.conditional("ONLINE_PACKAGE_MANAGEMENT", "none", "", "update-rc.d", d)}"
+
+RCONFLICTS_${PN} = "busybox-syslog sysklogd rsyslog"
+
+RPROVIDES_${PN} += "${PN}-systemd"
+RREPLACES_${PN} += "${PN}-systemd"
+RCONFLICTS_${PN} += "${PN}-systemd"
+SYSTEMD_SERVICE_${PN} = "${BPN}.service"
+
+INITSCRIPT_NAME = "syslog"
+INITSCRIPT_PARAMS = "start 20 2 3 4 5 . stop 90 0 1 6 ."
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_3.8.1.bb b/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_3.8.1.bb
new file mode 100644
index 000000000..91a0e4699
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_3.8.1.bb
@@ -0,0 +1,11 @@
+require syslog-ng.inc
+
+SRC_URI += " \
+ file://fix-config-libnet.patch \
+ file://fix-invalid-ownership.patch \
+ file://Fix-the-memory-leak-problem-when-HAVE_ENVIRON-defined.patch \
+ file://syslog-ng.service-the-syslog-ng-service.patch \
+"
+
+SRC_URI[md5sum] = "acf14563cf5ce435db8db35486ce66af"
+SRC_URI[sha256sum] = "84b081f6e5f98cbc52052e342bcfdc5de5fe0ebe9f5ec32fe9eaec5759224cc5"
diff --git a/meta-openembedded/meta-oe/recipes-support/system-config-keyboard/system-config-keyboard_1.4.0.bb b/meta-openembedded/meta-oe/recipes-support/system-config-keyboard/system-config-keyboard_1.4.0.bb
new file mode 100644
index 000000000..26b4412f5
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/system-config-keyboard/system-config-keyboard_1.4.0.bb
@@ -0,0 +1,28 @@
+DESCRIPTION = "a graphical user interface that allows the user to \
+change the default keyboard of the system"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+SRC_URI = "https://fedorahosted.org/releases/s/y/${BPN}/${BP}.tar.bz2"
+SRC_URI[md5sum] = "c267db0ee7a2131ba418399dc17f9e72"
+SRC_URI[sha256sum] = "218c883e4e2bfcc82bfe07e785707b5c2ece28df772f2155fd044b9bb1614284"
+
+inherit python-dir gettext
+DEPENDS += "intltool-native gettext-native"
+
+EXTRA_OEMAKE = " \
+ PYTHON='${STAGING_BINDIR_NATIVE}'/python-native/python \
+ PYTHON_SITELIB=${PYTHON_SITEPACKAGES_DIR} \
+"
+do_install() {
+ oe_runmake 'DESTDIR=${D}' install
+}
+
+do_install_append_class-native() {
+ rm -rf ${D}/usr
+}
+
+FILES_${PN} += " \
+ ${libdir}/python${PYTHON_BASEVERSION}/* \
+ ${datadir}/* \
+"
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/tbb/tbb.bb b/meta-openembedded/meta-oe/recipes-support/tbb/tbb.bb
new file mode 100644
index 000000000..bad9481f7
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/tbb/tbb.bb
@@ -0,0 +1,44 @@
+DESCRIPTION = "Parallelism library for C++ - runtime files \
+ TBB is a library that helps you leverage multi-core processor \
+ performance without having to be a threading expert. It represents a \
+ higher-level, task-based parallelism that abstracts platform details \
+ and threading mechanism for performance and scalability."
+HOMEPAGE = "http://threadingbuildingblocks.org/"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
+PRDATE = "20170412"
+BRANCH = "tbb_2017"
+SRCREV = "a2cfdfe946933cbe38bffe1d8086ae36f06691a3"
+PV = "${PRDATE}+${SRCPV}"
+SRC_URI = "git://github.com/01org/tbb;branch=${BRANCH} \
+ file://cross-compile.patch \
+ file://0001-mallinfo-is-glibc-specific-API-mark-it-so.patch \
+ file://tbb.pc \
+"
+
+S = "${WORKDIR}/git"
+
+COMPILER ?= "gcc"
+COMPILER_toolchain-clang = "clang"
+
+do_compile() {
+ oe_runmake compiler=${COMPILER} arch=${HOST_ARCH} runtime=cc4
+}
+
+do_install() {
+ install -d ${D}${includedir} ${D}${libdir}/pkgconfig
+ rm ${S}/include/tbb/index.html -f
+ cp -R --no-dereference --preserve=mode,links -v ${S}/include/tbb ${D}${includedir}
+ install -m 0755 ${B}/build/linux_*_release/lib*.so* ${D}${libdir}
+ install -m 0644 ${WORKDIR}/tbb.pc ${D}${libdir}/pkgconfig
+}
+
+# fails with thumb enabled:
+# | arm-oe-linux-gnueabi-g++ -march=armv7-a -mthumb -mthumb-interwork -mfloat-abi=softfp -mfpu=neon -mtune=cortex-a9 -mcpu=cortex-a9 -D__ARM__ -D__LINUX_ARM_ARCH__=7 -funwind-tables -mvectorize-with-neon-quad -rdynamic --sysroot=/OE/sysroots/m14tv -c -MMD -DTBB_USE_DEBUG -g -O0 -DUSE_PTHREAD -fPIC -D__TBB_BUILD=1 -Wall -Wno-parentheses -Wno-non-virtual-dtor -O2 -pipe -g -feliminate-unused-debug-types -fpermissive -fvisibility-inlines-hidden -I../../src -I../../src/rml/include -I../../include ../../src/tbb/concurrent_queue.cpp
+# | {standard input}: Assembler messages:
+# | {standard input}:250: Error: thumb conditional instruction should be in IT block -- `strexeq r2,r3,[r4]'
+# ...
+# | make[1]: *** [concurrent_queue.o] Error 1
+ARM_INSTRUCTION_SET = "arm"
+SECURITY_CFLAGS_append = " -fPIC"
+
diff --git a/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0001-mallinfo-is-glibc-specific-API-mark-it-so.patch b/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/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/meta-openembedded/meta-oe/recipes-support/tbb/tbb/cross-compile.patch b/meta-openembedded/meta-oe/recipes-support/tbb/tbb/cross-compile.patch
new file mode 100644
index 000000000..d54b307ee
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/tbb/tbb/cross-compile.patch
@@ -0,0 +1,39 @@
+Author: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
+
+Upstream-Status: unsuitable
+---
+ build/linux.gcc.inc | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+Index: tbb2017_20170118oss/build/linux.gcc.inc
+===================================================================
+--- tbb2017_20170118oss.orig/build/linux.gcc.inc
++++ tbb2017_20170118oss/build/linux.gcc.inc
+@@ -32,8 +32,9 @@ DYLIB_KEY = -shared
+ EXPORT_KEY = -Wl,--version-script,
+ LIBDL = -ldl
+
+-CPLUS = g++
+-CONLY = gcc
++CPLUS = $(CXX)
++CONLY = $(CC)
++CPLUS_FLAGS = $(CXXFLAGS)
+ LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY)
+ LIBS += -lpthread -lrt
+ LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
+Index: tbb2017_20170118oss/build/linux.clang.inc
+===================================================================
+--- tbb2017_20170118oss.orig/build/linux.clang.inc
++++ tbb2017_20170118oss/build/linux.clang.inc
+@@ -31,8 +31,9 @@ DYLIB_KEY = -shared
+ EXPORT_KEY = -Wl,--version-script,
+ LIBDL = -ldl
+
+-CPLUS = clang++
+-CONLY = clang
++CPLUS = $(CXX)
++CONLY = $(CC)
++CPLUS_FLAGS = $(CXXFLAGS)
+ LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY)
+ LIBS += -lpthread -lrt
+ LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
diff --git a/meta-openembedded/meta-oe/recipes-support/tbb/tbb/tbb.pc b/meta-openembedded/meta-oe/recipes-support/tbb/tbb/tbb.pc
new file mode 100644
index 000000000..644b64fbf
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/tbb/tbb/tbb.pc
@@ -0,0 +1,11 @@
+prefix=/usr
+exec_prefix=${prefix}
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include
+
+Name: Threading Building Blocks
+Description: Intel's parallelism library for C++
+URL: http://www.threadingbuildingblocks.org/
+Version: 3.0+r018
+Libs: -L${libdir} -ltbb
+Cflags: -I${includedir}
diff --git a/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/files/0001-do-not-strip-pdata_tools-at-do_install.patch b/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/files/0001-do-not-strip-pdata_tools-at-do_install.patch
new file mode 100644
index 000000000..b4cdda132
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/files/0001-do-not-strip-pdata_tools-at-do_install.patch
@@ -0,0 +1,33 @@
+From e8be402e20cbdfbd8192a171ac9904d9362103bf Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Wed, 31 Aug 2016 01:35:40 -0400
+Subject: [PATCH] do not strip pdata_tools at do_install
+
+It caused QA Issue:
+--------------
+|ERROR: QA Issue: File '/usr/sbin/pdata_tools' from thin-provisioning-tools
+was already stripped, this will prevent future debugging! [already-stripped]
+--------------
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ Makefile.in | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 4264191..ac22042 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -189,7 +189,6 @@ distclean: clean
+ install: bin/pdata_tools
+ $(INSTALL_DIR) $(BINDIR)
+ $(INSTALL_PROGRAM) bin/pdata_tools $(BINDIR)
+- $(STRIP) $(BINDIR)/pdata_tools
+ ln -s -f pdata_tools $(BINDIR)/cache_check
+ ln -s -f pdata_tools $(BINDIR)/cache_dump
+ ln -s -f pdata_tools $(BINDIR)/cache_metadata_size
+--
+2.8.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.6.3.bb b/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.6.3.bb
new file mode 100755
index 000000000..c9d6690d7
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.6.3.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Tools of dm-thin device-mapper"
+DESCRIPTION = "A suite of tools for manipulating the metadata of the dm-thin device-mapper target."
+HOMEPAGE = "https://github.com/jthornber/thin-provisioning-tools"
+LICENSE = "GPLv3"
+SECTION = "devel"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+S = "${WORKDIR}/git"
+
+SRC_URI = "git://github.com/jthornber/thin-provisioning-tools \
+ file://0001-do-not-strip-pdata_tools-at-do_install.patch \
+"
+
+SRCREV = "49bfc12e9c7956c1ac134b24afbe1a6a602ce7d5"
+
+DEPENDS += "expat libaio boost"
+
+inherit autotools-brokensep
diff --git a/meta-openembedded/meta-oe/recipes-support/tokyocabinet/tokyocabinet/remove-hard-coded-include-and-lib-paths.patch b/meta-openembedded/meta-oe/recipes-support/tokyocabinet/tokyocabinet/remove-hard-coded-include-and-lib-paths.patch
new file mode 100644
index 000000000..a8ab23de7
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/tokyocabinet/tokyocabinet/remove-hard-coded-include-and-lib-paths.patch
@@ -0,0 +1,43 @@
+Upstream-Status: Inappropriate [embedded specific]
+
+There are hardcode paths in configure.in eg: /usr/include, $HOME/include etc.
+These paths will cause Makefile to search host path when doing cross-compiling.
+and bitbake will prompt this as an error. So remove them.
+
+Signed-off-by: Song.Li <Song.Li@windriver.com>
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ configure.in | 10 ++--------
+ 1 file changed, 2 insertions(+), 8 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index bcfd5bc..5b24947 100644
+--- a/configure.in
++++ b/configure.in
+@@ -32,21 +32,15 @@ MYPCFILES="tokyocabinet.pc"
+
+ # Building flags
+ MYCFLAGS="-std=c99 -Wall -fPIC -fsigned-char -O2"
+-MYCPPFLAGS="-I. -I\$(INCLUDEDIR) -I$HOME/include -I/usr/local/include"
++MYCPPFLAGS="-I."
+ MYCPPFLAGS="$MYCPPFLAGS -DNDEBUG -D_GNU_SOURCE=1 -D_REENTRANT -D__EXTENSIONS__"
+-MYLDFLAGS="-L. -L\$(LIBDIR) -L$HOME/lib -L/usr/local/lib"
++MYLDFLAGS="-L."
+ MYCMDLDFLAGS=""
+ MYRUNPATH="\$(LIBDIR)"
+ MYLDLIBPATHENV="LD_LIBRARY_PATH"
+ MYPOSTCMD="true"
+
+ # Building paths
+-PATH="$PATH:$HOME/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin"
+-PATH="$PATH:/opt/SUNWspro/bin:/usr/ccs/bin:/usr/xpg4/bin:/usr/xpg6/bin:/usr/ucb"
+-CPATH="$HOME/include:/usr/local/include:$CPATH"
+-LIBRARY_PATH="$HOME/lib:/usr/local/lib:$LIBRARY_PATH"
+-LD_LIBRARY_PATH="$HOME/lib:/usr/local/lib:$LD_LIBRARY_PATH"
+-PKG_CONFIG_PATH="$HOME/lib/pkgconfig:/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH"
+ export PATH CPATH LIBRARY_PATH LD_LIBRARY_PATH PKG_CONFIG_PATH
+
+
+--
+1.7.9.5
+
diff --git a/meta-openembedded/meta-oe/recipes-support/tokyocabinet/tokyocabinet_1.4.48.bb b/meta-openembedded/meta-oe/recipes-support/tokyocabinet/tokyocabinet_1.4.48.bb
new file mode 100644
index 000000000..9f75cf047
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/tokyocabinet/tokyocabinet_1.4.48.bb
@@ -0,0 +1,27 @@
+#
+# Copyright (C) 2012 - 2016 Wind River Systems, Inc.
+#
+SUMMARY = "A modern implementation of DBM"
+
+DESCRIPTION = "Tokyo Cabinet is a library of routines for managing a database. \
+The database is a simple data file containing records, each is a pair of a key \
+and a value. Every key and value is serial bytes with variable length. \
+Both binary data and character string can be used as a key and a value. \
+There is neither concept of data tables nor data types. \
+Records are organized in hash table, B+ tree, or fixed-length array."
+
+HOMEPAGE = "http://fallabs.com/tokyocabinet/"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
+
+SRC_URI = "http://fallabs.com/tokyocabinet/${BP}.tar.gz \
+ file://remove-hard-coded-include-and-lib-paths.patch \
+"
+
+SRC_URI[md5sum] = "fd03df6965f8f56dd5b8518ca43b4f5e"
+SRC_URI[sha256sum] = "a003f47c39a91e22d76bc4fe68b9b3de0f38851b160bbb1ca07a4f6441de1f90"
+
+DEPENDS = "bzip2 zlib"
+
+inherit autotools-brokensep
diff --git a/meta-openembedded/meta-oe/recipes-support/toscoterm/toscoterm_git.bb b/meta-openembedded/meta-oe/recipes-support/toscoterm/toscoterm_git.bb
new file mode 100644
index 000000000..879b67b7f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/toscoterm/toscoterm_git.bb
@@ -0,0 +1,29 @@
+SUMMARY = "A very small and simple terminal emulator"
+SECTION = "x11/applications"
+DEPENDS = "vte9"
+
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://main.c;start_line=5;end_line=16;md5=9ae4bf20caf291afa94530026bd15229"
+
+# 0.2 version
+SRCREV = "8586d617aed19fc75f5ae1e07270752c1b2f9a30"
+SRC_URI = "git://github.com/OSSystems/toscoterm.git"
+
+S = "${WORKDIR}/git"
+
+inherit distro_features_check gitpkgv pkgconfig
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+do_compile() {
+ oe_runmake \
+ CC="${CC}" \
+ CFLAGS="`pkg-config --cflags vte`${CFLAGS}" \
+ LDFLAGS="`pkg-config --libs vte` ${LDFLAGS}"
+}
+
+do_install() {
+ oe_runmake PREFIX="${prefix}" DESTDIR="${D}" install
+}
+
+RDEPENDS_${PN}_append_libc-glibc = " glibc-gconv-ibm437"
diff --git a/meta-openembedded/meta-oe/recipes-support/tree/tree_1.7.0.bb b/meta-openembedded/meta-oe/recipes-support/tree/tree_1.7.0.bb
new file mode 100644
index 000000000..2e8ebdb4d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/tree/tree_1.7.0.bb
@@ -0,0 +1,21 @@
+SUMMARY = "A recursive directory listing command"
+HOMEPAGE = "http://mama.indstate.edu/users/ice/tree/"
+SECTION = "console/utils"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=393a5ca445f6965873eca0259a17f833"
+
+SRC_URI = "ftp://mama.indstate.edu/linux/${BPN}/${BP}.tgz"
+SRC_URI[md5sum] = "abe3e03e469c542d8e157cdd93f4d8a6"
+SRC_URI[sha256sum] = "6957c20e82561ac4231638996e74f4cfa4e6faabc5a2f511f0b4e3940e8f7b12"
+
+# tree's default CFLAGS for Linux
+CFLAGS += "-Wall -DLINUX -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
+
+EXTRA_OEMAKE = "CC='${CC}' CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}'"
+
+do_configure[noexec] = "1"
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 ${S}/${BPN} ${D}${bindir}/
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-Make-udev-rules-directory-configurable.patch b/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-Make-udev-rules-directory-configurable.patch
new file mode 100644
index 000000000..2823c54f1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-Make-udev-rules-directory-configurable.patch
@@ -0,0 +1,89 @@
+From a6eab413f274376cf703a608e2866118291a6185 Mon Sep 17 00:00:00 2001
+From: Amarnath Valluri <amarnath.valluri@intel.com>
+Date: Thu, 9 Feb 2017 11:02:53 +0200
+Subject: [PATCH] Make udev rules directory configurable.
+
+udev rules directory can be configurable via undevrulesdir variable. And use
+libdir, sbindir for installing librares and binaries.
+
+Upstream-Status: Inappropriate[Embedded specific]
+
+Signed-off-by: Amarnath Valluri <amarnath.valluri@intel.com>
+
+---
+ configure.ac | 14 +++-----------
+ data/Makefile.am | 1 -
+ src/probers/Makefile.am | 2 +-
+ tools/Makefile.am | 2 +-
+ 4 files changed, 5 insertions(+), 14 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 8c4e4c2..a143397 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -227,15 +227,8 @@ if test "x$GCC" = "xyes"; then
+ LDFLAGS="-Wl,--as-needed $LDFLAGS"
+ fi
+
+-if test "$prefix" = "/usr" -o "$prefix" = "/usr/local" ; then
+- slashlibdir=/lib
+- slashsbindir=/sbin
+-else
+- slashlibdir=$prefix/lib
+- slashsbindir=$prefix/sbin
+-fi
+-AC_SUBST(slashlibdir)
+-AC_SUBST(slashsbindir)
++udevrulesdir=/lib/udev/udev.d
++AC_SUBST(udevrulesdir)
+
+ # *************
+ # Remote Access
+@@ -299,8 +292,7 @@ echo "
+ sysconfdir: ${sysconfdir}
+ localstatedir: ${localstatedir}
+ docdir: ${docdir}
+- slashlibdir: ${slashlibdir}
+- slashsbindir: ${slashsbindir}
++ udevrulesdir: ${udevrulesdir}
+ systemdsystemunitdir: ${systemdsystemunitdir}
+
+ compiler: ${CC}
+diff --git a/data/Makefile.am b/data/Makefile.am
+index 08af5f4..9329186 100644
+--- a/data/Makefile.am
++++ b/data/Makefile.am
+@@ -34,7 +34,6 @@ $(systemdservice_DATA): $(systemdservice_in_files) Makefile
+ @sed -e "s|\@libexecdir\@|$(libexecdir)|" $< > $@
+ endif
+
+-udevrulesdir = $(slashlibdir)/udev/rules.d
+ udevrules_DATA = 80-udisks.rules
+
+ pkgconfigdir = $(datadir)/pkgconfig
+diff --git a/src/probers/Makefile.am b/src/probers/Makefile.am
+index 01c693b..6a0361a 100644
+--- a/src/probers/Makefile.am
++++ b/src/probers/Makefile.am
+@@ -20,7 +20,7 @@ INCLUDES = \
+ # TODO: ideally move most of this to udev and/or util-linux
+ #
+
+-udevhelperdir = $(slashlibdir)/udev
++udevhelperdir = $(libdir)/udev
+ udevhelper_PROGRAMS = udisks-part-id \
+ udisks-probe-sas-expander \
+ $(NULL)
+diff --git a/tools/Makefile.am b/tools/Makefile.am
+index 18325f7..0aaec11 100644
+--- a/tools/Makefile.am
++++ b/tools/Makefile.am
+@@ -54,7 +54,7 @@ udisks_LDADD = \
+ $(DBUS_GLIB_LIBS) \
+ $(POLKIT_DBUS_LIBS)
+
+-slashsbin_PROGRAMS = umount.udisks
++sbin_PROGRAMS = umount.udisks
+
+ umount_udisks_SOURCES = umount-udisks.c
+ umount_udisks_LDADD = $(DBUS_GLIB_LIBS) $(POLKIT_DBUS_LIBS)
diff --git a/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-fix-build-with-newer-glibc-versions.patch b/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-fix-build-with-newer-glibc-versions.patch
new file mode 100644
index 000000000..8b4f44124
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-fix-build-with-newer-glibc-versions.patch
@@ -0,0 +1,27 @@
+From 054ad6a06cfac7c3d172d53cd901204079a53ec3 Mon Sep 17 00:00:00 2001
+From: Alexandre Rostovtsev <tetromino@gentoo.org>
+Date: Fri, 29 May 2015 21:09:39 -0400
+Subject: [PATCH] fix build with newer glibc versions
+
+https://bugs.freedesktop.org/show_bug.cgi?id=90778
+
+Upstream-Status: Applied [1]
+
+[1] http://cgit.freedesktop.org/udisks/commit/?h=udisks1&id=9829152b12a8924d2e091a00133ed1a3a7ba75c0
+
+---
+ src/helpers/job-drive-detach.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/helpers/job-drive-detach.c b/src/helpers/job-drive-detach.c
+index eeafcab..d122a1f 100644
+--- a/src/helpers/job-drive-detach.c
++++ b/src/helpers/job-drive-detach.c
+@@ -18,6 +18,7 @@
+ *
+ */
+
++#include <sys/stat.h>
+ #include <stdio.h>
+ #include <string.h>
+ #include <errno.h>
diff --git a/meta-openembedded/meta-oe/recipes-support/udisks/udisks/optional-depends.patch b/meta-openembedded/meta-oe/recipes-support/udisks/udisks/optional-depends.patch
new file mode 100644
index 000000000..a890954fc
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/udisks/udisks/optional-depends.patch
@@ -0,0 +1,498 @@
+From e8b3fbfa3d6a11eee25db2dc0f31f439aaf0b65a Mon Sep 17 00:00:00 2001
+From: Gustavo Sverzut Barbieri <barbieri@profusion.mobi>
+Date: Thu, 26 May 2011 17:30:04 -0300
+Subject: [PATCH] Allow disabling atasmart, lvm2 and devicemapper support.
+
+https://bugs.freedesktop.org/show_bug.cgi?id=37647
+
+---
+ configure.ac | 53 +++++++++++++++++++++++++++++++++++++++----------
+ src/adapter-private.h | 1 -
+ src/adapter.c | 1 -
+ src/daemon.c | 4 ++++
+ src/device-private.c | 2 +-
+ src/device-private.h | 5 ++---
+ src/device.c | 23 +++++++++++++++++----
+ src/expander-private.h | 1 -
+ src/expander.c | 1 -
+ src/helpers/Makefile.am | 20 +++++++++++++------
+ src/helpers/partutil.c | 3 ++-
+ src/port-private.h | 1 -
+ src/probers/Makefile.am | 8 ++++++--
+ tools/udisks.c | 10 ++++++++--
+ 14 files changed, 99 insertions(+), 34 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 9454423..8c4e4c2 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -155,13 +155,33 @@ PKG_CHECK_MODULES(POLKIT_GOBJECT_1, [polkit-gobject-1 >= 0.97])
+ AC_SUBST(POLKIT_GOBJECT_1_CFLAGS)
+ AC_SUBST(POLKIT_GOBJECT_1_LIBS)
+
+-PKG_CHECK_MODULES(LIBPARTED, [libparted >= 1.8.8])
+-AC_SUBST(LIBPARTED_CFLAGS)
+-AC_SUBST(LIBPARTED_LIBS)
+-
+-PKG_CHECK_MODULES(DEVMAPPER, [devmapper >= 1.02])
+-AC_SUBST(DEVMAPPER_CFLAGS)
+-AC_SUBST(DEVMAPPER_LIBS)
++have_parted=no
++AC_ARG_ENABLE(parted, AS_HELP_STRING([--disable-parted], [disable disk partitioning]))
++if test "x$enable_parted" != "xno"; then
++ PKG_CHECK_MODULES(LIBPARTED, [libparted >= 1.8.8],
++ [AC_DEFINE(USE_PARTED, 1, [Define if parted should be used]) have_parted=yes],
++ have_parted=no)
++ AC_SUBST(LIBPARTED_CFLAGS)
++ AC_SUBST(LIBPARTED_LIBS)
++ if test "x$have_parted" = xno -a "x$enable_parted" = xyes; then
++ AC_MSG_ERROR([parted support requested but libraries not found])
++ fi
++fi
++AM_CONDITIONAL(HAVE_PARTED, [test "$have_parted" = "yes"])
++
++have_devmapper=no
++AC_ARG_ENABLE(devmapper, AS_HELP_STRING([--disable-devmapper], [disable device mapper support]))
++if test "x$enable_devmapper" != "xno"; then
++ PKG_CHECK_MODULES(DEVMAPPER, [devmapper >= 1.02],
++ [AC_DEFINE(HAVE_DEVMAPPER, 1, [Define if device mapper is available]) have_devmapper=yes],
++ have_devmapper=no)
++ AC_SUBST(DEVMAPPER_CFLAGS)
++ AC_SUBST(DEVMAPPER_LIBS)
++ if test "x$have_devmapper" = xno -a "x$enable_devmapper" = xyes; then
++ AC_MSG_ERROR([devmapper support requested but libraries not found])
++ fi
++fi
++AM_CONDITIONAL(HAVE_DEVMAPPER, [test "$have_devmapper" = "yes"])
+
+ have_lvm2=no
+ AC_ARG_ENABLE(lvm2, AS_HELP_STRING([--enable-lvm2], [enable LVM2 support]))
+@@ -185,9 +205,19 @@ if test "x$enable_dmmp" = "xyes"; then
+ fi
+ AM_CONDITIONAL(HAVE_DMMP, [test "$have_dmmp" = "yes"])
+
+-PKG_CHECK_MODULES(LIBATASMART, [libatasmart >= 0.14])
+-AC_SUBST(LIBATASMART_CFLAGS)
+-AC_SUBST(LIBATASMART_LIBS)
++have_libatasmart=no
++AC_ARG_ENABLE(libatasmart, AS_HELP_STRING([--disable-libatasmart], [disable libatasmart support]))
++if test "x$enable_libatasmart" != "xno"; then
++ PKG_CHECK_MODULES(LIBATASMART, [libatasmart >= 0.14],
++ [AC_DEFINE(HAVE_LIBATASMART, 1, [Define if libatasmart is available]) have_libatasmart=yes],
++ have_libatasmart=no)
++ AC_SUBST(LIBATASMART_CFLAGS)
++ AC_SUBST(LIBATASMART_LIBS)
++ if test "x$have_libatasmart" = xno -a "x$enable_libatasmart" = xyes; then
++ AC_MSG_ERROR([libatasmart support requested but libraries not found])
++ fi
++fi
++AM_CONDITIONAL(HAVE_LIBATASMART, [test "$have_libatasmart" = "yes"])
+
+ PKG_CHECK_MODULES(LIBUDEV, [libudev >= 143])
+ AC_SUBST(LIBUDEV_CFLAGS)
+@@ -278,9 +308,12 @@ echo "
+ cppflags: ${CPPFLAGS}
+ xsltproc: ${XSLTPROC}
+
++ Parted support: ${have_parted}
++ Device Mapper support: ${have_devmapper}
+ LVM2 support: ${have_lvm2}
+ dm-multipath: ${have_dmmp}
+ Remote Access: ${remote_access}
++ libatasmart support: ${have_libatasmart}
+
+ Maintainer mode: ${USE_MAINTAINER_MODE}
+ Profiling: ${enable_profiling}
+diff --git a/src/adapter-private.h b/src/adapter-private.h
+index 3409e21..ef584e3 100644
+--- a/src/adapter-private.h
++++ b/src/adapter-private.h
+@@ -23,7 +23,6 @@
+
+ #include <dbus/dbus-glib.h>
+ #include <gudev/gudev.h>
+-#include <atasmart.h>
+
+ #include "types.h"
+
+diff --git a/src/adapter.c b/src/adapter.c
+index 65e05b0..45db8c8 100644
+--- a/src/adapter.c
++++ b/src/adapter.c
+@@ -30,7 +30,6 @@
+ #include <dbus/dbus-glib.h>
+ #include <dbus/dbus-glib-lowlevel.h>
+ #include <gudev/gudev.h>
+-#include <atasmart.h>
+
+ #include "daemon.h"
+ #include "adapter.h"
+diff --git a/src/daemon.c b/src/daemon.c
+index fafcf9a..14e952f 100644
+--- a/src/daemon.c
++++ b/src/daemon.c
+@@ -1748,6 +1748,7 @@ mdstat_changed_event (GIOChannel *channel,
+ return TRUE;
+ }
+
++#ifdef HAVE_LIBATASMART
+ static gboolean
+ refresh_ata_smart_data (Daemon *daemon)
+ {
+@@ -1776,6 +1777,7 @@ refresh_ata_smart_data (Daemon *daemon)
+
+ return FALSE;
+ }
++#endif
+
+ static gboolean
+ register_disks_daemon (Daemon *daemon)
+@@ -1987,12 +1989,14 @@ daemon_new (void)
+ mount_file_clean_stale (l);
+ g_list_free (l);
+
++#ifdef HAVE_LIBATASMART
+ /* set up timer for refreshing ATA SMART data - we don't want to refresh immediately because
+ * when adding a device we also do this...
+ */
+ daemon->priv->ata_smart_refresh_timer_id = g_timeout_add_seconds (ATA_SMART_REFRESH_INTERVAL_SECONDS,
+ (GSourceFunc) refresh_ata_smart_data,
+ daemon);
++#endif
+
+ PROFILE ("daemon_new(): end");
+ return daemon;
+diff --git a/src/device-private.c b/src/device-private.c
+index 45418ce..fb1d959 100644
+--- a/src/device-private.c
++++ b/src/device-private.c
+@@ -1390,7 +1390,7 @@ device_set_drive_ata_smart_time_collected (Device *device,
+
+ void
+ device_set_drive_ata_smart_status (Device *device,
+- SkSmartOverall value)
++ guint value)
+ {
+ if (G_UNLIKELY (device->priv->drive_ata_smart_status != value))
+ {
+diff --git a/src/device-private.h b/src/device-private.h
+index 32a9bd0..8c57c13 100644
+--- a/src/device-private.h
++++ b/src/device-private.h
+@@ -23,7 +23,6 @@
+
+ #include <dbus/dbus-glib.h>
+ #include <gudev/gudev.h>
+-#include <atasmart.h>
+
+ #include "types.h"
+
+@@ -228,7 +227,7 @@ struct DevicePrivate
+
+ gboolean drive_ata_smart_is_available;
+ guint64 drive_ata_smart_time_collected;
+- SkSmartOverall drive_ata_smart_status;
++ guint drive_ata_smart_status;
+ void *drive_ata_smart_blob;
+ gsize drive_ata_smart_blob_size;
+
+@@ -396,7 +395,7 @@ void device_set_holders_objpath (Device *device, GStrv value);
+
+ void device_set_drive_ata_smart_is_available (Device *device, gboolean value);
+ void device_set_drive_ata_smart_time_collected (Device *device, guint64 value);
+-void device_set_drive_ata_smart_status (Device *device, SkSmartOverall value);
++void device_set_drive_ata_smart_status (Device *device, guint value);
+ void device_set_drive_ata_smart_blob_steal (Device *device, gchar *blob, gsize blob_size);
+
+ G_END_DECLS
+diff --git a/src/device.c b/src/device.c
+index 2ae7f38..d73f9d6 100644
+--- a/src/device.c
++++ b/src/device.c
+@@ -50,7 +50,9 @@
+ #include <dbus/dbus-glib.h>
+ #include <dbus/dbus-glib-lowlevel.h>
+ #include <gudev/gudev.h>
++#ifdef HAVE_LIBATASMART
+ #include <atasmart.h>
++#endif
+
+ #include "daemon.h"
+ #include "device.h"
+@@ -664,10 +666,14 @@ get_property (GObject *object,
+ case PROP_DRIVE_ATA_SMART_STATUS:
+ {
+ const gchar *status;
+- if (device->priv->drive_ata_smart_status == (SkSmartOverall) - 1)
++#ifdef HAVE_LIBATASMART
++ if (device->priv->drive_ata_smart_status == (guint) - 1)
+ status = "";
+ else
+ status = sk_smart_overall_to_string (device->priv->drive_ata_smart_status);
++#else
++ status = "";
++#endif
+ g_value_set_string (value, status);
+ }
+ break;
+@@ -5144,6 +5150,7 @@ device_new (Daemon *daemon,
+ goto out;
+ }
+
++#ifdef HAVE_LIBATASMART
+ /* if just added, update the smart data if applicable */
+ if (device->priv->drive_ata_smart_is_available)
+ {
+@@ -5151,6 +5158,7 @@ device_new (Daemon *daemon,
+ gchar *ata_smart_refresh_data_options[] = { NULL };
+ device_drive_ata_smart_refresh_data (device, ata_smart_refresh_data_options, NULL);
+ }
++#endif
+
+ PROFILE ("device_new(native_path=%s): end", native_path);
+ out:
+@@ -9840,16 +9848,18 @@ drive_ata_smart_refresh_data_completed_cb (DBusGMethodInvocation *context,
+ const char *stdout,
+ gpointer user_data)
+ {
++#ifdef HAVE_LIBATASMART
+ gint rc;
+- SkDisk *d;
++ SkDisk *d = NULL;
++ SkSmartOverall overall;
+ gchar *blob;
+ gsize blob_size;
+ time_t time_collected;
+- SkSmartOverall overall;
++#endif
+
+ PROFILE ("drive_ata_smart_refresh_data_completed_cb(device=%s) start", device->priv->native_path);
+
+- d = NULL;
++#ifdef HAVE_LIBATASMART
+ blob = NULL;
+
+ if (job_was_cancelled || stdout == NULL)
+@@ -9953,6 +9963,11 @@ drive_ata_smart_refresh_data_completed_cb (DBusGMethodInvocation *context,
+ g_free (blob);
+ if (d != NULL)
+ sk_disk_free (d);
++
++#else
++ throw_error (context, ERROR_FAILED, "libatasmart support disabled");
++#endif
++
+ PROFILE ("drive_ata_smart_refresh_data_completed_cb(device=%s) end", device->priv->native_path);
+ }
+
+diff --git a/src/expander-private.h b/src/expander-private.h
+index ef4f440..98a8300 100644
+--- a/src/expander-private.h
++++ b/src/expander-private.h
+@@ -23,7 +23,6 @@
+
+ #include <dbus/dbus-glib.h>
+ #include <gudev/gudev.h>
+-#include <atasmart.h>
+
+ #include "types.h"
+
+diff --git a/src/expander.c b/src/expander.c
+index 734ec0a..e799f13 100644
+--- a/src/expander.c
++++ b/src/expander.c
+@@ -34,7 +34,6 @@
+ #include <dbus/dbus-glib.h>
+ #include <dbus/dbus-glib-lowlevel.h>
+ #include <gudev/gudev.h>
+-#include <atasmart.h>
+ #include <stdlib.h>
+
+ #include "daemon.h"
+diff --git a/src/helpers/Makefile.am b/src/helpers/Makefile.am
+index 4b863c0..d3ec4e9 100644
+--- a/src/helpers/Makefile.am
++++ b/src/helpers/Makefile.am
+@@ -19,15 +19,9 @@ INCLUDES = \
+
+ libexec_PROGRAMS = \
+ udisks-helper-mkfs \
+- udisks-helper-delete-partition \
+- udisks-helper-create-partition \
+- udisks-helper-modify-partition \
+- udisks-helper-create-partition-table \
+ udisks-helper-change-filesystem-label \
+ udisks-helper-linux-md-remove-component \
+ udisks-helper-fstab-mounter \
+- udisks-helper-ata-smart-collect \
+- udisks-helper-ata-smart-selftest \
+ udisks-helper-drive-detach \
+ udisks-helper-drive-poll \
+ udisks-helper-linux-md-check \
+@@ -48,6 +42,13 @@ udisks_helper_mkfs_SOURCES = job-shared.h job-mkfs.c
+ udisks_helper_mkfs_CPPFLAGS = $(AM_CPPFLAGS)
+ udisks_helper_mkfs_LDADD = $(GLIB_LIBS)
+
++if HAVE_PARTED
++libexec_PROGRAMS += \
++ udisks-helper-delete-partition \
++ udisks-helper-create-partition \
++ udisks-helper-modify-partition \
++ udisks-helper-create-partition-table
++
+ udisks_helper_delete_partition_SOURCES = job-shared.h job-delete-partition.c
+ udisks_helper_delete_partition_CPPFLAGS = $(AM_CPPFLAGS)
+ udisks_helper_delete_partition_LDADD = $(GLIB_LIBS) libpartutil.la
+@@ -63,11 +64,17 @@ udisks_helper_modify_partition_LDADD = $(GLIB_LIBS) libpartutil.la
+ udisks_helper_create_partition_table_SOURCES = job-shared.h job-create-partition-table.c
+ udisks_helper_create_partition_table_CPPFLAGS = $(AM_CPPFLAGS)
+ udisks_helper_create_partition_table_LDADD = $(GLIB_LIBS) libpartutil.la
++endif
+
+ udisks_helper_change_filesystem_label_SOURCES = job-shared.h job-change-filesystem-label.c
+ udisks_helper_change_filesystem_label_CPPFLAGS = $(AM_CPPFLAGS)
+ udisks_helper_change_filesystem_label_LDADD = $(GLIB_LIBS)
+
++if HAVE_LIBATASMART
++libexec_PROGRAMS += \
++ udisks-helper-ata-smart-collect \
++ udisks-helper-ata-smart-selftest
++
+ udisks_helper_ata_smart_selftest_SOURCES = job-shared.h job-ata-smart-selftest.c
+ udisks_helper_ata_smart_selftest_CPPFLAGS = $(AM_CPPFLAGS) $(LIBATASMART_CFLAGS) $(GLIB_CFLAGS)
+ udisks_helper_ata_smart_selftest_LDADD = $(LIBATASMART_LIBS) $(GLIB_LIBS)
+@@ -75,6 +82,7 @@ udisks_helper_ata_smart_selftest_LDADD = $(LIBATASMART_LIBS) $(GLIB_LIBS)
+ udisks_helper_ata_smart_collect_SOURCES = job-ata-smart-collect.c
+ udisks_helper_ata_smart_collect_CPPFLAGS = $(AM_CPPFLAGS) $(LIBATASMART_CFLAGS) $(GLIB_CFLAGS)
+ udisks_helper_ata_smart_collect_LDADD = $(LIBATASMART_LIBS) $(GLIB_LIBS)
++endif
+
+ udisks_helper_linux_md_remove_component_SOURCES = job-shared.h job-linux-md-remove-component.c
+ udisks_helper_linux_md_remove_component_CPPFLAGS = $(AM_CPPFLAGS)
+diff --git a/src/helpers/partutil.c b/src/helpers/partutil.c
+index 72a8fe3..8893a39 100644
+--- a/src/helpers/partutil.c
++++ b/src/helpers/partutil.c
+@@ -62,7 +62,6 @@ DEBUG (const gchar *format,
+ # include <config.h>
+ #endif
+
+-#define USE_PARTED
+ #ifdef USE_PARTED
+ #include <parted/parted.h>
+ #endif
+@@ -928,6 +927,7 @@ part_table_parse_apple (int fd,
+ return p;
+ }
+
++#ifdef USE_PARTED
+ static PartitionTable *
+ part_table_load_from_disk_from_file (char *device_file)
+ {
+@@ -948,6 +948,7 @@ part_table_load_from_disk_from_file (char *device_file)
+ out:
+ return ret;
+ }
++#endif
+
+ PartitionTable *
+ part_table_load_from_disk (int fd)
+diff --git a/src/port-private.h b/src/port-private.h
+index cc48376..a91532f 100644
+--- a/src/port-private.h
++++ b/src/port-private.h
+@@ -23,7 +23,6 @@
+
+ #include <dbus/dbus-glib.h>
+ #include <gudev/gudev.h>
+-#include <atasmart.h>
+
+ #include "types.h"
+
+diff --git a/src/probers/Makefile.am b/src/probers/Makefile.am
+index 06bb566..01c693b 100644
+--- a/src/probers/Makefile.am
++++ b/src/probers/Makefile.am
+@@ -22,8 +22,6 @@ INCLUDES = \
+
+ udevhelperdir = $(slashlibdir)/udev
+ udevhelper_PROGRAMS = udisks-part-id \
+- udisks-dm-export \
+- udisks-probe-ata-smart \
+ udisks-probe-sas-expander \
+ $(NULL)
+
+@@ -35,17 +33,23 @@ udisks_part_id_SOURCES = part-id.c
+ udisks_part_id_CPPFLAGS = $(AM_CPPFLAGS) $(LIBUDEV_CFLAGS)
+ udisks_part_id_LDADD = $(GLIB_LIBS) $(LIBUDEV_LIBS) $(top_builddir)/src/helpers/libpartutil.la
+
++if HAVE_DEVMAPPER
++udevhelper_PROGRAMS += udisks-dm-export
+ udisks_dm_export_SOURCES = udisks-dm-export.c
+ udisks_dm_export_CPPFLAGS = $(AM_CPPFLAGS) $(DEVMAPPER_CFLAGS) $(GLIB_CFLAGS)
+ udisks_dm_export_LDADD = $(DEVMAPPER_LIBS) $(GLIB_LIBS)
++endif
+
+ udisks_lvm_pv_export_SOURCES = udisks-lvm-pv-export.c
+ udisks_lvm_pv_export_CPPFLAGS = $(AM_CPPFLAGS) $(DEVMAPPER_CFLAGS) $(LVM2_CFLAGS) $(GLIB_CFLAGS)
+ udisks_lvm_pv_export_LDADD = $(DEVMAPPER_LIBS) $(LVM2_LIBS) $(GLIB_LIBS)
+
++if HAVE_LIBATASMART
++udevhelper_PROGRAMS += udisks-probe-ata-smart
+ udisks_probe_ata_smart_SOURCES = udisks-probe-ata-smart.c
+ udisks_probe_ata_smart_CPPFLAGS = $(AM_CPPFLAGS) $(LIBATASMART_CFLAGS)
+ udisks_probe_ata_smart_LDADD = $(LIBATASMART_LIBS)
++endif
+
+ udisks_probe_sas_expander_SOURCES = udisks-probe-sas-expander.c
+ udisks_probe_sas_expander_CPPFLAGS = $(AM_CPPFLAGS) $(GLIB_CFLAGS)
+diff --git a/tools/udisks.c b/tools/udisks.c
+index 97e80d7..d30159b 100644
+--- a/tools/udisks.c
++++ b/tools/udisks.c
+@@ -43,7 +43,9 @@
+ #include <dbus/dbus-glib.h>
+ #include <dbus/dbus-glib-lowlevel.h>
+
++#ifdef HAVE_LIBATASMART
+ #include <atasmart.h>
++#endif
+
+ #include "udisks-daemon-glue.h"
+ #include "udisks-device-glue.h"
+@@ -983,6 +985,7 @@ end_highlight (void)
+ g_print ("\x1B[0m");
+ }
+
++#ifdef HAVE_LIBATASMART
+ static const gchar *
+ ata_smart_status_to_desc (const gchar *status,
+ gboolean *out_highlight)
+@@ -1163,6 +1166,7 @@ print_ata_smart_attr (SkDisk *d,
+ g_free (threshold_str);
+ g_free (pretty);
+ }
++#endif
+
+ static void
+ do_show_info (const char *object_path)
+@@ -1445,7 +1449,7 @@ do_show_info (const char *object_path)
+ g_print (" if speed: %" G_GINT64_FORMAT " bits/s\n", props->drive_connection_speed);
+
+ /* ------------------------------------------------------------------------------------------------- */
+-
++#ifdef HAVE_LIBATASMART
+ if (!props->drive_ata_smart_is_available)
+ {
+ g_print (" ATA SMART: not available\n");
+@@ -1498,7 +1502,9 @@ do_show_info (const char *object_path)
+ }
+
+ }
+-
++#else
++ g_print (" ATA SMART: not supported\n");
++#endif
+ /* ------------------------------------------------------------------------------------------------- */
+
+ }
diff --git a/meta-openembedded/meta-oe/recipes-support/udisks/udisks/udisks-1.0.5-fix-service-file.patch b/meta-openembedded/meta-oe/recipes-support/udisks/udisks/udisks-1.0.5-fix-service-file.patch
new file mode 100644
index 000000000..d4efa93dd
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/udisks/udisks/udisks-1.0.5-fix-service-file.patch
@@ -0,0 +1,32 @@
+From a4f6aa5be37ae6e2194c9ded2ea8c1da330f5694 Mon Sep 17 00:00:00 2001
+From: David King <amigadave@amigadave.com>
+Date: Thu, 2 Jul 2015 13:49:22 +0100
+Subject: [PATCH] Fix systemd service file
+
+udisks-daemon is installed to $(libexecdir), not $(prefix)/lib/udisks.
+
+https://bugzilla.redhat.com/show_bug.cgi?id=1238664
+https://bugs.freedesktop.org/show_bug.cgi?id=91191
+
+Taken-From: [1]
+[1] http://pkgs.fedoraproject.org/cgit/udisks.git/tree/udisks-1.0.5-fix-service-file.patch
+
+Upstream-Status: Pending
+
+---
+ data/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/data/Makefile.am b/data/Makefile.am
+index 411ea0f..08af5f4 100644
+--- a/data/Makefile.am
++++ b/data/Makefile.am
+@@ -31,7 +31,7 @@ systemdservicedir = $(systemdsystemunitdir)
+ systemdservice_DATA = $(systemdservice_in_files:.service.in=.service)
+
+ $(systemdservice_DATA): $(systemdservice_in_files) Makefile
+- @sed -e "s|\@libexecdir\@|$(prefix)/lib/udisks|" $< > $@
++ @sed -e "s|\@libexecdir\@|$(libexecdir)|" $< > $@
+ endif
+
+ udevrulesdir = $(slashlibdir)/udev/rules.d
diff --git a/meta-openembedded/meta-oe/recipes-support/udisks/udisks2/0001-data-fix-out-of-tree-build.patch b/meta-openembedded/meta-oe/recipes-support/udisks/udisks2/0001-data-fix-out-of-tree-build.patch
new file mode 100644
index 000000000..1cbd87751
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/udisks/udisks2/0001-data-fix-out-of-tree-build.patch
@@ -0,0 +1,35 @@
+From 7fdd4acdf6daf95c5cc74e968f4710513c8ddaea Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Fri, 23 Mar 2018 18:33:52 +0100
+Subject: [PATCH] data: fix out of tree build
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+| sed: can't read udisks2.service.in: No such file or directory
+
+Upstream-Status: Submitted [1]
+
+[1] https://github.com/storaged-project/udisks/pull/510
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ data/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/data/Makefile.am b/data/Makefile.am
+index ddf9e3d6..b38928c8 100644
+--- a/data/Makefile.am
++++ b/data/Makefile.am
+@@ -22,7 +22,7 @@ systemdservicedir = $(systemdsystemunitdir)
+ systemdservice_DATA = $(systemdservice_in_files:.service.in=.service)
+
+ $(systemdservice_DATA): udisks2.service.in Makefile
+- @sed -e "s|\@udisksdprivdir\@|$(libexecdir)/udisks2|" udisks2.service.in > udisks2.service
++ @sed -e "s|\@udisksdprivdir\@|$(libexecdir)/udisks2|" $(srcdir)/udisks2.service.in > udisks2.service
+ endif
+
+ udevrulesdir = $(udevdir)/rules.d
+--
+2.14.3
+
diff --git a/meta-openembedded/meta-oe/recipes-support/udisks/udisks2/non-gnu-libc.patch b/meta-openembedded/meta-oe/recipes-support/udisks/udisks2/non-gnu-libc.patch
new file mode 100644
index 000000000..98e6c75f2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/udisks/udisks2/non-gnu-libc.patch
@@ -0,0 +1,26 @@
+musl does not define __GNUC_PREREQ therefore check for C library being glibc
+if not then define the macro
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Index: udisks-2.1.7/udisks/udisksclient.c
+===================================================================
+--- udisks-2.1.7.orig/udisks/udisksclient.c
++++ udisks-2.1.7/udisks/udisksclient.c
+@@ -27,8 +27,15 @@
+ #include "udisksobjectinfo.h"
+
+ /* For __GNUC_PREREQ usage below */
+-#ifdef __GNUC__
++#ifdef __GLIBC__
+ # include <features.h>
++#else
++#if defined(__GNUC__)
++#define __GNUC_PREREQ(__maj, __min) \
++ (__GNUC__ > (__maj) || __GNUC__ == (__maj) && __GNUC_MINOR__ >= (__min))
++#else
++#define __GNUC_PREREQ(__maj, __min) 0
++#endif
+ #endif
+
+ /**
diff --git a/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.7.6.bb b/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.7.6.bb
new file mode 100644
index 000000000..4d22afd0d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.7.6.bb
@@ -0,0 +1,49 @@
+SUMMARY = "udisks provides dbus interfaces for disks and storage devices"
+LICENSE = "GPLv2+ & LGPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=dd79f6dbbffdbc8e86b086a8f0c0ef43"
+
+DEPENDS = " \
+ acl \
+ libatasmart \
+ polkit \
+ libgudev \
+ dbus-glib \
+ glib-2.0 \
+ libblockdev \
+ intltool-native \
+ gnome-common-native \
+ libxslt-native \
+"
+DEPENDS += "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+
+RDEPENDS_${PN} = "acl"
+
+SRC_URI = " \
+ git://github.com/storaged-project/udisks.git \
+ file://0001-data-fix-out-of-tree-build.patch \
+ file://non-gnu-libc.patch \
+"
+SRCREV = "b6471f2e99f6aa1133af0de658f1fa05c748932c"
+S = "${WORKDIR}/git"
+
+CVE_PRODUCT = "udisks"
+
+inherit autotools systemd gtk-doc gobject-introspection
+
+EXTRA_OECONF = "--disable-man --disable-gtk-doc"
+
+FILES_${PN} += " \
+ ${datadir}/dbus-1/ \
+ ${datadir}/polkit-1 \
+ ${datadir}/bash-completion \
+ ${libdir}/polkit-1/extensions/*.so \
+ ${nonarch_base_libdir}/udev/* \
+ ${exec_prefix}${nonarch_base_libdir}/udisks2/* \
+ ${systemd_system_unitdir} \
+"
+
+PACKAGES =+ "${PN}-libs"
+FILES_${PN}-libs = "${libdir}/lib*${SOLIBS}"
+
+SYSTEMD_SERVICE_${PN} = "${BPN}.service"
+SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/meta-openembedded/meta-oe/recipes-support/udisks/udisks_1.0.5.bb b/meta-openembedded/meta-oe/recipes-support/udisks/udisks_1.0.5.bb
new file mode 100644
index 000000000..e33266001
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/udisks/udisks_1.0.5.bb
@@ -0,0 +1,46 @@
+DESCRIPTION = "A storage daemon that implements well-defined D-Bus interfaces that can be used to query and manipulate storage devices."
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=73d83aebe7e4b62346afde80e0e94273"
+
+DEPENDS = "libatasmart sg3-utils polkit libgudev dbus-glib glib-2.0 intltool-native \
+ dbus-glib-native \
+"
+# optional dependencies: device-mapper parted
+
+DEPENDS += "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
+ dbus-glib-native \
+"
+
+SRC_URI = " \
+ http://hal.freedesktop.org/releases/${BPN}-${PV}.tar.gz;name=${BPN} \
+ file://optional-depends.patch \
+ file://0001-fix-build-with-newer-glibc-versions.patch \
+ file://udisks-1.0.5-fix-service-file.patch \
+ file://0001-Make-udev-rules-directory-configurable.patch \
+"
+
+SRC_URI[udisks.md5sum] = "70d48dcfe523a74cd7c7fbbc2847fcdd"
+SRC_URI[udisks.sha256sum] = "f2ec82eb0ea7e01dc299b5b29b3c18cdf861236ec43dcff66b3552b4b31c6f71"
+
+inherit autotools-brokensep systemd gtk-doc
+
+PACKAGECONFIG ??= "libdevmapper"
+PACKAGECONFIG[libdevmapper] = "--enable-devmapper,--disable-devmapper,libdevmapper"
+PACKAGECONFIG[parted] = "--enable-parted,--disable-parted,parted"
+
+EXTRA_OECONF = "--disable-man-pages --libdir=${base_libdir} --sbindir=${base_sbindir}"
+EXTRA_OEMAKE = "udevrulesdir=${nonarch_base_libdir}/udev/rules.d/"
+
+FILES_${PN} += "${libdir}/polkit-1/extensions/*.so \
+ ${datadir}/dbus-1/ \
+ ${datadir}/polkit-1 \
+ ${nonarch_base_libdir}/udev/* \
+"
+
+FILES_${PN}-dbg += "${nonarch_base_libdir}/udev/.debug"
+
+RPROVIDES_${PN} += "${PN}-systemd"
+RREPLACES_${PN} += "${PN}-systemd"
+RCONFLICTS_${PN} += "${PN}-systemd"
+SYSTEMD_SERVICE_${PN} = "udisks.service"
+SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/meta-openembedded/meta-oe/recipes-support/uim/uim/0001-Add-support-for-aarch64.patch b/meta-openembedded/meta-oe/recipes-support/uim/uim/0001-Add-support-for-aarch64.patch
new file mode 100644
index 000000000..391b0e68b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/uim/uim/0001-Add-support-for-aarch64.patch
@@ -0,0 +1,80 @@
+From 82f44f53b9a9766c2ec816f237506beb953eb332 Mon Sep 17 00:00:00 2001
+From: Andreas Schwab <schwab@suse.de>
+Date: Wed, 29 Oct 2014 14:18:28 +0100
+Subject: [PATCH] Add support for aarch64
+
+* include/private/gcconfig.h: Add support for aarch64.
+
+---
+ sigscheme/libgcroots/include/private/gcconfig.h | 37 +++++++++++++++++++++++++
+ 1 file changed, 37 insertions(+)
+
+diff --git a/sigscheme/libgcroots/include/private/gcconfig.h b/sigscheme/libgcroots/include/private/gcconfig.h
+index 4d42b03..0f13db6 100644
+--- a/sigscheme/libgcroots/include/private/gcconfig.h
++++ b/sigscheme/libgcroots/include/private/gcconfig.h
+@@ -62,6 +62,13 @@
+ # endif
+
+ /* Determine the machine type: */
++# if defined(__aarch64__)
++# define AARCH64
++# if !defined(LINUX)
++# define NOSYS
++# define mach_type_known
++# endif
++# endif
+ # if defined(__arm__) || defined(__thumb__)
+ # define ARM32
+ # if !defined(LINUX) && !defined(NETBSD)
+@@ -231,6 +238,10 @@
+ # define IA64
+ # define mach_type_known
+ # endif
++# if defined(LINUX) && defined(__aarch64__)
++# define AARCH64
++# define mach_type_known
++# endif
+ # if defined(LINUX) && defined(__arm__)
+ # define ARM32
+ # define mach_type_known
+@@ -504,6 +515,7 @@
+ /* running Amdahl UTS4 */
+ /* S390 ==> 390-like machine */
+ /* running LINUX */
++ /* AARCH64 ==> ARM AArch64 */
+ /* ARM32 ==> Intel StrongARM */
+ /* IA64 ==> Intel IPF */
+ /* (e.g. Itanium) */
+@@ -1724,6 +1736,31 @@
+ # endif
+ # endif
+
++# ifdef AARCH64
++# define CPP_WORDSZ 64
++# define MACH_TYPE "AARCH64"
++# define ALIGNMENT 8
++# ifndef HBLKSIZE
++# define HBLKSIZE 4096
++# endif
++# ifdef LINUX
++# define OS_TYPE "LINUX"
++# define LINUX_STACKBOTTOM
++# define DYNAMIC_LOADING
++ extern int __data_start[];
++# define DATASTART ((ptr_t)__data_start)
++ extern char _end[];
++# define DATAEND ((ptr_t)(&_end))
++# endif
++# ifdef NOSYS
++ /* __data_start is usually defined in the target linker script. */
++ extern int __data_start[];
++# define DATASTART ((ptr_t)__data_start)
++ extern void *__stack_base__;
++# define STACKBOTTOM ((ptr_t)__stack_base__)
++# endif
++# endif
++
+ # ifdef ARM32
+ # define CPP_WORDSZ 32
+ # define MACH_TYPE "ARM32"
diff --git a/meta-openembedded/meta-oe/recipes-support/uim/uim/0001-fix-bug-for-cross-compile.patch b/meta-openembedded/meta-oe/recipes-support/uim/uim/0001-fix-bug-for-cross-compile.patch
new file mode 100644
index 000000000..0c8f02d6c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/uim/uim/0001-fix-bug-for-cross-compile.patch
@@ -0,0 +1,26 @@
+From 08b5e51224ed95b1e76e99873b5f9f59840b0a74 Mon Sep 17 00:00:00 2001
+From: Lei Maohui <leimaohui@cn.fujitsu.com>
+Date: Fri, 21 Aug 2015 15:58:42 +0900
+Subject: [PATCH] fix bug for cross compile
+
+Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
+
+---
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 9be879c..9249bfd 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1208,8 +1208,8 @@ AC_HELP_STRING([--with-libedit[=DIR], Enable libedit support
+ if test "x$use_libedit" != "xno"; then
+ saved_CPPFLAGS=$CPPFLAGS
+ saved_LDFLAGS=$LDFLAGS
+- CPPFLAGS="${CPPFLAGS} -I$libedit_path/include"
+- LDFLAGS="${LDFLAGS} -L$libedit_path/lib"
++ CPPFLAGS="${CPPFLAGS} "
++ LDFLAGS="${LDFLAGS} "
+ AC_CHECK_LIB(curses, tgetent, LIBEDIT_LIBS="-lcurses",
+ [AC_CHECK_LIB(ncurses, tgetent, LIBEDIT_LIBS="-lncurses",
+ AC_MSG_WARN("libedit needs libcurses or libncurses. disabled...")
diff --git a/meta-openembedded/meta-oe/recipes-support/uim/uim/uim-module-manager.patch b/meta-openembedded/meta-oe/recipes-support/uim/uim/uim-module-manager.patch
new file mode 100644
index 000000000..3078af058
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/uim/uim/uim-module-manager.patch
@@ -0,0 +1,21 @@
+From d61495d3fb039842b82df44184c67eb3c1256136 Mon Sep 17 00:00:00 2001
+From: Bian Naimeng <biannm@cn.fujitsu.com>
+Date: Fri, 26 Jun 2015 12:57:48 +0900
+
+---
+ scm/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/scm/Makefile.am b/scm/Makefile.am
+index 14d9393..e8a1083 100644
+--- a/scm/Makefile.am
++++ b/scm/Makefile.am
+@@ -119,7 +119,7 @@ if EXPAT
+ module_names += "yahoo-jp"
+ endif
+
+-UIM_MODULE_MANAGER = $(top_builddir)/uim/uim-module-manager
++UIM_MODULE_MANAGER = uim-module-manager
+ UIM_MODULE_MANAGER_ENV = \
+ LIBUIM_SYSTEM_SCM_FILES=$(abs_top_srcdir)/sigscheme/lib \
+ LIBUIM_SCM_FILES=$(abs_srcdir) \
diff --git a/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.6.bb b/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.6.bb
new file mode 100644
index 000000000..af28895ee
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.6.bb
@@ -0,0 +1,144 @@
+DESCRIPTION = "A multilingual user input method library"
+HOMEPAGE = "http://uim.freedesktop.org/"
+LICENSE = "BSD-3-Clause & LGPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=32463fd29aa303fb2360faeeae17256b"
+SECTION = "inputmethods"
+
+SRC_URI = "http://uim.googlecode.com/files/uim-${PV}.tar.bz2"
+
+SRC_URI_append_class-target = " file://uim-module-manager.patch \
+ file://0001-fix-bug-for-cross-compile.patch \
+ file://0001-Add-support-for-aarch64.patch \
+"
+SRC_URI[md5sum] = "ecea4c597bab1fd4ba98ea84edcece59"
+SRC_URI[sha256sum] = "7b1ea803c73f3478917166f04f67cce6e45ad7ea5ab6df99b948c17eb1cb235f"
+
+DEPENDS = "anthy fontconfig libxft libxt glib-2.0 ncurses intltool"
+DEPENDS_append_class-target = " intltool-native gtk+ gtk+3 uim-native takao-fonts"
+
+RDEPENDS_uim = "libuim0 libedit"
+RDEPENDS_uim-anthy = "takao-fonts anthy libanthy0"
+RDEPENDS_uim-anthy_append_libc-glibc = " glibc-utils glibc-gconv-euc-jp"
+
+LEAD_SONAME = "libuim.so.1"
+
+inherit distro_features_check autotools pkgconfig gettext qemu gtk-immodules-cache
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+GTKIMMODULES_PACKAGES = "uim-gtk2.0 uim-gtk3"
+
+EXTRA_OECONF += "--disable-emacs \
+ --without-scim \
+ --without-m17nlib \
+ --without-prime \
+ --without-canna \
+ --without-mana \
+ --without-eb \
+"
+
+CONFIGUREOPTS_remove_class-target = "--disable-silent-rules"
+
+#Because m4 file's find maxdepth=2, so copy the m4 files of the deep depth.
+do_configure_prepend () {
+ cp ${S}/sigscheme/m4/* ${S}/m4/
+}
+
+do_install_append() {
+ rm -rf ${D}/${datadir}/applications
+}
+
+PACKAGES =+ "uim-xim uim-utils uim-skk uim-gtk2.0 uim-gtk3 uim-fep uim-anthy uim-common libuim0 libuim-dev"
+
+FILES_${PN} = "${bindir}/uim-help \
+ ${libdir}/uim/plugin/libuim-* \
+ ${libdir}/libuim-scm* \
+ ${libdir}/libgcroots* \
+ ${libdir}/uim/plugin/libuim-* \
+"
+
+FILES_libuim0 = "${libdir}/uim/plugin/libuim-custom-enabler.* \
+ ${libdir}/libuim-custom.so.* \
+ ${datadir}/locale/ja/LC_MESSAGES/uim.mo \
+ ${datadir}/locale/fr/LC_MESSAGES/uim.mo \
+ ${datadir}/locale/ko/LC_MESSAGES/uim.mo \
+ ${libdir}/libuim.so.* \
+"
+FILES_libuim-dev = "${libdir}/libuim*.a \
+ ${libdir}/libuim*.la \
+ ${libdir}/libuim*.so \
+ ${includedir}/uim \
+ ${libdir}/pkgconfig/uim.pc \
+"
+FILES_uim-anthy = "${libdir}/uim/plugin/libuim-anthy.* \
+ ${datadir}/uim/anthy*.scm \
+"
+FILES_${PN}-dbg += "${libdir}/*/*/*/.debug ${libdir}/*/*/.debug"
+FILES_${PN}-dev += "${libdir}/uim/plugin/*.la"
+
+FILES_uim-utils = "${bindir}/uim-sh \
+ ${bindir}/uim-module-manager \
+ ${libexecdir}/uim-helper-server \
+"
+FILES_uim-xim = "${bindir}/uim-xim \
+ ${libexecdir}/uim-candwin-*gtk \
+ ${libexecdir}/uim-candwin-*gtk3 \
+ ${datadir}/man/man1/uim-xim.1 \
+ ${sysconfdir}/X11/xinit/xinput.d/uim* \
+"
+FILES_uim-common = "${datadir}/uim/pixmaps/*.png \
+ ${datadir}/uim \
+"
+FILES_uim-fep = "${bindir}/uim-fep*"
+
+FILES_uim-gtk2.0 = "${libdir}/gtk-2.0 \
+ ${bindir}/uim-toolbar-gtk \
+ ${bindir}/uim-toolbar-gtk-systray \
+ ${bindir}/uim-*-gtk \
+ ${bindir}/uim-input-pad-ja \
+ ${libdir}/uim/uim-*-gtk \
+"
+FILES_uim-gtk3 = "${libdir}/gtk-3.0 \
+ ${bindir}/uim-toolbar-gtk3 \
+ ${bindir}/uim-toolbar-gtk3-systray \
+ ${bindir}/uim-*-gtk3 \
+ ${libdir}/uim/uim-*-gtk3 \
+"
+FILES_uim-skk = "${libdir}/uim/plugin/libuim-skk.* \
+ ${datadir}/uim/skk*.scm \
+"
+
+PACKAGE_WRITE_DEPS += "qemu-native"
+pkg_postinst_uim-anthy() {
+ if test -n "$D"; then
+ ${@qemu_run_binary(d, '$D', '${bindir}/uim-module-manager')} --register anthy --path $D${datadir}/uim
+ else
+ uim-module-manager --register anthy --path ${datadir}/uim
+ fi
+}
+
+pkg_prerm_uim-anthy() {
+ if test -n "$D"; then
+ ${@qemu_run_binary(d, '$D', '${bindir}/uim-module-manager')} --path $D${datadir}/uim --unregister anthy
+ else
+ uim-module-manager --path ${datadir}/uim --unregister anthy
+ fi
+}
+
+pkg_postinst_uim-skk() {
+ if test -n "$D"; then
+ ${@qemu_run_binary(d, '$D', '${bindir}/uim-module-manager')} --register skk --path $D${datadir}/uim
+ else
+ uim-module-manager --register skk --path ${datadir}/uim
+ fi
+}
+
+pkg_postrm_uim-skk() {
+ if test -n "$D"; then
+ ${@qemu_run_binary(d, '$D', '${bindir}/uim-module-manager')} --path $D${datadir}/uim --unregister skk
+ else
+ uim-module-manager --path ${datadir}/uim --unregister skk
+ fi
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/unixodbc/files/do-not-use-libltdl-source-directory.patch b/meta-openembedded/meta-oe/recipes-support/unixodbc/files/do-not-use-libltdl-source-directory.patch
new file mode 100644
index 000000000..2499cff72
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/unixodbc/files/do-not-use-libltdl-source-directory.patch
@@ -0,0 +1,43 @@
+Subject: [PATCH] do not use libltdl source directory
+
+Don't use the included libltdl, use the one provided
+by our libtool instead.
+
+Upstream-Status: Inappropriate [configuration]
+
+Signed-off-by: Song.Li <Song.Li@windriver.com>
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+---
+ Makefile.am | 1 -
+ configure.ac | 2 --
+ 2 files changed, 3 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 4628401..e8989bf 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -11,7 +11,6 @@ SUBDIRS = \
+ log \
+ lst \
+ ini \
+- libltdl \
+ odbcinst \
+ DriverManager \
+ exe \
+diff --git a/configure.ac b/configure.ac
+index e4bcdaf..58aa5c5 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -144,9 +144,7 @@ dnl AC_CONFIG_MACRO_DIR([libltdl/m4])
+ dnl LT_CONFIG_LTDL_DIR([libltdl])
+ dnl LTDL_INIT
+
+-LT_CONFIG_LTDL_DIR([libltdl])
+ LT_INIT([dlopen])
+-LTDL_INIT([convenience])
+
+ dnl Substitute INCLTDL and LIBLTDL in the Makefiles
+ AC_SUBST(LTDLINCL)
+--
+2.12.3
+
diff --git a/meta-openembedded/meta-oe/recipes-support/unixodbc/unixodbc_2.3.6.bb b/meta-openembedded/meta-oe/recipes-support/unixodbc/unixodbc_2.3.6.bb
new file mode 100644
index 000000000..62d9db843
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/unixodbc/unixodbc_2.3.6.bb
@@ -0,0 +1,27 @@
+SUMMARY = "An Open Source ODBC sub-system"
+DESCRIPTION = "unixODBC is an Open Source ODBC sub-system and an ODBC SDK \
+for Linux, Mac OSX, and UNIX."
+
+HOMEPAGE = "http://www.unixodbc.org/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d7b37bf80a3df5a65b355433ae36d206"
+
+DEPENDS = "libtool mysql5"
+
+SRC_URI = "ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-${PV}.tar.gz \
+ file://do-not-use-libltdl-source-directory.patch \
+"
+SRC_URI[md5sum] = "a8629fd2953b04b4639d0a9d8a5cf9d1"
+SRC_URI[sha256sum] = "88b637f647c052ecc3861a3baa275c3b503b193b6a49ff8c28b2568656d14d69"
+
+inherit autotools-brokensep
+
+S = "${WORKDIR}/unixODBC-${PV}"
+
+EXTRA_OEMAKE += "LIBS=-lltdl"
+
+do_configure_prepend() {
+ # old m4 files will cause libtool version don't match
+ rm -rf m4/*
+ rm -fr libltdl
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.7.bb b/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.7.bb
new file mode 100644
index 000000000..973fbe771
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.7.bb
@@ -0,0 +1,34 @@
+DESCRIPTION = "UPower is an abstraction for enumerating power devices, listening to device events and querying history and statistics. "
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0de8fbf1d97a140d1d93b9f14dcfbf08"
+
+DEPENDS = "intltool-native libusb1 libgudev glib-2.0 dbus-glib polkit"
+
+SRC_URI = "http://upower.freedesktop.org/releases/${BPN}-${PV}.tar.xz"
+SRC_URI[md5sum] = "236bb439d9ff1151450b3d8582399532"
+SRC_URI[sha256sum] = "24bcc2f6ab25a2533bac70b587bcb019e591293076920f5b5e04bdedc140a401"
+
+inherit autotools pkgconfig gettext gobject-introspection systemd
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+PACKAGECONFIG[idevice] = "--with-idevice,--without-idevice,libimobiledevice libplist"
+PACKAGECONFIG[systemd] = "--with-systemdutildir=${systemd_unitdir} --with-systemdsystemunitdir=${systemd_system_unitdir}, \
+ --without-systemdutildir --without-systemdsystemunitdir,systemd"
+
+EXTRA_OECONF = " --with-backend=linux"
+
+SYSTEMD_SERVICE_${PN} = "upower.service"
+# don't start on boot by default - dbus does that on demand
+SYSTEMD_AUTO_ENABLE = "disable"
+
+do_configure_prepend() {
+ sed -i -e s:-nonet:\:g ${S}/doc/man/Makefile.am
+ sed -i -e 's: doc : :g' ${S}/Makefile.am
+}
+
+RDEPENDS_${PN} += "dbus"
+RRECOMMENDS_${PN} += "pm-utils"
+FILES_${PN} += "${datadir}/dbus-1/ \
+ ${datadir}/polkit-1/ \
+ ${base_libdir}/udev/* \
+"
diff --git a/meta-openembedded/meta-oe/recipes-support/uriparser/uriparser_0.8.4.bb b/meta-openembedded/meta-oe/recipes-support/uriparser/uriparser_0.8.4.bb
new file mode 100644
index 000000000..b4be853dd
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/uriparser/uriparser_0.8.4.bb
@@ -0,0 +1,14 @@
+SUMMARY = "RFC 3986 compliant URI parsing library"
+HOMEPAGE = "https://uriparser.github.io"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=72b0f9c74ae96eeab8cf1bf3efe08da2"
+
+SRC_URI := "${SOURCEFORGE_MIRROR}/project/uriparser/Sources/${PV}/uriparser-${PV}.tar.bz2"
+
+inherit autotools
+
+EXTRA_OECONF = "--disable-test --disable-doc"
+
+SRC_URI[md5sum] = "9aabdc3611546f553f4af372167de6d6"
+SRC_URI[sha256sum] = "ce7ccda4136974889231e8426a785e7578e66a6283009cfd13f1b24a5e657b23"
diff --git a/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20170205.bb b/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20170205.bb
new file mode 100644
index 000000000..eeed5e275
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20170205.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Data files for usbmodeswitch"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+inherit allarch
+
+DEPENDS += "tcl-native"
+
+SRC_URI = "http://www.draisberghof.de/usb_modeswitch/${BP}.tar.bz2"
+SRC_URI[md5sum] = "0cc107cd0c4c83df0d9400c999e21dfd"
+SRC_URI[sha256sum] = "e2dcfd9d28928d8d8f03381571a23442b3c50d48d343bc40a1a07d01662738d1"
+
+do_install() {
+ oe_runmake install DESTDIR=${D}
+}
+
+RDEPENDS_${PN} = "usb-modeswitch (>= 2.4.0)"
+FILES_${PN} += "${base_libdir}/udev/rules.d/ \
+ ${datadir}/usb_modeswitch"
diff --git a/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.5.0.bb b/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.5.0.bb
new file mode 100644
index 000000000..ac0df8bab
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.5.0.bb
@@ -0,0 +1,27 @@
+SUMMARY = "A mode switching tool for controlling 'flip flop' (multiple device) USB gear"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+DEPENDS = "libusb1"
+
+SRC_URI = "http://www.draisberghof.de/usb_modeswitch/${BP}.tar.bz2"
+SRC_URI[md5sum] = "38ad5c9d70e06227a00361bdc2b1e568"
+SRC_URI[sha256sum] = "31c0be280d49a99ec3dc0be3325bef320d9c04b50714ef0ce1e36a614d687633"
+
+inherit pkgconfig systemd
+
+SYSTEMD_SERVICE_${PN} = "usb_modeswitch@.service"
+
+EXTRA_OEMAKE = "TCL=${bindir}/tclsh"
+
+FILES_${PN} = "${bindir} ${sysconfdir} ${nonarch_base_libdir}/udev/usb_modeswitch ${sbindir} ${localstatedir}/lib/usb_modeswitch"
+RDEPENDS_${PN} = "tcl"
+RRECOMMENDS_${PN} = "usb-modeswitch-data"
+
+do_install() {
+ oe_runmake DESTDIR=${D} install
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ install -d ${D}/${systemd_unitdir}/system
+ install -m 644 ${S}/usb_modeswitch@.service ${D}/${systemd_unitdir}/system
+ fi
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/usbpath/usbpath/configure.patch b/meta-openembedded/meta-oe/recipes-support/usbpath/usbpath/configure.patch
new file mode 100644
index 000000000..271e6a53a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/usbpath/usbpath/configure.patch
@@ -0,0 +1,11 @@
+Index: usbpath/configure.ac
+===================================================================
+--- usbpath.orig/configure.ac 2014-07-17 20:40:26.000000000 +0000
++++ usbpath/configure.ac 2014-07-18 07:01:40.933474420 +0000
+@@ -1,5 +1,5 @@
+ AC_INIT([usbpath],[0.1])
+-AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION)
++AM_INIT_AUTOMAKE([foreign])
+
+ AC_PROG_CC
+ AC_PROG_RANLIB
diff --git a/meta-openembedded/meta-oe/recipes-support/usbpath/usbpath_svn.bb b/meta-openembedded/meta-oe/recipes-support/usbpath/usbpath_svn.bb
new file mode 100644
index 000000000..6c9cd049f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/usbpath/usbpath_svn.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Convert the physical locations of a USB device to/from its number"
+AUTHOR = "Werner Almesberger <werner@openmoko.org>"
+SECTION = "console/utils"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://usbpath.c;endline=20;md5=0aa8c7d2af9110c78a99fbf9a504dc3f"
+DEPENDS = "virtual/libusb0"
+DEPENDS_class-native = "virtual/libusb0-native"
+
+BBCLASSEXTEND = "native"
+
+SRCREV = "3172"
+PV = "0.0+svnr${SRCPV}"
+
+SRC_URI = "svn://svn.openmoko.org/trunk/src/host;module=usbpath;protocol=http \
+ file://configure.patch"
+
+S = "${WORKDIR}/usbpath"
+
+inherit autotools pkgconfig
+
+RDEPENDS_${PN} += "perl"
diff --git a/meta-openembedded/meta-oe/recipes-support/uthash/uthash/run-ptest b/meta-openembedded/meta-oe/recipes-support/uthash/uthash/run-ptest
new file mode 100755
index 000000000..14071a649
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/uthash/uthash/run-ptest
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+cd tests
+for i in test*[0-9] ; do
+ if ./${i} | cmp -s "${i}.ans" - ; then
+ echo "PASS: ${i}"
+ else
+ echo "FAIL: ${i}"
+ fi
+done
diff --git a/meta-openembedded/meta-oe/recipes-support/uthash/uthash_2.0.2.bb b/meta-openembedded/meta-oe/recipes-support/uthash/uthash_2.0.2.bb
new file mode 100644
index 000000000..ccdd13b32
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/uthash/uthash_2.0.2.bb
@@ -0,0 +1,46 @@
+SUMMARY = "Hash table and linked list for C structures"
+DESCRIPTION = " uthash-dev provides a hash table implementation using C preprocessor macros.\n\
+ This package also includes:\n\
+ * utlist.h provides linked list macros for C structures\n\
+ * utarray.h implements dynamic arrays using macros\n\
+ * utstring.h implements a basic dynamic string\n\
+"
+HOMEPAGE = "https://troydhanson.github.io/uthash/"
+SECTION = "base"
+LICENSE = "BSD-1-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5cc1f1e4c71f19f580458586756c02b4"
+
+SRC_URI = "\
+ https://github.com/troydhanson/${BPN}/archive/v${PV}.tar.gz;downloadfilename=${BP}.tar.gz \
+ file://run-ptest \
+"
+UPSTREAM_CHECK_URI = "https://github.com/troydhanson/${BPN}/releases"
+
+SRC_URI[md5sum] = "d08632a58674274c9cd87e2930f5696a"
+SRC_URI[sha256sum] = "34a31d51dd7a839819cecd6f46049b4ffe031d7f3147d9a042f5504fdb1348d1"
+
+inherit ptest
+
+do_compile[noexec] = "1"
+
+do_compile_ptest() {
+ oe_runmake -C tests tests_only TEST_TARGET=
+}
+
+do_install () {
+ install -dm755 ${D}${includedir}
+ install -m0644 src/*.h ${D}${includedir}
+}
+
+do_install_ptest() {
+ install -dm755 ${D}${PTEST_PATH}/tests
+ install -m0755 tests/test*[0-9] ${D}${PTEST_PATH}/tests
+ install -m0644 tests/test*[0-9].ans ${D}${PTEST_PATH}/tests
+ install -m0644 tests/test*[0-9].dat ${D}${PTEST_PATH}/tests
+}
+
+# The main package is empty and non-existent, so -dev
+# should not depend on it...
+RDEPENDS_${PN}-dev = ""
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/utouch/files/0001-include-sys-stat.h-for-fixing-build-issue-on-musl.patch b/meta-openembedded/meta-oe/recipes-support/utouch/files/0001-include-sys-stat.h-for-fixing-build-issue-on-musl.patch
new file mode 100644
index 000000000..f3c8eeb41
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/utouch/files/0001-include-sys-stat.h-for-fixing-build-issue-on-musl.patch
@@ -0,0 +1,29 @@
+From 08b17ec505e09e8f5a4d73ffc3aa61561ec2e0da Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 30 Mar 2017 00:27:54 -0700
+Subject: [PATCH] include sys/stat.h for fixing build issue on musl
+
+error: field has incomplete
+ type 'struct stat'
+ struct stat fs;
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ tools/utouch-frame-test-mtdev.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/tools/utouch-frame-test-mtdev.c b/tools/utouch-frame-test-mtdev.c
+index 5253320..2032af4 100644
+--- a/tools/utouch-frame-test-mtdev.c
++++ b/tools/utouch-frame-test-mtdev.c
+@@ -30,6 +30,7 @@
+ #include <stdio.h>
+ #include <unistd.h>
+ #include <fcntl.h>
++#include <sys/stat.h>
+ #include "common-defs.h"
+
+ struct frame_test {
+--
+2.12.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/utouch/files/remove-man-page-creation.patch b/meta-openembedded/meta-oe/recipes-support/utouch/files/remove-man-page-creation.patch
new file mode 100644
index 000000000..8706d9123
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/utouch/files/remove-man-page-creation.patch
@@ -0,0 +1,16 @@
+configure.ac: never generate the docs even if a2x is found as xmllint will fail finding custom dtd files
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Derek Straka <derek@asterius.io>
+--- git/configure.ac.orig 2016-08-15 09:53:46.787003658 -0400
++++ git/configure.ac 2016-08-15 09:53:51.698972432 -0400
+@@ -37,7 +37,7 @@
+ ])
+
+ AC_CHECK_PROG([ASCIIDOC], [a2x], [a2x])
+-AM_CONDITIONAL([HAVE_DOCTOOLS], [test "x$ASCIIDOC" != "x"])
++AM_CONDITIONAL([HAVE_DOCTOOLS], [false])
+ AS_IF([test "x$ASCIIDOC" = "x"],
+ [AC_MSG_WARN([asciidoc not installed, man pages will not be created])])
+
diff --git a/meta-openembedded/meta-oe/recipes-support/utouch/utouch-evemu_git.bb b/meta-openembedded/meta-oe/recipes-support/utouch/utouch-evemu_git.bb
new file mode 100644
index 000000000..1dd5a86d5
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/utouch/utouch-evemu_git.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Kernel evdev device emulation"
+DESCRIPTION = "The evemu library and tools are used to describe devices, record data, create devices and replay data from kernel evdev devices. "
+HOMEPAGE = "http://bitmath.org/code/evemu/"
+
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949"
+
+inherit autotools
+
+SRC_URI = "git://bitmath.org/git/evemu.git;protocol=http"
+SRCREV = "9752b50e922572e4cd214ac45ed95e4ee410fe24"
+
+PV = "1.0.5+git${SRCPV}"
+
+S = "${WORKDIR}/git/"
+
+PARALLEL_MAKE = ""
diff --git a/meta-openembedded/meta-oe/recipes-support/utouch/utouch-frame_git.bb b/meta-openembedded/meta-oe/recipes-support/utouch/utouch-frame_git.bb
new file mode 100644
index 000000000..39d46af8e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/utouch/utouch-frame_git.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Touch Frame Library"
+DESCRIPTION = "The frame library and tools are used to handle touch frames, i.e., collections of tracked contacts. Bindings for mtdev and XI2.1."
+HOMEPAGE = "http://bitmath.org/code/frame/"
+
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2f31b266d3440dd7ee50f92cf67d8e6c"
+
+DEPENDS += "mtdev utouch-evemu"
+
+inherit autotools pkgconfig
+
+SRC_URI = "git://bitmath.org/git/frame.git;protocol=http \
+ file://remove-man-page-creation.patch \
+ file://0001-include-sys-stat.h-for-fixing-build-issue-on-musl.patch \
+ "
+SRCREV = "95363d5a1f7394d71144bf3b408ef4e6db4350fc"
+
+PV = "1.1.2+git${SRCPV}"
+
+S = "${WORKDIR}/git/"
diff --git a/meta-openembedded/meta-oe/recipes-support/utouch/utouch-mtview_git.bb b/meta-openembedded/meta-oe/recipes-support/utouch/utouch-mtview_git.bb
new file mode 100644
index 000000000..8cb180dc8
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/utouch/utouch-mtview_git.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Multitouch viewer"
+DESCRIPTION = "mtview is a small X application that shows a graphical view of your MT-enabled hardware. It uses mtdev."
+HOMEPAGE = "http://bitmath.org/code/mtview/"
+
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4c61b8950dc1aab4d2aa7c2ae6b1cfb3"
+
+inherit autotools pkgconfig distro_features_check
+# depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI = "git://bitmath.org/git/mtview.git;protocol=http"
+SRCREV = "ad437c38dc111cf3990a03abf14efe1b5d89604b"
+
+DEPENDS += "mtdev utouch-frame utouch-evemu libx11"
+
+PV = "1.1.7+git${SRCPV}"
+
+S = "${WORKDIR}/git/"
diff --git a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/Makefile.utils b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/Makefile.utils
new file mode 100644
index 000000000..495601f08
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/Makefile.utils
@@ -0,0 +1,45 @@
+## -----------------------------------------------------------------------
+##
+## Copyright 2001-2008 H. Peter Anvin - All Rights Reserved
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation, Inc., 53 Temple Place Ste 330,
+## Boston MA 02111-1307, USA; either version 2 of the License, or
+## (at your option) any later version; incorporated herein by reference.
+##
+## -----------------------------------------------------------------------
+
+INCLUDES = -I. -I../vboxsf -I../vboxsf/include
+MOD_DEFS = -DRT_OS_LINUX -DIN_RING0 -DIN_RT_R0 \
+ -DIN_SUP_R0 -DVBOX -DVBOX_WITH_HGCM -DIN_MODULE -DIN_GUEST_R0
+CFLAGS = ${INCLUDES} ${MOD_DEFS}
+LDFLAGS =
+
+SRCS = mount.vboxsf.c \
+ vbsfmount.c
+
+OBJS = $(patsubst %.c,%.o,$(notdir $(SRCS)))
+
+.SUFFIXES: .c .o .i .s .S
+
+
+all: mount.vboxsf
+
+clean:
+ -rm -f *.o mount.vboxsf
+
+spotless: clean
+ -rm -f *~
+
+mount.vboxsf: $(OBJS)
+ $(CC) $(LDFLAGS) -o $@ $^
+
+%.o: %.c
+ $(CC) $(UMAKEDEPS) $(CFLAGS) -c -o $@ $<
+%.i: %.c
+ $(CC) $(UMAKEDEPS) $(CFLAGS) -E -o $@ $<
+%.s: %.c
+ $(CC) $(UMAKEDEPS) $(CFLAGS) -S -o $@ $<
+
+-include .*.d *.tmp
diff --git a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.2.8.bb b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.2.8.bb
new file mode 100644
index 000000000..e00db4d7e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.2.8.bb
@@ -0,0 +1,78 @@
+SUMMARY = "VirtualBox Linux Guest Drivers"
+SECTION = "core"
+LICENSE = "GPL-2.0"
+LIC_FILES_CHKSUM = "file://${WORKDIR}/${VBOX_NAME}/COPYING;md5=e197d5641bb35b29d46ca8c4bf7f2660"
+
+DEPENDS = "virtual/kernel"
+
+inherit module kernel-module-split
+
+COMPATIBLE_MACHINE = "(qemux86|qemux86-64)"
+
+VBOX_NAME = "VirtualBox-${PV}"
+
+SRC_URI = "http://download.virtualbox.org/virtualbox/${PV}/${VBOX_NAME}.tar.bz2 \
+ file://Makefile.utils \
+"
+
+SRC_URI[md5sum] = "e731ea9c5c31096ec4c2a3bfba26665c"
+SRC_URI[sha256sum] = "ee2759d47b0b4ac81b8b671c9485c87fb2db12c097b3e7e69b94c1291a8084e8"
+
+S = "${WORKDIR}/vbox_module"
+
+export BUILD_TARGET_ARCH="${ARCH}"
+export BUILD_TARGET_ARCH_x86-64="amd64"
+
+EXTRA_OEMAKE += "KERN_DIR='${WORKDIR}/${KERNEL_VERSION}/build'"
+
+addtask export_sources before do_patch after do_unpack
+
+do_export_sources() {
+ mkdir -p "${S}"
+ ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/export_modules.sh ${T}/vbox_modules.tar.gz
+ tar -C "${S}" -xzf ${T}/vbox_modules.tar.gz
+
+ # add a mount utility to use shared folder from VBox Addition Source Code
+ mkdir -p "${S}/utils"
+ install ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/sharedfolders/mount.vboxsf.c ${S}/utils
+ install ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/sharedfolders/vbsfmount.c ${S}/utils
+ install ${S}/../Makefile.utils ${S}/utils/Makefile
+
+}
+
+do_configure_prepend() {
+ # vboxguestdrivers/5.2.6-r0/vbox_module/vboxguest/Makefile.include.header:99: *** The variable KERN_DIR must be a kernel build folder and end with /build without a trailing slash, or KERN_VER must be set. Stop.
+ # vboxguestdrivers/5.2.6-r0/vbox_module/vboxguest/Makefile.include.header:108: *** The kernel build folder path must end in <version>/build, or the variable KERN_VER must be set. Stop.
+ mkdir -p ${WORKDIR}/${KERNEL_VERSION}
+ ln -snf ${STAGING_KERNEL_DIR} ${WORKDIR}/${KERNEL_VERSION}/build
+}
+
+# compile and install mount utility
+do_compile_append() {
+ oe_runmake 'LD=${CC}' 'LDFLAGS=${LDFLAGS}' -C ${S}/utils
+ if ! [ -e vboxguest.ko -a -e vboxsf.ko -a -e vboxvideo.ko ] ; then
+ echo "ERROR: One of vbox*.ko modules wasn't built"
+ exit 1
+ fi
+}
+
+module_do_install() {
+ MODULE_DIR=${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION}/kernel/misc
+ install -d $MODULE_DIR
+ install -m 644 vboxguest.ko $MODULE_DIR
+ install -m 644 vboxsf.ko $MODULE_DIR
+ install -m 644 vboxvideo.ko $MODULE_DIR
+}
+
+do_install_append() {
+ install -d ${D}${base_sbindir}
+ install -m 755 ${S}/utils/mount.vboxsf ${D}${base_sbindir}
+}
+
+PACKAGES += "kernel-module-vboxguest kernel-module-vboxsf kernel-module-vboxvideo"
+RRECOMMENDS_${PN} += "kernel-module-vboxguest kernel-module-vboxsf kernel-module-vboxvideo"
+
+FILES_${PN} = "${base_sbindir}"
+
+# autoload if installed
+KERNEL_MODULE_AUTOLOAD += "vboxguest vboxsf vboxvideo"
diff --git a/meta-openembedded/meta-oe/recipes-support/vim/files/CVE-2017-17087.patch b/meta-openembedded/meta-oe/recipes-support/vim/files/CVE-2017-17087.patch
new file mode 100644
index 000000000..937b9ba31
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/vim/files/CVE-2017-17087.patch
@@ -0,0 +1,70 @@
+From 9c11f80339372b7aa2f43153d574f2b5abb79708 Mon Sep 17 00:00:00 2001
+From: Li Zhou <li.zhou@windriver.com>
+Date: Sun, 17 Dec 2017 23:09:35 -0800
+Subject: [PATCH] vim: patch 8.0.1263: others can read the swap file if a user
+ is careless
+
+Problem: Others can read the swap file if a user is careless with his
+ primary group.
+Solution: If the group permission allows for reading but the world
+ permissions doesn't, make sure the group is right.
+
+Upstream-Status: Backport
+CVE: CVE-2017-17087
+Signed-off-by: Li Zhou <li.zhou@windriver.com>
+---
+ src/fileio.c | 24 +++++++++++++++++++++++-
+ src/version.c | 2 ++
+ 2 files changed, 25 insertions(+), 1 deletion(-)
+
+diff --git a/src/fileio.c b/src/fileio.c
+index f54fb8465..2c7740af9 100644
+--- a/src/fileio.c
++++ b/src/fileio.c
+@@ -716,7 +716,29 @@ readfile(
+ /* Set swap file protection bits after creating it. */
+ if (swap_mode > 0 && curbuf->b_ml.ml_mfp != NULL
+ && curbuf->b_ml.ml_mfp->mf_fname != NULL)
+- (void)mch_setperm(curbuf->b_ml.ml_mfp->mf_fname, (long)swap_mode);
++ {
++ char_u *swap_fname = curbuf->b_ml.ml_mfp->mf_fname;
++
++ /*
++ * If the group-read bit is set but not the world-read bit, then
++ * the group must be equal to the group of the original file. If
++ * we can't make that happen then reset the group-read bit. This
++ * avoids making the swap file readable to more users when the
++ * primary group of the user is too permissive.
++ */
++ if ((swap_mode & 044) == 040)
++ {
++ stat_T swap_st;
++
++ if (mch_stat((char *)swap_fname, &swap_st) >= 0
++ && st.st_gid != swap_st.st_gid
++ && fchown(curbuf->b_ml.ml_mfp->mf_fd, -1, st.st_gid)
++ == -1)
++ swap_mode &= 0600;
++ }
++
++ (void)mch_setperm(swap_fname, (long)swap_mode);
++ }
+ #endif
+ }
+
+diff --git a/src/version.c b/src/version.c
+index a5cb078f0..5c0df475f 100644
+--- a/src/version.c
++++ b/src/version.c
+@@ -770,6 +770,8 @@ static char *(features[]) =
+ static int included_patches[] =
+ { /* Add new patch number below this line */
+ /**/
++ 1263,
++/**/
+ 983,
+ /**/
+ 982,
+--
+2.11.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/vim/files/disable_acl_header_check.patch b/meta-openembedded/meta-oe/recipes-support/vim/files/disable_acl_header_check.patch
new file mode 100644
index 000000000..65e5f58c6
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/vim/files/disable_acl_header_check.patch
@@ -0,0 +1,27 @@
+Upstream-Status: pending
+
+Don't check 'sys/acl.h' if acl support disabled for vim/vim-tiny.
+
+Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
+================================================
+diff --git a/src/configure.ac b/src/configure.ac
+index fb965e5..d734064 100644
+--- a/src/configure.ac
++++ b/src/configure.ac
+@@ -2511,7 +2511,7 @@ AC_CHECK_HEADERS(stdarg.h stdint.h stdlib.h string.h \
+ sys/systeminfo.h locale.h sys/stream.h termios.h \
+ libc.h sys/statfs.h poll.h sys/poll.h pwd.h \
+ utime.h sys/param.h libintl.h libgen.h \
+- util/debug.h util/msg18n.h frame.h sys/acl.h \
++ util/debug.h util/msg18n.h frame.h \
+ sys/access.h sys/sysinfo.h wchar.h wctype.h)
+
+ dnl sys/ptem.h depends on sys/stream.h on Solaris
+@@ -3112,6 +3112,7 @@ AC_ARG_ENABLE(acl,
+ , [enable_acl="yes"])
+ if test "$enable_acl" = "yes"; then
+ AC_MSG_RESULT(no)
++AC_CHECK_HEADERS(sys/acl.h)
+ AC_CHECK_LIB(posix1e, acl_get_file, [LIBS="$LIBS -lposix1e"],
+ AC_CHECK_LIB(acl, acl_get_file, [LIBS="$LIBS -lacl"
+ AC_CHECK_LIB(attr, fgetxattr, LIBS="$LIBS -lattr",,)],,),)
diff --git a/meta-openembedded/meta-oe/recipes-support/vim/files/vim-add-knob-whether-elf.h-are-checked.patch b/meta-openembedded/meta-oe/recipes-support/vim/files/vim-add-knob-whether-elf.h-are-checked.patch
new file mode 100644
index 000000000..6c620f9f2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/vim/files/vim-add-knob-whether-elf.h-are-checked.patch
@@ -0,0 +1,38 @@
+vim: add knob whether elf.h are checked
+
+Previously, it still was checked when there was no elf library in sysroots directory.
+Add knob to decide whether elf.h are checked or not.
+
+Upstream-status: Pending
+
+Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
+---
+ src/configure.ac | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/src/configure.ac b/src/configure.ac
+index d734064..f504fa6 100644
+--- a/src/configure.ac
++++ b/src/configure.ac
+@@ -2483,11 +2483,18 @@ AC_TRY_COMPILE([#include <stdio.h>], [int x __attribute__((unused));],
+ AC_MSG_RESULT(no))
+
+ dnl Checks for header files.
++AC_MSG_CHECKING(whether or not to look for elf.h)
++AC_ARG_ENABLE(elf-check,
++ [ --enable-elf-check If elfutils, check for elf.h [default=no]],
++ , enable_elf_check="no")
++AC_MSG_RESULT($enable_elf_check)
++if test "x$enable_elf_check" != "xno"; then
+ AC_CHECK_HEADER(elf.h, HAS_ELF=1)
+ dnl AC_CHECK_HEADER(dwarf.h, SVR4=1)
+ if test "$HAS_ELF" = 1; then
+ AC_CHECK_LIB(elf, main)
+ fi
++fi
+
+ AC_HEADER_DIRENT
+
+--
+1.7.9.5
+
diff --git a/meta-openembedded/meta-oe/recipes-support/vim/vim-tiny_8.0.0983.bb b/meta-openembedded/meta-oe/recipes-support/vim/vim-tiny_8.0.0983.bb
new file mode 100644
index 000000000..bb8f2b7ea
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/vim/vim-tiny_8.0.0983.bb
@@ -0,0 +1,13 @@
+require vim_${PV}.bb
+
+SUMMARY += " (with tiny features)"
+
+PACKAGECONFIG += "tiny"
+
+do_install() {
+ install -d ${D}/${bindir}
+ install -m 0755 ${S}/vim ${D}/${bindir}/vim.tiny
+}
+
+ALTERNATIVE_PRIORITY = "90"
+ALTERNATIVE_TARGET = "${bindir}/vim.tiny"
diff --git a/meta-openembedded/meta-oe/recipes-support/vim/vim_8.0.0983.bb b/meta-openembedded/meta-oe/recipes-support/vim/vim_8.0.0983.bb
new file mode 100644
index 000000000..44c868c74
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/vim/vim_8.0.0983.bb
@@ -0,0 +1,114 @@
+SUMMARY = "Vi IMproved - enhanced vi editor"
+SECTION = "console/utils"
+DEPENDS = "ncurses gettext-native"
+# vimdiff doesn't like busybox diff
+RSUGGESTS_${PN} = "diffutils"
+LICENSE = "vim"
+LIC_FILES_CHKSUM = "file://../runtime/doc/uganda.txt;md5=eea32ac1424bba14096736a494ae9045"
+
+SRC_URI = "git://github.com/vim/vim.git \
+ file://disable_acl_header_check.patch;patchdir=.. \
+ file://vim-add-knob-whether-elf.h-are-checked.patch;patchdir=.. \
+ file://CVE-2017-17087.patch;patchdir=.. \
+"
+SRCREV = "3f9a1ff141412e9e85f7dff47d02946cb9be9228"
+
+S = "${WORKDIR}/git/src"
+
+VIMDIR = "vim${@d.getVar('PV').split('.')[0]}${@d.getVar('PV').split('.')[1]}"
+
+inherit autotools-brokensep update-alternatives
+
+CLEANBROKEN = "1"
+
+# vim configure.in contains functions which got 'dropped' by autotools.bbclass
+do_configure () {
+ rm -f auto/*
+ touch auto/config.mk
+ aclocal
+ autoconf
+ oe_runconf
+ touch auto/configure
+ touch auto/config.mk auto/config.h
+}
+
+#Available PACKAGECONFIG options are gtkgui, acl, x11, tiny
+PACKAGECONFIG ??= ""
+PACKAGECONFIG += "${@bb.utils.filter('DISTRO_FEATURES', 'acl selinux', d)}"
+
+PACKAGECONFIG[gtkgui] = "--enable-gtk2-test --enable-gui=gtk2,--enable-gui=no,gtk+,"
+PACKAGECONFIG[acl] = "--enable-acl,--disable-acl,acl,"
+PACKAGECONFIG[x11] = "--with-x,--without-x,xt,"
+PACKAGECONFIG[tiny] = "--with-features=tiny,--with-features=big,,"
+PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux,"
+PACKAGECONFIG[elfutils] = "--enable-elf-check,,elfutils,"
+
+EXTRA_OECONF = " \
+ --disable-gpm \
+ --disable-gtktest \
+ --disable-xim \
+ --disable-netbeans \
+ --with-tlib=ncurses \
+ ac_cv_small_wchar_t=no \
+ vim_cv_getcwd_broken=no \
+ vim_cv_memmove_handles_overlap=yes \
+ vim_cv_stat_ignores_slash=no \
+ vim_cv_terminfo=yes \
+ vim_cv_tgent=non-zero \
+ vim_cv_toupper_broken=no \
+ vim_cv_tty_group=world \
+ STRIP=/bin/true \
+"
+
+do_install() {
+ autotools_do_install
+
+ # Work around file-rdeps picking up csh, awk, perl or python as a dep
+ chmod -x ${D}${datadir}/${BPN}/${VIMDIR}/tools/vim132
+ chmod -x ${D}${datadir}/${BPN}/${VIMDIR}/tools/mve.awk
+ chmod -x ${D}${datadir}/${BPN}/${VIMDIR}/tools/*.pl
+ chmod -x ${D}${datadir}/${BPN}/${VIMDIR}/tools/*.py
+
+ # Install example vimrc from runtime files
+ install -m 0644 ../runtime/vimrc_example.vim ${D}/${datadir}/${BPN}/vimrc
+
+ # we use --with-features=big as default
+ mv ${D}${bindir}/${BPN} ${D}${bindir}/${BPN}.${BPN}
+}
+
+PARALLEL_MAKEINST = ""
+
+PACKAGES =+ "${PN}-common ${PN}-syntax ${PN}-help ${PN}-tutor ${PN}-vimrc ${PN}-tools"
+FILES_${PN}-syntax = "${datadir}/${BPN}/${VIMDIR}/syntax"
+FILES_${PN}-help = "${datadir}/${BPN}/${VIMDIR}/doc"
+FILES_${PN}-tutor = "${datadir}/${BPN}/${VIMDIR}/tutor ${bindir}/${BPN}tutor"
+FILES_${PN}-vimrc = "${datadir}/${BPN}/vimrc"
+FILES_${PN}-data = "${datadir}/${BPN}"
+FILES_${PN}-tools = "${datadir}/${BPN}/${VIMDIR}/tools"
+FILES_${PN}-common = " \
+ ${datadir}/${BPN}/${VIMDIR}/*.vim \
+ ${datadir}/${BPN}/${VIMDIR}/autoload \
+ ${datadir}/${BPN}/${VIMDIR}/colors \
+ ${datadir}/${BPN}/${VIMDIR}/compiler \
+ ${datadir}/${BPN}/${VIMDIR}/ftplugin \
+ ${datadir}/${BPN}/${VIMDIR}/indent \
+ ${datadir}/${BPN}/${VIMDIR}/keymap \
+ ${datadir}/${BPN}/${VIMDIR}/lang \
+ ${datadir}/${BPN}/${VIMDIR}/macros \
+ ${datadir}/${BPN}/${VIMDIR}/plugin \
+ ${datadir}/${BPN}/${VIMDIR}/print \
+ ${datadir}/${BPN}/${VIMDIR}/spell \
+ ${datadir}/icons \
+"
+
+RDEPENDS_${BPN} = "ncurses-terminfo-base"
+# Recommend that runtime data is installed along with vim
+RRECOMMENDS_${BPN} = "${PN}-syntax ${PN}-help ${PN}-tutor ${PN}-vimrc ${PN}-common"
+
+ALTERNATIVE_${PN} = "vi vim"
+ALTERNATIVE_TARGET = "${bindir}/${BPN}.${BPN}"
+ALTERNATIVE_LINK_NAME[vi] = "${base_bindir}/vi"
+ALTERNATIVE_LINK_NAME[vim] = "${bindir}/vim"
+ALTERNATIVE_PRIORITY = "100"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/0001-Fix-issue-599.patch b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/0001-Fix-issue-599.patch
new file mode 100644
index 000000000..2a9ea74cd
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/0001-Fix-issue-599.patch
@@ -0,0 +1,31 @@
+From 1dd07113f2a7489444a8990a95be42e035f8e9df Mon Sep 17 00:00:00 2001
+From: Kurt Roeckx <kroeckx@debian.org>
+Date: Tue, 1 Nov 2016 12:57:35 +0100
+Subject: [PATCH] Fix issue #599
+Forwarded: https://github.com/zaphoyd/websocketpp/pull/600
+
+---
+ websocketpp/transport/asio/security/tls.hpp | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/websocketpp/transport/asio/security/tls.hpp b/websocketpp/transport/asio/security/tls.hpp
+index 7b32db8..a8aafec 100644
+--- a/websocketpp/transport/asio/security/tls.hpp
++++ b/websocketpp/transport/asio/security/tls.hpp
+@@ -355,13 +355,9 @@ protected:
+ template <typename ErrorCodeType>
+ lib::error_code translate_ec(ErrorCodeType ec) {
+ if (ec.category() == lib::asio::error::get_ssl_category()) {
+- if (ERR_GET_REASON(ec.value()) == SSL_R_SHORT_READ) {
+- return make_error_code(transport::error::tls_short_read);
+- } else {
+ // We know it is a TLS related error, but otherwise don't know
+ // more. Pass through as TLS generic.
+ return make_error_code(transport::error::tls_error);
+- }
+ } else {
+ // We don't know any more information about this error so pass
+ // through
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch
new file mode 100644
index 000000000..530c960ce
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch
@@ -0,0 +1,155 @@
+From 4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4 Mon Sep 17 00:00:00 2001
+From: Peter Thorson <git@zaphoyd.com>
+Date: Sun, 11 Jun 2017 16:13:25 -0500
+Subject: [PATCH] minor adjustments to recent extension negotiation related
+ fixes, refactor a bit more extension negotiation code to be simpler
+
+---
+ websocketpp/impl/connection_impl.hpp | 6 +--
+ websocketpp/processors/hybi13.hpp | 92 ++++++++++++++++++------------------
+ 2 files changed, 49 insertions(+), 49 deletions(-)
+
+Index: websocketpp-0.7.0/websocketpp/impl/connection_impl.hpp
+===================================================================
+--- websocketpp-0.7.0.orig/websocketpp/impl/connection_impl.hpp
++++ websocketpp-0.7.0/websocketpp/impl/connection_impl.hpp
+@@ -1222,17 +1222,17 @@
+ std::pair<lib::error_code,std::string> neg_results;
+ neg_results = m_processor->negotiate_extensions(m_request);
+
+- if (neg_results.first == error::make_error_code(error::extension_parse_error)) {
++ if (neg_results.first == processor::error::make_error_code(processor::error::extension_parse_error)) {
+ // There was a fatal error in extension parsing that should result in
+ // a failed connection attempt.
+- m_alog.write(log::alevel::info, "Bad request: " + neg_results.first.message());
++ m_elog.write(log::elevel::info, "Bad request: " + neg_results.first.message());
+ m_response.set_status(http::status_code::bad_request);
+ return neg_results.first;
+ } else if (neg_results.first) {
+ // There was a fatal error in extension processing that is probably our
+ // fault. Consider extension negotiation to have failed and continue as
+ // if extensions were not supported
+- m_alog.write(log::alevel::info,
++ m_elog.write(log::elevel::info,
+ "Extension negotiation failed: " + neg_results.first.message());
+ } else {
+ // extension negotiation succeeded, set response header accordingly
+Index: websocketpp-0.7.0/websocketpp/processors/hybi13.hpp
+===================================================================
+--- websocketpp-0.7.0.orig/websocketpp/processors/hybi13.hpp
++++ websocketpp-0.7.0/websocketpp/processors/hybi13.hpp
+@@ -97,11 +97,6 @@
+ /**
+ * This exists mostly because the code for requests and responses is
+ * identical and I can't have virtual template methods.
+- *
+- * NOTE: this method makes assumptions that the permessage-deflate
+- * extension is the only one supported. If additional extensions are
+- * ever supported it should be reviewed carefully. Most cases where
+- * that assumption is made are explicitly noted.
+ */
+ template <typename header_type>
+ err_str_pair negotiate_extensions_helper(header_type const & header) {
+@@ -130,55 +125,60 @@
+
+ http::parameter_list::const_iterator it;
+
++ // look through the list of extension requests to find the first
++ // one that we can accept.
+ if (m_permessage_deflate.is_implemented()) {
+ err_str_pair neg_ret;
+ for (it = p.begin(); it != p.end(); ++it) {
+- // look through each extension, if the key is permessage-deflate
+- if (it->first == "permessage-deflate") {
+- // if we have already successfully negotiated this extension
+- // then skip any other requests to negotiate the same one
+- // with different parameters
+- if (m_permessage_deflate.is_enabled()) {
+- continue;
+- }
+-
+-
+- neg_ret = m_permessage_deflate.negotiate(it->second);
+-
+- if (neg_ret.first) {
+- // Figure out if this is an error that should halt all
+- // extension negotiations or simply cause negotiation of
+- // this specific extension to fail.
+- //std::cout << "permessage-compress negotiation failed: "
+- // << neg_ret.first.message() << std::endl;
+- } else {
+- // Note: this list will need commas if WebSocket++ ever
+- // supports more than one extension
+-
+- // Actually try to initialize the extension before we
+- // deem negotiation complete
+- ret.first = m_permessage_deflate.init(base::m_server);
+- if (!ret.first) {
+-
+- // TODO: support multiple extensions.
+- // right now, because there is only one extension
+- // supported, it failing to negotiate means we are
+- // done with all negotiating. In the future if more
+- // extensions are supported a better solution will
+- // be needed here.
+- break;
+- } else {
+- ret.second += neg_ret.second;
+-
+- // continue looking for more extensions
+- continue;
+- }
+-
+- }
++ // not a permessage-deflate extension request, ignore
++ if (it->first != "permessage-deflate") {
++ continue;
++ }
++
++ // if we have already successfully negotiated this extension
++ // then skip any other requests to negotiate the same one
++ // with different parameters
++ if (m_permessage_deflate.is_enabled()) {
++ continue;
++ }
++
++ // attempt to negotiate this offer
++ neg_ret = m_permessage_deflate.negotiate(it->second);
++
++ if (neg_ret.first) {
++ // negotiation offer failed. Do nothing. We will continue
++ // searching for a permessage-deflate config that succeeds
++ continue;
++ }
++
++ // Negotiation tentatively succeeded
++
++ // Actually try to initialize the extension before we
++ // deem negotiation complete
++ lib::error_code ec = m_permessage_deflate.init(base::m_server);
++
++ if (ec) {
++ // Negotiation succeeded but initialization failed this is
++ // an error that should stop negotiation of permessage
++ // deflate. Return the reason for the init failure
++
++ ret.first = ec;
++ break;
++ } else {
++ // Successfully initialized, push the negotiated response into
++ // the reply and stop looking for additional permessage-deflate
++ // extensions
++ ret.second += neg_ret.second;
++ break;
+ }
+ }
+ }
+
++ // support for future extensions would go here. Should check the value of
++ // ret.first before continuing. Might need to consider whether failure of
++ // negotiation of an earlier extension should stop negotiation of subsequent
++ // ones
++
+ return ret;
+ }
+
diff --git a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/9ddb300d874a30db35e3ad58f188944bef0bf31b.patch b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/9ddb300d874a30db35e3ad58f188944bef0bf31b.patch
new file mode 100644
index 000000000..94bfeb2fd
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/9ddb300d874a30db35e3ad58f188944bef0bf31b.patch
@@ -0,0 +1,600 @@
+## Description: add some description
+## Origin/Author: add some origin or author
+## Bug: bug URL
+From 9ddb300d874a30db35e3ad58f188944bef0bf31b Mon Sep 17 00:00:00 2001
+From: Peter Thorson <git@zaphoyd.com>
+Date: Sun, 11 Jun 2017 15:24:43 -0500
+Subject: [PATCH] Update permessage-deflate support to reflect that zlib
+ doesn't support a 256 bit window. Improve extension negotiation error
+ checking and documentation. fixes #596 fixes #653
+
+---
+ changelog.md | 8 ++
+ test/extension/permessage_deflate.cpp | 153 +++++++++++++++++----
+ .../extensions/permessage_deflate/enabled.hpp | 94 ++++++++++---
+ websocketpp/impl/connection_impl.hpp | 10 +-
+ websocketpp/processors/hybi13.hpp | 28 +++-
+ 5 files changed, 247 insertions(+), 46 deletions(-)
+
+diff --git a/changelog.md b/changelog.md
+index bba753cb..de98edd2 100644
+#--- a/changelog.md
+#+++ b/changelog.md
+#@@ -17,6 +17,14 @@ HEAD
+# - Compatibility: Update `telemetry_client` to use a slightly more cross platform
+# method of sleeping. Should work on windows now. Thank you Meir Yanovich for
+# reporting.
+#+- Compatibility: Updated permessage-deflate support to reflect that the zlib
+#+ library does not actually support a sliding window size of 256 bits.
+#+ WebSocket++ will no longer negotiate 256 bit deflate windows. If the user
+#+ of the library tries to request a 256 bit window a 512 bit window will be
+#+ specified instead (This was the previous behavior). #596 #653 Thank you
+#+ Vinnie Falco and Gianfranco Costamagna for reporting.
+#+- Compatibility: Better error handling and logging in cases where extension
+#+ requests parse correctly but negotiation fails.
+# - Bug: Store loggers in shared pointers to avoid crashes related to connections
+# trying to write logs entries after their respective endpoint has been
+# deallocated. Thank you Thalhammer for reporting and Jupp Müller for the
+diff --git a/test/extension/permessage_deflate.cpp b/test/extension/permessage_deflate.cpp
+index 4cd3e7b6..805afcc3 100644
+--- a/test/extension/permessage_deflate.cpp
++++ b/test/extension/permessage_deflate.cpp
+@@ -186,15 +186,22 @@ BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_invalid ) {
+
+ BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_valid ) {
+ ext_vars v;
++
++ // confirm that a request for a value of 8 is interpreted as 9
+ v.attr["server_max_window_bits"] = "8";
++ v.esp = v.exts.negotiate(v.attr);
++ BOOST_CHECK( v.exts.is_enabled() );
++ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
++ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9");
+
++ v.attr["server_max_window_bits"] = "9";
+ v.esp = v.exts.negotiate(v.attr);
+ BOOST_CHECK( v.exts.is_enabled() );
+ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
+- BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=8");
++ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9");
+
+- v.attr["server_max_window_bits"] = "15";
+
++ v.attr["server_max_window_bits"] = "15";
+ v.esp = v.exts.negotiate(v.attr);
+ BOOST_CHECK( v.exts.is_enabled() );
+ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
+@@ -213,7 +220,7 @@ BOOST_AUTO_TEST_CASE( invalid_set_server_max_window_bits ) {
+
+ BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_decline ) {
+ ext_vars v;
+- v.attr["server_max_window_bits"] = "8";
++ v.attr["server_max_window_bits"] = "9";
+
+ v.ec = v.exts.set_server_max_window_bits(15,pmd_mode::decline);
+ v.esp = v.exts.negotiate(v.attr);
+@@ -223,7 +230,7 @@ BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_decline ) {
+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate");
+ }
+
+-BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_accept ) {
++BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_accept_8 ) {
+ ext_vars v;
+ v.attr["server_max_window_bits"] = "8";
+
+@@ -232,10 +239,22 @@ BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_accept ) {
+ BOOST_CHECK( v.exts.is_enabled() );
+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
+ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
+- BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=8");
++ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9");
+ }
+
+-BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_largest ) {
++BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_accept ) {
++ ext_vars v;
++ v.attr["server_max_window_bits"] = "9";
++
++ v.ec = v.exts.set_server_max_window_bits(15,pmd_mode::accept);
++ v.esp = v.exts.negotiate(v.attr);
++ BOOST_CHECK( v.exts.is_enabled() );
++ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
++ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
++ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9");
++}
++
++BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_largest_8 ) {
+ ext_vars v;
+ v.attr["server_max_window_bits"] = "8";
+
+@@ -244,10 +263,22 @@ BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_largest ) {
+ BOOST_CHECK( v.exts.is_enabled() );
+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
+ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
+- BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=8");
++ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9");
+ }
+
+-BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_smallest ) {
++BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_largest ) {
++ ext_vars v;
++ v.attr["server_max_window_bits"] = "9";
++
++ v.ec = v.exts.set_server_max_window_bits(15,pmd_mode::largest);
++ v.esp = v.exts.negotiate(v.attr);
++ BOOST_CHECK( v.exts.is_enabled() );
++ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
++ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
++ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9");
++}
++
++BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_smallest_8 ) {
+ ext_vars v;
+ v.attr["server_max_window_bits"] = "8";
+
+@@ -256,7 +287,19 @@ BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_smallest ) {
+ BOOST_CHECK( v.exts.is_enabled() );
+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
+ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
+- BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=8");
++ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9");
++}
++
++BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_smallest ) {
++ ext_vars v;
++ v.attr["server_max_window_bits"] = "9";
++
++ v.ec = v.exts.set_server_max_window_bits(15,pmd_mode::smallest);
++ v.esp = v.exts.negotiate(v.attr);
++ BOOST_CHECK( v.exts.is_enabled() );
++ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
++ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
++ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9");
+ }
+
+ // Negotiate server_max_window_bits
+@@ -292,7 +335,13 @@ BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_valid ) {
+ v.esp = v.exts.negotiate(v.attr);
+ BOOST_CHECK( v.exts.is_enabled() );
+ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
+- BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=8");
++ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9");
++
++ v.attr["client_max_window_bits"] = "9";
++ v.esp = v.exts.negotiate(v.attr);
++ BOOST_CHECK( v.exts.is_enabled() );
++ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
++ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9");
+
+ v.attr["client_max_window_bits"] = "15";
+ v.esp = v.exts.negotiate(v.attr);
+@@ -311,7 +360,7 @@ BOOST_AUTO_TEST_CASE( invalid_set_client_max_window_bits ) {
+ BOOST_CHECK_EQUAL(v.ec,pmde::make_error_code(pmde::invalid_max_window_bits));
+ }
+
+-BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_decline ) {
++BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_decline_8 ) {
+ ext_vars v;
+ v.attr["client_max_window_bits"] = "8";
+
+@@ -323,7 +372,19 @@ BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_decline ) {
+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate");
+ }
+
+-BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_accept ) {
++BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_decline ) {
++ ext_vars v;
++ v.attr["client_max_window_bits"] = "9";
++
++ v.ec = v.exts.set_client_max_window_bits(9,pmd_mode::decline);
++ v.esp = v.exts.negotiate(v.attr);
++ BOOST_CHECK( v.exts.is_enabled() );
++ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
++ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
++ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate");
++}
++
++BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_accept_8 ) {
+ ext_vars v;
+ v.attr["client_max_window_bits"] = "8";
+
+@@ -332,10 +393,22 @@ BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_accept ) {
+ BOOST_CHECK( v.exts.is_enabled() );
+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
+ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
+- BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=8");
++ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9");
+ }
+
+-BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_largest ) {
++BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_accept ) {
++ ext_vars v;
++ v.attr["client_max_window_bits"] = "9";
++
++ v.ec = v.exts.set_client_max_window_bits(15,pmd_mode::accept);
++ v.esp = v.exts.negotiate(v.attr);
++ BOOST_CHECK( v.exts.is_enabled() );
++ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
++ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
++ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9");
++}
++
++BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_largest_8 ) {
+ ext_vars v;
+ v.attr["client_max_window_bits"] = "8";
+
+@@ -344,10 +417,22 @@ BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_largest ) {
+ BOOST_CHECK( v.exts.is_enabled() );
+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
+ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
+- BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=8");
++ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9");
+ }
+
+-BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_smallest ) {
++BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_largest ) {
++ ext_vars v;
++ v.attr["client_max_window_bits"] = "9";
++
++ v.ec = v.exts.set_client_max_window_bits(15,pmd_mode::largest);
++ v.esp = v.exts.negotiate(v.attr);
++ BOOST_CHECK( v.exts.is_enabled() );
++ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
++ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
++ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9");
++}
++
++BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_smallest_8 ) {
+ ext_vars v;
+ v.attr["client_max_window_bits"] = "8";
+
+@@ -356,7 +441,19 @@ BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_smallest ) {
+ BOOST_CHECK( v.exts.is_enabled() );
+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
+ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
+- BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=8");
++ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9");
++}
++
++BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_smallest ) {
++ ext_vars v;
++ v.attr["client_max_window_bits"] = "9";
++
++ v.ec = v.exts.set_client_max_window_bits(15,pmd_mode::smallest);
++ v.esp = v.exts.negotiate(v.attr);
++ BOOST_CHECK( v.exts.is_enabled() );
++ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
++ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
++ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9");
+ }
+
+
+@@ -507,7 +604,8 @@ BOOST_AUTO_TEST_CASE( compress_data ) {
+ std::string compress_out;
+ std::string decompress_out;
+
+- v.exts.init(true);
++ v.ec = v.exts.init(true);
++ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
+
+ v.ec = v.exts.compress(compress_in,compress_out);
+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
+@@ -520,7 +618,8 @@ BOOST_AUTO_TEST_CASE( compress_data ) {
+ BOOST_AUTO_TEST_CASE( compress_data_multiple ) {
+ ext_vars v;
+
+- v.exts.init(true);
++ v.ec = v.exts.init(true);
++ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
+
+ for (int i = 0; i < 2; i++) {
+ std::string compress_in = "Hello";
+@@ -545,11 +644,12 @@ BOOST_AUTO_TEST_CASE( compress_data_large ) {
+
+ websocketpp::http::attribute_list alist;
+
+- alist["server_max_window_bits"] = "8";
+- v.exts.set_server_max_window_bits(8,websocketpp::extensions::permessage_deflate::mode::smallest);
++ alist["server_max_window_bits"] = "9";
++ v.exts.set_server_max_window_bits(9,websocketpp::extensions::permessage_deflate::mode::smallest);
+
+ v.exts.negotiate(alist);
+- v.exts.init(true);
++ v.ec = v.exts.init(true);
++ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
+
+ v.ec = v.exts.compress(compress_in,compress_out);
+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
+@@ -573,7 +673,8 @@ BOOST_AUTO_TEST_CASE( compress_data_no_context_takeover ) {
+ v.exts.enable_server_no_context_takeover();
+
+ v.exts.negotiate(alist);
+- v.exts.init(true);
++ v.ec = v.exts.init(true);
++ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
+
+ v.ec = v.exts.compress(compress_in,compress_out1);
+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
+@@ -609,7 +710,8 @@ BOOST_AUTO_TEST_CASE( compress_empty ) {
+ std::string compress_out;
+ std::string decompress_out;
+
+- v.exts.init(true);
++ v.ec = v.exts.init(true);
++ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
+
+ v.ec = v.exts.compress(compress_in,compress_out);
+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
+@@ -640,7 +742,8 @@ BOOST_AUTO_TEST_CASE( decompress_data ) {
+ std::string out;
+ std::string reference = "Hello";
+
+- v.exts.init(true);
++ v.ec = v.exts.init(true);
++ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
+
+ v.ec = v.exts.decompress(in,11,out);
+
+diff --git a/websocketpp/extensions/permessage_deflate/enabled.hpp b/websocketpp/extensions/permessage_deflate/enabled.hpp
+index 1581f14c..f20a1b1d 100644
+--- a/websocketpp/extensions/permessage_deflate/enabled.hpp
++++ b/websocketpp/extensions/permessage_deflate/enabled.hpp
+@@ -46,7 +46,7 @@
+ namespace websocketpp {
+ namespace extensions {
+
+-/// Implementation of the draft permessage-deflate WebSocket extension
++/// Implementation of RFC 7692, the permessage-deflate WebSocket extension
+ /**
+ * ### permessage-deflate interface
+ *
+@@ -174,18 +174,30 @@ namespace websocketpp {
+ namespace extensions {
+ namespace permessage_deflate {
+
+-/// Default value for server_max_window_bits as defined by draft 17
++/// Default value for server_max_window_bits as defined by RFC 7692
+ static uint8_t const default_server_max_window_bits = 15;
+-/// Minimum value for server_max_window_bits as defined by draft 17
++/// Minimum value for server_max_window_bits as defined by RFC 7692
++/**
++ * NOTE: A value of 8 is not actually supported by zlib, the deflate
++ * library that WebSocket++ uses. To preserve backwards compatibility
++ * with RFC 7692 and previous versions of the library a value of 8
++ * is accepted by the library but will always be negotiated as 9.
++ */
+ static uint8_t const min_server_max_window_bits = 8;
+-/// Maximum value for server_max_window_bits as defined by draft 17
++/// Maximum value for server_max_window_bits as defined by RFC 7692
+ static uint8_t const max_server_max_window_bits = 15;
+
+-/// Default value for client_max_window_bits as defined by draft 17
++/// Default value for client_max_window_bits as defined by RFC 7692
+ static uint8_t const default_client_max_window_bits = 15;
+-/// Minimum value for client_max_window_bits as defined by draft 17
++/// Minimum value for client_max_window_bits as defined by RFC 7692
++/**
++ * NOTE: A value of 8 is not actually supported by zlib, the deflate
++ * library that WebSocket++ uses. To preserve backwards compatibility
++ * with RFC 7692 and previous versions of the library a value of 8
++ * is accepted by the library but will always be negotiated as 9.
++ */
+ static uint8_t const min_client_max_window_bits = 8;
+-/// Maximum value for client_max_window_bits as defined by draft 17
++/// Maximum value for client_max_window_bits as defined by RFC 7692
+ static uint8_t const max_client_max_window_bits = 15;
+
+ namespace mode {
+@@ -372,7 +384,7 @@ class enabled {
+ /**
+ * The bits setting is the base 2 logarithm of the maximum window size that
+ * the server must use to compress outgoing messages. The permitted range
+- * is 8 to 15 inclusive. 8 represents a 256 byte window and 15 a 32KiB
++ * is 9 to 15 inclusive. 9 represents a 512 byte window and 15 a 32KiB
+ * window. The default setting is 15.
+ *
+ * Mode Options:
+@@ -386,6 +398,14 @@ class enabled {
+ * adjusted by the server. A server may unilaterally set this value without
+ * client support.
+ *
++ * NOTE: The permessage-deflate spec specifies that a value of 8 is allowed.
++ * Prior to version 0.8.0 a value of 8 was also allowed by this library.
++ * zlib, the deflate compression library that WebSocket++ uses has always
++ * silently adjusted a value of 8 to 9. In recent versions of zlib (1.2.9
++ * and greater) a value of 8 is now explicitly rejected. WebSocket++ 0.8.0
++ * continues to perform the 8->9 conversion for backwards compatibility
++ * purposes but this should be considered deprecated functionality.
++ *
+ * @param bits The size to request for the outgoing window size
+ * @param mode The mode to use for negotiating this parameter
+ * @return A status code
+@@ -394,6 +414,12 @@ class enabled {
+ if (bits < min_server_max_window_bits || bits > max_server_max_window_bits) {
+ return error::make_error_code(error::invalid_max_window_bits);
+ }
++
++ // See note in doc comment above about what is happening here
++ if (bits == 8) {
++ bits = 9;
++ }
++
+ m_server_max_window_bits = bits;
+ m_server_max_window_bits_mode = mode;
+
+@@ -403,8 +429,8 @@ class enabled {
+ /// Limit client LZ77 sliding window size
+ /**
+ * The bits setting is the base 2 logarithm of the window size that the
+- * client must use to compress outgoing messages. The permitted range is 8
+- * to 15 inclusive. 8 represents a 256 byte window and 15 a 32KiB window.
++ * client must use to compress outgoing messages. The permitted range is 9
++ * to 15 inclusive. 9 represents a 512 byte window and 15 a 32KiB window.
+ * The default setting is 15.
+ *
+ * Mode Options:
+@@ -417,6 +443,14 @@ class enabled {
+ * outgoing window size unilaterally. A server may only limit the client's
+ * window size if the remote client supports that feature.
+ *
++ * NOTE: The permessage-deflate spec specifies that a value of 8 is allowed.
++ * Prior to version 0.8.0 a value of 8 was also allowed by this library.
++ * zlib, the deflate compression library that WebSocket++ uses has always
++ * silently adjusted a value of 8 to 9. In recent versions of zlib (1.2.9
++ * and greater) a value of 8 is now explicitly rejected. WebSocket++ 0.8.0
++ * continues to perform the 8->9 conversion for backwards compatibility
++ * purposes but this should be considered deprecated functionality.
++ *
+ * @param bits The size to request for the outgoing window size
+ * @param mode The mode to use for negotiating this parameter
+ * @return A status code
+@@ -425,6 +459,12 @@ class enabled {
+ if (bits < min_client_max_window_bits || bits > max_client_max_window_bits) {
+ return error::make_error_code(error::invalid_max_window_bits);
+ }
++
++ // See note in doc comment above about what is happening here
++ if (bits == 8) {
++ bits = 9;
++ }
++
+ m_client_max_window_bits = bits;
+ m_client_max_window_bits_mode = mode;
+
+@@ -642,11 +682,17 @@ class enabled {
+ * client requested that we use.
+ *
+ * options:
+- * - decline (refuse to use the attribute)
+- * - accept (use whatever the client says)
+- * - largest (use largest possible value)
++ * - decline (ignore value, offer our default instead)
++ * - accept (use the value requested by the client)
++ * - largest (use largest value acceptable to both)
+ * - smallest (use smallest possible value)
+ *
++ * NOTE: As a value of 8 is no longer explicitly supported by zlib but might
++ * be requested for negotiation by an older client/server, if the result of
++ * the negotiation would be to send a value of 8, a value of 9 is offered
++ * instead. This ensures that WebSocket++ will only ever negotiate connections
++ * with compression settings explicitly supported by zlib.
++ *
+ * @param [in] value The value of the attribute from the offer
+ * @param [out] ec A reference to the error code to return errors via
+ */
+@@ -678,6 +724,11 @@ class enabled {
+ ec = make_error_code(error::invalid_mode);
+ m_server_max_window_bits = default_server_max_window_bits;
+ }
++
++ // See note in doc comment
++ if (m_server_max_window_bits == 8) {
++ m_server_max_window_bits = 9;
++ }
+ }
+
+ /// Negotiate client_max_window_bits attribute
+@@ -687,11 +738,17 @@ class enabled {
+ * negotiation mode.
+ *
+ * options:
+- * - decline (refuse to use the attribute)
+- * - accept (use whatever the client says)
+- * - largest (use largest possible value)
++ * - decline (ignore value, offer our default instead)
++ * - accept (use the value requested by the client)
++ * - largest (use largest value acceptable to both)
+ * - smallest (use smallest possible value)
+ *
++ * NOTE: As a value of 8 is no longer explicitly supported by zlib but might
++ * be requested for negotiation by an older client/server, if the result of
++ * the negotiation would be to send a value of 8, a value of 9 is offered
++ * instead. This ensures that WebSocket++ will only ever negotiate connections
++ * with compression settings explicitly supported by zlib.
++ *
+ * @param [in] value The value of the attribute from the offer
+ * @param [out] ec A reference to the error code to return errors via
+ */
+@@ -727,6 +784,11 @@ class enabled {
+ ec = make_error_code(error::invalid_mode);
+ m_client_max_window_bits = default_client_max_window_bits;
+ }
++
++ // See note in doc comment
++ if (m_client_max_window_bits == 8) {
++ m_client_max_window_bits = 9;
++ }
+ }
+
+ bool m_enabled;
+diff --git a/websocketpp/impl/connection_impl.hpp b/websocketpp/impl/connection_impl.hpp
+index 105911db..ae55c338 100644
+--- a/websocketpp/impl/connection_impl.hpp
++++ b/websocketpp/impl/connection_impl.hpp
+@@ -1222,12 +1222,18 @@ lib::error_code connection<config>::process_handshake_request() {
+ std::pair<lib::error_code,std::string> neg_results;
+ neg_results = m_processor->negotiate_extensions(m_request);
+
+- if (neg_results.first) {
++ if (neg_results.first == error::make_error_code(error::extension_parse_error)) {
+ // There was a fatal error in extension parsing that should result in
+ // a failed connection attempt.
+- m_alog.write(log::alevel::devel, "Bad request: " + neg_results.first.message());
++ m_alog.write(log::alevel::info, "Bad request: " + neg_results.first.message());
+ m_response.set_status(http::status_code::bad_request);
+ return neg_results.first;
++ } else if (neg_results.first) {
++ // There was a fatal error in extension processing that is probably our
++ // fault. Consider extension negotiation to have failed and continue as
++ // if extensions were not supported
++ m_alog.write(log::alevel::info,
++ "Extension negotiation failed: " + neg_results.first.message());
+ } else {
+ // extension negotiation succeeded, set response header accordingly
+ // we don't send an empty extensions header because it breaks many
+diff --git a/websocketpp/processors/hybi13.hpp b/websocketpp/processors/hybi13.hpp
+index 79486654..a95bc649 100644
+--- a/websocketpp/processors/hybi13.hpp
++++ b/websocketpp/processors/hybi13.hpp
+@@ -97,6 +97,11 @@ class hybi13 : public processor<config> {
+ /**
+ * This exists mostly because the code for requests and responses is
+ * identical and I can't have virtual template methods.
++ *
++ * NOTE: this method makes assumptions that the permessage-deflate
++ * extension is the only one supported. If additional extensions are
++ * ever supported it should be reviewed carefully. Most cases where
++ * that assumption is made are explicitly noted.
+ */
+ template <typename header_type>
+ err_str_pair negotiate_extensions_helper(header_type const & header) {
+@@ -149,9 +154,26 @@ class hybi13 : public processor<config> {
+ } else {
+ // Note: this list will need commas if WebSocket++ ever
+ // supports more than one extension
+- ret.second += neg_ret.second;
+- m_permessage_deflate.init(base::m_server);
+- continue;
++
++ // Actually try to initialize the extension before we
++ // deem negotiation complete
++ ret.first = m_permessage_deflate.init(base::m_server);
++ if (!ret.first) {
++
++ // TODO: support multiple extensions.
++ // right now, because there is only one extension
++ // supported, it failing to negotiate means we are
++ // done with all negotiating. In the future if more
++ // extensions are supported a better solution will
++ // be needed here.
++ break;
++ } else {
++ ret.second += neg_ret.second;
++
++ // continue looking for more extensions
++ continue;
++ }
++
+ }
+ }
+ }
diff --git a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/disable-tests.patch b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/disable-tests.patch
new file mode 100644
index 000000000..342981d4d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/disable-tests.patch
@@ -0,0 +1,51 @@
+Description: Disable failing test_transport_asio_timers.
+Because of "address already in use" error
+/«PKGBUILDDIR»/test/transport/asio/timers.cpp(129): error in "tls_handshake_timeout": check ec == make_error_code(tls_handshake_timeout) failed [websocketpp.transport.asio.socket:8 != websocketpp.transport.asio.socket:5]
+Author: Gianfranco Costamagna <locutusofborg@debian.org>
+
+--- websocketpp-0.7.0.orig/test/transport/CMakeLists.txt
++++ websocketpp-0.7.0/test/transport/CMakeLists.txt
+@@ -1,24 +1,24 @@
+ if (OPENSSL_FOUND)
+
+-# Test transport integration
+-file (GLOB SOURCE integration.cpp)
+-
+-init_target (test_transport)
+-build_test (${TARGET_NAME} ${SOURCE})
+-link_boost ()
+-link_openssl()
+-final_target ()
+-set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test")
+-
+-# Test transport asio timers
+-file (GLOB SOURCE asio/timers.cpp)
+-
+-init_target (test_transport_asio_timers)
+-build_test (${TARGET_NAME} ${SOURCE})
+-link_boost ()
+-link_openssl()
+-final_target ()
+-set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test")
++## Test transport integration
++#file (GLOB SOURCE integration.cpp)
++#
++#init_target (test_transport)
++#build_test (${TARGET_NAME} ${SOURCE})
++#link_boost ()
++#link_openssl()
++#final_target ()
++#set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test")
++#
++## Test transport asio timers
++#file (GLOB SOURCE asio/timers.cpp)
++#
++#init_target (test_transport_asio_timers)
++#build_test (${TARGET_NAME} ${SOURCE})
++#link_boost ()
++#link_openssl()
++#final_target ()
++#set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test")
+
+ # Test transport asio security
+ file (GLOB SOURCE asio/security.cpp)
diff --git a/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp_0.7.0.bb b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp_0.7.0.bb
new file mode 100644
index 000000000..65fc974b6
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/websocketpp/websocketpp_0.7.0.bb
@@ -0,0 +1,21 @@
+SUMMARY = "C++/Boost Asio based websocket client/server library."
+SECTION = "libs/network"
+HOMEPAGE = "https://github.com/zaphoyd/websocketpp"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=4d168d763c111f4ffc62249870e4e0ea"
+DEPENDS = "openssl boost zlib"
+
+SRC_URI = "git://github.com/zaphoyd/websocketpp.git;protocol=https;branch=master"
+
+# tag 0.7.0
+SRCREV= "378437aecdcb1dfe62096ffd5d944bf1f640ccc3"
+
+SRC_URI += "file://0001-Fix-issue-599.patch \
+ file://9ddb300d874a30db35e3ad58f188944bef0bf31b.patch \
+ file://4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch \
+ file://disable-tests.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+inherit cmake
diff --git a/meta-openembedded/meta-oe/recipes-support/wmiconfig/wmiconfig/0001-makefile-Pass-CFLAGS-to-compile.patch b/meta-openembedded/meta-oe/recipes-support/wmiconfig/wmiconfig/0001-makefile-Pass-CFLAGS-to-compile.patch
new file mode 100644
index 000000000..90eff5bb0
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/wmiconfig/wmiconfig/0001-makefile-Pass-CFLAGS-to-compile.patch
@@ -0,0 +1,26 @@
+From 0378cbb323c662a565f7f3de2dee3d8a646e7bd1 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 27 Jun 2017 09:32:42 -0700
+Subject: [PATCH 1/2] makefile: Pass CFLAGS to compile
+
+Set CC if not already set
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ host/tools/wmiconfig/Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/host/tools/wmiconfig/Makefile b/host/tools/wmiconfig/Makefile
+index c6738c5..3253a7e 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,4 +1,4 @@
+-CC :=$(ATH_CROSS_COMPILE_TYPE)gcc
++CC ?= $(ATH_CROSS_COMPILE_TYPE)gcc
+
+ all:
+- $(CC) -Wall -DUSER_KEYS -g $(LDFLAGS) -I../../include -I../../../include -I../../wlan/include -I../../os/linux/include wmiconfig.c -o wmiconfig
++ $(CC) -Wall -DUSER_KEYS -g $(CFLAGS) $(LDFLAGS) -I../../include -I../../../include -I../../wlan/include -I../../os/linux/include wmiconfig.c -o wmiconfig
+--
+2.13.2
+
diff --git a/meta-openembedded/meta-oe/recipes-support/wmiconfig/wmiconfig/0002-fix-err-API-to-have-format-string.patch b/meta-openembedded/meta-oe/recipes-support/wmiconfig/wmiconfig/0002-fix-err-API-to-have-format-string.patch
new file mode 100644
index 000000000..f67f784c1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/wmiconfig/wmiconfig/0002-fix-err-API-to-have-format-string.patch
@@ -0,0 +1,656 @@
+From 909ebdde4ee2233d65de8fa01fde8e9a3bec12b7 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 27 Jun 2017 09:33:26 -0700
+Subject: [PATCH 2/2] fix err() API to have format string
+
+Fixes errors with hardening flags
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ host/tools/wmiconfig/wmiconfig.c | 148 +++++++++++++++++++--------------------
+ 1 file changed, 74 insertions(+), 74 deletions(-)
+
+diff --git a/host/tools/wmiconfig/wmiconfig.c b/host/tools/wmiconfig/wmiconfig.c
+index 21c9dcd..a6ec481 100644
+--- a/wmiconfig.c
++++ b/wmiconfig.c
+@@ -483,7 +483,7 @@ main (int argc, char **argv)
+ strcpy(ifname, ethIf);
+ s = socket(AF_INET, SOCK_DGRAM, 0);
+ if (s < 0) {
+- err(1, "socket");
++ err(1, "%s", "socket");
+ }
+
+ while (1) {
+@@ -1506,28 +1506,28 @@ main (int argc, char **argv)
+ ifr.ifr_data = (void *)filterCmd;
+ if (ioctl(s, AR6000_IOCTL_WMI_SETBSSFILTER, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_SET_POWER_MODE:
+ ifr.ifr_data = (void *)pwrCmd;
+ if (ioctl(s, AR6000_IOCTL_WMI_SETPWR, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_SET_PM_PARAMS:
+ ifr.ifr_data = (void *)pmParamCmd;
+ if (ioctl(s, AR6000_IOCTL_WMI_SET_PMPARAMS, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_SET_IBSS_PM_CAPS:
+ ifr.ifr_data = (void *)adhocPmCmd;
+ if (ioctl(s, AR6000_IOCTL_WMI_SET_IBSS_PM_CAPS, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_SET_ERROR_DETECTION:
+@@ -1535,7 +1535,7 @@ main (int argc, char **argv)
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_GET_HB_CHALLENGE_RESP:
+@@ -1543,7 +1543,7 @@ main (int argc, char **argv)
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ #ifdef USER_KEYS
+@@ -1554,7 +1554,7 @@ main (int argc, char **argv)
+
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+
+ break;
+@@ -1575,7 +1575,7 @@ main (int argc, char **argv)
+ ifr.ifr_data = (void *)sParamCmd;
+ if (ioctl(s, AR6000_IOCTL_WMI_SETSCAN, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_GET_VERSION:
+@@ -1586,7 +1586,7 @@ main (int argc, char **argv)
+ ifr.ifr_data = (void *)revinfo;
+ if (ioctl(s, AR6000_IOCTL_WMI_GETREV, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ printf("Host Rev = 0x%x(%u.%u.%u.%u), Target Rev = 0x%x(%u.%u.%u.%u)\n",
+ revinfo->host_ver,
+@@ -1606,14 +1606,14 @@ main (int argc, char **argv)
+ ifr.ifr_data = (void *)listenCmd;
+ if (ioctl(s, AR6000_IOCTL_WMI_SETLISTENINT, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_SET_BMISS_TIME:
+ ifr.ifr_data = (void *)bmissCmd;
+ if (ioctl(s, AR6000_IOCTL_WMI_SET_BMISS_TIME, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_SET_RSSI_THRESHOLDS:
+@@ -1621,14 +1621,14 @@ main (int argc, char **argv)
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_SET_SNR_THRESHOLDS:
+ ifr.ifr_data = (void *)snrThresholdParam;
+ if (ioctl(s, AR6000_IOCTL_WMI_SET_SNRTHRESHOLD, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_CLR_RSSISNR:
+@@ -1636,7 +1636,7 @@ main (int argc, char **argv)
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_SET_LQ_THRESHOLDS:
+@@ -1644,7 +1644,7 @@ main (int argc, char **argv)
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_SET_CHANNEL:
+@@ -1693,18 +1693,18 @@ main (int argc, char **argv)
+
+ if (ioctl(s, AR6000_IOCTL_WMI_SET_CHANNELPARAMS, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_SET_SSID:
+ if (index > MAX_PROBED_SSID_INDEX) {
+ printf("num option for ssid command too large\n");
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ break;
+ }
+ if (strlen((char *)ssid) > sizeof (ssidCmd->ssid)) {
+ printf("ssid name too large\n");
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ break;
+ }
+ ssidCmd->entryIndex = index;
+@@ -1722,7 +1722,7 @@ main (int argc, char **argv)
+ ifr.ifr_data = (void *)ssidCmd;
+ if (ioctl(s, AR6000_IOCTL_WMI_SET_PROBEDSSID, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_SET_BADAP:
+@@ -1735,7 +1735,7 @@ main (int argc, char **argv)
+ ifr.ifr_data = (void *)badApCmd;
+ if (ioctl(s, AR6000_IOCTL_WMI_SET_BADAP, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_CREATE_QOS:
+@@ -1794,7 +1794,7 @@ main (int argc, char **argv)
+ ifr.ifr_data = (void *)crePStreamCmd;
+ if (ioctl(s, AR6000_IOCTL_WMI_CREATE_QOS, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_GET_TARGET_STATS:
+@@ -1807,7 +1807,7 @@ main (int argc, char **argv)
+ ifr.ifr_data = (void *)&tgtStatsCmd;
+ if (ioctl(s, AR6000_IOCTL_WMI_GET_TARGET_STATS, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ printTargetStats(&(tgtStatsCmd.targetStats));
+ break;
+@@ -1815,7 +1815,7 @@ main (int argc, char **argv)
+ ifr.ifr_data = (void *)pBitMask;
+ if (ioctl(s, AR6000_IOCTL_WMI_SET_ERROR_REPORT_BITMASK, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_DELETE_QOS:
+@@ -1824,7 +1824,7 @@ main (int argc, char **argv)
+ ifr.ifr_data = (void *)delPStreamCmd;
+ if (ioctl(s, AR6000_IOCTL_WMI_DELETE_QOS, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_GET_QOS_QUEUE:
+@@ -1840,7 +1840,7 @@ main (int argc, char **argv)
+ ifr.ifr_data = (void *)getQosQueueCmd;
+ if (ioctl(s, AR6000_IOCTL_WMI_GET_QOS_QUEUE, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+
+ printf("Active TSIDs \n");
+@@ -1855,7 +1855,7 @@ main (int argc, char **argv)
+ ifr.ifr_data = (void *)ieInfo;
+ if (ioctl(s, AR6000_IOCTL_WMI_SET_ASSOC_INFO, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_SET_AC_PARAMS:
+@@ -1871,14 +1871,14 @@ main (int argc, char **argv)
+ ifr.ifr_data = (void *)acParamsCmd;
+ if (ioctl(s, AR6000_IOCTL_WMI_SET_ACCESS_PARAMS, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_SET_DISC_TIMEOUT:
+ ifr.ifr_data = (void *)discCmd;
+ if (ioctl(s, AR6000_IOCTL_WMI_SET_DISC_TIMEOUT, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_SET_ADHOC_BSSID:
+@@ -1887,7 +1887,7 @@ main (int argc, char **argv)
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
+ {
+ printf("fail to set adhoc bssid \n");
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_SET_OPT_MODE:
+@@ -1895,7 +1895,7 @@ main (int argc, char **argv)
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_OPT_SEND_FRAME:
+@@ -1903,7 +1903,7 @@ main (int argc, char **argv)
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_SET_BEACON_INT:
+@@ -1911,7 +1911,7 @@ main (int argc, char **argv)
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_SET_VOICE_PKT_SIZE:
+@@ -1919,7 +1919,7 @@ main (int argc, char **argv)
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_SET_MAX_SP:
+@@ -1927,7 +1927,7 @@ main (int argc, char **argv)
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_GET_ROAM_TBL:
+@@ -1935,7 +1935,7 @@ main (int argc, char **argv)
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_SET_ROAM_CTRL:
+@@ -1943,7 +1943,7 @@ main (int argc, char **argv)
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_SET_POWERSAVE_TIMERS:
+@@ -1951,7 +1951,7 @@ main (int argc, char **argv)
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_GET_POWER_MODE:
+@@ -1959,7 +1959,7 @@ main (int argc, char **argv)
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ printf("Power mode is %s\n",
+ (getPowerMode->powerMode == MAX_PERF_POWER) ? "maxperf" : "rec");
+@@ -1969,7 +1969,7 @@ main (int argc, char **argv)
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_GET_ROAM_DATA:
+@@ -1977,7 +1977,7 @@ main (int argc, char **argv)
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_SET_BT_STATUS:
+@@ -1985,7 +1985,7 @@ main (int argc, char **argv)
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_SET_BT_PARAMS:
+@@ -1993,7 +1993,7 @@ main (int argc, char **argv)
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_SET_RETRYLIMITS:
+@@ -2001,14 +2001,14 @@ main (int argc, char **argv)
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_START_SCAN:
+ ((int *)buf)[0] = AR6000_XIOCTL_WMI_STARTSCAN;
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_SET_FIX_RATES:
+@@ -2031,14 +2031,14 @@ main (int argc, char **argv)
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_GET_FIX_RATES:
+ ((int *)buf)[0] = AR6000_XIOCTL_WMI_GETFIXRATES;
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ } else {
+ int i;
+ printf("Fix rate set index:");
+@@ -2057,7 +2057,7 @@ main (int argc, char **argv)
+ index--;
+ setAuthMode->mode = atoi(argv[index]);
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_SET_REASSOC_MODE:
+@@ -2067,42 +2067,42 @@ main (int argc, char **argv)
+ index--;
+ setReassocMode->mode = atoi(argv[index]);
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_SET_LPREAMBLE:
+ ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_LPREAMBLE;
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_SET_RTS:
+ ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_RTS;
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_SET_WMM:
+ ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_WMM;
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_SET_TXOP:
+ ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_TXOP;
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case DIAG_READ:
+ ((int *)buf)[0] = AR6000_XIOCTL_DIAG_READ;
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ printf("diagdata: 0x%x\n", *diagdata);
+ break;
+@@ -2110,7 +2110,7 @@ main (int argc, char **argv)
+ ((int *)buf)[0] = AR6000_XIOCTL_DIAG_WRITE;
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_GET_RD:
+@@ -2118,7 +2118,7 @@ main (int argc, char **argv)
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
+ {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ else
+ {
+@@ -2139,14 +2139,14 @@ main (int argc, char **argv)
+ index--;
+ setKeepAlive->keepaliveInterval = atoi(argv[index]);
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_GET_KEEPALIVE:
+ ((int *)buf)[0] = AR6000_XIOCTL_WMI_GET_KEEPALIVE;
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ printf("Keepalive interval is %d secs and AP is %s\n",
+ getKeepAlive->keepaliveInterval, (getKeepAlive->configured ?
+@@ -2156,63 +2156,63 @@ main (int argc, char **argv)
+ ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_APPIE;
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_SET_MGMT_FRM_RX_FILTER:
+ ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_MGMT_FRM_RX_FILTER;
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_DBGLOG_CFG_MODULE:
+ ((int *)buf)[0] = AR6000_XIOCTL_DBGLOG_CFG_MODULE;
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_DBGLOG_GET_DEBUG_LOGS:
+ ((int *)buf)[0] = AR6000_XIOCTL_DBGLOG_GET_DEBUG_LOGS;
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_SET_HOST_SLEEP_MODE:
+ ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_HOST_SLEEP_MODE;
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_SET_WOW_MODE:
+ ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_WOW_MODE;
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_ADD_WOW_PATTERN:
+ ((int *)buf)[0] = AR6000_XIOCTL_WMI_ADD_WOW_PATTERN;
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_DEL_WOW_PATTERN:
+ ((int *)buf)[0] = AR6000_XIOCTL_WMI_DEL_WOW_PATTERN;
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_GET_WOW_LIST:
+ ((int *)buf)[0] = AR6000_XIOCTL_WMI_GET_WOW_LIST;
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case DIAG_DUMP_CHIP_MEM:
+@@ -2225,7 +2225,7 @@ main (int argc, char **argv)
+ ((int *)buf)[0] = AR6000_XIOCTL_DIAG_READ;
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ printf("0x%04x:0x%04x\n", *diagaddr, *diagdata);
+ }
+@@ -2237,21 +2237,21 @@ main (int argc, char **argv)
+ index = optind - 1;
+ *connectCtrlFlags = strtoul(argv[index], NULL, 0);
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case DUMP_HTC_CREDITS:
+ ((int *)buf)[0] = AR6000_XIOCTL_DUMP_HTC_CREDIT_STATE;
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_SET_AKMP_INFO:
+ ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_AKMP_PARAMS;
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_SET_PMKID_LIST:
+@@ -2259,7 +2259,7 @@ main (int argc, char **argv)
+ ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_PMKID_LIST;
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ } else {
+ printf("No PMKIDs entered\n");
+@@ -2269,7 +2269,7 @@ main (int argc, char **argv)
+ ((int *)buf)[0] = AR6000_XIOCTL_WMI_GET_PMKID_LIST;
+ ifr.ifr_data = buf;
+ if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ case WMI_SET_BSS_PMKID_INFO:
+@@ -2277,7 +2277,7 @@ main (int argc, char **argv)
+ iwr.u.data.length = sizeof(*pi_cmd);
+ if (ioctl(s, IEEE80211_IOCTL_ADDPMKID, &iwr) < 0) {
+ printf("ADDPMKID IOCTL Error\n");
+- err(1, ifr.ifr_name);
++ err(1, "%s", ifr.ifr_name);
+ }
+ break;
+ default:
+--
+2.13.2
+
diff --git a/meta-openembedded/meta-oe/recipes-support/wmiconfig/wmiconfig_svn.bb b/meta-openembedded/meta-oe/recipes-support/wmiconfig/wmiconfig_svn.bb
new file mode 100644
index 000000000..c66572b1c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/wmiconfig/wmiconfig_svn.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Atheros 6K Wifi configuration utility"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://wmiconfig.c;endline=19;md5=4394a56bca1c5b2446c9f8e406c82911"
+SECTION = "console/network"
+SRCREV = "5394"
+PV = "0.0.0+svnr${SRCPV}"
+PR = "r2"
+
+SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=AR6kSDK.build_sw.18;protocol=http \
+ file://0001-makefile-Pass-CFLAGS-to-compile.patch \
+ file://0002-fix-err-API-to-have-format-string.patch \
+ "
+S = "${WORKDIR}/AR6kSDK.build_sw.18/host/tools/wmiconfig"
+
+CLEANBROKEN = "1"
+
+EXTRA_OEMAKE = "-e MAKEFLAGS="
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 wmiconfig ${D}${bindir}
+}
+
diff --git a/meta-openembedded/meta-oe/recipes-support/xdelta/xdelta3_3.0.11.bb b/meta-openembedded/meta-oe/recipes-support/xdelta/xdelta3_3.0.11.bb
new file mode 100644
index 000000000..9669d9bbb
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/xdelta/xdelta3_3.0.11.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Xdelta is a tool for differential compression"
+DESCRIPTION = "Open-source binary diff, differential compression tools, \
+ VCDIFF (RFC 3284) delta compression."
+HOMEPAGE = "http://xdelta.org/"
+SECTION = "console/utils"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833"
+SRC_URI = "https://github.com/jmacd/xdelta-devel/releases/download/v${PV}/${BPN}-${PV}.tar.gz \
+ "
+SRC_URI[md5sum] = "445d8be2ac512113d5ca601ae8359626"
+SRC_URI[sha256sum] = "0ccc9751ceaa4d90d6b06938a4deddb481816f5d9284bd07d2e728609cb300aa"
+
+inherit autotools
+
+# Optional secondary compression
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[lzma] = "--with-liblzma,--without-liblzma,xz"
diff --git a/meta-openembedded/meta-oe/recipes-support/xdg-user-dirs/xdg-user-dirs_0.17.bb b/meta-openembedded/meta-oe/recipes-support/xdg-user-dirs/xdg-user-dirs_0.17.bb
new file mode 100644
index 000000000..e3ce9268c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/xdg-user-dirs/xdg-user-dirs_0.17.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "xdg-user-dirs is a tool to help manage user directories like the desktop folder and the music folder"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+SRC_URI = "http://user-dirs.freedesktop.org/releases/${BPN}-${PV}.tar.gz"
+SRC_URI[md5sum] = "e0564ec6d838e6e41864d872a29b3575"
+SRC_URI[sha256sum] = "2a07052823788e8614925c5a19ef5b968d8db734fdee656699ea4f97d132418c"
+
+inherit autotools gettext
+
+EXTRA_OECONF = "--disable-documentation"
+
+CONFFILES_${PN} += " \
+ ${sysconfdir}/xdg/user-dirs.conf \
+ ${sysconfdir}/xdg/user-dirs.defaults \
+"
diff --git a/meta-openembedded/meta-oe/recipes-support/xmlstarlet/files/0001-usage2c.awk-fix-wrong-basename-regexp.patch b/meta-openembedded/meta-oe/recipes-support/xmlstarlet/files/0001-usage2c.awk-fix-wrong-basename-regexp.patch
new file mode 100644
index 000000000..24b187f2a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/xmlstarlet/files/0001-usage2c.awk-fix-wrong-basename-regexp.patch
@@ -0,0 +1,37 @@
+Upstream-Status: Submitted [sourceforge]
+
+From 75d789d0ea9716c9a9ae72f42a2fcfa907cf4a12 Mon Sep 17 00:00:00 2001
+From: Matthieu Crapet <mcrapet@gmail.com>
+Date: Mon, 30 Jun 2014 13:52:25 +0200
+Subject: [PATCH] usage2c.awk: fix wrong basename regexp
+
+Previously not matching with filename argument with absolute path.
+
+Signed-off-by: Matthieu Crapet <mcrapet@gmail.com>
+---
+ usage2c.awk | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/usage2c.awk b/usage2c.awk
+index 94b897a..9aea212 100755
+--- a/usage2c.awk
++++ b/usage2c.awk
+@@ -6,13 +6,13 @@ BEGIN {
+ }
+
+ # text in src/foo-bar.txt results in
+-# static const char foo_text[] = {
++# static const char foo_bar[] = {
+ # 't', 'h', 'e', ' ', 't', 'e', 'x', 't', ...
+ # }
+ length(command_name) == 0 {
+ command_name = FILENAME;
+ sub(/\.txt$/, "", command_name);
+- sub(/^([^\/]+\/)*/, "", command_name);
++ sub(/^.*\//, "", command_name);
+ gsub(/-/, "_", command_name);
+ printf("static const char %s[] = {\n", command_name);
+ progs = 0;
+--
+2.0.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/xmlstarlet/files/configure.ac.patch b/meta-openembedded/meta-oe/recipes-support/xmlstarlet/files/configure.ac.patch
new file mode 100644
index 000000000..e55f4f3b1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/xmlstarlet/files/configure.ac.patch
@@ -0,0 +1,28 @@
+configure.ac: don't use xml-config if --with-libxml-prefix is specified to configure
+
+Same behavior for xslt-config.
+
+diff --git a/configure.ac b/configure.ac
+index ed04e0c..39d5d4c 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -40,7 +40,8 @@ AC_ARG_PROGRAM dnl Transforming Program Names When Installing
+ AC_PROG_SED
+ AC_PROG_AWK
+
+-XSTAR_LIB_CHECK([LIBXML], [xml2-config])
++AS_IF([test "x$LIBXML_PREFIX" = x],
++ [XSTAR_LIB_CHECK([LIBXML], [xml2-config])])
+
+ AS_IF([test "x$LIBXML_SRCDIR" != x],
+ [LIBXML_INCDIR="$LIBXML_SRCDIR/include"])
+@@ -56,7 +57,8 @@ AS_IF([test "x$STATIC_LIBS" != xno],
+ [LIBXML_LDFLAGS="-L$LIBXML_LIBDIR"]
+
+
+-XSTAR_LIB_CHECK([LIBXSLT], [xslt-config])
++AS_IF([test "x$LIBXSLT_PREFIX" = x],
++ [XSTAR_LIB_CHECK([LIBXSLT], [xslt-config])])
+
+ AS_IF([test "x$LIBXSLT_SRCDIR" != x],
+ [XSLTPROC_PATH="$LIBXSLT_SRCDIR/xsltproc:$PATH"
diff --git a/meta-openembedded/meta-oe/recipes-support/xmlstarlet/xmlstarlet_1.6.1.bb b/meta-openembedded/meta-oe/recipes-support/xmlstarlet/xmlstarlet_1.6.1.bb
new file mode 100644
index 000000000..e3d52e616
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/xmlstarlet/xmlstarlet_1.6.1.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Command line XML toolkit"
+DESCRIPTION = "XMLStarlet is a command line XML toolkit which can be used to \
+ transform, query, validate, and edit XML documents and files \
+ using simple set of shell commands in similar way it is done \
+ for plain text files using grep/sed/awk/tr/diff/patch."
+HOMEPAGE = "http://xmlstar.sourceforge.net/"
+BUGTRACKER = "http://xmlstar.sourceforge.net/bugs/"
+
+SECTION = "console/utils"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c04760d09e8b0fe73283d0cc9e8bea53"
+
+DEPENDS = "libxml2 libxslt"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/xmlstar/${BP}.tar.gz \
+ file://configure.ac.patch \
+ file://0001-usage2c.awk-fix-wrong-basename-regexp.patch"
+SRC_URI[md5sum] = "f3c5dfa3b1a2ee06cd57c255cc8b70a0"
+SRC_URI[sha256sum] = "15d838c4f3375332fd95554619179b69e4ec91418a3a5296e7c631b7ed19e7ca"
+
+inherit autotools
+
+# doc build: requires (native) xstlproc, fop, pdf2ps
+EXTRA_OECONF="--disable-build-docs \
+ --with-libxml-prefix=${STAGING_LIBDIR}/.. \
+ --with-libxslt-prefix=${STAGING_LIBDIR}/.."
diff --git a/meta-openembedded/meta-oe/recipes-support/xorg-xrdp/xorgxrdp_0.2.5.bb b/meta-openembedded/meta-oe/recipes-support/xorg-xrdp/xorgxrdp_0.2.5.bb
new file mode 100644
index 000000000..0bdafdf3b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/xorg-xrdp/xorgxrdp_0.2.5.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Xorg drivers for xrdp."
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a2523660329fdca3d954c0a87390e007"
+
+inherit autotools pkgconfig
+
+DEPENDS = "virtual/libx11 xserver-xorg xrdp nasm-native"
+
+inherit distro_features_check
+REQUIRED_DISTRO_FEATURES = "x11 pam"
+
+SRC_URI = "git://github.com/neutrinolabs/xorgxrdp.git"
+
+SRCREV = "c122544f184d4031bbae1ad80fbab554c34a9427"
+
+PV = "0.2.5"
+
+S = "${WORKDIR}/git"
+
+FILES_${PN} += "${libdir}/xorg/modules/*"
+
+INSANE_SKIP_${PN} += "xorg-driver-abi"
diff --git a/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/0001-Added-req_distinguished_name-in-etc-xrdp-openssl.con.patch b/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/0001-Added-req_distinguished_name-in-etc-xrdp-openssl.con.patch
new file mode 100644
index 000000000..5e7fca02a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/0001-Added-req_distinguished_name-in-etc-xrdp-openssl.con.patch
@@ -0,0 +1,33 @@
+From d705b1d666cb8713d86ea6fb2fc45c424128285a Mon Sep 17 00:00:00 2001
+From: Lei Maohui <leimaohui@cn.fujitsu.com>
+Date: Fri, 1 Dec 2017 10:24:50 +0900
+Subject: [PATCH] Added req_distinguished_name in /etc/xrdp/openssl.conf,
+ otherwise, cert.pem can't be created.
+
+Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
+---
+ keygen/openssl.conf | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/keygen/openssl.conf b/keygen/openssl.conf
+index 09db6c2..f077d72 100644
+--- a/keygen/openssl.conf
++++ b/keygen/openssl.conf
+@@ -4,6 +4,14 @@ distinguished_name = req_distinguished_name
+ x509_extensions = v3_ca
+
+ [req_distinguished_name]
++# Certificate subject
++#countryName = US
++#stateOrProvinceName = CA
++#localityName = Sunnyvale
++#organizationName = xrdp
++#organizationalUnitName =
++commonName = XRDP
++#emailAddress =
+
+ [v3_ca]
+ # Extensions for a typical CA - PKIX recommendation.
+--
+1.8.4.2
+
diff --git a/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/0001-Fix-of-CVE-2017-16927.patch b/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/0001-Fix-of-CVE-2017-16927.patch
new file mode 100644
index 000000000..4c93647f6
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/0001-Fix-of-CVE-2017-16927.patch
@@ -0,0 +1,148 @@
+Subject: [PATCH] Fix CVE-2017-16927
+
+sesman: scpv0, accept variable length data fields
+
+Upstream-Status: Backport
+
+---
+ sesman/libscp/libscp_v0.c | 32 +++++++++++++++++++++++++-------
+ 1 file changed, 25 insertions(+), 7 deletions(-)
+
+diff --git a/sesman/libscp/libscp_v0.c b/sesman/libscp/libscp_v0.c
+index 5a0c8bf..5693407 100644
+--- a/sesman/libscp/libscp_v0.c
++++ b/sesman/libscp/libscp_v0.c
+@@ -161,7 +161,7 @@ scp_v0s_accept(struct SCP_CONNECTION *c, struct SCP_SESSION **s, int skipVchk)
+ struct SCP_SESSION *session = 0;
+ tui16 sz;
+ tui32 code = 0;
+- char buf[257];
++ char *buf = 0;
+
+ if (!skipVchk)
+ {
+@@ -226,27 +226,31 @@ scp_v0s_accept(struct SCP_CONNECTION *c, struct SCP_SESSION **s, int skipVchk)
+
+ /* reading username */
+ in_uint16_be(c->in_s, sz);
+- buf[sz] = '\0';
++ buf = g_new0(char, sz);
+ in_uint8a(c->in_s, buf, sz);
+-
++ buf[sz] = '\0';
+ if (0 != scp_session_set_username(session, buf))
+ {
+ scp_session_destroy(session);
+ log_message(LOG_LEVEL_WARNING, "[v0:%d] connection aborted: error setting username", __LINE__);
++ g_free(buf);
+ return SCP_SERVER_STATE_INTERNAL_ERR;
+ }
++ g_free(buf);
+
+ /* reading password */
+ in_uint16_be(c->in_s, sz);
+- buf[sz] = '\0';
++ buf = g_new0(char, sz);
+ in_uint8a(c->in_s, buf, sz);
+-
++ buf[sz] = '\0';
+ if (0 != scp_session_set_password(session, buf))
+ {
+ scp_session_destroy(session);
+ log_message(LOG_LEVEL_WARNING, "[v0:%d] connection aborted: error setting password", __LINE__);
++ g_free(buf);
+ return SCP_SERVER_STATE_INTERNAL_ERR;
+ }
++ g_free(buf);
+
+ /* width */
+ in_uint16_be(c->in_s, sz);
+@@ -272,9 +276,11 @@ scp_v0s_accept(struct SCP_CONNECTION *c, struct SCP_SESSION **s, int skipVchk)
+
+ if (sz > 0)
+ {
++ buf = g_new0(char, sz);
+ in_uint8a(c->in_s, buf, sz);
+ buf[sz] = '\0';
+ scp_session_set_domain(session, buf);
++ g_free(buf);
+ }
+ }
+
+@@ -285,9 +291,11 @@ scp_v0s_accept(struct SCP_CONNECTION *c, struct SCP_SESSION **s, int skipVchk)
+
+ if (sz > 0)
+ {
++ buf = g_new0(char, sz);
+ in_uint8a(c->in_s, buf, sz);
+ buf[sz] = '\0';
+ scp_session_set_program(session, buf);
++ g_free(buf);
+ }
+ }
+
+@@ -298,9 +306,11 @@ scp_v0s_accept(struct SCP_CONNECTION *c, struct SCP_SESSION **s, int skipVchk)
+
+ if (sz > 0)
+ {
++ buf = g_new0(char, sz);
+ in_uint8a(c->in_s, buf, sz);
+ buf[sz] = '\0';
+ scp_session_set_directory(session, buf);
++ g_free(buf);
+ }
+ }
+
+@@ -311,9 +321,11 @@ scp_v0s_accept(struct SCP_CONNECTION *c, struct SCP_SESSION **s, int skipVchk)
+
+ if (sz > 0)
+ {
++ buf = g_new0(char, sz);
+ in_uint8a(c->in_s, buf, sz);
+ buf[sz] = '\0';
+ scp_session_set_client_ip(session, buf);
++ g_free(buf);
+ }
+ }
+ }
+@@ -332,29 +344,35 @@ scp_v0s_accept(struct SCP_CONNECTION *c, struct SCP_SESSION **s, int skipVchk)
+ scp_session_set_type(session, SCP_GW_AUTHENTICATION);
+ /* reading username */
+ in_uint16_be(c->in_s, sz);
+- buf[sz] = '\0';
++ buf = g_new0(char, sz);
+ in_uint8a(c->in_s, buf, sz);
++ buf[sz] = '\0';
+
+ /* g_writeln("Received user name: %s",buf); */
+ if (0 != scp_session_set_username(session, buf))
+ {
+ scp_session_destroy(session);
+ /* until syslog merge log_message(s_log, LOG_LEVEL_WARNING, "[v0:%d] connection aborted: error setting username", __LINE__);*/
++ g_free(buf);
+ return SCP_SERVER_STATE_INTERNAL_ERR;
+ }
++ g_free(buf);
+
+ /* reading password */
+ in_uint16_be(c->in_s, sz);
+- buf[sz] = '\0';
++ buf = g_new0(char, sz);
+ in_uint8a(c->in_s, buf, sz);
++ buf[sz] = '\0';
+
+ /* g_writeln("Received password: %s",buf); */
+ if (0 != scp_session_set_password(session, buf))
+ {
+ scp_session_destroy(session);
+ /* until syslog merge log_message(s_log, LOG_LEVEL_WARNING, "[v0:%d] connection aborted: error setting password", __LINE__); */
++ g_free(buf);
+ return SCP_SERVER_STATE_INTERNAL_ERR;
+ }
++ g_free(buf);
+ }
+ else
+ {
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/0001-Fix-sesman.ini-and-xrdp.ini.patch b/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/0001-Fix-sesman.ini-and-xrdp.ini.patch
new file mode 100644
index 000000000..deaadde8c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/0001-Fix-sesman.ini-and-xrdp.ini.patch
@@ -0,0 +1,75 @@
+From a9c460f158d68c1b3de6a31ce853de5379977695 Mon Sep 17 00:00:00 2001
+From: Lei Maohui <leimaohui@cn.fujitsu.com>
+Date: Thu, 30 Nov 2017 11:10:04 +0900
+Subject: [PATCH] Fix sesman.ini and xrdp.ini
+
+Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
+---
+ sesman/sesman.ini | 20 ++++++--------------
+ xrdp/xrdp.ini | 10 ----------
+ 2 files changed, 6 insertions(+), 24 deletions(-)
+
+diff --git a/sesman/sesman.ini b/sesman/sesman.ini
+index 8225ee4..c09189e 100644
+--- a/sesman/sesman.ini
++++ b/sesman/sesman.ini
+@@ -54,12 +54,14 @@ LogLevel=DEBUG
+ EnableSyslog=1
+ SyslogLevel=DEBUG
+
+-[X11rdp]
+-param=X11rdp
+-param=-bs
++[Xorg]
++param=Xorg
++param=-config
++param=xrdp/xorg.conf
++param=-noreset
+ param=-nolisten
+ param=tcp
+-param=-uds
++
+
+ [Xvnc]
+ param=Xvnc
+@@ -70,16 +72,6 @@ param=-localhost
+ param=-dpi
+ param=96
+
+-[Xorg]
+-param=Xorg
+-param=-config
+-param=xrdp/xorg.conf
+-param=-noreset
+-param=-nolisten
+-param=tcp
+-param=-logfile
+-param=.xorgxrdp.%s.log
+-
+ [Chansrv]
+ ; drive redirection, defaults to xrdp_client if not set
+ FuseMountName=thinclient_drives
+diff --git a/xrdp/xrdp.ini b/xrdp/xrdp.ini
+index cb6d7c3..9f63a69 100644
+--- a/xrdp/xrdp.ini
++++ b/xrdp/xrdp.ini
+@@ -157,16 +157,6 @@ ip=127.0.0.1
+ port=-1
+ code=20
+
+-[X11rdp]
+-name=X11rdp
+-lib=libxup.so
+-username=ask
+-password=ask
+-ip=127.0.0.1
+-port=-1
+-xserverbpp=24
+-code=10
+-
+ [Xvnc]
+ name=Xvnc
+ lib=libvnc.so
+--
+1.8.4.2
+
diff --git a/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/0001-Fix-the-compile-error.patch b/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/0001-Fix-the-compile-error.patch
new file mode 100644
index 000000000..82b279085
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/0001-Fix-the-compile-error.patch
@@ -0,0 +1,35 @@
+Subject: [PATCH] Fix the make error
+
+Fix the compile error:
+ *** No rule to make target '../librfxcodec/src/.libs/librfxencode.a', needed by 'xrdp'. Stop..
+
+Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
+---
+ xrdp/Makefile.am | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/xrdp/Makefile.am b/xrdp/Makefile.am
+index a259ef3..d5505b2 100644
+--- a/xrdp/Makefile.am
++++ b/xrdp/Makefile.am
+@@ -23,7 +23,7 @@ endif
+ if XRDP_RFXCODEC
+ AM_CPPFLAGS += -DXRDP_RFXCODEC
+ AM_CPPFLAGS += -I$(top_srcdir)/librfxcodec/include
+-XRDP_EXTRA_LIBS += $(top_builddir)/librfxcodec/src/.libs/librfxencode.a
++XRDP_EXTRA_LIBS += $(top_builddir)/librfxcodec/src/.libs/librfxencode.la
+ endif
+
+ if XRDP_PIXMAN
+@@ -35,7 +35,7 @@ endif
+ if XRDP_PAINTER
+ AM_CPPFLAGS += -DXRDP_PAINTER
+ AM_CPPFLAGS += -I$(top_srcdir)/libpainter/include
+-XRDP_EXTRA_LIBS += $(top_builddir)/libpainter/src/.libs/libpainter.a
++XRDP_EXTRA_LIBS += $(top_builddir)/libpainter/src/.libs/libpainter.la
+ endif
+
+ sbin_PROGRAMS = \
+--
+2.7.4
+
diff --git a/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/xrdp.sysconfig b/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/xrdp.sysconfig
new file mode 100644
index 000000000..39f500a33
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp/xrdp.sysconfig
@@ -0,0 +1,4 @@
+# put some options here
+
+XRDP_OPTIONS=""
+SESMAN_OPTIONS=""
diff --git a/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp_0.9.4.bb b/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp_0.9.4.bb
new file mode 100644
index 000000000..3ef7c9853
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/xrdp/xrdp_0.9.4.bb
@@ -0,0 +1,99 @@
+SUMMARY = "An open source remote desktop protocol(rdp) server."
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=72cfbe4e7bd33a0a1de9630c91195c21 \
+"
+
+inherit distro_features_check autotools pkgconfig useradd systemd
+
+DEPENDS = "openssl virtual/libx11 libxfixes libxrandr libpam nasm-native"
+
+REQUIRED_DISTRO_FEATURES = "x11 pam"
+
+SRC_URI = "git://github.com/neutrinolabs/xrdp.git \
+ file://xrdp.sysconfig \
+ file://0001-Fix-sesman.ini-and-xrdp.ini.patch \
+ file://0001-Added-req_distinguished_name-in-etc-xrdp-openssl.con.patch \
+ file://0001-Fix-the-compile-error.patch \
+ file://0001-Fix-of-CVE-2017-16927.patch \
+ "
+
+SRCREV = "c295dd61b882e8b56677cf12791f43634f9190b5"
+
+PV = "0.9.4+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[fuse] = " --enable-fuse, --disable-fuse, fuse"
+
+USERADD_PACKAGES = "${PN}"
+GROUPADD_PARAM_${PN} = "--system xrdp"
+USERADD_PARAM_${PN} = "--system --home /var/run/xrdp -g xrdp \
+ --no-create-home --shell /bin/false xrdp"
+
+FILES_${PN} += "${datadir}/dbus-1/services/*.service \
+ ${datadir}/dbus-1/accessibility-services/*.service "
+
+FILES_${PN}-dev += "${libdir}/xrdp/libcommon.so \
+ ${libdir}/xrdp/libxrdp.so \
+ ${libdir}/xrdp/libscp.so \
+ ${libdir}/xrdp/libxrdpapi.so "
+
+EXTRA_OECONF = "--enable-pam-config=suse"
+
+do_configure_prepend() {
+ cd ${S}
+ ./bootstrap
+ cd -
+}
+
+do_compile_prepend() {
+ sed -i 's/(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am/(MAKE) $(AM_MAKEFLAGS) install-exec-am/g' ${S}/keygen/Makefile.in
+}
+
+
+do_install_append() {
+ install -d ${D}${sysconfdir}
+ install -d ${D}${sysconfdir}/xrdp
+ install -d ${D}${sysconfdir}/xrdp/pam.d
+ install -d ${D}${sysconfdir}/sysconfig/xrdp
+
+ # deal with systemd unit files
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${S}/instfiles/xrdp.service.in ${D}${systemd_unitdir}/system/xrdp.service
+ install -m 0644 ${S}/instfiles/xrdp-sesman.service.in ${D}${systemd_unitdir}/system/xrdp-sesman.service
+ sed -i -e 's,@localstatedir@,${localstatedir},g' ${D}${systemd_unitdir}/system/xrdp.service ${D}${systemd_unitdir}/system/xrdp-sesman.service
+ sed -i -e 's,@sysconfdir@,${sysconfdir},g' ${D}${systemd_unitdir}/system/xrdp.service ${D}${systemd_unitdir}/system/xrdp-sesman.service
+ sed -i -e 's,@sbindir@,${sbindir},g' ${D}${systemd_unitdir}/system/xrdp.service ${D}${systemd_unitdir}/system/xrdp-sesman.service
+
+ install -m 0644 ${S}/instfiles/*.ini ${D}${sysconfdir}/xrdp/
+ install -m 0644 ${S}/sesman/sesman.ini ${D}${sysconfdir}/xrdp/
+ install -m 0644 ${S}/sesman/startwm.sh ${D}${sysconfdir}/xrdp/
+ install -m 0644 ${S}/xrdp/xrdp.ini ${D}${sysconfdir}/xrdp/
+ install -m 0644 ${S}/xrdp/xrdp_keyboard.ini ${D}${sysconfdir}/xrdp/
+ install -m 0644 ${S}/instfiles/xrdp.sh ${D}${sysconfdir}/xrdp/
+ install -m 0644 ${S}/keygen/openssl.conf ${D}${sysconfdir}/xrdp/
+ install -m 0644 ${WORKDIR}/xrdp.sysconfig ${D}${sysconfdir}/sysconfig/xrdp/
+ chown xrdp:xrdp ${D}${sysconfdir}/xrdp
+}
+
+SYSTEMD_SERVICE_${PN} = "xrdp.service xrdp-sesman.service"
+
+pkg_postinst_${PN}() {
+ if test -z "$D"
+ then
+ if test -x ${bindir}/xrdp-keygen
+ then
+ ${bindir}/xrdp-keygen xrdp ${sysconfdir}/xrdp/rsakeys.ini >/dev/null
+ fi
+ if test ! -s ${sysconfdir}/xrdp/cert.pem
+ then
+ openssl req -x509 -newkey rsa:2048 -sha256 -nodes -days 3652 \
+ -keyout ${sysconfdir}/xrdp/key.pem \
+ -out ${sysconfdir}/xrdp/cert.pem \
+ -config ${sysconfdir}/xrdp/openssl.conf >/dev/null 2>&1
+ chmod 400 ${sysconfdir}/xrdp/key.pem
+ fi
+ fi
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/zbar/zbar/0001-make-relies-GNU-extentions.patch b/meta-openembedded/meta-oe/recipes-support/zbar/zbar/0001-make-relies-GNU-extentions.patch
new file mode 100644
index 000000000..04239bacd
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/zbar/zbar/0001-make-relies-GNU-extentions.patch
@@ -0,0 +1,32 @@
+From 224507bc4b6e58f7a6e445bfebfb59d6b8d78bd6 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 2 Dec 2016 17:38:51 -0800
+Subject: [PATCH] make relies GNU extentions
+
+We get errors like
+`%'-style pattern rules are a GNU make extension
+
+Disable this warning, since we use gmake with OE
+anyway
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 56d3dd0..9f85fd7 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -3,7 +3,7 @@ AC_PREREQ([2.61])
+ AC_INIT([zbar], [0.10], [spadix@users.sourceforge.net])
+ AC_CONFIG_AUX_DIR(config)
+ AC_CONFIG_MACRO_DIR(config)
+-AM_INIT_AUTOMAKE([1.10 -Wall -Werror foreign subdir-objects std-options dist-bzip2])
++AM_INIT_AUTOMAKE([1.10 -Wall -Werror -Wno-portability foreign subdir-objects std-options dist-bzip2])
+ AC_CONFIG_HEADERS([include/config.h])
+ AC_CONFIG_SRCDIR(zbar/scanner.c)
+ LT_PREREQ([2.2])
+--
+2.10.2
+
diff --git a/meta-openembedded/meta-oe/recipes-support/zbar/zbar/0001-undefine-__va_arg_pack.patch b/meta-openembedded/meta-oe/recipes-support/zbar/zbar/0001-undefine-__va_arg_pack.patch
new file mode 100644
index 000000000..f7d8ba1e9
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/zbar/zbar/0001-undefine-__va_arg_pack.patch
@@ -0,0 +1,51 @@
+From f842872244219d9881fbec77054702412b1e16f8 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 2 Dec 2016 16:41:27 -0800
+Subject: [PATCH] undefine __va_arg_pack
+
+dprintf() is also a libc function. This fixes
+the compile errors
+
+/usr/include/bits/stdio2.h:140:1: error: expected identifier or '(' before '{' token
+| {
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ zbar/debug.h | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/zbar/debug.h b/zbar/debug.h
+index 482ca8d..68948f6 100644
+--- a/zbar/debug.h
++++ b/zbar/debug.h
+@@ -23,6 +23,7 @@
+
+ /* varargs variations on compile time debug spew */
+
++#undef __va_arg_pack
+ #ifndef DEBUG_LEVEL
+
+ # ifdef __GNUC__
+@@ -36,15 +37,14 @@
+ #else
+
+ # include <stdio.h>
+-
+ # ifdef __GNUC__
+-# define dprintf(level, args...) \
++# define dprintf(level, format, args...) \
+ if((level) <= DEBUG_LEVEL) \
+- fprintf(stderr, args)
++ fprintf(stderr, format, args)
+ # else
+-# define dprintf(level, ...) \
++# define dprintf(level, format, ...) \
+ if((level) <= DEBUG_LEVEL) \
+- fprintf(stderr, __VA_ARGS__)
++ fprintf(stderr, format, __VA_ARGS__)
+ # endif
+
+ #endif /* DEBUG_LEVEL */
+--
+2.10.2
+
diff --git a/meta-openembedded/meta-oe/recipes-support/zbar/zbar_0.10.bb b/meta-openembedded/meta-oe/recipes-support/zbar/zbar_0.10.bb
new file mode 100644
index 000000000..6b6e50111
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/zbar/zbar_0.10.bb
@@ -0,0 +1,28 @@
+DESRIPTION = "2D barcode scanner toolkit."
+SECTION = "graphics"
+LICENSE = "LGPL-2.1"
+
+DEPENDS = "pkgconfig intltool-native libpng jpeg"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=42bafded1b380c6fefbeb6c5cd5448d9"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${PN}/${P}.tar.bz2 \
+ file://0001-undefine-__va_arg_pack.patch \
+ file://0001-make-relies-GNU-extentions.patch \
+"
+
+SRC_URI[md5sum] = "0fd61eb590ac1bab62a77913c8b086a5"
+SRC_URI[sha256sum] = "234efb39dbbe5cef4189cc76f37afbe3cfcfb45ae52493bfe8e191318bdbadc6"
+
+inherit autotools pkgconfig
+
+PACKAGECONFIG = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
+
+PACKAGECONFIG[x11] = "--with-x,-without-x,libxcb libx11 libsm libxau libxext libxv libice libxdmcp"
+
+EXTRA_OECONF = " --without-imagemagick --without-qt --without-python --disable-video --without-gtk"
+
+do_install_append() {
+ #remove usr/bin if empty
+ rmdir ${D}${bindir}
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/zile/files/remove-help2man.patch b/meta-openembedded/meta-oe/recipes-support/zile/files/remove-help2man.patch
new file mode 100644
index 000000000..c1a63f479
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/zile/files/remove-help2man.patch
@@ -0,0 +1,28 @@
+Upstream-Status: Inappropriate [configuration]
+
+diff --git a/Makefile.am b/Makefile.am
+index 54bc59f..46c2650 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -36,7 +36,6 @@ PERL_BUILDTIME = \
+
+ EXTRA_DIST = \
+ FAQ \
+- build-aux/zile-help2man-wrapper \
+ $(PERL_BUILDTIME)
+
+ doc_DATA = AUTHORS FAQ NEWS
+diff --git a/doc/Makefile.am b/doc/Makefile.am
+index 639f59c..8c5123e 100644
+--- a/doc/Makefile.am
++++ b/doc/Makefile.am
+@@ -33,9 +33,3 @@ doc/zile.1: $(srcdir)/doc/zile.1.in doc/Makefile.am config.status
+ $(edit) $(abs_srcdir)/doc/zile.1.in >$@.tmp
+ mv $@.tmp $@
+
+-$(srcdir)/doc/zile.1.in: doc/man-extras build-aux/zile-help2man-wrapper configure.ac $(builddir)/src/zile$(EXEEXT)
+- @test -d doc || mkdir doc
+-## Exit gracefully if zile.1.in is not writeable, such as during distcheck!
+- $(AM_V_GEN)if ( touch $@.w && rm -f $@.w; ) >/dev/null 2>&1; then \
+- $(srcdir)/build-aux/missing --run $(HELP2MAN) --output=$@ --no-info --name="Zile Is Lossy Emacs" --include $(srcdir)/doc/man-extras $(srcdir)/build-aux/zile-help2man-wrapper; \
+- fi
diff --git a/meta-openembedded/meta-oe/recipes-support/zile/zile_2.4.14.bb b/meta-openembedded/meta-oe/recipes-support/zile/zile_2.4.14.bb
new file mode 100644
index 000000000..515cf4136
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/zile/zile_2.4.14.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Zile is lossy Emacs"
+HOMEPAGE = "http://zile.sourceforge.net/"
+DEPENDS = "ncurses bdwgc"
+
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464"
+
+SRC_URI = "http://ftp.gnu.org/gnu/zile/${BP}.tar.gz \
+ file://remove-help2man.patch \
+"
+
+SRC_URI[md5sum] = "c7d7eec93231c6878f255978d9747a73"
+SRC_URI[sha256sum] = "7a78742795ca32480f2bab697fd5e328618d9997d6f417cf1b14e9da9af26b74"
+
+inherit autotools pkgconfig
+
+do_install_append() {
+ rm -rf ${D}${libdir}/charset.alias
+ rmdir --ignore-fail-on-non-empty ${D}${libdir} || true
+}
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG += "${@bb.utils.filter('DISTRO_FEATURES', 'acl', d)}"
+
+PACKAGECONFIG[acl] = "--enable-acl,--disable-acl,acl,"