[Feature]add MT2731_MP2_MR2_SVN388 baseline version

Change-Id: Ief04314834b31e27effab435d3ca8ba33b499059
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/adduser/adduser_3.118.bb b/meta/meta-openembedded/meta-perl/recipes-perl/adduser/adduser_3.118.bb
new file mode 100644
index 0000000..660a7f7
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/adduser/adduser_3.118.bb
@@ -0,0 +1,54 @@
+SUMMARY = "a utility to add users/groups to the system"
+DESCRIPTION = "adduser, addgroup - add a user or group to the system"
+HOMEPAGE = "https://salsa.debian.org/debian/adduser"
+SECTION = "base/utils"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://debian/copyright;md5=caed49ab166f22ef31bf1127f558d0ef"
+
+SRC_URI = "https://launchpad.net/debian/+archive/primary/+sourcefiles/adduser/${PV}/${BPN}_${PV}.tar.xz \
+           file://adduser-add-M-option-for-useradd.patch \
+"
+
+SRC_URI[md5sum] = "44ba2475ebdaafc9613236bdda321c97"
+SRC_URI[sha256sum] = "3e9eea661c9aac6b2c791bfcc1de3a9c6a422d45c8f3d38ed417737ed3166ffc"
+
+S = "${WORKDIR}/${BPN}"
+
+inherit cpan-base update-alternatives
+
+do_install() {
+    install -d ${D}${sbindir}
+    install -m 0755 ${S}/adduser ${D}${sbindir}
+    install -m 0755 ${S}/deluser ${D}${sbindir}
+
+    install -D -m 0644 ${S}/AdduserCommon.pm ${D}${libdir}/perl/${@get_perl_version(d)}/Debian/AdduserCommon.pm
+    sed -i -e "s/VERSION/${PV}/" ${D}${sbindir}/*
+
+    install -d ${D}/${sysconfdir}
+    install -m 0644 ${S}/*.conf ${D}/${sysconfdir}
+
+    install -d ${D}${mandir}/man5
+    install -m 0644 ${S}/doc/*.conf.5 ${D}${mandir}/man5
+    install -d ${D}${mandir}/man8
+    install -m 0644 ${S}/doc/*.8 ${D}${mandir}/man8
+    install -d ${D}${docdir}/${BPN}
+    cp -rf ${S}/examples ${D}${docdir}/${BPN}
+}
+
+RDEPENDS_${PN} += "\
+    shadow \
+    perl-module-getopt-long \
+    perl-module-overloading \
+    perl-module-file-find \
+    perl-module-file-temp \
+"
+
+ALTERNATIVE_${PN} = "adduser deluser addgroup delgroup"
+ALTERNATIVE_PRIORITY = "60"
+ALTERNATIVE_LINK_NAME[adduser] = "${sbindir}/adduser"
+ALTERNATIVE_LINK_NAME[deluser] = "${sbindir}/deluser"
+ALTERNATIVE_LINK_NAME[addgroup] = "${sbindir}/addgroup"
+ALTERNATIVE_LINK_NAME[delgroup] = "${sbindir}/delgroup"
+ALTERNATIVE_TARGET[addgroup] = "${sbindir}/adduser.${BPN}"
+ALTERNATIVE_TARGET[delgroup] = "${sbindir}/deluser.${BPN}"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/adduser/files/adduser-add-M-option-for-useradd.patch b/meta/meta-openembedded/meta-perl/recipes-perl/adduser/files/adduser-add-M-option-for-useradd.patch
new file mode 100644
index 0000000..2ecec51
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/adduser/files/adduser-add-M-option-for-useradd.patch
@@ -0,0 +1,45 @@
+From 55a0adfc416ad85dbc440eaa667d98c200a8ce62 Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Thu, 18 Dec 2014 17:23:37 +0800
+Subject: [PATCH] adduser: add -M option for useradd
+
+The useradd (from package passwd) in debian based system sets -M (--no-create-home) by default,
+but the one we are using (from package shadow) sets -m (--create-home) by default, so we
+need to explicitly add -M option for useradd call or it will try to create home twice and
+throw a confused message:
+"The home directory `/home/newuser' already exists. Not copying from `/etc/skel'"
+
+Upstream-Status: Submitted [1]
+
+[1] https://lists.alioth.debian.org/pipermail/adduser-devel/2016-October/005478.html
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+---
+ adduser | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/adduser b/adduser
+index a5f83f3..f6cb52c 100755
+--- a/adduser
++++ b/adduser
+@@ -435,7 +435,7 @@ if ($action eq "addsysuser") {
+     $undouser = $new_name;
+     my $useradd = &which('useradd');
+     &systemcall($useradd, '-d', $home_dir, '-g', $ingroup_name, '-s',
+-		$shell, '-u', $new_uid, $new_name);
++	        $shell, '-u', $new_uid, '-M', $new_name);
+     if(!$disabled_login) {
+         my $usermod = &which('usermod');
+         &systemcall($usermod, '-p', '*', $new_name);
+@@ -525,7 +525,7 @@ if ($action eq "adduser") {
+     $undouser = $new_name;
+     my $useradd = &which('useradd');
+     &systemcall($useradd, '-d', $home_dir, '-g', $ingroup_name, '-s',
+-		$shell, '-u', $new_uid, $new_name);
++               $shell, '-u', $new_uid, '-M', $new_name);
+     &invalidate_nscd();
+ 
+     create_homedir (1); # copy skeleton data
+-- 
+1.8.5.2
+
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libalgorithm/libalgorithm-diff-perl_1.15.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libalgorithm/libalgorithm-diff-perl_1.15.bb
new file mode 100644
index 0000000..4155fad
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libalgorithm/libalgorithm-diff-perl_1.15.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Algorithm::Diff - Compute 'intelligent' differences between two \
+files/lists"
+DESCRIPTION = "This is a module for computing the difference between two files, \
+two strings, or any other two lists of things.  It uses an  intelligent \
+algorithm similar to (or identical to) the one used by the Unix `diff' \
+program.   It is guaranteed to find the *smallest possible* set of \
+differences. \
+"
+SECTION = "libs"
+HOMEPAGE = "http://search.cpan.org/~nedkonz/Algorithm-Diff/"
+
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+LIC_FILES_CHKSUM = "file://lib/Algorithm/Diff.pm;beginline=406;endline=409;md5=d393b8ad3b8994b9d0ae9299b8a8a1ee"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/N/NE/NEDKONZ/Algorithm-Diff-${PV}.tar.gz"
+SRC_URI[md5sum] = "457cd497a0411a88b47d3741eb176071"
+SRC_URI[sha256sum] = "aa848b75ad3ecc32d31e8651909551e851cceef74a32822c7a3cb35c259f5190"
+
+S = "${WORKDIR}/Algorithm-Diff-${PV}"
+
+inherit cpan
+
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libauthen/files/run-ptest b/meta/meta-openembedded/meta-perl/recipes-perl/libauthen/files/run-ptest
new file mode 100644
index 0000000..c9f9ca9
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libauthen/files/run-ptest
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+for case in `find t -type f -name '*.t'`; do
+    perl $case >$case.output 2>&1
+    ret=$?
+    cat $case.output
+    if [ $ret -ne 0 ]; then
+        echo "FAIL: ${case%.t}"
+    elif grep -i 'SKIP' $case.output; then
+        echo "SKIP: ${case%.t}"
+    else
+        echo "PASS: ${case%.t}"
+    fi
+
+    rm -f $case.output
+done
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libauthen/libauthen-sasl-perl_2.16.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libauthen/libauthen-sasl-perl_2.16.bb
new file mode 100644
index 0000000..e658a5f
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libauthen/libauthen-sasl-perl_2.16.bb
@@ -0,0 +1,28 @@
+SUMMARY = "SASL Authentication framework for Perl"
+DESCRIPTION = "SASL is a generic mechanism for authentication used by several network \
+protocols. Authen::SASL provides an implementation framework that all \
+protocols should be able to share."
+HOMEPAGE = "http://search.cpan.org/dist/Authen-SASL/"
+SECTION = "libs"
+
+LICENSE = "Artistic-1.0|GPL-1.0+"
+LIC_FILES_CHKSUM = "file://lib/Authen/SASL/Perl.pm;beginline=1;endline=3;md5=17123315bbcda19f484c07227594a609"
+
+DEPENDS = "perl"
+RDEPENDS_${PN} = "libdigest-hmac-perl"
+
+SRC_URI = "http://www.cpan.org/authors/id/G/GB/GBARR/Authen-SASL-${PV}.tar.gz \
+           file://run-ptest \
+          "
+SRC_URI[md5sum] = "7c03a689d4c689e5a9e2f18a1c586b2f"
+SRC_URI[sha256sum] = "6614fa7518f094f853741b63c73f3627168c5d3aca89b1d02b1016dc32854e09"
+
+S = "${WORKDIR}/Authen-SASL-${PV}"
+
+inherit cpan ptest
+
+do_install_ptest () {
+    cp -r ${B}/t ${D}${PTEST_PATH}
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libcapture/libcapture-tiny-perl_0.46.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libcapture/libcapture-tiny-perl_0.46.bb
new file mode 100644
index 0000000..2719811
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libcapture/libcapture-tiny-perl_0.46.bb
@@ -0,0 +1,37 @@
+SUMMARY = "Capture::Tiny - Capture STDOUT and STDERR from Perl, XS or external programs."
+DESCRIPTION = "Capture::Tiny provies a simple, portable way to capture \
+almost anything sent to STDOUT or STDERR, regardless of whether it comes \
+from Perl, from XS code or from an external program. Optionally, output can \
+be teed so that it is captured while being passed through to the original \
+filehandles. Yes, it even works on Windows (usually). Stop guessing which of \
+a dozen capturing modules to use in any particular situation and just use \
+this one."
+SECTION = "libs"
+
+HOMEPAGE = "http://search.cpan.org/~dagolden/Capture-Tiny/"
+
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=37a4918a30ace24395020e5b8c03b83f"
+
+SRCNAME = "Capture-Tiny"
+SRC_URI = "${CPAN_MIRROR}/authors/id/D/DA/DAGOLDEN/${SRCNAME}-${PV}.tar.gz"
+SRC_URI[md5sum] = "d718af07729d26a793949ca6ba2580a7"
+SRC_URI[sha256sum] = "5d7a6a830cf7f2b2960bf8b8afaac16a537ede64f3023827acea5bd24ca77015"
+
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit cpan
+
+RDEPENDS_${PN} = " perl-module-scalar-util \
+                   perl-module-io-file \
+                   perl-module-extutils-makemaker \
+                   perl-module-file-spec \
+                   perl-module-exporter \
+                   perl-module-carp \
+                   perl-module-test-more \
+                   perl-module-file-temp \
+                   perl-module-lib \
+                   perl-module-overloading \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libcgi/libcgi-perl_4.38.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libcgi/libcgi-perl_4.38.bb
new file mode 100644
index 0000000..db16d83
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libcgi/libcgi-perl_4.38.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "CGI.pm is a stable, complete and mature solution for processing and preparing \
+HTTP requests and responses. Major features including processing form \
+submissions, file uploads, reading and writing cookies, query string generation \
+and manipulation, and processing and preparing HTTP headers."
+HOMEPAGE = "http://search.cpan.org/~leejo/CGI-4.28/lib/CGI.pod"
+SECTION = "libs"
+LICENSE = "Artistic-2.0 | GPL-2.0"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2e9769f0a2613a98bc7fce15dee0c533"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/L/LE/LEEJO/CGI-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "0aeb8563d533e7f83724ed068b5bfc37"
+SRC_URI[sha256sum] = "8c58f4a529bb92a914b22b7e64c5e31185c9854a4070a6dfad44fe5cc248e7d4"
+
+S = "${WORKDIR}/CGI-${PV}"
+
+inherit cpan
+
+RDEPENDS_${PN} += "\
+    perl-module-deprecate \
+    perl-module-if \
+"
+
+RPROVIDES_${PN} += "perl-module-cgi"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libclass/libclass-method-modifiers-perl_2.12.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libclass/libclass-method-modifiers-perl_2.12.bb
new file mode 100644
index 0000000..3979b31
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libclass/libclass-method-modifiers-perl_2.12.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Class::Method::Modifiers - provides Moose-like method modifiers"
+DESCRIPTION = "Method modifiers are a convenient feature from the CLOS \
+(Common Lisp Object System) world."
+
+SECTION = "libs"
+
+HOMEPAGE = "https://github.com/moose/Class-Method-Modifiers/"
+
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=16fd0ec7b73c0e158426f753943f1058"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/E/ET/ETHER/Class-Method-Modifiers-${PV}.tar.gz"
+SRC_URI[md5sum] = "f55400c7a8134acf3657f8af89bdd7af"
+SRC_URI[sha256sum] = "e44c1073020bf55b8c97975ed77235fd7e2a6a56f29b5c702301721184e27ac8"
+
+S = "${WORKDIR}/Class-Method-Modifiers-${PV}"
+
+inherit cpan
+
+RDEPENDS_${PN} = " perl-module-b \
+                   perl-module-base \
+                   perl-module-carp \
+                   perl-module-exporter \
+                   perl-module-strict \
+                   perl-module-warnings \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-guess_0.11.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-guess_0.11.bb
new file mode 100644
index 0000000..21be047
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-guess_0.11.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Guess OpenSSL include path"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=ea914cc2718e8d53bd7744d96e66c03c"
+
+SRC_URI = "http://www.cpan.org/modules/by-module/Crypt/Crypt-OpenSSL-Guess-${PV}.tar.gz "
+
+SRC_URI[md5sum] = "e768fe2c07826b0ac9ea604c79f93032"
+SRC_URI[sha256sum] = "aa6b18e38cb852cbad80a58cd90c395b40819d4d01e0ab37e7703149094d7167"
+
+DEPENDS += "openssl"
+
+RDEPENDS_${PN}="perl-module-config perl-module-exporter perl-module-symbol perl-module-file-spec"
+
+EXTRA_CPANFLAGS = "INC='-I${STAGING_INCDIR}' LIBS='-L${STAGING_LIBDIR} -lssl -L${STAGING_DIR_TARGET}${base_libdir} -lcrypto'"
+
+S = "${WORKDIR}/Crypt-OpenSSL-Guess-${PV}"
+
+inherit cpan
+
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-random-perl_0.11.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-random-perl_0.11.bb
new file mode 100644
index 0000000..8456e31
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-random-perl_0.11.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Crypt Openssl Random cpan module"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=089c18d635ae273e1727ec385e64063b"
+
+SRC_URI = "http://www.cpan.org/modules/by-module/Crypt/Crypt-OpenSSL-Random-${PV}.tar.gz "
+SRC_URI[md5sum] = "5d71337503e0356ce1ce1481504e5885"
+SRC_URI[sha256sum] = "bb8c81c6a39b9b13a22d818ee9a746242f136f0fadceb6b9776ae615e7524c7a"
+
+S = "${WORKDIR}/Crypt-OpenSSL-Random-${PV}"
+
+DEPENDS += " openssl \
+"
+inherit cpan
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-rsa-perl_0.30.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-rsa-perl_0.30.bb
new file mode 100644
index 0000000..0a2ad8a
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-rsa-perl_0.30.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Crypt Openssl RSA cpan module"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a67ceecc5d9a91a5a0d003ba50c26346"
+
+SRC_URI = "http://www.cpan.org/modules/by-module/Crypt/Crypt-OpenSSL-RSA-${PV}.tar.gz "
+
+SRC_URI[md5sum] = "10bca2fc6d0ba1aa329f227424ae87d5"
+SRC_URI[sha256sum] = "23e13531397af102db4fd24bcf70137add7c85c23cca697c43aa71c2959a29ac"
+
+DEPENDS += "libcrypt-openssl-guess-native openssl"
+
+RDEPENDS_${PN}="libcrypt-openssl-random-perl"
+
+EXTRA_CPANFLAGS = "INC='-I${STAGING_INCDIR}' LIBS='-L${STAGING_LIBDIR} -lssl -L${STAGING_DIR_TARGET}${base_libdir} -lcrypto'"
+
+S = "${WORKDIR}/Crypt-OpenSSL-RSA-${PV}"
+
+inherit cpan
+
+do_compile() {
+    export OTHERLDFLAGS='-Wl,-rpath'
+    cpan_do_compile
+}
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libcurses/libcurses-perl_1.36.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libcurses/libcurses-perl_1.36.bb
new file mode 100644
index 0000000..782b973
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libcurses/libcurses-perl_1.36.bb
@@ -0,0 +1,26 @@
+DESCRIPTION = "lib-curses provides an interface between Perl programs and \
+the curses library."
+
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+
+LIC_FILES_CHKSUM = "file://README;beginline=26;endline=30;md5=0b37356c5e9e28080a3422d82af8af09"
+
+DEPENDS += "perl ncurses "
+
+SRC_URI = "http://www.cpan.org/authors/id/G/GI/GIRAFFED/Curses-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "389c70ee5530b887f8e5dc1303cb5294"
+SRC_URI[sha256sum] = "a414795ba031c5918c70279fe534fee594a96ec4b0c78f44ce453090796add64"
+
+S = "${WORKDIR}/Curses-${PV}"
+
+EXTRA_CPANFLAGS = "INC=-I${STAGING_INCDIR} LIBS=-L${STAGING_LIBDIR}"
+
+inherit cpan
+
+do_compile() {
+    export LIBC="$(find ${STAGING_DIR_TARGET}/${base_libdir}/ -name 'libc-*.so')"
+    cpan_do_compile
+}
+
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libdata/files/run-ptest b/meta/meta-openembedded/meta-perl/recipes-perl/libdata/files/run-ptest
new file mode 100644
index 0000000..c9f9ca9
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libdata/files/run-ptest
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+for case in `find t -type f -name '*.t'`; do
+    perl $case >$case.output 2>&1
+    ret=$?
+    cat $case.output
+    if [ $ret -ne 0 ]; then
+        echo "FAIL: ${case%.t}"
+    elif grep -i 'SKIP' $case.output; then
+        echo "SKIP: ${case%.t}"
+    else
+        echo "PASS: ${case%.t}"
+    fi
+
+    rm -f $case.output
+done
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libdata/libdata-hexdump-perl_0.02.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libdata/libdata-hexdump-perl_0.02.bb
new file mode 100644
index 0000000..6ab5a42
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libdata/libdata-hexdump-perl_0.02.bb
@@ -0,0 +1,33 @@
+SUMMARY = "Data::HexDump - Hexadecial Dumper"
+DESCRIPTION = "Dump in hexadecimal the content of a scalar. The result \
+is returned in a string. Each line of the result consists of the offset \
+in the source in the leftmost column of each line, followed by one or \
+more columns of data from the source in hexadecimal. The rightmost column \
+of each line shows the printable characters \
+(all others are shown as single dots).\
+"
+
+HOMEPAGE = "http://search.cpan.org/~ftassin/Data-HexDump-0.02/lib/Data/HexDump.pm"
+SECTION = "libs"
+
+LICENSE = "Artistic-1.0"
+LIC_FILES_CHKSUM = "file://lib/Data/HexDump.pm;beginline=215;endline=217;md5=bf1cd9373f8d1f85fe091ee069a480e9"
+
+DEPENDS = "perl"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/F/FT/FTASSIN/Data-HexDump-${PV}.tar.gz \
+           file://run-ptest \
+"
+SRC_URI[md5sum] = "467b7183d1062ab4a502b50c34e7d67f"
+SRC_URI[sha256sum] = "1a9d843e7f667c1c6f77c67af5d77e7462ff23b41937cb17454d03535cd9be70"
+
+S = "${WORKDIR}/Data-HexDump-${PV}"
+
+inherit cpan ptest
+
+do_install_ptest () {
+    install -d ${D}${PTEST_PATH}/t
+    install -m 0755 ${B}/t/* ${D}${PTEST_PATH}/t
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl/sqlite-perl-test.pl b/meta/meta-openembedded/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl/sqlite-perl-test.pl
new file mode 100755
index 0000000..40f5916
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl/sqlite-perl-test.pl
@@ -0,0 +1,69 @@
+#! /usr/bin/env perl
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation.
+#
+# Copyright (C) 2013 Wind River Systems, Inc.
+#
+# - It tests DBI and DBD::SQLite could work correctly which means one could
+#   manipulate sqlite database in perl
+# - The test includes create/insert/update/delete/select, the five important
+#   things one can do with a table
+use DBI;
+
+sub execute_sql {
+    my $dbh = $_[0];
+    my $sql = $_[1];
+    my $sth = $dbh->prepare($sql)
+        or die "Couldn't prepare statement: " . $dbh->errstr;
+    $sth->execute();
+    print "$sql\n";
+    return $sth;
+}
+
+sub select_all {
+    my $dbh = $_[0];
+    my $table = $_[1];
+    my $sth = &execute_sql($dbh, "Select * from $table");
+
+    print "-----------------------------------\n";
+    while (@data = $sth->fetchrow_array()) {
+        my $name = $data[0];
+        my $id = $data[1];
+        print "$name: $id\n";
+    }
+    print "\n";
+
+    $sth->finish;
+    return $sth;
+}
+
+# A private, temporary in-memory database is created for the connection.
+# This in-memory database will vanish when the database connection is
+# closed. It is handy for your library tests.
+my $dbfile = ":memory:";
+my $dbh = DBI->connect("DBI:SQLite:dbname=$dbfile","","")
+        or die "Couldn't connect to database: " . DBI->errstr;
+print "Connect to SQLite's in-memory database\n";
+
+&execute_sql($dbh, "Create table tbl1(name varchar(10), id smallint)");
+&execute_sql($dbh, "Insert into tbl1 values('yocto',10)");
+&execute_sql($dbh, "Insert into tbl1 values('windriver', 20)");
+&select_all($dbh, "tbl1");
+
+&execute_sql($dbh, "Update tbl1 set name = 'oe-core' where id = 10");
+&execute_sql($dbh, "Delete from tbl1 where id = 20");
+&select_all($dbh, "tbl1");
+
+$dbh->disconnect;
+print "Test Success\n"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.54.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.54.bb
new file mode 100644
index 0000000..c72e536
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.54.bb
@@ -0,0 +1,41 @@
+SUMMARY = "A Perl DBI driver for SQLite"
+DESCRIPTION = "DBD::SQLite is a Perl DBI driver for SQLite, that includes the entire \
+thing in the distribution. So in order to get a fast transaction capable \
+RDBMS working for your perl project you simply have to install this \
+module, and nothing else. \
+"
+HOMEPAGE = "http://search.cpan.org/~ishigaki/DBD-SQLite/"
+
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+DEPENDS += "libdbi-perl-native"
+RDEPENDS_${PN} += "libdbi-perl \
+                   sqlite3 \
+                   perl-module-constant \
+                   perl-module-locale \
+                   perl-module-tie-hash \
+"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1726e2117494ba3e13e1c3d93f795360"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/I/IS/ISHIGAKI/DBD-SQLite-${PV}.tar.gz \
+           file://sqlite-perl-test.pl \
+"
+
+SRC_URI[md5sum] = "8f835ddacb9a4a92a52bbe2d24d18a8e"
+SRC_URI[sha256sum] = "3929a6dbd8d71630f0cb57f85dcef9588cd7ac4c9fa12db79df77b9d3a4d7269"
+
+UPSTREAM_CHECK_REGEX = "DBD\-SQLite\-(?P<pver>(\d+\.\d+))(?!_\d+).tar"
+
+S = "${WORKDIR}/DBD-SQLite-${PV}"
+
+inherit cpan
+
+BBCLASSEXTEND = "native"
+
+do_install_append() {
+    if [ ${PERL_DBM_TEST} = "1" ]; then
+        install -m 755 -D ${WORKDIR}/sqlite-perl-test.pl ${D}/${bindir}/sqlite-perl-test.pl
+    fi
+}
+
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libdevel/libdevel-globaldestruction-perl_0.14.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libdevel/libdevel-globaldestruction-perl_0.14.bb
new file mode 100644
index 0000000..0ce2424
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libdevel/libdevel-globaldestruction-perl_0.14.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Function returning \"${^GLOBAL_PHASE} eq \'DESTRUCT\'\""
+DESCRIPTION = "Perl's global destruction is a little trick to deal with \
+WRT finalizers because it's not ordered and objects can sometimes disappear."
+
+SECTION = "libs"
+
+HOMEPAGE = "https://metacpan.org/pod/Devel-GlobalDestruction/"
+
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+LIC_FILES_CHKSUM = "file://README;beginline=53;endline=55;md5=935dadb9423774f53548e5cd5055d41a"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/H/HA/HAARG/Devel-GlobalDestruction-${PV}.tar.gz"
+SRC_URI[md5sum] = "24221ba322cf2dc46a1fc99b53e2380b"
+SRC_URI[sha256sum] = "34b8a5f29991311468fe6913cadaba75fd5d2b0b3ee3bb41fe5b53efab9154ab"
+
+S = "${WORKDIR}/Devel-GlobalDestruction-${PV}"
+
+inherit cpan
+
+RDEPENDS_${PN} = " libsub-exporter-progressive-perl \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libdigest/files/run-ptest b/meta/meta-openembedded/meta-perl/recipes-perl/libdigest/files/run-ptest
new file mode 100644
index 0000000..c9f9ca9
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libdigest/files/run-ptest
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+for case in `find t -type f -name '*.t'`; do
+    perl $case >$case.output 2>&1
+    ret=$?
+    cat $case.output
+    if [ $ret -ne 0 ]; then
+        echo "FAIL: ${case%.t}"
+    elif grep -i 'SKIP' $case.output; then
+        echo "SKIP: ${case%.t}"
+    else
+        echo "PASS: ${case%.t}"
+    fi
+
+    rm -f $case.output
+done
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libdigest/libdigest-hmac-perl_1.03.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libdigest/libdigest-hmac-perl_1.03.bb
new file mode 100644
index 0000000..8f1c98c
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libdigest/libdigest-hmac-perl_1.03.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Keyed-Hashing for Message Authentication"
+DESCRIPTION = "Keyed-Hashing for Message Authentication"
+HOMEPAGE = "http://search.cpan.org/~gaas/Digest-HMAC-1.03/"
+SECTION = "libs"
+
+LICENSE = "Artistic-1.0|GPLv1+"
+LIC_FILES_CHKSUM = "file://README;beginline=13;endline=17;md5=da980cdc026faa065e5d5004115334e6"
+
+RDEPENDS_${PN} = "libdigest-sha1-perl perl-module-extutils-makemaker perl-module-digest-md5"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/Digest-HMAC-${PV}.tar.gz \
+           file://run-ptest \
+          "
+SRC_URI[md5sum] = "e6a5d6f552da16eacb5157ea4369ff9d"
+SRC_URI[sha256sum] = "3bc72c6d3ff144d73aefb90e9a78d33612d58cf1cd1631ecfb8985ba96da4a59"
+
+S = "${WORKDIR}/Digest-HMAC-${PV}"
+
+inherit cpan ptest
+
+do_install_ptest () {
+    cp -r ${B}/t ${D}${PTEST_PATH}
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libdigest/libdigest-sha1-perl_2.13.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libdigest/libdigest-sha1-perl_2.13.bb
new file mode 100644
index 0000000..0371ea6
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libdigest/libdigest-sha1-perl_2.13.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Perl interface to the SHA-1 algorithm "
+DESCRIPTION = "Digest::SHA1 - Perl interface to the SHA-1 algorithm"
+HOMEPAGE = "http://search.cpan.org/~gaas/Digest-SHA1-2.13/"
+SECTION = "libs"
+
+LICENSE = "Artistic-1.0|GPLv1+"
+LIC_FILES_CHKSUM = "file://README;beginline=10;endline=14;md5=ff5867ebb4bc1103a7a416aef2fce00a"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/Digest-SHA1-${PV}.tar.gz \
+           file://run-ptest \
+          "
+SRC_URI[md5sum] = "bd22388f268434f2b24f64e28bf1aa35"
+SRC_URI[sha256sum] = "68c1dac2187421f0eb7abf71452a06f190181b8fc4b28ededf5b90296fb943cc"
+
+S = "${WORKDIR}/Digest-SHA1-${PV}"
+
+inherit cpan ptest
+
+do_install_ptest () {
+    cp -r ${B}/t ${D}${PTEST_PATH}
+}
+
+BBCLASSEXTEND="native"
+
+FILES_${PN}-dbg =+ "${libdir}/perl/vendor_perl/*/auto/Digest/SHA1/.debug/"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libencode/libencode-locale-perl_1.05.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libencode/libencode-locale-perl_1.05.bb
new file mode 100644
index 0000000..748f746
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libencode/libencode-locale-perl_1.05.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Encode::Locale - Determine the locale encoding"
+AUTHOR = "Gisle Aas <gisle@activestate.com>"
+HOMEPAGE = "https://metacpan.org/module/Encode::Locale"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+LIC_FILES_CHKSUM = "file://README;md5=14e8006c2134045725fd81292a323d24"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/G/GA/GAAS/Encode-Locale-${PV}.tar.gz"
+SRC_URI[md5sum] = "fcfdb8e4ee34bcf62aed429b4a23db27"
+SRC_URI[sha256sum] = "176fa02771f542a4efb1dbc2a4c928e8f4391bf4078473bd6040d8f11adb0ec1"
+
+S = "${WORKDIR}/Encode-Locale-${PV}"
+
+inherit cpan
+
+RDEPENDS_${PN} += "libencode-perl \
+                   libencode-alias-perl \
+                   perl-module-base \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libencode/libencode-perl_2.94.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libencode/libencode-perl_2.94.bb
new file mode 100644
index 0000000..9861c56
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libencode/libencode-perl_2.94.bb
@@ -0,0 +1,68 @@
+# NOTE:
+#    You should use perl-module-encode rather than this package
+#    unless you specifically need a version newer than what is
+#    provided by perl.
+
+SUMMARY = "Encode - character encodings"
+DESCRIPTION = "The \"Encode\" module provides the interfaces between \
+Perl's strings and the rest of the system.  Perl strings are sequences \
+of characters."
+
+AUTHOR = "Dan Kogai <dankogai+cpan@gmail.com>"
+HOMEPAGE = "https://metacpan.org/release/Encode"
+SECTION = "lib"
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+LIC_FILES_CHKSUM = "file://META.json;md5=d8e909447b983532b2b460c830e7a7e4"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/D/DA/DANKOGAI/Encode-${PV}.tar.gz"
+SRC_URI[md5sum] = "f995e0eb9e52d01ed57abe835bf3ccb6"
+SRC_URI[sha256sum] = "acb3a4af5e3ee38f94de8baa7454e0b836a0649e7ac4180f28dfca439ad60cff"
+
+UPSTREAM_CHECK_REGEX = "Encode\-(?P<pver>(\d+\.\d+))(?!_\d+).tar"
+
+S = "${WORKDIR}/Encode-${PV}"
+
+inherit cpan
+
+#  file /usr/bin/enc2xs from install of perl-misc-5.24.1-r0.i586 conflicts with file from package libencode-perl-2.94-r0.i586
+#  file /usr/bin/encguess from install of perl-misc-5.24.1-r0.i586 conflicts with file from package libencode-perl-2.94-r0.i586
+#  file /usr/bin/piconv from install of perl-misc-5.24.1-r0.i586 conflicts with file from package libencode-perl-2.94-r0.i586
+RCONFLICTS_${PN} = "perl-misc"
+
+RDEPENDS_${PN} += " perl-module-bytes \
+                    perl-module-constant \
+                    perl-module-parent \
+                    perl-module-storable \
+                    perl-module-xsloader \
+"
+
+RPROVIDES_${PN} += "libencode-alias-perl \
+                    libencode-byte-perl \
+                    libencode-cjkconstants-perl \
+                    libencode-cn-perl \
+                    libencode-cn-hz-perl \
+                    libencode-config-perl \
+                    libencode-ebcdic-perl \
+                    libencode-encoder-perl \
+                    libencode-encoding-perl \
+                    libencode-gsm0338-perl \
+                    libencode-guess-perl \
+                    libencode-jp-perl \
+                    libencode-jp-h2z-perl \
+                    libencode-jp-jis7-perl \
+                    libencode-kr-perl \
+                    libencode-kr-2022_kr-perl \
+                    libencode-mime-header-perl \
+                    libencode-mime-name-perl \
+                    libencode-symbol-perl \
+                    libencode-tw-perl \
+                    libencode-unicode-perl \
+                    libencode-unicode-utf7-perl \
+                    libencoding-perl \
+                    libencode-internal-perl \
+                    libencode-mime-header-iso_2022_jp-perl \
+                    libencode-utf8-perl \
+                    libencode-utf_ebcdic-perl \
+                    "
+
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libextutils/libextutils-config-perl_0.008.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libextutils/libextutils-config-perl_0.008.bb
new file mode 100644
index 0000000..e93d388
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libextutils/libextutils-config-perl_0.008.bb
@@ -0,0 +1,24 @@
+SUMMARY = "ExtUtils::Config - A wrapper for perl's configuration"
+DESCRIPTION = "ExtUtils::Config is an abstraction around the %Config hash."
+SECTION = "libs"
+
+HOMEPAGE = "http://search.cpan.org/~leont/ExtUtils-Config/"
+
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1932ab4d8b84c25fd7967aa18088e57e"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/ExtUtils-Config-${PV}.tar.gz"
+SRC_URI[md5sum] = "565a7b09c7cac5907a25bbe2c959a717"
+SRC_URI[sha256sum] = "ae5104f634650dce8a79b7ed13fb59d67a39c213a6776cfdaa3ee749e62f1a8c"
+
+S = "${WORKDIR}/ExtUtils-Config-${PV}"
+
+inherit cpan
+
+RDEPENDS_${PN} = " perl-module-extutils-makemaker \
+                   perl-module-data-dumper \
+                   perl-module-test-more \
+                   perl-module-file-temp \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libextutils/libextutils-cppguess-perl_0.12.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libextutils/libextutils-cppguess-perl_0.12.bb
new file mode 100644
index 0000000..99df6f3
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libextutils/libextutils-cppguess-perl_0.12.bb
@@ -0,0 +1,37 @@
+SUMMARY = "ExtUtils::CppGuess - guess C++ compiler and flags"
+DESCRIPTION = "ExtUtils::CppGuess attempts to guess the system's C++ \
+compiler that is compatible with the C compiler that your perl was built \
+with. \
+It can generate the necessary options to the Module::Build constructor or \
+to ExtUtils::MakeMaker's WriteMakefile function."
+SECTION = "libs"
+
+HOMEPAGE = "http://search.cpan.org/~smueller/ExtUtils-CppGuess/"
+
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+LIC_FILES_CHKSUM = "file://README;beginline=81;endline=84;md5=84c0390b90ea8c6702ce659b67bed699"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/E/ET/ETJ/ExtUtils-CppGuess-${PV}.tar.gz"
+SRC_URI[md5sum] = "28be49072585b25df87e54180f741a4d"
+SRC_URI[sha256sum] = "31c47b5b15e3e9fd5ae7b35881a0fffd26a2983b241e7e3a1bc340d6d446186b"
+
+S = "${WORKDIR}/ExtUtils-CppGuess-${PV}"
+
+inherit cpan
+
+do_install () {
+        cpan_do_install
+}
+
+RDEPENDS_${PN} = " libcapture-tiny-perl \
+                   perl-module-scalar-util \
+                   perl-module-io-file \
+                   perl-module-extutils-makemaker \
+                   perl-module-file-spec \
+                   perl-module-exporter \
+                   perl-module-carp \
+                   perl-module-file-temp \
+                   perl-module-lib \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libextutils/libextutils-helpers-perl_0.026.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libextutils/libextutils-helpers-perl_0.026.bb
new file mode 100644
index 0000000..c027250
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libextutils/libextutils-helpers-perl_0.026.bb
@@ -0,0 +1,29 @@
+SUMMARY = "ExtUtils::Helpers - Various portability utilities for module builders"
+DESCRIPTION = "This module provides various portable helper function for module building modules."
+SECTION = "libs"
+
+HOMEPAGE = "http://search.cpan.org/~leont/ExtUtils-Helpers/"
+
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=223c04045664f72c3a6556462612bddd"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/ExtUtils-Helpers-${PV}.tar.gz"
+SRC_URI[md5sum] = "83b00c1e401321c425ae5db6b2b2fd12"
+SRC_URI[sha256sum] = "de901b6790a4557cf4ec908149e035783b125bf115eb9640feb1bc1c24c33416"
+
+S = "${WORKDIR}/ExtUtils-Helpers-${PV}"
+
+inherit cpan
+
+RDEPENDS_${PN} = " perl-module-file-copy \
+                   perl-module-extutils-makemaker \
+                   perl-module-exporter \
+                   perl-module-carp \
+                   perl-module-test-more \
+                   perl-module-text-parsewords \
+                   perl-module-load \
+                   perl-module-file-temp \
+                   perl-module-file-spec-functions \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libextutils/libextutils-installpaths-perl_0.011.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libextutils/libextutils-installpaths-perl_0.011.bb
new file mode 100644
index 0000000..6eb434a
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libextutils/libextutils-installpaths-perl_0.011.bb
@@ -0,0 +1,25 @@
+SUMMARY = "ExtUtils::InstallPaths - Build.PL install path logic made easy"
+DESCRIPTION = "This module tries to make install path resolution as easy \
+as possible."
+SECTION = "libs"
+
+HOMEPAGE = "http://search.cpan.org/~leont/ExtUtils-InstallPaths/"
+
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b6fa54d873ce6bcf4809ea88bdf97769"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/ExtUtils-InstallPaths-${PV}.tar.gz"
+SRC_URI[md5sum] = "9c75894c3c8c899ab6bfafc5eaa97999"
+SRC_URI[sha256sum] = "7609fa048cdcf1451cad5b1d7d494f30e3d5bad0672d15404f1ea60e1df0067c"
+
+S = "${WORKDIR}/ExtUtils-InstallPaths-${PV}"
+
+inherit cpan
+
+RDEPENDS_${PN} = " perl-module-extutils-makemaker \
+                   perl-module-data-dumper \
+                   perl-module-test-more \
+                   perl-module-file-temp \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libextutils/libextutils-parsexs-perl_3.35.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libextutils/libextutils-parsexs-perl_3.35.bb
new file mode 100644
index 0000000..33707a0
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libextutils/libextutils-parsexs-perl_3.35.bb
@@ -0,0 +1,47 @@
+SUMMARY = "ExtUtils::ParseXS - converts Perl XS code into C code"
+DESCRIPTION = "\"ExtUtils::ParseXS\" will compile XS code into C code by \
+embedding the constructs necessary to let C functions manipulate Perl \
+values and creates the glue necessary to let Perl access those functions. \
+The compiler uses typesmapes to determine how to map C function parameters \
+and variables to Perl values."
+
+SECTION = "libs"
+
+HOMEPAGE = "http://metapan.org/release/ExtUtils-ParseXS/"
+
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+LIC_FILES_CHKSUM = "file://README;beginline=120;endline=129;md5=eb858f0e3b1b0bee0c05b86a474ae2b6"
+
+SRCNAME = "ExtUtils-ParseXS"
+SRC_URI = "${CPAN_MIRROR}/authors/id/S/SM/SMUELLER/${SRCNAME}-${PV}.tar.gz"
+SRC_URI[md5sum] = "2ae41036d85e98e1369645724962dd16"
+SRC_URI[sha256sum] = "41def0511278a2a8ba9afa25ccab45b0453f75e7fd774e8644b5f9a57cc4ee1c"
+
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit cpan
+
+RDEPENDS_${PN} = " perl-module-carp \
+    perl-module-cwd \
+    perl-module-dynaloader \
+    perl-module-extutils-cbuilder \
+    perl-module-extutils-makemaker \
+    perl-module-file-basename \
+    perl-module-file-spec \
+    perl-module-lib \
+    perl-module-symbol \
+    perl-module-test-more \
+"
+
+RPROVIDES_${PN} += " libextutils-parsexs-constants-perl \
+    libextutils-parsexs-countlines-perl \
+    libextutils-parsexs-eval-perl \
+    libextutils-parsexs-utilities-perl \
+    libextutils-typemaps-perl \
+    libextutils-typemaps-cmd-perl \
+    libextutils-typemaps-inputmap-perl \
+    libextutils-typemaps-outputmap-perl \
+    libextutils-typemaps-type-perl \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libfile/libfile-slurp-perl_9999.19.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libfile/libfile-slurp-perl_9999.19.bb
new file mode 100644
index 0000000..945b4c1
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libfile/libfile-slurp-perl_9999.19.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Slurp entire files into variables."
+DESCRIPTION = "This module provides subroutines to read or write \
+  entire files with a simple call.  It also has a subroutine for \
+  reading the list of filenames in a directory. \
+"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+
+LIC_FILES_CHKSUM = "file://README;beginline=37;endline=41;md5=255fbd5f98a90d51d9908d31271ae4d4"
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/U/UR/URI/File-Slurp-${PV}.tar.gz"
+
+S = "${WORKDIR}/File-Slurp-${PV}"
+
+inherit cpan
+
+SRC_URI[md5sum] = "7d584cd15c4f8b9547765eff8c4ef078"
+SRC_URI[sha256sum] = "ce29ebe995097ebd6e9bc03284714cdfa0c46dc94f6b14a56980747ea3253643"
+
+BBCLASSEXTEND="native"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libhtml/files/bin-htmltree-fix-shebang.patch b/meta/meta-openembedded/meta-perl/recipes-perl/libhtml/files/bin-htmltree-fix-shebang.patch
new file mode 100644
index 0000000..4266f05
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libhtml/files/bin-htmltree-fix-shebang.patch
@@ -0,0 +1,25 @@
+From 28ee994780459c3552d3cbbd6b011d054a41c439 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Sun, 8 Nov 2015 23:33:31 -0500
+Subject: [PATCH] bin/htmltree: fix shebang
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ bin/htmltree | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/bin/htmltree b/bin/htmltree
+index 8bf3db2..f9927e5 100755
+--- a/bin/htmltree
++++ b/bin/htmltree
+@@ -1,4 +1,4 @@
+-#!/usr/bin/perl
++#!/usr/bin/env perl
+ # Time-stamp: "2000-10-02 14:48:15 MDT"
+ #
+ # Parse the given HTML file(s) and dump the parse tree
+-- 
+1.9.1
+
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libhtml/libhtml-parser-perl_3.72.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libhtml/libhtml-parser-perl_3.72.bb
new file mode 100644
index 0000000..e202de0
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libhtml/libhtml-parser-perl_3.72.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "This package contains the Parser.pm module with friends."
+HOMEPAGE = "https://metacpan.org/release/HTML-Parser"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+
+LIC_FILES_CHKSUM = "file://README;md5=b0459e4426b94753b9a9b8a15f1223b8"
+
+DEPENDS += "perl"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/HTML-Parser-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "eb7505e5f626913350df9dd4a03d54a8"
+SRC_URI[sha256sum] = "ec28c7e1d9e67c45eca197077f7cdc41ead1bb4c538c7f02a3296a4bb92f608b"
+
+S = "${WORKDIR}/HTML-Parser-${PV}"
+
+EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}"
+
+inherit cpan
+
+do_compile() {
+    export LIBC="$(find ${STAGING_DIR_TARGET}/${base_libdir}/ -name 'libc-*.so')"
+    cpan_do_compile
+}
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libhtml/libhtml-tree-perl_5.03.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libhtml/libhtml-tree-perl_5.03.bb
new file mode 100644
index 0000000..56dc19c
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libhtml/libhtml-tree-perl_5.03.bb
@@ -0,0 +1,42 @@
+SUMMARY = "HTML::TreeBuilder - Parser that builds a HTML syntax tree"
+DESCRIPTION = "This distribution contains a suite of modules for representing, \
+creating, and extracting information from HTML syntax trees; there is \
+also relevent documentation.  These modules used to be part of the \
+libwww-perl distribution, but are now unbundled in order to facilitate \
+a separate development track."
+SECTION = "libs"
+
+HOMEPAGE = "http://www.cpan.org/authors/id/C/CJ/CJM/HTML-Tree-${PV}.readme"
+
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3eb57a8958cae73cb65e7d0c26339242"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/C/CJ/CJM/HTML-Tree-${PV}.tar.gz \
+           file://bin-htmltree-fix-shebang.patch \
+"
+SRC_URI[md5sum] = "d9271d60b872ed6fbe68b2d0fe8c450e"
+SRC_URI[sha256sum] = "7d6d73fca622aa74855a8b088faa39454a0f91b7af83c9ec0387f01eefc2148f"
+
+S = "${WORKDIR}/HTML-Tree-${PV}"
+
+inherit cpan_build
+
+DEPENDS += "libmodule-build-perl-native \
+"
+
+RPROVIDES_${PN} = " libhtml-element-perl \
+    libhtml-tree-assubs-perl \
+    libhtml-tree-perl \
+    libhtml-treebuilder-perl \
+"
+
+RDEPENDS_${PN} = " perl-module-b \
+    perl-module-base \
+    perl-module-strict \
+    perl-module-warnings \
+    perl-module-exporter \
+    perl-module-carp \
+"
+
+BBCLASSEXTEND = "native"
+
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libimport/libimport-into-perl_1.002004.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libimport/libimport-into-perl_1.002004.bb
new file mode 100644
index 0000000..af08d63
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libimport/libimport-into-perl_1.002004.bb
@@ -0,0 +1,32 @@
+SUMMARY = "Import::Into - import packages into other packages"
+DESCRIPTION = "Writing exporters is a pain. Some use \"Exporter\", some use \
+\"Sub::Exporter\", some use \"Moose::Exporter\", some use \
+\"Exporter::Declare\"... and some things are pragmas.\
+\
+Exporting on someone else's behalf is harder. The exporters don't provide a \
+consistent API for this, and pragmas need to have their import method called \
+directly, since they effect the current unit of compilation. \
+\
+\"Import::Into\" provides global methods to make this painless."
+
+SECTION = "libs"
+
+HOMEPAGE = "https://metacpan.org/pod/Import-Into/"
+
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+LIC_FILES_CHKSUM = "file://README;beginline=209;endline=223;md5=3cf363f1e405dea6db2c6cd0ef23680c"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/E/ET/ETHER/Import-Into-${PV}.tar.gz"
+SRC_URI[md5sum] = "70f2f3b08a5b706ee382a8448c346cb1"
+SRC_URI[sha256sum] = "decb259bc2ff015fe3dac85e4a287d4128e9b0506a0b2c5fa7244836a68b1084"
+
+S = "${WORKDIR}/Import-Into-${PV}"
+
+inherit cpan
+
+RDEPENDS_${PN} = " libmodule-runtime-perl \
+                   perl-module-strict \
+                   perl-module-warnings \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libio/files/run-ptest b/meta/meta-openembedded/meta-perl/recipes-perl/libio/files/run-ptest
new file mode 100644
index 0000000..c9f9ca9
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libio/files/run-ptest
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+for case in `find t -type f -name '*.t'`; do
+    perl $case >$case.output 2>&1
+    ret=$?
+    cat $case.output
+    if [ $ret -ne 0 ]; then
+        echo "FAIL: ${case%.t}"
+    elif grep -i 'SKIP' $case.output; then
+        echo "SKIP: ${case%.t}"
+    else
+        echo "PASS: ${case%.t}"
+    fi
+
+    rm -f $case.output
+done
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libio/libio-socket-ssl-perl_2.060.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libio/libio-socket-ssl-perl_2.060.bb
new file mode 100644
index 0000000..20f8808
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libio/libio-socket-ssl-perl_2.060.bb
@@ -0,0 +1,47 @@
+SUMMARY = "Perl library for transparent SSL"
+DESCRIPTION = "This module is a true drop-in replacement for IO::Socket::INET that \
+uses SSL to encrypt data before it is transferred to a remote server \
+or client. IO::Socket::SSL supports all the extra features that one \
+needs to write a full-featured SSL client or server application: \
+multiple SSL contexts, cipher selection, certificate verification, and \
+SSL version selection. As an extra bonus, it works perfectly with \
+mod_perl."
+HOMEPAGE = "http://search.cpan.org/dist/IO-Socket-SSL/"
+SECTION = "libs"
+
+LICENSE = "Artistic-1.0|GPLv1+"
+LIC_FILES_CHKSUM = "file://META.yml;beginline=11;endline=11;md5=963ce28228347875ace682de56eef8e8"
+
+RDEPENDS_${PN} += "\
+    libnet-ssleay-perl \
+    perl-module-autoloader \
+    perl-module-scalar-util \
+    perl-module-io-socket \
+"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/S/SU/SULLR/IO-Socket-SSL-${PV}.tar.gz \
+           file://run-ptest \
+          "
+SRC_URI[md5sum] = "97fa6cd64f15db60f810cd8ab02d57fc"
+SRC_URI[sha256sum] = "fb5b2877ac5b686a5d7b8dd71cf5464ffe75d10c32047b5570674870e46b1b8c"
+
+S = "${WORKDIR}/IO-Socket-SSL-${PV}"
+
+inherit cpan ptest
+
+do_install_append () {
+    mkdir -p ${D}${docdir}/${PN}/
+    cp ${S}/BUGS ${D}${docdir}/${PN}/
+    cp ${S}/Changes ${D}${docdir}/${PN}/
+    cp ${S}/README ${D}${docdir}/${PN}/
+    cp -pRP ${S}/docs ${D}${docdir}/${PN}/
+    cp -pRP ${S}/certs ${D}${docdir}/${PN}/
+    cp -pRP ${S}/example ${D}${docdir}/${PN}/
+}
+
+do_install_ptest () {
+    cp -r ${B}/t ${D}${PTEST_PATH}
+    cp -r ${B}/certs ${D}${PTEST_PATH}
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libio/libio-stringy-perl_2.111.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libio/libio-stringy-perl_2.111.bb
new file mode 100644
index 0000000..0e566c0
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libio/libio-stringy-perl_2.111.bb
@@ -0,0 +1,31 @@
+SUMMARY = "IO-stringy - I/O on in-core objects like strings and arrays"
+DESCRIPTION = "This toolkit primarily provides modules for performing both \
+traditional and object-oriented i/o on things *other* than normal \
+filehandles; in particular, IO::Scalar, IO::ScalarArray, and IO::Lines."
+
+HOMEPAGE = "http://www.zeegee.com/products/IO-stringy/"
+SECTION = "devel"
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=01406e4ff2e60d88d42ef1caebdd0011"
+
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/D/DS/DSKOLL/IO-stringy-${PV}.tar.gz"
+SRC_URI[md5sum] = "e91acf0a800b190d13585a47de775bdd"
+SRC_URI[sha256sum] = "8c67fd6608c3c4e74f7324f1404a856c331dbf48d9deda6aaa8296ea41bf199d"
+
+S = "${WORKDIR}/IO-stringy-${PV}"
+
+inherit cpan
+
+RPROVIDES_${PN} += " libio-atomicfile-perl \
+    libio-innerfile-perl \
+    libio-lines-perl \
+    libio-scalar-perl \
+    libio-scalararray-perl \
+    libio-wrap-perl \
+    libio-wraptie-perl \
+    libio-wraptie-master-perl \
+    libio-wraptie-slave-perl \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libipc/libipc-signal-perl_1.00.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libipc/libipc-signal-perl_1.00.bb
new file mode 100644
index 0000000..b518164
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libipc/libipc-signal-perl_1.00.bb
@@ -0,0 +1,18 @@
+SUMMARY = "IPC::Signal - Utility functions dealing with signals"
+DESCRIPTION = "IPC::Signal - This module contains utility functions for \
+dealing with signals."
+
+HOMEPAGE = "http://search.cpan.org/~rosch/IPC-Signal-1.00/"
+SECTION = "libs"
+
+LICENSE = "Artistic-1.0|GPLv1+"
+LIC_FILES_CHKSUM = "file://README;beginline=16;endline=18;md5=f36550f59a0ae5e6e3b0be6a4da60d26"
+
+S = "${WORKDIR}/IPC-Signal-${PV}"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/R/RO/ROSCH/IPC-Signal-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "4cebf17fdf1785eaf8c151bf2e8c360a"
+SRC_URI[sha256sum] = "7c21f9c8c2d0c0f0f0f46e77de7c3d879dd562668ddf0525875c38cef2076fd0"
+
+inherit cpan
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/liblocale/liblocale-gettext-perl_1.07.bb b/meta/meta-openembedded/meta-perl/recipes-perl/liblocale/liblocale-gettext-perl_1.07.bb
new file mode 100644
index 0000000..fdc72a2
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/liblocale/liblocale-gettext-perl_1.07.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Locale::gettext - message handling functions."
+DESCRIPTION = "The gettext module permits access from perl to the gettext() family of \
+functions for retrieving message strings from databases constructed to \
+internationalize software."
+SECTION = "libs"
+
+HOMEPAGE = "http://search.cpan.org/~pvandry/Locale-gettext-${PV}/"
+
+LICENSE = "Artistic-1.0 | GPLv1+"
+LIC_FILES_CHKSUM = "file://README;md5=d028249c2d08dca6ca6c5bb43b56d926"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/P/PV/PVANDRY/Locale-gettext-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "bc652758af65c24500f1d06a77415019"
+SRC_URI[sha256sum] = "909d47954697e7c04218f972915b787bd1244d75e3bd01620bc167d5bbc49c15"
+
+S = "${WORKDIR}/Locale-gettext-${PV}"
+
+inherit cpan
+
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libmime/files/run-ptest b/meta/meta-openembedded/meta-perl/recipes-perl/libmime/files/run-ptest
new file mode 100644
index 0000000..c9f9ca9
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libmime/files/run-ptest
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+for case in `find t -type f -name '*.t'`; do
+    perl $case >$case.output 2>&1
+    ret=$?
+    cat $case.output
+    if [ $ret -ne 0 ]; then
+        echo "FAIL: ${case%.t}"
+    elif grep -i 'SKIP' $case.output; then
+        echo "SKIP: ${case%.t}"
+    else
+        echo "PASS: ${case%.t}"
+    fi
+
+    rm -f $case.output
+done
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libmime/libmime-charset-perl_1.012.2.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libmime/libmime-charset-perl_1.012.2.bb
new file mode 100644
index 0000000..79b4681
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libmime/libmime-charset-perl_1.012.2.bb
@@ -0,0 +1,19 @@
+SUMMARY = "MIME::Charset - Charset Information for MIME."
+DESCRIPTION = "MIME::Charset provides information about character sets used for MIME \
+messages on Internet."
+HOMEPAGE = "http://search.cpan.org/~nezumi/MIME-Charset-${PV}/"
+SECTION = "libs"
+
+LICENSE = "Artistic-1.0 | GPLv1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/N/NE/NEZUMI/MIME-Charset-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "71440416376248c31aa3bef753fae28d"
+SRC_URI[sha256sum] = "878c779c0256c591666bd06c0cde4c0d7820eeeb98fd1183082aee9a1e7b1d13"
+
+S = "${WORKDIR}/MIME-Charset-${PV}"
+
+inherit cpan
+
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libmime/libmime-types-perl_2.17.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libmime/libmime-types-perl_2.17.bb
new file mode 100644
index 0000000..4147530
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libmime/libmime-types-perl_2.17.bb
@@ -0,0 +1,42 @@
+SUMMARY = "MIME::Types - Definition of MIME types"
+DESCRIPTION = "MIME types are used in MIME compliant lines, for instance \
+as part of e-mail and HTTP traffic, to indicate the type of content which \
+is transmitted. Sometimes real knowledge about a mime-type is need.\
+\n\
+This module maintains a set of MIME::Type objects, which each describe \
+one known mime type."
+HOMEPAGE = "http://search.cpan.org/~markov/MIME-Types-${PV}"
+SECTION = "libraries"
+
+LICENSE = "Artistic-1.0|GPLv1+"
+LIC_FILES_CHKSUM = "file://META.yml;beginline=11;endline=11;md5=963ce28228347875ace682de56eef8e8"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/M/MA/MARKOV/MIME-Types-${PV}.tar.gz \
+           file://run-ptest \
+          "
+SRC_URI[md5sum] = "6f1441addab947137bac92c379a47ba3"
+SRC_URI[sha256sum] = "e04ed7d42f1ff3150a303805f2689c28f80b92c511784d4641cb7f040d3e8ff6"
+
+S = "${WORKDIR}/MIME-Types-${PV}"
+
+inherit cpan ptest
+
+RDEPENDS_${PN} = "\
+    perl-module-base \
+    perl-module-file-basename \
+    perl-module-file-spec \
+    perl-module-overload \
+"
+
+RDEPENDS_${PN}-ptest = "perl-module-lib perl-module-test-more"
+#RSUGGESTS_${PN}-ptest = "libmojo-base-perl"
+
+do_install () {
+    cpan_do_install
+    install -d ${D}${bindir}
+    install -m 755 ${S}/bin/collect-types ${D}${bindir}/collect-types
+}
+
+do_install_ptest () {
+    cp -r ${B}/t ${D}${PTEST_PATH}
+}
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libmodule/libmodule-build-perl_0.4224.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libmodule/libmodule-build-perl_0.4224.bb
new file mode 100644
index 0000000..d523a7a
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libmodule/libmodule-build-perl_0.4224.bb
@@ -0,0 +1,34 @@
+SUMMARY = "Module::Build - Build and install Perl modules"
+DESCRIPTION = "Many Perl distributions use a Build.PL file instead of a \
+Makefile.PL file to drive distribution configuration, build, test and \
+installation. Traditionally, Build.PL uses Module::Build as the underlying \
+build system. This module provides a simple, lightweight, drop-in replacement. \
+Whereas Module::Build has over 6,700 lines of code; this module has less than \
+120, yet supports the features needed by most distributions."
+
+SECTION = "libs"
+
+HOMEPAGE = "https://metacpan.org/release/Module-Build"
+
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+LIC_FILES_CHKSUM = "file://README;beginline=960;endline=965;md5=624c06db56a2af4d70cf9edc29fcae1b"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/Module-Build-${PV}.tar.gz"
+SRC_URI[md5sum] = "b74c2f6e84b60aad3a3defd30b6f0f4d"
+SRC_URI[sha256sum] = "a6ca15d78244a7b50fdbf27f85c85f4035aa799ce7dd018a0d98b358ef7bc782"
+
+S = "${WORKDIR}/Module-Build-${PV}"
+
+inherit cpan_build
+
+# From:
+# https://github.com/rehsack/meta-cpan/blob/master/recipes-devel/module-build-perl/module-build-perl_0.4216.bb
+#
+do_patch_module_build () {
+    cd ${S}
+    sed -i -e 's,my $interpreter = $self->{properties}{perl};,my $interpreter = "${bindir}/perl";,g' lib/Module/Build/Base.pm
+}
+
+do_patch[postfuncs] += "do_patch_module_build"
+
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libmodule/libmodule-build-tiny-perl_0.039.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libmodule/libmodule-build-tiny-perl_0.039.bb
new file mode 100644
index 0000000..b1a56e5
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libmodule/libmodule-build-tiny-perl_0.039.bb
@@ -0,0 +1,54 @@
+SUMMARY = "Module::Build::Tiny - A tiny replacement for Module::Build"
+DESCRIPTION = "Many Perl distributions use a Build.PL file instead of a \
+Makefile.PL file to drive distribution configuration, build, test and \
+installation. Traditionally, Build.PL uses Module::Build as the underlying \
+build system. This module provides a simple, lightweight, drop-in replacement. \
+Whereas Module::Build has over 6,700 lines of code; this module has less than \
+120, yet supports the features needed by most distributions."
+SECTION = "libs"
+
+HOMEPAGE = "http://search.cpan.org/~leont/Module-Build-Tiny/"
+
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=57b8100f0b648cd37fbc3725fe3c111a"
+
+DEPENDS = "libextutils-config-perl-native libextutils-helpers-perl-native libextutils-installpaths-perl-native"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/Module-Build-Tiny-${PV}.tar.gz"
+SRC_URI[md5sum] = "2332c90c17454107fea3f2614e11a3a9"
+SRC_URI[sha256sum] = "7d580ff6ace0cbe555bf36b86dc8ea232581530cbeaaea09bccb57b55797f11c"
+
+S = "${WORKDIR}/Module-Build-Tiny-${PV}"
+
+inherit cpan_build
+
+do_install () {
+        cpan_build_do_install
+}
+
+RDEPENDS_${PN} = " libextutils-config-perl \
+                   libextutils-helpers-perl \
+                   libextutils-installpaths-perl \
+                   perl-module-xsloader \
+                   perl-module-file-spec \
+                   perl-module-io-handle \
+                   perl-module-tap-harness-env \
+                   perl-module-ipc-open3 \
+                   perl-module-file-path \
+                   perl-module-cpan \
+                   perl-module-extutils-cbuilder \
+                   perl-module-getopt-long \
+                   perl-module-extutils-makemaker \
+                   perl-module-exporter \
+                   perl-module-carp \
+                   perl-module-test-more \
+                   perl-module-text-parsewords \
+                   perl-module-load \
+                   perl-module-file-temp \
+                   perl-module-data-dumper \
+                   perl-module-extutils-parsexs \
+                   perl-module-pod-man \
+                   perl-module-json-pp \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libmodule/libmodule-pluggable-perl_5.2.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libmodule/libmodule-pluggable-perl_5.2.bb
new file mode 100644
index 0000000..aed65d3
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libmodule/libmodule-pluggable-perl_5.2.bb
@@ -0,0 +1,44 @@
+SUMMARY = "Automatically give your module the ability to have plugins"
+DESCRIPTION = "Provides a simple but, hopefully, extensible way of \
+having 'plugins' for your module. Obviously this isn't going to be the \
+be all and end all of solutions but it works for me.\
+\
+Essentially all it does is export a method into your namespace that \
+looks through a search path for .pm files and turn those into class \
+names.\
+\
+Optionally it instantiates those classes for you."
+SECTION = "libs"
+
+AUTHOR = "Simon Wistow <simon@thegestalt.org>"
+HOMEPAGE = "https://github.com/simonwistow/Module-Pluggable"
+
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+LIC_FILES_CHKSUM = "file://README;beginline=322;endline=325;md5=086450ce010f6fda25db0b38fcc41086"
+
+SRCNAME = "Module-Pluggable"
+SRC_URI = "${CPAN_MIRROR}/authors/id/S/SI/SIMONW/${SRCNAME}-${PV}.tar.gz"
+SRC_URI[md5sum] = "87ce2971662efd0b69a81bb4dc9ea76c"
+SRC_URI[sha256sum] = "b3f2ad45e4fd10b3fb90d912d78d8b795ab295480db56dc64e86b9fa75c5a6df"
+
+PR = "r1"
+
+UPSTREAM_CHECK_REGEX = "Module\-Pluggable\-(?P<pver>(\d+\.\d+))"
+UPSTREAM_CHECK_URI = "https://metacpan.org/release/${SRCNAME}"
+
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit cpan
+
+RDEPENDS_${PN} = " perl-module-base \
+    perl-module-deprecate \
+    perl-module-file-basename \
+    perl-module-file-find \
+    perl-module-file-spec \
+    perl-module-file-spec-functions \
+    perl-module-if \
+    perl-module-test-more \
+"
+
+BBCLASSEXTEND = "native"
+
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libmodule/libmodule-runtime-perl_0.016.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libmodule/libmodule-runtime-perl_0.016.bb
new file mode 100644
index 0000000..89f0f70
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libmodule/libmodule-runtime-perl_0.016.bb
@@ -0,0 +1,37 @@
+SUMMARY = "Module::Runtime - runtime module handling"
+DESCRIPTION = "The functions exported by this module deal with runtime \
+handling of Perl modules, which are normally handled at compile time. This \
+module avoids using any other modules, so that it can be used in low-level \
+infrastructure. \
+The parts of this module that work with module names apply the same syntax \
+that is used for barewords in Perl source. In principle this syntax can vary \
+between versions of Perl, and this module applies the syntax of the Perl on \
+which it is running. In practice the usable syntax hasn't changed yet, but \
+there's a good chance of it changing in Perl 5.18. \
+The functions of this module whose purpose is to load modules include \
+workarounds for three old Perl core bugs regarding require. These workarounds \
+are applied on any Perl version where the bugs exist, except for a case where \
+one of the bugs cannot be adequately worked around in pure Perl."
+SECTION = "libs"
+
+HOMEPAGE = "http://search.cpan.org/~zefram/Module-Runtime/"
+
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+LIC_FILES_CHKSUM = "file://README;beginline=36;endline=44;md5=9416434672a57853d6181f3da9094963"
+
+SRCNAME = "Module-Runtime"
+SRC_URI = "${CPAN_MIRROR}/authors/id/Z/ZE/ZEFRAM/${SRCNAME}-${PV}.tar.gz"
+SRC_URI[md5sum] = "d3d47222fa2e3dfcb4526f6cc8437b20"
+SRC_URI[sha256sum] = "68302ec646833547d410be28e09676db75006f4aa58a11f3bdb44ffe99f0f024"
+
+UPSTREAM_CHECK_REGEX = "Module\-Runtime\-(?P<pver>(\d+\.\d+)).tar"
+
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit cpan
+
+RDEPENDS_${PN} = " perl-module-test-more \
+                   perl-module-strict \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libmoo/libmoo-perl_2.003004.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libmoo/libmoo-perl_2.003004.bb
new file mode 100644
index 0000000..a260ab8
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libmoo/libmoo-perl_2.003004.bb
@@ -0,0 +1,44 @@
+SUMMARY = "Moo - Minimalist Object Orientation (with Moose compatibility)"
+DESCRIPTION = "This module us an extremely light-weight subset of \"Moose\" \
+optimised for rapid startup and \"pay only for what you use\"."
+
+SECTION = "libs"
+
+HOMEPAGE = "http://metapan.org/release/Moo/"
+
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+LIC_FILES_CHKSUM = "file://README;beginline=731;endline=776;md5=27efedd175eeaddbd18f4e3572bd72a8"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/H/HA/HAARG/Moo-${PV}.tar.gz"
+SRC_URI[md5sum] = "d4fcd0f240033198571fcc81ce7c5f15"
+SRC_URI[sha256sum] = "f8bbb625f8e963eabe05cff9048fdd72bdd26777404ff2c40bc690f558be91e1"
+
+S = "${WORKDIR}/Moo-${PV}"
+
+inherit cpan
+
+RDEPENDS_${PN} = " libclass-method-modifiers-perl \
+                   libdevel-globaldestruction-perl \
+                   libmodule-runtime-perl \
+                   librole-tiny-perl \
+                   perl-module-constant \
+                   perl-module-exporter \
+                   perl-module-mro \
+                   perl-module-scalar-util \
+"
+
+RPROVIDES_${PN} = " libmethod-inliner-perl \
+                    libmethod-generate-accessor-perl \
+                    libmethod-generate-buildall-perl \
+                    libmethod-generate-constructor-perl \
+                    libmethod-generate-demolishall-perl \
+                    libmoo-perl \
+                    libmoo-handlemoose-perl \
+                    libmoo-handlemoose-fakemetaclass-perl \
+                    libmoo-object-perl \
+                    libmoo-role-perl \
+                    libsub-defer-perl \
+                    libsub-quote-perl \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libnet/files/run-ptest b/meta/meta-openembedded/meta-perl/recipes-perl/libnet/files/run-ptest
new file mode 100644
index 0000000..c9f9ca9
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libnet/files/run-ptest
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+for case in `find t -type f -name '*.t'`; do
+    perl $case >$case.output 2>&1
+    ret=$?
+    cat $case.output
+    if [ $ret -ne 0 ]; then
+        echo "FAIL: ${case%.t}"
+    elif grep -i 'SKIP' $case.output; then
+        echo "SKIP: ${case%.t}"
+    else
+        echo "PASS: ${case%.t}"
+    fi
+
+    rm -f $case.output
+done
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.18.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.18.bb
new file mode 100644
index 0000000..4e0c9c4
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.18.bb
@@ -0,0 +1,66 @@
+DESCRIPTION = "This package contains the DNS.pm module with friends."
+HOMEPAGE = "http://www.net-dns.org/"
+SECTION = "libs"
+LICENSE = "MIT"
+
+LIC_FILES_CHKSUM = "file://README;beginline=252;endline=269;md5=27db37b42cd1a5173a53922d67072bcb"
+
+DEPENDS += "perl"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/N/NL/NLNETLABS/Net-DNS-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "67af7e5c1c339f60c45c1054374bd8ee"
+SRC_URI[sha256sum] = "52ce1494fc9707fd5a60ed71db5cde727157b7f2363787d730d4d1bd9800a9d3"
+
+UPSTREAM_CHECK_REGEX = "Net\-DNS\-(?P<pver>(\d+\.\d+))(?!_\d+).tar"
+
+S = "${WORKDIR}/Net-DNS-${PV}"
+
+EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}"
+
+inherit cpan ptest-perl
+
+RDEPENDS_${PN} = " \
+    libdigest-hmac-perl \
+    perl-module-base \
+    perl-module-constant \
+    perl-module-digest-md5 \
+    perl-module-digest-sha \
+    perl-module-file-spec \
+    perl-module-integer \
+    perl-module-io-file \
+    perl-module-io-select \
+    perl-module-io-socket \
+    perl-module-io-socket-ip \
+    perl-module-mime-base64 \
+    perl-module-scalar-util \
+    perl-module-test-more \
+    perl-module-time-local \
+"
+
+RRECOMMENDS_${PN} += " \
+    libnet-dns-sec-perl \
+"
+
+RDEPENDS_${PN}-ptest += " \
+    perl-module-encode \
+    perl-module-encode-byte \
+    perl-module-extutils-mm \
+    perl-module-extutils-mm-unix \
+    perl-module-overload \
+"
+
+python __anonymous () {
+    # rather than use "find" to determine libc-*.so,
+    # statically export the known paths for glibc and musl
+    import os
+    if d.getVar('TCLIBC') == "glibc":
+        os.environ["LIBC"] = "${STAGING_BASELIBDIR}/libc.so.6"
+    elif d.getVar('TCLIBC') == "musl":
+        os.environ["LIBC"] = "${STAGING_LIBDIR}/libc.so"
+    else:
+       raise bb.parse.SkipRecipe("incompatible with %s C library" %
+                                   d.getVar('TCLIBC'))
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-dns-sec-perl_1.10.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-dns-sec-perl_1.10.bb
new file mode 100644
index 0000000..3fa6294
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-dns-sec-perl_1.10.bb
@@ -0,0 +1,33 @@
+DESCRIPTION = "DNSSEC extensions to Net::DNS"
+HOMEPAGE = "http://www.net-dns.org/"
+SECTION = "libs"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://README;beginline=165;endline=192;md5=6ef523fa09e8c272675839e21de16bde"
+
+SRC_URI = "https://cpan.metacpan.org/authors/id/W/WI/WILLEM/Net-DNS-SEC-${PV}.tar.gz"
+SRC_URI[md5sum] = "ffa55a9898192c9d4c623cb1357eba9b"
+SRC_URI[sha256sum] = "37a47d4def72d7338f3cc7cd807ec19bd9e2ae638ae656fa536cf0314801989e"
+
+DEPENDS += "openssl"
+
+UPSTREAM_CHECK_REGEX = "Net\-DNS\-SEC\-(?P<pver>(\d+\.\d+))(?!_\d+).tar"
+
+S = "${WORKDIR}/Net-DNS-SEC-${PV}"
+
+EXTRA_CPANFLAGS = "INC='-I${STAGING_INCDIR}' LIBS='-L${STAGING_LIBDIR} -lssl -L${STAGING_BASELIBDIR} -lcrypto'"
+
+inherit cpan ptest-perl
+
+RDEPENDS_${PN} = " \
+    libnet-dns-perl \
+    libcrypto \
+    perl-module-dynaloader \
+    perl-module-file-find \
+    perl-module-file-spec \
+    perl-module-io-file \
+    perl-module-mime-base64 \
+    perl-module-test-more \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-ldap-perl_0.65.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-ldap-perl_0.65.bb
new file mode 100644
index 0000000..f2b1f16
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-ldap-perl_0.65.bb
@@ -0,0 +1,29 @@
+SUMMARY = "LDAP Perl module"
+DESCRIPTION = "Net::LDAP is a collection of modules that implements \
+a LDAP services API for Perl programs. The module may be used to \
+search directories or perform maintenance functions such as adding, \
+deleting or modifying entries."
+
+SECTION = "libs"
+
+LICENSE = "Artistic-1.0|GPLv1+"
+LIC_FILES_CHKSUM = "file://README;beginline=3;endline=5;md5=4d6588c2fa0d38ae162f6314d201d89e"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/M/MA/MARSCHAP/perl-ldap-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "d057c8db76913d95c0e460c7bdd98b27"
+SRC_URI[sha256sum] = "5f57dd261dc16ebf942a272ddafe69526598df71151a51916edc37a4f2f23834"
+
+S = "${WORKDIR}/perl-ldap-${PV}"
+
+inherit cpan
+
+do_configure_prepend() {
+    perl -pi -e 's/auto_install_now.*//g' Makefile.PL
+}
+
+RDEPENDS_${PN} = "perl \
+    libconvert-asn1-perl \
+    libio-socket-ssl-perl \
+    libauthen-sasl-perl \
+"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-libidn-perl-0.12/libidn-wr-cross-compile.patch b/meta/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-libidn-perl-0.12/libidn-wr-cross-compile.patch
new file mode 100644
index 0000000..679caa3
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-libidn-perl-0.12/libidn-wr-cross-compile.patch
@@ -0,0 +1,49 @@
+perl-Net-LibIDN: cross-compile
+
+Upstream-Status: Pending
+
+Add support for cross-compile allowing the compiler binary to be
+specified into the perl Makefile instead of using the default 'gcc'.
+
+Signed-off-by: Greg Moffatt <greg.moffatt@windriver.com>
+---
+
+--- perl-Net-LibIDN-0.12.orig/Makefile.PL	2009-02-26 07:09:45.000000000 -0500
++++ perl-Net-LibIDN-0.12/Makefile.PL	2010-10-19 09:34:22.811173965 -0400
+@@ -9,6 +9,7 @@
+ my $options;
+ my $testno=1;
+ my %MakeParams = InitMakeParams();
++my $compiler;
+ 
+ WriteMakefile(%MakeParams);
+ 
+@@ -44,7 +45,8 @@
+ 	(
+ 		"with-libidn=s" => \$libdir,
+ 		"with-libidn-inc=s" => \$incdir,
+-		"disable-tld" => \$disable_tld
++		"disable-tld" => \$disable_tld,
++		"compiler=s" => \$compiler
+ 	);
+ 
+ 	if ($libdir)
+@@ -165,12 +167,17 @@
+ 		return 0;
+ 	}
+ 
+-	foreach my $cc (qw/cc gcc/)
++	foreach my $cc ($compiler, qw/cc gcc/)
+ 	{
+ 		unlink($test);
+ 		system "$cc $cflags -o $test $test.c $ldflags";
+ 		next if ($? >> 8);
+ 
++		if ($compiler == $cc)
++		{
++			return 1;
++		}
++
+ 		if (open(FILE, "./$test|"))
+ 		{
+ 			my $match;
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-libidn-perl_0.12.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-libidn-perl_0.12.bb
new file mode 100644
index 0000000..1ef9f0b
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-libidn-perl_0.12.bb
@@ -0,0 +1,34 @@
+SUMMARY = "Net::LibIDN - Perl bindings for GNU Libidn"
+DESCRIPTION = "\
+Provides bindings for GNU Libidn, a C library for handling Internationalized \
+Domain Names according to IDNA (RFC 3490), in a way very much inspired by \
+Turbo Fredriksson's PHP-IDN. \
+"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPLv1+"
+HOMEPAGE = "http://search.cpan.org/dist/Net-LibIDN/"
+DEPENDS += "libidn"
+# We must need glibc-gconvs to enable charset related functions,
+# such as Net::LibIDN::idn_to_ascii().
+RDEPENDS_${PN}_append_libc-glibc = " glibc-gconvs"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/T/TH/THOR/Net-LibIDN-${PV}.tar.gz"
+SRC_URI[md5sum] = "c3e4de2065009d67bcb1df0afb473e12"
+SRC_URI[sha256sum] = "2f8acc9442b3866ec7dc63cd449fc693ae3e930d5d3e5e9430fbb6f393bdbb17"
+
+SRC_URI += "file://libidn-wr-cross-compile.patch"
+
+LIC_FILES_CHKSUM = "file://README;beginline=42;endline=92;md5=3374ea0369ca3ead6047520477a43147"
+
+S = "${WORKDIR}/Net-LibIDN-${PV}"
+
+EXTRA_CPANFLAGS = "--with-libidn=${STAGING_LIBDIR} --with-libidn-inc=${STAGING_INCDIR} --compiler='${CC}'"
+EXTRA_CPANFLAGS += "--disable-tld"
+
+inherit cpan
+
+FILES_${PN}-dbg += "${libdir}/perl/vendor_perl/*/auto/Net/LibIDN/.debug/"
+
+do_configure_prepend() {
+    rm -rf ${S}/.pc/
+}
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-ssleay-perl/no-exec-on-configure.patch b/meta/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-ssleay-perl/no-exec-on-configure.patch
new file mode 100644
index 0000000..6efa7d8
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-ssleay-perl/no-exec-on-configure.patch
@@ -0,0 +1,33 @@
+--- a/inc/Module/Install/PRIVATE/Net/SSLeay.pm	2018-08-27 14:56:24.788544991 +0200
++++ b/inc/Module/Install/PRIVATE/Net/SSLeay.pm	2018-08-27 15:00:12.847266331 +0200
+@@ -24,20 +24,7 @@
+     $self->requires_external_cc;
+ 
+     my $prefix = $self->find_openssl_prefix;
+-    my $exec   = $self->find_openssl_exec($prefix);
+-
+-    unless (-x $exec) {
+-        print <<EOM;
+-*** Could not find OpenSSL
+-    If it's already installed, please set the OPENSSL_PREFIX environment
+-    variable accordingly. If it isn't installed yet, get the latest version
+-    from http://www.openssl.org/.
+-EOM
+-        exit 0; # according http://wiki.cpantesters.org/wiki/CPANAuthorNotes this is best-practice when "missing library"
+-    }
+-
+-    $self->check_openssl_version($prefix, $exec);
+-    my $opts = $self->ssleay_get_build_opts($prefix, $exec);
++    my $opts = $self->ssleay_get_build_opts($prefix);
+ 
+     $self->makemaker_args(
+         CCCDLFLAGS => $opts->{cccdlflags},
+@@ -58,7 +45,7 @@
+ }
+ 
+ sub ssleay_get_build_opts {
+-    my ($self, $prefix, $exec) = @_;
++    my ($self, $prefix) = @_;
+ 
+     my $opts = {
+         lib_links  => [],
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-ssleay-perl_1.85.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-ssleay-perl_1.85.bb
new file mode 100644
index 0000000..dccef16
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-ssleay-perl_1.85.bb
@@ -0,0 +1,49 @@
+SUMMARY = "Net::SSLeay - Perl extension for using OpenSSL"
+DESCRIPTION = "This module offers some high level convenience functions for accessing \
+web pages on SSL servers (for symmetry, same API is offered for \
+accessing http servers, too), a sslcat() function for writing your own \
+clients, and finally access to the SSL api of SSLeay/OpenSSL package \
+so you can write servers or clients for more complicated applications."
+HOMEPAGE = "http://search.cpan.org/dist/Net-SSLeay/"
+SECTION = "libs"
+
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+LIC_FILES_CHKSUM = "file://README;beginline=274;endline=294;md5=67d67095d83e339da538a082fad5f38e"
+
+DEPENDS = "openssl zlib openssl-native"
+RDEPENDS_${PN} += "\
+    libssl \
+    libcrypto \
+    perl-module-carp \
+    perl-module-errno \
+    perl-module-extutils-makemaker \
+    perl-module-mime-base64 \
+    perl-module-socket \
+    zlib \
+"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/M/MI/MIKEM/Net-SSLeay-${PV}.tar.gz \
+           file://no-exec-on-configure.patch \
+           file://run-ptest \
+          "
+SRC_URI[md5sum] = "d602bdce4e0531c6efc276e3e429ca69"
+SRC_URI[sha256sum] = "9d8188b9fb1cae3bd791979c20554925d5e94a138d00414f1a6814549927b0c8"
+
+S = "${WORKDIR}/Net-SSLeay-${PV}"
+
+inherit cpan ptest
+
+do_configure() {
+    export OPENSSL_PREFIX="${STAGING_EXECPREFIXDIR}"
+    cpan_do_configure
+}
+
+do_install_ptest() {
+    cp -r ${B}/t ${D}${PTEST_PATH}
+}
+
+BBCLASSEXTEND = "native"
+
+FILES_${PN}-dbg =+ "${libdir}/perl/vendor_perl/*/auto/Net/SSLeay/.debug/"
+
+RDEPENDS_${PN}-ptest = " perl"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-telnet-perl_3.04.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-telnet-perl_3.04.bb
new file mode 100644
index 0000000..652e8c9
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-telnet-perl_3.04.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Net-Telnet Perl module"
+DESCRIPTION = "Net::Telnet allows you to make client connections to a TCP port and do \
+network I/O, especially to a port using the TELNET protocol. Simple I/O \
+methods such as print, get, and getline are provided. More sophisticated \
+interactive features are provided because connecting to a TELNET port \
+ultimately means communicating with a program designed for human interaction. \
+These interactive features include the ability to specify a time-out and to \
+wait for patterns to appear in the input stream, such as the prompt from a \
+shell."
+
+HOMEPAGE = "http://search.cpan.org/dist/Net-Telnet/"
+SECTION = "Development/Libraries"
+
+LICENSE = "Artistic-1.0|GPLv1+"
+LIC_FILES_CHKSUM = "file://README;beginline=4;endline=7;md5=3fd238bfb6ee1810cb15d5d95e07b0f5"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/J/JR/JROGERS/Net-Telnet-${PV}.tar.gz"
+SRC_URI[md5sum] = "d2514080116c1b0fa5f96295c84538e3"
+SRC_URI[sha256sum] = "e64d567a4e16295ecba949368e7a6b8b5ae2a16b3ad682121d9b007dc5d2a37a"
+
+S = "${WORKDIR}/Net-Telnet-${PV}"
+
+inherit cpan
+
+RDEPENDS_${PN} = "perl"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libproc/libproc-waitstat-perl_1.00.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libproc/libproc-waitstat-perl_1.00.bb
new file mode 100644
index 0000000..1599e61
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libproc/libproc-waitstat-perl_1.00.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Interpret and act on wait() status values"
+DESCRIPTION = "This module contains functions for interpreting and acting \
+on wait status values."
+
+HOMEPAGE = "http://search.cpan.org/~rosch/Proc-WaitStat/"
+SECTION = "libraries"
+
+LICENSE = "Artistic-1.0|GPLv1+"
+LIC_FILES_CHKSUM = "file://README;beginline=21;endline=23;md5=f36550f59a0ae5e6e3b0be6a4da60d26"
+
+RDEPENDS_${PN} += "perl libipc-signal-perl"
+
+S = "${WORKDIR}/Proc-WaitStat-${PV}"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/R/RO/ROSCH/Proc-WaitStat-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "b911bd579b6b142391b21de1efa30c95"
+SRC_URI[sha256sum] = "d07563f5e787909d16e7390241e877f49ab739b1de9d0e2ea1a41bd0bf4474bc"
+
+inherit cpan
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/librole/librole-tiny-perl_2.000006.bb b/meta/meta-openembedded/meta-perl/recipes-perl/librole/librole-tiny-perl_2.000006.bb
new file mode 100644
index 0000000..c2755ea
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/librole/librole-tiny-perl_2.000006.bb
@@ -0,0 +1,29 @@
+SUMMARY = "Role::Tiny - Roles. Like a nouvelle cousine portion size of Moose."
+DESCRIPTION = "\"Role::Tiny\" is a minimalist role composition tool."
+
+SECTION = "libs"
+
+HOMEPAGE = "https://metacpan.org/pod/Role::Tiny"
+
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+LIC_FILES_CHKSUM = "file://README;beginline=177;endline=214;md5=26df7e7c20551fb1906e2286624f0b71"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/H/HA/HAARG/Role-Tiny-${PV}.tar.gz"
+SRC_URI[md5sum] = "7c277728a7e090f64b495857cadfed08"
+SRC_URI[sha256sum] = "cc73418c904a0286ecd8915eac11f5be2a8d1e17ea9cb54c9116b0340cd3e382"
+
+S = "${WORKDIR}/Role-Tiny-${PV}"
+
+inherit cpan
+
+RDEPENDS_${PN} = " perl-module-exporter \
+                   perl-module-strict \
+                   perl-module-test-more \
+                   perl-module-warnings \
+"
+
+RPROVIDES_${PN} = " librole-tiny-perl \
+                    librole-tiny-with-perl \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libstrictures/libstrictures-perl_2.000003.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libstrictures/libstrictures-perl_2.000003.bb
new file mode 100644
index 0000000..a6808d3
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libstrictures/libstrictures-perl_2.000003.bb
@@ -0,0 +1,45 @@
+SUMMARY = "strictures - turn on strict and make all warnings fatal"
+DESCRIPTION = "I've been writing the equivalent of this module at the top \
+of my code for about a year now. I figured it was time to make it shorter. \
+\
+Things like the importer in \"use Moose\" don't help me because they turn \
+warnings on but don't make them fatal -- which from my point of view is \
+useless because I want an exception to tell me my code isn't warnings-clean. \
+\
+Any time I see a warning from my code, that indicates a mistake. \
+\
+Any time my code encounters a mistake, I want a crash -- not spew to STDERR \
+and then unknown (and probably undesired) subsequent behaviour. \
+\
+I also want to ensure that obvious coding mistakes, like indirect object \
+syntax (and not so obvious mistakes that cause things to accidentally compile \
+as such) get caught, but not at the cost of an XS dependency and not at the \
+cost of blowing things up on another machine. \
+\
+Therefore, \"strictures\" turns on additional checking, but only when it \
+thinks it's running in a test file in a VCS checkout -- although if this \
+causes undesired behaviour this can be overridden by setting the \
+PERL_STRICTURES_EXTRA environment variable."
+
+SECTION = "libs"
+
+HOMEPAGE = "https://metacpan.org/pod/strictures"
+
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+LIC_FILES_CHKSUM = "file://README;beginline=246;endline=262;md5=43be558cf4f19823cdd6af22135cf5f8"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/H/HA/HAARG/strictures-${PV}.tar.gz"
+SRC_URI[md5sum] = "78244cfab6168dcf196370d1e2309536"
+SRC_URI[sha256sum] = "27f8ea096a521e9754d36ea32889c2cda28346d04e3e399e7ea118d182dbaf22"
+
+S = "${WORKDIR}/strictures-${PV}"
+
+inherit cpan
+
+RDEPENDS_${PN} = " perl-module-carp \
+                   perl-module-strict \
+                   perl-module-test-more \
+                   perl-module-warnings \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libsub/libsub-exporter-progressive-perl_0.001013.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libsub/libsub-exporter-progressive-perl_0.001013.bb
new file mode 100644
index 0000000..64d19c0
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libsub/libsub-exporter-progressive-perl_0.001013.bb
@@ -0,0 +1,30 @@
+SUMMARY = "Sub::Exporter::Progressive - Only use Sub::Exporter if you need it."
+DESCRIPTION = "\"Sub::Exporter\" is an incredibly powerful module, but with \
+that power comes great responsibility, er- as well as some runtime penalties. \
+This module is a \"Sub::Exporter\" wrapper that will let your users just use \
+\"Exporter\" if all they are doing is picking exports, but use \
+\"Sub::Exporter\" if your users try to use \"Sub::Exporter's\" more advanced \
+features, like renaming exports, if they try to use them."
+
+SECTION = "libs"
+
+HOMEPAGE = "https://metacpan.org/pod/Sub-Exporter-Progressive/"
+
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=003fa970662359a43ac2c2961108b0f1"
+
+DEPENDS_${PN} = " perl-module-test-more"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/F/FR/FREW/Sub-Exporter-Progressive-${PV}.tar.gz"
+SRC_URI[md5sum] = "72cf6acdd2a0a8b105821a4db98e4ebe"
+SRC_URI[sha256sum] = "d535b7954d64da1ac1305b1fadf98202769e3599376854b2ced90c382beac056"
+
+S = "${WORKDIR}/Sub-Exporter-Progressive-${PV}"
+
+inherit cpan
+
+RDEPENDS_${PN} += " perl-module-carp \
+                    perl-module-list-util \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libterm/libterm-readkey-perl_2.37.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libterm/libterm-readkey-perl_2.37.bb
new file mode 100644
index 0000000..6b76682
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libterm/libterm-readkey-perl_2.37.bb
@@ -0,0 +1,36 @@
+SUMMARY = "Term::ReadKey - A perl module for simple terminal control."
+DESCRIPTION = "Term::ReadKey is a compiled perl module dedicated to providing simple \
+control over terminal driver modes (cbreak, raw, cooked, etc.,) support \
+for non-blocking reads, if the architecture allows, and some generalized \
+handy functions for working with terminals. One of the main goals is to \
+have the functions as portable as possible, so you can just plug in "use \
+Term::ReadKey" on any architecture and have a good likelihood of it \
+working."
+HOMEPAGE = "http://search.cpan.org/~jstowe/TermReadKey-${PV}"
+SECTION = "libraries"
+
+LICENSE = "Artistic-1.0 | GPLv1+"
+LIC_FILES_CHKSUM = "file://README;md5=c275db663c8489a5709ebb22b185add5"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/J/JS/JSTOWE/TermReadKey-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "e8ea15c16333ac4f8d146d702e83cc0c"
+SRC_URI[sha256sum] = "4a9383cf2e0e0194668fe2bd546e894ffad41d556b41d2f2f577c8db682db241"
+
+S = "${WORKDIR}/TermReadKey-${PV}"
+
+# It needs depend on native to let dynamic loader use native modules
+# rather than target ones.
+DEPENDS = "libterm-readkey-perl-native"
+
+inherit cpan
+
+do_configure_append () {
+    # Hack the dynamic module loader so that it use native modules since it can't load
+    # the target ones.
+    if [ "${BUILD_SYS}" != "${HOST_SYS}" ]; then
+        sed -i -e "s#-I\$(INST_ARCHLIB)#-I${STAGING_BINDIR_NATIVE}/perl-native/perl/vendor_perl/${@get_perl_version(d)}#g" Makefile
+    fi
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libtest/libtest-harness-perl_3.42.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libtest/libtest-harness-perl_3.42.bb
new file mode 100644
index 0000000..c9ba594
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libtest/libtest-harness-perl_3.42.bb
@@ -0,0 +1,120 @@
+# NOTE:
+#     You should use perl-module-test-harness instead of this package,
+#     unless you specifically need a newer version than what is provided
+#     by perl in oe-core.
+
+SUMMARY = "Test::Harness - Run Perl standard test scripts with statistics"
+DESCRIPTION = "Although, for historical reasons, the Test::Harness \
+distribution takes its name from this module it now exists only to provide \
+TAP::Harness with an interface that is somewhat backwards compatible \
+with Test::Harness 2.xx. If you're writing new code consider using \
+TAP::Harness directly instead. \
+\
+Emulation is provided for runtests and execute_tests but the \
+pluggable 'Straps' interface that previous versions of Test::Harness \
+supported is not reproduced here. Straps is now available as a stand \
+alone module: Test::Harness::Straps. \
+\
+See TAP::Parser, TAP::Harness for the main documentation for this \
+distribution."
+
+SECTION = "libs"
+
+HOMEPAGE = "http://testanything.org"
+
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+LIC_FILES_CHKSUM = "file://README;beginline=29;endline=30;md5=b08db4360eec119e875dddd7cb8a5ddd"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/Test-Harness-${PV}.tar.gz"
+SRC_URI[md5sum] = "c794906473f88d6b74194e2d56f16bd6"
+SRC_URI[sha256sum] = "0fd90d4efea82d6e262e6933759e85d27cbcfa4091b14bf4042ae20bab528e53"
+
+UPSTREAM_CHECK_REGEX = "Test\-Harness\-(?P<pver>(\d+\.\d+))(?!_\d+).tar"
+
+S = "${WORKDIR}/Test-Harness-${PV}"
+
+inherit cpan ptest-perl
+
+RDEPENDS_${PN} += "\
+    perl-module-benchmark \
+"
+
+RPROVIDES_${PN} += "libapp-prove-perl \
+                    libapp-prove-state-perl \
+                    libapp-prove-state-result-perl \
+                    libapp-prove-state-result-test-perl \
+                    libtap-base-perl \
+                    libtap-formatter-base-perl \
+                    libtap-formatter-color-perl \
+                    libtap-formatter-console-perl \
+                    libtap-formatter-console-parallelsession-perl \
+                    libtap-formatter-console-session-perl \
+                    libtap-formatter-file-perl \
+                    libtap-formatter-file-session-perl \
+                    libtap-formatter-session-perl \
+                    libtap-harness-perl \
+                    libtap-harness-env-perl \
+                    libtap-object-perl \
+                    libtap-parser-perl \
+                    libtap-parser-aggregator-perl \
+                    libtap-parser-grammar-perl \
+                    libtap-parser-iterator-perl \
+                    libtap-parser-iterator-array-perl \
+                    libtap-parser-iterator-process-perl \
+                    libtap-parser-iterator-stream-perl \
+                    libtap-parser-iteratorfactory-perl \
+                    libtap-parser-multiplexer-perl \
+                    libtap-parser-result-perl \
+                    libtap-parsser-result-bailout-perl \
+                    libtap-parser-result-comment-perl \
+                    libtap-parser-result-plan-perl \
+                    libtap-parser-result-pragma-perl \
+                    libtap-parser-result-test-perl \
+                    libtap-parser-result-unknown-perl \
+                    libtap-parser-result-version-perl \
+                    libtap-parser-result-yaml-perl \
+                    libtap-parser-resultfactory-perl \
+                    libtap-parser-scheduler-perl \
+                    libtap-parser-scheduler-job-perl \
+                    libtap-parser-scheduler-spinner-perl \
+                    libtap-parser-source-perl \
+                    libtap-parser-sourcehandler-perl \
+                    libtap-parser-sourcehandler-executable-perl \
+                    libtap-parser-sourcehandler-file-perl \
+                    libtap-parser-sourcehandler-handle-perl \
+                    libtap-parser-sourcehandler-perl-perl \
+                    libtap-parser-sourcehandler-rawtap-perl \
+                    libtap-parser-yamlish-reader-perl \
+                    libtap-parser-yamlish-writer-perl \
+                    "
+
+do_install_prepend() {
+	# these tests are inappropriate on target
+	rm -rf ${B}/t/000-load.t
+	rm -rf ${B}/t/state.t
+	# these tests require "-T" (taint) option on command line
+	rm -rf ${B}/t/aggregator.t
+	rm -rf ${B}/t/bailout.t
+	rm -rf ${B}/t/base.t
+	rm -rf ${B}/t/callbacks.t
+	rm -rf ${B}/t/errors.t
+	rm -rf ${B}/t/nested.t
+	rm -rf ${B}/t/object.t
+	rm -rf ${B}/t/premature-bailout.t
+	rm -rf ${B}/t/results.t
+	rm -rf ${B}/t/streams.t
+	rm -rf ${B}/t/yamlish-output.t
+	rm -rf ${B}/t/compat/version.t
+}
+
+do_install_append() {
+	install -d ${D}/usr/local/bin
+	# do not clobber perl-misc /usr/bin/prove
+	install -m 0755 ${B}/bin/prove ${D}/usr/local/bin/
+	rm -rf ${D}${bindir}/prove
+	rm -rf ${D}${bindir}
+}
+
+FILES_${PN} += "/usr/local/bin/prove"
+
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libtext/libtext-charwidth-perl_0.04.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libtext/libtext-charwidth-perl_0.04.bb
new file mode 100644
index 0000000..9057ae7
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libtext/libtext-charwidth-perl_0.04.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Text::CharWidth - Get number of occupied columns of a string on terminal."
+DESCRIPTION = "This module supplies features similar as wcwidth(3) and wcswidth(3) \
+in C language. \
+Characters have its own width on terminal depending on locale. For \
+example, ASCII characters occupy one column per character, east Asian \
+fullwidth characters (like Hiragana or Han Ideograph) occupy two columns \
+per character, and combining characters (apperaring in ISO-8859-11 Thai, \
+Unicode, and so on) occupy zero columns per character. mbwidth() gives the \
+width of the first character of the given string and mbswidth() gives the \
+width of the whole given string."
+SECTION = "libs"
+
+HOMEPAGE = "http://search.cpan.org/~kubota/Text-CharWidth-${PV}/"
+
+LICENSE = "Artistic-1.0 | GPLv1+"
+LIC_FILES_CHKSUM = "file://README;md5=d8d54c8c500cbdd57a4c15911d9d96db"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/K/KU/KUBOTA/Text-CharWidth-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "37a723df0580c0758c0ee67b37336c15"
+SRC_URI[sha256sum] = "abded5f4fdd9338e89fd2f1d8271c44989dae5bf50aece41b6179d8e230704f8"
+
+S = "${WORKDIR}/Text-CharWidth-${PV}"
+
+inherit cpan
+
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libtext/libtext-diff-perl_1.41.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libtext/libtext-diff-perl_1.41.bb
new file mode 100644
index 0000000..a4c246e
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libtext/libtext-diff-perl_1.41.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Text::Diff - Perform diffs on files and record sets"
+DESCRIPTION = "diff() provides a basic set of services akin to the GNU diff \
+utility. It is not anywhere near as feature complete as GNU diff, but it is \
+better integrated with Perl and available on all platforms. It is often \
+faster than shelling out to a system's diff executable for small files, \
+and generally slower on larger files."
+SECTION = "libs"
+
+HOMEPAGE = "http://search.cpan.org/~ovid/Text-Diff/"
+
+LICENSE = "Artistic-1.0 | GPL-2.0+"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=385c55653886acac3821999a3ccd17b3"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/O/OV/OVID/Text-Diff-${PV}.tar.gz"
+SRC_URI[md5sum] = "30d56e6dd5551ca16b8e16cc7299dc21"
+SRC_URI[sha256sum] = "a67f50a48e313c1680cc662109ce5f913ea71454db355d0cf4db87ac89d2d2fa"
+
+S = "${WORKDIR}/Text-Diff-${PV}"
+
+inherit cpan
+
+RDEPENDS_${PN} = " libalgorithm-diff-perl \
+                   perl-module-extutils-makemaker \
+                   perl-module-exporter \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libtext/libtext-iconv-perl_1.7.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libtext/libtext-iconv-perl_1.7.bb
new file mode 100644
index 0000000..275ccb8
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libtext/libtext-iconv-perl_1.7.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Perl interface to iconv() codeset conversion function"
+DESCRIPTION = "\
+The Text::Iconv module provides a Perl interface to the iconv() \
+function as defined by the Single UNIX Specification. The convert() \
+method converts the encoding of characters in the input string from \
+the fromcode codeset to the tocode codeset, and returns the result. \
+Settings of fromcode and tocode and their permitted combinations are \
+implementation-dependent. Valid values are specified in the system \
+documentation."
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+LIC_FILES_CHKSUM = "file://README;beginline=3;endline=6;md5=fadf2919c7128e887d26b4d905f90649"
+RRECOMMENDS_${PN}_append_libc-glibc = " glibc-gconvs"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/M/MP/MPIOTR/Text-Iconv-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "81b26e069eaebb084e91ea3c009b67ae"
+SRC_URI[sha256sum] = "5b80b7d5e709d34393bcba88971864a17b44a5bf0f9e4bcee383d029e7d2d5c3"
+
+S = "${WORKDIR}/Text-Iconv-${PV}"
+
+inherit cpan
+
+FILES_${PN}-dbg += "${libdir}/perl/vendor_perl/*/auto/Text/Iconv/.debug/"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libtext/libtext-wrapi18n-perl_0.06.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libtext/libtext-wrapi18n-perl_0.06.bb
new file mode 100644
index 0000000..b2c239d
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libtext/libtext-wrapi18n-perl_0.06.bb
@@ -0,0 +1,32 @@
+SUMMARY = "Text::WrapI18N - Line wrapping module with support for multibyte, \
+fullwidth, and combining characters and languages without whitespaces \
+between words."
+DESCRIPTION = "This module intends to be a better Text::Wrap module. This module is \
+needed to support multibyte character encodings such as UTF-8, EUC-JP, \
+EUC-KR, GB2312, and Big5. This module also supports characters with \
+irregular widths, such as combining characters (which occupy zero columns \
+on terminal, like diacritical marks in UTF-8) and fullwidth characters \
+(which occupy two columns on terminal, like most of east Asian \
+characters). Also, minimal handling of languages which doesn't use \
+whitespaces between words (like Chinese and Japanese) is supported."
+SECTION = "libs"
+
+HOMEPAGE = "http://search.cpan.org/~kubota/Text-WrapI18N-${PV}/"
+
+LICENSE = "Artistic-1.0 | GPLv1+"
+LIC_FILES_CHKSUM = "file://README;md5=080862e1e40cdcddef4393e137285858"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/K/KU/KUBOTA/Text-WrapI18N-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "0799c16a00926e6c18d400c2e2861d5f"
+SRC_URI[sha256sum] = "4bd29a17f0c2c792d12c1005b3c276f2ab0fae39c00859ae1741d7941846a488"
+
+S = "${WORKDIR}/Text-WrapI18N-${PV}"
+
+DEPENDS = "libtext-charwidth-perl"
+
+RDEPENDS_${PN} = "libtext-charwidth-perl"
+
+inherit cpan
+
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libunicode/libunicode-linebreak-perl_2017.004.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libunicode/libunicode-linebreak-perl_2017.004.bb
new file mode 100644
index 0000000..5ccb411
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libunicode/libunicode-linebreak-perl_2017.004.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Unicode::LineBreak - UAX #14 Unicode Line Breaking Algorithm."
+DESCRIPTION = "Unicode::LineBreak performs Line Breaking Algorithm described in Unicode \
+Standard Annex #14 [UAX #14]. East_Asian_Width informative property \
+defined by Annex #11 [UAX #11] will be concerned to determine breaking \
+positions."
+SECTION = "libs"
+
+HOMEPAGE = "http://search.cpan.org/~nezumi/Unicode-LineBreak-${PV}/"
+
+LICENSE = "Artistic-1.0 | GPLv1+"
+LIC_FILES_CHKSUM = "file://README;md5=77241abd74fec561b3f3de1b44c0241b"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/N/NE/NEZUMI/Unicode-LineBreak-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "de7672227922260ac92d20bbad29660b"
+SRC_URI[sha256sum] = "655bc3c4cb60ad0770d97816716cfe322f24e602c70e595f5941dfa02c40cb76"
+
+S = "${WORKDIR}/Unicode-LineBreak-${PV}"
+
+DEPENDS = "libsombok3 libmime-charset-perl"
+
+RDEPENDS_${PN} = "libsombok3 libmime-charset-perl"
+
+inherit cpan
+
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libxml/libxml-filter-buffertext-perl_1.01.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libxml/libxml-filter-buffertext-perl_1.01.bb
new file mode 100644
index 0000000..77dd616
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libxml/libxml-filter-buffertext-perl_1.01.bb
@@ -0,0 +1,25 @@
+SUMMARY = "XML::Filter::BufferText - Filter to put all characters() in one event"
+DESCRIPTION = "\
+The XML::Filter::BufferText module is a very simple filter.  One common \
+cause of grief (and programmer error) is that XML parsers aren't required \
+to provide character events in one chunk.  They can, but are not forced \
+to, and most don't.  This filter does the trivial but oft-repeated task \
+of putting all characters into a single event. \
+"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPLv1+"
+HOMEPAGE = "http://search.cpan.org/dist/XML-Filter-BufferText/"
+DEPENDS += "libxml-sax-perl-native"
+RDEPENDS_${PN} += "libxml-sax-perl"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/R/RB/RBERJON/XML-Filter-BufferText-${PV}.tar.gz"
+SRC_URI[md5sum] = "2992c0387632583b966ab9c965b25512"
+SRC_URI[sha256sum] = "8fd2126d3beec554df852919f4739e689202cbba6a17506e9b66ea165841a75c"
+
+LIC_FILES_CHKSUM = "file://BufferText.pm;beginline=88;endline=90;md5=497aa6d79cc84c3d769a2a0016bee928"
+
+S = "${WORKDIR}/XML-Filter-BufferText-${PV}"
+
+inherit cpan
+
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libxml/libxml-libxml-perl/disable-libxml2-check.patch b/meta/meta-openembedded/meta-perl/recipes-perl/libxml/libxml-libxml-perl/disable-libxml2-check.patch
new file mode 100644
index 0000000..a8e7cc1
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libxml/libxml-libxml-perl/disable-libxml2-check.patch
@@ -0,0 +1,79 @@
+Do not use the _libxml_check_lib() on cross-compile
+
+Upstream-Status: Inappropriate [configuration] 
+
+xml2 have been added into package's DEPENDS, so not need to use the
+_libxml_check_lib() to check it again, and _libxml_check_lib() always
+return false on cross-compile environment
+
+Signed-off-by: Roy Li <rongqing.li@windriver.com>
+---
+ Makefile.PL |   52 ++++++++++++++++++++++++++--------------------------
+ 1 file changed, 26 insertions(+), 26 deletions(-)
+
+diff --git a/Makefile.PL b/Makefile.PL
+index c0485f1..09c676b 100644
+--- a/Makefile.PL
++++ b/Makefile.PL
+@@ -411,32 +411,32 @@ sub _libxml_check_lib {
+     }
+ }
+ 
+-print "Checking for ability to link against xml2...";
+-if ( _libxml_check_lib('xml2') ) {
+-    print "yes\n";
+-}
+-else {
+-    print "no\n";
+-    print "Checking for ability to link against libxml2...";
+-    if ( _libxml_check_lib('libxml2')) {
+-        print "yes\n";
+-    }
+-    else {
+-        print STDERR <<"DEATH";
+-libxml2, zlib, and/or the Math library (-lm) have not been found.
+-Try setting LIBS and INC values on the command line
+-Or get libxml2 from
+-  http://xmlsoft.org/
+-If you install via RPMs, make sure you also install the -devel
+-RPMs, as this is where the headers (.h files) are.
+-
+-Also, you may try to run perl Makefile.PL with the DEBUG=1 parameter
+-to see the exact reason why the detection of libxml2 installation
+-failed or why Makefile.PL was not able to compile a test program.
+-DEATH
+-        exit 0; # 0 recommended by http://cpantest.grango.org (Notes for CPAN Authors)
+-    }
+-}
++#print "Checking for ability to link against xml2...";
++#if ( _libxml_check_lib('xml2') ) {
++#    print "yes\n";
++#}
++#else {
++#    print "no\n";
++#    print "Checking for ability to link against libxml2...";
++#    if ( _libxml_check_lib('libxml2')) {
++#        print "yes\n";
++#    }
++#    else {
++#        print STDERR <<"DEATH";
++#libxml2, zlib, and/or the Math library (-lm) have not been found.
++#Try setting LIBS and INC values on the command line
++#Or get libxml2 from
++#  http://xmlsoft.org/
++#If you install via RPMs, make sure you also install the -devel
++#RPMs, as this is where the headers (.h files) are.
++#
++#Also, you may try to run perl Makefile.PL with the DEBUG=1 parameter
++#to see the exact reason why the detection of libxml2 installation
++#failed or why Makefile.PL was not able to compile a test program.
++#DEATH
++#        exit 0; # 0 recommended by http://cpantest.grango.org (Notes for CPAN Authors)
++#    }
++#}
+ 
+ # -------------------------------------------------------------------------- #
+ # _NOW_ write the Makefile
+-- 
+1.7.10.4
+
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libxml/libxml-libxml-perl/fix-CATALOG-conditional-compile.patch b/meta/meta-openembedded/meta-perl/recipes-perl/libxml/libxml-libxml-perl/fix-CATALOG-conditional-compile.patch
new file mode 100644
index 0000000..1dd9fb3
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libxml/libxml-libxml-perl/fix-CATALOG-conditional-compile.patch
@@ -0,0 +1,31 @@
+[PATCH] Fix a compile error 
+
+Upstream-Status: Pending
+
+Fix a compile error by conditional using 'catal' since catal
+is only defined when LIBXML_CATALOG_ENABLED is enabled.
+
+Signed-off-by: Roy Li <rongqing.li@windriver.com>
+---
+ LibXML.xs |    2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/LibXML.xs b/LibXML.xs
+index 66da04b..45da681 100644
+--- a/LibXML.xs
++++ b/LibXML.xs
+@@ -2777,9 +2777,11 @@ _default_catalog( self, catalog )
+         xmlCatalogPtr catal = INT2PTR(xmlCatalogPtr,SvIV(SvRV(catalog)));
+ #endif
+     INIT:
++#ifdef LIBXML_CATALOG_ENABLED
+         if ( catal == NULL ) {
+             croak( "empty catalog\n" );
+         }
++#endif
+     CODE:
+         warn( "this feature is not implemented" );
+         RETVAL = 0;
+-- 
+1.7.10.4
+
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libxml/libxml-libxml-perl/using-DOCB-conditional.patch b/meta/meta-openembedded/meta-perl/recipes-perl/libxml/libxml-libxml-perl/using-DOCB-conditional.patch
new file mode 100644
index 0000000..d255ec7
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libxml/libxml-libxml-perl/using-DOCB-conditional.patch
@@ -0,0 +1,91 @@
+[PATCH] Fix a compile error 
+
+Upstream-Status: Pending
+
+by conditional using 'XML_DOCB_DOCUMENT_NODE' since it is only
+defined when LIBXML_DOCB_ENABLED is enabled in xmlversion.h.
+
+Signed-off-by: Roy Li <rongqing.li@windriver.com>
+---
+ LibXML.xs        |    9 +-
+ dom.c            |    2 +
+ perl-libxml-mm.c |    4 +
+ 4 files changed, 678 insertions(+), 658 deletions(-)
+
+diff --git a/LibXML.xs b/LibXML.xs
+index b299ba4..66da04b 100644
+--- a/LibXML.xs
++++ b/LibXML.xs
+@@ -5026,7 +5026,9 @@ addChild( self, nNode )
+             XSRETURN_UNDEF;
+         case XML_DOCUMENT_NODE :
+         case XML_HTML_DOCUMENT_NODE :
++#ifdef LIBXML_DOCB_ENABLED
+         case XML_DOCB_DOCUMENT_NODE :
++#endif
+             croak("addChild: HIERARCHY_REQUEST_ERR\n");
+             XSRETURN_UNDEF;
+         case XML_NOTATION_NODE :
+@@ -5286,7 +5288,9 @@ _toStringC14N(self, comments=0, xpath=&PL_sv_undef, exclusive=0, inc_prefix_list
+         if ( nodepath == NULL
+              && self->type != XML_DOCUMENT_NODE
+              && self->type != XML_HTML_DOCUMENT_NODE
++#ifdef LIBXML_DOCB_ENABLED
+              && self->type != XML_DOCB_DOCUMENT_NODE
++#endif
+            ) {
+             if (comments)
+ 	      nodepath = xmlStrdup( (const xmlChar *) "(. | .//node() | .//@* | .//namespace::*)" );
+@@ -5297,7 +5301,10 @@ _toStringC14N(self, comments=0, xpath=&PL_sv_undef, exclusive=0, inc_prefix_list
+         if ( nodepath != NULL ) {
+             if ( self->type == XML_DOCUMENT_NODE
+                  || self->type == XML_HTML_DOCUMENT_NODE
+-                 || self->type == XML_DOCB_DOCUMENT_NODE ) {
++#ifdef LIBXML_DOCB_ENABLED
++                 || self->type == XML_DOCB_DOCUMENT_NODE
++#endif
++	    ) {
+                 refNode = xmlDocGetRootElement( self->doc );
+             }
+ 	    if (SvOK(xpath_context)) {
+diff --git a/dom.c b/dom.c
+index 87eb61d..cbd391b 100644
+--- a/dom.c
++++ b/dom.c
+@@ -654,7 +654,9 @@ domName(xmlNodePtr node) {
+ 
+     case XML_DOCUMENT_NODE :
+     case XML_HTML_DOCUMENT_NODE :
++#ifdef LIBXML_DOCB_ENABLED
+     case XML_DOCB_DOCUMENT_NODE :
++#endif
+         name = (const xmlChar *) "#document";
+         break;
+ 
+diff --git a/perl-libxml-mm.c b/perl-libxml-mm.c
+index d162b06..7ac5436 100644
+--- a/perl-libxml-mm.c
++++ b/perl-libxml-mm.c
+@@ -331,7 +331,9 @@ PmmNewNode(xmlNodePtr node)
+         switch ( node->type ) {
+         case XML_DOCUMENT_NODE:
+         case XML_HTML_DOCUMENT_NODE:
++#ifdef LIBXML_DOCB_ENABLED
+         case XML_DOCB_DOCUMENT_NODE:
++#endif
+             proxy = (ProxyNodePtr)xmlMalloc(sizeof(struct _DocProxyNode));
+             if (proxy != NULL) {
+                 ((DocProxyNodePtr)proxy)->psvi_status = Pmm_NO_PSVI;
+@@ -550,7 +552,9 @@ PmmNodeToSv( xmlNodePtr node, ProxyNodePtr owner )
+         switch ( node->type ) {
+         case XML_DOCUMENT_NODE:
+         case XML_HTML_DOCUMENT_NODE:
++#ifdef LIBXML_DOCB_ENABLED
+         case XML_DOCB_DOCUMENT_NODE:
++#endif
+             if ( ((xmlDocPtr)node)->encoding != NULL ) {
+                 SetPmmENCODING(dfProxy, (int)xmlParseCharEncoding( (const char*)((xmlDocPtr)node)->encoding ));
+             }
+-- 
+1.7.10.4
+
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libxml/libxml-libxml-perl_2.0132.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libxml/libxml-libxml-perl_2.0132.bb
new file mode 100644
index 0000000..1f18401
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libxml/libxml-libxml-perl_2.0132.bb
@@ -0,0 +1,47 @@
+SUMMARY = "Perl interface to the libxml2 library"
+DESCRIPTION = "This module is an interface to libxml2, providing XML and HTML parsers \
+with DOM, SAX and XMLReader interfaces, a large subset of DOM Layer 3 \
+interface and a XML::XPath-like interface to XPath API of libxml2. \
+The module is split into several packages which are not described in this \
+section; unless stated otherwise, you only need to use XML::LibXML; in \
+your programs."
+
+HOMEPAGE = "http://search.cpan.org/dist/XML-LibXML-1.99/"
+SECTION = "libs"
+LICENSE = "Artistic-1.0|GPLv1+"
+DEPENDS += "libxml2 \
+        libxml-sax-perl-native \
+        zlib \
+"
+RDEPENDS_${PN} += "\
+    libxml2 \
+    libxml-sax-perl \
+    libxml-sax-base-perl \
+    perl-module-encode \
+    perl-module-data-dumper \
+    zlib \
+"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/S/SH/SHLOMIF/XML-LibXML-${PV}.tar.gz;name=libxml \
+    file://disable-libxml2-check.patch \
+    file://fix-CATALOG-conditional-compile.patch \
+    file://using-DOCB-conditional.patch \
+"
+LIC_FILES_CHKSUM = "file://debian/copyright;md5=64eda1bc135f0ece1d1187f2a8ac82c1 \
+    file://LICENSE;md5=97871bde150daeb5e61ad95137ff2446 \
+"
+SRC_URI[libxml.md5sum] = "43546fd9a3974f19323f9fb04861ece9"
+SRC_URI[libxml.sha256sum] = "721452e3103ca188f5968ab06d5ba29fe8e00e49f4767790882095050312d476"
+
+S = "${WORKDIR}/XML-LibXML-${PV}"
+
+inherit cpan
+
+EXTRA_CPANFLAGS = "INC=-I${STAGING_INCDIR}/libxml2 LIBS=-L${STAGING_LIBDIR}"
+
+BBCLASSEXTEND = "native"
+
+CFLAGS += " -D_GNU_SOURCE "
+BUILD_CFLAGS += " -D_GNU_SOURCE "
+
+FILES_${PN}-dbg =+ "${libdir}/perl/vendor_perl/*/auto/XML/LibXML/.debug/"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/libxml/libxml-sax-writer-perl_0.57.bb b/meta/meta-openembedded/meta-perl/recipes-perl/libxml/libxml-sax-writer-perl_0.57.bb
new file mode 100644
index 0000000..d1b0de0
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/libxml/libxml-sax-writer-perl_0.57.bb
@@ -0,0 +1,25 @@
+SUMMARY = "XML::SAX::Writer - SAX2 Writer"
+DESCRIPTION = "\
+XML::SAX::Writer helps to serialize SAX2 representations of XML documents to \
+strings, files, and other flat representations. It handles charset encodings, \
+XML escaping conventions, and so forth. It is still considered alpha, \
+although it has been put to limited use in settings such as XML::LibXML and \
+the AxKit XML Application Server. \
+"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPLv1+"
+HOMEPAGE = "http://search.cpan.org/dist/XML-SAX-Writer/"
+DEPENDS += "libxml-filter-buffertext-perl-native"
+RDEPENDS_${PN} += "libxml-filter-buffertext-perl"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/P/PE/PERIGRIN/XML-SAX-Writer-${PV}.tar.gz"
+SRC_URI[md5sum] = "3e3023c648e3003c04de2fb04435f8bd"
+SRC_URI[sha256sum] = "3d61d07ef43b0126f5b4de4f415a256fa859fa88dc4fdabaad70b7be7c682cf0"
+
+LIC_FILES_CHKSUM = "file://README;beginline=45;endline=46;md5=d41d8cd98f00b204e9800998ecf8427e"
+
+S = "${WORKDIR}/XML-SAX-Writer-${PV}"
+
+inherit cpan
+
+BBCLASSEXTEND = "native"
diff --git a/meta/meta-openembedded/meta-perl/recipes-perl/po4a/po4a_0.49.bb b/meta/meta-openembedded/meta-perl/recipes-perl/po4a/po4a_0.49.bb
new file mode 100644
index 0000000..5db5b8f
--- /dev/null
+++ b/meta/meta-openembedded/meta-perl/recipes-perl/po4a/po4a_0.49.bb
@@ -0,0 +1,33 @@
+SUMMARY = "PO for anything"
+DESCRIPTION = "The po4a (PO for anything) project goal is to ease translations \
+(and more interestingly, the maintenance of translations) using gettext tools \
+on areas where they were not expected like documentation."
+HOMEPAGE = "https://po4a.alioth.debian.org"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a96fc9b4cc36d80659e694ea109f0325"
+
+SRC_URI = "git://alioth.debian.org/anonscm/git/po4a/po4a.git;protocol=https"
+
+# v0.49
+SRCREV = "79ed87a577a543538fe39c7b60079981f5997072"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = " \
+    libmodule-build-perl-native \
+    libtext-wrapi18n-perl \
+    libterm-readkey-perl \
+    liblocale-gettext-perl \
+    libunicode-linebreak-perl \
+"
+
+RRECOMMENDS_${PN} = " \
+    libtext-wrapi18n-perl \
+    libterm-readkey-perl \
+    liblocale-gettext-perl \
+    libunicode-linebreak-perl \
+"
+
+inherit cpan_build
+
+BBCLASSEXTEND = "native"