Squashed 'import-layers/meta-openembedded/' content from commit 247b126

Change-Id: I40827e9ce5fba63f1cca2a0be44976ae8383b4c0
git-subtree-dir: import-layers/meta-openembedded
git-subtree-split: 247b1267bbe95719cd4877d2d3cfbaf2a2f4865a
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
diff --git a/import-layers/meta-openembedded/meta-oe/COPYING.MIT b/import-layers/meta-openembedded/meta-oe/COPYING.MIT
new file mode 100644
index 0000000..fb950dc
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/COPYING.MIT
@@ -0,0 +1,17 @@
+Permission is hereby granted, free of charge, to any person obtaining a copy 
+of this software and associated documentation files (the "Software"), to deal 
+in the Software without restriction, including without limitation the rights 
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 
+copies of the Software, and to permit persons to whom the Software is 
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in 
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 
+THE SOFTWARE.
diff --git a/import-layers/meta-openembedded/meta-oe/README b/import-layers/meta-openembedded/meta-oe/README
new file mode 100644
index 0000000..a564c29
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/README
@@ -0,0 +1,15 @@
+This layer depends on:
+
+URI: git://github.com/openembedded/oe-core.git
+branch: krogoth
+revision: HEAD
+
+Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-oe][krogoth]' in the subject'
+
+When sending single patches, please use something like:
+'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-oe][krogoth][PATCH'
+
+You are encouraged to fork the mirror on github https://github.com/openembedded/meta-oe/ to share your patches, this is preferred for patch sets consisting of more than one patch. Other services like gitorious, repo.or.cz or self hosted setups are of course accepted as well, 'git fetch <remote>' works the same on all of them. We recommend github because it is free, easy to use, has been proven to be reliable and has a really good web GUI.
+
+krogoth Branch Maintainer:
+Armin Kuster <akuster808@gmail.com>
diff --git a/import-layers/meta-openembedded/meta-oe/classes/breakpad.bbclass b/import-layers/meta-openembedded/meta-oe/classes/breakpad.bbclass
new file mode 100644
index 0000000..b3abf27
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/classes/breakpad.bbclass
@@ -0,0 +1,33 @@
+# Class to inherit when you want to build against Breakpad.
+# Apart from inheriting this class, you need to set BREAKPAD_BIN in
+# your recipe, and make sure that you link against libbreakpad_client.a.
+
+DEPENDS += "breakpad breakpad-native"
+
+CFLAGS += "-I${STAGING_DIR_TARGET}${includedir}/breakpad "
+CXXFLAGS += "-I${STAGING_DIR_TARGET}${includedir}/breakpad "
+
+BREAKPAD_BIN ?= ""
+
+python () {
+    breakpad_bin = d.getVar("BREAKPAD_BIN", True)
+
+    if not breakpad_bin:
+       PN = d.getVar("PN", True)
+       FILE = os.path.basename(d.getVar("FILE", True))
+       bb.error("To build %s, see breakpad.bbclass for instructions on \
+                 setting up your Breakpad configuration" % PN)
+       raise ValueError('BREAKPAD_BIN not defined in %s' % PN)
+}
+
+# Add creation of symbols here
+PACKAGE_PREPROCESS_FUNCS += "breakpad_package_preprocess"
+breakpad_package_preprocess () {
+    mkdir -p ${PKGD}/usr/share/breakpad-syms
+    find ${D} -name ${BREAKPAD_BIN} -exec sh -c "dump_syms {} > ${PKGD}/usr/share/breakpad-syms/${BREAKPAD_BIN}.sym" \;
+}
+
+PACKAGES =+ "${PN}-breakpad"
+
+FILES_${PN}-breakpad = "/usr/share/breakpad-syms"
+
diff --git a/import-layers/meta-openembedded/meta-oe/classes/gitpkgv.bbclass b/import-layers/meta-openembedded/meta-oe/classes/gitpkgv.bbclass
new file mode 100644
index 0000000..1cba00c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/classes/gitpkgv.bbclass
@@ -0,0 +1,113 @@
+# gitpkgv.bbclass provides a GITPKGV and GITPKGVTAG variables to be
+# used in PKGV, as described bellow:
+#
+# - GITPKGV which is a sortable version with the format NN+GITHASH, to
+#   be used in PKGV, where
+#
+#   NN equals the total number of revs up to SRCREV
+#   GITHASH is SRCREV's (full) hash
+#
+# - GITPKGVTAG which is the output of 'git describe' allowing for
+#   automatic versioning
+#
+# gitpkgv.bbclass assumes the git repository has been cloned, and
+# contains SRCREV. So ${GITPKGV} and ${GITPKGVTAG} should never be
+# used in PV, only in PKGV.  It can handle SRCREV = ${AUTOREV}, as
+# well as SRCREV = "<some fixed git hash>".
+#
+# WARNING: if upstream repository is always using consistent and
+# sortable tag name scheme you can get sortable version including tag
+# name with ${GITPKGVTAG}, but be aware that ie tag sequence "v1.0,
+# v1.2, xtest, v2.0" will force you to increment PE to get upgradeable
+# path to v2.0 revisions
+#
+# use example:
+#
+# inherit gitpkgv
+#
+# PV = "1.0+gitr${SRCPV}"      # expands to something like 1.0+gitr3+4c1c21d7dbbf93b0df336994524313dfe0d4963b
+# PKGV = "1.0+gitr${GITPKGV}"  # expands also to something like 1.0+gitr31337+4c1c21d7d
+#
+# or
+#
+# inherit gitpkgv
+#
+# PV = "1.0+gitr${SRCPV}" # expands to something like 1.0+gitr3+4c1c21d7dbbf93b0df336994524313dfe0d4963b
+# PKGV = "${GITPKGVTAG}"  # expands to something like 1.0-31337+g4c1c21d
+#                           if there is tag v1.0 before this revision or
+#                           ver1.0-31337+g4c1c21d if there is tag ver1.0
+
+GITPKGV = "${@get_git_pkgv(d, False)}"
+GITPKGVTAG = "${@get_git_pkgv(d, True)}"
+
+def gitpkgv_drop_tag_prefix(version):
+    import re
+    if re.match("v\d", version):
+        return version[1:]
+    else:
+        return version
+
+def get_git_pkgv(d, use_tags):
+    import os
+    import bb
+    from pipes import quote
+
+    src_uri = d.getVar('SRC_URI', 1).split()
+    fetcher = bb.fetch2.Fetch(src_uri, d)
+    ud = fetcher.ud
+
+    #
+    # If SRCREV_FORMAT is set respect it for tags
+    #
+    format = d.getVar('SRCREV_FORMAT', True)
+    if not format:
+        format = 'default'
+
+    found = False
+    for url in ud.values():
+        if url.type == 'git' or url.type == 'gitsm':
+            for name, rev in url.revisions.items():
+                if not os.path.exists(url.localpath):
+                    return None
+
+                found = True
+
+                vars = { 'repodir' : quote(url.localpath),
+                         'rev' : quote(rev) }
+
+                rev = bb.fetch2.get_srcrev(d).split('+')[1]
+                rev_file = os.path.join(url.localpath, "oe-gitpkgv_" + rev)
+
+                if not os.path.exists(rev_file) or os.path.getsize(rev_file)==0:
+                    commits = bb.fetch2.runfetchcmd(
+                        "cd %(repodir)s && "
+                        "git rev-list %(rev)s -- 2> /dev/null "
+                        "| wc -l" % vars,
+                        d, quiet=True).strip().lstrip('0')
+
+                    if commits != "":
+                        oe.path.remove(rev_file, recurse=False)
+                        open(rev_file, "w").write("%d\n" % int(commits))
+                    else:
+                        commits = "0"
+                else:
+                    commits = open(rev_file, "r").readline(128).strip()
+
+                if use_tags:
+                    try:
+                        output = bb.fetch2.runfetchcmd(
+                            "cd %(repodir)s && "
+                            "git describe %(rev)s 2>/dev/null" % vars,
+                            d, quiet=True).strip()
+                        ver = gitpkgv_drop_tag_prefix(output)
+                    except Exception:
+                        ver = "0.0-%s-g%s" % (commits, rev[:7])
+                else:
+                    ver = "%s+%s" % (commits, rev[:7])
+
+                format = format.replace(name, ver)
+
+    if found:
+        return format
+
+    return '0+0'
diff --git a/import-layers/meta-openembedded/meta-oe/classes/gitver.bbclass b/import-layers/meta-openembedded/meta-oe/classes/gitver.bbclass
new file mode 100644
index 0000000..e7b5155
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/classes/gitver.bbclass
@@ -0,0 +1,75 @@
+# Copyright (C) 2009 Chris Larson <clarson@kergoth.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+#
+# gitver.bbclass provides a GITVER variable which is a (fairly) sane version,
+# for use in ${PV}, extracted from the ${S} git checkout, assuming it is one.
+# This is most useful in concert with srctree.bbclass.
+
+def git_drop_tag_prefix(version):
+    import re
+    if re.match("v\d", version):
+        return version[1:]
+    else:
+        return version
+
+GIT_TAGADJUST = "git_drop_tag_prefix(version)"
+GITVER = "${@get_git_pv('${S}', d, tagadjust=lambda version:${GIT_TAGADJUST})}"
+GITSHA = "${@get_git_hash('${S}', d)}"
+
+def gitrev_run(cmd, path):
+    (output, error) = bb.process.run(cmd, cwd=path)
+    return output.rstrip()
+
+def get_git_pv(path, d, tagadjust=None):
+    import os
+    import bb.process
+
+    gitdir = os.path.abspath(os.path.join(d.getVar("S", True), ".git"))
+    try:
+        ver = gitrev_run("git describe --tags", gitdir)
+    except Exception, exc:
+        bb.fatal(str(exc))
+
+    if not ver:
+        try:
+            ver = gitrev_run("git rev-parse --short HEAD", gitdir)
+        except Exception, exc:
+            bb.fatal(str(exc))
+
+        if ver:
+            return "0.0+%s" % ver
+        else:
+            return "0.0"
+    else:
+        if tagadjust:
+            ver = tagadjust(ver)
+        return ver
+
+def mark_recipe_dependencies(path, d):
+    from bb.parse import mark_dependency
+
+    gitdir = os.path.join(path, ".git")
+
+    # Force the recipe to be reparsed so the version gets bumped
+    # if the active branch is switched, or if the branch changes.
+    mark_dependency(d, os.path.join(gitdir, "HEAD"))
+
+    # Force a reparse if anything in the index changes.
+    mark_dependency(d, os.path.join(gitdir, "index"))
+
+    try:
+        ref = gitrev_run("git symbolic-ref -q HEAD", gitdir)
+    except bb.process.CmdError:
+        pass
+    else:
+        if ref:
+            mark_dependency(d, os.path.join(gitdir, ref))
+
+    # Catch new tags.
+    tagdir = os.path.join(gitdir, "refs", "tags")
+    if os.path.exists(tagdir):
+        mark_dependency(d, tagdir)
+
+python () {
+    mark_recipe_dependencies(d.getVar("S", True), d)
+}
diff --git a/import-layers/meta-openembedded/meta-oe/classes/gpe.bbclass b/import-layers/meta-openembedded/meta-oe/classes/gpe.bbclass
new file mode 100644
index 0000000..9fc1365
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/classes/gpe.bbclass
@@ -0,0 +1,17 @@
+DEPENDS_prepend = "virtual/libintl intltool-native "
+GPE_TARBALL_SUFFIX ?= "gz"
+SRC_URI = "${GPE_MIRROR}/${BP}.tar.${GPE_TARBALL_SUFFIX}"
+FILES_${PN} += "${datadir}/gpe ${datadir}/application-registry"
+SECTION ?= "gpe"
+
+inherit gettext
+
+gpe_do_compile() {
+    oe_runmake PREFIX=${prefix}
+}
+
+gpe_do_install() {
+    oe_runmake PREFIX=${prefix} DESTDIR=${D} install
+}
+
+EXPORT_FUNCTIONS do_compile do_install
diff --git a/import-layers/meta-openembedded/meta-oe/classes/machine_kernel_pr.bbclass b/import-layers/meta-openembedded/meta-oe/classes/machine_kernel_pr.bbclass
new file mode 100644
index 0000000..463b64d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/classes/machine_kernel_pr.bbclass
@@ -0,0 +1,8 @@
+python __anonymous () {
+
+    machine_kernel_pr = d.getVar('MACHINE_KERNEL_PR', True)
+
+    if machine_kernel_pr:
+        d.setVar('PR', machine_kernel_pr)
+}
+
diff --git a/import-layers/meta-openembedded/meta-oe/classes/socorro-syms.bbclass b/import-layers/meta-openembedded/meta-oe/classes/socorro-syms.bbclass
new file mode 100644
index 0000000..3f6ae63
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/classes/socorro-syms.bbclass
@@ -0,0 +1,231 @@
+# Inherit this class when you want to allow Mozilla Socorro to link Breakpad's
+# stack trace information to the correct source code revision.
+# This class creates a new version of the symbol file (.sym) created by
+# Breakpad. The absolute file paths in the symbol file will be replaced by VCS,
+# branch, file and revision of the source file. That information facilitates the
+# lookup of a particular source code line in the stack trace.
+#
+# Use example:
+#
+# BREAKPAD_BIN = "YourBinary"
+# inherit socorro-syms
+#
+
+# We depend on Breakpad creating the original symbol file.
+inherit breakpad
+
+PACKAGE_PREPROCESS_FUNCS += "symbol_file_preprocess"
+PACKAGES =+ "${PN}-socorro-syms"
+FILES_${PN}-socorro-syms = "/usr/share/socorro-syms"
+
+
+python symbol_file_preprocess() {
+
+    package_dir = d.getVar("PKGD", True)
+    breakpad_bin = d.getVar("BREAKPAD_BIN", True)
+    if not breakpad_bin:
+        package_name = d.getVar("PN", True)
+        bb.error("Package %s depends on Breakpad via socorro-syms. See "
+            "breakpad.bbclass for instructions on setting up the Breakpad "
+            "configuration." % package_name)
+        raise ValueError("BREAKPAD_BIN not defined in %s." % package_name)
+
+    sym_file_name = breakpad_bin + ".sym"
+
+    breakpad_syms_dir = os.path.join(
+        package_dir, "usr", "share", "breakpad-syms")
+    socorro_syms_dir = os.path.join(
+        package_dir, "usr", "share", "socorro-syms")
+    if not os.path.exists(socorro_syms_dir):
+        os.makedirs(socorro_syms_dir)
+
+    breakpad_sym_file_path = os.path.join(breakpad_syms_dir, sym_file_name)
+    socorro_sym_file_path = os.path.join(socorro_syms_dir, sym_file_name)
+
+    create_socorro_sym_file(d, breakpad_sym_file_path, socorro_sym_file_path)
+
+    arrange_socorro_sym_file(socorro_sym_file_path, socorro_syms_dir)
+
+    return
+}
+
+
+def run_command(command, directory):
+
+    (output, error) = bb.process.run(command, cwd=directory)
+    if error:
+        raise bb.process.ExecutionError(command, error)
+
+    return output.rstrip()
+
+
+def create_socorro_sym_file(d, breakpad_sym_file_path, socorro_sym_file_path):
+
+    # In the symbol file, all source files are referenced like the following.
+    # FILE 123 /path/to/some/File.cpp
+    # Go through all references and replace the file paths with repository
+    # paths.
+    with open(breakpad_sym_file_path, 'r') as breakpad_sym_file, \
+            open(socorro_sym_file_path, 'w') as socorro_sym_file:
+
+        for line in breakpad_sym_file:
+            if line.startswith("FILE "):
+                socorro_sym_file.write(socorro_file_reference(d, line))
+            else:
+                socorro_sym_file.write(line)
+
+    return
+
+
+def socorro_file_reference(d, line):
+
+    # The 3rd position is the file path. See example above.
+    source_file_path = line.split()[2]
+    source_file_repo_path = repository_path(
+        d, os.path.normpath(source_file_path))
+
+    # If the file could be found in any repository then replace it with the
+    # repository's path.
+    if source_file_repo_path:
+        return line.replace(source_file_path, source_file_repo_path)
+
+    return line
+
+
+def repository_path(d, source_file_path):
+
+    if not os.path.isfile(source_file_path):
+        return None
+
+    # Check which VCS is used and use that to extract repository information.
+    (output, error) = bb.process.run("git status",
+        cwd=os.path.dirname(source_file_path))
+    if not error:
+        # Make sure the git repository we just found wasn't the yocto repository
+        # itself, i.e. the root of the repository we're looking for must be a
+        # child of the build directory TOPDIR.
+        git_root_dir = run_command(
+            "git rev-parse --show-toplevel", os.path.dirname(source_file_path))
+        if not git_root_dir.startswith(d.getVar("TOPDIR", True)):
+            return None
+
+        return git_repository_path(source_file_path)
+
+    # Here we can add support for other VCSs like hg, svn, cvs, etc.
+
+    # The source file isn't under any VCS so we leave it be.
+    return None
+
+
+def is_local_url(url):
+
+    return \
+        url.startswith("file:") or url.startswith("/") or url.startswith("./")
+
+
+def git_repository_path(source_file_path):
+
+    import re
+
+    # We need to extract the following.
+    # (1): VCS URL, (2): branch, (3): repo root directory name, (4): repo file,
+    # (5): revision.
+
+    source_file_dir = os.path.dirname(source_file_path)
+
+    # (1) Get the VCS URL and extract the server part, i.e. change the URL from
+    # gitolite@git.someserver.com:SomeRepo.git to just git.someserver.com.
+    source_long_url = run_command(
+        "git config --get remote.origin.url", source_file_dir)
+
+    # The URL could be a local download directory. If so, get the URL again
+    # using the local directory's config file.
+    if is_local_url(source_long_url):
+        git_config_file = os.path.join(source_long_url, "config")
+        source_long_url = run_command(
+            "git config --file %s --get remote.origin.url" % git_config_file,
+            source_file_dir)
+
+        # If also the download directory redirects to a local git directory,
+        # then we're probably using source code from a local debug branch which
+        # won't be accessible by Socorro.
+        if is_local_url(source_long_url):
+            return None
+
+    # The URL can have several formats. A full list can be found using
+    # git help clone. Extract the server part with a regex.
+    url_match = re.search(".*(://|@)([^:/]*).*", source_long_url)
+    source_server = url_match.group(2)
+
+    # (2) Get the branch for this file.
+    source_branch_list = run_command("git show-branch --list", source_file_dir)
+    source_branch_match = re.search(".*?\[(.*?)\].*", source_branch_list)
+    source_branch = source_branch_match.group(1)
+
+    # (3) Since the repo root directory name can be changed without affecting
+    # git, we need to extract the name from something more reliable.
+    # The git URL has a repo name that we could use. We just need to strip off
+    # everything around it - from gitolite@git.someserver.com:SomeRepo.git/ to
+    # SomeRepo.
+    source_repo_dir = re.sub("/$", "", source_long_url)
+    source_repo_dir = re.sub("\.git$", "", source_repo_dir)
+    source_repo_dir = re.sub(".*[:/]", "", source_repo_dir)
+
+    # (4) We know the file but want to remove all of the build system dependent
+    # path up to and including the repository's root directory, e.g. remove
+    # /home/someuser/dev/repo/projectx/
+    source_toplevel = run_command(
+        "git rev-parse --show-toplevel", source_file_dir)
+    source_toplevel = source_toplevel + os.path.sep
+    source_file = source_file_path.replace(source_toplevel, "")
+
+    # (5) Get the source revision this file is part of.
+    source_revision = run_command("git rev-parse HEAD", source_file_dir)
+
+    # Assemble the repository path according to the Socorro format.
+    socorro_reference = "git:%s/%s:%s/%s:%s" % \
+        (source_server, source_branch,
+        source_repo_dir, source_file,
+        source_revision)
+
+    return socorro_reference
+
+
+def arrange_socorro_sym_file(socorro_sym_file_path, socorro_syms_dir):
+
+    import re
+
+    # Breakpad's minidump_stackwalk needs a certain directory structure in order
+    # to find correct symbols when extracting a stack trace out of a minidump.
+    # The directory structure must look like the following.
+    # YourBinary/<hash>/YourBinary.sym
+    # YourLibrary.so/<hash>/YourLibrary.so.sym
+    # To be able to create such structure we need to extract the hash value that
+    # is found in each symbol file. The header of the symbol file looks
+    # something like this:
+    # MODULE Linux x86 A079E473106CE51C74C1C25AF536CCD30 YourBinary
+    # See
+    # http://code.google.com/p/google-breakpad/wiki/LinuxStarterGuide
+
+    # Create the directory with the same name as the binary.
+    binary_dir = re.sub("\.sym$", "", socorro_sym_file_path)
+    if not os.path.exists(binary_dir):
+        os.makedirs(binary_dir)
+
+    # Get the hash from the header of the symbol file.
+    with open(socorro_sym_file_path, 'r') as socorro_sym_file:
+
+        # The hash is the 4th argument of the first line.
+        sym_file_hash = socorro_sym_file.readline().split()[3]
+
+    # Create the hash directory.
+    hash_dir = os.path.join(binary_dir, sym_file_hash)
+    if not os.path.exists(hash_dir):
+        os.makedirs(hash_dir)
+
+    # Move the symbol file to the hash directory.
+    sym_file_name = os.path.basename(socorro_sym_file_path)
+    os.rename(socorro_sym_file_path, os.path.join(hash_dir, sym_file_name))
+
+    return
+
diff --git a/import-layers/meta-openembedded/meta-oe/conf/distro/include/meta_oe_security_flags.inc b/import-layers/meta-openembedded/meta-oe/conf/distro/include/meta_oe_security_flags.inc
new file mode 100644
index 0000000..2565e32
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/conf/distro/include/meta_oe_security_flags.inc
@@ -0,0 +1,7 @@
+# Build errors with the pie options enabled
+SECURITY_CFLAGS_pn-lvm2 = "${SECURITY_NO_PIE_CFLAGS}"
+SECURITY_CFLAGS_pn-rrdtool = "${SECURITY_NO_PIE_CFLAGS}"
+
+# This has text reloc errors with the pie options enabled
+SECURITY_CFLAGS_pn-mozjs = "${SECURITY_NO_PIE_CFLAGS}"
+SECURITY_CFLAGS_pn-openldap = "${SECURITY_NO_PIE_CFLAGS}"
diff --git a/import-layers/meta-openembedded/meta-oe/conf/layer.conf b/import-layers/meta-openembedded/meta-oe/conf/layer.conf
new file mode 100644
index 0000000..a67cc1a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/conf/layer.conf
@@ -0,0 +1,75 @@
+# It really depends on order of the layers appearing in BBLAYERS
+# variable in toplevel bblayers.conf file, where bitbake will search
+# for .inc files and others where bitbake uses BBPATH since it will
+# search the directories from first to last as specified in BBPATH
+# Therefore if you want a given layer to be considered high priority
+# for the .inc and .conf etc. then consider it adding at the beginning
+# of BBPATH. For bblayers bitbake will use BBFILES_PRIORITY to resolve
+# the recipe contention so the order of directories in BBFILES does 
+# not matter.
+
+# We have a conf and classes directory, append to BBPATH
+BBPATH .= ":${LAYERDIR}"
+
+# We have a recipes directory, add to BBFILES
+BBFILES += "${LAYERDIR}/recipes-*/*/*.bb ${LAYERDIR}/recipes-*/*/*.bbappend"
+
+BBFILE_COLLECTIONS += "openembedded-layer"
+BBFILE_PATTERN_openembedded-layer := "^${LAYERDIR}/"
+
+# Define the priority for recipes (.bb files) from this layer,
+# choosing carefully how this layer interacts with all of the
+# other layers.
+
+BBFILE_PRIORITY_openembedded-layer = "6"
+
+# This should only be incremented on significant changes that will
+# cause compatibility issues with other layers
+LAYERVERSION_openembedded-layer = "1"
+
+LAYERDEPENDS_openembedded-layer = "core"
+
+LICENSE_PATH += "${LAYERDIR}/licenses"
+
+SIGGEN_EXCLUDERECIPES_ABISAFE += " \
+  mplayer-common \
+  fbset-modes \
+  gpsd-machine-conf \
+  distro-feed-configs \
+  ca-certificates \
+"
+
+SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \
+  usb-modeswitch-data->usb-modeswitch \
+  lmsensors->lmsensors-config \
+  phoronix-test-suite->bash \
+  phoronix-test-suite->python \
+  phoronix-test-suite->php \
+"
+
+# ttf.inc inherits fontcache which adds fontconfig-utils to RDEPENDS
+SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \
+  terminus-font->fontconfig \
+  ttf-arphic-uming->fontconfig \
+  ttf-dejavu->fontconfig \
+  ttf-droid->fontconfig \
+  ttf-gentium->fontconfig \
+  ttf-hunkyfonts->fontconfig \
+  ttf-inconsolata->fontconfig \
+  ttf-liberation->fontconfig \
+  ttf-pt-sans->fontconfig \
+  ttf-mplus->fontconfig \
+  ttf-sazanami->fontconfig \
+  ttf-tlwg->fontconfig \
+  ttf-ubuntu-font-family->fontconfig \
+  ttf-wqy-zenhei->fontconfig \
+  source-han-sans-cn-fonts->fontconfig \
+  source-han-sans-jp-fonts->fontconfig \
+  source-han-sans-kr-fonts->fontconfig \
+  source-han-sans-tw-fonts->fontconfig \
+"
+
+FREESMARTPHONE_GIT = "git://git.freesmartphone.org"
+
+# Override security flags
+require conf/distro/include/meta_oe_security_flags.inc
diff --git a/import-layers/meta-openembedded/meta-oe/licenses/GD b/import-layers/meta-openembedded/meta-oe/licenses/GD
new file mode 100644
index 0000000..5e17d03
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/licenses/GD
@@ -0,0 +1,53 @@
+ 
+     Portions copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+     2002 by Cold Spring Harbor Laboratory. Funded under Grant
+     P41-RR02188 by the National Institutes of Health. 
+
+     Portions copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 by
+     Boutell.Com, Inc. 
+
+     Portions relating to GD2 format copyright 1999, 2000, 2001, 2002
+     Philip Warner.
+     
+     Portions relating to PNG copyright 1999, 2000, 2001, 2002 Greg
+     Roelofs. 
+
+     Portions relating to gdttf.c copyright 1999, 2000, 2001, 2002 John  
+     Ellson (ellson@lucent.com).
+   
+     Portions relating to gdft.c copyright 2001, 2002 John Ellson  
+     (ellson@lucent.com).  
+
+     Portions copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
+		 Pierre-Alain Joye (pierre@libgd.org).  
+
+     Portions relating to JPEG and to color quantization copyright 2000,
+     2001, 2002, Doug Becker and copyright (C) 1994, 1995, 1996, 1997,
+     1998, 1999, 2000, 2001, 2002, Thomas G. Lane. This software is
+     based in part on the work of the Independent JPEG Group. See the
+     file README-JPEG.TXT for more information.
+
+     Portions relating to WBMP copyright 2000, 2001, 2002 Maurice
+     Szmurlo and Johan Van den Brande.
+
+     Permission has been granted to copy, distribute and modify gd in
+     any context without fee, including a commercial application,
+     provided that this notice is present in user-accessible supporting
+     documentation.
+
+     This does not affect your ownership of the derived work itself, and 
+     the intent is to assure proper credit for the authors of gd, not to
+     interfere with your productive use of gd. If you have questions,
+     ask. "Derived works" includes all programs that utilize the   
+     library. Credit must be given in user-accessible documentation.
+
+     This software is provided "AS IS." The copyright holders disclaim  
+     all warranties, either express or implied, including but not
+     limited to implied warranties of merchantability and fitness for a
+     particular purpose, with respect to this code and accompanying  
+     documentation.
+
+     Although their code does not appear in gd, the authors wish to thank
+     David Koblas, David Rowley, and Hutchison Avenue Software Corporation
+     for their prior contributions.
+
diff --git a/import-layers/meta-openembedded/meta-oe/licenses/GPL-2.0-with-lmbench-restriction b/import-layers/meta-openembedded/meta-oe/licenses/GPL-2.0-with-lmbench-restriction
new file mode 100644
index 0000000..3e1f7cc
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/licenses/GPL-2.0-with-lmbench-restriction
@@ -0,0 +1,108 @@
+%M% %I% %E%
+
+The set of programs and documentation known as "lmbench" are distributed
+under the Free Software Foundation's General Public License with the
+following additional restrictions (which override any conflicting
+restrictions in the GPL):
+
+1. You may not distribute results in any public forum, in any publication,
+   or in any other way if you have modified the benchmarks.  
+
+2. You may not distribute the results for a fee of any kind.  This includes
+   web sites which generate revenue from advertising.
+
+If you have modifications or enhancements that you wish included in
+future versions, please mail those to me, Larry McVoy, at lm@bitmover.com.
+
+=========================================================================
+
+Rationale for the publication restrictions:
+
+In summary:
+
+    a) LMbench is designed to measure enough of an OS that if you do well in
+       all catagories, you've covered latency and bandwidth in networking,
+       disks, file systems, VM systems, and memory systems.
+    b) Multiple times in the past people have wanted to report partial results.
+       Without exception, they were doing so to show a skewed view of whatever
+       it was they were measuring (for example, one OS fit small processes into
+       segments and used the segment register to switch them, getting good 
+       results, but did not want to report large process context switches 
+       because those didn't look as good).
+    c) We insist that if you formally report LMbench results, you have to
+       report all of them and make the raw results file easily available.
+       Reporting all of them means in that same publication, a pointer
+       does not count.  Formally, in this context, means in a paper,
+       on a web site, etc., but does not mean the exchange of results
+       between OS developers who are tuning a particular subsystem.
+
+We have a lot of history with benchmarking and feel strongly that there
+is little to be gained and a lot to be lost if we allowed the results
+to be published in isolation, without the complete story being told.
+
+There has been a lot of discussion about this, with people not liking this
+restriction, more or less on the freedom principle as far as I can tell.
+We're not swayed by that, our position is that we are doing the right
+thing for the OS community and will stick to our guns on this one.
+
+It would be a different matter if there were 3 other competing
+benchmarking systems out there that did what LMbench does and didn't have
+the same reporting rules.  There aren't and as long as that is the case,
+I see no reason to change my mind and lots of reasons not to do so.  I'm
+sorry if I'm a pain in the ass on this topic, but I'm doing the right
+thing for you and the sooner people realize that the sooner we can get on
+to real work.
+
+Operating system design is a largely an art of balancing tradeoffs.
+In many cases improving one part of the system has negative effects
+on other parts of the system.  The art is choosing which parts to
+optimize and which to not optimize.  Just like in computer architecture,
+you can optimize the common instructions (RISC) or the uncommon
+instructions (CISC), but in either case there is usually a cost to
+pay (in RISC uncommon instructions are more expensive than common
+instructions, and in CISC common instructions are more expensive
+than required).  The art lies in knowing which operations are 
+important and optmizing those while minimizing the impact on the
+rest of the system.  
+
+Since lmbench gives a good overview of many important system features,
+users may see the performance of the system as a whole, and can
+see where tradeoffs may have been made.  This is the driving force
+behind the publication restriction: any idiot can optimize certain
+subsystems while completely destroying overall system performance.
+If said idiot publishes *only* the numbers relating to the optimized
+subsystem, then the costs of the optimization are hidden and readers
+will mistakenly believe that the optimization is a good idea.  By
+including the publication restriction readers would be able to
+detect that the optimization improved the subsystem performance
+while damaging the rest of the system performance and would be able
+to make an informed decision as to the merits of the optimization.
+
+Note that these restrictions only apply to *publications*.  We
+intend and encourage lmbench's use during design, development,
+and tweaking of systems and applications.  If you are tuning the
+linux or BSD TCP stack, then by all means, use the networking
+benchmarks to evaluate the performance effects of various 
+modifications; Swap results with other developers; use the
+networking numbers in isolation.  The restrictions only kick
+in when you go to *publish* the results.  If you sped up the
+TCP stack by a factor of 2 and want to publish a paper with the
+various tweaks or algorithms used to accomplish this goal, then
+you can publish the networking numbers to show the improvement.
+However, the paper *must* also include the rest of the standard
+lmbench numbers to show how your tweaks may (or may not) have
+impacted the rest of the system.  The full set of numbers may
+be included in an appendix, but they *must* be included in the
+paper.
+
+This helps protect the community from adopting flawed technologies
+based on incomplete data.  It also helps protect the community from
+misleading marketing which tries to sell systems based on partial
+(skewed) lmbench performance results.  
+
+We have seen many cases in the past where partial or misleading
+benchmark results have caused great harm to the community, and
+we want to ensure that our benchmark is not used to perpetrate
+further harm and support false or misleading claims.
+
+
diff --git a/import-layers/meta-openembedded/meta-oe/licenses/ImageMagick b/import-layers/meta-openembedded/meta-oe/licenses/ImageMagick
new file mode 100644
index 0000000..9141668
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/licenses/ImageMagick
@@ -0,0 +1,103 @@
+Before we get to the text of the license, lets just review what the license says in simple terms:
+
+It allows you to:
+
+  * freely download and use ImageMagick software, in whole or in part, for personal, company internal, or commercial purposes;
+  * use ImageMagick software in packages or distributions that you create;
+  * link against a library under a different license;
+  * link code under a different license against a library under this license;
+  * merge code into a work under a different license;
+  * extend patent grants to any code using code under this license;
+  * and extend patent protection.
+
+It forbids you to:
+
+  * redistribute any piece of ImageMagick-originated software without proper attribution;
+  * use any marks owned by ImageMagick Studio LLC in any way that might state or imply that ImageMagick Studio LLC endorses your distribution;
+  * use any marks owned by ImageMagick Studio LLC in any way that might state or imply that you created the ImageMagick software in question.
+
+It requires you to:
+
+  * include a copy of the license in any redistribution you may make that includes ImageMagick software;
+  * provide clear attribution to ImageMagick Studio LLC for any distributions that include ImageMagick software.
+
+It does not require you to:
+
+  * include the source of the ImageMagick software itself, or of any modifications you may have made to it, in any redistribution you may assemble that includes it;
+  * submit changes that you make to the software back to the ImageMagick Studio LLC (though such feedback is encouraged).
+
+A few other clarifications include:
+
+  * ImageMagick is freely available without charge;
+  * you may include ImageMagick on a DVD as long as you comply with the terms of the license;
+  * you can give modified code away for free or sell it under the terms of the ImageMagick license or distribute the result under a different license, but you need to acknowledge the use of the ImageMagick software;
+  * the license is compatible with the GPL V3.
+  * when exporting the ImageMagick software, review its export classification.
+
+Terms and Conditions for Use, Reproduction, and Distribution
+
+The legally binding and authoritative terms and conditions for use, reproduction, and distribution of ImageMagick follow:
+
+Copyright 1999-2014 ImageMagick Studio LLC, a non-profit organization dedicated to making software imaging solutions freely available.
+
+1. Definitions.
+
+License shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
+
+Licensor shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
+
+Legal Entity shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, control means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
+
+You (or Your) shall mean an individual or Legal Entity exercising permissions granted by this License.
+
+Source form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
+
+Object form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
+
+Work shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
+
+Derivative Works shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
+
+Contribution shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as Not a Contribution.
+
+Contributor shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
+
+2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
+
+  * You must give any other recipients of the Work or Derivative Works a copy of this License; and
+  * You must cause any modified files to carry prominent notices stating that You changed the files; and
+  * You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
+  * If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.
+You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
+
+How to Apply the License to your Work
+
+To apply the ImageMagick License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information (don't include the brackets). The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the ImageMagick License (the "License"); you may not use
+   this file except in compliance with the License.  You may obtain a copy
+   of the License at
+
+     http://www.imagemagick.org/script/license.php
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+   WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+   License for the specific language governing permissions and limitations
+   under the License.
diff --git a/import-layers/meta-openembedded/meta-oe/licenses/Intel b/import-layers/meta-openembedded/meta-oe/licenses/Intel
new file mode 100644
index 0000000..eb81dd7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/licenses/Intel
@@ -0,0 +1,21 @@
+License for Contributions to ACPICA
+
+Copyright (c) 2000 – 2015 Intel Corp.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINES
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
diff --git a/import-layers/meta-openembedded/meta-oe/licenses/Kilgard b/import-layers/meta-openembedded/meta-oe/licenses/Kilgard
new file mode 100644
index 0000000..8836db1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/licenses/Kilgard
@@ -0,0 +1,5 @@
+Copyright (c) Mark J. Kilgard, 1994, 1995, 1996, 1998.
+
+This program is freely distributable without licensing fees  and is
+provided without guarantee or warrantee expressed or  implied. This
+program is -not- in the public domain.
diff --git a/import-layers/meta-openembedded/meta-oe/licenses/ManishSingh b/import-layers/meta-openembedded/meta-oe/licenses/ManishSingh
new file mode 100644
index 0000000..0243ddf
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/licenses/ManishSingh
@@ -0,0 +1,19 @@
+Copyright (C) 2002 Manish Singh
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of Manish Singh not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission.  Manish Singh makes no
+representations about the suitability of this software for any purpose.  It
+is provided "as is" without express or implied warranty.
+
+MANISH SINGH DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL MANISH SINGH BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/import-layers/meta-openembedded/meta-oe/licenses/OGPL b/import-layers/meta-openembedded/meta-oe/licenses/OGPL
new file mode 100644
index 0000000..bce3b71
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/licenses/OGPL
@@ -0,0 +1,104 @@
+$TOG: COPYRIGHT.MOTIF /main/5 2000/04/10 12:00:00 $
+
+                            MOTIF 2.1.30
+                             Source Code
+                        MASTER COPYRIGHT NOTICE
+
+(c) Copyright 1989 - 1994, 1996 - 1999 The Open Group
+(c) Copyright 1987 - 1999 Hewlett-Packard Company
+(c) Copyright 1987 - 1999 Digital Equipment Corporation, Maynard, Mass.
+(c) Copyright 1988 Massachusetts Institute of Technology
+(c) Copyright 1988 Microsoft Corporation
+(c) Copyright 1990 Motorola Inc.
+(c) Copyright 1989 - 1994 Groupe Bull
+(c) Copyright 1991 Joseph Friedman
+(c) Copyright 1995 - 1999 International Business Machines Corp.
+(c) Copyright 1995 - 1999 Sun Microsystems, Inc.
+(c) Copyright 1995 - 1999 Santa Cruz Organization, Inc.
+(c) Copyright 1995, 1996 Fujitsu Limited
+(c) Copyright 1995, 1996 Hitachi, Ltd.
+
+
+ALL RIGHTS RESERVED
+
+This software is furnished under a license and may be used
+and copied only in accordance with the terms of such license and
+with the inclusion of this copyright notice. No title to and ownership
+of the software is hereby transferred.
+
+This software is subject to an open license. It may only be
+used on, with or for operating systems which are themselves open
+source systems. You must contact The Open Group for a license allowing
+distribution and sublicensing of this software on, with, or for
+operating systems which are not Open Source programs.
+
+See http://www.opengroup.org/openmotif/license for full
+details of the license agreement. Any use, reproduction, or
+distribution of the program constitutes recipient's acceptance of
+this agreement.
+
+THE OPEN GROUP AND ITS THIRD PARTY SUPPLIERS, ASSUME NO RESPONSIBILITY
+FOR THE USE OR INABILITY TO USE ANY OF ITS SOFTWARE.
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
+PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY
+WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
+OR FITNESS FOR A PARTICULAR PURPOSE.
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT
+NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED
+AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE
+EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+The information in this software is subject to change without
+notice and should not be construed as a commitment by The Open Group
+or its third party suppliers.
+
+Notice: Notwithstanding any other lease or license that may pertain to,
+or accompany the delivery of, this computer software, the rights of the
+Government regarding its use, reproduction and disclosure are as set
+forth in Section 52.227-19 of the FARS Computer Software-Restricted
+Rights clause.
+
+(c) Copyright 1990, 1991, 1992, 1993, 1994, 1996 Open Software
+Foundation, Inc.
+(c) Copyright 1996, 1997, 1998, 1999, 2000 The Open Group.
+Unpublished - all rights reserved under the Copyright laws of the United
+States.
+
+RESTRICTED RIGHTS NOTICE: Use, duplication, or disclosure by the
+Government is subject to the restrictions as set forth in subparagraph
+(c)(1)(ii) of the Rights in Technical Data and Computer Software clause
+at DFARS 52.227-7013.
+
+The Open Group LLC
+Apex Plaza, Forbury Road
+Reading, Berkshire,
+RG1 1AX, UK.
+
+RESTRICTED RIGHTS LEGEND: This computer software is submitted with
+"restricted rights." Use, duplication or disclosure is subject to the
+restrictions as set forth in NASA FAR SUP 18-52.227-79 (April 1985)
+"Commercial Computer Software- Restricted Rights (April 1985)." The
+Open Group, Apex Plaza, Forbury Road, Reading, Berkshire, RG1 1AX, UK.
+If the contract contains the Clause at 18-52.227-74 "Rights in Data
+General" then the "Alternate III" clause applies.
+
+(c) Copyright 1990, 1991, 1992, 1993, 1994, 1996 Open Software
+Foundation,Inc. ALL RIGHTS RESERVED
+(c) Copyright 1996, 1997, 1998, 1999, 2000 The Open Group. ALL RIGHTS
+RESERVED
+
+The Open Group, Open Software Foundation, OSF, OSF/Motif, and Motif are
+Trademarks of The Open Group
+DEC and DIGITAL are registered trademarks of Digital Equipment
+Corporation
+HP is a trademark of Hewlett-Packard Company
+X Window System is a trademark of the Massachusetts Institute of
+Technology
diff --git a/import-layers/meta-openembedded/meta-oe/licenses/OpenLDAP b/import-layers/meta-openembedded/meta-oe/licenses/OpenLDAP
new file mode 100644
index 0000000..05ad757
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/licenses/OpenLDAP
@@ -0,0 +1,47 @@
+The OpenLDAP Public License
+  Version 2.8, 17 August 2003
+
+Redistribution and use of this software and associated documentation
+("Software"), with or without modification, are permitted provided
+that the following conditions are met:
+
+1. Redistributions in source form must retain copyright statements
+   and notices,
+
+2. Redistributions in binary form must reproduce applicable copyright
+   statements and notices, this list of conditions, and the following
+   disclaimer in the documentation and/or other materials provided
+   with the distribution, and
+
+3. Redistributions must contain a verbatim copy of this document.
+
+The OpenLDAP Foundation may revise this license from time to time.
+Each revision is distinguished by a version number.  You may use
+this Software under terms of this license revision or under the
+terms of any subsequent revision of the license.
+
+THIS SOFTWARE IS PROVIDED BY THE OPENLDAP FOUNDATION AND ITS
+CONTRIBUTORS ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT
+SHALL THE OPENLDAP FOUNDATION, ITS CONTRIBUTORS, OR THE AUTHOR(S)
+OR OWNER(S) OF THE SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+The names of the authors and copyright holders must not be used in
+advertising or otherwise to promote the sale, use or other dealing
+in this Software without specific, written prior permission.  Title
+to copyright in this Software shall at all times remain with copyright
+holders.
+
+OpenLDAP is a registered trademark of the OpenLDAP Foundation.
+
+Copyright 1999-2003 The OpenLDAP Foundation, Redwood City,
+California, USA.  All Rights Reserved.  Permission to copy and
+distribute verbatim copies of this document is granted.
diff --git a/import-layers/meta-openembedded/meta-oe/licenses/QWTv1.0 b/import-layers/meta-openembedded/meta-oe/licenses/QWTv1.0
new file mode 100644
index 0000000..9c01f7e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/licenses/QWTv1.0
@@ -0,0 +1,543 @@
+                             Qwt License
+                           Version 1.0, January 1, 2003
+
+The Qwt library and included programs are provided under the terms
+of the GNU LESSER GENERAL PUBLIC LICENSE (LGPL) with the following
+exceptions:
+
+    1. Widgets that are subclassed from Qwt widgets do not
+       constitute a derivative work.
+
+    2. Static linking of applications and widgets to the
+       Qwt library does not constitute a derivative work
+       and does not require the author to provide source
+       code for the application or widget, use the shared
+       Qwt libraries, or link their applications or
+       widgets against a user-supplied version of Qwt.
+
+       If you link the application or widget to a modified
+       version of Qwt, then the changes to Qwt must be 
+       provided under the terms of the LGPL in sections
+       1, 2, and 4.
+
+    3. You do not have to provide a copy of the Qwt license
+       with programs that are linked to the Qwt library, nor
+       do you have to identify the Qwt license in your
+       program or documentation as required by section 6
+       of the LGPL.
+
+
+       However, programs must still identify their use of Qwt.
+       The following example statement can be included in user
+       documentation to satisfy this requirement:
+
+           [program/widget] is based in part on the work of
+           the Qwt project (http://qwt.sf.net).
+
+----------------------------------------------------------------------
+
+
+          GNU LESSER GENERAL PUBLIC LICENSE
+               Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+                Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+          GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+                NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+             END OF TERMS AND CONDITIONS
+
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
+
+
diff --git a/import-layers/meta-openembedded/meta-oe/licenses/TLWG b/import-layers/meta-openembedded/meta-oe/licenses/TLWG
new file mode 100644
index 0000000..a124184
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/licenses/TLWG
@@ -0,0 +1,150 @@
+This package collects Thai scalable fonts available in free licenses, and
+maintains and distributes them under GNU General Public License with
+original authors' permissions.
+
+Some fonts cannot be GPL, because they are based on fonts with different
+licenses. See the list of such fonts at the end of this file.
+
+Copyright:
+
+	- Kinnari:
+
+	Copyright (C) 1999 Db Type. All Rights Reserved.
+	Copyright (C) 2007 National Electronics and Computer Technology Center.
+	All Rights Reserved.
+
+	- Garuda:
+
+	Generated by NECTEC for Public Domain.
+	Modified under GNU General Public License by TLWG.
+
+	- Norasi:
+
+	Copyright (C) 1999, The National Font Project (v.beta). 
+	Yannis Haralambous, Virach Sornlertlamvanich and Anutara Tantraporn.
+	All rights reserved.
+	Modified under GNU General Public License, with creators' permission,
+	by Thai Linux Working Group (TLWG).
+
+	- Loma:
+
+	Copyright (C) 2003, NECTEC. All rights reserved.
+
+	- TlwgMono:
+
+	Copyright (C) 2003 Poonlap Veerathanabutr <poonlap@linux.thai.net>
+
+	- Tlwg Typewriter:
+
+	Copyright (C) 2003, 2004 Poonlap Veerathanabutr <poonlap@linux.thai.net>
+
+	- Tlwg Typist:
+
+	Tlwg Typist, based on Poonlap Veerathanabutr's Tlwg Typewriter.
+
+	Copyright (C) 2005-2006 Theppitak Karoonboonyanan. Tlwg Typewriter,
+	Free Thai Pseudo Monospace outline font.
+
+	Copyright (C) 2003, 2004 Poonlap Veerathanabutr <poonlap@linux.thai.net>
+
+	- Purisa:
+
+	Copyright (C) 2003, 2004 Poonlap Veerathanabutr 
+	<poonlap@linux.thai.net>, GPL license
+
+	- Sawasdee:
+
+	Copyright (C) 2007 Pol Udomwittayanukul <webnaipol@gmail.com>.
+	All rights reserved.
+
+	- Umpush:
+
+	Copyright (C) 2003 NECTEC. All rights reserved.
+	Copyright (c) 2007 Widhaya Trisarnwadhana <widhaya3@gmail.com>.
+	All rights reserved.
+
+License:
+
+	This font 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 font 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 font; if not, write to the Free Software Foundation,
+	Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+	As a special exception, if you create a document which uses this font,
+	and embed this font or unaltered portions of this font into the
+	document, this font does not by itself cause the resulting document
+	to be covered by the GNU General Public License. This exception does
+	not however invalidate any other reasons why the document might be
+	covered by the GNU General Public License. If you modify this font,
+	you may extend this exception to your version of the font, but you
+	are not obligated to do so. If you do not wish to do so, delete this
+	exception statement from your version.
+
+See included GPL file for the GNU General Public License (GPL) terms.
+
+
+* Non-GPL Fonts:
+
+- Waree:
+
+Copyright:
+
+	Copyright (C) 2003 by Bitstream, Inc. All Rights Reserved.
+	TLWG changes are in public domain.
+
+	Bitstream Vera is a trademark of Bitstream, Inc.
+
+License:
+
+	Permission is hereby granted, free of charge, to any person obtaining
+	a copy of the fonts accompanying this license ("Fonts") and associated
+	documentation files (the "Font Software"), to reproduce and distribute
+	the Font Software, including without limitation the rights to use,
+	copy, merge, publish, distribute, and/or sell copies of the Font
+	Software, and to permit persons to whom the Font Software is furnished
+	to do so, subject to the following conditions:
+
+	The above copyright and trademark notices and this permission notice
+	shall be included in all copies of one or more of the Font Software
+	typefaces.
+
+	The Font Software may be modified, altered, or added to, and in
+	particular the designs of glyphs or characters in the Fonts may be
+	modified and additional glyphs or characters may be added to the
+	Fonts, only if the fonts are renamed to names not containing either
+	the words "Bitstream" or the word "Vera".
+
+	This License becomes null and void to the extent applicable to Fonts
+	or Font Software that has been modified and is distributed under the
+	"Bitstream Vera" names.
+
+	The Font Software may be sold as part of a larger software package
+	but no copy of one or more of the Font Software typefaces may be sold
+	by itself.
+
+	THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+	EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+	MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+	OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL
+	BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR
+	OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL,
+	OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+	OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT
+	SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
+
+	Except as contained in this notice, the names of Gnome, the Gnome
+	Foundation, and Bitstream Inc., shall not be used in advertising or
+	otherwise to promote the sale, use or other dealings in this Font
+	Software without prior written authorization from the Gnome Foundation
+	or Bitstream Inc., respectively. For further information, contact:
+	fonts at gnome dot org. 
+
diff --git a/import-layers/meta-openembedded/meta-oe/licenses/flite b/import-layers/meta-openembedded/meta-oe/licenses/flite
new file mode 100644
index 0000000..51e67fd
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/licenses/flite
@@ -0,0 +1,32 @@
+/*************************************************************************/
+/*                                                                       */
+/*                  Language Technologies Institute                      */
+/*                     Carnegie Mellon University                        */
+/*                      Copyright (c) 1999-2009                          */
+/*                        All Rights Reserved.                           */
+/*                                                                       */
+/*  Permission is hereby granted, free of charge, to use and distribute  */
+/*  this software and its documentation without restriction, including   */
+/*  without limitation the rights to use, copy, modify, merge, publish,  */
+/*  distribute, sublicense, and/or sell copies of this work, and to      */
+/*  permit persons to whom this work is furnished to do so, subject to   */
+/*  the following conditions:                                            */
+/*   1. The code must retain the above copyright notice, this list of    */
+/*      conditions and the following disclaimer.                         */
+/*   2. Any modifications must be clearly marked as such.                */
+/*   3. Original authors' names are not deleted.                         */
+/*   4. The authors' names are not used to endorse or promote products   */
+/*      derived from this software without specific prior written        */
+/*      permission.                                                      */
+/*                                                                       */
+/*  CARNEGIE MELLON UNIVERSITY AND THE CONTRIBUTORS TO THIS WORK         */
+/*  DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING      */
+/*  ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT   */
+/*  SHALL CARNEGIE MELLON UNIVERSITY NOR THE CONTRIBUTORS BE LIABLE      */
+/*  FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES    */
+/*  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN   */
+/*  AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,          */
+/*  ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF       */
+/*  THIS SOFTWARE.                                                       */
+/*                                                                       */
+/*************************************************************************/
diff --git a/import-layers/meta-openembedded/meta-oe/licenses/gnuplot b/import-layers/meta-openembedded/meta-oe/licenses/gnuplot
new file mode 100644
index 0000000..ff6fe23
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/licenses/gnuplot
@@ -0,0 +1,29 @@
+/*[
+ * Copyright 1986 - 1993, 1998, 2004   Thomas Williams, Colin Kelley
+ *
+ * Permission to use, copy, and distribute this software and its
+ * documentation for any purpose with or without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and
+ * that both that copyright notice and this permission notice appear
+ * in supporting documentation.
+ *
+ * Permission to modify the software is granted, but not the right to
+ * distribute the complete modified source code.  Modifications are to
+ * be distributed as patches to the released version.  Permission to
+ * distribute binaries produced by compiling modified sources is granted,
+ * provided you
+ *   1. distribute the corresponding source modifications from the
+ *    released version in the form of a patch file along with the binaries,
+ *   2. add special version identification to distinguish your version
+ *    in addition to the base release version number,
+ *   3. provide your name and address as the primary contact for the
+ *    support of your modified version, and
+ *   4. retain our contact information in regard to use of the base
+ *    software.
+ * Permission to distribute the released version of the source code along
+ * with corresponding source modifications in the form of a patch file is
+ * granted with same provisions 2 through 4 for binary distributions.
+ *
+ * This software is provided "as is" without express or implied warranty
+ * to the extent permitted by applicable law.
+]*/
diff --git a/import-layers/meta-openembedded/meta-oe/licenses/iozone3 b/import-layers/meta-openembedded/meta-oe/licenses/iozone3
new file mode 100644
index 0000000..3468fa9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/licenses/iozone3
@@ -0,0 +1,62 @@
+LICENSE:
+
+ Copyright 1991, 1992, 1994, 1998, 1999, 2002   William D. Norcott
+
+ License to freely use and distribute this software is hereby granted 
+ by the author, subject to the condition that this copyright notice 
+ remains intact.  The author retains the exclusive right to publish 
+ derivative works based on this work, including, but not limited to
+ revised versions of this work.
+
+
+
+Below is author reply to question about distributing iozone3 in
+OpenEmbedded:
+
+========================================================================
+
+Marcin,
+
+        Re-distribution is permitted as long as the copyright is
+    maintained and the source code is not changed. I do not
+    see a problem with your mods to enable fileop for Linux-arm,
+    as these mods have been returned to the Iozone folks,
+    and they have been accepted for inclusion in the next
+    release :-)
+
+Thank you for your contribution,
+Don Capps
+
+----- Original Message ----- 
+From: "Marcin Juszkiewicz" <firma@hrw.one.pl>
+To: "Don Capps" <don.capps2@verizon.net>; "William D. Norcott" 
+<wnorcott@us.oracle.com>
+Sent: Sunday, October 29, 2006 4:55 PM
+Subject: iozone3 263 patch for arm and License question
+
+
+> Morning
+>
+> I want to include iozone3 in OpenEmbedded [1] metadata to give it for
+> other developers. Currently OE is used to build few distributions for
+> misc platforms: ARM, SH3, SH4, x86, PowerPC and different types of
+> machines (PDA, settopbox, devboards, desktops, thin clients, routers).
+>
+> According to your distribution of derivations is forbidden. Packaging
+> iozone3 in OpenEmbedded will not involve any source code changes. But
+> when I was building it for ARM I discovered that fileop binary was not
+> built - so I created patch for it (attached). Not yet tested it on target
+> device.
+>
+> Thus, I seek your written permission via e-mail to distribute a package of
+> the unmodified source code and also a package of the pre-compiled binary.
+> Your copyright statement will be included in the package.
+>
+>
+> 1. http://www.openembedded.org/
+>
+> Regards
+> -- 
+> JID: hrw-jabber.org
+> OpenEmbedded developer/consultant
+
diff --git a/import-layers/meta-openembedded/meta-oe/licenses/nbench-byte b/import-layers/meta-openembedded/meta-oe/licenses/nbench-byte
new file mode 100644
index 0000000..7e47ba6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/licenses/nbench-byte
@@ -0,0 +1,10 @@
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/import-layers/meta-openembedded/meta-oe/licenses/unRAR b/import-layers/meta-openembedded/meta-oe/licenses/unRAR
new file mode 100644
index 0000000..5f78b72
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/licenses/unRAR
@@ -0,0 +1,41 @@
+ ******    *****   ******   unRAR - free utility for RAR archives
+ **   **  **   **  **   **  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ ******   *******  ******    License for use and distribution of
+ **   **  **   **  **   **   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ **   **  **   **  **   **         FREE portable version
+                                   ~~~~~~~~~~~~~~~~~~~~~
+
+      The source code of unRAR utility is freeware. This means:
+
+   1. All copyrights to RAR and the utility unRAR are exclusively
+      owned by the author - Alexander Roshal.
+
+   2. The unRAR sources may be used in any software to handle RAR
+      archives without limitations free of charge, but cannot be used
+      to re-create the RAR compression algorithm, which is proprietary.
+      Distribution of modified unRAR sources in separate form or as a
+      part of other software is permitted, provided that it is clearly
+      stated in the documentation and source comments that the code may
+      not be used to develop a RAR (WinRAR) compatible archiver.
+
+   3. The unRAR utility may be freely distributed. No person or company 
+      may charge a fee for the distribution of unRAR without written
+      permission from the copyright holder.
+
+   4. THE RAR ARCHIVER AND THE UNRAR UTILITY ARE DISTRIBUTED "AS IS".
+      NO WARRANTY OF ANY KIND IS EXPRESSED OR IMPLIED.  YOU USE AT 
+      YOUR OWN RISK. THE AUTHOR WILL NOT BE LIABLE FOR DATA LOSS, 
+      DAMAGES, LOSS OF PROFITS OR ANY OTHER KIND OF LOSS WHILE USING
+      OR MISUSING THIS SOFTWARE.
+
+   5. Installing and using the unRAR utility signifies acceptance of
+      these terms and conditions of the license.
+
+   6. If you don't agree with terms of the license you must remove
+      unRAR files from your storage devices and cease to use the
+      utility.
+
+      Thank you for your interest in RAR and unRAR.
+
+
+                                            Alexander L. Roshal
\ No newline at end of file
diff --git a/import-layers/meta-openembedded/meta-oe/licenses/vim b/import-layers/meta-openembedded/meta-oe/licenses/vim
new file mode 100644
index 0000000..4aa818e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/licenses/vim
@@ -0,0 +1,81 @@
+VIM LICENSE
+
+I)  There are no restrictions on distributing unmodified copies of Vim except
+    that they must include this license text.  You can also distribute
+    unmodified parts of Vim, likewise unrestricted except that they must
+    include this license text.  You are also allowed to include executables
+    that you made from the unmodified Vim sources, plus your own usage
+    examples and Vim scripts.
+
+II) It is allowed to distribute a modified (or extended) version of Vim,
+    including executables and/or source code, when the following four
+    conditions are met:
+    1) This license text must be included unmodified.
+    2) The modified Vim must be distributed in one of the following five ways:
+       a) If you make changes to Vim yourself, you must clearly describe in
+	  the distribution how to contact you.  When the maintainer asks you
+	  (in any way) for a copy of the modified Vim you distributed, you
+	  must make your changes, including source code, available to the
+	  maintainer without fee.  The maintainer reserves the right to
+	  include your changes in the official version of Vim.  What the
+	  maintainer will do with your changes and under what license they
+	  will be distributed is negotiable.  If there has been no negotiation
+	  then this license, or a later version, also applies to your changes.
+	  The current maintainer is Bram Moolenaar <Bram@vim.org>.  If this
+	  changes it will be announced in appropriate places (most likely
+	  vim.sf.net, www.vim.org and/or comp.editors).  When it is completely
+	  impossible to contact the maintainer, the obligation to send him
+	  your changes ceases.  Once the maintainer has confirmed that he has
+	  received your changes they will not have to be sent again.
+       b) If you have received a modified Vim that was distributed as
+	  mentioned under a) you are allowed to further distribute it
+	  unmodified, as mentioned at I).  If you make additional changes the
+	  text under a) applies to those changes.
+       c) Provide all the changes, including source code, with every copy of
+	  the modified Vim you distribute.  This may be done in the form of a
+	  context diff.  You can choose what license to use for new code you
+	  add.  The changes and their license must not restrict others from
+	  making their own changes to the official version of Vim.
+       d) When you have a modified Vim which includes changes as mentioned
+	  under c), you can distribute it without the source code for the
+	  changes if the following three conditions are met:
+	  - The license that applies to the changes permits you to distribute
+	    the changes to the Vim maintainer without fee or restriction, and
+	    permits the Vim maintainer to include the changes in the official
+	    version of Vim without fee or restriction.
+	  - You keep the changes for at least three years after last
+	    distributing the corresponding modified Vim.  When the maintainer
+	    or someone who you distributed the modified Vim to asks you (in
+	    any way) for the changes within this period, you must make them
+	    available to him.
+	  - You clearly describe in the distribution how to contact you.  This
+	    contact information must remain valid for at least three years
+	    after last distributing the corresponding modified Vim, or as long
+	    as possible.
+       e) When the GNU General Public License (GPL) applies to the changes,
+	  you can distribute the modified Vim under the GNU GPL version 2 or
+	  any later version.
+    3) A message must be added, at least in the output of the ":version"
+       command and in the intro screen, such that the user of the modified Vim
+       is able to see that it was modified.  When distributing as mentioned
+       under 2)e) adding the message is only required for as far as this does
+       not conflict with the license used for the changes.
+    4) The contact information as required under 2)a) and 2)d) must not be
+       removed or changed, except that the person himself can make
+       corrections.
+
+III) If you distribute a modified version of Vim, you are encouraged to use
+     the Vim license for your changes and make them available to the
+     maintainer, including the source code.  The preferred way to do this is
+     by e-mail or by uploading the files to a server and e-mailing the URL.
+     If the number of changes is small (e.g., a modified Makefile) e-mailing a
+     context diff will do.  The e-mail address to be used is
+     <maintainer@vim.org>
+
+IV)  It is not allowed to remove this license from the distribution of the Vim
+     sources, parts of it or from a modified version.  You may use this
+     license for previous Vim releases instead of the license that they came
+     with, at your option.
+
+===
+Read more about this license at http://vimdoc.sourceforge.net/htmldoc/uganda.html#license
diff --git a/import-layers/meta-openembedded/meta-oe/licenses/zsh b/import-layers/meta-openembedded/meta-oe/licenses/zsh
new file mode 100644
index 0000000..1fb1fc4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/licenses/zsh
@@ -0,0 +1,37 @@
+Unless otherwise noted in the header of specific files, files in this
+distribution have the licence shown below.
+
+However, note that certain shell functions are licensed under versions
+of the GNU General Public Licence.  Anyone distributing the shell as a
+binary including those files needs to take account of this.  Search
+shell functions for "Copyright" for specific copyright information.
+None of the core functions are affected by this, so those files may
+simply be omitted.
+
+--
+
+The Z Shell is copyright (c) 1992-2009 Paul Falstad, Richard Coleman,
+Zoltán Hidvégi, Andrew Main, Peter Stephenson, Sven Wischnowsky, and
+others.  All rights reserved.  Individual authors, whether or not
+specifically named, retain copyright in all changes; in what follows, they
+are referred to as `the Zsh Development Group'.  This is for convenience
+only and this body has no legal status.  The Z shell is distributed under
+the following licence; any provisions made in individual files take
+precedence.
+
+Permission is hereby granted, without written agreement and without
+licence or royalty fees, to use, copy, modify, and distribute this
+software and to distribute modified versions of this software for any
+purpose, provided that the above copyright notice and the following
+two paragraphs appear in all copies of this software.
+
+In no event shall the Zsh Development Group be liable to any party for
+direct, indirect, special, incidental, or consequential damages arising out
+of the use of this software and its documentation, even if the Zsh
+Development Group have been advised of the possibility of such damage.
+
+The Zsh Development Group specifically disclaim any warranties, including,
+but not limited to, the implied warranties of merchantability and fitness
+for a particular purpose.  The software provided hereunder is on an "as is"
+basis, and the Zsh Development Group have no obligation to provide
+maintenance, support, updates, enhancements, or modifications.
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/analyze-suspend/analyze-suspend_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/analyze-suspend/analyze-suspend_git.bb
new file mode 100644
index 0000000..d97ff0a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/analyze-suspend/analyze-suspend_git.bb
@@ -0,0 +1,29 @@
+SUMMARY = "Analyze Suspend"
+DESCRIPTION = "analyze-suspend is a tool for system developers to visualize \
+the activity between suspend and resume, allowing them to identify \
+inefficiencies and bottlenecks."
+HOMEPAGE = "https://01.org/suspendresume"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e"
+
+# Apart from the listed RDEPENDS, analyze-suspend depends on some features
+# provided by the kernel. These options are:
+#   - CONFIG_PM_DEBUG=y
+#   - CONFIG_PM_SLEEP_DEBUG=y
+#   - CONFIG_FTRACE=y
+#   - CONFIG_FUNCTION_TRACER=y
+#   - CONFIG_FUNCTION_GRAPH_TRACER=y
+
+RDEPENDS_${PN} += "python-core python-datetime python-stringold"
+
+PV = "3.2+gitr${SRCPV}"
+SRCREV = "bce3cbec43bc2ce7a8c79b210314dd9d9ac1010b"
+SRC_URI = "git://github.com/01org/suspendresume.git;protocol=https"
+S = "${WORKDIR}/git"
+
+do_install() {
+	install -Dm 0755 analyze_suspend.py ${D}${bindir}/analyze_suspend.py
+	install -Dm 0644 README ${D}${docdir}/analyze-suspend/README
+}
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/bonnie/bonnie++_1.03e.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/bonnie/bonnie++_1.03e.bb
new file mode 100644
index 0000000..2c1217e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/bonnie/bonnie++_1.03e.bb
@@ -0,0 +1,32 @@
+SUMMARY = "Tests large file IO and creation/deletion of small files"
+HOMEPAGE = "http://www.coker.com.au/bonnie++/"
+SECTION = "benchmark/tests"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://copyright.txt;md5=cd4dde95a6b9d122f0a9150ae9cc3ee0"
+
+SRC_URI = "http://www.coker.com.au/bonnie++/${BPN}-${PV}.tgz \
+           file://gcc-4.3-fixes.patch \
+"
+SRC_URI[md5sum] = "750aa5b5051263a99c6c195888c74968"
+SRC_URI[sha256sum] = "cb3866116634bf65760b6806be4afa7e24a1cad6f145c876df8721f01ba2e2cb"
+
+inherit autotools-brokensep
+
+SCRIPTS = "bon_csv2html bon_csv2txt"
+EXES = "bonnie++ zcav"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+do_install () {
+    install -d ${D}/${bindir}
+    install -d ${D}/${sbindir}
+    install -m 0755 ${EXES} ${D}/${sbindir}
+    install -m 0755 ${SCRIPTS} ${D}/${bindir}
+}
+
+PACKAGES =+ "bonnie-scripts"
+
+FILES_${PN} = "${sbindir}"
+FILES_bonnie-scripts = "${bindir}"
+
+RDEPENDS_bonnie-scripts += "perl"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/bonnie/files/gcc-4.3-fixes.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/bonnie/files/gcc-4.3-fixes.patch
new file mode 100644
index 0000000..67f1b74
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/bonnie/files/gcc-4.3-fixes.patch
@@ -0,0 +1,19 @@
+Includes string.h to one of the source file.
+
+Upstream-Status: Inappropriate [not author.]
+---
+ zcav.cpp |    1 +
+ 1 file changed, 1 insertion(+)
+
+Index: bonnie++-1.03a/zcav.cpp
+===================================================================
+--- bonnie++-1.03a.orig/zcav.cpp
++++ bonnie++-1.03a/zcav.cpp
+@@ -15,6 +15,7 @@ using namespace std;
+ #else
+ #include <vector.h>
+ #endif
++#include <string.h>
+ 
+ // Read the specified number of megabytes of data from the fd and return the
+ // amount of time elapsed in seconds.
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/cpuburn/cpuburn-neon_20140626.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/cpuburn/cpuburn-neon_20140626.bb
new file mode 100644
index 0000000..14e3fc4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/cpuburn/cpuburn-neon_20140626.bb
@@ -0,0 +1,30 @@
+SUMMARY = "CPU burn app that loads the NEON coprocessor fully"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://burn.S;md5=823abc72c2cd448e87df9bc5355a4456"
+
+DL_DIR_append = "/${PN}-${PV}"
+
+# Ensure to make this available for machine which has neon
+COMPATIBLE_MACHINE = "(${@bb.utils.contains("TUNE_FEATURES", "neon", "${MACHINE}", "Invalid!", d)})"
+
+SRC_URI = "http://hardwarebug.org/files/burn.S;name=mru \
+           https://raw.githubusercontent.com/ssvb/cpuburn-arm/dd5c5ba58d2b0b23cfab4a286f9d3f5510000f20/cpuburn-a8.S;name=ssvb"
+
+SRC_URI[mru.md5sum] = "823abc72c2cd448e87df9bc5355a4456"
+SRC_URI[mru.sha256sum] = "01d9fc04f83740c513c25401dcc89c11b2a5a6013e70bfca42b7b02129f88cd2"
+SRC_URI[ssvb.md5sum] = "ba0ef2939a3b3b487523448c67544e94"
+SRC_URI[ssvb.sha256sum] = "ce42ebdc71c876a33d9f7534355ef76cefa0d00ddb19ad69cf05a266c861d08d"
+
+S = "${WORKDIR}"
+
+do_compile() {
+    ${CC} ${CFLAGS} ${LDFLAGS} burn.S -o burn
+    ${CC} ${CFLAGS} ${LDFLAGS} cpuburn-a8.S -o burn-neona8
+}
+
+do_install() {
+    install -d ${D}${bindir}
+    install -m 0755 ${S}/burn ${D}${bindir}/burn-neon
+    install -m 0755 ${S}/burn-neona8 ${D}${bindir}/
+}
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/dbench/dbench_4.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/dbench/dbench_4.0.bb
new file mode 100644
index 0000000..1915e4c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/dbench/dbench_4.0.bb
@@ -0,0 +1,25 @@
+SUMMARY = "The dbench (disk) and tbench (TCP) benchmarks"
+SUMMARY_dbench = "Filesystem load benchmark"
+SUMMARY_tbench = "TCP load benchmark"
+HOMEPAGE = "http://samba.org/ftp/tridge/dbench/"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+DEPENDS = "popt"
+
+SRC_URI = "\
+    http://samba.org/ftp/tridge/dbench/dbench-${PV}.tar.gz \
+    file://destdir.patch \
+    file://makefile.patch"
+
+inherit autotools
+
+PACKAGES =+ "tbench tbench-dbg"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+FILES_tbench = "${bindir}/tbench* ${prefix}/share/client.txt"
+FILES_tbench-dbg += "${bindir}/.debug/tbench*"
+
+SRC_URI[md5sum] = "1fe56ff71b9a416f8889d7150ac54da4"
+SRC_URI[sha256sum] = "6001893f34e68a3cfeb5d424e1f2bfef005df96a22d86f35dc770c5bccf3aa8a"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/dbench/files/destdir.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/dbench/files/destdir.patch
new file mode 100644
index 0000000..4cd2a35
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/dbench/files/destdir.patch
@@ -0,0 +1,28 @@
+Append $(DESTDIR) to all $(bindir), $(datadir) and $(mandir). Got 
+this patch from OE commit id 709c4d66e0b107ca606941b988bad717c0b45d9b
+
+Upstream-Status: Inappropriate [not author]
+
+Index: dbench-3.04/Makefile.in
+===================================================================
+--- dbench-3.04.orig/Makefile.in	2006-09-17 20:21:07.000000000 +0200
++++ dbench-3.04/Makefile.in	2006-09-17 20:21:36.000000000 +0200
+@@ -32,12 +32,12 @@
+ 
+ # Careful here: don't install client.txt over itself.
+ install: all
+-	${INSTALLCMD} -d $(bindir) $(datadir) $(mandir)
+-	${INSTALLCMD} dbench tbench tbench_srv $(bindir)
+-	${INSTALLCMD} client.txt $(datadir)
+-	${INSTALLCMD} -m644 dbench.1 $(mandir)
+-	ln -sf dbench.1 $(mandir)/tbench.1
+-	ln -sf dbench.1 $(mandir)/tbench_srv.1
++	${INSTALLCMD} -d $(DESTDIR)$(bindir) $(DESTDIR)$(datadir) $(DESTDIR)$(mandir)
++	${INSTALLCMD} dbench tbench tbench_srv $(DESTDIR)$(bindir)
++	${INSTALLCMD} @top_srcdir@/client.txt $(DESTDIR)$(datadir)
++	${INSTALLCMD} -m644 @top_srcdir@/dbench.1 $(DESTDIR)$(mandir)
++	ln -sf dbench.1 $(DESTDIR)$(mandir)/tbench.1
++	ln -sf dbench.1 $(DESTDIR)$(mandir)/tbench_srv.1
+ 
+ clean:
+ 	rm -f *.o *~ dbench tbench tbench_srv
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/dbench/files/makefile.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/dbench/files/makefile.patch
new file mode 100644
index 0000000..11fb4ff
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/dbench/files/makefile.patch
@@ -0,0 +1,18 @@
+Add space between install -m option and its argument. Got this patch from 
+OE 709c4d66e0b107ca606941b988bad717c0b45d9b
+
+Upstream-Status: Inappropriate [not author]
+
+Index: dbench-4.0/Makefile.in
+===================================================================
+--- dbench-4.0.orig/Makefile.in
++++ dbench-4.0/Makefile.in
+@@ -35,7 +35,7 @@ install: all
+ 	${INSTALLCMD} -d $(DESTDIR)$(bindir) $(DESTDIR)$(datadir) $(DESTDIR)$(mandir)
+ 	${INSTALLCMD} dbench tbench tbench_srv $(DESTDIR)$(bindir)
+ 	${INSTALLCMD} @top_srcdir@/client.txt $(DESTDIR)$(datadir)
+-	${INSTALLCMD} -m644 @top_srcdir@/dbench.1 $(DESTDIR)$(mandir)
++	${INSTALLCMD} -m 644 @top_srcdir@/dbench.1 $(DESTDIR)$(mandir)
+ 	ln -sf dbench.1 $(DESTDIR)$(mandir)/tbench.1
+ 	ln -sf dbench.1 $(DESTDIR)$(mandir)/tbench_srv.1
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/fio/fio_2.2.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/fio/fio_2.2.6.bb
new file mode 100644
index 0000000..db67173
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/fio/fio_2.2.6.bb
@@ -0,0 +1,41 @@
+SUMMARY = "Filesystem and hardware benchmark and stress tool"
+DESCRIPTION = "fio is an I/O tool meant to be used both for benchmark and \
+stress/hardware verification. It has support for a number of I/O engines, \
+I/O priorities (for newer Linux kernels), rate I/O, forked or threaded jobs, \
+and much more. It can work on block devices as well as files. fio accepts \
+job descriptions in a simple-to-understand text format. Several example job \
+files are included. fio displays all sorts of I/O performance information."
+HOMEPAGE = "http://freecode.com/projects/fio"
+SECTION = "console/tests"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833"
+
+DEPENDS = "libaio zlib"
+
+PACKAGECONFIG_NUMA = "numa"
+# ARM does not currently support NUMA
+PACKAGECONFIG_NUMA_arm = ""
+
+PACKAGECONFIG ??= "${PACKAGECONFIG_NUMA}"
+PACKAGECONFIG[numa] = ",--disable-numa,numactl"
+
+# rev for v2.2.6
+SRCREV = "f52c9691bc8c285f3445235c69acdfd6de7f9b82"
+SRC_URI = "git://git.kernel.dk/fio.git"
+
+S = "${WORKDIR}/git"
+
+# avoids build breaks when using no-static-libs.inc
+DISABLE_STATIC = ""
+
+EXTRA_OEMAKE = "CC='${CC}' LDFLAGS='${LDFLAGS}'"
+
+do_configure() {
+    ./configure ${EXTRA_OECONF}
+}
+
+do_install() {
+    oe_runmake install DESTDIR=${D} prefix=${prefix} mandir=${mandir}
+    install -d ${D}/${docdir}/${PN}
+    cp -R --no-dereference --preserve=mode,links -v ${S}/examples ${D}/${docdir}/${PN}/
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/0001-Fix-wl_surface-should-be-destoryed-after-the-wl_wind.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/0001-Fix-wl_surface-should-be-destoryed-after-the-wl_wind.patch
new file mode 100644
index 0000000..4395081
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/0001-Fix-wl_surface-should-be-destoryed-after-the-wl_wind.patch
@@ -0,0 +1,34 @@
+From 9c74ec83e2929b1d5ab65d5137b6ba42edeb332d Mon Sep 17 00:00:00 2001
+From: Yong Gan <b45748@freescale.com>
+Date: Tue, 27 Oct 2015 18:15:20 +0800
+Subject: [PATCH] Fix: wl_surface should be destoryed after the wl_window
+ destroyed.
+
+Upstream-Status: Submitted [https://github.com/glmark2/glmark2/issues/12]
+
+Signed-off-by: Yong Gan <b45748@freescale.com>
+
+---
+ src/native-state-wayland.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/native-state-wayland.cpp b/src/native-state-wayland.cpp
+index 41fc743..cdcdf34 100644
+--- a/src/native-state-wayland.cpp
++++ b/src/native-state-wayland.cpp
+@@ -56,10 +56,10 @@ NativeStateWayland::~NativeStateWayland()
+             wl_shell_surface_destroy(window_->shell_surface);
+         if (window_->opaque_reqion)
+             wl_region_destroy(window_->opaque_reqion);
+-        if (window_->surface)
+-            wl_surface_destroy(window_->surface);
+         if (window_->native)
+             wl_egl_window_destroy(window_->native);
++        if (window_->surface)
++            wl_surface_destroy(window_->surface);
+         delete window_;
+     }
+ 
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/build-Check-packages-to-be-used-by-the-enabled-flavo.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/build-Check-packages-to-be-used-by-the-enabled-flavo.patch
new file mode 100644
index 0000000..ff13329
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/build-Check-packages-to-be-used-by-the-enabled-flavo.patch
@@ -0,0 +1,43 @@
+From: Otavio Salvador <otavio@ossystems.com.br>
+Subject: [PATCH] build: Check packages to be used by the enabled flavors
+Organization: O.S. Systems Software LTDA.
+
+The packages shouldn't be dynamically detected otherwise the build
+predictability is lost. We now have all packages as mandatory but
+dependent of the flavors which use them.
+
+Upstream-Status: Submitted [https://github.com/glmark2/glmark2/pull/8]
+
+Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
+---
+ wscript | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/wscript b/wscript
+index cab62a3..e7eaed0 100644
+--- a/wscript
++++ b/wscript
+@@ -121,13 +121,17 @@ def configure(ctx):
+                 ('mirclient','mirclient', '0.13', list_contains(Options.options.flavors, 'mir')),
+                 ('wayland-client','wayland-client', None, list_contains(Options.options.flavors, 'wayland')),
+                 ('wayland-egl','wayland-egl', None, list_contains(Options.options.flavors, 'wayland'))]
+-    for (pkg, uselib, atleast, mandatory) in opt_pkgs:
++    for (pkg, uselib, atleast, check) in opt_pkgs:
++        # Check packages required by the flavors
++        if not check:
++            continue
++
+         if atleast is None:
+             ctx.check_cfg(package = pkg, uselib_store = uselib,
+-                          args = '--cflags --libs', mandatory = mandatory)
++                          args = '--cflags --libs', mandatory = True)
+         else:
+             ctx.check_cfg(package = pkg, uselib_store = uselib, atleast_version=atleast,
+-                          args = '--cflags --libs', mandatory = mandatory)
++                          args = '--cflags --libs', mandatory = True)
+ 
+ 
+     # Prepend CXX flags so that they can be overriden by the
+-- 
+2.4.6
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb
new file mode 100644
index 0000000..e29921b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb
@@ -0,0 +1,52 @@
+SUMMARY = "OpenGL (ES) 2.0 benchmark"
+DESCRIPTION = "glmark2 is a benchmark for OpenGL (ES) 2.0. \
+It uses only the subset of the OpenGL 2.0 API that is compatible with OpenGL ES 2.0."
+HOMEPAGE = "https://launchpad.net/glmark2"
+BUGTRACKER = "https://bugs.launchpad.net/glmark2"
+
+LICENSE = "GPLv3+ & SGIv1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
+                    file://COPYING.SGI;beginline=5;md5=269cdab4af6748677acce51d9aa13552"
+
+DEPENDS = "libpng12 jpeg"
+
+PV = "2014.03+${SRCPV}"
+
+SRC_URI = "git://github.com/glmark2/glmark2.git;protocol=https \
+           file://build-Check-packages-to-be-used-by-the-enabled-flavo.patch \
+           file://0001-Fix-wl_surface-should-be-destoryed-after-the-wl_wind.patch"
+SRCREV = "fa71af2dfab711fac87b9504b6fc9862f44bf72a"
+
+S = "${WORKDIR}/git"
+
+inherit waf pkgconfig
+
+PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'x11-gl x11-gles2', '', d)} \
+                  ${@bb.utils.contains('DISTRO_FEATURES', 'wayland opengl', 'wayland-gl wayland-gles2', '', d)} \
+                  drm-gl drm-gles2"
+
+PACKAGECONFIG[x11-gl] = ",,virtual/libgl virtual/libx11"
+PACKAGECONFIG[x11-gles2] = ",,virtual/libgles2 virtual/libx11"
+PACKAGECONFIG[drm-gl] = ",,virtual/libgl libdrm"
+PACKAGECONFIG[drm-gles2] = ",,virtual/libgles2 libdrm"
+PACKAGECONFIG[wayland-gl] = ",,virtual/libgl wayland"
+PACKAGECONFIG[wayland-gles2] = ",,virtual/libgles2 wayland"
+
+python __anonymous() {
+    packageconfig = (d.getVar("PACKAGECONFIG", True) or "").split()
+    flavors = []
+    if "x11-gles2" in packageconfig:
+        flavors.append("x11-glesv2")
+    if "x11-gl" in packageconfig:
+        flavors.append("x11-gl")
+    if "wayland-gles2" in packageconfig:
+        flavors.append("wayland-glesv2")
+    if "wayland-gl" in packageconfig:
+        flavors.append("wayland-gl")
+    if "drm-gles2" in packageconfig:
+        flavors.append("drm-glesv2")
+    if "drm-gl" in packageconfig:
+        flavors.append("drm-gl")
+    if flavors:
+        d.appendVar("EXTRA_OECONF", " --with-flavors=%s" % ",".join(flavors))
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iozone3/iozone3/copyright.txt b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iozone3/iozone3/copyright.txt
new file mode 100644
index 0000000..3468fa9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iozone3/iozone3/copyright.txt
@@ -0,0 +1,62 @@
+LICENSE:
+
+ Copyright 1991, 1992, 1994, 1998, 1999, 2002   William D. Norcott
+
+ License to freely use and distribute this software is hereby granted 
+ by the author, subject to the condition that this copyright notice 
+ remains intact.  The author retains the exclusive right to publish 
+ derivative works based on this work, including, but not limited to
+ revised versions of this work.
+
+
+
+Below is author reply to question about distributing iozone3 in
+OpenEmbedded:
+
+========================================================================
+
+Marcin,
+
+        Re-distribution is permitted as long as the copyright is
+    maintained and the source code is not changed. I do not
+    see a problem with your mods to enable fileop for Linux-arm,
+    as these mods have been returned to the Iozone folks,
+    and they have been accepted for inclusion in the next
+    release :-)
+
+Thank you for your contribution,
+Don Capps
+
+----- Original Message ----- 
+From: "Marcin Juszkiewicz" <firma@hrw.one.pl>
+To: "Don Capps" <don.capps2@verizon.net>; "William D. Norcott" 
+<wnorcott@us.oracle.com>
+Sent: Sunday, October 29, 2006 4:55 PM
+Subject: iozone3 263 patch for arm and License question
+
+
+> Morning
+>
+> I want to include iozone3 in OpenEmbedded [1] metadata to give it for
+> other developers. Currently OE is used to build few distributions for
+> misc platforms: ARM, SH3, SH4, x86, PowerPC and different types of
+> machines (PDA, settopbox, devboards, desktops, thin clients, routers).
+>
+> According to your distribution of derivations is forbidden. Packaging
+> iozone3 in OpenEmbedded will not involve any source code changes. But
+> when I was building it for ARM I discovered that fileop binary was not
+> built - so I created patch for it (attached). Not yet tested it on target
+> device.
+>
+> Thus, I seek your written permission via e-mail to distribute a package of
+> the unmodified source code and also a package of the pre-compiled binary.
+> Your copyright statement will be included in the package.
+>
+>
+> 1. http://www.openembedded.org/
+>
+> Regards
+> -- 
+> JID: hrw-jabber.org
+> OpenEmbedded developer/consultant
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iozone3/iozone3_414.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iozone3/iozone3_414.bb
new file mode 100644
index 0000000..14373b9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iozone3/iozone3_414.bb
@@ -0,0 +1,114 @@
+SUMMARY = "Filesystem and Disk Benchmarking Tool"
+HOMEPAGE = "http://www.iozone.org/"
+AUTHOR = "Don Capps <don.capps2@verizon.net>, William D. Norcott <wnorcott@us.oracle.com>"
+SECTION = "console/tests"
+LICENSE = "iozone3"
+LIC_FILES_CHKSUM = "file://iozone.c;beginline=266;endline=270;md5=ab42a6185fd0443978871f11a007ac0b"
+
+SRC_URI = "http://www.iozone.org/src/current/${BPN}_${PV}.tar \
+    file://copyright.txt \
+"
+SRC_URI[md5sum] = "a40dcda593f5841d0aaffe9f21172020"
+SRC_URI[sha256sum] = "9f60e854d7bc5bc3de15355cf5621e15098bd744a26845d11730b3060f4a5fff"
+
+S = "${WORKDIR}/${BPN}_${PV}/src/current/"
+
+#
+# All other arches can use the default OEMAKE except those
+# explicitly listed below. Another, the iozone3 Makefile
+# needs to be told about the cross-compiler explicitly here.
+#
+EXTRA_OEMAKE_powerpc = "linux-powerpc CC='${CC}' GCC='${CC}'"
+EXTRA_OEMAKE_powerpc64 = "linux-powerpc64 CC='${CC}' GCC='${CC}'"
+EXTRA_OEMAKE_arm = "linux-arm CC='${CC}' GCC='${CC}'"
+EXTRA_OEMAKE = "linux CC='${CC}' GCC='${CC}'"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+do_install() {
+    install -d ${D}${bindir} \
+               ${D}${mandir}/man1 \
+               ${D}${datadir}/doc/${BPN}/examples
+
+    install -m 0755 ${S}/iozone ${D}${bindir}
+    install -m 0755 ${S}/fileop ${D}${bindir}
+    install -m 0644 ${WORKDIR}/${BPN}_${PV}/docs/iozone.1 ${D}${mandir}/man1/
+    install -m 0644 ${WORKDIR}/copyright.txt ${D}${datadir}/doc/${BPN}/
+
+    install -m 0644 ${S}/*.dem ${D}${datadir}/doc/${BPN}/examples
+    install -m 0644 ${S}/client_list ${D}${datadir}/doc/${BPN}/examples
+    install -m 0644 ${S}/Gnuplot.txt ${D}${datadir}/doc/${BPN}/examples
+
+    install -m 0755 ${S}/Generate_Graphs ${D}${datadir}/doc/${BPN}/examples
+    install -m 0755 ${S}/gengnuplot.sh ${D}${datadir}/doc/${BPN}/examples
+    install -m 0755 ${S}/report.pl ${D}${datadir}/doc/${BPN}/examples
+
+    install -m 0644 ${WORKDIR}/${BPN}_${PV}/docs/Iozone_ps.gz ${D}${datadir}/doc/${BPN}/
+    install -m 0644 ${WORKDIR}/${BPN}_${PV}/docs/IOzone_msword_98.pdf ${D}${datadir}/doc/${BPN}/
+    install -m 0644 ${WORKDIR}/${BPN}_${PV}/docs/Run_rules.doc ${D}${datadir}/doc/${BPN}/
+}
+
+FILES_${PN} += "${datadir}/doc/${PN}/copyright.txt"
+
+# LICENSE:
+#
+#  Copyright 1991, 1992, 1994, 1998, 1999, 2002   William D. Norcott
+#
+#  License to freely use and distribute this software is hereby granted
+#  by the author, subject to the condition that this copyright notice
+#  remains intact.  The author retains the exclusive right to publish
+#  derivative works based on this work, including, but not limited to
+#  revised versions of this work.
+#
+
+#
+# Below is author reply to question about distributing iozone3 in
+# OpenEmbedded:
+#
+# ========================================================================
+#
+# Marcin,
+#
+#     Re-distribution is permitted as long as the copyright is
+#     maintained and the source code is not changed. I do not
+#     see a problem with your mods to enable fileop for Linux-arm,
+#     as these mods have been returned to the Iozone folks,
+#     and they have been accepted for inclusion in the next
+#     release :-)
+#
+# Thank you for your contribution,
+# Don Capps
+#
+# ----- Original Message -----
+# From: "Marcin Juszkiewicz" <firma@hrw.one.pl>
+# To: "Don Capps" <don.capps2@verizon.net>; "William D. Norcott"
+# <wnorcott@us.oracle.com>
+# Sent: Sunday, October 29, 2006 4:55 PM
+# Subject: iozone3 263 patch for arm and License question
+#
+#
+# > Morning
+# >
+# > I want to include iozone3 in OpenEmbedded [1] metadata to give it for
+# > other developers. Currently OE is used to build few distributions for
+# > misc platforms: ARM, SH3, SH4, x86, PowerPC and different types of
+# > machines (PDA, settopbox, devboards, desktops, thin clients, routers).
+# >
+# > According to your distribution of derivations is forbidden. Packaging
+# > iozone3 in OpenEmbedded will not involve any source code changes. But
+# > when I was building it for ARM I discovered that fileop binary was not
+# > built - so I created patch for it (attached). Not yet tested it on target
+# > device.
+# >
+# > Thus, I seek your written permission via e-mail to distribute a package of
+# > the unmodified source code and also a package of the pre-compiled binary.
+# > Your copyright statement will be included in the package.
+# >
+# >
+# > 1. http://www.openembedded.org/
+# >
+# > Regards
+# > --
+# > JID: hrw-jabber.org
+# > OpenEmbedded developer/consultant
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/0001-fix-out-of-tree-config.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/0001-fix-out-of-tree-config.patch
new file mode 100644
index 0000000..e8a0297
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/0001-fix-out-of-tree-config.patch
@@ -0,0 +1,52 @@
+iperf: fix out of tree configuration
+
+The configure step uses a package header to check for support of types/declares,
+this package header encapsulates all the required system header for providing
+the needed resources. When configured from an out of tree directory the package
+header is not found due to the hard path.
+We now make the path for package header relative to our 'srcdir' so it is
+found appropriately.
+
+Signed-off-by: Awais Belal <awais_belal@mentor.com>
+---
+diff --git a/configure.ac b/configure.ac
+index 2b3fd20..d420f9e 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -176,8 +176,8 @@ dnl Check for system services
+ 
+ dnl check for multicast
+ if test "$ac_cv_multicast" != no; then
+-  AC_CHECK_TYPES(struct ip_mreq,,,[#include "compat/headers_slim.h"])
+-  AC_CHECK_DECLS(IP_ADD_MEMBERSHIP,,,[#include "compat/headers_slim.h"])
++  AC_CHECK_TYPES(struct ip_mreq,,,[#include "${srcdir}/compat/headers_slim.h"])
++  AC_CHECK_DECLS(IP_ADD_MEMBERSHIP,,,[#include "${srcdir}/compat/headers_slim.h"])
+   AC_MSG_CHECKING(for multicast support)
+   ac_cv_multicast=no
+   if test "$ac_cv_have_decl_IP_ADD_MEMBERSHIP" = yes; then
+@@ -193,9 +193,9 @@ fi
+ 
+ dnl check for IPv6
+ if test "$ac_cv_have_ipv6" != no; then
+-  AC_CHECK_TYPES(struct sockaddr_storage,,,[#include "compat/headers_slim.h"])
+-  AC_CHECK_TYPES(struct sockaddr_in6,,,[#include "compat/headers_slim.h"])
+-  AC_CHECK_DECLS(AF_INET6,,,[#include "compat/headers_slim.h"])
++  AC_CHECK_TYPES(struct sockaddr_storage,,,[#include "${srcdir}/compat/headers_slim.h"])
++  AC_CHECK_TYPES(struct sockaddr_in6,,,[#include "${srcdir}/compat/headers_slim.h"])
++  AC_CHECK_DECLS(AF_INET6,,,[#include "${srcdir}/compat/headers_slim.h"])
+   AC_MSG_CHECKING(for IPv6 headers and structures)
+   ac_cv_have_ipv6=no
+   if test "$ac_cv_type_struct_sockaddr_storage" = yes; then
+@@ -211,9 +211,9 @@ fi
+ 
+ if test "$ac_cv_have_ipv6" = yes; then
+   if test "$ac_cv_multicast" = yes; then
+-    AC_CHECK_TYPES(struct ipv6_mreq,,,[#include "compat/headers_slim.h"])
+-    AC_CHECK_DECLS(IPV6_ADD_MEMBERSHIP,,,[#include "compat/headers_slim.h"])
+-    AC_CHECK_DECLS(IPV6_MULTICAST_HOPS,,,[#include "compat/headers_slim.h"])
++    AC_CHECK_TYPES(struct ipv6_mreq,,,[#include "${srcdir}/compat/headers_slim.h"])
++    AC_CHECK_DECLS(IPV6_ADD_MEMBERSHIP,,,[#include "${srcdir}/compat/headers_slim.h"])
++    AC_CHECK_DECLS(IPV6_MULTICAST_HOPS,,,[#include "${srcdir}/compat/headers_slim.h"])
+     AC_MSG_CHECKING(for IPv6 multicast support)
+     ac_cv_have_ipv6_multicast=no
+     if test "$ac_cv_type_struct_ipv6_mreq" = yes; then
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/iperf-2.0.5_ManPage.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/iperf-2.0.5_ManPage.patch
new file mode 100755
index 0000000..12e8f46
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/iperf-2.0.5_ManPage.patch
@@ -0,0 +1,8 @@
+diff --git iperf-2.0.5/man/Makefile.am iperf-2.0.5/man/Makefile.am
+ index ed97bc6..728873f 100644
+--- iperf-2.0.5/man/Makefile.am
++++ iperf-2.0.5/man/Makefile.am
+@@ -1,2 +1 @@
+-man_MANS = iperf.1
+-dist_man_MANS = $(man_MANS)
++dist_man_MANS = iperf.1
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf/iperf_2.0.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf/iperf_2.0.5.bb
new file mode 100644
index 0000000..4e66792
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf/iperf_2.0.5.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "Iperf is a tool to measure maximum TCP bandwidth, allowing the tuning of various parameters and UDP characteristics"
+HOMEPAGE = "http://dast.nlanr.net/Projects/Iperf/"
+SECTION = "console/network"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e8478eae9f479e39bc34975193360298"
+
+SRC_URI = " ${SOURCEFORGE_MIRROR}/iperf/${BP}.tar.gz \
+            file://iperf-2.0.5_ManPage.patch \
+            file://0001-fix-out-of-tree-config.patch \
+          "
+
+SRC_URI[md5sum] = "44b5536b67719f4250faed632a3cd016"
+SRC_URI[sha256sum] = "636b4eff0431cea80667ea85a67ce4c68698760a9837e1e9d13096d20362265b"
+
+S = "${WORKDIR}/${BP}"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--exec-prefix=${STAGING_DIR_HOST}${layout_exec_prefix}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3/automake-foreign.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3/automake-foreign.patch
new file mode 100644
index 0000000..06c394e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3/automake-foreign.patch
@@ -0,0 +1,17 @@
+Pass the 'foreign' option to automake to enable iperf3 to build.
+
+Upstream-Status: Inappropriate [configuration]
+
+Signed-off-by: Chunrong Guo <b40290@freescale.com>
+
+--- a/configure.ac	2015-10-19 02:49:30.471867352 -0500
++++ b/configure.ac	2015-10-19 02:46:36.207873572 -0500
+@@ -33,7 +33,7 @@
+ 
+ 
+ # Initialize the automake system
+-AM_INIT_AUTOMAKE
++AM_INIT_AUTOMAKE([foreign])
+ AM_MAINTAINER_MODE
+ AM_CONFIG_HEADER(src/iperf_config.h)
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_git.bb
new file mode 100644
index 0000000..4a0f28e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_git.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Network benchmark tool"
+DESCRIPTION = "\
+iperf is a tool for active measurements of the maximum achievable bandwidth \
+on IP networks. It supports tuning of various parameters related to timing, \
+protocols, and buffers. For each test it reports the bandwidth, loss, and \
+other parameters."
+HOMEPAGE = "http://software.es.net/iperf/"
+SECTION = "console/network"
+BUGTRACKER = "https://github.com/esnet/iperf/issues"
+AUTHOR = "ESNET <info@es.net>, Lawrence Berkeley National Laboratory <websupport@lbl.gov>"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=062ab1bc33fae1926387ac1274cb0873"
+
+SRC_URI = "\
+    git://github.com/esnet/iperf.git \
+    file://automake-foreign.patch \
+"
+
+PV = "3.1+gitr${SRCPV}"
+SRCREV = "e396134952a01199326665d1df7c51ae9e62e945"
+
+S = "${WORKDIR}/git"
+
+inherit autotools
+
+PACKAGECONFIG[lksctp] = "ac_cv_header_netinet_sctp_h=yes,ac_cv_header_netinet_sctp_h=no,lksctp-tools"
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-install-perl-lib-to-directory-perl-instead-of-perl5.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-install-perl-lib-to-directory-perl-instead-of-perl5.patch
new file mode 100644
index 0000000..0b8d0e4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-install-perl-lib-to-directory-perl-instead-of-perl5.patch
@@ -0,0 +1,39 @@
+Upstream-Status: Inappropriate [oe-core specific]
+
+libhugetlbfs depends on perl, and perl installs a directory 'perl'
+and make a symlink 'perl5' to it. So just install perl libs in
+libhugetlbfs to directory 'perl' instead of 'perl5'. This can avoid
+the following error:
+| CalledProcessError: Command 'tar -cf - -C .../perl/5.14.3-r1/sysroot-destdir
+| -ps . | tar -xf - -C .../tmp/sysroots/t4240qds'
+| returned non-zero exit status 2 with output
+| tar: ./usr/lib/perl5: Cannot create symlink to `perl': File exists
+| tar: Exiting with failure status due to previous errors
+
+
+Signed-off-by: Ting Liu <b28495@freescale.com>
+
+--- a/Makefileold	2013-10-11 23:07:31.759421318 -0500
++++ b/Makefile	2013-10-11 23:08:01.935571122 -0500
+@@ -173,17 +173,17 @@
+ DOCDIR = $(PREFIX)/share/doc/libhugetlbfs
+ 
+ ifdef CC32
+-PMDIR = $(PREFIX)/lib/perl5/TLBC
++PMDIR = $(PREFIX)/lib/perl/TLBC
+ endif
+ 
+ ifdef CC64
+ ifeq ($(ARCH),x86_64)
+-PMDIR = $(PREFIX)/lib/perl5/TLBC
++PMDIR = $(PREFIX)/lib/perl/TLBC
+ else
+ ifeq ($(ARCH),aarch64)
+-PMDIR = $(PREFIX)/lib/perl5/TLBC
++PMDIR = $(PREFIX)/lib/perl/TLBC
+ else
+-PMDIR = $(PREFIX)/lib64/perl5/TLBC
++PMDIR = $(PREFIX)/lib64/perl/TLBC
+ endif
+ endif
+ endif
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-run_test.py-not-use-hard-coded-path-.-obj-hugeadm.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-run_test.py-not-use-hard-coded-path-.-obj-hugeadm.patch
new file mode 100644
index 0000000..3082d7e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-run_test.py-not-use-hard-coded-path-.-obj-hugeadm.patch
@@ -0,0 +1,43 @@
+From a85fc43243f8bfad12d306a4a0e230fb8b3e828a Mon Sep 17 00:00:00 2001
+From: Ting Liu <b28495@freescale.com>
+Date: Wed, 21 Aug 2013 15:44:57 +0800
+Subject: [PATCH] run_test.py: not use hard coded path ../obj/hugeadm
+
+Hard coded path makes the script impossible to run out of source tree.
+After 'make install', we can use hugeadm utility under DESTDIR.
+
+Upstream-Status: Submitted
+
+Signed-off-by: Ting Liu <b28495@freescale.com>
+---
+ tests/run_tests.py |   12 +++++++++++-
+ 1 files changed, 11 insertions(+), 1 deletions(-)
+
+diff --git a/tests/run_tests.py b/tests/run_tests.py
+index d9a6b35..a9bab8f 100755
+--- a/tests/run_tests.py
++++ b/tests/run_tests.py
+@@ -232,9 +232,19 @@ def get_pagesizes():
+     Use libhugetlbfs' hugeadm utility to get a list of page sizes that have
+     active mount points and at least one huge page allocated to the pool.
+     """
++    local_env = os.environ.copy()
++    local_env["PATH"] = "../obj:%s" % local_env.get("PATH", "")
+     sizes = set()
+     out = ""
+-    (rc, out) = bash("../obj/hugeadm --page-sizes")
++    try:
++        p = subprocess.Popen("hugeadm --page-sizes", shell=True, env=local_env, stdout=subprocess.PIPE)
++        rc = p.wait()
++    except KeyboardInterrupt:
++        return sizes
++    except OSError:
++        return sizes
++    out = p.stdout.read().strip()
++
+     if rc != 0 or out == "": return sizes
+ 
+     for size in out.split("\n"): sizes.add(int(size))
+-- 
+1.7.3.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/fix-lib64-can-not-be-shiped-in-64bit-target.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/fix-lib64-can-not-be-shiped-in-64bit-target.patch
new file mode 100644
index 0000000..676fa8a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/fix-lib64-can-not-be-shiped-in-64bit-target.patch
@@ -0,0 +1,75 @@
+Upstream-Status: Inappropriate [oe-core specific]
+
+
+fix the below error:
+  ERROR: QA Issue: libhugetlbfs: Files/directories were installed but not shipped
+  /usr/lib64
+  /usr/lib64/libhugetlbfs.so
+  /usr/lib64/libhugetlbfs.a
+  /usr/lib64/libhugetlbfs_privutils.so
+  /usr/lib64/perl5
+  /usr/lib64/perl5/TLBC
+  /usr/lib64/perl5/TLBC/PerfCollect.pm
+  /usr/lib64/perl5/TLBC/Report.pm
+  /usr/lib64/perl5/TLBC/DataCollect.pm
+  /usr/lib64/perl5/TLBC/OpCollect.pm
+$<50>ERROR: QA run found fatal errors. Please consider fixing them.
+
+
+Signed-off-by: Guo Chunrong <B40290@freescale.com>
+
+--- a/Makefile	2013-09-23 02:28:57.340566998 -0500
++++ b/Makefile	2013-09-23 02:31:05.344569896 -0500
+@@ -33,7 +33,6 @@
+ CPPFLAGS += -D__LIBHUGETLBFS__ -DPPC_NO_SEGMENTS
+ 
+ ARCH = $(shell uname -m | sed -e s/i.86/i386/)
+-CC = gcc
+ 
+ CUSTOM_LDSCRIPTS = yes
+ 
+@@ -59,9 +58,9 @@
+ CUSTOM_LDSCRIPTS = no
+ else
+ ifeq ($(ARCH),aarch64)
+-CC64 = gcc
++CC64 = $(CC)
+ ELF64 = aarch64elf
+-TMPLIB64 = lib64
++TMPLIB64 = lib
+ CUSTOM_LDSCRIPTS = no
+ else
+ ifeq ($(ARCH),i386)
+@@ -72,7 +71,7 @@
+ ifeq ($(ARCH),x86_64)
+ CC64 = $(CC) -m64
+ ELF64 = elf_x86_64
+-TMPLIB64 = lib64
++TMPLIB64 = lib
+ TMPLIB32 = lib
+ ifneq ($(BUILDTYPE),NATIVEONLY)
+ CC32 = $(CC) -m32
+@@ -172,11 +171,23 @@
+ BINDIR = $(PREFIX)/share/libhugetlbfs
+ EXEDIR = $(PREFIX)/bin
+ DOCDIR = $(PREFIX)/share/doc/libhugetlbfs
++
+ ifdef CC32
+ PMDIR = $(PREFIX)/lib/perl5/TLBC
++endif
++
++ifdef CC64
++ifeq ($(ARCH),x86_64)
++PMDIR = $(PREFIX)/lib/perl5/TLBC
++else
++ifeq ($(ARCH),aarch64)
++PMDIR = $(PREFIX)/lib/perl5/TLBC
+ else
+ PMDIR = $(PREFIX)/lib64/perl5/TLBC
+ endif
++endif
++endif
++
+ MANDIR1 = $(PREFIX)/share/man/man1
+ MANDIR3 = $(PREFIX)/share/man/man3
+ MANDIR7 = $(PREFIX)/share/man/man7
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-avoid-search-host-library-path-for-cros.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-avoid-search-host-library-path-for-cros.patch
new file mode 100644
index 0000000..b3fd843
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-avoid-search-host-library-path-for-cros.patch
@@ -0,0 +1,99 @@
+From 0a2877400a086e9d6ddd32a80462b7a931921dc2 Mon Sep 17 00:00:00 2001
+From: Chunrong Guo <B40290@freescale.com>
+Date: Sun, 8 Sep 2013 23:21:49 -0500
+Subject: [PATCH] libhugetlbfs: avoid search host library path for cross 
+ compilation
+
+Upstream-Status: Inappropriate [oe-core specific]
+
+Signed-off-by: Chunrong Guo <B40290@freescale.com>
+---
+ ldscripts/elf32ppclinux.xB   |    2 +-
+ ldscripts/elf32ppclinux.xBDT |    2 +-
+ ldscripts/elf64ppc.xB        |    2 +-
+ ldscripts/elf64ppc.xBDT      |    2 +-
+ ldscripts/elf_x86_64.xB      |    2 +-
+ ldscripts/elf_x86_64.xBDT    |    2 +-
+ 6 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/ldscripts/elf32ppclinux.xB b/ldscripts/elf32ppclinux.xB
+index 28ad88d..33d482d 100644
+--- a/ldscripts/elf32ppclinux.xB
++++ b/ldscripts/elf32ppclinux.xB
+@@ -3,7 +3,7 @@ OUTPUT_FORMAT("elf32-powerpc", "elf32-powerpc",
+ 	      "elf32-powerpc")
+ OUTPUT_ARCH(powerpc:common)
+ ENTRY(_start)
+-SEARCH_DIR("/usr/powerpc-linux-gnu/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
++/*SEARCH_DIR("/usr/powerpc-linux-gnu/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");*/
+ INPUT(-lhugetlbfs);
+ PHDRS
+ {
+diff --git a/ldscripts/elf32ppclinux.xBDT b/ldscripts/elf32ppclinux.xBDT
+index 497882b..823475e 100644
+--- a/ldscripts/elf32ppclinux.xBDT
++++ b/ldscripts/elf32ppclinux.xBDT
+@@ -3,7 +3,7 @@ OUTPUT_FORMAT("elf32-powerpc", "elf32-powerpc",
+ 	      "elf32-powerpc")
+ OUTPUT_ARCH(powerpc:common)
+ ENTRY(_start)
+-SEARCH_DIR("/usr/powerpc-linux-gnu/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
++/*SEARCH_DIR("/usr/powerpc-linux-gnu/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");*/
+ INPUT(-lhugetlbfs);
+ PHDRS
+ {
+diff --git a/ldscripts/elf64ppc.xB b/ldscripts/elf64ppc.xB
+index 1a9c1ab..8cc557d 100644
+--- a/ldscripts/elf64ppc.xB
++++ b/ldscripts/elf64ppc.xB
+@@ -3,7 +3,7 @@ OUTPUT_FORMAT("elf64-powerpc", "elf64-powerpc",
+ 	      "elf64-powerpc")
+ OUTPUT_ARCH(powerpc:common64)
+ ENTRY(_start)
+-SEARCH_DIR("/usr/powerpc64-linux-gnu/lib64"); SEARCH_DIR("/usr/local/lib64"); SEARCH_DIR("/lib64"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/powerpc64-linux-gnu/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
++/*SEARCH_DIR("/usr/powerpc64-linux-gnu/lib64"); SEARCH_DIR("/usr/local/lib64"); SEARCH_DIR("/lib64"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/powerpc64-linux-gnu/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");*/
+ INPUT(-lhugetlbfs);
+ PHDRS
+ {
+diff --git a/ldscripts/elf64ppc.xBDT b/ldscripts/elf64ppc.xBDT
+index 5477294..53e0749 100644
+--- a/ldscripts/elf64ppc.xBDT
++++ b/ldscripts/elf64ppc.xBDT
+@@ -3,7 +3,7 @@ OUTPUT_FORMAT("elf64-powerpc", "elf64-powerpc",
+ 	      "elf64-powerpc")
+ OUTPUT_ARCH(powerpc:common64)
+ ENTRY(_start)
+-SEARCH_DIR("/usr/powerpc64-linux-gnu/lib64"); SEARCH_DIR("/usr/local/lib64"); SEARCH_DIR("/lib64"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/powerpc64-linux-gnu/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
++/*SEARCH_DIR("/usr/powerpc64-linux-gnu/lib64"); SEARCH_DIR("/usr/local/lib64"); SEARCH_DIR("/lib64"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/powerpc64-linux-gnu/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");*/
+ INPUT( -lhugetlbfs );
+ PHDRS
+ {
+diff --git a/ldscripts/elf_x86_64.xB b/ldscripts/elf_x86_64.xB
+index ed21a2c..ba50e9f 100644
+--- a/ldscripts/elf_x86_64.xB
++++ b/ldscripts/elf_x86_64.xB
+@@ -3,7 +3,7 @@ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64",
+ 	      "elf64-x86-64")
+ OUTPUT_ARCH(i386:x86-64)
+ ENTRY(_start)
+-SEARCH_DIR("/usr/x86_64-linux-gnu/lib64"); SEARCH_DIR("/usr/local/lib64"); SEARCH_DIR("/lib64"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/x86_64-linux-gnu/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
++/*SEARCH_DIR("/usr/x86_64-linux-gnu/lib64"); SEARCH_DIR("/usr/local/lib64"); SEARCH_DIR("/lib64"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/x86_64-linux-gnu/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");*/
+ INPUT(-lhugetlbfs);
+ /* Do we need any of these for elf?
+    __DYNAMIC = 0;    */
+diff --git a/ldscripts/elf_x86_64.xBDT b/ldscripts/elf_x86_64.xBDT
+index 1855202..c62d245 100644
+--- a/ldscripts/elf_x86_64.xBDT
++++ b/ldscripts/elf_x86_64.xBDT
+@@ -3,7 +3,7 @@ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64",
+ 	      "elf64-x86-64")
+ OUTPUT_ARCH(i386:x86-64)
+ ENTRY(_start)
+-SEARCH_DIR("/usr/x86_64-linux-gnu/lib64"); SEARCH_DIR("/usr/local/lib64"); SEARCH_DIR("/lib64"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/x86_64-linux-gnu/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
++/*SEARCH_DIR("/usr/x86_64-linux-gnu/lib64"); SEARCH_DIR("/usr/local/lib64"); SEARCH_DIR("/lib64"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/x86_64-linux-gnu/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");*/
+ INPUT(-lhugetlbfs);
+ /* Do we need any of these for elf?
+    __DYNAMIC = 0;    */
+-- 
+1.7.9.7
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-avoid-using-restrict-as-var-name.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-avoid-using-restrict-as-var-name.patch
new file mode 100644
index 0000000..b77cfe1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-avoid-using-restrict-as-var-name.patch
@@ -0,0 +1,34 @@
+Avoid using keyword restrict as variable name which causes error with gcc 5.x:
+
+| hugeutils.c: In function '__lh_hugetlbfs_setup_env':
+| hugeutils.c:304:40: error: expected identifier or '(' before 'restrict'
+|    char *p, *tok, *exe, buf[MAX_EXE+1], restrict[MAX_EXE];
+|                                         ^
+
+Upstream-Status: Pending
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+diff --git a/hugeutils.c b/hugeutils.c
+index 53a7fbd..b9d7001 100644
+--- a/hugeutils.c
++++ b/hugeutils.c
+@@ -301,14 +301,14 @@ void hugetlbfs_setup_env()
+ 
+ 	env = getenv("HUGETLB_RESTRICT_EXE");
+ 	if (env) {
+-		char *p, *tok, *exe, buf[MAX_EXE+1], restrict[MAX_EXE];
++		char *p, *tok, *exe, buf[MAX_EXE+1], restricted[MAX_EXE];
+ 		int found = 0;
+ 
+ 		exe = get_exe_name(buf, sizeof buf);
+ 		DEBUG("Found HUGETLB_RESTRICT_EXE, this exe is \"%s\"\n", exe);
+-		strncpy(restrict, env, sizeof restrict);
+-		restrict[sizeof(restrict)-1] = 0;
+-		for (p = restrict; (tok = strtok(p, ":")) != NULL; p = NULL) {
++		strncpy(restricted, env, sizeof restricted);
++		restricted[sizeof(restricted)-1] = 0;
++		for (p = restricted; (tok = strtok(p, ":")) != NULL; p = NULL) {
+ 			DEBUG("  ...check exe match for \"%s\"\n",  tok);
+ 			if (strcmp(tok, exe) == 0) {
+ 				found = 1;
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-elf_i386-avoid-search-host-library-path.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-elf_i386-avoid-search-host-library-path.patch
new file mode 100644
index 0000000..1566488
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-elf_i386-avoid-search-host-library-path.patch
@@ -0,0 +1,40 @@
+From 889e52753d30179ba4ac940023cb4ed561436ab8 Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Tue, 4 Nov 2014 00:49:11 -0800
+Subject: [PATCH] libhugetlbfs/elf_i386: avoid search host library path for cross compilation
+
+Upstream-Status: Inappropriate [cross compile specific]
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+---
+ ldscripts/elf_i386.xB   |    1 -
+ ldscripts/elf_i386.xBDT |    1 -
+ 2 files changed, 2 deletions(-)
+
+diff --git a/ldscripts/elf_i386.xB b/ldscripts/elf_i386.xB
+index 43fe51c..eae0fa8 100644
+--- a/ldscripts/elf_i386.xB
++++ b/ldscripts/elf_i386.xB
+@@ -3,7 +3,6 @@ OUTPUT_FORMAT("elf32-i386", "elf32-i386",
+ 	      "elf32-i386")
+ OUTPUT_ARCH(i386)
+ ENTRY(_start)
+-SEARCH_DIR("/usr/i486-linux-gnu/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
+ INPUT(-lhugetlbfs);
+ /* Do we need any of these for elf?
+    __DYNAMIC = 0;    */
+diff --git a/ldscripts/elf_i386.xBDT b/ldscripts/elf_i386.xBDT
+index d72aebe..3bac1b1 100644
+--- a/ldscripts/elf_i386.xBDT
++++ b/ldscripts/elf_i386.xBDT
+@@ -3,7 +3,6 @@ OUTPUT_FORMAT("elf32-i386", "elf32-i386",
+ 	      "elf32-i386")
+ OUTPUT_ARCH(i386)
+ ENTRY(_start)
+-SEARCH_DIR("/usr/i486-linux-gnu/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
+ INPUT(-lhugetlbfs);
+ /* Do we need any of these for elf?
+    __DYNAMIC = 0;    */
+--
+1.7.9.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/skip-checking-LIB32-and-LIB64-if-they-point-to-the-s.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/skip-checking-LIB32-and-LIB64-if-they-point-to-the-s.patch
new file mode 100644
index 0000000..07a9971
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/skip-checking-LIB32-and-LIB64-if-they-point-to-the-s.patch
@@ -0,0 +1,23 @@
+From 355c014573de7f95202cc7c819f81f0f230e4a1a Mon Sep 17 00:00:00 2001
+From: Ting Liu <b28495@freescale.com>
+Date: Mon, 18 Jun 2012 16:37:05 +0800
+Subject: [PATCH] skip checking LIB32 and LIB64 if they point to the same place
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Ting Liu <b28495@freescale.com>
+---
+
+diff --git a/Makefile b/Makefile
+index 91502e1..bfb3414 100644
+--- a/Makefile
++++ b/Makefile
+@@ -167,7 +167,6 @@ REALLIB32 = $(realpath $(PREFIX)/$(LIB32))
+ REALLIB64 = $(realpath $(PREFIX)/$(LIB64))
+ ifneq ($(realpath $(PREFIX)),)
+ ifeq ($(REALLIB32),$(REALLIB64))
+-$(error LIB32 ($(PREFIX)/$(LIB32) to $(REALLIB32)) and LIB64 ($(PREFIX)/$(LIB64) to $(REALLIB64)) are resolving to the same place. Manually specify LIB32 and LIB64. e.g. make PREFIX=$(PREFIX) LIB32=lib32 LIB64=lib64)
+ endif
+ endif
+ 
+-- 
+1.9.2
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/tests-Makefile-install-static-4G-edge-testcases.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/tests-Makefile-install-static-4G-edge-testcases.patch
new file mode 100644
index 0000000..249f6e1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/tests-Makefile-install-static-4G-edge-testcases.patch
@@ -0,0 +1,17 @@
+Upstream-Status: Submitted
+
+TESTS_64 is empty, install will fail due to missing file operand
+
+Signed-off-by: Ting Liu <b28495@freescale.com>
+
+--- a/tests/Makefileold	2013-10-12 02:32:55.262391998 -0500
++++ b/tests/Makefile	2013-10-12 02:33:45.929394722 -0500
+@@ -292,7 +292,7 @@
+ 	$(INSTALL) -m 755 wrapper-utils.sh $(DESTDIR)$(INST_TESTSDIR64)/obj64
+ 	$(INSTALL) -m 755 $(HELPERS:%=obj64/%) $(DESTDIR)$(INST_TESTSDIR64)/obj64
+ 	$(INSTALL) -m 755 $(HELPER_LIBS:%=obj64/%) $(DESTDIR)$(INST_TESTSDIR64)/obj64
+-	$(INSTALL) -m 755 $(TESTS_64:%=obj64/%) $(DESTDIR)$(INST_TESTSDIR64)/obj64
++	$(INSTALL) -m 755 $(TESTS_64_STATIC:%=obj64/%_static) $(DESTDIR)$(INST_TESTSDIR64)/obj64
+ 	$(INSTALL) -m 755 run_tests.py $(DESTDIR)$(INST_TESTSDIR64)
+ 
+ install: $(OBJDIRS:%=%/install)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb
new file mode 100644
index 0000000..015d446
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb
@@ -0,0 +1,66 @@
+SUMMARY = "A library which provides easy access to huge pages of memory"
+HOMEPAGE = "https://github.com/libhugetlbfs/libhugetlbfs"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://LGPL-2.1;md5=2d5025d4aa3495befef8f17206a5b0a1"
+
+DEPENDS = "sysfsutils perl"
+RDEPENDS_${PN} += "bash perl python python-io python-lang python-subprocess python-resource"
+RDEPENDS_${PN}-tests += "bash"
+
+PV = "2.19"
+PE = "1"
+
+SRCREV = "426c22d65415fcb8927f68fbc5887e075a8dc40a"
+SRC_URI = " \
+    git://github.com/libhugetlbfs/libhugetlbfs.git;protocol=https \
+    file://skip-checking-LIB32-and-LIB64-if-they-point-to-the-s.patch \
+    file://libhugetlbfs-avoid-search-host-library-path-for-cros.patch \
+    file://tests-Makefile-install-static-4G-edge-testcases.patch \
+    file://0001-run_test.py-not-use-hard-coded-path-.-obj-hugeadm.patch \
+    file://libhugetlbfs-elf_i386-avoid-search-host-library-path.patch \
+    file://libhugetlbfs-avoid-using-restrict-as-var-name.patch \
+"
+
+S = "${WORKDIR}/git"
+
+COMPATIBLE_HOST = "(x86_64|powerpc|powerpc64|aarch64|arm).*-linux*"
+
+LIBARGS = "LIB32=${baselib} LIB64=${baselib}"
+LIBHUGETLBFS_ARCH = "${TARGET_ARCH}"
+LIBHUGETLBFS_ARCH_powerpc = "ppc"
+LIBHUGETLBFS_ARCH_powerpc64 = "ppc64"
+EXTRA_OEMAKE = "'ARCH=${LIBHUGETLBFS_ARCH}' 'OPT=${CFLAGS}' 'CC=${CC}' ${LIBARGS} BUILDTYPE=NATIVEONLY V=2"
+PARALLEL_MAKE = ""
+CFLAGS += "-fexpensive-optimizations -frename-registers -fomit-frame-pointer -g0"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+#The CUSTOM_LDSCRIPTS doesn't work with the gold linker
+do_configure() {
+    if [ "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', 'ld-is-gold', '', d)}" = "ld-is-gold" ] ; then
+      sed -i 's/CUSTOM_LDSCRIPTS = yes/CUSTOM_LDSCRIPTS = no/'  Makefile
+    fi
+
+    # fixup perl module directory hardcoded to perl5
+    sed -i 's/perl5/perl/g'  Makefile
+}
+
+do_install() {
+        oe_runmake PREFIX=${prefix} DESTDIR=${D}  \
+          INST_TESTSDIR32=${libdir}/libhugetlbfs/tests \
+          INST_TESTSDIR64=${libdir}/libhugetlbfs/tests \
+          install-tests
+}
+
+
+PACKAGES =+ "${PN}-perl ${PN}-tests "
+FILES_${PN} += "${libdir}/*.so"
+FILES_${PN}-dev = "${includedir}"
+FILES_${PN}-dbg += "${libdir}/libhugetlbfs/tests/obj32/.debug ${libdir}/libhugetlbfs/tests/obj64/.debug"
+FILES_${PN}-perl = "${libdir}/perl"
+FILES_${PN}-tests += "${libdir}/libhugetlbfs/tests"
+
+INSANE_SKIP_${PN} = "dev-so"
+
+INHIBIT_PACKAGE_STRIP = "1"
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/fix-lmbench-memory-check-failure.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/fix-lmbench-memory-check-failure.patch
new file mode 100644
index 0000000..549a114
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/fix-lmbench-memory-check-failure.patch
@@ -0,0 +1,206 @@
+lmbench: Can't proceed on some targets
+
+lmbench can't proceed on some targets.  The memory check fails because the
+memory latency of each page is longer then 10us, which is a time limit set
+in the original memsize.c.
+
+The memory latency is very different on different targets due to the
+hardware and current system load.  The targets with slower memory
+chips or heavy system load need much longer time to read or write
+the memory.
+
+This fix changes the fixed time limit of 10us to a specific value calculated
+from the runtime target.
+
+Also set an upper limit of memory size used for lmbench testing.  The memory
+check sometimes fails if the target has a large amount of memory, for
+example more than 4G.
+
+Signed-off-by: Qingming Su <qingming.su@windriver.com>
+Signed-off-by: Fupan Li <fupan.li@windriver.com>
+
+Add and reword above comments
+
+Upstream-status: inappropriate [ configuration ]
+
+Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
+
+diff --git a/scripts/config-run b/scripts/config-run
+index e1f7b6d..31b9256 100755
+--- a/scripts/config-run
++++ b/scripts/config-run
+@@ -214,6 +214,12 @@ The bigger the range, the more accurate the results, but larger sizes
+ take somewhat longer to run the benchmark.
+
+ EOF
++
++# By default, use 512M memory as the upper limit for lmbench test
++if [ $MB -gt 512 ];then
++MB=512
++fi
++
+ echo $ECHON "MB [default $MB]: $ECHOC"
+ #read TMP
+ TMP=""
+@@ -718,10 +724,10 @@ case $MAIL in
+		;;
+ esac
+
+-INFO=`../scripts/info`
++INFO=`../scripts/hostinfo`
+ if [ $MAIL = yes ]
+ then	if [ ! -f $INFO ]
+-	then	cp ../scripts/info-template $INFO
++	then	cp ../scripts/hostinfo-template $INFO
+ 		chmod +w $INFO
+ 		REUSE=no
+ 	else
+@@ -765,7 +771,7 @@ EOF
+ 		then	EDITOR=$TMP
+ 		fi
+ 		if [ X$EDITOR != "none" ]
+-		then	$EDITOR `../scripts/info`
++		then	$EDITOR `../scripts/hostinfo`
+ 		fi
+ 	fi
+ fi
+diff --git a/src/Makefile b/src/Makefile
+index d1f0dc6..5098998 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -49,7 +49,7 @@ TARGET=`../scripts/target`
+ BINDIR=../bin/$(OS)
+ CONFIG=../bin/$(OS)/`../scripts/config`
+ UTILS=../scripts/target ../scripts/os ../scripts/gnu-os ../scripts/compiler \
+-	../scripts/info ../scripts/info-template ../scripts/version \
++	../scripts/hostinfo ../scripts/hostinfo-template ../scripts/version \
+ 	../scripts/config ../scripts/config-run ../scripts/results \
+ 	../scripts/lmbench ../scripts/make ../scripts/build
+ INSTALL=cp
+@@ -240,7 +240,7 @@ $O/getopt.o : getopt.c $(INCS)
+ 	$(COMPILE) -c getopt.c -o $O/getopt.o
+
+ $(UTILS) :
+-	-cd ../scripts; make get
++	-cd ../scripts; cp info hostinfo; cp info-template hostinfo-template
+
+ # Do not remove the next line, $(MAKE) depend needs it
+ # MAKEDEPEND follows
+diff --git a/src/memsize.c b/src/memsize.c
+index eb25a09..cf9fe0c 100644
+--- a/src/memsize.c
++++ b/src/memsize.c
+@@ -14,9 +14,12 @@ char	*id = "$Id$\n";
+
+ #define	CHK(x)	if ((x) == -1) { perror("x"); exit(1); }
+
+-#ifndef	TOO_LONG
+-#define	TOO_LONG	10	/* usecs */
+-#endif
++//#ifndef	TOO_LONG
++//#define	TOO_LONG	10	/* usecs */
++//#endif
++
++#define	MEMORY_SIZE_1MB (1024 * 1024)
++#define	MEMORY_SIZE_8MB (8 * 1024 * 1024)
+
+ int	alarm_triggered = 0;
+
+@@ -35,10 +38,10 @@ main(int ac, char **av)
+ 	size_t	delta;
+
+ 	if (ac == 2) {
+-		max = size = bytes(av[1]) * 1024 * 1024;
++		max = size = bytes(av[1]) * MEMORY_SIZE_1MB;
+ 	}
+-	if (max < 1024 * 1024) {
+-		max = size = 1024 * 1024 * 1024;
++	if (max < MEMORY_SIZE_1MB) {
++		max = size = 1024 * MEMORY_SIZE_1MB;
+ 	}
+ 	/*
+ 	 * Binary search down and then binary search up
+@@ -48,7 +51,7 @@ main(int ac, char **av)
+ 	}
+ 	/* delta = size / (2 * 1024 * 1024) */
+ 	for (delta = (size >> 21); delta > 0; delta >>= 1) {
+-		uint64 sz = (uint64)size + (uint64)delta * 1024 * 1024;
++		uint64 sz = (uint64)size + (uint64)delta * MEMORY_SIZE_1MB;
+ 		size_t check = sz;
+ 		if (max < sz) continue;
+ 		if (check < sz || !test_malloc(sz)) break;
+@@ -66,41 +69,58 @@ timeit(char *where, size_t size)
+ {
+ 	int	sum = 0;
+ 	size_t	n;
+-	size_t	s_prev;
++	size_t	s_prev = MEMORY_SIZE_8MB;
+ 	size_t	range;
+-	size_t	incr = 1024 * 1024;
++	size_t	incr = MEMORY_SIZE_1MB;
+ 	size_t	pagesize = getpagesize();
+-	unsigned long long	s;
+-
+-	if (size < 1024*1024 - 16*1024) {
+-		fprintf(stderr, "Bad size\n");
+-		return;
+-	}
++	size_t	time_each_page = 0;
++	size_t	too_long = 0;
++	unsigned long long      s;
++
++	if (pagesize < MEMORY_SIZE_1MB)
++		range = MEMORY_SIZE_1MB;
++	else
++		range = MEMORY_SIZE_8MB;
++
++	incr = MEMORY_SIZE_1MB;
++	
++	if (size < range) {
++              fprintf(stderr, "Bad size\n");
++              return;
++	    }
++
++	//Touch range of memory, get the average time (usec) of operating each memory page on this system
++        start(0);
++        touchRange(where, range, pagesize);
++        sum = stop(0, 0);
++
++        if ((time_each_page = sum * pagesize / range) < 1)
++		time_each_page = 1;
++	//Set the uper limit of time spending on one page
++        too_long = 10 * time_each_page;
+
+-	range = 1024 * 1024;
+-	incr = 1024 * 1024;
+-	touchRange(where, range, pagesize);
+ 	for (range += incr; range <= size; range += incr) {
+ 		n = range / pagesize;
+-		set_alarm(n * TOO_LONG);
++		set_alarm(n * too_long);
+ 		touchRange(where + range - incr, incr, pagesize);
+ 		clear_alarm();
+-		set_alarm(n * TOO_LONG);
++		set_alarm(n * too_long);
+ 		start(0);
+ 		touchRange(where, range, pagesize);
+ 		sum = stop(0, 0);
+ 		clear_alarm();
+-		if ((sum / n) > TOO_LONG || alarm_triggered) {
++		if ((sum / n) > too_long || alarm_triggered) {
+ 			size = range - incr;
++			fprintf(stderr, "Error! Memory testing timeout! Touch one page of memory needs more than %d (usecs)\n ", too_long);
+ 			break;
+ 		}
+-		for (s = 8 * 1024 * 1024; s <= range; s_prev = s, s *= 2)
++		for (s = s_prev; s <= range; s_prev = s, s *= 2)
+ 			if (s < s_prev) break;
+ 		incr = s / 8;
+ 		if (range < size && size < range + incr) {
+ 			incr = size - range;
+ 		}
+-		fprintf(stderr, "%dMB OK\r", (int)(range/(1024*1024)));
++		fprintf(stderr, "%dMB OK\r", (int)(range/MEMORY_SIZE_1MB));
+ 	}
+ 	fprintf(stderr, "\n");
+ 	printf("%d\n", (int)(size>>20));
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/lmbench_result_html_report.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/lmbench_result_html_report.patch
new file mode 100644
index 0000000..cda2f0c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/lmbench_result_html_report.patch
@@ -0,0 +1,61 @@
+lmbench: Fix "make html" graph failure
+
+The html-list perl script cannot parse the first line of the result
+files about the lmbench version.
+
+Additional fixes are to make the result's html pages easier to understand.
+
+Signed-off-by: Lin Yu <lin.yu@windriver.com>
+Signed-off-by: Fupan Li <fupan.li@windriver.com>
+
+Reworded patch description.
+
+Upstream-status: inappropriate [ configuration ]
+
+Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
+
+diff --git a/results/Makefile b/results/Makefile
+index 0935376..1ef9a15 100644
+--- a/results/Makefile
++++ b/results/Makefile
+@@ -186,6 +186,7 @@ paper:
+ # scratch makes you want a Ghz machine.
+ html: dirs
+ 	-make clean
++	make ps
+ 	#$(SCRIPTS)bghtml $(BG)
+ 	$(SCRIPTS)html-list $(LIST)
+ 	$(MK) LIST="$(LIST)" summary > HTML/summary.out 2> HTML/summary.errs
+diff --git a/scripts/html-list b/scripts/html-list
+index 9850461..6383115 100755
+--- a/scripts/html-list
++++ b/scripts/html-list
+@@ -14,7 +14,7 @@ open(H, ">HTML/specific.html");
+ print H <<EOF;
+ <title>LMBENCH System Results</title>
+ <h1>LMBENCH System Results</h1>
+-<h2><a href=summary>Summary of results</a></h2>
++<h2><a href=summary.out>Summary of results</a></h2>
+ <hr>
+ EOF
+
+@@ -47,7 +47,7 @@ foreach $os (@os) {
+ 		open(F, $file);
+ 		$_ = <F>;
+ 		close(F);
+-		next unless /lmbench1.[01]/;
++		next unless /lmbench[0-9]+.[01]/;
+ 		chop;
+ 		$title = $_;
+ 		#s/.lmbench1.? results for //;
+@@ -103,10 +103,7 @@ EOF
+ 				    if $i < $#os;
+ 				print S<<EOF;
+ <h4>$title</h4>
+-<a href=../$doc{$what}>Information on this benchmark</a> (Not up to date)
+ <p><IMG SRC="${what}${scale}$N.gif">\n<p>
+-<a href=../lmbench.html>
+-<img align=middle src="../gifs/arrows/b_arrow.gif">LMBENCH table of contents</a>
+ <a href=specific.html>
+ <img align=middle src=\"../gifs/graph.gif\">System results table of contents</a>
+ <p>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/obey-ranlib.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/obey-ranlib.patch
new file mode 100644
index 0000000..41a3b32
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/obey-ranlib.patch
@@ -0,0 +1,30 @@
+In some cases the host may have too old of a ranlib to work.  Since it's
+not exactly a great idea to not be using the cross ranlib anyhow, fix the
+Makefile so we can override ranlib and then override it
+
+Upstream-Status: Inappropriate [build system specific change]
+---
+ src/Makefile |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+Index: lmbench-3.0-a9/src/Makefile
+===================================================================
+--- lmbench-3.0-a9.orig/src/Makefile
++++ lmbench-3.0-a9/src/Makefile
+@@ -38,6 +38,7 @@ CC=`../scripts/compiler`
+ MAKE=`../scripts/make`
+ AR=ar
+ ARCREATE=cr
++RANLIB=ranlib
+ 
+ # base of installation location
+ BASE=/usr/local
+@@ -217,7 +218,7 @@ $O/lmbench : ../scripts/lmbench version.
+ $O/lmbench.a: $(LIBOBJS)
+ 	/bin/rm -f $O/lmbench.a
+ 	$(AR) $(ARCREATE) $O/lmbench.a $(LIBOBJS)
+-	-ranlib $O/lmbench.a
++	-$(RANLIB) $O/lmbench.a
+ 
+ $O/lib_timing.o : lib_timing.c $(INCS)
+ 	$(COMPILE) -c lib_timing.c -o $O/lib_timing.o
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/update-config-script.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/update-config-script.patch
new file mode 100644
index 0000000..b46e09a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/update-config-script.patch
@@ -0,0 +1,12 @@
+Upstream-Status: Pending
+Index: lmbench-3.0-a9/scripts/config
+===================================================================
+--- lmbench-3.0-a9/scripts/config	2000-01-31 18:29:31.000000000 -0600
++++ lmbench-3.0-a9/scripts/config	2013-03-01 00:19:41.032984315 -0600
+@@ -3,5 +3,5 @@
+ UNAME=`uname -n 2>/dev/null`
+ if [ X$UNAME = X ]
+ then	echo CONFIG
+-else	echo CONFIG.$UNAME
++else	echo ../scripts/CONFIG.$UNAME
+ fi
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/update-results-script.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/update-results-script.patch
new file mode 100644
index 0000000..894f146
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/update-results-script.patch
@@ -0,0 +1,160 @@
+Now that we have our binaries in /usr/bin rather than the normal
+lmbench hierarchy we need to update the scripts as well to behave well here.
+
+Upstream-Status: Inappropriate [This is related to the OE-specific behavior
+of installing into /usr/bin, etc, rather than dumping everything into 
+/usr/share/lmbench or similar]
+
+Index: lmbench-3.0-a9/scripts/results
+===================================================================
+--- lmbench-3.0-a9.orig/scripts/results
++++ lmbench-3.0-a9/scripts/results
+@@ -8,11 +8,11 @@ RESULTS=results/$OS
+ BASE=../$RESULTS/`uname -n`
+ EXT=0
+ 
+-if [ ! -f "../bin/$OS/$CONFIG" ]
++if [ ! -f "$CONFIG" ]
+ then	echo "No config file?"
+ 	exit 1
+ fi
+-. ../bin/$OS/$CONFIG
++. $CONFIG
+ 
+ if [ ! -d ../$RESULTS ]
+ then	mkdir -p ../$RESULTS
+@@ -23,11 +23,9 @@ do      EXT=`expr $EXT + 1`
+ 	RESULTS=$BASE.$EXT
+ done
+ 
+-cd ../bin/$OS 
+-PATH=.:${PATH}; export PATH
+ export SYNC_MAX
+ export OUTPUT
+-lmbench $CONFIG 2>../${RESULTS}
++lmbench $CONFIG 2>${RESULTS}
+ 
+ if [ X$MAIL = Xyes ]
+ then	echo Mailing results
+Index: lmbench-3.0-a9/scripts/config-run
+===================================================================
+--- lmbench-3.0-a9.orig/scripts/config-run
++++ lmbench-3.0-a9/scripts/config-run
+@@ -132,20 +132,20 @@ export LMBENCH_SCHED
+ ############################################################################
+ echo $L; echo "";
+ echo "Hang on, we are calculating your timing granularity."
+-../bin/$OS/msleep 250
+-ENOUGH=`../bin/$OS/enough`
++msleep 250
++ENOUGH=`enough`
+ export ENOUGH 
+ echo "OK, it looks like you can time stuff down to $ENOUGH usec resolution."
+ echo ""
+ echo "Hang on, we are calculating your timing overhead."
+-../bin/$OS/msleep 250
+-TIMING_O=`../bin/$OS/timing_o`
++msleep 250
++TIMING_O=`timing_o`
+ export TIMING_O
+ echo "OK, it looks like your gettimeofday() costs $TIMING_O usecs."
+ echo ""
+ echo "Hang on, we are calculating your loop overhead."
+-../bin/$OS/msleep 250
+-LOOP_O=`../bin/$OS/loop_o`
++msleep 250
++LOOP_O=`loop_o`
+ export LOOP_O
+ echo "OK, it looks like your benchmark loop costs $LOOP_O usecs."
+ echo ""
+@@ -177,7 +177,7 @@ then
+ fi
+ if [ X$MB = X ]
+ then	$ECHON "Probing system for available memory: $ECHOC"
+-	MB=`../bin/$OS/memsize 4096`
++	MB=`memsize 4096`
+ fi
+ TOTAL_MEM=$MB
+ MB=`echo \( $MB \* 7 \) / 10 | bc 2>/dev/null`
+@@ -205,9 +205,9 @@ fi
+ # Certain machines tend to barf when you try and bcopy 8MB.
+ # Figure out how much we can use.
+ echo "Checking to see if you have $MB MB; please wait for a moment..."
+-MB=`../bin/$OS/memsize $MB`
+-MB=`../bin/$OS/memsize $MB`
+-MB=`../bin/$OS/memsize $MB`
++MB=`memsize $MB`
++MB=`memsize $MB`
++MB=`memsize $MB`
+ if [ `expr $SYNC_MAX \* $MB` -gt `expr $TOTAL_MEM` ]
+ then
+ 	MB=`expr $TOTAL_MEM / $SYNC_MAX`
+@@ -223,8 +223,8 @@ then	echo Warning: you have only ${MB}MB
+ fi
+ 
+ echo "Hang on, we are calculating your cache line size."
+-../bin/$OS/msleep 250
+-LINE_SIZE=`../bin/$OS/lm_line -M ${MB}M`
++msleep 250
++LINE_SIZE=`lm_line -M ${MB}M`
+ export LINE_SIZE
+ echo "OK, it looks like your cache line is $LINE_SIZE bytes."
+ echo ""
+@@ -479,7 +479,7 @@ EOF
+ 	then	
+ 		for i in $disks
+ 		do	if [ -r $i ]
+-			then	../bin/$OS/flushdisk $i
++			then	flushdisk $i
+ 				if [ $? -eq 1 ]
+ 				then	echo "Must be root to run disk benchmarks."
+ 					echo "Root is needed to flush the buffer cache"
+@@ -584,7 +584,7 @@ fi
+ echo $L
+ echo ""
+ echo "Calculating mhz, please wait for a moment..."
+-MHZ=`../bin/$OS/mhz`
++MHZ=`mhz`
+ cat<<EOF
+ I think your CPU mhz is 
+ 
+@@ -689,9 +689,9 @@ esac
+ 
+ INFO=`../scripts/info`
+ if [ $MAIL = yes ]
+-then	if [ ! -f ../bin/$OS/$INFO ]
+-	then	cp ../scripts/info-template ../bin/$OS/$INFO
+-		chmod +w ../bin/$OS/$INFO
++then	if [ ! -f $INFO ]
++	then	cp ../scripts/info-template $INFO
++		chmod +w $INFO
+ 		REUSE=no
+ 	else	
+ 		REUSE=view
+@@ -705,7 +705,7 @@ then	if [ ! -f ../bin/$OS/$INFO ]
+ 				;;
+ 			[Vv]*)	REUSE=view
+ 				echo $L
+-				more ../bin/$OS/$INFO
++				more $INFO
+ 				echo $L
+ 				;;
+ 	    		*)	REUSE=yes
+@@ -733,7 +733,7 @@ EOF
+ 		then	EDITOR=$TMP
+ 		fi
+ 		if [ X$EDITOR != "none" ]
+-		then	$EDITOR ../bin/$OS/`../scripts/info`
++		then	$EDITOR `../scripts/info`
+ 		fi
+ 	fi
+ fi
+@@ -750,7 +750,7 @@ EOF
+ 
+ VERSION=`../scripts/version`
+ 
+-C=../bin/$OS/`../scripts/config`
++C=`../scripts/config`
+ echo DISKS=\"$DISKS\" > $C
+ echo DISK_DESC=\"$DISK_DESC\" >> $C
+ echo OUTPUT=$OUTPUT >> $C
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/use-base_libdir-instead-of-hardcoded-lib.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/use-base_libdir-instead-of-hardcoded-lib.patch
new file mode 100644
index 0000000..3351ce8
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/use-base_libdir-instead-of-hardcoded-lib.patch
@@ -0,0 +1,32 @@
+From 0d09e31970616e09beb7f238c2b59bfc541148fb Mon Sep 17 00:00:00 2001
+From: Ting Liu <b28495@freescale.com>
+Date: Fri, 22 Nov 2013 15:20:08 +0800
+Subject: [PATCH] use base_libdir instead of hardcoded /lib
+
+Upsteam Status: Inappropriate [configuration]
+
+Signed-off-by: Ting Liu <b28495@freescale.com>
+---
+ src/Makefile |    4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/Makefile b/src/Makefile
+index c7a8c79..c7e4e3c 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -143,10 +143,10 @@ install-target:
+ 	if [ ! -d $(BASE) ]; then mkdir $(BASE); fi
+ 	if [ ! -d $(BASE)/bin ]; then mkdir $(BASE)/bin; fi
+ 	if [ ! -d $(BASE)/include ]; then mkdir $(BASE)/include; fi
+-	if [ ! -d $(BASE)/lib ]; then mkdir $(BASE)/lib; fi
++	if [ ! -d $(BASE)$(base_libdir) ]; then mkdir $(BASE)$(base_libdir); fi
+ 	cp $(EXES) $(BASE)/bin
+ 	cp $(INCS) $(BASE)/include
+-	cp $O/lmbench.a $(BASE)/lib/libmbench.a
++	cp $O/lmbench.a $(BASE)$(base_libdir)
+ 	cd ../doc; env MAKEFLAGS="$(MAKEFLAGS)" make CC="${CC}" OS="${OS}" BASE="$(BASE)" install
+ 
+ 
+-- 
+1.7.5.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench/0001-avoid-gcc-optimize-away-the-loops.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench/0001-avoid-gcc-optimize-away-the-loops.patch
new file mode 100644
index 0000000..2d8a246
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench/0001-avoid-gcc-optimize-away-the-loops.patch
@@ -0,0 +1,79 @@
+[PATCH] avoid gcc optimize-away the loops
+
+Upstream-Status: pending
+
+Change expression used in do_integer_mul and do_uint64_mul
+benchmarks so GCC doesn't optimize-away the loops, other
+things are same:
+-               TEN(r *= s;); r -= t;
++               i = 0;
++               while ( i++ < 10)
++                       r *= s;
++               r -= t;
+
+and TEN is macro:
+	#define TEN(a) a a a a a a a a a a
+
+Signed-off-by: Roy Li <rongqing.li@windriver.com>
+---
+ src/lat_ops.c | 30 +++++++++++++++++++++++++-----
+ 1 file changed, 25 insertions(+), 5 deletions(-)
+
+diff --git a/src/lat_ops.c b/src/lat_ops.c
+index d343ff3..457072b 100644
+--- a/src/lat_ops.c
++++ b/src/lat_ops.c
+@@ -126,11 +126,23 @@ do_integer_mul(iter_t iterations, void* cookie)
+ 	struct _state *pState = (struct _state*)cookie;
+ 	register int r = pState->N + 37431;
+ 	register int s = pState->N + 4;
+-	register int t = r * s * s * s * s * s * s * s * s * s * s - r;
++	register int t = r;
++	int i = 0;
++
++	while ( i++ < 10)
++		t *= s;
++	t -= r;
+ 
+ 	while (iterations-- > 0) {
+-		TEN(r *= s;); r -= t;
+-		TEN(r *= s;); r -= t;
++		i = 0;
++		while ( i++ < 10)
++			r *= s;
++		r -= t;
++
++		i = 0;
++		while ( i++ < 10)
++			r *= s;
++		r -= t;
+ 	}
+ 	use_int(r);
+ }
+@@ -207,13 +219,21 @@ do_int64_mul(iter_t iterations, void* cookie)
+ 	register int64 r = (int64)pState->N + 37420;
+ 	register int64 s = (int64)pState->N + 4;
+ 	register int64 t;
++	int i = 0;
+ 
+ 	r += (int64)(pState->N + 6)<<32;
+ 	t = r * s * s * s * s * s * s * s * s * s * s - r;
+ 
+ 	while (iterations-- > 0) {
+-		TEN(r *= s;); r -= t;
+-		TEN(r *= s;); r -= t;
++		i = 0;
++		while ( i++ < 10)
++			r *= s;
++		r -= t;
++
++		i = 0;
++		while ( i++ < 10)
++			r *= s;
++		r -= t;
+ 	}
+ 	use_int((int)r);
+ }
+-- 
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench/lmbench-run b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench/lmbench-run
new file mode 100644
index 0000000..e904c75
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench/lmbench-run
@@ -0,0 +1,23 @@
+#!/bin/sh
+# Wrapper script for lmbench written for the 
+# Debian GNU/Linux distribution by 
+# Javier Fernandez-Sanguino.
+# Distributed under the GPL
+SHAREDIR=/usr/share/lmbench/
+BINDIR=/usr/lib/lmbench/
+SCRIPTSDIR=$SHAREDIR/scripts
+RESULTSDIR=$SHAREDIR/results
+CONFIG=/var/lib/lmbench/config/`$SCRIPTSDIR/config`
+runuid=`id -u`
+
+[ $runuid -gt 0 ] && {
+	echo "You must run this as the root user"
+	exit 0
+}
+cd $SCRIPTSDIR 
+[ ! -f $CONFIG ] && ./config-run
+./results
+
+echo "Benchmark run finished...."
+echo "Remember you can find the results of the benchmark "
+echo "under $RESULTSDIR"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench/rename-line-binary.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench/rename-line-binary.patch
new file mode 100644
index 0000000..9a40521
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench/rename-line-binary.patch
@@ -0,0 +1,19 @@
+Both lmbench and util-linux-ng packages provide own /usr/bin/line binaries.
+Even though the binaries name is the same, their functionality is different.
+This patch renames lmbench's line binary as lm_line to avoid conflicts with
+util-linux-ng.  script/config-run is also modified (patch) to call lm_line
+instead of line.
+
+Upstream-Status: Inappropriate [build system specific change]
+
+--- patches/scripts/config-run	2006-11-26 15:11:04.000000000 -0500
++++ patches/scripts/config-run	2011-04-01 09:35:50.000000000 -0400
+@@ -224,7 +224,7 @@ fi
+ 
+ echo "Hang on, we are calculating your cache line size."
+ ../bin/$OS/msleep 250
+-LINE_SIZE=`../bin/$OS/line -M ${MB}M`
++LINE_SIZE=`../bin/$OS/lm_line -M ${MB}M`
+ export LINE_SIZE
+ echo "OK, it looks like your cache line is $LINE_SIZE bytes."
+ echo ""
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench_3.0-a9.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench_3.0-a9.bb
new file mode 100644
index 0000000..a62389d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench_3.0-a9.bb
@@ -0,0 +1,79 @@
+SUMMARY = "Tools for performance analysis"
+HOMEPAGE = "http://lmbench.sourceforge.net/"
+SECTION = "console/utils"
+LICENSE = "GPLv2 & GPL-2.0-with-lmbench-restriction"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b \
+                    file://COPYING-2;md5=8e9aee2ccc75d61d107e43794a25cdf9"
+
+inherit autotools-brokensep
+
+PR = "r2"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/lmbench/lmbench-${PV}.tgz \
+           file://lmbench-run \
+           file://rename-line-binary.patch \
+           file://update-results-script.patch \
+           file://obey-ranlib.patch \
+           file://update-config-script.patch \
+           file://use-base_libdir-instead-of-hardcoded-lib.patch \
+           file://lmbench_result_html_report.patch \
+           file://fix-lmbench-memory-check-failure.patch \
+           file://0001-avoid-gcc-optimize-away-the-loops.patch \
+"
+SRC_URI[md5sum] = "b3351a3294db66a72e2864a199d37cbf"
+SRC_URI[sha256sum] = "cbd5777d15f44eab7666dcac418054c3c09df99826961a397d9acf43d8a2a551"
+
+EXTRA_OEMAKE = 'CC="${CC}" AR="${AR}" RANLIB="${RANLIB}" CFLAGS="${CFLAGS}" \
+                LDFLAGS="${LDFLAGS}" LD="${LD}" OS="${TARGET_SYS}" \
+                TARGET="${TARGET_OS}" BASE="${prefix}" MANDIR="${mandir}"'
+
+do_configure() {
+    :
+}
+
+do_compile () {
+    . ${CONFIG_SITE}
+    if [ X"$ac_cv_uint" = X"yes" ]; then
+        CFLAGS="${CFLAGS} -DHAVE_uint"
+    fi
+    install -d ${S}/bin/${TARGET_SYS}
+    oe_runmake -C src
+}
+
+do_install () {
+    install -d ${D}${sysconfdir}/default/volatiles \
+           ${D}${bindir} ${D}${mandir} ${D}${libdir}/lmbench \
+           ${D}${datadir}/lmbench/scripts
+
+    echo "d root root 0755 ${localstatedir}/run/${BPN} none" \
+           > ${D}${sysconfdir}/default/volatiles/99_lmbench
+    if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+        install -d ${D}${sysconfdir}/tmpfiles.d
+        echo "d /run/${BPN} - - - -" \
+              > ${D}${sysconfdir}/tmpfiles.d/lmbench.conf
+    fi
+
+    oe_runmake BASE="${D}${prefix}" MANDIR="${D}${mandir}" \
+            -C src install
+    mv ${D}${bindir}/line ${D}${bindir}/lm_line
+    install -m 0755 ${WORKDIR}/lmbench-run ${D}${bindir}/
+    sed -i -e 's,^SHAREDIR=.*$,SHAREDIR=${datadir}/${BPN},;' \
+           -e 's,^BINDIR=.*$,BINDIR=${libdir}/${BPN},;' \
+           -e 's,^CONFIG=.*$,CONFIG=`$SCRIPTSDIR/config`,;' \
+           ${D}${bindir}/lmbench-run
+    install -m 0755 ${S}/scripts/lmbench ${D}${bindir}
+    install -m 0755 ${S}/scripts/* ${D}${datadir}/lmbench/scripts
+}
+
+pkg_postinst_${PN} () {
+    if [ -z "$D" ]; then
+        if command -v systemd-tmpfiles >/dev/null; then
+            systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/lmbench.conf
+        elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then
+            ${sysconfdir}/init.d/populate-volatile.sh update
+        fi
+    fi
+}
+
+RDEPENDS_${PN} = "perl"
+FILES_${PN} += "${datadir}/lmbench ${libdir}/lmbench"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/memtester/files/Makefile.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/memtester/files/Makefile.patch
new file mode 100644
index 0000000..971e52a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/memtester/files/Makefile.patch
@@ -0,0 +1,28 @@
+From 9a950b14b9f7767d83e5faac2e1e8203c500e2c2 Mon Sep 17 00:00:00 2001
+From: Rod Whitby <rod@whitby.id.au>
+Date: Tue, 25 Oct 2011 18:43:50 -0500
+Subject: [PATCH] memtester: Added patch to Makefile to change no-longer-supported 'head -1' syntax to 'head -n 1'.
+
+Signed-off-by: Joel A Fernandes <joelagnel@ti.com>
+---
+ Makefile |    4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index a271bf5..6bccff3 100644
+--- a/Makefile
++++ b/Makefile
+@@ -32,8 +32,8 @@ install: all
+ auto-ccld.sh: \
+ conf-cc conf-ld warn-auto.sh
+ 	( cat warn-auto.sh; \
+-	echo CC=\'`head -1 conf-cc`\'; \
+-	echo LD=\'`head -1 conf-ld`\' \
++	echo CC=\'`head -n 1 conf-cc`\'; \
++	echo LD=\'`head -n 1 conf-ld`\' \
+ 	) > auto-ccld.sh
+ 
+ compile: \
+-- 
+1.7.0.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/memtester/memtester_4.3.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/memtester/memtester_4.3.0.bb
new file mode 100644
index 0000000..0964c04
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/memtester/memtester_4.3.0.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Utility to test for faulty memory subsystem"
+HOMEPAGE = "http://pyropus.ca/software/memtester/"
+SECTION = "console/utils"
+LICENSE = "GPLv2"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
+
+SRC_URI = "http://pyropus.ca/software/memtester/old-versions/${BP}.tar.gz"
+SRC_URI += "file://Makefile.patch"
+
+SRC_URI[md5sum] = "598f41b7308e1f736164bca3ab84ddbe"
+SRC_URI[sha256sum] = "f9dfe2fd737c38fad6535bbab327da9a21f7ce4ea6f18c7b3339adef6bf5fd88"
+
+do_compile () {
+    echo '${CC} ${CFLAGS} -DPOSIX -c' > conf-cc
+    echo '${CC} ${LDFLAGS}' > conf-ld
+    oe_runmake
+}
+
+do_install () {
+    install -d ${D}${bindir}
+    install -d ${D}${mandir}/man8
+    install -m 0755 memtester ${D}${bindir}/
+    install -m 0755 memtester.8 ${D}${mandir}/man8/
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/nbench-byte/nbench-byte/Makefile-add-more-dependencies-to-pointer.h.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/nbench-byte/nbench-byte/Makefile-add-more-dependencies-to-pointer.h.patch
new file mode 100644
index 0000000..abdb434
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/nbench-byte/nbench-byte/Makefile-add-more-dependencies-to-pointer.h.patch
@@ -0,0 +1,23 @@
+Makefile: add more dependencies to pointer.h
+
+Upstream-Status: Inappropriate [no upstream]
+
+Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index 915866d..edd9ea2 100644
+--- a/Makefile
++++ b/Makefile
+@@ -122,7 +122,7 @@ emfloat.o: emfloat.h emfloat.c nmglobal.h pointer.h Makefile
+ pointer.h: Makefile
+ 	touch pointer.h ;
+ 
+-misc.o: misc.h misc.c Makefile
++misc.o: misc.h misc.c nmglobal.h pointer.h Makefile
+ 	$(CC) $(MACHINE) $(DEFINES) $(CFLAGS)\
+ 		-c misc.c
+ 
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/nbench-byte/nbench-byte/nbench_32bits.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/nbench-byte/nbench-byte/nbench_32bits.patch
new file mode 100644
index 0000000..1b8a4dc
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/nbench-byte/nbench-byte/nbench_32bits.patch
@@ -0,0 +1,46 @@
+From 81f4043a6787060029ef20eed21cdcf3e50337df Mon Sep 17 00:00:00 2001
+From: Chase Maupin <Chase.Maupin@ti.com>
+Date: Tue, 28 Feb 2012 14:58:35 -0600
+Subject: [PATCH] nbench: modify Makefile for 32bit
+
+* Patch taken from OE classic git repository as of commit id
+  ad42bf9065928b2902d7d9534709d3ccea7ec956 and was added by:
+    * Marcin Juszkiewicz <marcin@juszkiewicz.com.pl>
+* Notes from original patch were:
+
+BYTE Magazine's native benchmarks (also called BYTEmark) designed to
+expose the capabilities of a system's CPU, FPU and memory system.
+
+http://www.tux.org/~mayer/linux/
+
+Recipe from old Atmel overlay.
+
+Upstream-Status: Inappropriate [no upstream]
+
+Signed-off-by: Chase Maupin <chase.maupin@ti.com>
+---
+ Makefile |    8 ++------
+ 1 files changed, 2 insertions(+), 6 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 5045c77..915866d 100644
+--- a/Makefile
++++ b/Makefile
+@@ -119,12 +119,8 @@ emfloat.o: emfloat.h emfloat.c nmglobal.h pointer.h Makefile
+ 	$(CC) $(MACHINE) $(DEFINES) $(CFLAGS)\
+ 		-c emfloat.c
+ 
+-pointer.h: pointer Makefile
+-	$(CC) $(MACHINE) $(DEFINES) $(CFLAGS)\
+-		-o pointer pointer.c
+-	rm -f pointer.h
+-	if [ "4" = `./pointer` ] ; then touch pointer.h ;\
+-	else echo "#define LONG64" >pointer.h ; fi
++pointer.h: Makefile
++	touch pointer.h ;
+ 
+ misc.o: misc.h misc.c Makefile
+ 	$(CC) $(MACHINE) $(DEFINES) $(CFLAGS)\
+-- 
+1.7.0.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/nbench-byte/nbench-byte_2.2.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/nbench-byte/nbench-byte_2.2.3.bb
new file mode 100644
index 0000000..56272d9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/nbench-byte/nbench-byte_2.2.3.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "BYTE Magazine's native benchmarks (also called BYTEmark) \
+designed to expose the capabilities of a system's CPU, FPU, \
+and memory system."
+HOMEPAGE = "http://www.tux.org/~mayer/linux/"
+LICENSE = "nbench-byte"
+LIC_FILES_CHKSUM = "file://README;beginline=57;endline=66;md5=020ef579f8fa5746b7e307a54707834f"
+SECTION = "console/utils"
+
+SRC_URI = "http://www.tux.org/~mayer/linux/${BP}.tar.gz \
+           file://nbench_32bits.patch \
+           file://Makefile-add-more-dependencies-to-pointer.h.patch"
+
+SRC_URI[md5sum] = "285dfab361080759d477ea1fe7d3093a"
+SRC_URI[sha256sum] = "723dd073f80e9969639eb577d2af4b540fc29716b6eafdac488d8f5aed9101ac"
+
+EXTRA_OEMAKE = "-e MAKEFLAGS="
+
+TARGET_CC_ARCH += "${CFLAGS} ${LDFLAGS}"
+do_compile() {
+    oe_runmake
+}
+
+do_install () {
+    install -d ${D}${bindir}
+    install -m 0644 NNET.DAT ${D}${bindir}/
+    install -m 0755 nbench ${D}${bindir}/
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_6.0.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_6.0.1.bb
new file mode 100644
index 0000000..5acfbf1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_6.0.1.bb
@@ -0,0 +1,35 @@
+SUMMARY = "Phoronix Test Suite"
+DESCRIPTION = "The Phoronix Test Suite is designed to carry out both qualitative \
+and quantitative benchmarks in a clean, reproducible, and easy-to-use manner."
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+SECTION = "console/tests"
+
+SRC_URI = "http://www.phoronix-test-suite.com/releases/${BP}.tar.gz"
+SRC_URI[md5sum] = "c3b26fcc57a3a253e558f759fdc1089f"
+SRC_URI[sha256sum] = "27add54f4ecb464549de580cece84b4a4945b99df3ef7ff7034eb7f23ffb3b39"
+S = "${WORKDIR}/phoronix-test-suite"
+
+inherit systemd allarch
+
+do_install() {
+	DESTDIR=${D} ./install-sh ${exec_prefix}
+
+	if [ "${systemd_unitdir}" != "/usr/lib/systemd" ]; then
+		install -d ${D}/${systemd_unitdir}/system/
+		mv ${D}/usr/lib/systemd/system/* ${D}/${systemd_unitdir}/system/
+		rm -rf ${D}/usr/lib/
+	fi
+}
+
+SYSTEMD_SERVICE_${PN} = "phoromatic-client.service phoromatic-server.service"
+RDEPENDS_${PN} += "bash python php-cli"
+
+FILES_${PN} += " \
+	${datadir}/phoronix-test-suite \
+	${datadir}/appdata/phoronix-test-suite.appdata.xml \
+	${datadir}/icons/hicolor/48x48/apps/phoronix-test-suite.png \
+	${datadir}/icons/hicolor/64x64/mimetypes/application-x-openbenchmarking.png \
+	${datadir}/mime/packages/openbenchmarking-mime.xml \
+	${systemd_unitdir}/* \
+"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/tinymembench/tinymembench_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/tinymembench/tinymembench_git.bb
new file mode 100644
index 0000000..9898a70
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/tinymembench/tinymembench_git.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "A simple memory benchmark program, which tries to measure the \
+peak bandwidth of sequential memory accesses and the latency of random memory \
+accesses. Bandwidth is measured by running different assembly code for the \
+aligned memory blocks and attempting different prefetch strategies"
+HOMEPAGE = "https://github.com/ssvb/tinymembench/wiki"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://main.c;endline=22;md5=879b9bbb60851454885b5fa47eb6b345"
+
+PV = "0.3.9+git${SRCPV}"
+
+SRCREV = "95e68477588d41187b2d2e52ecf6be0e7eb06b8d"
+SRC_URI = "git://github.com/ssvb/tinymembench.git"
+
+S = "${WORKDIR}/git"
+
+do_install() {
+    install -d ${D}${bindir}
+    install -m755 tinymembench ${D}${bindir}/
+}
+
+# Fails to build with thumb-1 (qemuarm)
+#| {standard input}: Assembler messages:
+#| {standard input}:66: Error: instruction not supported in Thumb16 mode -- `subs r1,r1,#16'
+#| {standard input}:69: Error: instruction not supported in Thumb16 mode -- `subs r1,r1,#16'
+#| {standard input}:82: Error: selected processor does not support Thumb mode `mla r3,r4,r3,r5'
+#| {standard input}:82: Error: unshifted register required -- `and r8,r7,r3,lsr#16'
+ARM_INSTRUCTION_SET = "arm"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/tiobench/tiobench-0.3.3/0001-Drop-inline-of-crc32-function-to-fix-build-using-GCC.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/tiobench/tiobench-0.3.3/0001-Drop-inline-of-crc32-function-to-fix-build-using-GCC.patch
new file mode 100644
index 0000000..5aebb95
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/tiobench/tiobench-0.3.3/0001-Drop-inline-of-crc32-function-to-fix-build-using-GCC.patch
@@ -0,0 +1,30 @@
+From 5429ab90eb33eb243fa7b9cd247e0490d72b9da5 Mon Sep 17 00:00:00 2001
+From: Otavio Salvador <otavio@ossystems.com.br>
+Date: Wed, 9 Sep 2015 15:04:45 +0000
+Subject: [PATCH] Drop 'inline' of crc32 function to fix build using GCC 5.2
+Organization: O.S. Systems Software LTDA.
+
+Upstream-Status: Pending
+
+Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
+---
+ crc32.h |   1 -
+ crc32.o | Bin 748 -> 2056 bytes
+ 2 files changed, 1 deletion(-)
+
+diff --git a/crc32.h b/crc32.h
+index 62b3433..8fc62b6 100644
+--- a/crc32.h
++++ b/crc32.h
+@@ -18,7 +18,6 @@
+ #ifndef CRC32_H
+ #define CRC32_H
+ 
+-inline 
+ unsigned long crc32( const void* const buffer, 
+ 		      unsigned long length, 
+ 		      unsigned long crc);
+
+-- 
+2.1.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/tiobench/tiobench-0.3.3/avoid-glibc-clashes.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/tiobench/tiobench-0.3.3/avoid-glibc-clashes.patch
new file mode 100644
index 0000000..321d299
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/tiobench/tiobench-0.3.3/avoid-glibc-clashes.patch
@@ -0,0 +1,57 @@
+From: Otavio Salvador <otavio@ossystems.com.br>
+Subject: [PATCH] Avoid aligned allocation function name clashes
+
+glibc added new methods for aligned allocation and it clashes with the
+local version used by 'tiobench'. To fix it, we prefix the methods
+with '_'.
+
+Upstream-Status: Pending
+
+Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
+---
+ tiotest.c |    8 ++++----
+ 1 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/tiotest.c b/tiotest.c
+index 38f54e7..6b3d0c3 100644
+--- a/tiotest.c
++++ b/tiotest.c
+@@ -31,7 +31,7 @@ static const char* versionStr = "tiotest v0.3.3 (C) 1999-2000 Mika Kuoppala <mik
+ */
+ ArgumentOptions args;
+ 
+-static void * aligned_alloc(ssize_t size)
++static void * _aligned_alloc(ssize_t size)
+ {
+ 	caddr_t a;
+ 	a = mmap((caddr_t )0, size, 
+@@ -41,7 +41,7 @@ static void * aligned_alloc(ssize_t size)
+ 	return a;
+ }
+ 
+-static int aligned_free(caddr_t a, ssize_t size)
++static int _aligned_free(caddr_t a, ssize_t size)
+ {
+ 	return munmap(a, size);
+ }
+@@ -281,7 +281,7 @@ void initialize_test( ThreadTest *d )
+ 		pthread_attr_setscope(&(d->threads[i].thread_attr),
+ 				      PTHREAD_SCOPE_SYSTEM);
+ 
+-		d->threads[i].buffer = aligned_alloc( d->threads[i].blockSize );
++		d->threads[i].buffer = _aligned_alloc( d->threads[i].blockSize );
+ 		if( d->threads[i].buffer == NULL )
+ 		{
+ 			perror("Error allocating memory");
+@@ -383,7 +383,7 @@ void cleanup_test( ThreadTest *d )
+ 	{
+ 		if (!args.rawDrives)
+ 		unlink(d->threads[i].fileName);
+-		aligned_free( d->threads[i].buffer, d->threads[i].blockSize );
++		_aligned_free( d->threads[i].buffer, d->threads[i].blockSize );
+ 		d->threads[i].buffer = 0;
+ 	
+ 		pthread_attr_destroy( &(d->threads[i].thread_attr) );
+-- 
+1.7.7
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/tiobench/tiobench-0.3.3/tiobench-makefile.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/tiobench/tiobench-0.3.3/tiobench-makefile.patch
new file mode 100644
index 0000000..f820c7e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/tiobench/tiobench-0.3.3/tiobench-makefile.patch
@@ -0,0 +1,49 @@
+Adapt tiobench to OE
+Author: Ludovic Desroches <ludovic.desroches@atmel.com>
+
+Upstream-Status: Inappropriate [not author]
+
+Index: Makefile
+===================================================================
+--- a/Makefile	2011-05-26 07:48:46.341400974 +0200
++++ b/Makefile	2011-05-30 06:32:38.091401358 +0200
+@@ -1,8 +1,9 @@
+ # Makefile for tiotest
+ 
+-CC=gcc
++CC?=gcc
+ #CFLAGS=-O3 -fomit-frame-pointer -Wall
+ CFLAGS=-O2 -Wall
++LDFLAGS?=
+ 
+ #DEFINES=-DUSE_MMAP 
+ #-DUSE_MADVISE
+@@ -14,16 +15,16 @@
+ 
+ #DEFINES=
+ 
+-LINK=gcc
++LINK?=$(CC)
+ EXE=tiotest
+ PROJECT=tiobench
+ # do it once instead of each time referenced
+ VERSION=$(shell egrep "tiotest v[0-9]+.[0-9]+" tiotest.c | cut -d " " -f 7 | sed "s/v//g")
+ DISTNAME=$(PROJECT)-$(VERSION)
+ INSTALL=install
+-PREFIX=/usr/local
++PREFIX?=/usr/local
+ BINDIR=$(PREFIX)/bin
+-DOCDIR=/usr/local/doc/$(DISTNAME)
++DOCDIR=$(PREFIX)/share/doc/$(DISTNAME)
+ 
+ all: $(EXE)
+ 
+@@ -34,7 +35,7 @@
+ 	$(CC) -c $(CFLAGS) $(DEFINES) tiotest.c -o tiotest.o
+ 
+ $(EXE): tiotest.o crc32.o
+-	$(LINK) -o $(EXE) tiotest.o crc32.o -lpthread
++	$(LINK) -o $(EXE) tiotest.o crc32.o -lpthread $(LDFLAGS)
+ 	@echo
+ 	@echo "./tiobench.pl --help for usage options"
+ 	@echo
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/tiobench/tiobench_0.3.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/tiobench/tiobench_0.3.3.bb
new file mode 100644
index 0000000..35af35f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/tiobench/tiobench_0.3.3.bb
@@ -0,0 +1,29 @@
+SUMMARY = "Threaded I/O tester"
+HOMEPAGE = "http://sourceforge.net/projects/tiobench/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b"
+
+PR = "r1"
+
+SRC_URI = "\
+    http://sourceforge.net/projects/tiobench/files/tiobench/${PV}/${BP}.tar.gz \
+    file://tiobench-makefile.patch \
+    file://avoid-glibc-clashes.patch \
+    file://0001-Drop-inline-of-crc32-function-to-fix-build-using-GCC.patch \
+"
+SRC_URI[md5sum] = "bf485bf820e693c79e6bd2a38702a128"
+SRC_URI[sha256sum] = "8ad011059a35ac70cdb5e3d3999ceee44a8e8e9078926844b0685b7ea9db2bcc"
+
+EXTRA_OEMAKE = "PREFIX=${D}/usr"
+
+do_install() {
+    oe_runmake install
+}
+
+RDEPENDS_${PN} = "\
+    perl \
+    perl-module-exporter-heavy \
+    perl-module-getopt-long \
+    perl-module-overload \
+    perl-module-strict \
+"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez-hcidump-2.5/obsolete_automake_macros.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez-hcidump-2.5/obsolete_automake_macros.patch
new file mode 100644
index 0000000..0c77f1a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez-hcidump-2.5/obsolete_automake_macros.patch
@@ -0,0 +1,14 @@
+Upstream-Status: Pending [package obsolete/not maintained by upstream]
+
+Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
+diff -Nurd bluez-hcidump-2.5/configure.ac bluez-hcidump-2.5/configure.ac
+--- bluez-hcidump-2.5/configure.ac	2012-11-30 10:29:41.000000000 +0200
++++ bluez-hcidump-2.5/configure.ac	2013-01-12 10:02:10.609511463 +0200
+@@ -2,7 +2,7 @@
+ AC_INIT(bluez-hcidump, 2.5)
+
+ AM_INIT_AUTOMAKE([foreign subdir-objects])
+-AM_CONFIG_HEADER(config.h)
++AC_CONFIG_HEADERS(config.h)
+
+ m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez-hcidump_2.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez-hcidump_2.5.bb
new file mode 100644
index 0000000..3a15d64
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez-hcidump_2.5.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Linux Bluetooth Stack HCI Debugger Tool"
+DESCRIPTION = "The hcidump tool reads raw HCI data coming from and going to a Bluetooth device \
+and displays the commands, events and data in a human-readable form."
+
+SECTION = "console"
+# hcidump was integrated into bluez5
+DEPENDS = "bluez4"
+RCONFLICTS_${PN} = "bluez5"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a \
+                    file://src/hcidump.c;beginline=1;endline=23;md5=3bee3a162dff43a5be7470710b99fbcf"
+PR = "r1"
+
+PNBLACKLIST[bluez-hcidump] ?= "${@bb.utils.contains('DISTRO_FEATURES', 'bluez5', 'bluez5 conflicts with bluez4 and bluez5 is selected in DISTRO_FEATURES', '', d)}"
+
+SRC_URI = "http://www.kernel.org/pub/linux/bluetooth/bluez-hcidump-${PV}.tar.gz \
+           file://obsolete_automake_macros.patch \
+"
+
+SRC_URI[md5sum] = "2eab54bbd2b59a2ed4274ebb9390cf18"
+SRC_URI[sha256sum] = "9b7c52b375081883738cf049ecabc103b97d094b19c6544fb241267905d88881"
+S = "${WORKDIR}/bluez-hcidump-${PV}"
+
+inherit autotools
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/bluetooth.conf b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/bluetooth.conf
new file mode 100644
index 0000000..ca5e9e4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/bluetooth.conf
@@ -0,0 +1,16 @@
+<!-- This configuration file specifies the required security policies
+     for Bluetooth core daemon to work. -->
+
+<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
+ "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
+<busconfig>
+
+  <!-- ../system.conf have denied everything, so we just punch some holes -->
+
+  <policy context="default">
+    <allow own="org.bluez"/>
+    <allow send_destination="org.bluez"/>
+    <allow send_interface="org.bluez.Agent"/>
+  </policy>
+
+</busconfig>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/fix-udev-paths.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/fix-udev-paths.patch
new file mode 100644
index 0000000..8089914
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/fix-udev-paths.patch
@@ -0,0 +1,37 @@
+Add udevdir/udevrulesdir options
+
+Upstream-Status: Inappropriate [configuration]
+Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
+
+Index: bluez-4.101/Makefile.am
+===================================================================
+--- bluez-4.101.orig/Makefile.am
++++ bluez-4.101/Makefile.am
+@@ -395,7 +395,7 @@ EXTRA_DIST += audio/bluetooth.conf
+ include Makefile.tools
+ 
+ if DATAFILES
+-rulesdir = @UDEV_DIR@/rules.d
++rulesdir = @UDEV_RULES_DIR@
+ 
+ udev_files =
+ 
+Index: bluez-4.101/configure.ac
+===================================================================
+--- bluez-4.101.orig/configure.ac
++++ bluez-4.101/configure.ac
+@@ -61,4 +61,14 @@ if (test -n "${path_systemdunit}"); then
+ fi
+ AM_CONDITIONAL(SYSTEMD, test -n "${path_systemdunit}")
+ 
++AC_ARG_WITH([udevdir],
++    AS_HELP_STRING([--with-udevdir=DIR], [udev directory]),
++    [], [with_udevdir=/lib/udev/])
++AC_SUBST([UDEV_DIR], [$with_udevdir])
++
++AC_ARG_WITH([udevrulesdir],
++    AS_HELP_STRING([--with-udevrulesdir=DIR], [udev rules directory]),
++    [], [with_udevrulesdir=/lib/udev/rules.d])
++AC_SUBST([UDEV_RULES_DIR], [$with_udevrulesdir])
++
+ AC_OUTPUT(Makefile doc/version.xml src/bluetoothd.8 src/bluetooth.service bluez.pc)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/fix_encrypt_collision.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/fix_encrypt_collision.patch
new file mode 100644
index 0000000..1bc390f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/fix_encrypt_collision.patch
@@ -0,0 +1,110 @@
+Avoid namepspace collision with encrypt function from libc
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Index: bluez-4.101/test/l2test.c
+===================================================================
+--- bluez-4.101.orig/test/l2test.c
++++ bluez-4.101/test/l2test.c
+@@ -107,7 +107,7 @@ static char *filename = NULL;
+ static int rfcmode = 0;
+ static int master = 0;
+ static int auth = 0;
+-static int encrypt = 0;
++static int encryption_request = 0;
+ static int secure = 0;
+ static int socktype = SOCK_SEQPACKET;
+ static int linger = 0;
+@@ -340,7 +340,7 @@ static int do_connect(char *svr)
+ 		opt |= L2CAP_LM_MASTER;
+ 	if (auth)
+ 		opt |= L2CAP_LM_AUTH;
+-	if (encrypt)
++	if (encryption_request)
+ 		opt |= L2CAP_LM_ENCRYPT;
+ 	if (secure)
+ 		opt |= L2CAP_LM_SECURE;
+@@ -475,7 +475,7 @@ static void do_listen(void (*handler)(in
+ 		opt |= L2CAP_LM_MASTER;
+ 	if (auth)
+ 		opt |= L2CAP_LM_AUTH;
+-	if (encrypt)
++	if (encryption_request)
+ 		opt |= L2CAP_LM_ENCRYPT;
+ 	if (secure)
+ 		opt |= L2CAP_LM_SECURE;
+@@ -1407,7 +1407,7 @@ int main(int argc, char *argv[])
+ 			break;
+ 
+ 		case 'E':
+-			encrypt = 1;
++			encryption_request = 1;
+ 			break;
+ 
+ 		case 'S':
+Index: bluez-4.101/test/rctest.c
+===================================================================
+--- bluez-4.101.orig/test/rctest.c
++++ bluez-4.101/test/rctest.c
+@@ -79,7 +79,7 @@ static char *filename = NULL;
+ 
+ static int master = 0;
+ static int auth = 0;
+-static int encrypt = 0;
++static int encryption_request = 0;
+ static int secure = 0;
+ static int socktype = SOCK_STREAM;
+ static int linger = 0;
+@@ -200,7 +200,7 @@ static int do_connect(const char *svr)
+ 		opt |= RFCOMM_LM_MASTER;
+ 	if (auth)
+ 		opt |= RFCOMM_LM_AUTH;
+-	if (encrypt)
++	if (encryption_request)
+ 		opt |= RFCOMM_LM_ENCRYPT;
+ 	if (secure)
+ 		opt |= RFCOMM_LM_SECURE;
+@@ -291,7 +291,7 @@ static void do_listen(void (*handler)(in
+ 		opt |= RFCOMM_LM_MASTER;
+ 	if (auth)
+ 		opt |= RFCOMM_LM_AUTH;
+-	if (encrypt)
++	if (encryption_request)
+ 		opt |= RFCOMM_LM_ENCRYPT;
+ 	if (secure)
+ 		opt |= RFCOMM_LM_SECURE;
+@@ -701,7 +701,7 @@ int main(int argc, char *argv[])
+ 			break;
+ 
+ 		case 'E':
+-			encrypt = 1;
++			encryption_request = 1;
+ 			break;
+ 
+ 		case 'S':
+Index: bluez-4.101/src/textfile.h
+===================================================================
+--- bluez-4.101.orig/src/textfile.h
++++ bluez-4.101/src/textfile.h
+@@ -24,6 +24,8 @@
+ #ifndef __TEXTFILE_H
+ #define __TEXTFILE_H
+ 
++#include <sys/types.h>
++
+ int create_dirs(const char *filename, const mode_t mode);
+ int create_file(const char *filename, const mode_t mode);
+ int create_name(char *buf, size_t size, const char *path,
+Index: bluez-4.101/test/attest.c
+===================================================================
+--- bluez-4.101.orig/test/attest.c
++++ bluez-4.101/test/attest.c
+@@ -34,6 +34,7 @@
+ #include <termios.h>
+ #include <sys/ioctl.h>
+ #include <sys/socket.h>
++#include <sys/select.h>
+ 
+ #include <bluetooth/bluetooth.h>
+ #include <bluetooth/rfcomm.h>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/install-test-script.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/install-test-script.patch
new file mode 100644
index 0000000..23f7d99
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/install-test-script.patch
@@ -0,0 +1,26 @@
+Upstream-Status: Inappropriate
+
+Install the bluez's test scripts
+
+Signed-off-by: Zhong Hongbo <hongbo.zhong@windriver.com>
+diff -Nurd bluez-4.101.orig/Makefile.tools bluez-4.101/Makefile.tools
+--- bluez-4.101.orig/Makefile.tools	2013-11-19 15:49:07.688838000 +0800
++++ bluez-4.101/Makefile.tools	2013-11-19 15:50:09.256837848 +0800
+@@ -227,6 +227,17 @@
+ 		test/service-spp.xml test/service-opp.xml test/service-ftp.xml \
+ 		test/simple-player test/test-nap
+ 
++bluez4_testdir = $(libdir)/bluez4/test/
++dist_bluez4_test_SCRIPTS = test/sap-client test/hsplay test/hsmicro \
++		test/monitor-bluetooth test/list-devices \
++		test/test-discovery test/test-manager test/test-adapter \
++		test/test-device test/test-service test/test-serial \
++		test/test-telephony test/test-network test/simple-agent \
++		test/simple-service test/simple-endpoint test/test-audio \
++		test/test-input test/test-sap-server test/test-oob \
++		test/test-attrib test/test-proximity test/test-thermometer \
++		test/test-serial-proxy test/test-health test/test-health-sink \
++		test/simple-player test/test-nap
+ if HIDD
+ bin_PROGRAMS += compat/hidd
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/network-fix-network-Connect-method-parameters.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/network-fix-network-Connect-method-parameters.patch
new file mode 100644
index 0000000..37f9199
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/network-fix-network-Connect-method-parameters.patch
@@ -0,0 +1,30 @@
+Upstream-Status: Backport
+Signed-off-by: Peter A. Bigot <pab@pabigot.com>
+
+From 57170b311f1468330f4a9961dc0b3ac45f97bc13 Mon Sep 17 00:00:00 2001
+From: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
+Date: Sat, 30 Jun 2012 00:39:05 -0300
+Subject: [PATCH] network: fix network Connect() method parameters
+
+---
+ network/connection.c |    4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/network/connection.c b/network/connection.c
+index 544ec3a..59423a9 100644
+--- a/network/connection.c
++++ b/network/connection.c
+@@ -554,7 +554,9 @@ static void path_unregister(void *data)
+ 
+ static const GDBusMethodTable connection_methods[] = {
+ 	{ GDBUS_ASYNC_METHOD("Connect",
+-			NULL, NULL, connection_connect) },
++				GDBUS_ARGS({"uuid", "s"}),
++				GDBUS_ARGS({"interface", "s"}),
++				connection_connect) },
+ 	{ GDBUS_METHOD("Disconnect",
+ 			NULL, NULL, connection_disconnect) },
+ 	{ GDBUS_METHOD("GetProperties",
+-- 
+1.7.9.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/obsolete_automake_macros.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/obsolete_automake_macros.patch
new file mode 100644
index 0000000..1068f24
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/obsolete_automake_macros.patch
@@ -0,0 +1,14 @@
+Upstream-Status: Backport
+
+Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
+diff -Nurd bluez-4.101/configure.ac bluez-4.101/configure.ac
+--- bluez-4.101/configure.ac	2012-06-22 19:36:49.000000000 +0300
++++ bluez-4.101/configure.ac	2013-01-07 06:13:18.385888966 +0200
+@@ -2,7 +2,7 @@
+ AC_INIT(bluez, 4.101)
+
+ AM_INIT_AUTOMAKE([foreign subdir-objects color-tests])
+-AM_CONFIG_HEADER(config.h)
++AC_CONFIG_HEADERS(config.h)
+
+ m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/sbc_mmx.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/sbc_mmx.patch
new file mode 100644
index 0000000..98fab45
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4-4.101/sbc_mmx.patch
@@ -0,0 +1,24 @@
+on x86 and x86_64 gcc 4.7 complains
+
+sbc/sbc_primitives_mmx.c: In function 'sbc_calc_scalefactors_mmx':
+sbc/sbc_primitives_mmx.c:294:4: warning: asm operand 2 probably doesn't match constraints [enabled by default]
+sbc/sbc_primitives_mmx.c:294:4: error: impossible constraint in 'asm'
+
+This patch is taken from https://bugs.launchpad.net/ubuntu/+source/bluez/+bug/911871
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
+Index: bluez-4.98/sbc/sbc_primitives_mmx.c
+===================================================================
+--- bluez-4.98.orig/sbc/sbc_primitives_mmx.c	2011-12-21 14:53:54.000000000 -0800
++++ bluez-4.98/sbc/sbc_primitives_mmx.c	2012-02-24 10:07:03.422073800 -0800
+@@ -318,7 +318,7 @@
+ 				"movl          %k0, 4(%3)\n"
+ 			: "+r" (blk)
+ 			: "r" (&sb_sample_f[0][ch][sb]),
+-				"i" ((char *) &sb_sample_f[1][0][0] -
++				"r" ((char *) &sb_sample_f[1][0][0] -
+ 					(char *) &sb_sample_f[0][0][0]),
+ 				"r" (&scale_factor[ch][sb]),
+ 				"r" (&consts),
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4.inc b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4.inc
new file mode 100644
index 0000000..59c35e4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4.inc
@@ -0,0 +1,51 @@
+SUMMARY = "Linux Bluetooth Stack Userland V4"
+DESCRIPTION = "Linux Bluetooth stack V4 userland components.  These include a system configurations, daemons, tools and system libraries."
+HOMEPAGE = "http://www.bluez.org"
+SECTION = "libs"
+LICENSE = "GPLv2+ & LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e \
+                    file://COPYING.LIB;md5=fb504b67c50331fc78734fed90fb0e09 \
+                    file://src/main.c;beginline=1;endline=24;md5=9bc54b93cd7e17bf03f52513f39f926e \
+                    file://sbc/sbc.c;beginline=1;endline=25;md5=1a40781ed30d50d8639323a184aeb191"
+
+RPROVIDES_${PN} += "${PN}-systemd"
+RREPLACES_${PN} += "${PN}-systemd"
+RCONFLICTS_${PN} += "${PN}-systemd"
+
+DEPENDS = "udev libusb dbus-glib glib-2.0 libcheck readline libsndfile1"
+RDEPENDS_${PN}-dev = "bluez-hcidump"
+
+PACKAGECONFIG ??= "\
+    ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'alsa', '', d)}\
+    ${@bb.utils.contains('DISTRO_FEATURES', 'pie', 'pie', '', d)}\
+    ${@bb.utils.contains('DISTRO_FEATURES', 'systemd','systemd', '', d)} \
+"
+PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib"
+PACKAGECONFIG[pie] = "--enable-pie,--disable-pie,"
+PACKAGECONFIG[systemd] = "--with-systemdunitdir=${systemd_unitdir}/system/,--with-systemdunitdir="
+
+ASNEEDED = ""
+
+SRC_URI = "${KERNELORG_MIRROR}/linux/bluetooth/bluez-${PV}.tar.gz"
+S = "${WORKDIR}/bluez-${PV}"
+
+inherit autotools-brokensep pkgconfig systemd
+
+EXTRA_OECONF = "\
+    --disable-gstreamer \
+    --enable-usb \
+    --enable-tools \
+    --enable-bccmd \
+    --enable-hid2hci \
+    --enable-dfutool \
+    --disable-hidd \
+    --disable-pand \
+    --disable-dund \
+    --disable-cups \
+    --enable-test \
+    --enable-datafiles \
+    --with-udevdir=`pkg-config --variable=udevdir udev` \
+    --with-udevrulesdir=`pkg-config --variable=udevdir udev`/rules.d \
+"
+
+EXCLUDE_FROM_WORLD = "1"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4_4.101.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4_4.101.bb
new file mode 100644
index 0000000..d6d16c0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/bluez4_4.101.bb
@@ -0,0 +1,50 @@
+require bluez4.inc
+
+PNBLACKLIST[bluez4] ?= "${@bb.utils.contains('DISTRO_FEATURES', 'bluez5', 'bluez5 conflicts with bluez4 and bluez5 is selected in DISTRO_FEATURES', '', d)}"
+
+PR = "r11"
+
+SRC_URI += "file://bluetooth.conf \
+            file://sbc_mmx.patch \
+            file://fix-udev-paths.patch \
+            file://obsolete_automake_macros.patch \
+            file://network-fix-network-Connect-method-parameters.patch \
+            file://install-test-script.patch \
+            file://fix_encrypt_collision.patch \
+"
+
+SRC_URI[md5sum] = "fb42cb7038c380eb0e2fa208987c96ad"
+SRC_URI[sha256sum] = "59738410ade9f0e61a13c0f77d9aaffaafe49ba9418107e4ad75fe52846f7487"
+
+RCONFLICTS_${PN} = "bluez5"
+
+do_install_append() {
+    install -m 0644 ${S}/audio/audio.conf ${D}/${sysconfdir}/bluetooth/
+    install -m 0644 ${S}/network/network.conf ${D}/${sysconfdir}/bluetooth/
+    install -m 0644 ${S}/input/input.conf ${D}/${sysconfdir}/bluetooth/
+    # at_console doesn't really work with the current state of OE, so punch some more holes so people can actually use BT
+    install -m 0644 ${WORKDIR}/bluetooth.conf ${D}/${sysconfdir}/dbus-1/system.d/
+}
+
+RDEPENDS_${PN}-dev = "bluez-hcidump"
+RDEPENDS_${PN}-testtools += "python python-dbus python-pygobject"
+
+ALLOW_EMPTY_libasound-module-bluez = "1"
+PACKAGES =+ "libasound-module-bluez ${PN}-testtools"
+
+FILES_libasound-module-bluez = "${libdir}/alsa-lib/lib*.so ${datadir}/alsa"
+FILES_${PN} += "${libdir}/bluetooth/plugins ${libdir}/bluetooth/plugins/*.so ${base_libdir}/udev/ ${nonarch_base_libdir}/udev/ ${systemd_unitdir}/ ${datadir}/dbus-1"
+FILES_${PN}-dev += "\
+    ${libdir}/bluetooth/plugins/*.la \
+    ${libdir}/alsa-lib/*.la \
+"
+
+FILES_${PN}-testtools = "${libdir}/bluez4/test/*"
+
+FILES_${PN}-dbg += "\
+    ${libdir}/bluetooth/plugins/.debug \
+    ${libdir}/*/.debug \
+    */udev/.debug \
+"
+
+SYSTEMD_SERVICE_${PN} = "bluetooth.service"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/gst-plugin-bluetooth_4.101.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/gst-plugin-bluetooth_4.101.bb
new file mode 100644
index 0000000..822aec4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/bluez/gst-plugin-bluetooth_4.101.bb
@@ -0,0 +1,41 @@
+require bluez4.inc
+require recipes-multimedia/gstreamer/gst-plugins-package.inc
+
+PNBLACKLIST[gst-plugin-bluetooth] ?= "${@bb.utils.contains('DISTRO_FEATURES', 'bluez5', 'bluez5 conflicts with bluez4 and bluez5 is selected in DISTRO_FEATURES', '', d)}"
+
+PR = "r1"
+
+SRC_URI[md5sum] = "fb42cb7038c380eb0e2fa208987c96ad"
+SRC_URI[sha256sum] = "59738410ade9f0e61a13c0f77d9aaffaafe49ba9418107e4ad75fe52846f7487"
+
+DEPENDS = "bluez4 gst-plugins-base"
+
+EXTRA_OECONF = "\
+    --enable-gstreamer \
+"
+
+# clean unwanted files
+do_install_append() {
+    rm -rf ${D}${bindir}
+    rm -rf ${D}${sbindir}
+    rm -f  ${D}${libdir}/lib*
+    rm -rf ${D}${libdir}/pkgconfig
+    rm -rf ${D}${sysconfdir}
+    rm -rf ${D}${base_libdir}
+    rm -rf ${D}${libdir}/bluetooth
+    rm -rf ${D}${localstatedir}
+    rm -rf ${D}${libdir}/alsa-lib
+    rm -rf ${D}${datadir}
+    rm -rf ${D}${includedir}
+    rm -rf ${D}${nonarch_base_libdir}
+}
+
+FILES_${PN} = "${libdir}/gstreamer-0.10/lib*.so"
+FILES_${PN}-dev += "\
+    ${libdir}/gstreamer-0.10/*.la \
+"
+
+FILES_${PN}-dbg += "\
+    ${libdir}/*/.debug \
+"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/gammu/gammu/gammu-smsdrc b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/gammu/gammu/gammu-smsdrc
new file mode 100644
index 0000000..da413c2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/gammu/gammu/gammu-smsdrc
@@ -0,0 +1,80 @@
+# This is a sample Gammu SMSD configuration file. It's required for gammu-smsd,
+# see gammu-smsdrc(5) for documentation.
+
+# Gammu configuration, this section is like section "gammu" in "gammurc" file,
+# see gammurc(5) for documentation.
+[gammu]
+device = /dev/ttyUSB0
+model = at115200
+#connection = dlr3
+#synchronizetime = yes
+#logfile = gammulog # this is not used at all in SMSD mode
+#logformat = textall
+#use_locking = yes
+#gammuloc = gammu.us
+#startinfo = yes
+
+# When uncomment this section and insert numbers here, smsd will process
+# incoming sms only from numbers written here (incoming sms from all other
+# numbers will be deleted)
+#[include_numbers]
+#number1 = 1234
+
+# When uncomment this section and insert numbers here, smsd will process
+# incoming sms from all numbers not written here (incoming sms from numbers
+# written here will be deleted). This is "black" list.
+# Note: after using "include_numbers" section this one will be ignored
+#[exclude_numbers]
+#number1 = 1234
+
+# General SMSD settings, see gammu-smsdrc(5) for detailed description.
+[smsd]
+# SMSD service to use, one of FILES, MYSQL, PGSQL, DBI
+service = files
+# PIN for SIM card
+PIN = 0000
+# File (or stderr, syslog, eventlog) where information will be logged
+logfile = smsdlog
+# Amount of information being logged, each bit mean one level
+debuglevel = 0
+# Configuration for using more phones on same database
+#phoneid = MyPhone1
+# Script to be executed when new message has been received
+#runonreceive = /some/script
+# Commication frequency settings
+commtimeout = 30
+sendtimeout = 30
+#receivefrequency = 0
+
+# Phone communication settings
+#checksecurity = 1
+#resetfrequency = 0
+
+# Delivery report configuration
+#deliveryreport = no
+#deliveryreportdelay = 10
+
+# Ignoring broken SMSC
+#skipsmscnumber = +48602123456
+
+# Database backends congfiguration
+user = gammu
+password = gammupassword
+pc = localhost
+# pc can also contain port or socket path after colon (eg. localhost:/path/to/socket)
+database = sms
+
+# DBI configuration
+driver = sqlite
+# driverspath = /usr/lib/dbd/
+# Database directory for sqlite
+# dbdir = /var/lib/smsd
+
+# Files backend configuration
+inboxpath = /var/spool/sms/inbox/
+outboxpath = /var/spool/sms/outbox/
+sentsmspath = /var/spool/sms/sent/
+errorsmspath = /var/spool/sms/error/
+inboxformat = detail
+transmitformat = auto
+outboxformat = detail
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/gammu/gammu/gammurc b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/gammu/gammu/gammurc
new file mode 100644
index 0000000..b55d739
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/gammu/gammu/gammurc
@@ -0,0 +1,173 @@
+; This is a sample ~/.gammurc file.
+; In Unix/Linux  copy it into your home directory and name it .gammurc
+;                or into /etc and name it gammurc
+; In Win32       copy it into directory with Gammu.exe and name gammurc
+; More about parameters later
+; Anything behind ; or # is comment.
+; -----------------------------------------------------------------------------
+
+[gammu]
+
+device = /dev/ttyUSB0
+connection = at115200
+; Do not use model configuration unless you really need it
+;model = 6110
+;synchronizetime = yes
+;logfile = gammulog
+;logformat = textall
+;use_locking = yes
+;gammuloc = locfile
+;startinfo = yes
+;gammucoding = utf8
+;usephonedb = yes
+
+;[gammu1]
+
+;device = com8:
+;model = 6110
+;connection = fbusblue
+;synchronizetime = yes
+;logfile = gammulog
+;logformat = textall
+;use_locking = yes
+;gammuloc = locfile
+;startinfo = yes
+;gammucoding = utf8
+
+; Step 1. Please find required Connection parameter and look into assigned 
+; with it device type. With some Connection you must set concrete model
+
+; ================================================================ cables =====
+; New Nokia protocol for FBUS/DAU9P
+;    Connection "fbus", device type serial
+; New Nokia protocol for DLR3/DLR3P
+;    Connection "fbusdlr3"/"dlr3", device type serial 
+; New Nokia protocol for DKU2 (and phone with USB converter on phone mainboard
+;                              like 6230)
+;    Connection "dku2phonet"/"dku2", device type dku2 on Windows
+;    Connection "fbususb" on Linux
+; New Nokia protocol for DKU5 (and phone without USB converter on phone
+;                              mainboard like 5100)
+;    Connection "dku5fbus"/"dku5", device type dku5
+; New Nokia protocol for PL2303 USB cable (and phone without USB converter
+;                                          on phone mainboard like 5100)
+;    Connection "fbuspl2303", device type usb
+; Old Nokia protocol for MBUS/DAU9P
+;    Connection "mbus", device type serial
+; Variants: 
+; You can modify a bit behaviour of connection using additional flags
+; specified just after connection name like connection-variant.
+; If you're using ARK3116 cable (or any other which does not like dtr 
+; handling), you might need -nodtr variant of connection, eg. dlr3-nodtr.
+; If cable you use is not powered over DTR/RTS, try using -nopower variant of 
+; connection, eg. fbus-nopower.
+; -----------------------------------------------------------------------------
+; AT commands for DLR3, DKU5 or other AT compatible cable (8 bits, None
+; parity, no flow control, 1 stop bit). Used with Nokia, Alcatel, Siemens, etc.
+;    Connection "at19200"/"at115200"/.., device type serial
+; AT commands for DKU2 cable
+;    Connection "dku2at", device type dku2
+; ============================================================== infrared =====
+; Nokia protocol for infrared with Nokia 6110/6130/6150
+;    Connection "fbusirda"/"infrared", device type serial
+; Nokia protocol for infrared with other Nokia models
+;    Connection "irdaphonet"/"irda", device type irda
+; -----------------------------------------------------------------------------
+; AT commands for infrared. Used with Nokia, Alcatel, Siemens, etc.
+;    Connection "irdaat", device type irda
+; -----------------------------------------------------------------------------
+; OBEX for infrared
+;    Connection "irdaobex", device type irda.
+; ============================================================= Bluetooth =====
+; Nokia protocol with serial device set in BT stack (WidComm, other) from
+; adequate service and Nokia 6210
+;    Connection "fbusblue", device type serial
+; Nokia protocol with serial device set in BT stack (WidComm, other) from
+; adequate service and other Nokia models
+;    Connection "phonetblue", device type serial
+; -----------------------------------------------------------------------------
+; Nokia protocol for Bluetooth stack with Nokia 6210
+;    Connection "bluerffbus", device type BT
+; Nokia protocol for Bluetooth stack with DCT4 Nokia models, which don't inform
+; about services correctly (6310, 6310i with firmware lower than 5.50, 8910,..)
+;    Connection "bluerfphonet", device type BT
+; Nokia protocol for Bluetooth stack with other DCT4 Nokia models
+;    Connection "bluephonet", device type BT
+; -----------------------------------------------------------------------------
+; AT commands for Bluetooth stack and 6210 / DCT4 Nokia models, which don't
+; inform about BT services correctly (6310, 6310i with firmware lower 
+; than 5.50, 8910,..)
+;    Connection "bluerfat", device type BT
+; AT commands for Bluetooth stack with other phones (Siemens, other Nokia,etc.)
+;    Connection "blueat", device type BT
+; -----------------------------------------------------------------------------
+; OBEX for Bluetooth stack with DCT4 Nokia models, which don't inform about
+; BT services correctly (6310, 6310i with firmware lower than 5.50, 8910,...)
+;    Connection "bluerfobex", device type BT
+; OBEX for Bluetooth stack with other phones (Siemens, other Nokia, etc.)
+;    Connection "blueobex", device type BT.
+; -----------------------------------------------------------------------------
+;    Connection "bluerfgnapbus", device type BT, model "gnap"
+;    Connection "irdagnapbus", device type irda, model "gnap"
+
+; Step2. According to device type from Step1 and used OS set Port parameter
+
+; -----------------------------------------------------------------------------
+; Port type | "Port" parameter in Windows/DOS | "Port" parameter in Linux/Unix
+; ----------|---------------------------------|--------------------------------
+; serial    | "com*:"                         | "/dev/ttyS*"
+;           | (example "com1:")               | (example "/dev/ttyS1")
+;           |                                 | or "/dev/tts/**" (with DevFS)
+;           |                                 | virtual serial ports like
+;           |                                 | "/dev/ircomm*" or "/dev/rfcomm*"
+; ----------|---------------------------------|--------------------------------
+; irda      | ignored (can be empty)          | ignored (can be empty)
+; ----------|---------------------------------|--------------------------------
+; BT        | Bluetooth device address (example "00:11:22:33:44:55").
+;           | Optionally you can also include channel after slash
+;           | (example "00:11:22:33:44:55/12"). Can be also empty.
+; ----------|---------------------------------|--------------------------------
+; dku2      | ignored (can be empty)          | /dev/ttyUSB* or /dev/ttyACM*
+; ----------|---------------------------------|--------------------------------
+; dku5      | ignored (can be empty)          | connection with it not possible
+; ----------|---------------------------------|--------------------------------
+; usb       | connection with it not possible | "/dev/ttyUSB*"
+
+; Step3. Set other config parameters
+
+; -----------------------------------------------------------------------------
+; Parameter name  | Description
+; ----------------|------------------------------------------------------------
+; Model           | Should not be used unless you have a good reason to do so.
+;                 | If Gammu doesn't recognize your phone model, put it here. 
+;                 | Example values: "6110", "6150", "6210", "8210"
+; SynchronizeTime | if you want to set time from computer to phone during
+;                 | starting connection. Do not rather use this option when
+;                 | when to reset phone during connection (in some phones need
+;                 | to set time again after restart)
+; GammuLoc        | name of localisation file
+; StartInfo       | this option allow to set, that you want (setting "yes")
+;                 | to see message on the phone screen or phone should enable
+;                 | light for a moment during starting connection. Phone
+;                 | WON'T beep during starting connection with this option.
+; GammuCoding     | forces using specified codepage (in win32 - for example
+;                 | "1250" will force CP1250) or UTF8 (in Linux - "utf8")
+; ----------------|------------------------------------------------------------
+; Logfile         | Use, when want to have logfile from communication.
+; Logformat       | What debug info and format should be used:
+;                 |   "nothing" - no debug level (default)
+;                 |   "text"    - transmission dump in text format
+;                 |   "textall" - all possible info in text format
+;                 |   "errors"  - errors in text format
+;                 |   "binary"  - transmission dump in binary format
+; ----------------|------------------------------------------------------------
+; Features        | Custom features for phone. This can be used as override
+;                 | when values coded in common/gsmphones.c are bad or
+;                 | missing. Consult include/gammu-info.h for possible values
+;                 | (all Feature values without leading F_ prefix).
+;                 | Please report correct values to Gammu authors.
+; ----------------|------------------------------------------------------------
+; Use_Locking     | under Unix/Linux use "yes", if want to lock used device
+;                 | to prevent using it by other applications. In win32 ignored
+
+; vim: et ts=4 sw=4 sts=4 tw=78 spell spelllang=en_us
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/gammu/gammu_1.32.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/gammu/gammu_1.32.0.bb
new file mode 100644
index 0000000..f33b435
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/gammu/gammu_1.32.0.bb
@@ -0,0 +1,68 @@
+SUMMARY = "GNU All Mobile Managment Utilities"
+SECTION = "console/network"
+DEPENDS = "cmake-native virtual/libiconv libdbi mysql5 glib-2.0 udev libgudev"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a17cb0a873d252440acfdf9b3d0e7fbf"
+HOMEPAGE = "http://www.gammu.org/"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}/${PV}/${BP}.tar.bz2 \
+    file://gammurc \
+    file://gammu-smsdrc \
+"
+
+SRC_URI[md5sum] = "8ea16c6b3cc48097a8e62311fe0e25b9"
+SRC_URI[sha256sum] = "de67caa102aa4c8fbed5300e5a0262e40411c4cc79f4379a8d34eed797968fc3"
+
+inherit distutils cmake gettext
+
+do_install_append() {
+    # these files seem to only be used by symbian and trigger QA warnings
+    rm -rf ${D}/usr/share/gammu
+    #install default configuration files
+    install -d ${D}${sysconfdir}
+    install -m 0644 ${WORKDIR}/gammurc ${D}${sysconfdir}/gammurc
+    install -m 0644 ${WORKDIR}/gammu-smsdrc ${D}${sysconfdir}/gammu-smsdrc
+}
+
+EXTRA_OECONF = " \
+    --enable-shared \
+    --enable-backup \
+    --enable-protection \
+"
+
+EXTRA_OECMAKE = " \
+    -DWITH_CURL=OFF \
+    -DWITH_BLUETOOTH=OFF \
+    -DWITH_NOKIA_SUPPORT=OFF \
+    -DWITH_IRDA=OFF \
+    -DWITH_PYTHON=OFF \
+    -DWITH_MySQL=ON \
+    -DWITH_Postgres=OFF \
+"
+
+PACKAGES =+ "${PN}-smsd libgammu libgsmsd python-${PN}"
+
+FILES_${PN} = "${bindir}/gammu ${bindir}/jadmaker ${sysconfdir}/bash_completion.d/gammu \
+    ${bindir}/gammu-detect ${sysconfdir}/gammurc"
+CONFFILES_${PN} = "${sysconfdir}/gammurc"
+FILES_${PN}-smsd = "${bindir}/gammu-smsd* ${sysconfdir}/gammu-smsdrc"
+CONFFILES_${PN}-smsd = "${sysconfdir}/gammu-smsdrc"
+FILES_${PN}-dev += "${bindir}/gammu-config ${libdir}/*.so"
+FILES_${PN}-dbg += "${bindir}/.debug ${libdir}/.debug ${PYTHON_SITEPACKAGES_DIR}/gammu/.debug"
+FILES_libgammu = "${libdir}/libGammu.so.*"
+FILES_libgsmsd = "${libdir}/libgsmsd.so.*"
+FILES_python-${PN} = "${PYTHON_SITEPACKAGES_DIR}/gammu/*.??"
+
+RDEPENDS_${PN} += "bash"
+RDEPENDS_${PN}-dev += "bash"
+
+# Fails to build with thumb-1 (qemuarm)
+# gammu-1.32.0/libgammu/service/sms/gsmems.c:542:1: internal compiler error: in patch_jump_insn, at cfgrtl.c:1275
+# |  }
+# |  ^
+# | Please submit a full bug report,
+# | with preprocessed source if appropriate.
+# | See <http://gcc.gnu.org/bugs.html> for instructions.
+# | make[2]: *** [libgammu/CMakeFiles/libGammu.dir/service/sms/gsmems.o] Error 1
+# | make[2]: *** Waiting for unfinished jobs....
+ARM_INSTRUCTION_SET = "arm"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/gnokii/gnokii_0.6.31.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/gnokii/gnokii_0.6.31.bb
new file mode 100644
index 0000000..cfd794d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/gnokii/gnokii_0.6.31.bb
@@ -0,0 +1,33 @@
+SUMMARY = "Cellphone tools and driver software"
+SECTION = "console/network"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
+
+SRC_URI = "http://www.gnokii.org/download/gnokii/gnokii-${PV}.tar.bz2"
+
+DEPENDS = "glib-2.0"
+X11DEPENDS = " libxpm gtk+"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}"
+PACKAGECONFIG[bluez4] = "--enable-bluetooth,--disable-bluetooth,bluez4"
+PACKAGECONFIG[libical] = "--enable-libical,--disable-libical,libical"
+PACKAGECONFIG[pcsc-lite] = "--enable-libpcsclite,--disable-libpcsclite,pcsc-lite"
+PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline"
+PACKAGECONFIG[usb] = "--enable-libusb,--disable-libusb,virtual/libusb0"
+PACKAGECONFIG[x11] = ",--without-x,${X11DEPENDS}"
+
+inherit autotools pkgconfig
+
+PACKAGES += "libgnokii libgnokii-dev"
+
+EXTRA_OECONF = "--disable-smsd"
+
+FILES_${PN} = "${bindir} ${sbindir}"
+FILES_libgnokii-dev = "${includedir} ${libdir}/lib*.so ${libdir}/*.la \
+                ${libdir}/*.a ${libdir}/*.o ${libdir}/pkgconfig \
+	        /lib/*.a /lib/*.o ${datadir}/aclocal"
+FILES_${PN}-dev = ""
+FILES_libgnokii = "${libdir}/libgnokii.so.*"
+
+SRC_URI[md5sum] = "d9627f4a1152d3ea7806df4532850d5f"
+SRC_URI[sha256sum] = "8f5a083b05c1a66a3402ca5cd80084e14c2c0632c991bb53b03c78e9adb02501"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/gnuradio/gnuradio/0001-buildsys-don-t-add-usr-include-and-usr-lib-to-config.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/gnuradio/gnuradio/0001-buildsys-don-t-add-usr-include-and-usr-lib-to-config.patch
new file mode 100644
index 0000000..7caaf51
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/gnuradio/gnuradio/0001-buildsys-don-t-add-usr-include-and-usr-lib-to-config.patch
@@ -0,0 +1,58 @@
+From a130153ae84d8bb5914879cef94df09f06825c10 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Sat, 18 Jun 2011 11:25:36 +0200
+Subject: [PATCH] buildsys: don't add /usr/include and /usr/lib to configure tests for libusb
+
+Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
+---
+ config/usrp_libusb.m4 |   13 -------------
+ 1 files changed, 0 insertions(+), 13 deletions(-)
+
+diff --git a/config/usrp_libusb.m4 b/config/usrp_libusb.m4
+index cc3410f..b421820 100644
+--- a/config/usrp_libusb.m4
++++ b/config/usrp_libusb.m4
+@@ -117,10 +117,6 @@ AC_DEFUN([USRP_LIBUSB], [
+       dnl configured to find this header.
+       AC_LANG_PUSH(C)
+       save_CPPFLAGS="$CPPFLAGS"
+-      if test x$USB_INCLUDEDIR != x; then
+-        USB_INCLUDES="-I$USB_INCLUDEDIR"
+-        CPPFLAGS="$USB_INCLUDES"
+-      fi
+       AC_MSG_CHECKING([$libusb_name for header $usb_header])
+       AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+         #include "$usb_header"
+@@ -172,9 +168,6 @@ AC_DEFUN([USRP_LIBUSB], [
+             *)
+               AC_LANG_PUSH(C)
+               save_CPPFLAGS="$CPPFLAGS"
+-              if test x$USB_INCLUDEDIR != x; then
+-                CPPFLAGS="$USB_INCLUDES"
+-              fi
+               save_LIBS="$LIBS"
+               LIBS="$USB_LIBS"
+               AC_MSG_CHECKING([$libusb_name for symbol usb_debug in library $usb_lib_name])
+@@ -217,9 +210,6 @@ AC_DEFUN([USRP_LIBUSB], [
+     dnl final error checking, mostly to create #define's
+     AC_LANG_PUSH(C)
+     save_CPPFLAGS="$CPPFLAGS"
+-    if test x$USB_INCLUDEDIR != x; then
+-      CPPFLAGS="$USB_INCLUDES"
+-    fi
+     dnl Check for the header.
+     AC_CHECK_HEADERS([$usb_header], [], [libusbok=no])
+     CPPFLAGS="$save_CPPFLAGS"
+@@ -231,9 +221,6 @@ AC_DEFUN([USRP_LIBUSB], [
+       dnl check for the library (again)
+       AC_LANG_PUSH(C)
+       save_CPPFLAGS="$CPPFLAGS"
+-      if test x$USB_INCLUDEDIR != x; then
+-        CPPFLAGS="$USB_INCLUDES"
+-      fi
+       save_LIBS="$LIBS"
+       LIBS="$USB_LIBS"
+       AC_CHECK_LIB([$usb_lib_name], [$usb_lib_func], [], [
+-- 
+1.6.6.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/defconfig b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/defconfig
new file mode 100644
index 0000000..2789640
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/defconfig
@@ -0,0 +1,145 @@
+# Example hostapd build time configuration
+#
+# This file lists the configuration options that are used when building the
+# hostapd binary. All lines starting with # are ignored. Configuration option
+# lines must be commented out complete, if they are not to be included, i.e.,
+# just setting VARIABLE=n is not disabling that variable.
+#
+# This file is included in Makefile, so variables like CFLAGS and LIBS can also
+# be modified from here. In most cass, these lines should use += in order not
+# to override previous values of the variables.
+
+# Driver interface for Host AP driver
+CONFIG_DRIVER_HOSTAP=y
+
+# Driver interface for wired authenticator
+CONFIG_DRIVER_WIRED=y
+
+# Driver interface for madwifi driver
+#CONFIG_DRIVER_MADWIFI=y
+#CFLAGS += -I../../madwifi # change to the madwifi source directory
+
+# Driver interface for Prism54 driver
+CONFIG_DRIVER_PRISM54=y
+
+# Driver interface for drivers using the nl80211 kernel interface
+CONFIG_DRIVER_NL80211=y
+CONFIG_LIBNL32=y
+# driver_nl80211.c requires a rather new libnl (version 1.1) which may not be
+# shipped with your distribution yet. If that is the case, you need to build
+# newer libnl version and point the hostapd build to use it.
+#LIBNL=/usr/src/libnl
+#CFLAGS += -I$(LIBNL)/include
+#LIBS += -L$(LIBNL)/lib
+
+# Driver interface for FreeBSD net80211 layer (e.g., Atheros driver)
+#CONFIG_DRIVER_BSD=y
+#CFLAGS += -I/usr/local/include
+#LIBS += -L/usr/local/lib
+
+# Driver interface for no driver (e.g., RADIUS server only)
+#CONFIG_DRIVER_NONE=y
+
+# IEEE 802.11F/IAPP
+CONFIG_IAPP=y
+
+# WPA2/IEEE 802.11i RSN pre-authentication
+CONFIG_RSN_PREAUTH=y
+
+# PeerKey handshake for Station to Station Link (IEEE 802.11e DLS)
+CONFIG_PEERKEY=y
+
+# IEEE 802.11w (management frame protection)
+# This version is an experimental implementation based on IEEE 802.11w/D1.0
+# draft and is subject to change since the standard has not yet been finalized.
+# Driver support is also needed for IEEE 802.11w.
+#CONFIG_IEEE80211W=y
+
+# Integrated EAP server
+CONFIG_EAP=y
+
+# EAP-MD5 for the integrated EAP server
+CONFIG_EAP_MD5=y
+
+# EAP-TLS for the integrated EAP server
+CONFIG_EAP_TLS=y
+
+# EAP-MSCHAPv2 for the integrated EAP server
+CONFIG_EAP_MSCHAPV2=y
+
+# EAP-PEAP for the integrated EAP server
+CONFIG_EAP_PEAP=y
+
+# EAP-GTC for the integrated EAP server
+CONFIG_EAP_GTC=y
+
+# EAP-TTLS for the integrated EAP server
+CONFIG_EAP_TTLS=y
+
+# EAP-SIM for the integrated EAP server
+#CONFIG_EAP_SIM=y
+
+# EAP-AKA for the integrated EAP server
+#CONFIG_EAP_AKA=y
+
+# EAP-AKA' for the integrated EAP server
+# This requires CONFIG_EAP_AKA to be enabled, too.
+#CONFIG_EAP_AKA_PRIME=y
+
+# EAP-PAX for the integrated EAP server
+#CONFIG_EAP_PAX=y
+
+# EAP-PSK for the integrated EAP server (this is _not_ needed for WPA-PSK)
+#CONFIG_EAP_PSK=y
+
+# EAP-SAKE for the integrated EAP server
+#CONFIG_EAP_SAKE=y
+
+# EAP-GPSK for the integrated EAP server
+#CONFIG_EAP_GPSK=y
+# Include support for optional SHA256 cipher suite in EAP-GPSK
+#CONFIG_EAP_GPSK_SHA256=y
+
+# EAP-FAST for the integrated EAP server
+# Note: Default OpenSSL package does not include support for all the
+# functionality needed for EAP-FAST. If EAP-FAST is enabled with OpenSSL,
+# the OpenSSL library must be patched (openssl-0.9.9-session-ticket.patch)
+# to add the needed functions.
+#CONFIG_EAP_FAST=y
+
+# Wi-Fi Protected Setup (WPS)
+CONFIG_WPS=y
+# Enable UPnP support for external WPS Registrars
+#CONFIG_WPS_UPNP=y
+
+# EAP-IKEv2
+#CONFIG_EAP_IKEV2=y
+
+# Trusted Network Connect (EAP-TNC)
+#CONFIG_EAP_TNC=y
+
+# PKCS#12 (PFX) support (used to read private key and certificate file from
+# a file that usually has extension .p12 or .pfx)
+CONFIG_PKCS12=y
+
+# RADIUS authentication server. This provides access to the integrated EAP
+# server from external hosts using RADIUS.
+CONFIG_RADIUS_SERVER=y
+
+# Build IPv6 support for RADIUS operations
+CONFIG_IPV6=y
+
+# IEEE Std 802.11r-2008 (Fast BSS Transition)
+#CONFIG_IEEE80211R=y
+
+# Use the hostapd's IEEE 802.11 authentication (ACL), but without
+# the IEEE 802.11 Management capability (e.g., madwifi or FreeBSD/net80211)
+CONFIG_DRIVER_RADIUS_ACL=y
+
+# IEEE 802.11n (High Throughput) support
+CONFIG_IEEE80211N=y
+
+# Remove debugging code that is printing out debug messages to stdout.
+# This can be used to reduce the size of the hostapd considerably if debugging
+# code is not needed.
+#CONFIG_NO_STDOUT_DEBUG=y
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/hostapd.service b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/hostapd.service
new file mode 100644
index 0000000..151c050
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/hostapd.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Hostapd IEEE 802.11 AP, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator
+After=network.target
+
+[Service]
+Type=forking
+PIDFile=/run/hostapd.pid
+ExecStart=@SBINDIR@/hostapd @SYSCONFDIR@/hostapd.conf -P /run/hostapd.pid -B
+
+[Install]
+WantedBy=multi-user.target
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/init b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/init
new file mode 100644
index 0000000..8ba4e07
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/init
@@ -0,0 +1,58 @@
+#!/bin/sh
+DAEMON=/usr/sbin/hostapd
+NAME=hostapd
+DESC="HOSTAP Daemon"
+ARGS="/etc/hostapd.conf -B"
+
+test -f $DAEMON || exit 0
+
+set -e
+
+# source function library
+. /etc/init.d/functions
+
+delay_stop() {
+	count=0
+	while [ $count -lt 9 ] ; do
+	        if pidof $DAEMON >/dev/null; then
+	                sleep 1
+	        else
+	                return 0
+	        fi
+		count=`expr $count + 1`
+	done
+	echo "Failed to stop $DESC."
+	return 1
+}
+
+case "$1" in
+    start)
+	echo -n "Starting $DESC: "
+	start-stop-daemon -S -x $DAEMON -- $ARGS
+	echo "$NAME."
+	;;
+    stop)
+	echo -n "Stopping $DESC: "
+	start-stop-daemon -K --oknodo -x $DAEMON
+	echo "$NAME."
+	;;
+    restart)
+	$0 stop
+	delay_stop && $0 start
+	;;
+    reload)
+	echo -n "Reloading $DESC: "
+	killall -HUP $(basename ${DAEMON})
+	echo "$NAME."
+	;;
+    status)
+	status $DAEMON
+	exit $?
+	;;
+    *)
+	echo "Usage: $0 {start|stop|restart|reload|status}"
+	exit 1
+	;;
+esac
+
+exit 0
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd_2.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd_2.5.bb
new file mode 100644
index 0000000..c38e20a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd_2.5.bb
@@ -0,0 +1,46 @@
+HOMEPAGE = "http://w1.fi/hostapd/"
+SECTION = "kernel/userland"
+LICENSE = "GPLv2 | BSD"
+LIC_FILES_CHKSUM = "file://${B}/README;md5=4d53178f44d4b38418a4fa8de365e11c"
+DEPENDS = "libnl openssl"
+SUMMARY = "User space daemon for extended IEEE 802.11 management"
+
+inherit update-rc.d systemd
+INITSCRIPT_NAME = "hostapd"
+
+SYSTEMD_SERVICE_${PN} = "hostapd.service"
+SYSTEMD_AUTO_ENABLE_${PN} = "disable"
+
+SRC_URI = " \
+    http://w1.fi/releases/hostapd-${PV}.tar.gz \
+    file://defconfig \
+    file://init \
+    file://hostapd.service \
+"
+
+S = "${WORKDIR}/hostapd-${PV}"
+B = "${WORKDIR}/hostapd-${PV}/hostapd"
+
+do_configure() {
+    install -m 0644 ${WORKDIR}/defconfig ${B}/.config
+}
+
+do_compile() {
+    export CFLAGS="-MMD -O2 -Wall -g -I${STAGING_INCDIR}/libnl3"
+    make
+}
+
+do_install() {
+    install -d ${D}${sbindir} ${D}${sysconfdir}/init.d ${D}${systemd_unitdir}/system/
+    install -m 0644 ${B}/hostapd.conf ${D}${sysconfdir}
+    install -m 0755 ${B}/hostapd ${D}${sbindir}
+    install -m 0755 ${B}/hostapd_cli ${D}${sbindir}
+    install -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/hostapd
+    install -m 0644 ${WORKDIR}/hostapd.service ${D}${systemd_unitdir}/system/
+    sed -i -e 's,@SBINDIR@,${sbindir},g' -e 's,@SYSCONFDIR@,${sysconfdir},g' ${D}${systemd_unitdir}/system/hostapd.service
+}
+
+CONFFILES_${PN} += "${sysconfdir}/hostapd.conf"
+
+SRC_URI[md5sum] = "69f9cec3f76d74f402864a43e4f8624f"
+SRC_URI[sha256sum] = "8e272d954dc0d7026c264b79b15389ec2b2c555b32970de39f506b9f463ec74a"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/irssi/irssi_0.8.16-rc1.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/irssi/irssi_0.8.16-rc1.bb
new file mode 100644
index 0000000..54d881d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/irssi/irssi_0.8.16-rc1.bb
@@ -0,0 +1,22 @@
+SUMMARY = "ncurses IRC client"
+DESCRIPTION = "Irssi is an ncurses IRC client"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=55fdc1113306167d6ea2561404ce02f8"
+
+DEPENDS = "glib-2.0 ncurses openssl"
+
+REALPV = "0.8.16-rc1"
+PV = "0.8.15+${REALPV}"
+
+SRC_URI = "http://irssi.org/files/irssi-${REALPV}.tar.gz"
+
+SRC_URI[md5sum] = "769fec4df8e633c583c411ccd2cd563a"
+SRC_URI[sha256sum] = "bb6c0125db30b697f80837941c17372b7484c64d57a6920b8bfa7ee3def92de3"
+
+S = "${WORKDIR}/irssi-${REALPV}"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--enable-ssl \
+    --with-ncurses=${STAGING_EXECPREFIXDIR} \
+"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/0001-aclocal-Add-parameter-to-disable-keyutils-detection.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/0001-aclocal-Add-parameter-to-disable-keyutils-detection.patch
new file mode 100644
index 0000000..f0c310c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/0001-aclocal-Add-parameter-to-disable-keyutils-detection.patch
@@ -0,0 +1,33 @@
+From ecb62f3467f493cc0d679323f05367eebbf0fb67 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Tue, 1 Oct 2013 22:22:57 +0200
+Subject: [PATCH] aclocal: Add parameter to disable keyutils detection
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ aclocal.m4 | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/aclocal.m4 b/aclocal.m4
+index 210c473..83b1f02 100644
+--- a/aclocal.m4
++++ b/aclocal.m4
+@@ -1650,11 +1650,15 @@ fi
+ dnl
+ dnl If libkeyutils exists (on Linux) include it and use keyring ccache
+ AC_DEFUN(KRB5_AC_KEYRING_CCACHE,[
++AC_ARG_ENABLE([keyutils],
++AC_HELP_STRING([--disable-keyutils],don't enable using keyutils for keyring ccache @<:@enabled@:>@), , enable_keyutils=yes)
++if test "$enable_keyutils" = yes; then
+   AC_CHECK_HEADERS([keyutils.h],
+     AC_CHECK_LIB(keyutils, add_key, 
+       [dnl Pre-reqs were found
+        AC_DEFINE(USE_KEYRING_CCACHE, 1, [Define if the keyring ccache should be enabled])
+        LIBS="-lkeyutils $LIBS"
+       ]))
++fi
+ ])dnl
+ dnl
+-- 
+1.8.3.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/Fix-IAKERB-context-aliasing-bugs-CVE-2015-2696.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/Fix-IAKERB-context-aliasing-bugs-CVE-2015-2696.patch
new file mode 100644
index 0000000..b771b41
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/Fix-IAKERB-context-aliasing-bugs-CVE-2015-2696.patch
@@ -0,0 +1,739 @@
+From f6e57c402688f4bc386d1a39512657a30f0bafd3 Mon Sep 17 00:00:00 2001
+From: Nicolas Williams <nico@twosigma.com>
+Date: Mon, 14 Sep 2015 12:28:36 -0400
+Subject: [PATCH 2/4] Fix IAKERB context aliasing bugs [CVE-2015-2696]
+
+The IAKERB mechanism currently replaces its context handle with the
+krb5 mechanism handle upon establishment, under the assumption that
+most GSS functions are only called after context establishment.  This
+assumption is incorrect, and can lead to aliasing violations for some
+programs.  Maintain the IAKERB context structure after context
+establishment and add new IAKERB entry points to refer to it with that
+type.  Add initiate and established flags to the IAKERB context
+structure for use in gss_inquire_context() prior to context
+establishment.
+
+CVE-2015-2696:
+
+In MIT krb5 1.9 and later, applications which call
+gss_inquire_context() on a partially-established IAKERB context can
+cause the GSS-API library to read from a pointer using the wrong type,
+generally causing a process crash.  Java server applications using the
+native JGSS provider are vulnerable to this bug.  A carefully crafted
+IAKERB packet might allow the gss_inquire_context() call to succeed
+with attacker-determined results, but applications should not make
+access control decisions based on gss_inquire_context() results prior
+to context establishment.
+
+    CVSSv2 Vector: AV:N/AC:M/Au:N/C:N/I:N/A:C/E:POC/RL:OF/RC:C
+
+[ghudson@mit.edu: several bugfixes, style changes, and edge-case
+behavior changes; commit message and CVE description]
+
+ticket: 8244
+target_version: 1.14
+tags: pullup
+
+Backport upstream commit:
+https://github.com/krb5/krb5/commit/e04f0283516e80d2f93366e0d479d13c9b5c8c2a
+
+Upstream-Status: Backport
+---
+ src/lib/gssapi/krb5/gssapiP_krb5.h | 114 ++++++++++++
+ src/lib/gssapi/krb5/gssapi_krb5.c  | 105 +++++++++--
+ src/lib/gssapi/krb5/iakerb.c       | 351 +++++++++++++++++++++++++++++++++----
+ 3 files changed, 529 insertions(+), 41 deletions(-)
+
+diff --git a/src/lib/gssapi/krb5/gssapiP_krb5.h b/src/lib/gssapi/krb5/gssapiP_krb5.h
+index a0e8625..05dc321 100644
+--- a/src/lib/gssapi/krb5/gssapiP_krb5.h
++++ b/src/lib/gssapi/krb5/gssapiP_krb5.h
+@@ -620,6 +620,21 @@ OM_uint32 KRB5_CALLCONV krb5_gss_accept_sec_context_ext
+ );
+ #endif /* LEAN_CLIENT */
+ 
++OM_uint32 KRB5_CALLCONV krb5_gss_inquire_sec_context_by_oid
++(OM_uint32*,       /* minor_status */
++ const gss_ctx_id_t,
++ /* context_handle */
++ const gss_OID,    /* desired_object */
++ gss_buffer_set_t* /* data_set */
++);
++
++OM_uint32 KRB5_CALLCONV krb5_gss_set_sec_context_option
++(OM_uint32*,       /* minor_status */
++ gss_ctx_id_t*,    /* context_handle */
++ const gss_OID,    /* desired_object */
++ const gss_buffer_t/* value */
++);
++
+ OM_uint32 KRB5_CALLCONV krb5_gss_process_context_token
+ (OM_uint32*,       /* minor_status */
+  gss_ctx_id_t,     /* context_handle */
+@@ -1301,6 +1316,105 @@ OM_uint32 KRB5_CALLCONV
+ krb5_gss_import_cred(OM_uint32 *minor_status, gss_buffer_t token,
+                      gss_cred_id_t *cred_handle);
+ 
++OM_uint32 KRB5_CALLCONV
++iakerb_gss_process_context_token(OM_uint32 *minor_status,
++                                 const gss_ctx_id_t context_handle,
++                                 const gss_buffer_t token_buffer);
++
++OM_uint32 KRB5_CALLCONV
++iakerb_gss_context_time(OM_uint32 *minor_status, gss_ctx_id_t context_handle,
++                        OM_uint32 *time_rec);
++
++OM_uint32 KRB5_CALLCONV
++iakerb_gss_inquire_context(OM_uint32 *minor_status,
++                           gss_ctx_id_t context_handle, gss_name_t *src_name,
++                           gss_name_t *targ_name, OM_uint32 *lifetime_rec,
++                           gss_OID *mech_type, OM_uint32 *ctx_flags,
++                           int *locally_initiated, int *opened);
++
++OM_uint32 KRB5_CALLCONV
++iakerb_gss_get_mic(OM_uint32 *minor_status, gss_ctx_id_t context_handle,
++                   gss_qop_t qop_req, gss_buffer_t message_buffer,
++                   gss_buffer_t message_token);
++
++OM_uint32 KRB5_CALLCONV
++iakerb_gss_get_mic_iov(OM_uint32 *minor_status, gss_ctx_id_t context_handle,
++                       gss_qop_t qop_req, gss_iov_buffer_desc *iov,
++                       int iov_count);
++
++OM_uint32 KRB5_CALLCONV
++iakerb_gss_get_mic_iov_length(OM_uint32 *minor_status,
++                              gss_ctx_id_t context_handle, gss_qop_t qop_req,
++                              gss_iov_buffer_desc *iov, int iov_count);
++
++OM_uint32 KRB5_CALLCONV
++iakerb_gss_verify_mic(OM_uint32 *minor_status, gss_ctx_id_t context_handle,
++                      gss_buffer_t msg_buffer, gss_buffer_t token_buffer,
++                      gss_qop_t *qop_state);
++
++OM_uint32 KRB5_CALLCONV
++iakerb_gss_verify_mic_iov(OM_uint32 *minor_status, gss_ctx_id_t context_handle,
++                          gss_qop_t *qop_state, gss_iov_buffer_desc *iov,
++                          int iov_count);
++
++OM_uint32 KRB5_CALLCONV
++iakerb_gss_wrap(OM_uint32 *minor_status, gss_ctx_id_t context_handle,
++                int conf_req_flag, gss_qop_t qop_req,
++                gss_buffer_t input_message_buffer, int *conf_state,
++                gss_buffer_t output_message_buffer);
++
++OM_uint32 KRB5_CALLCONV
++iakerb_gss_wrap_iov(OM_uint32 *minor_status, gss_ctx_id_t context_handle,
++                    int conf_req_flag, gss_qop_t qop_req, int *conf_state,
++                    gss_iov_buffer_desc *iov, int iov_count);
++
++OM_uint32 KRB5_CALLCONV
++iakerb_gss_wrap_iov_length(OM_uint32 *minor_status,
++                           gss_ctx_id_t context_handle, int conf_req_flag,
++                           gss_qop_t qop_req, int *conf_state,
++                           gss_iov_buffer_desc *iov, int iov_count);
++
++OM_uint32 KRB5_CALLCONV
++iakerb_gss_unwrap(OM_uint32 *minor_status, gss_ctx_id_t context_handle,
++                  gss_buffer_t input_message_buffer,
++                  gss_buffer_t output_message_buffer, int *conf_state,
++                  gss_qop_t *qop_state);
++
++OM_uint32 KRB5_CALLCONV
++iakerb_gss_unwrap_iov(OM_uint32 *minor_status, gss_ctx_id_t context_handle,
++                      int *conf_state, gss_qop_t *qop_state,
++                      gss_iov_buffer_desc *iov, int iov_count);
++
++OM_uint32 KRB5_CALLCONV
++iakerb_gss_wrap_size_limit(OM_uint32 *minor_status,
++                           gss_ctx_id_t context_handle, int conf_req_flag,
++                           gss_qop_t qop_req, OM_uint32 req_output_size,
++                           OM_uint32 *max_input_size);
++
++#ifndef LEAN_CLIENT
++OM_uint32 KRB5_CALLCONV
++iakerb_gss_export_sec_context(OM_uint32 *minor_status,
++                              gss_ctx_id_t *context_handle,
++                              gss_buffer_t interprocess_token);
++#endif /* LEAN_CLIENT */
++
++OM_uint32 KRB5_CALLCONV
++iakerb_gss_inquire_sec_context_by_oid(OM_uint32 *minor_status,
++                                      const gss_ctx_id_t context_handle,
++                                      const gss_OID desired_object,
++                                      gss_buffer_set_t *data_set);
++
++OM_uint32 KRB5_CALLCONV
++iakerb_gss_set_sec_context_option(OM_uint32 *minor_status,
++                                  gss_ctx_id_t *context_handle,
++                                  const gss_OID desired_object,
++                                  const gss_buffer_t value);
++
++OM_uint32 KRB5_CALLCONV
++iakerb_gss_pseudo_random(OM_uint32 *minor_status, gss_ctx_id_t context_handle,
++                         int prf_key, const gss_buffer_t prf_in,
++                         ssize_t desired_output_len, gss_buffer_t prf_out);
++
+ /* Magic string to identify exported krb5 GSS credentials.  Increment this if
+  * the format changes. */
+ #define CRED_EXPORT_MAGIC "K5C1"
+diff --git a/src/lib/gssapi/krb5/gssapi_krb5.c b/src/lib/gssapi/krb5/gssapi_krb5.c
+index 77b7fff..9a23656 100644
+--- a/src/lib/gssapi/krb5/gssapi_krb5.c
++++ b/src/lib/gssapi/krb5/gssapi_krb5.c
+@@ -345,7 +345,7 @@ static struct {
+     }
+ };
+ 
+-static OM_uint32 KRB5_CALLCONV
++OM_uint32 KRB5_CALLCONV
+ krb5_gss_inquire_sec_context_by_oid (OM_uint32 *minor_status,
+                                      const gss_ctx_id_t context_handle,
+                                      const gss_OID desired_object,
+@@ -459,7 +459,7 @@ static struct {
+ };
+ #endif
+ 
+-static OM_uint32 KRB5_CALLCONV
++OM_uint32 KRB5_CALLCONV
+ krb5_gss_set_sec_context_option (OM_uint32 *minor_status,
+                                  gss_ctx_id_t *context_handle,
+                                  const gss_OID desired_object,
+@@ -904,20 +904,103 @@ static struct gss_config krb5_mechanism = {
+     krb5_gss_get_mic_iov_length,
+ };
+ 
++/* Functions which use security contexts or acquire creds are IAKERB-specific;
++ * other functions can borrow from the krb5 mech. */
++static struct gss_config iakerb_mechanism = {
++    { GSS_MECH_KRB5_OID_LENGTH, GSS_MECH_KRB5_OID },
++    NULL,
++    iakerb_gss_acquire_cred,
++    krb5_gss_release_cred,
++    iakerb_gss_init_sec_context,
++#ifdef LEAN_CLIENT
++    NULL,
++#else
++    iakerb_gss_accept_sec_context,
++#endif
++    iakerb_gss_process_context_token,
++    iakerb_gss_delete_sec_context,
++    iakerb_gss_context_time,
++    iakerb_gss_get_mic,
++    iakerb_gss_verify_mic,
++#if defined(IOV_SHIM_EXERCISE_WRAP) || defined(IOV_SHIM_EXERCISE)
++    NULL,
++#else
++    iakerb_gss_wrap,
++#endif
++#if defined(IOV_SHIM_EXERCISE_UNWRAP) || defined(IOV_SHIM_EXERCISE)
++    NULL,
++#else
++    iakerb_gss_unwrap,
++#endif
++    krb5_gss_display_status,
++    krb5_gss_indicate_mechs,
++    krb5_gss_compare_name,
++    krb5_gss_display_name,
++    krb5_gss_import_name,
++    krb5_gss_release_name,
++    krb5_gss_inquire_cred,
++    NULL,                /* add_cred */
++#ifdef LEAN_CLIENT
++    NULL,
++    NULL,
++#else
++    iakerb_gss_export_sec_context,
++    NULL,
++#endif
++    krb5_gss_inquire_cred_by_mech,
++    krb5_gss_inquire_names_for_mech,
++    iakerb_gss_inquire_context,
++    krb5_gss_internal_release_oid,
++    iakerb_gss_wrap_size_limit,
++    krb5_gss_localname,
++    krb5_gss_authorize_localname,
++    krb5_gss_export_name,
++    krb5_gss_duplicate_name,
++    krb5_gss_store_cred,
++    iakerb_gss_inquire_sec_context_by_oid,
++    krb5_gss_inquire_cred_by_oid,
++    iakerb_gss_set_sec_context_option,
++    krb5_gssspi_set_cred_option,
++    krb5_gssspi_mech_invoke,
++    NULL,                /* wrap_aead */
++    NULL,                /* unwrap_aead */
++    iakerb_gss_wrap_iov,
++    iakerb_gss_unwrap_iov,
++    iakerb_gss_wrap_iov_length,
++    NULL,               /* complete_auth_token */
++    NULL,               /* acquire_cred_impersonate_name */
++    NULL,               /* add_cred_impersonate_name */
++    NULL,               /* display_name_ext */
++    krb5_gss_inquire_name,
++    krb5_gss_get_name_attribute,
++    krb5_gss_set_name_attribute,
++    krb5_gss_delete_name_attribute,
++    krb5_gss_export_name_composite,
++    krb5_gss_map_name_to_any,
++    krb5_gss_release_any_name_mapping,
++    iakerb_gss_pseudo_random,
++    NULL,               /* set_neg_mechs */
++    krb5_gss_inquire_saslname_for_mech,
++    krb5_gss_inquire_mech_for_saslname,
++    krb5_gss_inquire_attrs_for_mech,
++    krb5_gss_acquire_cred_from,
++    krb5_gss_store_cred_into,
++    iakerb_gss_acquire_cred_with_password,
++    krb5_gss_export_cred,
++    krb5_gss_import_cred,
++    NULL,               /* import_sec_context_by_mech */
++    NULL,               /* import_name_by_mech */
++    NULL,               /* import_cred_by_mech */
++    iakerb_gss_get_mic_iov,
++    iakerb_gss_verify_mic_iov,
++    iakerb_gss_get_mic_iov_length,
++};
++
+ #ifdef _GSS_STATIC_LINK
+ #include "mglueP.h"
+ static int gss_iakerbmechglue_init(void)
+ {
+     struct gss_mech_config mech_iakerb;
+-    struct gss_config iakerb_mechanism = krb5_mechanism;
+-
+-    /* IAKERB mechanism mirrors krb5, but with different context SPIs */
+-    iakerb_mechanism.gss_accept_sec_context = iakerb_gss_accept_sec_context;
+-    iakerb_mechanism.gss_init_sec_context   = iakerb_gss_init_sec_context;
+-    iakerb_mechanism.gss_delete_sec_context = iakerb_gss_delete_sec_context;
+-    iakerb_mechanism.gss_acquire_cred       = iakerb_gss_acquire_cred;
+-    iakerb_mechanism.gssspi_acquire_cred_with_password
+-                                    = iakerb_gss_acquire_cred_with_password;
+ 
+     memset(&mech_iakerb, 0, sizeof(mech_iakerb));
+     mech_iakerb.mech = &iakerb_mechanism;
+diff --git a/src/lib/gssapi/krb5/iakerb.c b/src/lib/gssapi/krb5/iakerb.c
+index f30de32..4662bd9 100644
+--- a/src/lib/gssapi/krb5/iakerb.c
++++ b/src/lib/gssapi/krb5/iakerb.c
+@@ -47,6 +47,8 @@ struct _iakerb_ctx_id_rec {
+     gss_ctx_id_t gssc;
+     krb5_data conv;                     /* conversation for checksumming */
+     unsigned int count;                 /* number of round trips */
++    int initiate;
++    int established;
+     krb5_get_init_creds_opt *gic_opts;
+ };
+ 
+@@ -695,7 +697,7 @@ cleanup:
+  * Allocate and initialise an IAKERB context
+  */
+ static krb5_error_code
+-iakerb_alloc_context(iakerb_ctx_id_t *pctx)
++iakerb_alloc_context(iakerb_ctx_id_t *pctx, int initiate)
+ {
+     iakerb_ctx_id_t ctx;
+     krb5_error_code code;
+@@ -709,6 +711,8 @@ iakerb_alloc_context(iakerb_ctx_id_t *pctx)
+     ctx->magic = KG_IAKERB_CONTEXT;
+     ctx->state = IAKERB_AS_REQ;
+     ctx->count = 0;
++    ctx->initiate = initiate;
++    ctx->established = 0;
+ 
+     code = krb5_gss_init_context(&ctx->k5c);
+     if (code != 0)
+@@ -732,7 +736,7 @@ iakerb_gss_delete_sec_context(OM_uint32 *minor_status,
+                               gss_ctx_id_t *context_handle,
+                               gss_buffer_t output_token)
+ {
+-    OM_uint32 major_status = GSS_S_COMPLETE;
++    iakerb_ctx_id_t iakerb_ctx = (iakerb_ctx_id_t)*context_handle;
+ 
+     if (output_token != GSS_C_NO_BUFFER) {
+         output_token->length = 0;
+@@ -740,23 +744,10 @@ iakerb_gss_delete_sec_context(OM_uint32 *minor_status,
+     }
+ 
+     *minor_status = 0;
++    *context_handle = GSS_C_NO_CONTEXT;
++    iakerb_release_context(iakerb_ctx);
+ 
+-    if (*context_handle != GSS_C_NO_CONTEXT) {
+-        iakerb_ctx_id_t iakerb_ctx = (iakerb_ctx_id_t)*context_handle;
+-
+-        if (iakerb_ctx->magic == KG_IAKERB_CONTEXT) {
+-            iakerb_release_context(iakerb_ctx);
+-            *context_handle = GSS_C_NO_CONTEXT;
+-        } else {
+-            assert(iakerb_ctx->magic == KG_CONTEXT);
+-
+-            major_status = krb5_gss_delete_sec_context(minor_status,
+-                                                       context_handle,
+-                                                       output_token);
+-        }
+-    }
+-
+-    return major_status;
++    return GSS_S_COMPLETE;
+ }
+ 
+ static krb5_boolean
+@@ -802,7 +793,7 @@ iakerb_gss_accept_sec_context(OM_uint32 *minor_status,
+     int initialContextToken = (*context_handle == GSS_C_NO_CONTEXT);
+ 
+     if (initialContextToken) {
+-        code = iakerb_alloc_context(&ctx);
++        code = iakerb_alloc_context(&ctx, 0);
+         if (code != 0)
+             goto cleanup;
+ 
+@@ -854,11 +845,8 @@ iakerb_gss_accept_sec_context(OM_uint32 *minor_status,
+                                                        time_rec,
+                                                        delegated_cred_handle,
+                                                        &exts);
+-        if (major_status == GSS_S_COMPLETE) {
+-            *context_handle = ctx->gssc;
+-            ctx->gssc = NULL;
+-            iakerb_release_context(ctx);
+-        }
++        if (major_status == GSS_S_COMPLETE)
++            ctx->established = 1;
+         if (mech_type != NULL)
+             *mech_type = (gss_OID)gss_mech_krb5;
+     }
+@@ -897,7 +885,7 @@ iakerb_gss_init_sec_context(OM_uint32 *minor_status,
+     int initialContextToken = (*context_handle == GSS_C_NO_CONTEXT);
+ 
+     if (initialContextToken) {
+-        code = iakerb_alloc_context(&ctx);
++        code = iakerb_alloc_context(&ctx, 1);
+         if (code != 0) {
+             *minor_status = code;
+             goto cleanup;
+@@ -983,11 +971,8 @@ iakerb_gss_init_sec_context(OM_uint32 *minor_status,
+                                                      ret_flags,
+                                                      time_rec,
+                                                      &exts);
+-        if (major_status == GSS_S_COMPLETE) {
+-            *context_handle = ctx->gssc;
+-            ctx->gssc = GSS_C_NO_CONTEXT;
+-            iakerb_release_context(ctx);
+-        }
++        if (major_status == GSS_S_COMPLETE)
++            ctx->established = 1;
+         if (actual_mech_type != NULL)
+             *actual_mech_type = (gss_OID)gss_mech_krb5;
+     } else {
+@@ -1010,3 +995,309 @@ cleanup:
+ 
+     return major_status;
+ }
++
++OM_uint32 KRB5_CALLCONV
++iakerb_gss_unwrap(OM_uint32 *minor_status, gss_ctx_id_t context_handle,
++                  gss_buffer_t input_message_buffer,
++                  gss_buffer_t output_message_buffer, int *conf_state,
++                  gss_qop_t *qop_state)
++{
++    iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle;
++
++    if (ctx->gssc == GSS_C_NO_CONTEXT)
++        return GSS_S_NO_CONTEXT;
++
++    return krb5_gss_unwrap(minor_status, ctx->gssc, input_message_buffer,
++                           output_message_buffer, conf_state, qop_state);
++}
++
++OM_uint32 KRB5_CALLCONV
++iakerb_gss_wrap(OM_uint32 *minor_status, gss_ctx_id_t context_handle,
++                int conf_req_flag, gss_qop_t qop_req,
++                gss_buffer_t input_message_buffer, int *conf_state,
++                gss_buffer_t output_message_buffer)
++{
++    iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle;
++
++    if (ctx->gssc == GSS_C_NO_CONTEXT)
++        return GSS_S_NO_CONTEXT;
++
++    return krb5_gss_wrap(minor_status, ctx->gssc, conf_req_flag, qop_req,
++                         input_message_buffer, conf_state,
++                         output_message_buffer);
++}
++
++OM_uint32 KRB5_CALLCONV
++iakerb_gss_process_context_token(OM_uint32 *minor_status,
++                                 const gss_ctx_id_t context_handle,
++                                 const gss_buffer_t token_buffer)
++{
++    iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle;
++
++    if (ctx->gssc == GSS_C_NO_CONTEXT)
++        return GSS_S_DEFECTIVE_TOKEN;
++
++    return krb5_gss_process_context_token(minor_status, ctx->gssc,
++                                          token_buffer);
++}
++
++OM_uint32 KRB5_CALLCONV
++iakerb_gss_context_time(OM_uint32 *minor_status, gss_ctx_id_t context_handle,
++                        OM_uint32 *time_rec)
++{
++    iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle;
++
++    if (ctx->gssc == GSS_C_NO_CONTEXT)
++        return GSS_S_NO_CONTEXT;
++
++    return krb5_gss_context_time(minor_status, ctx->gssc, time_rec);
++}
++
++#ifndef LEAN_CLIENT
++
++OM_uint32 KRB5_CALLCONV
++iakerb_gss_export_sec_context(OM_uint32 *minor_status,
++                              gss_ctx_id_t *context_handle,
++                              gss_buffer_t interprocess_token)
++{
++    OM_uint32 maj;
++    iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle;
++
++    /* We don't currently support exporting partially established contexts. */
++    if (!ctx->established)
++        return GSS_S_UNAVAILABLE;
++
++    maj = krb5_gss_export_sec_context(minor_status, &ctx->gssc,
++                                      interprocess_token);
++    if (ctx->gssc == GSS_C_NO_CONTEXT) {
++        iakerb_release_context(ctx);
++        *context_handle = GSS_C_NO_CONTEXT;
++    }
++    return maj;
++}
++
++/*
++ * Until we implement partial context exports, there are no SPNEGO exported
++ * context tokens, only tokens for the underlying krb5 context.  So we do not
++ * need to implement an iakerb_gss_import_sec_context() yet; it would be
++ * unreachable except via a manually constructed token.
++ */
++
++#endif /* LEAN_CLIENT */
++
++OM_uint32 KRB5_CALLCONV
++iakerb_gss_inquire_context(OM_uint32 *minor_status,
++                           gss_ctx_id_t context_handle, gss_name_t *src_name,
++                           gss_name_t *targ_name, OM_uint32 *lifetime_rec,
++                           gss_OID *mech_type, OM_uint32 *ctx_flags,
++                           int *initiate, int *opened)
++{
++    OM_uint32 ret;
++    iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle;
++
++    if (src_name != NULL)
++        *src_name = GSS_C_NO_NAME;
++    if (targ_name != NULL)
++        *targ_name = GSS_C_NO_NAME;
++    if (lifetime_rec != NULL)
++        *lifetime_rec = 0;
++    if (mech_type != NULL)
++        *mech_type = (gss_OID)gss_mech_iakerb;
++    if (ctx_flags != NULL)
++        *ctx_flags = 0;
++    if (initiate != NULL)
++        *initiate = ctx->initiate;
++    if (opened != NULL)
++        *opened = ctx->established;
++
++    if (ctx->gssc == GSS_C_NO_CONTEXT)
++        return GSS_S_COMPLETE;
++
++    ret = krb5_gss_inquire_context(minor_status, ctx->gssc, src_name,
++                                   targ_name, lifetime_rec, mech_type,
++                                   ctx_flags, initiate, opened);
++
++    if (!ctx->established) {
++        /* Report IAKERB as the mech OID until the context is established. */
++        if (mech_type != NULL)
++            *mech_type = (gss_OID)gss_mech_iakerb;
++
++        /* We don't support exporting partially-established contexts. */
++        if (ctx_flags != NULL)
++            *ctx_flags &= ~GSS_C_TRANS_FLAG;
++    }
++
++    return ret;
++}
++
++OM_uint32 KRB5_CALLCONV
++iakerb_gss_wrap_size_limit(OM_uint32 *minor_status,
++                           gss_ctx_id_t context_handle, int conf_req_flag,
++                           gss_qop_t qop_req, OM_uint32 req_output_size,
++                           OM_uint32 *max_input_size)
++{
++    iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle;
++
++    if (ctx->gssc == GSS_C_NO_CONTEXT)
++        return GSS_S_NO_CONTEXT;
++
++    return krb5_gss_wrap_size_limit(minor_status, ctx->gssc, conf_req_flag,
++                                    qop_req, req_output_size, max_input_size);
++}
++
++OM_uint32 KRB5_CALLCONV
++iakerb_gss_get_mic(OM_uint32 *minor_status, gss_ctx_id_t context_handle,
++                   gss_qop_t qop_req, gss_buffer_t message_buffer,
++                   gss_buffer_t message_token)
++{
++    iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle;
++
++    if (ctx->gssc == GSS_C_NO_CONTEXT)
++        return GSS_S_NO_CONTEXT;
++
++    return krb5_gss_get_mic(minor_status, ctx->gssc, qop_req, message_buffer,
++                            message_token);
++}
++
++OM_uint32 KRB5_CALLCONV
++iakerb_gss_verify_mic(OM_uint32 *minor_status, gss_ctx_id_t context_handle,
++                      gss_buffer_t msg_buffer, gss_buffer_t token_buffer,
++                      gss_qop_t *qop_state)
++{
++    iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle;
++
++    if (ctx->gssc == GSS_C_NO_CONTEXT)
++        return GSS_S_NO_CONTEXT;
++
++    return krb5_gss_verify_mic(minor_status, ctx->gssc, msg_buffer,
++                               token_buffer, qop_state);
++}
++
++OM_uint32 KRB5_CALLCONV
++iakerb_gss_inquire_sec_context_by_oid(OM_uint32 *minor_status,
++                                      const gss_ctx_id_t context_handle,
++                                      const gss_OID desired_object,
++                                      gss_buffer_set_t *data_set)
++{
++    iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle;
++
++    if (ctx->gssc == GSS_C_NO_CONTEXT)
++        return GSS_S_UNAVAILABLE;
++
++    return krb5_gss_inquire_sec_context_by_oid(minor_status, ctx->gssc,
++                                               desired_object, data_set);
++}
++
++OM_uint32 KRB5_CALLCONV
++iakerb_gss_set_sec_context_option(OM_uint32 *minor_status,
++                                  gss_ctx_id_t *context_handle,
++                                  const gss_OID desired_object,
++                                  const gss_buffer_t value)
++{
++    iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)*context_handle;
++
++    if (ctx == NULL || ctx->gssc == GSS_C_NO_CONTEXT)
++        return GSS_S_UNAVAILABLE;
++
++    return krb5_gss_set_sec_context_option(minor_status, &ctx->gssc,
++                                           desired_object, value);
++}
++
++OM_uint32 KRB5_CALLCONV
++iakerb_gss_wrap_iov(OM_uint32 *minor_status, gss_ctx_id_t context_handle,
++                    int conf_req_flag, gss_qop_t qop_req, int *conf_state,
++                    gss_iov_buffer_desc *iov, int iov_count)
++{
++    iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle;
++
++    if (ctx->gssc == GSS_C_NO_CONTEXT)
++        return GSS_S_NO_CONTEXT;
++
++    return krb5_gss_wrap_iov(minor_status, ctx->gssc, conf_req_flag, qop_req,
++                             conf_state, iov, iov_count);
++}
++
++OM_uint32 KRB5_CALLCONV
++iakerb_gss_unwrap_iov(OM_uint32 *minor_status, gss_ctx_id_t context_handle,
++                      int *conf_state, gss_qop_t *qop_state,
++                      gss_iov_buffer_desc *iov, int iov_count)
++{
++    iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle;
++
++    if (ctx->gssc == GSS_C_NO_CONTEXT)
++        return GSS_S_NO_CONTEXT;
++
++    return krb5_gss_unwrap_iov(minor_status, ctx->gssc, conf_state, qop_state,
++                               iov, iov_count);
++}
++
++OM_uint32 KRB5_CALLCONV
++iakerb_gss_wrap_iov_length(OM_uint32 *minor_status,
++                           gss_ctx_id_t context_handle, int conf_req_flag,
++                           gss_qop_t qop_req, int *conf_state,
++                           gss_iov_buffer_desc *iov, int iov_count)
++{
++    iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle;
++
++    if (ctx->gssc == GSS_C_NO_CONTEXT)
++        return GSS_S_NO_CONTEXT;
++
++    return krb5_gss_wrap_iov_length(minor_status, ctx->gssc, conf_req_flag,
++                                    qop_req, conf_state, iov, iov_count);
++}
++
++OM_uint32 KRB5_CALLCONV
++iakerb_gss_pseudo_random(OM_uint32 *minor_status, gss_ctx_id_t context_handle,
++                         int prf_key, const gss_buffer_t prf_in,
++                         ssize_t desired_output_len, gss_buffer_t prf_out)
++{
++    iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle;
++
++    if (ctx->gssc == GSS_C_NO_CONTEXT)
++        return GSS_S_NO_CONTEXT;
++
++    return krb5_gss_pseudo_random(minor_status, ctx->gssc, prf_key, prf_in,
++                                  desired_output_len, prf_out);
++}
++
++OM_uint32 KRB5_CALLCONV
++iakerb_gss_get_mic_iov(OM_uint32 *minor_status, gss_ctx_id_t context_handle,
++                       gss_qop_t qop_req, gss_iov_buffer_desc *iov,
++                       int iov_count)
++{
++    iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle;
++
++    if (ctx->gssc == GSS_C_NO_CONTEXT)
++        return GSS_S_NO_CONTEXT;
++
++    return krb5_gss_get_mic_iov(minor_status, ctx->gssc, qop_req, iov,
++                                iov_count);
++}
++
++OM_uint32 KRB5_CALLCONV
++iakerb_gss_verify_mic_iov(OM_uint32 *minor_status, gss_ctx_id_t context_handle,
++                          gss_qop_t *qop_state, gss_iov_buffer_desc *iov,
++                          int iov_count)
++{
++    iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle;
++
++    if (ctx->gssc == GSS_C_NO_CONTEXT)
++        return GSS_S_NO_CONTEXT;
++
++    return krb5_gss_verify_mic_iov(minor_status, ctx->gssc, qop_state, iov,
++                                   iov_count);
++}
++
++OM_uint32 KRB5_CALLCONV
++iakerb_gss_get_mic_iov_length(OM_uint32 *minor_status,
++                              gss_ctx_id_t context_handle, gss_qop_t qop_req,
++                              gss_iov_buffer_desc *iov, int iov_count)
++{
++    iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle;
++
++    if (ctx->gssc == GSS_C_NO_CONTEXT)
++        return GSS_S_NO_CONTEXT;
++
++    return krb5_gss_get_mic_iov_length(minor_status, ctx->gssc, qop_req, iov,
++                                       iov_count);
++}
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/Fix-IAKERB-context-export-import-CVE-2015-2698.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/Fix-IAKERB-context-export-import-CVE-2015-2698.patch
new file mode 100644
index 0000000..2f45d30
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/Fix-IAKERB-context-export-import-CVE-2015-2698.patch
@@ -0,0 +1,134 @@
+From aa769c8c6905d1abfac66d4d1b0fc73740ccbe7d Mon Sep 17 00:00:00 2001
+From: Greg Hudson <ghudson@mit.edu>
+Date: Sat, 14 Nov 2015 02:47:04 -0500
+Subject: [PATCH 4/4] Fix IAKERB context export/import [CVE-2015-2698]
+
+The patches for CVE-2015-2696 contained a regression in the newly
+added IAKERB iakerb_gss_export_sec_context() function, which could
+cause it to corrupt memory.  Fix the regression by properly
+dereferencing the context_handle pointer before casting it.
+
+Also, the patches did not implement an IAKERB gss_import_sec_context()
+function, under the erroneous belief that an exported IAKERB context
+would be tagged as a krb5 context.  Implement it now to allow IAKERB
+contexts to be successfully exported and imported after establishment.
+
+CVE-2015-2698:
+
+In any MIT krb5 release with the patches for CVE-2015-2696 applied, an
+application which calls gss_export_sec_context() may experience memory
+corruption if the context was established using the IAKERB mechanism.
+Historically, some vulnerabilities of this nature can be translated
+into remote code execution, though the necessary exploits must be
+tailored to the individual application and are usually quite
+complicated.
+
+    CVSSv2 Vector: AV:N/AC:H/Au:S/C:C/I:C/A:C/E:POC/RL:OF/RC:C
+
+ticket: 8273 (new)
+target_version: 1.14
+tags: pullup
+
+Backport upstream commit:
+https://github.com/krb5/krb5/commit/3db8dfec1ef50ddd78d6ba9503185995876a39fd
+
+Upstream-Status: Backport
+---
+ src/lib/gssapi/krb5/gssapiP_krb5.h |  5 +++++
+ src/lib/gssapi/krb5/gssapi_krb5.c  |  2 +-
+ src/lib/gssapi/krb5/iakerb.c       | 42 +++++++++++++++++++++++++++++++-------
+ 3 files changed, 41 insertions(+), 8 deletions(-)
+
+diff --git a/src/lib/gssapi/krb5/gssapiP_krb5.h b/src/lib/gssapi/krb5/gssapiP_krb5.h
+index 05dc321..ac53662 100644
+--- a/src/lib/gssapi/krb5/gssapiP_krb5.h
++++ b/src/lib/gssapi/krb5/gssapiP_krb5.h
+@@ -1396,6 +1396,11 @@ OM_uint32 KRB5_CALLCONV
+ iakerb_gss_export_sec_context(OM_uint32 *minor_status,
+                               gss_ctx_id_t *context_handle,
+                               gss_buffer_t interprocess_token);
++
++OM_uint32 KRB5_CALLCONV
++iakerb_gss_import_sec_context(OM_uint32 *minor_status,
++                              const gss_buffer_t interprocess_token,
++                              gss_ctx_id_t *context_handle);
+ #endif /* LEAN_CLIENT */
+ 
+ OM_uint32 KRB5_CALLCONV
+diff --git a/src/lib/gssapi/krb5/gssapi_krb5.c b/src/lib/gssapi/krb5/gssapi_krb5.c
+index 9a23656..d7ba279 100644
+--- a/src/lib/gssapi/krb5/gssapi_krb5.c
++++ b/src/lib/gssapi/krb5/gssapi_krb5.c
+@@ -945,7 +945,7 @@ static struct gss_config iakerb_mechanism = {
+     NULL,
+ #else
+     iakerb_gss_export_sec_context,
+-    NULL,
++    iakerb_gss_import_sec_context,
+ #endif
+     krb5_gss_inquire_cred_by_mech,
+     krb5_gss_inquire_names_for_mech,
+diff --git a/src/lib/gssapi/krb5/iakerb.c b/src/lib/gssapi/krb5/iakerb.c
+index 4662bd9..48beaee 100644
+--- a/src/lib/gssapi/krb5/iakerb.c
++++ b/src/lib/gssapi/krb5/iakerb.c
+@@ -1061,7 +1061,7 @@ iakerb_gss_export_sec_context(OM_uint32 *minor_status,
+                               gss_buffer_t interprocess_token)
+ {
+     OM_uint32 maj;
+-    iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle;
++    iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)*context_handle;
+ 
+     /* We don't currently support exporting partially established contexts. */
+     if (!ctx->established)
+@@ -1076,13 +1076,41 @@ iakerb_gss_export_sec_context(OM_uint32 *minor_status,
+     return maj;
+ }
+ 
+-/*
+- * Until we implement partial context exports, there are no SPNEGO exported
+- * context tokens, only tokens for the underlying krb5 context.  So we do not
+- * need to implement an iakerb_gss_import_sec_context() yet; it would be
+- * unreachable except via a manually constructed token.
+- */
++OM_uint32 KRB5_CALLCONV
++iakerb_gss_import_sec_context(OM_uint32 *minor_status,
++                              gss_buffer_t interprocess_token,
++                              gss_ctx_id_t *context_handle)
++{
++    OM_uint32 maj, tmpmin;
++    krb5_error_code code;
++    gss_ctx_id_t gssc;
++    krb5_gss_ctx_id_t kctx;
++    iakerb_ctx_id_t ctx;
++
++    maj = krb5_gss_import_sec_context(minor_status, interprocess_token, &gssc);
++    if (maj != GSS_S_COMPLETE)
++        return maj;
++    kctx = (krb5_gss_ctx_id_t)gssc;
++
++    if (!kctx->established) {
++        /* We don't currently support importing partially established
++         * contexts. */
++        krb5_gss_delete_sec_context(&tmpmin, &gssc, GSS_C_NO_BUFFER);
++        return GSS_S_FAILURE;
++    }
+ 
++    code = iakerb_alloc_context(&ctx, kctx->initiate);
++    if (code != 0) {
++        krb5_gss_delete_sec_context(&tmpmin, &gssc, GSS_C_NO_BUFFER);
++        *minor_status = code;
++        return GSS_S_FAILURE;
++    }
++
++    ctx->gssc = gssc;
++    ctx->established = 1;
++    *context_handle = (gss_ctx_id_t)ctx;
++    return GSS_S_COMPLETE;
++}
+ #endif /* LEAN_CLIENT */
+ 
+ OM_uint32 KRB5_CALLCONV
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/Fix-SPNEGO-context-aliasing-bugs-CVE-2015-2695.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/Fix-SPNEGO-context-aliasing-bugs-CVE-2015-2695.patch
new file mode 100644
index 0000000..227e6c6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/Fix-SPNEGO-context-aliasing-bugs-CVE-2015-2695.patch
@@ -0,0 +1,572 @@
+From 884913e807414a1e06245918dea71243c5fdd0e6 Mon Sep 17 00:00:00 2001
+From: Nicolas Williams <nico@twosigma.com>
+Date: Mon, 14 Sep 2015 12:27:52 -0400
+Subject: [PATCH 1/4] Fix SPNEGO context aliasing bugs [CVE-2015-2695]
+
+The SPNEGO mechanism currently replaces its context handle with the
+mechanism context handle upon establishment, under the assumption that
+most GSS functions are only called after context establishment.  This
+assumption is incorrect, and can lead to aliasing violations for some
+programs.  Maintain the SPNEGO context structure after context
+establishment and refer to it in all GSS methods.  Add initiate and
+opened flags to the SPNEGO context structure for use in
+gss_inquire_context() prior to context establishment.
+
+CVE-2015-2695:
+
+In MIT krb5 1.5 and later, applications which call
+gss_inquire_context() on a partially-established SPNEGO context can
+cause the GSS-API library to read from a pointer using the wrong type,
+generally causing a process crash.  This bug may go unnoticed, because
+the most common SPNEGO authentication scenario establishes the context
+after just one call to gss_accept_sec_context().  Java server
+applications using the native JGSS provider are vulnerable to this
+bug.  A carefully crafted SPNEGO packet might allow the
+gss_inquire_context() call to succeed with attacker-determined
+results, but applications should not make access control decisions
+based on gss_inquire_context() results prior to context establishment.
+
+    CVSSv2 Vector: AV:N/AC:M/Au:N/C:N/I:N/A:C/E:POC/RL:OF/RC:C
+
+[ghudson@mit.edu: several bugfixes, style changes, and edge-case
+behavior changes; commit message and CVE description]
+
+ticket: 8244
+target_version: 1.14
+tags: pullup
+
+Backport upstream commit:
+https://github.com/krb5/krb5/commit/b51b33f2bc5d1497ddf5bd107f791c101695000d
+
+Upstream-Status: Backport
+---
+ src/lib/gssapi/spnego/gssapiP_spnego.h |   2 +
+ src/lib/gssapi/spnego/spnego_mech.c    | 254 ++++++++++++++++++++++++---------
+ 2 files changed, 192 insertions(+), 64 deletions(-)
+
+diff --git a/src/lib/gssapi/spnego/gssapiP_spnego.h b/src/lib/gssapi/spnego/gssapiP_spnego.h
+index bc23f56..8e05736 100644
+--- a/src/lib/gssapi/spnego/gssapiP_spnego.h
++++ b/src/lib/gssapi/spnego/gssapiP_spnego.h
+@@ -102,6 +102,8 @@ typedef struct {
+ 	int firstpass;
+ 	int mech_complete;
+ 	int nego_done;
++	int initiate;
++	int opened;
+ 	OM_uint32 ctx_flags;
+ 	gss_name_t internal_name;
+ 	gss_OID actual_mech;
+diff --git a/src/lib/gssapi/spnego/spnego_mech.c b/src/lib/gssapi/spnego/spnego_mech.c
+index f9248ab..3423f22 100644
+--- a/src/lib/gssapi/spnego/spnego_mech.c
++++ b/src/lib/gssapi/spnego/spnego_mech.c
+@@ -101,7 +101,7 @@ static OM_uint32 get_negotiable_mechs(OM_uint32 *, spnego_gss_cred_id_t,
+ 				      gss_cred_usage_t, gss_OID_set *);
+ static void release_spnego_ctx(spnego_gss_ctx_id_t *);
+ static void check_spnego_options(spnego_gss_ctx_id_t);
+-static spnego_gss_ctx_id_t create_spnego_ctx(void);
++static spnego_gss_ctx_id_t create_spnego_ctx(int);
+ static int put_mech_set(gss_OID_set mechSet, gss_buffer_t buf);
+ static int put_input_token(unsigned char **, gss_buffer_t, unsigned int);
+ static int put_mech_oid(unsigned char **, gss_OID_const, unsigned int);
+@@ -439,7 +439,7 @@ check_spnego_options(spnego_gss_ctx_id_t spnego_ctx)
+ }
+ 
+ static spnego_gss_ctx_id_t
+-create_spnego_ctx(void)
++create_spnego_ctx(int initiate)
+ {
+ 	spnego_gss_ctx_id_t spnego_ctx = NULL;
+ 	spnego_ctx = (spnego_gss_ctx_id_t)
+@@ -462,6 +462,8 @@ create_spnego_ctx(void)
+ 	spnego_ctx->mic_rcvd = 0;
+ 	spnego_ctx->mech_complete = 0;
+ 	spnego_ctx->nego_done = 0;
++	spnego_ctx->opened = 0;
++	spnego_ctx->initiate = initiate;
+ 	spnego_ctx->internal_name = GSS_C_NO_NAME;
+ 	spnego_ctx->actual_mech = GSS_C_NO_OID;
+ 
+@@ -627,7 +629,7 @@ init_ctx_new(OM_uint32 *minor_status,
+ 	OM_uint32 ret;
+ 	spnego_gss_ctx_id_t sc = NULL;
+ 
+-	sc = create_spnego_ctx();
++	sc = create_spnego_ctx(1);
+ 	if (sc == NULL)
+ 		return GSS_S_FAILURE;
+ 
+@@ -644,10 +646,7 @@ init_ctx_new(OM_uint32 *minor_status,
+ 		ret = GSS_S_FAILURE;
+ 		goto cleanup;
+ 	}
+-	/*
+-	 * The actual context is not yet determined, set the output
+-	 * context handle to refer to the spnego context itself.
+-	 */
++
+ 	sc->ctx_handle = GSS_C_NO_CONTEXT;
+ 	*ctx = (gss_ctx_id_t)sc;
+ 	sc = NULL;
+@@ -1088,16 +1087,11 @@ cleanup:
+ 	}
+ 	gss_release_buffer(&tmpmin, &mechtok_out);
+ 	if (ret == GSS_S_COMPLETE) {
+-		/*
+-		 * Now, switch the output context to refer to the
+-		 * negotiated mechanism's context.
+-		 */
+-		*context_handle = (gss_ctx_id_t)spnego_ctx->ctx_handle;
++		spnego_ctx->opened = 1;
+ 		if (actual_mech != NULL)
+ 			*actual_mech = spnego_ctx->actual_mech;
+ 		if (ret_flags != NULL)
+ 			*ret_flags = spnego_ctx->ctx_flags;
+-		release_spnego_ctx(&spnego_ctx);
+ 	} else if (ret != GSS_S_CONTINUE_NEEDED) {
+ 		if (spnego_ctx != NULL) {
+ 			gss_delete_sec_context(&tmpmin,
+@@ -1341,7 +1335,7 @@ acc_ctx_hints(OM_uint32 *minor_status,
+ 	if (ret != GSS_S_COMPLETE)
+ 		goto cleanup;
+ 
+-	sc = create_spnego_ctx();
++	sc = create_spnego_ctx(0);
+ 	if (sc == NULL) {
+ 		ret = GSS_S_FAILURE;
+ 		goto cleanup;
+@@ -1423,7 +1417,7 @@ acc_ctx_new(OM_uint32 *minor_status,
+ 		gss_release_buffer(&tmpmin, &sc->DER_mechTypes);
+ 		assert(mech_wanted != GSS_C_NO_OID);
+ 	} else
+-		sc = create_spnego_ctx();
++		sc = create_spnego_ctx(0);
+ 	if (sc == NULL) {
+ 		ret = GSS_S_FAILURE;
+ 		*return_token = NO_TOKEN_SEND;
+@@ -1806,13 +1800,12 @@ cleanup:
+ 			ret = GSS_S_FAILURE;
+ 	}
+ 	if (ret == GSS_S_COMPLETE) {
+-		*context_handle = (gss_ctx_id_t)sc->ctx_handle;
++		sc->opened = 1;
+ 		if (sc->internal_name != GSS_C_NO_NAME &&
+ 		    src_name != NULL) {
+ 			*src_name = sc->internal_name;
+ 			sc->internal_name = GSS_C_NO_NAME;
+ 		}
+-		release_spnego_ctx(&sc);
+ 	} else if (ret != GSS_S_CONTINUE_NEEDED) {
+ 		if (sc != NULL) {
+ 			gss_delete_sec_context(&tmpmin, &sc->ctx_handle,
+@@ -2125,8 +2118,13 @@ spnego_gss_unwrap(
+ 		gss_qop_t *qop_state)
+ {
+ 	OM_uint32 ret;
++	spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle;
++
++	if (sc->ctx_handle == GSS_C_NO_CONTEXT)
++		return (GSS_S_NO_CONTEXT);
++
+ 	ret = gss_unwrap(minor_status,
+-			context_handle,
++			sc->ctx_handle,
+ 			input_message_buffer,
+ 			output_message_buffer,
+ 			conf_state,
+@@ -2146,8 +2144,13 @@ spnego_gss_wrap(
+ 		gss_buffer_t output_message_buffer)
+ {
+ 	OM_uint32 ret;
++	spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle;
++
++	if (sc->ctx_handle == GSS_C_NO_CONTEXT)
++		return (GSS_S_NO_CONTEXT);
++
+ 	ret = gss_wrap(minor_status,
+-		    context_handle,
++		    sc->ctx_handle,
+ 		    conf_req_flag,
+ 		    qop_req,
+ 		    input_message_buffer,
+@@ -2164,8 +2167,14 @@ spnego_gss_process_context_token(
+ 				const gss_buffer_t token_buffer)
+ {
+ 	OM_uint32 ret;
++	spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle;
++
++	/* SPNEGO doesn't have its own context tokens. */
++	if (!sc->opened)
++		return (GSS_S_DEFECTIVE_TOKEN);
++
+ 	ret = gss_process_context_token(minor_status,
+-					context_handle,
++					sc->ctx_handle,
+ 					token_buffer);
+ 
+ 	return (ret);
+@@ -2189,19 +2198,9 @@ spnego_gss_delete_sec_context(
+ 	if (*ctx == NULL)
+ 		return (GSS_S_COMPLETE);
+ 
+-	/*
+-	 * If this is still an SPNEGO mech, release it locally.
+-	 */
+-	if ((*ctx)->magic_num == SPNEGO_MAGIC_ID) {
+-		(void) gss_delete_sec_context(minor_status,
+-				    &(*ctx)->ctx_handle,
+-				    output_token);
+-		(void) release_spnego_ctx(ctx);
+-	} else {
+-		ret = gss_delete_sec_context(minor_status,
+-				    context_handle,
+-				    output_token);
+-	}
++	(void) gss_delete_sec_context(minor_status, &(*ctx)->ctx_handle,
++				      output_token);
++	(void) release_spnego_ctx(ctx);
+ 
+ 	return (ret);
+ }
+@@ -2213,8 +2212,13 @@ spnego_gss_context_time(
+ 			OM_uint32	*time_rec)
+ {
+ 	OM_uint32 ret;
++	spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle;
++
++	if (sc->ctx_handle == GSS_C_NO_CONTEXT)
++		return (GSS_S_NO_CONTEXT);
++
+ 	ret = gss_context_time(minor_status,
+-			    context_handle,
++			    sc->ctx_handle,
+ 			    time_rec);
+ 	return (ret);
+ }
+@@ -2226,9 +2230,20 @@ spnego_gss_export_sec_context(
+ 			    gss_buffer_t interprocess_token)
+ {
+ 	OM_uint32 ret;
++	spnego_gss_ctx_id_t sc = *(spnego_gss_ctx_id_t *)context_handle;
++
++	/* We don't currently support exporting partially established
++	 * contexts. */
++	if (!sc->opened)
++		return GSS_S_UNAVAILABLE;
++
+ 	ret = gss_export_sec_context(minor_status,
+-				    context_handle,
++				    &sc->ctx_handle,
+ 				    interprocess_token);
++	if (sc->ctx_handle == GSS_C_NO_CONTEXT) {
++		release_spnego_ctx(&sc);
++		*context_handle = GSS_C_NO_CONTEXT;
++	}
+ 	return (ret);
+ }
+ 
+@@ -2238,11 +2253,12 @@ spnego_gss_import_sec_context(
+ 	const gss_buffer_t	interprocess_token,
+ 	gss_ctx_id_t		*context_handle)
+ {
+-	OM_uint32 ret;
+-	ret = gss_import_sec_context(minor_status,
+-				    interprocess_token,
+-				    context_handle);
+-	return (ret);
++	/*
++	 * Until we implement partial context exports, there are no SPNEGO
++	 * exported context tokens, only tokens for underlying mechs.  So just
++	 * return an error for now.
++	 */
++	return GSS_S_UNAVAILABLE;
+ }
+ #endif /* LEAN_CLIENT */
+ 
+@@ -2259,16 +2275,48 @@ spnego_gss_inquire_context(
+ 			int		*opened)
+ {
+ 	OM_uint32 ret = GSS_S_COMPLETE;
++	spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle;
++
++	if (src_name != NULL)
++		*src_name = GSS_C_NO_NAME;
++	if (targ_name != NULL)
++		*targ_name = GSS_C_NO_NAME;
++	if (lifetime_rec != NULL)
++		*lifetime_rec = 0;
++	if (mech_type != NULL)
++		*mech_type = (gss_OID)gss_mech_spnego;
++	if (ctx_flags != NULL)
++		*ctx_flags = 0;
++	if (locally_initiated != NULL)
++		*locally_initiated = sc->initiate;
++	if (opened != NULL)
++		*opened = sc->opened;
++
++	if (sc->ctx_handle != GSS_C_NO_CONTEXT) {
++		ret = gss_inquire_context(minor_status, sc->ctx_handle,
++					  src_name, targ_name, lifetime_rec,
++					  mech_type, ctx_flags, NULL, NULL);
++	}
+ 
+-	ret = gss_inquire_context(minor_status,
+-				context_handle,
+-				src_name,
+-				targ_name,
+-				lifetime_rec,
+-				mech_type,
+-				ctx_flags,
+-				locally_initiated,
+-				opened);
++	if (!sc->opened) {
++		/*
++		 * We are still doing SPNEGO negotiation, so report SPNEGO as
++		 * the OID.  After negotiation is complete we will report the
++		 * underlying mechanism OID.
++		 */
++		if (mech_type != NULL)
++			*mech_type = (gss_OID)gss_mech_spnego;
++
++		/*
++		 * Remove flags we don't support with partially-established
++		 * contexts.  (Change this to keep GSS_C_TRANS_FLAG if we add
++		 * support for exporting partial SPNEGO contexts.)
++		 */
++		if (ctx_flags != NULL) {
++			*ctx_flags &= ~GSS_C_PROT_READY_FLAG;
++			*ctx_flags &= ~GSS_C_TRANS_FLAG;
++		}
++	}
+ 
+ 	return (ret);
+ }
+@@ -2283,8 +2331,13 @@ spnego_gss_wrap_size_limit(
+ 	OM_uint32	*max_input_size)
+ {
+ 	OM_uint32 ret;
++	spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle;
++
++	if (sc->ctx_handle == GSS_C_NO_CONTEXT)
++		return (GSS_S_NO_CONTEXT);
++
+ 	ret = gss_wrap_size_limit(minor_status,
+-				context_handle,
++				sc->ctx_handle,
+ 				conf_req_flag,
+ 				qop_req,
+ 				req_output_size,
+@@ -2301,8 +2354,13 @@ spnego_gss_get_mic(
+ 		gss_buffer_t message_token)
+ {
+ 	OM_uint32 ret;
++	spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle;
++
++	if (sc->ctx_handle == GSS_C_NO_CONTEXT)
++		return (GSS_S_NO_CONTEXT);
++
+ 	ret = gss_get_mic(minor_status,
+-		    context_handle,
++		    sc->ctx_handle,
+ 		    qop_req,
+ 		    message_buffer,
+ 		    message_token);
+@@ -2318,8 +2376,13 @@ spnego_gss_verify_mic(
+ 		gss_qop_t *qop_state)
+ {
+ 	OM_uint32 ret;
++	spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle;
++
++	if (sc->ctx_handle == GSS_C_NO_CONTEXT)
++		return (GSS_S_NO_CONTEXT);
++
+ 	ret = gss_verify_mic(minor_status,
+-			    context_handle,
++			    sc->ctx_handle,
+ 			    msg_buffer,
+ 			    token_buffer,
+ 			    qop_state);
+@@ -2334,8 +2397,14 @@ spnego_gss_inquire_sec_context_by_oid(
+ 		gss_buffer_set_t *data_set)
+ {
+ 	OM_uint32 ret;
++	spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle;
++
++	/* There are no SPNEGO-specific OIDs for this function. */
++	if (sc->ctx_handle == GSS_C_NO_CONTEXT)
++		return (GSS_S_UNAVAILABLE);
++
+ 	ret = gss_inquire_sec_context_by_oid(minor_status,
+-			    context_handle,
++			    sc->ctx_handle,
+ 			    desired_object,
+ 			    data_set);
+ 	return (ret);
+@@ -2404,8 +2473,15 @@ spnego_gss_set_sec_context_option(
+ 		const gss_buffer_t value)
+ {
+ 	OM_uint32 ret;
++	spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)*context_handle;
++
++	/* There are no SPNEGO-specific OIDs for this function, and we cannot
++	 * construct an empty SPNEGO context with it. */
++	if (sc == NULL || sc->ctx_handle == GSS_C_NO_CONTEXT)
++		return (GSS_S_UNAVAILABLE);
++
+ 	ret = gss_set_sec_context_option(minor_status,
+-			    context_handle,
++			    &sc->ctx_handle,
+ 			    desired_object,
+ 			    value);
+ 	return (ret);
+@@ -2422,8 +2498,13 @@ spnego_gss_wrap_aead(OM_uint32 *minor_status,
+ 		     gss_buffer_t output_message_buffer)
+ {
+ 	OM_uint32 ret;
++	spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle;
++
++	if (sc->ctx_handle == GSS_C_NO_CONTEXT)
++		return (GSS_S_NO_CONTEXT);
++
+ 	ret = gss_wrap_aead(minor_status,
+-			    context_handle,
++			    sc->ctx_handle,
+ 			    conf_req_flag,
+ 			    qop_req,
+ 			    input_assoc_buffer,
+@@ -2444,8 +2525,13 @@ spnego_gss_unwrap_aead(OM_uint32 *minor_status,
+ 		       gss_qop_t *qop_state)
+ {
+ 	OM_uint32 ret;
++	spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle;
++
++	if (sc->ctx_handle == GSS_C_NO_CONTEXT)
++		return (GSS_S_NO_CONTEXT);
++
+ 	ret = gss_unwrap_aead(minor_status,
+-			      context_handle,
++			      sc->ctx_handle,
+ 			      input_message_buffer,
+ 			      input_assoc_buffer,
+ 			      output_payload_buffer,
+@@ -2464,8 +2550,13 @@ spnego_gss_wrap_iov(OM_uint32 *minor_status,
+ 		    int iov_count)
+ {
+ 	OM_uint32 ret;
++	spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle;
++
++	if (sc->ctx_handle == GSS_C_NO_CONTEXT)
++		return (GSS_S_NO_CONTEXT);
++
+ 	ret = gss_wrap_iov(minor_status,
+-			   context_handle,
++			   sc->ctx_handle,
+ 			   conf_req_flag,
+ 			   qop_req,
+ 			   conf_state,
+@@ -2483,8 +2574,13 @@ spnego_gss_unwrap_iov(OM_uint32 *minor_status,
+ 		      int iov_count)
+ {
+ 	OM_uint32 ret;
++	spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle;
++
++	if (sc->ctx_handle == GSS_C_NO_CONTEXT)
++		return (GSS_S_NO_CONTEXT);
++
+ 	ret = gss_unwrap_iov(minor_status,
+-			     context_handle,
++			     sc->ctx_handle,
+ 			     conf_state,
+ 			     qop_state,
+ 			     iov,
+@@ -2502,8 +2598,13 @@ spnego_gss_wrap_iov_length(OM_uint32 *minor_status,
+ 			   int iov_count)
+ {
+ 	OM_uint32 ret;
++	spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle;
++
++	if (sc->ctx_handle == GSS_C_NO_CONTEXT)
++		return (GSS_S_NO_CONTEXT);
++
+ 	ret = gss_wrap_iov_length(minor_status,
+-				  context_handle,
++				  sc->ctx_handle,
+ 				  conf_req_flag,
+ 				  qop_req,
+ 				  conf_state,
+@@ -2520,8 +2621,13 @@ spnego_gss_complete_auth_token(
+ 		gss_buffer_t input_message_buffer)
+ {
+ 	OM_uint32 ret;
++	spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle;
++
++	if (sc->ctx_handle == GSS_C_NO_CONTEXT)
++		return (GSS_S_UNAVAILABLE);
++
+ 	ret = gss_complete_auth_token(minor_status,
+-				      context_handle,
++				      sc->ctx_handle,
+ 				      input_message_buffer);
+ 	return (ret);
+ }
+@@ -2773,8 +2879,13 @@ spnego_gss_pseudo_random(OM_uint32 *minor_status,
+ 			 gss_buffer_t prf_out)
+ {
+ 	OM_uint32 ret;
++	spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context;
++
++	if (sc->ctx_handle == GSS_C_NO_CONTEXT)
++		return (GSS_S_NO_CONTEXT);
++
+ 	ret = gss_pseudo_random(minor_status,
+-				context,
++				sc->ctx_handle,
+ 				prf_key,
+ 				prf_in,
+ 				desired_output_len,
+@@ -2915,7 +3026,12 @@ spnego_gss_get_mic_iov(OM_uint32 *minor_status, gss_ctx_id_t context_handle,
+ 		       gss_qop_t qop_req, gss_iov_buffer_desc *iov,
+ 		       int iov_count)
+ {
+-    return gss_get_mic_iov(minor_status, context_handle, qop_req, iov,
++    spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle;
++
++    if (sc->ctx_handle == GSS_C_NO_CONTEXT)
++	    return (GSS_S_NO_CONTEXT);
++
++    return gss_get_mic_iov(minor_status, sc->ctx_handle, qop_req, iov,
+ 			   iov_count);
+ }
+ 
+@@ -2924,7 +3040,12 @@ spnego_gss_verify_mic_iov(OM_uint32 *minor_status, gss_ctx_id_t context_handle,
+ 			  gss_qop_t *qop_state, gss_iov_buffer_desc *iov,
+ 			  int iov_count)
+ {
+-    return gss_verify_mic_iov(minor_status, context_handle, qop_state, iov,
++    spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle;
++
++    if (sc->ctx_handle == GSS_C_NO_CONTEXT)
++	    return (GSS_S_NO_CONTEXT);
++
++    return gss_verify_mic_iov(minor_status, sc->ctx_handle, qop_state, iov,
+ 			      iov_count);
+ }
+ 
+@@ -2933,7 +3054,12 @@ spnego_gss_get_mic_iov_length(OM_uint32 *minor_status,
+ 			      gss_ctx_id_t context_handle, gss_qop_t qop_req,
+ 			      gss_iov_buffer_desc *iov, int iov_count)
+ {
+-    return gss_get_mic_iov_length(minor_status, context_handle, qop_req, iov,
++    spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle;
++
++    if (sc->ctx_handle == GSS_C_NO_CONTEXT)
++	    return (GSS_S_NO_CONTEXT);
++
++    return gss_get_mic_iov_length(minor_status, sc->ctx_handle, qop_req, iov,
+ 				  iov_count);
+ }
+ 
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/Fix-build_principal-memory-bug-CVE-2015-2697.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/Fix-build_principal-memory-bug-CVE-2015-2697.patch
new file mode 100644
index 0000000..9b0c18b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/Fix-build_principal-memory-bug-CVE-2015-2697.patch
@@ -0,0 +1,58 @@
+From 9cb63711e63042f22da914ba039c4537b22e8fb0 Mon Sep 17 00:00:00 2001
+From: Greg Hudson <ghudson@mit.edu>
+Date: Fri, 25 Sep 2015 12:51:47 -0400
+Subject: [PATCH 3/4] Fix build_principal memory bug [CVE-2015-2697]
+
+In build_principal_va(), use k5memdup0() instead of strdup() to make a
+copy of the realm, to ensure that we allocate the correct number of
+bytes and do not read past the end of the input string.  This bug
+affects krb5_build_principal(), krb5_build_principal_va(), and
+krb5_build_principal_alloc_va().  krb5_build_principal_ext() is not
+affected.
+
+CVE-2015-2697:
+
+In MIT krb5 1.7 and later, an authenticated attacker may be able to
+cause a KDC to crash using a TGS request with a large realm field
+beginning with a null byte.  If the KDC attempts to find a referral to
+answer the request, it constructs a principal name for lookup using
+krb5_build_principal() with the requested realm.  Due to a bug in this
+function, the null byte causes only one byte be allocated for the
+realm field of the constructed principal, far less than its length.
+Subsequent operations on the lookup principal may cause a read beyond
+the end of the mapped memory region, causing the KDC process to crash.
+
+CVSSv2: AV:N/AC:L/Au:S/C:N/I:N/A:C/E:POC/RL:OF/RC:C
+
+ticket: 8252 (new)
+target_version: 1.14
+tags: pullup
+
+Backport upstream commit:
+https://github.com/krb5/krb5/commit/f0c094a1b745d91ef2f9a4eae2149aac026a5789
+
+Upstream-Status: Backport
+---
+ src/lib/krb5/krb/bld_princ.c | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/src/lib/krb5/krb/bld_princ.c b/src/lib/krb5/krb/bld_princ.c
+index ab6fed8..8604268 100644
+--- a/src/lib/krb5/krb/bld_princ.c
++++ b/src/lib/krb5/krb/bld_princ.c
+@@ -40,10 +40,8 @@ build_principal_va(krb5_context context, krb5_principal princ,
+     data = malloc(size * sizeof(krb5_data));
+     if (!data) { retval = ENOMEM; }
+ 
+-    if (!retval) {
+-        r = strdup(realm);
+-        if (!r) { retval = ENOMEM; }
+-    }
++    if (!retval)
++        r = k5memdup0(realm, rlen, &retval);
+ 
+     while (!retval && (component = va_arg(ap, char *))) {
+         if (count == size) {
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/crosscompile_nm.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/crosscompile_nm.patch
new file mode 100644
index 0000000..d3e6937
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/crosscompile_nm.patch
@@ -0,0 +1,29 @@
+Modifies export-check.pl to use look for $ENV{'NM'} before
+defaulting to using 'nm'
+
+Upstream-Status: Pending
+
+Signed-off-by: Amy Fong <amy.fong@windriver.com>
+---
+
+ export-check.pl |    7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+Index: src/util/export-check.pl
+===================================================================
+--- src.orig/util/export-check.pl
++++ src/util/export-check.pl
+@@ -38,7 +38,12 @@
+ my($exfile, $libfile) = @ARGV;
+ 
+ @missing = ();
+-open NM, "nm -Dg --defined-only $libfile |" || die "can't run nm on $libfile: $!";
++if (defined($ENV{'NM'})) {
++	$nm = $ENV{'NM'};
++} else {
++	$nm = "nm";
++}
++open NM, "$nm -Dg --defined-only $libfile |" || die "can't run nm on $libfile: $!";
+ open EXPORT, "< $exfile" || die "can't read $exfile: $!";
+ 
+ @export = <EXPORT>;
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/debian-suppress-usr-lib-in-krb5-config.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/debian-suppress-usr-lib-in-krb5-config.patch
new file mode 100644
index 0000000..f0182ee
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/debian-suppress-usr-lib-in-krb5-config.patch
@@ -0,0 +1,48 @@
+Subject: [PATCH] debian: suppress /usr/lib in krb5-config
+
+Upstream-Status: Pending
+
+Handel multi-arch suppressions
+
+The patch is from debian.
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+---
+ src/build-tools/krb5-config.in |   14 +++++++++-----
+ 1 files changed, 9 insertions(+), 5 deletions(-)
+
+diff --git a/src/build-tools/krb5-config.in b/src/build-tools/krb5-config.in
+index f6184da..637bad7 100755
+--- a/src/build-tools/krb5-config.in
++++ b/src/build-tools/krb5-config.in
+@@ -138,6 +138,7 @@ if test -n "$do_help"; then
+     echo "        [--defktname]     Show built-in default keytab name"
+     echo "        [--defcktname]    Show built-in default client keytab name"
+     echo "        [--cflags]        Compile time CFLAGS"
++    echo "        [--deps]          Include dependent libraries"
+     echo "        [--libs]          List libraries required to link [LIBRARIES]"
+     echo "Libraries:"
+     echo "        krb5              Kerberos 5 application"
+@@ -209,11 +210,14 @@ fi
+ 
+ if test -n "$do_libs"; then
+     # Assumes /usr/lib is the standard library directory everywhere...
+-    if test "$libdir" = /usr/lib; then
+-	libdirarg=
+-    else
+-	libdirarg="-L$libdir"
+-    fi
++    case $libdir in
++	/usr/lib*)
++	    libdirarg=
++	    ;;
++	*)
++	    libdirarg="-L$libdir"
++	    ;;
++    esac
+     # Ugly gross hack for our build tree
+     lib_flags=`echo $CC_LINK | sed -e 's/\$(CC)//' \
+ 	    -e 's/\$(PURE)//' \
+-- 
+1.7.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/etc/default/krb5-admin-server b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/etc/default/krb5-admin-server
new file mode 100644
index 0000000..2835929
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/etc/default/krb5-admin-server
@@ -0,0 +1,6 @@
+# Automatically generated.  If you change anything in this file other than the
+# values of RUN_KADMIND or DAEMON_ARGS, first run dpkg-reconfigure
+# krb5-admin-server and disable managing the kadmin configuration with
+# debconf.  Otherwise, changes will be overwritten.
+
+RUN_KADMIND=true
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/etc/default/krb5-kdc b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/etc/default/krb5-kdc
new file mode 100644
index 0000000..310bfcf
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/etc/default/krb5-kdc
@@ -0,0 +1,5 @@
+# Automatically generated.  Only the value of DAEMON_ARGS will be preserved.
+# If you change anything in this file other than DAEMON_ARGS, first run
+# dpkg-reconfigure krb5-kdc and disable managing the KDC configuration with
+# debconf.  Otherwise, changes will be overwritten.
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/etc/init.d/krb5-admin-server b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/etc/init.d/krb5-admin-server
new file mode 100755
index 0000000..79238d4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/etc/init.d/krb5-admin-server
@@ -0,0 +1,140 @@
+#! /bin/sh
+### BEGIN INIT INFO
+# Provides:             krb5-admin-server
+# Required-Start:       $local_fs $remote_fs $network $syslog
+# Required-Stop:        $local_fs $remote_fs $network $syslog
+# Should-Start:         krb5-kdc
+# Should-Stop:          krb5-kdc
+# Default-Start:        2 3 4 5
+# Default-Stop:         0 1 6
+# Short-Description:    MIT Kerberos KDC administrative daemon
+# Description:          Starts, stops, or restarts the MIT Kerberos KDC
+#                       administrative daemon (kadmind).  This daemon answers
+#                       requests from kadmin clients and allows administrators
+#                       to create, delete, and modify principals in the KDC
+#                       database.
+### END INIT INFO
+
+# Author: Sam Hartman <hartmans@mit.edu>
+# Author: Russ Allbery <rra@debian.org>
+#
+# Based on the /etc/init.d/skeleton template as found in initscripts version
+# 2.86.ds1-15.
+
+# June, 2012: Adopted for yocto <amy.fong@windriver.com>
+
+PATH=/usr/sbin:/usr/bin:/sbin:/bin
+DESC="Kerberos administrative servers"
+NAME=kadmind
+DAEMON=/usr/sbin/$NAME
+DAEMON_ARGS=""
+SCRIPTNAME=/etc/init.d/krb5-admin-server
+DEFAULT=/etc/default/krb5-admin-server
+
+# Exit if the package is not installed.
+[ -x "$DAEMON" ] || exit 0
+
+# Read configuration if it is present.
+[ -r "$DEFAULT" ] && . "$DEFAULT"
+
+# Get the setting of VERBOSE and other rcS variables.
+[ -f /etc/default/rcS ] && . /etc/default/rcS
+
+. /etc/init.d/functions
+
+ADMIN_SERVER_LOG=/var/log/kadmind.log
+[ -f $ADMIN_SERVER_LOG ] && (test ! -x /sbin/restorecon \
+    || /sbin/restorecon -F $ADMIN_SERVER_LOG)
+
+# Return
+#   0 if daemon has been started
+#   1 if daemon was already running
+#   2 if daemon could not be started
+do_start()
+{
+    start-stop-daemon --start --quiet --startas $DAEMON --name $NAME --test \
+        > /dev/null || return 1
+    start-stop-daemon --start --quiet --startas $DAEMON --name $NAME \
+        -- $DAEMON_ARGS || return 2
+}
+
+# Return
+#   0 if daemon has been stopped
+#   1 if daemon was already stopped
+#   2 if daemon could not be stopped
+#   other if a failure occurred
+do_stop()
+{
+    start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --name $NAME
+    RETVAL="$?"
+    [ "$RETVAL" = 2 ] && return 2
+    return "$RETVAL"
+}
+
+
+case "$1" in
+  start)
+    if [ "$RUN_KADMIND" = false ] ; then
+        if [ "$VERBOSE" != no ] ; then
+            echo "Not starting $DESC per configuration"
+        fi
+        exit 0
+    fi
+    [ "$VERBOSE" != no ] && echo "Starting $DESC" "$NAME"
+    do_start
+    case "$?" in
+      0|1) [ "$VERBOSE" != no ] && echo 0 ;;
+      2)   [ "$VERBOSE" != no ] && echo 1 ;;
+    esac
+    ;;
+
+  stop)
+    [ "$VERBOSE" != no ] && echo "Stopping $DESC" "$NAME"
+    do_stop
+    case "$?" in
+      0|1) [ "$VERBOSE" != no ] && echo 0 ;;
+      2)   [ "$VERBOSE" != no ] && echo 1 ;;
+    esac
+    ;;
+
+  restart|force-reload)
+    if [ "$RUN_KADMIND" = false ] ; then
+        if [ "$VERBOSE" != no ] ; then
+            echo "Not restarting $DESC per configuration"
+        fi
+        exit 0
+    fi
+    echo "Restarting $DESC" "$NAME"
+    do_stop
+    case "$?" in
+      0|1)
+        do_start
+        case "$?" in
+          0) [ "$VERBOSE" != no ] && echo 0 ;;
+          *) [ "$VERBOSE" != no ] && echo 1 ;;
+        esac
+        ;;
+      *)
+        echo 1
+        ;;
+    esac
+    ;;
+
+  status)
+    pidofproc "$DAEMON" >/dev/null
+    status=$?
+    if [ $status -eq 0 ]; then
+        echo "$NAME is running."
+    else
+        echo "$NAME is not running."
+    fi
+    exit $status
+    ;;
+
+  *)
+    echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|status}" >&2
+    exit 3
+    ;;
+esac
+
+:
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/etc/init.d/krb5-kdc b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/etc/init.d/krb5-kdc
new file mode 100755
index 0000000..865d1b9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/etc/init.d/krb5-kdc
@@ -0,0 +1,133 @@
+#! /bin/sh
+### BEGIN INIT INFO
+# Provides:             krb5-kdc
+# Required-Start:       $local_fs $remote_fs $network $syslog
+# Required-Stop:        $local_fs $remote_fs $network $syslog
+# X-Start-Before: $x-display-manager
+# Default-Start:        2 3 4 5
+# Default-Stop:         0 1 6
+# Short-Description:    MIT Kerberos KDC
+# Description:          Starts, stops, or restarts the MIT Kerberos KDC.  This
+#                       daemon responds to ticket requests from Kerberos
+#                       clients.
+### END INIT INFO
+
+# Author: Sam Hartman <hartmans@mit.edu>
+# Author: Russ Allbery <rra@debian.org>
+#
+# Based on the /etc/init.d/skeleton template as found in initscripts version
+# 2.86.ds1-15.
+
+# June, 2012: Adopted for yocto <amy.fong@windriver.com>
+
+PATH=/usr/sbin:/usr/bin:/sbin:/bin
+DESC="Kerberos KDC"
+NAME=krb5kdc
+DAEMON=/usr/sbin/$NAME
+DAEMON_ARGS=""
+SCRIPTNAME=/etc/init.d/krb5-kdc
+
+# Exit if the package is not installed.
+[ -x "$DAEMON" ] || exit 0
+
+# Read configuration if it is present.
+[ -r /etc/default/krb5-kdc ] && . /etc/default/krb5-kdc
+
+# Get the setting of VERBOSE and other rcS variables.
+[ -f /etc/default/rcS ] && . /etc/default/rcS
+
+. /etc/init.d/functions
+
+# Return
+#   0 if daemon has been started
+#   1 if daemon was already running
+#   2 if daemon could not be started
+do_start_kdc()
+{
+    start-stop-daemon --start --quiet --startas $DAEMON --name $NAME --test \
+        > /dev/null || return 1
+    start-stop-daemon --start --quiet --startas $DAEMON --name $NAME \
+        -- $DAEMON_ARGS || return 2
+}
+
+
+# Return
+#   0 if daemon has been stopped
+#   1 if daemon was already stopped
+#   2 if daemon could not be stopped
+#   other if a failure occurred
+do_stop_kdc()
+{
+    start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --name $NAME
+    RETVAL="$?"
+    [ "$RETVAL" = 2 ] && return 2
+    return "$RETVAL"
+}
+
+
+case "$1" in
+  start)
+    [ "$VERBOSE" != no ] && echo "Starting $DESC" "$NAME"
+    do_start_kdc
+    case "$?" in
+      0|1)
+            [ "$VERBOSE" != no ] && echo 0
+        ;;
+      2)
+        [ "$VERBOSE" != no ] && echo 1
+        ;;
+    esac
+    ;;
+
+  stop)
+    [ "$VERBOSE" != no ] && echo "Stopping $DESC" "$NAME"
+    do_stop_kdc
+    case "$?" in
+      0|1)
+        [ "$VERBOSE" != no ] && echo "krb524d"
+        ;;
+      2)
+        [ "$VERBOSE" != no ] && echo 1
+        ;;
+    esac
+    ;;
+
+  restart|force-reload)
+    echo "Restarting $DESC" "$NAME"
+    do_stop_kdc
+    case "$?" in
+      0|1)
+        do_start_kdc
+        case "$?" in
+          0)
+	  echo 0
+	  ;;
+          1|2)
+            echo 1
+            ;;
+        esac
+        ;;
+      *)
+        echo 1
+        ;;
+    esac
+    ;;
+
+  status)
+    pidofproc "$DAEMON" >/dev/null
+    status=$?
+    if [ $status -eq 0 ]; then
+        echo "$NAME is running."
+    else
+        echo "$NAME is not running."
+    fi
+    exit $status
+    ;;
+
+  *)
+    echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|status}" >&2
+    exit 3
+    ;;
+esac
+
+:
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/krb5-CVE-2016-3119.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/krb5-CVE-2016-3119.patch
new file mode 100644
index 0000000..67fefed
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/krb5-CVE-2016-3119.patch
@@ -0,0 +1,36 @@
+Subject: kerb: Fix LDAP null deref on empty arg [CVE-2016-3119]
+From: Greg Hudson
+
+In the LDAP KDB module's process_db_args(), strtok_r() may return NULL
+if there is an empty string in the db_args array.  Check for this case
+and avoid dereferencing a null pointer.
+
+CVE-2016-3119:
+
+In MIT krb5 1.6 and later, an authenticated attacker with permission
+to modify a principal entry can cause kadmind to dereference a null
+pointer by supplying an empty DB argument to the modify_principal
+command, if kadmind is configured to use the LDAP KDB module.
+
+    CVSSv2 Vector: AV:N/AC:H/Au:S/C:N/I:N/A:C/E:H/RL:OF/RC:ND
+
+ticket: 8383 (new)
+target_version: 1.14-next
+target_version: 1.13-next
+tags: pullup
+
+Upstream-Status: Backport
+
+Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
+Index: krb5-1.13.2/src/plugins/kdb/ldap/libkdb_ldap/ldap_principal2.c
+===================================================================
+--- krb5-1.13.2.orig/src/plugins/kdb/ldap/libkdb_ldap/ldap_principal2.c	2015-05-09 07:27:02.000000000 +0800
++++ krb5-1.13.2/src/plugins/kdb/ldap/libkdb_ldap/ldap_principal2.c	2016-04-11 15:17:12.874140518 +0800
+@@ -267,6 +267,7 @@
+     if (db_args) {
+         for (i=0; db_args[i]; ++i) {
+             arg = strtok_r(db_args[i], "=", &arg_val);
++            arg = (arg != NULL) ? arg : "";
+             if (strcmp(arg, TKTPOLICY_ARG) == 0) {
+                 dptr = &xargs->tktpolicydn;
+             } else {
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5_1.13.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5_1.13.2.bb
new file mode 100644
index 0000000..713b76c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5_1.13.2.bb
@@ -0,0 +1,107 @@
+SUMMARY = "A network authentication protocol"
+DESCRIPTION = "Kerberos is a system for authenticating users and services on a network. \
+ Kerberos is a trusted third-party service.  That means that there is a \
+ third party (the Kerberos server) that is trusted by all the entities on \
+ the network (users and services, usually called "principals"). \
+ . \
+ This is the MIT reference implementation of Kerberos V5. \
+ . \
+ This package contains the Kerberos key server (KDC).  The KDC manages all \
+ authentication credentials for a Kerberos realm, holds the master keys \
+ for the realm, and responds to authentication requests.  This package \
+ should be installed on both master and slave KDCs."
+
+HOMEPAGE = "http://web.mit.edu/Kerberos/"
+SECTION = "console/network"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${S}/../NOTICE;md5=f64248328d2d9928e1f04158b5243e7f"
+DEPENDS = "ncurses util-linux e2fsprogs e2fsprogs-native"
+
+inherit autotools-brokensep binconfig perlnative
+
+SHRT_VER = "${@oe.utils.trim_version("${PV}", 2)}"
+SRC_URI = "http://web.mit.edu/kerberos/dist/${BPN}/${SHRT_VER}/${BP}-signed.tar \
+           file://0001-aclocal-Add-parameter-to-disable-keyutils-detection.patch \
+           file://debian-suppress-usr-lib-in-krb5-config.patch;striplevel=2 \
+           file://Fix-SPNEGO-context-aliasing-bugs-CVE-2015-2695.patch;striplevel=2 \
+           file://Fix-IAKERB-context-aliasing-bugs-CVE-2015-2696.patch;striplevel=2 \
+           file://Fix-build_principal-memory-bug-CVE-2015-2697.patch;striplevel=2 \
+           file://Fix-IAKERB-context-export-import-CVE-2015-2698.patch;striplevel=2 \
+           file://crosscompile_nm.patch \
+           file://etc/init.d/krb5-kdc \
+           file://etc/init.d/krb5-admin-server \
+           file://etc/default/krb5-kdc \
+           file://etc/default/krb5-admin-server \
+           file://krb5-CVE-2016-3119.patch;striplevel=2 \
+"
+SRC_URI[md5sum] = "f7ebfa6c99c10b16979ebf9a98343189"
+SRC_URI[sha256sum] = "e528c30b0209c741f6f320cb83122ded92f291802b6a1a1dc1a01dcdb3ff6de1"
+
+S = "${WORKDIR}/${BP}/src"
+
+PACKAGECONFIG ??= "openssl"
+PACKAGECONFIG[libedit] = "--with-libedit,--without-libedit,libedit"
+PACKAGECONFIG[openssl] = "--with-pkinit-crypto-impl=openssl,,openssl"
+PACKAGECONFIG[keyutils] = "--enable-keyutils,--disable-keyutils,keyutils"
+PACKAGECONFIG[ldap] = "--with-ldap,--without-ldap,openldap"
+PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline"
+
+EXTRA_OECONF += " --without-tcl --with-system-et --disable-rpath"
+CACHED_CONFIGUREVARS += "krb5_cv_attr_constructor_destructor=yes ac_cv_func_regcomp=yes \
+                  ac_cv_printf_positional=yes ac_cv_file__etc_environment=yes \
+                  ac_cv_file__etc_TIMEZONE=no"
+
+CFLAGS_append += "-DDESTRUCTOR_ATTR_WORKS=1 -I${STAGING_INCDIR}/et"
+LDFLAGS_append += "-lpthread"
+
+FILES_${PN} += "${datadir}/gnats"
+FILES_${PN}-doc += "${datadir}/examples"
+FILES_${PN}-dbg += "${libdir}/krb5/plugins/*/.debug"
+
+# As this recipe doesn't inherit update-rc.d, we need to add this dependency here
+RDEPENDS_${PN}_class-target += "initscripts-functions"
+
+krb5_do_unpack() {
+    # ${P}-signed.tar contains ${P}.tar.gz.asc and ${P}.tar.gz
+    tar xzf ${WORKDIR}/${BP}.tar.gz -C ${WORKDIR}/
+}
+
+python do_unpack() {
+    bb.build.exec_func('base_do_unpack', d)
+    bb.build.exec_func('krb5_do_unpack', d)
+}
+
+do_configure() {
+    gnu-configize --force
+    autoreconf
+    oe_runconf
+}
+
+do_install_append() {
+    mkdir -p ${D}/${sysconfdir}/init.d ${D}/${sysconfdir}/default
+    install -m 0755 ${WORKDIR}/etc/init.d/* ${D}/${sysconfdir}/init.d
+    install -m 0644 ${WORKDIR}/etc/default/* ${D}/${sysconfdir}/default
+
+    rm -rf ${D}/${localstatedir}/run
+    mkdir -p ${D}/${sysconfdir}/default/volatiles
+    echo "d root root 0755 ${localstatedir}/run/krb5kdc none" \
+           > ${D}${sysconfdir}/default/volatiles/87_krb5
+    if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+        install -d ${D}${sysconfdir}/tmpfiles.d
+        echo "d /run/krb5kdc - - - -" \
+              > ${D}${sysconfdir}/tmpfiles.d/krb5.conf
+    fi
+
+}
+
+pkg_postinst_${PN} () {
+    if [ -z "$D" ]; then
+        if command -v systemd-tmpfiles >/dev/null; then
+            systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/krb5.conf
+        elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then
+            ${sysconfdir}/init.d/populate-volatile.sh update
+        fi
+    fi
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libimobiledevice/files/configure-fix-largefile.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libimobiledevice/files/configure-fix-largefile.patch
new file mode 100644
index 0000000..679a8b5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libimobiledevice/files/configure-fix-largefile.patch
@@ -0,0 +1,38 @@
+Fix configure error in large file checks on 64-bit architectures
+
+ configure:17888: checking for native large file support
+ configure:17891: error: in `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/core2-64-oe-linux/libimobiledevice/1.1.4-r0/libimobiledevice-1.1.4':
+ configure:17893: error: cannot run test program while cross compiling
+
+configure.ac was using AC_SYS_LARGEFILE macro as is typical, but then
+there was an extra runtime check added beyond that:
+check if off_t is 8 bytes (64 bits) long.
+If that runtime check passed, _FILE_OFFSET_BITS was defined as 64.
+
+Runtime checks need to go away for cross compiling, and luckily this extra
+check was not serving any useful purpose. Note that off_t was *already*
+64 bits, *without* setting _FILE_OFFSET_BITS, which makes _FILE_OFFSET_BITS
+unneeded for large file support. 
+
+If AC_SYS_LARGEFILE macro sets ac_cv_sys_file_offset_bits=no,
+just leave _FILE_OFFSET_BITS undefined!
+
+--- libimobiledevice-1.1.4/configure.ac.old	2015-07-15 01:38:50.900143927 -0700
++++ libimobiledevice-1.1.4/configure.ac	2015-07-15 01:39:13.300144430 -0700
+@@ -174,16 +174,6 @@
+ if test "$enable_largefile" != no; then
+     if test "$ac_cv_sys_file_offset_bits" != 'no'; then
+ 	LFS_CFLAGS="$LFS_CFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits"
+-    else
+-	AC_MSG_CHECKING(for native large file support)
+-	AC_RUN_IFELSE([AC_LANG_SOURCE([#include <unistd.h>
+-	  int main (int argc, char **argv)
+-	  {
+-	      exit(!(sizeof(off_t) == 8));
+-	  }])],
+-	[ac_cv_sys_file_offset_bits=64; AC_DEFINE(_FILE_OFFSET_BITS,64)
+-	 AC_MSG_RESULT(yes)],
+-	[AC_MSG_RESULT(no)])
+     fi
+     if test "$ac_cv_sys_large_files" != 'no'; then
+ 	LFS_CFLAGS="$LFS_CFLAGS -D_LARGE_FILES=1"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libimobiledevice/files/inline-without-definition.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libimobiledevice/files/inline-without-definition.patch
new file mode 100644
index 0000000..9a7895f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libimobiledevice/files/inline-without-definition.patch
@@ -0,0 +1,31 @@
+Fix link error with gcc 5 toolchains
+
+ afc.c:258: error: undefined reference to 'debug_buffer'
+ collect2: error: ld returned 1 exit status
+
+debug.h header was declaring things inline without providing a definition.
+Files that included this header then failed to link against the corresponding
+external symbol in debug.c, because the linker took the 'inline' keyword
+seriously rather than ignoring it.
+
+--- libimobiledevice-1.1.4/src/debug.h.orig	2015-10-03 16:24:08.758740386 -0700
++++ libimobiledevice-1.1.4/src/debug.h	2015-10-03 16:24:22.706740355 -0700
+@@ -44,14 +44,14 @@
+ #define debug_plist(a)
+ #endif
+ 
+-LIBIMOBILEDEVICE_INTERNAL inline void debug_info_real(const char *func,
++LIBIMOBILEDEVICE_INTERNAL void debug_info_real(const char *func,
+ 											const char *file,
+ 											int	line,
+ 											const char *format, ...);
+ 
+-LIBIMOBILEDEVICE_INTERNAL inline void debug_buffer(const char *data, const int length);
+-LIBIMOBILEDEVICE_INTERNAL inline void debug_buffer_to_file(const char *file, const char *data, const int length);
+-LIBIMOBILEDEVICE_INTERNAL inline void debug_plist_real(const char *func,
++LIBIMOBILEDEVICE_INTERNAL void debug_buffer(const char *data, const int length);
++LIBIMOBILEDEVICE_INTERNAL void debug_buffer_to_file(const char *file, const char *data, const int length);
++LIBIMOBILEDEVICE_INTERNAL void debug_plist_real(const char *func,
+ 											const char *file,
+ 											int	line,
+ 											plist_t plist);
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_1.1.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_1.1.4.bb
new file mode 100644
index 0000000..32aca96
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_1.1.4.bb
@@ -0,0 +1,23 @@
+SUMMARY = "A protocol library to access an iPhone or iPod Touch in Linux"
+LICENSE = "GPLv2 & LGPLv2.1"
+LIC_FILES_CHKSUM = "\
+    file://COPYING;md5=ebb5c50ab7cab4baeffba14977030c07 \
+    file://COPYING.LESSER;md5=6ab17b41640564434dda85c06b7124f7 \
+"
+
+HOMEPAGE ="http://www.libimobiledevice.org/"
+
+DEPENDS = "libplist usbmuxd libtasn1 gnutls libgcrypt"
+
+SRC_URI = " \
+    http://www.libimobiledevice.org/downloads/libimobiledevice-${PV}.tar.bz2 \
+    file://configure-fix-largefile.patch \
+    file://inline-without-definition.patch \
+"
+
+SRC_URI[md5sum] = "3f28cbc6a2e30d34685049c0abde5183"
+SRC_URI[sha256sum] = "67499cfaa6172f566ee6b0783605acffe484fb7ddc3b09881ab7ac58667ee5b8"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = " --without-cython "
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim_1.12.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim_1.12.2.bb
new file mode 100644
index 0000000..f1ecce5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim_1.12.2.bb
@@ -0,0 +1,16 @@
+SUMMARY = "libmbim is library for talking to WWAN devices by MBIM protocol"
+DESCRIPTION = "libmbim is a glib-based library for talking to WWAN modems and devices which speak the Mobile Interface Broadband Model (MBIM) protocol"
+HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libmbim/"
+LICENSE = "GPLv2 & LGPLv2.1"
+LIC_FILES_CHKSUM = " \
+    file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+    file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
+"
+
+DEPENDS = "glib-2.0 libgudev"
+
+inherit autotools pkgconfig
+
+SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz"
+SRC_URI[md5sum] = "921fb5ab3f13f1e00833e009d8f3b4f6"
+SRC_URI[sha256sum] = "949351d3e3d69b81e40a49f1d187944c26149e0647a415f0227ccdc112047b29"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libmtp/libmtp-1.1.5/69-libmtp.rules b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libmtp/libmtp-1.1.5/69-libmtp.rules
new file mode 100644
index 0000000..4cd27c7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libmtp/libmtp-1.1.5/69-libmtp.rules
@@ -0,0 +1,999 @@
+# UDEV-style hotplug map for libmtp
+# Put this file in /etc/udev/rules.d
+
+ACTION!="add", GOTO="libmtp_rules_end"
+ENV{MAJOR}!="?*", GOTO="libmtp_rules_end"
+SUBSYSTEM=="usb", GOTO="libmtp_usb_rules"
+GOTO="libmtp_rules_end"
+
+LABEL="libmtp_usb_rules"
+
+# Some sensitive devices we surely don't wanna probe
+# Color instruments
+ATTR{idVendor}=="0670", GOTO="libmtp_rules_end"
+ATTR{idVendor}=="0765", GOTO="libmtp_rules_end"
+ATTR{idVendor}=="085c", GOTO="libmtp_rules_end"
+ATTR{idVendor}=="0971", GOTO="libmtp_rules_end"
+# Canon scanners that look like MTP devices (PID 0x22nn)
+ATTR{idVendor}=="04a9", ATTR{idProduct}=="22*", GOTO="libmtp_rules_end"
+# Canon digital camera (EOS 3D) that looks like MTP device (PID 0x3113)
+ATTR{idVendor}=="04a9", ATTR{idProduct}=="3113", GOTO="libmtp_rules_end"
+# Sensitive Atheros devices that look like MTP devices
+ATTR{idVendor}=="0cf3", GOTO="libmtp_rules_end"
+# Sensitive Atmel JTAG programmers
+ATTR{idVendor}=="03eb", GOTO="libmtp_rules_end"
+# Creative ZEN Vision
+ATTR{idVendor}=="041e", ATTR{idProduct}=="411f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Creative Portable Media Center
+ATTR{idVendor}=="041e", ATTR{idProduct}=="4123", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Creative ZEN Xtra (MTP mode)
+ATTR{idVendor}=="041e", ATTR{idProduct}=="4128", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Dell DJ (2nd generation)
+ATTR{idVendor}=="041e", ATTR{idProduct}=="412f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Creative ZEN Micro (MTP mode)
+ATTR{idVendor}=="041e", ATTR{idProduct}=="4130", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Creative ZEN Touch (MTP mode)
+ATTR{idVendor}=="041e", ATTR{idProduct}=="4131", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Dell Dell Pocket DJ (MTP mode)
+ATTR{idVendor}=="041e", ATTR{idProduct}=="4132", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Creative ZEN MicroPhoto (alternate version)
+ATTR{idVendor}=="041e", ATTR{idProduct}=="4133", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Creative ZEN Sleek (MTP mode)
+ATTR{idVendor}=="041e", ATTR{idProduct}=="4137", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Creative ZEN MicroPhoto
+ATTR{idVendor}=="041e", ATTR{idProduct}=="413c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Creative ZEN Sleek Photo
+ATTR{idVendor}=="041e", ATTR{idProduct}=="413d", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Creative ZEN Vision:M
+ATTR{idVendor}=="041e", ATTR{idProduct}=="413e", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Creative ZEN V
+ATTR{idVendor}=="041e", ATTR{idProduct}=="4150", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Creative ZEN Vision:M (DVP-HD0004)
+ATTR{idVendor}=="041e", ATTR{idProduct}=="4151", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Creative ZEN V Plus
+ATTR{idVendor}=="041e", ATTR{idProduct}=="4152", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Creative ZEN Vision W
+ATTR{idVendor}=="041e", ATTR{idProduct}=="4153", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Creative ZEN
+ATTR{idVendor}=="041e", ATTR{idProduct}=="4157", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Creative ZEN V 2GB
+ATTR{idVendor}=="041e", ATTR{idProduct}=="4158", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Creative ZEN Mozaic
+ATTR{idVendor}=="041e", ATTR{idProduct}=="4161", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Creative ZEN X-Fi
+ATTR{idVendor}=="041e", ATTR{idProduct}=="4162", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Creative ZEN X-Fi 3
+ATTR{idVendor}=="041e", ATTR{idProduct}=="4169", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# ZiiLABS Zii EGG
+ATTR{idVendor}=="041e", ATTR{idProduct}=="6000", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung YP-900
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="0409", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung I550W Phone
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="04a4", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung Jet S8000
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="4f1f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung YH-920 (501d)
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="501d", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung YH-920 (5022)
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="5022", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung YH-925GS
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="5024", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung YH-820
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="502e", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung YH-925(-GS)
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="502f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung YH-J70J
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="5033", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung YP-Z5
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="503c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung YP-T7J
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="5047", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung YP-U2J (YP-U2JXB/XAA)
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="5054", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung YP-F2J
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="5057", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung YP-K5
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="505a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung YP-U3
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="507d", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung YP-T9
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="507f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung YP-K3
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="5081", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung YP-P2
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="5083", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung YP-T10
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="508a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung YP-S5
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="508b", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung YP-S3
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="5091", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung YP-U4
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="5093", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung YP-R1
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="510f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung YP-Q1
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="5115", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung YP-M1
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="5118", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung YP-P3
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="511a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung YP-Q2
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="511d", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung YP-U5
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="5121", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung YP-R0
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="5125", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung YP-Q3
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="5130", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung YP-Z3
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="5137", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung YH-999 Portable Media Center/SGH-A707/SGH-L760V/SGH-U900/Verizon Intensity/Fascinate
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="5a0f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung M7600 Beat/GT-S8300T/SGH-F490/S8300
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="6642", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung X830 Mobile Phone
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="6702", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung U600 Mobile Phone
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="6709", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung F250 Mobile Phone
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="6727", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung Juke (SCH-U470)
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="6734", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung GT-B2700
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="6752", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung SAMSUNG Trance
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="6763", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung GT-S8500
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="6819", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung Galaxy models (MTP+ADB)
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="685c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung Galaxy Y
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="685e", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung Galaxy models (MTP)
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung Galaxy models Kies mode
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="6877", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung Vibrant SGH-T959/Captivate/Media player mode
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="68a9", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung GT-B2710/Xcover 271
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="68af", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Samsung GT-S5230
+ATTR{idVendor}=="04e8", ATTR{idProduct}=="e20c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Microsoft/Intel Bandon Portable Media Center
+ATTR{idVendor}=="045e", ATTR{idProduct}=="00c9", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Microsoft Windows Phone
+ATTR{idVendor}=="045e", ATTR{idProduct}=="04ec", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Microsoft Windows MTP Simulator
+ATTR{idVendor}=="045e", ATTR{idProduct}=="0622", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Microsoft Zune HD
+ATTR{idVendor}=="045e", ATTR{idProduct}=="063e", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Microsoft Kin 1
+ATTR{idVendor}=="045e", ATTR{idProduct}=="0640", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Microsoft/Sharp/nVidia Kin TwoM
+ATTR{idVendor}=="045e", ATTR{idProduct}=="0641", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Microsoft Zune
+ATTR{idVendor}=="045e", ATTR{idProduct}=="0710", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# JVC Alneo XA-HD500
+ATTR{idVendor}=="04f1", ATTR{idProduct}=="6105", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Philips HDD6320/00 or HDD6330/17
+ATTR{idVendor}=="0471", ATTR{idProduct}=="014b", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Philips HDD14XX,HDD1620 or HDD1630/17
+ATTR{idVendor}=="0471", ATTR{idProduct}=="014c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Philips HDD085/00 or HDD082/17
+ATTR{idVendor}=="0471", ATTR{idProduct}=="014d", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Philips GoGear SA9200
+ATTR{idVendor}=="0471", ATTR{idProduct}=="014f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Philips SA1115/55
+ATTR{idVendor}=="0471", ATTR{idProduct}=="0164", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Philips GoGear Audio
+ATTR{idVendor}=="0471", ATTR{idProduct}=="0165", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Philips Shoqbox
+ATTR{idVendor}=="0471", ATTR{idProduct}=="0172", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Philips PSA610
+ATTR{idVendor}=="0471", ATTR{idProduct}=="0181", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Philips HDD6320
+ATTR{idVendor}=="0471", ATTR{idProduct}=="01eb", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Philips GoGear SA6014/SA6015/SA6024/SA6025/SA6044/SA6045
+ATTR{idVendor}=="0471", ATTR{idProduct}=="084e", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Philips GoGear SA5145
+ATTR{idVendor}=="0471", ATTR{idProduct}=="0857", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Philips GoGear SA6125/SA6145/SA6185
+ATTR{idVendor}=="0471", ATTR{idProduct}=="2002", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Philips GoGear SA3345
+ATTR{idVendor}=="0471", ATTR{idProduct}=="2004", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Philips SA5285
+ATTR{idVendor}=="0471", ATTR{idProduct}=="2022", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Philips GoGear ViBE SA1VBE04
+ATTR{idVendor}=="0471", ATTR{idProduct}=="2075", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Philips GoGear Muse
+ATTR{idVendor}=="0471", ATTR{idProduct}=="2077", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Philips GoGear ViBE SA1VBE04/08
+ATTR{idVendor}=="0471", ATTR{idProduct}=="207b", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Philips GoGear Aria
+ATTR{idVendor}=="0471", ATTR{idProduct}=="207c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Philips GoGear SA1VBE08KX/78
+ATTR{idVendor}=="0471", ATTR{idProduct}=="208e", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Philips GoGear VIBE SA2VBE[08|16]K/02
+ATTR{idVendor}=="0471", ATTR{idProduct}=="20b7", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Philips GoGear Ariaz
+ATTR{idVendor}=="0471", ATTR{idProduct}=="20b9", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Philips GoGear Vibe/02
+ATTR{idVendor}=="0471", ATTR{idProduct}=="20e5", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Philips PSA235
+ATTR{idVendor}=="0471", ATTR{idProduct}=="7e01", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Acer Iconia TAB A500 (ID1)
+ATTR{idVendor}=="0502", ATTR{idProduct}=="3325", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Acer Iconia TAB A500 (ID2)
+ATTR{idVendor}=="0502", ATTR{idProduct}=="3341", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Acer Iconia TAB A501
+ATTR{idVendor}=="0502", ATTR{idProduct}=="3344", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Acer Iconia TAB A100 (ID1)
+ATTR{idVendor}=="0502", ATTR{idProduct}=="3348", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Acer Iconia TAB A100 (ID2)
+ATTR{idVendor}=="0502", ATTR{idProduct}=="3349", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Acer Iconia TAB A700
+ATTR{idVendor}=="0502", ATTR{idProduct}=="3378", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Acer Iconia TAB A200 (ID1)
+ATTR{idVendor}=="0502", ATTR{idProduct}=="337c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Acer Iconia TAB A200 (ID2)
+ATTR{idVendor}=="0502", ATTR{idProduct}=="337d", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Acer Iconia TAB A510
+ATTR{idVendor}=="0502", ATTR{idProduct}=="338a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Acer E350 Liquid Gallant Duo
+ATTR{idVendor}=="0502", ATTR{idProduct}=="33c3", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SanDisk Sansa m230/m240
+ATTR{idVendor}=="0781", ATTR{idProduct}=="7400", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SanDisk Sansa m200-tcc (MTP mode)
+ATTR{idVendor}=="0781", ATTR{idProduct}=="7401", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SanDisk Sansa c150
+ATTR{idVendor}=="0781", ATTR{idProduct}=="7410", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SanDisk Sansa e200/e250/e260/e270/e280
+ATTR{idVendor}=="0781", ATTR{idProduct}=="7420", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SanDisk Sansa e260/e280 v2
+ATTR{idVendor}=="0781", ATTR{idProduct}=="7422", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SanDisk Sansa m240/m250
+ATTR{idVendor}=="0781", ATTR{idProduct}=="7430", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SanDisk Sansa Clip
+ATTR{idVendor}=="0781", ATTR{idProduct}=="7432", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SanDisk Sansa Clip v2
+ATTR{idVendor}=="0781", ATTR{idProduct}=="7434", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SanDisk Sansa c240/c250
+ATTR{idVendor}=="0781", ATTR{idProduct}=="7450", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SanDisk Sansa c250 v2
+ATTR{idVendor}=="0781", ATTR{idProduct}=="7452", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SanDisk Sansa Express
+ATTR{idVendor}=="0781", ATTR{idProduct}=="7460", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SanDisk Sansa Connect
+ATTR{idVendor}=="0781", ATTR{idProduct}=="7480", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SanDisk Sansa View
+ATTR{idVendor}=="0781", ATTR{idProduct}=="74b0", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SanDisk Sansa Fuze
+ATTR{idVendor}=="0781", ATTR{idProduct}=="74c0", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SanDisk Sansa Fuze v2
+ATTR{idVendor}=="0781", ATTR{idProduct}=="74c2", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SanDisk Sansa Clip+
+ATTR{idVendor}=="0781", ATTR{idProduct}=="74d0", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SanDisk Sansa Fuze+
+ATTR{idVendor}=="0781", ATTR{idProduct}=="74e0", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SanDisk Sansa Clip Zip
+ATTR{idVendor}=="0781", ATTR{idProduct}=="74e4", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# iRiver H300 Series MTP
+ATTR{idVendor}=="1006", ATTR{idProduct}=="3004", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# iRiver Portable Media Center
+ATTR{idVendor}=="1006", ATTR{idProduct}=="4002", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# iRiver Portable Media Center
+ATTR{idVendor}=="1006", ATTR{idProduct}=="4003", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# iRiver T7 Volcano
+ATTR{idVendor}=="1042", ATTR{idProduct}=="1143", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# iRiver iFP-880
+ATTR{idVendor}=="4102", ATTR{idProduct}=="1008", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# iRiver T10
+ATTR{idVendor}=="4102", ATTR{idProduct}=="1113", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# iRiver T20 FM
+ATTR{idVendor}=="4102", ATTR{idProduct}=="1114", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# iRiver T20
+ATTR{idVendor}=="4102", ATTR{idProduct}=="1115", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# iRiver U10
+ATTR{idVendor}=="4102", ATTR{idProduct}=="1116", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# iRiver T10a
+ATTR{idVendor}=="4102", ATTR{idProduct}=="1117", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# iRiver T20
+ATTR{idVendor}=="4102", ATTR{idProduct}=="1118", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# iRiver T30
+ATTR{idVendor}=="4102", ATTR{idProduct}=="1119", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# iRiver T10 2GB
+ATTR{idVendor}=="4102", ATTR{idProduct}=="1120", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# iRiver N12
+ATTR{idVendor}=="4102", ATTR{idProduct}=="1122", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# iRiver Clix2
+ATTR{idVendor}=="4102", ATTR{idProduct}=="1126", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# iRiver Clix
+ATTR{idVendor}=="4102", ATTR{idProduct}=="112a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# iRiver X20
+ATTR{idVendor}=="4102", ATTR{idProduct}=="1132", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# iRiver T60
+ATTR{idVendor}=="4102", ATTR{idProduct}=="1134", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# iRiver E100
+ATTR{idVendor}=="4102", ATTR{idProduct}=="1141", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# iRiver E100 v2/Lplayer
+ATTR{idVendor}=="4102", ATTR{idProduct}=="1142", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# iRiver Spinn
+ATTR{idVendor}=="4102", ATTR{idProduct}=="1147", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# iRiver E50
+ATTR{idVendor}=="4102", ATTR{idProduct}=="1151", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# iRiver T5
+ATTR{idVendor}=="4102", ATTR{idProduct}=="1153", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# iRiver E30
+ATTR{idVendor}=="4102", ATTR{idProduct}=="1167", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# iRiver H10 20GB
+ATTR{idVendor}=="4102", ATTR{idProduct}=="2101", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# iRiver H10 5GB
+ATTR{idVendor}=="4102", ATTR{idProduct}=="2102", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# iRiver H10 5.6GB
+ATTR{idVendor}=="4102", ATTR{idProduct}=="2105", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Dell, Inc DJ Itty
+ATTR{idVendor}=="413c", ATTR{idProduct}=="4500", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Dell, Inc Dell Streak 7
+ATTR{idVendor}=="413c", ATTR{idProduct}=="b10b", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Toshiba Gigabeat MEGF-40
+ATTR{idVendor}=="0930", ATTR{idProduct}=="0009", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Toshiba Gigabeat
+ATTR{idVendor}=="0930", ATTR{idProduct}=="000c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Toshiba Gigabeat P20
+ATTR{idVendor}=="0930", ATTR{idProduct}=="000f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Toshiba Gigabeat S
+ATTR{idVendor}=="0930", ATTR{idProduct}=="0010", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Toshiba Gigabeat P10
+ATTR{idVendor}=="0930", ATTR{idProduct}=="0011", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Toshiba Gigabeat V30
+ATTR{idVendor}=="0930", ATTR{idProduct}=="0014", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Toshiba Gigabeat U
+ATTR{idVendor}=="0930", ATTR{idProduct}=="0016", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Toshiba Gigabeat MEU202
+ATTR{idVendor}=="0930", ATTR{idProduct}=="0018", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Toshiba Gigabeat T
+ATTR{idVendor}=="0930", ATTR{idProduct}=="0019", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Toshiba Gigabeat MEU201
+ATTR{idVendor}=="0930", ATTR{idProduct}=="001a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Toshiba Gigabeat MET401
+ATTR{idVendor}=="0930", ATTR{idProduct}=="001d", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Toshiba Excite AT300
+ATTR{idVendor}=="0930", ATTR{idProduct}=="0963", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Toshiba Thrive AT100/AT105
+ATTR{idVendor}=="0930", ATTR{idProduct}=="7100", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Archos Gmini XS100
+ATTR{idVendor}=="0e79", ATTR{idProduct}=="1207", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Archos XS202 (MTP mode)
+ATTR{idVendor}=="0e79", ATTR{idProduct}=="1208", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Archos 104 (MTP mode)
+ATTR{idVendor}=="0e79", ATTR{idProduct}=="120a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Archos 204 (MTP mode)
+ATTR{idVendor}=="0e79", ATTR{idProduct}=="120c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Archos 404 (MTP mode)
+ATTR{idVendor}=="0e79", ATTR{idProduct}=="1301", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Archos 404CAM (MTP mode)
+ATTR{idVendor}=="0e79", ATTR{idProduct}=="1303", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Archos 504 (MTP mode)
+ATTR{idVendor}=="0e79", ATTR{idProduct}=="1307", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Archos 604 (MTP mode)
+ATTR{idVendor}=="0e79", ATTR{idProduct}=="1309", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Archos 604WIFI (MTP mode)
+ATTR{idVendor}=="0e79", ATTR{idProduct}=="130b", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Archos 704 mobile dvr
+ATTR{idVendor}=="0e79", ATTR{idProduct}=="130d", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Archos 704TV (MTP mode)
+ATTR{idVendor}=="0e79", ATTR{idProduct}=="130f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Archos 405 (MTP mode)
+ATTR{idVendor}=="0e79", ATTR{idProduct}=="1311", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Archos 605 (MTP mode)
+ATTR{idVendor}=="0e79", ATTR{idProduct}=="1313", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Archos 605F (MTP mode)
+ATTR{idVendor}=="0e79", ATTR{idProduct}=="1315", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Archos 705 (MTP mode)
+ATTR{idVendor}=="0e79", ATTR{idProduct}=="1319", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Archos TV+ (MTP mode)
+ATTR{idVendor}=="0e79", ATTR{idProduct}=="131b", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Archos 105 (MTP mode)
+ATTR{idVendor}=="0e79", ATTR{idProduct}=="131d", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Archos 405HDD (MTP mode)
+ATTR{idVendor}=="0e79", ATTR{idProduct}=="1321", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Archos 5 (MTP mode)
+ATTR{idVendor}=="0e79", ATTR{idProduct}=="1331", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Archos 5 (MTP mode)
+ATTR{idVendor}=="0e79", ATTR{idProduct}=="1333", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Archos 7 (MTP mode)
+ATTR{idVendor}=="0e79", ATTR{idProduct}=="1335", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Archos SPOD (MTP mode)
+ATTR{idVendor}=="0e79", ATTR{idProduct}=="1341", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Archos 5S IT (MTP mode)
+ATTR{idVendor}=="0e79", ATTR{idProduct}=="1351", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Archos 5H IT (MTP mode)
+ATTR{idVendor}=="0e79", ATTR{idProduct}=="1357", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Archos Arnova Childpad
+ATTR{idVendor}=="0e79", ATTR{idProduct}=="1458", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Archos 8o G9 (MTP mode)
+ATTR{idVendor}=="0e79", ATTR{idProduct}=="1508", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Archos 8o G9 Turbo (MTP mode)
+ATTR{idVendor}=="0e79", ATTR{idProduct}=="1509", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Archos 80G9
+ATTR{idVendor}=="0e79", ATTR{idProduct}=="1518", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Archos 101 G9
+ATTR{idVendor}=="0e79", ATTR{idProduct}=="1528", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Archos 101 G9 (v2)
+ATTR{idVendor}=="0e79", ATTR{idProduct}=="1529", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Archos 101 G9 Turbo 250 HD
+ATTR{idVendor}=="0e79", ATTR{idProduct}=="1538", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Archos 101 G9 Turbo
+ATTR{idVendor}=="0e79", ATTR{idProduct}=="1539", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Archos 70it2 (mode 1)
+ATTR{idVendor}=="0e79", ATTR{idProduct}=="1568", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Archos 70it2 (mode 2)
+ATTR{idVendor}=="0e79", ATTR{idProduct}=="1569", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Dunlop MP3 player 1GB / EGOMAN MD223AFD
+ATTR{idVendor}=="10d6", ATTR{idProduct}=="2200", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Memorex or iRiver MMP 8585/8586 or iRiver E200
+ATTR{idVendor}=="10d6", ATTR{idProduct}=="2300", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Sirius Stiletto
+ATTR{idVendor}=="18f6", ATTR{idProduct}=="0102", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Sirius Stiletto 2
+ATTR{idVendor}=="18f6", ATTR{idProduct}=="0110", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Canon Ixus Digital 700 (PTP/MTP mode)
+ATTR{idVendor}=="04a9", ATTR{idProduct}=="30f2", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Canon PowerShot A640 (PTP/MTP mode)
+ATTR{idVendor}=="04a9", ATTR{idProduct}=="3139", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Canon PowerShot SX20IS (PTP/MTP mode)
+ATTR{idVendor}=="04a9", ATTR{idProduct}=="31e4", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia N81 Mobile Phone
+ATTR{idVendor}=="0421", ATTR{idProduct}=="000a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia 6120c Classic Mobile Phone
+ATTR{idVendor}=="0421", ATTR{idProduct}=="002e", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia N96 Mobile Phone
+ATTR{idVendor}=="0421", ATTR{idProduct}=="0039", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia 6500c Classic Mobile Phone
+ATTR{idVendor}=="0421", ATTR{idProduct}=="003c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia 3110c Mobile Phone
+ATTR{idVendor}=="0421", ATTR{idProduct}=="005f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia 3109c Mobile Phone
+ATTR{idVendor}=="0421", ATTR{idProduct}=="0065", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia 5310 XpressMusic
+ATTR{idVendor}=="0421", ATTR{idProduct}=="006c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia N95 Mobile Phone 8GB
+ATTR{idVendor}=="0421", ATTR{idProduct}=="006e", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia N82 Mobile Phone
+ATTR{idVendor}=="0421", ATTR{idProduct}=="0074", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia N78 Mobile Phone
+ATTR{idVendor}=="0421", ATTR{idProduct}=="0079", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia 6220 Classic
+ATTR{idVendor}=="0421", ATTR{idProduct}=="008d", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia N85 Mobile Phone
+ATTR{idVendor}=="0421", ATTR{idProduct}=="0092", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia 6210 Navigator
+ATTR{idVendor}=="0421", ATTR{idProduct}=="0098", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia E71
+ATTR{idVendor}=="0421", ATTR{idProduct}=="00e4", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia E66
+ATTR{idVendor}=="0421", ATTR{idProduct}=="00e5", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia 5320 XpressMusic
+ATTR{idVendor}=="0421", ATTR{idProduct}=="00ea", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia 5800 XpressMusic
+ATTR{idVendor}=="0421", ATTR{idProduct}=="0154", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia 5800 XpressMusic v2
+ATTR{idVendor}=="0421", ATTR{idProduct}=="0155", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia 5800 XpressMusic v3
+ATTR{idVendor}=="0421", ATTR{idProduct}=="0159", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia E63
+ATTR{idVendor}=="0421", ATTR{idProduct}=="0179", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia N79
+ATTR{idVendor}=="0421", ATTR{idProduct}=="0186", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia E71x
+ATTR{idVendor}=="0421", ATTR{idProduct}=="01a1", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia E52
+ATTR{idVendor}=="0421", ATTR{idProduct}=="01cf", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia 3710
+ATTR{idVendor}=="0421", ATTR{idProduct}=="01ee", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia N97-1
+ATTR{idVendor}=="0421", ATTR{idProduct}=="01f4", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia N97
+ATTR{idVendor}=="0421", ATTR{idProduct}=="01f5", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia 5130 XpressMusic
+ATTR{idVendor}=="0421", ATTR{idProduct}=="0209", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia E72
+ATTR{idVendor}=="0421", ATTR{idProduct}=="0221", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia 5530
+ATTR{idVendor}=="0421", ATTR{idProduct}=="0229", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia N97 mini
+ATTR{idVendor}=="0421", ATTR{idProduct}=="026b", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia X6
+ATTR{idVendor}=="0421", ATTR{idProduct}=="0274", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia 6600i
+ATTR{idVendor}=="0421", ATTR{idProduct}=="0297", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia 2710
+ATTR{idVendor}=="0421", ATTR{idProduct}=="02c1", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia 5230
+ATTR{idVendor}=="0421", ATTR{idProduct}=="02e2", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia N8
+ATTR{idVendor}=="0421", ATTR{idProduct}=="02fe", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia N8 (Ovi mode)
+ATTR{idVendor}=="0421", ATTR{idProduct}=="0302", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia E7
+ATTR{idVendor}=="0421", ATTR{idProduct}=="0334", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia E7 (Ovi mode)
+ATTR{idVendor}=="0421", ATTR{idProduct}=="0335", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia C7
+ATTR{idVendor}=="0421", ATTR{idProduct}=="03c1", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia C7 (ID2)
+ATTR{idVendor}=="0421", ATTR{idProduct}=="03cd", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia N950
+ATTR{idVendor}=="0421", ATTR{idProduct}=="03d2", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia 3250 Mobile Phone
+ATTR{idVendor}=="0421", ATTR{idProduct}=="0462", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia N93 Mobile Phone
+ATTR{idVendor}=="0421", ATTR{idProduct}=="0478", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia 5500 Sport Mobile Phone
+ATTR{idVendor}=="0421", ATTR{idProduct}=="047e", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia N91 Mobile Phone
+ATTR{idVendor}=="0421", ATTR{idProduct}=="0485", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia 5700 XpressMusic Mobile Phone
+ATTR{idVendor}=="0421", ATTR{idProduct}=="04b4", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia 5300 Mobile Phone
+ATTR{idVendor}=="0421", ATTR{idProduct}=="04ba", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia 5200 Mobile Phone
+ATTR{idVendor}=="0421", ATTR{idProduct}=="04be", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia N73 Mobile Phone
+ATTR{idVendor}=="0421", ATTR{idProduct}=="04d1", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia N75 Mobile Phone
+ATTR{idVendor}=="0421", ATTR{idProduct}=="04e1", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia N93i Mobile Phone
+ATTR{idVendor}=="0421", ATTR{idProduct}=="04e5", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia N95 Mobile Phone
+ATTR{idVendor}=="0421", ATTR{idProduct}=="04ef", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia N80 Internet Edition (Media Player)
+ATTR{idVendor}=="0421", ATTR{idProduct}=="04f1", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia N9
+ATTR{idVendor}=="0421", ATTR{idProduct}=="051a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia 5530 Xpressmusic
+ATTR{idVendor}=="05c6", ATTR{idProduct}=="0229", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nokia/Verizon 6205 Balboa/Verizon Music Phone
+ATTR{idVendor}=="05c6", ATTR{idProduct}=="3196", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Logik LOG DAX MP3 and DAB Player
+ATTR{idVendor}=="13d1", ATTR{idProduct}=="7002", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Technika MP-709
+ATTR{idVendor}=="13d1", ATTR{idProduct}=="7017", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Thomson EM28 Series
+ATTR{idVendor}=="069b", ATTR{idProduct}=="0774", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Thomson / RCA Opal / Lyra MC4002
+ATTR{idVendor}=="069b", ATTR{idProduct}=="0777", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Thomson Lyra MC5104B (M51 Series)
+ATTR{idVendor}=="069b", ATTR{idProduct}=="077c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Thomson RCA H106
+ATTR{idVendor}=="069b", ATTR{idProduct}=="301a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Thomson scenium E308
+ATTR{idVendor}=="069b", ATTR{idProduct}=="3028", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Thomson / RCA Lyra HC308A
+ATTR{idVendor}=="069b", ATTR{idProduct}=="3035", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# FOMA F903iX HIGH-SPEED
+ATTR{idVendor}=="04c5", ATTR{idProduct}=="1140", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# NormSoft, Inc. Pocket Tunes
+ATTR{idVendor}=="1703", ATTR{idProduct}=="0001", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# NormSoft, Inc. Pocket Tunes 4
+ATTR{idVendor}=="1703", ATTR{idProduct}=="0002", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# TrekStor Vibez 8/12GB
+ATTR{idVendor}=="066f", ATTR{idProduct}=="842a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Medion MD8333
+ATTR{idVendor}=="066f", ATTR{idProduct}=="8550", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Medion MD8333
+ATTR{idVendor}=="066f", ATTR{idProduct}=="8588", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Medion MD99000 (P9514)/Olivetti Olipad 110
+ATTR{idVendor}=="0408", ATTR{idProduct}=="b009", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Medion Lifetab P9514
+ATTR{idVendor}=="0408", ATTR{idProduct}=="b00a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Maxfield G-Flash NG 1GB
+ATTR{idVendor}=="066f", ATTR{idProduct}=="846c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SigmaTel Inc. MTPMSCN Audio Player
+ATTR{idVendor}=="066f", ATTR{idProduct}=="a010", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# TrekStor i.Beat Sweez FM
+ATTR{idVendor}=="0402", ATTR{idProduct}=="0611", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# TrekStor i.Beat Organix 2.0
+ATTR{idVendor}=="1e68", ATTR{idProduct}=="0002", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Disney MixMax
+ATTR{idVendor}=="0aa6", ATTR{idProduct}=="6021", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Tevion MD 81488
+ATTR{idVendor}=="0aa6", ATTR{idProduct}=="3011", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# MyMusix PD-6070
+ATTR{idVendor}=="0aa6", ATTR{idProduct}=="9601", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Cowon iAudio U3 (MTP mode)
+ATTR{idVendor}=="0e21", ATTR{idProduct}=="0701", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Cowon iAudio 6 (MTP mode)
+ATTR{idVendor}=="0e21", ATTR{idProduct}=="0711", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Cowon iAudio 7 (MTP mode)
+ATTR{idVendor}=="0e21", ATTR{idProduct}=="0751", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Cowon iAudio U5 (MTP mode)
+ATTR{idVendor}=="0e21", ATTR{idProduct}=="0761", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Cowon iAudio D2 (MTP mode)
+ATTR{idVendor}=="0e21", ATTR{idProduct}=="0801", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Cowon iAudio D2+ FW 2.x (MTP mode)
+ATTR{idVendor}=="0e21", ATTR{idProduct}=="0861", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Cowon iAudio D2+ DAB FW 4.x (MTP mode)
+ATTR{idVendor}=="0e21", ATTR{idProduct}=="0871", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Cowon iAudio D2+ FW 3.x (MTP mode)
+ATTR{idVendor}=="0e21", ATTR{idProduct}=="0881", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Cowon iAudio D2+ DMB FW 1.x (MTP mode)
+ATTR{idVendor}=="0e21", ATTR{idProduct}=="0891", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Cowon iAudio S9 (MTP mode)
+ATTR{idVendor}=="0e21", ATTR{idProduct}=="0901", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Cowon iAudio 9 (MTP mode)
+ATTR{idVendor}=="0e21", ATTR{idProduct}=="0911", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Cowon iAudio J3 (MTP mode)
+ATTR{idVendor}=="0e21", ATTR{idProduct}=="0921", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Cowon iAudio X7 (MTP mode)
+ATTR{idVendor}=="0e21", ATTR{idProduct}=="0931", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Cowon iAudio C2 (MTP mode)
+ATTR{idVendor}=="0e21", ATTR{idProduct}=="0941", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Cowon iAudio 10 (MTP mode)
+ATTR{idVendor}=="0e21", ATTR{idProduct}=="0952", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Insignia NS-DV45
+ATTR{idVendor}=="19ff", ATTR{idProduct}=="0303", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Insignia Sport Player
+ATTR{idVendor}=="19ff", ATTR{idProduct}=="0307", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Insignia Pilot 4GB
+ATTR{idVendor}=="19ff", ATTR{idProduct}=="0309", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# LG Electronics Inc. T54
+ATTR{idVendor}=="043e", ATTR{idProduct}=="7040", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# LG Electronics Inc. UP3
+ATTR{idVendor}=="043e", ATTR{idProduct}=="70b1", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# LG Electronics Inc. VX8550 V CAST Mobile Phone
+ATTR{idVendor}=="1004", ATTR{idProduct}=="6010", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# LG Electronics Inc. KC910 Renoir Mobile Phone
+ATTR{idVendor}=="1004", ATTR{idProduct}=="608f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# LG Electronics Inc. GR-500 Music Player
+ATTR{idVendor}=="1004", ATTR{idProduct}=="611b", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# LG Electronics Inc. KM900
+ATTR{idVendor}=="1004", ATTR{idProduct}=="6132", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# LG Electronics Inc. LG8575
+ATTR{idVendor}=="1004", ATTR{idProduct}=="619a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# LG Electronics Inc. V909 G-Slate
+ATTR{idVendor}=="1004", ATTR{idProduct}=="61f9", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# LG Electronics Inc. LG-E617G/P700
+ATTR{idVendor}=="1004", ATTR{idProduct}=="631c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Sony Walkman NWZ-A815/NWZ-A818
+ATTR{idVendor}=="054c", ATTR{idProduct}=="0325", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Sony Walkman NWZ-S516
+ATTR{idVendor}=="054c", ATTR{idProduct}=="0326", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Sony Walkman NWZ-S615F/NWZ-S616F/NWZ-S618F
+ATTR{idVendor}=="054c", ATTR{idProduct}=="0327", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Sony Walkman NWZ-S716F
+ATTR{idVendor}=="054c", ATTR{idProduct}=="035a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Sony Walkman NWZ-A826/NWZ-A828/NWZ-A829
+ATTR{idVendor}=="054c", ATTR{idProduct}=="035b", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Sony Walkman NWZ-A726/NWZ-A728/NWZ-A768
+ATTR{idVendor}=="054c", ATTR{idProduct}=="035c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Sony Walkman NWZ-B135
+ATTR{idVendor}=="054c", ATTR{idProduct}=="036e", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Sony Walkman NWZ-E436F
+ATTR{idVendor}=="054c", ATTR{idProduct}=="0385", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Sony Walkman NWZ-W202
+ATTR{idVendor}=="054c", ATTR{idProduct}=="0388", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Sony Walkman NWZ-S739F
+ATTR{idVendor}=="054c", ATTR{idProduct}=="038c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Sony Walkman NWZ-S638F
+ATTR{idVendor}=="054c", ATTR{idProduct}=="038e", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Sony Walkman NWZ-X1050B/NWZ-X1060B
+ATTR{idVendor}=="054c", ATTR{idProduct}=="0397", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Sony Walkman NWZ-X1051/NWZ-X1061
+ATTR{idVendor}=="054c", ATTR{idProduct}=="0398", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Sony Walkman NWZ-B142F
+ATTR{idVendor}=="054c", ATTR{idProduct}=="03d8", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Sony Walkman NWZ-E344
+ATTR{idVendor}=="054c", ATTR{idProduct}=="03fc", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Sony Walkman NWZ-E445
+ATTR{idVendor}=="054c", ATTR{idProduct}=="03fd", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Sony Walkman NWZ-S545
+ATTR{idVendor}=="054c", ATTR{idProduct}=="03fe", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Sony Walkman NWZ-A845
+ATTR{idVendor}=="054c", ATTR{idProduct}=="0404", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Sony Walkman NWZ-W252B
+ATTR{idVendor}=="054c", ATTR{idProduct}=="04bb", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Sony Walkman NWZ-B153F
+ATTR{idVendor}=="054c", ATTR{idProduct}=="04be", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Sony Walkman NWZ-E354
+ATTR{idVendor}=="054c", ATTR{idProduct}=="04cb", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Sony Walkman NWZ-S754
+ATTR{idVendor}=="054c", ATTR{idProduct}=="04cc", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Sony NWZ-B163F
+ATTR{idVendor}=="054c", ATTR{idProduct}=="059a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Sony Walkman NWZ-E464
+ATTR{idVendor}=="054c", ATTR{idProduct}=="05a6", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Sony NWZ-S765
+ATTR{idVendor}=="054c", ATTR{idProduct}=="05a8", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Sony Sony Tablet S
+ATTR{idVendor}=="054c", ATTR{idProduct}=="05b3", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Sony Sony Tablet S1
+ATTR{idVendor}=="054c", ATTR{idProduct}=="05b4", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Sony DCR-SR75
+ATTR{idVendor}=="054c", ATTR{idProduct}=="1294", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SonyEricsson K850i
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="0075", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SonyEricsson W910
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="0076", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SonyEricsson W890i
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="00b3", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SonyEricsson W760i
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="00c6", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SonyEricsson C902
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="00d4", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SonyEricsson C702
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="00d9", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SonyEricsson W980
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="00da", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SonyEricsson C905
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="00ef", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SonyEricsson W595
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="00f3", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SonyEricsson W902
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="00f5", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SonyEricsson T700
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="00fb", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SonyEricsson W705/W715
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="0105", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SonyEricsson W995
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="0112", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SonyEricsson U5
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="0133", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SonyEricsson U8i
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="013a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SonyEricsson j10i2 (Elm)
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="0144", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SonyEricsson j108i (Cedar)
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="014e", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SonyEricsson W302
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="10c8", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SonyEricsson j10i (Elm)
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="d144", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SonyEricsson K550i
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="e000", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SonyEricsson LT15i (Xperia arc S)
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="014f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SonyEricsson MT11i Xperia Neo
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="0156", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SonyEricsson MK16i Xperia
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="015a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SonyEricsson ST18a Xperia Ray
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="0161", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SonyEricsson SK17i Xperia Mini Pro
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="0166", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SonyEricsson ST15i Xperia Mini
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="0167", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SonyEricsson ST17i Xperia Active
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="0168", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SONY LT26i Xperia S
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="0169", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SONY WT19i Live Walkman
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="016d", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SONY ST21i Xperia Tipo
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="0170", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SONY ST15i Xperia U
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="0171", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SONY LT22i Xperia P
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="0172", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SONY LT26w Xperia Acro S
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="0176", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SonyEricsson ST17i Xperia Active (MTP+UMS mode)
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="4168", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SONY LT26i Xperia S (MTP+UMS mode)
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="4169", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SONY ST21i Xperia Tipo (MTP+UMS mode)
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="4170", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SONY ST25i Xperia U (MTP+UMS mode)
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="4171", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SONY LT22i Xperia P (MTP+UMS mode)
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="4172", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SONY LT26w Xperia Acro S (MTP+UMS mode)
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="4176", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SonyEricsson LT15i Xperia Arc (MTP+ADB mode)
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="514f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SonyEricsson MT11i Xperia Neo (MTP+ADB mode)
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="5156", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SonyEricsson ST17i Xperia Active (MTP+ADB mode)
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="5168", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SONY LT26i Xperia S (MTP+ADB mode)
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="5169", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SonyEricsson MK16i Xperia (MTP+ADB mode)
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="515a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SonyEricsson ST18i Xperia Ray (MTP+ADB mode)
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="5161", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SonyEricsson SK17i Xperia Mini Pro (MTP+ADB mode)
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="5166", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SonyEricsson ST15i Xperia Mini (MTP+ADB mode)
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="5167", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SonyEricsson SK17i Xperia Mini Pro (MTP+ADB mode)
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="516d", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SONY ST21i Xperia Tipo (MTP+ADB mode)
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="5170", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SONY ST25i Xperia U (MTP+ADB mode)
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="5171", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SONY LT22i Xperia P (MTP+ADB mode)
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="5172", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SONY LT26w Xperia Acro S (MTP+ADB mode)
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="5176", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SONY MT27i Xperia Sola (MTP+UMS+? mode)
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="a173", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# SONY ST27i Xperia Go (MTP+UMS+? mode)
+ATTR{idVendor}=="0fce", ATTR{idProduct}=="a17e", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Motorola V3m/V750 verizon
+ATTR{idVendor}=="22b8", ATTR{idProduct}=="2a65", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Motorola Xoom 2 Media Edition (ID2)
+ATTR{idVendor}=="22b8", ATTR{idProduct}=="41cf", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Motorola Droid X/MB525 (Defy)
+ATTR{idVendor}=="22b8", ATTR{idProduct}=="41d6", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Motorola Milestone / Verizon Droid
+ATTR{idVendor}=="22b8", ATTR{idProduct}=="41dc", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Motorola DROID2
+ATTR{idVendor}=="22b8", ATTR{idProduct}=="42a7", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Motorola Xoom 2 Media Edition
+ATTR{idVendor}=="22b8", ATTR{idProduct}=="4311", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Motorola XT912/XT928
+ATTR{idVendor}=="22b8", ATTR{idProduct}=="4362", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Motorola DROID4
+ATTR{idVendor}=="22b8", ATTR{idProduct}=="437f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Motorola IdeaPad K1
+ATTR{idVendor}=="22b8", ATTR{idProduct}=="4811", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Motorola A1200
+ATTR{idVendor}=="22b8", ATTR{idProduct}=="60ca", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Motorola MTP Test Command Interface
+ATTR{idVendor}=="22b8", ATTR{idProduct}=="6413", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Motorola RAZR2 V8/U9/Z6
+ATTR{idVendor}=="22b8", ATTR{idProduct}=="6415", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Motorola Xoom (Factory test)
+ATTR{idVendor}=="22b8", ATTR{idProduct}=="70a3", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Motorola Xoom (MTP)
+ATTR{idVendor}=="22b8", ATTR{idProduct}=="70a8", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Motorola Xoom (MTP+ADB)
+ATTR{idVendor}=="22b8", ATTR{idProduct}=="70a9", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Motorola Milestone X2
+ATTR{idVendor}=="22b8", ATTR{idProduct}=="70ca", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Google Inc (for Sony) S1
+ATTR{idVendor}=="18d1", ATTR{idProduct}=="05b3", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Google Inc (for Barnes & Noble) Nook Color
+ATTR{idVendor}=="18d1", ATTR{idProduct}=="2d02", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Google Inc (for Asus) TF101 Transformer
+ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e0f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Google Inc (for Samsung) Nexus S
+ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e21", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Google Inc (for Asus) Nexus 7 (MTP)
+ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e41", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Google Inc (for Asus) Nexus 7 (MTP+ADB)
+ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e42", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Google Inc (for Motorola) Xoom (MZ604)
+ATTR{idVendor}=="18d1", ATTR{idProduct}=="70a8", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Google Inc (for Toshiba) Thrive 7/AT105
+ATTR{idVendor}=="18d1", ATTR{idProduct}=="7102", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Google Inc (for Lenovo) Ideapad K1
+ATTR{idVendor}=="18d1", ATTR{idProduct}=="740a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Google Inc (for Medion) MD99000 (P9514)
+ATTR{idVendor}=="18d1", ATTR{idProduct}=="b00a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Google Inc (for LG Electronics) P990/Optimus (Cyanogen)
+ATTR{idVendor}=="18d1", ATTR{idProduct}=="d109", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Google Inc (for LG Electronics) P990/Optimus
+ATTR{idVendor}=="18d1", ATTR{idProduct}=="d10a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Kenwood Media Keg HD10GB7 Sport Player
+ATTR{idVendor}=="0b28", ATTR{idProduct}=="100c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Micro-Star International P610/Model MS-5557
+ATTR{idVendor}=="0db0", ATTR{idProduct}=="5572", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# FOMA D905i
+ATTR{idVendor}=="06d3", ATTR{idProduct}=="21ba", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Haier Ibiza Rhapsody
+ATTR{idVendor}=="1302", ATTR{idProduct}=="1016", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Haier Ibiza Rhapsody
+ATTR{idVendor}=="1302", ATTR{idProduct}=="1017", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Panasonic P905i
+ATTR{idVendor}=="04da", ATTR{idProduct}=="2145", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Panasonic P906i
+ATTR{idVendor}=="04da", ATTR{idProduct}=="2158", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Polaroid Freescape/MPU-433158
+ATTR{idVendor}=="0546", ATTR{idProduct}=="2035", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Pioneer XMP3
+ATTR{idVendor}=="08e4", ATTR{idProduct}=="0148", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Slacker Inc. Slacker Portable Media Player
+ATTR{idVendor}=="1bdc", ATTR{idProduct}=="fabf", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Conceptronic CMTD2
+ATTR{idVendor}=="1e53", ATTR{idProduct}=="0005", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# O2 Sistemas ZoltarTV
+ATTR{idVendor}=="1e53", ATTR{idProduct}=="0006", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Wyplay Wyplayer
+ATTR{idVendor}=="1e53", ATTR{idProduct}=="0007", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Perception Digital, Ltd Gigaware GX400
+ATTR{idVendor}=="0aa6", ATTR{idProduct}=="9702", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# RIM BlackBerry Storm/9650
+ATTR{idVendor}=="0fca", ATTR{idProduct}=="8007", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Nextar MA715A-8R
+ATTR{idVendor}=="0402", ATTR{idProduct}=="5668", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Coby COBY MP705
+ATTR{idVendor}=="1e74", ATTR{idProduct}=="6512", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Apple iPhone
+ATTR{idVendor}=="05ac", ATTR{idProduct}=="1290", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Apple iPod Touch 1st Gen
+ATTR{idVendor}=="05ac", ATTR{idProduct}=="1291", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Apple iPhone 3G
+ATTR{idVendor}=="05ac", ATTR{idProduct}=="1292", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Apple iPod Touch 2nd Gen
+ATTR{idVendor}=="05ac", ATTR{idProduct}=="1293", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Apple iPhone 3GS
+ATTR{idVendor}=="05ac", ATTR{idProduct}=="1294", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Apple 0x1296
+ATTR{idVendor}=="05ac", ATTR{idProduct}=="1296", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Apple 0x1297
+ATTR{idVendor}=="05ac", ATTR{idProduct}=="1297", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Apple 0x1298
+ATTR{idVendor}=="05ac", ATTR{idProduct}=="1298", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Apple iPod Touch 3rd Gen
+ATTR{idVendor}=="05ac", ATTR{idProduct}=="1299", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Apple iPad
+ATTR{idVendor}=="05ac", ATTR{idProduct}=="129a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Curitel Communications, Inc. Verizon Wireless Device
+ATTR{idVendor}=="106c", ATTR{idProduct}=="3215", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Pantech Crux
+ATTR{idVendor}=="106c", ATTR{idProduct}=="f003", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Asus TF300 Transformer
+ATTR{idVendor}=="0b05", ATTR{idProduct}=="4c80", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Asus TF300 Transformer (USB debug mode)
+ATTR{idVendor}=="0b05", ATTR{idProduct}=="4c81", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Asus TF700 Transformer
+ATTR{idVendor}=="0b05", ATTR{idProduct}=="4c90", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Asus TF201 Transformer Prime (keyboard dock)
+ATTR{idVendor}=="0b05", ATTR{idProduct}=="4d00", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Asus TF201 Transformer Prime (tablet only)
+ATTR{idVendor}=="0b05", ATTR{idProduct}=="4d01", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Asus TFXXX Transformer Prime (unknown version)
+ATTR{idVendor}=="0b05", ATTR{idProduct}=="4d04", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Asus TF101 Eeepad Slider
+ATTR{idVendor}=="0b05", ATTR{idProduct}=="4e01", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Asus TF101 Eeepad Transformer
+ATTR{idVendor}=="0b05", ATTR{idProduct}=="4e0f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Asus TF101 Eeepad Transformer (debug mode)
+ATTR{idVendor}=="0b05", ATTR{idProduct}=="4e1f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Lenovo K1
+ATTR{idVendor}=="17ef", ATTR{idProduct}=="740a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Lenovo ThinkPad Tablet
+ATTR{idVendor}=="17ef", ATTR{idProduct}=="741c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Lenovo P700
+ATTR{idVendor}=="17ef", ATTR{idProduct}=="7497", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Lenovo Lifetab S9512
+ATTR{idVendor}=="17ef", ATTR{idProduct}=="74cc", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Huawei Honor U8860
+ATTR{idVendor}=="12d1", ATTR{idProduct}=="1051", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Huawei Mediapad (mode 0)
+ATTR{idVendor}=="12d1", ATTR{idProduct}=="360f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Huawei Mediapad (mode 1)
+ATTR{idVendor}=="12d1", ATTR{idProduct}=="361f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# ZTE V55 ID 1
+ATTR{idVendor}=="19d2", ATTR{idProduct}=="0244", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# ZTE V55 ID 2
+ATTR{idVendor}=="19d2", ATTR{idProduct}=="0245", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# HTC Zopo ZP100 (ID1)
+ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0c02", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# HTC EVO 4G LTE
+ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0c93", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# HTC EVO 4G LTE (second ID)
+ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0ca8", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Hewlett-Packard HP Touchpad
+ATTR{idVendor}=="0bb4", ATTR{idProduct}=="685c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Hewlett-Packard HP Touchpad (debug mode)
+ATTR{idVendor}=="0bb4", ATTR{idProduct}=="6860", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# HTC Zopo ZP100 (ID2)
+ATTR{idVendor}=="0bb4", ATTR{idProduct}=="2008", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# NEC FOMA N01A
+ATTR{idVendor}=="0409", ATTR{idProduct}=="0242", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# nVidia CM9-Adam
+ATTR{idVendor}=="0955", ATTR{idProduct}=="70a9", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Vizio VTAB1008
+ATTR{idVendor}=="0489", ATTR{idProduct}=="e040", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Various Viewpia DR/bq Kepler
+ATTR{idVendor}=="2207", ATTR{idProduct}=="0001", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+# Isabella Her Prototype
+ATTR{idVendor}=="0b20", ATTR{idProduct}=="ddee", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+
+# Autoprobe vendor-specific, communication and PTP devices
+ENV{ID_MTP_DEVICE}!="1", ENV{MTP_NO_PROBE}!="1", ENV{COLOR_MEASUREMENT_DEVICE}!="1", ENV{libsane_matched}!="yes", ATTR{bDeviceClass}=="00|02|06|ef|ff", PROGRAM="mtp-probe /sys$env{DEVPATH} $attr{busnum} $attr{devnum}", RESULT=="1", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
+
+LABEL="libmtp_rules_end"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libmtp/libmtp-1.1.5/glibc-2.20.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libmtp/libmtp-1.1.5/glibc-2.20.patch
new file mode 100644
index 0000000..38b45c2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libmtp/libmtp-1.1.5/glibc-2.20.patch
@@ -0,0 +1,36 @@
+
+Include config.h so we get the defines available for subsequent
+include files
+
+Fixes errors like
+
+| In file included from /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/sysroots/beaglebone/usr/include/string.h:634:0,
+|                  from /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/work/cortexa8t2hf-vfp-neon-oe-linux-gnueabi/libmtp/1.1.5-r0/libmtp-1.1.5/src/util.c:36:
+| /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/work/cortexa8t2hf-vfp-neon-oe-linux-gnueabi/libmtp/1.1.5-r0/libmtp-1.1.5/src/util.h:29:7: error: expected identifier or '(' before '__extension
+__'
+|  char *strndup (const char *s, size_t n);
+|        ^
+| /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/work/cortexa8t2hf-vfp-neon-oe-linux-gnueabi/libmtp/1.1.5-r0/libmtp-1.1.5/src/util.c:111:7: error: expected identifier or '(' before '__extensio
+n__'
+|  char *strndup (const char *s, size_t n)
+|        ^
+| make[2]: *** [libmtp_la-util.lo] Error 1
+
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
+
+Index: libmtp-1.1.5/src/util.c
+===================================================================
+--- libmtp-1.1.5.orig/src/util.c	2011-01-10 05:37:21.000000000 -0800
++++ libmtp-1.1.5/src/util.c	2014-09-03 23:50:44.703563888 -0700
+@@ -22,6 +22,8 @@
+  * Boston, MA 02111-1307, USA.
+  */
+ 
++#include "config.h"
++
+ /* MSVC does not have these */
+ #ifndef _MSC_VER
+ #include <sys/time.h>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.5.bb
new file mode 100644
index 0000000..b5df8e0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.5.bb
@@ -0,0 +1,61 @@
+# TODO: include debian's mtp-tools man page (needs xsltproc-native and
+# docbook-xsl-native, or we pregenerate it), add support for doxygen
+# generation fully with -natives
+DESCRIPTION = "libmtp is an Initiator implementation of the Media Transfer \
+Protocol (MTP) in the form of a library suitable primarily for POSIX \
+compliant operating systems"
+SUMMARY = "libmtp is an Initiator implementation of the Media Transfer Protocol (MTP)"
+HOMEPAGE = "http://libmtp.sourceforge.net/"
+LICENSE = "LGPL-2.1+"
+LIC_FILES_CHKSUM = "\
+    file://COPYING;md5=0448d3676bc0de00406af227d341a4d1 \
+    file://src/ptp.c;beginline=3;endline=22;md5=dafe6cfd1782f56471bb94ab06624c1f \
+    file://examples/albums.c;beginline=5;endline=21;md5=84f4e55dfec49e898b7f68a828c15620 \
+"
+
+DEPENDS += "libusb1 gettext-native"
+
+SCM_URI = "git://git.code.sf.net/p/libmtp/code"
+SRC_URI = "\
+    ${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \
+    file://69-libmtp.rules \
+    file://glibc-2.20.patch \
+"
+SRC_URI[md5sum] = "f80e45c0e6e5798c434bb1c26a7b602d"
+SRC_URI[sha256sum] = "787679171baf8b3cf2fcc03196c705ab4d7cbc969bd71f9d3696be1ce7f1c63a"
+
+# Currently we use a pregenerated rules file produced by mtp-hotplug, rather
+# than having to depend upon libmtp-native or run mtp-hotplug in a postinst.
+do_unpack[vardeps] += "skip_udev_rules_generation"
+do_unpack[postfuncs] += "skip_udev_rules_generation"
+
+skip_udev_rules_generation () {
+    sed -i -e '/^noinst_DATA=/,/util\/mtp-hotplug -H/d' ${S}/Makefile.am
+    cp ${WORKDIR}/69-libmtp.rules ${S}/
+}
+
+inherit autotools pkgconfig lib_package
+
+EXTRA_OECONF += "--disable-rpath"
+
+PACKAGECONFIG ?= "\
+    ${@bb.utils.contains('DISTRO_FEATURES', 'largefile$', 'largefile', '', d)} \
+"
+PACKAGECONFIG[doxygen] = "--enable-doxygen,--disable-doxygen"
+PACKAGECONFIG[largefile] = "--enable-largefile,--disable-largefile"
+PACKAGECONFIG[mtpz] = "--enable-mtpz,--disable-mtpz,libgcrypt"
+
+PACKAGES =+ "libmtp-common libmtp-runtime mtp-tools"
+
+RDEPENDS_${PN} += "libmtp-common"
+RRECOMMENDS_${PN} += "libmtp-runtime mtp-tools"
+FILES_${PN}-dbg += "${nonarch_base_libdir}/udev/.debug/*"
+PKG_${PN}-bin = "mtp-tools"
+SUMMARY_${PN}-bin = "Tools for communicating with MTP devices"
+DESCRIPTION_${PN}-bin = "${DESCRIPTION}\nThis package contains tools for communicating with MTP devices."
+FILES_libmtp-common = "${nonarch_base_libdir}/udev/rules.d/*"
+SUMMARY_libmtp-common = "The udev rules file for MTP devices"
+FILES_libmtp-runtime = "${nonarch_base_libdir}/udev/mtp-probe"
+DEPENDS_libmtp-runtime = "libmtp-common"
+SUMMARY_libmtp-runtime = "mtp-probe, used for the MTP udev rules"
+DESCRIPTION_libmtp-runtime = "This package provides mtp-probe, a program to probe newly connected device interfaces from userspace to determine if they are MTP devices, used for udev rules."
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libndp/libndp_1.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libndp/libndp_1.5.bb
new file mode 100644
index 0000000..8f1d1ff
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libndp/libndp_1.5.bb
@@ -0,0 +1,10 @@
+SUMMARY = "Library for IPv6 Neighbor Discovery Protocol"
+
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+SRC_URI = "http://libndp.org/files/${BPN}-${PV}.tar.gz"
+SRC_URI[md5sum] = "beb82e8d75d8382d1b7c0bb0f68be429"
+SRC_URI[sha256sum] = "faf116ab70ce9514ec4e8573556025debea08f606e7f38b616de1f26e120c795"
+
+inherit autotools
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libnet/libnet_1.2-rc3.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libnet/libnet_1.2-rc3.bb
new file mode 100644
index 0000000..a558e80
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libnet/libnet_1.2-rc3.bb
@@ -0,0 +1,19 @@
+SUMMARY = "A packet dissection and creation library"
+# libnet at packetfactory.net is dead
+HOMEPAGE = "https://github.com/sam-github/libnet"
+SECTION = "libs"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://doc/COPYING;md5=3ec839e00408b484d33b472a86b7c266"
+DEPENDS = "libpcap"
+# There are major API changes beween libnet v1.0 and libnet v1.1
+PROVIDES = "libnet-1.2rc2"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/libnet-dev/${BPN}-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "f051e6e5bdecddb90f77c701c2ca1804"
+SRC_URI[sha256sum] = "72c380785ad44183005e654b47cc12485ee0228d7fa6b0a87109ff7614be4a63"
+
+S = "${WORKDIR}/${BPN}-${PV}"
+
+inherit autotools binconfig
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.12.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.12.6.bb
new file mode 100644
index 0000000..7a15527
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.12.6.bb
@@ -0,0 +1,16 @@
+SUMMARY = "libqmi is a library for talking to WWAN devices by QMI protocol"
+DESCRIPTION = "libqmi is a glib-based library for talking to WWAN modems and devices which speak the Qualcomm MSM Interface (QMI) protocol"
+HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libqmi"
+LICENSE = "GPLv2 & LGPLv2.1"
+LIC_FILES_CHKSUM = " \
+    file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+    file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
+"
+
+DEPENDS = "glib-2.0"
+
+inherit autotools pkgconfig
+
+SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz"
+SRC_URI[md5sum] = "24c9eb300662ba6cff0152de89bd9ec0"
+SRC_URI[sha256sum] = "0857bffece4e8ddfa7f721dd9ca63b4c78de345ac9ae2faebf04062cacba3780"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent/don-t-run-code-while-configuring-package.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent/don-t-run-code-while-configuring-package.patch
new file mode 100644
index 0000000..79d4f29
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent/don-t-run-code-while-configuring-package.patch
@@ -0,0 +1,94 @@
+Using AC_RUN_IFELSE prevent people from configuring package for
+cross-compiling. Don't run code while configuring package.
+
+Upstream-Status: Pending
+Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
+
+Index: libtorrent-0.13.3/scripts/checks.m4
+===================================================================
+--- libtorrent-0.13.3.orig/scripts/checks.m4	2012-05-14 14:17:04.000000000 +0300
++++ libtorrent-0.13.3/scripts/checks.m4	2013-02-10 15:28:37.414445524 +0200
+@@ -95,40 +95,6 @@
+
+ AC_DEFUN([TORRENT_CHECK_KQUEUE_SOCKET_ONLY], [
+   AC_MSG_CHECKING(whether kqueue supports pipes and ptys)
+-
+-  AC_RUN_IFELSE([AC_LANG_SOURCE([
+-      #include <fcntl.h>
+-      #include <stdlib.h>
+-      #include <unistd.h>
+-      #include <sys/event.h>
+-      #include <sys/time.h>
+-      int main() {
+-        struct kevent ev@<:@2@:>@, ev_out@<:@2@:>@;
+-        struct timespec ts = { 0, 0 };
+-        int pfd@<:@2@:>@, pty@<:@2@:>@, kfd, n;
+-        char buffer@<:@9001@:>@;
+-        if (pipe(pfd) == -1) return 1;
+-        if (fcntl(pfd@<:@1@:>@, F_SETFL, O_NONBLOCK) == -1) return 2;
+-        while ((n = write(pfd@<:@1@:>@, buffer, sizeof(buffer))) == sizeof(buffer));
+-        if ((pty@<:@0@:>@=posix_openpt(O_RDWR | O_NOCTTY)) == -1) return 3;
+-        if ((pty@<:@1@:>@=grantpt(pty@<:@0@:>@)) == -1) return 4;
+-        EV_SET(ev+0, pfd@<:@1@:>@, EVFILT_WRITE, EV_ADD | EV_ENABLE, 0, 0, NULL);
+-        EV_SET(ev+1, pty@<:@1@:>@, EVFILT_READ, EV_ADD | EV_ENABLE, 0, 0, NULL);
+-        if ((kfd = kqueue()) == -1) return 5;
+-        if ((n = kevent(kfd, ev, 2, NULL, 0, NULL)) == -1) return 6;
+-        if (ev_out@<:@0@:>@.flags & EV_ERROR) return 7;
+-        if (ev_out@<:@1@:>@.flags & EV_ERROR) return 8;
+-        read(pfd@<:@0@:>@, buffer, sizeof(buffer));
+-        if ((n = kevent(kfd, NULL, 0, ev_out, 2, &ts)) < 1) return 9;
+-        return 0;
+-      }
+-      ])],
+-    [
+-      AC_MSG_RESULT(yes)
+-    ], [
+-      AC_DEFINE(KQUEUE_SOCKET_ONLY, 1, kqueue only supports sockets.)
+-      AC_MSG_RESULT(no)
+-    ])
+ ])
+
+ AC_DEFUN([TORRENT_WITH_KQUEUE], [
+Index: libtorrent-0.13.3/scripts/common.m4
+===================================================================
+--- libtorrent-0.13.3.orig/scripts/common.m4	2012-05-14 14:17:04.000000000 +0300
++++ libtorrent-0.13.3/scripts/common.m4	2013-02-10 15:27:55.874446741 +0200
+@@ -222,38 +222,10 @@
+
+ AC_DEFUN([TORRENT_CHECK_EXECINFO], [
+   AC_MSG_CHECKING(for execinfo.h)
+-
+-  AC_RUN_IFELSE([AC_LANG_SOURCE([
+-      #include <execinfo.h>
+-      int main() { backtrace((void**)0, 0); backtrace_symbols((char**)0, 0); return 0;}
+-      ])],
+-    [
+-      AC_MSG_RESULT(yes)
+-      AC_DEFINE(USE_EXECINFO, 1, Use execinfo.h)
+-    ], [
+-      AC_MSG_RESULT(no)
+-  ])
+ ])
+
+ AC_DEFUN([TORRENT_CHECK_ALIGNED], [
+   AC_MSG_CHECKING(the byte alignment)
+-
+-  AC_RUN_IFELSE([AC_LANG_SOURCE([
+-      #include <inttypes.h>
+-      int main() {
+-        char buf@<:@8@:>@ = { 0, 0, 0, 0, 1, 0, 0, 0 };
+-	int i;
+-        for (i = 1; i < 4; ++i)
+-	  if (*(uint32_t*)(buf + i) == 0) return -1;
+-	return 0;
+-	}
+-      ])],
+-    [
+-      AC_MSG_RESULT(none needed)
+-    ], [
+-      AC_DEFINE(USE_ALIGNED, 1, Require byte alignment)
+-      AC_MSG_RESULT(required)
+-  ])
+ ])
+
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent_0.13.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent_0.13.3.bb
new file mode 100644
index 0000000..4af3a6a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent_0.13.3.bb
@@ -0,0 +1,17 @@
+DESCRIPTION = "libTorrent is a BitTorrent library written in C++ for *nix, \
+with a focus on high performance and good code."
+HOMEPAGE = "http://libtorrent.rakshasa.no/"
+LICENSE = "GPL-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833"
+
+DEPENDS = "libsigc++-2.0 openssl cppunit"
+
+SRC_URI = "http://libtorrent.rakshasa.no/downloads/${BP}.tar.gz \
+    file://don-t-run-code-while-configuring-package.patch \
+"
+
+SRC_URI[md5sum] = "e94f6c590bb02aaf4d58618f738a85f2"
+SRC_URI[sha256sum] = "34317d6783b7f8d0805274c9467475b5432a246c0de8e28fc16e3b0b43f35677"
+
+inherit autotools pkgconfig
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp/build-Allow-CC-and-prefix-to-be-overriden.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp/build-Allow-CC-and-prefix-to-be-overriden.patch
new file mode 100644
index 0000000..b1d96ae
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp/build-Allow-CC-and-prefix-to-be-overriden.patch
@@ -0,0 +1,37 @@
+From af485c638c61fa883212ea424e676fbf90bee594 Mon Sep 17 00:00:00 2001
+From: Otavio Salvador <otavio@ossystems.com.br>
+Date: Tue, 1 Jul 2014 17:37:31 -0300
+Subject: [PATCH] build: Allow CC and prefix to be overriden
+
+Upstream-Status: Pending
+
+Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
+---
+ makefile |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/makefile b/makefile
+index 22e7d0d..809cc8f 100644
+--- a/makefile
++++ b/makefile
+@@ -18,7 +18,7 @@
+ KBUILD_OUTPUT =
+ 
+ DEBUG	=
+-CC	= $(CROSS_COMPILE)gcc
++CC	?= $(CROSS_COMPILE)gcc
+ VER     = -DVER=$(version)
+ CFLAGS	= -Wall $(VER) $(incdefs) $(DEBUG) $(EXTRA_CFLAGS)
+ LDLIBS	= -lm -lrt $(EXTRA_LDFLAGS)
+@@ -35,7 +35,7 @@ incdefs := $(shell $(srcdir)/incdefs.sh)
+ version := $(shell $(srcdir)/version.sh $(srcdir))
+ VPATH	= $(srcdir)
+ 
+-prefix	= /usr/local
++prefix	?= /usr/local
+ sbindir	= $(prefix)/sbin
+ mandir	= $(prefix)/man
+ man8dir	= $(mandir)/man8
+-- 
+1.7.10.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp_1.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp_1.6.bb
new file mode 100644
index 0000000..254b855
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp_1.6.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "Precision Time Protocol (PTP) according to IEEE standard 1588 for Linux"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "http://sourceforge.net/projects/linuxptp/files/v${PV}/linuxptp-${PV}.tgz \
+           file://build-Allow-CC-and-prefix-to-be-overriden.patch"
+
+SRC_URI[md5sum] = "6aa15d83f5a35f1fd076ba9adc4e7285"
+SRC_URI[sha256sum] = "e7fd16a9f235b059be527bd512e86f0c1d9f2e7c36736e6d6d9727a4427ac14c"
+
+EXTRA_OEMAKE = "ARCH=${TARGET_ARCH} \
+		EXTRA_CFLAGS='-D_GNU_SOURCE -DHAVE_CLOCK_ADJTIME -DHAVE_ONESTEP_SYNC ${CFLAGS}'"
+
+do_install () {
+    install -d ${D}/${bindir}
+    install -p ${S}/ptp4l  ${D}/${bindir}
+    install -p ${S}/pmc  ${D}/${bindir}
+    install -p ${S}/phc2sys  ${D}/${bindir}
+    install -p ${S}/hwstamp_ctl  ${D}/${bindir}
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc.inc b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc.inc
new file mode 100644
index 0000000..6ff8e01
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc.inc
@@ -0,0 +1,13 @@
+DESCRIPTION = "LIRC is a package that allows you to decode and send infra-red signals of many commonly used remote controls."
+DESCRIPTION_append_lirc = " This package contains the lirc daemon, libraries and tools."
+DESCRIPTION_append_lirc-exec = " This package contains a daemon that runs programs on IR signals."
+DESCRIPTION_append_lirc-remotes = " This package contains some config files for remotes."
+DESCRIPTION_append_lirc-nslu2example = " This package contains a working config for RC5 remotes and a modified NSLU2."
+HOMEPAGE = "http://www.lirc.org"
+SECTION = "console/network"
+LICENSE = "GPLv2"
+DEPENDS = "alsa-lib libftdi libusb1 libusb-compat jack portaudio-v19"
+
+SRC_URI = "http://prdownloads.sourceforge.net/lirc/lirc-${PV}.tar.bz2"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lirc.tmpfiles b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lirc.tmpfiles
new file mode 100644
index 0000000..0b80e2e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lirc.tmpfiles
@@ -0,0 +1 @@
+d /run/lirc 0755 root root -
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lirc_options.conf b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lirc_options.conf
new file mode 100644
index 0000000..d8ddedd
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lirc_options.conf
@@ -0,0 +1,24 @@
+# These are the default options to lircd, if installed as
+# /etc/lirc/lirc_options.conf. See the lircd(8) and lircmd(8)
+# manpages for info on the different options.
+
+[lircd]
+nodaemon        = False
+permission      = 666
+driver          = default
+device          = /dev/lirc0
+output          = /var/run/lirc/lircd
+pidfile         = /var/run/lirc/lircd.pid
+plugindir       = /usr/lib/lirc/plugins
+allow-simulate  = No
+repeat-max      = 600
+#listen         = [address:]port
+#connect        = host[:port]
+#debug          = 5
+#uinput         = ...
+#release        = ...
+#logfile        = ...
+
+[lircmd]
+uinput          = False
+nodeamon        = False
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lircd.conf b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lircd.conf
new file mode 100644
index 0000000..29b03c7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lircd.conf
@@ -0,0 +1,315 @@
+# contributed by angelo castello
+#
+# note: this config file has been deduced starting from the
+#       raw codes provided to run mode2 utility.
+#
+# brand: futarque
+
+begin remote
+  name  futarque
+  bits  8
+  flags SPACE_ENC|CONST_LENGTH
+  eps   30
+  aeps  100
+
+  header       8048  3898
+  one           555  1436
+  zero          555   439
+  gap		113123
+  ptrail        555
+  pre_data_bits   8
+  pre_data     0x54
+  pre		570  3890
+
+      begin codes
+          MUTE                     0x70
+          EXIT                     0xA8
+          POWER                    0xF0
+          CHANNEL_UP               0x50
+          CHANNEL_DOWN             0xD0
+          VOLUME_UP                0x30
+          VOLUME_DOWN              0xB0
+          OK                       0x98
+          FAVORITES                0x04
+          TEXT                     0x68
+          EPG                      0xC8
+          BACK                     0x48
+          MENU                     0x88
+          1                        0x00
+          2                        0x80
+          3                        0x40
+          4                        0xC0
+          5                        0x20
+          6                        0xA0
+          7                        0x60
+          8                        0xE0
+          9                        0x10
+          0                        0x90
+          PAUSE                    0x84
+          INFO                     0x38
+          RED                      0xE8
+          GREEN                    0x08
+          YELLOW                   0x28
+          BLUE                     0x78
+          UP                       0xD8
+          DOWN                     0xB8
+          REWIND                   0x44
+          FASTFORWARD              0x24
+          PLAYPAUSE                0xC4
+          STOP                     0x64
+          RECORD                   0xA4
+          AUDIO                    0xE4
+          TAPE                     0x14
+          DVD                      0x94
+          CAPITAL_A                0xF8
+          CAPITAL_B                0x54
+      end codes
+
+end remote
+
+# brand: STM PVR-1
+
+begin remote
+  name	stm_pvr_1
+  bits	16
+  flags SPACE_ENC|CONST_LENGTH
+  eps	30
+  aeps	150
+
+  header	9000  4500
+  one		 572  1700
+  zero		 572   572
+  ptrail	 572
+  repeat	9000  2200
+  pre_data_bits	  16
+  pre_data	0xFE
+  gap		100000
+
+      begin codes
+          POWER			0x00ff
+          FAVORITES		0x7887
+          MUTE			0x28d7
+          0			0x708F
+          1			0xc03f
+          2			0x40bf
+          3			0x807f
+          4			0xe01f
+          5			0x609f
+          6			0xa05f
+          7			0xd02f
+          8			0x50af
+          9			0x906f
+          INFO			0x38c7
+          SUBTITLE		0xe817
+          MENU			0x9867
+          EXIT			0x20df
+          EPG			0xa857
+          BACK			0x48b7
+          CURSOR_UP		0x58a7
+          CURSOR_DOWN		0xd827
+          CURSOR_LEFT		0x8877
+          CURSOR_RIGHT		0xb04f
+          OK			0x10ef
+          VOLUME_UP		0x22dd
+          VOLUME_DOWN		0x8a75
+          CHANNEL_UP		0x12ed
+          CHANNEL_DOWN		0x4ab5
+          TEXT			0xf00f
+          RADIO			0x926d
+          ZOOM			0x6897
+          AUDIO			0x08f7
+          RED			0x42bd
+          GREEN			0xa25d
+          YELLOW		0x827d
+          BLUE			0x02fd
+          CUSTOM0		0x52ad
+          CUSTOM1		0x30cf
+          PLAY			0x629d
+          PAUSE			0xb24d
+          PREVIOUS		0xc837
+          NEXT			0xf807
+          REWIND		0x32cd
+          FASTFORWARD		0x0af5
+          AUX			0x7a85
+          CUSTOM3		0xb847
+          PIP			0x3ac5
+          SWAP			0xba45
+      end codes
+
+end remote
+
+# brand: STM DTV-2
+
+begin remote
+
+  name		stm_dtv_2
+  flags	SHIFT_ENC|CONST_LENGTH
+  bits		13
+  aeps	150
+
+  one		850 850
+  zero		850 850
+  plead		850
+  gap		67800
+  toggle_bit	2
+
+  begin codes
+	POWER			0x100C
+	FAVORITES		0x1015
+	AUX			0x1038
+	1			0x1001
+	2			0x1002
+	3			0x1003
+	4			0x1004
+	5			0x1005
+	6			0x1006
+	7			0x1007
+	8			0x1008
+	9			0x1009
+	PERIOD			0x1024
+	0			0x103E
+	BACK			0x1023
+	MENU			0x1016
+	INFO			0x100F
+	EPG			0x101E
+	EXIT			0x1018
+	CURSOR_UP		0x1017
+	CURSOR_DOWN		0x101D
+	CURSOR_LEFT		0x1019
+	CURSOR_RIGHT		0x101B
+	OK			0x101A
+	VOLUME_UP		0x1010
+	VOLUME_DOWN		0x1011
+	CHANNEL_UP		0x1020
+	CHANNEL_DOWN		0x1021
+	TEXT			0x102E
+	SUBTITLE		0x103C
+	FREEZE			0x1014
+	ZOOM			0x102B
+	RED			0x1028
+	GREEN			0x102A
+	YELLOW			0x102F
+	BLUE			0x1030
+	CUSTOM10		0x1022
+	INTERNET		0x1027
+	CUSTOM11		0x102C
+	AUDIO			0x1025
+	RECORD			0x102D
+	PLAYPAUSE		0x1029
+	STOP			0x1026
+	CUSTOM1			0x101C
+	MUTE			0x100d
+	CUSTOM12		0x101F
+	PIP			0x100B
+	SWAP			0x100E
+  end codes
+
+end remote
+
+# brand:  Comcast
+# model no. of remote control: XR2
+# 32 bits for the pre-date (should be value 0x170F443E)
+# width between pre_bits and data: 12900 microseconds
+#
+# 24 bits for the data (key code)
+# To get key REPEAT, XOR 0x088 with KEY value
+# There are 8 post bits (both should be zero)
+#
+# Gap between keys: 8100 microseconds
+begin remote
+
+  name Xfinity-XR2
+  bits 24
+  flags XMP
+  eps            20
+  aeps          300
+
+  one             0   137
+  zero          250   710
+  ptrail        250
+  pre_data_bits   32
+  pre_data       0x170F443E
+  post_data_bits  8
+  post_data      0x0
+  pre           250 12921
+  gap          81698
+  toggle_bit_mask 0x0
+
+      begin codes
+          1                      0x1E0001
+          1_repeat               0x168001
+          2                      0x1D0002
+          2_repeat               0x158002
+          3                      0x1C0003
+          3_repeat               0x148003
+          4                      0x1B0004
+          4_repeat               0x138004
+          5                      0x1A0005
+          5_repeat               0x128005
+          6                      0x190006
+          6_repeat               0x118006
+          7                      0x180007
+          7_repeat               0x108007
+          8                      0x170008
+          8_repeat               0x1F8008
+          9                      0x160009
+          9_repeat               0x1E8009
+          0                      0x1F0000
+          0_repeat               0x178000
+          OK                     0x180025
+          OK_repeat              0x108025
+          POWER                  0x10000F
+          POWER_repeat           0x18800F
+          UP                     0x1C0021
+          UP_repeat              0x148021
+          DOWN                   0x1B0022
+          DOWN_repeat            0x138022
+          LEFT                   0x1A0023
+          LEFT_repeat            0x128023
+          RIGHT                  0x190024
+          RIGHT_repeat           0x118024
+          REWIND                 0x190033
+          REWIND_repeat          0x118033
+          PLAY                   0x1C0030
+          PLAY_repeat            0x148030
+          FASTFORWARD            0x180034
+          FASTFORWARD_repeat     0x108034
+          RECORD                 0x170035
+          RECORD_repeat          0x1F8035
+          REPLAY                 0x170053
+          REPLAY_repeat          0x1F8053
+          A                      0x190060
+          A_repeat               0x118060
+          B                      0x180061
+          B_repeat               0x108061
+          C                      0x170062
+          C_repeat               0x1F8062
+          D                      0x160063
+          D_repeat               0x1E8063
+          PAGE_UP                0x150028
+          PAGE_UP_repeat         0x1D8028
+          PAGE_DOWN              0x140029
+          PAGE_DOWN_repeat       0x1C8029
+          GUIDE                  0x160027
+          GUIDE_repeat           0x1E8027
+          MENU                   0x1D0020
+          MENU_repeat            0x158020
+          EXIT                   0x13002A
+          EXIT_repeat            0x1B802A
+          INFO                   0x170026
+          INFO_repeat            0x1F8026
+          LAST                   0x190051
+          LAST_repeat            0x118051
+          VOLUME_UP              0x15000A
+          VOLUME_UP_repeat       0x1D800A
+          CHANNEL_UP             0x12000D
+          CHANNEL_UP_repeat      0x1A800D
+          VOLUME_DOWN            0x14000B
+          VOLUME_DOWN_repeat     0x1C800B
+          CHANNEL_DOWN           0x11000E
+          CHANNEL_DOWN_repeat    0x19800E
+          MUTE                   0x13000C
+          MUTE_repeat            0x1B800D
+      end codes
+
+end remote
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lircd.init b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lircd.init
new file mode 100644
index 0000000..8b124af
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lircd.init
@@ -0,0 +1,40 @@
+#! /bin/sh
+#
+# This is an init script for Familiar
+# Copy it to /etc/init.d/lircd and type
+# > update-rc.d lircd defaults 20
+#
+
+
+test -f /usr/sbin/lircd || exit 0
+test -f /etc/lircd.conf || exit 0
+
+case "$1" in
+  start)
+    echo -n "Starting lirc daemon: lircd"
+    start-stop-daemon --start --quiet --exec /usr/sbin/lircd -- --device=/dev/lirc0
+    echo "."
+    ;;
+  stop)
+    echo -n "Stopping lirc daemon: lircd"
+    start-stop-daemon --stop --quiet --exec /usr/sbin/lircd
+    echo "."
+    ;;
+  reload|force-reload)
+    start-stop-daemon --stop --quiet --signal 1 --exec /usr/sbin/lircd
+    ;;
+  restart)
+    echo -n "Stopping lirc daemon: lircd"
+    start-stop-daemon --stop --quiet --exec /usr/sbin/lircd
+    sleep 1
+    echo -n "Starting lirc daemon: lircd"
+    start-stop-daemon --start --quiet --exec /usr/sbin/lircd -- --device=/dev/lirc0
+    echo "."
+    ;;
+  *)
+    echo "Usage: /etc/init.d/lircd {start|stop|reload|restart|force-reload}"
+    exit 1
+esac
+
+exit 0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lircd.service b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lircd.service
new file mode 100644
index 0000000..c866136
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lircd.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=LIRC Infrared Signal Decoder
+After=network.target
+
+[Service]
+Type=forking
+EnvironmentFile=/etc/lirc/lircd.conf
+PIDFile=/run/lirc/lircd.pid
+ExecStartPre=/bin/mkdir -p /run/lirc
+ExecStartPre=/bin/rm -f /dev/lircd
+ExecStartPre=/bin/rm -f /run/lirc/lircd
+ExecStartPre=/bin/ln -s /run/lirc/lircd /dev/lircd
+
+ExecStart=/usr/sbin/lircd --pidfile=/run/lirc/lircd.pid --device=/dev/lirc0
+
+ExecStopPost=/bin/rm -f /dev/lircd
+ExecStopPost=/bin/rm -fR /run/lirc
+
+[Install]
+WantedBy=multi-user.target
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lircexec.init b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lircexec.init
new file mode 100644
index 0000000..3a8c1a3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc/lircexec.init
@@ -0,0 +1,37 @@
+#! /bin/sh
+#
+# This is an init script for Familiar
+# Copy it to /etc/init.d/lircexecd and type
+# > update-rc.d lircexecd defaults 20
+# It must be started after lircd (and it does alphabetically :-)
+# irexec reads /etc/lircrc by default
+
+
+test -f /usr/bin/irexec || exit 0
+test -f /etc/lircrc || exit 0
+
+case "$1" in
+  start)
+    echo -n "Starting lircexec daemon: irexec"
+    start-stop-daemon --start --quiet --exec /usr/bin/irexec -- --daemon
+    echo "."
+    ;;
+  stop)
+    echo -n "Stopping lircexec daemon: irexec"
+    start-stop-daemon --stop --quiet --exec /usr/bin/irexec
+    echo "."
+    ;;
+  restart|force-restart)
+    echo -n "Stopping lircexec daemon: irexec"
+    start-stop-daemon --stop --quiet --exec /usr/bin/irexec
+    sleep 1
+    echo -n "Starting lircexec daemon: irexec"
+    start-stop-daemon --start --quiet --exec /usr/bin/irexec -- --daemon
+    echo "."
+    ;;
+  *)
+    echo "Usage: /etc/init.d/lircexec {start|stop|reload|restart|force-restart}"
+    exit 1
+esac
+
+exit 0
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc_0.9.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc_0.9.2.bb
new file mode 100644
index 0000000..900b68d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/lirc/lirc_0.9.2.bb
@@ -0,0 +1,71 @@
+require lirc.inc
+
+SRC_URI += " \
+    file://lircd.service \
+    file://lircd.init \
+    file://lircexec.init \
+    file://lircd.conf \
+    file://lirc_options.conf \
+    file://lirc.tmpfiles \
+"
+#file://0001-Adaptation-for-STM-configuration.patch \
+#
+SRC_URI[md5sum] = "3afc84e79c0839823cc20e7a710dd06d"
+SRC_URI[sha256sum] = "4e3f948fcdee6dce009171143f0cb7cd7be48593dd58138db4101a41f651a1dd"
+
+SYSTEMD_PACKAGES = "lirc"
+SYSTEMD_SERVICE_${PN} = "lircd.service lircmd.service"
+SYSTEMD_AUTO_ENABLE_lirc = "enable"
+
+inherit autotools pkgconfig systemd pythonnative
+
+PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,--without-systemdsystemunitdir,systemd"
+PACKAGECONFIG[x11] = "--with-x,--with-x=no,libx11,"
+
+PACKAGECONFIG ?= " \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', ' systemd', '', d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'x11', ' x11', '', d)} \
+"
+
+#EXTRA_OEMAKE = 'SUBDIRS="lib daemons tools"'
+do_install_append() {
+    install -m 0755 -d ${D}${sysconfdir}
+    install -m 0755 -d ${D}${sysconfdir}/lirc
+    install -m 0755 -d ${D}${systemd_unitdir}/system
+    install -m 0755 -d ${D}${libdir}/tmpfiles.d
+    install -m 0644 ${WORKDIR}/lircd.conf ${D}${sysconfdir}/lirc/
+    install -m 0644 ${WORKDIR}/lirc_options.conf ${D}${sysconfdir}/lirc/
+    install -m 0644 ${WORKDIR}/lircd.service ${D}${systemd_unitdir}/system/
+    install -m 0755 ${WORKDIR}/lircexec.init ${D}${systemd_unitdir}/system/
+    install -m 0644 ${WORKDIR}/lirc.tmpfiles ${D}${libdir}/tmpfiles.d/lirc.conf
+    rm -rf ${D}${libdir}/lirc/plugins/*.la
+    rmdir ${D}/var/run/lirc ${D}/var/run
+}
+
+PACKAGES =+ "${PN}-contrib ${PN}-exec ${PN}-plugins ${PN}-python"
+
+RDEPENDS_${PN} = "bash"
+RDEPENDS_${PN}-exec = "${PN}"
+RDEPENDS_${PN}-python = "python"
+
+RRECOMMENDS_lirc = "${PN}-exec ${PN}-plugins"
+
+FILES_${PN}-plugins = "${libdir}/lirc/plugins/*.so ${datadir}/lirc/configs"
+FILES_${PN}-contrib = "${datadir}/lirc/contrib"
+FILES_${PN}-exec = "${bindir}/irexec ${sysconfdir}/lircexec"
+FILES_${PN} += "${systemd_unitdir}/system/lircexec.init"
+FILES_${PN} += "${systemd_unitdir}/system/lircd.service"
+FILES_${PN} += "${systemd_unitdir}/system/lircd.socket"
+FILES_${PN} += "${libdir}/tmpfiles.d/lirc.conf"
+FILES_${PN}-dbg += "${libdir}/lirc/plugins/.debug"
+FILES_${PN}-python += "${libdir}/python*/site-packages"
+
+
+INITSCRIPT_PACKAGES = "lirc lirc-exec"
+INITSCRIPT_NAME_lirc-exec = "lircexec"
+INITSCRIPT_PARAMS_lirc-exec = "defaults 21"
+
+# this is for distributions that don't use udev
+pkg_postinst_${PN}_append() {
+    if [ ! -c $D/dev/lirc -a ! -f /sbin/udevd ]; then mknod $D/dev/lirc c 61 0; fi
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/loudmouth/loudmouth-1.4.3/04-use-pkg-config-for-gnutls.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/loudmouth/loudmouth-1.4.3/04-use-pkg-config-for-gnutls.patch
new file mode 100644
index 0000000..20f388e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/loudmouth/loudmouth-1.4.3/04-use-pkg-config-for-gnutls.patch
@@ -0,0 +1,23 @@
+Description: use pkg-config to detect gnutls
+Debian: http://bugs.debian.org/529835
+Origin: http://groups.google.com/group/loudmouth-dev/browse_thread/thread/3f78255837048daf#
+
+--- a/configure.ac.orig	2009-08-16 20:29:36.000000000 +0200
++++ b/configure.ac	2009-08-16 20:30:43.000000000 +0200
+@@ -146,10 +146,12 @@ AC_ARG_WITH(openssl-libs,
+ enable_ssl=no
+ if test "x$ac_ssl" = "xgnutls"; then
+   dnl Look for GnuTLS
+-  AM_PATH_LM_LIBGNUTLS($GNUTLS_REQUIRED, have_libgnutls=yes, have_libgnutls=no)
+-  if test "x$have_libgnutls" = "xyes"; then
+-    CFLAGS="$CFLAGS $LIBGNUTLS_CFLAGS"
+-    LIBS="$LIBS $LIBGNUTLS_LIBS"
++  PKG_CHECK_MODULES(GNUTLS, gnutls >= $GNUTLS_REQUIRED, have_gnutls=yes, have_gnutls=no)
++  if test "x$have_gnutls" = "xyes"; then 
++    AC_SUBST(ASYNCNS_CFLAGS)
++    AC_SUBST(ASYNCNS_LIBS)
++    CFLAGS="$CFLAGS $GNUTLS_CFLAGS"
++    LIBS="$LIBS $GNUTLS_LIBS"
+     AC_DEFINE(HAVE_GNUTLS, 1, [whether to use GnuTSL support.])
+     enable_ssl=GnuTLS
+   else
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/loudmouth/loudmouth-1.4.3/glib-2.32.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/loudmouth/loudmouth-1.4.3/glib-2.32.patch
new file mode 100644
index 0000000..b6c9422
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/loudmouth/loudmouth-1.4.3/glib-2.32.patch
@@ -0,0 +1,10 @@
+--- loudmouth-1.4.3.orig/loudmouth/lm-error.c	2008-10-29 21:48:15.000000000 +0100
++++ loudmouth-1.4.3/loudmouth/lm-error.c	2012-05-06 08:27:07.455739440 +0200
+@@ -19,7 +19,6 @@
+  */
+ 
+ #include <config.h>
+-#include <glib/gerror.h>
+ #include "lm-error.h"
+ 
+ /**
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/loudmouth/loudmouth_1.4.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/loudmouth/loudmouth_1.4.3.bb
new file mode 100644
index 0000000..4f1430b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/loudmouth/loudmouth_1.4.3.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "Loudmouth is a lightweight and easy-to-use C library for programming with the Jabber protocol."
+HOMEPAGE = "http://www.loudmouth-project.org/"
+
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c4f38aef94828f6b280e00d1173be689"
+
+DEPENDS = "glib-2.0 libcheck openssl libidn"
+
+inherit gnomebase gtk-doc
+
+PR = "r2"
+
+SRC_URI += "file://04-use-pkg-config-for-gnutls.patch \
+            file://glib-2.32.patch"
+
+SRC_URI[archive.md5sum] = "55339ca42494690c3942ee1465a96937"
+SRC_URI[archive.sha256sum] = "95a93f5d009b71ea8193d994aa11f311bc330a3efe1b7cd74dc48f11c7f929e3"
+GNOME_COMPRESS_TYPE="bz2"
+
+EXTRA_OECONF = "--with-ssl=openssl"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.4.12.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.4.12.bb
new file mode 100644
index 0000000..a173e69
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.4.12.bb
@@ -0,0 +1,49 @@
+SUMMARY = "ModemManager is a daemon controlling broadband devices/connections"
+DESCRIPTION = "ModemManager is a DBus-activated daemon which controls mobile broadband (2G/3G/4G) devices and connections"
+HOMEPAGE = "http://www.freedesktop.org/wiki/Software/ModemManager/"
+LICENSE = "GPL-2.0 & LGPL-2.1"
+LIC_FILES_CHKSUM = " \
+    file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+    file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
+"
+
+inherit gnomebase gettext systemd vala gobject-introspection
+
+DEPENDS = "glib-2.0 libgudev dbus-glib"
+
+SRC_URI = "http://www.freedesktop.org/software/ModemManager/ModemManager-${PV}.tar.xz"
+SRC_URI[md5sum] = "66cc7266b15525cb366253e6639fc564"
+SRC_URI[sha256sum] = "7ef5035375a953b285a742591df0a65fd442f4641ce4d8f4392a41d6d6bc70b3"
+
+S = "${WORKDIR}/ModemManager-${PV}"
+
+PACKAGECONFIG ??= "mbim qmi polkit \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \
+"
+
+PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,,"
+PACKAGECONFIG[polkit] = "--with-polkit=yes,--with-polkit=no,polkit"
+# Support WWAN modems and devices which speak the Mobile Interface Broadband Model (MBIM) protocol.
+PACKAGECONFIG[mbim] = "--with-mbim,--enable-mbim=no,libmbim"
+# Support WWAN modems and devices which speak the Qualcomm MSM Interface (QMI) protocol.
+PACKAGECONFIG[qmi] = "--with-qmi,--without-qmi,libqmi"
+
+FILES_${PN} += " \
+    ${datadir}/icons \
+    ${datadir}/polkit-1 \
+    ${datadir}/dbus-1 \
+    ${libdir}/ModemManager \
+    ${systemd_unitdir}/system \
+"
+
+FILES_${PN}-dev += " \
+    ${libdir}/ModemManager/*.la \
+"
+
+FILES_${PN}-staticdev += " \
+    ${libdir}/ModemManager/*.a \
+"
+
+FILES_${PN}-dbg += "${libdir}/ModemManager/.debug"
+
+SYSTEMD_SERVICE_${PN} = "ModemManager.service"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/mosh/mosh_1.2.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/mosh/mosh_1.2.4.bb
new file mode 100644
index 0000000..16e2a7d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/mosh/mosh_1.2.4.bb
@@ -0,0 +1,47 @@
+# NOTE: mosh-server requires a UTF-8 locale, but there's no way to add
+# an explicit dependency for this so you need to ensure this is in your
+# image yourself when you install mosh-server.
+
+SUMMARY = "Remote shell supporting roaming and high-latency connections"
+DESCRIPTION = "Remote terminal application that allows roaming, supports \
+intermittent connectivity, and provides intelligent local echo and line \
+editing of user keystrokes. Mosh is a replacement for SSH. It's more \
+robust and responsive, especially over Wi-Fi, cellular, and \
+long-distance links."
+HOMEPAGE = "http://mosh.mit.edu"
+LICENSE = "GPLv3+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+DEPENDS = "protobuf-native protobuf ncurses zlib libio-pty-perl openssl libutempter"
+
+SRC_URI = "http://mosh.mit.edu/mosh-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "c2d918f4d91fdc32546e2e089f9281b2"
+SRC_URI[sha256sum] = "e74d0d323226046e402dd469a176075fc2013b69b0e67cea49762c957175df46"
+
+inherit autotools
+
+PACKAGE_BEFORE_PN += "${PN}-server"
+FILES_${PN}-server = "${bindir}/mosh-server"
+
+NEEDED_PERL_MODULES = "\
+	perl-module-socket \
+	perl-module-getopt-long \
+	perl-module-errno \
+	perl-module-io-socket-inet \
+	perl-module-posix \
+"
+
+# mosh uses SSH to authenticate and the client uses OpenSSH-specific features
+RDEPENDS_${PN} += "openssh-ssh ${NEEDED_PERL_MODULES}"
+# The server seemed not to work with dropbear either
+RDEPENDS_${PN}-server += "openssh-sshd ${NEEDED_PERL_MODULES}"
+
+# Fails to build with thumb-1 (qemuarm)
+#| {standard input}: Assembler messages:
+#| {standard input}:2100: Error: instruction not supported in Thumb16 mode -- `adds r4,r4,r4'
+#| {standard input}:2101: Error: instruction not supported in Thumb16 mode -- `adcs r5,r5,r5'
+#| {standard input}:2102: Error: instruction not supported in Thumb16 mode -- `adcs r6,r6,r6'
+#| {standard input}:2103: Error: instruction not supported in Thumb16 mode -- `adcs r7,r7,r7'
+#| {standard input}:2104: Error: selected processor does not support Thumb mode `it cs'
+ARM_INSTRUCTION_SET = "arm"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager-openvpn_1.0.8.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager-openvpn_1.0.8.bb
new file mode 100644
index 0000000..258ee68
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager-openvpn_1.0.8.bb
@@ -0,0 +1,31 @@
+SUMMARY = "NetworkManager-openvpn-plugin"
+SECTION = "net/misc"
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=100d5a599bead70ddcd70dcd73f2e29c"
+
+DEPENDS = "dbus dbus-glib networkmanager openvpn"
+
+inherit gnomebase useradd gettext systemd
+
+SRC_URI = "${GNOME_MIRROR}/NetworkManager-openvpn/${@gnome_verdir("${PV}")}/NetworkManager-openvpn-${PV}.tar.xz"
+
+SRC_URI[md5sum] = "758a9951ad5e20a37c72cc7326c9c750"
+SRC_URI[sha256sum] = "1b979519d72ba4d78e729d4856c5b53fad914ca7ee3ca91209ce489ba78912ac"
+
+S = "${WORKDIR}/NetworkManager-openvpn-${PV}"
+
+PACKAGECONFIG[gnome] = "--with-gnome,--without-gnome"
+
+# Create user and group nm-openvpn that are needed since version 1.0.6
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM_${PN} = "--system nm-openvpn"
+
+FILES_${PN} += " \
+    ${libdir}/NetworkManager/*.so \
+"
+
+RDEPENDS_${PN} = " \
+    networkmanager \
+    openvpn \
+"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0001-don-t-try-to-run-sbin-dhclient-to-get-the-version-nu.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0001-don-t-try-to-run-sbin-dhclient-to-get-the-version-nu.patch
new file mode 100644
index 0000000..5c9ed92
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0001-don-t-try-to-run-sbin-dhclient-to-get-the-version-nu.patch
@@ -0,0 +1,36 @@
+From 7dd40db6606c3b3559365a03944cb99aee5ceabc Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Thu, 4 Apr 2013 12:57:58 +0200
+Subject: [PATCH] don't try to run /sbin/dhclient to get the version number,
+ this break cross-compiling
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Inappropriate [build system specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+---
+ configure.ac |    6 ------
+ 1 files changed, 0 insertions(+), 6 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index cc66e9b..7163287 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -488,12 +488,6 @@ AS_IF([test -z "$with_dhcpcd"], with_dhcpcd=yes)
+ # Search and check the executables
+ if test "$with_dhclient" = "yes"; then
+ 	AC_PATH_PROGS(with_dhclient, dhclient, no, /sbin:/usr/sbin:/usr/local/sbin)
+-	if test "$with_dhclient" != "no"; then
+-		if ! $with_dhclient --version 2>&1 | grep -q "^isc-dhclient-4\."; then
+-			AC_MSG_WARN([Cannot use dhclient, version 4.x is required])
+-			with_dhclient=no
+-		fi
+-	fi
+ fi
+ if test "$with_dhcpcd" = "yes"; then
+ 	AC_PATH_PROGS(with_dhcpcd, dhcpcd, no, /sbin:/usr/sbin:/usr/local/sbin)
+-- 
+1.7.6.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0002-add-pkg-config-for-libgcrypt.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0002-add-pkg-config-for-libgcrypt.patch
new file mode 100644
index 0000000..bb95eaa
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0002-add-pkg-config-for-libgcrypt.patch
@@ -0,0 +1,41 @@
+From a9261fee4a41045c42e0d292237cee532e11982c Mon Sep 17 00:00:00 2001
+From: Adrian <adrian.freihofer@gmail.com>
+Date: Thu, 27 Nov 2014 15:43:26 +0100
+Subject: [PATCH] add pkg config for libgcrypt
+
+---
+ configure.ac | 18 +++++++-----------
+ 1 file changed, 7 insertions(+), 11 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 94b0758..654a015 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -480,17 +480,13 @@ if test x"$ac_crypto" = xnss; then
+   with_nss=yes
+ elif test x"$ac_crypto" = xgnutls; then
+   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.2])
+-  AC_PATH_PROG(LIBGCRYPT_CONFIG, libgcrypt-config, no)
+-  if test x"$LIBGCRYPT_CONFIG" = xno; then
+-    AC_MSG_ERROR([gnutls explicitly requested but gcrypt not found on system])
+-  else
+-    AC_DEFINE(HAVE_GNUTLS, 1, [Define if you have libgnutls])
+-    LIBGCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG --cflags`
+-    LIBGCRYPT_LIBS=`$LIBGCRYPT_CONFIG --libs`
+-    AC_SUBST(LIBGCRYPT_CFLAGS)
+-    AC_SUBST(LIBGCRYPT_LIBS)
+-    with_gnutls=yes
+-  fi
++  AC_DEFINE(HAVE_GNUTLS, 1, [Define if you have libgnutls])
++  PKG_CHECK_MODULES(LIBGCRYPT, [libgcrypt >= 1.1.42], [
++      AC_DEFINE(HAVE_GCRYPT, 1, [Define if gcrypt library is available.])
++      with_gnutls=yes
++    ], [
++      AC_MSG_ERROR([gnutls explicitly requested but gcrypt not found on system])
++    ])
+ else
+   AC_MSG_ERROR([Please choose either 'nss' or 'gnutls' for certificate and crypto operations])
+ fi
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0003-core-fix-failure-to-configure-routes-due-to-wrong-de.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0003-core-fix-failure-to-configure-routes-due-to-wrong-de.patch
new file mode 100644
index 0000000..5da536e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0003-core-fix-failure-to-configure-routes-due-to-wrong-de.patch
@@ -0,0 +1,54 @@
+From 11aa07ed939193e85516c287a57dee1837242972 Mon Sep 17 00:00:00 2001
+From: Thomas Haller <thaller@redhat.com>
+Date: Mon, 4 Jan 2016 18:54:26 +0100
+Subject: [PATCH 1/7] core: fix failure to configure routes due to wrong
+ device-route for IPv4 peer-addresses
+
+As in the case of a OpenVPN connection, we might add an address like:
+  10.8.0.58/32 ptp 10.8.0.57
+
+In this case, kernel would automatically add a device-route like:
+  10.8.0.57/32 via 0.0.0.0 dev 32 metric 0 mss 0 src rtprot-kernel scope link pref-src 10.8.0.58
+
+nm_ip4_config_commit() checks all IP addresses to figure out
+the present device-routes. Then the routes are synced by NMRouteManager.
+Due to a bug, we would not consider the peer-address, but the local-address
+and configure a route 10.8.0.58/32, instead of 10.8.0.57/32.
+
+That stays mostly unnoticed, because usually the peer and the local-address are
+in the same subnet, so that there is no difference (/32 is an example of the
+peer-address being in a different subnet).
+
+It also seems that due to a bug fixed by df4e5357521 this issue didn't surface.
+Probably because we would not notice the 10.8.0.57/32 right away and thus
+nm_route_manager_ip4_route_sync() would not wrongly delete it.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=759892
+
+https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=809195
+https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=809494
+https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=809526
+https://bugs.archlinux.org/task/47535
+https://bugzilla.redhat.com/show_bug.cgi?id=1294309
+https://mail.gnome.org/archives/networkmanager-list/2015-December/msg00059.html
+---
+ src/nm-ip4-config.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/nm-ip4-config.c b/src/nm-ip4-config.c
+index f625d35..61e29af 100644
+--- a/src/nm-ip4-config.c
++++ b/src/nm-ip4-config.c
+@@ -298,7 +298,8 @@ nm_ip4_config_commit (const NMIP4Config *config, int ifindex, gboolean routes_fu
+ 
+ 				route.ifindex = ifindex;
+ 				route.source = NM_IP_CONFIG_SOURCE_KERNEL;
+-				route.network = nm_utils_ip4_address_clear_host_address (addr->address, addr->plen);
++				route.network = nm_utils_ip4_address_clear_host_address (addr->peer_address ? : addr->address,
++				                                                         addr->plen);
+ 				route.plen = addr->plen;
+ 				route.pref_src = addr->address;
+ 				route.metric = default_route_metric;
+-- 
+2.5.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0004-ppp-manager-clear-ppp_watch_id-upon-pppd-termination.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0004-ppp-manager-clear-ppp_watch_id-upon-pppd-termination.patch
new file mode 100644
index 0000000..41f2882
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0004-ppp-manager-clear-ppp_watch_id-upon-pppd-termination.patch
@@ -0,0 +1,29 @@
+From 8204c2a1968f757599c5ebec9a85efaacb0e522a Mon Sep 17 00:00:00 2001
+From: Beniamino Galvani <bgalvani@redhat.com>
+Date: Mon, 4 Jan 2016 14:18:02 +0100
+Subject: [PATCH 2/7] ppp-manager: clear @ppp_watch_id upon pppd termination
+
+Set @ppp_watch_id to zero upon pppd termination, otherwise the call to
+g_source_remove(priv->ppp_watch_id) in dispose() could trigger a failed
+assertion.
+
+(cherry picked from commit 5f93f0101538db39efe0f9ea2316e63bff953bf0)
+---
+ src/ppp-manager/nm-ppp-manager.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/ppp-manager/nm-ppp-manager.c b/src/ppp-manager/nm-ppp-manager.c
+index d27b262..85ca9c5 100644
+--- a/src/ppp-manager/nm-ppp-manager.c
++++ b/src/ppp-manager/nm-ppp-manager.c
+@@ -828,6 +828,7 @@ ppp_watch_cb (GPid pid, gint status, gpointer user_data)
+ 
+ 	nm_log_dbg (LOGD_PPP, "pppd pid %d cleaned up", priv->pid);
+ 	priv->pid = 0;
++	priv->ppp_watch_id = 0;
+ 	g_signal_emit (manager, signals[STATE_CHANGED], 0, NM_PPP_STATUS_DEAD);
+ }
+ 
+-- 
+2.5.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0005-device-update-ip_iface-only-if-IP-interface-exists.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0005-device-update-ip_iface-only-if-IP-interface-exists.patch
new file mode 100644
index 0000000..05c2dca
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0005-device-update-ip_iface-only-if-IP-interface-exists.patch
@@ -0,0 +1,45 @@
+From cbcb848e6d4f4e8c4aa11c80f1f3dbb7fb2d397e Mon Sep 17 00:00:00 2001
+From: Beniamino Galvani <bgalvani@redhat.com>
+Date: Mon, 4 Jan 2016 14:22:01 +0100
+Subject: [PATCH 3/7] device: update @ip_iface only if IP interface exists
+
+If @ip_ifindex is zero, the IP interface has disappeared and
+there's no point in updating @ip_iface.
+
+Actually, unconditionally updating @ip_iface is dangerous because it
+breaks the assumption used by other functions (as
+nm_device_get_ip_ifindex()) that a non-NULL @ip_iface implies a valid
+@ip_ifindex. This was causing the scary failure:
+
+  devices/nm-device.c:666:get_ip_iface_identifier: assertion failed: (ifindex)
+
+https://bugzilla.redhat.com/show_bug.cgi?id=1268617
+(cherry picked from commit ed536998f9530698ff3082fc5587dbeb7d3a594f)
+---
+ src/devices/nm-device.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c
+index bb39ca5..4413e92 100644
+--- a/src/devices/nm-device.c
++++ b/src/devices/nm-device.c
+@@ -1526,12 +1526,13 @@ device_ip_link_changed (NMDevice *self)
+ {
+ 	NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (self);
+ 	const NMPlatformLink *pllink;
+-	int ip_ifindex;
+ 
+ 	priv->device_ip_link_changed_id = 0;
+ 
+-	ip_ifindex = nm_device_get_ip_ifindex (self);
+-	pllink = nm_platform_link_get (NM_PLATFORM_GET, ip_ifindex);
++	if (!priv->ip_ifindex)
++		return G_SOURCE_REMOVE;
++
++	pllink = nm_platform_link_get (NM_PLATFORM_GET, priv->ip_ifindex);
+ 	if (!pllink)
+ 		return G_SOURCE_REMOVE;
+ 
+-- 
+2.5.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0006-Fix-nm-version-macro-includes.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0006-Fix-nm-version-macro-includes.patch
new file mode 100644
index 0000000..aa57c83
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager/0006-Fix-nm-version-macro-includes.patch
@@ -0,0 +1,58 @@
+From 7274bbadd398a69b8babf47431f80d35e0228c42 Mon Sep 17 00:00:00 2001
+From: Adrian Freihofer <adrian.freihofer@gmail.com>
+Date: Mon, 18 Jan 2016 08:53:26 +0100
+Subject: [PATCH] Fix nm-version-macro includes
+
+nm-version-macros.h cannot be found since include directive has
+been changed from " to <. This breaks for example gnome-panel
+build:
+/usr/include/NetworkManager/NetworkManager.h:31:31:
+fatal error: nm-version-macros.h: No such file or directory.
+---
+ libnm-core/nm-version.h     | 2 +-
+ libnm-util/NetworkManager.h | 2 +-
+ libnm-util/nm-version.h     | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/libnm-core/nm-version.h b/libnm-core/nm-version.h
+index 730330a..d751bc1 100644
+--- a/libnm-core/nm-version.h
++++ b/libnm-core/nm-version.h
+@@ -23,7 +23,7 @@
+ 
+ #include <glib.h>
+ 
+-#include <nm-version-macros.h>
++#include "nm-version-macros.h"
+ 
+ /* Deprecation / Availability macros */
+ 
+diff --git a/libnm-util/NetworkManager.h b/libnm-util/NetworkManager.h
+index d83e4ab..3a964fc 100644
+--- a/libnm-util/NetworkManager.h
++++ b/libnm-util/NetworkManager.h
+@@ -28,7 +28,7 @@
+ 
+ /* This header must not include glib or libnm. */
+ 
+-#include <nm-version-macros.h>
++#include "nm-version-macros.h"
+ 
+ /*
+  * dbus services details
+diff --git a/libnm-util/nm-version.h b/libnm-util/nm-version.h
+index 63895dd..41101a4 100644
+--- a/libnm-util/nm-version.h
++++ b/libnm-util/nm-version.h
+@@ -23,7 +23,7 @@
+ 
+ #include <glib.h>
+ 
+-#include <nm-version-macros.h>
++#include "nm-version-macros.h"
+ 
+ /* Deprecation / Availability macros */
+ 
+-- 
+2.5.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager_1.0.10.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager_1.0.10.bb
new file mode 100644
index 0000000..831ddf0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/networkmanager/networkmanager_1.0.10.bb
@@ -0,0 +1,124 @@
+SUMMARY = "NetworkManager"
+SECTION = "net/misc"
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=cbbffd568227ada506640fe950a4823b \
+                    file://libnm-util/COPYING;md5=1c4fa765d6eb3cd2fbd84344a1b816cd \
+                    file://docs/api/html/license.html;md5=51d7fb67bde992e58533a8481cee070b \
+"
+
+DEPENDS = "libnl dbus dbus-glib libgudev util-linux libndp libnewt polkit"
+
+inherit gnomebase gettext systemd bluetooth bash-completion vala gobject-introspection
+
+SRC_URI = " \
+    ${GNOME_MIRROR}/NetworkManager/${@gnome_verdir("${PV}")}/NetworkManager-${PV}.tar.xz \
+    file://0001-don-t-try-to-run-sbin-dhclient-to-get-the-version-nu.patch \
+    file://0002-add-pkg-config-for-libgcrypt.patch \
+    file://0003-core-fix-failure-to-configure-routes-due-to-wrong-de.patch \
+    file://0004-ppp-manager-clear-ppp_watch_id-upon-pppd-termination.patch \
+    file://0005-device-update-ip_iface-only-if-IP-interface-exists.patch \
+    file://0006-Fix-nm-version-macro-includes.patch \
+"
+SRC_URI[md5sum] = "a8f54460a4708efd840358f32d0968fd"
+SRC_URI[sha256sum] = "1bcfce8441dfd9f432a100d06b54f3831a2275cccc3b74b1b4c09a011e179fbc"
+
+S = "${WORKDIR}/NetworkManager-${PV}"
+
+EXTRA_OECONF = " \
+    --disable-ifcfg-rh \
+    --disable-ifnet \
+    --disable-ifcfg-suse \
+    --disable-more-warnings \
+    --with-iptables=${sbindir}/iptables \
+    --with-tests \
+    --with-nmtui=yes \
+"
+
+do_compile_prepend() {
+        export GIR_EXTRA_LIBS_PATH="${B}/libnm-util/.libs"
+}
+
+PACKAGECONFIG ??= "nss ifupdown netconfig dhclient dnsmasq \
+    ${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','consolekit',d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES','bluetooth','${BLUEZ}','',d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES','wifi','wifi','',d)} \
+"
+PACKAGECONFIG[systemd] = " \
+    --with-systemdsystemunitdir=${systemd_unitdir}/system --with-session-tracking=systemd --enable-polkit, \
+    --without-systemdsystemunitdir, \
+    polkit \
+"
+PACKAGECONFIG[bluez5] = "--enable-bluez5-dun,--disable-bluez5-dun,bluez5"
+# consolekit is not picked by shlibs, so add it to RDEPENDS too
+PACKAGECONFIG[consolekit] = "--with-session-tracking=consolekit,,consolekit,consolekit"
+PACKAGECONFIG[concheck] = "--with-libsoup=yes,--with-libsoup=no,libsoup-2.4"
+PACKAGECONFIG[modemmanager] = "--with-modem-manager-1=yes,--with-modem-manager-1=no,modemmanager"
+PACKAGECONFIG[ppp] = "--enable-ppp,--disable-ppp,ppp,ppp"
+# Use full featured dhcp client instead of internal one
+PACKAGECONFIG[dhclient] = "--with-dhclient=${base_sbindir}/dhclient,,,dhcp-client"
+PACKAGECONFIG[dnsmasq] = "--with-dnsmasq=${bindir}/dnsmasq"
+PACKAGECONFIG[nss] = "--with-crypto=nss,,nss"
+PACKAGECONFIG[gnutls] = "--with-crypto=gnutls,,gnutls libgcrypt"
+PACKAGECONFIG[wifi] = "--enable-wifi=yes,--enable-wifi=no,wireless-tools,wpa-supplicant wireless-tools"
+PACKAGECONFIG[ifupdown] = "--enable-ifupdown,--disable-ifupdown"
+PACKAGECONFIG[netconfig] = "--with-netconfig=yes,--with-netconfig=no"
+PACKAGECONFIG[qt4-x11-free] = "--enable-qt,--disable-qt,qt4-x11-free"
+
+PACKAGES =+ "libnmutil libnmglib libnmglib-vpn ${PN}-tests \
+  ${PN}-nmtui ${PN}-nmtui-doc \
+  ${PN}-adsl \
+"
+
+FILES_libnmutil += "${libdir}/libnm-util.so.*"
+FILES_libnmglib += "${libdir}/libnm-glib.so.*"
+FILES_libnmglib-vpn += "${libdir}/libnm-glib-vpn.so.*"
+
+FILES_${PN}-adsl = "${libdir}/NetworkManager/libnm-device-plugin-adsl.so"
+
+FILES_${PN} += " \
+    ${libexecdir} \
+    ${libdir}/pppd/*/nm-pppd-plugin.so \
+    ${libdir}/NetworkManager/*.so \
+    ${datadir}/polkit-1 \
+    ${datadir}/dbus-1 \
+    ${base_libdir}/udev/* \
+    ${systemd_unitdir}/system \
+"
+
+RRECOMMENDS_${PN} += "iptables \
+    ${@bb.utils.contains('PACKAGECONFIG','dnsmasq','dnsmasq','',d)} \
+"
+RCONFLICTS_${PN} = "connman"
+
+FILES_${PN}-dbg += " \
+    ${libdir}/NetworkManager/.debug/ \
+    ${libdir}/pppd/*/.debug/ \
+"
+
+FILES_${PN}-dev += " \
+    ${datadir}/NetworkManager/gdb-cmd \
+    ${libdir}/pppd/*/*.la \
+    ${libdir}/NetworkManager/*.la \
+"
+
+FILES_${PN}-tests = " \
+    ${bindir}/nm-online \
+"
+
+FILES_${PN}-nmtui = " \
+    ${bindir}/nmtui \
+    ${bindir}/nmtui-edit \
+    ${bindir}/nmtui-connect \
+    ${bindir}/nmtui-hostname \
+"
+
+FILES_${PN}-nmtui-doc = " \
+    ${mandir}/man1/nmtui* \
+"
+
+SYSTEMD_SERVICE_${PN} = "NetworkManager.service NetworkManager-dispatcher.service"
+
+do_install_append() {
+    rm -rf ${D}/run ${D}${localstatedir}/run
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/obex/obex-data-server_0.4.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/obex/obex-data-server_0.4.6.bb
new file mode 100644
index 0000000..c2c284e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/obex/obex-data-server_0.4.6.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "obex-data-server is a D-Bus service providing high-level OBEX client and server side functionality"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+DEPENDS = "gtk+ dbus-glib imagemagick openobex"
+DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES','bluez5','bluez5','bluez4',d)}"
+
+SRC_URI = "http://tadas.dailyda.com/software/obex-data-server-${PV}.tar.gz"
+SRC_URI[md5sum] = "961ca5db6fe9c97024e133cc6203cc4d"
+SRC_URI[sha256sum] = "b399465ddbd6d0217abedd9411d9d74a820effa0a6a142adc448268d3920094f"
+
+inherit autotools-brokensep pkgconfig
+
+FILES_${PN} += "${datadir}/dbus-1/"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/obex/openobex-1.5/disable-cable-test.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/obex/openobex-1.5/disable-cable-test.patch
new file mode 100644
index 0000000..95b636d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/obex/openobex-1.5/disable-cable-test.patch
@@ -0,0 +1,16 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- openobex-1.2/apps/Makefile.am~disable-cable-test
++++ openobex-1.2/apps/Makefile.am
+@@ -6,7 +6,7 @@
+ 	obex_io.c obex_io.h \
+ 	obex_put_common.c obex_put_common.h
+ 
+-bin_PROGRAMS = irxfer obex_tcp irobex_palm3 obex_test
++bin_PROGRAMS = irxfer obex_tcp irobex_palm3
+ 
+ obex_test_SOURCES = \
+ 	obex_test.c obex_test.h \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/obex/openobex-1.5/libusb_crosscompile_check.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/obex/openobex-1.5/libusb_crosscompile_check.patch
new file mode 100644
index 0000000..1177dfe
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/obex/openobex-1.5/libusb_crosscompile_check.patch
@@ -0,0 +1,11 @@
+--- /tmp/acinclude.m4	2009-04-12 10:32:15.000000000 +0200
++++ openobex-1.5/acinclude.m4	2009-04-12 10:32:38.000000000 +0200
+@@ -158,7 +158,7 @@
+ 		;;
+ 	*)
+ 		PKG_CHECK_MODULES(USB, libusb, usb_lib_found=yes, AC_MSG_RESULT(no))
+-		AC_CHECK_FILE(${prefix}/lib/pkgconfig/libusb.pc, REQUIRES="libusb")
++		REQUIRES="libusb"
+ 		;;
+ 	esac
+ 	AC_SUBST(USB_CFLAGS)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/obex/openobex-1.5/separate_builddir.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/obex/openobex-1.5/separate_builddir.patch
new file mode 100644
index 0000000..8abf8ae
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/obex/openobex-1.5/separate_builddir.patch
@@ -0,0 +1,16 @@
+Fix detection of IrDA failing with B!=S
+
+Upstream-Status: Pending
+
+Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
+
+--- a/acinclude.m4	2014-05-24 14:05:41.757796816 +0100
++++ b/acinclude.m4	2014-05-24 14:03:06.556795536 +0100
+@@ -54,6 +54,7 @@
+ ])
+ 
+ AC_DEFUN([AC_PATH_IRDA_LINUX], [
++	CPPFLAGS="${CPPFLAGS} -I${srcdir}"
+ 	AC_CACHE_CHECK([for IrDA support], irda_found, [
+ 		AC_TRY_COMPILE([
+ 				#include <sys/socket.h>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/obex/openobex_1.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/obex/openobex_1.5.bb
new file mode 100644
index 0000000..6ac7905
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/obex/openobex_1.5.bb
@@ -0,0 +1,35 @@
+DESCRIPTION = "The Openobex project is an open source implementation of the \
+Object Exchange (OBEX) protocol."
+HOMEPAGE = "http://openobex.triq.net"
+SECTION = "libs"
+DEPENDS = "virtual/libusb0"
+DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES','bluez5','bluez5','bluez4',d)}"
+
+LICENSE = "GPLv2 & LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a \
+                    file://COPYING.LIB;md5=a6f89e2100d9b6cdffcea4f398e37343 \
+"
+
+SRC_URI = "http://www.kernel.org/pub/linux/bluetooth/openobex-${PV}.tar.gz \
+           file://disable-cable-test.patch \
+           file://libusb_crosscompile_check.patch \
+           file://separate_builddir.patch"
+
+SRC_URI[md5sum] = "0d83dc86445a46a1b9750107ba7ab65c"
+SRC_URI[sha256sum] = "e602047570799a47ecb028420bda8f2cef41310e5a99d084de10aa9422935e65"
+
+inherit autotools binconfig pkgconfig
+
+EXTRA_OECONF = "--enable-apps --enable-syslog"
+
+do_install_append() {
+    install -d ${D}${datadir}/aclocal
+    install -m 0644 ${S}/openobex.m4 ${D}${datadir}/aclocal
+}
+
+PACKAGES += "openobex-apps"
+FILES_${PN} = "${libdir}/lib*.so.*"
+FILES_${PN}-dev += "${bindir}/openobex-config"
+FILES_${PN}-apps = "${bindir}/*"
+DEBIAN_NOAUTONAME_${PN}-apps = "1"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/obexftp/obexftp/Remove_some_printf_in_obexftpd.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/obexftp/obexftp/Remove_some_printf_in_obexftpd.patch
new file mode 100644
index 0000000..8b73af3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/obexftp/obexftp/Remove_some_printf_in_obexftpd.patch
@@ -0,0 +1,34 @@
+Signed-off-by: Jun Zhu <R01007@freescale.com>
+
+Upstream-Status:  Not applicable
+
+diff -Nru obexftp-0.23/apps.orig/obexftpd.c obexftp-0.23/apps/obexftpd.c
+--- obexftp-0.23/apps.orig/obexftpd.c	2013-11-08 10:42:20.816631583 +0800
++++ obexftp-0.23/apps/obexftpd.c	2013-11-08 10:44:18.628634893 +0800
+@@ -639,7 +639,7 @@
+ 	struct stat statbuf;
+ 	//char *namebuf = NULL;
+ 
+-	fprintf(stderr, "put_done>>>\n");
++	//fprintf(stderr, "put_done>>>\n");
+ 	while(OBEX_ObjectGetNextHeader(handle, object, &hi, &hv, &hlen))	{
+ 		switch(hi)	{
+ 		case OBEX_HDR_BODY:
+@@ -671,7 +671,7 @@
+ 		}
+ 	}
+ 	if(!body)	{
+-		printf("Got a PUT without a body\n");
++		//printf("Got a PUT without a body\n");
+ 		OBEX_ObjectSetRsp(object, OBEX_RSP_CONTINUE, OBEX_RSP_SUCCESS);
+ 	}
+ 	if(!name)	{
+@@ -807,7 +807,7 @@
+ 			
+ 		switch(obex_cmd) {
+ 		case OBEX_CMD_PUT:
+-			fprintf(stderr, "obex_ev_progress: obex_cmd_put\n");
++			//fprintf(stderr, "obex_ev_progress: obex_cmd_put\n");
+ 			put_done(handle, obj, 0);
+ 			break;
+ 		default:
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/obexftp/obexftp_0.23.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/obexftp/obexftp_0.23.bb
new file mode 100644
index 0000000..fcd447c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/obexftp/obexftp_0.23.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "A tool for transfer files to/from any OBEX enabled device"
+LICENSE = "GPLv2 & LGPLv2 & LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+DEPENDS += "openobex"
+
+# Depends on openobex
+PNBLACKLIST[obexftp] ?= "${@bb.utils.contains('DISTRO_FEATURES', 'bluez5', 'bluez5 conflicts with bluez4 and bluez5 is selected in DISTRO_FEATURES', '', d)}"
+
+SRC_URI = "http://sourceforge.net/projects/openobex/files/obexftp/${PV}/obexftp-${PV}.tar.bz2 \
+           file://Remove_some_printf_in_obexftpd.patch "
+
+SRC_URI[md5sum] = "f20762061b68bc921e80be4aebc349eb"
+SRC_URI[sha256sum] = "44a74ff288d38c0f75354d6bc2efe7d6dec10112eaff2e7b10e292b0d2105b36"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF += "--disable-tcl --disable-perl --disable-python --disable-ruby"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/packagegroups/packagegroup-tools-bluetooth.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/packagegroups/packagegroup-tools-bluetooth.bb
new file mode 100644
index 0000000..dde4599
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/packagegroups/packagegroup-tools-bluetooth.bb
@@ -0,0 +1,37 @@
+# Copyright (C) 2014-2015 Freescale Semiconductor
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \
+                    file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+SUMMARY = "Set of Bluetooth related tools for inclusion in images"
+DESCRIPTION = "Includes bluetooth specific tools for this version of BlueZ.\
+These tools are used at runtime. \
+Supports BlueZ4 and BlueZ5."
+
+inherit packagegroup
+inherit bluetooth
+
+RDEPENDS_bluez4 = " \
+    obexftp \
+"
+
+RDEPENDS_bluez5 = " \
+    bluez5-noinst-tools \
+    bluez5-obex \
+    bluez5-testtools  \
+    libasound-module-bluez \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', \
+        'pulseaudio-module-bluetooth-discover \
+         pulseaudio-module-bluetooth-policy \
+         pulseaudio-module-bluez5-discover \
+         pulseaudio-module-bluez5-device \
+         pulseaudio-module-switch-on-connect \
+         pulseaudio-module-loopback', \
+        '', d)} \
+"
+
+# Install bluez4 tools or bluez5 tools depending on what is specified in the distro.
+# Otherwise install nothing.
+RDEPENDS_${PN} = "${RDEPENDS_${BLUEZ}}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/phonet-utils/phonet-utils_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/phonet-utils/phonet-utils_git.bb
new file mode 100644
index 0000000..5589963
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/phonet-utils/phonet-utils_git.bb
@@ -0,0 +1,13 @@
+SUMMARY = "This small package provides a few command line tools for Linux Phonet"
+HOMEPAGE = ""
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+SRC_URI = "git://gitorious.org/meego-cellular/phonet-utils.git;branch=master"
+PR = "r2"
+S = "${WORKDIR}/git"
+SRCREV = "4acfa720fd37d178a048fc2be17180137d4a70ea"
+PV = "0.0.0+gitr${SRCPV}"
+
+inherit autotools-brokensep
+
+FILES_${PN} += "${base_libdir}/udev/rules.d/85-phonet-utils.rules"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/rabbitmq-c/rabbitmq-c_0.7.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/rabbitmq-c/rabbitmq-c_0.7.0.bb
new file mode 100644
index 0000000..e9846fd
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/rabbitmq-c/rabbitmq-c_0.7.0.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "A C-language AMQP client library for use with v2.0+ of the RabbitMQ broker"
+HOMEPAGE = "https://github.com/alanxz/rabbitmq-c"
+LIC_FILES_CHKSUM = "file://LICENSE-MIT;md5=6b7424f9db80cfb11fdd5c980b583f53"
+LICENSE = "MIT"
+
+SRC_URI = "git://github.com/alanxz/rabbitmq-c.git"
+SRCREV = "4dde30ce8d984edda540349f57eb7995a87ba9de"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "popt openssl"
+
+EXTRA_OECONF = "--disable-examples --enable-tools --disable-docs"
+
+inherit autotools pkgconfig
+
+PACKAGE_BEFORE_PN += "${PN}-tools"
+FILES_${PN}-tools = "${bindir}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/rfkill/rfkill/0001-rfkill-makefile-don-t-use-t-the-OE-install-wrapper-d.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/rfkill/rfkill/0001-rfkill-makefile-don-t-use-t-the-OE-install-wrapper-d.patch
new file mode 100644
index 0000000..c6f60d0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/rfkill/rfkill/0001-rfkill-makefile-don-t-use-t-the-OE-install-wrapper-d.patch
@@ -0,0 +1,30 @@
+From db764080e54f8f998c28ef8dab78da8b8d1d1420 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Fri, 11 Feb 2011 10:35:40 +0100
+Subject: [PATCH] rfkill makefile: don't use -t, the OE install wrapper dislikes it
+
+Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
+---
+ Makefile |    4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 8d6c700..3652690 100644
+--- a/Makefile
++++ b/Makefile
+@@ -53,10 +53,10 @@ check:
+ install: rfkill rfkill.8.gz
+ 	@$(NQ) ' INST rfkill'
+ 	$(Q)$(MKDIR) $(DESTDIR)$(SBINDIR)
+-	$(Q)$(INSTALL) -m 755 -t $(DESTDIR)$(SBINDIR) rfkill
++	$(Q)$(INSTALL) -m 755 rfkill $(DESTDIR)$(SBINDIR) 
+ 	@$(NQ) ' INST rfkill.8'
+ 	$(Q)$(MKDIR) $(DESTDIR)$(MANDIR)/man8/
+-	$(Q)$(INSTALL) -m 644 -t $(DESTDIR)$(MANDIR)/man8/ rfkill.8.gz
++	$(Q)$(INSTALL) -m 644 rfkill.8.gz $(DESTDIR)$(MANDIR)/man8/
+ 
+ clean:
+ 	$(Q)rm -f rfkill *.o *~ *.gz version.c *-stamp
+-- 
+1.6.6.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/rfkill/rfkill/dont.call.git.rev-parse.on.parent.dir.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/rfkill/rfkill/dont.call.git.rev-parse.on.parent.dir.patch
new file mode 100644
index 0000000..2b83689
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/rfkill/rfkill/dont.call.git.rev-parse.on.parent.dir.patch
@@ -0,0 +1,31 @@
+When WORKDIR is included in some other git checkout, version.sh calls git rev-parse
+and it returns some description from that upper git checkout even when rfkill is
+being built from release tarball.
+
+When returned description doesn't match with expected v0.4, version.sh exits
+without creating version.c
+    # on git builds check that the version number above
+    # is correct...
+    [ "${descr%%-*}" = "v$VERSION" ] || exit 2
+
+and build fails a bit later:
+    | NOTE: make -j 32 -e MAKEFLAGS=
+    |  CC   rfkill.o
+    |  GEN  version.c
+    | make: *** [version.c] Error 2
+    | make: *** Waiting for unfinished jobs....
+    | ERROR: oe_runmake failed
+
+Don't try git rev-parse, if there isn't .git in ${S}.
+
+--- a/version.sh	2013-11-15 03:43:12.587744366 -0800
++++ b/version.sh	2013-11-15 03:42:40.699743320 -0800
+@@ -12,7 +12,7 @@
+ 
+ if test "x$SUFFIX" != 'x'; then
+ 	v="$VERSION$SUFFIX"
+-elif head=`git rev-parse --verify HEAD 2>/dev/null`; then
++elif test -d .git && head=`git rev-parse --verify HEAD 2>/dev/null`; then
+ 	git update-index --refresh --unmerged > /dev/null
+ 	descr=$(git describe 2>/dev/null || echo "v$VERSION")
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/rfkill/rfkill_0.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/rfkill/rfkill_0.5.bb
new file mode 100644
index 0000000..3e64476
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/rfkill/rfkill_0.5.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Radio enable/disable command line utility"
+HOMEPAGE = "http://linuxwireless.org/en/users/Documentation/rfkill"
+SECTION = "base"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c6036d0eb7edbfced28c4160e5d3fa94"
+
+SRC_URI = "http://www.kernel.org/pub/software/network/${BPN}/${BP}.tar.bz2 \
+           file://0001-rfkill-makefile-don-t-use-t-the-OE-install-wrapper-d.patch \
+           file://dont.call.git.rev-parse.on.parent.dir.patch"
+
+SRC_URI[md5sum] = "b957713a6cfbcd8ac0e94420aeddcf1a"
+SRC_URI[sha256sum] = "3e160cca504a53679f2b3254f31c53a4fb38a021bc50fed8eb57a436d33dfa07"
+
+do_compile() {
+    oe_runmake
+}
+
+do_install() {
+    oe_runmake DESTDIR=${D} install
+}
+
+inherit update-alternatives
+
+ALTERNATIVE_${PN} = "rfkill"
+ALTERNATIVE_PRIORITY = "60"
+ALTERNATIVE_LINK_NAME[rfkill] = "${sbindir}/rfkill"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/rtorrent/rtorrent/don-t-run-code-while-configuring-package.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/rtorrent/rtorrent/don-t-run-code-while-configuring-package.patch
new file mode 100644
index 0000000..79d4f29
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/rtorrent/rtorrent/don-t-run-code-while-configuring-package.patch
@@ -0,0 +1,94 @@
+Using AC_RUN_IFELSE prevent people from configuring package for
+cross-compiling. Don't run code while configuring package.
+
+Upstream-Status: Pending
+Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
+
+Index: libtorrent-0.13.3/scripts/checks.m4
+===================================================================
+--- libtorrent-0.13.3.orig/scripts/checks.m4	2012-05-14 14:17:04.000000000 +0300
++++ libtorrent-0.13.3/scripts/checks.m4	2013-02-10 15:28:37.414445524 +0200
+@@ -95,40 +95,6 @@
+
+ AC_DEFUN([TORRENT_CHECK_KQUEUE_SOCKET_ONLY], [
+   AC_MSG_CHECKING(whether kqueue supports pipes and ptys)
+-
+-  AC_RUN_IFELSE([AC_LANG_SOURCE([
+-      #include <fcntl.h>
+-      #include <stdlib.h>
+-      #include <unistd.h>
+-      #include <sys/event.h>
+-      #include <sys/time.h>
+-      int main() {
+-        struct kevent ev@<:@2@:>@, ev_out@<:@2@:>@;
+-        struct timespec ts = { 0, 0 };
+-        int pfd@<:@2@:>@, pty@<:@2@:>@, kfd, n;
+-        char buffer@<:@9001@:>@;
+-        if (pipe(pfd) == -1) return 1;
+-        if (fcntl(pfd@<:@1@:>@, F_SETFL, O_NONBLOCK) == -1) return 2;
+-        while ((n = write(pfd@<:@1@:>@, buffer, sizeof(buffer))) == sizeof(buffer));
+-        if ((pty@<:@0@:>@=posix_openpt(O_RDWR | O_NOCTTY)) == -1) return 3;
+-        if ((pty@<:@1@:>@=grantpt(pty@<:@0@:>@)) == -1) return 4;
+-        EV_SET(ev+0, pfd@<:@1@:>@, EVFILT_WRITE, EV_ADD | EV_ENABLE, 0, 0, NULL);
+-        EV_SET(ev+1, pty@<:@1@:>@, EVFILT_READ, EV_ADD | EV_ENABLE, 0, 0, NULL);
+-        if ((kfd = kqueue()) == -1) return 5;
+-        if ((n = kevent(kfd, ev, 2, NULL, 0, NULL)) == -1) return 6;
+-        if (ev_out@<:@0@:>@.flags & EV_ERROR) return 7;
+-        if (ev_out@<:@1@:>@.flags & EV_ERROR) return 8;
+-        read(pfd@<:@0@:>@, buffer, sizeof(buffer));
+-        if ((n = kevent(kfd, NULL, 0, ev_out, 2, &ts)) < 1) return 9;
+-        return 0;
+-      }
+-      ])],
+-    [
+-      AC_MSG_RESULT(yes)
+-    ], [
+-      AC_DEFINE(KQUEUE_SOCKET_ONLY, 1, kqueue only supports sockets.)
+-      AC_MSG_RESULT(no)
+-    ])
+ ])
+
+ AC_DEFUN([TORRENT_WITH_KQUEUE], [
+Index: libtorrent-0.13.3/scripts/common.m4
+===================================================================
+--- libtorrent-0.13.3.orig/scripts/common.m4	2012-05-14 14:17:04.000000000 +0300
++++ libtorrent-0.13.3/scripts/common.m4	2013-02-10 15:27:55.874446741 +0200
+@@ -222,38 +222,10 @@
+
+ AC_DEFUN([TORRENT_CHECK_EXECINFO], [
+   AC_MSG_CHECKING(for execinfo.h)
+-
+-  AC_RUN_IFELSE([AC_LANG_SOURCE([
+-      #include <execinfo.h>
+-      int main() { backtrace((void**)0, 0); backtrace_symbols((char**)0, 0); return 0;}
+-      ])],
+-    [
+-      AC_MSG_RESULT(yes)
+-      AC_DEFINE(USE_EXECINFO, 1, Use execinfo.h)
+-    ], [
+-      AC_MSG_RESULT(no)
+-  ])
+ ])
+
+ AC_DEFUN([TORRENT_CHECK_ALIGNED], [
+   AC_MSG_CHECKING(the byte alignment)
+-
+-  AC_RUN_IFELSE([AC_LANG_SOURCE([
+-      #include <inttypes.h>
+-      int main() {
+-        char buf@<:@8@:>@ = { 0, 0, 0, 0, 1, 0, 0, 0 };
+-	int i;
+-        for (i = 1; i < 4; ++i)
+-	  if (*(uint32_t*)(buf + i) == 0) return -1;
+-	return 0;
+-	}
+-      ])],
+-    [
+-      AC_MSG_RESULT(none needed)
+-    ], [
+-      AC_DEFINE(USE_ALIGNED, 1, Require byte alignment)
+-      AC_MSG_RESULT(required)
+-  ])
+ ])
+
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/rtorrent/rtorrent_0.9.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/rtorrent/rtorrent_0.9.3.bb
new file mode 100644
index 0000000..eb0a39a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/rtorrent/rtorrent_0.9.3.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Torrent client"
+HOMEPAGE = "http://libtorrent.rakshasa.no/"
+LICENSE = "GPL-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+DEPENDS = "libsigc++-2.0 curl cppunit libtorrent ncurses"
+
+SRC_URI = "http://libtorrent.rakshasa.no/downloads/${BP}.tar.gz \
+    file://don-t-run-code-while-configuring-package.patch \
+"
+
+SRC_URI[md5sum] = "0bf2f262faa8c8c8d3b11ce286ea2bf2"
+SRC_URI[sha256sum] = "9e93ca41beb1afe74ad7ad8013e0d53ae3586c9b0e97263d722f721535cc7310"
+
+inherit autotools pkgconfig
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_2.9.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_2.9.1.bb
new file mode 100644
index 0000000..8fe6a6f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_2.9.1.bb
@@ -0,0 +1,15 @@
+SUMMARY = "A serial to network proxy"
+SECTION = "console/network"
+HOMEPAGE = "http://sourceforge.net/projects/ser2net/"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=bae3019b4c6dc4138c217864bd04331f"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/project/ser2net/ser2net/ser2net-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "80011ac0e60bbdcb65f1d7a86251e3f3"
+SRC_URI[sha256sum] = "fdee1e69903cf409bdc6f32403a566cbc6006aa9e2a4d6f8f12b90dfd5ca0d0e"
+
+inherit autotools pkgconfig
+
+BBCLASSEXTEND += "native nativesdk"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/smstools3/smstools3/fix-makefile-override.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/smstools3/smstools3/fix-makefile-override.patch
new file mode 100644
index 0000000..f0a1d33
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/smstools3/smstools3/fix-makefile-override.patch
@@ -0,0 +1,24 @@
+Upstream-Status: Backport [debian]
+
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -37,16 +37,15 @@
+ # Use the following only on GNU/Linux and only if you need ps listing like "smsd: MAINPROCESS" and "smsd: GSM1"
+ # CFLAGS += -D USE_LINUX_PS_TRICK
+ 
+-all: smsd 
+-
+-smsd: smsd.c extras.o locking.o cfgfile.o logging.o alarm.o smsd_cfg.o charset.o stats.o blacklist.o whitelist.o modeminit.o pdu.o
+-
+ ifneq (,$(findstring SOLARIS,$(CFLAGS)))
+ ifeq (,$(findstring DISABLE_INET_SOCKET,$(CFLAGS)))
+ override LFLAGS += -lsocket -lnsl
+ endif
+ endif
+ 
++all: smsd 
++
++smsd: smsd.c extras.o locking.o cfgfile.o logging.o alarm.o smsd_cfg.o charset.o stats.o blacklist.o whitelist.o modeminit.o pdu.o
+ ifneq (,$(findstring NOSTATS,$(CFLAGS)))
+ 	$(CC) $(CFLAGS) -o $@ $^ $(LFLAGS)
+ else 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/smstools3/smstools3/sms_binpath_and_psops.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/smstools3/smstools3/sms_binpath_and_psops.patch
new file mode 100644
index 0000000..ffcaa09
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/smstools3/smstools3/sms_binpath_and_psops.patch
@@ -0,0 +1,19 @@
+Index: smstools3/scripts/sms3
+===================================================================
+--- smstools3.orig/scripts/sms3	2010-05-04 11:21:44.000000000 +0200
++++ smstools3/scripts/sms3	2015-02-22 20:05:51.615074469 +0100
+@@ -24,11 +24,11 @@
+ # Logfile can also be defined in here:
+ LOGFILE="/var/log/smsd.log"
+ 
+-DAEMON=/usr/local/bin/smsd
++DAEMON=/usr/bin/smsd
+ # A program which turns power off for couple of seconds:
+-RESETMODEMS=/usr/local/bin/smsd_resetmodems
++RESETMODEMS=/usr/bin/smsd_resetmodems
+ NAME=smsd
+-PSOPT="-e"
++PSOPT=""
+ ECHO=echo
+ case `uname` in
+   *BSD|Darwin)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/smstools3/smstools3_3.1.15.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/smstools3/smstools3_3.1.15.bb
new file mode 100644
index 0000000..95adecd
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/smstools3/smstools3_3.1.15.bb
@@ -0,0 +1,46 @@
+SUMMARY = "SMS Gateway software"
+DESCRIPTION = "The SMS Server Tools 3 is a SMS Gateway software which can send and receive short messages through GSM modems and mobile phones."
+SECTION = "console/network"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4d21efa1bb2a186360dde4035f860682"
+HOMEPAGE = "http://smstools3.kekekasvi.com"
+
+SRC_URI = "http://smstools3.kekekasvi.com/packages/${BP}.tar.gz \
+           file://sms_binpath_and_psops.patch \
+           file://fix-makefile-override.patch"
+
+SRC_URI[md5sum] = "0241ef60e646fac1a06254a848e61ed7"
+SRC_URI[sha256sum] = "ed00ffaeaa312a5b4f969f4e97a64603a866bbe16e393ea02f5bf05234814d59"
+
+
+S = "${WORKDIR}/${BPN}"
+
+RDEPENDS_${PN} = "bash"
+INITSCRIPT_NAME = "sms3"
+INITSCRIPT_PARAMS = "defaults"
+
+inherit update-rc.d
+
+do_install () {
+	
+	install -d ${D}${bindir}	
+	install -m 755 ${S}/src/smsd "${D}${bindir}/smsd"
+	
+	install -m 755 ${S}/scripts/sendsms "${D}${bindir}/sendsms"
+	install -m 755 ${S}/scripts/sms2html "${D}${bindir}/sms2html"
+	install -m 755 ${S}/scripts/sms2unicode "${D}${bindir}/sms2unicode" 
+	install -m 755 ${S}/scripts/unicode2sms "${D}${bindir}/unicode2sms"
+
+	install -d ${D}${sysconfdir}	
+	install -m 644 ${S}/examples/smsd.conf.easy "${D}${sysconfdir}/smsd.conf"
+
+	install -d "${D}${localstatedir}/spool"
+	install -d "${D}${localstatedir}/spool/sms"
+	install -d "${D}${localstatedir}/spool/sms/incoming"
+	install -d "${D}${localstatedir}/spool/sms/outgoing"
+	install -d "${D}${localstatedir}/spool/sms/checked"
+
+	install -d ${D}${sysconfdir}/init.d
+	install -m 755 ${S}/scripts/sms3 "${D}${sysconfdir}/init.d/${INITSCRIPT_NAME}"
+
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/soft66/files/fix-ar.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/soft66/files/fix-ar.patch
new file mode 100644
index 0000000..bf1ffdf
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/soft66/files/fix-ar.patch
@@ -0,0 +1,13 @@
+---
+ configure.ac |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- git.orig/configure.ac
++++ git/configure.ac
+@@ -7,5 +7,6 @@ AC_PROG_CC
+ AC_CONFIG_HEADERS([config.h])
+ AC_CONFIG_FILES([Makefile lib/Makefile tools/Makefile])
+ PKG_CHECK_MODULES([FTDI], [libftdi >= 0.13])
+ AC_OUTPUT
+ AM_PROG_CC_C_O
++AM_PROG_AR
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/soft66/soft66_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/soft66/soft66_git.bb
new file mode 100644
index 0000000..b649526
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/soft66/soft66_git.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Library and tools for Soft66ADD and related SDR radio receivers"
+LICENSE = "GPLv3 & LGPLv3+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949 \
+                    file://COPYING.LESSER;md5=e6a600fd5e1d9cbde2d983680233ad02 "
+
+PNBLACKLIST[soft66] ?= "BROKEN: depends on broken libftdi"
+
+DEPENDS = "libftdi"
+
+PV = "0.1.3+gitr${SRCPV}"
+PR = "r1"
+
+SRCREV = "a1dab25e73896c90c98227ac8055f227b830d512"
+SRC_URI = "git://home.horsten.com/soft66 \
+file://fix-ar.patch"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/libtelepathy/doublefix.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/libtelepathy/doublefix.patch
new file mode 100644
index 0000000..a7737fb
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/libtelepathy/doublefix.patch
@@ -0,0 +1,18 @@
+Fix double reference to this file to work with recent autoconf+automake
+
+RP 1/2/10
+
+Upstream-Status: Inappropriate [configuration]
+
+Index: libtelepathy-0.3.3/src/Makefile.am
+===================================================================
+--- libtelepathy-0.3.3.orig/src/Makefile.am	2010-02-01 13:13:50.869038984 +0000
++++ libtelepathy-0.3.3/src/Makefile.am	2010-02-01 13:14:23.267789456 +0000
+@@ -27,7 +27,6 @@
+     tp-chan-type-text-gen.h \
+     tp-chan-type-tubes-gen.h \
+     tp-conn-iface-aliasing-gen.h \
+-    tp-conn-iface-avatars-gen.h \
+     tp-conn-iface-capabilities-gen.h \
+     tp-conn-iface-contact-info-gen.h \
+     tp-conn-iface-forwarding-gen.h \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/libtelepathy/prefer_python_2.5.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/libtelepathy/prefer_python_2.5.patch
new file mode 100644
index 0000000..37679ab
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/libtelepathy/prefer_python_2.5.patch
@@ -0,0 +1,15 @@
+Upstream-Status: Inappropriate [configuration]
+
+Index: libtelepathy-0.3.1/configure.ac
+===================================================================
+--- libtelepathy-0.3.1.orig/configure.ac	2007-11-22 19:05:56.000000000 +0000
++++ libtelepathy-0.3.1/configure.ac	2008-01-04 12:07:28.000000000 +0000
+@@ -51,7 +51,7 @@
+   AC_MSG_ERROR([xsltproc (from the libxslt source package) is required])
+ fi
+ 
+-AC_CHECK_PROGS([PYTHON], [python2.3 python2.4 python2.5 python])
++AC_CHECK_PROGS([PYTHON], [python2.5 python2.4 python2.3 python])
+ if test -z "$PYTHON"; then
+   AC_MSG_ERROR([Python is required to compile this package])
+ fi
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/libtelepathy_0.3.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/libtelepathy_0.3.3.bb
new file mode 100644
index 0000000..f13e709
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/libtelepathy_0.3.3.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Telepathy framework"
+DESCRIPTION = "Telepathy is a D-Bus framework for unifying real time \
+communication, including instant messaging, voice calls and video calls.  It \
+abstracts differences between protocols to provide a unified interface for \
+applications."
+HOMEPAGE = "http://telepathy.freedesktop.org/wiki/"
+DEPENDS = "glib-2.0 dbus dbus-glib telepathy-glib libxslt-native"
+LICENSE = "LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
+                    file://src/tp-conn.c;beginline=1;endline=19;md5=4c58069f77d601cc59200bce5396c7cb"
+PR = "r5"
+
+SRC_URI = "http://telepathy.freedesktop.org/releases/libtelepathy/libtelepathy-${PV}.tar.gz \
+           file://prefer_python_2.5.patch \
+           file://doublefix.patch"
+
+SRC_URI[md5sum] = "490ca1a0c614d4466394b72d43bf7370"
+SRC_URI[sha256sum] = "e0d230be855125163579743418203c6f6be2f10f98c4f065735c1dc9ed115878"
+
+inherit autotools pkgconfig pythonnative
+
+FILES_${PN} += "${datadir}/telepathy \
+		${datadir}/dbus-1"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-glib_0.24.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-glib_0.24.0.bb
new file mode 100644
index 0000000..01c6e37
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-glib_0.24.0.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Telepathy Framework glib-base helper library"
+DESCRIPTION = "Telepathy Framework: GLib-based helper library for connection managers"
+HOMEPAGE = "http://telepathy.freedesktop.org/wiki/"
+DEPENDS = "glib-2.0 dbus hostpython-runtime-native dbus-native dbus-glib libxslt-native"
+LICENSE = "LGPLv2.1+"
+
+SRC_URI = "http://telepathy.freedesktop.org/releases/telepathy-glib/${BP}.tar.gz"
+SRC_URI[md5sum] = "93c429e37750b25dcf8de86bb514664f"
+SRC_URI[sha256sum] = "ae0002134991217f42e503c43dea7817853afc18863b913744d51ffa029818cf"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=e413d83db6ee8f2c8e6055719096a48e"
+
+inherit autotools pkgconfig gettext gobject-introspection
+
+FILES_${PN} += "${datadir}/telepathy \
+                ${datadir}/dbus-1"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-idle/fix-svc-gtk-doc.h-target.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-idle/fix-svc-gtk-doc.h-target.patch
new file mode 100644
index 0000000..2cd2c78
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-idle/fix-svc-gtk-doc.h-target.patch
@@ -0,0 +1,15 @@
+Upstream-Status: Pending
+
+Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
+--- a/extensions/Makefile.am
++++ b/extensions/Makefile.am
+@@ -37,8 +37,8 @@ _gen/all.xml: all.xml $(wildcard $(srcdi
+ 		--xinclude $(tools_dir)/identity.xsl \
+ 		$< > $@
+ 
+-extensions.html: _gen/all.xml $(tools_dir)/doc-generator.xsl
++extensions.html _gen/svc-gtk-doc.h: _gen/all.xml $(tools_dir)/doc-generator.xsl
+ 	$(AM_V_GEN)$(XSLTPROC) $(XSLTPROCFLAGS) \
+ 		$(tools_dir)/doc-generator.xsl \
+ 		$< > $@
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-idle_0.2.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-idle_0.2.0.bb
new file mode 100644
index 0000000..ca09f6d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-idle_0.2.0.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Telepathy IRC connection manager"
+DESCRIPTION = "Telepathy implementation of the Internet Relay Chat protocols."
+HOMEPAGE = "http://telepathy.freedesktop.org/wiki/"
+DEPENDS = "glib-2.0 dbus telepathy-glib openssl libxslt-native"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1 \
+                    file://src/idle.c;beginline=1;endline=19;md5=b06b1e2594423111a1a7910b0eefc7f9"
+
+SRC_URI = "http://telepathy.freedesktop.org/releases/${BPN}/${BPN}-${PV}.tar.gz \
+           file://fix-svc-gtk-doc.h-target.patch"
+SRC_URI[md5sum] = "92a2de5198284cbd3c430b0d1a971a86"
+SRC_URI[sha256sum] = "3013ad4b38d14ee630b8cc8ada5e95ccaa849b9a6fe15d2eaf6d0717d76f2fab"
+
+inherit autotools pkgconfig pythonnative
+
+FILES_${PN} += "${datadir}/telepathy \
+                ${datadir}/dbus-1"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-mission-control/tmc-Makefile-fix-race.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-mission-control/tmc-Makefile-fix-race.patch
new file mode 100644
index 0000000..ece1da6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-mission-control/tmc-Makefile-fix-race.patch
@@ -0,0 +1,76 @@
+From: Robert Yang <liezhi.yang@windriver.com>
+Date: Sun, 22 Sep 2013 23:21:01 -0400
+Subject: [PATCH] src/Makefile.am: fix race issue for _gen/gtypes.h and _gen/gtypes-body.h
+
+There might be an error when parallel build:
+
+[snip]
+Traceback (most recent call last):
+  File "/path/to/tools/glib-gtypes-generator.py", line 304, in <module>
+    GTypesGenerator(dom, argv[1], argv[2])()
+  File "/path/to/tools/glib-gtypes-generator.py", line 295, in __call__
+    file_set_contents(self.output + '.h', ''.join(self.header))
+  File "/path/to/tools/libtpcodegen.py", line 42, in file_set_contents
+    os.rename(filename + '.tmp', filename)
+OSError: [Errno 2] No such file or directory
+[snip]
+
+This is a race issue, the _gen/gtypes.h and _gen/gtypes-body.h may
+write(remove/rename) _gen/gtypes.tmp at the same time, then there would
+be the error.
+
+There was a similar bug in telepathy-glib which was already fixed, we use the
+similar patch to fix it.
+
+Upstream-Status: Pending
+
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+---
+ src/Makefile.am |   18 +++++++++++++++---
+ 1 file changed, 15 insertions(+), 3 deletions(-)
+
+diff --git a/src/Makefile.am b/src/Makefile.am
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -288,7 +288,11 @@ _gen/interfaces-body.h: _gen/mcd.xml \
+ 		$(tools_dir)/glib-interfaces-body-generator.xsl \
+ 		$< > $@
+ 
+-_gen/gtypes.h _gen/gtypes-body.h: _gen/mcd.xml \
++# do nothing, output as a side-effect
++_gen/gtypes.h: _gen/gtypes-body.h
++	@:
++
++_gen/gtypes-body.h: _gen/mcd.xml \
+ 	$(top_srcdir)/tools/glib-gtypes-generator.py
+ 	$(AM_V_GEN)$(PYTHON) $(top_srcdir)/tools/glib-gtypes-generator.py \
+ 		$< _gen/gtypes mc
+@@ -309,7 +313,11 @@ _gen/%.xml: %.xml $(wildcard $(top_srcdir)/xml/*.xml) Makefile.am
+ 	$(AM_V_GEN)$(XSLTPROC) $(XSLTPROCFLAGS) --xinclude $(tools_dir)/identity.xsl \
+ 		$< > $@
+ 
+-_gen/cli-%-body.h _gen/cli-%.h: _gen/%.xml \
++# do nothing, output as a side-effect
++_gen/cli-%.h: _gen/cli-%-body.h
++	@:
++
++_gen/cli-%-body.h: _gen/%.xml \
+ 	$(tools_dir)/glib-client-gen.py Makefile.am
+ 	$(AM_V_GEN)$(PYTHON) $(tools_dir)/glib-client-gen.py \
+ 		--group=`echo $* | tr x- x_` \
+@@ -317,7 +325,11 @@ _gen/cli-%-body.h _gen/cli-%.h: _gen/%.xml \
+ 		--tp-proxy-api=0.7.6 \
+ 		$< Mc_Cli _gen/cli-$*
+ 
+-_gen/svc-%.c _gen/svc-%.h: _gen/%.xml \
++# do nothing, output as a side-effect
++_gen/svc-%.h: _gen/svc-%.c
++	@:
++
++_gen/svc-%.c: _gen/%.xml \
+ 	$(tools_dir)/glib-ginterface-gen.py Makefile.am
+ 	$(AM_V_GEN)$(PYTHON) $(tools_dir)/glib-ginterface-gen.py \
+ 		--filename=_gen/svc-$* \
+-- 
+1.7.10.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-mission-control_5.16.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-mission-control_5.16.1.bb
new file mode 100644
index 0000000..9ae68dd
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-mission-control_5.16.1.bb
@@ -0,0 +1,51 @@
+SUMMARY = "Central control for Telepathy IM connection managers"
+HOMEPAGE = "http://telepathy.freedesktop.org/wiki/Mission_Control/"
+LICENSE = "LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499 \
+                    file://src/request.h;beginline=1;endline=21;md5=f80534d9af1c33291b3b79609f196eb2"
+SECTION = "libs"
+DEPENDS = "libtelepathy dbus-glib gconf libxslt-native"
+
+SRC_URI = "http://telepathy.freedesktop.org/releases/telepathy-mission-control/${BP}.tar.gz \
+           file://tmc-Makefile-fix-race.patch \
+          "
+SRC_URI[md5sum] = "421115a35b9e427807326877f86e7f43"
+SRC_URI[sha256sum] = "14ceb7d53535b43d44b8271ad11319d1d0fe6d193d154636b9e62b42799b9723"
+
+inherit autotools-brokensep pkgconfig pythonnative
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[upower] = "--enable-upower,--disable-upower,upower"
+
+# to select connman or nm you need to use "connectivity" and "connman" or "nm", default is to disable both
+PACKAGECONFIG[connectivity] = ",--with-connectivity=no"
+PACKAGECONFIG[connman] = "--with-connectivity=connman,,connman"
+PACKAGECONFIG[nm] = "--with-connectivity=nm,,networkmanager"
+
+PACKAGES =+ " \
+	libmissioncontrol \
+	libmissioncontrol-config \
+	libmissioncontrol-server \
+	libmissioncontrol-dev \
+	libmissioncontrol-config-dev \
+	libmissioncontrol-server-dev \
+	libmissioncontrol-dbg \
+	libmissioncontrol-config-dbg \
+	libmissioncontrol-server-dbg \
+"
+
+FILES_${PN} += "${datadir}/dbus* ${datadir}/glib-2.0/schemas"
+
+FILES_libmissioncontrol = "${libdir}/libmissioncontrol.so.*"
+FILES_libmissioncontrol-config = "${libdir}/libmissioncontrol-config.so.*"
+FILES_libmissioncontrol-server = "${libdir}/libmissioncontrol-server.so.*"
+
+FILES_libmissioncontrol-dev = "${libdir}/libmissioncontrol.* \
+                               ${includedir}/libmissioncontrol/ \
+                               ${libdir}/pkgconfig/libmissioncontrol.pc"
+FILES_libmissioncontrol-config-dev = "${libdir}/libmissioncontrol-config.*"
+FILES_libmissioncontrol-server-dev = "${libdir}/libmissioncontrol-server.*"
+
+FILES_libmissioncontrol-dbg = "${libdir}/.debug/libmissioncontrol.so.*"
+FILES_libmissioncontrol-config-dbg = "${libdir}/.debug/libmissioncontrol-config.so.*"
+FILES_libmissioncontrol-server-dbg = "${libdir}/.debug/libmissioncontrol-server.so.*"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-python-0.15.19/parallel_make.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-python-0.15.19/parallel_make.patch
new file mode 100644
index 0000000..2488246
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-python-0.15.19/parallel_make.patch
@@ -0,0 +1,43 @@
+Add dependency of __init__.py
+
+Tasks must be done after exec of __init__, which creates the
+src/_generated directory that tasks are based on.
+
+Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
+
+Upstream-Status: Submitted
+(However it seems that this project is out of maintanence.)
+
+diff -ruN telepathy-python-0.15.19-orig/src/Makefile.am telepathy-python-0.15.19/src/Makefile.am
+--- telepathy-python-0.15.19-orig/src/Makefile.am	2011-03-10 08:51:49.000000000 +0800
++++ telepathy-python-0.15.19/src/Makefile.am	2011-03-10 08:54:45.000000000 +0800
+@@ -39,17 +39,17 @@
+ XSLTPROC_OPTS = --nonet --novalid --xinclude
+ tools_dir = $(top_srcdir)/tools
+ 
+-_generated/interfaces.py: $(tools_dir)/python-interfaces-generator.xsl $(wildcard $(spec_dir)/*.xml)
++_generated/interfaces.py: _generated/__init__.py $(tools_dir)/python-interfaces-generator.xsl $(wildcard $(spec_dir)/*.xml)
+ 	$(AM_V_GEN)$(XSLTPROC) $(XSLTPROC_OPTS) -o $@ \
+ 	    $(tools_dir)/python-interfaces-generator.xsl \
+ 	    $(spec_dir)/all.xml
+ 
+-_generated/constants.py: $(tools_dir)/python-constants-generator.xsl $(wildcard $(spec_dir)/*.xml)
++_generated/constants.py: _generated/__init__.py $(tools_dir)/python-constants-generator.xsl $(wildcard $(spec_dir)/*.xml)
+ 	$(AM_V_GEN)$(XSLTPROC) $(XSLTPROC_OPTS) -o $@ \
+ 	    $(tools_dir)/python-constants-generator.xsl \
+ 	    $(spec_dir)/all.xml
+ 
+-_generated/errors.py: $(tools_dir)/python-errors-generator.xsl $(wildcard $(spec_dir)/*.xml)
++_generated/errors.py: _generated/__init__.py $(tools_dir)/python-errors-generator.xsl $(wildcard $(spec_dir)/*.xml)
+ 	$(AM_V_GEN)$(XSLTPROC) $(XSLTPROC_OPTS) -o $@ \
+ 	    $(tools_dir)/python-errors-generator.xsl \
+ 	    $(spec_dir)/all.xml
+@@ -58,7 +58,7 @@
+ 	$(AM_V_GEN)$(mkdir_p) $(dir $@)
+ 	@echo "# Placeholder for package" > $@
+ 
+-_generated/%.py: $(tools_dir)/spec-to-python.xsl $(spec_dir)/%.xml
++_generated/%.py: _generated/__init__.py $(tools_dir)/spec-to-python.xsl $(spec_dir)/%.xml
+ 	$(AM_V_GEN)$(XSLTPROC) $(XSLTPROC_OPTS) -o $@ \
+ 	    $(tools_dir)/spec-to-python.xsl \
+ 	    $(spec_dir)/$*.xml
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-python-0.15.19/remove_duplicate_install.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-python-0.15.19/remove_duplicate_install.patch
new file mode 100644
index 0000000..df95a4c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-python-0.15.19/remove_duplicate_install.patch
@@ -0,0 +1,26 @@
+commit f6c67662145de889055a86a6b3b12c70a45fc8d5
+Author: Dongxiao Xu <dongxiao.xu@intel.com>
+Date:   Wed Sep 7 16:02:20 2011 +0800
+
+    Avoid duplicated installation of errors.py
+    
+    newer version of autotools don't seem to like listing files to install
+    twice. Remove one errors.py from the installation list.
+    
+    Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
+    
+    Upstream-Status: Inappropirate [upstream inactive]
+    
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 5c27dfe..7536e43 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -11,7 +11,7 @@ telepathy_PYTHON = \
+ 
+ # telepathy._generated.* auto-generated modules
+ spec_dir = $(top_srcdir)/spec
+-spec_files := $(patsubst $(spec_dir)%.xml,_generated%.py,$(wildcard $(spec_dir)/*.xml))
++spec_files := $(filter-out _generated/errors.py, $(patsubst $(spec_dir)%.xml,_generated%.py,$(wildcard $(spec_dir)/*.xml)))
+ 
+ BUILT_SOURCES = \
+ 	_generated/interfaces.py \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-python-0.15.19/telepathy-python_fix_for_automake_1.12.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-python-0.15.19/telepathy-python_fix_for_automake_1.12.patch
new file mode 100644
index 0000000..f613fdc
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-python-0.15.19/telepathy-python_fix_for_automake_1.12.patch
@@ -0,0 +1,26 @@
+Upstream-Status: Pending
+
+automake 1.12 has deprecated use of mkdir_p, and it recommends
+use of MKDIR_P instead. Changed the code to avoid these kind 
+of warning-errors.
+
+| make[1]: _generated/: Command not found
+| make[1]: *** [_generated/__init__.py] Error 127
+| make[1]: Leaving directory `/srv/home/nitin/builds2/build0/tmp/work/i586-poky-linux/telepathy-python-0.15.19-r4/telepathy-python-0.15.19/src'
+| make: *** [all-recursive] Error 1
+
+Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
+2012/07/10
+Index: telepathy-python-0.15.19/src/Makefile.am
+===================================================================
+--- telepathy-python-0.15.19.orig/src/Makefile.am
++++ telepathy-python-0.15.19/src/Makefile.am
+@@ -55,7 +55,7 @@ _generated/errors.py: _generated/__init_
+ 	    $(spec_dir)/all.xml
+ 
+ _generated/__init__.py:
+-	$(AM_V_GEN)$(mkdir_p) $(dir $@)
++	$(AM_V_GEN)$(MKDIR_P) $(dir $@)
+ 	@echo "# Placeholder for package" > $@
+ 
+ _generated/%.py: _generated/__init__.py $(tools_dir)/spec-to-python.xsl $(spec_dir)/%.xml
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-python_0.15.19.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-python_0.15.19.bb
new file mode 100644
index 0000000..b7aea24
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/telepathy/telepathy-python_0.15.19.bb
@@ -0,0 +1,32 @@
+SUMMARY = "Telepathy IM framework - Python package"
+HOMEPAGE = "http://telepathy.freedesktop.org/wiki/"
+LICENSE = "LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1 \
+                    file://src/utils.py;beginline=1;endline=17;md5=9a07d1a9791a7429a14e7b25c6c86822"
+
+DEPENDS = "libxslt-native"
+RDEPENDS_${PN} += "python-dbus"
+
+SRC_URI = "http://telepathy.freedesktop.org/releases/${BPN}/${BPN}-${PV}.tar.gz \
+           file://parallel_make.patch \
+           file://remove_duplicate_install.patch \
+           file://telepathy-python_fix_for_automake_1.12.patch"
+
+PR = "r6"
+
+inherit autotools pythonnative
+
+SRC_URI[md5sum] = "f7ca25ab3c88874015b7e9728f7f3017"
+SRC_URI[sha256sum] = "244c0e1bf4bbd78ae298ea659fe10bf3a73738db550156767cc2477aedf72376"
+
+FILES_${PN} += "\
+    ${libdir}/python*/site-packages/telepathy/*.py \
+    ${libdir}/python*/site-packages/telepathy/*/*.py \
+"
+
+do_install_append () {
+    rm -f ${D}${libdir}/python*/site-packages/telepathy/*.pyc
+    rm -f ${D}${libdir}/python*/site-packages/telepathy/*.pyo
+    rm -f ${D}${libdir}/python*/site-packages/telepathy/*/*.pyc
+    rm -f ${D}${libdir}/python*/site-packages/telepathy/*/*.pyo
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/umip/umip_1.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/umip/umip_1.0.bb
new file mode 100644
index 0000000..e80c1b1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/umip/umip_1.0.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Mobile IPv6 and NEMO for Linux"
+DESCRIPTION = "UMIP is an open source implementation of Mobile IPv6 and NEMO \
+Basic Support for Linux. It is released under the GPLv2 license. It supports \
+the following IETF RFC: RFC6275 (Mobile IPv6), RFC3963 (NEMO), RFC3776 and \
+RFC4877 (IPsec and IKEv2)."
+HOMEPAGE = "http://umip.org/"
+SECTION = "System Environment/Base"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=073dc31ccb2ebed70db54f1e8aeb4c33"
+DEPENDS = "rpm indent-native"
+
+SRC_URI = "git://git.umip.org/umip.git"
+SRCREV = "428974c2d0d8e75a2750a3ab0488708c5dfdd8e3"
+
+S = "${WORKDIR}/git"
+EXTRA_OE_CONF = "--enable-vt"
+
+inherit autotools-brokensep
+
+PARALLEL_MAKE = ""
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/usbmuxd/usbmuxd_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/usbmuxd/usbmuxd_git.bb
new file mode 100644
index 0000000..52bf811
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/usbmuxd/usbmuxd_git.bb
@@ -0,0 +1,24 @@
+DESCRIPTION = "This daemon is in charge of multiplexing connections over USB to an iPhone or iPod touch."
+LICENSE = "GPLv3 & GPLv2 & LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=ebb5c50ab7cab4baeffba14977030c07 \
+                    file://COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \
+                    file://COPYING.LGPLv2.1;md5=6ab17b41640564434dda85c06b7124f7"
+
+DEPENDS = "udev libusb1"
+
+inherit cmake pkgconfig gitpkgv
+
+PKGV = "${GITPKGVTAG}"
+
+SRCREV = "919587580c5e77f3936f3432115d2e10c7bac7c5"
+SRC_URI = "git://git.sukimashita.com/usbmuxd.git;protocol=http"
+
+S = "${WORKDIR}/git"
+
+FILES_${PN} += "${base_libdir}/udev/rules.d/"
+
+# fix usbmuxd installing files to /usr/lib64 on 64bit hosts:
+EXTRA_OECMAKE = "-DLIB_SUFFIX=${@d.getVar('baselib', True).replace('lib', '')}"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[plist] = "-DWANT_PLIST=1,-DWANT_PLIST=0,libplist"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvdial/typo_pon.wvdial.1.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvdial/typo_pon.wvdial.1.patch
new file mode 100644
index 0000000..eec5a5d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvdial/typo_pon.wvdial.1.patch
@@ -0,0 +1,20 @@
+Remove warnings found by lintian
+Last-Update: 2011-01-09
+Index: wvdial-1.61/pon.wvdial.1
+===================================================================
+--- wvdial-1.61.orig/pon.wvdial.1	2011-01-09 21:33:03.000000000 +0300
++++ wvdial-1.61/pon.wvdial.1	2011-01-09 21:33:15.000000000 +0300
+@@ -8,13 +8,11 @@
+ .SH DESCRIPTION
+ .B pon.wvdial
+ .br
+-.TR
+ .B poff.wvdial
+ .br
+ .RS
+ Replacement scripts for pon and poff.
+ .RE
+-\."
+ .SH SEE ALSO
+ .BR wvdial (1),
+ .BR pon (1),
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvdial_1.61.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvdial_1.61.bb
new file mode 100644
index 0000000..f7adf4c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvdial_1.61.bb
@@ -0,0 +1,30 @@
+HOMEPAGE = "http://www.alumnit.ca/wiki/?WvDial"
+DESCRIPTION = "WvDial is a program that makes it easy to connect your Linux workstation to the Internet."
+
+LICENSE = "LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605"
+
+DEPENDS = "wvstreams"
+RDEPENDS_${PN} = "ppp"
+
+SRC_URI = "http://${BPN}.googlecode.com/files/${BP}.tar.bz2 \
+           file://typo_pon.wvdial.1.patch \
+          "
+
+SRC_URI[md5sum] = "37e9a2d664effe4efd44c0e1a20136de"
+SRC_URI[sha256sum] = "99906d9560cbdbc97e1855e7b0a7169f1e11983be3ac539140423f09debced82"
+
+EXTRA_OEMAKE = ""
+export WVLINK="${LD}"
+
+PARALLEL_MAKE = ""
+
+BUILD_CPPFLAGS += "-I${STAGING_INCDIR}/wvstreams"
+
+do_configure() {
+    sed -i 's/LDFLAGS+=-luniconf/LIBS+=-luniconf/' ${S}/Makefile
+}
+
+do_install() {
+    oe_runmake prefix=${D}/usr PPPDIR=${D}/etc/ppp/peers install
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams/04_signed_request.diff b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams/04_signed_request.diff
new file mode 100644
index 0000000..5ab633b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams/04_signed_request.diff
@@ -0,0 +1,13 @@
+Index: wvstreams-4.6/crypto/wvx509.cc
+===================================================================
+--- wvstreams-4.6.orig/crypto/wvx509.cc	2009-07-29 11:58:16.000000000 -0400
++++ wvstreams-4.6/crypto/wvx509.cc	2009-07-29 11:58:43.000000000 -0400
+@@ -325,7 +325,7 @@
+     }
+ 
+     int verify_result = X509_REQ_verify(certreq, pk);
+-    if (verify_result == 0)
++    if (verify_result == 0 || verify_result == -1)
+     {
+ 	debug(WvLog::Warning, "Self signed request failed");
+ 	X509_REQ_free(certreq);
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams/05_gcc.diff b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams/05_gcc.diff
new file mode 100644
index 0000000..8e4fd03
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams/05_gcc.diff
@@ -0,0 +1,41 @@
+Index: wvstreams-4.6.1/crypto/wvx509.cc
+===================================================================
+--- wvstreams-4.6.1.orig/crypto/wvx509.cc	2011-05-20 00:02:38.119136584 +0200
++++ wvstreams-4.6.1/crypto/wvx509.cc	2011-05-20 00:02:26.035136589 +0200
+@@ -1157,7 +1157,7 @@
+         
+         if (ext)
+         {
+-            X509V3_EXT_METHOD *method = X509V3_EXT_get(ext);
++            X509V3_EXT_METHOD *method = (X509V3_EXT_METHOD *)X509V3_EXT_get(ext);
+             if (!method)
+             {
+                 WvDynBuf buf;
+Index: wvstreams-4.6.1/ipstreams/wvunixdgsocket.cc
+===================================================================
+--- wvstreams-4.6.1.orig/ipstreams/wvunixdgsocket.cc	2011-05-20 00:02:38.391136584 +0200
++++ wvstreams-4.6.1/ipstreams/wvunixdgsocket.cc	2011-05-20 00:02:35.283136585 +0200
+@@ -1,8 +1,6 @@
+ #include "wvunixdgsocket.h"
+-#ifdef MACOS
+ #include <sys/types.h>
+ #include <sys/stat.h>
+-#endif
+ 
+ WvUnixDGSocket::WvUnixDGSocket(WvStringParm filename, bool _server, int perms)
+     : socketfile(filename)
+Index: wvstreams-4.6.1/streams/wvatomicfile.cc
+===================================================================
+--- wvstreams-4.6.1.orig/streams/wvatomicfile.cc	2011-05-20 00:02:38.223136584 +0200
++++ wvstreams-4.6.1/streams/wvatomicfile.cc	2011-05-20 00:02:31.619136587 +0200
+@@ -10,10 +10,7 @@
+ #include "wvatomicfile.h"
+ #include "wvfileutils.h"
+ #include "wvstrutils.h"
+-
+-#ifdef MACOS
+ #include <sys/stat.h>
+-#endif
+ 
+ WvAtomicFile::WvAtomicFile(WvStringParm filename, int flags, mode_t create_mode)
+     : tmp_file(WvString::null)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams/06_gcc-4.7.diff b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams/06_gcc-4.7.diff
new file mode 100644
index 0000000..a75067a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams/06_gcc-4.7.diff
@@ -0,0 +1,18 @@
+Description: Fix FTBFS with gcc-4.7
+ Small header include change. This is borderlinde cosmetic, but still needed
+ to prevent the FTBFS.
+Author: Paul Tagliamonte <paultag@ubuntu.com>
+Origin: vendor
+Bug-Debian: http://bugs.debian.org/667418
+Last-Update: 2012-04-13
+
+--- wvstreams-4.6.1.orig/utils/wvuid.cc
++++ wvstreams-4.6.1/utils/wvuid.cc
+@@ -33,6 +33,7 @@ wvuid_t wvgetuid()
+ 
+ #else // not WIN32
+ 
++#include <unistd.h>
+ 
+ WvString wv_username_from_uid(wvuid_t uid)
+ {
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams/07_buildflags.diff b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams/07_buildflags.diff
new file mode 100644
index 0000000..ec99dcd
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams/07_buildflags.diff
@@ -0,0 +1,32 @@
+Index: b/gen-cc
+===================================================================
+--- a/gen-cc
++++ b/gen-cc
+@@ -15,6 +15,11 @@
+ 	shift
+ 	shift
+ 	
++	echo $CC \$MODE -o \$BASE.o \$BASE.$EXT \\
++	        -MMD -MF \$DEPFILE -MP -MQ \$BASE.o \\
++	        $CPPFLAGS \\
++	        $CFLAGS \\
++	        "\$@"
+ 	$CC \$MODE -o \$BASE.o \$BASE.$EXT \\
+ 	        -MMD -MF \$DEPFILE -MP -MQ \$BASE.o \\
+ 	        $CPPFLAGS \\
+Index: b/wvrules-posix.mk
+===================================================================
+--- a/wvrules-posix.mk
++++ b/wvrules-posix.mk
+@@ -35,11 +35,6 @@
+ # Default compiler we use for linking
+ WVLINK_CC = $(CXX)
+ 
+-ifneq ("$(enable_optimization)", "no")
+-  CXXFLAGS+=-O2
+-  CFLAGS+=-O2
+-endif
+-
+ ifneq ("$(enable_warnings)", "no")
+   CXXFLAGS+=-Wall -Woverloaded-virtual
+   CFLAGS+=-Wall
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams_4.6.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams_4.6.1.bb
new file mode 100644
index 0000000..6199a2f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams_4.6.1.bb
@@ -0,0 +1,48 @@
+HOMEPAGE = "http://alumnit.ca/wiki/index.php?page=WvStreams"
+SUMMARY = "WvStreams is a network programming library in C++"
+
+LICENSE = "LGPLv2"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=55ca817ccb7d5b5b66355690e9abc605"
+
+DEPENDS = "zlib openssl (>= 0.9.8) dbus readline"
+
+SRC_URI = "http://${BPN}.googlecode.com/files/${BP}.tar.gz \
+           file://04_signed_request.diff \
+           file://05_gcc.diff \
+           file://06_gcc-4.7.diff \
+           file://07_buildflags.diff \
+          "
+
+SRC_URI[md5sum] = "2760dac31a43d452a19a3147bfde571c"
+SRC_URI[sha256sum] = "8403f5fbf83aa9ac0c6ce15d97fd85607488152aa84e007b7d0621b8ebc07633"
+
+inherit autotools-brokensep pkgconfig
+
+PARALLEL_MAKE = ""
+
+TARGET_CFLAGS_append = " -fno-tree-dce -fno-optimize-sibling-calls"
+
+LDFLAGS_append = " -Wl,-rpath-link,${CROSS_DIR}/${TARGET_SYS}/lib"
+
+EXTRA_OECONF = " --without-tcl --without-qt --without-pam --without-valgrind"
+
+PACKAGES_prepend = "libuniconf libuniconf-dbg "
+PACKAGES_prepend = "uniconfd uniconfd-dbg "
+PACKAGES_prepend = "libwvstreams-base libwvstreams-base-dbg "
+PACKAGES_prepend = "libwvstreams-extras libwvstreams-extras-dbg "
+PACKAGES_prepend = "${PN}-valgrind "
+
+FILES_libuniconf     = "${libdir}/libuniconf.so.*"
+FILES_libuniconf-dbg = "${libdir}/.debug/libuniconf.so.*"
+
+FILES_uniconfd     = "${sbindir}/uniconfd ${sysconfdir}/uniconf.conf ${localstatedir}/uniconf"
+FILES_uniconfd-dbg = "${sbindir}/.debug/uniconfd"
+
+FILES_libwvstreams-base     = "${libdir}/libwvutils.so.*"
+FILES_libwvstreams-base-dbg = "${libdir}/.debug/libwvutils.so.*"
+
+FILES_libwvstreams-extras     = "${libdir}/libwvbase.so.* ${libdir}/libwvstreams.so.*"
+FILES_libwvstreams-extras-dbg = "${libdir}/.debug/libwvbase.so.* ${libdir}/.debug/libwvstreams.so.*"
+
+FILES_${PN}-valgrind = "${libdir}/valgrind/wvstreams.supp"
+RDEPENDS_${PN} += "perl"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zabbix/zabbix/0001-Fix-configure.ac.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zabbix/zabbix/0001-Fix-configure.ac.patch
new file mode 100644
index 0000000..af14a1a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zabbix/zabbix/0001-Fix-configure.ac.patch
@@ -0,0 +1,23 @@
+uname can not get version of kernel correctly while cross compile
+
+Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 523899b..4e6ae0d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -924,7 +924,7 @@ AC_MSG_RESULT([$ARCH ($host_os)])
+ if test "x$ARCH" = "xlinux"; then
+ 	AC_MSG_CHECKING([for the linux kernel version])
+ 
+-	kernel=`uname -r`
++	kernel="${KERNEL_VERSION}"
+ 
+ 	case "${kernel}" in
+ 		2.6.*)
+-- 
+1.8.3.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zabbix/zabbix/zabbix-agent.service b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zabbix/zabbix/zabbix-agent.service
new file mode 100644
index 0000000..b18a96f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zabbix/zabbix/zabbix-agent.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Zabbix Monitor Agent
+After=syslog.target network.target
+
+[Service]
+Type=oneshot
+ExecStart=@SBINDIR@/zabbix_agentd
+RemainAfterExit=yes
+User=zabbix
+
+[Install]
+WantedBy=multi-user.target
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zabbix/zabbix_2.4.7.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zabbix/zabbix_2.4.7.bb
new file mode 100644
index 0000000..c2c4eae
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zabbix/zabbix_2.4.7.bb
@@ -0,0 +1,72 @@
+SUMMARY = "Open-source monitoring solution for your IT infrastructure"
+DESCRIPTION = "\
+ZABBIX is software that monitors numerous parameters of a network and the \
+health and integrity of servers. ZABBIX uses a flexible notification \
+mechanism that allows users to configure e-mail based alerts for virtually \
+any event. This allows a fast reaction to server problems. ZABBIX offers \
+excellent reporting and data visualisation features based on the stored \
+data. This makes ZABBIX ideal for capacity planning. \
+\
+ZABBIX supports both polling and trapping. All ZABBIX reports and \
+statistics, as well as configuration parameters are accessed through a \
+web-based front end. A web-based front end ensures that the status of \
+your network and the health of your servers can be assessed from any \
+location. Properly configured, ZABBIX can play an important role in \
+monitoring IT infrastructure. This is equally true for small \
+organisations with a few servers and for large companies with a \
+multitude of servers."
+HOMEPAGE = "http://www.zabbix.com/"
+SECTION = "Applications/Internet"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=300e938ad303147fede2294ed78fe02e"
+DEPENDS  = "openldap virtual/libiconv"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+SRC_URI = "http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/${PV}/${BPN}-${PV}.tar.gz \
+           file://0001-Fix-configure.ac.patch \
+           file://zabbix-agent.service"
+
+SRC_URI[md5sum] = "9f8aeb11d8415585f41c3f2f22566b78"
+SRC_URI[sha256sum] = "d2c47b8f5b9b91f18010d54c45de55845d979014a8b3fe4bef64e0b08f8b00da"
+
+inherit autotools-brokensep linux-kernel-base pkgconfig systemd useradd
+
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE_${PN} = "zabbix-agent.service"
+SYSTEMD_AUTO_ENABLE = "enable"
+
+USERADD_PACKAGES = "${PN}"
+GROUPADD_PARAM_${PN} = "-r zabbix"
+USERADD_PARAM_${PN} = "-r -g zabbix -d /var/lib/zabbix \
+                       -s /sbin/nologin -c \"Zabbix Monitoring System\" zabbix"
+
+KERNEL_VERSION = "${@get_kernelversion_headers('${STAGING_KERNEL_DIR}')}"
+
+EXTRA_OECONF = '--enable-dependency-tracking \
+	        --enable-agent \
+	        --enable-ipv6 \
+	        --with-net-snmp \
+	        --with-ldap=${STAGING_EXECPREFIXDIR} \
+	        --with-jabber \
+	        --with-unixodbc \
+	        --with-ssh2 \
+	        --with-sqlite3 \
+	        '
+CFLAGS_append += "-lldap -llber"
+
+do_configure_prepend() {
+    export KERNEL_VERSION="${KERNEL_VERSION}"
+}
+
+do_install_append() {
+    if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+        install -d ${D}${systemd_unitdir}/system
+	install -m 0644 ${WORKDIR}/zabbix-agent.service ${D}${systemd_unitdir}/system/
+        sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/zabbix-agent.service
+    fi
+}
+
+FILES_${PN} += "${libdir}"
+
+RDEPENDS_${PN} = "logrotate"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice-3.5.1/0002-Modify-Makefile-for-cross-compile.patch b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice-3.5.1/0002-Modify-Makefile-for-cross-compile.patch
new file mode 100644
index 0000000..43096d2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice-3.5.1/0002-Modify-Makefile-for-cross-compile.patch
@@ -0,0 +1,292 @@
+Upstream-Status: Inappropriate
+
+This patch lets you build Ice with OpenEmbedded. I doubt you could do
+a regular build after applying this patch.
+
+From bc622ce74fa03a935278d21736a5a251466e1798 Mon Sep 17 00:00:00 2001
+From: Tom Rondeau <tom@trondeau.com>
+Date: Wed, 16 Apr 2014 14:34:51 -0400
+Subject: [PATCH] Modify Makefiles for cross compile
+
+---
+ config/Make.common.rules           |   20 +++++++------
+ cpp/Makefile                       |    9 +++---
+ cpp/config/Make.rules              |   32 ++++++++++++--------
+ cpp/config/Make.rules.Linux        |   18 ++---------
+ cpp/src/IceStorm/FreezeDB/Makefile |    2 +-
+ py/config/Make.rules               |   58 +++++++++++++++++++-----------------
+ 6 files changed, 70 insertions(+), 69 deletions(-)
+
+diff --git a/config/Make.common.rules b/config/Make.common.rules
+index d7b1d59..a3fb17e 100644
+--- a/config/Make.common.rules
++++ b/config/Make.common.rules
+@@ -65,9 +65,9 @@ ifeq ($(UNAME),Linux)
+       #
+       # Some Linux distributions like Debian/Ubuntu don't use /usr/lib64.
+       #
+-      ifeq ($(shell test -d /usr/lib64 && echo 0),0)
+-          lp64suffix	= 64
+-      endif
++      #ifeq ($(shell test -d /usr/lib64 && echo 0),0)
++      #    lp64suffix	= 64
++      #endif
+       ifeq ($(LP64),)
+           LP64      	= yes
+       endif
+@@ -244,12 +244,13 @@ else
+     slicedir = $(ice_dir)/slice
+ endif
+ 
+-ifeq ($(prefix), /usr)
+-    install_slicedir = /usr/share/Ice-$(VERSION)/slice
+-else
+-    install_slicedir = $(prefix)/slice
+-endif
++#ifeq ($(prefix), /usr)
++#    install_slicedir = /usr/share/Ice-$(VERSION)/slice
++#else
++#    install_slicedir = $(prefix)/slice
++#endif
+ 
++install_slicedir = $(prefix)/slice
+ #
+ # Set environment variables for the Slice translator.
+ #
+@@ -265,7 +266,8 @@ ifneq ($(ice_dir), /usr)
+     endif
+ 
+     ifeq ($(UNAME),Linux)
+-        export LD_LIBRARY_PATH := $(ice_lib_dir):$(LD_LIBRARY_PATH)
++        #export LD_LIBRARY_PATH := $(ice_lib_dir):$(LD_LIBRARY_PATH)
++        export LD_LIBRARY_PATH := $(ICE_HOME)/lib:$(LD_LIBRARY_PATH)
+     endif
+ 
+     ifeq ($(UNAME),SunOS)
+diff --git a/cpp/Makefile b/cpp/Makefile
+index a68f113..1f44f57 100644
+--- a/cpp/Makefile
++++ b/cpp/Makefile
+@@ -11,11 +11,12 @@ top_srcdir	= .
+ 
+ include $(top_srcdir)/config/Make.rules
+ 
+-SUBDIRS		= config src include test
++#SUBDIRS		= config src include test
++SUBDIRS		= config src include
+ 
+-ifeq ($(shell uname | grep MINGW),)
+-SUBDIRS		:= $(SUBDIRS) demo
+-endif
++#ifeq ($(shell uname | grep MINGW),)
++#SUBDIRS		:= $(SUBDIRS) demo
++#endif
+ 
+ INSTALL_SUBDIRS	= $(install_bindir) $(install_libdir) $(install_includedir) \
+ 	$(install_configdir) $(install_mandir)
+diff --git a/cpp/config/Make.rules b/cpp/config/Make.rules
+index 37461ae..197c5e8 100644
+--- a/cpp/config/Make.rules
++++ b/cpp/config/Make.rules
+@@ -175,11 +175,12 @@ headerdir		= $(top_srcdir)/include
+ # includedir is not handled the same as bindir and libdir
+ # because it is used in the .depend files
+ #
+-ifdef ice_src_dist
+-    includedir		= $(top_srcdir)/include
+-else
+-    includedir		= $(ice_dir)/include
+-endif
++#ifdef ice_src_dist
++#    includedir		= $(top_srcdir)/include
++#else
++#    includedir		= $(ice_dir)/include
++#endif
++includedir		= $(top_srcdir)/include
+ 
+ #
+ # Platform specific definitions
+@@ -277,14 +278,17 @@ ICECPPFLAGS		= -I$(slicedir)
+ SLICE2CPPFLAGS		= $(ICECPPFLAGS)
+ 
+ ifeq ($(ice_dir), /usr) 
+-    LDFLAGS		= $(LDPLATFORMFLAGS) $(CXXFLAGS)
++    LDFLAGS		+= $(LDPLATFORMFLAGS) $(CXXFLAGS)
+ else
+     CPPFLAGS	+= -I$(includedir)
+-    ifdef ice_src_dist
+-	LDFLAGS	= $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(libdir)
+-    else
+-	LDFLAGS	= $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(ice_dir)/$(libsubdir)$(cpp11suffix)
+-    endif
++# We must always build using the libraries in the source tree, the host's are obviously
++# not what we want for the target
++    LDFLAGS	+= $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(libdir) $(call rpathlink,$(libdir))
++#    ifdef ice_src_dist
++#        LDFLAGS	= $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(libdir)
++#    else
++#	LDFLAGS	= $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(ice_dir)/$(libsubdir)$(cpp11suffix)
++#    endif
+ endif
+ 
+ ifeq ($(FLEX_NOLINE),yes)
+@@ -313,8 +317,10 @@ endif
+ 
+ ifdef ice_src_dist
+     SLICEPARSERLIB	= $(libdir)/$(call mklibfilename,Slice,$(VERSION))
+-    SLICE2CPP		= $(bindir)/slice2cpp
+-    SLICE2FREEZE	= $(bindir)/slice2freeze
++#    SLICE2CPP		= $(bindir)/slice2cpp
++#    SLICE2FREEZE	= $(bindir)/slice2freeze
++    SLICE2CPP		= $(ICE_HOME)/bin/slice2cpp
++    SLICE2FREEZE	= $(ICE_HOME)/bin/slice2freeze
+ else
+     SLICEPARSERLIB	= $(ice_dir)/$(libsubdir)$(cpp11suffix)/$(call mklibfilename,Slice,$(VERSION))
+     SLICE2CPP		= $(ice_dir)/$(binsubdir)$(cpp11suffix)/slice2cpp
+diff --git a/cpp/config/Make.rules.Linux b/cpp/config/Make.rules.Linux
+index 5d5717c..8363c6e 100644
+--- a/cpp/config/Make.rules.Linux
++++ b/cpp/config/Make.rules.Linux
+@@ -31,7 +31,7 @@ ifeq ($(CXX),c++)
+    CXX			= g++
+ endif
+ 
+-ifeq ($(CXX),g++)
++#ifeq ($(CXX),g++)
+ 
+     ifneq ($(SUSE_i586),)
+         CXXARCHFLAGS	+= -march=i586
+@@ -71,14 +71,6 @@ ifeq ($(CXX),g++)
+       CXXARCHFLAGS	+= -mtune=v8 -pipe -Wno-deprecated -DICE_USE_MUTEX_SHARED
+    endif
+ 
+-   ifeq ($(MACHINE),x86_64)
+-      ifeq ($(LP64),yes)
+-         CXXARCHFLAGS	+= -m64
+-      else
+-         CXXARCHFLAGS	+= -m32
+-      endif
+-   endif
+-
+    CXXFLAGS		= $(CXXARCHFLAGS) -Wall -Werror -pthread
+ 
+    ifneq ($(GENPIC),no)
+@@ -102,15 +94,11 @@ ifeq ($(CXX),g++)
+ 
+    rpathlink            = -Wl,-rpath-link,$(1) 
+ 
+-   ifneq ($(embedded_runpath_prefix),)
+-      LDPLATFORMFLAGS      = -Wl,--enable-new-dtags -Wl,-rpath,$(runpath_libdir)
+-   else
+-      LDPLATFORMFLAGS      = -Wl,--enable-new-dtags
+-   endif
++   LDPLATFORMFLAGS      = -Wl,--enable-new-dtags -Wl,-rpath,../../../lib
+ 
+    LDPLATFORMFLAGS	+= -rdynamic
+ 
+-endif
++#endif
+ 
+ ifeq ($(CXX),icpc)
+    $(warning ===================================================================) 
+diff --git a/cpp/src/IceStorm/FreezeDB/Makefile b/cpp/src/IceStorm/FreezeDB/Makefile
+index 7c844b7..cf15cb1 100644
+--- a/cpp/src/IceStorm/FreezeDB/Makefile
++++ b/cpp/src/IceStorm/FreezeDB/Makefile
+@@ -66,7 +66,7 @@ $(libdir)/$(LIBNAME): $(libdir)/$(SONAME)
+ 
+ $(MIGRATE): $(MOBJS)
+ 	rm -f $@
+-	$(CXX) $(LDFLAGS) -o $@ $(MOBJS) $(DB_RPATH_LINK) -lIceStormService -lIceStorm -lFreeze $(LIBS)
++	$(CXX) $(LDFLAGS) -o $@ $(MOBJS) $(DB_RPATH_LINK) -lIceStormService -lIceStorm -lFreeze $(LIBS) -ldb_cxx
+ 
+ # The slice2freeze rules are structured like this to avoid issues with
+ # parallel make.
+diff --git a/py/config/Make.rules b/py/config/Make.rules
+index 43ce01b..1349342 100644
+--- a/py/config/Make.rules
++++ b/py/config/Make.rules
+@@ -92,21 +92,23 @@ ifeq ($(shell test -f $(top_srcdir)/config/Make.rules.$(UNAME) && echo 0),0)
+     include $(top_srcdir)/config/Make.rules.$(UNAME)
+ else
+     include $(top_srcdir)/../cpp/config/Make.rules.$(UNAME)
+-endif 
++endif
+ 
+ libdir                  = $(top_srcdir)/python
+-ifneq ($(prefix), /usr)
+-install_pythondir       = $(prefix)/python
+-install_libdir          = $(prefix)/python
+-else
+-    ifeq ($(shell test -d $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/dist-packages && echo 0),0)
+-        install_pythondir       = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/dist-packages
+-        install_libdir          = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/dist-packages
+-    else
+-        install_pythondir       = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/site-packages
+-        install_libdir          = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/site-packages
+-    endif
+-endif
++#ifneq ($(prefix), /usr)
++#install_pythondir       = $(prefix)/python
++#install_libdir          = $(prefix)/python
++#else
++#    ifeq ($(shell test -d $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/dist-packages && echo 0),0)
++#        install_pythondir       = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/dist-packages
++#        install_libdir          = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/dist-packages
++#    else
++#        install_pythondir       = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/site-packages
++#        install_libdir          = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/site-packages
++#    endif
++#endif
++install_pythondir       = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/site-packages
++install_libdir          = $(prefix)/$(libsubdir)/$(PYTHON_VERSION)/site-packages
+ 
+ ifeq ($(UNAME),SunOS)
+    ifeq ($(LP64),yes)
+@@ -115,19 +117,21 @@ ifeq ($(UNAME),SunOS)
+    endif
+ endif
+ 
+-ifdef ice_src_dist
+-    ifeq ($(ice_cpp_dir), $(ice_dir)/cpp)
+-        ICE_LIB_DIR = -L$(ice_cpp_dir)/lib
+-    else
+-        ICE_LIB_DIR = -L$(ice_cpp_dir)/$(libsubdir)
+-    endif
+-    ICE_LIB_DIR = -L$(ice_cpp_dir)/lib
+-    ICE_FLAGS 	= -I$(ice_cpp_dir)/include
+-endif
+-ifdef ice_bin_dist
+-    ICE_LIB_DIR = -L$(ice_dir)/$(libsubdir)
+-    ICE_FLAGS	= -I$(ice_dir)/include
+-endif
++#ifdef ice_src_dist
++#    ifeq ($(ice_cpp_dir), $(ice_dir)/cpp)
++#        ICE_LIB_DIR = -L$(ice_cpp_dir)/lib
++#    else
++#        ICE_LIB_DIR = -L$(ice_cpp_dir)/$(libsubdir)
++#    endif
++#    ICE_LIB_DIR = -L$(ice_cpp_dir)/lib
++#    ICE_FLAGS 	= -I$(ice_cpp_dir)/include
++#endif
++#ifdef ice_bin_dist
++#    ICE_LIB_DIR = -L$(ice_dir)/$(libsubdir)
++#    ICE_FLAGS	= -I$(ice_dir)/include
++#endif
++ICE_LIB_DIR = -L$(top_srcdir)/../cpp/lib
++ICE_FLAGS = -I$(ice_cpp_dir)/include
+ ICE_LIBS = $(ICE_LIB_DIR) -lIce -lSlice -lIceUtil
+ 
+ ifneq ($(embedded_runpath_prefix),)
+@@ -137,7 +141,7 @@ endif
+ CPPFLAGS		=
+ ICECPPFLAGS		= -I$(slicedir)
+ SLICE2PYFLAGS		= $(ICECPPFLAGS)
+-LDFLAGS			= $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(libdir)
++LDFLAGS			+= $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(libdir)
+ 
+ ifdef ice_src_dist
+     ifeq ($(ice_cpp_dir), $(ice_dir)/cpp)
+-- 
+1.7.9.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice_3.5.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice_3.5.1.bb
new file mode 100644
index 0000000..2b6f56e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zeroc-ice/zeroc-ice_3.5.1.bb
@@ -0,0 +1,87 @@
+DESCRIPTION = "The Internet Communications Engine"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://ICE_LICENSE;md5=3dc3037023cc2ae6b2c5b995da529515"
+DEPENDS = "bzip2 expat openssl python db mcpp"
+DEPENDS_prepend_class-target = "zeroc-ice-native "
+
+SRC_URI = "http://www.zeroc.com/download/Ice/3.5/Ice-${PV}.tar.gz \
+           file://0002-Modify-Makefile-for-cross-compile.patch \
+          "
+SRC_URI[md5sum] = "f00c59983cc904bca977133c0a9b3e80"
+SRC_URI[sha256sum] = "989e51194c6adadbd156da3288e37bad847b93b3b876502e83033b70493af392"
+
+#| MapDb.cpp: In constructor 'Freeze::MapDb::MapDb(const ConnectionIPtr&, const string&, const string&, const string&, const KeyCompareBasePtr&, const std::vector<IceUtil::Handle<Freeze::MapIndexBase> >&, bool)':
+#| MapDb.cpp:138:46: error: call of overloaded 'set_bt_compare(int (*)(DB*, const DBT*, const DBT*))' is ambiguous
+#| MapDb.cpp:138:46: note: candidates are:
+#| /home/jenkins/oe/world/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/include/db_cxx.h:272:14: note: virtual int Db::set_bt_compare(bt_compare_fcn_type) <near match>
+#| /home/jenkins/oe/world/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/include/db_cxx.h:272:14: note:   no known conversion for argument 1 from 'int (*)(DB*, const DBT*, const DBT*) {aka int (*)(__db*, const __db_dbt*, const __db_dbt*)}' to 'bt_compare_fcn_type {aka int (*)(__db*, const __db_dbt*, const __db_dbt*, long unsigned int*)}'
+#| /home/jenkins/oe/world/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/include/db_cxx.h:273:14: note: virtual int Db::set_bt_compare(int (*)(Db*, const Dbt*, const Dbt*, size_t*)) <near match>
+#| /home/jenkins/oe/world/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/include/db_cxx.h:273:14: note:   no known conversion for argument 1 from 'int (*)(DB*, const DBT*, const DBT*) {aka int (*)(__db*, const __db_dbt*, const __db_dbt*)}' to 'int (*)(Db*, const Dbt*, const Dbt*, size_t*) {aka int (*)(Db*, const Dbt*, const Dbt*, long unsigned int*)}'
+#| make[3]: *** [MapDb.o] Error 1
+PNBLACKLIST[zeroc-ice] ?= "BROKEN: not compatible with default db version"
+
+S = "${WORKDIR}/Ice-${PV}"
+
+inherit python-dir pkgconfig
+
+export PYTHON_VERSION = "python2.7"
+
+do_configure() {
+    :
+}
+
+do_compile_prepend_class-target () {
+    export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}"
+    export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}"
+    export ICE_HOME="${STAGING_DIR_NATIVE}/usr"
+}
+
+do_compile_prepend_class-nativesdk () {
+    export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}"
+    export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}"
+    export ICE_HOME="${STAGING_DIR_NATIVE}/usr"
+}
+
+do_compile_prepend_class-native () {
+    export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}"
+    export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}"
+    export ICE_HOME="${S}/cpp"
+}
+
+do_compile() {
+    oe_runmake -C ${S} cpp
+    oe_runmake -C ${S} py
+}
+
+do_install_prepend_class-target () {
+    export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}"
+    export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}"
+    export ICE_HOME="${STAGING_DIR_NATIVE}/usr"
+}
+
+do_install_prepend_class-nativesdk () {
+    export PYTHON_INCLUDE_DIR="${STAGING_INCDIR}/${PYTHON_DIR}"
+    export PYTHON_LIB_DIR="${STAGING_LIBDIR}/${PYTHON_DIR}"
+    export ICE_HOME="${STAGING_DIR_NATIVE}/usr"
+}
+
+do_install_prepend_class-native () {
+    export ICE_HOME="${S}/cpp"
+}
+
+do_install() {
+    oe_runmake -C ${S}/cpp prefix=${D}${prefix} install install-common
+    oe_runmake -C ${S}/py prefix=${D}${prefix} install
+}
+
+PACKAGES += "${PN}-python ${PN}-python-dev ${PN}-python-dbg"
+
+FILES_${PN}-doc += "${prefix}/man/man1"
+FILES_${PN} += "${prefix}/*LICENSE ${libdir}/ImportKey.class ${prefix}/RELEASE_NOTES ${prefix}/CHANGES"
+FILES_${PN}-dev += "${includedir} ${prefix}/slice ${prefix}/config"
+FILES_${PN}-python-dev = "${PYTHON_SITEPACKAGES_DIR}/IcePy.so"
+FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}/*.py ${PYTHON_SITEPACKAGES_DIR}/IcePy.so.* ${PYTHON_SITEPACKAGES_DIR}/Ice*/*.py"
+FILES_${PN}-python-dbg = "${PYTHON_SITEPACKAGES_DIR}/.debug"
+FILES_${PN}-dev += "${bindir}/slice* ${datadir}/Ice-${PV}/slice/*"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zeromq/cppzmq_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zeromq/cppzmq_git.bb
new file mode 100644
index 0000000..f41cd0a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zeromq/cppzmq_git.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "C++ bindings for ZeroMQ"
+HOMEPAGE = "http://www.zeromq.org"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=db174eaf7b55a34a7c89551197f66e94"
+DEPENDS = "zeromq"
+SRCREV = "68a7b09cfce01c4c279fba2cf91686fcfc566848"
+
+SRC_URI = "git://github.com/zeromq/cppzmq.git"
+
+S = "${WORKDIR}/git"
+
+do_install () {
+        install -d ${D}/usr/include
+        install -m 0755 ${S}/zmq.hpp ${D}/usr/include/
+}
+
+PACKAGES = "${PN}-dev"
+
+RDEPENDS_${PN}-dev = "zeromq-dev"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zeromq/files/run-ptest b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zeromq/files/run-ptest
new file mode 100755
index 0000000..48b9cd9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zeromq/files/run-ptest
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+cd tests
+for i in `ls *`; do
+   if [ ./$i ] ; then
+       echo "PASS: $i"
+   else
+       echo "FAIL: $i"
+   fi
+done
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zeromq/zeromq_4.1.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zeromq/zeromq_4.1.4.bb
new file mode 100644
index 0000000..2090152
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-connectivity/zeromq/zeromq_4.1.4.bb
@@ -0,0 +1,30 @@
+DESCRIPTION = "ZeroMQ looks like an embeddable networking library but acts like a concurrency framework"
+HOMEPAGE = "http://www.zeromq.org"
+LICENSE = "LGPLv3+"
+LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=d5311495d952062e0e4fbba39cbf3de1"
+DEPENDS = "libsodium"
+
+SRC_URI = "http://download.zeromq.org/zeromq-${PV}.tar.gz \
+           file://run-ptest \
+           "
+SRC_URI[md5sum] = "a611ecc93fffeb6d058c0e6edf4ad4fb"
+SRC_URI[sha256sum] = "e99f44fde25c2e4cb84ce440f87ca7d3fe3271c2b8cfbc67d55e4de25e6fe378"
+
+S = "${WORKDIR}/zeromq-${PV}"
+
+#Uncomment to choose polling system manually. valid values are kqueue, epoll, devpoll, poll or select
+#EXTRA_OECONF += "--with-poller=kqueue"
+#CFLAGS_append += "-O0"
+#CXXFLAGS_append += "-O0"
+
+inherit autotools ptest pkgconfig
+
+do_compile_ptest () {
+	echo 'buildtest-TESTS: $(check_PROGRAMS)' >> ${B}/Makefile
+	oe_runmake buildtest-TESTS
+}
+
+do_install_ptest () {
+        install -d ${D}${PTEST_PATH}/tests
+        install -m 0755 ${B}/.libs/test_* ${D}${PTEST_PATH}/tests
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/dbus/dbus-daemon-proxy_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-core/dbus/dbus-daemon-proxy_git.bb
new file mode 100644
index 0000000..205e1d1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/dbus/dbus-daemon-proxy_git.bb
@@ -0,0 +1,22 @@
+SUMMARY = "dbus forwarding daemon"
+LICENSE = "LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://dbus-daemon-proxy.c;endline=19;md5=41df6d21fe1c97d6a1cc22a5bf374cba"
+DEPENDS = "dbus dbus-glib"
+SRCREV = "1226a0a1374628ff191f6d8a56000be5e53e7608"
+PV = "0.0.0+gitr${SRCPV}"
+PR = "r1"
+
+ASNEEDED_pn-dbus-daemon-proxy = ""
+
+SRC_URI = "git://git.collabora.co.uk/git/user/alban/dbus-daemon-proxy"
+S = "${WORKDIR}/git"
+
+do_compile() {
+    ${CC} ${LDFLAGS} `pkg-config --cflags --libs dbus-glib-1` -o dbus-daemon-proxy dbus-daemon-proxy.c
+}
+
+do_install() {
+    install -d ${D}${bindir}
+    install -m 0755 dbus-daemon-proxy ${D}${bindir}
+}
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/eggdbus/eggdbus/gtk-doc.patch b/import-layers/meta-openembedded/meta-oe/recipes-core/eggdbus/eggdbus/gtk-doc.patch
new file mode 100644
index 0000000..abd7ff4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/eggdbus/eggdbus/gtk-doc.patch
@@ -0,0 +1,34 @@
+Upstream-Status: Inappropriate [configuration] 
+
+Index: eggdbus-0.6/docs/eggdbus/Makefile.am
+===================================================================
+--- eggdbus-0.6.orig/docs/eggdbus/Makefile.am
++++ eggdbus-0.6/docs/eggdbus/Makefile.am
+@@ -87,11 +87,7 @@ HTML_IMAGES = 				\
+ # Extra options to supply to gtkdoc-fixref
+ FIXXREF_OPTIONS=
+ 
+-if ENABLE_GTK_DOC
+-include $(top_srcdir)/gtk-doc.make
+-else
+ CLEANFILES =
+-endif
+ 
+ CLEANFILES +=   *~				\
+ 		eggdbus-scan.*			\
+Index: eggdbus-0.6/docs/tests/Makefile.am
+===================================================================
+--- eggdbus-0.6.orig/docs/tests/Makefile.am
++++ eggdbus-0.6/docs/tests/Makefile.am
+@@ -65,11 +65,7 @@ HTML_IMAGES = 				\
+ # Extra options to supply to gtkdoc-fixref
+ FIXXREF_OPTIONS=
+ 
+-if ENABLE_GTK_DOC
+-include $(top_srcdir)/gtk-doc.make
+-else
+ CLEANFILES =
+-endif
+ 
+ CLEANFILES +=   *~				\
+ 		tests-scan.*			\
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/eggdbus/eggdbus/marshal.patch b/import-layers/meta-openembedded/meta-oe/recipes-core/eggdbus/eggdbus/marshal.patch
new file mode 100644
index 0000000..a605a34
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/eggdbus/eggdbus/marshal.patch
@@ -0,0 +1,28 @@
+Upstream-Status: Inappropriate [configuration]
+
+Index: eggdbus-0.6/src/eggdbus/Makefile.am
+===================================================================
+--- eggdbus-0.6.orig/src/eggdbus/Makefile.am
++++ eggdbus-0.6/src/eggdbus/Makefile.am
+@@ -130,7 +130,7 @@ BUILT_SOURCES =								\
+ 	$(NULL)
+ 
+ eggdbus-built-sources.stamp : eggdbus-binding-tool Makefile.am org.freedesktop.DBus.xml org.freedesktop.DBus.Peer.xml org.freedesktop.DBus.Properties.xml org.freedesktop.DBus.Introspectable.xml eggdbus-glib-genmarshal
+-	EGG_DBUS_GENMARSHAL=$(top_builddir)/src/eggdbus/eggdbus-glib-genmarshal $(top_builddir)/src/eggdbus/eggdbus-binding-tool							\
++	EGG_DBUS_GENMARSHAL=eggdbus-glib-genmarshal eggdbus-binding-tool							\
+ 		--namespace EggDBus									\
+ 		--dbus-namespace org.freedesktop.DBus							\
+ 		--interfaces-only									\
+Index: eggdbus-0.6/src/tests/Makefile.am
+===================================================================
+--- eggdbus-0.6.orig/src/tests/Makefile.am
++++ eggdbus-0.6/src/tests/Makefile.am
+@@ -25,7 +25,7 @@ BUILT_SOURCES = 							\
+ 	$(NULL)
+ 
+ test-built-sources.stamp : Makefile.am $(top_builddir)/src/eggdbus/eggdbus-binding-tool com.example.Frob.xml com.example.Tweak.xml com.example.Twiddle.xml
+-	EGG_DBUS_GENMARSHAL=$(top_builddir)/src/eggdbus/eggdbus-glib-genmarshal $(top_builddir)/src/eggdbus/eggdbus-binding-tool									\
++	EGG_DBUS_GENMARSHAL=eggdbus-glib-genmarshal eggdbus-binding-tool									\
+ 	  --namespace       "Test"										\
+ 	  --dbus-namespace  "com.example"									\
+ 	  --include-header  testtypes.h										\
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/eggdbus/eggdbus_0.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-core/eggdbus/eggdbus_0.6.bb
new file mode 100644
index 0000000..cc28ec7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/eggdbus/eggdbus_0.6.bb
@@ -0,0 +1,33 @@
+SUMMARY = "An alternative to dbug-glib."
+DESCRIPTION = "An alternative to dbus-glib. It is designed specifically to \
+make it comfortable to work with very large and potentially \
+complex D-Bus services like e.g. DeviceKit-disks"
+
+HOMEPAGE = "http://cgit.freedesktop.org/~david/eggdbus"
+LICENSE = "LGPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=155db86cdbafa7532b41f390409283eb \
+                    file://src/eggdbus/eggdbus.h;md5=6b312aef57ed8d738b3f131ad037d6c2"
+
+DEPENDS = "dbus glib-2.0 dbus-glib eggdbus-native"
+DEPENDS_class-native = "dbus-native glib-2.0-native dbus-glib-native"
+
+SRC_URI = "http://cgit.freedesktop.org/~david/${BPN}/snapshot/${BPN}-${PV}.tar.bz2 \
+    file://gtk-doc.patch \
+"
+SRC_URI_append_class-target = "file://marshal.patch"
+SRC_URI[md5sum] = "0a111faa54dfba2cf432c2c8e8a76e06"
+SRC_URI[sha256sum] = "3ad26e271c1a879bafcd181e065fe0ed53b542299a773c3188c9edb25b895ed1"
+
+inherit autotools gtk-doc
+
+EXTRA_OECONF = " --disable-man-pages "
+
+BBCLASSEXTEND = "native"
+
+PARALLEL_MAKE = ""
+
+do_configure_prepend() {
+    # Create ChangeLog to walk around automake error.
+    # " Makefile.am: error: required file './ChangeLog' not found "
+    touch ${S}/ChangeLog
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/fakeroot/fakeroot-native_1.18.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-core/fakeroot/fakeroot-native_1.18.4.bb
new file mode 100644
index 0000000..a27a60b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/fakeroot/fakeroot-native_1.18.4.bb
@@ -0,0 +1,15 @@
+require fakeroot_${PV}.bb
+
+S = "${WORKDIR}/fakeroot-${PV}"
+
+inherit native
+
+EXTRA_OECONF = "--program-prefix="
+
+# Compatability for the rare systems not using or having SYSV
+python () {
+    if d.getVar('HOST_NONSYSV', True) and d.getVar('HOST_NONSYSV', True) != '0':
+        d.setVar('EXTRA_OECONF', ' --with-ipc=tcp --program-prefix= ')
+}
+
+RDEPENDS_${PN} = "util-linux-native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/fakeroot/fakeroot_1.18.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-core/fakeroot/fakeroot_1.18.4.bb
new file mode 100644
index 0000000..37b3c18
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/fakeroot/fakeroot_1.18.4.bb
@@ -0,0 +1,30 @@
+SUMMARY = "Gives a fake root environment"
+HOMEPAGE = "http://fakeroot.alioth.debian.org"
+SECTION = "base"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949"
+
+SRC_URI = "\
+    ${DEBIAN_MIRROR}/main/f/fakeroot/fakeroot_${PV}.orig.tar.bz2 \
+"
+
+inherit autotools
+
+do_configure_prepend() {
+    mkdir -p ${S}/build-aux
+}
+
+do_install_append() {
+    install -d ${D}${includedir}/fakeroot
+    install -m 644 *.h ${D}${includedir}/fakeroot
+}
+
+# fakeroot needs getopt which is provided by the util-linux package
+RDEPENDS_${PN} = "util-linux"
+
+
+SRC_URI[md5sum] = "706171d8d520b1ca1576ac73f2ceb4f3"
+SRC_URI[sha256sum] = "0a359efa3e9496c33234b3e9c89306a09bb4da9d33de43c261f1d8447e6ebea2"
+
+# http://errors.yoctoproject.org/Errors/Details/35143/
+PNBLACKLIST[fakeroot] ?= "BROKEN: QA Issue: -dev package contains non-symlink .so"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm/remove-examples.patch b/import-layers/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm/remove-examples.patch
new file mode 100644
index 0000000..a5944c2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm/remove-examples.patch
@@ -0,0 +1,30 @@
+Index: glibmm-2.22.1/Makefile.am
+===================================================================
+--- glibmm-2.22.1.orig/Makefile.am
++++ glibmm-2.22.1/Makefile.am
+@@ -23,12 +23,7 @@ src_subdirs = glib/src gio/src
+ else
+ src_subdirs =
+ endif
+-if ENABLE_DOCUMENTATION
+-doc_subdirs = docs
+-else
+-doc_subdirs =
+-endif
+-SUBDIRS = tools $(src_subdirs) glib/glibmm gio/giomm tests examples $(doc_subdirs)
++SUBDIRS = tools $(src_subdirs) glib/glibmm gio/giomm tests
+ 
+ glibmm_includedir = $(includedir)/$(GLIBMM_MODULE_NAME)
+ glibmm_include_HEADERS = glib/glibmm.h
+Index: glibmm-2.22.1/configure.ac
+===================================================================
+--- glibmm-2.22.1.orig/configure.ac
++++ glibmm-2.22.1/configure.ac
+@@ -136,7 +136,6 @@ AC_CONFIG_FILES([Makefile
+                  gio/src/Makefile
+                  gio/giomm/Makefile
+                  tests/Makefile
+-                 examples/Makefile
+                  docs/Makefile
+                  docs/reference/Doxyfile
+                  MSVC_Net2005/glibmm/glibmm.rc
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm_2.44.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm_2.44.0.bb
new file mode 100644
index 0000000..d9cffff
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm_2.44.0.bb
@@ -0,0 +1,31 @@
+SUMMARY = "C++ bindings for the glib library"
+HOMEPAGE = "http://www.gtkmm.org/"
+SECTION = "libs"
+LICENSE = "LGPLv2.1 & GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499 \
+                    file://COPYING.tools;md5=751419260aa954499f7abaabaa882bbe"
+
+DEPENDS = "mm-common glib-2.0 libsigc++-2.0"
+inherit autotools pkgconfig
+
+SHRT_VER = "${@d.getVar('PV',1).split('.')[0]}.${@d.getVar('PV',1).split('.')[1]}"
+
+SRC_URI = " \
+    ftp://ftp.gnome.org/pub/GNOME/sources/glibmm/${SHRT_VER}/glibmm-${PV}.tar.xz \
+    file://remove-examples.patch \
+"
+SRC_URI[md5sum] = "32ee4150b436d097fe2506d0b0b13a75"
+SRC_URI[sha256sum] = "1b0ac0425d24895507c0e0e8088a464c7ae2d289c47afa1c11f63278fc672ea8"
+
+do_install_append() {
+    install -d ${D}${datadir}/glibmm-2.4
+    install -d ${D}${datadir}/aclocal
+
+    install -m 0644 glib/glibmmconfig.h ${D}${datadir}/glibmm-2.4/
+    install -m 0644 scripts/glibmm_check_perl.m4 ${D}${datadir}/aclocal/ || true
+}
+
+FILES_${PN} = "${libdir}/lib*.so.*"
+FILES_${PN}-dev += "${datadir}/glibmm-* ${libdir}/glibmm-2.4/include/ ${libdir}/glibmm-2.4/proc/ ${libdir}/giomm-2.4/include/"
+
+RDEPENDS_${PN}-dev = "perl"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/libsigc++-2.0/libsigc++-2.0_2.2.11.bb b/import-layers/meta-openembedded/meta-oe/recipes-core/libsigc++-2.0/libsigc++-2.0_2.2.11.bb
new file mode 100644
index 0000000..546305f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/libsigc++-2.0/libsigc++-2.0_2.2.11.bb
@@ -0,0 +1,21 @@
+SUMMARY = "A library for loose coupling of C++ method calls"
+SECTION = "libs"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499"
+
+DEPENDS = "mm-common"
+
+SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/libsigc++/2.2/libsigc++-${PV}.tar.xz"
+SRC_URI[md5sum] = "815d0c6d61601f51bbcaeef6826606b0"
+SRC_URI[sha256sum] = "9834045f74f56752c2c6b3cdc195c30ab8314ad22dc8e626d6f67f940f1e4957"
+
+S = "${WORKDIR}/libsigc++-${PV}"
+
+inherit autotools
+
+EXTRA_AUTORECONF = "--exclude=autoheader"
+
+FILES_${PN}-dev += "${libdir}/sigc++-*/"
+FILES_${PN}-doc += "${datadir}/devhelp"
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/libxml/libxml++/libxml++_ptest.patch b/import-layers/meta-openembedded/meta-oe/recipes-core/libxml/libxml++/libxml++_ptest.patch
new file mode 100644
index 0000000..82960f1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/libxml/libxml++/libxml++_ptest.patch
@@ -0,0 +1,82 @@
+diff --git a/Makefile.am b/Makefile.am
+index d4aadb1..0e36756 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -253,5 +253,8 @@ post-html: docs/index.html
+ 	rsync $(rsync_args) -r docs/index.html $$USER,libxmlplusplus@web.sourceforge.net:$(web_path_project)
+ 	rsync $(rsync_args) -r examples $$USER,libxmlplusplus@web.sourceforge.net:$(web_path_project)
+ 
++install-ptest:
++	make -C examples install-ptest
++
+ # Optional: auto-generate the ChangeLog file from the git log on make dist
+ include $(top_srcdir)/macros/dist-changelog.am
+diff --git a/examples/Makefile.am b/examples/Makefile.am
+index d9541ca..c27e088 100644
+--- a/examples/Makefile.am
++++ b/examples/Makefile.am
+@@ -19,6 +19,8 @@ AM_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir) -I. $(LIBXMLXX_CFLAGS)
+ AM_CXXFLAGS = $(LIBXMLXX_WXXFLAGS)
+ LDADD = $(top_builddir)/libxml++/libxml++-$(LIBXMLXX_API_VERSION).la $(LIBXMLXX_LIBS)
+ 
++LOG_DRIVER = $(SHELL) ../macros/test-driver
++
+ check_PROGRAMS = \
+   dom_build/dom_build \
+   dom_parse_entities/dom_parse_entities \
+@@ -36,6 +38,23 @@ check_PROGRAMS = \
+   schemavalidation/schemavalidation \
+   textreader/textreader
+ 
++check_DOTLIBS = \
++  dom_build/.libs/dom_build \
++  dom_parse_entities/.libs/dom_parse_entities \
++  dom_parser/.libs/dom_parser \
++  dom_parser_raw/.libs/dom_parser_raw \
++  dom_read_write/.libs/dom_read_write \
++  dom_xinclude/.libs/dom_xinclude \
++  dom_xpath/.libs/dom_xpath \
++  dtdvalidation/.libs/dtdvalidation \
++  import_node/.libs/import_node \
++  sax_exception/.libs/sax_exception \
++  sax_parser/.libs/sax_parser \
++  sax_parser_build_dom/.libs/sax_parser_build_dom \
++  sax_parser_entities/.libs/sax_parser_entities \
++  schemavalidation/.libs/schemavalidation \
++  textreader/.libs/textreader
++
+ # Shell scripts that call the example programs.
+ check_SCRIPTS = \
+   dom_build/make_check.sh \
+@@ -147,10 +166,10 @@ dist_noinst_DATA = \
+ # file are located in different directories.
+ dom_read_write/make_check.sh: Makefile
+ 	echo '# Generated and used by "make check"' >$@
+-	echo 'dom_read_write/dom_read_write "$(srcdir)/dom_read_write/example.xml" dom_read_write/example_output.xml >/dev/null' >>$@
++	echo 'cd dom_read_write && .libs/dom_read_write "example.xml" example_output.xml >/dev/null' >>$@
+ 	chmod +x $@
+ 
+-script_template = cd "$(srcdir)/<!progname!>" && "$(abs_builddir)/<!progname!>/<!progname!>" >/dev/null
++script_template = cd "<!progname!>" && ".libs/<!progname!>" >/dev/null
+ standard_scripts = $(filter-out dom_read_write/make_check.sh,$(check_SCRIPTS))
+ 
+ # All other script files are generated like so:
+@@ -162,3 +181,18 @@ $(standard_scripts): Makefile
+ CLEANFILES = \
+   dom_read_write/example_output.xml \
+   $(check_SCRIPTS)
++
++buildtest: all
++	$(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) $(check_SCRIPTS)
++	$(MAKE) $(AM_MAKEFLAGS) buildtest-TESTS
++
++install-ptest:
++	$(MKDIR_P) $(DESTDIR)/examples
++	cp --parents $(check_DOTLIBS) $(DESTDIR)/examples
++	cp --parents $(check_SCRIPTS) $(DESTDIR)/examples
++	cd $(srcdir) && cp --parents $(dist_noinst_DATA) $(DESTDIR)/examples
++	cp Makefile $(DESTDIR)/examples
++	$(MKDIR_P) $(DESTDIR)/macros
++	cp $(srcdir)/../macros/test-driver $(DESTDIR)/macros
++	sed -i -e 's|^Makefile:|_Makefile:|' $(DESTDIR)/examples/Makefile
++
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/libxml/libxml++/run-ptest b/import-layers/meta-openembedded/meta-oe/recipes-core/libxml/libxml++/run-ptest
new file mode 100644
index 0000000..236f667
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/libxml/libxml++/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+cd examples
+make -k check-TESTS
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/libxml/libxml++_2.38.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-core/libxml/libxml++_2.38.1.bb
new file mode 100644
index 0000000..20313fe
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/libxml/libxml++_2.38.1.bb
@@ -0,0 +1,28 @@
+SUMMARY = "C++ wrapper for libxml library"
+DESCRIPTION = "C++ wrapper for libxml library"
+HOMEPAGE = "http://libxmlplusplus.sourceforge.net"
+BUGTRACKER = "http://bugzilla.gnome.org/buglist.cgi?product=libxml%2B%2B"
+SECTION = "libs"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34 "
+
+SHRT_VER = "${@d.getVar('PV',True).split('.')[0]}.${@d.getVar('PV',True).split('.')[1]}"
+SRC_URI = "${GNOME_MIRROR}/${BPN}/${SHRT_VER}/${BP}.tar.xz \
+    file://libxml++_ptest.patch \
+    file://run-ptest \
+"
+SRC_URI[md5sum] = "6b16aac575725a9bc0e9d96489e9251f"
+SRC_URI[sha256sum] = "882529189b03db6c69925b3f579ab1941feb4f02b5fe2612504ee7e498a4a05f"
+
+DEPENDS = "libxml2 glibmm"
+
+inherit autotools pkgconfig ptest
+
+do_compile_ptest() {
+  oe_runmake -C examples buildtest
+}
+
+FILES_${PN}-doc += "${datadir}/devhelp"
+FILES_${PN}-dev += "${libdir}/libxml++-2.6/include/libxml++config.h"
+
+RDEPENDS_${PN}-ptest += "make"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm-common.bb b/import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm-common.bb
new file mode 100644
index 0000000..618cc1e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm-common.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Helper script for OE's llvm support"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \
+                    file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420 \
+"
+
+SRC_URI = "file://llvm-config"
+
+ALLOW_EMPTY_${PN} = "1"
+SYSROOT_PREPROCESS_FUNCS_append_class-target = " llvm_common_sysroot_preprocess"
+
+llvm_common_sysroot_preprocess() {
+    install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/
+    install -m 0755 ${WORKDIR}/llvm-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/
+}
+
+do_install_class-native() {
+    install -d ${D}${bindir}
+    install -m 0755 ${WORKDIR}/llvm-config ${D}${bindir}
+}
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm-common/llvm-config b/import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm-common/llvm-config
new file mode 100644
index 0000000..a9a416d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm-common/llvm-config
@@ -0,0 +1,10 @@
+#!/bin/sh
+# Wrapper script for real llvm-config. Simply calls
+
+if [ $WANT_LLVM_RELEASE ]; then
+	exec `dirname $0`/${TARGET_PREFIX}llvm-config$WANT_LLVM_RELEASE ${@}
+else
+  echo "The variable WANT_LLVM_RELEASE is not defined and exported"
+	echo "by your build recipe. Go figure."
+  exit 1
+fi
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm.inc b/import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm.inc
new file mode 100644
index 0000000..fa971f3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm.inc
@@ -0,0 +1,162 @@
+# LLVM does not provide ABI stability between different versions. For this
+# reason OE makes it possible to build and install different llvm versions
+# at the same time.
+#
+# This is true for the normal recipes as well as the native ones.
+#
+# All regular installation directories are prefixed with 'llvm${LLVM_RELEASE}'
+# e.g. "${STAGING_BINDIR}/llvm2.5" or "${STAGING_INCDIR}/llvm2.5"
+#
+# For your program or library that makes use of llvm you do should not need to
+# modify anything as long as it uses the results of various llvm-config
+# invocations. If you need customizations something is wrong and it needs to be
+# fixed (report bug).
+#
+# However the *recipe* for your program/library *must* declare
+# export WANT_LLVM_RELEASE = "<valid version number>"
+# The version number is picked up by a generic wrapper script which just calls
+# the variant of the specified version.
+
+DESCRIPTION = "The Low Level Virtual Machine"
+HOMEPAGE = "http://llvm.org"
+
+# 3-clause BSD-like
+# University of Illinois/NCSA Open Source License
+LICENSE = "NCSA"
+LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=d0a3ef0d3e0e8f5cf59e5ffc273ab1f8"
+
+DEPENDS = "libffi libxml2-native llvm-common"
+
+inherit perlnative pythonnative autotools
+
+LLVM_RELEASE = "${PV}"
+LLVM_DIR = "llvm${LLVM_RELEASE}"
+
+SRC_URI = "http://llvm.org/releases/${PV}/llvm-${PV}.src.tar.gz"
+S = "${WORKDIR}/llvm-${PV}.src"
+
+LLVM_BUILD_DIR = "${WORKDIR}/llvm-${PV}.build"
+LLVM_INSTALL_DIR = "${WORKDIR}/llvm-install"
+
+EXTRA_OECONF += "--disable-assertions \
+                 --enable-debug-runtime \
+                 --disable-expensive-checks \
+                 --enable-bindings=none \
+                 --enable-keep-symbols \
+                 --enable-libffi \
+                 --enable-optimized \
+                 --enable-shared \
+                 --enable-targets=host-only"
+EXTRA_OEMAKE += "REQUIRES_RTTI=1 VERBOSE=1"
+
+do_configure_prepend() {
+    # Remove RPATHs
+    sed -i 's:$(RPATH) -Wl,$(\(ToolDir\|LibDir\|ExmplDir\))::g' ${S}/Makefile.rules
+
+    # Drop "svn" suffix from version string
+    sed -i 's/${PV}svn/${PV}/g' ${S}/configure
+
+    # Fix paths in llvm-config
+    sed -i "s|sys::path::parent_path(CurrentPath))\.str()|sys::path::parent_path(sys::path::parent_path(CurrentPath))).str()|g" ${S}/tools/llvm-config/llvm-config.cpp
+    sed -ri "s#/(bin|include|lib)(/?\")#/\1/${LLVM_DIR}\2#g" ${S}/tools/llvm-config/llvm-config.cpp
+
+    # Fix the hardcoded libdir in llvm-config
+    sed -i 's:/lib\>:/${baselib}:g' ${S}/tools/llvm-config/llvm-config.cpp
+
+    # Fails to build unless using separate directory from source
+    mkdir -p ${LLVM_BUILD_DIR}
+    cd ${LLVM_BUILD_DIR}
+}
+
+do_compile() {
+    cd ${LLVM_BUILD_DIR}
+
+    # Fix libdir for multilib
+    sed -i 's:(PROJ_prefix)/lib:(PROJ_prefix)/${baselib}:g' Makefile.config
+
+    oe_runmake \
+        AR="${BUILD_AR}" \
+        CC="${BUILD_CC}" \
+        CFLAGS="${BUILD_CFLAGS}" \
+        CXX="${BUILD_CXX}" \
+        CXXFLAGS="${BUILD_CXXFLAGS}" \
+        CPP="${BUILD_CPP}" \
+        CPPFLAGS="${BUILD_CPPFLAGS}" \
+        NM="${BUILD_NM}" \
+        RANLIB="${BUILD_RANLIB}" \
+        PATH="${STAGING_BINDIR_NATIVE}:$PATH" \
+        cross-compile-build-tools
+    oe_runmake
+}
+
+do_install() {
+    cd ${LLVM_BUILD_DIR}
+    oe_runmake DESTDIR=${LLVM_INSTALL_DIR} install
+
+    mv ${LLVM_INSTALL_DIR}${bindir}/${HOST_SYS}-llvm-config-host ${LLVM_INSTALL_DIR}/llvm-config-host
+
+    install -d ${D}${bindir}/${LLVM_DIR}
+    mv ${LLVM_INSTALL_DIR}${bindir}/* ${D}${bindir}/${LLVM_DIR}/
+
+    install -d ${D}${includedir}/${LLVM_DIR}
+    mv ${LLVM_INSTALL_DIR}${includedir}/* ${D}${includedir}/${LLVM_DIR}/
+
+    install -d ${D}${libdir}/${LLVM_DIR}
+    mv ${LLVM_INSTALL_DIR}${libdir}/* ${D}${libdir}/${LLVM_DIR}/
+    ln -s ${LLVM_DIR}/libLLVM-${PV}.so ${D}${libdir}/libLLVM-${PV}.so
+
+    install -d ${D}${docdir}/${LLVM_DIR}
+    mv ${LLVM_INSTALL_DIR}${prefix}/docs/llvm/* ${D}${docdir}/${LLVM_DIR}
+}
+
+SYSROOT_PREPROCESS_FUNCS += "llvm_sysroot_preprocess"
+
+llvm_sysroot_preprocess() {
+    install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}
+    mv ${LLVM_INSTALL_DIR}/llvm-config-host ${SYSROOT_DESTDIR}${bindir_crossscripts}/llvm-config${PV}
+}
+
+PACKAGES += "${PN}-bugpointpasses ${PN}-llvmhello"
+ALLOW_EMPTY_${PN} = "1"
+ALLOW_EMPTY_${PN}-staticdev = "1"
+FILES_${PN} = ""
+FILES_${PN}-staticdev = ""
+FILES_${PN}-dbg = " \
+    ${bindir}/${LLVM_DIR}/.debug \
+    ${libdir}/${LLVM_DIR}/.debug/BugpointPasses.so \
+    ${libdir}/${LLVM_DIR}/.debug/LLVMHello.so \
+    /usr/src/debug \
+"
+
+FILES_${PN}-dev = " \
+    ${bindir}/${LLVM_DIR} \
+    ${includedir}/${LLVM_DIR} \
+"
+RRECOMMENDS_${PN}-dev += "${PN}-bugpointpasses ${PN}-llvmhello"
+
+FILES_${PN}-bugpointpasses = "\
+    ${libdir}/${LLVM_DIR}/BugpointPasses.so \
+"
+FILES_${PN}-llvmhello = "\
+    ${libdir}/${LLVM_DIR}/LLVMHello.so \
+"
+
+PACKAGES_DYNAMIC = "^libllvm${LLVM_RELEASE}-.*$"
+NOAUTOPACKAGEDEBUG = "1"
+
+INSANE_SKIP_${MLPREFIX}libllvm${LLVM_RELEASE}-llvm-${LLVM_RELEASE} += "dev-so"
+
+python llvm_populate_packages() {
+    libdir = bb.data.expand('${libdir}', d)
+    libllvm_libdir = bb.data.expand('${libdir}/${LLVM_DIR}', d)
+    split_dbg_packages = do_split_packages(d, libllvm_libdir+'/.debug', '^lib(.*)\.so$', 'libllvm${LLVM_RELEASE}-%s-dbg', 'Split debug package for %s', allow_dirs=True)
+    split_packages = do_split_packages(d, libdir, '^lib(.*)\.so$', 'libllvm${LLVM_RELEASE}-%s', 'Split package for %s', allow_dirs=True, allow_links=True, recursive=True)
+    split_staticdev_packages = do_split_packages(d, libllvm_libdir, '^lib(.*)\.a$', 'libllvm${LLVM_RELEASE}-%s-staticdev', 'Split staticdev package for %s', allow_dirs=True)
+    if split_packages:
+        pn = d.getVar('PN', True)
+        d.appendVar('RDEPENDS_' + pn, ' '+' '.join(split_packages))
+        d.appendVar('RDEPENDS_' + pn + '-dbg', ' '+' '.join(split_dbg_packages))
+        d.appendVar('RDEPENDS_' + pn + '-staticdev', ' '+' '.join(split_staticdev_packages))
+}
+
+PACKAGESPLITFUNCS_prepend = "llvm_populate_packages "
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm3.3/Remove-error-output-from-configure-if-CFLAGS-is-set-.patch b/import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm3.3/Remove-error-output-from-configure-if-CFLAGS-is-set-.patch
new file mode 100644
index 0000000..44387e8
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm3.3/Remove-error-output-from-configure-if-CFLAGS-is-set-.patch
@@ -0,0 +1,52 @@
+From d4bf7a3853dab12c11cbfc8088fd76f548a8d017 Mon Sep 17 00:00:00 2001
+From: Patrik Hagglund <patrik.h.hagglund@ericsson.com>
+Date: Tue, 24 Sep 2013 11:38:45 +0000
+Subject: [PATCH] Remove error output from configure if CFLAGS is set (r174313).
+
+This fixes PR16724.
+
+git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191289 91177308-0d34-0410-b5e6-96231b3b80d8
+
+https://github.com/llvm-mirror/llvm/commit/d4bf7a3853dab12c11cbfc8088fd76f548a8d017
+
+Upstream-Status: Backport
+
+Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
+---
+ autoconf/configure.ac | 4 ++--
+ configure             | 4 ++--
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/autoconf/configure.ac b/autoconf/configure.ac
+index f9c365c..45f2fe4 100644
+--- a/autoconf/configure.ac
++++ b/autoconf/configure.ac
+@@ -61,8 +61,8 @@ fi
+ 
+ dnl Default to empty (i.e. assigning the null string to) CFLAGS and CXXFLAGS,
+ dnl instead of the autoconf default (for example, '-g -O2' for CC=gcc).
+-${CFLAGS=}
+-${CXXFLAGS=}
++: ${CFLAGS=}
++: ${CXXFLAGS=}
+ 
+ dnl We need to check for the compiler up here to avoid anything else
+ dnl starting with a different one.
+diff --git a/configure b/configure
+index f3a6594..9090cda 100755
+--- a/configure
++++ b/configure
+@@ -1992,8 +1992,8 @@ echo "$as_me: error: Already configured in ${srcdir}" >&2;}
+   fi
+ fi
+ 
+-${CFLAGS=}
+-${CXXFLAGS=}
++: ${CFLAGS=}
++: ${CXXFLAGS=}
+ 
+ ac_ext=c
+ ac_cpp='$CPP $CPPFLAGS'
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm3.3/arm_fenv_uclibc.patch b/import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm3.3/arm_fenv_uclibc.patch
new file mode 100644
index 0000000..c3ae494
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm3.3/arm_fenv_uclibc.patch
@@ -0,0 +1,14 @@
+Index: llvm-2.9/include/llvm/Support/FEnv.h
+===================================================================
+--- llvm-2.9.orig/include/llvm/Support/FEnv.h	2010-11-29 20:44:50.000000000 +0100
++++ llvm-2.9/include/llvm/Support/FEnv.h	2011-11-18 18:42:22.580161297 +0100
+@@ -17,6 +17,9 @@
+ 
+ #include "llvm/Config/config.h"
+ #include <cerrno>
++
++#undef HAVE_FENV_H
++
+ #ifdef HAVE_FENV_H
+ #include <fenv.h>
+ #endif
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm3.3_3.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm3.3_3.3.bb
new file mode 100644
index 0000000..60a2221
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/llvm/llvm3.3_3.3.bb
@@ -0,0 +1,22 @@
+require llvm.inc
+
+DEPENDS += "zlib"
+EXTRA_OECONF += "--enable-zlib"
+
+SRC_URI += "file://Remove-error-output-from-configure-if-CFLAGS-is-set-.patch"
+
+SRC_URI_append_libc-uclibc = " file://arm_fenv_uclibc.patch "
+
+SRC_URI[md5sum] = "40564e1dc390f9844f1711c08b08e391"
+SRC_URI[sha256sum] = "68766b1e70d05a25e2f502e997a3cb3937187a3296595cf6e0977d5cd6727578"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[r600] = "--enable-experimental-targets=R600,,,"
+
+# Fails to build with thumb-1 (qemuarm)
+# | {standard input}: Assembler messages:
+# | {standard input}:22: Error: selected processor does not support Thumb mode `stmdb sp!,{r0,r1,r2,r3,lr}'
+# | {standard input}:31: Error: lo register required -- `ldmia sp!,{r0,r1,r2,r3,lr}'
+# | {standard input}:32: Error: lo register required -- `ldr pc,[sp],#4'
+# | make[3]: *** [/home/jenkins/oe/world/shr-core/tmp-glibc/work/armv5te-oe-linux-gnueabi/llvm3.3/3.3-r0/llvm-3.3.build/lib/Target/ARM/Release/ARMJITInfo.o] Error 1
+ARM_INSTRUCTION_SET = "arm"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/meta/distro-feed-configs.bb b/import-layers/meta-openembedded/meta-oe/recipes-core/meta/distro-feed-configs.bb
new file mode 100644
index 0000000..ea5ca38
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/meta/distro-feed-configs.bb
@@ -0,0 +1,33 @@
+SUMMARY = "Configuration files for online package repositories aka feeds"
+PR = "r6"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+DISTRO_FEED_PREFIX ?= "remote"
+DISTRO_FEED_URI ?= "http://my-distribution.example/remote-feed/"
+DISTRO_FEED_ARCHS ?= "all ${PACKAGE_EXTRA_ARCHS} ${MACHINE_ARCH}"
+
+do_compile() {
+    mkdir -p ${S}/${sysconfdir}/opkg
+    for feed in ${DISTRO_FEED_ARCHS}; do
+        echo "src/gz ${DISTRO_FEED_PREFIX}-${feed} ${DISTRO_FEED_URI}/${feed}" > ${S}/${sysconfdir}/opkg/${feed}-feed.conf
+    done
+}
+do_install () {
+    install -d ${D}${sysconfdir}/opkg
+    install -m 0644 ${S}/${sysconfdir}/opkg/* ${D}${sysconfdir}/opkg/
+}
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+#def distro_feed_configs(d):
+#    import bb
+#    parchs = d.getVar( "PACKAGE_EXTRA_ARCHS", 1 ).split()
+#    march = d.getVar( "MACHINE_ARCH", 1 ).split()
+#    archs = [ "all" ] + parchs + march
+#    confs = [ ( "${sysconfdir}/opkg/%s-feed.conf" % feed ) for feed in archs ]
+#    return " ".join( confs )
+#
+#CONFFILES_${PN} += '${@distro_feed_configs(d)}'
+
+CONFFILES_${PN} += '${@ " ".join( [ ( "${sysconfdir}/opkg/%s-feed.conf" % feed ) for feed in "all ${PACKAGE_EXTRA_ARCHS} ${MACHINE_ARCH}".split() ] ) }'
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/mm-common/mm-common_0.9.8.bb b/import-layers/meta-openembedded/meta-oe/recipes-core/mm-common/mm-common_0.9.8.bb
new file mode 100644
index 0000000..943343b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/mm-common/mm-common_0.9.8.bb
@@ -0,0 +1,12 @@
+inherit gnomebase
+
+GNOME_COMPRESS_TYPE="xz"
+
+SRC_URI[archive.md5sum] = "00fd5c6850cd5fecc2e02b04d0dd1637"
+SRC_URI[archive.sha256sum] = "c9ab5fd3872fbe245fbc35347acf4a95063111f81d54c43df3af662dad0a03d5"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+BBCLASSEXTEND = "native"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-basic.bb b/import-layers/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-basic.bb
new file mode 100644
index 0000000..21dd1de
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-basic.bb
@@ -0,0 +1,56 @@
+# This recipe is intended as a 'simpler' replacement for packagegroup-base.
+# Please communicate your use cases and suggestions to the mailinglist(s)
+
+SUMMARY = "Basic task to get a device online"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690"
+
+PR = "r13"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+inherit packagegroup
+inherit bluetooth
+
+# Poke extra recomendations into the list using your machine.conf
+#
+MACHINE_EXTRA_RRECOMMENDS ?= ""
+
+#
+# Select between dropbear and openssh
+# Set TASK_BASIC_SSHDAEMON = "openssh-sshd openssh-sftp openssh-sftp-server" in your DISTRO config to get openssh(d)
+#
+TASK_BASIC_SSHDAEMON ?= "dropbear openssh-sftp openssh-sftp-server"
+
+#
+# The section below is designed to match with packagegroup-boot, but doesn't depend on it to allow for more freedom 
+# when writing image recipes.
+# It also avoids the choice between connman/networkmanager/ifupdown since that is an image feature, not a
+# distro feature.
+#
+# Util-linux (u)mount is included because the busybox one can't handle /etc/mtab being symlinked to /proc/mounts
+#
+RDEPENDS_${PN} = "\
+    ${TASK_BASIC_SSHDAEMON} \
+    avahi-daemon avahi-utils \
+"
+
+#
+# The following section is split in 3:
+#   1) Machine features: kernel modules and userspace helpers for those
+#   2) Distro features: packages associated with those
+#   3) Nice to have: packages that are nice to have, but aren't strictly needed  
+#
+RRECOMMENDS_${PN} = "\
+    ${MACHINE_EXTRA_RRECOMMENDS} \
+    ${@bb.utils.contains("MACHINE_FEATURES", "usbhost", "usbutils", "", d)} \
+    ${@bb.utils.contains("MACHINE_FEATURES", "alsa", "alsa-utils-alsamixer", "", d)} \
+    ${@bb.utils.contains("MACHINE_FEATURES", "usbgadget", "kernel-module-g-ether kernel-module-g-serial kernel-module-g-mass-storage", "", d)} \
+    \
+    ${@bb.utils.contains("DISTRO_FEATURES", "bluetooth", "${BLUEZ}", "", d)} \
+    ${@bb.utils.contains("DISTRO_FEATURES", "wifi", "iw wpa-supplicant", "", d)} \
+    \
+    tzdata \
+    \
+    cpufrequtils \
+    htop \
+"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-boot.bb b/import-layers/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-boot.bb
new file mode 100644
index 0000000..a542ae4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-boot.bb
@@ -0,0 +1,34 @@
+SUMMARY = "Basic task to get a device booting"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690"
+
+PR = "r58"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+inherit packagegroup
+
+#
+# those ones can be set in machine config to supply packages needed to get machine booting
+#
+MACHINE_ESSENTIAL_EXTRA_RDEPENDS ?= ""
+MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ?= ""
+
+# Make sure we build the kernel
+DEPENDS = "virtual/kernel"
+
+#
+# minimal set of packages - needed to boot
+#
+RDEPENDS_${PN} = "\
+    base-files \
+    base-passwd \
+    busybox \
+    netbase \
+    ${@bb.utils.contains("MACHINE_FEATURES", "keyboard", "keymaps", "", d)} \
+    ${MACHINE_ESSENTIAL_EXTRA_RDEPENDS} \
+"
+
+RRECOMMENDS_${PN} = "\
+    kernel \
+    ${MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS} \
+"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-cli-tools.bb b/import-layers/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-cli-tools.bb
new file mode 100644
index 0000000..2a4b067
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-cli-tools.bb
@@ -0,0 +1,45 @@
+SUMMARY = "A set of useful command line tools"
+SUMMARY_${PN}-debug = "A set of command line tools useful for debugging"
+SECTION = "console"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+PV = "1.0"
+PR = "r21"
+
+inherit packagegroup allarch
+
+PACKAGES += "${PN}-debug"
+
+RDEPENDS_${PN} = "\
+    dbus-daemon-proxy \
+    dosfstools \
+    htop \
+    iptables \
+    lsof \
+    mbuffer \
+    mtd-utils \
+    nano \
+    nfs-utils-client \
+    nmon \
+    powertop \
+    screen \
+    socat \
+    sysstat \
+"
+
+RDEPENDS_${PN}-debug = "\
+    evtest \
+    devmem2 \
+    i2c-tools \
+    gdb \
+    procps \
+    pxaregs \
+    s3c24xx-gpio \
+    s3c64xx-gpio \
+    serial-forward \
+    strace \
+"
+
+RRECOMMENDS_${PN}-debug = "\
+    ltrace \
+"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/plymouth/plymouth_0.9.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-core/plymouth/plymouth_0.9.2.bb
new file mode 100644
index 0000000..9ca8502
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/plymouth/plymouth_0.9.2.bb
@@ -0,0 +1,61 @@
+SUMMARY = "Plymouth is a project from Fedora providing a flicker-free graphical boot process."
+
+DESCRIPTION = "Plymouth is an application that runs very early in the boot process \
+               (even before the root filesystem is mounted!) that provides a \
+	       graphical boot animation while the boot process happens in the background."
+
+HOMEPAGE = "http://www.freedesktop.org/wiki/Software/Plymouth"
+SECTION = "base"
+
+LICENSE = "GPLv2+"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+DEPENDS = "libcap libpng cairo dbus udev"
+PROVIDES = "virtual/psplash"
+RPROVIDES_${PN} = "virtual/psplash virtual/psplash-support"
+
+SRC_URI = "http://www.freedesktop.org/software/plymouth/releases/${BPN}-${PV}.tar.bz2"
+SRC_URI[md5sum] = "ff420994deb7ea203df678df92e7ab7d"
+SRC_URI[sha256sum] = "2f0ce82042cf9c7eadd2517a1f74c8a85fa8699781d9f294a06eade29fbed57f"
+
+EXTRA_OECONF += " --enable-shared --disable-static --disable-gtk --disable-documentation\
+		  --with-logo=${LOGO} \
+                  ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--enable-systemd-integration --with-system-root-install', '', d)} \
+                "
+
+PACKAGECONFIG[drm] = "--enable-drm,--disable-drm,libdrm"
+PACKAGECONFIG[pango] = "--enable-pango,--disable-pango,pango"
+PACKAGECONFIG[gtk] = "--enable-gtk,--disable-gtk,gtk+"
+
+PACKAGECONFIG ??= "pango"
+
+LOGO ??= "${datadir}/plymouth/bizcom.png"
+
+PACKAGECONFIG_append_x86 = " drm"
+PACKAGECONFIG_append_x86-64 = " drm"
+
+inherit autotools pkgconfig systemd
+
+
+do_install_append() {
+	install -d ${D}${systemd_unitdir}/system
+	install -m 644 ${B}/systemd-units/*.service ${D}${systemd_unitdir}/system
+	install -m 644 ${B}/systemd-units/systemd-ask-password-plymouth.path ${D}${systemd_unitdir}/system
+	# Remove /var/run from package as plymouth will populate it on startup
+	rm -fr "${D}${localstatedir}/run"
+}
+
+PACKAGES =+ "${PN}-initrd ${PN}-set-default-theme"
+
+FILES_${PN}-initrd = "${libexecdir}/plymouth/*"
+FILES_${PN}-set-default-theme = "${sbindir}/plymouth-set-default-theme"
+
+FILES_${PN} += "${systemd_unitdir}/system/*"
+FILES_${PN}-dbg += "${libdir}/plymouth/renderers/.debug"
+
+
+RDEPENDS_${PN}-initrd = "bash dracut"
+RDEPENDS_${PN}-set-default-theme = "bash"
+
+SYSTEMD_SERVICE_${PN} = "plymouth-start.service"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/proxy-libintl/proxy-libintl-20100902/create-as-shared-lib.patch b/import-layers/meta-openembedded/meta-oe/recipes-core/proxy-libintl/proxy-libintl-20100902/create-as-shared-lib.patch
new file mode 100644
index 0000000..306e3b8
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/proxy-libintl/proxy-libintl-20100902/create-as-shared-lib.patch
@@ -0,0 +1,31 @@
+--- a/src/proxy-libintl/Makefile.org	2009-09-12 23:19:04.989421607 -0700
++++ a/src/proxy-libintl/Makefile	2009-09-12 23:21:14.100640001 -0700
+@@ -4,20 +4,20 @@ ZIPFILE = proxy-libintl-$(TIMESTAMP).zip
+ CC = gcc
+ CFLAGS = -Wall -I ../../include
+ 
+-all : ../../lib/libintl.a ../../lib/intl.lib
++all : ../../lib/libintl.so ../../lib/intl.lib
+ 
+-../../lib/libintl.a : libintl.o
+-	ar rc $@ libintl.o
++../../lib/libintl.so : libintl.o
++	$(CC) -shared -o $@ libintl.o
+ 
+-../../lib/intl.lib : ../../lib/libintl.a
+-	cp ../../lib/libintl.a $@
+-	strip --strip-unneeded $@
++../../lib/intl.lib : ../../lib/libintl.so
++	cp ../../lib/libintl.so $@
++	$(STRIP) --strip-unneeded $@
+ 
+ libintl.o : libintl.c
+ 	$(CC) $(CFLAGS) -c libintl.c
+ 
+ clean :
+-	rm -f *.o ../../lib/libintl.a ../../$(ZIPFILE)
++	rm -f *.o ../../lib/libintl.so ../../$(ZIPFILE)
+ 
+ dist : clean all
+-	cd ../..; zip $(ZIPFILE) include/libintl.h lib/{libintl.a,intl.lib} src/proxy-libintl/{README.txt,COPYING.LIB.txt,Makefile,libintl.[ch]}; manifestify $(ZIPFILE)
++	cd ../..; zip $(ZIPFILE) include/libintl.h lib/{libintl.so,intl.lib} src/proxy-libintl/{README.txt,COPYING.LIB.txt,Makefile,libintl.[ch]}; manifestify $(ZIPFILE)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/proxy-libintl/proxy-libintl-20100902/soname.patch b/import-layers/meta-openembedded/meta-oe/recipes-core/proxy-libintl/proxy-libintl-20100902/soname.patch
new file mode 100644
index 0000000..0df232d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/proxy-libintl/proxy-libintl-20100902/soname.patch
@@ -0,0 +1,23 @@
+Index: proxy-libintl-20080418-r6/src/proxy-libintl/Makefile
+===================================================================
+--- proxy-libintl-20080418-r6.orig/src/proxy-libintl/Makefile	2010-07-25 08:40:22.893620001 -0700
++++ proxy-libintl-20080418-r6/src/proxy-libintl/Makefile	2010-07-25 10:51:29.573620000 -0700
+@@ -6,16 +6,13 @@ CFLAGS = -Wall -I ../../include
+ 
+ all : ../../lib/libintl.so ../../lib/intl.lib
+ 
+-../../lib/libintl.so : libintl.o
+-	$(CC) -shared -o $@ libintl.o
++../../lib/libintl.so : libintl.c
++	$(CC) $(CFLAGS) -shared -Wl,-soname -Wl,libintl.so -o $@ $<
+ 
+ ../../lib/intl.lib : ../../lib/libintl.so
+ 	cp ../../lib/libintl.so $@
+ 	$(STRIP) --strip-unneeded $@
+ 
+-libintl.o : libintl.c
+-	$(CC) $(CFLAGS) -c libintl.c
+-
+ clean :
+ 	rm -f *.o ../../lib/libintl.so ../../$(ZIPFILE)
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/proxy-libintl/proxy-libintl-20100902/stub-only.patch b/import-layers/meta-openembedded/meta-oe/recipes-core/proxy-libintl/proxy-libintl-20100902/stub-only.patch
new file mode 100644
index 0000000..7186b13c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/proxy-libintl/proxy-libintl-20100902/stub-only.patch
@@ -0,0 +1,72 @@
+Index: proxy-libintl/src/proxy-libintl/libintl.c
+===================================================================
+--- proxy-libintl.orig/src/proxy-libintl/libintl.c
++++ proxy-libintl/src/proxy-libintl/libintl.c
+@@ -18,9 +18,12 @@
+  */
+ 
+ #ifdef _WIN32
+-#include <windows.h>
++#  include <windows.h>
+ #else
+-#include <dlfcn.h>
++#  include <stddef.h>
++#  if !STUB_ONLY
++#    include <dlfcn.h>
++#  endif
+ typedef void* HMODULE;
+ #endif
+ 
+@@ -65,11 +68,13 @@ static char * (*p_bind_textdomain_codese
+ static int
+ use_intl_dll (HMODULE dll)
+ {
+-#ifdef _WIN32
+-#define LOOKUP(fn) p_##fn = (void *) GetProcAddress (dll, #fn); if (p_##fn == NULL) return 0
+-#else
+-#define LOOKUP(fn) p_##fn = (void *) dlsym (dll, #fn); if (p_##fn == NULL) return 0
+-#endif
++#if !STUB_ONLY
++#  ifdef _WIN32
++#    define LOOKUP(fn) p_##fn = (void *) GetProcAddress (dll, #fn); if (p_##fn == NULL) return 0
++#  else
++#    define LOOKUP(fn) p_##fn = (void *) dlsym (dll, #fn); if (p_##fn == NULL) return 0
++#  endif  /* _WIN32 */
++
+ 
+   LOOKUP (gettext);
+   LOOKUP (dgettext);
+@@ -82,7 +87,7 @@ use_intl_dll (HMODULE dll)
+   LOOKUP (bind_textdomain_codeset);
+   
+ #undef LOOKUP
+-
++#endif  /* !STUB_ONLY */
+   return 1;
+ }
+ 
+@@ -171,13 +176,17 @@ setup (void)
+ 
+   if (!beenhere)
+     {
+-#ifdef _WIN32
+-      HMODULE intl_dll = LoadLibrary ("intl.dll");
+-#elif defined(__APPLE__) && defined(__MACH__)
+-      HMODULE intl_dll = dlopen ("libintl.dylib", RTLD_LAZY);
+-#else
+-      HMODULE intl_dll = dlopen ("libintl.so", RTLD_LAZY);
+-#endif
++#if !STUB_ONLY
++#  ifdef _WIN32
++    HMODULE intl_dll = LoadLibrary ("intl.dll");
++#  elif defined(__APPLE__) && defined(__MACH__)
++    HMODULE intl_dll = dlopen ("libintl.dylib", RTLD_LAZY);
++#  else
++    HMODULE intl_dll = dlopen ("libintl.so", RTLD_LAZY);
++#  endif
++#else  /* !STUB_ONLY */
++    HMODULE intl_dll = NULL;
++#endif  /* STUB_ONLY */
+ 
+       if (intl_dll != NULL &&
+ 	  use_intl_dll (intl_dll))
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/proxy-libintl/proxy-libintl_20100902.bb b/import-layers/meta-openembedded/meta-oe/recipes-core/proxy-libintl/proxy-libintl_20100902.bb
new file mode 100644
index 0000000..a46a91c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/proxy-libintl/proxy-libintl_20100902.bb
@@ -0,0 +1,34 @@
+SUMMARY = "Proxy libintl"
+HOMEPAGE = "http://ftp.gnome.org/pub/GNOME/binaries/win32/dependencies/"
+SECTION = "libs"
+LICENSE = "LGPLv2"
+LIC_FILES_CHKSUM = "file://src/proxy-libintl/COPYING.LIB.txt;md5=bc400bc21422f9a92e76ec2c5167ca2e"
+
+PR = "r1"
+PROVIDES = "virtual/libintl"
+
+SRC_URI = " \
+    http://ftp.gnome.org/pub/GNOME/binaries/win32/dependencies/${PN}-dev_${PV}_win32.zip \
+"
+SRC_URI[md5sum] = "aef407c2b97ee829383aadd867c61d1e"
+SRC_URI[sha256sum] = "291ac350cc5eb4a01b0d651ca99fae64cee8a1c06b2005277fab5a4356f9ae91"
+
+S = "${WORKDIR}"
+PACKAGES = "${PN} ${PN}-dev"
+FILES_${PN}-dev = "${includedir}/libintl.h ${libdir}/libintl.a"
+INSANE_SKIP_${PN}-dev = "staticdev"
+ALLOW_EMPTY_${PN} = "1"
+CFLAGS_append = " -fPIC -Wall -I ../../include ${@['-DSTUB_ONLY', ''][d.getVar('USE_NLS', 1) != 'no']}"
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+do_compile() {
+    cd ${WORKDIR}/src/proxy-libintl
+    oe_runmake ../../lib/libintl.a
+}
+
+do_install() {
+    install -d ${D}/${includedir}
+    install -d ${D}/${libdir}
+    install -m 0644 ${WORKDIR}/include/libintl.h ${D}/${includedir}
+    install -m 0644 ${WORKDIR}/lib/libintl.a ${D}/${libdir}
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/toybox/toybox_0.6.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-core/toybox/toybox_0.6.0.bb
new file mode 100644
index 0000000..da03200
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/toybox/toybox_0.6.0.bb
@@ -0,0 +1,65 @@
+SUMMARY = "Toybox combines common utilities together into a single executable."
+HOMEPAGE = "http://www.landley.net/toybox/"
+
+SRC_URI = "http://www.landley.net/toybox/downloads/${BPN}-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "7f4a6c89e56c48e3350e611f5b36c2cf"
+SRC_URI[sha256sum] = "b6e2694d19ac08f1c3416d5b2a02a31d445db2ed98dec89761430cdff2c9710d"
+
+
+LICENSE = "BSD-0-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=f0b8b3dd6431bcaa245da0a08bd0d511"
+
+SECTION = "base"
+
+do_configure() {
+    oe_runmake defconfig
+
+    # Disable killall5 as it isn't managed by update-alternatives
+    sed -e 's/CONFIG_KILLALL5=y/# CONFIG_KILLALL5 is not set/' -i .config
+}
+
+do_compile() {
+    oe_runmake toybox_unstripped
+
+    # Create a list of links needed
+    oe_runmake generated/instlist
+    ./generated/instlist long | sed -e 's#^#/#' > toybox.links
+}
+
+do_install() {
+    # Install manually instead of using 'make install'
+    install -d ${D}${base_bindir}
+    if grep -q "CONFIG_TOYBOX_SUID=y" ${B}/.config; then
+        install -m 4755 ${B}/toybox_unstripped ${D}${base_bindir}/toybox
+    else
+        install -m 0755 ${B}/toybox_unstripped ${D}${base_bindir}/toybox
+    fi
+
+    install -d ${D}${sysconfdir}
+    install -m 0644 ${B}/toybox.links ${D}${sysconfdir}
+}
+
+inherit update-alternatives
+
+# If you've chosen to install toybox you probably want it to take precedence
+# over busybox where possible but not over other packages
+ALTERNATIVE_PRIORITY = "60"
+
+python do_package_prepend () {
+    # Read links from /etc/toybox.links and create appropriate
+    # update-alternatives variables
+
+    dvar = d.getVar('D', True)
+    pn = d.getVar('PN', True)
+    target = "/bin/toybox"
+
+    f = open('%s/etc/toybox.links' % (dvar), 'r')
+    for alt_link_name in f:
+        alt_link_name = alt_link_name.strip()
+        alt_name = os.path.basename(alt_link_name)
+        d.appendVar('ALTERNATIVE_%s' % (pn), ' ' + alt_name)
+        d.setVarFlag('ALTERNATIVE_LINK_NAME', alt_name, alt_link_name)
+        d.setVarFlag('ALTERNATIVE_TARGET', alt_name, target)
+    f.close()
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/usleep/files/GPLv2.patch b/import-layers/meta-openembedded/meta-oe/recipes-core/usleep/files/GPLv2.patch
new file mode 100644
index 0000000..1ee8181
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/usleep/files/GPLv2.patch
@@ -0,0 +1,347 @@
+Upstream-Status: Inappropriate [licensing]
+
+diff --git a/COPYING b/COPYING
+new file mode 100644
+index 0000000..d511905
+--- /dev/null
++++ b/COPYING
+@@ -0,0 +1,339 @@
++		    GNU GENERAL PUBLIC LICENSE
++		       Version 2, June 1991
++
++ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
++ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
++ Everyone is permitted to copy and distribute verbatim copies
++ of this license document, but changing it is not allowed.
++
++			    Preamble
++
++  The licenses for most software are designed to take away your
++freedom to share and change it.  By contrast, the GNU General Public
++License is intended to guarantee your freedom to share and change free
++software--to make sure the software is free for all its users.  This
++General Public License applies to most of the Free Software
++Foundation's software and to any other program whose authors commit to
++using it.  (Some other Free Software Foundation software is covered by
++the GNU Lesser General Public License instead.)  You can apply it to
++your programs, too.
++
++  When we speak of free software, we are referring to freedom, not
++price.  Our General Public Licenses are designed to make sure that you
++have the freedom to distribute copies of free software (and charge for
++this service if you wish), that you receive source code or can get it
++if you want it, that you can change the software or use pieces of it
++in new free programs; and that you know you can do these things.
++
++  To protect your rights, we need to make restrictions that forbid
++anyone to deny you these rights or to ask you to surrender the rights.
++These restrictions translate to certain responsibilities for you if you
++distribute copies of the software, or if you modify it.
++
++  For example, if you distribute copies of such a program, whether
++gratis or for a fee, you must give the recipients all the rights that
++you have.  You must make sure that they, too, receive or can get the
++source code.  And you must show them these terms so they know their
++rights.
++
++  We protect your rights with two steps: (1) copyright the software, and
++(2) offer you this license which gives you legal permission to copy,
++distribute and/or modify the software.
++
++  Also, for each author's protection and ours, we want to make certain
++that everyone understands that there is no warranty for this free
++software.  If the software is modified by someone else and passed on, we
++want its recipients to know that what they have is not the original, so
++that any problems introduced by others will not reflect on the original
++authors' reputations.
++
++  Finally, any free program is threatened constantly by software
++patents.  We wish to avoid the danger that redistributors of a free
++program will individually obtain patent licenses, in effect making the
++program proprietary.  To prevent this, we have made it clear that any
++patent must be licensed for everyone's free use or not licensed at all.
++
++  The precise terms and conditions for copying, distribution and
++modification follow.
++
++		    GNU GENERAL PUBLIC LICENSE
++   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
++
++  0. This License applies to any program or other work which contains
++a notice placed by the copyright holder saying it may be distributed
++under the terms of this General Public License.  The "Program", below,
++refers to any such program or work, and a "work based on the Program"
++means either the Program or any derivative work under copyright law:
++that is to say, a work containing the Program or a portion of it,
++either verbatim or with modifications and/or translated into another
++language.  (Hereinafter, translation is included without limitation in
++the term "modification".)  Each licensee is addressed as "you".
++
++Activities other than copying, distribution and modification are not
++covered by this License; they are outside its scope.  The act of
++running the Program is not restricted, and the output from the Program
++is covered only if its contents constitute a work based on the
++Program (independent of having been made by running the Program).
++Whether that is true depends on what the Program does.
++
++  1. You may copy and distribute verbatim copies of the Program's
++source code as you receive it, in any medium, provided that you
++conspicuously and appropriately publish on each copy an appropriate
++copyright notice and disclaimer of warranty; keep intact all the
++notices that refer to this License and to the absence of any warranty;
++and give any other recipients of the Program a copy of this License
++along with the Program.
++
++You may charge a fee for the physical act of transferring a copy, and
++you may at your option offer warranty protection in exchange for a fee.
++
++  2. You may modify your copy or copies of the Program or any portion
++of it, thus forming a work based on the Program, and copy and
++distribute such modifications or work under the terms of Section 1
++above, provided that you also meet all of these conditions:
++
++    a) You must cause the modified files to carry prominent notices
++    stating that you changed the files and the date of any change.
++
++    b) You must cause any work that you distribute or publish, that in
++    whole or in part contains or is derived from the Program or any
++    part thereof, to be licensed as a whole at no charge to all third
++    parties under the terms of this License.
++
++    c) If the modified program normally reads commands interactively
++    when run, you must cause it, when started running for such
++    interactive use in the most ordinary way, to print or display an
++    announcement including an appropriate copyright notice and a
++    notice that there is no warranty (or else, saying that you provide
++    a warranty) and that users may redistribute the program under
++    these conditions, and telling the user how to view a copy of this
++    License.  (Exception: if the Program itself is interactive but
++    does not normally print such an announcement, your work based on
++    the Program is not required to print an announcement.)
++
++These requirements apply to the modified work as a whole.  If
++identifiable sections of that work are not derived from the Program,
++and can be reasonably considered independent and separate works in
++themselves, then this License, and its terms, do not apply to those
++sections when you distribute them as separate works.  But when you
++distribute the same sections as part of a whole which is a work based
++on the Program, the distribution of the whole must be on the terms of
++this License, whose permissions for other licensees extend to the
++entire whole, and thus to each and every part regardless of who wrote it.
++
++Thus, it is not the intent of this section to claim rights or contest
++your rights to work written entirely by you; rather, the intent is to
++exercise the right to control the distribution of derivative or
++collective works based on the Program.
++
++In addition, mere aggregation of another work not based on the Program
++with the Program (or with a work based on the Program) on a volume of
++a storage or distribution medium does not bring the other work under
++the scope of this License.
++
++  3. You may copy and distribute the Program (or a work based on it,
++under Section 2) in object code or executable form under the terms of
++Sections 1 and 2 above provided that you also do one of the following:
++
++    a) Accompany it with the complete corresponding machine-readable
++    source code, which must be distributed under the terms of Sections
++    1 and 2 above on a medium customarily used for software interchange; or,
++
++    b) Accompany it with a written offer, valid for at least three
++    years, to give any third party, for a charge no more than your
++    cost of physically performing source distribution, a complete
++    machine-readable copy of the corresponding source code, to be
++    distributed under the terms of Sections 1 and 2 above on a medium
++    customarily used for software interchange; or,
++
++    c) Accompany it with the information you received as to the offer
++    to distribute corresponding source code.  (This alternative is
++    allowed only for noncommercial distribution and only if you
++    received the program in object code or executable form with such
++    an offer, in accord with Subsection b above.)
++
++The source code for a work means the preferred form of the work for
++making modifications to it.  For an executable work, complete source
++code means all the source code for all modules it contains, plus any
++associated interface definition files, plus the scripts used to
++control compilation and installation of the executable.  However, as a
++special exception, the source code distributed need not include
++anything that is normally distributed (in either source or binary
++form) with the major components (compiler, kernel, and so on) of the
++operating system on which the executable runs, unless that component
++itself accompanies the executable.
++
++If distribution of executable or object code is made by offering
++access to copy from a designated place, then offering equivalent
++access to copy the source code from the same place counts as
++distribution of the source code, even though third parties are not
++compelled to copy the source along with the object code.
++
++  4. You may not copy, modify, sublicense, or distribute the Program
++except as expressly provided under this License.  Any attempt
++otherwise to copy, modify, sublicense or distribute the Program is
++void, and will automatically terminate your rights under this License.
++However, parties who have received copies, or rights, from you under
++this License will not have their licenses terminated so long as such
++parties remain in full compliance.
++
++  5. You are not required to accept this License, since you have not
++signed it.  However, nothing else grants you permission to modify or
++distribute the Program or its derivative works.  These actions are
++prohibited by law if you do not accept this License.  Therefore, by
++modifying or distributing the Program (or any work based on the
++Program), you indicate your acceptance of this License to do so, and
++all its terms and conditions for copying, distributing or modifying
++the Program or works based on it.
++
++  6. Each time you redistribute the Program (or any work based on the
++Program), the recipient automatically receives a license from the
++original licensor to copy, distribute or modify the Program subject to
++these terms and conditions.  You may not impose any further
++restrictions on the recipients' exercise of the rights granted herein.
++You are not responsible for enforcing compliance by third parties to
++this License.
++
++  7. If, as a consequence of a court judgment or allegation of patent
++infringement or for any other reason (not limited to patent issues),
++conditions are imposed on you (whether by court order, agreement or
++otherwise) that contradict the conditions of this License, they do not
++excuse you from the conditions of this License.  If you cannot
++distribute so as to satisfy simultaneously your obligations under this
++License and any other pertinent obligations, then as a consequence you
++may not distribute the Program at all.  For example, if a patent
++license would not permit royalty-free redistribution of the Program by
++all those who receive copies directly or indirectly through you, then
++the only way you could satisfy both it and this License would be to
++refrain entirely from distribution of the Program.
++
++If any portion of this section is held invalid or unenforceable under
++any particular circumstance, the balance of the section is intended to
++apply and the section as a whole is intended to apply in other
++circumstances.
++
++It is not the purpose of this section to induce you to infringe any
++patents or other property right claims or to contest validity of any
++such claims; this section has the sole purpose of protecting the
++integrity of the free software distribution system, which is
++implemented by public license practices.  Many people have made
++generous contributions to the wide range of software distributed
++through that system in reliance on consistent application of that
++system; it is up to the author/donor to decide if he or she is willing
++to distribute software through any other system and a licensee cannot
++impose that choice.
++
++This section is intended to make thoroughly clear what is believed to
++be a consequence of the rest of this License.
++
++  8. If the distribution and/or use of the Program is restricted in
++certain countries either by patents or by copyrighted interfaces, the
++original copyright holder who places the Program under this License
++may add an explicit geographical distribution limitation excluding
++those countries, so that distribution is permitted only in or among
++countries not thus excluded.  In such case, this License incorporates
++the limitation as if written in the body of this License.
++
++  9. The Free Software Foundation may publish revised and/or new versions
++of the General Public License from time to time.  Such new versions will
++be similar in spirit to the present version, but may differ in detail to
++address new problems or concerns.
++
++Each version is given a distinguishing version number.  If the Program
++specifies a version number of this License which applies to it and "any
++later version", you have the option of following the terms and conditions
++either of that version or of any later version published by the Free
++Software Foundation.  If the Program does not specify a version number of
++this License, you may choose any version ever published by the Free Software
++Foundation.
++
++  10. If you wish to incorporate parts of the Program into other free
++programs whose distribution conditions are different, write to the author
++to ask for permission.  For software which is copyrighted by the Free
++Software Foundation, write to the Free Software Foundation; we sometimes
++make exceptions for this.  Our decision will be guided by the two goals
++of preserving the free status of all derivatives of our free software and
++of promoting the sharing and reuse of software generally.
++
++			    NO WARRANTY
++
++  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
++FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
++OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
++PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
++OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
++MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
++TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
++PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
++REPAIR OR CORRECTION.
++
++  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
++WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
++REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
++INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
++OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
++TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
++YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
++PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
++POSSIBILITY OF SUCH DAMAGES.
++
++		     END OF TERMS AND CONDITIONS
++
++	    How to Apply These Terms to Your New Programs
++
++  If you develop a new program, and you want it to be of the greatest
++possible use to the public, the best way to achieve this is to make it
++free software which everyone can redistribute and change under these terms.
++
++  To do so, attach the following notices to the program.  It is safest
++to attach them to the start of each source file to most effectively
++convey the exclusion of warranty; and each file should have at least
++the "copyright" line and a pointer to where the full notice is found.
++
++    <one line to give the program's name and a brief idea of what it does.>
++    Copyright (C) <year>  <name of author>
++
++    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, Inc.,
++    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
++
++Also add information on how to contact you by electronic and paper mail.
++
++If the program is interactive, make it output a short notice like this
++when it starts in an interactive mode:
++
++    Gnomovision version 69, Copyright (C) year name of author
++    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
++    This is free software, and you are welcome to redistribute it
++    under certain conditions; type `show c' for details.
++
++The hypothetical commands `show w' and `show c' should show the appropriate
++parts of the General Public License.  Of course, the commands you use may
++be called something other than `show w' and `show c'; they could even be
++mouse-clicks or menu items--whatever suits your program.
++
++You should also get your employer (if you work as a programmer) or your
++school, if any, to sign a "copyright disclaimer" for the program, if
++necessary.  Here is a sample; alter the names:
++
++  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
++  `Gnomovision' (which makes passes at compilers) written by James Hacker.
++
++  <signature of Ty Coon>, 1 April 1989
++  Ty Coon, President of Vice
++
++This General Public License does not permit incorporating your program into
++proprietary programs.  If your program is a subroutine library, you may
++consider it more useful to permit linking proprietary applications with the
++library.  If this is what you want to do, use the GNU Lesser General
++Public License instead of this License.
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/usleep/files/usleep.1 b/import-layers/meta-openembedded/meta-oe/recipes-core/usleep/files/usleep.1
new file mode 100644
index 0000000..2d7520f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/usleep/files/usleep.1
@@ -0,0 +1,25 @@
+.TH USLEEP 1 "Red Hat, Inc" \" -*- nroff -*-
+.SH NAME
+usleep \- sleep some number of microseconds
+.SH SYNOPSIS
+.B usleep
+[\fInumber\fP]
+.SH DESCRIPTION
+.B usleep
+sleeps some number of microseconds.  The default is 1.
+.SH OPTIONS
+\fI--usage\fP
+Show short usage message.
+.TP
+\fI--help, -?\fP
+Print help information.
+.TP
+\fI-v, --version\fP
+Print version information.
+.SH BUGS
+Probably not accurate on many machines down to the microsecond.  Count
+on precision only to -4 or maybe -5.
+.SH AUTHOR
+Donald Barnes <djb@redhat.com>
+.br
+Erik Troan <ewt@redhat.com>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/usleep/files/usleep.c b/import-layers/meta-openembedded/meta-oe/recipes-core/usleep/files/usleep.c
new file mode 100644
index 0000000..a5e7d9d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/usleep/files/usleep.c
@@ -0,0 +1,82 @@
+/* 
+ * usleep
+ * 
+ * Written by Donald Barnes <djb@redhat.com> for Red Hat, Inc.
+ * 
+ * Copyright (c) 1997-2003 Red Hat, Inc. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License, version 2,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ */
+
+
+#include <unistd.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+
+#include "popt.h"
+
+int main(int argc, char **argv) {
+  unsigned long count;
+  poptContext optCon;
+  int showVersion = 0;
+  int showOot = 0;
+  int rc;
+  char * countStr = NULL;
+  struct poptOption options[] = {
+            { "version", 'v', POPT_ARG_NONE, &showVersion, 0, 
+			"Display the version of this program, and exit" },
+            { "oot", 'o', POPT_ARG_NONE, &showOot, 0, 
+			"oot says hey!" },
+	    POPT_AUTOHELP
+            { 0, 0, 0, 0, 0 }
+        };
+
+  optCon = poptGetContext("usleep", argc, argv, options,0);
+  /*poptReadDefaultConfig(optCon, 1);*/
+  poptSetOtherOptionHelp(optCon, "[microseconds]");
+
+  if ((rc = poptGetNextOpt(optCon)) < -1) {
+	fprintf(stderr, "usleep: bad argument %s: %s\n", 
+		poptBadOption(optCon, POPT_BADOPTION_NOALIAS), 
+		poptStrerror(rc));
+	return 2;
+  }
+
+  if (showVersion) {
+      printf("usleep version 1.2\n	usleep --help for more info\n");
+      return 0;
+  }
+
+  if (showOot) {
+      printf("oot says hey!\n");
+      return 0;
+  }
+
+  countStr = poptGetArg(optCon);
+
+  if (countStr == NULL) count = 1;
+
+  else if (countStr && poptGetArg(optCon)) {
+      fprintf(stderr, "%s: exactly one argument (number of microseconds) "
+      		"must be used\n", argv[0]);
+      return 2;
+  }
+
+  else count = strtoul(countStr, NULL, 0); 
+
+  usleep(count);
+  return 0;
+} 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-core/usleep/usleep_1.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-core/usleep/usleep_1.0.bb
new file mode 100644
index 0000000..2ef4b7c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-core/usleep/usleep_1.0.bb
@@ -0,0 +1,26 @@
+SUMMARY = "A user tool to support sleeping some number of microseconds"
+SECTION = "base"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+PR = "r0"
+
+S = "${WORKDIR}"
+DEPENDS = "popt"
+
+SRC_URI = "file://usleep.c \
+           file://usleep.1 \
+           file://GPLv2.patch \
+"
+
+do_compile() {
+	${CC} ${CFLAGS} ${LDFLAGS} usleep.c -o usleep -lpopt
+}
+
+do_install() {
+	install -d ${D}${base_bindir}
+	install -d ${D}${mandir}/man1
+
+	install -m 0755	${WORKDIR}/usleep	${D}${base_bindir}
+	install -m 0644	${WORKDIR}/usleep.1	${D}${mandir}/man1
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/autoconf-archive/autoconf-archive.inc b/import-layers/meta-openembedded/meta-oe/recipes-devtools/autoconf-archive/autoconf-archive.inc
new file mode 100644
index 0000000..9399363
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/autoconf-archive/autoconf-archive.inc
@@ -0,0 +1,15 @@
+LICENSE = "GPLv3"
+HOMEPAGE = "http://www.gnu.org/software/autoconf-archive/"
+SECTION = "devel"
+
+DEPENDS += "m4-native"
+DEPENDS_class-native = "m4-native gnu-config-native"
+DEPENDS_class-nativesdk = "m4-nativesdk gnu-config-nativesdk"
+
+RDEPENDS_${PN} = "m4 gnu-config"
+RDEPENDS_${PN}_class-native = "m4-native gnu-config-native"
+RDEPENDS_${PN}_class-nativesdk = "m4-nativesdk gnu-config-nativesdk"
+
+SRC_URI = "${GNU_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2"
+
+inherit autotools
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/autoconf-archive/autoconf-archive_2012.04.07.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/autoconf-archive/autoconf-archive_2012.04.07.bb
new file mode 100644
index 0000000..5baaecc
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/autoconf-archive/autoconf-archive_2012.04.07.bb
@@ -0,0 +1,13 @@
+require autoconf-archive.inc
+
+
+PARALLEL_MAKE = ""
+
+LICENSE = "GPLv2 & GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+SRC_URI[md5sum] = "e842c5b9fae021007bd70550362e5e80"
+SRC_URI[sha256sum] = "040b443bf68efd52fbfcb294b556bfbbbfe432db78445ca25e0cfe2e88f96a14"
+
+EXTRA_OECONF += "ac_cv_path_M4=m4"
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/bootchart/bootchart/0001-svg-add-rudimentary-support-for-ARM-cpuinfo.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/bootchart/bootchart/0001-svg-add-rudimentary-support-for-ARM-cpuinfo.patch
new file mode 100644
index 0000000..4581ef2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/bootchart/bootchart/0001-svg-add-rudimentary-support-for-ARM-cpuinfo.patch
@@ -0,0 +1,49 @@
+From 8d40b4c286e005e82fa50b66fbbbde22b7e65e15 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Sun, 20 May 2012 21:35:34 +0200
+Subject: [PATCH 1/2] svg: add rudimentary support for ARM cpuinfo
+
+On ARM /proc/cpuinfo looks like this:
+
+root@beagleboneA3-0428:~# cat /proc/cpuinfo
+Processor	: ARMv7 Processor rev 2 (v7l)
+BogoMIPS	: 498.89
+Features	: swp half thumb fastmult vfp edsp thumbee neon vfpv3 tls
+CPU implementer	: 0x41
+CPU architecture: 7
+CPU variant	: 0x3
+CPU part	: 0xc08
+CPU revision	: 2
+
+Hardware	: am335xevm
+Revision	: 0000
+Serial		: 0000000000000000
+
+So no real way to get the actual SoC name, TI AM3359, but a lot better than 'Unknown'
+
+Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
+---
+
+Upstream-Status: submitted
+
+ svg.c |    4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/svg.c b/svg.c
+index 80e0292..53724b2 100644
+--- a/svg.c
++++ b/svg.c
+@@ -178,6 +178,10 @@ void svg_title(void)
+ 				strncpy(cpu, &buf[13], 255);
+ 				break;
+ 			}
++			if (strstr(buf, "Processor")) {
++				strncpy(cpu, &buf[12], 255);
++				break;
++			}
+ 		}
+ 		fclose(f);
+ 	}
+-- 
+1.7.10
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/bootchart/bootchart/0002-svg-open-etc-os-release-and-use-PRETTY_NAME-for-the-.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/bootchart/bootchart/0002-svg-open-etc-os-release-and-use-PRETTY_NAME-for-the-.patch
new file mode 100644
index 0000000..f63d98a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/bootchart/bootchart/0002-svg-open-etc-os-release-and-use-PRETTY_NAME-for-the-.patch
@@ -0,0 +1,39 @@
+From e3adb4c312c6ba3491b7c173559efac7a53e5abc Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Sun, 20 May 2012 22:12:29 +0200
+Subject: [PATCH 2/2] svg: open /etc/os-release and use PRETTY_NAME for the
+ 'Build' name
+
+Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
+---
+
+Upstream-Status: Submitted
+
+ svg.c |   11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+diff --git a/svg.c b/svg.c
+index 53724b2..c675d84 100644
+--- a/svg.c
++++ b/svg.c
+@@ -194,6 +194,17 @@ void svg_title(void)
+ 		fclose(f);
+ 	}
+ 
++	f = fopen("/etc/os-release", "r");
++	if(f) {
++		while (fgets(buf, 255, f)) {
++			if (strstr(buf, "PRETTY_NAME=")) {
++				strncpy(build, &buf[12], 255);
++				break;
++			}
++		}
++		fclose(f);
++	}
++
+ 	svg("<text class=\"t1\" x=\"0\" y=\"30\">Bootchart for %s - %s</text>\n",
+ 	    uts.nodename, date);
+ 	svg("<text class=\"t2\" x=\"20\" y=\"50\">System: %s %s %s %s</text>\n",
+-- 
+1.7.10
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/bootchart/bootchart_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/bootchart/bootchart_git.bb
new file mode 100644
index 0000000..2b75eaa
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/bootchart/bootchart_git.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "Monitors where the system spends its time at start, creating a graph of all processes, disk utilization, and wait time."
+HOMEPAGE = "http://meego.gitorious.org/meego-developer-tools/bootchart"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fcb02dc552a041dee27e4b85c7396067"
+
+PV = "1.17"
+PR = "r1"
+PE = "1"
+
+SRC_URI = "git://gitorious.org/meego-developer-tools/bootchart.git;protocol=https \
+           file://0001-svg-add-rudimentary-support-for-ARM-cpuinfo.patch \
+           file://0002-svg-open-etc-os-release-and-use-PRETTY_NAME-for-the-.patch \
+"
+
+SRCREV = "a2c7561d4060a9f075339bda89e793c76f2ff6dd"
+
+S = "${WORKDIR}/git"
+
+inherit autotools
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad_svn.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad_svn.bb
new file mode 100644
index 0000000..7ada3a3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad_svn.bb
@@ -0,0 +1,89 @@
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+# Applications using this library needs to add link against libbreakpad_client.a.
+
+SUMMARY = "An open-source multi-platform crash reporting system"
+DESCRIPTION = "Breakpad is a library and tool suite that allows you to distribute an application to users with compiler-provided debugging information removed, record crashes in compact \"minidump\" files, send them back to your server, and produce C and C++ stack traces from these minidumps. "
+HOMEPAGE = "https://code.google.com/p/google-breakpad/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=56c24a43c81c3af6fcf590851931489e"
+SECTION = "libs"
+
+inherit autotools
+
+BBCLASSEXTEND = "native"
+
+SRCREV = "r1435"
+SRC_URI = "svn://google-breakpad.googlecode.com/svn;module=trunk;protocol=http"
+S = "${WORKDIR}/trunk"
+
+do_install_append() {
+        install -d ${D}${includedir}
+        install -d ${D}${includedir}/breakpad
+
+        install -d ${D}${includedir}/breakpad/client/linux/crash_generation
+        install -m 0644 ${S}/src/client/linux/crash_generation/crash_generation_client.h  ${D}${includedir}/breakpad/client/linux/crash_generation/crash_generation_client.h
+
+        install -d ${D}${includedir}/breakpad/client/linux/handler/
+        install -m 0644 ${S}/src/client/linux/handler/exception_handler.h ${D}${includedir}/breakpad/client/linux/handler/exception_handler.h
+        install -m 0644 ${S}/src/client/linux/handler/minidump_descriptor.h ${D}${includedir}/breakpad/client/linux/handler/minidump_descriptor.h
+
+        install -d ${D}${includedir}/breakpad/client/linux/dump_writer_common
+        install -m 0644 ${S}/src/client/linux/dump_writer_common/mapping_info.h ${D}${includedir}/breakpad/client/linux/dump_writer_common/mapping_info.h
+        install -m 0644 ${S}/src/client/linux/dump_writer_common/thread_info.h ${D}${includedir}/breakpad/client/linux/dump_writer_common/thread_info.h
+        install -m 0644 ${S}/src/client/linux/dump_writer_common/raw_context_cpu.h ${D}${includedir}/breakpad/client/linux/dump_writer_common/raw_context_cpu.h
+
+        install -d ${D}${includedir}/breakpad/client/linux/minidump_writer
+        install -m 0644 ${S}/src/client/linux/minidump_writer/linux_dumper.h ${D}${includedir}/breakpad/client/linux/minidump_writer/linux_dumper.h
+        install -m 0644 ${S}/src/client/linux/minidump_writer/minidump_writer.h ${D}${includedir}/breakpad/client/linux/minidump_writer/minidump_writer.h
+
+        install -d ${D}${includedir}/breakpad/common
+        install -m 0644 ${S}/src/common/memory.h ${D}${includedir}/breakpad/common/memory.h
+        install -m 0644 ${S}/src/common/scoped_ptr.h ${D}${includedir}/breakpad/common/scoped_ptr.h
+        install -m 0644 ${S}/src/common/using_std_string.h ${D}${includedir}/breakpad/common/using_std_string.h
+
+        install -d ${D}${includedir}/breakpad/google_breakpad/common
+        install -m 0644 ${S}/src/google_breakpad/common/breakpad_types.h ${D}${includedir}/breakpad/google_breakpad/common/breakpad_types.h
+        install -m 0644 ${S}/src/google_breakpad/common/minidump_format.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_format.h
+        install -m 0644 ${S}/src/google_breakpad/common/minidump_cpu_amd64.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_cpu_amd64.h
+        install -m 0644 ${S}/src/google_breakpad/common/minidump_cpu_arm.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_cpu_arm.h
+        install -m 0644 ${S}/src/google_breakpad/common/minidump_cpu_arm.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_cpu_arm64.h
+        install -m 0644 ${S}/src/google_breakpad/common/minidump_cpu_mips.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_cpu_mips.h
+        install -m 0644 ${S}/src/google_breakpad/common/minidump_cpu_ppc64.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_cpu_ppc64.h
+        install -m 0644 ${S}/src/google_breakpad/common/minidump_cpu_ppc.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_cpu_ppc.h
+        install -m 0644 ${S}/src/google_breakpad/common/minidump_cpu_sparc.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_cpu_sparc.h
+        install -m 0644 ${S}/src/google_breakpad/common/minidump_cpu_x86.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_cpu_x86.h
+        install -m 0644 ${S}/src/google_breakpad/common/minidump_exception_linux.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_exception_linux.h
+        install -m 0644 ${S}/src/google_breakpad/common/minidump_exception_mac.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_exception_mac.h
+        install -m 0644 ${S}/src/google_breakpad/common/minidump_exception_ps3.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_exception_ps3.h
+        install -m 0644 ${S}/src/google_breakpad/common/minidump_exception_solaris.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_exception_solaris.h
+        install -m 0644 ${S}/src/google_breakpad/common/minidump_exception_win32.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_exception_win32.h
+
+        install -d ${D}${includedir}/breakpad/third_party/lss
+        install -m 0644 ${S}/src/third_party/lss/linux_syscall_support.h ${D}${includedir}/breakpad/third_party/lss/linux_syscall_support.h
+}
+
+PACKAGES =+ "${PN}-minidump-upload ${PN}-sym-upload"
+
+FILES_${PN}-minidump-upload = "${bindir}/minidump_upload"
+FILES_${PN}-sym-upload = "${bindir}/sym_upload"
+
+
+SYSROOT_PREPROCESS_FUNCS += "breakpad_populate_sysroot"
+breakpad_populate_sysroot() {
+        sysroot_stage_dir ${D}/usr/include ${SYSROOT_DESTDIR}/usr/include
+        sysroot_stage_dir ${D}/usr/lib ${SYSROOT_DESTDIR}/usr/lib
+        sysroot_stage_dir ${D}/usr/lib ${SYSROOT_DESTDIR}/usr/lib
+}
+
+# Fails to build with thumb-1 (qemuarm)
+#| {standard input}: Assembler messages:
+#| {standard input}:2178: Error: selected processor does not support Thumb mode `it ne'
+#| {standard input}:2179: Error: Thumb does not support conditional execution
+#| {standard input}:2180: Error: selected processor does not support Thumb mode `it eq'
+#| {standard input}:2181: Error: Thumb does not support conditional execution
+#| {standard input}:2183: Error: lo register required -- `str ip,[r1,#-4]!'
+#| {standard input}:2184: Error: Thumb does not support this addressing mode -- `str r6,[r1,#-4]!'
+#| {standard input}:2191: Error: lo register required -- `ldr pc,[sp]'
+#| make: *** [src/client/linux/handler/exception_handler.o] Error 1
+ARM_INSTRUCTION_SET = "arm"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/cgdb/cgdb/remove-help2man.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/cgdb/cgdb/remove-help2man.patch
new file mode 100644
index 0000000..4358629
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/cgdb/cgdb/remove-help2man.patch
@@ -0,0 +1,47 @@
+Disable building manpages so that make install doesn't fail due to lack of help2man
+
+Upstream-Status: Inappropriate [config]
+
+Signed-off-by: Matthieu Crapet <Matthieu.Crapet@ingenico.com>
+---
+ configure.ac    | 3 ---
+ doc/Makefile.am | 5 -----
+ 2 files changed, 8 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index ee7eca0..1f0d924 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -134,9 +134,6 @@ dnl check that the required tools are available to generate documentation
+ if test "$HAS_MAKEINFO" != "yes" ; then
+ 	AC_MSG_ERROR([Please install makeinfo before installing])
+ fi
+-if test "$HAS_HELP2MAN" != "yes" ; then
+-	AC_MSG_ERROR([Please install help2man])
+-fi
+ 
+ dnl Checking for log10 function in math - I would like to remove this
+ AC_CHECK_LIB(m, log10)
+diff --git a/doc/Makefile.am b/doc/Makefile.am
+index 60662f6..0ae0013 100644
+--- a/doc/Makefile.am
++++ b/doc/Makefile.am
+@@ -1,15 +1,10 @@
+ info_TEXINFOS = cgdb.texi
+ cgdb_TEXINFOS = gpl.texi
+ 
+-dist_man_MANS = cgdb.1
+ EXTRA_DIST = cgdb.txt
+ 
+ dist_pkgdata_DATA = cgdb.txt
+ 
+-# generate the man page using help2man.
+-cgdb.1:
+-	help2man --output=$(top_srcdir)/doc/cgdb.1 $(top_builddir)/cgdb/cgdb$(EXEEXT)
+-
+ cgdb.txt: cgdb.texi $(srcdir)/version.texi $(cgdb_TEXINFOS)
+ TEXTS = cgdb.txt
+ text-am: $(TEXTS)
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/cgdb/cgdb_0.6.8.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/cgdb/cgdb_0.6.8.bb
new file mode 100644
index 0000000..74019fb
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/cgdb/cgdb_0.6.8.bb
@@ -0,0 +1,21 @@
+SUMMARY = "curses-based interface to GDB"
+DESCRIPTION = "cgdb is a lightweight curses (terminal-based) interface to the GNU Debugger (GDB)."
+HOMEPAGE = "http://cgdb.github.io/"
+SECTION = "devel"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+DEPENDS = "flex-native readline ncurses"
+
+inherit autotools
+
+SRC_URI = "http://cgdb.me/files/${BP}.tar.gz \
+    file://remove-help2man.patch"
+SRC_URI[md5sum] = "7bd38c79bf4d794d239928fef401fca3"
+SRC_URI[sha256sum] = "be203e29be295097439ab67efe3dc8261f742c55ff3647718d67d52891f4cf41"
+
+CACHED_CONFIGUREVARS = "ac_cv_file__dev_ptmx=yes ac_cv_rl_version=6.2"
+EXTRA_OECONF = "--with-readline=${STAGING_LIBDIR} \
+    --with-ncurses=${STAGING_LIBDIR}"
+
+RDEPENDS_${PN} = "gdb"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/cloud9/cloud9/0001-ide-use-node-as-interpreter-for-sketches-instead-of-.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/cloud9/cloud9/0001-ide-use-node-as-interpreter-for-sketches-instead-of-.patch
new file mode 100644
index 0000000..b32311a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/cloud9/cloud9/0001-ide-use-node-as-interpreter-for-sketches-instead-of-.patch
@@ -0,0 +1,29 @@
+From ac1953d04f3f26d6aa5d8f53a9397d3ba0e96fa3 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@circuitco.com>
+Date: Fri, 11 May 2012 15:23:02 +0000
+Subject: [PATCH] ide: use 'node' as interpreter for sketches instead of
+ argv[0]
+
+This enables running scripts with node 0.6.x instead of 0.4.x
+
+Signed-off-by: root <root@beaglebone.(none)>
+---
+ server/cloud9/ide.js |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/server/cloud9/ide.js b/server/cloud9/ide.js
+index ce782f5..6c4e0f7 100644
+--- a/server/cloud9/ide.js
++++ b/server/cloud9/ide.js
+@@ -53,7 +53,7 @@ var Ide = module.exports = function(options, httpServer, exts, socket) {
+     };
+ 
+     this.$users = {};
+-    this.nodeCmd = process.argv[0];
++    this.nodeCmd = "node";
+ 
+     var davOptions = {
+         node: this.options.mountDir,
+-- 
+1.7.7
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/cloud9/cloud9/cloud9-avahi.service b/import-layers/meta-openembedded/meta-oe/recipes-devtools/cloud9/cloud9/cloud9-avahi.service
new file mode 100644
index 0000000..cb9b6e2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/cloud9/cloud9/cloud9-avahi.service
@@ -0,0 +1,10 @@
+<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
+<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
+
+<service-group>
+  <name replace-wildcards="yes">Cloud9 IDE on %h</name>
+  <service>
+    <type>_http._tcp</type>
+    <port>3000</port>
+  </service>
+</service-group>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/cloud9/cloud9/cloud9.service b/import-layers/meta-openembedded/meta-oe/recipes-devtools/cloud9/cloud9/cloud9.service
new file mode 100644
index 0000000..495b131
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/cloud9/cloud9/cloud9.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Cloud9 IDE
+ConditionPathExists=|/var/lib/cloud9
+
+[Service]
+Restart=always
+EnvironmentFile=-/etc/default/node
+ExecStart=/usr/bin/node4 /usr/share/cloud9/bin/cloud9.js -l 0.0.0.0 -w /var/lib/cloud9 -p 3000
+
+[Install]
+WantedBy=multi-user.target
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/cloud9/cloud9/index.js b/import-layers/meta-openembedded/meta-oe/recipes-devtools/cloud9/cloud9/index.js
new file mode 100644
index 0000000..88c9a19
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/cloud9/cloud9/index.js
@@ -0,0 +1,2 @@
+var o3 = require('./o3.js')
+module.exports = o3.xml;
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/cloud9/cloud9_0.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/cloud9/cloud9_0.6.bb
new file mode 100644
index 0000000..87e524d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/cloud9/cloud9_0.6.bb
@@ -0,0 +1,118 @@
+SUMMARY = "Meet Cloud9, development-as-a-service for Javascripters and other developers"
+HOMEPAGE = "http://c9.io"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4784c3bcff601fd8f9515f52a11e7018"
+
+PR = "r5"
+
+# Nodejs-native for node-waf, nodejs4-native for the headers
+DEPENDS = "libxml2 nodejs-native nodejs4-native"
+
+PNBLACKLIST[cloud9] ?= "Not comatible with current nodejs 0.12, but upstream is working on it for v3"
+inherit systemd
+
+SRC_URI = "git://github.com/ajaxorg/cloud9.git;name=cloud9ide \
+           git://github.com/ajaxorg/o3;destsuffix=o3;name=o3 \
+           git://github.com/ajaxorg/ace.git;destsuffix=git/support/ace;name=ace \
+           git://github.com/ajaxorg/ace.wiki.git;destsuffix=git/support/ace/doc/wiki;name=acewiki \
+           git://github.com/ajaxorg/apf.git;destsuffix=git/support/apf;name=apf \
+           git://github.com/ajaxorg/async.js.git;destsuffix=git/support/asyncjs;name=asyncjs \
+           git://github.com/ajaxorg/connect.git;destsuffix=git/support/connect;name=connect;branch=ajaxorg \
+           git://github.com/jashkenas/coffee-script.git;destsuffix=git/support/connect/support/coffee-script;name=coffee-script \
+           git://github.com/visionmedia/expresso.git;destsuffix=git/support/connect/support/expresso;name=expresso \
+           git://github.com/visionmedia/node-jscoverage.git;destsuffix=git/support/connect/support/expresso/deps/jscoverage;name=jscoverage \
+           git://github.com/cloudhead/less.js.git;destsuffix=git/support/connect/support/less;name=less \
+           git://github.com/matehat/sass.js.git;destsuffix=git/support/connect/support/sass;name=sass \
+           git://github.com/ajaxorg/jsDAV.git;destsuffix=git/support/jsdav;name=jsdav \
+           git://github.com/fjakobs/async.js.git;destsuffix=git/support/jsdav/support/async.js;name=async-js \
+           git://github.com/felixge/node-formidable.git;destsuffix=git/support/jsdav/support/formidable;name=formidable \
+           git://github.com/ajaxorg/jsftp.git;destsuffix=git/support/jsdav/support/jsftp;name=jsftp \
+           git://github.com/Gozala/streamer.git;destsuffix=git/support/jsdav/support/jsftp/support/streamer;name=streamer \
+           git://github.com/ajaxorg/node-sftp.git;destsuffix=git/support/jsdav/support/node-sftp;name=sftp \
+           git://github.com/ajaxorg/lib-v8debug.git;destsuffix=git/support/lib-v8debug;name=lib-v8debug \
+           git://github.com/ajaxorg/socket.io.git;destsuffix=git/support/socket.io;name=socketio;branch=cadorn-upstream \
+           git://github.com/LearnBoost/socket.io-client.git;destsuffix=git/support/socket.io-client;name=socketio-client \
+           git://github.com/ajaxorg/treehugger.git;destsuffix=git/support/treehugger;name=treehugger \
+           git://github.com/ajaxorg/UglifyJS.git;destsuffix=git/support/uglify-js;name=uglify-js \
+           file://index.js \
+           file://cloud9-avahi.service \
+           file://cloud9.service \
+           file://0001-ide-use-node-as-interpreter-for-sketches-instead-of-.patch \
+"
+
+SRCREV_cloud9ide = "c4e2574896a22bb749f0500b25f41c888d346bed"
+SRCREV_o3 = "d66d4e3252e505f44ada6804c8cab39915ce8afd"
+SRCREV_ace = "0fc5392cbe46fb134052c3065a238ad8e3b31cfd"
+SRCREV_acewiki = "d2a65d0addc2e5ab922bbff9cb6022a4652b4f13"
+SRCREV_apf = "2560b762b2b0e5a8b46f8a4062f927a9a9d239f4"
+SRCREV_asyncjs = "d36ead408e2959b1e99572114ef3a1b6a48c1072"
+SRCREV_connect = "6bec95b51f2286b942bc7f340d62d816bcdc13d4"
+SRCREV_coffee-script = "a53c104db16d3ac9d13cf9f16834edec250b9749"
+SRCREV_expresso = "7f10ab7fa655299b4e2f519065b0495e6ac34ef2"
+SRCREV_jscoverage = "0d4608a6b4275b020ba665389aa75897d5d4a584"
+SRCREV_less = "a2807288008587b95c6c2f8ba5cac16f1bcab98f"
+SRCREV_sass = "4dfd4c699e7a8baf226215ab044854c4507f4420"
+SRCREV_jsdav = "f04ebf3d012cc8aeabfcfb2b8fab8966d52929e9"
+SRCREV_async-js = "92fb710a70efd3cdc2376ebfba71a7fb3a4f1651"
+SRCREV_formidable = "a37292d4b7d6d76a38909ed670334c9068d40871"
+SRCREV_jsftp = "e3f10c8927347c170cdd0150ef38e18272acf942"
+SRCREV_streamer = "1a7f75d4065819171ac91a09974199b932dbe17d"
+SRCREV_sftp = "a0539345134970d7535a19cb2608e3d1bc119d71"
+SRCREV_lib-v8debug = "7c11897f4bc77c7275c2b6dff5becc72ac018662"
+SRCREV_socketio = "735d5239b325df2ba67d2b9bb4ec32442283bc06"
+SRCREV_socketio-client = "4375ef1344ecb8ad75a3848a00af6b391822f86b"
+SRCREV_treehugger = "436d0d6dd0ce43782e6be08ad12c356730626996"
+SRCREV_uglify-js = "941c845c4a01e4e47a158458fe846eb36d0828ad"
+
+SRCREV_FORMAT = "cloud9ide"
+
+S = "${WORKDIR}/git"
+
+do_configure () {
+    cd ${WORKDIR}/o3
+    node-waf -vv configure
+}
+
+EXTRA_CXXFLAGS = "-Idefault/include -I../include -Idefault/hosts -I../hosts -Idefault/modules -I../modules -Idefault/deps -I../deps -I${STAGING_DIR_NATIVE}/usr/include/node4 -fPIC -DPIC"
+
+do_compile () {
+    cd ${WORKDIR}/o3
+    node4 tools/gluegen.js
+    cd hosts
+    ${CXX} ${TARGET_CXXFLAGS} ${EXTRA_CXXFLAGS} -c -o sh_node.o node-o3/sh_node.cc
+    ${CXX} ${TARGET_CXXFLAGS} ${EXTRA_CXXFLAGS} -c -o sh_node_libs.o node-o3/sh_node_libs.cc
+    cd ..
+    ${CXX} ${TARGET_LDFLAGS} hosts/sh_node.o hosts/sh_node_libs.o -o o3.node -shared -Wl,-Bdynamic -lxml2
+}
+
+do_install () {
+    install -m 0755 -d ${D}${datadir}/cloud9 ${D}${bindir} ${D}/var/lib/cloud9
+    rsync -r --exclude=".*" ${S}/* ${D}${datadir}/cloud9
+
+    touch ${D}${bindir}/cloud9
+    echo "#!/bin/sh" > ${D}${bindir}/cloud9
+    echo "node4 ${datadir}/cloud9/bin/cloud9.js -l 0.0.0.0 -w /var/lib/cloud9 -p 3000" >> ${D}${bindir}/cloud9
+    chmod 0755 ${D}${bindir}/cloud9
+
+    install -m 0755 -d ${D}${datadir}/cloud9/support/jsdav/support/node-o3-xml-v4/lib/o3-xml
+    install -m 0644 ${WORKDIR}/index.js ${D}${datadir}/cloud9/support/jsdav/support/node-o3-xml-v4/lib/o3-xml/index.js
+    install -m 0644 ${WORKDIR}/o3/modules/o3.js ${D}${datadir}/cloud9/support/jsdav/support/node-o3-xml-v4/lib/o3-xml/o3.js
+    install -m 0755 ${WORKDIR}/o3/o3.node ${D}${datadir}/cloud9/support/jsdav/support/node-o3-xml-v4/lib/o3-xml/o3.node
+
+     install -m 0755 -d ${D}${sysconfdir}/avahi/services/
+     install -m 0644 ${WORKDIR}/cloud9-avahi.service ${D}${sysconfdir}/avahi/services/
+     
+     install -d ${D}${systemd_unitdir}/system
+     install -m 0644 ${WORKDIR}/cloud9.service ${D}${systemd_unitdir}/system
+}
+
+FILES_${PN}-dbg += "${datadir}/cloud9/support/jsdav/support/node-o3-xml-v4/lib/o3-xml/.debug \
+                    ${datadir}/cloud9/support/jsdav/support/node-o3-xml-v4/lib/.debug \
+"
+
+RDEPENDS_${PN} = "nodejs4 nodejs gzip"
+
+RPROVIDES_${PN} += "${PN}-systemd"
+RREPLACES_${PN} += "${PN}-systemd"
+RCONFLICTS_${PN} += "${PN}-systemd"
+SYSTEMD_SERVICE_${PN} = "cloud9.service"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/concurrencykit/concurrencykit/cross.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/concurrencykit/concurrencykit/cross.patch
new file mode 100644
index 0000000..d3bfab7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/concurrencykit/concurrencykit/cross.patch
@@ -0,0 +1,55 @@
+Index: git/configure
+===================================================================
+--- git.orig/configure	2012-11-19 21:07:51.917429465 -0800
++++ git/configure	2012-11-19 21:13:19.337437278 -0800
+@@ -439,14 +442,18 @@
+ 	GZIP_SUFFIX=".gz"
+ fi
+ 
+-printf "Finding suitable compiler........"
+-CC=`pathsearch "${CC:-cc}"`
+-if test -z "$CC" -o ! -x "$CC"; then
+-	CC=`pathsearch "${CC:-gcc}"`
++if test -z "$CC"; then
++	printf "Finding suitable compiler........"
++	CC=`pathsearch "${CC:-cc}"`
++	if test -z "$CC" -o ! -x "$CC"; then
++		CC=`pathsearch "${CC:-gcc}"`
++	fi
+ fi
+ assert "$CC" "not found"
+ 
+-cat << EOF > .1.c
++if test -z "$COMPILER"; then
++
++	cat << EOF > .1.c
+ #include <stdio.h>
+ int main(void) {
+ #if defined(__GNUC__) && (__GNUC__ >= 4)
+@@ -569,16 +576,16 @@
+ #endif
+ }
+ EOF
+-
+-$CC -o .1 .1.c
+-COMPILER=`./.1`
+-r=$?
+-rm -f .1.c .1
+-
+-if test "$r" -ne 0; then
+-	assert "" "update compiler"
+-else
+-	echo "success [$CC]"
++	$CC -o .1 .1.c
++	COMPILER=`./.1`
++	r=$?
++	rm -f .1.c .1
++
++	if test "$r" -ne 0; then
++		assert "" "update compiler"
++	else
++		echo "success [$CC]"
++	fi
+ fi
+ 
+ if test "$COMPILER" = "suncc"; then
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/concurrencykit/concurrencykit_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/concurrencykit/concurrencykit_git.bb
new file mode 100644
index 0000000..51243c2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/concurrencykit/concurrencykit_git.bb
@@ -0,0 +1,41 @@
+DESCRIPTION = "Concurrency Kit provides a plethora of concurrency primitives, \
+safe memory reclamation mechanisms and non-blocking data structures \
+designed to aid in the design and implementation of high performance \
+concurrent systems."
+
+LICENSE = "BSD & Apache-2.0"
+HOMEPAGE = "http://concurrencykit.org"
+SECTION = "base"
+
+PV = "0.5.1+git${SRCPV}"
+SRCREV = "f97d3da5c375ac2fc5a9173cdd36cb828915a2e1"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a0b24c1a8f9ad516a297d055b0294231"
+SRC_URI = "git://github.com/concurrencykit/ck.git;protocol=https \
+           file://cross.patch \
+"
+
+S = "${WORKDIR}/git"
+
+COMPATIBLE_HOST = "(i.86|x86_64|powerpc|powerpc64).*-linux*"
+
+inherit autotools-brokensep
+
+PLAT_powerpc64 = "ppc64"
+PLAT ?= "${HOST_ARCH}"
+
+do_configure () {
+    export PLATFORM=${PLAT}
+    export COMPILER='gcc'
+    ${S}/configure \
+    --prefix=${prefix} \
+    --includedir=${includedir} \
+    --libdir=${libdir}
+}
+
+do_compile () {
+    oe_runmake
+}
+
+do_install () {
+    oe_runmake 'DESTDIR=${D}' install
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/cppunit/cppunit_1.13.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/cppunit/cppunit_1.13.1.bb
new file mode 100644
index 0000000..9420294
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/cppunit/cppunit_1.13.1.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "CppUnit is the C++ port of the famous JUnit framework for unit testing. Test output is in XML for automatic testing and GUI based for supervised tests. "
+HOMEPAGE = "http://www.freedesktop.org/wiki/Software/cppunit"
+LICENSE = "LGPL-2.1"
+SECTION = "libs"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
+SRC_URI = " \
+    http://dev-www.libreoffice.org/src/cppunit-${PV}.tar.gz \
+    file://0001-doc-Makefile.am-do-not-preserve-file-flags-when-copy.patch \
+"
+SRC_URI[md5sum] = "fa9aa839145cdf860bf596532bb8af97"
+SRC_URI[sha256sum] = "d5b9f3ffc9f1634d75b20b54f48c02e0817bca6afa1d5160b244889d6bff8e0f"
+
+inherit autotools
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/cppunit/files/0001-doc-Makefile.am-do-not-preserve-file-flags-when-copy.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/cppunit/files/0001-doc-Makefile.am-do-not-preserve-file-flags-when-copy.patch
new file mode 100644
index 0000000..6a20c12
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/cppunit/files/0001-doc-Makefile.am-do-not-preserve-file-flags-when-copy.patch
@@ -0,0 +1,31 @@
+From 9d7ce869607d123cd9837890d71f940c5ced3393 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Mon, 29 Feb 2016 07:58:20 +0100
+Subject: [PATCH] doc/Makefile.am: do not preserve file flags when copying
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Inappropriate [cross specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+---
+ doc/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/doc/Makefile.am b/doc/Makefile.am
+index 8815476..3237499 100644
+--- a/doc/Makefile.am
++++ b/doc/Makefile.am
+@@ -22,7 +22,7 @@ htmldir += $(pkgdatadir)/html
+ html_DATA += $(static_pages) html/index.html
+ 
+ install-data-hook:
+-	cp -pR html/* $(DESTDIR)$(htmldir)
++	cp -R html/* $(DESTDIR)$(htmldir)
+ 
+ # Automake's "distcheck" is sensitive to having files left over
+ # after "make uninstall", so we have to clean up the install hook.
+-- 
+2.5.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/cscope/cscope_15.8b.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/cscope/cscope_15.8b.bb
new file mode 100644
index 0000000..8aa5947
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/cscope/cscope_15.8b.bb
@@ -0,0 +1,24 @@
+# Copyright (C) 2015 Igor Santos <igor.santos@aker.com.br>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "Cscope is a text screen based source browser"
+DESCRIPTION = "Cscope is a developer's tool for browsing source code. \
+               It has an impeccable Unix pedigree, having been originally \
+               developed at Bell Labs back in the days of the PDP-11. \
+               Cscope was part of the official AT&T Unix distribution for \
+               many years, and has been used to manage projects involving 20 \
+               million lines of code!"
+
+HOMEPAGE = "http://cscope.sourceforge.net/"
+
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d4667b67b483823043fcffa489ea343b"
+
+inherit autotools
+
+DEPENDS += "ncurses"
+
+SRC_URI = "http://downloads.sourceforge.net/project/cscope/cscope/${PV}/${BP}.tar.gz"
+
+SRC_URI[md5sum] = "8f9409a238ee313a96f9f87fe0f3b176"
+SRC_URI[sha256sum] = "4889d091f05aa0845384b1e4965aa31d2b20911fb2c001b2cdcffbcb7212d3af"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/ctags/ctags_5.8.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/ctags/ctags_5.8.bb
new file mode 100644
index 0000000..d006d83
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/ctags/ctags_5.8.bb
@@ -0,0 +1,25 @@
+# Copyright (C) 2015 Igor Santos <igor.santos@aker.com.br>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "Exuberant Ctags"
+DESCRIPTION = "Exuberant Ctags is a multilanguage reimplementation of the \
+               Unix ctags utility. Ctags generates an index of source code \
+               definitions which is used by numerous editors and utilities \
+               to instantly locate the definitions."
+
+HOMEPAGE = "http://ctags.sourceforge.net/"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
+
+inherit autotools-brokensep
+
+SRC_URI = "http://prdownloads.sourceforge.net/${BPN}/${BP}.tar.gz"
+
+SRC_URI[md5sum] = "c00f82ecdcc357434731913e5b48630d"
+SRC_URI[sha256sum] = "0e44b45dcabe969e0bbbb11e30c246f81abe5d32012db37395eb57d66e9e99c7"
+
+do_install() {
+    install -Dm 755 ${B}/ctags ${D}${bindir}/ctags
+    install -Dm 644 ${B}/ctags.1 ${D}${mandir}/man1/ctags.1
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/cunit/cunit_2.1-3.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/cunit/cunit_2.1-3.bb
new file mode 100644
index 0000000..c9d87e3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/cunit/cunit_2.1-3.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "CUnit is a C framework for unit testing. Test output supports comandline and GUI results reporting"
+HOMEPAGE = "http://cunit.sourceforge.net"
+LICENSE = "LGPL-2.0"
+SECTION = "libs"
+LIC_FILES_CHKSUM = "file://COPYING;md5=7734aa853b85d6f935466f081490ddbb"
+
+S = "${WORKDIR}/CUnit-${PV}"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/project/cunit/CUnit/${PV}/CUnit-${PV}.tar.bz2 \
+    file://fixup-install-docdir.patch"
+SRC_URI[md5sum] = "b5f1a9f6093869c070c6e4a9450cc10c"
+SRC_URI[sha256sum] = "f5b29137f845bb08b77ec60584fdb728b4e58f1023e6f249a464efa49a40f214"
+
+inherit autotools-brokensep remove-libtool
+
+EXTRA_OECONF = "--enable-memtrace --enable-automated --enable-basic --enable-console"
+
+FILES_${PN}-dev += "${datadir}/CUnit"
+FILES_${PN}-doc += "${docdir}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/cunit/files/fixup-install-docdir.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/cunit/files/fixup-install-docdir.patch
new file mode 100644
index 0000000..c328227
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/cunit/files/fixup-install-docdir.patch
@@ -0,0 +1,36 @@
+From: "Mike Holmes" <mike.holmes@linaro.org>
+Date: Thu, 30 October 2014 16:21:03 -0500
+Subject: [PATCH] fixup-install-docdir
+
+The default configuration macros for CUnit install the documentation and
+header files in locations not consistent with the OE filesystem layout.
+So here we specify new locations which are consistent with OE filesystems.
+
+Upstream-Status: Inappropriate - configuration for OE build environment
+
+Signed-off-by: Mike Holmes <mike.holmes@linaro.org>
+Signed-off-by: Gary S. Robertson <gary.robertson@linaro.org>
+---
+
+diff -uNr a/doc/headers/Makefile.am b/doc/headers/Makefile.am
+--- a/doc/headers/Makefile.am	2014-10-30 22:06:29.704574162 +0100
++++ b/doc/headers/Makefile.am	2014-10-30 22:07:43.578524791 +0100
+@@ -1,6 +1,6 @@
+ ## Process this file with automake to produce Makefile.in
+ 
+-dochdrdir = $(prefix)/doc/@PACKAGE@/headers
++dochdrdir = $(docdir)/headers
+ 
+ INCLUDE_FILES = \
+ 	Automated.h \
+diff -uNr a/doc/Makefile.am b/doc/Makefile.am
+--- a/doc/Makefile.am	2014-10-30 22:06:29.704574162 +0100
++++ b/doc/Makefile.am	2014-10-30 22:07:01.461412166 +0100
+@@ -1,7 +1,5 @@
+ ## Process this file with automake to produce Makefile.in
+ 
+-docdir = $(prefix)/doc/@PACKAGE@
+-
+ doc_DATA = \
+ 	CUnit_doc.css \
+ 	error_handling.html \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/debootstrap/debootstrap/devices.tar.gz b/import-layers/meta-openembedded/meta-oe/recipes-devtools/debootstrap/debootstrap/devices.tar.gz
new file mode 100644
index 0000000..20eaba3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/debootstrap/debootstrap/devices.tar.gz
Binary files differ
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.67.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.67.bb
new file mode 100644
index 0000000..62b2796
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.67.bb
@@ -0,0 +1,35 @@
+SUMMARY = "Install a Debian system into a subdirectory"
+HOMEPAGE = "https://wiki.debian.org/Debootstrap"
+SECTION = "devel"
+LICENSE = "debootstrap-custom-license"
+LIC_FILES_CHKSUM = "file://debian/copyright;md5=1e68ced6e1689d4cd9dac75ff5225608"
+
+inherit pkgconfig
+
+SRC_URI  = "\
+    http://http.debian.net/debian/pool/main/d/debootstrap/debootstrap_1.0.67.tar.gz \
+    file://devices.tar.gz;unpack=0 \
+"
+
+SRC_URI[md5sum] = "eacabfe2e45415af60b1d74c3a23418a"
+SRC_URI[sha256sum] = "0a12e0a2bbff185d47711a716b1f2734856100e8784361203e834fed0cffa51b"
+
+S = "${WORKDIR}/${BP}"
+
+# All Makefile does is creation of devices.tar.gz, which fails in OE build, we use
+# static devices.tar.gz as work around
+# | NOTE: make -j 8 -e MAKEFLAGS=
+# | rm -rf dev
+# | mkdir -p dev
+# | chown 0:0 dev
+# | chown: changing ownership of `dev': Operation not permitted
+# | make: *** [devices.tar.gz] Error 1
+# | WARNING: exit code 1 from a shell command.
+do_compile_prepend() {
+    cp ${WORKDIR}/devices.tar.gz ${B}
+}
+
+do_install() {
+    oe_runmake 'DESTDIR=${D}' install
+    chown -R root:root ${D}${datadir}/debootstrap
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/dejagnu/dejagnu/configure.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/dejagnu/dejagnu/configure.patch
new file mode 100644
index 0000000..2eb8af7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/dejagnu/dejagnu/configure.patch
@@ -0,0 +1,45 @@
+Index: dejagnu-1.4.4/configure.in
+===================================================================
+--- dejagnu-1.4.4.orig/configure.in	2014-07-18 07:05:49.997481207 +0000
++++ dejagnu-1.4.4/configure.in	2014-07-18 07:05:50.085481210 +0000
+@@ -1,10 +1,10 @@
+ dnl Process this file with autoconf to produce a configure script.
+ AC_PREREQ(2.13)
+-AC_INIT(runtest.exp)
++AC_INIT(dejagnu, 1.4.4)
+ dnl AC_CONFIG_AUX_DIR(..)
+ 
+ dnl These are required by automake
+-AM_INIT_AUTOMAKE(dejagnu, 1.4.4)
++AM_INIT_AUTOMAKE([foreign])
+ AM_MAINTAINER_MODE
+ AC_PROG_MAKE_SET
+ 
+Index: dejagnu-1.4.4/example/calc/configure.in
+===================================================================
+--- dejagnu-1.4.4.orig/example/calc/configure.in	2002-04-26 03:32:40.000000000 +0000
++++ dejagnu-1.4.4/example/calc/configure.in	2014-07-18 07:11:59.085491266 +0000
+@@ -1,8 +1,8 @@
+ dnl Process this file with autoconf to produce a configure script.
+ AC_PREREQ(2.5)
+-AC_INIT(calc.c)
++AC_INIT(calc, 1.1)
+ AM_CONFIG_HEADER(calc.h)
+-AM_INIT_AUTOMAKE(calc, 1.1)
++AM_INIT_AUTOMAKE([foreign])
+ 
+ AC_PROG_CC
+ AC_PROG_INSTALL
+Index: dejagnu-1.4.4/example/hello/configure.in
+===================================================================
+--- dejagnu-1.4.4.orig/example/hello/configure.in	2002-08-31 05:46:16.000000000 +0000
++++ dejagnu-1.4.4/example/hello/configure.in	2014-07-18 07:12:23.721491937 +0000
+@@ -25,7 +25,7 @@
+ # ------------------------------------------------------------------------
+ 
+ AC_INIT(helloworld, demo-version, philip.wilsey@ieee.org)
+-AM_INIT_AUTOMAKE(helloworld, demo-version)
++AM_INIT_AUTOMAKE([foreign])
+ 
+ #AC_CONFIG_SRCDIR([hello.cc])
+ #AC_CONFIG_HEADER([config.h])
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/dejagnu/dejagnu_1.4.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/dejagnu/dejagnu_1.4.4.bb
new file mode 100644
index 0000000..63726b2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/dejagnu/dejagnu_1.4.4.bb
@@ -0,0 +1,14 @@
+SUMMARY = "GNU unit testing framework, written in Expect and Tcl"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b"
+SECTION = "devel"
+
+inherit autotools
+
+SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.gz \
+           file://configure.patch"
+
+SRC_URI[md5sum] = "053f18fd5d00873de365413cab17a666"
+SRC_URI[sha256sum] = "d0fbedef20fb0843318d60551023631176b27ceb1e11de7468a971770d0e048d"
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/Stop-using-relative-path-for-scsilib.c-link.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/Stop-using-relative-path-for-scsilib.c-link.patch
new file mode 100644
index 0000000..ccb9a02
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/Stop-using-relative-path-for-scsilib.c-link.patch
@@ -0,0 +1,29 @@
+From 4cf7e16fe9b773e2e7763d4b773854eefe2aa9ab Mon Sep 17 00:00:00 2001
+From: Otavio Salvador <otavio@ossystems.com.br>
+Date: Tue, 12 Jan 2016 09:59:55 -0200
+Subject: [PATCH] Stop using relative path for scsilib.c link
+Organization: O.S. Systems Software LTDA.
+
+Upstream-Status: Pending
+
+Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
+---
+ Makefile.linux | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.linux b/Makefile.linux
+index 78333ff..e210564 100644
+--- a/Makefile.linux
++++ b/Makefile.linux
+@@ -129,7 +129,7 @@ scsilib.c:
+ 	    echo "Please specify OS={aix,linux,hpux,solaris,windows}"; \
+ 	    exit 1; \
+ 	fi; \
+-	ln -sf ../scsilib-$(OS).c scsilib.c
++	ln -sf scsilib-$(OS).c scsilib.c
+ 
+ print:;
+ 		@$(PRINTER) $(PRINTFLAGS) $(ALL_CFILES)
+-- 
+2.1.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/Use-tcsh-shell.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/Use-tcsh-shell.patch
new file mode 100644
index 0000000..0c00fdf
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/Use-tcsh-shell.patch
@@ -0,0 +1,92 @@
+From e3c6eb8776f659eb9e6eeccf90d785eff18ecf74 Mon Sep 17 00:00:00 2001
+From: Otavio Salvador <otavio@ossystems.com.br>
+Date: Mon, 15 Feb 2016 18:00:05 -0200
+Subject: [PATCH] Use 'tcsh' shell
+Organization: O.S. Systems Software LTDA.
+
+Upstream-Status: Pending
+
+Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
+---
+ Scripts/dta | 2 +-
+ Scripts/dtc | 2 +-
+ Scripts/dtf | 2 +-
+ Scripts/dtr | 2 +-
+ Scripts/dts | 2 +-
+ Scripts/dtt | 2 +-
+ Scripts/dtw | 2 +-
+ 7 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/Scripts/dta b/Scripts/dta
+index ebc7072..4f90247 100755
+--- a/Scripts/dta
++++ b/Scripts/dta
+@@ -1,4 +1,4 @@
+-#!/bin/csh
++#!/bin/tcsh
+ #
+ #	Script file to test asynchronous communication lines.
+ #
+diff --git a/Scripts/dtc b/Scripts/dtc
+index da69c2e..89d48c2 100755
+--- a/Scripts/dtc
++++ b/Scripts/dtc
+@@ -1,4 +1,4 @@
+-#!/bin/csh
++#!/bin/tcsh
+ #	%Z%%M% %I% %E%
+ #
+ #	Date:	August 7, 1990
+diff --git a/Scripts/dtf b/Scripts/dtf
+index 9f8cd87..321d261 100755
+--- a/Scripts/dtf
++++ b/Scripts/dtf
+@@ -1,4 +1,4 @@
+-#! /bin/csh
++#! /bin/tcsh
+ #
+ #	Script file to gather floppy disk performance data.
+ #
+diff --git a/Scripts/dtr b/Scripts/dtr
+index ddb7947..1ff5a0b 100755
+--- a/Scripts/dtr
++++ b/Scripts/dtr
+@@ -1,4 +1,4 @@
+-#!/bin/csh
++#!/bin/tcsh
+ #	%Z%%M% %I% %E%
+ #
+ #	Date:	August 21, 1990
+diff --git a/Scripts/dts b/Scripts/dts
+index 6b8a167..42d2312 100755
+--- a/Scripts/dts
++++ b/Scripts/dts
+@@ -1,4 +1,4 @@
+-#!/bin/csh
++#!/bin/tcsh
+ #	%Z%%M% %I% %E%
+ #
+ #	Date:	August 7, 1990
+diff --git a/Scripts/dtt b/Scripts/dtt
+index 36cc6bd..df19d2f 100755
+--- a/Scripts/dtt
++++ b/Scripts/dtt
+@@ -1,4 +1,4 @@
+-#! /bin/csh
++#! /bin/tcsh
+ #	%Z%%M% %I% %E%
+ #
+ #	Date:	August 7, 1990
+diff --git a/Scripts/dtw b/Scripts/dtw
+index 8a4ac39..c58e304 100755
+--- a/Scripts/dtw
++++ b/Scripts/dtw
+@@ -1,4 +1,4 @@
+-#!/bin/csh
++#!/bin/tcsh
+ #	%Z%%M% %I% %E%
+ #
+ #	Date:	August 21, 1990
+-- 
+2.1.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/dt-default-source-define.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/dt-default-source-define.patch
new file mode 100644
index 0000000..87016ed
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/dt-default-source-define.patch
@@ -0,0 +1,18 @@
+Patch from http://pkgs.fedoraproject.org/git/rpms/dt.git
+
+Upstream-Status: Pending
+
+Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
+
+diff -rupN dt.v18.32.old/common.h dt.v18.32/common.h
+--- dt.v18.32.old/common.h	2013-03-01 23:52:30.000000000 +0100
++++ dt.v18.32/common.h	2014-09-24 17:41:40.777604710 +0200
+@@ -127,7 +127,7 @@ typedef volatile slarge_t	v_slarge;
+ 
+ #endif /* defined(_WIN64) */
+ 
+-#elif defined(__GNUC__) && defined(_BSD_SOURCE) || defined(SCO) || defined(__QNXNTO__) || defined(SOLARIS) || defined(HP_UX) || defined(AIX) || defined(_NT_SOURCE) 
++#elif defined(__GNUC__) && defined(_BSD_SOURCE) || defined (_DEFAULT_SOURCE) ||  defined(SCO) || defined(__QNXNTO__) || defined(SOLARIS) || defined(HP_UX) || defined(AIX) || defined(_NT_SOURCE) 
+ 
+ #define QuadIsLongLong
+ typedef unsigned long long int	large_t;
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/dt-wformat-security.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/dt-wformat-security.patch
new file mode 100644
index 0000000..b6780c1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/dt-wformat-security.patch
@@ -0,0 +1,48 @@
+Patch from http://pkgs.fedoraproject.org/git/rpms/dt.git
+
+Upstream-Status: Pending
+
+Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
+
+diff -rupN dt.v18.32.old/dt.c dt.v18.32/dt.c
+--- dt.v18.32.old/dt.c	2014-08-18 14:45:53.242351115 +0200
++++ dt.v18.32/dt.c	2014-08-18 15:11:36.367719880 +0200
+@@ -4378,7 +4378,7 @@ report_error(
+ 	    (void)sprintf(dip->di_msg_buffer, "(%d): '%s', errno = %d - %s\n",
+ 			  dip->di_process_id, error_info, errno, emsg);
+ 	}
+-	syslog(LOG_ERR, dip->di_msg_buffer);
++	syslog(LOG_ERR, "%s", dip->di_msg_buffer);
+     }
+ #endif /* defined(SYSLOG) */
+ 
+diff -rupN dt.v18.32.old/dtutil.c dt.v18.32/dtutil.c
+--- dt.v18.32.old/dtutil.c	2014-08-18 14:45:53.354350779 +0200
++++ dt.v18.32/dtutil.c	2014-08-18 15:13:53.835307311 +0200
+@@ -5180,7 +5180,7 @@ ReportDeviceInfo (
+ 	    bp += Sprintf(bp,
+ 			  "(%d) Device name: %s\n",
+ 			   dip->di_process_id, dip->di_dname);
+-	    syslog(LOG_ERR, dip->di_msg_buffer);
++	    syslog(LOG_ERR, "%s", dip->di_msg_buffer);
+ 	    bp = dip->di_msg_buffer;
+ # if defined(SCSI)
+ 	    if (dip->di_serial_number) {
+@@ -5193,7 +5193,7 @@ ReportDeviceInfo (
+ 			      dip->di_process_id, dip->di_device_id);
+ 	    }
+ # endif /* defined(SCSI) */
+-	    syslog(LOG_ERR, dip->di_msg_buffer);
++	    syslog(LOG_ERR, "%s", dip->di_msg_buffer);
+ 	    bp = dip->di_msg_buffer;
+ 	    bp += Sprintf(bp,
+ 		  "(%d) Relative block number where the error occurred is " LUF ","
+@@ -5203,7 +5203,7 @@ ReportDeviceInfo (
+   	    } else {
+                 bp += Sprintf(bp, "\n");
+             }
+-	    syslog(LOG_ERR, dip->di_msg_buffer);
++	    syslog(LOG_ERR, "%s", dip->di_msg_buffer);
+ 	}
+ #endif /* defined(SYSLOG) */
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt_18.32.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt_18.32.bb
new file mode 100644
index 0000000..9688d02
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt_18.32.bb
@@ -0,0 +1,47 @@
+SUMMARY = "Generic data test program"
+DESCRIPTION = "The Data Test Program (dt) is a generic data test program used to verify proper \
+operation of peripherals, file systems, device drivers, or any data stream supported by the \
+operating system."
+HOMEPAGE = "http://www.scsifaq.org/RMiller_Tools/dt.html"
+
+SECTION = "console/tests"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=be8bb25bbcfaa0725710d188e5152668"
+
+# Source URI taken from Fedora RPM spec file at:
+#  http://pkgs.fedoraproject.org/git/rpms/dt.git
+SRC_URI = "http://dl.dropboxusercontent.com/u/32363629/Datatest/dt-source-v${PV}.tar.gz \
+           file://dt-default-source-define.patch \
+           file://dt-wformat-security.patch \
+           file://Stop-using-relative-path-for-scsilib.c-link.patch \
+           file://Use-tcsh-shell.patch \
+"
+
+SRC_URI[md5sum] = "3054aeaaba047a1dbe90c2132a382ee2"
+SRC_URI[sha256sum] = "10d164676e918a4d07f233bcd11e4cb6bfd1052c996182cd1827ccd0c063fcc6"
+
+S = "${WORKDIR}/dt.v${PV}"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+EXTRA_OEMAKE += "-f Makefile.linux \
+                 OS=linux \
+                 CFLAGS="-I.. -DAIO -DFIFO -DMMAP -D__linux__ -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DTHREADS -DSCSI""
+
+do_compile() {
+    oe_runmake
+}
+
+do_install() {
+    install -Dm755 dt ${D}${sbindir}/dt
+    install -Dm644 Documentation/dt.man ${D}${mandir}/man8/dt.8
+
+    install -d ${D}${datadir}/dt/
+    install -d ${D}${docdir}/dt/html/
+    install -m755 Scripts/dt? ${D}${datadir}/dt/
+    install -m644 data/pattern_* ${D}${datadir}/dt/
+    install -m644 html/* ${D}${docdir}/dt/html/
+}
+
+RDEPENDS_${PN} += "tcsh"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany/0001-configure.ac-remove-additional-c-test.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany/0001-configure.ac-remove-additional-c-test.patch
new file mode 100644
index 0000000..5166fec
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany/0001-configure.ac-remove-additional-c-test.patch
@@ -0,0 +1,47 @@
+From e62d5b59262ec7ffe07931790712c7e247377795 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Thu, 21 Feb 2013 09:31:31 +0100
+Subject: [PATCH] configure.ac remove additional c++ test
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+For openembedded cross-builds CXX can contain something like:
+
+arm-oe-linux-gnueabi-g++  -march=armv5te  -marm -mthumb-interwork --sysroot=/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/sysroots/qemuarm
+
+This ends up in
+
+configure:5582: error: No C++ compiler found. Please install a C++ compiler.
+
+Anyway if [1] is still valid, the combination of AC_PROG_CC and AC_PROG_CXX
+should thow an error message.
+
+[1] http://lists.gnu.org/archive/html/bug-autoconf/2010-05/msg00001.html
+
+Upstream-Status: Inappropriate [configuration]
+
+Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+---
+ configure.ac |    5 -----
+ 1 files changed, 0 insertions(+), 5 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index c37312a..742bf35 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -26,11 +26,6 @@ AC_USE_SYSTEM_EXTENSIONS
+ AC_PROG_CC
+ 
+ AC_PROG_CXX
+-# check for C++ compiler explicitly and fail if none is found, do this check
+-# after AC_PROG_CXX has set the CXX environment variable
+-if ! which $CXX >/dev/null 2>&1; then
+-	AC_MSG_ERROR([No C++ compiler found. Please install a C++ compiler.])
+-fi
+ 
+ AC_PROG_INSTALL
+ AC_PROG_LN_S
+-- 
+1.7.6.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.26.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.26.bb
new file mode 100644
index 0000000..ca4f6b6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.26.bb
@@ -0,0 +1,16 @@
+SUMMARY = "A fast and lightweight IDE"
+HOMEPAGE = "http://www.geany.org/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=bd7b2c994af21d318bd2cd3b3f80c2d5"
+DEPENDS = "gtk+ python-docutils-native"
+
+inherit autotools pkgconfig perlnative pythonnative
+
+SRC_URI = " \
+    http://download.geany.org/${BP}.tar.bz2 \
+    file://0001-configure.ac-remove-additional-c-test.patch \
+"
+SRC_URI[md5sum] = "bd457caba57099cfa23b063e78b6f819"
+SRC_URI[sha256sum] = "e38530e87c577e1e9806be3b40e08fb9ee321eb1abc6361ddacdad89c825f90d"
+
+FILES_${PN} += "${datadir}/icons"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/giflib/giflib_4.1.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/giflib/giflib_4.1.6.bb
new file mode 100644
index 0000000..e59d0e5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/giflib/giflib_4.1.6.bb
@@ -0,0 +1,22 @@
+SUMMARY = "shared library for GIF images"
+SECTION = "libs"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ae11c61b04b2917be39b11f78d71519a"
+PR = "r3"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/giflib/${BP}.tar.bz2"
+
+inherit autotools
+
+EXTRA_OECONF = "--disable-x11"
+
+PACKAGES += "${PN}-utils"
+FILES_${PN} = "${libdir}/libgif.so.*"
+FILES_${PN}-utils = "${bindir}"
+
+BBCLASSEXTEND = "native"
+
+RDEPENDS_${PN}-utils = "perl"
+
+SRC_URI[md5sum] = "7125644155ae6ad33dbc9fc15a14735f"
+SRC_URI[sha256sum] = "e1c1ced9c5bc8f93ef0faf0a8c7717abf784d10a7b270d2285e8e1f3b93f2bed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/files/0001-gnome-doc-utils.make-sysrooted-pkg-config.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/files/0001-gnome-doc-utils.make-sysrooted-pkg-config.patch
new file mode 100644
index 0000000..1b24c39
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/files/0001-gnome-doc-utils.make-sysrooted-pkg-config.patch
@@ -0,0 +1,51 @@
+From aed002cd9ff9e8f972120fbac33b4a65aba952e1 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Tue, 25 Sep 2012 10:28:33 +0200
+Subject: [PATCH] gnome-doc-utils.make: sysrooted pkg-config
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+same approach as used used in gnome-disk-utility:
+
+In cross environment we have to prepend the sysroot to the path found by
+pkgconfig since the path returned from pkgconfig does not have sysroot prefixed
+it ends up using the files from host system. Now usually people have gnome installed
+so the build succeeds but if you dont have gnome installed on build host then
+it wont find the files on host system and packages using gnome-doc-utils wont
+compile.
+
+This should work ok with non sysrooted builds too since in those cases PKG_CONFIG_SYSROOT_DIR
+will be empty
+
+Upstream-Status: pending
+
+Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+---
+ gnome-doc-utils.make |   10 +++++-----
+ 1 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/gnome-doc-utils.make b/gnome-doc-utils.make
+index 42d9df3..f71bbfa 100644
+--- a/gnome-doc-utils.make
++++ b/gnome-doc-utils.make
+@@ -133,11 +133,11 @@ _DOC_ABS_SRCDIR = @abs_srcdir@
+ _xml2po ?= `which xml2po`
+ _xml2po_mode = $(if $(DOC_ID),mallard,docbook)
+ 
+-_db2html ?= `$(PKG_CONFIG) --variable db2html gnome-doc-utils`
+-_db2omf  ?= `$(PKG_CONFIG) --variable db2omf gnome-doc-utils`
+-_chunks  ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl
+-_credits ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl
+-_ids ?= $(shell $(PKG_CONFIG) --variable xmldir gnome-doc-utils)/gnome/xslt/docbook/utils/ids.xsl
++_db2html ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable db2html gnome-doc-utils`
++_db2omf  ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable db2omf gnome-doc-utils`
++_chunks  ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl
++_credits ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl
++_ids ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/ids.xsl
+ 
+ if ENABLE_SK
+ _ENABLE_SK = true
+-- 
+1.7.6.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade3_3.8.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade3_3.8.5.bb
new file mode 100644
index 0000000..4e7ef9b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade3_3.8.5.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Glade - A User Interface Designer"
+HOMEPAGE = "http://www.gnu.org/software/gnash"
+LICENSE = "GPLv2 & LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=aabe87591cb8ae0f3c68be6977bb5522 \
+                    file://COPYING.GPL;md5=9ac2e7cff1ddaf48b6eab6028f23ef88 \
+                    file://COPYING.LGPL;md5=252890d9eee26aab7b432e8b8a616475"
+DEPENDS = "gtk+ gnome-doc-utils-native gnome-common libxml2"
+
+inherit autotools pkgconfig pythonnative
+
+SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/glade3/3.8/glade3-${PV}.tar.xz \
+           file://0001-gnome-doc-utils.make-sysrooted-pkg-config.patch"
+SRC_URI[md5sum] = "4e4b4f5ee34a03e017e4cef97d796c1f"
+SRC_URI[sha256sum] = "58a5f6e4df4028230ddecc74c564808b7ec4471b1925058e29304f778b6b2735"
+
+EXTRA_OECONF += "--disable-scrollkeeper"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[gnome] = "--enable-gnome,--disable-gnome,libbonoboui libgnomeui"
+
+do_configure_prepend() {
+    sed -i '/^if HAVE_GNOME_DOC_UTILS/,/^endif/d' ${S}/Makefile.am
+}
+
+FILES_${PN} += "${datadir}/icons"
+FILES_${PN}-dbg += "${libdir}/glade3/modules/.debug"
+FILES_${PN}-dev += "${libdir}/glade3/modules/*.la"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/icon-slicer/files/0001-Makefile.am-no-examples.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/icon-slicer/files/0001-Makefile.am-no-examples.patch
new file mode 100644
index 0000000..5d83818
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/icon-slicer/files/0001-Makefile.am-no-examples.patch
@@ -0,0 +1,27 @@
+From e6d53086524a94d27920614e38966020e0b2b3ef Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Mon, 5 Nov 2012 11:25:02 +0100
+Subject: [PATCH] Makefile.am: no examples
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Inappropriate [configuration]
+
+Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+
+---
+ Makefile.am |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 28ee7eb..af437a6 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -1 +1 @@
+-SUBDIRS = src examples
+\ No newline at end of file
++SUBDIRS = src
+-- 
+1.7.6.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/icon-slicer/icon-slicer_0.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/icon-slicer/icon-slicer_0.3.bb
new file mode 100644
index 0000000..9768a6e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/icon-slicer/icon-slicer_0.3.bb
@@ -0,0 +1,13 @@
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+DEPENDS = "gdk-pixbuf popt"
+
+SRC_URI = "http://freedesktop.org/software/${BPN}/releases/${BPN}-${PV}.tar.gz \
+           file://0001-Makefile.am-no-examples.patch"
+SRC_URI[md5sum] = "5c5374d4f265b0abe4daef1d03f87104"
+SRC_URI[sha256sum] = "05f0216dd0c25a17859de66357f64da5033375b6fbf5f31ca54867311160b64d"
+
+inherit autotools pkgconfig
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf/0001-src-Fix-error-in-cross-compile.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf/0001-src-Fix-error-in-cross-compile.patch
new file mode 100644
index 0000000..291ed31
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf/0001-src-Fix-error-in-cross-compile.patch
@@ -0,0 +1,138 @@
+From 27910ea19260b7f7a3f9c0465addd1dea80cf3bd Mon Sep 17 00:00:00 2001
+From: Li Xin <lixin.fnst@cn.fujitsu.com>
+Date: Thu, 8 Oct 2015 15:11:17 +0900
+Subject: [PATCH] src: Fix error in cross-compile
+
+The errors are like this:
+tcptable.h:26:25: fatal error: linux/if_tr.h: No such file or directory
+ld: cannot find -ltextbox
+
+Upstream-Status: pending
+
+Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
+---
+ src/Makefile     | 2 +-
+ src/hostmon.c    | 2 +-
+ src/install.sh   | 4 ++--
+ src/othptab.c    | 2 +-
+ src/packet.c     | 2 +-
+ src/tcptable.h   | 2 +-
+ src/tr.c         | 2 +-
+ support/Makefile | 3 +--
+ 8 files changed, 9 insertions(+), 10 deletions(-)
+
+diff --git a/src/Makefile b/src/Makefile
+index 2043c2d..0f77bea 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -39,7 +39,7 @@ LDOPTS		= #-static
+ # you may want to change this to point to your ncurses include directory
+ # if the ncurses include files are not in the default location.
+ 
+-INCLUDEDIR	= -I/usr/include/ncurses -I../support
++INCLUDEDIR	=  -I../support
+ 
+ # You can uncomment this one to disable the backspace key in input fields.
+ # This means you must use the Del key or Ctrl+H combination to erase the
+diff --git a/src/hostmon.c b/src/hostmon.c
+index 14df2c8..6571562 100644
+--- a/src/hostmon.c
++++ b/src/hostmon.c
+@@ -31,7 +31,7 @@ details.
+ #include <linux/if_packet.h>
+ #include <linux/if_ether.h>
+ #include <linux/if_fddi.h>
+-#include <linux/if_tr.h>
++#include <netinet/if_tr.h>
+ #include <net/if_arp.h>
+ #include <stdlib.h>
+ #include <time.h>
+diff --git a/src/install.sh b/src/install.sh
+index d2fd360..36d3516 100755
+--- a/src/install.sh
++++ b/src/install.sh
+@@ -23,9 +23,9 @@ echo
+ echo "*** Installing executable programs and preparing work directories"
+ echo
+ echo ">>> Installing iptraf in $TARGET"
+-$INSTALL -m 0700 -o root -g root -s iptraf $TARGET
++$INSTALL -m 0700 -o root -g root  iptraf $TARGET
+ echo ">>> Installing rvnamed in $TARGET"
+-$INSTALL -m 0700 -o root -g root -s rvnamed $TARGET
++$INSTALL -m 0700 -o root -g root  rvnamed $TARGET
+ 
+ if [ ! -d $WORKDIR ]; then
+     echo ">>> Creating IPTraf work directory $WORKDIR"
+diff --git a/src/othptab.c b/src/othptab.c
+index 97771d1..a8bb536 100644
+--- a/src/othptab.c
++++ b/src/othptab.c
+@@ -18,7 +18,7 @@ details.
+ 
+ #include <asm/types.h>
+ #include <linux/if_ether.h>
+-#include <linux/if_tr.h>
++#include <netinet/if_tr.h>
+ #include <linux/if_fddi.h>
+ #include <winops.h>
+ #include "arphdr.h"
+diff --git a/src/packet.c b/src/packet.c
+index 33fdf2a..1e2b81b 100644
+--- a/src/packet.c
++++ b/src/packet.c
+@@ -36,7 +36,7 @@ details.
+ #include <linux/if_packet.h>
+ #include <linux/if_ether.h>
+ #include <linux/if_fddi.h>
+-#include <linux/if_tr.h>
++#include <netinet/if_tr.h>
+ #include <linux/isdn.h>
+ #include <linux/sockios.h>
+ #include <msgboxes.h>
+diff --git a/src/tcptable.h b/src/tcptable.h
+index 3e17793..d1380b5 100644
+--- a/src/tcptable.h
++++ b/src/tcptable.h
+@@ -23,7 +23,7 @@
+ #include <linux/if_packet.h>
+ #include <linux/if_ether.h>
+ #include <linux/if_fddi.h>
+-#include <linux/if_tr.h>
++#include <netinet/if_tr.h>
+ #include <net/if.h>
+ #include <netinet/ip.h>
+ #include <netinet/udp.h>
+diff --git a/src/tr.c b/src/tr.c
+index 40c9e63..11f8045 100644
+--- a/src/tr.c
++++ b/src/tr.c
+@@ -7,7 +7,7 @@
+  */
+ 
+ #include <asm/types.h>
+-#include <linux/if_tr.h>
++#include <netinet/if_tr.h>
+ #include <netinet/in.h>
+ 
+ unsigned int get_tr_ip_offset(unsigned char *pkt)
+diff --git a/support/Makefile b/support/Makefile
+index 114bfc3..c962c09 100644
+--- a/support/Makefile
++++ b/support/Makefile
+@@ -1,4 +1,3 @@
+-INCLUDEDIR		= -I/usr/include/ncurses
+ 
+ OBJS			= input.o menurt.o listbox.o winops.o labels.o \
+ 				msgboxes.o txbox.o
+@@ -12,7 +11,7 @@ libtextbox.a: $(OBJS)
+ #	gcc -shared -o libtextbox.so $(OBJS)
+ 
+ %.o: %.c *.h
+-	gcc -O2 -g -Wall -fPIC $(INCLUDEDIR) -c -o $*.o $<
++	${CC} -O2 -g -Wall -fPIC  -c -o $*.o $<
+ 
+ clean:
+ 	rm -rf *.o *~ libtextbox.a libtextbox.so
+-- 
+1.8.4.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf_3.0.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf_3.0.0.bb
new file mode 100644
index 0000000..25e6001
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf_3.0.0.bb
@@ -0,0 +1,35 @@
+DESCRIPTION = "IPTraf is a console-based network statistics utility for Linux. \
+It gathers a variety of figures such as TCP connection packet and byte counts, \
+interface statistics and activity indicators, TCP/UDP traffic breakdowns, \
+and LAN station packet and byte counts."
+
+HOMEPAGE = "http://iptraf.seul.org"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=dc0bdc29df738baf327368b1bbb15a45"
+
+DEPENDS = "ncurses"
+
+SRC_URI = " \
+    ftp://iptraf.seul.org/pub/iptraf/iptraf-3.0.0.tar.gz \
+    file://0001-src-Fix-error-in-cross-compile.patch"
+SRC_URI[md5sum] = "377371c28ee3c21a76f7024920649ea8"
+SRC_URI[sha256sum] = "9ee433d95573d612539da4b452e6cdcbca6ab6674a88bfbf6eaf12d4902b5163"
+RDEPENDS_${PN} = "ncurses"
+
+EXTRA_OEMAKE = "-e MAKEFLAGS="
+
+do_compile() {
+    oe_runmake -C src all  
+}
+
+do_install() {
+    install -d ${D}${bindir}
+    oe_runmake -C src install \
+        TARGET=${D}${bindir} \
+        WORKDIR=${D}${localstatedir}/local/iptraf \
+        LOGDIR=${D}${localstatedir}/log/iptraf \
+        LOCKDIR=${D}${localstatedir}/run/iptraf 
+}
+
+FILES_${PN} += "${bindir} ${localstatedir} /run"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/jq/jq_1.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/jq/jq_1.5.bb
new file mode 100644
index 0000000..612eaf3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/jq/jq_1.5.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Lightweight and flexible command-line JSON processor"
+DESCRIPTION = "jq is like sed for JSON data, you can use it to slice and \
+               filter and map and transform structured data with the same \
+               ease that sed, awk, grep and friends let you play with text."
+HOMEPAGE = "http://stedolan.github.io/jq/"
+BUGTRACKER = "https://github.com/stedolan/jq/issues"
+SECTION = "utils"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=29dd0c35d7e391bb8d515eacf7592e00"
+
+DEPENDS = "flex-native bison-native onig"
+
+SRC_URI = "https://github.com/stedolan/${BPN}/releases/download/${BPN}-${PV}/${BPN}-${PV}.tar.gz \
+"
+
+SRC_URI[md5sum] = "0933532b086bd8b6a41c1b162b1731f9"
+SRC_URI[sha256sum] = "c4d2bfec6436341113419debf479d833692cc5cdab7eb0326b5a4d4fbe9f493c"
+
+inherit autotools
+
+# Don't build documentation (generation requires ruby)
+EXTRA_OECONF = "--disable-docs --disable-maintainer-mode"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/lemon/files/lemon.1 b/import-layers/meta-openembedded/meta-oe/recipes-devtools/lemon/files/lemon.1
new file mode 100644
index 0000000..914ee07
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/lemon/files/lemon.1
@@ -0,0 +1,63 @@
+.Dd 2002-10-04
+.Dt LEMON 1
+.Os "Debian GNU/Linux"
+.\" Manual page created by Guus Sliepen <guus@debian.org>
+.Sh NAME
+.Nm lemon
+.Nd The Lemon Parser Generator
+.Sh SYNOPSIS
+.Nm
+.Op Fl bcgmqsx
+.Ar input
+.Sh DESCRIPTION
+.Nm
+is an LALR(1) parser generator for C or C++.
+It does the same job as bison and yacc.
+But 
+.Nm
+is not another bison or yacc clone.
+It uses a different grammar syntax which is designed to reduce the number of coding errors.
+.Nm
+also uses a more sophisticated parsing engine that is faster than yacc and bison
+and which is both reentrant and thread-safe.
+Furthermore, 
+.Nm
+implements features that can be used to eliminate resource leaks,
+making is suitable for use in long-running programs such as graphical user interfaces or embedded controllers.
+.Pp
+.Nm
+will read the grammer from
+.Ar input
+and write out a parser for that grammar in the C language.
+.Sh OPTIONS
+.Bl -tag -width indent
+.It Fl b
+Print only the basis in report.
+.It Fl c
+Don't compress the action table.
+.It Fl g
+Print grammar without actions.
+.It Fl m
+Output a makeheaders compatible file.
+.It Fl q
+(Quiet) Don't print the report file.
+.It Fl s
+Print parser stats to standard output.
+.It Fl x
+Print the version number.
+.El
+.Sh FILES
+.Bl -tag -width indent
+.It Pa /usr/share/lemon/lempar.c
+Driver template for the
+.Nm
+parser generator.
+.El
+.Sh AUTHOR
+.Nm
+has been written by
+.An D. Richard Hipp Aq drh@hwaci.com .
+.Pp
+This manual page was written by
+.An Guus Sliepen Aq guus@debian.org
+for the Debian GNU/Linux system.
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/lemon/lemon.inc b/import-layers/meta-openembedded/meta-oe/recipes-devtools/lemon/lemon.inc
new file mode 100644
index 0000000..57b9fb7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/lemon/lemon.inc
@@ -0,0 +1,25 @@
+DESCRIPTION = "The Lemon Parser Generator"
+HOMEPAGE = "http://www.hwaci.com/sw/lemon/"
+LICENSE = "PD"
+SECTION = "devel"
+
+SRC_URI = "http://www.sqlite.org/sqlite-${PV}.tar.gz \
+           file://lemon.1"
+
+S = "${WORKDIR}/sqlite-${PV}/tool"
+
+do_compile() {
+    ${CC} ${CFLAGS} lemon.c -c -o lemon.o
+    ${CCLD} ${LDFLAGS} lemon.o -o lemon
+}
+
+do_install() {
+    install -d ${D}${bindir}
+    install -m 0755 lemon ${D}${bindir}
+    install -m 0644 lempar.c ${D}${bindir}
+    install -d ${D}${mandir}/man1
+    install -m 0644 ${WORKDIR}/lemon.1 ${D}${mandir}/man1/
+}
+
+BBCLASSEXTEND = "native"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/lemon/lemon_3.7.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/lemon/lemon_3.7.3.bb
new file mode 100644
index 0000000..354db17
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/lemon/lemon_3.7.3.bb
@@ -0,0 +1,7 @@
+require lemon.inc
+
+LIC_FILES_CHKSUM = "file://lemon.c;endline=8;md5=c7551a78fa3fdecd96d1ad6761d205ee"
+
+SRC_URI[md5sum] = "5437978aae90350cf984993091e0d695"
+SRC_URI[sha256sum] = "dbf352e8fbb74829f5e7a88f9f6ceeb80a709537f668c36e4b6cdfb271309ef6"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/libedit/libedit_20150325-3.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/libedit/libedit_20150325-3.1.bb
new file mode 100644
index 0000000..4a72896
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/libedit/libedit_20150325-3.1.bb
@@ -0,0 +1,20 @@
+SUMMARY = "BSD replacement for libreadline"
+DESCRIPTION = "Command line editor library providing generic line editing, \
+history, and tokenization functions"
+HOMEPAGE = "http://www.thrysoee.dk/editline/"
+SECTION = "libs"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1e4228d0c5a9093b01aeaaeae6641533"
+
+DEPENDS = "ncurses"
+
+inherit autotools
+
+# upstream site does not allow wget's User-Agent
+FETCHCMD_wget += "-U bitbake"
+SRC_URI = "http://www.thrysoee.dk/editline/${BPN}-${PV}.tar.gz"
+
+S = "${WORKDIR}/${BPN}-${PV}"
+
+SRC_URI[md5sum] = "43cdb5df3061d78b5e9d59109871b4f6"
+SRC_URI[sha256sum] = "c88a5e4af83c5f40dda8455886ac98923a9c33125699742603a88a0253fcc8c5"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/libfribidi/fribidi_0.19.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/libfribidi/fribidi_0.19.2.bb
new file mode 100644
index 0000000..cb4bc24
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/libfribidi/fribidi_0.19.2.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Fribidi library for bidirectional text"
+SECTION = "libs"
+PR = "r1"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
+BBCLASSEXTEND = "native"
+
+PROVIDES = "libfribidi"
+
+inherit autotools lib_package pkgconfig
+
+CFLAGS_append = "  -DPAGE_SIZE=4096 "
+
+SRC_URI = "http://fribidi.org/download/fribidi-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "626db17d2d99b43615ad9d12500f568a"
+SRC_URI[sha256sum] = "49cf91586e48b52fe25872ff66c1da0dff0daac2593f9f300e2af12f44f64177"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/libgee/libgee_0.18.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/libgee/libgee_0.18.0.bb
new file mode 100644
index 0000000..3fa9d9f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/libgee/libgee_0.18.0.bb
@@ -0,0 +1,24 @@
+DESCRIPTION = "libgee is a collection library providing GObject-based interfaces \
+and classes for commonly used data structures."
+HOMEPAGE = "http://live.gnome.org/Libgee"
+SECTION = "libs"
+DEPENDS = "glib-2.0"
+
+BBCLASSEXTEND = "native"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
+
+PE = "1"
+
+inherit autotools vala pkgconfig gobject-introspection
+do_configure_prepend() {
+    MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4"
+    for i in ${MACROS}; do
+        rm -f m4/$i
+    done
+}
+
+SHRT_VER = "${@d.getVar('PV',1).split('.')[0]}.${@d.getVar('PV',1).split('.')[1]}"
+SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/libgee/${SHRT_VER}/${BP}.tar.xz"
+SRC_URI[md5sum] = "29ea6125e653d7e60b49a9a9544abc96"
+SRC_URI[sha256sum] = "4ad99ef937d071b4883c061df40bfe233f7649d50c354cf81235f180b4244399"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/libubox/libubox/0001-version-libraries.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/libubox/libubox/0001-version-libraries.patch
new file mode 100644
index 0000000..02117fa
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/libubox/libubox/0001-version-libraries.patch
@@ -0,0 +1,28 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 57804cf..1aa7f27 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -18,6 +18,7 @@ ENDIF()
+ SET(SOURCES avl.c avl-cmp.c blob.c blobmsg.c uloop.c usock.c ustream.c ustream-fd.c vlist.c utils.c safe_list.c runqueue.c md5.c kvlist.c ulog.c base64.c)
+ 
+ ADD_LIBRARY(ubox SHARED ${SOURCES})
++SET_TARGET_PROPERTIES(ubox PROPERTIES VERSION 1.0.1 SOVERSION 1)
+ ADD_LIBRARY(ubox-static STATIC ${SOURCES})
+ SET_TARGET_PROPERTIES(ubox-static PROPERTIES OUTPUT_NAME ubox)
+ 
+@@ -46,6 +47,7 @@ find_library(json NAMES json-c)
+ IF(EXISTS ${json})
+ 	ADD_LIBRARY(blobmsg_json SHARED blobmsg_json.c)
+ 	TARGET_LINK_LIBRARIES(blobmsg_json ubox ${json})
++	SET_TARGET_PROPERTIES(blobmsg_json PROPERTIES VERSION 1.0.1 SOVERSION 1)
+ 
+ 	ADD_LIBRARY(blobmsg_json-static STATIC blobmsg_json.c)
+ 	SET_TARGET_PROPERTIES(blobmsg_json-static
+@@ -55,6 +57,7 @@ IF(EXISTS ${json})
+ 	TARGET_LINK_LIBRARIES(jshn blobmsg_json ${json})
+ 
+ 	ADD_LIBRARY(json_script SHARED json_script.c)
++	SET_TARGET_PROPERTIES(json_script PROPERTIES VERSION 1.0.1 SOVERSION 1)
+ 	TARGET_LINK_LIBRARIES(json_script ubox)
+ 
+ 	INSTALL(TARGETS blobmsg_json blobmsg_json-static jshn json_script
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/libubox/libubox/fix-libdir.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/libubox/libubox/fix-libdir.patch
new file mode 100644
index 0000000..6f09c8b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/libubox/libubox/fix-libdir.patch
@@ -0,0 +1,40 @@
+[PATCH] fix the CMAKE_INSTALL_LIBDIR
+
+Upstream-Status: Pending
+
+libdir maybe /usr/lib64 for 64bit machine
+
+Signed-off-by: Roy Li <rongqing.li@windriver.com>
+---
+ CMakeLists.txt | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 57804cf..2c7bdc1 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -35,8 +35,8 @@ INSTALL(FILES ${headers}
+ 	DESTINATION include/libubox
+ )
+ INSTALL(TARGETS ubox ubox-static
+-	ARCHIVE DESTINATION lib
+-	LIBRARY DESTINATION lib
++	ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
++	LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ )
+ 
+ ADD_SUBDIRECTORY(lua)
+@@ -58,8 +58,8 @@ IF(EXISTS ${json})
+ 	TARGET_LINK_LIBRARIES(json_script ubox)
+ 
+ 	INSTALL(TARGETS blobmsg_json blobmsg_json-static jshn json_script
+-		ARCHIVE DESTINATION lib
+-		LIBRARY DESTINATION lib
++		ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
++		LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ 		RUNTIME DESTINATION bin
+ 	)
+ 
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/libubox/libubox_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/libubox/libubox_git.bb
new file mode 100644
index 0000000..609281a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/libubox/libubox_git.bb
@@ -0,0 +1,29 @@
+DESCRIPTION = "C utility functions for OpenWrt"
+SECTION = "libs"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "\
+    file://avl.c;endline=39;md5=00810155fed3d604816ec5814523d60a \
+    file://avl-cmp.c;endline=15;md5=1603e6094b432a5f3f320877a06f41b5 \
+    file://base64.c;endline=61;md5=51fdff010d45b0086ac0a6e035693dc0 \
+    file://blobmsg.c;endline=15;md5=7ed64c1570e8c9b46c4fc6fbd16c489e \
+    file://list.h;endline=28;md5=2d5f5475fbd0f08741354c5a99c2e983 \
+    file://md5.h;endline=39;md5=048bf9f68963c207a0c2b3a94c9d2aaa \
+    file://md5.c;endline=51;md5=0a448eea0bcbc89e3c7e6608f2d119a0 \
+    file://usock.h;endline=18;md5=f0dfdc8de858e66d66d74036611bba14 \
+"
+
+SRC_URI = "\
+    git://git.openwrt.org/project/libubox.git \
+    file://0001-version-libraries.patch \
+    file://fix-libdir.patch \
+"
+
+SRCREV = "155bf39896f126b1ba121b816922a88dc34c31e3"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+DEPENDS = "json-c"
+
+EXTRA_OECMAKE = "-DBUILD_EXAMPLES=OFF -DBUILD_LUA=OFF"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/log4cplus/log4cplus_1.2.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/log4cplus/log4cplus_1.2.0.bb
new file mode 100644
index 0000000..c2f5ec0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/log4cplus/log4cplus_1.2.0.bb
@@ -0,0 +1,15 @@
+SUMMARY = "log4cplus provides a simple C++ logging API for log management"
+SECTION = "libs"
+HOMEPAGE = "http://sourceforge.net/projects/log4cplus/"
+BUGTRACKER = "http://sourceforge.net/p/log4cplus/bugs/"
+
+LICENSE = "Apache-2.0 & BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=cedaa287ececcb94f9f2880d9c4ef085"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}-stable/${PV}/${BP}.tar.gz"
+SRC_URI[md5sum] = "e250f0f431c0723f8b625323e7b6465d"
+SRC_URI[sha256sum] = "ad5ec3b62f2f0bdc7f06fa398bde61091fd2493e91059e17315b5197420dcf04"
+
+inherit autotools pkgconfig
+
+BBCLASSEXTEND += "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltp-ddt/ltp-ddt/ltp-Do-not-link-against-libfl.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltp-ddt/ltp-ddt/ltp-Do-not-link-against-libfl.patch
new file mode 100644
index 0000000..3e4aa73
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltp-ddt/ltp-ddt/ltp-Do-not-link-against-libfl.patch
@@ -0,0 +1,31 @@
+From 5bda9c0af56869c6ff2c25d38ea087179c946bc6 Mon Sep 17 00:00:00 2001
+From: Chong Lu <Chong.Lu@windriver.com>
+Date: Tue, 11 Mar 2014 14:47:22 +0800
+Subject: [PATCH] ltp: Don't link against libfl
+
+We have already defined yywrap function in scan.l file. After this, we no longer need to
+link against libfl and so no longer get errors about undefined references to yylex.
+
+Upstream-status: Pending
+
+Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
+---
+ pan/Makefile |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/pan/Makefile b/pan/Makefile
+index 4cc6466..a4b575b 100644
+--- a/pan/Makefile
++++ b/pan/Makefile
+@@ -31,7 +31,7 @@ CPPFLAGS		+= -Wno-error
+ 
+ CPPFLAGS		+= -I$(abs_srcdir)
+ 
+-LDLIBS			+= -lm $(LEXLIB)
++LDLIBS			+= -lm
+ 
+ LFLAGS			+= -l
+ 
+-- 
+1.7.9.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltp-ddt/ltp-ddt_1.0.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltp-ddt/ltp-ddt_1.0.0.bb
new file mode 100644
index 0000000..62117b1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltp-ddt/ltp-ddt_1.0.0.bb
@@ -0,0 +1,97 @@
+SUMMARY = "Embedded Linux Device Driver Tests based on Linux Test Project"
+HOMEPAGE = "http://arago-project.org/git/projects/test-automation/ltp-ddt.git"
+SECTION = "console/utils"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
+
+PROVIDES += "ltp"
+DEPENDS += "zip-native virtual/kernel alsa-lib"
+
+RDEPENDS_${PN} += "pm-qa serialcheck"
+
+inherit autotools module-base kernel-module-split
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+SRCREV = "f086bed6cc88bf102eaad0e96cb7ebe79944a8ad"
+BRANCH ?= "master"
+
+SRC_URI = "git://arago-project.org/git/projects/test-automation/ltp-ddt.git;branch=${BRANCH} \
+    file://ltp-Do-not-link-against-libfl.patch \
+"
+
+S = "${WORKDIR}/git"
+
+LTPROOT = "/opt/ltp"
+
+EXTRA_OEMAKE_append = " \
+    prefix=${LTPROOT} \
+    CROSS_COMPILE=${HOST_PREFIX} \
+    SKIP_IDCHECK=1 \
+    KERNEL_PATH=${STAGING_KERNEL_DIR} \
+    KERNEL_INC=${STAGING_KERNEL_DIR} \
+    KERNEL_USR_INC=${STAGING_INCDIR} \
+    ALSA_INCPATH=${STAGING_INCDIR} \
+    ALSA_LIBPATH=${STAGING_LIBDIR} \
+    PLATFORM=${MACHINE} \
+    RANLIB=${RANLIB} \
+    DESTDIR=${D} \
+    CC='${CC}' \
+    KERNEL_CC='${KERNEL_CC}' \
+"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+FILES_${PN}-dbg += " \
+    ${LTPROOT}/.debug \
+    ${LTPROOT}/bin/.debug \
+    ${LTPROOT}/runtest/.debug \
+    ${LTPROOT}/testcases/bin/.debug \
+    ${LTPROOT}/testcases/bin/*/bin/.debug \
+    ${LTPROOT}/testcases/bin/*/test/.debug \
+    ${LTPROOT}/testcases/bin/ddt/.debug \
+    ${LTPROOT}/testcases/bin/ddt/*/bin/.debug \
+    ${LTPROOT}/testcases/bin/ddt/*/test/.debug \
+    ${LTPROOT}/testcases/realtime/*/*/.debug \
+"
+
+FILES_${PN}-staticdev += "${LTPROOT}/lib"
+FILES_${PN} += "${LTPROOT}/*"
+
+KERNEL_MODULES_META_PACKAGE = "${PN}"
+
+kmoddir = "/lib/modules/${KERNEL_VERSION}/kernel/drivers/ddt"
+
+# ltp doesn't regenerate ffsb-6.0-rc2 configure and hardcode configure call.
+# we explicitly force regeneration of that directory and pass configure options.
+do_configure_append() {
+    (cd utils/ffsb-6.0-rc2; autoreconf -fvi; ./configure ${CONFIGUREOPTS})
+}
+
+# The makefiles make excessive use of make -C and several include testcases.mk
+# which triggers a build of the syscall header. To reproduce, build ltp,
+# then delete the header, then "make -j XX" and watch regen.sh run multiple
+# times. Its easier to generate this once here instead.
+do_compile_prepend () {
+    ( make -C ${B}/testcases/kernel include/linux_syscall_numbers.h )
+}
+
+do_compile_append () {
+    unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
+    oe_runmake modules
+}
+
+do_install() {
+    oe_runmake install
+    install -d ${D}${datadir}
+    install -d ${D}${kmoddir}
+    mv ${D}${LTPROOT}/testcases/bin/ddt/*.ko ${D}${kmoddir}
+}
+
+# do_make_scripts should be a separate task for the lock to work
+addtask make_scripts before do_compile
+do_make_scripts[lockfiles] = "${TMPDIR}/kernel-scripts.lock"
+do_make_scripts[deptask] = "do_populate_sysroot"
+
+# http://errors.yoctoproject.org/Errors/Details/56327/
+PNBLACKLIST[ltp-ddt] ?= "BROKEN: fails since last autotools.bbclass changes"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace/0001-ltrace-fix-gcc-5-logical-not-parentheses.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace/0001-ltrace-fix-gcc-5-logical-not-parentheses.patch
new file mode 100644
index 0000000..681c43d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace/0001-ltrace-fix-gcc-5-logical-not-parentheses.patch
@@ -0,0 +1,38 @@
+From 876fe5680d77800426f8c4c5680a235732d722e6 Mon Sep 17 00:00:00 2001
+From: Kai Kang <kai.kang@windriver.com>
+Date: Mon, 24 Aug 2015 17:37:54 +0800
+Subject: [PATCH] ltrace: fix gcc 5 logical not parentheses
+
+Upstream-Status: Pending
+
+Build ltrace with gcc 5.2, it fails with:
+
+error: logical not is only applied to the left hand side of comparison
+[-Werror=logical-not-parentheses]
+   if (!need_data(data, offset, SIZE / 8) < 0)  \
+                                             ^
+
+Function need_data just return 0 on success and -1 if fail. So it is ok
+to just test if (need_data(data, offset, SIZE / 8) < 0).
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ ltrace-elf.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/ltrace-elf.c b/ltrace-elf.c
+index c571d2a..7fe830f 100644
+--- a/ltrace-elf.c
++++ b/ltrace-elf.c
+@@ -218,7 +218,7 @@ need_data(Elf_Data *data, GElf_Xword offset, GElf_Xword size)
+ 	int								\
+ 	NAME(Elf_Data *data, GElf_Xword offset, uint##SIZE##_t *retp)	\
+ 	{								\
+-		if (!need_data(data, offset, SIZE / 8) < 0)		\
++		if (need_data(data, offset, SIZE / 8) < 0)		\
+ 			return -1;					\
+ 									\
+ 		if (data->d_buf == NULL) /* NODATA section */ {		\
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace/configure-allow-to-disable-selinux-support.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace/configure-allow-to-disable-selinux-support.patch
new file mode 100644
index 0000000..4f89d8f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace/configure-allow-to-disable-selinux-support.patch
@@ -0,0 +1,36 @@
+From 887a403e38f590ebf1d04ce600d94cb7a351744c Mon Sep 17 00:00:00 2001
+From: Wenzong Fan <wenzong.fan@windriver.com>
+Date: Mon, 1 Dec 2014 00:57:42 -0500
+Subject: [PATCH] ltrace: allow to enable/disable selinux support
+
+Upstream-Status: Pending
+
+Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
+---
+ configure.ac |   10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 6fe5e3b..189885a 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -125,8 +125,14 @@ AC_SUBST(libstdcxx_LIBS)
+ 
+ 
+ dnl Check security_get_boolean_active availability.
+-AC_CHECK_HEADERS(selinux/selinux.h)
+-AC_CHECK_LIB(selinux, security_get_boolean_active)
++AC_ARG_ENABLE([selinux],
++    AS_HELP_STRING([--enable-selinux],[enable SELinux support [default=auto]]),
++    [], [enable_selinux=auto])
++
++if test x$enable_selinux != xno; then
++    AC_CHECK_HEADERS(selinux/selinux.h)
++    AC_CHECK_LIB(selinux, security_get_boolean_active)
++fi
+ 
+ dnl Whether (and which) elfutils libdw.so to use for unwinding.
+ AC_ARG_WITH(elfutils,
+-- 
+1.7.9.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace/ltrace-0.7.2-unused-typedef.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace/ltrace-0.7.2-unused-typedef.patch
new file mode 100644
index 0000000..8f3c0ec
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace/ltrace-0.7.2-unused-typedef.patch
@@ -0,0 +1,49 @@
+diff --git a/value.c b/value.c
+index d18db17..b98298e 100644
+--- a/value.c
++++ b/value.c
+@@ -1,6 +1,6 @@
+ /*
+  * This file is part of ltrace.
+- * Copyright (C) 2011,2012 Petr Machata, Red Hat Inc.
++ * Copyright (C) 2011,2012,2013 Petr Machata, Red Hat Inc.
+  *
+  * This program is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU General Public License as
+@@ -282,9 +282,9 @@ value_init_deref(struct value *ret_val, struct value *valp)
+ 	if (value_extract_word(valp, &l, NULL) < 0)
+ 		return -1;
+ 
+-	/* We need "long" to be long enough to hold platform
++	/* We need "long" to be long enough to hold target
+ 	 * pointers.  */
+-	typedef char assert__long_enough_long[-(sizeof(l) < sizeof(void *))];
++	assert(sizeof(l) >= sizeof(arch_addr_t));
+ 
+ 	value_common_init(ret_val, valp->inferior, valp,
+ 			  valp->type->u.ptr_info.info, 0);
+diff --git a/lens_default.c b/lens_default.c
+index ed3d0e1..5d00814 100644
+--- a/lens_default.c
++++ b/lens_default.c
+@@ -1,6 +1,6 @@
+ /*
+  * This file is part of ltrace.
+- * Copyright (C) 2011,2012 Petr Machata, Red Hat Inc.
++ * Copyright (C) 2011,2012,2013 Petr Machata, Red Hat Inc.
+  * Copyright (C) 1998,2004,2007,2008,2009 Juan Cespedes
+  * Copyright (C) 2006 Ian Wienand
+  * Copyright (C) 2006 Steve Fink
+@@ -342,9 +342,9 @@ format_array(FILE *stream, struct value *value, struct value_dict *arguments,
+ 	     struct expr_node *length, size_t maxlen, int before,
+ 	     const char *open, const char *close, const char *delim)
+ {
+-	/* We need "long" to be long enough to cover the whole address
+-	 * space.  */
+-	typedef char assert__long_enough_long[-(sizeof(long) < sizeof(void *))];
++	/* We need "long" to be long enough to cover the whole target
++	 * address space.  */
++	assert(sizeof(long) >= sizeof(arch_addr_t));
+ 	long l;
+ 	if (expr_eval_word(length, value, arguments, &l) < 0)
+ 		return -1;
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb
new file mode 100644
index 0000000..bc4e271
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb
@@ -0,0 +1,33 @@
+SUMMARY = "ltrace intercepts and records dynamic library calls"
+
+DESCRIPTION = "ltrace intercepts and records dynamic library calls \
+which are called by an executed process and the signals received by that process. \
+It can also intercept and print the system calls executed by the program.\
+"
+HOMEPAGE = "http://ltrace.org/"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a"
+
+PE = "1"
+PV = "7.3+git${SRCPV}"
+SRCREV = "37ecc41b58be3dbdd79592a76e331b5b371e4f81"
+
+DEPENDS = "elfutils"
+RDEPENDS_${PN} = "elfutils"
+SRC_URI = "git://anonscm.debian.org/collab-maint/ltrace.git;branch=ltrace-0.7 \
+           file://ltrace-0.7.2-unused-typedef.patch \
+           file://configure-allow-to-disable-selinux-support.patch \
+           file://0001-ltrace-fix-gcc-5-logical-not-parentheses.patch \
+          "
+S = "${WORKDIR}/git"
+
+inherit autotools
+
+PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'selinux', '', d)}"
+PACKAGECONFIG[unwind] = "--with-libunwind,--without-libunwind,libunwind"
+PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux,libselinux"
+
+do_configure_prepend () {
+	( cd ${S}; ./autogen.sh )
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/lua/lua/lua.pc.in b/import-layers/meta-openembedded/meta-oe/recipes-devtools/lua/lua/lua.pc.in
new file mode 100644
index 0000000..c27e86e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/lua/lua/lua.pc.in
@@ -0,0 +1,10 @@
+prefix=/usr
+libdir=${prefix}/lib
+includedir=${prefix}/include
+
+Name: Lua
+Description: Lua language engine
+Version: @VERSION@
+Requires:
+Libs: -L${libdir} -llua -lm -ldl
+Cflags: -I${includedir}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/lua/lua/run-ptest b/import-layers/meta-openembedded/meta-oe/recipes-devtools/lua/lua/run-ptest
new file mode 100644
index 0000000..8e085e1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/lua/lua/run-ptest
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+cd test
+lua -e"_U=true" all.lua > lua-test.tmp
+
+echo "--- test output ---"
+cat lua-test.tmp
+echo ""
+echo ""
+echo "--- ptest result ---"
+
+grep "final OK \!\!\!" lua-test.tmp > /dev/null
+if [ $? -eq 0 ]; then
+   echo "PASS: lua"
+else
+   echo "FAIL: lua"
+fi
+
+rm -f lua-test.tmp
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/lua/lua/uclibc-pthread.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/lua/lua/uclibc-pthread.patch
new file mode 100644
index 0000000..f4cdc5d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/lua/lua/uclibc-pthread.patch
@@ -0,0 +1,13 @@
+Index: lua-5.1.4/src/Makefile                                                         
+===================================================================
+--- a/src/Makefile.orig	2013-10-22 22:17:19.929103523 -0400
++++ a/src/Makefile	2013-10-22 22:18:27.992104545 -0400
+@@ -9,7 +9,7 @@
+ CC= gcc
+ CFLAGS= -O2 -Wall -DLUA_COMPAT_ALL $(SYSCFLAGS) $(MYCFLAGS)
+ LDFLAGS= $(SYSLDFLAGS) $(MYLDFLAGS)
+-LIBS= -lm $(SYSLIBS) $(MYLIBS)
++LIBS= -lm -lpthread $(SYSLIBS) $(MYLIBS)
+ 
+ AR= ar rcu
+ RANLIB= ranlib
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/lua/lua_5.3.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/lua/lua_5.3.2.bb
new file mode 100644
index 0000000..07a1a43
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/lua/lua_5.3.2.bb
@@ -0,0 +1,61 @@
+DESCRIPTION = "Lua is a powerful light-weight programming language designed \
+for extending applications."
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://doc/readme.html;beginline=318;endline=352;md5=68fc2aa2b751a37ff265524ddf026d7f"
+HOMEPAGE = "http://www.lua.org/"
+
+PR = "r0"
+
+DEPENDS = "readline"
+SRC_URI = "http://www.lua.org/ftp/lua-${PV}.tar.gz;name=tarballsrc \
+           file://lua.pc.in \
+           "
+SRC_URI += "${@bb.utils.contains('DISTRO_FEATURES', 'ptest', \
+           'http://www.lua.org/tests/lua-${PV}-tests.tar.gz;name=tarballtest \
+            file://run-ptest \
+           ', '', d)}"
+
+SRC_URI[tarballsrc.md5sum] = "33278c2ab5ee3c1a875be8d55c1ca2a1"
+SRC_URI[tarballsrc.sha256sum] = "c740c7bb23a936944e1cc63b7c3c5351a8976d7867c5252c8854f7b2af9da68f"
+SRC_URI[tarballtest.md5sum] = "a2b7ab1b8ff82a0145376e233ef30a4a"
+SRC_URI[tarballtest.sha256sum] = "56909863a3713dee3709b3dbd0c868237e4f5c9ea1744f5bf0ba8bafa6c4ed32"
+
+inherit pkgconfig binconfig ptest
+
+UCLIBC_PATCHES += "file://uclibc-pthread.patch"
+SRC_URI_append_libc-uclibc = "${UCLIBC_PATCHES}"
+
+TARGET_CC_ARCH += " -fPIC ${LDFLAGS}"
+EXTRA_OEMAKE = "'CC=${CC} -fPIC' 'MYCFLAGS=${CFLAGS} -DLUA_USE_LINUX -fPIC' MYLDFLAGS='${LDFLAGS}'"
+
+do_configure_prepend() {
+    sed -i -e s:/usr/local:${prefix}:g src/luaconf.h
+}
+
+do_compile () {
+    oe_runmake linux
+}
+
+do_install () {
+    oe_runmake \
+        'INSTALL_TOP=${D}${prefix}' \
+        'INSTALL_BIN=${D}${bindir}' \
+        'INSTALL_INC=${D}${includedir}/' \
+        'INSTALL_MAN=${D}${mandir}/man1' \
+        'INSTALL_SHARE=${D}${datadir}/lua' \
+        'INSTALL_LIB=${D}${libdir}' \
+        'INSTALL_CMOD=${D}${libdir}/lua/5.3' \
+        install
+    install -d ${D}${libdir}/pkgconfig
+
+    sed -e s/@VERSION@/${PV}/ ${WORKDIR}/lua.pc.in > ${WORKDIR}/lua.pc
+    install -m 0644 ${WORKDIR}/lua.pc ${D}${libdir}/pkgconfig/
+    rmdir ${D}${datadir}/lua/5.3
+    rmdir ${D}${datadir}/lua
+}
+
+do_install_ptest () {
+        cp -R --no-dereference --preserve=mode,links -v ${WORKDIR}/lua-${PV}-tests ${D}${PTEST_PATH}/test
+}
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit/0001-Do-not-strip-automatically-this-leaves-the-stripping.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit/0001-Do-not-strip-automatically-this-leaves-the-stripping.patch
new file mode 100644
index 0000000..f123b3f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit/0001-Do-not-strip-automatically-this-leaves-the-stripping.patch
@@ -0,0 +1,33 @@
+From 528009f5ca0685c95ef27f6c8957160499c0576a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 10 May 2013 10:42:45 -0700
+Subject: [PATCH] Do not strip automatically, this leaves the stripping
+ busines to OE
+
+Upstream-Status: Inappropriate [OE-Specific]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/Makefile |    2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/src/Makefile b/src/Makefile
+index 278324a..5ecd6d5 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -665,12 +665,10 @@ $(LUAJIT_A): $(LJVMCORE_O)
+ $(LUAJIT_SO): $(LJVMCORE_O)
+ 	$(E) "DYNLINK   $@"
+ 	$(Q)$(TARGET_LD) $(TARGET_ASHLDFLAGS) -o $@ $(LJVMCORE_DYNO) $(TARGET_ALIBS)
+-	$(Q)$(TARGET_STRIP) $@
+ 
+ $(LUAJIT_T): $(TARGET_O) $(LUAJIT_O) $(TARGET_DEP)
+ 	$(E) "LINK      $@"
+ 	$(Q)$(TARGET_LD) $(TARGET_ALDFLAGS) -o $@ $(LUAJIT_O) $(TARGET_O) $(TARGET_ALIBS)
+-	$(Q)$(TARGET_STRIP) $@
+ 	$(E) "OK        Successfully built LuaJIT"
+ 
+ ##############################################################################
+-- 
+1.7.9.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_2.0.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_2.0.4.bb
new file mode 100644
index 0000000..a0252aa
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_2.0.4.bb
@@ -0,0 +1,63 @@
+SUMMARY = "Just-In-Time Compiler for Lua"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=3992f1fbae3b8b061f9056b7fcda8cc6"
+HOMEPAGE = "http://luajit.org"
+
+SRC_URI = "http://luajit.org/download/LuaJIT-${PV}.tar.gz \
+           file://0001-Do-not-strip-automatically-this-leaves-the-stripping.patch \
+"
+SRC_URI[md5sum] = "dd9c38307f2223a504cbfb96e477eca0"
+SRC_URI[sha256sum] = "620fa4eb12375021bef6e4f237cbd2dd5d49e56beb414bee052c746beef1807d"
+
+S = "${WORKDIR}/LuaJIT-${PV}"
+
+inherit pkgconfig binconfig
+
+BBCLASSEXTEND = "native"
+
+do_configure_prepend() {
+    sed -i 's:PREFIX= /usr/local:PREFIX= ${prefix}:g' ${S}/Makefile
+    sed -i 's:MULTILIB= lib:MULTILIB= ${baselib}:g' ${S}/Makefile
+}
+
+# http://luajit.org/install.html#cross
+# Host luajit needs to be compiled with the same pointer size
+# If you want to cross-compile to any 32 bit target on an x64 OS,
+# you need to install the multilib development package (e.g.
+# libc6-dev-i386 on Debian/Ubuntu) and build a 32 bit host part
+# (HOST_CC="gcc -m32").
+BUILD_CC_ARCH_append_powerpc = ' -m32'
+BUILD_CC_ARCH_append_x86 = ' -m32'
+BUILD_CC_ARCH_append_arm = ' -m32'
+
+EXTRA_OEMAKE_append_class-target = '\
+    CROSS=${HOST_PREFIX} \
+    HOST_CC="${BUILD_CC} ${BUILD_CC_ARCH}" \
+    TARGET_CFLAGS="${TOOLCHAIN_OPTIONS} ${TARGET_CC_ARCH}" \
+    TARGET_LDFLAGS="${TOOLCHAIN_OPTIONS}" \
+    TARGET_SHLDFLAGS="${TOOLCHAIN_OPTIONS}" \
+'
+
+do_compile () {
+    oe_runmake
+}
+
+do_install () {
+    oe_runmake 'DESTDIR=${D}' install
+    rmdir ${D}${datadir}/lua/5.* \
+          ${D}${datadir}/lua \
+          ${D}${libdir}/lua/5.* \
+          ${D}${libdir}/lua
+}
+
+PACKAGES += 'luajit-common'
+
+FILES_${PN} += "${libdir}/libluajit-5.1.so.2 \
+    ${libdir}/libluajit-5.1.so.${PV} \
+"
+FILES_${PN}-dev += "${libdir}/libluajit-5.1.a \
+    ${libdir}/libluajit-5.1.so \
+    ${libdir}/pkgconfig/luajit.pc \
+"
+FILES_luajit-common = "${datadir}/${BPN}-${PV}"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/mcpp/files/ice-mcpp.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/mcpp/files/ice-mcpp.patch
new file mode 100644
index 0000000..8103cf0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/mcpp/files/ice-mcpp.patch
@@ -0,0 +1,208 @@
+diff -r -c -N ../mcpp-2.7.2-old/noconfig/vc2010.dif ./noconfig/vc2010.dif
+*** ../mcpp-2.7.2-old/noconfig/vc2010.dif	Wed Dec 31 20:30:00 1969
+--- ./noconfig/vc2010.dif	Fri May 14 12:47:22 2010
+***************
+*** 0 ****
+--- 1,67 ----
++ *** noconfig.H	Thu Sep 25 15:34:56 2008
++ --- noconfig.H.vc2005	Thu Sep 25 17:23:49 2008
++ ***************
++ *** 15,21 ****
++    */
++   
++   /* Define target operating-system.  */
++ ! #define SYSTEM              SYS_FREEBSD
++   
++   /* Define target compiler.          */
++   #ifndef COMPILER
++ --- 15,21 ----
++    */
++   
++   /* Define target operating-system.  */
++ ! #define SYSTEM              SYS_WIN32
++   
++   /* Define target compiler.          */
++   #ifndef COMPILER
++ ***************
++ *** 26,36 ****
++   #define HOST_SYSTEM         SYSTEM
++   
++   /* Define host compiler.            */
++ ! #define HOST_COMPILER       GNUC
++   
++   /* Version message.                 */
++   /* "MCPP V.2.* (200y/mm) compiled by " precedes VERSION_MSG */
++ ! #define VERSION_MSG         "GCC 3.4"
++   #if     0
++       "LCC-Win32 2006-03"
++       "Visual C 2005"
++ --- 26,36 ----
++   #define HOST_SYSTEM         SYSTEM
++   
++   /* Define host compiler.            */
++ ! #define HOST_COMPILER       MSC
++   
++   /* Version message.                 */
++   /* "MCPP V.2.* (200y/mm) compiled by " precedes VERSION_MSG */
++ ! #define VERSION_MSG         "Visual C 2010"
++   #if     0
++       "LCC-Win32 2006-03"
++       "Visual C 2005"
++ ***************
++ *** 212,221 ****
++   #define ONE_PASS            TRUE
++   #endif
++   #define COMPILER_EXT        "_MSC_VER"
++ ! #define COMPILER_EXT_VAL    "1500"      /* VC 6.0: "1200"   */
++       /* VC 2002: "1300", VC 2003: "1310", VC 2005: "1400", VC 2008: "1500"   */
++   #define COMPILER_EXT2       "_MSC_FULL_VER"
++ ! #define COMPILER_EXT2_VAL   "150021022" /* VC 6.0: "12008804"       */
++       /* VC 2002: "13009466", VC 2003: "13103077", VC 2005: "140050320"       */
++       /* VC 2008: "150021022" */
++   #define COMPILER_SP1        "_MSC_EXTENSIONS"
++ --- 212,221 ----
++   #define ONE_PASS            TRUE
++   #endif
++   #define COMPILER_EXT        "_MSC_VER"
++ ! #define COMPILER_EXT_VAL    "1600"      /* VC 6.0: "1200"   */
++       /* VC 2002: "1300", VC 2003: "1310", VC 2005: "1400", VC 2008: "1500"   */
++   #define COMPILER_EXT2       "_MSC_FULL_VER"
++ ! #define COMPILER_EXT2_VAL   "160030319" /* VC 6.0: "12008804"       */
++       /* VC 2002: "13009466", VC 2003: "13103077", VC 2005: "140050320"       */
++       /* VC 2008: "150021022" */
++   #define COMPILER_SP1        "_MSC_EXTENSIONS"
+diff -r -c -N ../mcpp-2.7.2-old/src/internal.H ./src/internal.H
+*** ../mcpp-2.7.2-old/src/internal.H	Wed Aug 27 10:31:16 2008
+--- ./src/internal.H	Fri May 14 12:40:56 2010
+***************
+*** 390,395 ****
+--- 390,397 ----
+  extern char     identifier[];       /* Lastly scanned name          */
+  extern IFINFO   ifstack[];          /* Information of #if nesting   */
+  extern char     work_buf[];
++ extern FILEINFO * sh_file;
++ extern int      sh_line;
+          /* Temporary buffer for directive line and macro expansion  */
+  
+  /* main.c   */
+***************
+*** 557,562 ****
+  #endif
+  #endif
+  
+! #if HOST_HAVE_STPCPY
+  extern char *   stpcpy( char * dest, const char * src);
+  #endif
+--- 559,564 ----
+  #endif
+  #endif
+  
+! #if HOST_HAVE_STPCPY && !defined(stpcpy)
+  extern char *   stpcpy( char * dest, const char * src);
+  #endif
+diff -r -c -N ../mcpp-2.7.2-old/src/main.c ./src/main.c
+*** ../mcpp-2.7.2-old/src/main.c	Wed Nov  5 05:04:46 2008
+--- ./src/main.c	Fri May 14 12:40:56 2010
+***************
+*** 326,331 ****
+--- 326,333 ----
+              = FALSE;
+      option_flags.trig = TRIGRAPHS_INIT;
+      option_flags.dig = DIGRAPHS_INIT;
++     sh_file = NULL;
++     sh_line = 0;
+  }
+  
+  int     mcpp_lib_main
+diff -r -c -N ../mcpp-2.7.2-old/src/support.c ./src/support.c
+*** ../mcpp-2.7.2-old/src/support.c	Tue Jun 10 06:02:33 2008
+--- ./src/support.c	Fri May 14 12:40:56 2010
+***************
+*** 188,194 ****
+      size_t      length
+  )
+  {
+!     if (mem_buf_p->bytes_avail < length) {  /* Need to allocate more memory */
+          size_t size = MAX( BUF_INCR_SIZE, length);
+  
+          if (mem_buf_p->buffer == NULL) {            /* 1st append   */
+--- 188,194 ----
+      size_t      length
+  )
+  {
+!     if (mem_buf_p->bytes_avail < length + 1) {  /* Need to allocate more memory */
+          size_t size = MAX( BUF_INCR_SIZE, length);
+  
+          if (mem_buf_p->buffer == NULL) {            /* 1st append   */
+***************
+*** 1722,1727 ****
+--- 1722,1729 ----
+                      sp -= 2;
+                      while (*sp != '\n')     /* Until end of line    */
+                          mcpp_fputc( *sp++, OUT);
++                     mcpp_fputc( '\n', OUT);
++                     wrong_line = TRUE;
+                  }
+                  goto  end_line;
+              default:                        /* Not a comment        */
+diff -r -c -N ../mcpp-2.7.2-old/src/system.c ./src/system.c
+*** ../mcpp-2.7.2-old/src/system.c      2008-11-26 10:53:51.000000000 +0100
+--- ./src/system.c      2011-02-21 16:18:05.678058106 +0100
+***************
+*** 3534,3539 ****
+--- 3534,3565 ----
+      FILEINFO *      file;
+      const char *    too_many_include_nest =
+              "More than %.0s%ld nesting of #include";    /* _F_ _W4_ */
++             
++     //
++     // When encoding is UTF-8, skip BOM if present.
++     //
++     if(mbchar == UTF8 && fp != NULL && ftell(fp) == 0)
++     {
++         const unsigned char UTF8_BOM[3] = {0xEF, 0xBB, 0xBF};
++         unsigned char FILE_HEAD[3] = {0, 0, 0};
++         int i;
++         for(i = 0; i < 3; ++i)
++         {
++             FILE_HEAD[i] = getc(fp);
++             if(FILE_HEAD[i] != UTF8_BOM[i])
++             {
++                 if(FILE_HEAD[i] == (unsigned char)EOF)
++                 {
++                     i--;
++                 }
++                 for(; i >= 0; --i)
++                 {
++                     ungetc(FILE_HEAD[i], fp);
++                 }
++                 break;
++             }
++         }
++     }
+  
+      filename = set_fname( filename);    /* Search or append to fnamelist[]  */
+      fullname = set_fname( fullname);    /* Search or append to fnamelist[]  */
+***************
+*** 3858,3863 ****
+--- 3884,3892 ----
+  }
+  #endif
+  
++ FILEINFO*       sh_file;
++ int             sh_line;
++ 
+  void    sharp(
+      FILEINFO *  sharp_file,
+      int         flag        /* Flag to append to the line for GCC   */
+***************
+*** 3868,3875 ****
+   * else (i.e. 'sharp_file' is NULL) 'infile'.
+   */
+  {
+-     static FILEINFO *   sh_file;
+-     static int  sh_line;
+      FILEINFO *  file;
+      int         line;
+  
+--- 3897,3902 ----
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/mcpp/mcpp_2.7.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/mcpp/mcpp_2.7.2.bb
new file mode 100644
index 0000000..a7163a3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/mcpp/mcpp_2.7.2.bb
@@ -0,0 +1,16 @@
+SUMMARY = "MCPP is a portable C/C++ preprocessor"
+HOMEPAGE = "http://mcpp.sourceforge.net/"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5ca370b75ec890321888a00cea9bc1d5"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \
+           file://ice-mcpp.patch "
+SRC_URI[md5sum] = "512de48c87ab023a69250edc7a0c7b05"
+SRC_URI[sha256sum] = "3b9b4421888519876c4fc68ade324a3bbd81ceeb7092ecdbbc2055099fcb8864"
+
+inherit autotools
+
+EXTRA_OECONF = " --enable-mcpplib "
+
+BBCLASSEXTEND = "native nativesdk"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/memstat/memstat_1.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/memstat/memstat_1.0.bb
new file mode 100644
index 0000000..8252153
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/memstat/memstat_1.0.bb
@@ -0,0 +1,30 @@
+SUMMARY = "Display virtual memory allocation"
+DESCRIPTION = "Lists all the processes, executables, and shared libraries \
+that are using up virtual memory. It's helpful to see how the shared memory \
+is used and which 'old' libs are loaded. \
+"
+HOMEPAGE = "http://memstattool.sourceforge.net/"
+SECTION = "devtool"
+
+LICENSE = "GPLv2"
+
+S = "${WORKDIR}/memstattool"
+
+LIC_FILES_CHKSUM = "file://debian/copyright;md5=87be186443b1ac2cfa466f475e1ee0cb"
+
+SRC_URI = "http://sourceforge.net/projects/memstattool/files/memstat_${PV}.tar.gz \
+          "
+
+SRC_URI[md5sum] = "2c3acc0c62b2a18f6601b84e54aa7462"
+SRC_URI[sha256sum] = "245d5fc7fb87bcfd14486cd34917cae2856e799559ac568434af12c4852bce94"
+
+do_install_append(){
+    install -d ${D}${bindir}
+    install -m 0755 memstat ${D}${bindir}
+    install -d ${D}${sysconfdir}
+    install -m 0755 memstat.conf ${D}${sysconfdir}
+    install -d ${D}${mandir}/man1
+    install -m 0644 memstat.1 ${D}${mandir}/man1
+    install -d ${D}${docdir}/${BPN}
+    install -m 0644 memstat-tutorial.txt ${D}${docdir}/${BPN}
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/mercurial/mercurial-native_3.4.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/mercurial/mercurial-native_3.4.1.bb
new file mode 100644
index 0000000..303a032
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/mercurial/mercurial-native_3.4.1.bb
@@ -0,0 +1,26 @@
+SUMMARY = "The Mercurial distributed SCM"
+HOMEPAGE = "http://mercurial.selenic.com/"
+SECTION = "console/utils"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+DEPENDS = "python-native"
+
+SRC_URI = "http://mercurial.selenic.com/release/mercurial-${PV}.tar.gz"
+SRC_URI[md5sum] = "65783a60aefb46a11296b587e9403537"
+SRC_URI[sha256sum] = "7a8acf7329beda38ceea29c689212574d9a6bfffe24cf565015ea0066f7cee3f"
+
+S = "${WORKDIR}/mercurial-${PV}"
+
+inherit native
+
+EXTRA_OEMAKE = "STAGING_LIBDIR=${STAGING_LIBDIR} STAGING_INCDIR=${STAGING_INCDIR} \
+    BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} PREFIX=${prefix}"
+
+do_configure_append () {
+    sed -i -e 's:PYTHON=python:PYTHON=${STAGING_BINDIR_NATIVE}/python-native/python:g' ${S}/Makefile
+}
+
+do_install () {
+    oe_runmake -e install-bin DESTDIR=${D} PREFIX=${prefix}
+}
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/mpich/mpich_3.1.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/mpich/mpich_3.1.1.bb
new file mode 100644
index 0000000..7d00906
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/mpich/mpich_3.1.1.bb
@@ -0,0 +1,39 @@
+SUMMARY = "Message Passing Interface (MPI) implementation"
+HOMEPAGE = "http://www.mpich.org/"
+SECTION = "devel"
+
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=2106f0435056f3dd9349747a766e5816"
+
+SRC_URI = " \
+	http://www.mpich.org/static/downloads/${PV}/mpich-${PV}.tar.gz \
+"
+
+SRC_URI[md5sum] = "40dc408b1e03cc36d80209baaa2d32b7"
+SRC_URI[sha256sum] = "455ccfaf4ec724d2cf5d8bff1f3d26a958ad196121e7ea26504fd3018757652d"
+
+CACHED_CONFIGUREVARS += "BASH_SHELL=${base_bindir}/bash"
+
+RDEPENDS_${PN} += "bash perl libxml2"
+S = "${WORKDIR}/${BP}"
+
+EXTRA_OECONF = "--enable-debuginfo \
+                --enable-fast \
+                --enable-shared  \
+                --with-pm=gforker  \
+		--disable-rpath \
+                --disable-f77 \
+                --disable-fc \
+                --disable-fortran \
+                --disable-cxx"
+
+inherit autotools-brokensep gettext
+
+do_configure_prepend() {
+    autoreconf --verbose --install --force -I . -I confdb/ -I maint/
+    oe_runconf
+    exit
+}
+
+# http://errors.yoctoproject.org/Errors/Details/35146/
+PNBLACKLIST[mpich] ?= "BROKEN: QA Issue: libmpi.la failed sanity test (workdir), QA Issue: mpich.pc failed sanity test (tmpdir)"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/msr-tools/msr-tools_1.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/msr-tools/msr-tools_1.3.bb
new file mode 100644
index 0000000..e4701af
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/msr-tools/msr-tools_1.3.bb
@@ -0,0 +1,21 @@
+SUMMARY = "utilies to read and write Intel model-specific registers"
+HOMEPAGE = "https://01.org/msr-tools"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://Makefile;beginline=1;endline=11;md5=678a3928c856042424c734f4a7586e65"
+SECTION = "devel"
+
+SRC_URI = "https://01.org/sites/default/files/downloads/msr-tools/msr-tools-${PV}.zip"
+SRC_URI[md5sum] = "67d18527f64fd707c9b7a79f13d19fd5"
+SRC_URI[sha256sum] = "f9457b5340f5f274da4239a461f0db6b514142b40461559d9c6150f05aab1d1e"
+
+S = "${WORKDIR}/msr-tools-master"
+
+COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
+
+EXTRA_OEMAKE = "-e MAKEFLAGS="
+
+do_install() {
+    install -d ${D}${sbindir}
+    install -m 0755 rdmsr ${D}${sbindir}
+    install -m 0755 wrmsr ${D}${sbindir}
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/ninja/ninja-native_1.6.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/ninja/ninja-native_1.6.0.bb
new file mode 100644
index 0000000..c00710a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/ninja/ninja-native_1.6.0.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Ninja is a small build system with a focus on speed."
+HOMEPAGE = "http://martine.github.com/ninja/"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a81586a64ad4e476c791cda7e2f2c52e"
+
+DEPENDS = "re2c-native"
+
+inherit native
+
+SRCREV="484c16336f19bd8970bb6e75322d61b92a229899"
+
+SRC_URI = "git://github.com/martine/ninja.git;branch=release"
+
+S="${WORKDIR}/git"
+
+do_configure[noexec] = "1"
+
+do_compile() {
+    python ${S}/configure.py --bootstrap
+}
+
+do_install() {
+    install -d ${D}${bindir}
+    install -m 0755 ${S}/ninja ${D}${bindir}/
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/no-registry.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/no-registry.patch
new file mode 100644
index 0000000..ed24738
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/no-registry.patch
@@ -0,0 +1,59 @@
+Bugfix for --no-registry in nodejs-v0.12.2
+
+diff -u -r node-v0.12.2_def/deps/npm/lib/cache/caching-client.js node-v0.12.2/deps/npm/lib/cache/caching-client.js
+--- node-v0.12.2_def/deps/npm/lib/cache/caching-client.js	2015-04-01 01:13:01.000000000 +0300
++++ node-v0.12.2/deps/npm/lib/cache/caching-client.js	2015-05-18 00:47:10.738599686 +0300
+@@ -67,6 +67,22 @@
+   var cacheBase = cacheFile(npm.config.get("cache"))(uri)
+   var cachePath = path.join(cacheBase, ".cache.json")
+ 
++  if (parsed.host === "noregistry") (function() {
++    var stat = null
++    var file = npm.config.get("cache") + parsed.pathname + "/.cache.json"
++    try {
++      stat = fs.statSync(cachePath)
++    } catch (ex) {}
++    if (!stat) try {
++      stat = fs.statSync(file) 
++      cachePath = file
++    } catch (ex) {
++      stat = "Registry not defined and registry files not found: \"" +
++             cachePath + "\", \"" + file + "\"."
++      throw new Error(stat)
++    }
++  })()
++
+   // If the GET is part of a write operation (PUT or DELETE), then
+   // skip past the cache entirely, but still save the results.
+   if (uri.match(/\?write=true$/)) {
+@@ -83,12 +99,17 @@
+         }
+         catch (ex) {
+           data = null
++          if (parsed.host === "noregistry")
++            throw new Error("File \"" + cachePath+"\"" + " corrupted.")
+         }
+ 
+         params.stat = stat
+         params.data = data
+ 
+-        get_.call(client, uri, cachePath, params, cb)
++        if (parsed.host === "noregistry")
++          cb(null, data, JSON.stringify(data), { statusCode : 304 })
++        else
++          get_.call(client, uri, cachePath, params, cb)
+       })
+     }
+     else {
+diff -u -r node-v0.12.2_def/deps/npm/lib/utils/map-to-registry.js node-v0.12.2/deps/npm/lib/utils/map-to-registry.js
+--- node-v0.12.2_def/deps/npm/lib/utils/map-to-registry.js	2015-04-01 01:13:01.000000000 +0300
++++ node-v0.12.2/deps/npm/lib/utils/map-to-registry.js	2015-05-18 01:15:10.030569613 +0300
+@@ -45,6 +45,8 @@
+ 
+   log.silly("mapToRegistry", "registry", registry)
+ 
++  if (!registry) return cb(null, "http://noregistry/" + name, {})
++
+   var auth = config.getCredentialsByURI(registry)
+ 
+   // normalize registry URL so resolution doesn't drop a piece of registry URL
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_4.4.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_4.4.3.bb
new file mode 100644
index 0000000..43761ae
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_4.4.3.bb
@@ -0,0 +1,84 @@
+DESCRIPTION = "nodeJS Evented I/O for V8 JavaScript"
+HOMEPAGE = "http://nodejs.org"
+LICENSE = "MIT & BSD & Artistic-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=96aa1ac122c41f8c08a0683d4b2126b5"
+
+DEPENDS = "openssl"
+
+COMPATIBLE_MACHINE_armv4 = "(!.*armv4).*"
+COMPATIBLE_MACHINE_armv5 = "(!.*armv5).*"
+COMPATIBLE_MACHINE_mips64 = "(!.*mips64).*"
+
+SRC_URI = "http://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz \
+    file://no-registry.patch \
+"
+SRC_URI[md5sum] = "74e83c9c512bd99b38a02edd740b4334"
+SRC_URI[sha256sum] = "57499bb0b1b86080459d4066e3c138579a278b2d0b1f5b2f19e66c69b4e8433c"
+
+S = "${WORKDIR}/node-v${PV}"
+
+# v8 errors out if you have set CCACHE
+CCACHE = ""
+
+def map_nodejs_arch(a, d):
+    import re
+
+    if   re.match('i.86$', a): return 'ia32'
+    elif re.match('x86_64$', a): return 'x64'
+    elif re.match('aarch64$', a): return 'arm64'
+    elif re.match('powerpc64$', a): return 'ppc64'
+    elif re.match('powerpc$', a): return 'ppc'
+    return a
+
+ARCHFLAGS_arm = "${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', '--with-arm-float-abi=hard', '--with-arm-float-abi=softfp', d)}"
+GYP_DEFINES_append_mipsel = " mips_arch_variant='r1' "
+ARCHFLAGS ?= ""
+
+# Node is way too cool to use proper autotools, so we install two wrappers to forcefully inject proper arch cflags to workaround gypi
+do_configure () {
+    export LD="${CXX}"
+    GYP_DEFINES="${GYP_DEFINES}" export GYP_DEFINES
+    # $TARGET_ARCH settings don't match --dest-cpu settings
+   ./configure --prefix=${prefix} --without-snapshot --shared-openssl \
+               --dest-cpu="${@map_nodejs_arch(d.getVar('TARGET_ARCH', True), d)}" \
+               --dest-os=linux \
+               ${ARCHFLAGS}
+}
+
+do_compile () {
+    export LD="${CXX}"
+    oe_runmake BUILDTYPE=Release
+}
+
+do_install () {
+    oe_runmake install DESTDIR=${D}
+}
+
+do_install_append_class-native() {
+    # use node from PATH instead of absolute path to sysroot
+    # node-v0.10.25/tools/install.py is using:
+    # shebang = os.path.join(node_prefix, 'bin/node')
+    # update_shebang(link_path, shebang)
+    # and node_prefix can be very long path to bindir in native sysroot and
+    # when it exceeds 128 character shebang limit it's stripped to incorrect path
+    # and npm fails to execute like in this case with 133 characters show in log.do_install:
+    # updating shebang of /home/jenkins/workspace/build-webos-nightly/device/qemux86/label/open-webos-builder/BUILD-qemux86/work/x86_64-linux/nodejs-native/0.10.15-r0/image/home/jenkins/workspace/build-webos-nightly/device/qemux86/label/open-webos-builder/BUILD-qemux86/sysroots/x86_64-linux/usr/bin/npm to /home/jenkins/workspace/build-webos-nightly/device/qemux86/label/open-webos-builder/BUILD-qemux86/sysroots/x86_64-linux/usr/bin/node
+    # /usr/bin/npm is symlink to /usr/lib/node_modules/npm/bin/npm-cli.js
+    # use sed on npm-cli.js because otherwise symlink is replaced with normal file and
+    # npm-cli.js continues to use old shebang
+    sed "1s^.*^#\!/usr/bin/env node^g" -i ${D}${exec_prefix}/lib/node_modules/npm/bin/npm-cli.js
+}
+
+do_install_append_class-target() {
+    sed "1s^.*^#\!${bindir}/env node^g" -i ${D}${exec_prefix}/lib/node_modules/npm/bin/npm-cli.js
+}
+
+PACKAGES =+ "${PN}-npm"
+FILES_${PN}-npm = "${exec_prefix}/lib/node_modules ${bindir}/npm"
+RDEPENDS_${PN}-npm = "bash python-shell python-datetime python-subprocess python-textutils"
+
+PACKAGES =+ "${PN}-systemtap"
+FILES_${PN}-systemtap = "${datadir}/systemtap"
+
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagegroups/packagegroup-sdk-target.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagegroups/packagegroup-sdk-target.bb
new file mode 100644
index 0000000..14e75dc
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagegroups/packagegroup-sdk-target.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Packages required for a target (on-device) SDK"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690"
+
+PR = "r1"
+
+inherit packagegroup allarch
+
+RPROVIDES_${PN} += "packagegroup-native-sdk"
+RREPLACES_${PN} += "packagegroup-native-sdk"
+RCONFLICTS_${PN} += "packagegroup-native-sdk"
+RDEPENDS_${PN} = "gcc-symlinks g++-symlinks cpp cpp-symlinks \
+                  binutils-symlinks \
+                  perl-modules \
+                  flex flex-dev \
+                  bison \
+                  gawk \
+                  sed \
+                  grep \
+                  autoconf automake \
+                  make \
+                  patch diffstat diffutils \
+                  libstdc++-dev \
+                  libtool libtool-dev \
+                  pkgconfig"
+
+# usefull, but not in oe-core/meta-oe yet: patchutils
+RRECOMMENDS_${PN} = " g77-symlinks gfortran-symlinks"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/0001-Don-t-call-deprecated-glib-functions-and-use-the-new.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/0001-Don-t-call-deprecated-glib-functions-and-use-the-new.patch
new file mode 100644
index 0000000..ecf8e74
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/0001-Don-t-call-deprecated-glib-functions-and-use-the-new.patch
@@ -0,0 +1,166 @@
+From 869e52a9055c72970fed036a1510f676e6ce0824 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 13 Jun 2013 01:24:19 -0700
+Subject: [PATCH] Don't call deprecated glib functions and use the new gthread
+ API.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Inappropriate[version Unmaintained Upstream]
+---
+ client/pk-console.c                              |    3 ++-
+ client/pk-generate-pack.c                        |    3 ++-
+ client/pk-monitor.c                              |    3 ++-
+ contrib/command-not-found/PackageKit.sh          |    2 +-
+ contrib/command-not-found/pk-command-not-found.c |    4 ++--
+ contrib/debuginfo-install/pk-debuginfo-install.c |    4 ++--
+ src/pk-backend.c                                 |    7 +++++++
+ src/pk-main.c                                    |    4 ++--
+ 10 files changed, 20 insertions(+), 10 deletions(-)
+
+diff --git a/client/pk-console.c b/client/pk-console.c
+index de927e1..2435f27 100644
+--- a/client/pk-console.c
++++ b/client/pk-console.c
+@@ -1264,11 +1264,12 @@ main (int argc, char *argv[])
+ 	bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
+ 	bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+ 	textdomain (GETTEXT_PACKAGE);
+-
++#if !GLIB_CHECK_VERSION(2,32,0)
+ 	if (! g_thread_supported ())
+ 		g_thread_init (NULL);
+ 	g_type_init ();
+ 	dbus_g_thread_init ();
++#endif
+ 
+ 	/* do stuff on ctrl-c */
+ 	signal (SIGINT, pk_console_sigint_cb);
+diff --git a/client/pk-generate-pack.c b/client/pk-generate-pack.c
+index 0b2b40f..20d7e8d 100644
+--- a/client/pk-generate-pack.c
++++ b/client/pk-generate-pack.c
+@@ -251,12 +251,13 @@ main (int argc, char *argv[])
+ 	bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
+ 	bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+ 	textdomain (GETTEXT_PACKAGE);
+-
++#if !GLIB_CHECK_VERSION(2,32,0)
+ 	if (! g_thread_supported ())
+ 		g_thread_init (NULL);
+ 
+ 	g_type_init ();
+ 	dbus_g_thread_init ();
++#endif
+ 
+ 	/* do stuff on ctrl-c */
+ 	signal (SIGINT, pk_generate_pack_sigint_cb);
+diff --git a/client/pk-monitor.c b/client/pk-monitor.c
+index f230f7a..d43007f 100644
+--- a/client/pk-monitor.c
++++ b/client/pk-monitor.c
+@@ -285,11 +285,12 @@ main (int argc, char *argv[])
+ 	bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
+ 	bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+ 	textdomain (GETTEXT_PACKAGE);
+-
++#if !GLIB_CHECK_VERSION(2,32,0)
+ 	if (! g_thread_supported ())
+ 		g_thread_init (NULL);
+ 	g_type_init ();
+ 	dbus_g_thread_init ();
++#endif
+ 
+ 	context = g_option_context_new (NULL);
+ 	/* TRANSLATORS: this is a program that monitors PackageKit */
+diff --git a/contrib/command-not-found/PackageKit.sh b/contrib/command-not-found/PackageKit.sh
+index d08989c..d708fff 100644
+--- a/contrib/command-not-found/PackageKit.sh
++++ b/contrib/command-not-found/PackageKit.sh
+@@ -18,7 +18,7 @@ command_not_found_handle () {
+ 
+ 	# run the command, or just print a warning
+ 	if [ $runcnf -eq 1 ]; then
+-		/home/hughsie/.root/libexec/pk-command-not-found $1
++		/usr/lib/packagekit/pk-command-not-found $1
+ 		retval=$?
+ 	else
+ 		echo "bash: $1: command not found"
+diff --git a/contrib/command-not-found/pk-command-not-found.c b/contrib/command-not-found/pk-command-not-found.c
+index 70679c0..9f81ce4 100644
+--- a/contrib/command-not-found/pk-command-not-found.c
++++ b/contrib/command-not-found/pk-command-not-found.c
+@@ -659,12 +659,12 @@ main (int argc, char *argv[])
+ 	bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
+ 	bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+ 	textdomain (GETTEXT_PACKAGE);
+-
++#if !GLIB_CHECK_VERSION(2,32,0)
+ 	if (! g_thread_supported ())
+ 		g_thread_init (NULL);
+ 	dbus_g_thread_init ();
+ 	g_type_init ();
+-
++#endif
+ 	context = g_option_context_new (NULL);
+ 	/* TRANSLATORS: tool that gets called when the command is not found */
+ 	g_option_context_set_summary (context, _("PackageKit Command Not Found"));
+diff --git a/contrib/debuginfo-install/pk-debuginfo-install.c b/contrib/debuginfo-install/pk-debuginfo-install.c
+index c12aca5..b0e1e7c 100644
+--- a/contrib/debuginfo-install/pk-debuginfo-install.c
++++ b/contrib/debuginfo-install/pk-debuginfo-install.c
+@@ -532,11 +532,11 @@ main (int argc, char *argv[])
+ 	bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
+ 	bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+ 	textdomain (GETTEXT_PACKAGE);
+-
++#if !GLIB_CHECK_VERSION(2,32,0)
+ 	if (! g_thread_supported ())
+ 		g_thread_init (NULL);
+ 	g_type_init ();
+-
++#endif
+ 	context = g_option_context_new (NULL);
+ 	/* TRANSLATORS: tool that gets called when the command is not found */
+ 	g_option_context_set_summary (context, _("PackageKit Debuginfo Installer"));
+diff --git a/src/pk-backend.c b/src/pk-backend.c
+index 5216b63..5b83ae4 100644
+--- a/src/pk-backend.c
++++ b/src/pk-backend.c
+@@ -2103,7 +2103,14 @@ pk_backend_thread_create (PkBackend *backend, PkBackendThreadFunc func)
+ 		egg_warning ("already has thread");
+ 		return FALSE;
+ 	}
++#if !GLIB_CHECK_VERSION(2,32,0)
+ 	backend->priv->thread = g_thread_create ((GThreadFunc) func, backend, FALSE, NULL);
++#else
++	backend->priv->thread = g_thread_try_new ("daemon thread", (GThreadFunc) func, backend, NULL);
++	if (backend->priv->thread != NULL) {
++		g_thread_unref(backend->priv->thread);
++	}
++#endif
+ 	if (backend->priv->thread == NULL) {
+ 		egg_warning ("failed to create thread");
+ 		return FALSE;
+diff --git a/src/pk-main.c b/src/pk-main.c
+index 4c758cd..8fa2482 100644
+--- a/src/pk-main.c
++++ b/src/pk-main.c
+@@ -219,12 +219,12 @@ main (int argc, char *argv[])
+ 	bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
+ 	bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+ 	textdomain (GETTEXT_PACKAGE);
+-
++#if !GLIB_CHECK_VERSION(2,32,0)
+ 	if (! g_thread_supported ())
+ 		g_thread_init (NULL);
+ 	dbus_g_thread_init ();
+ 	g_type_init ();
+-
++#endif
+ 	/* TRANSLATORS: describing the service that is running */
+ 	context = g_option_context_new (_("PackageKit service"));
+ 	g_option_context_add_main_entries (context, options, NULL);
+-- 
+1.7.9.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/configurefix.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/configurefix.patch
new file mode 100644
index 0000000..48f9591
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/configurefix.patch
@@ -0,0 +1,13 @@
+Index: PackageKit-0.6.0/configure.ac
+===================================================================
+--- PackageKit-0.6.0.orig/configure.ac	2010-01-04 16:32:18.000000000 +0000
++++ PackageKit-0.6.0/configure.ac	2010-01-29 11:33:48.000000000 +0000
+@@ -90,7 +90,7 @@
+ 							enable_strict=$default_strict)
+ if test x$enable_strict != xno; then
+ 	if test "$GCC" = "yes"; then
+-		WARNINGFLAGS_CPP="$WARNINGFLAGS_CPP -Werror"
++		:
+ 	fi
+ fi
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/opkgfixes.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/opkgfixes.patch
new file mode 100644
index 0000000..5a73a19
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/opkgfixes.patch
@@ -0,0 +1,422 @@
+Index: PackageKit-0.6.0/backends/opkg/pk-backend-opkg.c
+===================================================================
+--- PackageKit-0.6.0.orig/backends/opkg/pk-backend-opkg.c	2010-01-29 09:39:33.000000000 +0000
++++ PackageKit-0.6.0/backends/opkg/pk-backend-opkg.c	2010-01-29 11:30:51.000000000 +0000
+@@ -29,8 +29,7 @@
+ 
++#include <stdio.h>
+ #include <libopkg/opkg.h>
+ 
+-static opkg_t *opkg;
+-
+ enum {
+ 	SEARCH_NAME,
+ 	SEARCH_DESCRIPTION,
+@@ -62,7 +60,7 @@
+  * check an opkg package for known GUI dependancies
+  */
+ static gboolean
+-opkg_is_gui_pkg (opkg_package_t *pkg)
++opkg_is_gui_pkg (pkg_t *pkg)
+ {
+ 
+   /* TODO: check appropriate tag */
+@@ -84,7 +82,7 @@
+  * check an opkg package to determine if it is a development package
+  */
+ static gboolean
+-opkg_is_devel_pkg (opkg_package_t *pkg)
++opkg_is_devel_pkg (pkg_t *pkg)
+ {
+   if (g_strrstr (pkg->name, "-dev"))
+       return TRUE;
+@@ -105,7 +103,7 @@
+  * returns true if the tag is present
+  */
+ static gboolean 
+-opkg_check_tag (opkg_package_t *pkg, const gchar *tag)
++opkg_check_tag (pkg_t *pkg, const gchar *tag)
+ {
+ 	if (pkg->tags && tag)
+ 		return (g_strrstr (pkg->tags, tag) != NULL);
+@@ -118,7 +116,7 @@
+ {
+ 	switch (err)
+ 	{
+-	case OPKG_NO_ERROR:
++/*	case OPKG_NO_ERROR:
+ 		break;
+ 	case OPKG_PACKAGE_NOT_INSTALLED:
+ 		pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_NOT_INSTALLED, NULL);
+@@ -140,7 +138,7 @@
+ 		break;
+ 	case OPKG_PACKAGE_NOT_AVAILABLE:
+ 		pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_NOT_FOUND, NULL);
+-		break;
++		break;*/
+ 	default:
+ 		opkg_unknown_error (backend, err, "Update package");
+ 	}
+@@ -152,7 +150,7 @@
+ static void
+ backend_initialize (PkBackend *backend)
+ {
+-	opkg = opkg_new ();
++	int opkg = opkg_new ();
+ 
+ 	if (!opkg) {
+ 		pk_backend_error_code (backend,
+@@ -162,8 +160,8 @@
+ 	}
+ 
+ #ifdef OPKG_OFFLINE_ROOT
+-	opkg_set_option (opkg, (char *) "offline_root", OPKG_OFFLINE_ROOT);
+-	opkg_re_read_config_files (opkg);
++	opkg_set_option ((char *) "offline_root", OPKG_OFFLINE_ROOT);
++	opkg_re_read_config_files ();
+ #endif
+ 
+ }
+@@ -174,22 +172,22 @@
+ static void
+ backend_destroy (PkBackend *backend)
+ {
+-	opkg_free (opkg);
++	opkg_free ();
+ }
+ 
+ 
+ static void
+-pk_opkg_progress_cb (opkg_t *_opkg, const opkg_progress_data_t *pdata, void *data)
++pk_opkg_progress_cb (const opkg_progress_data_t *pdata, void *data)
+ {
+-	PkBackend *backend = PK_BACKEND (data);
++	PkBackend *backend = (PkBackend*) data;
+ 	if (!backend)
+ 		return;
+ 
+ 	pk_backend_set_percentage (backend, pdata->percentage);
+-	if (pdata->package)
++	if (pdata->pkg)
+ 	{
+ 		gchar *uid;
+-		opkg_package_t *pkg = pdata->package;
++		pkg_t *pkg = pdata->pkg;
+ 		gint status = PK_INFO_ENUM_UNKNOWN;
+ 
+ 		uid = g_strdup_printf ("%s;%s;%s;",
+@@ -225,12 +223,12 @@
+ {
+ 	int ret;
+ 
+-	ret = opkg_update_package_lists (opkg, pk_opkg_progress_cb, backend);
++	ret = opkg_update_package_lists (pk_opkg_progress_cb, backend);
+ 
+ 	if (ret) {
+-		if (ret == OPKG_DOWNLOAD_FAILED)
+-			pk_backend_error_code (backend, PK_ERROR_ENUM_REPO_NOT_AVAILABLE, NULL);
+-		else
++//		if (ret == OPKG_DOWNLOAD_FAILED)
++//			pk_backend_error_code (backend, PK_ERROR_ENUM_REPO_NOT_AVAILABLE, NULL);
++//		else
+ 			opkg_unknown_error (backend, ret, "Refreshing cache");
+ 	}
+ 	pk_backend_finished (backend);
+@@ -256,7 +254,7 @@
+  */
+ 
+ static void
+-pk_opkg_package_list_cb (opkg_t *_opkg, opkg_package_t *pkg, void *data)
++pk_opkg_package_list_cb (pkg_t *pkg, void *data)
+ {
+ 	SearchParams *params = (SearchParams*) data;
+ 	gchar *uid;
+@@ -298,7 +296,7 @@
+ 	uid = g_strdup_printf ("%s;%s;%s;",
+ 		pkg->name, pkg->version, pkg->architecture);
+ 
+-	if (pkg->installed)
++	if (pkg->state_status == SS_INSTALLED)
+ 		status = PK_INFO_ENUM_INSTALLED;
+ 	else
+ 		status = PK_INFO_ENUM_AVAILABLE;
+@@ -318,10 +316,10 @@
+                 opkg_is_gui_pkg (pkg))
+ 		goto end_handle;
+ 	if (pk_bitfield_contain(filters, PK_FILTER_ENUM_INSTALLED) && 
+-                (!pkg->installed))
++                (pkg->state_status != SS_INSTALLED))
+ 		goto end_handle;
+ 	if (pk_bitfield_contain(filters, PK_FILTER_ENUM_NOT_INSTALLED) && 
+-                (pkg->installed))
++                (pkg->state_status == SS_INSTALLED))
+ 		goto end_handle;
+ 
+ 	pk_backend_package (params->backend, status, uid, pkg->description);
+@@ -338,7 +336,7 @@
+ 
+ 	params = pk_backend_get_pointer (backend, "search-params");
+ 
+-	opkg_list_packages (opkg, pk_opkg_package_list_cb, params);
++	opkg_list_packages (pk_opkg_package_list_cb, params);
+ 
+ 	pk_backend_finished (params->backend);
+ 
+@@ -349,7 +347,7 @@
+ }
+ 
+ static void
+-backend_search_name (PkBackend *backend, PkBitfield filters, const gchar *search)
++backend_search_name (PkBackend *backend, PkBitfield filters, gchar **search)
+ {
+ 	SearchParams *params;
+ 
+@@ -360,7 +358,7 @@
+ 	params = g_new0 (SearchParams, 1);
+ 	params->filters = filters;
+ 	params->search_type = SEARCH_NAME;
+-	params->needle = g_utf8_strdown (search, -1);
++	params->needle = g_utf8_strdown (search[0], -1);
+ 	params->backend = backend;
+ 
+ 	pk_backend_set_pointer (backend, "search-params", params);
+@@ -371,7 +369,7 @@
+  * backend_search_description:
+  */
+ static void
+-backend_search_description (PkBackend *backend, PkBitfield filters, const gchar *search)
++backend_search_description (PkBackend *backend, PkBitfield filters, gchar **search)
+ {
+ 	SearchParams *params;
+ 
+@@ -382,7 +380,7 @@
+ 	params = g_new0 (SearchParams, 1);
+ 	params->filters = filters;
+ 	params->search_type = SEARCH_DESCRIPTION;
+-	params->needle = g_utf8_strdown (search, -1);
++	params->needle = g_utf8_strdown (search[0], -1);
+ 	params->backend = backend;
+ 
+ 	pk_backend_set_pointer (backend, "search-params", params);
+@@ -390,7 +388,7 @@
+ }
+ 
+ static void
+-backend_search_group (PkBackend *backend, PkBitfield filters, const gchar *search)
++backend_search_group (PkBackend *backend, PkBitfield filters, gchar **search)
+ {
+ 	SearchParams *params;
+ 
+@@ -401,7 +399,7 @@
+ 	params = g_new0 (SearchParams, 1);
+ 	params->filters = filters;
+ 	params->search_type = SEARCH_TAG;
+-	params->needle = g_strdup_printf ("group::%s", search);
++	params->needle = g_strdup_printf ("group::%s", search[0]);
+ 	params->backend = backend;
+ 
+ 	pk_backend_set_pointer (backend, "search-params", params);
+@@ -412,9 +410,9 @@
+ static gboolean
+ backend_install_packages_thread (PkBackend *backend)
+ {
+-	PkPackageId *pi;
+ 	gint err, i;
+ 	gchar **package_ids;
++	gchar **parts;
+ 
+ 	package_ids = pk_backend_get_strv (backend, "pkids");
+ 
+@@ -424,13 +422,13 @@
+ 	{
+ 		pk_backend_package (backend, PK_INFO_ENUM_INSTALLING, package_ids[i], NULL);
+ 
+-		pi = pk_package_id_new_from_string (package_ids[i]);
++		parts = pk_package_id_split (package_ids[i]);
+ 
+-		err = opkg_install_package (opkg, pi->name, pk_opkg_progress_cb, backend);
++		err = opkg_install_package (parts[PK_PACKAGE_ID_NAME], pk_opkg_progress_cb, backend);
+ 		if (err)
+ 			handle_install_error (backend, err);
+ 
+-		pk_package_id_free (pi);
++		g_strfreev (parts);
+ 		if (err != 0)
+ 			break;
+ 	}
+@@ -453,9 +451,9 @@
+ static gboolean
+ backend_remove_packages_thread (PkBackend *backend)
+ {
+-	PkPackageId *pi;
+ 	gint err, i;
+ 	gchar **package_ids;
++	gchar **parts;
+ 	gboolean allow_deps;
+ 	gboolean autoremove;
+ 	gpointer *data;
+@@ -467,29 +465,30 @@
+ 	autoremove = GPOINTER_TO_INT (data[2]);
+ 	g_free (data);
+ 
+-	opkg_set_option (opkg, (char *)"autoremove", &autoremove);
+-	opkg_set_option (opkg, (char *)"force_removal_of_dependent_packages", &allow_deps);
++	opkg_set_option ((char *)"autoremove", &autoremove);
++	opkg_set_option ((char *)"force_removal_of_dependent_packages", &allow_deps);
+ 
+ 	err = 0;
+ 
+ 	for (i = 0; package_ids[i]; i++)
+ 	{
+-		pi = pk_package_id_new_from_string (package_ids[i]);
+ 		pk_backend_package (backend, PK_INFO_ENUM_REMOVING, package_ids[i], NULL);
+ 
+-		err = opkg_remove_package (opkg, pi->name, pk_opkg_progress_cb, backend);
++		parts = pk_package_id_split (package_ids[i]);
++
++		err = opkg_remove_package (parts[PK_PACKAGE_ID_NAME], pk_opkg_progress_cb, backend);
+ 
+ 		switch (err)
+ 		{
+-		case OPKG_NO_ERROR:
+-			break;
+-		case OPKG_PACKAGE_NOT_INSTALLED:
+-			pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_NOT_INSTALLED, NULL);
+-			break;
++		//case OPKG_NO_ERROR:
++		//	break;
++		//case OPKG_PACKAGE_NOT_INSTALLED:
++		//	pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_NOT_INSTALLED, NULL);
++		//	break;
+ 		default:
+ 			opkg_unknown_error (backend, err, "Remove");
+ 		}
+-		pk_package_id_free (pi);
++		g_strfreev (parts);
+ 
+ 		if (err != 0)
+ 			break;
+@@ -540,7 +539,7 @@
+ 	gint err;
+ 
+ 	/* FIXME: support only_trusted */
+-	err = opkg_upgrade_all (opkg, pk_opkg_progress_cb, backend);
++	err = opkg_upgrade_all (pk_opkg_progress_cb, backend);
+ 
+ 	if (err)
+ 		opkg_unknown_error (backend, err, "Upgrading system");
+@@ -564,29 +563,28 @@
+ static gboolean
+ backend_update_package_thread (PkBackend *backend)
+ {
+-	PkPackageId *pi;
++        gchar **parts;
+ 	gint err = 0;
+ 	const gchar *package_id;
+ 
+ 	/* FIXME: support only_trusted */
+ 	package_id = pk_backend_get_string (backend, "pkgid");
+-	pi = pk_package_id_new_from_string (package_id);
++	parts = pk_package_id_split (package_id);
+ 
+-	if (!pi->name || !pi->version)
++	if (!parts)
+ 	{
+ 		pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_NOT_FOUND,
+ 				"Package not found");
+-		pk_package_id_free (pi);
+ 		pk_backend_finished (backend);
+ 		return FALSE;
+ 	}
+ 
+-	err = opkg_upgrade_package (opkg, pi->name, pk_opkg_progress_cb, backend);
++	err = opkg_upgrade_package (parts[PK_PACKAGE_ID_NAME], pk_opkg_progress_cb, backend);
+ 	if (err)
+ 		handle_install_error (backend, err);
+ 
+ 
+-	pk_package_id_free (pi);
++	g_strfreev (parts);
+ 	pk_backend_finished (backend);
+ 	return (err != 0);
+ }
+@@ -610,13 +608,13 @@
+  */
+ 
+ static void
+-pk_opkg_list_upgradable_cb (opkg_t *_opkg, opkg_package_t *pkg, void *data)
++pk_opkg_list_upgradable_cb (pkg_t *pkg, void *data)
+ {
+-	PkBackend *backend = PK_BACKEND (data);
++	PkBackend *backend = (PkBackend*) data;
+ 	gchar *uid;
+ 	gint status;
+ 
+-	if (pkg->installed)
++	if (pkg->state_status == SS_INSTALLED)
+ 		status = PK_INFO_ENUM_INSTALLED;
+ 	else
+ 		status = PK_INFO_ENUM_AVAILABLE;
+@@ -631,7 +629,7 @@
+ static gboolean
+ backend_get_updates_thread (PkBackend *backend)
+ {
+-	opkg_list_upgradable_packages (opkg, pk_opkg_list_upgradable_cb, backend);
++	opkg_list_upgradable_packages (pk_opkg_list_upgradable_cb, backend);
+ 	pk_backend_finished (backend);
+ 	return TRUE;
+ }
+@@ -668,16 +666,18 @@
+ static gboolean
+ backend_get_details_thread (PkBackend *backend)
+ {
+-	PkPackageId *pi;
+ 	gchar **package_ids;
++        gchar **parts;
+ 	int group_index;
+ 	PkGroupEnum group = 0;
+-	opkg_package_t *pkg;
++	pkg_t *pkg;
+ 	gchar *newid;
+ 
+         package_ids = pk_backend_get_strv(backend, "package_ids");
+-	pi = pk_package_id_new_from_string (package_ids[0]);
+-	if (pi == NULL)
++	parts = pk_package_id_split (package_ids[0]);
++
++
++	if (!parts)
+ 	{
+ 		pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_ID_INVALID, "invalid package id");
+ 		pk_backend_finished (backend);
+@@ -685,8 +685,8 @@
+ 	}
+ 
+ 
+-	pkg = opkg_find_package (opkg, pi->name, pi->version, pi->arch, pi->data);
+-	pk_package_id_free (pi);
++	pkg = opkg_find_package (parts[PK_PACKAGE_ID_NAME], parts[PK_PACKAGE_ID_VERSION], parts[PK_PACKAGE_ID_ARCH], parts[PK_PACKAGE_ID_DATA]);
++	g_strfreev (parts);
+ 
+ 	if (!pkg)
+ 	{
+@@ -695,7 +695,7 @@
+ 		return FALSE;
+ 	}
+ 
+-	newid = g_strdup_printf ("%s;%s;%s;%s", pkg->name, pkg->version, pkg->architecture, pkg->repository);
++	newid = g_strdup_printf ("%s;%s;%s;%s", pkg->name, pkg->version, pkg->architecture, pkg->src->name);
+ 
+ 	if (pkg->tags) {
+ 		for (group_index = 0; group < PK_GROUP_ENUM_LAST; group_index++) {
+@@ -706,9 +706,8 @@
+ 		}
+ 	}
+ 
+-	pk_backend_details (backend, newid, NULL, group, pkg->description, pkg->url, pkg->size);
++	pk_backend_details (backend, newid, NULL, group, pkg->description, NULL, pkg->size);
+ 	g_free (newid);
+-	opkg_package_free(pkg);
+ 	pk_backend_finished (backend);
+ 	return TRUE;
+ }
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit_0.5.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit_0.5.6.bb
new file mode 100644
index 0000000..3633f29
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit_0.5.6.bb
@@ -0,0 +1,65 @@
+SUMMARY = "PackageKit package management abstraction"
+SECTION = "libs"
+LICENSE = "GPL-2.0+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+DEPENDS = "gtk+ python polkit dbus dbus-glib glib-2.0 sqlite3 opkg intltool intltool-native"
+RDEPENDS_${PN} = "opkg bash"
+
+inherit gnome pythonnative
+
+SRC_URI = "http://www.freedesktop.org/software/PackageKit/releases/PackageKit-${PV}.tar.bz2;name=archive \
+           file://configurefix.patch \
+           file://opkgfixes.patch \
+           file://0001-Don-t-call-deprecated-glib-functions-and-use-the-new.patch \
+          "
+
+SRC_URI[archive.md5sum] = "33a3127e9ed41e26671786aee9fe56ff"
+SRC_URI[archive.sha256sum] = "8dae41493dfb011442746d252b3435bf3204e17bf7c47e396f90fbd215260e14"
+
+S = "${WORKDIR}/PackageKit-${PV}"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[service-packs] = "--enable-service-packs,--disable-service-packs,libarchive"
+
+EXTRA_OECONF = "--with-security-framework=dummy \
+                --with-default-backend=opkg \
+                --enable-opkg \
+                --disable-tests \
+                --disable-ruck \
+                --disable-qt \
+                --disable-gstreamer-plugin \
+                --disable-local  \
+                --disable-networkmanager \
+                --disable-device-rebind \
+                ac_cv_path_XMLTO=no \
+"
+
+#do_configure_prepend() {
+#    mkdir -p m4
+#    echo "EXTRA_DIST=" > gtk-doc.make
+#}
+
+do_configure_append() {
+    for i in $(find . -name Makefile) ; do
+        sed -i -e s:${STAGING_DIR_NATIVE}::g \
+               -e s:/usr/bin/intltool-merge:${STAGING_BINDIR_NATIVE}/intltool-merge:g \
+               $i
+    done
+}
+
+PACKAGES =+ "${PN}-website"
+FILES_${PN}-website = "${datadir}/PackageKit/website"
+
+PACKAGES =+ "${PN}-python"
+FILES_${PN}-python = "${libdir}/python*"
+
+PACKAGES =+ "${PN}-gtkmodule"
+FILES_${PN}-gtkmodule = "${libdir}/gtk-2.0/*/*.so"
+
+FILES_${PN} += "${libdir}/packagekit-backend/*.so ${libdir}/pm-utils ${datadir}/dbus-1/system-services/ ${datadir}/PolicyKit ${datadir}/PackageKit"
+FILES_${PN}-dbg += "${libdir}/packagekit-backend/.debug/*.so ${libdir}/gtk-2.0/*/.debug"
+FILES_${PN}-dev += "${libdir}/packagekit-backend/*.la ${libdir}/gtk-2.0/*/*.la"
+FILES_${PN}-staticdev += "${libdir}/packagekit-backend/*.a ${libdir}/gtk-2.0/*/*.a"
+
+# PackageKit-0.5.6/backends/opkg/pk-backend-opkg.c:31:26: fatal error: libopkg/opkg.h: No such file or directory
+PNBLACKLIST[packagekit] ?= "BROKEN: depends on old deprecated libopkg which is currently disabled and will be removed soon"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/ipc-run_0.94.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/ipc-run_0.94.bb
new file mode 100644
index 0000000..66054a2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/ipc-run_0.94.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "\
+IPC::Run allows you run and interact with child processes \
+using files, pipes, and pseudo-ttys. Both system()-style and scripted \
+usages are supported and may be mixed. Likewise, functional and OO API \
+styles are both supported and may be mixed."
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=0ebd37caf53781e8b7223e6b99b63f4e"
+DEPENDS = "perl"
+
+SRC_URI = "git://github.com/toddr/IPC-Run.git"
+SRCREV = "6bdf41e276e06d23e140783b13a6eaef4745c216"
+
+S = "${WORKDIR}/git"
+
+inherit cpan
+
+EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}"
+
+do_compile() {
+    export LIBC="$(find ${STAGING_DIR_TARGET}/${base_libdir}/ -name 'libc-*.so')"
+    cpan_do_compile
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/libio-pty-perl_1.12.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/libio-pty-perl_1.12.bb
new file mode 100644
index 0000000..b1a95e5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/libio-pty-perl_1.12.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Perl module for pseudo tty IO"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+LIC_FILES_CHKSUM = "file://META.yml;beginline=11;endline=12;md5=b2562f94907eeb42e8ce9d45f628e587"
+
+SRC_URI = "http://www.cpan.org/modules/by-module/IO/IO-Tty-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "11695a1a516b3bd1b90ce75ff0ce3e6d"
+SRC_URI[sha256sum] = "a2ef8770d3309178203f8c8ac25e623e63cf76e97830fd3be280ade1a555290d"
+
+S = "${WORKDIR}/IO-Tty-${PV}"
+
+inherit cpan
+
+FILES_${PN}-dbg += "${libdir}/perl/vendor_perl/*/auto/IO/Tty/.debug/"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-5.6.18/change-AC_TRY_RUN-to-AC_TRY_LINK.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-5.6.18/change-AC_TRY_RUN-to-AC_TRY_LINK.patch
new file mode 100644
index 0000000..39c334f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-5.6.18/change-AC_TRY_RUN-to-AC_TRY_LINK.patch
@@ -0,0 +1,56 @@
+[PATCH] config.m4: change AC_TRY_RUN to AC_TRY_LINK
+
+Upstream-Status: Pending
+
+AC_TRY_RUN is not suitable for cross-compile
+
+Signed-off-by: Roy Li <rongqing.li@windriver.com>
+---
+ ext/fileinfo/config.m4 | 31 ++++++-------------------------
+ 1 file changed, 6 insertions(+), 25 deletions(-)
+
+diff --git a/ext/fileinfo/config.m4 b/ext/fileinfo/config.m4
+index 7e98d62..8a8ea0e 100644
+--- a/ext/fileinfo/config.m4
++++ b/ext/fileinfo/config.m4
+@@ -14,31 +14,12 @@ if test "$PHP_FILEINFO" != "no"; then
+     libmagic/readcdf.c libmagic/softmagic.c"
+ 
+   AC_MSG_CHECKING([for strcasestr])
+-  AC_TRY_RUN([
+-#include <string.h>
+-#include <strings.h>
+-#include <stdlib.h>
+-
+-int main(void)
+-{
+-        char *s0, *s1, *ret;
+-
+-        s0 = (char *) malloc(42);
+-        s1 = (char *) malloc(8);
+-
+-        memset(s0, 'X', 42);
+-        s0[24] = 'Y';
+-        s0[26] = 'Z';
+-        s0[41] = '\0';
+-        memset(s1, 'x', 8);
+-        s1[0] = 'y';
+-        s1[2] = 'Z';
+-        s1[7] = '\0';
+-
+-        ret = strcasestr(s0, s1);
+-
+-        return !(NULL != ret);
+-}
++  AC_TRY_COMPILE([
++     #include <string.h>
++     #include <strings.h>
++     #include <stdlib.h>
++  ],[
++     strcasestr(NULL, NULL);
+   ],[
+     dnl using the platform implementation
+     AC_MSG_RESULT(yes)
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php.inc b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php.inc
new file mode 100644
index 0000000..ee7a143
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php.inc
@@ -0,0 +1,272 @@
+SUMMARY = "A server-side, HTML-embedded scripting language"
+HOMEPAGE = "http://www.php.net"
+SECTION = "console/network"
+
+LICENSE = "PHP-3.0"
+
+BBCLASSEXTEND = "native"
+DEPENDS = "zlib bzip2 libxml2 virtual/libiconv php-native lemon-native \
+           openssl libmcrypt"
+DEPENDS_class-native = "zlib-native libxml2-native"
+
+SRC_URI = "http://php.net/distributions/php-${PV}.tar.bz2 \
+           file://acinclude-xml2-config.patch \
+           file://0001-php-don-t-use-broken-wrapper-for-mkdir.patch \
+           file://0001-acinclude-use-pkgconfig-for-libxml2-config.patch \
+          "
+
+SRC_URI_append_class-target += " \
+            file://iconv.patch \
+            file://imap-fix-autofoo.patch \
+            file://pear-makefile.patch \
+            file://phar-makefile.patch \
+            file://php_exec_native.patch \
+            file://php-fpm.conf \
+            file://php-fpm-apache.conf \
+            file://configure.patch \
+            file://pthread-check-threads-m4.patch \
+            file://70_mod_php5.conf \
+            file://php-fpm.service \
+          "
+S = "${WORKDIR}/php-${PV}"
+
+inherit autotools pkgconfig pythonnative gettext
+
+# phpize is not scanned for absolute paths by default (but php-config is).
+#
+SSTATE_SCAN_FILES += "phpize"
+SSTATE_SCAN_FILES += "build-defs.h"
+
+PHP_LIBDIR = "${libdir}/php5"
+
+# Common EXTRA_OECONF
+COMMON_EXTRA_OECONF = "--enable-sockets \
+                       --enable-pcntl \
+                       --enable-shared \
+                       --disable-opcache \
+                       --disable-rpath \
+                       --with-pic \
+                       --libdir=${PHP_LIBDIR} \
+"
+EXTRA_OECONF = "--enable-mbstring \
+                --enable-wddx \
+                --enable-fpm \
+                --enable-zip \
+                --with-libdir=${baselib} \
+                --with-gettext=${STAGING_LIBDIR}/.. \
+                --with-zlib=${STAGING_LIBDIR}/.. \
+                --with-iconv=${STAGING_LIBDIR}/.. \
+                --with-mcrypt=${STAGING_DIR_TARGET}${exec_prefix} \
+                --with-bz2=${STAGING_DIR_TARGET}${exec_prefix} \
+                --with-config-file-path=${sysconfdir}/php/apache2-php5 \
+                ${@base_conditional('SITEINFO_ENDIANNESS', 'le', 'ac_cv_c_bigendian_php=no', 'ac_cv_c_bigendian_php=yes', d)} \
+                ${@bb.utils.contains('PACKAGECONFIG', 'pam', '', 'ac_cv_lib_pam_pam_start=no', d)} \
+                ${COMMON_EXTRA_OECONF} \
+"
+EXTRA_OECONF_class-native = " \
+                --with-zlib=${STAGING_LIBDIR_NATIVE}/.. \
+                --without-iconv \
+                ${COMMON_EXTRA_OECONF} \
+"
+
+PACKAGECONFIG ??= "mysql sqlite3 imap \
+                   ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}"
+PACKAGECONFIG_class-native = ""
+
+PACKAGECONFIG[mysql] = "--with-mysql=${STAGING_DIR_TARGET}${prefix} \
+                        --with-mysqli=${STAGING_BINDIR_CROSS}/mysql_config \
+                        --with-pdo-mysql=${STAGING_BINDIR_CROSS}/mysql_config \
+                        ,--without-mysql --without-mysqli --without-pdo-mysql \
+                        ,mysql5"
+
+PACKAGECONFIG[sqlite3] = "--with-sqlite3=${STAGING_LIBDIR}/.. \
+                          --with-pdo-sqlite=${STAGING_LIBDIR}/.. \
+                          , \
+                          ,sqlite3"
+PACKAGECONFIG[pgsql] = "--with-pgsql=${STAGING_DIR_TARGET}${exec_prefix},--without-pgsql,postgresql"
+PACKAGECONFIG[soap] = "--enable-libxml --enable-soap, --disable-soap, libxml2"
+PACKAGECONFIG[apache2] = "--with-apxs2=${STAGING_BINDIR_CROSS}/apxs,,apache2-native apache2"
+PACKAGECONFIG[pam] = ",,libpam"
+PACKAGECONFIG[imap] = "--with-imap=${STAGING_DIR_HOST} \
+                       --with-imap-ssl=${STAGING_DIR_HOST} \
+                       ,--without-imap --without-imap-ssl \
+                       ,uw-imap"
+
+
+export PHP_NATIVE_DIR = "${STAGING_BINDIR_NATIVE}"
+export PHP_PEAR_PHP_BIN = "${STAGING_BINDIR_NATIVE}/php"
+CFLAGS += " -D_GNU_SOURCE -g -DPTYS_ARE_GETPT -DPTYS_ARE_SEARCHED -I${STAGING_INCDIR}/apache2"
+CFLAGS_append_aarch64 = " -O2"
+
+EXTRA_OEMAKE = "INSTALL_ROOT=${D}"
+
+acpaths = ""
+
+do_configure_prepend () {
+    rm -f ${S}/build/libtool.m4 ${S}/ltmain.sh ${S}/aclocal.m4
+    find ${S} -name config.m4 | xargs -n1 sed -i 's!APXS_HTTPD=.*!APXS_HTTPD=${STAGING_BINDIR_NATIVE}/httpd!'
+}
+
+do_configure_append() {
+    # No, libtool, we really don't want rpath set...
+    sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' ${HOST_SYS}-libtool
+    sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' ${HOST_SYS}-libtool
+}
+
+do_install_append_class-native() {
+    rm -rf ${D}/${PHP_LIBDIR}/php/.registry
+    rm -rf ${D}/${PHP_LIBDIR}/php/.channels
+    rm -rf ${D}/${PHP_LIBDIR}/php/.[a-z]*
+}
+
+do_install_prepend() {
+    cat aclocal-copy/libtool.m4 aclocal-copy/lt~obsolete.m4 aclocal-copy/ltoptions.m4 \
+        aclocal-copy/ltsugar.m4 aclocal-copy/ltversion.m4 > ${S}/build/libtool.m4
+}
+
+do_install_prepend_class-target() {
+    if ${@bb.utils.contains('PACKAGECONFIG', 'apache2', 'true', 'false', d)}; then
+        # Install dummy config file so apxs doesn't fail
+        install -d ${D}${sysconfdir}/apache2
+        printf "\nLoadModule dummy_module modules/mod_dummy.so\n" > ${D}${sysconfdir}/apache2/httpd.conf
+    fi
+}
+
+# fixme
+do_install_append_class-target() {
+    install -d ${D}/${sysconfdir}/
+    if [ -d ${D}/${STAGING_DIR_NATIVE}/${sysconfdir} ];then
+         mv ${D}/${STAGING_DIR_NATIVE}/${sysconfdir}/* ${D}/${sysconfdir}/
+    fi
+    rm -rf ${D}/${TMPDIR}
+    rm -rf ${D}/.registry
+    rm -rf ${D}/.channels
+    rm -rf ${D}/.[a-z]*
+    rm -rf ${D}/var
+    rm -f  ${D}/${sysconfdir}/php-fpm.conf.default
+    sed -i 's:${STAGING_DIR_NATIVE}::g' ${D}/${sysconfdir}/pear.conf
+    install -m 0644 ${WORKDIR}/php-fpm.conf ${D}/${sysconfdir}/php-fpm.conf
+    install -d ${D}/${sysconfdir}/apache2/conf.d
+    install -m 0644 ${WORKDIR}/php-fpm-apache.conf ${D}/${sysconfdir}/apache2/conf.d/php-fpm.conf
+    install -d ${D}${sysconfdir}/init.d
+    sed -i 's:=/usr/sbin:=${sbindir}:g' ${B}/sapi/fpm/init.d.php-fpm
+    sed -i 's:=/etc:=${sysconfdir}:g' ${B}/sapi/fpm/init.d.php-fpm
+    sed -i 's:=/var:=${localstatedir}:g' ${B}/sapi/fpm/init.d.php-fpm
+    install -m 0755 ${B}/sapi/fpm/init.d.php-fpm ${D}${sysconfdir}/init.d/php-fpm
+    install -m 0644 ${WORKDIR}/php-fpm-apache.conf ${D}/${sysconfdir}/apache2/conf.d/php-fpm.conf
+
+    if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)};then
+        install -d ${D}${systemd_unitdir}/system
+        install -m 0644 ${WORKDIR}/php-fpm.service ${D}${systemd_unitdir}/system/
+        sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' \
+            -e 's,@LOCALSTATEDIR@,${localstatedir},g' \
+            ${D}${systemd_unitdir}/system/php-fpm.service
+    fi
+
+    TMP=`dirname ${D}/${TMPDIR}`
+    while test ${TMP} != ${D}; do
+        if [ -d ${TMP} ]; then
+            rmdir ${TMP}
+        fi
+        TMP=`dirname ${TMP}`;
+    done
+
+    if ${@bb.utils.contains('PACKAGECONFIG', 'apache2', 'true', 'false', d)}; then
+        install -d ${D}${libdir}/apache2/modules
+        install -d ${D}${sysconfdir}/apache2/modules.d
+        install -d ${D}${sysconfdir}/php/apache2-php5
+        install -m 755  libs/libphp5.so ${D}${libdir}/apache2/modules
+        install -m 644  ${WORKDIR}/70_mod_php5.conf ${D}${sysconfdir}/apache2/modules.d
+        sed -i s,lib/,${libdir}/, ${D}${sysconfdir}/apache2/modules.d/70_mod_php5.conf
+        cat ${S}/php.ini-production | \
+            sed -e 's,extension_dir = \"\./\",extension_dir = \"/usr/lib/extensions\",' \
+            > ${D}${sysconfdir}/php/apache2-php5/php.ini
+        rm -f ${D}${sysconfdir}/apache2/httpd.conf*
+    fi
+}
+
+SYSROOT_PREPROCESS_FUNCS += "php_sysroot_preprocess"
+
+php_sysroot_preprocess () {
+    install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/
+    install -m 755 ${D}${bindir}/phpize ${SYSROOT_DESTDIR}${bindir_crossscripts}/
+    install -m 755 ${D}${bindir}/php-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/
+
+    sed -i 's!eval echo /!eval echo ${STAGING_DIR_HOST}/!' ${SYSROOT_DESTDIR}${bindir_crossscripts}/phpize
+    sed -i 's!^include_dir=.*!include_dir=${STAGING_INCDIR}/php!' ${SYSROOT_DESTDIR}${bindir_crossscripts}/php-config
+}
+
+MODPHP_PACKAGE = "${@bb.utils.contains('PACKAGECONFIG', 'apache2', '${PN}-modphp', '', d)}"
+
+PACKAGES = "${PN}-dbg ${PN}-cli ${PN}-cgi ${PN}-fpm ${PN}-fpm-apache2 ${PN}-pear ${PN}-phar ${MODPHP_PACKAGE} ${PN}-dev ${PN}-staticdev ${PN}-doc ${PN}"
+
+RDEPENDS_${PN}-pear = "${PN}"
+RDEPENDS_${PN}-phar = "${PN}-cli"
+RDEPENDS_${PN}-cli = "${PN}"
+RDEPENDS_${PN}-modphp = "${PN} apache2"
+RDEPENDS_${PN}-dev = "${PN}"
+
+INITSCRIPT_PACKAGES = "${PN}-fpm"
+inherit update-rc.d
+
+FILES_${PN}-dbg =+ "${bindir}/.debug \
+                    ${libdir}/apache2/modules/.debug"
+FILES_${PN}-doc += "${PHP_LIBDIR}/php/doc"
+FILES_${PN}-cli = "${bindir}/php"
+FILES_${PN}-phar = "${bindir}/phar*"
+FILES_${PN}-cgi = "${bindir}/php-cgi"
+FILES_${PN}-fpm = "${sbindir}/php-fpm ${sysconfdir}/php-fpm.conf ${datadir}/fpm ${sysconfdir}/init.d/php-fpm ${systemd_unitdir}/system/php-fpm.service"
+FILES_${PN}-fpm-apache2 = "${sysconfdir}/apache2/conf.d/php-fpm.conf"
+CONFFILES_${PN}-fpm = "${sysconfdir}/php-fpm.conf"
+CONFFILES_${PN}-fpm-apache2 = "${sysconfdir}/apache2/conf.d/php-fpm.conf"
+INITSCRIPT_NAME_${PN}-fpm = "php-fpm"
+INITSCRIPT_PARAMS_${PN}-fpm = "defaults 60"
+FILES_${PN}-pear = "${bindir}/pear* ${bindir}/pecl ${PHP_LIBDIR}/php/PEAR \
+                ${PHP_LIBDIR}/php/PEAR*.php ${PHP_LIBDIR}/php/System.php \
+                ${PHP_LIBDIR}/php/peclcmd.php ${PHP_LIBDIR}/php/pearcmd.php \
+                ${PHP_LIBDIR}/php/.channels ${PHP_LIBDIR}/php/.channels/.alias \
+                ${PHP_LIBDIR}/php/.registry ${PHP_LIBDIR}/php/Archive/Tar.php \
+                ${PHP_LIBDIR}/php/Console/Getopt.php ${PHP_LIBDIR}/php/OS/Guess.php \
+                ${PHP_LIBDIR}/php/data/PEAR \
+                ${sysconfdir}/pear.conf"
+FILES_${PN}-dev = "${includedir}/php ${PHP_LIBDIR}/build ${bindir}/phpize \
+                ${bindir}/php-config ${PHP_LIBDIR}/php/.depdb \
+                ${PHP_LIBDIR}/php/.depdblock ${PHP_LIBDIR}/php/.filemap \
+                ${PHP_LIBDIR}/php/.lock ${PHP_LIBDIR}/php/test"
+FILES_${PN} = "${PHP_LIBDIR}/php"
+FILES_${PN} += "${bindir}"
+
+SUMMARY_${PN}-modphp = "PHP module for the Apache HTTP server"
+FILES_${PN}-modphp = "${libdir}/apache2 ${sysconfdir}"
+
+MODPHP_OLDPACKAGE = "${@bb.utils.contains('PACKAGECONFIG', 'apache2', 'modphp', '', d)}"
+RPROVIDES_${PN}-modphp = "${MODPHP_OLDPACKAGE}"
+RREPLACES_${PN}-modphp = "${MODPHP_OLDPACKAGE}"
+RCONFLICTS_${PN}-modphp = "${MODPHP_OLDPACKAGE}"
+
+do_install_append_class-native() {
+    create_wrapper ${D}${bindir}/php \
+        PHP_PEAR_SYSCONF_DIR=${sysconfdir}/
+}
+
+SSTATEPOSTINSTFUNCS_append_class-native = " php_sstate_postinst "
+
+php_sstate_postinst() {
+    if [ "${BB_CURRENTTASK}" = "populate_sysroot_setscene" ]
+    then
+        head -n1 ${sysconfdir}/pear.conf > ${sysconfdir}/pear.tmp.conf
+        for p in `tail -n1  ${sysconfdir}/pear.conf | sed -s 's/;/ /g'`; do
+            echo $p | awk -F: 'BEGIN {OFS = ":"; ORS = ";"}{if(NF==3){print $1, length($3)-2*match($3, /^"/), $3} else {print $0}}';
+        done >> ${sysconfdir}/pear.tmp.conf
+        mv -f ${sysconfdir}/pear.tmp.conf ${sysconfdir}/pear.conf
+    fi
+}
+
+# Fails to build with thumb-1 (qemuarm)
+# | {standard input}: Assembler messages:
+# | {standard input}:3719: Error: selected processor does not support Thumb mode `smull r0,r2,r9,r3'
+# | {standard input}:3720: Error: unshifted register required -- `sub r2,r2,r0,asr#31'
+# | {standard input}:3796: Error: selected processor does not support Thumb mode `smull r0,r2,r3,r3'
+# | {standard input}:3797: Error: unshifted register required -- `sub r2,r2,r0,asr#31'
+# | make: *** [ext/standard/math.lo] Error 1
+ARM_INSTRUCTION_SET = "arm"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-acinclude-use-pkgconfig-for-libxml2-config.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-acinclude-use-pkgconfig-for-libxml2-config.patch
new file mode 100644
index 0000000..51a5e43
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-acinclude-use-pkgconfig-for-libxml2-config.patch
@@ -0,0 +1,90 @@
+From 003c9feaae6ed5c173edcea51193e49bc94ac39a Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen.kooi@linaro.org>
+Date: Tue, 17 Jun 2014 09:53:00 +0200
+Subject: [PATCH 3/8] acinclude: use pkgconfig for libxml2 config
+
+Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
+Upstream-Status: pending
+---
+ acinclude.m4 | 63 ++++++++++++++++++++++--------------------------------------
+ 1 file changed, 23 insertions(+), 40 deletions(-)
+
+diff --git a/acinclude.m4 b/acinclude.m4
+index 206fcbf..a6c0d84 100644
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -2530,48 +2530,31 @@ dnl
+ dnl Common setup macro for libxml
+ dnl
+ AC_DEFUN([PHP_SETUP_LIBXML], [
+-AC_CACHE_CHECK([for xml2-config path], ac_cv_php_xml2_config_path,
+-[
+-
+-      ac_cv_php_xml2_config_path="$PHP_LIBXML_DIR/xml2-config"
+-
++PKG_CHECK_MODULES([LIBXML], [libxml-2.0 > 2.6.11], [
++  PHP_EVAL_LIBLINE($LIBXML_LIBS, $1)
++  PHP_EVAL_INCLINE($LIBXML_CFLAGS)
++
++  dnl Check that build works with given libs
++  AC_CACHE_CHECK(whether libxml build works, php_cv_libxml_build_works, [
++    PHP_TEST_BUILD(xmlInitParser,
++    [
++      php_cv_libxml_build_works=yes
++      AC_MSG_RESULT(yes)
++    ], [
++      AC_MSG_RESULT(no)
++      AC_MSG_ERROR([build test failed.  Please check the config.log for details.])
++    ], [
++      [$]$1
++    ])
++  ])
++  if test "$php_cv_libxml_build_works" = "yes"; then
++    AC_DEFINE(HAVE_LIBXML, 1, [ ])
++  fi
++  $2
++], [
++  AC_MSG_ERROR([$LIBXML_PKG_ERRORS])
+ ])
+ 
+-  if test -x "$ac_cv_php_xml2_config_path"; then
+-    XML2_CONFIG="$ac_cv_php_xml2_config_path"
+-    libxml_full_version=`$XML2_CONFIG --version`
+-    ac_IFS=$IFS
+-    IFS="."
+-    set $libxml_full_version
+-    IFS=$ac_IFS
+-    LIBXML_VERSION=`expr [$]1 \* 1000000 + [$]2 \* 1000 + [$]3`
+-    if test "$LIBXML_VERSION" -ge "2006011"; then
+-      LIBXML_LIBS=`$XML2_CONFIG --libs`
+-      LIBXML_INCS=`$XML2_CONFIG --cflags`
+-      PHP_EVAL_LIBLINE($LIBXML_LIBS, $1)
+-      PHP_EVAL_INCLINE($LIBXML_INCS)
+-
+-      dnl Check that build works with given libs
+-      AC_CACHE_CHECK(whether libxml build works, php_cv_libxml_build_works, [
+-        PHP_TEST_BUILD(xmlInitParser,
+-        [
+-          php_cv_libxml_build_works=yes
+-        ], [
+-          AC_MSG_RESULT(no)
+-          AC_MSG_ERROR([build test failed.  Please check the config.log for details.])
+-        ], [
+-          [$]$1
+-        ])
+-      ])
+-      if test "$php_cv_libxml_build_works" = "yes"; then
+-        AC_DEFINE(HAVE_LIBXML, 1, [ ])
+-      fi
+-      $2
+-    else
+-      AC_MSG_ERROR([libxml2 version 2.6.11 or greater required.])
+-    fi
+-ifelse([$3],[],,[else $3])
+-  fi
+ ])
+ 
+ dnl -------------------------------------------------------------------------
+-- 
+1.9.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-php-don-t-use-broken-wrapper-for-mkdir.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-php-don-t-use-broken-wrapper-for-mkdir.patch
new file mode 100644
index 0000000..2f7d581
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-php-don-t-use-broken-wrapper-for-mkdir.patch
@@ -0,0 +1,26 @@
+From ebc101e0728b9db6c687cff525e5dfc8eb0edbf3 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Thu, 3 Nov 2011 14:27:15 +0100
+Subject: [PATCH 2/8] php: don't use broken wrapper for mkdir
+
+Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
+---
+
+Upstream-Status: Inappropriate
+
+ Makefile.global | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.global b/Makefile.global
+index ff858c2..ae554b4 100644
+--- a/Makefile.global
++++ b/Makefile.global
+@@ -1,4 +1,4 @@
+-mkinstalldirs = $(top_srcdir)/build/shtool mkdir -p
++mkinstalldirs = mkdir -p
+ INSTALL = $(top_srcdir)/build/shtool install -c
+ INSTALL_DATA = $(INSTALL) -m 644
+ 
+-- 
+1.9.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/70_mod_php5.conf b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/70_mod_php5.conf
new file mode 100644
index 0000000..1de6fb1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/70_mod_php5.conf
@@ -0,0 +1,12 @@
+# vim: ft=apache sw=4 ts=4
+<IfDefine PHP5>
+	# Load the module first
+	<IfModule !sapi_apache2.c>
+		LoadModule php5_module    lib/apache2/modules/libphp5.so
+	</IfModule>
+
+	# Set it to handle the files
+	AddHandler php5-script .php .phtml .php3 .php4 .php5
+	AddType application/x-httpd-php-source .phps
+	DirectoryIndex index.html index.html.var index.php index.phtml
+</IfDefine>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/acinclude-xml2-config.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/acinclude-xml2-config.patch
new file mode 100644
index 0000000..30811a7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/acinclude-xml2-config.patch
@@ -0,0 +1,25 @@
+Upstream-status: Unknown
+
+diff --git a/acinclude.m4 b/acinclude.m4
+index 4fd452e..206fcbf 100644
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -2532,12 +2532,9 @@ dnl
+ AC_DEFUN([PHP_SETUP_LIBXML], [
+ AC_CACHE_CHECK([for xml2-config path], ac_cv_php_xml2_config_path,
+ [
+-  for i in $PHP_LIBXML_DIR /usr/local /usr; do
+-    if test -x "$i/bin/xml2-config"; then
+-      ac_cv_php_xml2_config_path="$i/bin/xml2-config"
+-      break
+-    fi
+-  done
++
++      ac_cv_php_xml2_config_path="$PHP_LIBXML_DIR/xml2-config"
++
+ ])
+ 
+   if test -x "$ac_cv_php_xml2_config_path"; then
+-- 
+1.9.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/configure.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/configure.patch
new file mode 100644
index 0000000..c5334c7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/configure.patch
@@ -0,0 +1,11 @@
+--- php-5.1.6/configure.old	2006-09-12 07:54:14.000000000 -0700
++++ php-5.1.6/configure	2006-09-12 07:54:37.000000000 -0700
+@@ -14715,8 +14715,6 @@
+ 
+ 
+ 
+-  unset ac_cv_func_dlopen
+-  unset ac_cv_func___dlopen
+   unset found
+   
+   echo $ac_n "checking for dlopen""... $ac_c" 1>&6
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/iconv.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/iconv.patch
new file mode 100644
index 0000000..255fbb0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/iconv.patch
@@ -0,0 +1,32 @@
+Upstream-status: Unknown
+
+diff --git a/acinclude.m4 b/acinclude.m4
+index a6c0d84..df11abd 100644
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -2452,7 +2452,8 @@ AC_DEFUN([PHP_SETUP_ICONV], [
+   dnl Check libc first if no path is provided in --with-iconv
+   dnl
+ 
+-  if test "$PHP_ICONV" = "yes"; then
++  dnl must check against no, not against yes as PHP_ICONV can also include a path, which implies yes
++  if test "$PHP_ICONV" != "no"; then
+     dnl Reset LIBS temporarily as it may have already been included
+     dnl -liconv in.
+     LIBS_save="$LIBS"
+diff --git a/ext/iconv/config.m4 b/ext/iconv/config.m4
+index d673b0a..1fbef13 100644
+--- a/ext/iconv/config.m4
++++ b/ext/iconv/config.m4
+@@ -15,7 +15,7 @@ if test "$PHP_ICONV" != "no"; then
+ 
+   if test "$iconv_avail" != "no"; then
+     if test -z "$ICONV_DIR"; then
+-      for i in /usr/local /usr; do
++      for i in $PHP_ICONV /usr/local /usr; do
+         if test -f "$i/include/iconv.h" || test -f "$i/include/giconv.h"; then
+           PHP_ICONV_PREFIX="$i"
+           break
+-- 
+1.9.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/imap-fix-autofoo.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/imap-fix-autofoo.patch
new file mode 100644
index 0000000..da04c2d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/imap-fix-autofoo.patch
@@ -0,0 +1,46 @@
+Upstream-status: Unknown
+
+diff --git a/acinclude.m4 b/acinclude.m4
+index df11abd..06e7236 100644
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -2357,7 +2357,7 @@ AC_DEFUN([PHP_SETUP_OPENSSL],[
+       PHP_OPENSSL_DIR="/usr/local/ssl /usr/local /usr /usr/local/openssl"
+     fi
+ 
+-    for i in $PHP_OPENSSL_DIR; do
++    for i in $PHP_OPENSSL_DIR $PHP_OPENSSL_DIR/usr; do
+       if test -r $i/include/openssl/evp.h; then
+         OPENSSL_INCDIR=$i/include
+       fi
+diff --git a/ext/imap/config.m4 b/ext/imap/config.m4
+index 3fcf674..f08caf7 100644
+--- a/ext/imap/config.m4
++++ b/ext/imap/config.m4
+@@ -109,7 +109,7 @@ if test "$PHP_IMAP" != "no"; then
+     PHP_NEW_EXTENSION(imap, php_imap.c, $ext_shared)
+     AC_DEFINE(HAVE_IMAP,1,[ ])
+ 
+-    for i in $PHP_IMAP /usr/local /usr; do
++    for i in $PHP_IMAP $PHP_IMAP/usr /usr/local /usr; do
+       IMAP_INC_CHK()
+       el[]IMAP_INC_CHK(/include/c-client)
+       el[]IMAP_INC_CHK(/include/imap)
+@@ -198,13 +198,7 @@ if test "$PHP_IMAP" != "no"; then
+       AC_MSG_ERROR(Cannot find rfc822.h. Please check your c-client installation.)
+     fi
+ 
+-    if test ! -r "$IMAP_DIR/c-client/libc-client.a" && test -r "$IMAP_DIR/c-client/c-client.a" ; then
+-      ln -s "$IMAP_DIR/c-client/c-client.a" "$IMAP_DIR/c-client/libc-client.a" >/dev/null 2>&1
+-    elif test ! -r "$IMAP_DIR/$PHP_LIBDIR/libc-client.a" && test -r "$IMAP_DIR/$PHP_LIBDIR/c-client.a"; then
+-      ln -s "$IMAP_DIR/$PHP_LIBDIR/c-client.a" "$IMAP_DIR/$PHP_LIBDIR/libc-client.a" >/dev/null 2>&1
+-    fi
+-
+-    for lib in c-client4 c-client imap; do
++    for lib in /usr/lib c-client4 c-client imap; do
+       IMAP_LIB=$lib
+       IMAP_LIB_CHK($PHP_LIBDIR)
+       IMAP_LIB_CHK(c-client)
+-- 
+1.9.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/pear-makefile.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/pear-makefile.patch
new file mode 100644
index 0000000..9927d2d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/pear-makefile.patch
@@ -0,0 +1,18 @@
+Upstream-status: Unknown
+
+diff --git a/pear/Makefile.frag b/pear/Makefile.frag
+index 00bacae..739eeca 100644
+--- a/pear/Makefile.frag
++++ b/pear/Makefile.frag
+@@ -11,7 +11,7 @@ PEAR_PREFIX = -dp a${program_prefix}
+ PEAR_SUFFIX = -ds a$(program_suffix)
+ 
+ install-pear-installer: $(SAPI_CLI_PATH)
+-	@$(top_builddir)/sapi/cli/php $(PEAR_INSTALL_FLAGS) pear/install-pear-nozlib.phar -d "$(peardir)" -b "$(bindir)" ${PEAR_PREFIX} ${PEAR_SUFFIX}
++	@$(PHP_NATIVE_DIR)/php $(PEAR_INSTALL_FLAGS) $(builddir)/install-pear-nozlib.phar -d "$(peardir)" -b "$(bindir)" ${PEAR_PREFIX} ${PEAR_SUFFIX}
+ 
+ install-pear:
+ 	@echo "Installing PEAR environment:      $(INSTALL_ROOT)$(peardir)/"
+-- 
+1.9.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/phar-makefile.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/phar-makefile.patch
new file mode 100644
index 0000000..2f7fe34
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/phar-makefile.patch
@@ -0,0 +1,35 @@
+Fix phar packaging
+
+Inherited from OE-Classic, with some additions to fix host paths leaking
+into the target package.
+
+Upstream-Status: Inappropriate [config]
+
+diff --git a/ext/phar/Makefile.frag b/ext/phar/Makefile.frag
+index 6516ddf..36e6cf4 100644
+--- a/ext/phar/Makefile.frag
++++ b/ext/phar/Makefile.frag
+@@ -5,20 +5,9 @@ pharcmd: $(builddir)/phar.php $(builddir)/phar.phar
+ 
+ PHP_PHARCMD_SETTINGS = -d 'open_basedir=' -d 'output_buffering=0' -d 'memory_limit=-1' -d phar.readonly=0 -d 'safe_mode=0'
+ PHP_PHARCMD_EXECUTABLE = ` \
+-	if test -x "$(top_builddir)/$(SAPI_CLI_PATH)"; then \
+-		$(top_srcdir)/build/shtool echo -n -- "$(top_builddir)/$(SAPI_CLI_PATH) -n"; \
+-		if test "x$(PHP_MODULES)" != "x"; then \
+-		$(top_srcdir)/build/shtool echo -n -- " -d extension_dir=$(top_builddir)/modules"; \
+-		for i in bz2 zlib phar; do \
+-			if test -f "$(top_builddir)/modules/$$i.la"; then \
+-				. $(top_builddir)/modules/$$i.la; $(top_srcdir)/build/shtool echo -n -- " -d extension=$$dlname"; \
+-			fi; \
+-		done; \
+-		fi; \
+-	else \
+-		$(top_srcdir)/build/shtool echo -n -- "$(PHP_EXECUTABLE)"; \
+-	fi;`
+-PHP_PHARCMD_BANG = `$(top_srcdir)/build/shtool echo -n -- "$(INSTALL_ROOT)$(bindir)/$(program_prefix)php$(program_suffix)$(EXEEXT)";`
++		$(top_srcdir)/build/shtool echo -n -- "$(PHP_EXECUTABLE)"; `
++
++PHP_PHARCMD_BANG = `$(top_srcdir)/build/shtool echo -n -- "$(bindir)/$(program_prefix)php$(program_suffix)$(EXEEXT)";`
+ 
+ $(builddir)/phar/phar.inc: $(srcdir)/phar/phar.inc
+ 	-@test -d $(builddir)/phar || mkdir $(builddir)/phar
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php-fpm-apache.conf b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php-fpm-apache.conf
new file mode 100644
index 0000000..77cdd82
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php-fpm-apache.conf
@@ -0,0 +1,6 @@
+# Taken from http://wiki.apache.org/httpd/PHP-FPM
+
+LoadModule proxy_module      lib/apache2/modules/mod_proxy.so
+LoadModule proxy_fcgi_module lib/apache2/modules/mod_proxy_fcgi.so
+
+ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/usr/share/apache2/htdocs/
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php-fpm.conf b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php-fpm.conf
new file mode 100644
index 0000000..21e3dfb
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php-fpm.conf
@@ -0,0 +1,510 @@
+;;;;;;;;;;;;;;;;;;;;;
+; FPM Configuration ;
+;;;;;;;;;;;;;;;;;;;;;
+
+; All relative paths in this configuration file are relative to PHP's install
+; prefix (/usr). This prefix can be dynamicaly changed by using the
+; '-p' argument from the command line.
+
+; Include one or more files. If glob(3) exists, it is used to include a bunch of
+; files from a glob(3) pattern. This directive can be used everywhere in the
+; file.
+; Relative path can also be used. They will be prefixed by:
+;  - the global prefix if it's been set (-p arguement)
+;  - /usr otherwise
+;include=etc/fpm.d/*.conf
+
+;;;;;;;;;;;;;;;;;;
+; Global Options ;
+;;;;;;;;;;;;;;;;;;
+
+[global]
+; Pid file
+; Note: the default prefix is /var
+; Default Value: none
+;pid = run/php-fpm.pid
+
+; Error log file
+; If it's set to "syslog", log is sent to syslogd instead of being written
+; in a local file.
+; Note: the default prefix is /var
+; Default Value: log/php-fpm.log
+;error_log = log/php-fpm.log
+
+; syslog_facility is used to specify what type of program is logging the
+; message. This lets syslogd specify that messages from different facilities
+; will be handled differently.
+; See syslog(3) for possible values (ex daemon equiv LOG_DAEMON)
+; Default Value: daemon
+;syslog.facility = daemon
+
+; syslog_ident is prepended to every message. If you have multiple FPM
+; instances running on the same server, you can change the default value
+; which must suit common needs.
+; Default Value: php-fpm
+;syslog.ident = php-fpm
+
+; Log level
+; Possible Values: alert, error, warning, notice, debug
+; Default Value: notice
+;log_level = notice
+
+; If this number of child processes exit with SIGSEGV or SIGBUS within the time
+; interval set by emergency_restart_interval then FPM will restart. A value
+; of '0' means 'Off'.
+; Default Value: 0
+;emergency_restart_threshold = 0
+
+; Interval of time used by emergency_restart_interval to determine when 
+; a graceful restart will be initiated.  This can be useful to work around
+; accidental corruptions in an accelerator's shared memory.
+; Available Units: s(econds), m(inutes), h(ours), or d(ays)
+; Default Unit: seconds
+; Default Value: 0
+;emergency_restart_interval = 0
+
+; Time limit for child processes to wait for a reaction on signals from master.
+; Available units: s(econds), m(inutes), h(ours), or d(ays)
+; Default Unit: seconds
+; Default Value: 0
+;process_control_timeout = 0
+
+; The maximum number of processes FPM will fork. This has been design to control
+; the global number of processes when using dynamic PM within a lot of pools.
+; Use it with caution.
+; Note: A value of 0 indicates no limit
+; Default Value: 0
+; process.max = 128
+
+; Specify the nice(2) priority to apply to the master process (only if set)
+; The value can vary from -19 (highest priority) to 20 (lower priority)
+; Note: - It will only work if the FPM master process is launched as root
+;       - The pool process will inherit the master process priority
+;         unless it specified otherwise
+; Default Value: no set
+; process.priority = -19
+
+; Send FPM to background. Set to 'no' to keep FPM in foreground for debugging.
+; Default Value: yes
+;daemonize = yes
+ 
+; Set open file descriptor rlimit for the master process.
+; Default Value: system defined value
+;rlimit_files = 1024
+ 
+; Set max core size rlimit for the master process.
+; Possible Values: 'unlimited' or an integer greater or equal to 0
+; Default Value: system defined value
+;rlimit_core = 0
+
+; Specify the event mechanism FPM will use. The following is available:
+; - select     (any POSIX os)
+; - poll       (any POSIX os)
+; - epoll      (linux >= 2.5.44)
+; - kqueue     (FreeBSD >= 4.1, OpenBSD >= 2.9, NetBSD >= 2.0)
+; - /dev/poll  (Solaris >= 7)
+; - port       (Solaris >= 10)
+; Default Value: not set (auto detection)
+; events.mechanism = epoll
+
+;;;;;;;;;;;;;;;;;;;;
+; Pool Definitions ; 
+;;;;;;;;;;;;;;;;;;;;
+
+; Multiple pools of child processes may be started with different listening
+; ports and different management options.  The name of the pool will be
+; used in logs and stats. There is no limitation on the number of pools which
+; FPM can handle. Your system will tell you anyway :)
+
+; Start a new pool named 'www'.
+; the variable $pool can we used in any directive and will be replaced by the
+; pool name ('www' here)
+[www]
+
+; Per pool prefix
+; It only applies on the following directives:
+; - 'slowlog'
+; - 'listen' (unixsocket)
+; - 'chroot'
+; - 'chdir'
+; - 'php_values'
+; - 'php_admin_values'
+; When not set, the global prefix (or /usr) applies instead.
+; Note: This directive can also be relative to the global prefix.
+; Default Value: none
+;prefix = /path/to/pools/$pool
+
+; Unix user/group of processes
+; Note: The user is mandatory. If the group is not set, the default user's group
+;       will be used.
+user = nobody
+;group = nobody
+
+; The address on which to accept FastCGI requests.
+; Valid syntaxes are:
+;   'ip.add.re.ss:port'    - to listen on a TCP socket to a specific address on
+;                            a specific port;
+;   'port'                 - to listen on a TCP socket to all addresses on a
+;                            specific port;
+;   '/path/to/unix/socket' - to listen on a unix socket.
+; Note: This value is mandatory.
+listen = 127.0.0.1:9000
+
+; Set listen(2) backlog. A value of '-1' means unlimited.
+; Default Value: 128 (-1 on FreeBSD and OpenBSD)
+;listen.backlog = -1
+
+; Set permissions for unix socket, if one is used. In Linux, read/write
+; permissions must be set in order to allow connections from a web server. Many
+; BSD-derived systems allow connections regardless of permissions. 
+; Default Values: user and group are set as the running user
+;                 mode is set to 0666
+;listen.owner = nobody
+;listen.group = nobody
+;listen.mode = 0666
+ 
+; List of ipv4 addresses of FastCGI clients which are allowed to connect.
+; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original
+; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address
+; must be separated by a comma. If this value is left blank, connections will be
+; accepted from any ip address.
+; Default Value: any
+;listen.allowed_clients = 127.0.0.1
+
+; Specify the nice(2) priority to apply to the pool processes (only if set)
+; The value can vary from -19 (highest priority) to 20 (lower priority)
+; Note: - It will only work if the FPM master process is launched as root
+;       - The pool processes will inherit the master process priority
+;         unless it specified otherwise
+; Default Value: no set
+; priority = -19
+
+; Choose how the process manager will control the number of child processes.
+; Possible Values:
+;   static  - a fixed number (pm.max_children) of child processes;
+;   dynamic - the number of child processes are set dynamically based on the
+;             following directives. With this process management, there will be
+;             always at least 1 children.
+;             pm.max_children      - the maximum number of children that can
+;                                    be alive at the same time.
+;             pm.start_servers     - the number of children created on startup.
+;             pm.min_spare_servers - the minimum number of children in 'idle'
+;                                    state (waiting to process). If the number
+;                                    of 'idle' processes is less than this
+;                                    number then some children will be created.
+;             pm.max_spare_servers - the maximum number of children in 'idle'
+;                                    state (waiting to process). If the number
+;                                    of 'idle' processes is greater than this
+;                                    number then some children will be killed.
+;  ondemand - no children are created at startup. Children will be forked when
+;             new requests will connect. The following parameter are used:
+;             pm.max_children           - the maximum number of children that
+;                                         can be alive at the same time.
+;             pm.process_idle_timeout   - The number of seconds after which
+;                                         an idle process will be killed.
+; Note: This value is mandatory.
+pm = dynamic
+
+; The number of child processes to be created when pm is set to 'static' and the
+; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'.
+; This value sets the limit on the number of simultaneous requests that will be
+; served. Equivalent to the ApacheMaxClients directive with mpm_prefork.
+; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP
+; CGI. The below defaults are based on a server without much resources. Don't
+; forget to tweak pm.* to fit your needs.
+; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand'
+; Note: This value is mandatory.
+pm.max_children = 5
+
+; The number of child processes created on startup.
+; Note: Used only when pm is set to 'dynamic'
+; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
+pm.start_servers = 2
+
+; The desired minimum number of idle server processes.
+; Note: Used only when pm is set to 'dynamic'
+; Note: Mandatory when pm is set to 'dynamic'
+pm.min_spare_servers = 1
+
+; The desired maximum number of idle server processes.
+; Note: Used only when pm is set to 'dynamic'
+; Note: Mandatory when pm is set to 'dynamic'
+pm.max_spare_servers = 3
+
+; The number of seconds after which an idle process will be killed.
+; Note: Used only when pm is set to 'ondemand'
+; Default Value: 10s
+;pm.process_idle_timeout = 10s;
+ 
+; The number of requests each child process should execute before respawning.
+; This can be useful to work around memory leaks in 3rd party libraries. For
+; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
+; Default Value: 0
+;pm.max_requests = 500
+
+; The URI to view the FPM status page. If this value is not set, no URI will be
+; recognized as a status page. It shows the following informations:
+;   pool                 - the name of the pool;
+;   process manager      - static, dynamic or ondemand;
+;   start time           - the date and time FPM has started;
+;   start since          - number of seconds since FPM has started;
+;   accepted conn        - the number of request accepted by the pool;
+;   listen queue         - the number of request in the queue of pending
+;                          connections (see backlog in listen(2));
+;   max listen queue     - the maximum number of requests in the queue
+;                          of pending connections since FPM has started;
+;   listen queue len     - the size of the socket queue of pending connections;
+;   idle processes       - the number of idle processes;
+;   active processes     - the number of active processes;
+;   total processes      - the number of idle + active processes;
+;   max active processes - the maximum number of active processes since FPM
+;                          has started;
+;   max children reached - number of times, the process limit has been reached,
+;                          when pm tries to start more children (works only for
+;                          pm 'dynamic' and 'ondemand');
+; Value are updated in real time.
+; Example output:
+;   pool:                 www
+;   process manager:      static
+;   start time:           01/Jul/2011:17:53:49 +0200
+;   start since:          62636
+;   accepted conn:        190460
+;   listen queue:         0
+;   max listen queue:     1
+;   listen queue len:     42
+;   idle processes:       4
+;   active processes:     11
+;   total processes:      15
+;   max active processes: 12
+;   max children reached: 0
+;
+; By default the status page output is formatted as text/plain. Passing either
+; 'html', 'xml' or 'json' in the query string will return the corresponding
+; output syntax. Example:
+;   http://www.foo.bar/status
+;   http://www.foo.bar/status?json
+;   http://www.foo.bar/status?html
+;   http://www.foo.bar/status?xml
+;
+; By default the status page only outputs short status. Passing 'full' in the
+; query string will also return status for each pool process.
+; Example: 
+;   http://www.foo.bar/status?full
+;   http://www.foo.bar/status?json&full
+;   http://www.foo.bar/status?html&full
+;   http://www.foo.bar/status?xml&full
+; The Full status returns for each process:
+;   pid                  - the PID of the process;
+;   state                - the state of the process (Idle, Running, ...);
+;   start time           - the date and time the process has started;
+;   start since          - the number of seconds since the process has started;
+;   requests             - the number of requests the process has served;
+;   request duration     - the duration in µs of the requests;
+;   request method       - the request method (GET, POST, ...);
+;   request URI          - the request URI with the query string;
+;   content length       - the content length of the request (only with POST);
+;   user                 - the user (PHP_AUTH_USER) (or '-' if not set);
+;   script               - the main script called (or '-' if not set);
+;   last request cpu     - the %cpu the last request consumed
+;                          it's always 0 if the process is not in Idle state
+;                          because CPU calculation is done when the request
+;                          processing has terminated;
+;   last request memory  - the max amount of memory the last request consumed
+;                          it's always 0 if the process is not in Idle state
+;                          because memory calculation is done when the request
+;                          processing has terminated;
+; If the process is in Idle state, then informations are related to the
+; last request the process has served. Otherwise informations are related to
+; the current request being served.
+; Example output:
+;   ************************
+;   pid:                  31330
+;   state:                Running
+;   start time:           01/Jul/2011:17:53:49 +0200
+;   start since:          63087
+;   requests:             12808
+;   request duration:     1250261
+;   request method:       GET
+;   request URI:          /test_mem.php?N=10000
+;   content length:       0
+;   user:                 -
+;   script:               /home/fat/web/docs/php/test_mem.php
+;   last request cpu:     0.00
+;   last request memory:  0
+;
+; Note: There is a real-time FPM status monitoring sample web page available
+;       It's available in: /usr/share/fpm/status.html
+;
+; Note: The value must start with a leading slash (/). The value can be
+;       anything, but it may not be a good idea to use the .php extension or it
+;       may conflict with a real PHP file.
+; Default Value: not set 
+;pm.status_path = /status
+ 
+; The ping URI to call the monitoring page of FPM. If this value is not set, no
+; URI will be recognized as a ping page. This could be used to test from outside
+; that FPM is alive and responding, or to
+; - create a graph of FPM availability (rrd or such);
+; - remove a server from a group if it is not responding (load balancing);
+; - trigger alerts for the operating team (24/7).
+; Note: The value must start with a leading slash (/). The value can be
+;       anything, but it may not be a good idea to use the .php extension or it
+;       may conflict with a real PHP file.
+; Default Value: not set
+;ping.path = /ping
+
+; This directive may be used to customize the response of a ping request. The
+; response is formatted as text/plain with a 200 response code.
+; Default Value: pong
+;ping.response = pong
+
+; The access log file
+; Default: not set
+;access.log = log/$pool.access.log
+
+; The access log format.
+; The following syntax is allowed
+;  %%: the '%' character
+;  %C: %CPU used by the request
+;      it can accept the following format:
+;      - %{user}C for user CPU only
+;      - %{system}C for system CPU only
+;      - %{total}C  for user + system CPU (default)
+;  %d: time taken to serve the request
+;      it can accept the following format:
+;      - %{seconds}d (default)
+;      - %{miliseconds}d
+;      - %{mili}d
+;      - %{microseconds}d
+;      - %{micro}d
+;  %e: an environment variable (same as $_ENV or $_SERVER)
+;      it must be associated with embraces to specify the name of the env
+;      variable. Some exemples:
+;      - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e
+;      - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e
+;  %f: script filename
+;  %l: content-length of the request (for POST request only)
+;  %m: request method
+;  %M: peak of memory allocated by PHP
+;      it can accept the following format:
+;      - %{bytes}M (default)
+;      - %{kilobytes}M
+;      - %{kilo}M
+;      - %{megabytes}M
+;      - %{mega}M
+;  %n: pool name
+;  %o: ouput header
+;      it must be associated with embraces to specify the name of the header:
+;      - %{Content-Type}o
+;      - %{X-Powered-By}o
+;      - %{Transfert-Encoding}o
+;      - ....
+;  %p: PID of the child that serviced the request
+;  %P: PID of the parent of the child that serviced the request
+;  %q: the query string 
+;  %Q: the '?' character if query string exists
+;  %r: the request URI (without the query string, see %q and %Q)
+;  %R: remote IP address
+;  %s: status (response code)
+;  %t: server time the request was received
+;      it can accept a strftime(3) format:
+;      %d/%b/%Y:%H:%M:%S %z (default)
+;  %T: time the log has been written (the request has finished)
+;      it can accept a strftime(3) format:
+;      %d/%b/%Y:%H:%M:%S %z (default)
+;  %u: remote user
+;
+; Default: "%R - %u %t \"%m %r\" %s"
+;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%"
+ 
+; The log file for slow requests
+; Default Value: not set
+; Note: slowlog is mandatory if request_slowlog_timeout is set
+;slowlog = log/$pool.log.slow
+ 
+; The timeout for serving a single request after which a PHP backtrace will be
+; dumped to the 'slowlog' file. A value of '0s' means 'off'.
+; Available units: s(econds)(default), m(inutes), h(ours), or d(ays)
+; Default Value: 0
+;request_slowlog_timeout = 0
+ 
+; The timeout for serving a single request after which the worker process will
+; be killed. This option should be used when the 'max_execution_time' ini option
+; does not stop script execution for some reason. A value of '0' means 'off'.
+; Available units: s(econds)(default), m(inutes), h(ours), or d(ays)
+; Default Value: 0
+;request_terminate_timeout = 0
+ 
+; Set open file descriptor rlimit.
+; Default Value: system defined value
+;rlimit_files = 1024
+ 
+; Set max core size rlimit.
+; Possible Values: 'unlimited' or an integer greater or equal to 0
+; Default Value: system defined value
+;rlimit_core = 0
+ 
+; Chroot to this directory at the start. This value must be defined as an
+; absolute path. When this value is not set, chroot is not used.
+; Note: you can prefix with '$prefix' to chroot to the pool prefix or one
+; of its subdirectories. If the pool prefix is not set, the global prefix
+; will be used instead.
+; Note: chrooting is a great security feature and should be used whenever 
+;       possible. However, all PHP paths will be relative to the chroot
+;       (error_log, sessions.save_path, ...).
+; Default Value: not set
+;chroot = 
+ 
+; Chdir to this directory at the start.
+; Note: relative path can be used.
+; Default Value: current directory or / when chroot
+;chdir = /var/www
+ 
+; Redirect worker stdout and stderr into main error log. If not set, stdout and
+; stderr will be redirected to /dev/null according to FastCGI specs.
+; Note: on highloaded environement, this can cause some delay in the page
+; process time (several ms).
+; Default Value: no
+;catch_workers_output = yes
+
+; Limits the extensions of the main script FPM will allow to parse. This can
+; prevent configuration mistakes on the web server side. You should only limit
+; FPM to .php extensions to prevent malicious users to use other extensions to
+; exectute php code.
+; Note: set an empty value to allow all extensions.
+; Default Value: .php
+;security.limit_extensions = .php .php3 .php4 .php5
+ 
+; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from
+; the current environment.
+; Default Value: clean env
+;env[HOSTNAME] = $HOSTNAME
+;env[PATH] = /usr/local/bin:/usr/bin:/bin
+;env[TMP] = /tmp
+;env[TMPDIR] = /tmp
+;env[TEMP] = /tmp
+
+; Additional php.ini defines, specific to this pool of workers. These settings
+; overwrite the values previously defined in the php.ini. The directives are the
+; same as the PHP SAPI:
+;   php_value/php_flag             - you can set classic ini defines which can
+;                                    be overwritten from PHP call 'ini_set'. 
+;   php_admin_value/php_admin_flag - these directives won't be overwritten by
+;                                     PHP call 'ini_set'
+; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no.
+
+; Defining 'extension' will load the corresponding shared extension from
+; extension_dir. Defining 'disable_functions' or 'disable_classes' will not
+; overwrite previously defined php.ini values, but will append the new value
+; instead.
+
+; Note: path INI options can be relative and will be expanded with the prefix
+; (pool, global or /usr)
+
+; Default Value: nothing is defined by default except the values in php.ini and
+;                specified at startup with the -d argument
+;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com
+;php_flag[display_errors] = off
+;php_admin_value[error_log] = /var/log/fpm-php.www.log
+;php_admin_flag[log_errors] = on
+;php_admin_value[memory_limit] = 32M
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php-fpm.service b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php-fpm.service
new file mode 100644
index 0000000..ac79dc9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php-fpm.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=PHP-FPM
+After=network.target
+[Service]
+Type=forking
+PIDFile=@LOCALSTATEDIR@/run/php-fpm.pid
+ExecStart=@SYSCONFDIR@/init.d/php-fpm start
+ExecStop=@SYSCONFDIR@/init.d/php-fpm stop
+[Install]
+WantedBy=multi-user.target
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php_exec_native.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php_exec_native.patch
new file mode 100644
index 0000000..0506bdd
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php_exec_native.patch
@@ -0,0 +1,18 @@
+Upstream-status: Inappriate
+
+diff --git a/sapi/cli/config.m4 b/sapi/cli/config.m4
+index cdfa1f7..0fe11e3 100644
+--- a/sapi/cli/config.m4
++++ b/sapi/cli/config.m4
+@@ -36,7 +36,7 @@ if test "$PHP_CLI" != "no"; then
+   esac
+ 
+   dnl Set executable for tests
+-  PHP_EXECUTABLE="\$(top_builddir)/\$(SAPI_CLI_PATH)"
++  PHP_EXECUTABLE="${PHP_NATIVE_DIR}/php"
+   PHP_SUBST(PHP_EXECUTABLE)
+ 
+   dnl Expose to Makefile
+-- 
+1.9.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/pthread-check-threads-m4.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/pthread-check-threads-m4.patch
new file mode 100644
index 0000000..0c564cd
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/pthread-check-threads-m4.patch
@@ -0,0 +1,30 @@
+From d8067ceacbf54e79c9c6b68675332c09eaa0b55d Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Mon, 8 Apr 2013 14:29:51 +0800
+Subject: [PATCH] pthread-check
+
+Enable pthreads support when cross-compiling
+
+Upstream-Status: Inapproprate [config]
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+---
+ TSRM/threads.m4 |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/TSRM/threads.m4 b/TSRM/threads.m4
+index 38494ce..15d9454 100644
+--- a/TSRM/threads.m4
++++ b/TSRM/threads.m4
+@@ -86,7 +86,7 @@ int main() {
+   pthreads_working=no
+   ], [
+   dnl For cross compiling running this test is of no use. NetWare supports pthreads
+-  pthreads_working=no
++  pthreads_working=yes
+   case $host_alias in
+   *netware*)
+     pthreads_working=yes
+-- 
+1.7.4.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_5.5.32.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_5.5.32.bb
new file mode 100644
index 0000000..4ee3c38
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_5.5.32.bb
@@ -0,0 +1,6 @@
+require php.inc
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=464ca70af214d2407f6b7d4458158afd"
+
+SRC_URI[md5sum] = "47443f39152d671d24bc839e6a49049d"
+SRC_URI[sha256sum] = "b0f2c108db8e05db9f6366aaba9a754fd0ee31f3f86ee889561b608dfd6e92ee"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.18.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.18.bb
new file mode 100644
index 0000000..2ce012f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.18.bb
@@ -0,0 +1,7 @@
+require php.inc
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b602636d46a61c0ac0432bbf5c078fe4"
+
+SRC_URI += "file://change-AC_TRY_RUN-to-AC_TRY_LINK.patch"
+SRC_URI[md5sum] = "7340353bedd998286ba2c4d87d7864f8"
+SRC_URI[sha256sum] = "c3cd4a29a9562309d36e2b128407d6eaa5c7dde590d2b1a464457383e517f4ed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/pm-qa/pm-qa_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/pm-qa/pm-qa_git.bb
new file mode 100644
index 0000000..7322df8
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/pm-qa/pm-qa_git.bb
@@ -0,0 +1,66 @@
+DESCRIPTION = "Utilities for testing Power Management"
+HOMEPAGE = "https://wiki.linaro.org/WorkingGroups/PowerManagement/Resources/TestSuite/PmQa"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+PV = "0.4.14"
+
+BRANCH ?= "master"
+
+# Corresponds to tag pm-qa-v0.4.14
+SRCREV = "9111d1930f02337394cf16e84ad2a27f33607cbb"
+
+SRC_URI = "git://git.linaro.org/power/pm-qa.git;protocol=git;branch=${BRANCH}"
+
+S = "${WORKDIR}/git"
+
+CFLAGS += "-pthread"
+
+do_compile () {
+    # Find all the .c files in this project and build them.
+    for x in `find . -name "*.c"`
+    do
+        util=`echo ${x} | sed s/.c$//`
+        oe_runmake ${util}
+    done
+}
+
+do_install () {
+    install -d ${D}${bindir}
+    install -d ${D}${libdir}/${BPN}
+
+    # Install the compiled binaries that were built in the previous step
+    for x in `find . -name "*.c"`
+    do
+        util=`echo ${x} | sed s/.c$//`
+        util_basename=`basename ${util}`
+        install -m 0755 ${util} ${D}${bindir}/${util_basename}
+    done
+
+    # Install the helper scripts in a subdirectory of $libdir
+    for script in `find . -name "*.sh" | grep include`
+    do
+        # Remove hardcoded relative paths
+        sed -i -e 's#..\/utils\/##' ${script}
+
+        script_basename=`basename ${script}`
+        install -m 0755 $script ${D}${libdir}/${BPN}/${script_basename}
+    done
+
+    # Install the shell scripts NOT in the $libdir directory since those
+    # will be installed elsewhere
+    for script in `find . -name "*.sh" | grep -v include`
+    do
+        # if the script includes any helper scripts from the $libdir
+        # directory then change the source path to the absolute path
+        # to reflect the install location of the helper scripts.
+        sed -i -e "s#source ../include#source ${libdir}/${BPN}#g" ${script}
+        # Remove hardcoded relative paths
+        sed -i -e 's#..\/utils\/##' ${script}
+
+        script_basename=`basename ${script}`
+        install -m 0755 $script ${D}${bindir}/${script_basename}
+    done
+}
+RDEPENDS_${PN} +="bash"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/pmtools/pmtools/pmtools-switch-to-dynamic-buffer-for-huge-ACPI-table.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/pmtools/pmtools/pmtools-switch-to-dynamic-buffer-for-huge-ACPI-table.patch
new file mode 100644
index 0000000..7ccdab0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/pmtools/pmtools/pmtools-switch-to-dynamic-buffer-for-huge-ACPI-table.patch
@@ -0,0 +1,66 @@
+From 03a886252f6555d6b0af76b654e76459642b89da Mon Sep 17 00:00:00 2001
+From: Yunguo Wei <yunguo.wei@windriver.com>
+Date: Tue, 3 Dec 2013 18:12:50 +0800
+Subject: [PATCH] pmtools: switch to dynamic buffer for huge ACPI tables
+
+For servers like Canoe Pass or Thunder Ridge, there are much more
+entries in ACPI table, so original 1K buffer is insufficient.
+
+We switch to dynamic buffer on this situation.
+
+Signed-off-by: Yunguo Wei <yunguo.wei@windriver.com>
+
+
+Upstream-Status: Pending
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ madt/madt.c | 18 +++++++++++++++++-
+ 1 file changed, 17 insertions(+), 1 deletion(-)
+
+diff --git a/madt/madt.c b/madt/madt.c
+index aed965c..8770cd5 100644
+--- a/madt/madt.c
++++ b/madt/madt.c
+@@ -51,7 +51,9 @@ get_next_entry(acpi_table_entry_header * entry_header)
+ 	return retval;
+ }
+ 
+-u8	buffer[1024];
++
++u8	buf[1024];
++u8	*buffer = buf;
+ 
+ main()
+ {
+@@ -75,6 +77,17 @@ main()
+ 
+ 	if (verbose) printf("header.length %d\n", madt_header->header.length);
+ 
++	/* if 1K buffer is insufficient for acpi table, switch to a larger memory buffer */
++	if(expected_length > sizeof(buf)) {
++		buffer = malloc(expected_length);
++		if (!buffer) {
++			perror("malloc");
++			exit(1);
++		}
++		memset(buffer, 0, expected_length);
++		memcpy(buffer, buf, sizeof(struct acpi_table_madt));
++	}
++
+ 	acpi_table_print((void*)&(buffer[bytes_read]), 0);
+ 
+ 	bytes_read = sizeof(struct acpi_table_madt);
+@@ -118,6 +131,9 @@ done:
+ 		printf("Checksum 0x%x != 0; 0x%x in header ERROR\n", csum,
+ 			 madt_header->header.checksum);
+ 
++	if(buffer != buf)
++		free(buffer);
++
+ 	return 0;
+ }
+ 
+-- 
+1.8.1.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/pmtools/pmtools_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/pmtools/pmtools_git.bb
new file mode 100644
index 0000000..22ed8e2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/pmtools/pmtools_git.bb
@@ -0,0 +1,29 @@
+DESCRIPTION = "This is a small collection of power management \
+               test and investigation tools"
+HOMEPAGE = "http://lesswatts.org/projects/acpi"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
+
+PV = "20130209+git${SRCPV}"
+
+SRC_URI = "git://github.com/anyc/pmtools.git \
+    file://pmtools-switch-to-dynamic-buffer-for-huge-ACPI-table.patch \
+"
+SRCREV = "3ebe0e54c54061b4c627236cbe35d820de2e1168"
+
+COMPATIBLE_HOST = "(i.86|x86_64).*-linux"
+
+S = "${WORKDIR}/git"
+
+do_configure[noexec] = "1"
+do_compile() {
+	oe_runmake
+}
+
+do_install() {
+	install -d ${D}${bindir} ${D}${docdir}
+	install -m 755 ${S}/acpidump/acpidump ${D}${bindir}
+	install -m 755 ${S}/acpixtract/acpixtract ${D}${bindir}
+	install -m 755 ${S}/madt/madt ${D}${bindir}
+	install -m 644 ${S}/README ${D}${docdir}
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_2.6.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_2.6.1.bb
new file mode 100644
index 0000000..049f9d4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_2.6.1.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Protocol Buffers - structured data serialisation mechanism"
+DESCRIPTION = "Protocol Buffers are a way of encoding structured data in an \
+efficient yet extensible format. Google uses Protocol Buffers for almost \
+all of its internal RPC protocols and file formats."
+HOMEPAGE = "https://github.com/google/protobuf"
+SECTION = "console/tools"
+LICENSE = "BSD-3-Clause"
+
+DEPENDS = "zlib"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=af6809583bfde9a31595a58bb4a24514"
+
+SRCREV = "bba83652e1be610bdb7ee1566ad18346d98b843c"
+
+PV = "2.6.1+git${SRCPV}"
+
+SRC_URI = "git://github.com/google/protobuf.git"
+
+EXTRA_OECONF += " --with-protoc=echo"
+
+inherit autotools
+
+S = "${WORKDIR}/git"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-futures_3.0.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-futures_3.0.5.bb
new file mode 100644
index 0000000..3eb1882
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-futures_3.0.5.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "The concurrent.futures module provides a high-level interface for asynchronously executing callables."
+SECTION = "devel/python"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=3d78c5bb15ac641d34f2ddc3bd7f51fa"
+HOMEPAGE = "http://code.google.com/p/pythonfutures"
+DEPENDS = "python"
+
+SRC_URI = "https://pypi.python.org/packages/source/f/futures/futures-${PV}.tar.gz"
+SRC_URI[md5sum] = "ced2c365e518242512d7a398b515ff95"
+SRC_URI[sha256sum] = "0542525145d5afc984c88f914a0c85c77527f65946617edb5274f72406f981df"
+
+S = "${WORKDIR}/futures-${PV}"
+
+inherit setuptools
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-simplejson_3.8.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-simplejson_3.8.2.bb
new file mode 100644
index 0000000..a2a6c40
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-simplejson_3.8.2.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Simple, fast, extensible JSON encoder/decoder for Python"
+HOMEPAGE = "http://cheeseshop.python.org/pypi/simplejson"
+SECTION = "devel/python"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=c6338d7abd321c0b50a2a547e441c52e"
+PR = "r1"
+
+SRCNAME = "simplejson"
+
+SRC_URI = "http://cheeseshop.python.org/packages/source/s/simplejson/${SRCNAME}-${PV}.tar.gz"
+SRC_URI[md5sum] = "53b1371bbf883b129a12d594a97e9a18"
+SRC_URI[sha256sum] = "d58439c548433adcda98e695be53e526ba940a4b9c44fb9a05d92cd495cdd47f"
+
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit distutils
+
+RDEPENDS_${PN} = "\
+    python-core \
+    python-re \
+    python-io \
+    python-netserver \
+    python-numbers \
+"
+
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/serialcheck/serialcheck/0001-Add-option-to-enable-internal-loopback.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/serialcheck/serialcheck/0001-Add-option-to-enable-internal-loopback.patch
new file mode 100644
index 0000000..f69254a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/serialcheck/serialcheck/0001-Add-option-to-enable-internal-loopback.patch
@@ -0,0 +1,81 @@
+From 059d5512e840fe68e2bb37add6c9208fa9c34d15 Mon Sep 17 00:00:00 2001
+From: Sekhar Nori <nsekhar@ti.com>
+Date: Tue, 24 Feb 2015 22:16:37 +0530
+Subject: [PATCH 1/2] Add option to enable internal loopback
+
+Upstream-status: Pending
+---
+ serialcheck.c | 23 +++++++++++++++++++++++
+ 1 file changed, 23 insertions(+)
+
+diff --git a/serialcheck.c b/serialcheck.c
+index 4f5b747..4100c37 100644
+--- a/serialcheck.c
++++ b/serialcheck.c
+@@ -12,6 +12,8 @@
+ #include <sys/ioctl.h>
+ #include <linux/serial.h>
+
++#define TIOCM_LOOP	0x8000
++
+ #define __same_type(a, b)	__builtin_types_compatible_p(typeof(a), typeof(b))
+ #define BUILD_BUG_ON_ZERO(e)	(sizeof(struct { int:-!!(e); }))
+ #define __must_be_array(a)	BUILD_BUG_ON_ZERO(__same_type((a), &(a)[0]))
+@@ -40,6 +42,7 @@ struct g_opt {
+	unsigned char hflow;
+	unsigned char do_termios;
+	unsigned char *cmp_buff;
++	unsigned char loopback;
+ };
+
+ /* name, key, arg, flags, doc, group */
+@@ -51,6 +54,7 @@ static struct argp_option options[] = {
+	{"mode",	'm', "M",    0, "transfer mode (d = duplex, t = send r = receive)", 0},
+	{"loops",	'l', "NUM",  0, "loops to perform (0 => wait fot CTRL-C", 0},
+	{"no-termios",	'n', NULL,   0, "No termios change (baud rate etc. remains unchanged)", 0},
++	{"loopback",	'k', NULL,   0, "loopback mode", 0},
+	{NULL, 0, NULL, 0, NULL, 0}
+ };
+
+@@ -67,6 +71,7 @@ static error_t parse_opt(int key, char *arg, struct argp_state *state)
+		go->baudrate = 115200;
+		go->loops = UINT_MAX;
+		go->do_termios = 1;
++		go->loopback = 0;
+		break;
+	case ARGP_KEY_ARG:
+		ret =  ARGP_ERR_UNKNOWN;
+@@ -113,6 +118,9 @@ static error_t parse_opt(int key, char *arg, struct argp_state *state)
+		} else
+			go->loops = num;
+		break;
++	case 'k':
++		go->loopback = 1;
++		break;
+	default:
+		ret = ARGP_ERR_UNKNOWN;
+	}
+@@ -487,6 +495,21 @@ int main(int argc, char *argv[])
+			die("tcflush failed: %m\n");
+	}
+
++	if (opts.loopback) {
++		unsigned int mcr;
++
++		ret = ioctl(fd, TIOCMGET, &mcr);
++		if (ret < 0)
++			die("mcr get failed: %m\n");
++
++		mcr |= TIOCM_LOOP;
++
++		ret = ioctl(fd, TIOCMSET, &mcr);
++		if (ret < 0)
++			die ("mcr set failed: %m\n");
++
++	}
++
+	ret = fcntl(fd, F_SETFL, 0);
+	if (ret)
+		printf("Failed to remove nonblock mode\n");
+--
+1.9.1
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/serialcheck/serialcheck/0001-Makefile-Change-order-of-link-flags.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/serialcheck/serialcheck/0001-Makefile-Change-order-of-link-flags.patch
new file mode 100644
index 0000000..2ab4834
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/serialcheck/serialcheck/0001-Makefile-Change-order-of-link-flags.patch
@@ -0,0 +1,34 @@
+From efc8a4e717ba919c869c2da1c7de2d08bc976926 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 24 Feb 2016 18:48:07 +0000
+Subject: [PATCH] Makefile: Change order of link flags
+
+This helps in injectcting LDFLAGS from env to take effect
+as it appears last on cmdline now
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ Makefile | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index ba2bfbb..6d13e68 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,3 +1,9 @@
+-CFLAGS=-O2 -Wall -Wextra -g -Wno-sign-compare -Wno-pointer-sign
+-CC=gcc
++CFLAGS?=-O2 -Wall -Wextra -g -Wno-sign-compare -Wno-pointer-sign
++CC?=gcc
+ all: serialcheck
++serialcheck : serialcheck.o
++	$(CC) -o serialcheck serialcheck.o $(CFLAGS) $(LDFLAGS)
++
++%.o : %.c
++	$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
++
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/serialcheck/serialcheck/0002-Restore-original-loopback-config.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/serialcheck/serialcheck/0002-Restore-original-loopback-config.patch
new file mode 100644
index 0000000..1b8c95b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/serialcheck/serialcheck/0002-Restore-original-loopback-config.patch
@@ -0,0 +1,49 @@
+From a6e5813d2f8402bf3a311c8bcda02623bfb76882 Mon Sep 17 00:00:00 2001
+From: Carlos Hernandez <ceh@ti.com>
+Date: Tue, 24 Feb 2015 16:00:34 -0500
+Subject: [PATCH 2/2] Restore original loopback config
+
+If loopback option is enabled, disable it at the end of the test.
+
+Signed-off-by: Carlos Hernandez <ceh@ti.com>
+Upstream-status: Pending
+---
+ serialcheck.c | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/serialcheck.c b/serialcheck.c
+index 4100c37..06470f7 100644
+--- a/serialcheck.c
++++ b/serialcheck.c
+@@ -427,6 +427,7 @@ int main(int argc, char *argv[])
+	unsigned char *data;
+	unsigned int open_mode;
+	off_t data_len;
++	unsigned int mcr;
+
+	argp_parse(&argp, argc, argv, 0, NULL, &opts);
+	if (!opts.file_trans)
+@@ -496,8 +497,6 @@ int main(int argc, char *argv[])
+	}
+
+	if (opts.loopback) {
+-		unsigned int mcr;
+-
+		ret = ioctl(fd, TIOCMGET, &mcr);
+		if (ret < 0)
+			die("mcr get failed: %m\n");
+@@ -535,6 +534,12 @@ int main(int argc, char *argv[])
+	ret = tcsetattr(fd, TCSAFLUSH, &old_term);
+	if (ret)
+		printf("tcsetattr() of old ones failed: %m\n");
++	if (opts.loopback) {
++		mcr &= ~(TIOCM_LOOP);
++		ret = ioctl(fd, TIOCMSET, &mcr);
++	}
++	if (ret)
++		printf("disabling loopback failed: %m\n");
+
+	close(fd);
+	return status;
+--
+1.9.1
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/serialcheck/serialcheck_1.0.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/serialcheck/serialcheck_1.0.0.bb
new file mode 100644
index 0000000..cd5e0a4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/serialcheck/serialcheck_1.0.0.bb
@@ -0,0 +1,30 @@
+SUMMARY = "Application to verify operation of serial ports"
+HOMEPAGE = "http://git.breakpoint.cc/cgit/bigeasy/serialcheck.git/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "git://git.breakpoint.cc/bigeasy/serialcheck.git \
+           file://0001-Add-option-to-enable-internal-loopback.patch \
+           file://0002-Restore-original-loopback-config.patch \
+           file://0001-Makefile-Change-order-of-link-flags.patch \
+           "
+
+SRCREV = "63854a2d0c0129efab132ec328a75279e013fb84"
+
+S = "${WORKDIR}/git"
+
+DEPENDS_append_libc-musl = " argp-standalone"
+EXTRA_OEMAKE = "-e MAKEFLAGS="
+
+CFLAGS_prepend = "-Wall -Wextra -Wno-sign-compare -Wno-pointer-sign "
+LDFLAGS_append_libc-musl = " -largp"
+
+do_install() {
+    install -d ${D}${bindir}
+    install ${S}/serialcheck ${D}${bindir}
+    install -d ${D}${docdir}/${BP}
+    install ${S}/Readme.txt ${D}${docdir}/${BP}
+}
+CLEANBROKEN = "1"
+
+BBCLASSEXTEND = "nativesdk"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/tclap/tclap/Makefile.am-disable-docs.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/tclap/tclap/Makefile.am-disable-docs.patch
new file mode 100644
index 0000000..358cbef
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/tclap/tclap/Makefile.am-disable-docs.patch
@@ -0,0 +1,31 @@
+From c209ed0e7ffca32fe3714bad9cc54bdb00c286bb Mon Sep 17 00:00:00 2001
+From: Ting Liu <b28495@freescale.com>
+Date: Mon, 15 Apr 2013 16:28:37 +0800
+Subject: [PATCH] Makefile.am: disable docs
+
+Upstream-Status: Inappropriate [OE specific]
+
+docs need some generating tool (for example, doxygen) from host which may
+be not available. Disable it to avoid build issue.
+
+Signed-off-by: Ting Liu <b28495@freescale.com>
+---
+ Makefile.am |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 0a6ebc9..6b42f41 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -1,7 +1,7 @@
+ 
+ ACLOCAL_AMFLAGS = -I config
+ 
+-SUBDIRS = include examples docs tests msc config
++SUBDIRS = include examples tests msc config
+ 
+ pkgconfigdir = $(libdir)/pkgconfig
+ pkgconfig_DATA = $(PACKAGE).pc
+-- 
+1.7.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/tclap/tclap_1.2.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/tclap/tclap_1.2.1.bb
new file mode 100644
index 0000000..ab15a7e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/tclap/tclap_1.2.1.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Templatized C++ Command Line Parser"
+HOMEPAGE = "http://tclap.sourceforge.net/" 
+LICENSE = "MIT" 
+LIC_FILES_CHKSUM = "file://COPYING;md5=c8ab0ff134bcc584d0e6b5b9f8732453"
+
+SRCREV = "3627d9402e529770df9b0edf2aa8c0e0d6c6bb41"
+SRC_URI = "git://git.code.sf.net/p/tclap/code \
+    file://Makefile.am-disable-docs.patch \
+" 
+
+S = "${WORKDIR}/git"
+inherit autotools
+
+ALLOW_EMPTY_${PN} = "1"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk/configure.use.fontconfig.with.xft.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk/configure.use.fontconfig.with.xft.patch
new file mode 100644
index 0000000..a0c157f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk/configure.use.fontconfig.with.xft.patch
@@ -0,0 +1,13 @@
+--- a/configure.in.orig	2014-05-10 14:35:39.859147385 +0000
++++ b/configure.in	2014-05-10 14:36:20.282925184 +0000
+@@ -554,8 +554,8 @@
+ 	dnl make sure package configurator (xft-config or pkg-config
+ 	dnl says that xft is present.
+ 	    found_xft=yes
+-	    XFT_CFLAGS=`pkg-config --cflags xft 2>/dev/null` || found_xft="no"
+-	    XFT_LIBS=`pkg-config --libs xft 2>/dev/null` || found_xft="no"
++	    XFT_CFLAGS=`pkg-config --cflags xft fontconfig 2>/dev/null` || found_xft="no"
++	    XFT_LIBS=`pkg-config --libs xft fontconfig 2>/dev/null` || found_xft="no"
+ 	AC_MSG_RESULT([$found_xft])
+ 	dnl make sure that compiling against Xft header file doesn't bomb
+ 	if test "$found_xft" = "yes" ; then
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk/confsearch.diff b/import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk/confsearch.diff
new file mode 100644
index 0000000..c51e475
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk/confsearch.diff
@@ -0,0 +1,32 @@
+Patch by Sergei Golovan allows to find tclConfig.sh in /usr/share/tcltk/tcl8.5
+and tkConfig.sh in /usr/share/tcltk/tk8.5 where they are located in Debian
+installation.
+
+--- tk8.5-8.5.8.orig/unix/configure
++++ tk8.5-8.5.8/unix/configure
+@@ -1431,6 +1431,7 @@
+ 			`ls -d ${prefix}/lib 2>/dev/null` \
+ 			`ls -d /usr/local/lib 2>/dev/null` \
+ 			`ls -d /usr/contrib/lib 2>/dev/null` \
++			`ls -d /usr/share/tcltk/tcl8.5 2>/dev/null` \
+ 			`ls -d /usr/lib 2>/dev/null` \
+ 			; do
+ 		    if test -f "$i/tclConfig.sh" ; then
+--- tk8.5-8.5.8.orig/unix/tcl.m4
++++ tk8.5-8.5.8/unix/tcl.m4
+@@ -93,6 +93,7 @@
+ 			`ls -d ${prefix}/lib 2>/dev/null` \
+ 			`ls -d /usr/local/lib 2>/dev/null` \
+ 			`ls -d /usr/contrib/lib 2>/dev/null` \
++			`ls -d /usr/share/tcltk/tcl8.5 2>/dev/null` \
+ 			`ls -d /usr/lib 2>/dev/null` \
+ 			; do
+ 		    if test -f "$i/tclConfig.sh" ; then
+@@ -223,6 +224,7 @@
+ 			`ls -d ${prefix}/lib 2>/dev/null` \
+ 			`ls -d /usr/local/lib 2>/dev/null` \
+ 			`ls -d /usr/contrib/lib 2>/dev/null` \
++			`ls -d /usr/share/tcltk/tk8.5 2>/dev/null` \
+ 			`ls -d /usr/lib 2>/dev/null` \
+ 			; do
+ 		    if test -f "$i/tkConfig.sh" ; then
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk/fix-xft.diff b/import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk/fix-xft.diff
new file mode 100644
index 0000000..d1bb710
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk/fix-xft.diff
@@ -0,0 +1,16 @@
+--- /tmp/configure.in	2010-05-19 13:29:03.000000000 +0200
++++ unix/configure.in	2010-05-19 13:42:05.000000000 +0200
+@@ -526,13 +526,9 @@
+ 	found_xft="yes"
+ 	dnl make sure package configurator (xft-config or pkg-config
+ 	dnl says that xft is present.
+-	XFT_CFLAGS=`xft-config --cflags 2>/dev/null` || found_xft="no"
+-	XFT_LIBS=`xft-config --libs 2>/dev/null` || found_xft="no"
+-	if test "$found_xft" = "no" ; then
+ 	    found_xft=yes
+ 	    XFT_CFLAGS=`pkg-config --cflags xft 2>/dev/null` || found_xft="no"
+ 	    XFT_LIBS=`pkg-config --libs xft 2>/dev/null` || found_xft="no"
+-	fi
+ 	AC_MSG_RESULT([$found_xft])
+ 	dnl make sure that compiling against Xft header file doesn't bomb
+ 	if test "$found_xft" = "yes" ; then
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk/non-linux.diff b/import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk/non-linux.diff
new file mode 100644
index 0000000..7d31f9f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk/non-linux.diff
@@ -0,0 +1,27 @@
+Patch by Sergei Golovan (originally by Mike Markley and Chris Waters) fixes
+building on non-linux Debian architectures.
+
+--- tk8.5-8.5.8.orig/unix/configure
++++ tk8.5-8.5.8/unix/configure
+@@ -4447,6 +4447,9 @@
+ 		if test "`uname -s`" = "AIX" ; then
+ 		    tcl_cv_sys_version=AIX-`uname -v`.`uname -r`
+ 		fi
++		if test "`uname -s`" = "NetBSD" -a -f /etc/debian_version ; then
++		    tcl_cv_sys_version=NetBSD-Debian
++		fi
+ 	    fi
+ 	fi
+
+--- tk8.5-8.5.8.orig/unix/tcl.m4
++++ tk8.5-8.5.8/unix/tcl.m4
+@@ -962,6 +962,9 @@
+ 		if test "`uname -s`" = "AIX" ; then
+ 		    tcl_cv_sys_version=AIX-`uname -v`.`uname -r`
+ 		fi
++		if test "`uname -s`" = "NetBSD" -a -f /etc/debian_version ; then
++		    tcl_cv_sys_version=NetBSD-Debian
++		fi
+ 	    fi
+ 	fi
+     ])
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk/tklibrary.diff b/import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk/tklibrary.diff
new file mode 100644
index 0000000..ee38c2a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk/tklibrary.diff
@@ -0,0 +1,22 @@
+--- tk8.5-8.5.8.orig/unix/configure
++++ tk8.5-8.5.8/unix/configure
+@@ -11070,7 +11070,7 @@
+     TCL_STUB_FLAGS="-DUSE_TCL_STUBS"
+ fi
+ 
+-TK_LIBRARY='$(prefix)/lib/tk$(VERSION)'
++test -z "$TK_LIBRARY" && TK_LIBRARY='$(prefix)/lib/tk$(VERSION)'
+ PRIVATE_INCLUDE_DIR='$(includedir)'
+ HTML_DIR='$(DISTDIR)/html'
+ TK_PKG_DIR='tk$(VERSION)'
+--- tk8.5-8.5.8.orig/unix/configure.in
++++ tk8.5-8.5.8/unix/configure.in
+@@ -607,7 +607,7 @@
+     TCL_STUB_FLAGS="-DUSE_TCL_STUBS"
+ fi
+ 
+-TK_LIBRARY='$(prefix)/lib/tk$(VERSION)'
++test -z "$TK_LIBRARY" && TK_LIBRARY='$(prefix)/lib/tk$(VERSION)'
+ PRIVATE_INCLUDE_DIR='$(includedir)'
+ HTML_DIR='$(DISTDIR)/html'
+ TK_PKG_DIR='tk$(VERSION)'
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk/tkprivate.diff b/import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk/tkprivate.diff
new file mode 100644
index 0000000..4e15469
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk/tkprivate.diff
@@ -0,0 +1,41 @@
+Patch by Chris Waters sets path which are normally point to a directory
+with Tk sources to a subdirectory of /usr/include/tcl8.4 (debian/rules
+puts private Tk headers there).
+
+--- tk8.5-8.5.8.orig/unix/tkConfig.sh.in
++++ tk8.5-8.5.8/unix/tkConfig.sh.in
+@@ -55,7 +55,7 @@
+ 
+ # String to pass to linker to pick up the Tk library from its
+ # build directory.
+-TK_BUILD_LIB_SPEC='@TK_BUILD_LIB_SPEC@'
++TK_BUILD_LIB_SPEC='@TK_LIB_SPEC@'
+ 
+ # String to pass to linker to pick up the Tk library from its
+ # installed directory.
+@@ -71,7 +71,7 @@
+ # different place than the directory containing the source files, this
+ # points to the location of the sources, not the location where Tk was
+ # compiled.
+-TK_SRC_DIR='@TK_SRC_DIR@'
++TK_SRC_DIR='@includedir@/tk-private'
+ 
+ # Needed if you want to make a 'fat' shared library library
+ # containing tk objects or link a different wish.
+@@ -86,14 +86,14 @@
+ 
+ # String to pass to linker to pick up the Tk stub library from its
+ # build directory.
+-TK_BUILD_STUB_LIB_SPEC='@TK_BUILD_STUB_LIB_SPEC@'
++TK_BUILD_STUB_LIB_SPEC='@TK_STUB_LIB_SPEC@'
+ 
+ # String to pass to linker to pick up the Tk stub library from its
+ # installed directory.
+ TK_STUB_LIB_SPEC='@TK_STUB_LIB_SPEC@'
+ 
+ # Path to the Tk stub library in the build directory.
+-TK_BUILD_STUB_LIB_PATH='@TK_BUILD_STUB_LIB_PATH@'
++TK_BUILD_STUB_LIB_PATH='@TK_STUB_LIB_PATH@'
+ 
+ # Path to the Tk stub library in the install directory.
+ TK_STUB_LIB_PATH='@TK_STUB_LIB_PATH@'
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk_8.6.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk_8.6.4.bb
new file mode 100644
index 0000000..d8eca50
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk_8.6.4.bb
@@ -0,0 +1,79 @@
+SUMMARY = "Tool Command Language ToolKit Extension"
+HOMEPAGE = "http://tcl.sourceforge.net"
+SECTION = "devel/tcltk"
+
+# http://www.tcl.tk/software/tcltk/license.html
+LICENSE = "tcl"
+LIC_FILES_CHKSUM = "file://../license.terms;md5=c88f99decec11afa967ad33d314f87fe \
+    file://../compat/license.terms;md5=c88f99decec11afa967ad33d314f87fe \
+    file://../doc/license.terms;md5=c88f99decec11afa967ad33d314f87fe \
+    file://../library/license.terms;md5=c88f99decec11afa967ad33d314f87fe \
+    file://../macosx/license.terms;md5=c88f99decec11afa967ad33d314f87fe \
+    file://../tests/license.terms;md5=c88f99decec11afa967ad33d314f87fe \
+    file://../unix/license.terms;md5=c88f99decec11afa967ad33d314f87fe \
+    file://../win/license.terms;md5=c88f99decec11afa967ad33d314f87fe \
+    file://../xlib/license.terms;md5=c88f99decec11afa967ad33d314f87fe \
+"
+
+DEPENDS = "tcl virtual/libx11 libxt"
+
+SRC_URI = "\
+    ${SOURCEFORGE_MIRROR}/tcl/${BPN}${PV}-src.tar.gz \
+    file://confsearch.diff;striplevel=2 \
+    file://non-linux.diff;striplevel=2 \
+    file://tklibrary.diff;striplevel=2 \
+    file://tkprivate.diff;striplevel=2 \
+    file://fix-xft.diff \
+    file://configure.use.fontconfig.with.xft.patch \
+"
+SRC_URI[md5sum] = "261754d7dc2a582f00e35547777e1fea"
+SRC_URI[sha256sum] = "08f99df85e5dc9c4271762163c6aabb962c8b297dc5c4c1af8bdd05fc2dd26c1"
+
+S = "${WORKDIR}/${BPN}${PV}/unix"
+
+# Short version format: "8.6"
+VER = "${@os.path.splitext(d.getVar('PV', True))[0]}"
+
+LDFLAGS += "-Wl,-rpath,${libdir}/tcltk/${PV}/lib"
+inherit autotools distro_features_check
+# depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+EXTRA_OECONF = "\
+    --enable-threads \
+    --with-x \
+    --with-tcl=${STAGING_BINDIR_CROSS} \
+    --libdir=${libdir} \
+"
+
+do_install_append() {
+    ln -sf libtk${VER}.so ${D}${libdir}/libtk${VER}.so.0
+    oe_libinstall -so libtk${VER} ${D}${libdir}
+    ln -sf wish${VER} ${D}${bindir}/wish
+
+    # Even after passing libdir=${libdir} at config, some incorrect dirs are still generated for the multilib build
+    if [ "$libdir" != "/usr/lib" ]; then
+        # Move files to correct library directory
+        mv ${D}/usr/lib/tk${VER}/* ${D}/${libdir}/tk${VER}/
+        # Remove unneeded/incorrect dir ('usr/lib/')
+        rm -rf ${D}/usr/lib
+    fi
+}
+
+PACKAGECONFIG ??= "xft"
+PACKAGECONFIG[xft] = "--enable-xft,--disable-xft,xft"
+PACKAGECONFIG[xss] = "--enable-xss,--disable-xss,libxscrnsaver libxext"
+
+PACKAGES =+ "${PN}-lib"
+
+FILES_${PN}-lib = "${libdir}/libtk${VER}.so*"
+FILES_${PN} += "${libdir}/tk*"
+
+# isn't getting picked up by shlibs code
+RDEPENDS_${PN} += "tk-lib"
+RDEPENDS_${PN}_class-native = ""
+
+BBCLASSEXTEND = "native"
+
+# Fix the path in sstate
+SSTATE_SCAN_FILES += "*Config.sh"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap/imap-2007e-shared.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap/imap-2007e-shared.patch
new file mode 100644
index 0000000..4434e83
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap/imap-2007e-shared.patch
@@ -0,0 +1,82 @@
+Fix linking libraries built with -fPIC with this library
+
+Patch borrowed from Fedora
+
+Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
+
+Upstream-Status: Pending
+
+diff -up imap-2007e/src/osdep/unix/Makefile.shared imap-2007e/src/osdep/unix/Makefile
+--- imap-2007e/src/osdep/unix/Makefile.shared	2009-07-07 19:28:02.909755512 -0500
++++ imap-2007e/src/osdep/unix/Makefile	2009-07-07 19:29:35.870006799 -0500
+@@ -170,6 +170,10 @@ BUILD=$(MAKE) build EXTRACFLAGS='$(EXTRA
+  EXTRADRIVERS='$(EXTRADRIVERS)' EXTRAAUTHENTICATORS='$(EXTRAAUTHENTICATORS)'\
+  PASSWDTYPE=$(PASSWDTYPE) SSLTYPE=$(SSLTYPE) IP=$(IP)
+ 
++# Need this for the shared library rule to work correctly
++.SUFFIXES: .o .so
++SOFILES=${BINARIES:.o=.so}
++
+ 
+ # Here if no make argument established
+ 
+@@ -845,18 +849,24 @@ vu2:	# VAX Ultrix 2.3, etc.
+ 
+ # Build it!
+ 
+-build:	clean once $(ARCHIVE)
++build:	clean once $(ARCHIVE) $(SHLIBNAME)
+ 
+-all:	$(ARCHIVE)
++all:	$(ARCHIVE) $(SHLIBNAME)
+ 
+ $(ARCHIVE): $(BINARIES)
+ 	sh -c '$(RM) $(ARCHIVE) || true'
+ 	@$(CAT) ARCHIVE
+ 	@$(SH) ARCHIVE
+ 
+-.c.o:
+-	`$(CAT) CCTYPE` -c `$(CAT) CFLAGS` $*.c
++$(SHLIBNAME):	$(SOFILES)
++	gcc -shared -Wl,-soname,$(SHLIBNAME) -o $(SHLIBNAME) $(SOFILES) `cat LDFLAGS`
++	ln -s $(SHLIBNAME) lib$(SHLIBBASE).so
+ 
++.c.so:	osdep.h
++	$(CC) -fPIC -DPIC -D_REENTRANT -c `$(CAT) CFLAGS` ${@:.so=.c} -o $@
++
++.c.o:
++	$(CC) -fPIC -DPIC -D_REENTRANT -c `$(CAT) CFLAGS` $*.c
+ 
+ # Cleanup
+ 
+@@ -895,8 +905,7 @@ utf8aux.o: mail.h misc.h osdep.h utf8.h
+ 
+ 
+ # OS-dependent
+-
+-osdep.o:mail.h misc.h env.h fs.h ftl.h nl.h tcp.h \
++OSDEPS= mail.h misc.h env.h fs.h ftl.h nl.h tcp.h \
+ 	osdep.h env_unix.h tcp_unix.h \
+ 	osdep.c env_unix.c fs_unix.c ftl_unix.c nl_unix.c tcp_unix.c ip_unix.c\
+ 	auths.c crexcl.c flockcyg.c flocklnx.c flocksim.c fsync.c \
+@@ -910,12 +919,19 @@ osdep.o:mail.h misc.h env.h fs.h ftl.h n
+ 	write.c sslstdio.c \
+ 	strerror.c strpbrk.c strstr.c strtok.c strtoul.c \
+ 	OSCFLAGS
++
++osdep.o:	$(OSDEPS)
++	$(CC) -fPIC -DPIC -D_REENTRANT `$(CAT) CFLAGS` `$(CAT) OSCFLAGS` -c osdep.c
++	@echo ========================================================================
+ 	@echo Building OS-dependent module
+ 	@echo If you get No such file error messages for files x509.h, ssl.h,
+ 	@echo pem.h, buffer.h, bio.h, and crypto.h, that means that OpenSSL
+ 	@echo is not installed on your system.  Either install OpenSSL first
+ 	@echo or build with command: make `$(CAT) OSTYPE` SSLTYPE=none
+-	`$(CAT) CCTYPE` -c `$(CAT) CFLAGS` `$(CAT) OSCFLAGS` -c osdep.c
++	@echo ========================================================================
++
++osdep.so:	$(OSDEPS)
++	$(CC) -fPIC -DPIC -D_REENTRANT `$(CAT) CFLAGS` `cat OSCFLAGS` -c osdep.c -o $@
+ 
+ osdep.c: osdepbas.c osdepckp.c osdeplog.c osdepssl.c
+ 	$(CAT) osdepbas.c osdepckp.c osdeplog.c osdepssl.c > osdep.c
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap/imap-2007f-format-security.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap/imap-2007f-format-security.patch
new file mode 100644
index 0000000..6ec0476
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap/imap-2007f-format-security.patch
@@ -0,0 +1,20 @@
+Fix error found with "-Werror=format-security" flag
+
+Patch borrowed from Fedora
+
+Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
+
+Upstream-Status: Pending
+
+diff -Naur imap-2007f.orig/src/osdep/unix/flocklnx.c imap-2007f/src/osdep/unix/flocklnx.c
+--- imap-2007f.orig/src/osdep/unix/flocklnx.c	2011-07-23 02:20:11.000000000 +0200
++++ imap-2007f/src/osdep/unix/flocklnx.c	2014-04-14 19:17:46.429000000 +0200
+@@ -57,7 +57,7 @@
+     case ENOLCK:		/* lock table is full */
+       sprintf (tmp,"File locking failure: %s",strerror (errno));
+       mm_log (tmp,WARN);	/* give the user a warning of what happened */
+-      if (!logged++) syslog (LOG_ERR,tmp);
++      if (!logged++) syslog (LOG_ERR, "%s", tmp);
+ 				/* return failure if non-blocking lock */
+       if (op & LOCK_NB) return -1;
+       sleep (5);		/* slow down in case it loops */
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap/quote_cctype.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap/quote_cctype.patch
new file mode 100644
index 0000000..f729ee2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap/quote_cctype.patch
@@ -0,0 +1,12 @@
+diff -urN imap-2007.orig/Makefile imap-2007/Makefile
+--- imap-2007.orig/Makefile	2007-12-20 23:11:10.000000000 +0100
++++ imap-2007/Makefile	2008-03-19 14:08:47.000000000 +0100
+@@ -690,7 +690,7 @@
+ 	@$(SH) -c '(test $(BUILDTYPE) = rebuild -o $(BUILDTYPE) = `$(CAT) OSTYPE`) || (echo Already built for `$(CAT) OSTYPE` -- you must do \"make clean\" first && exit 1)'
+ 	@echo Rebuilding c-client for `$(CAT) OSTYPE`...
+ 	@$(TOUCH) SPECIALS
+-	$(CD) c-client;$(MAKE) all CC=`$(CAT) CCTYPE` \
++	$(CD) c-client;$(MAKE) all CC="`$(CAT) CCTYPE`" \
+ 	 CFLAGS="`$(CAT) CFLAGS`" `$(CAT) SPECIALS`
+ 
+ rebuildclean:
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap_2007f.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap_2007f.bb
new file mode 100644
index 0000000..52b689e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap_2007f.bb
@@ -0,0 +1,44 @@
+SUMMARY = "UW c-client library for mail protocols"
+SECTION = "devel"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a6a4ddbb7cd2999f6827ee143f6fcd97"
+
+DEPENDS = "openssl"
+
+SRC_URI = "ftp://ftp.cac.washington.edu/imap/imap-${PV}.tar.gz \
+           file://quote_cctype.patch \
+           file://imap-2007e-shared.patch \
+           file://imap-2007f-format-security.patch \
+           "
+
+SRC_URI[md5sum] = "2126fd125ea26b73b20f01fcd5940369"
+SRC_URI[sha256sum] = "53e15a2b5c1bc80161d42e9f69792a3fa18332b7b771910131004eb520004a28"
+
+S = "${WORKDIR}/imap-${PV}"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}"
+PACKAGECONFIG[pam] = ",,libpam"
+
+EXTRA_OEMAKE = "CC='${CC}'"
+
+HEADERS = "src/c-client/*.h src/osdep/unix/*.h c-client/auths.c c-client/linkage.c c-client/linkage.h c-client/osdep.h"
+
+do_compile() {
+    echo "SSLINCLUDE=${STAGING_INCDIR} SSLLIB=${STAGING_LIBDIR}" > ${S}/SPECIALS
+    oe_runmake ${@bb.utils.contains('PACKAGECONFIG', 'pam', 'lnp', 'slx', d)}
+}
+
+do_install() {
+    install -d ${D}${includedir}/c-client
+    install ${HEADERS} ${D}${includedir}/c-client
+    install -d ${D}${libdir}
+    install c-client/c-client.a ${D}${libdir}/libc-client.a
+}
+
+RPROVIDES_${PN} = "libc-client"
+RREPLACES_${PN} = "libc-client"
+RCONFLICTS_${PN} = "libc-client"
+
+ALLOW_EMPTY_${PN} = "1"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool.inc b/import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool.inc
new file mode 100644
index 0000000..0745130
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool.inc
@@ -0,0 +1,16 @@
+DESCRIPTION = "Vala DBus Binding Tool"
+SECTION = "devel"
+DEPENDS = "vala libgee libxml2 intltool-native"
+HOMEPAGE = "http://wiki.freesmartphone.org/index.php/Implementations/vala-dbus-binding-tool"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+PE = "1"
+INC_PR = "r3"
+
+export XDG_DATA_DIRS = "${STAGING_DATADIR}"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/freesmartphone/sources/${BP}.tar.bz2"
+
+inherit autotools perlnative pkgconfig
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool/0001-configure.ac-don-t-use-dash-in-m4-macro-names.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool/0001-configure.ac-don-t-use-dash-in-m4-macro-names.patch
new file mode 100644
index 0000000..14d84ae
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool/0001-configure.ac-don-t-use-dash-in-m4-macro-names.patch
@@ -0,0 +1,34 @@
+From 8abed2e5bf8e7815b11df6d22042d5f0ac8efcb0 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Tue, 5 May 2015 13:43:35 +0200
+Subject: [PATCH] configure.ac: don't use dash in m4 macro names
+
+* otherwise it doesn't get expanded and vala-dbus-binding-tool ends with version 'vala-dbus-binding-tool_version'
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ configure.ac | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 48f007c..18d0bde 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1,9 +1,9 @@
+-m4_define([vala-dbus-binding-tool_released], [0])
+-m4_define([vala-dbus-binding-tool_base_version], [1.0])
+-m4_define([vala-dbus-binding-tool_maybe_gitrev], m4_if(vala-dbus-binding-tool_released, [1], [], [m4_esyscmd([git show-ref --hash=5 HEAD | tr -d '\n\r'])]))
+-m4_define([vala-dbus-binding-tool_version], m4_if(vala-dbus-binding-tool_released, [1], [vala-dbus-binding-tool_base_version], [vala-dbus-binding-tool_base_version-vala-dbus-binding-tool_maybe_gitrev]))
++m4_define([vala_dbus_binding_tool_released], [0])
++m4_define([vala_dbus_binding_tool_base_version], [1.0])
++m4_define([vala_dbus_binding_tool_maybe_gitrev], m4_if(vala_dbus_binding_tool_released, [1], [], [m4_esyscmd([git show-ref --hash=5 HEAD | tr -d '\n\r'])]))
++m4_define([vala_dbus_binding_tool_version], m4_if(vala_dbus_binding_tool_released, [1], [vala_dbus_binding_tool_base_version], [vala_dbus_binding_tool_base_version-vala_dbus_binding_tool_maybe_gitrev]))
+ 
+-AC_INIT([vala-dbus-binding-tool], [vala-dbus-binding-tool_version], [fso@openphoenux.org], [vala-dbus-binding-tool])
++AC_INIT([vala-dbus-binding-tool], [vala_dbus_binding_tool_version], [fso@openphoenux.org], [vala-dbus-binding-tool])
+ AC_CONFIG_SRCDIR([src/Makefile.am])
+ AC_CONFIG_HEADERS(config.h)
+ AM_INIT_AUTOMAKE([dist-bzip2])
+-- 
+2.3.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool_0.4.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool_0.4.0.bb
new file mode 100644
index 0000000..82fb73c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool_0.4.0.bb
@@ -0,0 +1,4 @@
+require vala-dbus-binding-tool.inc
+
+SRC_URI[md5sum] = "59eab7abf38f35355d3786803bd2441f"
+SRC_URI[sha256sum] = "1e37ab2e6238eaef9f573560ea7379e6955570f7c9503083e50c4c185c1956df"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool_git.bb
new file mode 100644
index 0000000..02a869f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool_git.bb
@@ -0,0 +1,18 @@
+require vala-dbus-binding-tool.inc
+
+# Temporary remove negative preference, because there are 2 versions of 0.4.0 archives:
+# the original one depending on libgee1.0 from
+# http://downloads.freesmartphone.org/sources/${BPN}/${BP}.tar.bz2
+# and new one depending on libgee0.8 from
+# http://sourceforge.net/projects/freesmartphone/files/sources/
+# The original one can be already deployed on various premirrors,
+# so prefer the git recipe which doesn't suffer from this issue
+# DEFAULT_PREFERENCE = "-1"
+
+SRCREV = "742c04c2bb0743891904522ce47e50f9e5c99b12"
+PV = "0.4.0+gitr${SRCPV}"
+
+SRC_URI = "git://github.com/freesmartphone/vala-dbus-binding-tool.git;protocol=https \
+    file://0001-configure.ac-don-t-use-dash-in-m4-macro-names.patch \
+"
+S = "${WORKDIR}/git"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/xerces-c/xerces-c_3.1.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/xerces-c/xerces-c_3.1.3.bb
new file mode 100644
index 0000000..2355c9d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/xerces-c/xerces-c_3.1.3.bb
@@ -0,0 +1,46 @@
+SUMMARY = "Xerces-c is a validating xml parser written in C++"
+DESCRIPTION = "Xerces-C++ makes it easy to give your application \
+               the ability to read and write XML data. \
+               A shared library is provided for parsing, generating, \
+               manipulating, and validating XML documents using \
+               the DOM, SAX, and SAX2 APIs."
+HOMEPAGE = "http://xerces.apache.org/xerces-c/"
+SECTION =  "libs"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRC_URI = "http://apache.lauf-forum.at/xerces/c/3/sources/${BP}.tar.bz2"
+SRC_URI[md5sum] = "5e333b55cb43e6b025ddf0e5d0f0fb0d"
+SRC_URI[sha256sum] = "fc5e5e0247b108b8d64d75aeb124cabdee9b7fcd725a89fe2242b4637b25c1fa"
+
+inherit autotools
+
+PACKAGECONFIG ??= "curl icu"
+PACKAGECONFIG[curl] = "--with-curl=${STAGING_DIR},--with-curl=no,curl"
+PACKAGECONFIG[icu] = "--with-icu=${STAGING_DIR},--with-icu=no,icu"
+
+do_install_prepend () {
+        sed -i -e 's:-L${STAGING_DIR}/lib:-L\$\{libdir\}:g' ${B}/xerces-c.pc
+}
+
+PACKAGES = "libxerces-c \
+            libxerces-c-dbg \
+            libxerces-c-dev \
+            xerces-c-samples \
+            xerces-c-samples-dbg \
+            libxerces-c-staticdev \
+	   " 
+
+FILES_libxerces-c = "${libdir}/libxerces-c-3.1.so"
+FILES_libxerces-c-dbg = "${libdir}/.debug \ 
+                         ${prefix}/src/debug "
+FILES_libxerces-c-dev = "${libdir}/lib*.la \
+                         ${libdir}/libxerces-c.so \
+                         ${libdir}/pkgconfig/xerces-c.pc \
+                         ${includedir}/xercesc \
+			 "
+FILES_xerces-c-samples = "${bindir}/*"
+FILES_xerces-c-samples-dbg = "${bindir}/.debug/"
+FILES_libxerces-c-staticdev = "${libdir}/lib*.a"
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/yajl/yajl_2.1.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/yajl/yajl_2.1.0.bb
new file mode 100644
index 0000000..1bf5389
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/yajl/yajl_2.1.0.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Yet Another JSON Library."
+
+DESCRIPTION = "YAJL is a small event-driven (SAX-style) JSON parser \
+written in ANSI C, and a small validating JSON generator."
+
+HOMEPAGE = "http://lloyd.github.com/yajl/"
+
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://COPYING;md5=39af6eb42999852bdd3ea00ad120a36d"
+
+SRC_URI = "git://github.com/lloyd/yajl"
+SRCREV = "a0ecdde0c042b9256170f2f8890dd9451a4240aa"
+
+S = "${WORKDIR}/git"
+
+inherit cmake lib_package
+
+EXTRA_OECMAKE = "-DLIB_SUFFIX=${@d.getVar('baselib', True).replace('lib', '')}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/acpica/acpica_20150515.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/acpica/acpica_20150515.bb
new file mode 100644
index 0000000..de897e1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/acpica/acpica_20150515.bb
@@ -0,0 +1,46 @@
+SUMMARY = "ACPICA tools for the development and debug of ACPI tables"
+DESCRIPTION = "The ACPI Component Architecture (ACPICA) project provides an \
+OS-independent reference implementation of the Advanced Configuration and \
+Power Interface Specification (ACPI). ACPICA code contains those portions of \
+ACPI meant to be directly integrated into the host OS as a kernel-resident \
+subsystem, and a small set of tools to assist in developing and debugging \
+ACPI tables."
+
+HOMEPAGE = "http://www.acpica.org/"
+SECTION = "console/tools"
+
+LICENSE = "BSD | GPLv2"
+LIC_FILES_CHKSUM = "file://generate/unix/readme.txt;md5=204407e197c1a01154a48f6c6280c3aa"
+
+COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux"
+
+DEPENDS = "bison flex"
+
+SRC_URI = "https://acpica.org/sites/acpica/files/acpica-unix2-${PV}.tar.gz \
+    file://no-werror.patch \
+    "
+SRC_URI[md5sum] = "2bc4a7ccc82de9df9fa964f784ecb29c"
+SRC_URI[sha256sum] = "61204ec56d71bc9bfa2ee2ade4c66f7e8541772ac72ef8ccc20b3f339cc96374"
+
+S = "${WORKDIR}/acpica-unix2-${PV}"
+
+EXTRA_OEMAKE = "CC='${CC}' 'OPT_CFLAGS=-Wall'"
+
+do_install() {
+    install -D -p -m0755 generate/unix/bin*/iasl ${D}${bindir}/iasl
+    install -D -p -m0755 generate/unix/bin*/acpibin ${D}${bindir}/acpibin
+    install -D -p -m0755 generate/unix/bin*/acpiexec ${D}${bindir}/acpiexec
+    install -D -p -m0755 generate/unix/bin*/acpihelp ${D}${bindir}/acpihelp
+    install -D -p -m0755 generate/unix/bin*/acpinames ${D}${bindir}/acpinames
+    install -D -p -m0755 generate/unix/bin*/acpisrc ${D}${bindir}/acpisrc
+    install -D -p -m0755 generate/unix/bin*/acpixtract ${D}${bindir}/acpixtract
+}
+
+# iasl*.bb is a subset of this recipe, so RREPLACE it
+PROVIDES = "iasl"
+RPROVIDES_${PN} += "iasl"
+RREPLACES_${PN} += "iasl"
+RCONFLIGHTS_${PN} += "iasl"
+
+NATIVE_INSTALL_WORKS = "1"
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/acpica/acpitests/aapits-linux.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/acpica/acpitests/aapits-linux.patch
new file mode 100644
index 0000000..7c5d6b0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/acpica/acpitests/aapits-linux.patch
@@ -0,0 +1,336 @@
+From: Al Stone <ahs3@ahs3.net>
+Date: Mon, 7 Apr 2014 19:09:37 +0000
+Subject: [PATCH 1/2] Fixup aapits build
+
+From http://git.linaro.org/people/al.stone/acpica-tools.git
+Upstream-status: Unknown
+
+diff -urN acpica-unix2-20130626/tests/aapits/atexec.c acpica-unix2-20130626-aapits/tests/aapits/atexec.c
+--- acpica-unix2-20130626/tests/aapits/atexec.c	2013-01-17 12:48:28.000000000 -0700
++++ acpica-unix2-20130626-aapits/tests/aapits/atexec.c	2013-07-25 13:44:23.023894441 -0600
+@@ -639,6 +639,7 @@
+ }
+ 
+ 
++#if ACPI_MACHINE_WIDTH == 32
+ /*******************************************************************************
+  *
+  * FUNCTION:    AtBuildLocalRSDT
+@@ -757,8 +758,9 @@
+         LocalRSDT->Header.Checksum = (UINT8)~LocalRSDT->Header.Checksum;
+     }
+ }
++#endif
+ 
+ 
+ /*******************************************************************************
+  *
+  * FUNCTION:    AtBuildLocalXSDT
+@@ -1424,7 +1426,7 @@
+         ACPI_WARNING ((AE_INFO,
+             "Request on [%4.4s] is beyond region limit Req-%X+%X, Base=%X, Len-%X\n",
+             (RegionObject->Region.Node)->Name.Ascii, (UINT32) Address,
+-            ByteWidth, (UINT32) BufferAddress, Length));
++            ByteWidth, (UINT32) BufferAddress, (UINT32) Length));
+ 
+         return (AE_AML_REGION_LIMIT);
+     }
+@@ -1792,7 +1796,9 @@
+             Path, Obj.Integer.Value, Value);
+ #else
+         printf ("API Error: Value of %s is 0x%llx instead of expected 0x%llx\n",
+-            Path, Obj.Integer.Value, Value);
++            Path,
++	    (long long unsigned int) Obj.Integer.Value,
++	    (long long unsigned int) Value);
+ #endif
+         Status = AE_ERROR;
+     }
+@@ -1871,7 +1877,7 @@
+     {
+         TestErrors++;
+         printf ("Test Error: cannot allocate buffer of %d bytes\n",
+-            Results.Length);
++                (int) Results.Length);
+         return (AE_NO_MEMORY);
+     }
+     Results.Pointer = Object;
+@@ -1952,7 +1956,8 @@
+     {
+         printf ("AtCheckBuffer: unexpected length %d of Buffer vs"
+             " calculated %d bytes\n",
+-            Results.Length, ACPI_ROUND_UP_TO_NATIVE_WORD(sizeof (ACPI_OBJECT) + Length));
++            (int)Results.Length,
++	    (int)(ACPI_ROUND_UP_TO_NATIVE_WORD(sizeof (ACPI_OBJECT) + Length)));
+     }
+ 
+     /* Initialize the return buffer structure */
+@@ -1961,7 +1968,7 @@
+     {
+         TestErrors++;
+         printf ("Test Error: cannot allocate buffer of %d bytes\n",
+-            Results.Length);
++            (int) Results.Length);
+         return (AE_NO_MEMORY);
+     }
+     Results.Pointer = Object;
+diff -urN acpica-unix2-20130626/tests/aapits/atinit.c acpica-unix2-20130626-aapits/tests/aapits/atinit.c
+--- acpica-unix2-20130626/tests/aapits/atinit.c	2013-01-17 12:48:28.000000000 -0700
++++ acpica-unix2-20130626-aapits/tests/aapits/atinit.c	2013-07-25 13:20:19.706705960 -0600
+@@ -3024,7 +3024,7 @@
+             AapiErrors++;
+             printf ("API Error: AcpiGetSystemInfo() returned"
+                 " Length %d, expected %d\n",
+-                OutBuffer.Length, sizeof (Info));
++                (int) OutBuffer.Length, (int) sizeof (Info));
+             return (AE_ERROR);
+         }
+ 
+@@ -3046,7 +3046,7 @@
+             AapiErrors++;
+             printf ("API Error: AcpiGetSystemInfo() returned"
+                 " Length %d, expected %d\n",
+-                OutBuffer.Length, sizeof (Info));
++                (int) OutBuffer.Length, (int) sizeof (Info));
+             return (AE_ERROR);
+         }
+ 
+@@ -3066,7 +3066,7 @@
+             AapiErrors++;
+             printf ("API Error: AcpiGetSystemInfo() returned"
+                 " Length %d, expected %d\n",
+-                OutBuffer.Length, sizeof (Info));
++                (int) OutBuffer.Length, (int) sizeof (Info));
+             return (AE_ERROR);
+         }
+         else if (OutBuffer.Pointer != &Info)
+@@ -3149,7 +3149,7 @@
+             AapiErrors++;
+             printf ("API Error: AcpiGetSystemInfo() returned"
+                 " Length %d, expected %d\n",
+-                OutBuffer.Length, sizeof (Info));
++                (int) OutBuffer.Length, (int) sizeof (Info));
+             return (AE_ERROR);
+         }
+         else if (OutBuffer.Pointer != &Info)
+@@ -3214,7 +3214,7 @@
+             AapiErrors++;
+             printf ("API Error: AcpiGetSystemInfo() returned"
+                 " Length %d, expected %d\n",
+-                OutBuffer.Length, sizeof (ACPI_SYSTEM_INFO));
++                (int) OutBuffer.Length, (int) sizeof (ACPI_SYSTEM_INFO));
+             return (AE_ERROR);
+         }
+         else
+diff -urN acpica-unix2-20130626/tests/aapits/atmain.c acpica-unix2-20130626-aapits/tests/aapits/atmain.c
+--- acpica-unix2-20130626/tests/aapits/atmain.c	2013-01-17 12:48:28.000000000 -0700
++++ acpica-unix2-20130626-aapits/tests/aapits/atmain.c	2013-07-25 13:18:22.083323948 -0600
+@@ -315,7 +315,7 @@
+     {
+         printf ("ACPICA API TS err: test num %ld of test case %ld"
+             " is not implemented\n",
+-            test_num, test_case);
++            (long int) test_num, (long int) test_case);
+         return (AtRetNotImpl);
+     }
+ 
+@@ -430,7 +432,7 @@
+     if (test_case < 1 || test_case > AT_TEST_CASE_NUM)
+     {
+         printf ("ACPICA API TS err: test case %ld is out of range 1 - %d\n",
+-            test_case, AT_TEST_CASE_NUM);
++            (long int) test_case, (int) AT_TEST_CASE_NUM);
+         return (AtRetBadParam);
+     }
+ 
+@@ -438,7 +440,7 @@
+     if (test_num < 0 || test_num > AtTestCase[test_case].TestsNum)
+     {
+         printf ("ACPICA API TS err: test num %ld is out of range 0 - %d\n",
+-            test_num, AtTestCase[test_case].TestsNum);
++            (long int) test_num, AtTestCase[test_case].TestsNum);
+         return (AtRetBadParam);
+     }
+
+diff -urN acpica-unix2-20130626/tests/aapits/atnamespace.c acpica-unix2-20130626-aapits/tests/aapits/atnamespace.c
+--- acpica-unix2-20130626/tests/aapits/atnamespace.c	2013-01-17 12:48:28.000000000 -0700
++++ acpica-unix2-20130626-aapits/tests/aapits/atnamespace.c	2013-07-25 13:24:15.366466707 -0600
+@@ -2535,7 +2535,8 @@
+ #else
+                 printf ("API Error: Address of %s (0x%llX) != (0x%llX)\n",
+                     PathNames[2 * i + 1],
+-                    Info->Address, ExpectedInfo[i].Address);
++                    (long long unsigned int) Info->Address,
++		    (long long unsigned int) ExpectedInfo[i].Address);
+ #endif
+ #else
+                 printf ("API Error: Address of %s (0x%X) != (0x%X)\n",
+@@ -2908,7 +2909,8 @@
+         TestErrors++;
+         printf ("AtGetNextObjectTypeCommon: different numbers of entities"
+             "in TypesNames (%d) and LevelTypes0000 (%d)\n",
+-            TypesCount, sizeof (LevelTypes0000) / sizeof (ACPI_OBJECT_TYPE));
++            TypesCount,
++	    (int) (sizeof (LevelTypes0000) / sizeof (ACPI_OBJECT_TYPE)));
+         return (AE_ERROR);
+     }
+ 
+@@ -4192,7 +4194,9 @@
+             Pathname, Obj.Integer.Value, Value);
+ #else
+         printf ("API Error: Value of %s is 0x%llx instead of expected 0x%llx\n",
+-            Pathname, Obj.Integer.Value, Value);
++            Pathname,
++	    (long long unsigned int) Obj.Integer.Value,
++	    (long long unsigned int) Value);
+ #endif
+         Status = AE_ERROR;
+     }
+@@ -5199,7 +5203,7 @@
+             {
+                 AapiErrors++;
+                 printf ("API Error: AcpiOsAllocate(%d) returned NULL\n",
+-                    OutName.Length);
++                    (int) OutName.Length);
+                 return (AE_ERROR);
+             }
+         }
+diff -urN acpica-unix2-20130626/tests/aapits/atosxfctrl.c acpica-unix2-20130626-aapits/tests/aapits/atosxfctrl.c
+--- acpica-unix2-20130626/tests/aapits/atosxfctrl.c	2013-01-17 12:48:28.000000000 -0700
++++ acpica-unix2-20130626-aapits/tests/aapits/atosxfctrl.c	2013-07-25 13:30:00.375492751 -0600
+@@ -737,13 +737,15 @@
+ #if ACPI_MACHINE_WIDTH == 64
+ #ifdef    _MSC_VER
+         printf("OsxfCtrlFingReg: unexpected Width %d of Reg 0x%I64x\n",
++            Width, Address);
+ #else
+         printf("OsxfCtrlFingReg: unexpected Width %d of Reg 0x%llx\n",
++            Width, (long long unsigned int) Address);
+ #endif
+ #else
+         printf("OsxfCtrlFingReg: unexpected Width %d of Reg 0x%x\n",
+-#endif
+             Width, Address);
++#endif
+         return (NULL);
+     }
+ 
+@@ -764,15 +766,19 @@
+ #ifdef    _MSC_VER
+                 printf("OsxfCtrlFingReg: intersection Regs (0x%I64x: 0x%x)"
+                     " and (0x%I64x: 0x%x)\n",
++                    Reg->Address, Reg->Width, Address, Width);
+ #else
+                 printf("OsxfCtrlFingReg: intersection Regs (0x%llx: 0x%x)"
+                     " and (0x%llx: 0x%x)\n",
++                    (long long unsigned int) Reg->Address,
++		    Reg->Width,
++		    (long long unsigned int) Address, Width);
+ #endif
+ #else
+                 printf("OsxfCtrlFingReg: intersection Regs (0x%x: 0x%x)"
+                     " and (0x%x: 0x%x)\n",
+-#endif
+                     Reg->Address, Reg->Width, Address, Width);
++#endif
+                 return (NULL);
+             }
+         }
+@@ -786,13 +792,15 @@
+ #if ACPI_MACHINE_WIDTH == 64
+ #ifdef    _MSC_VER
+             printf("OsxfCtrlFingReg: no memory for Reg (0x%I64x: 0x%x)\n",
++                Reg->Address, Reg->Width);
+ #else
+             printf("OsxfCtrlFingReg: no memory for Reg (0x%llx: 0x%x)\n",
++                (long long unsigned int) Reg->Address, Reg->Width);
+ #endif
+ #else
+             printf("OsxfCtrlFingReg: no memory for Reg (0x%x: 0x%x)\n",
+-#endif
+                 Reg->Address, Reg->Width);
++#endif
+             return (NULL);
+         }
+         Reg->Type = Type;
+@@ -932,14 +940,19 @@
+ #if ACPI_MACHINE_WIDTH == 64
+ #ifdef    _MSC_VER
+             printf("%.2u (%s Address 0x%I64x: Width %.2u) r/w counts: %u/%u\n",
++                i, (Reg->Type == EMUL_REG_SYS)? "SYS": "IO",
++                Reg->Address, Reg->Width, Reg->ReadCount, Reg->WriteCount);
+ #else
+             printf("%.2u (%s Address 0x%llx: Width %.2u) r/w counts: %u/%u\n",
++                i, (Reg->Type == EMUL_REG_SYS)? "SYS": "IO",
++                (long long unsigned int) Reg->Address,
++		Reg->Width, Reg->ReadCount, Reg->WriteCount);
+ #endif
+ #else
+             printf("%.2u (%s Address 0x%.4x: Width %.2u) r/w counts: %u/%u\n",
+-#endif
+                 i, (Reg->Type == EMUL_REG_SYS)? "SYS": "IO",
+                 Reg->Address, Reg->Width, Reg->ReadCount, Reg->WriteCount);
++#endif
+             Reg = Reg->Next;
+             i++;
+         }
+diff -urN acpica-unix2-20130626/tests/aapits/atresource.c acpica-unix2-20130626-aapits/tests/aapits/atresource.c
+--- acpica-unix2-20130626/tests/aapits/atresource.c	2013-01-17 12:48:29.000000000 -0700
++++ acpica-unix2-20130626-aapits/tests/aapits/atresource.c	2013-07-25 13:25:49.423565947 -0600
+@@ -174,7 +174,7 @@
+         AapiErrors++;
+         printf ("API Error: AcpiGetCurrentResources(%s) returned Length %d,"
+             " expected %d\n",
+-            Pathname, OutBuffer.Length, RT0000_DEV0_CRS_LEN);
++            Pathname, (int) OutBuffer.Length, RT0000_DEV0_CRS_LEN);
+         return (AE_ERROR);
+     }
+ 
+@@ -490,7 +490,7 @@
+         AapiErrors++;
+         printf ("API Error: AcpiGetCurrentResources(%s) returned Length %d,"
+             " expected %d\n",
+-            Pathname, OutBuffer.Length, RT0000_DEV0_CRS_LEN);
++            Pathname, (int) OutBuffer.Length, RT0000_DEV0_CRS_LEN);
+         return (AE_ERROR);
+     }
+ 
+@@ -689,7 +689,7 @@
+         AapiErrors++;
+         printf ("Api Error: Resource->Length (%d) != %d\n",
+             CurrentResource->Length,
+-            ACPI_ROUND_UP_TO_NATIVE_WORD (ACPI_RS_SIZE (ACPI_RESOURCE_IRQ)));
++            (int) (ACPI_ROUND_UP_TO_NATIVE_WORD (ACPI_RS_SIZE (ACPI_RESOURCE_IRQ))));
+     }
+ 
+     if (CurrentResource->Data.Irq.Triggering != 0) /* Level-Triggered */
+@@ -981,7 +981,7 @@
+         AapiErrors++;
+         printf ("API Error: AcpiGetPossibleResources(%s) returned Length %d,"
+             " expected %d\n",
+-            Pathname, OutBuffer.Length, RT0000_DEV0_CRS_LEN);
++            Pathname, (int) OutBuffer.Length, RT0000_DEV0_CRS_LEN);
+         return (AE_ERROR);
+     }
+ 
+@@ -1923,7 +1923,7 @@
+         AapiErrors++;
+         printf ("API Error: AcpiGetIrqRoutingTable(%s) returned Length %d,"
+             " expected %d\n",
+-            Pathname, OutBuffer.Length, 0xA48);
++            Pathname, (int) OutBuffer.Length, 0xA48);
+         return (AE_ERROR);
+     }
+
+diff -urN acpica-unix2-20130626/tests/aapits/Makefile acpica-unix2-20130626-aapits/tests/aapits/Makefile
+--- acpica-unix2-20130626/tests/aapits/Makefile	2013-01-17 12:48:29.000000000 -0700
++++ acpica-unix2-20130626-aapits/tests/aapits/Makefile	2013-07-25 15:17:09.309236422 -0600
+@@ -194,7 +194,7 @@
+ CFLAGS+= -Wall -g -D_LINUX -DNDEBUG -D_CONSOLE -DACPI_APITS -DACPI_EXEC_APP -D_MULTI_THREADED -Wstrict-prototypes -I../../source/include
+
+ 
+-acpiexec : $(patsubst %.c,%.o, $(SRCS))
++$(PROG) : $(patsubst %.c,%.o, $(SRCS))
+ 	$(CC) $(LDFLAGS) $(patsubst %.c,%.o, $(SRCS)) -o $(PROG)
+ 
+ CLEANFILES= $(PROG)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/acpica/acpitests/aapits-makefile.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/acpica/acpitests/aapits-makefile.patch
new file mode 100644
index 0000000..4d9e997
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/acpica/acpitests/aapits-makefile.patch
@@ -0,0 +1,34 @@
+From: Al Stone <ahs3@ahs3.net>
+Date: Mon, 7 Apr 2014 19:09:37 +0000
+Subject: [PATCH 1/2] Fixup aapits build
+
+From http://git.linaro.org/people/al.stone/acpica-tools.git
+Upstream-status: Unknown
+
+diff -urN acpica-unix2-20140325/tests/aapits/Makefile acpica-unix2-20140325/tests/aapits/Makefile
+--- acpica-unix2-20140325/tests/aapits/Makefile	2014-04-05 14:23:14.683636794 -0600
++++ acpica-unix2-20140325-aapits/tests/aapits/Makefile	2014-04-05 15:10:57.879184598 -0600
+@@ -16,6 +16,7 @@
+ 	atosxfwrap.c \
+ 	osunixxf.c \
+ 	../../source/common/ahids.c \
++	../../source/common/ahuuids.c \
+ 	../../source/common/cmfsize.c \
+ 	../../source/common/getopt.c \
+ 	../../source/components/hardware/hwtimer.c \
+@@ -174,6 +175,7 @@
+ 	../../source/components/utilities/utexcep.c \
+ 	../../source/components/utilities/utfileio.c \
+ 	../../source/components/utilities/utglobal.c \
++	../../source/components/utilities/uthex.c \
+ 	../../source/components/utilities/utids.c \
+ 	../../source/components/utilities/utinit.c \
+ 	../../source/components/utilities/utlock.c \
+@@ -189,6 +191,7 @@
+ 	../../source/components/utilities/utstate.c \
+ 	../../source/components/utilities/utstring.c \
+ 	../../source/components/utilities/uttrack.c \
++	../../source/components/utilities/utuuid.c \
+ 	../../source/components/utilities/utxface.c \
+ 	../../source/components/utilities/utxferror.c \
+ 	../../source/components/utilities/utxfinit.c \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/acpica/acpitests_20140828.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/acpica/acpitests_20140828.bb
new file mode 100644
index 0000000..1f6f190
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/acpica/acpitests_20140828.bb
@@ -0,0 +1,35 @@
+SUMMARY = "Test suite used to validate ACPICA"
+HOMEPAGE = "http://www.acpica.org/"
+
+LICENSE = "Intel"
+LIC_FILES_CHKSUM = "file://tests/aapits/atexec.c;beginline=1;endline=115;md5=e92bcdfcd01d117d1bda3e814bb2030a"
+
+DEPENDS = "bison flex"
+
+SRC_URI = "https://acpica.org/sites/acpica/files/acpitests-unix-${PV}.tar.gz;name=acpitests \
+           https://acpica.org/sites/acpica/files/acpica-unix2-${PV}.tar.gz;name=acpica \
+           file://aapits-linux.patch \
+           file://aapits-makefile.patch \
+"
+SRC_URI[acpitests.md5sum] = "db9d6fdaa8e3eb101d700ee5ba4938ed"
+SRC_URI[acpitests.sha256sum] = "e576c74bf1bf1c9f7348bf9419e05c8acfece7105abcdc052e66670c7af2cf00"
+SRC_URI[acpica.md5sum] = "6f05f0d10166a1b1ff6107f3d1cdf1e5"
+SRC_URI[acpica.sha256sum] = "01d8867656c5ba41dec307c4383ce676196ad4281ac2c9dec9f5be5fac6d888e"
+
+S = "${WORKDIR}/acpitests-unix-${PV}"
+
+EXTRA_OEMAKE = "'CC=${TARGET_PREFIX}gcc ${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS}' 'OPT_CFLAGS=-Wall'"
+
+# The Makefiles expect a specific layout
+do_compile() {
+    cp -af ${WORKDIR}/acpica-unix2-${PV}/source ${S}
+    cd tests/aapits
+    oe_runmake
+}
+
+do_install() {
+    install -d ${D}${bindir}
+    install -m0755 tests/aapits/bin/aapits ${D}${bindir}
+}
+
+COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/acpica/files/no-werror.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/acpica/files/no-werror.patch
new file mode 100644
index 0000000..5d28f47
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/acpica/files/no-werror.patch
@@ -0,0 +1,32 @@
+Description: remove -Werror flag
+Forwarded: not-needed
+Author: Fathi Boudra <fathi.boudra@linaro.org>
+
+---
+ generate/unix/iasl/Makefile |   12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+--- a/generate/unix/iasl/Makefile
++++ b/generate/unix/iasl/Makefile
+@@ -266,19 +266,19 @@ $(OBJDIR)/prparser.y.h: $(OBJDIR)/prpars
+ # by the utilities above and they are not necessarily ANSI C, etc.
+ #
+ $(OBJDIR)/aslcompilerlex.o :   $(OBJDIR)/aslcompilerlex.c
+-	$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
++	$(CC) -c $(CFLAGS) -Wall -o$@ $<
+ 
+ $(OBJDIR)/aslcompilerparse.o : $(OBJDIR)/aslcompilerparse.c
+-	$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
++	$(CC) -c $(CFLAGS) -Wall -o$@ $<
+ 
+ $(OBJDIR)/dtparserlex.o :      $(OBJDIR)/dtparserlex.c
+-	$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
++	$(CC) -c $(CFLAGS) -Wall -o$@ $<
+ 
+ $(OBJDIR)/dtparserparse.o :    $(OBJDIR)/dtparserparse.c
+-	$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
++	$(CC) -c $(CFLAGS) -Wall -o$@ $<
+ 
+ $(OBJDIR)/prparserlex.o :      $(OBJDIR)/prparserlex.c
+-	$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
++	$(CC) -c $(CFLAGS) -Wall -o$@ $<
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/acpitool/acpitool_0.5.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/acpitool/acpitool_0.5.1.bb
new file mode 100644
index 0000000..bc9669d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/acpitool/acpitool_0.5.1.bb
@@ -0,0 +1,13 @@
+DESCRIPTION = "Acpitool is a Linux ACPI client. It simply reads /proc/acpi or /sys/class entries \
+and presents the output in a meaningfull, human-readable format."
+HOMEPAGE = "http://freeunix.dyndns.org:8088/site2/acpitool.shtml"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+SRC_URI = "http://nchc.dl.sourceforge.net/project/${BPN}/${BPN}/${PV}/${BP}.tar.bz2 \
+    "
+
+inherit autotools
+
+SRC_URI[md5sum] = "9e4ec55201be0be71ffbc56d38b42b57"
+SRC_URI[sha256sum] = "004fb6cd43102918b6302cf537a2db7ceadda04aef2e0906ddf230f820dad34f"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/0001-Fix-error.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/0001-Fix-error.patch
new file mode 100644
index 0000000..d1a303c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/0001-Fix-error.patch
@@ -0,0 +1,26 @@
+From b8e791ce93a467081fb1594b91841e2f57c634a0 Mon Sep 17 00:00:00 2001
+From: Qian Lei <qianl.fnst@cn.fujitsu.com>
+Date: Fri, 16 Jan 2015 18:37:26 +0800
+Subject: [PATCH] Fix error
+
+Signed-off-by: Qian Lei <qianl.fnst@cn.fujitsu.com>
+---
+ swig/python/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/swig/python/CMakeLists.txt b/swig/python/CMakeLists.txt
+index 3976296..8073fc8 100644
+--- a/swig/python/CMakeLists.txt
++++ b/swig/python/CMakeLists.txt
+@@ -27,7 +27,7 @@ SET( SWIG_INPUT "${CMAKE_CURRENT_SOURCE_DIR}/../cmpi.i" )
+ ADD_CUSTOM_COMMAND (
+    OUTPUT  ${SWIG_OUTPUT}
+    COMMAND ${CMAKE_COMMAND} -E echo_append "Creating wrapper code for Python ..."
+-   COMMAND ${SWIG_EXECUTABLE} -python -Wall -threads -features autodoc -o ${SWIG_OUTPUT} -outdir ${CMAKE_CURRENT_BINARY_DIR} -I/usr/include ${SWIG_INPUT}
++   COMMAND ${SWIG_EXECUTABLE} -python -Wall -threads -features autodoc -o ${SWIG_OUTPUT} -outdir ${CMAKE_CURRENT_BINARY_DIR} -I$ENV{STAGING_INCDIR} ${SWIG_INPUT}
+    COMMAND ${CMAKE_COMMAND} -E echo "Done."
+    WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../*.i
+-- 
+1.8.3.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/0001-Modify-cmakelist.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/0001-Modify-cmakelist.patch
new file mode 100644
index 0000000..92e5e56
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/0001-Modify-cmakelist.patch
@@ -0,0 +1,41 @@
+From 070822507befe7c1b8bb1be2d36cb12141d03b8f Mon Sep 17 00:00:00 2001
+From: Qian Lei <qianl.fnst@cn.fujitsu.com>
+Date: Tue, 6 Jan 2015 18:38:32 +0800
+Subject: [PATCH] Change the install path in cmakelist
+
+Upstream-Status: Pending
+Signed-off-by: Qian Lei <qianl.fnst@cn.fujitsu.com>
+---
+ swig/python/CMakeLists.txt | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/swig/python/CMakeLists.txt b/swig/python/CMakeLists.txt
+index 3976296..93c87c1 100644
+--- a/swig/python/CMakeLists.txt
++++ b/swig/python/CMakeLists.txt
+@@ -56,18 +56,18 @@ TARGET_LINK_LIBRARIES( ${NAME} util )
+ 
+ INSTALL(TARGETS ${NAME} LIBRARY DESTINATION ${CMPI_LIBRARY_DIR})
+ # .py: swig generated
+-INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/cmpi.py DESTINATION ${PYTHON_SITE_DIR} )
++INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/cmpi.py DESTINATION $ENV{ENV_INSTALL_PATH} )
+ 
+ 
+ #
+ # cmpi_pywbem_bindings.py: provider implementation
+ #
+-INSTALL(FILES cmpi_pywbem_bindings.py DESTINATION ${PYTHON_SITE_DIR} )
++INSTALL(FILES cmpi_pywbem_bindings.py DESTINATION $ENV{ENV_INSTALL_PATH} )
+ #INSTALL(FILES Py_UnixProcessProvider.py DESTINATION /usr/lib/pycim )
+ 
+-INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c \"from py_compile import compile; compile('\$ENV{DESTDIR}${PYTHON_SITE_DIR}/cmpi.py', dfile='${PYTHON_SITE_DIR}/cmpi.py')\")")
++INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c \"from py_compile import compile; compile('\$ENV{DESTDIR}$ENV{ENV_INSTALL_PATH}/cmpi.py', dfile='\$ENV{ENV_INSTALL_PATH}/cmpi.py')\")")
+ 
+-INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c \"from py_compile import compile; compile('\$ENV{DESTDIR}${PYTHON_SITE_DIR}/cmpi_pywbem_bindings.py', dfile='${PYTHON_SITE_DIR}/cmpi_pywbem_bindings.py')\")")
++INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c \"from py_compile import compile; compile('\$ENV{DESTDIR}$ENV{ENV_INSTALL_PATH}/cmpi_pywbem_bindings.py', dfile='$ENV{ENV_INSTALL_PATH}/cmpi_pywbem_bindings.py')\")")
+ 
+ 
+ 
+-- 
+1.8.3.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/0001-fix-the-build-error-when-python-3.0.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/0001-fix-the-build-error-when-python-3.0.patch
new file mode 100644
index 0000000..0d6f029
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/0001-fix-the-build-error-when-python-3.0.patch
@@ -0,0 +1,31 @@
+From 323ced03a66e6cd963d8277b66cfcc7dce740be7 Mon Sep 17 00:00:00 2001
+From: Lei Maohui <leimaohui@cn.fujitsu.com>
+Date: Fri, 17 Jul 2015 01:33:43 -0700
+Subject: [PATCH] fix Xthe build error when python>3.0
+
+Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
+---
+ src/target_python.c | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/src/target_python.c b/src/target_python.c
+index 90b43a1..2b76c9e 100644
+--- a/src/target_python.c
++++ b/src/target_python.c
+@@ -167,7 +167,12 @@ PyGlobalInitialize(const CMPIBroker* broker, CMPIStatus* st)
+   
+   Py_SetProgramName("cmpi_swig");
+   Py_Initialize();
+-  SWIGEXPORT void SWIG_init(void);
++#if PY_VERSION_HEX >= 0x03000000
++SWIGEXPORT PyObject*
++#else
++  SWIGEXPORT void 
++#endif
++  SWIG_init(void);
+   SWIG_init();
+   cmpiMainPyThreadState = PyGILState_GetThisThreadState();
+   PyEval_ReleaseThread(cmpiMainPyThreadState); 
+-- 
+2.1.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/cmpi-bindings-0.4.17-no-ruby-perl.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/cmpi-bindings-0.4.17-no-ruby-perl.patch
new file mode 100644
index 0000000..2072da7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/cmpi-bindings-0.4.17-no-ruby-perl.patch
@@ -0,0 +1,47 @@
+From 7dd01e33f9dac75f177113de9a8ff458d4263a11 Mon Sep 17 00:00:00 2001
+From: Lei Maohui <leimaohui@cn.fujitsu.com>
+Date: Mon, 24 Aug 2015 11:00:13 +0900
+Subject: [PATCH] cmpi-bindings-0.4.17 no ruby perl
+
+Port from Fedora20
+
+Upstream-Status: Pending
+Signed-off-by: Qian Lei <qianl.fnst@cn.fujitsu.com>
+---
+ swig/CMakeLists.txt | 22 +++++++++++-----------
+ 1 file changed, 11 insertions(+), 11 deletions(-)
+
+diff --git a/swig/CMakeLists.txt b/swig/CMakeLists.txt
+index 8b5555c..c2655b9 100644
+--- a/swig/CMakeLists.txt
++++ b/swig/CMakeLists.txt
+@@ -15,15 +15,15 @@ IF (PYTHON_LIBRARY)
+   ENDIF (PYTHON_LINK_LIBS)
+ ENDIF (PYTHON_LIBRARY)
+ 
+-FIND_PACKAGE(Perl)
+-IF (PERL_EXECUTABLE)
+-  MESSAGE(STATUS "Building Perl...")
+-  ADD_SUBDIRECTORY(perl)
+-ENDIF (PERL_EXECUTABLE)
++#FIND_PACKAGE(Perl)
++#IF (PERL_EXECUTABLE)
++#  MESSAGE(STATUS "Building Perl...")
++#  ADD_SUBDIRECTORY(perl)
++#ENDIF (PERL_EXECUTABLE)
+ 
+-FIND_PACKAGE(Ruby)
+-IF (RUBY_LIBRARY AND RUBY_INCLUDE_PATH)
+-  MESSAGE(STATUS "Building Ruby...")
+-  ADD_SUBDIRECTORY(ruby)
+-  OPTION( BUILD_RUBY_GEM "Build Ruby GEM" YES )
+-ENDIF (RUBY_LIBRARY AND RUBY_INCLUDE_PATH)
++#FIND_PACKAGE(Ruby)
++#IF (RUBY_LIBRARY AND RUBY_INCLUDE_PATH)
++#  MESSAGE(STATUS "Building Ruby...")
++#  ADD_SUBDIRECTORY(ruby)
++#  OPTION( BUILD_RUBY_GEM "Build Ruby GEM" YES )
++#ENDIF (RUBY_LIBRARY AND RUBY_INCLUDE_PATH)
+-- 
+1.8.4.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/cmpi-bindings-0.4.17-sblim-sigsegv.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/cmpi-bindings-0.4.17-sblim-sigsegv.patch
new file mode 100644
index 0000000..b993372
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/cmpi-bindings-0.4.17-sblim-sigsegv.patch
@@ -0,0 +1,22 @@
+Port from Fedora20
+
+Upstream-Status: Pending
+Signed-off-by: Qian Lei <qianl.fnst@cn.fujitsu.com>
+
+diff -up cmpi-bindings-0.4.17/swig/python/cmpi_pywbem_bindings.py.orig cmpi-bindings-0.4.17/swig/python/cmpi_pywbem_bindings.py
+--- cmpi-bindings-0.4.17/swig/python/cmpi_pywbem_bindings.py.orig	2012-03-01 17:05:31.878367281 +0100
++++ cmpi-bindings-0.4.17/swig/python/cmpi_pywbem_bindings.py	2012-03-01 17:06:34.718110137 +0100
+@@ -350,10 +350,10 @@ class BrokerCIMOMHandle(object):
+             allow_null_ns = False
+         else:
+             allow_null_ns = True
+-            if self.broker.name() == 'RequestHandler':
++#            if self.broker.name() == 'RequestHandler':
+                 # Check sblim bug #2185410.
+-                if instance.path is not None:
+-                    instance.path.namespace = None
++#                if instance.path is not None:
++#                    instance.path.namespace = None
+         inst = self.proxy.pywbem2cmpi_inst(instance, allow_null_ns)
+         rv = self.broker.deliverIndication(self.ctx, ns, inst)
+         return rv
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/cmpi-bindings-0.9.5-python-lib-dir.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/cmpi-bindings-0.9.5-python-lib-dir.patch
new file mode 100644
index 0000000..b6a51ec
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/cmpi-bindings-0.9.5-python-lib-dir.patch
@@ -0,0 +1,17 @@
+Port from Fedora20
+
+Upstream-Status: Pending
+Signed-off-by: Qian Lei <qianl.fnst@cn.fujitsu.com>
+
+diff -up cmpi-bindings-0.9.5/swig/python/CMakeLists.txt.old cmpi-bindings-0.9.5/swig/python/CMakeLists.txt
+--- cmpi-bindings-0.9.5/swig/python/CMakeLists.txt.old	2013-08-06 15:57:03.576285764 +0200
++++ cmpi-bindings-0.9.5/swig/python/CMakeLists.txt	2013-08-06 15:57:14.891345941 +0200
+@@ -9,7 +9,7 @@ SET (BUILD_SHARED_LIBS ON)
+ 
+ FIND_PACKAGE(PythonInterp REQUIRED)
+ 
+-EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout; from distutils import sysconfig; stdout.write(sysconfig.get_python_lib())" OUTPUT_VARIABLE PYTHON_LIB_DIR)
++EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout; from distutils import sysconfig; stdout.write(sysconfig.get_python_lib(1))" OUTPUT_VARIABLE PYTHON_LIB_DIR)
+ 
+ IF (NOT PYTHON_SITE_DIR)
+   SET (PYTHON_SITE_DIR ${PYTHON_LIB_DIR})
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings_git.bb
new file mode 100644
index 0000000..a2747c3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings_git.bb
@@ -0,0 +1,37 @@
+SUMMARY = "Adapter to write and run CMPI-type CIM providers"
+DESCRIPTION = "CMPI-compliant provider interface for various languages via SWIG"
+HOMEPAGE = "http://github.com/kkaempf/cmpi-bindings"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b19ee058d2d5f69af45da98051d91064"
+SECTION = "Development/Libraries"
+DEPENDS = "swig-native python sblim-cmpi-devel"
+
+SRC_URI = "git://github.com/kkaempf/cmpi-bindings.git;protocol=http \
+           file://cmpi-bindings-0.4.17-no-ruby-perl.patch \
+           file://cmpi-bindings-0.4.17-sblim-sigsegv.patch \
+           file://cmpi-bindings-0.9.5-python-lib-dir.patch \
+           file://0001-Modify-cmakelist.patch \
+           file://0001-Fix-error.patch \
+           file://0001-fix-the-build-error-when-python-3.0.patch \
+          "
+
+SRCREV = "62f60e065aa1b901f826e4f530c0573ae32d065e"
+S = "${WORKDIR}/git"
+
+inherit cmake pythonnative
+
+EXTRA_OECMAKE = "-DLIB='${baselib}' \
+                 -DPYTHON_INCLUDE_PATH=${STAGING_INCDIR}/python${PYTHON_BASEVERSION}"
+
+do_configure_prepend() {
+    export HOST_SYS=${HOST_SYS}
+    export BUILD_SYS=${BUILD_SYS}
+    export STAGING_LIBDIR=${STAGING_LIBDIR}
+    export STAGING_INCDIR=${STAGING_INCDIR}
+    export ENV_INSTALL_PATH=${PYTHON_SITEPACKAGES_DIR}
+}
+
+FILES_${PN} =+"${libdir}/cmpi/libpyCmpiProvider.so ${PYTHON_SITEPACKAGES_DIR}/*"
+FILES_${PN}-dbg =+ "${libdir}/cmpi/.debug/libpyCmpiProvider.so"
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-conditionally-check-libvirt.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-conditionally-check-libvirt.patch
new file mode 100644
index 0000000..d0a5804
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-conditionally-check-libvirt.patch
@@ -0,0 +1,39 @@
+[PATCH] conditionally check libvirt
+
+Upstream-Statue: Pending
+
+check if libvirt is available only when a user wants to use libvirt
+
+Signed-off-by: Roy Li <rongqing.li@windriver.com>
+---
+ configure.ac | 14 ++++++++------
+ 1 file changed, 8 insertions(+), 6 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 923498e..7206095 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -4778,12 +4778,14 @@ then
+ 		with_libxml2="no (pkg-config doesn't know libxml-2.0)"
+ 	fi
+ 
+-	$PKG_CONFIG --exists libvirt 2>/dev/null
+-	if test "$?" = "0"
+-	then
+-		with_libvirt="yes"
+-	else
+-		with_libvirt="no (pkg-config doesn't know libvirt)"
++	if test "x$enable_libvirt" = "xyes"; then
++		$PKG_CONFIG --exists libvirt 2>/dev/null
++		if test "$?" = "0"
++		then
++			with_libvirt="yes"
++		else
++			with_libvirt="no (pkg-config doesn't know libvirt)"
++		fi
+ 	fi
+ fi
+ if test "x$with_libxml2" = "xyes"
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-redefine-the-dependence.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-redefine-the-dependence.patch
new file mode 100644
index 0000000..ef6afad
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0001-redefine-the-dependence.patch
@@ -0,0 +1,28 @@
+[PATCH] define the collectd dependence
+
+Upstream-Status: Pending
+
+libavltree.la libcommon.la libheap.la are created dynamically, and in LDADD,
+but not in DEPENDENCIES
+
+Signed-off-by: Roy Li <rongqing.li@windriver.com>
+---
+ src/daemon/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/daemon/Makefile.am b/src/daemon/Makefile.am
+index 10860ec..7f826e3 100644
+--- a/src/daemon/Makefile.am
++++ b/src/daemon/Makefile.am
+@@ -49,7 +49,7 @@ collectd_CPPFLAGS =  $(AM_CPPFLAGS) $(LTDLINCL)
+ collectd_CFLAGS = $(AM_CFLAGS)
+ collectd_LDFLAGS = -export-dynamic
+ collectd_LDADD = libavltree.la libcommon.la libheap.la -lm
+-collectd_DEPENDENCIES =
++collectd_DEPENDENCIES = libavltree.la libcommon.la libheap.la
+ 
+ # Link to these libraries..
+ if BUILD_WITH_LIBRT
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/collectd-version.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/collectd-version.patch
new file mode 100644
index 0000000..86c3f65
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/collectd-version.patch
@@ -0,0 +1,29 @@
+Don't pick up version string from parent git repository
+
+If the collectd source is extracted from a tarball underneath a
+directory structure that includes another git repository, that
+repository will be picked up by "git describe" which is not
+desirable. Check whether collectd itself is a git repository and just
+use the default version if not.
+
+Upstream-Status: Pending
+
+Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
+
+diff --git a/version-gen.sh b/version-gen.sh
+index b09be8e..2671066 100755
+--- a/version-gen.sh
++++ b/version-gen.sh
+@@ -2,8 +2,10 @@
+ 
+ DEFAULT_VERSION="5.5.0.git"
+ 
+-VERSION="`git describe 2> /dev/null | grep collectd | sed -e 's/^collectd-//'`"
+-
++VERSION=""
++if test -d .git ; then
++	VERSION="`git describe 2> /dev/null | grep collectd | sed -e 's/^collectd-//'`"
++fi
+ if test -z "$VERSION"; then
+ 	VERSION="$DEFAULT_VERSION"
+ fi
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/collectd.init b/import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/collectd.init
new file mode 100644
index 0000000..95f5f73
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/collectd.init
@@ -0,0 +1,212 @@
+#!/bin/sh
+#
+# collectd - start and stop the statistics collection daemon
+# http://collectd.org/
+#
+# Copyright (C) 2005-2006 Florian Forster <octo@verplant.org>
+# Copyright (C) 2006-2009 Sebastian Harl <tokkee@debian.org>
+#
+
+### BEGIN INIT INFO
+# Provides:          collectd
+# Required-Start:    $local_fs $remote_fs
+# Required-Stop:     $local_fs $remote_fs
+# Should-Start:      $network $named $syslog $time cpufrequtils
+# Should-Stop:       $network $named $syslog
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+# Short-Description: manage the statistics collection daemon
+# Description:       collectd is the statistics collection daemon.
+#                    It is a small daemon which collects system information
+#                    periodically and provides mechanisms to monitor and store
+#                    the values in a variety of ways.
+### END INIT INFO
+
+. /etc/init.d/functions
+
+export PATH=/sbin:/bin:/usr/sbin:/usr/bin
+
+DISABLE=0
+
+NAME=collectd
+DAEMON=/usr/sbin/collectd
+
+CONFIGFILE=/etc/collectd.conf
+PIDFILE=/var/run/collectd.pid
+
+USE_COLLECTDMON=1
+COLLECTDMON_DAEMON=/usr/sbin/collectdmon
+COLLECTDMON_PIDFILE=/var/run/collectdmon.pid
+
+MAXWAIT=30
+
+# Gracefully exit if the package has been removed.
+test -x $DAEMON || exit 0
+
+if [ -r /etc/default/$NAME ]; then
+	. /etc/default/$NAME
+fi
+
+if test "$ENABLE_COREFILES" == 1; then
+	ulimit -c unlimited
+fi
+
+if test "$USE_COLLECTDMON" == 1; then
+	_PIDFILE="$COLLECTDMON_PIDFILE"
+else
+	_PIDFILE="$PIDFILE"
+fi
+
+# return:
+#   0 if config is fine
+#   1 if there is a syntax error
+#   2 if there is no configuration
+check_config() {
+	if test ! -e "$CONFIGFILE"; then
+		return 2
+	fi
+	if ! $DAEMON -t -C "$CONFIGFILE"; then
+		return 1
+	fi
+	return 0
+}
+
+# return:
+#   0 if the daemon has been started
+#   1 if the daemon was already running
+#   2 if the daemon could not be started
+#   3 if the daemon was not supposed to be started
+d_start() {
+	if test "$DISABLE" != 0; then
+		# we get here during restart
+		echo "disabled by /etc/default/$NAME"
+		return 3
+	fi
+
+	if test ! -e "$CONFIGFILE"; then
+		# we get here during restart
+		echo "disabled, no configuration ($CONFIGFILE) found"
+		return 3
+	fi
+
+	check_config
+	rc="$?"
+	if test "$rc" -ne 0; then
+		echo "not starting, configuration error"
+		return 2
+	fi
+
+	if test "$USE_COLLECTDMON" == 1; then
+		start-stop-daemon --start --quiet --oknodo --pidfile "$_PIDFILE" \
+			--exec $COLLECTDMON_DAEMON -- -P "$_PIDFILE" -- -C "$CONFIGFILE" \
+			|| return 2
+	else
+		start-stop-daemon --start --quiet --oknodo --pidfile "$_PIDFILE" \
+			--exec $DAEMON -- -C "$CONFIGFILE" -P "$_PIDFILE" \
+			|| return 2
+	fi
+	return 0
+}
+
+still_running_warning="
+WARNING: $NAME might still be running.
+In large setups it might take some time to write all pending data to
+the disk. You can adjust the waiting time in /etc/default/collectd."
+
+# return:
+#   0 if the daemon has been stopped
+#   1 if the daemon was already stopped
+#   2 if daemon could not be stopped
+d_stop() {
+	PID=$( cat "$_PIDFILE" 2> /dev/null ) || true
+
+	start-stop-daemon --stop --quiet --oknodo --pidfile "$_PIDFILE"
+	rc="$?"
+
+	if test "$rc" -eq 2; then
+		return 2
+	fi
+
+	sleep 1
+	if test -n "$PID" && kill -0 $PID 2> /dev/null; then
+		i=0
+		while kill -0 $PID 2> /dev/null; do
+			i=$(( $i + 2 ))
+			echo -n " ."
+
+			if test $i -gt $MAXWAIT; then
+				echo "$still_running_warning"
+				return 2
+			fi
+
+			sleep 2
+		done
+		return "$rc"
+	fi
+	return "$rc"
+}
+
+# return:
+#   0 if the daemon is running
+#   3 if the daemon is stopped
+d_status(){
+	if test "$USE_COLLECTDMON" == 1; then
+		status $COLLECTDMON_DAEMON
+	else
+		status $DAEMON
+	fi
+}
+
+case "$1" in
+	start)
+		echo -n "Starting $NAME"
+		d_start
+		case "$?" in
+			0|1) echo "." ;;
+			*) exit 1 ;;
+		esac
+		;;
+	stop)
+		echo -n "Stopping $NAME"
+		d_stop
+		case "$?" in
+			0|1) echo "." ;;
+			*) exit 1 ;;
+		esac
+		;;
+	status)
+		d_status
+		;;
+	restart|force-reload)
+		echo -n "Restarting $NAME"
+		check_config
+		rc="$?"
+		if test "$rc" -eq 1; then
+			echo "not restarting, configuration error"
+			exit 1
+		fi
+		d_stop
+		rc="$?"
+		case "$rc" in
+			0|1)
+				sleep 1
+				d_start
+				rc2="$?"
+				case "$rc2" in
+					0|1) echo "." ;;
+					*) exit 1 ;;
+				esac
+				;;
+			*)
+				exit 1
+				;;
+		esac
+		;;
+	*)
+		echo "Usage: $0 {start|stop|restart|force-reload|status}" >&2
+		exit 3
+		;;
+esac
+
+# vim: syntax=sh noexpandtab sw=4 ts=4 :
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/collectd.service b/import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/collectd.service
new file mode 100644
index 0000000..d835b73
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/collectd.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Collectd
+After=local-fs.target network.target
+Requires=local-fs.target network.target
+
+[Service]
+ExecStart=@SBINDIR@/collectd -C /etc/collectd.conf -f
+Restart=always
+RestartSec=10
+
+[Install]
+WantedBy=multi-user.target
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/no-gcrypt-badpath.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/no-gcrypt-badpath.patch
new file mode 100644
index 0000000..0e876ae
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/no-gcrypt-badpath.patch
@@ -0,0 +1,30 @@
+Disable defaulting of GCRYPT_LDFLAGS to -L/usr/lib
+
+Prevents "unsafe for cross compilation" warnings that cause
+do_qa_configure to fail.
+
+Upstream-Status: Inappropriate [configuration]
+
+Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
+
+Index: collectd-5.4.1/configure.ac
+===================================================================
+--- collectd-5.4.1.orig/configure.ac	2014-09-03 01:20:22.062084244 -0700
++++ collectd-5.4.1/configure.ac	2014-09-03 01:20:22.058084244 -0700
+@@ -1867,11 +1867,11 @@
+ 		GCRYPT_CPPFLAGS=`"$with_libgcrypt_config" --cflags 2>/dev/null`
+ 	fi
+ 
+-	if test "x$GCRYPT_LDFLAGS" = "x"
+-	then
+-		gcrypt_exec_prefix=`"$with_libgcrypt_config" --exec-prefix 2>/dev/null`
+-		GCRYPT_LDFLAGS="-L$gcrypt_exec_prefix/lib"
+-	fi
++#	if test "x$GCRYPT_LDFLAGS" = "x"
++#	then
++#		gcrypt_exec_prefix=`"$with_libgcrypt_config" --exec-prefix 2>/dev/null`
++#		GCRYPT_LDFLAGS="-L$gcrypt_exec_prefix/lib"
++#	fi
+ 
+ 	if test "x$GCRYPT_LIBS" = "x"
+ 	then
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd_5.5.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd_5.5.0.bb
new file mode 100644
index 0000000..6a3476f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/collectd/collectd_5.5.0.bb
@@ -0,0 +1,84 @@
+SUMMARY = "Collects and summarises system performance statistics"
+DESCRIPTION = "collectd is a daemon which collects system performance statistics periodically and provides mechanisms to store the values in a variety of ways, for example in RRD files."
+LICENSE = "GPLv2 & MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1bd21f19f7f0c61a7be8ecacb0e28854"
+
+DEPENDS = "rrdtool curl libpcap libxml2 yajl libgcrypt libtool lvm2"
+
+SRC_URI = "http://collectd.org/files/collectd-${PV}.tar.bz2 \
+           file://no-gcrypt-badpath.patch \
+           file://collectd-version.patch \
+           file://0001-redefine-the-dependence.patch  \
+           file://collectd.init \
+           file://collectd.service \
+           file://0001-conditionally-check-libvirt.patch \
+"
+SRC_URI[md5sum] = "c39305ef5514b44238b0d31f77e29e6a"
+SRC_URI[sha256sum] = "847684cf5c10de1dc34145078af3fcf6e0d168ba98c14f1343b1062a4b569e88"
+
+inherit autotools pythonnative update-rc.d pkgconfig systemd
+
+SYSTEMD_SERVICE_${PN} = "collectd.service"
+
+# Floatingpoint layout, architecture dependent
+# 'nothing', 'endianflip' or 'intswap'
+FPLAYOUT ?= "--with-fp-layout=nothing"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[openjdk] = "--with-java=${STAGING_DIR_TARGET}${libdir}/jvm,--without-java,openjdk-7"
+PACKAGECONFIG[snmp] = "--enable-snmp,--disable-snmp --with-libnetsnmp=no,net-snmp"
+PACKAGECONFIG[libmemcached] = "--with-libmemcached,--without-libmemcached,libmemcached"
+PACKAGECONFIG[iptables] = "--enable-iptables,--disable-iptables,iptables"
+PACKAGECONFIG[postgresql] = "--enable-postgresql --with-libpq=yes, \
+        --disable-postgresql --with-libpq=no,postgresql"
+PACKAGECONFIG[mysql] = "--enable-mysql --with-libmysql=yes, \
+        --disable-mysql --with-libmysql=no,mysql5"
+PACKAGECONFIG[dbi] = "--enable-dbi,--disable-dbi,libdbi"
+PACKAGECONFIG[modbus] = "--enable-modbus,--disable-modbus,libmodbus"
+PACKAGECONFIG[libowcapi] = "--with-libowcapi,--without-libowcapi,owfs"
+PACKAGECONFIG[sensors] = "--enable-sensors --with-libsensors=yes, \
+        --disable-sensors --with-libsensors=no,lmsensors"
+PACKAGECONFIG[amqp] = "--enable-amqp --with-librabbitmq=yes, \
+        --disable-amqp --with-librabbitmq=no,rabbitmq-c"
+# protobuf-c, libvirt that are currently only available in meta-virtualization layer
+PACKAGECONFIG[pinba] = "--enable-pinba,--disable-pinba,protobuf-c-native protobuf-c"
+PACKAGECONFIG[libvirt] = "--enable-libvirt,--disable-libvirt,libvirt"
+PACKAGECONFIG[libesmtp] = "--with-libesmtp,--without-libesmtp,libesmtp"
+PACKAGECONFIG[libmnl] = "--with-libmnl,--without-libmnl,libmnl"
+PACKAGECONFIG[libatasmart] = "--with-libatasmart,--without-libatasmart,libatasmart"
+PACKAGECONFIG[ldap] = "--enable-openldap --with-libldap,--disable-openldap --without-libldap, openldap"
+
+EXTRA_OECONF = " \
+                ${FPLAYOUT} \
+                --disable-perl --with-libperl=no --with-perl-bindings=no \
+                --with-libgcrypt=${STAGING_BINDIR_CROSS}/libgcrypt-config \
+                --disable-notify_desktop \
+"
+
+do_install_append() {
+    install -d ${D}${sysconfdir}/init.d
+    install -m 0755 ${WORKDIR}/collectd.init ${D}${sysconfdir}/init.d/collectd
+    sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/collectd
+    sed -i 's!/etc/!${sysconfdir}/!g' ${D}${sysconfdir}/init.d/collectd
+    sed -i 's!/var/!${localstatedir}/!g' ${D}${sysconfdir}/init.d/collectd
+    sed -i 's!^PATH=.*!PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}${sysconfdir}/init.d/collectd
+
+    # Fix configuration file to allow collectd to start up
+    sed -i 's!^#FQDNLookup[ \t]*true!FQDNLookup   false!g' ${D}${sysconfdir}/collectd.conf
+
+    rmdir "${D}${localstatedir}/run"
+    rmdir --ignore-fail-on-non-empty "${D}${localstatedir}"
+
+    # Install systemd unit files
+    install -d ${D}${systemd_unitdir}/system
+    install -m 0644 ${WORKDIR}/collectd.service ${D}${systemd_unitdir}/system
+    sed -i -e 's,@SBINDIR@,${sbindir},g' \
+        ${D}${systemd_unitdir}/system/collectd.service
+}
+
+INITSCRIPT_NAME = "collectd"
+INITSCRIPT_PARAMS = "defaults"
+
+# threshold.so load.so are also provided by gegl
+# disk.so is also provided by libgphoto2-camlibs
+PRIVATE_LIBS = "threshold.so load.so disk.so"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/corosync/corosync_2.3.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/corosync/corosync_2.3.5.bb
new file mode 100644
index 0000000..508277e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/corosync/corosync_2.3.5.bb
@@ -0,0 +1,56 @@
+SUMMARY = "The Corosync Cluster Engine and Application Programming Interfaces"
+DESCRIPTION = "This package contains the Corosync Cluster Engine Executive, several default \
+APIs and libraries, default configuration files, and an init script."
+HOMEPAGE = "http://corosync.github.io/corosync/"
+
+SECTION = "base"
+
+inherit autotools pkgconfig systemd
+
+SRC_URI = "http://build.clusterlabs.org/corosync/releases/${BP}.tar.gz"
+SRC_URI[md5sum] = "8894f00d499e0755467b381e6346f9ff"
+SRC_URI[sha256sum] = "1d48cdfa224b0ceb02e27fe9d56b738fb2a92262b04b15bb3a67e1c4248da8e2"
+
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a85eb4ce24033adb6088dd1d6ffc5e5d"
+
+DEPENDS = "groff-native nss libqb"
+
+SYSTEMD_SERVICE_${PN} = "corosync.service corosync-notifyd.service"
+SYSTEMD_AUTO_ENABLE = "enable"
+
+INITSCRIPT_NAME = "corosync-daemon"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}"
+
+PACKAGECONFIG[systemd] = "--enable-systemd --with-systemddir=${systemd_unitdir}/system/,--with-systemddir="
+
+EXTRA_OECONF = "--with-upstartdir=%{_sysconfdir}/init"
+
+do_configure_prepend() {
+    ( cd ${S}
+    ${S}/autogen.sh )
+}
+
+do_install_append() {
+    install -d ${D}${sysconfdir}/sysconfig/
+    install -d ${D}/${sysconfdir}/init.d
+    install -m 0644 ${S}/init/corosync.sysconfig.example ${D}${sysconfdir}/sysconfig/corosync
+    install -m 0644 ${S}/init/corosync-notifyd.conf.in ${D}${sysconfdir}/sysconfig/corosync-notifyd.conf
+    install -m 0644 ${S}/init/corosync.conf.in ${D}${sysconfdir}/sysconfig/corosync.conf
+    install -m 0644 ${S}/init/corosync.in ${D}${sysconfdir}/init.d/corosync
+    install -m 0644 ${S}/init/corosync-notifyd.in ${D}${sysconfdir}/init.d/corosync-notifyd
+
+    if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+        install -d ${D}${systemd_unitdir}/system
+        install -m 0644 ${S}/init/corosync.service.in ${D}${systemd_unitdir}/system/corosync.service
+        install -m 0644 ${S}/init/corosync-notifyd.service.in ${D}${systemd_unitdir}/system/corosync-notifyd.service
+        sed -i -e 's,@INITWRAPPERSDIR@,${sysconfdir}/init.d,g' ${D}${systemd_unitdir}/system/corosync.service
+        sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' ${D}${systemd_unitdir}/system/corosync-notifyd.service
+        sed -i -e 's,@SBINDIR@,${base_sbindir},g' ${D}${systemd_unitdir}/system/corosync-notifyd.service
+    fi	
+}
+
+RDEPENDS_${PN} += "bash"
+
+FILES_${PN}-dbg += "${libexecdir}/lcrso/.debug"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/dash/dash_0.5.8.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/dash/dash_0.5.8.bb
new file mode 100644
index 0000000..4961d7b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/dash/dash_0.5.8.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Small and fast POSIX-compliant shell"
+HOMEPAGE = "http://gondor.apana.org.au/~herbert/dash/"
+SECTION = "System Environment/Shells"
+
+LICENSE = "BSD & GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b5262b4a1a1bff72b48e935531976d2e"
+
+inherit autotools update-alternatives
+
+SRC_URI = "http://gondor.apana.org.au/~herbert/${BPN}/files/${BP}.tar.gz"
+SRC_URI[md5sum] = "5c152209680dab3c319e8923f6c51378"
+SRC_URI[sha256sum] = "c6db3a237747b02d20382a761397563d813b306c020ae28ce25a1c3915fac60f"
+
+EXTRA_OECONF += "--bindir=${base_bindir}"
+
+ALTERNATIVE_${PN} = "sh"
+ALTERNATIVE_LINK_NAME[sh] = "${base_bindir}/sh"
+ALTERNATIVE_TARGET[sh] = "${base_bindir}/dash"
+ALTERNATIVE_PRIORITY = "10"
+
+pkg_postinst_${PN} () {
+    grep -q "^${base_bindir}/dash$" $D${sysconfdir}/shells || echo ${base_bindir}/dash >> $D${sysconfdir}/shells
+}
+
+pkg_postrm_${PN} () {
+    printf "$(grep -v "^${base_bindir}/dash$" $D${sysconfdir}/shells)\n" > $D${sysconfdir}/shells
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/ddrescue/ddrescue_1.19.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/ddrescue/ddrescue_1.19.bb
new file mode 100644
index 0000000..27e00a5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/ddrescue/ddrescue_1.19.bb
@@ -0,0 +1,45 @@
+SUMMARY = "Data recovery tool"
+DESCRIPTION = "GNU ddrescue is a data recovery tool. It copies data \
+    from one file or block device (hard disc, cdrom, etc) to another, \
+    trying hard to rescue data in case of read errors."
+HOMEPAGE = "http://www.gnu.org/software/ddrescue/ddrescue.html"
+SECTION = "console"
+LICENSE = "GPLv2+"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=76d6e300ffd8fb9d18bd9b136a9bba13 \
+                    file://main_common.cc;beginline=5;endline=16;md5=3ec288b2676528cd2b069364e313016f"
+
+SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.lz"
+SRC_URI[md5sum] = "ed6b5b82d74cbd925db2b829350e74b1"
+SRC_URI[sha256sum] = "ed8d0c9d9aac80a9110e9cb0d0a91a7390d3bf9f816b67a62ca4eb140f4747b8"
+
+# This isn't already added by base.bbclass
+do_unpack[depends] += "lzip-native:do_populate_sysroot"
+
+CONFIGUREOPTS = "\
+    '--srcdir=${S}' \
+    '--prefix=${prefix}' \
+    '--exec-prefix=${exec_prefix}' \
+    '--bindir=${bindir}' \
+    '--datadir=${datadir}' \
+    '--infodir=${infodir}' \
+    '--sysconfdir=${sysconfdir}' \
+    'CXX=${CXX}' \
+    'CPPFLAGS=${CPPFLAGS}' \
+    'CXXFLAGS=${CXXFLAGS}' \
+    'LDFLAGS=${LDFLAGS}' \
+"
+EXTRA_OEMAKE = ""
+
+do_configure () {
+    ${S}/configure ${CONFIGUREOPTS}
+}
+
+do_install () {
+    oe_runmake 'DESTDIR=${D}' install
+    # Info dir listing isn't interesting at this point so remove it if it exists.
+    if [ -e "${D}${infodir}/dir" ]; then
+        rm -f ${D}${infodir}/dir
+    fi
+}
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/dialog/dialog_1.2-20150920.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/dialog/dialog_1.2-20150920.bb
new file mode 100644
index 0000000..6fef9d6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/dialog/dialog_1.2-20150920.bb
@@ -0,0 +1,30 @@
+SUMMARY = "display dialog boxes from shell scripts"
+DESCRIPTION = "Dialog lets you to present a variety of questions \
+or display messages using dialog boxes from a shell \
+script (or any scripting language)."
+HOMEPAGE = "http://invisible-island.net/dialog/"
+SECTION = "console/utils"
+DEPENDS = "ncurses"
+LICENSE = "LGPL-2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343"
+
+SRC_URI[md5sum] = "2b7c002b0a88ce1e0014af34b6b1ebdc"
+SRC_URI[sha256sum] = "c4e61ec5768701683dd4b5b2ebd8a31e6289fa6a1f5801e4b481085650698c05"
+
+SRC_URI = "ftp://invisible-island.net/dialog/dialog-${PV}.tgz \
+          "
+
+# hardcoded here for use in dialog-static recipe
+S = "${WORKDIR}/dialog-${PV}"
+
+inherit autotools-brokensep pkgconfig
+
+EXTRA_OECONF = "--with-ncurses \
+                --disable-rpath-hack"
+
+do_configure() {
+    gnu-configize --force
+    sed -i 's,${cf_ncuconfig_root}6-config,${cf_ncuconfig_root}-config,g' -i configure
+    sed -i 's,cf_have_ncuconfig=unknown,cf_have_ncuconfig=yes,g' -i configure
+    oe_runconf
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/dlm/dlm_4.0.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/dlm/dlm_4.0.2.bb
new file mode 100644
index 0000000..ff37305
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/dlm/dlm_4.0.2.bb
@@ -0,0 +1,49 @@
+DESCRIPTION = "dlm control daemon and tool"
+
+SECTION = "utils"
+HOMEPAGE = "https://fedorahosted.org/cluster/wiki/HomePage"
+
+REQUIRED_DISTRO_FEATURES = "systemd"
+
+SRC_URI = "https://git.fedorahosted.org/cgit/dlm.git/snapshot/${BP}.tar.xz"
+
+SRC_URI[md5sum] = "efc2ee6093aa6aa0a88aaad83e998a3f"
+SRC_URI[sha256sum] = "b89bc557aaffbab0ac005398025f247718a5589cff6574d902eaffe2b20e683e"
+
+LICENSE = "LGPLv2+ & GPLv2 & GPLv2+"
+LIC_FILES_CHKSUM = "file://README.license;md5=8f0bbcdd678df1bce9863492b6c8832d"
+
+DEPENDS = "corosync systemd"
+
+inherit pkgconfig systemd distro_features_check
+
+SYSTEMD_SERVICE_${PN} = "dlm.service"
+SYSTEMD_AUTO_ENABLE = "enable"
+
+export EXTRA_OEMAKE = ""
+
+do_compile_prepend() {
+    sed -i "s/libsystemd-daemon/libsystemd/g" ${S}/dlm_controld/Makefile
+}
+
+do_compile () {
+    oe_runmake 'CC=${CC}'
+}
+
+do_install_append (){
+    install -d ${D}${sysconfdir}/sysconfig/
+    install -d ${D}${sysconfdir}/init.d/
+    install -m 0644 ${S}/init/dlm.sysconfig ${D}${sysconfdir}/sysconfig/dlm
+    install -m 0644 ${S}/init/dlm.init ${D}${sysconfdir}/init.d/dlm
+
+    # install systemd unit files
+    if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+        install -d ${D}${systemd_unitdir}/system
+        install -m 0644 ${S}/init/dlm.service ${D}${systemd_unitdir}/system
+    fi
+}
+
+do_install() {
+    oe_runmake install DESTDIR=${D} LIBDIR=${libdir}
+}
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/efibootmgr/efibootmgr_0.12.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/efibootmgr/efibootmgr_0.12.bb
new file mode 100644
index 0000000..9b611ce
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/efibootmgr/efibootmgr_0.12.bb
@@ -0,0 +1,29 @@
+DESCRIPTION = "Linux user-space application to modify the EFI Boot Manager."
+SUMMARY = "EFI Boot Manager"
+HOMEPAGE = "https://github.com/rhinstaller/efibootmgr"
+SECTION = "base"
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
+
+DEPENDS = "pciutils zlib efivar"
+
+COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux"
+
+SRC_URI = "https://github.com/rhinstaller/efibootmgr/releases/download/${BP}/${BP}.tar.bz2 \
+           file://ldflags.patch \
+          "
+
+SRC_URI[md5sum] = "6647f5cd807bc8484135ba74fcbcc39a"
+SRC_URI[sha256sum] = "a66f5850677e86255d93cb1cead04c3c48a823a2b864c579321f2a07f00256e6"
+
+EXTRA_OEMAKE = "'CC=${CC}' 'CFLAGS=${CFLAGS} -I${S}/src/include `pkg-config --cflags efivar` \
+                 -DEFIBOOTMGR_VERSION=\"$(RELEASE_MAJOR).$(RELEASE_MINOR)\" '"
+
+do_install () {
+    install -D -p -m0755 src/efibootmgr/efibootmgr ${D}/${sbindir}/efibootmgr
+}
+
+inherit pkgconfig
+
+PNBLACKLIST[efibootmgr] ?= "Depends on blacklisted efivar"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/efibootmgr/files/ldflags.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/efibootmgr/files/ldflags.patch
new file mode 100644
index 0000000..0d5594a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/efibootmgr/files/ldflags.patch
@@ -0,0 +1,17 @@
+Upstream-Status: Pending
+
+Import this patch from meta-linaro.
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+--- efibootmgr-0.5.4.orig/Makefile
++++ efibootmgr-0.5.4/Makefile
+@@ -11,6 +11,8 @@
+   CFLAGS = $(EXTRA_CFLAGS) -DEFIBOOTMGR_VERSION=\"$(RELEASE_MAJOR).$(RELEASE_MINOR).$(RELEASE_SUBLEVEL)$(RELEASE_EXTRALEVEL)\" \
+ 	    -Wall -g -D_FILE_OFFSET_BITS=64
+ 
++  LDFLAGS += -lz
++
+   MODULES := src
+ 
+   BINDIR := /usr/sbin
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/0001-efivar-fix-for-cross-compile.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/0001-efivar-fix-for-cross-compile.patch
new file mode 100644
index 0000000..4bd7d95
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/0001-efivar-fix-for-cross-compile.patch
@@ -0,0 +1,31 @@
+From 7036e8b0dca61432970789e5397b6fb02b362c2b Mon Sep 17 00:00:00 2001
+From: Kai Kang <kai.kang@windriver.com>
+Date: Fri, 25 Sep 2015 18:14:31 +0800
+Subject: [PATCH] efivar: fix for cross compile
+
+It builds and calls elf file makeguids to generate a header file which
+doesn't work for cross compile. Fix it.
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ src/Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/Makefile b/src/Makefile
+index 6eac858..ef4eb1d 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -65,8 +65,8 @@ makeguids.o : makeguids.c
+ makeguids : makeguids.o fakeguid.o
+ 	$(CC) $(cflags) -o $@ $^ -ldl
+ 
+-include/efivar/efivar-guids.h : makeguids guids.txt
+-	./makeguids guids.txt guids.bin names.bin guid-symbols.S $@
++include/efivar/efivar-guids.h : guids.txt
++	makeguids guids.txt guids.bin names.bin guid-symbols.S $@
+ 
+ guidlist.o : guids.S include/efivar/efivar-guids.h
+ 	$(CC) $(cflags) -c -o guidlist.o guids.S
+-- 
+2.6.0.rc2.10.gf4d9753
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/efivar-drop-options-not-supported-by-lower-version-gcc.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/efivar-drop-options-not-supported-by-lower-version-gcc.patch
new file mode 100644
index 0000000..7f04b19
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar/efivar-drop-options-not-supported-by-lower-version-gcc.patch
@@ -0,0 +1,71 @@
+gcc options '-Wmaybe-uninitialized' and '-std=gnu11' are not recognized by gcc
+whose version is lower than 4.6, such as on Ubuntu 12.04. Drop them for backward
+compatible.
+
+Upstream-Status: Pending
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+diff --git a/Make.defaults b/Make.defaults
+index cc2baa9..118ae56 100644
+--- a/Make.defaults
++++ b/Make.defaults
+@@ -10,10 +10,9 @@ CFLAGS	?= -O2 -g
+ 
+ ARCH = $(shell uname -m)
+ clang_cflags =
+-gcc_cflags = -Wmaybe-uninitialized
+ cflags	:= $(CFLAGS) \
+ 	-Werror -Wall -Wsign-compare -Wstrict-aliasing \
+-	-std=gnu11 -fshort-wchar -fPIC \
++	-fshort-wchar -fPIC \
+ 	-fvisibility=hidden \
+ 	-D_GNU_SOURCE -I${TOPDIR}/src/include/efivar/ \
+ 	$(if $(filter $(CC),clang),$(clang_cflags),) \
+diff --git a/src/guid.h b/src/guid.h
+index 9542ee1..0817991 100644
+--- a/src/guid.h
++++ b/src/guid.h
+@@ -31,7 +31,8 @@ static inline int
+ real_isspace(char c)
+ {
+ 	char spaces[] = " \f\n\r\t\v";
+-	for (int i = 0; spaces[i] != '\0'; i++)
++	int i;
++	for (i = 0; spaces[i] != '\0'; i++)
+ 		if (c == spaces[i])
+ 			return 1;
+ 	return 0;
+@@ -59,7 +60,8 @@ check_sanity(const char *text, size_t len)
+ static inline int
+ check_segment_sanity(const char *text, size_t len)
+ {
+-	for(unsigned int i = 0; i < len; i++) {
++	unsigned int i;
++	for(i = 0; i < len; i++) {
+ 		if (text[i] >= '0' && text[i] <= '9')
+ 			continue;
+ 		/* "| 0x20" is tolower() without having to worry about
+diff --git a/src/makeguids.c b/src/makeguids.c
+index e9acf15..7e16cb2 100644
+--- a/src/makeguids.c
++++ b/src/makeguids.c
+@@ -150,7 +150,8 @@ main(int argc, char *argv[])
+ 
+ 	fprintf(header, "#ifndef EFIVAR_GUIDS_H\n#define EFIVAR_GUIDS_H 1\n\n");
+ 
+-	for (unsigned int i = 0; i < line-1; i++) {
++	unsigned int i, j;
++	for (i = 0; i < line-1; i++) {
+ 		if (!strcmp(outbuf[i].symbol, "efi_guid_zero"))
+ 			fprintf(symout, "\t.globl %s\n"
+ 					"\t.data\n"
+@@ -176,7 +177,7 @@ main(int argc, char *argv[])
+ 			fprintf(symout, "efi_guid_empty:\n");
+ 
+ 		uint8_t *guid_data = (uint8_t *) &outbuf[i].guid;
+-		for (unsigned int j = 0; j < sizeof (efi_guid_t); j++)
++		for (j = 0; j < sizeof (efi_guid_t); j++)
+ 			fprintf(symout,"\t.byte 0x%02x\n", guid_data[j]);
+ 
+ 		fprintf(symout, "%s_end:\n", outbuf[i].symbol);
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar_0.21.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar_0.21.bb
new file mode 100644
index 0000000..f7a4d55
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/efivar/efivar_0.21.bb
@@ -0,0 +1,39 @@
+SUMMARY = "Tools to manipulate UEFI variables"
+DESCRIPTION = "efivar provides a simple command line interface to the UEFI variable facility"
+HOMEPAGE = "https://github.com/rhinstaller/efivar"
+
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6626bb1e20189cfa95f2c508ba286393"
+
+DEPENDS_class-target = "popt efivar-native"
+
+SRCREV = "aab6c2a64d90b6e5a63661fb5bd6be8d878b0784"
+SRC_URI = "git://github.com/rhinstaller/efivar.git"
+SRC_URI_append_class-target = " file://0001-efivar-fix-for-cross-compile.patch"
+SRC_URI_append_class-native = " file://efivar-drop-options-not-supported-by-lower-version-gcc.patch"
+
+S = "${WORKDIR}/git"
+
+do_install() {
+    oe_runmake install DESTDIR=${D}
+}
+
+do_compile_class-native() {
+    oe_runmake -C src makeguids
+}
+
+do_install_class-native() {
+    install -D -m 0755 ${B}/src/makeguids ${D}${bindir}/makeguids
+}
+
+BBCLASSEXTEND = "native"
+
+# See
+# http://lists.openembedded.org/pipermail/openembedded-core/2016-February/116564.html
+# http://lists.openembedded.org/pipermail/openembedded-core/2016-February/116571.html
+# http://lists.openembedded.org/pipermail/openembedded-devel/2016-February/105802.html
+# http://lists.openembedded.org/pipermail/openembedded-devel/2016-February/105786.html
+# but it's still broken:
+# http://lists.openembedded.org/pipermail/openembedded-devel/2016-February/105825.html
+# http://lists.openembedded.org/pipermail/openembedded-devel/2016-February/105830.html
+PNBLACKLIST[efivar] ?= "BROKEN: linux.c:27:30: fatal error: linux/nvme_ioctl.h: No such file or directory"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/flashrom/flashrom_0.9.6.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/flashrom/flashrom_0.9.6.1.bb
new file mode 100644
index 0000000..a1f0b30
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/flashrom/flashrom_0.9.6.1.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "flashrom is a utility for identifying, reading, writing, verifying and erasing flash chips"
+LICENSE = "GPLv2"
+HOMEPAGE = "http://flashrom.org"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+DEPENDS = "pciutils"
+
+SRC_URI = "http://download.flashrom.org/releases/flashrom-${PV}.tar.bz2"
+
+SRC_URI[md5sum] = "407e836c0a2b17ec76583cb6809f65e5"
+SRC_URI[sha256sum] = "6f7b588cce74c90b4fe9c9c794de105de76e0323442fb5770b1aeab81e9d560a"
+
+do_install() {
+    oe_runmake PREFIX=${prefix} DESTDIR=${D} install
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/fwts/fwts_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/fwts/fwts_git.bb
new file mode 100644
index 0000000..8b0e61b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/fwts/fwts_git.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Firmware testsuite"
+DESCRIPTION = "The tool fwts comprises of over fifty tests that are designed to exercise and test different aspects of a machine's firmware. Many of these tests need super user access to read BIOS data and ACPI tables, so the tool requires running with super user privileges (e.g. with sudo)."
+HOMEPAGE = "https://wiki.ubuntu.com/Kernel/Reference/fwts"
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://src/main.c;beginline=1;endline=16;md5=deb8af5388e838d133eaa036f4d1496f"
+
+PV = "14.09.00"
+
+SRCREV = "cf14f3b4bab716dea95de772ad52786c1cbe862a"
+SRC_URI = "git://kernel.ubuntu.com/hwe/fwts.git"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "libpcre json-c glib-2.0"
+
+inherit autotools-brokensep
+
+FILES_${PN} += "${libdir}/fwts/lib*${SOLIBS}"
+FILES_${PN}-dev += "${libdir}/fwts/lib*${SOLIBSDEV} ${libdir}/fwts/lib*.la"
+FILES_${PN}-staticdev += "${libdir}/fwts/lib*a"
+FILES_${PN}-dbg += "${libdir}/fwts/.debug"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot-4.6.5/lua-loadlibs-configure-in-fix.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot-4.6.5/lua-loadlibs-configure-in-fix.patch
new file mode 100644
index 0000000..23f2cd2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot-4.6.5/lua-loadlibs-configure-in-fix.patch
@@ -0,0 +1,16 @@
+Index: gnuplot-4.6.5/configure.in
+===================================================================
+--- gnuplot-4.6.5.orig/configure.in
++++ gnuplot-4.6.5/configure.in
+@@ -690,6 +690,11 @@ if test "${with_lua}" = yes ; then
+   fi
+ 
+   if test "$with_lua" != no; then
++    dnl check for dlopen/dl to fix loadlibs link failure
++    AC_CHECK_FUNC([dlopen], [],
++      AC_CHECK_LIB([dl], [dlopen], DLOPEN_LIBS="-ldl"))
++    AC_SUBST(DLOPEN_LIBS)
++    LUA_LIBS="$LUA_LIBS $DLOPEN_LIBS"
+     TERMLIBS="$TERMLIBS $LUA_LIBS"
+     CPPFLAGS="$CPPFLAGS $LUA_CFLAGS"
+   else
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot-4.6.5/subdirs.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot-4.6.5/subdirs.patch
new file mode 100644
index 0000000..8c7d1f0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot-4.6.5/subdirs.patch
@@ -0,0 +1,11 @@
+--- /tmp/Makefile.am	2007-08-23 13:10:15.560659023 +0200
++++ gnuplot-4.2.0/Makefile.am	2007-08-23 13:10:34.961764629 +0200
+@@ -1,7 +1,7 @@
+ ## Process this file with automake to produce Makefile.in -*-Makefile-*-
+ AUTOMAKE_OPTIONS = foreign 1.2h
+ 
+-SUBDIRS = config m4 term src docs $(LISPDIR) man demo tutorial share
++SUBDIRS = config m4 term src  $(LISPDIR) man share
+ 
+ EXTRA_DIST = BUGS CodeStyle Copyright FAQ GNUmakefile INSTALL INSTALL.gnu \
+ Makefile.maint PATCHLEVEL PGPKEYS PORTING README README.1ST README.exp \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot.inc b/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot.inc
new file mode 100644
index 0000000..69bc74b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot.inc
@@ -0,0 +1,41 @@
+DESCRIPTION = "Gnuplot is a portable command-line driven interactive datafile \
+(text or binary) and function plotting utility."
+HOMEPAGE = "http://www.gnuplot.info/"
+SECTION = "console/scientific"
+LICENSE = "gnuplot"
+LIC_FILES_CHKSUM = "file://Copyright;md5=243a186fc2fd3b992125d60d5b1bab8f"
+DEPENDS = "virtual/libx11 gd readline"
+
+inherit autotools distro_features_check
+# depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+acpaths = ""
+
+PACKAGECONFIG ??= "cairo"
+PACKAGECONFIG[cairo] = "--with-cairo,--without-cairo,cairo pango"
+PACKAGECONFIG[lua] = "--with-lua,--without-lua,lua"
+
+EXTRA_OECONF = "--with-readline=${STAGING_LIBDIR}/.. \
+                --without-lisp-files \
+                --without-tutorial \
+                --disable-wxwidgets"
+
+do_compile_prepend() {
+    install -m 0644 ${WORKDIR}/qtplot-0.2/qtopia.trm ${S}/term/
+}
+
+do_install_append() {
+    install -d ${D}${datadir}/applications/
+    install -m 0644 ${WORKDIR}/gnuplot.desktop ${D}${datadir}/applications/
+    install -d ${D}${datadir}/pixmaps/
+    install -m 0644 ${WORKDIR}/gnuplot.png ${D}${datadir}/pixmaps/
+}
+
+PACKAGES =+ "${PN}-x11-dbg ${PN}-x11"
+DESCRIPTION_${PN}-x11 = "X11 display terminal for Gnuplot."
+SECTION_${PN}-x11 = "x11/scientific"
+FILES_${PN}-x11 = "${libexecdir} ${datadir}/applications ${datadir}/pixmaps ${libdir}/X11 "
+
+FILES_${PN} += "${datadir}/texmf"
+FILES_${PN}-x11-dbg += "${libexecdir}/gnuplot/*/.debug"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot/gnuplot.desktop b/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot/gnuplot.desktop
new file mode 100644
index 0000000..f67df9e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot/gnuplot.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Name=Gnuplot
+Comment=Plot data and function graphs
+Exec=x-terminal-emulator -e gnuplot
+Terminal=false
+Type=Application
+Icon=gnuplot
+Categories=Science;
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot/gnuplot.png b/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot/gnuplot.png
new file mode 100644
index 0000000..054cd9e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot/gnuplot.png
Binary files differ
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot/qtopia.trm b/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot/qtopia.trm
new file mode 100644
index 0000000..b52f9bb
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot/qtopia.trm
@@ -0,0 +1,483 @@
+/*
+ * $Id: dumb.trm,v 1.16 2004/04/13 17:24:16 broeker Exp $
+ *
+ */
+
+/* GNUPLOT - qtopia.trm */
+
+/*[
+ * Copyright 1991 - 1993, 1998, 2004   Thomas Williams, Colin Kelley
+ *
+ * Permission to use, copy, and distribute this software and its
+ * documentation for any purpose with or without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and
+ * that both that copyright notice and this permission notice appear
+ * in supporting documentation.
+ *
+ * Permission to modify the software is granted, but not the right to
+ * distribute the complete modified source code.  Modifications are to
+ * be distributed as patches to the released version.  Permission to
+ * distribute binaries produced by compiling modified sources is granted,
+ * provided you
+ *   1. distribute the corresponding source modifications from the
+ *    released version in the form of a patch file along with the binaries,
+ *   2. add special version identification to distinguish your version
+ *    in addition to the base release version number,
+ *   3. provide your name and address as the primary contact for the
+ *    support of your modified version, and
+ *   4. retain our contact information in regard to use of the base
+ *    software.
+ * Permission to distribute the released version of the source code along
+ * with corresponding source modifications in the form of a patch file is
+ * granted with same provisions 2 through 4 for binary distributions.
+ *
+ * This software is provided "as is" without express or implied warranty
+ * to the extent permitted by applicable law.
+]*/
+
+/*
+ * This file is included by ../term.c.
+ *
+ * This terminal driver supports:
+ *   qtopia terminals
+ *
+ * AUTHORS
+ *   Michael Neuroth, 2004-05-16
+ *           INTERNET: michael.neuroth@freenet.de
+ *
+ * send your comments or suggestions to (gnuplot-info@lists.sourceforge.net).
+ *
+ */
+#include "driver.h"
+
+#define NO_QTOPIA_ENHANCED_SUPPORT
+
+#ifdef TERM_REGISTER
+register_term(qtopia_driver)
+#endif
+
+#ifdef TERM_PROTO
+TERM_PUBLIC void QTOPIA_options __PROTO((void));
+TERM_PUBLIC void QTOPIA_init __PROTO((void));
+TERM_PUBLIC void QTOPIA_graphics __PROTO((void));
+TERM_PUBLIC void QTOPIA_text __PROTO((void));
+TERM_PUBLIC void QTOPIA_reset __PROTO((void));
+TERM_PUBLIC void QTOPIA_linetype __PROTO((int linetype));
+TERM_PUBLIC void QTOPIA_move __PROTO((unsigned int x, unsigned int y));
+TERM_PUBLIC void QTOPIA_point __PROTO((unsigned int x, unsigned int y,
+				     int point));
+TERM_PUBLIC void QTOPIA_vector __PROTO((unsigned int x, unsigned int y));
+TERM_PUBLIC void QTOPIA_put_text __PROTO((unsigned int x, unsigned int y,
+					const char *str));
+TERM_PUBLIC void QTOPIA_arrow __PROTO((unsigned int sx, unsigned int sy,
+				     unsigned int ex, unsigned int ey,
+				     int head));
+
+#define ENHqtopia_put_text NULL
+
+
+#define QTOPIA_XMAX 4096
+#define QTOPIA_YMAX 4096
+
+#ifdef ZAURUS
+#define QTOPIA_VCHAR (QTOPIA_YMAX/25)
+#define QTOPIA_HCHAR (QTOPIA_XMAX/40)
+#define QTOPIA_VTIC (QTOPIA_YMAX/50)
+#define QTOPIA_HTIC (QTOPIA_XMAX/40)
+#else
+#define QTOPIA_VCHAR (QTOPIA_YMAX/25)
+#define QTOPIA_HCHAR (QTOPIA_XMAX/50)
+#define QTOPIA_VTIC (QTOPIA_YMAX/100)
+#define QTOPIA_HTIC (QTOPIA_XMAX/150)
+#endif
+
+#endif /* TERM_PROTO */
+
+#ifdef TERM_BODY
+
+/*#include <winsock2.h>*/
+/* needs: ws2_32.lib */
+#ifndef _MSC_VER
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#endif
+
+#define QTOPIA_MAX_BUFFER		512
+#define QTOPIA_MAX_DELAY_COUNT	20	/* * 100 ms = 2 s */
+
+#ifdef _MSC_VER
+#define QTOPIA_BAD_SOCKET		INVALID_SOCKET		/* -1 */
+#define QTOPIA_BAD_CONNECT		SOCKET_ERROR
+#else
+#define QTOPIA_BAD_SOCKET		-1
+#define QTOPIA_BAD_CONNECT		-1
+#endif
+#define QTOPIA_PORT_NO			5050
+
+static int qtopia_client_socket = QTOPIA_BAD_SOCKET;
+static unsigned short qtopia_port_no = QTOPIA_PORT_NO;
+static char qtopia_host_name[QTOPIA_MAX_BUFFER+1] = { "localhost" };
+
+static int OpenClient __PROTO(( int test));
+static void CloseClient();
+
+static void MySleep( delay )
+int delay;
+{
+#ifdef _MSC_VER
+	Sleep( delay );
+#else
+	usleep( delay );
+#endif
+}
+
+static void InitSockets()
+{
+#ifdef _MSC_VER
+	WORD wVersionRequested;
+	WSADATA wsaData;
+	int err;
+
+	wVersionRequested = MAKEWORD( 2, 2 );
+
+	err = WSAStartup( wVersionRequested, &wsaData );
+#endif
+}
+
+static void ExitSockets()
+{
+#ifdef _MSC_VER
+	WSACleanup();
+#endif
+}
+
+static int CheckForQtplot( count )
+int count;
+{
+	/* test (via sockets) if qtplot is allready running */
+	if( !OpenClient( 1 ) )
+	{
+		/* give qtplot a litle bit time to start... */
+		if( count < QTOPIA_MAX_DELAY_COUNT )
+		{
+			if( count == 0 )
+			{
+#ifdef _MSC_VER
+				system( "start qtplot" );
+#else
+				system( "qtplot&" );
+#endif
+			}
+		
+			MySleep(100);
+
+			return CheckForQtplot( count+1 );
+		}
+		else
+		{
+			return 0;
+		}
+	}
+	else
+	{
+		CloseClient();
+
+		return 1;
+	}
+}
+
+static int OpenClient( test )
+int test;
+{
+    int len;
+    struct sockaddr_in address;
+    int result;
+
+	/*  Create a socket for the client.  */
+
+    qtopia_client_socket = socket(AF_INET, SOCK_STREAM, 0);
+
+	if( qtopia_client_socket != QTOPIA_BAD_SOCKET )
+	{
+		/*  Name the socket, as agreed with the server.  */
+
+		address.sin_family = AF_INET;
+		address.sin_addr.s_addr = inet_addr(/*qtopia_host_name*/"127.0.0.1");	/* localhost */
+		address.sin_port = htons(qtopia_port_no);
+		len = sizeof(address);
+
+		/*  Now connect our socket to the server's socket.  */
+
+		result = connect(qtopia_client_socket, (struct sockaddr *)&address, len);
+		
+		if( result == QTOPIA_BAD_SOCKET )
+		{
+			/* mark this socket as bad */
+
+			close( qtopia_client_socket );
+
+			qtopia_client_socket = QTOPIA_BAD_SOCKET;
+
+			if( !test )
+			{
+				fprintf( gpoutfile, "error connecting to server !\n" );
+			}
+			return 0;	/* something went wrong */
+		}
+	}
+	else
+	{
+		if( !test )
+		{
+			fprintf( gpoutfile, "error creating socket !\n" );
+		}
+		return 0;	/* something went wrong */
+	}
+
+	return 1;	/* everything ist ok ! */
+}
+
+static void CloseClient()
+{
+    close( qtopia_client_socket );
+}
+
+static int IsClientOk()
+{
+	return qtopia_client_socket != QTOPIA_BAD_SOCKET;
+}
+
+static void SendDataToSocket( sLine )
+const char * sLine;
+{
+	if( IsClientOk() )
+	{
+		int send_count;
+
+		send_count = send( qtopia_client_socket, sLine, strlen( sLine ), 0 );
+
+		if( send_count <= 0 )
+		{
+			fprintf( gpoutfile, "error writing to socket str=%s!\n", sLine );
+		}
+		/*
+		else
+		{
+			fprintf( gpoutfile, "wrote %d bytes\n", send_count );
+		}
+		*/
+	}
+	else
+	{
+		/* for testing... */
+		/*fprintf( gpoutfile, sLine );*/
+	}
+}
+
+/* ************************************************** */
+
+enum QTOPIA_id { QTOPIA_PORT, QTOPIA_HOST, QTOPIA_OTHER };
+
+static struct gen_table QTOPIA_opts[] =
+{
+    { "po$rt", QTOPIA_PORT },
+    { "ho$st", QTOPIA_HOST },
+    { NULL, QTOPIA_OTHER }
+};
+
+TERM_PUBLIC void
+QTOPIA_options()
+{
+    /* this is not for the qtopia terminal ! */
+	/*SendDataToSocket( "qtd options\n" );*/
+
+    int x, y;
+    struct value a;
+
+    while (!END_OF_COMMAND) 
+	{
+		switch(lookup_table(&QTOPIA_opts[0],c_token)) 
+		{
+			case QTOPIA_PORT:
+				c_token++;
+				if (END_OF_COMMAND)
+					int_error(c_token, "expecting port number");
+				qtopia_port_no = (int) real(const_express(&a));
+				break;
+			case QTOPIA_HOST:
+				c_token++;
+				if (END_OF_COMMAND)
+					int_error(c_token, "expecting host name");
+				if (isstring(c_token))
+					quote_str( qtopia_host_name, c_token, sizeof(qtopia_host_name) );
+				else
+ 					copy_str( qtopia_host_name, c_token, sizeof(qtopia_host_name) );
+				c_token++;
+				break;
+			case QTOPIA_OTHER:
+			default:
+				break;
+		}
+    }
+
+    sprintf(term_options, "host=%s port=%d",qtopia_host_name,qtopia_port_no);
+}
+
+
+TERM_PUBLIC void
+QTOPIA_init()
+{
+	/* initialize lib (if necassary) */
+	InitSockets();
+	CheckForQtplot( 0 );
+	OpenClient( 0 ); 
+
+	SendDataToSocket( "qtd init\n" );
+}
+
+
+TERM_PUBLIC void
+QTOPIA_graphics()
+{
+	SendDataToSocket( "qtd graphics\n" );
+}
+
+TERM_PUBLIC void
+QTOPIA_text()
+{
+	SendDataToSocket( "qtd text\n" );
+}
+
+
+TERM_PUBLIC void
+QTOPIA_reset()
+{
+	SendDataToSocket( "qtd reset\n" );
+
+	/* give the qtplot a litle bit time to shutdown */
+	MySleep(100);
+
+	CloseClient();
+	ExitSockets();
+}
+
+
+TERM_PUBLIC void
+QTOPIA_linetype(linetype)
+int linetype;
+{
+	char sBuffer[QTOPIA_MAX_BUFFER];
+
+	sprintf( sBuffer, "qtd linetype type=%d\n",linetype );
+
+	SendDataToSocket( sBuffer );
+}
+
+
+TERM_PUBLIC void
+QTOPIA_move(x, y)
+unsigned int x, y;
+{
+	char sBuffer[QTOPIA_MAX_BUFFER];
+
+	sprintf( sBuffer, "qtd move x=%d y=%d\n",x,y );
+
+	SendDataToSocket( sBuffer );
+}
+
+
+TERM_PUBLIC void
+QTOPIA_point(x, y, point)
+unsigned int x, y;
+int point;
+{
+	char sBuffer[QTOPIA_MAX_BUFFER];
+
+	sprintf( sBuffer, "qtd point x=%d y=%d point=%d\n",x,y,point );
+
+	SendDataToSocket( sBuffer );
+}
+
+
+TERM_PUBLIC void
+QTOPIA_vector(_x, _y)
+unsigned int _x, _y;
+{
+	char sBuffer[QTOPIA_MAX_BUFFER];
+
+	sprintf( sBuffer, "qtd vector x=%d y=%d\n",_x,_y );
+
+	SendDataToSocket( sBuffer );
+}
+
+
+TERM_PUBLIC void
+QTOPIA_put_text(x, y, str)
+unsigned int x, y;
+const char *str;
+{
+	char sBuffer[QTOPIA_MAX_BUFFER];
+
+	sprintf( sBuffer, "qtd put_text x=%d y=%d str=%s\n",x,y,str );
+
+	SendDataToSocket( sBuffer );
+}
+
+/* not suported yet ! */
+TERM_PUBLIC void
+QTOPIA_arrow(sx, sy, ex, ey, head)
+    unsigned int sx, sy, ex, ey;
+    int head;		/* ignored */
+{
+	char sBuffer[QTOPIA_MAX_BUFFER];
+
+	sprintf( sBuffer, "qtd arrow sx=%d sy=%d ex=%d ey=%d head=%d\n",sx,sy,ex,ey,head );
+
+	SendDataToSocket( sBuffer );
+}
+
+
+#endif /* TERM_BODY */
+
+#ifdef TERM_TABLE
+TERM_TABLE_START(qtopia_driver)
+    "qtopia", "qtopia or Qt",
+    QTOPIA_XMAX, QTOPIA_YMAX, QTOPIA_VCHAR, QTOPIA_HCHAR,
+    QTOPIA_VTIC, QTOPIA_HTIC, QTOPIA_options, QTOPIA_init, QTOPIA_reset,
+    QTOPIA_text, null_scale, QTOPIA_graphics, QTOPIA_move, QTOPIA_vector,
+    QTOPIA_linetype, QTOPIA_put_text, null_text_angle,
+    null_justify_text, QTOPIA_point, /*QTOPIA_arrow*/0, set_font_null,
+    0,				/* pointsize */
+    TERM_CAN_MULTIPLOT,
+    NULL, NULL, NULL, NULL
+#ifdef USE_MOUSE
+    , NULL, NULL, NULL, NULL, NULL
+#endif
+#ifdef PM3D
+    , NULL, NULL, NULL, NULL
+#endif
+TERM_TABLE_END(qtopia_driver)
+
+#undef LAST_TERM
+#define LAST_TERM qtopia_driver
+
+#endif /* TERM_TABLE */
+
+#ifdef TERM_HELP
+START_HELP(qtopia)
+"1 qtopia",
+"?commands set terminal qtopia",
+"?set terminal qtopia",
+"?set term qtopia",
+"?terminal qtopia",
+"?term qtopia",
+"?qtopia",
+" The `qtopia` terminal driver has no additional options.",
+"",
+" Syntax:",
+"       set terminal qtopia",
+""
+END_HELP(qtopia)
+#endif /* TERM_HELP */
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot_4.6.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot_4.6.5.bb
new file mode 100644
index 0000000..3f694a0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/gnuplot/gnuplot_4.6.5.bb
@@ -0,0 +1,14 @@
+require gnuplot.inc
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/gnuplot/${BP}.tar.gz;name=archive \
+    http://www.mneuroth.de/privat/zaurus/qtplot-0.2.tar.gz;name=qtplot \
+    file://subdirs.patch \
+    file://lua-loadlibs-configure-in-fix.patch \
+    file://gnuplot.desktop \
+    file://gnuplot.png \
+"
+
+SRC_URI[archive.md5sum] = "9a476b21f74bd99c876f1509d731a0f9"
+SRC_URI[archive.sha256sum] = "e550f030c7d04570e89c3d4e3f6e82296816508419c86ab46c4dd73156519a2d"
+SRC_URI[qtplot.md5sum] = "0a481885a496092c77eb4017540b5cf6"
+SRC_URI[qtplot.sha256sum] = "6df317183ff62cc82f3dcf88207a267cd6478cb5147f55d7530c94f1ad5f4132"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/haveged/haveged/remove-systemd-unit-503.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/haveged/haveged/remove-systemd-unit-503.patch
new file mode 100644
index 0000000..df27bcb
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/haveged/haveged/remove-systemd-unit-503.patch
@@ -0,0 +1,20 @@
+--- a/init.d/Makefile.am	2014-01-02 18:55:53.000000000 +0100
++++ b/init.d/Makefile.am	2014-08-11 10:59:40.000000000 +0200
+@@ -34,11 +34,11 @@
+ 	$(do_subst) < $(srcdir)/$(src_tmpl) > haveged.service;
+ 
+ install-data-hook:
+-if ENABLE_SYSTEMD_LOOKUP
+-	install -p -m644 haveged.service `pkg-config --variable=systemdsystemunitdir systemd`/haveged.service;
+-else
+-	install -p -m644 haveged.service ($unit_dir)/haveged.service;
+-endif
+-	systemctl enable haveged.service;
++#if ENABLE_SYSTEMD_LOOKUP
++#	install -p -m644 haveged.service `pkg-config --variable=systemdsystemunitdir systemd`/haveged.service;
++#else
++#	install -p -m644 haveged.service ($unit_dir)/haveged.service;
++#endif
++#	systemctl enable haveged.service;
+ 
+ endif
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/haveged/haveged_1.9.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/haveged/haveged_1.9.1.bb
new file mode 100644
index 0000000..fbd1992d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/haveged/haveged_1.9.1.bb
@@ -0,0 +1,32 @@
+SUMMARY = "haveged - A simple entropy daemon"
+DESCRIPTION = "The haveged project is an attempt to provide an easy-to-use, unpredictable random number generator based upon an adaptation of the HAVEGE algorithm. Haveged was created to remedy low-entropy conditions in the Linux random device that can occur under some workloads, especially on headless servers."
+AUTHOR = "Gary Wuertz"
+HOMEPAGE = "http://www.issihosts.com/haveged/index.html"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM="file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+SRC_URI = "http://www.issihosts.com/haveged/haveged-${PV}.tar.gz \
+		file://remove-systemd-unit-503.patch \
+		"
+
+SRC_URI[md5sum] = "015ff58cd10607db0e0de60aeca2f5f8"
+SRC_URI[sha256sum] = "9c2363ed9542a6784ff08e247182137e71f2ddb79e8e6c1ac4ad50d21ced3715"
+
+PR = "r0"
+
+inherit autotools systemd
+
+EXTRA_OECONF = "\
+			--enable-init=service.redhat \
+			--enable-nistest=yes \
+			--enable-olt=yes \
+			--enable-threads=no \
+			"
+
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE_${PN} = "haveged.service"
+			
+do_install_append() {
+	mkdir -p ${D}${systemd_unitdir}/system
+	install -p -m644 ${B}/init.d/haveged.service ${D}${systemd_unitdir}/system
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/hexedit/hexedit/0001-don-t-strip-when-installing.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/hexedit/hexedit/0001-don-t-strip-when-installing.patch
new file mode 100644
index 0000000..a384b05
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/hexedit/hexedit/0001-don-t-strip-when-installing.patch
@@ -0,0 +1,30 @@
+From cc67246ca6839e5b3f6a286f10ed24c225b77a5e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Eric=20B=C3=A9nard?= <eric@eukrea.com>
+Date: Thu, 4 Jul 2013 12:34:32 +0200
+Subject: [PATCH] don't strip when installing
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Eric Bénard <eric@eukrea.com>
+
+Upstream-Status: Inappropriate [configuration]
+---
+ Makefile.in |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 159463e..735cc72 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -42,6 +42,6 @@ distclean: clean
+ 
+ install: $(PRODUCT)
+ 	$(INSTALL) -d -m 755 $(DESTDIR)$(bindir)
+-	$(INSTALL) -s -m 755 $(PRODUCT) $(DESTDIR)$(bindir)
++	$(INSTALL) -m 755 $(PRODUCT) $(DESTDIR)$(bindir)
+ 	$(INSTALL) -d -m 755 $(DESTDIR)$(mandir)/man1
+ 	$(INSTALL) -m 644 $(PRODUCT).1 $(DESTDIR)$(mandir)/man1
+-- 
+1.7.10.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/hexedit/hexedit_1.2.13.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/hexedit/hexedit_1.2.13.bb
new file mode 100644
index 0000000..39df5b2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/hexedit/hexedit_1.2.13.bb
@@ -0,0 +1,17 @@
+SUMMARY = "view and edit files in hexadecimal or in ASCII"
+HOMEPAGE = "http://rigaux.org/hexedit.html"
+SECTION = "console/utils"
+LICENSE = "GPLv2+"
+DEPENDS = "ncurses"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
+
+SRC_URI = "http://rigaux.org/${BP}.src.tgz \
+    file://0001-don-t-strip-when-installing.patch "
+
+SRC_URI[md5sum] = "a5af1378d028512a9cad27a5ba3e15f9"
+SRC_URI[sha256sum] = "6a126da30a77f5c0b08038aa7a881d910e3b65d13767fb54c58c983963b88dd7"
+
+inherit autotools-brokensep
+
+S = "${WORKDIR}/${BPN}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/hplip/hplip-3.12.6/configure.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/hplip/hplip-3.12.6/configure.patch
new file mode 100644
index 0000000..31c005c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/hplip/hplip-3.12.6/configure.patch
@@ -0,0 +1,14 @@
+Index: hplip-3.12.6/configure.in
+===================================================================
+--- hplip-3.12.6.orig/configure.in	2014-07-16 20:03:51.310044196 +0000
++++ hplip-3.12.6/configure.in	2014-07-18 07:53:31.589559192 +0000
+@@ -27,8 +27,7 @@
+ 
+ #AC_PREREQ(2.59)
+ AC_INIT([HP Linux Imaging and Printing], [3.12.6], [3.12.6], [hplip])
+-#AM_INIT_AUTOMAKE([1.9 foreign])
+-AM_INIT_AUTOMAKE
++AM_INIT_AUTOMAKE([1.9 foreign])
+ AC_DISABLE_STATIC
+ 
+ # Checks for programs.
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/hplip/hplip-3.12.6/cups-1.6.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/hplip/hplip-3.12.6/cups-1.6.patch
new file mode 100644
index 0000000..7df01aa
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/hplip/hplip-3.12.6/cups-1.6.patch
@@ -0,0 +1,395 @@
+Imported from gentoo:
+https://bugs.gentoo.org/show_bug.cgi?id=428672
+
+diff -Naur hplip-3.12.6_old/prnt/cupsext/cupsext.c hplip-3.12.6/prnt/cupsext/cupsext.c
+--- hplip-3.12.6_old/prnt/cupsext/cupsext.c	2012-08-04 09:18:18.388330038 +0200
++++ hplip-3.12.6/prnt/cupsext/cupsext.c	2012-08-04 09:18:27.855181327 +0200
+@@ -87,6 +87,46 @@
+ #define PY_SSIZE_T_MIN INT_MIN

+ #endif

+ 

++#if (CUPS_VERSION_MAJOR > 1) || (CUPS_VERSION_MINOR > 5)

++#define HAVE_CUPS_1_6 1

++#endif

++

++#ifndef HAVE_CUPS_1_6

++#define ippGetCount(attr)     attr->num_values

++#define ippGetGroupTag(attr)  attr->group_tag

++#define ippGetValueTag(attr)  attr->value_tag

++#define ippGetName(attr)      attr->name

++#define ippGetBoolean(attr, element) attr->values[element].boolean

++#define ippGetInteger(attr, element) attr->values[element].integer

++#define ippGetStatusCode(ipp) ipp->request.status.status_code

++#define ippGetString(attr, element, language) attr->values[element].string.text

++

++static ipp_attribute_t * ippFirstAttribute( ipp_t *ipp )

++{

++    if (!ipp)

++        return (NULL);

++    return (ipp->current = ipp->attrs);

++}

++

++static ipp_attribute_t * ippNextAttribute( ipp_t *ipp )

++{

++    if (!ipp || !ipp->current)

++        return (NULL);

++    return (ipp->current = ipp->current->next);

++}

++

++static int ippSetOperation( ipp_t *ipp, ipp_op_t op )

++{

++    ipp->request.op.operation_id = op;

++    return (1);

++}

++

++static int ippSetRequestId( ipp_t *ipp, int request_id )

++{

++    ipp->request.any.request_id = request_id;

++    return (1);

++}

++#endif

+ 

+ int g_num_options = 0;

+ cups_option_t * g_options;

+@@ -333,8 +373,8 @@
+     request = ippNew();

+     language = cupsLangDefault();

+ 

+-    request->request.op.operation_id = CUPS_GET_PRINTERS;

+-    request->request.any.request_id = 1;

++    ippSetOperation( request, CUPS_GET_PRINTERS );

++    ippSetRequestId ( request, 1);

+ 

+     ippAddString( request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,

+                   "attributes-charset", NULL, cupsLangEncoding( language ) );

+@@ -378,10 +418,10 @@
+         ipp_pstate_t state;

+         int i = 0;

+ 

+-        for ( attr = response->attrs; attr != NULL; attr = attr->next )

++        for ( attr = ippFirstAttribute( response ); attr != NULL; attr = ippNextAttribute( response ) )

+         {

+-            while ( attr != NULL && attr->group_tag != IPP_TAG_PRINTER )

+-                attr = attr->next;

++            while ( attr != NULL && ippGetGroupTag( attr ) != IPP_TAG_PRINTER )

++                attr = ippNextAttribute( response );

+ 

+             if ( attr == NULL )

+                 break;

+@@ -390,41 +430,41 @@
+             state = IPP_PRINTER_IDLE;

+             accepting = 0;

+ 

+-            while ( attr != NULL && attr->group_tag == IPP_TAG_PRINTER )

++            while ( attr != NULL && ippGetGroupTag( attr ) == IPP_TAG_PRINTER )

+             {

+-                if ( strcmp( attr->name, "printer-name" ) == 0 &&

+-                        attr->value_tag == IPP_TAG_NAME )

+-                    name = attr->values[ 0 ].string.text;

+-

+-                else if ( strcmp( attr->name, "device-uri" ) == 0 &&

+-                        attr->value_tag == IPP_TAG_URI )

+-                    device_uri = attr->values[ 0 ].string.text;

+-

+-                else if ( strcmp( attr->name, "printer-uri-supported" ) == 0 &&

+-                        attr->value_tag == IPP_TAG_URI )

+-                    printer_uri = attr->values[ 0 ].string.text;

+-

+-                else if ( strcmp( attr->name, "printer-info" ) == 0 &&

+-                        attr->value_tag == IPP_TAG_TEXT )

+-                    info = attr->values[ 0 ].string.text;

+-

+-                else if ( strcmp( attr->name, "printer-location" ) == 0 &&

+-                        attr->value_tag == IPP_TAG_TEXT )

+-                    location = attr->values[ 0 ].string.text;

+-

+-                else if ( strcmp( attr->name, "printer-make-and-model" ) == 0 &&

+-                        attr->value_tag == IPP_TAG_TEXT )

+-                    make_model = attr->values[ 0 ].string.text;

+-

+-                else if ( strcmp( attr->name, "printer-state" ) == 0 &&

+-                        attr->value_tag == IPP_TAG_ENUM )

+-                    state = ( ipp_pstate_t ) attr->values[ 0 ].integer;

+-

+-                else if (!strcmp(attr->name, "printer-is-accepting-jobs") &&

+-                        attr->value_tag == IPP_TAG_BOOLEAN)

+-                    accepting = attr->values[ 0 ].boolean;

++                if ( strcmp( ippGetName( attr ), "printer-name" ) == 0 &&

++                        ippGetValueTag( attr ) == IPP_TAG_NAME )

++                    name = ippGetString( attr, 0, NULL );

++

++                else if ( strcmp( ippGetName( attr ), "device-uri" ) == 0 &&

++                        ippGetValueTag( attr ) == IPP_TAG_URI )

++                    device_uri = ippGetString( attr, 0, NULL );

++

++                else if ( strcmp( ippGetName( attr ), "printer-uri-supported" ) == 0 &&

++                        ippGetValueTag( attr ) == IPP_TAG_URI )

++                    printer_uri = ippGetString( attr, 0, NULL );

++

++                else if ( strcmp( ippGetName( attr ), "printer-info" ) == 0 &&

++                        ippGetValueTag( attr ) == IPP_TAG_TEXT )

++                    info = ippGetString( attr, 0, NULL );

++

++                else if ( strcmp( ippGetName( attr ), "printer-location" ) == 0 &&

++                        ippGetValueTag( attr ) == IPP_TAG_TEXT )

++                    location = ippGetString( attr, 0, NULL );

++

++                else if ( strcmp( ippGetName( attr ), "printer-make-and-model" ) == 0 &&

++                        ippGetValueTag( attr ) == IPP_TAG_TEXT )

++                    make_model = ippGetString( attr, 0, NULL );

++

++                else if ( strcmp( ippGetName( attr ), "printer-state" ) == 0 &&

++                        ippGetValueTag( attr ) == IPP_TAG_ENUM )

++                    state = ( ipp_pstate_t ) ippGetInteger( attr, 0 );

++

++                else if (!strcmp(ippGetName( attr ), "printer-is-accepting-jobs") &&

++                        ippGetValueTag( attr ) == IPP_TAG_BOOLEAN)

++                    accepting = ippGetBoolean( attr, 0 );

+ 

+-                attr = attr->next;

++                attr = ippNextAttribute( response );

+             }

+ 

+             if ( device_uri == NULL )

+@@ -522,8 +562,8 @@
+     request = ippNew();

+     language = cupsLangDefault();

+ 

+-    request->request.op.operation_id = CUPS_ADD_PRINTER;

+-    request->request.any.request_id = 1;

++    ippSetOperation( request, CUPS_ADD_PRINTER );

++    ippSetRequestId ( request, 1 );

+ 

+     ippAddString( request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,

+                   "attributes-charset", NULL, cupsLangEncoding( language ) );

+@@ -568,7 +608,7 @@
+     }

+     else

+     {

+-        status = response->request.status.status_code;

++        status = ippGetStatusCode( response );

+         //ippDelete( response );

+         r = 1;

+     }

+@@ -631,8 +671,8 @@
+        */

+     request = ippNew();

+ 

+-    request->request.op.operation_id = CUPS_DELETE_PRINTER;

+-    request->request.op.request_id = 1;

++    ippSetOperation( request, CUPS_DELETE_PRINTER );

++    ippSetRequestId ( request, 1 );

+ 

+     language = cupsLangDefault();

+ 

+@@ -650,7 +690,7 @@
+      */

+     response = cupsDoRequest( http, request, "/admin/" );

+ 

+-    if ( ( response != NULL ) && ( response->request.status.status_code <= IPP_OK_CONFLICT ) )

++    if ( ( response != NULL ) && ( ippGetStatusCode( response ) <= IPP_OK_CONFLICT ) )

+     {

+         r = 1;

+     }

+@@ -721,8 +761,8 @@
+ 

+     request = ippNew();

+ 

+-    request->request.op.operation_id = CUPS_SET_DEFAULT;

+-    request->request.op.request_id = 1;

++    ippSetOperation( request, CUPS_SET_DEFAULT );

++    ippSetRequestId ( request, 1 );

+ 

+     language = cupsLangDefault();

+ 

+@@ -743,7 +783,7 @@
+ 

+     response = cupsDoRequest( http, request, "/admin/" );

+ 

+-    if ( ( response != NULL ) && ( response->request.status.status_code <= IPP_OK_CONFLICT ) )

++    if ( ( response != NULL ) && ( ippGetStatusCode( response ) <= IPP_OK_CONFLICT ) )

+     {

+         r = 1;

+     }

+@@ -797,8 +837,8 @@
+ 

+     request = ippNew();

+ 

+-    request->request.op.operation_id = op;

+-    request->request.op.request_id = 1;

++    ippSetOperation( request, op );

++    ippSetRequestId ( request, 1 );

+ 

+     language = cupsLangDefault();

+ 

+@@ -822,7 +862,7 @@
+ 

+     response = cupsDoRequest(http, request, "/admin/");

+ 

+-    if (( response != NULL ) && (response->request.status.status_code <= IPP_OK_CONFLICT))

++    if (( response != NULL ) && (ippGetStatusCode( response ) <= IPP_OK_CONFLICT))

+     {

+         r = 1;

+     }

+@@ -837,7 +877,7 @@
+     if ( response != NULL )

+         ippDelete( response );

+ 

+-    return Py_BuildValue( "i", r );;

++    return Py_BuildValue( "i", r );

+ }

+ 

+ 

+@@ -1116,8 +1156,8 @@
+ 

+     request = ippNew();

+ 

+-    request->request.op.operation_id = CUPS_GET_PPDS;

+-    request->request.op.request_id   = 1;

++    ippSetOperation( request, CUPS_GET_PPDS );

++    ippSetRequestId ( request, 1 );

+ 

+     language = cupsLangDefault();

+ 

+@@ -1143,43 +1183,43 @@
+     if ((response = cupsDoRequest(http, request, "/")) != NULL)

+     {

+ 

+-        for (attr = response->attrs; attr; attr = attr->next)

++        for (attr = ippFirstAttribute( response ); attr; attr = ippNextAttribute( response ))

+         {

+             PyObject *dict;

+             char *ppdname = NULL;

+ 

+-            while (attr && attr->group_tag != IPP_TAG_PRINTER)

+-                attr = attr->next;

++            while (attr && ippGetGroupTag( attr ) != IPP_TAG_PRINTER)

++                attr = ippNextAttribute( response );

+ 

+             if (!attr)

+                 break;

+ 

+             dict = PyDict_New ();

+ 

+-            for (; attr && attr->group_tag == IPP_TAG_PRINTER; attr = attr->next)

++            for (; attr && ippGetGroupTag( attr ) == IPP_TAG_PRINTER; attr = ippNextAttribute( response ))

+             {

+                 PyObject *val = NULL;

+ 

+-                if (!strcmp (attr->name, "ppd-name") && attr->value_tag == IPP_TAG_NAME)

++                if (!strcmp (ippGetName( attr ), "ppd-name") && ippGetValueTag( attr ) == IPP_TAG_NAME)

+                 {

+-                    ppdname = attr->values[0].string.text;

++                    ppdname = ippGetString( attr, 0, NULL );

+ 

+                     //sprintf( buf, "print '%s'", ppdname);

+                     //PyRun_SimpleString( buf );

+                 }

+ 

+-                else if (attr->value_tag == IPP_TAG_TEXT || attr->value_tag == IPP_TAG_NAME || attr->value_tag == IPP_TAG_KEYWORD)

+-                //else if ((!strcmp (attr->name, "ppd-natural-language") && attr->value_tag == IPP_TAG_LANGUAGE) ||

+-                //    (!strcmp (attr->name, "ppd-make-and-model") && attr->value_tag == IPP_TAG_TEXT) ||

+-                //    (!strcmp (attr->name, "ppd-make") && attr->value_tag == IPP_TAG_TEXT) ||

+-                //    (!strcmp (attr->name, "ppd-device-id") && attr->value_tag == IPP_TAG_TEXT))

++                else if (ippGetValueTag( attr ) == IPP_TAG_TEXT || ippGetValueTag( attr ) == IPP_TAG_NAME || ippGetValueTag( attr ) == IPP_TAG_KEYWORD)

++                //else if ((!strcmp (ippGetName( attr ), "ppd-natural-language") && ippGetValueTag( attr ) == IPP_TAG_LANGUAGE) ||

++                //    (!strcmp (ippGetName( attr ), "ppd-make-and-model") && ippGetValueTag( attr ) == IPP_TAG_TEXT) ||

++                //    (!strcmp (ippGetName( attr ), "ppd-make") && ippGetValueTag( attr ) == IPP_TAG_TEXT) ||

++                //    (!strcmp (ippGetName( attr ), "ppd-device-id") && ippGetValueTag( attr ) == IPP_TAG_TEXT))

+                 {

+-                    val = PyObj_from_UTF8(attr->values[0].string.text);

++                    val = PyObj_from_UTF8(ippGetString( attr, 0, NULL ));

+                 }

+ 

+                 if (val)

+                 {

+-                    PyDict_SetItemString (dict, attr->name, val);

++                    PyDict_SetItemString (dict, ippGetName( attr ), val);

+                     Py_DECREF (val);

+                 }

+             }

+diff -Naur hplip-3.12.6_old/scan/sane/hpaio.c hplip-3.12.6/scan/sane/hpaio.c
+--- hplip-3.12.6_old/scan/sane/hpaio.c	2012-08-04 09:18:21.458389913 +0200
++++ hplip-3.12.6/scan/sane/hpaio.c	2012-08-04 09:18:27.875181720 +0200
+@@ -47,6 +47,43 @@
+ #define DEBUG_DECLARE_ONLY
+ #include "sanei_debug.h"
+ 
++#if (CUPS_VERSION_MAJOR > 1) || (CUPS_VERSION_MINOR > 5)
++#define HAVE_CUPS_1_6 1
++#endif
++
++#ifndef HAVE_CUPS_1_6
++#define ippGetGroupTag(attr)  attr->group_tag
++#define ippGetValueTag(attr)  attr->value_tag
++#define ippGetName(attr)      attr->name
++#define ippGetString(attr, element, language) attr->values[element].string.text
++
++static ipp_attribute_t * ippFirstAttribute( ipp_t *ipp )
++{
++    if (!ipp)
++        return (NULL);
++    return (ipp->current = ipp->attrs);
++}
++
++static ipp_attribute_t * ippNextAttribute( ipp_t *ipp )
++{
++    if (!ipp || !ipp->current)
++        return (NULL);
++    return (ipp->current = ipp->current->next);
++}
++
++static int ippSetOperation( ipp_t *ipp, ipp_op_t op )
++{
++    ipp->request.op.operation_id = op;
++    return (1);
++}
++
++static int ippSetRequestId( ipp_t *ipp, int request_id )
++{
++    ipp->request.any.request_id = request_id;
++    return (1);
++}
++#endif
++
+ static SANE_Device **DeviceList = NULL;
+ 
+ static int AddDeviceList(char *uri, char *model, SANE_Device ***pd)
+@@ -186,8 +223,8 @@
+    /* Assemble the IPP request */
+    request = ippNew();
+ 
+-   request->request.op.operation_id = CUPS_GET_PRINTERS;
+-   request->request.any.request_id  = 1;
++   ippSetOperation( request, CUPS_GET_PRINTERS );
++   ippSetRequestId( request, 1 );
+ 
+    ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET, "attributes-charset", NULL, "utf-8");
+    ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE, "attributes-natural-language", NULL, "en");
+@@ -197,20 +234,20 @@
+    if ((response = cupsDoRequest(http, request, "/")) == NULL)
+       goto bugout;
+ 
+-   for (attr = response->attrs; attr != NULL; attr = attr->next)
++   for (attr = ippFirstAttribute ( response ); attr != NULL; attr = ippNextAttribute( response ))
+    {
+       /* Skip leading attributes until we hit a printer. */
+-      while (attr != NULL && attr->group_tag != IPP_TAG_PRINTER)
+-         attr = attr->next;
++      while (attr != NULL && ippGetGroupTag( attr ) != IPP_TAG_PRINTER)
++         attr = ippNextAttribute( response );
+ 
+       if (attr == NULL)
+          break;
+ 
+-      while (attr != NULL && attr->group_tag == IPP_TAG_PRINTER)
++      while (attr != NULL && ippGetGroupTag( attr ) == IPP_TAG_PRINTER)
+       {
+-         if (strcmp(attr->name, "device-uri") == 0 && attr->value_tag == IPP_TAG_URI && AddCupsList(attr->values[0].string.text, printer) == 0)
++         if (strcmp(ippGetName( attr ), "device-uri") == 0 && ippGetValueTag( attr ) == IPP_TAG_URI && AddCupsList(ippGetString( attr, 0, NULL ), printer) == 0)
+             cnt++;
+-         attr = attr->next;
++         attr = ippNextAttribute( response );
+       }
+ 
+       if (attr == NULL)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/hplip/hplip-3.12.6/fix-libusb-paths.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/hplip/hplip-3.12.6/fix-libusb-paths.patch
new file mode 100644
index 0000000..b347f83
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/hplip/hplip-3.12.6/fix-libusb-paths.patch
@@ -0,0 +1,35 @@
+Upstream-Status: Inappropriate [configuration]
+
+diff -rupN hplip-3.12.6_orig/configure.in hplip-3.12.6/configure.in
+--- hplip-3.12.6_orig/configure.in	2012-06-18 20:44:24.000000000 +1000
++++ hplip-3.12.6/configure.in	2012-08-16 13:40:07.259927650 +1000
+@@ -524,6 +524,8 @@ if test "$hpijs_only_build" = "no"; then
+       AC_CHECK_HEADERS(usb.h, ,[AC_MSG_ERROR([cannot find libusb-devel support], 11)])
+    else
+       AC_CHECK_LIB([usb-1.0], [libusb_init], [LIBS="$LIBS"], [AC_MSG_ERROR([cannot find libusb 1.0 support], 2)])
++      LIBUSBINCLUDEROOT?="/usr/include/"
++      AC_ARG_VAR(LIBUSBINCLUDEROOT, [path to libusb-1.0 folder])
+       AC_CHECK_HEADERS(libusb-1.0/libusb.h, ,[AC_MSG_ERROR([cannot find libusb-1.0-devel support], 11)])
+    fi
+ fi
+diff -rupN hplip-3.12.6_orig/Makefile.am hplip-3.12.6/Makefile.am
+--- hplip-3.12.6_orig/Makefile.am	2012-06-18 20:44:13.000000000 +1000
++++ hplip-3.12.6/Makefile.am	2012-08-16 13:41:12.307932822 +1000
+@@ -72,7 +72,7 @@ libhpmud_la_SOURCES = io/hpmud/hpmud.c i
+ 	  io/hpmud/hpmud.h io/hpmud/hpmudi.h io/hpmud/list.h io/hpmud/mlc.h io/hpmud/pml.h io/hpmud/dot4.c \
+ 	  io/hpmud/dot4.h io/hpmud/jd.c io/hpmud/jd.h io/hpmud/pp.c io/hpmud/pp.h io/hpmud/musb.h io/hpmud/musb_libusb01.c
+ else
+-libhpmud_la_CFLAGS = -I/usr/include/libusb-1.0 -DMUDNAME=\"$(MUDNAME)\" -DCONFDIR=\"$(hplip_confdir)\"
++libhpmud_la_CFLAGS = -I/$(LIBUSBINCLUDEROOT)/libusb-1.0 -DMUDNAME=\"$(MUDNAME)\" -DCONFDIR=\"$(hplip_confdir)\"
+ libhpmud_la_SOURCES = io/hpmud/hpmud.c io/hpmud/mlc.c io/hpmud/model.c io/hpmud/pml.c \
+ 	  io/hpmud/hpmud.h io/hpmud/hpmudi.h io/hpmud/list.h io/hpmud/mlc.h io/hpmud/pml.h io/hpmud/dot4.c \
+ 	  io/hpmud/dot4.h io/hpmud/jd.c io/hpmud/jd.h io/hpmud/pp.c io/hpmud/pp.h io/hpmud/musb.h io/hpmud/musb.c
+@@ -286,7 +286,7 @@ hpmudext_la_LIBADD = libhpmud.la
+ if LIBUSB01_BUILD
+ hpmudext_la_CFLAGS = -I$(PYTHONINCLUDEDIR)
+ else
+-hpmudext_la_CFLAGS =-I/usr/include/libusb-1.0 -I$(PYTHONINCLUDEDIR)
++hpmudext_la_CFLAGS =-I$(LIBUSBINCLUDEROOT)/libusb-1.0 -I$(PYTHONINCLUDEDIR)
+ endif
+ 
+ # ui (qt3)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/hplip/hplip-3.12.6/setup-add-sleep-after-cups-reset.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/hplip/hplip-3.12.6/setup-add-sleep-after-cups-reset.patch
new file mode 100644
index 0000000..0e1b6c4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/hplip/hplip-3.12.6/setup-add-sleep-after-cups-reset.patch
@@ -0,0 +1,12 @@
+Upstream-Status: Inappropriate [embedded specific]
+
+--- hplip-3.11.10/setup.py.orig	2011-10-02 14:06:19.000000000 +1100
++++ hplip-3.11.10/setup.py	2012-02-29 08:21:39.167999938 +1100
+@@ -573,6 +573,7 @@
+ 
+             log.debug("Restarting CUPS...")
+             status, output = utils.run(restart_cups())
++            time.sleep(3)
+             log.debug("Restart CUPS returned: exit=%d output=%s" % (status, output))
+ 
+             cups.setPasswordPrompt("You do not have permission to add a printer.")
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/hplip/hplip_3.12.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/hplip/hplip_3.12.6.bb
new file mode 100644
index 0000000..86628b1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/hplip/hplip_3.12.6.bb
@@ -0,0 +1,75 @@
+SUMMARY = "HP Linux Imaging and Printing"
+LICENSE="GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=442bb3cbbeeb60643a87325718b8a8ee"
+
+PR = "r1"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz \
+           file://setup-add-sleep-after-cups-reset.patch \
+           file://fix-libusb-paths.patch \
+           file://cups-1.6.patch \
+           file://configure.patch \
+"
+
+DEPENDS += "cups python libusb"
+
+inherit autotools-brokensep python-dir pythonnative pkgconfig
+
+export BUILD_SYS
+export HOST_SYS
+export STAGING_INCDIR
+export STAGING_LIBDIR
+
+EXTRA_OECONF += "\
+        LIBUSBINCLUDEROOT=${STAGING_INCDIR} \
+        --disable-network-build \
+        --disable-doc-build \
+        --disable-pp-build \
+        --disable-scan-build \
+        --disable-gui-build \
+        --disable-fax-build \
+        --disable-policykit  \
+        --disable-qt4 \
+        --disable-qt3 \
+        --disable-dbus-build \
+        --disable-foomatic-drv-install \
+        --enable-foomatic-ppd-install  \
+        --enable-foomatic-rip-hplip-install \
+        --with-cupsbackenddir=${libdir}/cups/backend \
+        --with-cupsfilterdir=${libdir}/cups/filter \
+"
+
+PACKAGES += "${PN}-ppd ${PN}-cups ${PN}-backend ${PN}-filter ${PN}-hal"
+
+RDEPENDS_${PN} += " \
+        python-syslog \
+        python-pprint \
+        python-compression \
+        python-shell \
+        python-xml \
+        python-unixadmin \
+        python-html \
+        python-resource \
+        python-terminal \
+        python-subprocess\
+"
+RDEPENDS_${PN}-filter += "perl"
+
+# need to snag the debug file or OE will fail on backend package
+FILES_${PN}-dbg += "\
+        ${libdir}/cups/backend/.debug \
+        ${PYTHON_SITEPACKAGES_DIR}/.debug \
+        ${libdir}/cups/filter/.debug "
+
+FILES_${PN}-dev += "${PYTHON_SITEPACKAGES_DIR}/*.la"
+FILES_${PN}-ppd = "${datadir}/ppd"
+FILES_${PN}-cups = "${datadir}/cups"
+FILES_${PN}-backend = "${libdir}/cups/backend"
+FILES_${PN}-filter = "${libdir}/cups/filter"
+FILES_${PN}-hal = "${datadir}/hal"
+
+FILES_${PN} += "${PYTHON_SITEPACKAGES_DIR}/*.so"
+
+SRC_URI[md5sum] = "5303938e8630775ea6fb383af85775e5"
+SRC_URI[sha256sum] = "54578000792969adb583e75efeacb9c46ab69659ec7e9424de390613f3595775"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/indent/indent_2.2.10.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/indent/indent_2.2.10.bb
new file mode 100644
index 0000000..d25e8e3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/indent/indent_2.2.10.bb
@@ -0,0 +1,22 @@
+SUMMARY = "A GNU program for formatting C code"
+HOMEPAGE = "http://www.gnu.org/software/indent/"
+SECTION = "Applications/Text"
+DESCRIPTION = "Indent is a GNU program for beautifying C code, so that \
+it is easier to read. Indent can also convert from one C writing style \
+to a different one. Indent understands correct C syntax and tries to handle \
+incorrect C syntax. \
+Install the indent package if you are developing applications in C and \
+you want a program to format your code."
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+DEPENDS = "virtual/gettext"
+
+SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.gz"
+SRC_URI[md5sum] = "be35ea62705733859fbf8caf816d8959"
+SRC_URI[sha256sum] = "8a9b41be5bfcab5d8c1be74204b10ae78789fc3deabea0775fdced8677292639"
+
+inherit autotools gettext
+
+FILES_${PN}-doc += "/usr/doc/indent/indent.html"
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/iotop/iotop_0.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/iotop/iotop_0.6.bb
new file mode 100644
index 0000000..5dcae98
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/iotop/iotop_0.6.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Simple top-like I/O monitor"
+DESCRIPTION = "iotop does for I/O usage what top(1) does for CPU usage. \
+    It watches I/O usage information output by the Linux kernel and displays \
+    a table of current I/O usage by processes on the system."
+HOMEPAGE = "http://guichaz.free.fr/iotop/"
+
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4325afd396febcb659c36b49533135d4"
+
+SRC_URI = "http://guichaz.free.fr/iotop/files/${BP}.tar.bz2"
+SRC_URI[md5sum] = "5ef9456b26d7694abf3101a72e1e0d1d"
+SRC_URI[sha256sum] = "3adea2a24eda49bbbaeb4e6ed2042355b441dbd7161e883067a02bfc8dcef75b"
+
+inherit distutils
+
+do_install_append() {
+    rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/site.pyo || true
+    rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/site.py  || true
+}
+
+RDEPENDS_${PN} = "python-curses python-textutils \
+                  python-codecs python-ctypes python-pprint \
+                  python-shell"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/jansson/jansson_2.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/jansson/jansson_2.4.bb
new file mode 100644
index 0000000..c235729
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/jansson/jansson_2.4.bb
@@ -0,0 +1,12 @@
+SUMMARY = "Jansson is a C library for encoding, decoding and manipulating JSON data"
+HOMEPAGE = "http://www.digip.org/jansson/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6946b728e700de875e60ebb453cc3a20"
+
+SRC_URI = "http://www.digip.org/jansson/releases/${BPN}-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "c4629b89bf0432f3158c461e88fe0113"
+SRC_URI[sha256sum] = "1fcbd1ac3d8b610644acf86a5731d760bb228c9acbace20a2ad0f23baec79b41"
+
+inherit autotools pkgconfig
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi-native_0.9.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi-native_0.9.2.bb
new file mode 100644
index 0000000..9b2ace9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi-native_0.9.2.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Tool for rapid CMPI providers development"
+DESCRIPTION = "\
+KonkretCMPI makes CMPI provider development easier by generating type-safe \
+concrete CIM interfaces from MOF definitions and by providing default \
+implementations for many of the provider operations."
+HOMEPAGE = "https://github.com/rnovacek/konkretcmpi"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f673270bfc350d9ce1efc8724c6c1873"
+DEPENDS = "cmake-native cmpi-bindings-native"
+
+SRC_URI = "git://github.com/rnovacek/konkretcmpi.git \
+           file://konkretcmpi-0.9.2-fix-returning-instance-from-method.patch \
+           file://0001-CMakeLists.txt-fix-lib64-can-not-be-shiped-in-64bit-.patch "
+
+SRCREV = "460e6421c16a8216d29ccd1b7490f814dab8b769"
+S = "${WORKDIR}/git"
+
+inherit native cmake
+LDFLAGS_append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
+
+EXTRA_OECMAKE = "-DWITH_PYTHON=ON \
+                 ${@base_conditional("libdir", "/usr/lib64", "-DLIB_SUFFIX=64", "", d)} \
+                 ${@base_conditional("libdir", "/usr/lib32", "-DLIB_SUFFIX=32", "", d)} \
+                "
+
+do_install_append() {
+    rm -rf ${D}${datadir}
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi/0001-CMakeLists.txt-fix-lib64-can-not-be-shiped-in-64bit-.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi/0001-CMakeLists.txt-fix-lib64-can-not-be-shiped-in-64bit-.patch
new file mode 100644
index 0000000..40a0643
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi/0001-CMakeLists.txt-fix-lib64-can-not-be-shiped-in-64bit-.patch
@@ -0,0 +1,31 @@
+From d97ac2bf2ed9c84ffd65ff10989068b202e09fdf Mon Sep 17 00:00:00 2001
+From: Lei Maohui <leimaohui@cn.fujitsu.com>
+Date: Mon, 3 Aug 2015 00:29:54 +0900
+Subject: [PATCH] CMakeLists.txt: fix lib64 can not be shiped in 64bit target
+
+Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
+---
+ CMakeLists.txt | 7 -------
+ 1 file changed, 7 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index be544d1..14696e4 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -11,13 +11,6 @@ set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_P
+ 
+ find_package(CMPI)
+ 
+-# Set LIB_SUFFIX to 64 on 64bit architectures
+-if(CMAKE_SIZEOF_VOID_P EQUAL 4)
+-    set(LIB_SUFFIX "")
+-else(CMAKE_SIZEOF_VOID_P EQUAL 4)
+-    set(LIB_SUFFIX 64)
+-endif(CMAKE_SIZEOF_VOID_P EQUAL 4)
+-
+ option(WITH_PYTHON "Build experimental Python bindings" OFF)
+ 
+ add_subdirectory(cmake)
+-- 
+1.8.4.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi/0001-to-fix-lib64-can-not-be-shiped-in-64bit-target.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi/0001-to-fix-lib64-can-not-be-shiped-in-64bit-target.patch
new file mode 100644
index 0000000..7da13ee
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi/0001-to-fix-lib64-can-not-be-shiped-in-64bit-target.patch
@@ -0,0 +1,36 @@
+From f3c39fd2a4b5f53338b5f821788c63858bf860cf Mon Sep 17 00:00:00 2001
+From: Lei Maohui <leimaohui@cn.fujitsu.com>
+Date: Sun, 2 Aug 2015 22:08:43 +0900
+Subject: [PATCH] to fix lib64 can not be shiped in 64bit target
+
+To fix the warning as following:
+WARNING: QA Issue: konkretcmpi: Files/directories were installed but not shipped in any package:
+  /usr/lib64
+  /usr/lib64/libkonkret.so
+  /usr/lib64/libkonkret.so.0.0.1
+  /usr/lib64/libkonkret.so.0
+  /usr/lib64/libkonkretmof.so.0.0.1
+  /usr/lib64/libkonkretmof.so
+  ...
+
+Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
+---
+ cmake/modules/FindKonkretCMPI.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cmake/modules/FindKonkretCMPI.cmake b/cmake/modules/FindKonkretCMPI.cmake
+index b888cfd..097caed 100644
+--- a/cmake/modules/FindKonkretCMPI.cmake
++++ b/cmake/modules/FindKonkretCMPI.cmake
+@@ -9,7 +9,7 @@ find_path(KONKRETCMPI_INCLUDE_DIR
+ find_library(KONKRETCMPI_LIBRARY
+     NAMES konkret
+     HINTS $ENV{KONKRETCMPI_LIB_DIR}
+-    PATH_SUFFIXES lib64 lib
++    PATH_SUFFIXES lib lib64
+     PATHS /usr /usr/local
+ )
+ 
+-- 
+1.8.4.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi/konkretcmpi-0.9.2-fix-returning-instance-from-method.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi/konkretcmpi-0.9.2-fix-returning-instance-from-method.patch
new file mode 100644
index 0000000..b54d091
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi/konkretcmpi-0.9.2-fix-returning-instance-from-method.patch
@@ -0,0 +1,38 @@
+Port from Fedora20
+
+    | commit aca6c7f910ffe9930b5789969f0adfadd668bb46
+    | Author: Michal Minar <miminar@redhat.com>
+    | Date:   Fri Jun 20 10:50:45 2014 +0200
+    | 
+    |     Fix returning instance as an output argument from method
+    |     
+    |     Submitted By: Radek Novacek <rnovacek@redhat.com>
+
+Upstream-Status: Pending
+Signed-off-by: Qian Lei <qianl.fnst@cn.fujitsu.com>
+
+diff --git a/src/program/main.cpp b/src/program/main.cpp
+index 885dc12..9e7108a 100644
+--- a/src/program/main.cpp
++++ b/src/program/main.cpp
+@@ -506,7 +506,11 @@ static void gen_feature_decls(
+ 
+             // Add sig entry [type][length][name][zero-terminator]
+ 
+-            KTag tag = _ktag(pd->data_type, pd->array_index, key, false, false);
++            KTag tag;
++            if (pd->qualifiers->has_key("EmbeddedInstance"))
++                tag = _ktag(TOK_INSTANCE, pd->array_index, key, false, false);
++            else
++                tag = _ktag(pd->data_type, pd->array_index, key, false, false);
+             pack_tag(sig, tag);
+             pack_name(sig, pd->name);
+             count++;
+@@ -640,6 +644,7 @@ static void gen_param(FILE* os, MOF_Parameter* p, vector<unsigned char>& sig)
+         const char* ktn = _ktype_name(p->data_type);
+ 
+         if (p->qualifiers->has_key("EmbeddedInstance")) {
++            tag = _ktag(TOK_INSTANCE, p->array_index, false, in, out);
+             if (p->array_index)
+                 put(os, "    KInstanceA $0;\n", p->name, NULL);
+             else
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi_0.9.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi_0.9.2.bb
new file mode 100644
index 0000000..1d8b0db
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/konkretcmpi/konkretcmpi_0.9.2.bb
@@ -0,0 +1,34 @@
+SUMMARY = "Tool for rapid CMPI providers development"
+DESCRIPTION = "\
+KonkretCMPI makes CMPI provider development easier by generating type-safe \
+concrete CIM interfaces from MOF definitions and by providing default \
+implementations for many of the provider operations."
+HOMEPAGE = "https://github.com/rnovacek/konkretcmpi"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f673270bfc350d9ce1efc8724c6c1873"
+DEPENDS = "swig-native sblim-cmpi-devel python"
+
+SRC_URI = "git://github.com/rnovacek/konkretcmpi.git \
+           file://konkretcmpi-0.9.2-fix-returning-instance-from-method.patch \
+           file://0001-CMakeLists.txt-fix-lib64-can-not-be-shiped-in-64bit-.patch \
+           "
+
+SRCREV = "460e6421c16a8216d29ccd1b7490f814dab8b769"
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+EXTRA_OECMAKE = "-DWITH_PYTHON=ON \
+                 ${@base_conditional("libdir", "/usr/lib64", "-DLIB_SUFFIX=64", "", d)} \
+                 ${@base_conditional("libdir", "/usr/lib32", "-DLIB_SUFFIX=32", "", d)} \
+                "
+
+do_install_append() {
+    rm -rf ${D}${datadir}
+}
+
+PACKAGES =+ "${PN}-python ${PN}-python-dbg"
+
+FILES_${PN}-python = "${libdir}/python2.7/site-packages/konkretmof.py* ${libdir}/python2.7/site-packages/_konkretmof.so"
+FILES_${PN}-python-dbg = "${libdir}/python2.7/site-packages/.debug/*"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/lcdproc/lcdproc5.inc b/import-layers/meta-openembedded/meta-oe/recipes-extended/lcdproc/lcdproc5.inc
new file mode 100644
index 0000000..680f558
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/lcdproc/lcdproc5.inc
@@ -0,0 +1,81 @@
+DESCRIPTION = "LCDproc is a client/server suite to drive all kinds of LCD (-like) devices. The client \
+shipped with this package can be used to acquire various kinds of system stats."
+SUMMARY = "Drivers for character-based LCD displays"
+HOMEPAGE = "http://lcdproc.org"
+SECTION = "utils"
+LICENSE = "GPLv2+"
+DEPENDS = "ncurses lirc"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=18810669f13b87348459e611d31ab760 \
+                    file://README;beginline=60;md5=637e042cdd3671ba00e78b58ede45d3b"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/lcdproc/${BP}.tar.gz"
+
+inherit autotools update-rc.d
+
+LCD_DRIVERS ?= "all"
+LCD_DEFAULT_DRIVER ?= "curses"
+
+PACKAGECONFIG ??= "usb"
+PACKAGECONFIG[usb] = "--enable-libusb,--disable-libusb,virtual/libusb0"
+PACKAGECONFIG[ftdi] = "--enable-libftdi,--disable-libftdi,libftdi"
+
+EXTRA_OECONF = "--enable-drivers=${LCD_DRIVERS}"
+
+do_install () {
+    # binaries
+    install -D -m 0755 server/LCDd ${D}${sbindir}/LCDd
+    install -D -m 0755 clients/lcdproc/lcdproc ${D}${bindir}/lcdproc
+
+    # init scripts
+    install -d ${D}${sysconfdir}/init.d
+    # so far, not fixed :-( and now even uglier :-((
+    cat scripts/init-LCDd.debian | sed -e s'/--oknodo//' -e 's/ -s -f / -s 1 -f 1 /' -e 's/force-reload/force-restart/' -e 's/sleep 1/sleep 4/' > ${D}${sysconfdir}/init.d/lcdd
+    chmod 0755 ${D}${sysconfdir}/init.d/lcdd
+    install -m 0755 scripts/init-lcdproc.debian ${D}${sysconfdir}/init.d/lcdproc
+    sed -i s'/--oknodo//' ${D}${sysconfdir}/init.d/lcdproc
+
+    # configuration files
+    install -m 0644 ${S}/LCDd.conf ${D}${sysconfdir}/LCDd.conf
+    sed -i 's!^DriverPath=.*!DriverPath=${libdir}/lcdproc/!' ${D}${sysconfdir}/LCDd.conf
+    sed -i 's!^Driver=.*!Driver=${LCD_DEFAULT_DRIVER}!' ${D}${sysconfdir}/LCDd.conf
+    install -m 0644 ${S}/clients/lcdproc/lcdproc.conf ${D}${sysconfdir}/lcdproc.conf
+
+    # driver library files
+    install -d ${D}${libdir}/lcdproc
+    for i in server/drivers/*.so; do
+        install -m 0644 $i ${D}${libdir}/lcdproc/
+    done
+}
+
+PACKAGES =+ "lcdd"
+
+RRECOMMENDS_${PN} = "lcdd"
+
+FILES_lcdd = "${sysconfdir}/LCDd.conf \
+    ${sbindir}/LCDd \
+    ${sysconfdir}/init.d/lcdd"
+
+CONFFILES_lcdd = "${sysconfdir}/LCDd.conf"
+CONFFILES_${PN} = "${sysconfdir}/lcdproc.conf"
+
+# Driver packages
+
+# USB / no USB trickery
+
+RCONFLICTS_lcdd-driver-hd47780nousb = "lcdd-driver-hd44780"
+RCONFLICTS_lcdd-driver-hd47780 = "lcdd-driver-hd44780nousb"
+
+INITSCRIPT_PACKAGES = "lcdd lcdproc"
+INITSCRIPT_NAME_lcdd = "lcdd"
+INITSCRIPT_NAME_lcdproc = "lcdproc"
+INITSCRIPT_PARAMS_lcdd = "defaults 70 21"
+INITSCRIPT_PARAMS_lcdproc = "defaults 71 20"
+
+python populate_packages_prepend() {
+    plugindir = d.expand('${libdir}/lcdproc')
+    do_split_packages(d, plugindir, '(.*)\.so$', 'lcdd-driver-%s', 'LCDd driver for %s', prepend=True)
+}
+
+PACKAGES_DYNAMIC += "^lcdd-driver-.*"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/lcdproc/lcdproc_0.5.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/lcdproc/lcdproc_0.5.6.bb
new file mode 100644
index 0000000..f57e9df
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/lcdproc/lcdproc_0.5.6.bb
@@ -0,0 +1,23 @@
+require lcdproc5.inc
+
+SRC_URI[md5sum] = "df4f5c2c7285eaf6979b9c7768b4877f"
+SRC_URI[sha256sum] = "bd2f43c30ff43b30f43110abe6b4a5bc8e0267cb9f57fa97cc5e5ef9488b984a"
+
+PACKAGECONFIG ?= ""
+PACKAGECONFIG[g15] = ",,libg15 g15daemon libg15render,"
+PACKAGECONFIG[hid] = "--enable-libhid,--disable-libhid,libhid"
+
+LCD_DRIVERS_append = "${@bb.utils.contains('PACKAGECONFIG', 'g15', '', ',!g15', d)}"
+
+do_install_append () {
+    # binaries
+    install -D -m 0755 clients/lcdvc/lcdvc ${D}${sbindir}/lcdvc
+
+    # configuration files
+    install -D -m 0644 ${S}/clients/lcdvc/lcdvc.conf ${D}${sysconfdir}/lcdvc.conf
+}
+
+PACKAGES =+ "lcdvc"
+CONFFILES_lcdvc = "${sysconfdir}/lcdvc.conf"
+FILES_lcdvc = "${sysconfdir}/lcdvc.conf ${sbindir}/lcdvc"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/leveldb/leveldb/0001-Explicitly-disable-tcmalloc.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/leveldb/leveldb/0001-Explicitly-disable-tcmalloc.patch
new file mode 100644
index 0000000..4b76dd0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/leveldb/leveldb/0001-Explicitly-disable-tcmalloc.patch
@@ -0,0 +1,48 @@
+From d6daac04dab4b3acf4b88f16742d1b402cdc3d83 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Wed, 1 Oct 2014 18:54:04 +0200
+Subject: [PATCH] Explicitly disable tcmalloc
+
+Without this change leveldb autodetects tcmalloc from sysroot and
+sometimes became dependant on gperftools
+
+Disable autodetection without TCMALLOC_ENABLED=true pased to make
+
+Upstream-Status: Pending
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ build_detect_platform | 16 +++++++++-------
+ 1 file changed, 9 insertions(+), 7 deletions(-)
+
+diff --git a/build_detect_platform b/build_detect_platform
+index bb76c4f..a586364 100755
+--- a/build_detect_platform
++++ b/build_detect_platform
+@@ -201,15 +201,17 @@ EOF
+         PLATFORM_LIBS="$PLATFORM_LIBS -lsnappy"
+     fi
+ 
+-    # Test whether tcmalloc is available
+-    $CXX $CXXFLAGS -x c++ - -o $CXXOUTPUT -ltcmalloc 2>/dev/null  <<EOF
+-      int main() {}
++    if [ "$TCMALLOC_ENABLED" = "true" ]; then
++        # Test whether tcmalloc is available
++        $CXX $CXXFLAGS -x c++ - -o $CXXOUTPUT -ltcmalloc 2>/dev/null  <<EOF
++          int main() {}
+ EOF
+-    if [ "$?" = 0 ]; then
+-        PLATFORM_LIBS="$PLATFORM_LIBS -ltcmalloc"
+-    fi
++        if [ "$?" = 0 ]; then
++            PLATFORM_LIBS="$PLATFORM_LIBS -ltcmalloc"
++        fi
+ 
+-    rm -f $CXXOUTPUT 2>/dev/null
++        rm -f $CXXOUTPUT 2>/dev/null
++    fi
+ fi
+ 
+ PLATFORM_CCFLAGS="$PLATFORM_CCFLAGS $COMMON_FLAGS"
+-- 
+2.1.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/leveldb/leveldb_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/leveldb/leveldb_git.bb
new file mode 100644
index 0000000..a6a3024
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/leveldb/leveldb_git.bb
@@ -0,0 +1,27 @@
+SUMMARY = "LevelDB is a fast key-value storage library"
+DESCRIPTION = "LevelDB is a fast key-value storage library that provides an ordered mapping from string keys to string values"
+HOMEPAGE = "http://leveldb.googlecode.com"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=92d1b128950b11ba8495b64938fc164d"
+
+SRCREV = "803d69203a62faf50f1b77897310a3a1fcae712b"
+PV = "1.18+git${SRCPV}"
+
+SRC_URI = "git://github.com/google/${BPN}.git \
+    file://0001-Explicitly-disable-tcmalloc.patch \
+"
+
+S = "${WORKDIR}/git"
+
+do_compile() {
+    # do not use oe_runmake. oe_runmake pass to make compilation arguments and override
+    # leveldb makefile variable CFLAGS and broke leveldb build.
+    CFLAGS="${CFLAGS}" make || die
+}
+
+do_install() {
+    install -d ${D}${libdir}
+    oe_libinstall -C ${S} -so libleveldb ${D}${libdir}
+    install -d ${D}${includedir}/leveldb
+    install -m 644 ${S}/include/leveldb/*.h ${D}${includedir}/leveldb/
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libcec/libcec_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/libcec/libcec_git.bb
new file mode 100644
index 0000000..0f2a64e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libcec/libcec_git.bb
@@ -0,0 +1,23 @@
+SUMMARY = "USB CEC Adaptor communication Library"
+HOMEPAGE = "http://libcec.pulse-eight.com/"
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=5e8e16396992369f73f3d28875f846da"
+
+DEPENDS = "udev lockdev"
+
+PV = "2.1.4"
+
+SRCREV = "81e38211724bc6e8bd7a60f484433053ed682635"
+SRC_URI = "git://github.com/Pulse-Eight/libcec.git;branch=release"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
+# cec-client and xbmc need the .so present to work :(
+FILES_${PN} += "${libdir}/*.so"
+INSANE_SKIP_${PN} = "dev-so"
+
+# Adapter shows up as a CDC-ACM device
+RRECOMMENDS_${PN} = "kernel-module-cdc-acm"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libconfig/libconfig_1.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/libconfig/libconfig_1.5.bb
new file mode 100644
index 0000000..fb6e50e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libconfig/libconfig_1.5.bb
@@ -0,0 +1,14 @@
+SUMMARY = "C/C++ Configuration File Library"
+DESCRIPTION = "Library for manipulating structured configuration files"
+HOMEPAGE = "http://www.hyperrealm.com/libconfig/"
+SECTION = "libs"
+
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=fad9b3332be894bab9bc501572864b29"
+
+SRC_URI = "http://www.hyperrealm.com/${BPN}/${BP}.tar.gz"
+
+inherit autotools-brokensep pkgconfig
+
+SRC_URI[md5sum] = "a939c4990d74e6fc1ee62be05716f633"
+SRC_URI[sha256sum] = "e31daa390d8e4461c8830512fe2e13ba1a3d6a02a2305a02429eec61e68703f6"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libdivecomputer/files/fix-ar.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/libdivecomputer/files/fix-ar.patch
new file mode 100644
index 0000000..cc3f5d4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libdivecomputer/files/fix-ar.patch
@@ -0,0 +1,18 @@
+---
+ configure.ac |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- git.orig/configure.ac
++++ git/configure.ac
+@@ -24,10 +24,11 @@ LT_INIT([win32-dll])
+ LT_PROG_RC
+ 
+ # Checks for programs.
+ AC_PROG_CC
+ AC_PROG_CC_C99
++AM_PROG_AR
+ 
+ # Enable automake silent build rules.
+ m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
+ 
+ # Checks for native Windows.
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libdivecomputer/libdivecomputer_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/libdivecomputer/libdivecomputer_git.bb
new file mode 100644
index 0000000..6c4f4a0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libdivecomputer/libdivecomputer_git.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "Libdivecomputer is a cross-platform and open source library for communication with dive computers from various manufacturers."
+HOMEPAGE = "http://www.divesoftware.org/libdc/"
+
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=243b725d71bb5df4a1e5920b344b86ad"
+
+DEPENDS = "libusb1"
+
+inherit autotools pkgconfig
+
+PV = "0.4.2+gitr${SRCPV}"
+
+SRCREV = "5f765f91430f16932d96b3777404420aa2dd4c7c"
+SRC_URI = "git://git.libdivecomputer.org/libdivecomputer.git \
+           file://fix-ar.patch \
+          "
+
+S = "${WORKDIR}/git"
+
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libgxim/libgxim/multi-line-ACLOCAL_AMFLAGS-isnot-supported-by-autoreconf.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/libgxim/libgxim/multi-line-ACLOCAL_AMFLAGS-isnot-supported-by-autoreconf.patch
new file mode 100644
index 0000000..3d293b4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libgxim/libgxim/multi-line-ACLOCAL_AMFLAGS-isnot-supported-by-autoreconf.patch
@@ -0,0 +1,21 @@
+multi-line ACLOCAL_AMFLAGS isn't supported by autoreconf.
+It will cause configure error as follow.
+
+   aclocal: error: non-option arguments are not accepted: '\'.
+
+Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
+
+diff -Nurp libgxim-0.5.0.orig/Makefile.am libgxim-0.5.0/Makefile.am
+--- libgxim-0.5.0.orig/Makefile.am	2012-12-13 15:48:09.000000000 +0800
++++ libgxim-0.5.0/Makefile.am	2014-12-19 11:05:50.727209821 +0800
+@@ -2,9 +2,7 @@ NULL =
+ AUTOMAKE_OPTIONS = dist-bzip2
+ SUBDIRS = libgxim m4macros po tests docs
+ 
+-ACLOCAL_AMFLAGS =			\
+-	-I m4macros			\
+-	$(NULL)
++ACLOCAL_AMFLAGS = -I m4macros $(NULL)
+ 
+ CONFIGURE_DEPENDENCIES =		\
+ 	requires			\
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libgxim/libgxim_0.5.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/libgxim/libgxim_0.5.0.bb
new file mode 100644
index 0000000..768bdaa
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libgxim/libgxim_0.5.0.bb
@@ -0,0 +1,25 @@
+SUMMARY = "GObject-based XIM protocol library"
+DESCRIPTION = "libgxim is a X Input Method protocol library that is implemented by GObject.\
+this library helps you to implement XIM servers or client applications to\
+communicate through XIM protocol without using Xlib API directly, particularly\
+if your application uses GObject-based main loop.\
+\
+This package contains the shared library."
+
+HOMEPAGE = "http://code.google.com/p/libgxim/"
+SECTION = "System Environment/Libraries"
+
+SRC_URI = "https://bitbucket.org/tagoh/libgxim/downloads/${BPN}-${PV}.tar.bz2 \
+           file://multi-line-ACLOCAL_AMFLAGS-isnot-supported-by-autoreconf.patch"
+
+SRC_URI[md5sum] = "4bb1fa63d00eb224439d413591c29a6a"
+SRC_URI[sha256sum] = "75e20d1744139644f9951b78ea3910b162d3380302315cb4b3d0640f23694c79"
+
+LICENSE = "LGPLv2+"
+LIC_FILES_CHKSUM = "\
+file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
+
+EXTRA_OECONF = " --disable-static --disable-rebuilds"
+DEPENDS += "gtk+ glib-2.0 ruby-native"
+
+inherit autotools pkgconfig gettext
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/files/fix-parallel-make.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/files/fix-parallel-make.patch
new file mode 100644
index 0000000..f6ef6f4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/files/fix-parallel-make.patch
@@ -0,0 +1,21 @@
+From 335b25febd4c864ad0ac08479f5cd43fc21b7d73 Mon Sep 17 00:00:00 2001
+From: Nikias Bassen
+Date: Mon, 09 Jul 2012 21:17:15 +0000
+Subject: Fix building with parallel build makeopts
+
+---
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 0bad840..155994e 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -57,6 +57,8 @@ ADD_SUBDIRECTORY( plutil )
+ ADD_SUBDIRECTORY( include )
+ ADD_SUBDIRECTORY( test )
+ 
++ADD_DEPENDENCIES( plist libcnary )
++
+ IF ( SWIG_FOUND AND PYTHONLIBS_FOUND AND PYTHONINTERP_FOUND )
+ 	ADD_SUBDIRECTORY( swig )
+ ENDIF ( SWIG_FOUND AND PYTHONLIBS_FOUND AND PYTHONINTERP_FOUND )
+--
+cgit v0.9.0.2
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/libplist_1.8.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/libplist_1.8.bb
new file mode 100644
index 0000000..6e8d69f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/libplist_1.8.bb
@@ -0,0 +1,22 @@
+SUMMARY = "A library to handle Apple Property List format whereas it's binary or XML"
+
+LICENSE = "GPLv2 & LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ebb5c50ab7cab4baeffba14977030c07 \
+                    file://COPYING.LESSER;md5=6ab17b41640564434dda85c06b7124f7"
+
+DEPENDS = "libxml2 glib-2.0 swig python"
+
+inherit cmake pkgconfig
+
+SRC_URI = "http://www.libimobiledevice.org/downloads/libplist-${PV}.tar.bz2 \
+           file://fix-parallel-make.patch \
+"
+
+SRC_URI[md5sum] = "2a9e0258847d50f9760dc3ece25f4dc6"
+SRC_URI[sha256sum] = "a418da3880308199b74766deef2a760a9b169b81a868a6a9032f7614e20500ec"
+
+PACKAGES =+ "${PN}-utils ${PN}++"
+FILES_${PN} = "${libdir}/libplist${SOLIBS}"
+FILES_${PN}++ = "${libdir}/libplist++${SOLIBS}"
+FILES_${PN}-utils = "${bindir}/*"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/configure.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/configure.patch
new file mode 100644
index 0000000..ea13e11
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/configure.patch
@@ -0,0 +1,25 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- liblockfile-1.05/./configure.in~configure
++++ liblockfile-1.05/./configure.in
+@@ -1,4 +1,5 @@
+-AC_INIT(lockfile.c)
++AC_INIT
++AC_CONFIG_SRCDIR([lockfile.c])
+ AC_CONFIG_HEADER(autoconf.h)
+ AC_REVISION($Revision: 1.0 $)dnl
+ 
+@@ -111,7 +112,8 @@
+ AC_SUBST(INSTALL_TARGETS)
+ AC_SUBST(nfslockdir)
+ 
+-AC_OUTPUT(\
++AC_CONFIG_FILES([\
+ 	./Makefile \
+ 	./maillock.h \
+-)
++])
++AC_OUTPUT
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/glibc-2.4.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/glibc-2.4.patch
new file mode 100644
index 0000000..e3c4aaa
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/glibc-2.4.patch
@@ -0,0 +1,70 @@
+The local function eaccess conflicts with a glibc function of the same name.
+Rename the function so that this can be build under glibc 2.4, and older
+revisions, without any problems.
+
+--- liblockfile-1.06/dotlockfile.c	2006/07/10 03:17:40	1.1
++++ liblockfile-1.06/dotlockfile.c	2006/07/10 03:18:26
+@@ -42,7 +42,7 @@
+ extern int optind;
+ #endif
+ 
+-extern int eaccess(char *, gid_t, struct stat *);
++extern int xeaccess(char *, gid_t, struct stat *);
+ 
+ /*
+  *	Sleep for an amout of time while regulary checking if
+@@ -252,14 +252,14 @@
+ 		return L_ERROR;
+ 	}
+ 	gid = getgid();
+-	if (eaccess(dir, gid, &st) < 0) {
++	if (xeaccess(dir, gid, &st) < 0) {
+ 		if (errno == ENOENT) {
+ enoent:
+ 			if (!quiet) fprintf(stderr,
+ 				"dotlockfile: %s: no such directory\n", dir);
+ 			return L_TMPLOCK;
+ 		}
+-		if ((r = eaccess(dir, getegid(), &st) < 0) && errno == ENOENT)
++		if ((r = xeaccess(dir, getegid(), &st) < 0) && errno == ENOENT)
+ 			goto enoent;
+ 		if (r < 0 || !ismaillock(lockfile, pwd->pw_name)) {
+ 			if (!quiet) fprintf(stderr,
+@@ -272,7 +272,7 @@
+ 	/*
+ 	 *	Now we should be able to chdir() to the lock directory.
+ 	 *	When we stat("."), it should be the same as at the
+-	 *	eaccess() check or someone played symlink() games on us.
++	 *	xeaccess() check or someone played symlink() games on us.
+ 	 */
+ 	if (chdir(dir) < 0 || stat(".", &st2) < 0) {
+ 		if (!quiet) fprintf(stderr,
+--- liblockfile-1.06/lockfile.c	2006/07/10 03:17:40	1.1
++++ liblockfile-1.06/lockfile.c	2006/07/10 03:18:26
+@@ -54,7 +54,7 @@
+ #ifdef LIB
+ static
+ #endif
+-int eaccess(char *fn, gid_t gid, struct stat *st)
++int xeaccess(char *fn, gid_t gid, struct stat *st)
+ {
+ 	struct stat	tmp;
+ 	uid_t		uid = geteuid();
+@@ -96,7 +96,7 @@
+ 		*p = 0;
+ 	else
+ 		strcpy(dir, ".");
+-	if (eaccess(dir, egid, NULL) >= 0) {
++	if (xeaccess(dir, egid, NULL) >= 0) {
+ 		free(dir);
+ 		return 0;
+ 	}
+@@ -111,7 +111,7 @@
+ 			return 0;
+ 		mailgid = st.st_gid;
+ 	}
+-	ret = eaccess(dir, mailgid, NULL) >= 0;
++	ret = xeaccess(dir, mailgid, NULL) >= 0;
+ 	free (dir);
+ 	return ret;
+ }
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/install.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/install.patch
new file mode 100644
index 0000000..a9319ff
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/install.patch
@@ -0,0 +1,48 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- liblockfile-1.05/Makefile.in~install
++++ liblockfile-1.05/Makefile.in
+@@ -20,6 +20,7 @@
+ includedir	= @includedir@
+ 
+ MAILGROUP	= @MAILGROUP@
++INSTGRP		= $(if $(MAILGROUP),-g $(MAILGROUP))
+ 
+ all:		@TARGETS@
+ install:	@INSTALL_TARGETS@
+@@ -50,25 +51,27 @@
+ 		$(CC) $(CFLAGS) -c lockfile.c -o xlockfile.o
+ 
+ install_static:	static install_common
++		install -d $(ROOT)$(libdir)
+ 		install -m 644 liblockfile.a $(ROOT)$(libdir)
+ 
+ install_shared:	shared install_common
++		install -d $(ROOT)$(libdir)
+ 		install -m 755 liblockfile.so \
+ 			$(ROOT)$(libdir)/liblockfile.so.$(VER)
+ 		ln -s liblockfile.so.$(VER) $(ROOT)$(libdir)/liblockfile.so
+ 		if test "$(ROOT)" = ""; then @LDCONFIG@; fi
+ 
+ install_common:
++		install -d $(ROOT)$(includedir)
+ 		install -m 644 lockfile.h maillock.h $(ROOT)$(includedir)
+-		if [ "$(MAILGROUP)" != "" ]; then\
+-		  install -g $(MAILGROUP) -m 2755 dotlockfile $(ROOT)$(bindir);\
+-		else \
+-		  install -g root -m 755 dotlockfile $(ROOT)$(bindir); \
+-		fi
++		install -d $(ROOT)$(bindir)
++		install -m 755 $(INSTGRP) dotlockfile $(ROOT)$(bindir)
++		install -d $(ROOT)$(mandir)/man1 $(ROOT)$(mandir)/man3
+ 		install -m 644 *.1 $(ROOT)$(mandir)/man1
+ 		install -m 644 *.3 $(ROOT)$(mandir)/man3
+ 
+ install_nfslib:	nfslib
++		install -d $(ROOT)$(nfslockdir)
+ 		install -m 755 nfslock.so.$(VER) $(ROOT)$(nfslockdir)
+ 		if test "$(ROOT)" = ""; then @LDCONFIG@; fi
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/ldflags.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/ldflags.patch
new file mode 100644
index 0000000..eb1d147
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/ldflags.patch
@@ -0,0 +1,21 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- liblockfile-1.05/Makefile.in~ldflags
++++ liblockfile-1.05/Makefile.in
+@@ -34,11 +34,11 @@
+ 
+ liblockfile.so: liblockfile.a
+ 		$(CC) -fPIC -shared -Wl,-soname,liblockfile.so.1 \
+-			-o liblockfile.so lockfile.o -lc
++			-o liblockfile.so lockfile.o $(LDFLAGS) -lc
+ 
+ nfslock.so.$(VER):	nfslock.o
+ 		$(CC) -fPIC -shared -Wl,-soname,nfslock.so.0 \
+-			-o nfslock.so.$(NVER) nfslock.o
++			-o nfslock.so.$(NVER) nfslock.o $(LDFLAGS)
+ 
+ dotlockfile:	dotlockfile.o xlockfile.o
+ 		$(CC) $(LDFLAGS) -o dotlockfile dotlockfile.o xlockfile.o
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/liblockfile-fix-install-so-to-man-dir.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/liblockfile-fix-install-so-to-man-dir.patch
new file mode 100644
index 0000000..27f760c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/liblockfile-fix-install-so-to-man-dir.patch
@@ -0,0 +1,20 @@
+Upstream-Status: Inappropriate [no upstream]
+
+The extend so file is rename from nfslock.so.$(VER) to nfslock.so.$(NVER). That
+causes file nfslock.so.0.1 is installed into manual directory. Fix it.
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+diff --git a/Makefile.in b/Makefile.in
+index a589fb8..46a57e8 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -68,7 +68,7 @@ install_common:
+ 		install -d $(ROOT)$(bindir)
+ 		install -m 755 $(INSTGRP) dotlockfile $(ROOT)$(bindir)
+ 		install -d $(ROOT)$(mandir)/man1 $(ROOT)$(mandir)/man3
+-		install -m 644 *.1 $(ROOT)$(mandir)/man1
++		install -m 644 dotlockfile.1 $(ROOT)$(mandir)/man1
+ 		install -m 644 *.3 $(ROOT)$(mandir)/man3
+ 
+ install_nfslib:	nfslib
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/liblockfile-fix-nfslib-and-soname.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/liblockfile-fix-nfslib-and-soname.patch
new file mode 100644
index 0000000..ffd7a40
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/liblockfile-fix-nfslib-and-soname.patch
@@ -0,0 +1,54 @@
+Upstream-Status: Inappropriate [no upstream]
+
+* nfslib should use NVER instead of VER
+* install the missing soname library
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+---
+ Makefile.in         |    9 ++++++---
+ 1 files changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 836ca9b..a589fb8 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -27,7 +27,7 @@ install:	@INSTALL_TARGETS@
+ 
+ static:		liblockfile.a dotlockfile
+ shared:		liblockfile.so dotlockfile
+-nfslib:		nfslock.so.$(VER)
++nfslib:		nfslock.so.$(NVER)
+ 
+ liblockfile.a:	lockfile.o
+ 		$(AR) rv liblockfile.a lockfile.o
+@@ -36,7 +36,7 @@ liblockfile.so: liblockfile.a
+ 		$(CC) -fPIC -shared -Wl,-soname,liblockfile.so.1 \
+ 			-o liblockfile.so lockfile.o $(LDFLAGS) -lc
+ 
+-nfslock.so.$(VER):	nfslock.o
++nfslock.so.$(NVER):	nfslock.o
+ 		$(CC) -fPIC -shared -Wl,-soname,nfslock.so.0 \
+ 			-o nfslock.so.$(NVER) nfslock.o $(LDFLAGS)
+ 
+@@ -59,6 +59,7 @@ install_shared:	shared install_common
+ 		install -m 755 liblockfile.so \
+ 			$(ROOT)$(libdir)/liblockfile.so.$(VER)
+ 		ln -s liblockfile.so.$(VER) $(ROOT)$(libdir)/liblockfile.so
++		ln -s liblockfile.so.$(VER) $(ROOT)$(libdir)/liblockfile.so.1
+ 		if test "$(ROOT)" = ""; then @LDCONFIG@; fi
+ 
+ install_common:
+@@ -72,7 +73,9 @@ install_common:
+ 
+ install_nfslib:	nfslib
+ 		install -d $(ROOT)$(nfslockdir)
+-		install -m 755 nfslock.so.$(VER) $(ROOT)$(nfslockdir)
++		install -m 755 nfslock.so.$(NVER) $(ROOT)$(nfslockdir)
++		ln -sf nfslock.so.$(NVER) $(ROOT)$(libdir)/nfslock.so
++		ln -sf nfslock.so.$(NVER) $(ROOT)$(libdir)/nfslock.so.0
+ 		if test "$(ROOT)" = ""; then @LDCONFIG@; fi
+ 
+ clean:
+-- 
+1.7.9.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile_1.09.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile_1.09.bb
new file mode 100644
index 0000000..e5655b5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/liblockfile/liblockfile_1.09.bb
@@ -0,0 +1,34 @@
+SUMMARY = "File locking library"
+SECTION = "libs"
+LICENSE = "LGPLv2+ & GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=ac284a60d48eaa4bc811cddc377fa341"
+
+SRC_URI = "${DEBIAN_MIRROR}/main/libl/liblockfile/liblockfile_1.09.orig.tar.gz \
+    ${DEBIAN_MIRROR}/main/libl/liblockfile/liblockfile_1.09-6.debian.tar.bz2;name=1.09-6 \
+    file://install.patch \
+    file://configure.patch \
+    file://ldflags.patch \
+    file://liblockfile-fix-nfslib-and-soname.patch \
+    file://liblockfile-fix-install-so-to-man-dir.patch \
+"
+
+SRC_URI[md5sum] = "2aa269e4405ee8235ff17d1b357c6ae8"
+SRC_URI[sha256sum] = "16979eba05396365e1d6af7100431ae9d32f9bc063930d1de66298a0695f1b7f"
+
+SRC_URI[1.09-6.md5sum] = "a2811807e63a526c07b0f60626e329a2"
+SRC_URI[1.09-6.sha256sum] = "d45eacb7c637c16d03c777c55989d98da494ae9584a0783fe6dbf0db60fa290f"
+
+inherit autotools-brokensep
+
+# set default mailgroup to mail
+# --with-libnfslock specify where to install nfslock.so.NVER
+EXTRA_OECONF = "--enable-shared \
+                --with-mailgroup=mail \
+                --with-libnfslock=${libdir} \
+"
+
+# Makefile using ROOT not DESTDIR
+EXTRA_OEMAKE += "ROOT=${D}"
+
+FILES_${PN} += "${libdir}/nfslock.so.*"
+FILES_${PN}-dev += "${libdir}/nfslock.so"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/liblogging/liblogging_1.0.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/liblogging/liblogging_1.0.5.bb
new file mode 100644
index 0000000..3488b19
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/liblogging/liblogging_1.0.5.bb
@@ -0,0 +1,23 @@
+SUMMARY = "An easy to use logging library"
+DESCRIPTION = " \
+liblogging (the upstream project) is a collection of several components. \
+Namely: stdlog, journalemu, rfc3195. \
+The stdlog component of liblogging can be viewed as an enhanced version of \
+the syslog(3) API. It retains the easy semantics, but makes the API more \
+sophisticated "behind the scenes" with better support for multiple threads \
+and flexibility for different log destinations (e.g. syslog and systemd \
+journal)."
+SECTION = "libs"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=63fe03535d83726f5655072502bef1bc"
+SRC_URI = "http://download.rsyslog.com/${BPN}/${BPN}-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "44b8ce2daa1bfb84c9feaf42f9925fd7"
+SRC_URI[sha256sum] = "310dc1691279b7a669d383581fe4b0babdc7bf75c9b54a24e51e60428624890b"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--disable-man-pages"
+
+PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "systemd", "systemd", "", d)}"
+PACKAGECONFIG[systemd] = "--enable-journal, --disable-journal, systemd"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/liblognorm/liblognorm.inc b/import-layers/meta-openembedded/meta-oe/recipes-extended/liblognorm/liblognorm.inc
new file mode 100644
index 0000000..dc8abb9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/liblognorm/liblognorm.inc
@@ -0,0 +1,17 @@
+SUMMARY = "Fast samples-based log normalization library"
+DESCRIPTION = "Briefly described, liblognorm is a tool to normalize log data."
+
+HOMEPAGE = "http://www.liblognorm.com"
+SECTION = "base"
+
+LICENSE = "LGPL-2.1+"
+
+SRC_URI = "http://www.liblognorm.com/files/download/${BPN}-${PV}.tar.gz\
+"
+
+inherit autotools pkgconfig
+
+DEPENDS += "libee libestr json-c"
+
+PACKAGECONFIG[debug] = "--enable-debug,--disable-debug,,"
+PACKAGECONFIG[docs] = "--enable-docs,--disable-docs,sphinx,"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/liblognorm/liblognorm_1.0.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/liblognorm/liblognorm_1.0.1.bb
new file mode 100644
index 0000000..5d89e35
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/liblognorm/liblognorm_1.0.1.bb
@@ -0,0 +1,5 @@
+require ${BPN}.inc
+
+SRC_URI[md5sum] = "7b9a826542af9686127110deab09d7a1"
+SRC_URI[sha256sum] = "1f6cdfd901a8f6a97a3cb74bc6107c6746b3e9381f7889e4cd866a488e0c59a5"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ca016db57e008528dace002188c73dad"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus.inc b/import-layers/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus.inc
new file mode 100644
index 0000000..a01659a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus.inc
@@ -0,0 +1,13 @@
+SUMMARY = "A Modbus library"
+DESCRIPTION = "libmodbus is a C library designed to provide a fast and robust \
+implementation of the Modbus protocol. It runs on Linux, Mac OS X, FreeBSD, \
+QNX and Windows."
+HOMEPAGE = "http://www.libmodbus.org/"
+SECTION = "libs"
+
+LICENSE = "LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=4fbd65380cdd255951079008b364516c"
+
+SRC_URI = "http://libmodbus.org/releases/${BP}.tar.gz"
+
+inherit autotools pkgconfig
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus_3.0.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus_3.0.6.bb
new file mode 100644
index 0000000..b4d32fb
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus_3.0.6.bb
@@ -0,0 +1,4 @@
+require libmodbus.inc
+
+SRC_URI[md5sum] = "c80f88b6ca19cabc4ceffc195ca07771"
+SRC_URI[sha256sum] = "046d63f10f755e2160dc56ef681e5f5ad3862a57c1955fd82e0ce036b69471b6"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus_3.1.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus_3.1.2.bb
new file mode 100644
index 0000000..6fcfc3a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus_3.1.2.bb
@@ -0,0 +1,7 @@
+require libmodbus.inc
+
+# Use the stable branch by default
+DEFAULT_PREFERENCE = "-1"
+
+SRC_URI[md5sum] = "dd4262f87ed835c4d1e560f8321a222c"
+SRC_URI[sha256sum] = "661e14f9dc904f3f1b034464ddaa5fd4b8472f8f5d1ea10a1148af85591b7ee9"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libqb/libqb_0.17.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/libqb/libqb_0.17.1.bb
new file mode 100644
index 0000000..77307fe
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libqb/libqb_0.17.1.bb
@@ -0,0 +1,26 @@
+SUMMARY = "An IPC library for high performance servers"
+DESCRIPTION = "libqb is a library with the primary purpose of providing high performance client server reusable features. \
+It provides high performance logging, tracing, ipc, and poll."
+
+HOMEPAGE = "https://github.com/clusterlabs/libqb/wiki"
+
+SECTION = "libs"
+
+inherit autotools pkgconfig
+
+SRC_URI = "https://fedorahosted.org/releases/q/u/quarterback/${BP}.tar.xz \
+          "
+
+SRC_URI[md5sum] = "5770b343baa4528f6fec90120ec55048"
+SRC_URI[sha256sum] = "7a2115f83bfe20eaa5f2e4ed235e8f2994235d3b87e3e5ca41ba47b320f12e29"
+
+LICENSE = "LGPL-2.1"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=321bf41f280cf805086dd5a720b37785"
+
+do_configure_prepend() {
+    ( cd ${S}
+    ${S}/autogen.sh )
+}
+
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libuio/libuio/replace_inline_with_static-inline.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/libuio/libuio/replace_inline_with_static-inline.patch
new file mode 100644
index 0000000..fd314bf
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libuio/libuio/replace_inline_with_static-inline.patch
@@ -0,0 +1,121 @@
+By default, gcc-5 uses C99 inline semantics, this semantics doesn't 
+generate externally visible function for inline functions. This results in 
+below error, when an another translation unit (TU) tries to link with the 
+inline function,
+
+-- snip --
+| lsuio.o: In function `main':
+| <...>/libuio/0.2.1-r0/git/tools/lsuio.c:85: undefined reference to `uio_mmap'
+| collect2: error: ld returned 1 exit status
+| make[2]: *** [lsuio] Error 1
+-- CUT --
+
+To solve this error and make libuio to compile with both 4.x and 5.x,
+
+1. We can remove 'uio_mmap' inline function definition in uio_mmap.c, and move
+   that definition into uio_helper.h file (which is included by lsuio.c) and 
+   replace inline with "static inline". Similarly it can be done to other 
+   uio_single_munmap and uio_munmap inline functions
+
+2. Add 'extern' keyword in front of inline functions declaration, to make 
+   inlined function as externally visible function, and to link with other TUs.
+
+Going with option 1.
+
+Upstream-Status: Pending
+
+Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com>
+
+--- git_org/src/uio_helper.h	2015-10-20 02:37:04.183075855 -0400
++++ git/src/uio_helper.h	2015-10-20 03:34:24.659970136 -0400
+@@ -61,11 +61,11 @@ struct uio_info_t {
+ 
+ /* function prototypes */
+ 
+-inline char* uio_lib_name(void);
+-inline char* uio_lib_version(void);
+-inline int uio_lib_ifcurrent(void);
+-inline int uio_lib_ifrevision(void);
+-inline int uio_lib_ifage(void);
++static inline char* uio_lib_name(void);
++static inline char* uio_lib_version(void);
++static inline int uio_lib_ifcurrent(void);
++static inline int uio_lib_ifrevision(void);
++static inline int uio_lib_ifage(void);
+ 
+ int uio_get_mem_size(struct uio_info_t* info, int map_num);
+ int uio_get_mem_addr(struct uio_info_t* info, int map_num);
+@@ -76,10 +76,30 @@ int uio_get_all_info(struct uio_info_t* 
+ int uio_get_device_attributes(struct uio_info_t* info);
+ 
+ void* uio_single_mmap(struct uio_info_t* info, int map_num, int fd);
+-inline void uio_mmap(struct uio_info_t* info, int fd);
+ 
+-inline void uio_single_munmap(struct uio_info_t* info, int map_num);
+-inline void uio_munmap(struct uio_info_t* info);
++static inline void uio_mmap(struct uio_info_t* info, int fd);
++static inline void uio_mmap(struct uio_info_t* info, int fd)
++{
++        int map_num;
++        if (!fd) return;
++        for (map_num= 0; map_num < MAX_UIO_MAPS; map_num++)
++                uio_single_mmap(info, map_num, fd);
++}
++
++static inline void uio_single_munmap(struct uio_info_t* info, int map_num);
++static inline void uio_single_munmap(struct uio_info_t* info, int map_num)
++{
++        munmap(info->maps[map_num].internal_addr, info->maps[map_num].size);
++        info->maps[map_num].mmap_result = UIO_MMAP_NOT_DONE;
++}
++
++static inline void uio_munmap(struct uio_info_t* info);
++static inline void uio_munmap(struct uio_info_t* info)
++{
++        int i;
++        for (i = 0; i < MAX_UIO_MAPS; i++)
++                uio_single_munmap(info, i);
++}
+ 
+ void uio_free_dev_attrs(struct uio_info_t* info);
+ void uio_free_info(struct uio_info_t* info);
+--- git_org/src/uio_mmap.c	2015-10-20 02:37:04.183075855 -0400
++++ git/src/uio_mmap.c	2015-10-20 03:34:45.060003208 -0400
+@@ -22,11 +22,3 @@
+ #include <stdlib.h>
+ 
+ #include "uio_helper.h"
+-
+-inline void uio_mmap(struct uio_info_t* info, int fd)
+-{
+-	int map_num;
+-	if (!fd) return;
+-	for (map_num= 0; map_num < MAX_UIO_MAPS; map_num++)
+-		uio_single_mmap(info, map_num, fd);
+-}
+--- git_org/src/uio_munmap.c	2015-10-20 02:37:04.183075855 -0400
++++ git/src/uio_munmap.c	2015-10-20 03:34:59.636026835 -0400
+@@ -22,10 +22,3 @@
+ #include <stdlib.h>
+ 
+ #include "uio_helper.h"
+-
+-inline void uio_munmap(struct uio_info_t* info)
+-{
+-	int i;
+-	for (i = 0; i < MAX_UIO_MAPS; i++)
+-		uio_single_munmap(info, i);
+-}
+\ No newline at end of file
+--- git_org/src/uio_single_munmap.c	2015-10-20 02:37:04.183075855 -0400
++++ git/src/uio_single_munmap.c	2015-10-20 03:52:55.005763023 -0400
+@@ -24,9 +24,3 @@
+ #include <sys/mman.h>
+ 
+ #include "uio_helper.h"
+-
+-inline void uio_single_munmap(struct uio_info_t* info, int map_num)
+-{
+-	munmap(info->maps[map_num].internal_addr, info->maps[map_num].size);
+-	info->maps[map_num].mmap_result = UIO_MMAP_NOT_DONE;
+-}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libuio/libuio_0.2.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/libuio/libuio_0.2.1.bb
new file mode 100644
index 0000000..f405197
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libuio/libuio_0.2.1.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Libuio - helper library for UIO subsystem"
+SECTION = "base"
+LICENSE = "GPL-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833"
+
+SRC_URI = "git://git.code.sf.net/p/libuio/code \
+           file://replace_inline_with_static-inline.patch"
+
+inherit autotools
+
+SRCREV = "ed4f07ea147ac403c28105ab44d01bbf524d36f9"
+
+S = "${WORKDIR}/git"
+
+PACKAGES += "${PN}-tools"
+
+FILES_${PN} = "${libdir}"
+FILES_${PN}-tools = "${bindir}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libwmf/libwmf/0001-configure-use-pkg-config-for-freetype.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/libwmf/libwmf/0001-configure-use-pkg-config-for-freetype.patch
new file mode 100644
index 0000000..0f133e2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libwmf/libwmf/0001-configure-use-pkg-config-for-freetype.patch
@@ -0,0 +1,67 @@
+From 61655f82224cadb261e81f8bae111eaaa7bdf531 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Wed, 6 Aug 2014 14:53:03 +0200
+Subject: [PATCH] configure: use pkg-config for freetype
+
+Upstream-status: Pending
+Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
+---
+ configure.ac | 37 ++++++++-----------------------------
+ 1 file changed, 8 insertions(+), 29 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 3cfe974..0055a8c 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -399,40 +399,19 @@ AC_ARG_WITH(freetype,[  --with-freetype=DIR     use freetype2 in DIR],[
+ 	fi
+ ])
+ 
+-if [ test -n "$FREETYPE_DIR" ]; then
+-	AC_PATH_PROG(FREETYPE_CONFIG,freetype-config, ,[$FREETYPE_DIR/bin:$PATH])
+-else
+-	AC_PATH_PROG(FREETYPE_CONFIG,freetype-config)
+-fi
+-
+-if [ test -n "$FREETYPE_CONFIG" ]; then
+-	if [ test -n "$FREETYPE_DIR" ]; then
+-		freetype_cflags="`$FREETYPE_CONFIG --cflags` -I$FREETYPE_DIR/include"
+-		freetype_libs=`$FREETYPE_CONFIG --libs`
+-	else
+-		freetype_cflags=`$FREETYPE_CONFIG --cflags`
+-		freetype_libs=`$FREETYPE_CONFIG --libs`
+-	fi
+-else
+-	if [ test -n "$FREETYPE_DIR" ]; then
+-		freetype_cflags="-I$FREETYPE_DIR/include/freetype2 -I$FREETYPE_DIR/include"
+-		freetype_libs="-L$FREETYPE_DIR/lib -lfreetype"
+-	else
+-		freetype_cflags=""
+-		freetype_libs="-lfreetype"
+-	fi
+-fi
+-
+-CPPFLAGS="$freetype_cflags $CPPFLAGS"
+-LDFLAGS="$LDFLAGS $freetype_libs"
++PKG_CHECK_MODULES(FREETYPE2, freetype2, 
++    CFLAGS="$CFLAGS $FREETYPE2_CFLAGS"
++    LDFLAGS="$LDFLAGS $FREETYPE2_LIBS",
++    AC_MSG_ERROR([*** Unable to find FreeType2 library (http://www.freetype.org/)])
++)
+ 
+ AC_CHECK_LIB(freetype,FT_Init_FreeType,[
+-	WMF_FT_LDFLAGS="$freetype_libs"
++	WMF_FT_LDFLAGS="$FREETYPE2_LIBS"
+ ],[	AC_MSG_ERROR([* * * freetype(2) is required * * *])
+ ])
+ AC_CHECK_HEADER(ft2build.h,[
+-	WMF_FT_CFLAGS="$freetype_cflags"
+-	WMF_FT_CONFIG_CFLAGS="$freetype_cflags"
++	WMF_FT_CFLAGS="$FREETYPE2_CFLAGS"
++	WMF_FT_CONFIG_CFLAGS="$FREETYPE2_CFLAGS"
+ ],[	AC_MSG_ERROR([* * * freetype(2) is required * * *])
+ ])
+ 
+-- 
+1.9.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libwmf/libwmf/libwmf-0.2.8.4-intoverflow.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/libwmf/libwmf/libwmf-0.2.8.4-intoverflow.patch
new file mode 100644
index 0000000..50d915c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libwmf/libwmf/libwmf-0.2.8.4-intoverflow.patch
@@ -0,0 +1,31 @@
+http://cvs.fedoraproject.org/viewvc/devel/libwmf/libwmf-0.2.8.4-intoverflow.patch?view=log
+
+CVE-2006-3376 libwmf integer overflow
+
+--- libwmf-0.2.8.4.orig/src/player.c	2002-12-10 19:30:26.000000000 +0000
++++ libwmf-0.2.8.4/src/player.c	2006-07-12 15:12:52.000000000 +0100
+@@ -42,6 +42,7 @@
+ #include "player/defaults.h" /* Provides: default settings               */
+ #include "player/record.h"   /* Provides: parameter mechanism            */
+ #include "player/meta.h"     /* Provides: record interpreters            */
++#include <stdint.h>
+ 
+ /**
+  * @internal
+@@ -132,8 +134,14 @@
+ 		}
+ 	}
+ 
+-/*	P->Parameters = (unsigned char*) wmf_malloc (API,(MAX_REC_SIZE(API)-3) * 2 * sizeof (unsigned char));
+- */	P->Parameters = (unsigned char*) wmf_malloc (API,(MAX_REC_SIZE(API)  ) * 2 * sizeof (unsigned char));
++	if (MAX_REC_SIZE(API) > UINT32_MAX / 2)
++	{
++		API->err = wmf_E_InsMem;
++		WMF_DEBUG (API,"bailing...");
++		return (API->err);
++	}
++	
++ 	P->Parameters = (unsigned char*) wmf_malloc (API,(MAX_REC_SIZE(API)  ) * 2 * sizeof (unsigned char));
+ 
+ 	if (ERR (API))
+ 	{	WMF_DEBUG (API,"bailing...");
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libwmf/libwmf/libwmf-0.2.8.4-useafterfree.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/libwmf/libwmf/libwmf-0.2.8.4-useafterfree.patch
new file mode 100644
index 0000000..4d2d285
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libwmf/libwmf/libwmf-0.2.8.4-useafterfree.patch
@@ -0,0 +1,14 @@
+
+http://cvs.fedoraproject.org/viewvc/devel/libwmf/libwmf-0.2.8.4-useafterfree.patch?view=log
+Resolves: CVE-2009-1364
+
+--- libwmf-0.2.8.4/src/extra/gd/gd_clip.c.CVE-2009-1364-im-clip-list	2009-04-24 04:06:44.000000000 -0400
++++ libwmf-0.2.8.4/src/extra/gd/gd_clip.c	2009-04-24 04:08:30.000000000 -0400
+@@ -70,6 +70,7 @@ void gdClipSetAdd(gdImagePtr im,gdClipRe
+ 	{	more = gdRealloc (im->clip->list,(im->clip->max + 8) * sizeof (gdClipRectangle));
+ 		if (more == 0) return;
+ 		im->clip->max += 8;
++                im->clip->list = more;
+ 	}
+ 	im->clip->list[im->clip->count] = (*rect);
+ 	im->clip->count++;
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libwmf/libwmf_0.2.8.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/libwmf/libwmf_0.2.8.4.bb
new file mode 100644
index 0000000..8ad5457
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libwmf/libwmf_0.2.8.4.bb
@@ -0,0 +1,30 @@
+SUMMARY = "Library for converting WMF files"
+HOMEPAGE = "http://wvware.sourceforge.net/libwmf.html"
+SECTION = "libs"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+PR = "r3"
+
+DEPENDS_class-native = "freetype-native libpng-native jpeg-native"
+DEPENDS = "freetype libpng jpeg expat gtk+"
+
+BBCLASSEXTEND = "native"
+
+inherit autotools pkgconfig
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/wvware/${BPN}/${PV}/${BPN}-${PV}.tar.gz;name=tarball \
+           file://libwmf-0.2.8.4-intoverflow.patch \
+           file://libwmf-0.2.8.4-useafterfree.patch \
+           file://0001-configure-use-pkg-config-for-freetype.patch \
+          "
+
+SRC_URI[tarball.md5sum] = "d1177739bf1ceb07f57421f0cee191e0"
+SRC_URI[tarball.sha256sum] = "5b345c69220545d003ad52bfd035d5d6f4f075e65204114a9e875e84895a7cf8"
+
+FILES_${PN}-dbg += "${libdir}/gtk-2.0/2.10.0/loaders/.debug"
+FILES_${PN}-dev += "${libdir}/gtk-2.0/2.10.0/loaders/*.la"
+FILES_${PN}-staticdev += "${libdir}/gtk-2.0/2.10.0/loaders/*.a"
+FILES_${PN} += "${libdir}/gtk-2.0/2.10.0/loaders/*.so"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libx86-1/libx86-1.1/0001-assume-zero-is-valid-address.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/libx86-1/libx86-1.1/0001-assume-zero-is-valid-address.patch
new file mode 100644
index 0000000..7a46301
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libx86-1/libx86-1.1/0001-assume-zero-is-valid-address.patch
@@ -0,0 +1,26 @@
+assume zero is valid address
+
+Upstream-Status: Pending
+
+Signed-off-by: Roy Li <rongqing.li@windriver.com>
+---
+ thunk.c | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/thunk.c b/thunk.c
+index 796e88b..6121ea1 100644
+--- a/thunk.c
++++ b/thunk.c
+@@ -141,9 +141,6 @@ int LRMI_init() {
+ 
+ 	mmap_addr = LRMI_common_init(1);
+ 
+-	if (!mmap_addr)
+-		return 0;
+-
+ 	X86EMU_pioFuncs pioFuncs = {
+ 		(&x_inb),
+ 		(&x_inw),
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libx86-1/libx86-1.1/libx86-mmap-offset.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/libx86-1/libx86-1.1/libx86-mmap-offset.patch
new file mode 100644
index 0000000..843acc8
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libx86-1/libx86-1.1/libx86-mmap-offset.patch
@@ -0,0 +1,190 @@
+Upstream-Statue: Pending 
+[from ftp://195.220.108.108/linux/fedora/linux/development/rawhide/source/SRPMS/l/libx86-1.1-21.fc23.src.rpm]
+
+diff -ur libx86-1.1/lrmi.c libx86-1.1.hack/lrmi.c
+--- libx86-1.1/lrmi.c	2006-10-30 15:10:16.000000000 -0500
++++ libx86-1.1.hack/lrmi.c	2009-10-26 15:55:42.000000000 -0400
+@@ -136,7 +136,7 @@
+ 	if (context.ready)
+ 		return 1;
+ 
+-	if (!LRMI_common_init())
++	if (!LRMI_common_init(0))
+ 		return 0;
+ 
+ 	/*
+diff -ur libx86-1.1/thunk.c libx86-1.1.hack/thunk.c
+--- libx86-1.1/thunk.c	2008-04-02 20:48:00.000000000 -0400
++++ libx86-1.1.hack/thunk.c	2009-10-26 16:05:39.000000000 -0400
+@@ -139,11 +139,11 @@
+ 	int i;
+ 	X86EMU_intrFuncs intFuncs[256];
+ 
+-	if (!LRMI_common_init())
++	mmap_addr = LRMI_common_init(1);
++
++	if (!mmap_addr)
+ 		return 0;
+ 
+-	mmap_addr = 0;
+-	
+ 	X86EMU_pioFuncs pioFuncs = {
+ 		(&x_inb),
+ 		(&x_inw),
+@@ -169,10 +169,10 @@
+ 	X86_ESP = 0xFFF9;
+ 	memset (stack, 0, 64*1024);
+ 
+-	*((char *)0) = 0x4f; /* Make sure that we end up jumping back to a
+-				halt instruction */
++	*mmap_addr = 0x4f; /* Make sure that we end up jumping back to a
++			      halt instruction */
+ 
+-	M.mem_base = 0;
++	M.mem_base = (unsigned long)mmap_addr;
+ 	M.mem_size = 1024*1024;
+ 
+ 	return 1;
+diff -ur libx86-1.1/x86-common.c libx86-1.1.hack/x86-common.c
+--- libx86-1.1/x86-common.c	2008-05-16 12:56:23.000000000 -0400
++++ libx86-1.1.hack/x86-common.c	2009-10-26 16:03:21.000000000 -0400
+@@ -45,14 +45,15 @@
+ static struct {
+ 	int ready;
+ 	int count;
++	void *offset;
+ 	struct mem_block blocks[REAL_MEM_BLOCKS];
+ } mem_info = { 0 };
+ 
+ static int
+-real_mem_init(void)
++real_mem_init(int high_page)
+ {
+ 	void *m;
+-	int fd_zero;
++	int fd_zero, flags = MAP_SHARED;
+ 
+ 	if (mem_info.ready)
+ 		return 1;
+@@ -63,9 +64,12 @@
+ 		return 0;
+ 	}
+ 
++	if (!high_page)
++		flags |= MAP_FIXED;
++
+ 	m = mmap((void *)REAL_MEM_BASE, REAL_MEM_SIZE,
+-	 PROT_READ | PROT_WRITE | PROT_EXEC,
+-	 MAP_FIXED | MAP_SHARED, fd_zero, 0);
++		 PROT_READ | PROT_WRITE | PROT_EXEC,
++		 flags, fd_zero, 0);
+ 
+ 	if (m == (void *)-1) {
+ 		perror("mmap /dev/zero");
+@@ -76,6 +80,7 @@
+ 	close(fd_zero);
+ 
+ 	mem_info.ready = 1;
++	mem_info.offset = m;
+ 	mem_info.count = 1;
+ 	mem_info.blocks[0].size = REAL_MEM_SIZE;
+ 	mem_info.blocks[0].free = 1;
+@@ -87,7 +92,7 @@
+ real_mem_deinit(void)
+ {
+ 	if (mem_info.ready) {
+-		munmap((void *)REAL_MEM_BASE, REAL_MEM_SIZE);
++		munmap(mem_info.offset, REAL_MEM_SIZE);
+ 		mem_info.ready = 0;
+ 	}
+ }
+@@ -119,7 +124,7 @@
+ LRMI_alloc_real(int size)
+ {
+ 	int i;
+-	char *r = (char *)REAL_MEM_BASE;
++	char *r = (char *)mem_info.offset;
+ 
+ 	if (!mem_info.ready)
+ 		return NULL;
+@@ -151,7 +156,7 @@
+ LRMI_free_real(void *m)
+ {
+ 	int i;
+-	char *r = (char *)REAL_MEM_BASE;
++	char *r = (char *)mem_info.offset;
+ 
+ 	if (!mem_info.ready)
+ 		return;
+@@ -200,13 +205,15 @@
+ 	return *(unsigned short *)(i * 4);
+ }
+ 
+-int LRMI_common_init(void)
++void *LRMI_common_init(int high_page)
+ {
+-	void *m;
++	void *m, *offset;
+ 	int fd_mem;
+ 
+-	if (!real_mem_init())
+-		return 0;
++	if (!real_mem_init(high_page))
++		return NULL;
++
++	offset = mem_info.offset - REAL_MEM_BASE;
+ 
+ 	/*
+ 	 Map the Interrupt Vectors (0x0 - 0x400) + BIOS data (0x400 - 0x502)
+@@ -217,33 +224,33 @@
+ 	if (fd_mem == -1) {
+ 		real_mem_deinit();
+ 		perror("open /dev/mem");
+-		return 0;
++		return NULL;
+ 	}
+ 
+-	m = mmap((void *)0, 0x502,
+-	 PROT_READ | PROT_WRITE | PROT_EXEC,
+-	 MAP_FIXED | MAP_SHARED, fd_mem, 0);
++	m = mmap(offset, 0x502,
++		 PROT_READ | PROT_WRITE | PROT_EXEC,
++		 MAP_FIXED | MAP_SHARED, fd_mem, 0);
+ 
+ 	if (m == (void *)-1) {
+ 		close(fd_mem);
+ 		real_mem_deinit();
+ 		perror("mmap /dev/mem");
+-		return 0;
++		return NULL;
+ 	}
+ 
+-	m = mmap((void *)0xa0000, 0x100000 - 0xa0000,
++	m = mmap(offset+0xa0000, 0x100000 - 0xa0000,
+ 	 PROT_READ | PROT_WRITE | PROT_EXEC,
+ 	 MAP_FIXED | MAP_SHARED, fd_mem, 0xa0000);
+ 
+ 	if (m == (void *)-1) {
+-		munmap((void *)0, 0x502);
++		munmap(offset, 0x502);
+ 		close(fd_mem);
+ 		real_mem_deinit();
+ 		perror("mmap /dev/mem");
+-		return 0;
++		return NULL;
+ 	}
+ 
+ 	close(fd_mem);
+ 
+-	return 1;
++	return offset;
+ }
+diff -ur libx86-1.1/x86-common.h libx86-1.1.hack/x86-common.h
+--- libx86-1.1/x86-common.h	2006-09-07 18:44:27.000000000 -0400
++++ libx86-1.1.hack/x86-common.h	2009-10-26 16:01:19.000000000 -0400
+@@ -40,4 +40,4 @@
+ 
+ void *LRMI_alloc_real(int size);
+ void LRMI_free_real(void *m);
+-int LRMI_common_init(void);
++void *LRMI_common_init(int high_page);
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/libx86-1/libx86-1_1.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/libx86-1/libx86-1_1.1.bb
new file mode 100644
index 0000000..20c152c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/libx86-1/libx86-1_1.1.bb
@@ -0,0 +1,24 @@
+SUMMARY = "x86 real-mode library"
+DESCRIPTION = "A library to provide support for making real-mode calls x86 calls. On \
+x86 hardware, vm86 mode is used. On other platforms, x86 emulation is \
+provided."
+HOMEPAGE = "http://www.codon.org.uk/~mjg59/libx86/"
+LICENSE = "MIT & BSD-3-Clause"
+SECTION = "libs"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=633af6c02e6f624d4c472d970a2aca53"
+
+SRC_URI = "http://www.codon.org.uk/~mjg59/libx86/downloads/${BPN}-${PV}.tar.gz \
+           file://libx86-mmap-offset.patch \
+           file://0001-assume-zero-is-valid-address.patch \
+"
+
+SRC_URI[md5sum] = "41bee1f8e22b82d82b5f7d7ba51abc2a"
+SRC_URI[sha256sum] = "5bf13104cb327472b5cb65643352a9138646becacc06763088d83001d832d048"
+
+BPN = "libx86"
+COMPATIBLE_HOST = '(x86_64|i.86).*-linux'
+
+export LIBDIR = "${libdir}"
+export BACKEND = "x86emu"
+
+inherit autotools-brokensep
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.17.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.17.bb
new file mode 100644
index 0000000..4354fff
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.17.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Command-line programs to safely lock and unlock files and mailboxes"
+DESCRIPTION = "\
+lockfile-progs provide a method to lock and unlock mailboxes and files \
+safely (via liblockfile)."
+HOMEPAGE = "http://packages.qa.debian.org/l/lockfile-progs.html"
+SECTION = "Applications/System"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
+DEPENDS = "liblockfile"
+
+SRC_URI = "http://ftp.de.debian.org/debian/pool/main/l/${BPN}/${BPN}_${PV}.tar.gz"
+SRC_URI[md5sum] = "64424a766fbc8cf6d613fcc14a096e14"
+SRC_URI[sha256sum] = "03fb05d25499532f497775b1747b61fa6beebf12d3bcc951e125349ae166c511"
+
+do_compile() {
+    oe_runmake CFLAGS=' -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -fasynchronous-unwind-tables'
+}
+
+do_install() {
+    install -m 755 -d ${D}${bindir}
+    install bin/* ${D}${bindir}
+    install -m 755 -d ${D}${mandir}/man1
+    install man/* ${D}${mandir}/man1
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/logcheck/logcheck_1.3.17.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/logcheck/logcheck_1.3.17.bb
new file mode 100644
index 0000000..ba4c2ab
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/logcheck/logcheck_1.3.17.bb
@@ -0,0 +1,38 @@
+SUMMARY = "Analyzes log files and sends noticeable events as email"
+DESCRIPTION = "\
+Logcheck is a simple utility which is designed to allow a system administrator \
+to view the log-files which are produced upon hosts under their control. \
+It does this by mailing summaries of the log-files to them, after first \
+filtering out "normal" entries. \
+Normal entries are entries which match one of the many included regular \
+expression files contain in the database."
+SECTION = "Applications/System"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c93c0550bd3173f4504b2cbd8991e50b"
+
+SRC_URI = "git://git.debian.org/git/logcheck/logcheck.git"
+SRCREV = "2429e67ad875fee8a0234c64d504277b038c89cd"
+
+S = "${WORKDIR}/git"
+
+do_install() {
+    # Fix QA Issue
+    sed -i '/install -d $(DESTDIR)\/var\/lock\/logcheck/s/^/#/' Makefile
+
+    # "make install" do not install the manpages. Install them manually.
+    install -m 755 -d ${D}${mandir}/man1
+    install -m 755 -d ${D}${mandir}/man8
+    install -m 644 docs/logcheck-test.1 ${D}${mandir}/man1/
+    install -m 644 docs/logtail.8 ${D}${mandir}/man8/
+    install -m 644 docs/logtail2.8 ${D}${mandir}/man8/
+    sed -i "s/syslog/messages/" etc/logcheck.logfiles
+    sed -i "s/auth\.log/secure/" etc/logcheck.logfiles
+    install -m 755 -d ${D}${sysconfdir}/cron.d
+    install -m 644 debian/logcheck.cron.d ${D}${sysconfdir}/cron.d/logcheck
+    install -m 755 -d ${D}/var/lib/logcheck
+    oe_runmake install DESTDIR=${D}
+}
+
+RDEPENDS_${PN} = "perl"
+
+FILES_${PN} += "${datadir}/logtail"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/logwatch/logwatch_7.4.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/logwatch/logwatch_7.4.1.bb
new file mode 100644
index 0000000..b121522
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/logwatch/logwatch_7.4.1.bb
@@ -0,0 +1,58 @@
+SUMMARY = "A log file analysis program"
+DESCRIPTION = "\
+Logwatch is a customizable, pluggable log-monitoring system. It will go \
+through your logs for a given period of time and make a report in the areas \
+that you wish with the detail that you wish. Easy to use - works right out of \
+the package on many systems.\
+"
+SECTION = "devel"
+HOMEPAGE = "http://www.logwatch.org/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=f2566bb12b16d2d80d90ebc533261aa7"
+RDEPENDS_${PN} = "perl"
+
+SRC_URI = "http://jaist.dl.sourceforge.net/project/${BPN}/${BP}/${BP}.tar.gz"
+SRC_URI[md5sum] = "a0c3d8721f877bdcd4a9089eb1b4691b"
+SRC_URI[sha256sum] = "35ec31f9fe981aaa727b144ab3ff2eb655997d8ccabaf66586458f5dfc3a56eb"
+
+do_install() {
+    install -m 0755 -d ${D}${sysconfdir}/logwatch/scripts
+    install -m 0755 -d ${D}${datadir}/logwatch/dist.conf/logfiles
+    install -m 0755 -d ${D}${datadir}/logwatch/dist.conf/services
+    install -m 0755 -d ${D}${localstatedir}/cache/logwatch
+    mv conf/ ${D}${datadir}/logwatch/default.conf
+    mv scripts/ ${D}${datadir}/logwatch/scripts
+    mv lib ${D}${datadir}/logwatch/lib
+    chown -R root:root ${D}${datadir}/logwatch
+
+    install -m 0755 -d ${D}${mandir}/man1
+    install -m 0755 -d ${D}${mandir}/man5
+    install -m 0755 -d ${D}${mandir}/man8
+    install -m 0644 amavis-logwatch.1 ${D}${mandir}/man1
+    install -m 0644 postfix-logwatch.1 ${D}${mandir}/man1
+    install -m 0644 ignore.conf.5 ${D}${mandir}/man5
+    install -m 0644 override.conf.5 ${D}${mandir}/man5
+    install -m 0644 logwatch.conf.5 ${D}${mandir}/man5
+    install -m 0644 logwatch.8 ${D}${mandir}/man8
+
+    install -m 0755 -d ${D}${sysconfdir}/cron.daily
+    install -m 0755 -d ${D}${sbindir}
+    ln -sf ../..${datadir}/logwatch/scripts/logwatch.pl ${D}${sbindir}/logwatch
+    cat > ${D}${sysconfdir}/cron.daily/0logwatch <<EOF
+    DailyReport=\`grep -e "^[[:space:]]*DailyReport[[:space:]]*=[[:space:]]*" /usr/share/logwatch/default.conf/logwatch.conf | head -n1 | sed -e "s|^\s*DailyReport\s*=\s*||"\`
+    if [ "\$DailyReport" != "No" ] && [ "\$DailyReport" != "no" ]
+    then
+            logwatch
+    fi
+EOF
+    chmod 755 ${D}${sysconfdir}/cron.daily/0logwatch
+
+    install -m 0755 -d ${D}${sysconfdir}/logwatch/conf/logfiles
+    install -m 0755 -d ${D}${sysconfdir}/logwatch/conf/services
+    touch ${D}${sysconfdir}/logwatch/conf/logwatch.conf
+    touch ${D}${sysconfdir}/logwatch/conf/ignore.conf
+    touch ${D}${sysconfdir}/logwatch/conf/override.conf
+    echo "# Local configuration options go here (defaults are in /usr/share/logwatch/default.conf/logwatch.conf)" > ${D}${sysconfdir}/logwatch/conf/logwatch.conf
+    echo "###### REGULAR EXPRESSIONS IN THIS FILE WILL BE TRIMMED FROM REPORT OUTPUT #####" > ${D}${sysconfdir}/logwatch/conf/ignore.conf
+    echo "# Configuration overrides for specific logfiles/services may be placed here." > ${D}${sysconfdir}/logwatch/conf/override.conf
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/lprng/lprng_3.8.C.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/lprng/lprng_3.8.C.bb
new file mode 100644
index 0000000..80b93d9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/lprng/lprng_3.8.C.bb
@@ -0,0 +1,19 @@
+SUMMARY = "An Enhanced Printer Spooler"
+SECTION = "console/utils"
+LICENSE = "GPLv2 | Artistic-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c6570d8d699af1883db9d0e733ac9bfb"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz"
+SRC_URI[md5sum] = "5901bed95e61d2bea3ba3056056af432"
+SRC_URI[sha256sum] = "694a1747a96385b89e93f43343bf35cee5c8c73353a83814106911c99f09de10"
+
+inherit autotools gettext
+
+EXTRA_OECONF = "--disable-ssl --disable-kerberos --enable-force_localhost"
+FILES_${PN}-dbg += "${libdir}/lprng/filters/.debug"
+
+do_install_append() {
+    mv ${D}/etc/printcap.sample ${D}/etc/printcap
+    mv ${D}/etc/lpd/lpd.conf.sample ${D}/etc/lpd/lpd.conf
+    mv ${D}/etc/lpd/lpd.perms.sample ${D}/etc/lpd/lpd.perms
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/lssci/lsscsi_0.28.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/lssci/lsscsi_0.28.bb
new file mode 100644
index 0000000..4b8cbaf
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/lssci/lsscsi_0.28.bb
@@ -0,0 +1,12 @@
+SUMMARY = "The lsscsi command lists information about SCSI devices in Linux"
+HOMEPAGE = "http://sg.danny.cz/scsi/lsscsi.html"
+LICENSE = "GPLv2"
+SECTION = "base"
+LIC_FILES_CHKSUM="file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
+
+SRC_URI = "http://sg.danny.cz/scsi/${BP}.tgz"
+
+SRC_URI[md5sum] = "4a39e3b09cd422e2cae3edbaf56b3176"
+SRC_URI[sha256sum] = "025d009a1af42bc5b2fca664c44c9ecdfd754356e4a44f5c6aced2420afadd50"
+
+inherit autotools
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/md5deep/files/wrong-variable-expansion.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/md5deep/files/wrong-variable-expansion.patch
new file mode 100644
index 0000000..3a4c4f4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/md5deep/files/wrong-variable-expansion.patch
@@ -0,0 +1,39 @@
+--- a/configure.ac	2014-08-22 12:22:54.290884351 +0200
++++ b/configure.ac	2014-08-22 12:23:15.822306295 +0200
+@@ -42,18 +42,6 @@
+      ;;		 		     
+ esac
+ 
+-
+-# Bring additional directories where things might be found into our
+-# search path. I don't know why autoconf doesn't do this by default
+-if test x"${mingw}" == "xno" ; then
+-  for spfx in /usr/local /opt/local /sw ; do
+-    echo checking ${spfx}/include
+-    if test -d ${spfx}/include; then
+-        CPPFLAGS="-I${spfx}/include $CPPFLAGS"
+-        LDFLAGS="-L${spfx}/lib $LDFLAGS"
+-    fi
+-  done
+-fi
+ #
+ #
+ ################################################################
+@@ -71,7 +59,7 @@
+ 
+ if test $mingw = "no" ; then
+   # add the warnings we don't want to do on mingw
+-  $WARNINGS_TO_TEST="$WARNINGS_TO_TEST -Wall -Wstrict-prototypes  -Weffc++"
++  WARNINGS_TO_TEST="$WARNINGS_TO_TEST -Wall -Wstrict-prototypes  -Weffc++"
+ fi
+ 
+ for option in $WARNINGS_TO_TEST
+@@ -105,7 +93,7 @@
+ 
+ if test $mingw = "no" ; then
+   # add the warnings we don't want to do on mingw
+-  $WARNINGS_TO_TEST="$WARNINGS_TO_TEST  -Weffc++"
++  WARNINGS_TO_TEST="$WARNINGS_TO_TEST  -Weffc++"
+ fi
+ 
+ for option in $WARNINGS_TO_TEST
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/md5deep/md5deep_4.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/md5deep/md5deep_4.4.bb
new file mode 100644
index 0000000..960e00f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/md5deep/md5deep_4.4.bb
@@ -0,0 +1,16 @@
+SUMMARY = "md5deep and hashdeep to compute and audit hashsets of amounts of files."
+DESCRIPTION = "md5deep is a set of programs to compute MD5, SHA-1, SHA-256, Tiger, or Whirlpool message digests on an arbitrary number of files. This package also includes hashdeep which is also able to audit hashsets."
+AUTHOR = "Jesse Kornblum, Simson L. Garfinkel"
+HOMEPAGE = "http://md5deep.sourceforge.net"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=9190f660105b9a56cdb272309bfd5491"
+# Release 4.4
+SRCREV = "cd2ed7416685a5e83eb10bb659d6e9bec01244ae"
+
+SRC_URI = "git://github.com/jessek/hashdeep.git \
+        file://wrong-variable-expansion.patch \
+        "
+
+S = "${WORKDIR}/git"
+
+inherit autotools
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/mml-widget/gtkmathview/0001-include-cstdio-to-get-printf-definitions.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/mml-widget/gtkmathview/0001-include-cstdio-to-get-printf-definitions.patch
new file mode 100644
index 0000000..c5814bf
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/mml-widget/gtkmathview/0001-include-cstdio-to-get-printf-definitions.patch
@@ -0,0 +1,28 @@
+From c92890c5e18bb6ee23bdb14074bacf306dd9428f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 5 May 2015 20:35:01 -0700
+Subject: [PATCH] include cstdio to get printf definitions
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/engine/boxml/BoxMLHOVElement.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/engine/boxml/BoxMLHOVElement.cc b/src/engine/boxml/BoxMLHOVElement.cc
+index 1a2812c..96c9eea 100644
+--- a/src/engine/boxml/BoxMLHOVElement.cc
++++ b/src/engine/boxml/BoxMLHOVElement.cc
+@@ -21,7 +21,7 @@
+ // <http://www.gnu.org/licenses/>.
+ 
+ #include <config.h>
+-
++#include <cstdio>
+ #include "BoxMLAttributeSignatures.hh"
+ #include "BoxMLHOVElement.hh"
+ #include "BoxMLHElement.hh"
+-- 
+2.1.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/mml-widget/gtkmathview/use_hostcxx.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/mml-widget/gtkmathview/use_hostcxx.patch
new file mode 100644
index 0000000..3fe6328
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/mml-widget/gtkmathview/use_hostcxx.patch
@@ -0,0 +1,18 @@
+Use build_cc to compile the programs to run on build host
+helps with cross compiling
+
+Upstream-Status: Inappropriate [Cross-compiled OE specific]
+
+diff --git a/src/common/mathvariants/Makefile.am b/src/common/mathvariants/Makefile.am
+index 636ccf0..ed9921d 100644
+--- a/src/common/mathvariants/Makefile.am
++++ b/src/common/mathvariants/Makefile.am
+@@ -52,7 +52,7 @@ XSLTPROC = xsltproc
+ %.cc : %_gen.cc $(srcdir)/variant.top $(srcdir)/variant.bot
+ 	cat $(srcdir)/variant.top >$@
+ 	$(XSLTPROC) --novalid --param temp "false()" $(srcdir)/extract.xsl $(<:%_gen.cc=$(srcdir)/xml/%.xml) >>$@
+-	$(CXX) -o $(@:%.cc=%) -I$(top_builddir)/auto $<
++	$(BUILD_CXX) -o $(@:%.cc=%) -I$(top_builddir)/auto $<
+ 	echo "Char32 " >>$@
+ 	basename map_variant_$@ .cc | tr "-" "_" >>$@
+ 	echo "(Char32 ch)" >>$@
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/mml-widget/gtkmathview_0.8.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/mml-widget/gtkmathview_0.8.0.bb
new file mode 100644
index 0000000..3edbeed
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/mml-widget/gtkmathview_0.8.0.bb
@@ -0,0 +1,23 @@
+HOMEPAGE = "http://helm.cs.unibo.it/mml-widget/"
+DEPENDS = "t1lib gtk+ popt libxslt libxml2"
+
+LICENSE = "LGPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6a6a8e020838b23406c81b19c1d46df6"
+
+PR = "r3"
+SRCREV = "0bc2cfa0a47aed2c8a63abd989cb8da4dcceb2ec"
+PV = "0.8.0+git${SRCPV}"
+
+SRC_URI = "git://github.com/GNOME/gtkmathview.git \
+           file://use_hostcxx.patch \
+	   file://0001-include-cstdio-to-get-printf-definitions.patch \
+          "
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
+do_configure_append() {
+    # avoid host polution inf pkg-config files
+    sed -i "s:${STAGING_DIR_HOST}::g" `find -name '*.pc'`
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-add-support-for-big-endian-32bit-ARM.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-add-support-for-big-endian-32bit-ARM.patch
new file mode 100644
index 0000000..7b7038f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-add-support-for-big-endian-32bit-ARM.patch
@@ -0,0 +1,26 @@
+From 07830cbc409f8e998fa839275470031fc83d6eb6 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen.kooi@linaro.org>
+Date: Thu, 21 Apr 2016 14:10:54 +0200
+Subject: [PATCH] add support for big endian 32bit ARM
+
+Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
+---
+ mfbt/double-conversion/utils.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/mfbt/double-conversion/utils.h b/mfbt/double-conversion/utils.h
+index fe26dab..78a19cb 100644
+--- a/mfbt/double-conversion/utils.h
++++ b/mfbt/double-conversion/utils.h
+@@ -58,7 +58,7 @@
+     defined(__mips__) || defined(__powerpc__) || \
+     defined(__sparc__) || defined(__sparc) || defined(__s390__) || \
+     defined(__SH4__) || defined(__alpha__) || \
+-    defined(__aarch64__) || \
++    defined(__aarch64__) || defined(__ARMEB__) || \
+     defined(_MIPS_ARCH_MIPS32R2)
+ #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
+ #elif defined(_M_IX86) || defined(__i386__) || defined(__i386)
+-- 
+2.4.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch
new file mode 100644
index 0000000..bc141d9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch
@@ -0,0 +1,35 @@
+From 0a61b0b98c152f10404ccbdeeac583a486638a7a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Thu, 6 Jun 2013 18:36:01 +0200
+Subject: [PATCH] js.pc.in: do not include RequiredDefines.h for depending
+ packages
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+in our cross environment the would fail with:
+
+| cc1: fatal error: /usr/include/js-17.0/js/RequiredDefines.h: No such file or directory
+
+and currently it only defines __STDC_LIMIT_MACROS
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+---
+ js.pc.in |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/js.pc.in b/js.pc.in
+index 13d761d..a95a7bd 100644
+--- a/js.pc.in
++++ b/js.pc.in
+@@ -8,4 +8,4 @@ Description: The Mozilla library for JavaScript
+ Version: @MOZILLA_VERSION@
+ Requires.private: @NSPR_PKGCONF_CHECK@
+ Libs: -L${libdir} -l@LIBRARY_NAME@
+-Cflags: -include ${includedir}/@MODULE@/js/RequiredDefines.h -I${includedir}/@MODULE@
++Cflags: -I${includedir}/@MODULE@
+-- 
+1.7.6.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-mozjs17.0.0-fix-the-compile-bug-of-powerpc.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-mozjs17.0.0-fix-the-compile-bug-of-powerpc.patch
new file mode 100644
index 0000000..de72d4f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-mozjs17.0.0-fix-the-compile-bug-of-powerpc.patch
@@ -0,0 +1,36 @@
+From da3929a96d9c74e11bf37d128890e18fcb745365 Mon Sep 17 00:00:00 2001
+From: Lei Maohui <leimaohui@cn.fujitsu.com>
+Date: Mon, 26 Jan 2015 08:53:19 +0900
+Subject: [PATCH] mozjs17.0.0: fix the compile bug of powerpc
+
+To fix the bug as following
+
+error: cannot convert '__va_list_tag**' to '__va_list_tag (*)[1]' for
+argument '5' to 'JSBool TryArgumentFormatter(JSContext*, const char**,
+JSBool, jsval**, __va_list_tag (*)[1])'
+
+Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
+---
+ jscpucfg.h | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/jscpucfg.h b/jscpucfg.h
+index dfb1c14..8683491 100644
+--- a/jscpucfg.h
++++ b/jscpucfg.h
+@@ -47,6 +47,12 @@
+ #elif defined(JS_HAVE_ENDIAN_H)
+ # include <endian.h>
+ 
++#if defined(_POWER) || defined(__powerpc__) || \
++    defined(__ppc__)
++# define HAVE_VA_LIST_AS_ARRAY 1
++# endif
++
++
+ # if defined(__BYTE_ORDER)
+ #  if __BYTE_ORDER == __LITTLE_ENDIAN
+ #   define IS_LITTLE_ENDIAN 1
+-- 
+1.8.4.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-regenerate-configure.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-regenerate-configure.patch
new file mode 100644
index 0000000..fa413ea
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0001-regenerate-configure.patch
@@ -0,0 +1,3238 @@
+From 6440b4901c6f4bcc69686ff10806e311cc5a927b Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen.kooi@linaro.org>
+Date: Tue, 3 Mar 2015 19:12:17 +0800
+Subject: [PATCH] regenerate configure with autoconf-2.13
+
+Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
+Upstream-status: Inappropriate [generated file]
+
+---
+ js/src/configure | 838 ++++++++++++++++++++++++++-----------------------------
+ 1 file changed, 389 insertions(+), 449 deletions(-)
+
+diff --git a/js/src/configure b/js/src/configure
+index cb6b41b..b05298f 100755
+--- a/js/src/configure
++++ b/js/src/configure
+@@ -5757,6 +5757,10 @@ arm*)
+     CPU_ARCH=arm
+     ;;
+ 
++aarch64*)
++    CPU_ARCH=aarch64
++    ;;
++
+ mips|mipsel)
+     CPU_ARCH="mips"
+     ;;
+@@ -5893,14 +5897,14 @@ no)
+     _SAVE_CFLAGS="$CFLAGS"
+     CFLAGS="$arch_flag"
+     cat > conftest.$ac_ext <<EOF
+-#line 5897 "configure"
++#line 5901 "configure"
+ #include "confdefs.h"
+ 
+ int main() {
+ return sizeof(__thumb2__);
+ ; return 0; }
+ EOF
+-if { (eval echo configure:5904: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:5908: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   MOZ_THUMB2=1
+ else
+@@ -5972,16 +5976,16 @@ if test -n "$all_flags"; then
+     _SAVE_CFLAGS="$CFLAGS"
+     CFLAGS="$all_flags"
+     echo $ac_n "checking whether the chosen combination of compiler flags ($all_flags) works""... $ac_c" 1>&6
+-echo "configure:5976: checking whether the chosen combination of compiler flags ($all_flags) works" >&5
++echo "configure:5980: checking whether the chosen combination of compiler flags ($all_flags) works" >&5
+     cat > conftest.$ac_ext <<EOF
+-#line 5978 "configure"
++#line 5982 "configure"
+ #include "confdefs.h"
+ 
+ int main() {
+ return 0;
+ ; return 0; }
+ EOF
+-if { (eval echo configure:5985: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:5989: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   echo "$ac_t""yes" 1>&6
+ else
+@@ -6004,18 +6008,18 @@ fi
+ 
+ if test "$CPU_ARCH" = "arm"; then
+   echo $ac_n "checking for ARM SIMD support in compiler""... $ac_c" 1>&6
+-echo "configure:6008: checking for ARM SIMD support in compiler" >&5
++echo "configure:6012: checking for ARM SIMD support in compiler" >&5
+   # We try to link so that this also fails when
+   # building with LTO.
+   cat > conftest.$ac_ext <<EOF
+-#line 6012 "configure"
++#line 6016 "configure"
+ #include "confdefs.h"
+ 
+ int main() {
+ asm("uqadd8 r1, r1, r2");
+ ; return 0; }
+ EOF
+-if { (eval echo configure:6019: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:6023: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   result="yes"
+ else
+@@ -6038,18 +6042,18 @@ EOF
+   fi
+ 
+   echo $ac_n "checking for ARM NEON support in compiler""... $ac_c" 1>&6
+-echo "configure:6042: checking for ARM NEON support in compiler" >&5
++echo "configure:6046: checking for ARM NEON support in compiler" >&5
+   # We try to link so that this also fails when
+   # building with LTO.
+   cat > conftest.$ac_ext <<EOF
+-#line 6046 "configure"
++#line 6050 "configure"
+ #include "confdefs.h"
+ 
+ int main() {
+ asm(".fpu neon\n vadd.i8 d0, d0, d0");
+ ; return 0; }
+ EOF
+-if { (eval echo configure:6053: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:6057: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   result="yes"
+ else
+@@ -6094,7 +6098,7 @@ configure_static_assert_macros='
+ '
+ 
+ echo $ac_n "checking that static assertion macros used in autoconf tests work""... $ac_c" 1>&6
+-echo "configure:6098: checking that static assertion macros used in autoconf tests work" >&5
++echo "configure:6102: checking that static assertion macros used in autoconf tests work" >&5
+ if eval "test \"`echo '$''{'ac_cv_static_assertion_macros_work'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -6108,14 +6112,14 @@ cross_compiling=$ac_cv_prog_cc_cross
+ 
+   ac_cv_static_assertion_macros_work="yes"
+   cat > conftest.$ac_ext <<EOF
+-#line 6112 "configure"
++#line 6116 "configure"
+ #include "confdefs.h"
+ $configure_static_assert_macros
+ int main() {
+ CONFIGURE_STATIC_ASSERT(1)
+ ; return 0; }
+ EOF
+-if { (eval echo configure:6119: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:6123: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   :
+ else
+   echo "configure: failed program was:" >&5
+@@ -6125,14 +6129,14 @@ else
+ fi
+ rm -f conftest*
+   cat > conftest.$ac_ext <<EOF
+-#line 6129 "configure"
++#line 6133 "configure"
+ #include "confdefs.h"
+ $configure_static_assert_macros
+ int main() {
+ CONFIGURE_STATIC_ASSERT(0)
+ ; return 0; }
+ EOF
+-if { (eval echo configure:6136: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:6140: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   ac_cv_static_assertion_macros_work="no"
+ else
+@@ -6148,14 +6152,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
+ cross_compiling=$ac_cv_prog_cxx_cross
+ 
+   cat > conftest.$ac_ext <<EOF
+-#line 6152 "configure"
++#line 6156 "configure"
+ #include "confdefs.h"
+ $configure_static_assert_macros
+ int main() {
+ CONFIGURE_STATIC_ASSERT(1)
+ ; return 0; }
+ EOF
+-if { (eval echo configure:6159: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:6163: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   :
+ else
+   echo "configure: failed program was:" >&5
+@@ -6165,14 +6169,14 @@ else
+ fi
+ rm -f conftest*
+   cat > conftest.$ac_ext <<EOF
+-#line 6169 "configure"
++#line 6173 "configure"
+ #include "confdefs.h"
+ $configure_static_assert_macros
+ int main() {
+ CONFIGURE_STATIC_ASSERT(0)
+ ; return 0; }
+ EOF
+-if { (eval echo configure:6176: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:6180: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   ac_cv_static_assertion_macros_work="no"
+ else
+@@ -6317,7 +6321,7 @@ if test "$GNU_CC"; then
+     _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wall -Wpointer-arith -Wdeclaration-after-statement"
+     
+     echo $ac_n "checking whether the C compiler supports -Werror=return-type""... $ac_c" 1>&6
+-echo "configure:6321: checking whether the C compiler supports -Werror=return-type" >&5
++echo "configure:6325: checking whether the C compiler supports -Werror=return-type" >&5
+ if eval "test \"`echo '$''{'ac_c_has_werror_return_type'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -6333,14 +6337,14 @@ cross_compiling=$ac_cv_prog_cc_cross
+             _SAVE_CFLAGS="$CFLAGS"
+             CFLAGS="$CFLAGS -Werror -Werror=return-type"
+             cat > conftest.$ac_ext <<EOF
+-#line 6337 "configure"
++#line 6341 "configure"
+ #include "confdefs.h"
+ 
+ int main() {
+ return(0);
+ ; return 0; }
+ EOF
+-if { (eval echo configure:6344: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:6348: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   ac_c_has_werror_return_type="yes"
+ else
+@@ -6368,7 +6372,7 @@ echo "$ac_t""$ac_c_has_werror_return_type" 1>&6
+ 
+     
+     echo $ac_n "checking whether the C compiler supports -Wtype-limits""... $ac_c" 1>&6
+-echo "configure:6372: checking whether the C compiler supports -Wtype-limits" >&5
++echo "configure:6376: checking whether the C compiler supports -Wtype-limits" >&5
+ if eval "test \"`echo '$''{'ac_c_has_wtype_limits'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -6384,14 +6388,14 @@ cross_compiling=$ac_cv_prog_cc_cross
+             _SAVE_CFLAGS="$CFLAGS"
+             CFLAGS="$CFLAGS -Werror -Wtype-limits"
+             cat > conftest.$ac_ext <<EOF
+-#line 6388 "configure"
++#line 6392 "configure"
+ #include "confdefs.h"
+ 
+ int main() {
+ return(0);
+ ; return 0; }
+ EOF
+-if { (eval echo configure:6395: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:6399: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   ac_c_has_wtype_limits="yes"
+ else
+@@ -6419,7 +6423,7 @@ echo "$ac_t""$ac_c_has_wtype_limits" 1>&6
+ 
+     
+     echo $ac_n "checking whether the C compiler supports -Wempty-body""... $ac_c" 1>&6
+-echo "configure:6423: checking whether the C compiler supports -Wempty-body" >&5
++echo "configure:6427: checking whether the C compiler supports -Wempty-body" >&5
+ if eval "test \"`echo '$''{'ac_c_has_wempty_body'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -6435,14 +6439,14 @@ cross_compiling=$ac_cv_prog_cc_cross
+             _SAVE_CFLAGS="$CFLAGS"
+             CFLAGS="$CFLAGS -Werror -Wempty-body"
+             cat > conftest.$ac_ext <<EOF
+-#line 6439 "configure"
++#line 6443 "configure"
+ #include "confdefs.h"
+ 
+ int main() {
+ return(0);
+ ; return 0; }
+ EOF
+-if { (eval echo configure:6446: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:6450: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   ac_c_has_wempty_body="yes"
+ else
+@@ -6476,7 +6480,7 @@ echo "$ac_t""$ac_c_has_wempty_body" 1>&6
+     _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wno-unused"
+     
+     echo $ac_n "checking whether the C compiler supports -Wno-overlength-strings""... $ac_c" 1>&6
+-echo "configure:6480: checking whether the C compiler supports -Wno-overlength-strings" >&5
++echo "configure:6484: checking whether the C compiler supports -Wno-overlength-strings" >&5
+ if eval "test \"`echo '$''{'ac_c_has_wno_overlength_strings'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -6492,14 +6496,14 @@ cross_compiling=$ac_cv_prog_cc_cross
+             _SAVE_CFLAGS="$CFLAGS"
+             CFLAGS="$CFLAGS -Werror -Woverlength-strings"
+             cat > conftest.$ac_ext <<EOF
+-#line 6496 "configure"
++#line 6500 "configure"
+ #include "confdefs.h"
+ 
+ int main() {
+ return(0);
+ ; return 0; }
+ EOF
+-if { (eval echo configure:6503: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:6507: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   ac_c_has_wno_overlength_strings="yes"
+ else
+@@ -6580,7 +6584,7 @@ if test "$GNU_CXX"; then
+     _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wall -Wpointer-arith -Woverloaded-virtual"
+     
+     echo $ac_n "checking whether the C++ compiler supports -Werror=return-type""... $ac_c" 1>&6
+-echo "configure:6584: checking whether the C++ compiler supports -Werror=return-type" >&5
++echo "configure:6588: checking whether the C++ compiler supports -Werror=return-type" >&5
+ if eval "test \"`echo '$''{'ac_cxx_has_werror_return_type'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -6596,14 +6600,14 @@ cross_compiling=$ac_cv_prog_cxx_cross
+             _SAVE_CXXFLAGS="$CXXFLAGS"
+             CXXFLAGS="$CXXFLAGS -Werror -Werror=return-type"
+             cat > conftest.$ac_ext <<EOF
+-#line 6600 "configure"
++#line 6604 "configure"
+ #include "confdefs.h"
+ 
+ int main() {
+ return(0);
+ ; return 0; }
+ EOF
+-if { (eval echo configure:6607: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:6611: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   ac_cxx_has_werror_return_type="yes"
+ else
+@@ -6631,7 +6635,7 @@ echo "$ac_t""$ac_cxx_has_werror_return_type" 1>&6
+ 
+     
+     echo $ac_n "checking whether the C++ compiler supports -Wtype-limits""... $ac_c" 1>&6
+-echo "configure:6635: checking whether the C++ compiler supports -Wtype-limits" >&5
++echo "configure:6639: checking whether the C++ compiler supports -Wtype-limits" >&5
+ if eval "test \"`echo '$''{'ac_cxx_has_wtype_limits'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -6647,14 +6651,14 @@ cross_compiling=$ac_cv_prog_cxx_cross
+             _SAVE_CXXFLAGS="$CXXFLAGS"
+             CXXFLAGS="$CXXFLAGS -Werror -Wtype-limits"
+             cat > conftest.$ac_ext <<EOF
+-#line 6651 "configure"
++#line 6655 "configure"
+ #include "confdefs.h"
+ 
+ int main() {
+ return(0);
+ ; return 0; }
+ EOF
+-if { (eval echo configure:6658: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:6662: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   ac_cxx_has_wtype_limits="yes"
+ else
+@@ -6682,7 +6686,7 @@ echo "$ac_t""$ac_cxx_has_wtype_limits" 1>&6
+ 
+     
+     echo $ac_n "checking whether the C++ compiler supports -Wempty-body""... $ac_c" 1>&6
+-echo "configure:6686: checking whether the C++ compiler supports -Wempty-body" >&5
++echo "configure:6690: checking whether the C++ compiler supports -Wempty-body" >&5
+ if eval "test \"`echo '$''{'ac_cxx_has_wempty_body'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -6698,14 +6702,14 @@ cross_compiling=$ac_cv_prog_cxx_cross
+             _SAVE_CXXFLAGS="$CXXFLAGS"
+             CXXFLAGS="$CXXFLAGS -Werror -Wempty-body"
+             cat > conftest.$ac_ext <<EOF
+-#line 6702 "configure"
++#line 6706 "configure"
+ #include "confdefs.h"
+ 
+ int main() {
+ return(0);
+ ; return 0; }
+ EOF
+-if { (eval echo configure:6709: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:6713: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   ac_cxx_has_wempty_body="yes"
+ else
+@@ -6741,7 +6745,7 @@ echo "$ac_t""$ac_cxx_has_wempty_body" 1>&6
+     _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wno-ctor-dtor-privacy"
+     
+     echo $ac_n "checking whether the C++ compiler supports -Wno-overlength-strings""... $ac_c" 1>&6
+-echo "configure:6745: checking whether the C++ compiler supports -Wno-overlength-strings" >&5
++echo "configure:6749: checking whether the C++ compiler supports -Wno-overlength-strings" >&5
+ if eval "test \"`echo '$''{'ac_cxx_has_wno_overlength_strings'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -6757,14 +6761,14 @@ cross_compiling=$ac_cv_prog_cxx_cross
+             _SAVE_CXXFLAGS="$CXXFLAGS"
+             CXXFLAGS="$CXXFLAGS -Werror -Woverlength-strings"
+             cat > conftest.$ac_ext <<EOF
+-#line 6761 "configure"
++#line 6765 "configure"
+ #include "confdefs.h"
+ 
+ int main() {
+ return(0);
+ ; return 0; }
+ EOF
+-if { (eval echo configure:6768: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:6772: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   ac_cxx_has_wno_overlength_strings="yes"
+ else
+@@ -6792,7 +6796,7 @@ echo "$ac_t""$ac_cxx_has_wno_overlength_strings" 1>&6
+ 
+     
+     echo $ac_n "checking whether the C++ compiler supports -Wno-invalid-offsetof""... $ac_c" 1>&6
+-echo "configure:6796: checking whether the C++ compiler supports -Wno-invalid-offsetof" >&5
++echo "configure:6800: checking whether the C++ compiler supports -Wno-invalid-offsetof" >&5
+ if eval "test \"`echo '$''{'ac_cxx_has_wno_invalid_offsetof'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -6808,14 +6812,14 @@ cross_compiling=$ac_cv_prog_cxx_cross
+             _SAVE_CXXFLAGS="$CXXFLAGS"
+             CXXFLAGS="$CXXFLAGS -Werror -Winvalid-offsetof"
+             cat > conftest.$ac_ext <<EOF
+-#line 6812 "configure"
++#line 6816 "configure"
+ #include "confdefs.h"
+ 
+ int main() {
+ return(0);
+ ; return 0; }
+ EOF
+-if { (eval echo configure:6819: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:6823: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   ac_cxx_has_wno_invalid_offsetof="yes"
+ else
+@@ -6843,7 +6847,7 @@ echo "$ac_t""$ac_cxx_has_wno_invalid_offsetof" 1>&6
+ 
+     
+     echo $ac_n "checking whether the C++ compiler supports -Wno-variadic-macros""... $ac_c" 1>&6
+-echo "configure:6847: checking whether the C++ compiler supports -Wno-variadic-macros" >&5
++echo "configure:6851: checking whether the C++ compiler supports -Wno-variadic-macros" >&5
+ if eval "test \"`echo '$''{'ac_cxx_has_wno_variadic_macros'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -6859,14 +6863,14 @@ cross_compiling=$ac_cv_prog_cxx_cross
+             _SAVE_CXXFLAGS="$CXXFLAGS"
+             CXXFLAGS="$CXXFLAGS -Werror -Wvariadic-macros"
+             cat > conftest.$ac_ext <<EOF
+-#line 6863 "configure"
++#line 6867 "configure"
+ #include "confdefs.h"
+ 
+ int main() {
+ return(0);
+ ; return 0; }
+ EOF
+-if { (eval echo configure:6870: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:6874: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   ac_cxx_has_wno_variadic_macros="yes"
+ else
+@@ -6918,7 +6922,7 @@ echo "$ac_t""$ac_cxx_has_wno_variadic_macros" 1>&6
+         _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wno-c++0x-extensions"
+         
+     echo $ac_n "checking whether the C++ compiler supports -Wno-extended-offsetof""... $ac_c" 1>&6
+-echo "configure:6922: checking whether the C++ compiler supports -Wno-extended-offsetof" >&5
++echo "configure:6926: checking whether the C++ compiler supports -Wno-extended-offsetof" >&5
+ if eval "test \"`echo '$''{'ac_cxx_has_wno_extended_offsetof'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -6934,14 +6938,14 @@ cross_compiling=$ac_cv_prog_cxx_cross
+             _SAVE_CXXFLAGS="$CXXFLAGS"
+             CXXFLAGS="$CXXFLAGS -Werror -Wextended-offsetof"
+             cat > conftest.$ac_ext <<EOF
+-#line 6938 "configure"
++#line 6942 "configure"
+ #include "confdefs.h"
+ 
+ int main() {
+ return(0);
+ ; return 0; }
+ EOF
+-if { (eval echo configure:6945: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:6949: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   ac_cxx_has_wno_extended_offsetof="yes"
+ else
+@@ -6979,7 +6983,7 @@ MKSHLIB_UNFORCE_ALL=
+ if test "$COMPILE_ENVIRONMENT"; then
+ if test "$GNU_CC"; then
+   echo $ac_n "checking whether ld has archive extraction flags""... $ac_c" 1>&6
+-echo "configure:6983: checking whether ld has archive extraction flags" >&5
++echo "configure:6987: checking whether ld has archive extraction flags" >&5
+   if eval "test \"`echo '$''{'ac_cv_mkshlib_force_and_unforce'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -6996,14 +7000,14 @@ LOOP_INPUT
+       LDFLAGS=$force
+       LIBS=$unforce
+       cat > conftest.$ac_ext <<EOF
+-#line 7000 "configure"
++#line 7004 "configure"
+ #include "confdefs.h"
+ 
+ int main() {
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:7007: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:7011: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   ac_cv_mkshlib_force_and_unforce=$line; break
+ else
+@@ -7038,16 +7042,16 @@ ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$a
+ cross_compiling=$ac_cv_prog_cc_cross
+ 
+ echo $ac_n "checking for 64-bit OS""... $ac_c" 1>&6
+-echo "configure:7042: checking for 64-bit OS" >&5
++echo "configure:7046: checking for 64-bit OS" >&5
+ cat > conftest.$ac_ext <<EOF
+-#line 7044 "configure"
++#line 7048 "configure"
+ #include "confdefs.h"
+ $configure_static_assert_macros
+ int main() {
+ CONFIGURE_STATIC_ASSERT(sizeof(void*) == 8)
+ ; return 0; }
+ EOF
+-if { (eval echo configure:7051: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:7055: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   result="yes"
+ else
+@@ -7170,7 +7174,7 @@ case "$host" in
+ esac
+ 
+ echo $ac_n "checking for Python version >= $PYTHON_VERSION but not 3.x""... $ac_c" 1>&6
+-echo "configure:7174: checking for Python version >= $PYTHON_VERSION but not 3.x" >&5
++echo "configure:7178: checking for Python version >= $PYTHON_VERSION but not 3.x" >&5
+ 
+ $PYTHON -c "import sys; sys.exit(sys.version[:3] < sys.argv[1] or sys.version[:2] != '2.')" $PYTHON_VERSION
+ _python_res=$?
+@@ -7181,7 +7185,7 @@ fi
+ echo "$ac_t""yes" 1>&6
+ 
+ echo $ac_n "checking for custom <stdint.h> implementation""... $ac_c" 1>&6
+-echo "configure:7185: checking for custom <stdint.h> implementation" >&5
++echo "configure:7189: checking for custom <stdint.h> implementation" >&5
+ if test "$MOZ_CUSTOM_STDINT_H"; then
+   cat >> confdefs.pytmp <<EOF
+         (''' MOZ_CUSTOM_STDINT_H ''', r''' "$MOZ_CUSTOM_STDINT_H" ''')
+@@ -7249,9 +7253,9 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
+ cross_compiling=$ac_cv_prog_cxx_cross
+ 
+             echo $ac_n "checking for IBM XLC/C++ compiler version >= 9.0.0.7""... $ac_c" 1>&6
+-echo "configure:7253: checking for IBM XLC/C++ compiler version >= 9.0.0.7" >&5
++echo "configure:7257: checking for IBM XLC/C++ compiler version >= 9.0.0.7" >&5
+             cat > conftest.$ac_ext <<EOF
+-#line 7255 "configure"
++#line 7259 "configure"
+ #include "confdefs.h"
+ 
+ int main() {
+@@ -7260,7 +7264,7 @@ int main() {
+                  #endif
+ ; return 0; }
+ EOF
+-if { (eval echo configure:7264: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:7268: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   _BAD_COMPILER=
+ else
+@@ -7298,12 +7302,12 @@ cross_compiling=$ac_cv_prog_cc_cross
+   do
+        ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+   echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+-echo "configure:7302: checking for $ac_hdr" >&5
++echo "configure:7306: checking for $ac_hdr" >&5
+   if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+    cat > conftest.$ac_ext <<EOF
+-#line 7307 "configure"
++#line 7311 "configure"
+ #include "confdefs.h"
+ 
+ #include <$ac_hdr>
+@@ -7311,7 +7315,7 @@ int main() {
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:7315: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:7319: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   eval "ac_cv_header_$ac_safe=yes"
+ else
+@@ -7394,17 +7398,17 @@ EOF
+     # builds.
+     _SAVE_LDFLAGS=$LDFLAGS
+      echo $ac_n "checking for -framework ExceptionHandling""... $ac_c" 1>&6
+-echo "configure:7398: checking for -framework ExceptionHandling" >&5
++echo "configure:7402: checking for -framework ExceptionHandling" >&5
+     LDFLAGS="$LDFLAGS -framework ExceptionHandling"
+     cat > conftest.$ac_ext <<EOF
+-#line 7401 "configure"
++#line 7405 "configure"
+ #include "confdefs.h"
+ 
+ int main() {
+ return 0;
+ ; return 0; }
+ EOF
+-if { (eval echo configure:7408: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:7412: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   ac_cv_have_framework_exceptionhandling="yes"
+ else
+@@ -7426,18 +7430,18 @@ rm -f conftest*
+         echo "Skipping -dead_strip because DTrace is enabled. See bug 403132."
+     else
+                 echo $ac_n "checking for -dead_strip option to ld""... $ac_c" 1>&6
+-echo "configure:7430: checking for -dead_strip option to ld" >&5
++echo "configure:7434: checking for -dead_strip option to ld" >&5
+         _SAVE_LDFLAGS=$LDFLAGS
+         LDFLAGS="$LDFLAGS -Wl,-dead_strip"
+         cat > conftest.$ac_ext <<EOF
+-#line 7434 "configure"
++#line 7438 "configure"
+ #include "confdefs.h"
+ 
+ int main() {
+ return 0;
+ ; return 0; }
+ EOF
+-if { (eval echo configure:7441: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:7445: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   _HAVE_DEAD_STRIP=1
+ else
+@@ -7783,12 +7787,12 @@ EOF
+   do
+        ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+   echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+-echo "configure:7787: checking for $ac_hdr" >&5
++echo "configure:7791: checking for $ac_hdr" >&5
+   if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+    cat > conftest.$ac_ext <<EOF
+-#line 7792 "configure"
++#line 7796 "configure"
+ #include "confdefs.h"
+ 
+ #include <$ac_hdr>
+@@ -7796,7 +7800,7 @@ int main() {
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:7800: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:7804: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   eval "ac_cv_header_$ac_safe=yes"
+ else
+@@ -7989,19 +7993,19 @@ EOF
+     _DEFINES_CXXFLAGS="$_DEFINES_CXXFLAGS -Uunix -U__unix -U__unix__"
+ 
+     echo $ac_n "checking for __declspec(dllexport)""... $ac_c" 1>&6
+-echo "configure:7993: checking for __declspec(dllexport)" >&5
++echo "configure:7997: checking for __declspec(dllexport)" >&5
+ if eval "test \"`echo '$''{'ac_os2_declspec'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 7998 "configure"
++#line 8002 "configure"
+ #include "confdefs.h"
+ __declspec(dllexport) void ac_os2_declspec(void) {}
+ int main() {
+ return 0;
+ ; return 0; }
+ EOF
+-if { (eval echo configure:8005: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:8009: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   ac_os2_declspec="yes"
+ else
+@@ -8054,14 +8058,14 @@ EOF
+            _SAVE_LDFLAGS=$LDFLAGS
+            LDFLAGS="-M /usr/lib/ld/map.noexstk $LDFLAGS"
+            cat > conftest.$ac_ext <<EOF
+-#line 8058 "configure"
++#line 8062 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int main() {
+ printf("Hello World\n");
+ ; return 0; }
+ EOF
+-if { (eval echo configure:8065: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:8069: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   :
+ else
+   echo "configure: failed program was:" >&5
+@@ -8089,7 +8093,7 @@ rm -f conftest*
+        CC_VERSION=`$CC -V 2>&1 | grep '^cc:' 2>/dev/null | $AWK -F\: '{ print $2 }'`
+        CXX_VERSION=`$CXX -V 2>&1 | grep '^CC:' 2>/dev/null | $AWK -F\: '{ print $2 }'`
+        echo $ac_n "checking for Sun C++ compiler version >= 5.9""... $ac_c" 1>&6
+-echo "configure:8093: checking for Sun C++ compiler version >= 5.9" >&5
++echo "configure:8097: checking for Sun C++ compiler version >= 5.9" >&5
+        
+        ac_ext=C
+ # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+@@ -8099,7 +8103,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
+ cross_compiling=$ac_cv_prog_cxx_cross
+ 
+        cat > conftest.$ac_ext <<EOF
+-#line 8103 "configure"
++#line 8107 "configure"
+ #include "confdefs.h"
+ 
+ int main() {
+@@ -8108,7 +8112,7 @@ int main() {
+            #endif
+ ; return 0; }
+ EOF
+-if { (eval echo configure:8112: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:8116: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   _BAD_COMPILER=
+ else
+@@ -8125,7 +8129,7 @@ rm -f conftest*
+            _res="yes"
+        fi
+        cat > conftest.$ac_ext <<EOF
+-#line 8129 "configure"
++#line 8133 "configure"
+ #include "confdefs.h"
+ 
+ int main() {
+@@ -8134,7 +8138,7 @@ int main() {
+            #endif
+ ; return 0; }
+ EOF
+-if { (eval echo configure:8138: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:8142: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   _ABOVE_SS12U1=
+ else
+@@ -8535,7 +8539,7 @@ fi
+ 
+ if test "$GNU_CC" -a "$GCC_USE_GNU_LD" -a -z "$MOZ_DISABLE_ICF"; then
+     echo $ac_n "checking whether the linker supports Identical Code Folding""... $ac_c" 1>&6
+-echo "configure:8539: checking whether the linker supports Identical Code Folding" >&5
++echo "configure:8543: checking whether the linker supports Identical Code Folding" >&5
+ if eval "test \"`echo '$''{'LD_SUPPORTS_ICF'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -8544,7 +8548,7 @@ else
+               'int main() {return foo() - bar();}' > conftest.${ac_ext}
+         # If the linker supports ICF, foo and bar symbols will have
+         # the same address
+-        if { ac_try='${CC-cc} -o conftest${ac_exeext} $LDFLAGS -Wl,--icf=safe -ffunction-sections conftest.${ac_ext} $LIBS 1>&2'; { (eval echo configure:8548: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } &&
++        if { ac_try='${CC-cc} -o conftest${ac_exeext} $LDFLAGS -Wl,--icf=safe -ffunction-sections conftest.${ac_ext} $LIBS 1>&2'; { (eval echo configure:8552: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } &&
+            test -s conftest${ac_exeext} &&
+            objdump -t conftest${ac_exeext} | awk '{a[$6] = $1} END {if (a["foo"] && (a["foo"] != a["bar"])) { exit 1 }}'; then
+             LD_SUPPORTS_ICF=yes
+@@ -8559,14 +8563,14 @@ echo "$ac_t""$LD_SUPPORTS_ICF" 1>&6
+         _SAVE_LDFLAGS="$LDFLAGS -Wl,--icf=safe"
+         LDFLAGS="$LDFLAGS -Wl,--icf=safe -Wl,--print-icf-sections"
+         cat > conftest.$ac_ext <<EOF
+-#line 8563 "configure"
++#line 8567 "configure"
+ #include "confdefs.h"
+ 
+ int main() {
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:8570: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:8574: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   LD_PRINT_ICF_SECTIONS=-Wl,--print-icf-sections
+ else
+@@ -8584,15 +8588,15 @@ fi
+ 
+ if test "$GNU_CC" -a "$GCC_USE_GNU_LD" -a -n "$MOZ_DEBUG_FLAGS"; then
+       echo $ac_n "checking whether removing dead symbols breaks debugging""... $ac_c" 1>&6
+-echo "configure:8588: checking whether removing dead symbols breaks debugging" >&5
++echo "configure:8592: checking whether removing dead symbols breaks debugging" >&5
+ if eval "test \"`echo '$''{'GC_SECTIONS_BREAKS_DEBUG_RANGES'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   echo 'int foo() {return 42;}' \
+              'int bar() {return 1;}' \
+              'int main() {return foo();}' > conftest.${ac_ext}
+-        if { ac_try='${CC-cc} -o conftest.${ac_objext} $CFLAGS $MOZ_DEBUG_FLAGS -c conftest.${ac_ext} 1>&2'; { (eval echo configure:8595: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } &&
+-           { ac_try='${CC-cc} -o conftest${ac_exeext} $LDFLAGS $MOZ_DEBUG_FLAGS -Wl,--gc-sections conftest.${ac_objext} $LIBS 1>&2'; { (eval echo configure:8596: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } &&
++        if { ac_try='${CC-cc} -o conftest.${ac_objext} $CFLAGS $MOZ_DEBUG_FLAGS -c conftest.${ac_ext} 1>&2'; { (eval echo configure:8599: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } &&
++           { ac_try='${CC-cc} -o conftest${ac_exeext} $LDFLAGS $MOZ_DEBUG_FLAGS -Wl,--gc-sections conftest.${ac_objext} $LIBS 1>&2'; { (eval echo configure:8600: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } &&
+            test -s conftest${ac_exeext} -a -s conftest.${ac_objext}; then
+             if test "`$PYTHON "$_topsrcdir"/build/autoconf/check_debug_ranges.py conftest.${ac_objext} conftest.${ac_ext}`" = \
+                     "`$PYTHON "$_topsrcdir"/build/autoconf/check_debug_ranges.py conftest${ac_exeext} conftest.${ac_ext}`"; then
+@@ -8615,12 +8619,12 @@ fi
+ 
+ if test -z "$SKIP_COMPILER_CHECKS"; then
+ echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
+-echo "configure:8619: checking for ANSI C header files" >&5
++echo "configure:8623: checking for ANSI C header files" >&5
+ if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 8624 "configure"
++#line 8628 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ #include <stdarg.h>
+@@ -8628,7 +8632,7 @@ else
+ #include <float.h>
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:8632: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:8636: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+   rm -rf conftest*
+@@ -8645,7 +8649,7 @@ rm -f conftest*
+ if test $ac_cv_header_stdc = yes; then
+   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat > conftest.$ac_ext <<EOF
+-#line 8649 "configure"
++#line 8653 "configure"
+ #include "confdefs.h"
+ #include <string.h>
+ EOF
+@@ -8663,7 +8667,7 @@ fi
+ if test $ac_cv_header_stdc = yes; then
+   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat > conftest.$ac_ext <<EOF
+-#line 8667 "configure"
++#line 8671 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ EOF
+@@ -8684,7 +8688,7 @@ if test "$cross_compiling" = yes; then
+   :
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 8688 "configure"
++#line 8692 "configure"
+ #include "confdefs.h"
+ #include <ctype.h>
+ #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+@@ -8695,7 +8699,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
+ exit (0); }
+ 
+ EOF
+-if { (eval echo configure:8699: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
++if { (eval echo configure:8703: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+ then
+   :
+ else
+@@ -8722,12 +8726,12 @@ EOF
+ fi
+ 
+ echo $ac_n "checking for working const""... $ac_c" 1>&6
+-echo "configure:8726: checking for working const" >&5
++echo "configure:8730: checking for working const" >&5
+ if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 8731 "configure"
++#line 8735 "configure"
+ #include "confdefs.h"
+ 
+ int main() {
+@@ -8776,7 +8780,7 @@ ccp = (char const *const *) p;
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:8780: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:8784: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   ac_cv_c_const=yes
+ else
+@@ -8800,12 +8804,12 @@ EOF
+ fi
+ 
+ echo $ac_n "checking for mode_t""... $ac_c" 1>&6
+-echo "configure:8804: checking for mode_t" >&5
++echo "configure:8808: checking for mode_t" >&5
+ if eval "test \"`echo '$''{'ac_cv_type_mode_t'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 8809 "configure"
++#line 8813 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #if STDC_HEADERS
+@@ -8836,12 +8840,12 @@ EOF
+ fi
+ 
+ echo $ac_n "checking for off_t""... $ac_c" 1>&6
+-echo "configure:8840: checking for off_t" >&5
++echo "configure:8844: checking for off_t" >&5
+ if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 8845 "configure"
++#line 8849 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #if STDC_HEADERS
+@@ -8872,12 +8876,12 @@ EOF
+ fi
+ 
+ echo $ac_n "checking for pid_t""... $ac_c" 1>&6
+-echo "configure:8876: checking for pid_t" >&5
++echo "configure:8880: checking for pid_t" >&5
+ if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 8881 "configure"
++#line 8885 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #if STDC_HEADERS
+@@ -8908,12 +8912,12 @@ EOF
+ fi
+ 
+ echo $ac_n "checking for size_t""... $ac_c" 1>&6
+-echo "configure:8912: checking for size_t" >&5
++echo "configure:8916: checking for size_t" >&5
+ if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 8917 "configure"
++#line 8921 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #if STDC_HEADERS
+@@ -8951,12 +8955,12 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
+ cross_compiling=$ac_cv_prog_cxx_cross
+ 
+ echo $ac_n "checking for __stdcall""... $ac_c" 1>&6
+-echo "configure:8955: checking for __stdcall" >&5
++echo "configure:8959: checking for __stdcall" >&5
+ if eval "test \"`echo '$''{'ac_cv___stdcall'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 8960 "configure"
++#line 8964 "configure"
+ #include "confdefs.h"
+ template <typename Method> struct foo;
+                   template <> struct foo<void (*)()> {};
+@@ -8965,7 +8969,7 @@ int main() {
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:8969: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:8973: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   ac_cv___stdcall=true
+ else
+@@ -8997,12 +9001,12 @@ ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$a
+ cross_compiling=$ac_cv_prog_cc_cross
+ 
+ echo $ac_n "checking for ssize_t""... $ac_c" 1>&6
+-echo "configure:9001: checking for ssize_t" >&5
++echo "configure:9005: checking for ssize_t" >&5
+ if eval "test \"`echo '$''{'ac_cv_type_ssize_t'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 9006 "configure"
++#line 9010 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+                   #include <sys/types.h>
+@@ -9010,7 +9014,7 @@ int main() {
+ ssize_t foo = 0;
+ ; return 0; }
+ EOF
+-if { (eval echo configure:9014: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:9018: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   ac_cv_type_ssize_t=true
+ else
+@@ -9035,12 +9039,12 @@ else
+   echo "$ac_t""no" 1>&6
+ fi
+ echo $ac_n "checking for st_blksize in struct stat""... $ac_c" 1>&6
+-echo "configure:9039: checking for st_blksize in struct stat" >&5
++echo "configure:9043: checking for st_blksize in struct stat" >&5
+ if eval "test \"`echo '$''{'ac_cv_struct_st_blksize'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 9044 "configure"
++#line 9048 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #include <sys/stat.h>
+@@ -9048,7 +9052,7 @@ int main() {
+ struct stat s; s.st_blksize;
+ ; return 0; }
+ EOF
+-if { (eval echo configure:9052: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:9056: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   ac_cv_struct_st_blksize=yes
+ else
+@@ -9072,12 +9076,12 @@ EOF
+ fi
+ 
+ echo $ac_n "checking for siginfo_t""... $ac_c" 1>&6
+-echo "configure:9076: checking for siginfo_t" >&5
++echo "configure:9080: checking for siginfo_t" >&5
+ if eval "test \"`echo '$''{'ac_cv_siginfo_t'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 9081 "configure"
++#line 9085 "configure"
+ #include "confdefs.h"
+ #define _POSIX_C_SOURCE 199506L
+                   #include <signal.h>
+@@ -9085,7 +9089,7 @@ int main() {
+ siginfo_t* info;
+ ; return 0; }
+ EOF
+-if { (eval echo configure:9089: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:9093: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   ac_cv_siginfo_t=true
+ else
+@@ -9111,72 +9115,8 @@ else
+ fi
+ 
+ 
+-echo $ac_n "checking for the size of void*""... $ac_c" 1>&6
+-echo "configure:9116: checking for the size of void*" >&5
+-if eval "test \"`echo '$''{'moz_cv_size_of_JS_BYTES_PER_WORD'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
+-else
+-  
+-  moz_cv_size_of_JS_BYTES_PER_WORD=
+-  for size in 4 8; do
+-    cat > conftest.$ac_ext <<EOF
+-#line 9124 "configure"
+-#include "confdefs.h"
+-
+-int main() {
+-
+-                     int a[sizeof (void*) == $size ? 1 : -1];
+-                     return 0;
+-                   
+-; return 0; }
+-EOF
+-if { (eval echo configure:9134: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+-  rm -rf conftest*
+-  moz_cv_size_of_JS_BYTES_PER_WORD=$size; break
+-else
+-  echo "configure: failed program was:" >&5
+-  cat conftest.$ac_ext >&5
+-fi
+-rm -f conftest*
+-  done
+-  if test ! "$moz_cv_size_of_JS_BYTES_PER_WORD"; then
+-    { echo "configure: error: No size found for void*" 1>&2; exit 1; }
+-  fi
+-
+-fi
+-
+-echo "$ac_t""$moz_cv_size_of_JS_BYTES_PER_WORD" 1>&6
+-cat >> confdefs.pytmp <<EOF
+-        (''' JS_BYTES_PER_WORD ''', r''' $moz_cv_size_of_JS_BYTES_PER_WORD ''')
+-EOF
+-cat >> confdefs.h <<EOF
+-#define JS_BYTES_PER_WORD $moz_cv_size_of_JS_BYTES_PER_WORD
+-EOF
+-
+-
+-if test "$moz_cv_size_of_JS_BYTES_PER_WORD" -eq "4"; then
+-  cat >> confdefs.pytmp <<\EOF
+-        (''' JS_BITS_PER_WORD_LOG2 ''', r''' 5 ''')
+-EOF
+-cat >> confdefs.h <<\EOF
+-#define JS_BITS_PER_WORD_LOG2 5
+-EOF
+-
+-elif test "$moz_cv_size_of_JS_BYTES_PER_WORD" -eq "8"; then
+-  cat >> confdefs.pytmp <<\EOF
+-        (''' JS_BITS_PER_WORD_LOG2 ''', r''' 6 ''')
+-EOF
+-cat >> confdefs.h <<\EOF
+-#define JS_BITS_PER_WORD_LOG2 6
+-EOF
+-
+-else
+-  { echo "configure: error: Unexpected JS_BYTES_PER_WORD" 1>&2; exit 1; }
+-fi
+-
+-
+ echo $ac_n "checking for the alignment of void*""... $ac_c" 1>&6
+-echo "configure:9180: checking for the alignment of void*" >&5
++echo "configure:9120: checking for the alignment of void*" >&5
+ if eval "test \"`echo '$''{'moz_cv_align_of_JS_ALIGN_OF_POINTER'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -9184,7 +9124,7 @@ else
+   moz_cv_align_of_JS_ALIGN_OF_POINTER=
+   for align in 2 4 8 16; do
+     cat > conftest.$ac_ext <<EOF
+-#line 9188 "configure"
++#line 9128 "configure"
+ #include "confdefs.h"
+ 
+                      #include <stddef.h>
+@@ -9197,7 +9137,7 @@ int main() {
+                    
+ ; return 0; }
+ EOF
+-if { (eval echo configure:9201: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:9141: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   moz_cv_align_of_JS_ALIGN_OF_POINTER=$align; break
+ else
+@@ -9223,7 +9163,7 @@ EOF
+ 
+ 
+ echo $ac_n "checking for the size of double""... $ac_c" 1>&6
+-echo "configure:9227: checking for the size of double" >&5
++echo "configure:9167: checking for the size of double" >&5
+ if eval "test \"`echo '$''{'moz_cv_size_of_JS_BYTES_PER_DOUBLE'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -9231,7 +9171,7 @@ else
+   moz_cv_size_of_JS_BYTES_PER_DOUBLE=
+   for size in 6 8 10 12 14; do
+     cat > conftest.$ac_ext <<EOF
+-#line 9235 "configure"
++#line 9175 "configure"
+ #include "confdefs.h"
+ 
+ int main() {
+@@ -9241,7 +9181,7 @@ int main() {
+                    
+ ; return 0; }
+ EOF
+-if { (eval echo configure:9245: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:9185: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   moz_cv_size_of_JS_BYTES_PER_DOUBLE=$size; break
+ else
+@@ -9270,12 +9210,12 @@ EOF
+   do
+        ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+   echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+-echo "configure:9274: checking for $ac_hdr" >&5
++echo "configure:9214: checking for $ac_hdr" >&5
+   if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+    cat > conftest.$ac_ext <<EOF
+-#line 9279 "configure"
++#line 9219 "configure"
+ #include "confdefs.h"
+ 
+ #include <$ac_hdr>
+@@ -9283,7 +9223,7 @@ int main() {
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:9287: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:9227: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   eval "ac_cv_header_$ac_safe=yes"
+ else
+@@ -9326,12 +9266,12 @@ fi
+   do
+        ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+   echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+-echo "configure:9330: checking for $ac_hdr" >&5
++echo "configure:9270: checking for $ac_hdr" >&5
+   if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+    cat > conftest.$ac_ext <<EOF
+-#line 9335 "configure"
++#line 9275 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #include <$ac_hdr>
+@@ -9339,7 +9279,7 @@ int main() {
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:9343: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:9283: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   eval "ac_cv_header_$ac_safe=yes"
+ else
+@@ -9382,12 +9322,12 @@ fi
+   do
+        ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+   echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+-echo "configure:9386: checking for $ac_hdr" >&5
++echo "configure:9326: checking for $ac_hdr" >&5
+   if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+    cat > conftest.$ac_ext <<EOF
+-#line 9391 "configure"
++#line 9331 "configure"
+ #include "confdefs.h"
+ 
+ #include <$ac_hdr>
+@@ -9395,7 +9335,7 @@ int main() {
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:9399: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:9339: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   eval "ac_cv_header_$ac_safe=yes"
+ else
+@@ -9435,12 +9375,12 @@ EOF
+ fi
+ 
+ echo $ac_n "checking for uint""... $ac_c" 1>&6
+-echo "configure:9439: checking for uint" >&5
++echo "configure:9379: checking for uint" >&5
+ if eval "test \"`echo '$''{'ac_cv_uint'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 9444 "configure"
++#line 9384 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+                   #include <sys/types.h>
+@@ -9448,7 +9388,7 @@ int main() {
+ uint foo = 0;
+ ; return 0; }
+ EOF
+-if { (eval echo configure:9452: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:9392: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   ac_cv_uint=true
+ else
+@@ -9473,12 +9413,12 @@ else
+   echo "$ac_t""no" 1>&6
+ fi
+ echo $ac_n "checking for uint_t""... $ac_c" 1>&6
+-echo "configure:9477: checking for uint_t" >&5
++echo "configure:9417: checking for uint_t" >&5
+ if eval "test \"`echo '$''{'ac_cv_uint_t'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 9482 "configure"
++#line 9422 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+                   #include <sys/types.h>
+@@ -9486,7 +9426,7 @@ int main() {
+ uint_t foo = 0;
+ ; return 0; }
+ EOF
+-if { (eval echo configure:9490: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:9430: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   ac_cv_uint_t=true
+ else
+@@ -9520,12 +9460,12 @@ cross_compiling=$ac_cv_prog_cxx_cross
+ 
+ 
+ echo $ac_n "checking for uname.domainname""... $ac_c" 1>&6
+-echo "configure:9524: checking for uname.domainname" >&5
++echo "configure:9464: checking for uname.domainname" >&5
+ if eval "test \"`echo '$''{'ac_cv_have_uname_domainname_field'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 9529 "configure"
++#line 9469 "configure"
+ #include "confdefs.h"
+ #include <sys/utsname.h>
+ int main() {
+@@ -9533,7 +9473,7 @@ int main() {
+             (void)uname(res);  if (res != 0) { domain = res->domainname; } 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:9537: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:9477: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   ac_cv_have_uname_domainname_field=true
+ else
+@@ -9560,12 +9500,12 @@ else
+ fi
+ 
+ echo $ac_n "checking for uname.__domainname""... $ac_c" 1>&6
+-echo "configure:9564: checking for uname.__domainname" >&5
++echo "configure:9504: checking for uname.__domainname" >&5
+ if eval "test \"`echo '$''{'ac_cv_have_uname_us_domainname_field'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 9569 "configure"
++#line 9509 "configure"
+ #include "confdefs.h"
+ #include <sys/utsname.h>
+ int main() {
+@@ -9573,7 +9513,7 @@ int main() {
+             (void)uname(res);  if (res != 0) { domain = res->__domainname; } 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:9577: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:9517: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   ac_cv_have_uname_us_domainname_field=true
+ else
+@@ -9609,7 +9549,7 @@ cross_compiling=$ac_cv_prog_cc_cross
+ 
+ if test "$GNU_CC"; then
+   echo $ac_n "checking for visibility(hidden) attribute""... $ac_c" 1>&6
+-echo "configure:9613: checking for visibility(hidden) attribute" >&5
++echo "configure:9553: checking for visibility(hidden) attribute" >&5
+ if eval "test \"`echo '$''{'ac_cv_visibility_hidden'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -9637,7 +9577,7 @@ EOF
+ 
+ 
+     echo $ac_n "checking for visibility(default) attribute""... $ac_c" 1>&6
+-echo "configure:9641: checking for visibility(default) attribute" >&5
++echo "configure:9581: checking for visibility(default) attribute" >&5
+ if eval "test \"`echo '$''{'ac_cv_visibility_default'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -9665,7 +9605,7 @@ EOF
+ 
+ 
+       echo $ac_n "checking for visibility pragma support""... $ac_c" 1>&6
+-echo "configure:9669: checking for visibility pragma support" >&5
++echo "configure:9609: checking for visibility pragma support" >&5
+ if eval "test \"`echo '$''{'ac_cv_visibility_pragma'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -9690,7 +9630,7 @@ fi
+ echo "$ac_t""$ac_cv_visibility_pragma" 1>&6
+       if test "$ac_cv_visibility_pragma" = "yes"; then
+         echo $ac_n "checking For gcc visibility bug with class-level attributes (GCC bug 26905)""... $ac_c" 1>&6
+-echo "configure:9694: checking For gcc visibility bug with class-level attributes (GCC bug 26905)" >&5
++echo "configure:9634: checking For gcc visibility bug with class-level attributes (GCC bug 26905)" >&5
+ if eval "test \"`echo '$''{'ac_cv_have_visibility_class_bug'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -9718,7 +9658,7 @@ fi
+ echo "$ac_t""$ac_cv_have_visibility_class_bug" 1>&6
+ 
+         echo $ac_n "checking For x86_64 gcc visibility bug with builtins (GCC bug 20297)""... $ac_c" 1>&6
+-echo "configure:9722: checking For x86_64 gcc visibility bug with builtins (GCC bug 20297)" >&5
++echo "configure:9662: checking For x86_64 gcc visibility bug with builtins (GCC bug 20297)" >&5
+ if eval "test \"`echo '$''{'ac_cv_have_visibility_builtin_bug'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -9770,7 +9710,7 @@ fi         # Sun Studio on Solaris
+ if test "$GNU_CC"; then
+ 
+ echo $ac_n "checking for gcc PR49911""... $ac_c" 1>&6
+-echo "configure:9774: checking for gcc PR49911" >&5
++echo "configure:9714: checking for gcc PR49911" >&5
+ ac_have_gcc_pr49911="no"
+ 
+ ac_ext=C
+@@ -9787,7 +9727,7 @@ if test "$cross_compiling" = yes; then
+   true
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 9791 "configure"
++#line 9731 "configure"
+ #include "confdefs.h"
+ 
+ extern "C" void abort(void);
+@@ -9828,7 +9768,7 @@ int main(void) {
+ }
+ 
+ EOF
+-if { (eval echo configure:9832: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
++if { (eval echo configure:9772: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+ then
+   true
+ else
+@@ -9865,12 +9805,12 @@ for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h
+ do
+ ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+ echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6
+-echo "configure:9869: checking for $ac_hdr that defines DIR" >&5
++echo "configure:9809: checking for $ac_hdr that defines DIR" >&5
+ if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 9874 "configure"
++#line 9814 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #include <$ac_hdr>
+@@ -9878,7 +9818,7 @@ int main() {
+ DIR *dirp = 0;
+ ; return 0; }
+ EOF
+-if { (eval echo configure:9882: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:9822: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   eval "ac_cv_header_dirent_$ac_safe=yes"
+ else
+@@ -9906,7 +9846,7 @@ done
+ # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
+ if test $ac_header_dirent = dirent.h; then
+ echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6
+-echo "configure:9910: checking for opendir in -ldir" >&5
++echo "configure:9850: checking for opendir in -ldir" >&5
+ ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+@@ -9914,7 +9854,7 @@ else
+   ac_save_LIBS="$LIBS"
+ LIBS="-ldir  $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 9918 "configure"
++#line 9858 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error.  */
+ /* We use char because int might match the return type of a gcc2
+@@ -9925,7 +9865,7 @@ int main() {
+ opendir()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:9929: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:9869: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -9947,7 +9887,7 @@ fi
+ 
+ else
+ echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6
+-echo "configure:9951: checking for opendir in -lx" >&5
++echo "configure:9891: checking for opendir in -lx" >&5
+ ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+@@ -9955,7 +9895,7 @@ else
+   ac_save_LIBS="$LIBS"
+ LIBS="-lx  $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 9959 "configure"
++#line 9899 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error.  */
+ /* We use char because int might match the return type of a gcc2
+@@ -9966,7 +9906,7 @@ int main() {
+ opendir()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:9970: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:9910: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -10000,12 +9940,12 @@ esac
+   do
+        ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+   echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+-echo "configure:10004: checking for $ac_hdr" >&5
++echo "configure:9944: checking for $ac_hdr" >&5
+   if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+    cat > conftest.$ac_ext <<EOF
+-#line 10009 "configure"
++#line 9949 "configure"
+ #include "confdefs.h"
+ 
+ #include <$ac_hdr>
+@@ -10013,7 +9953,7 @@ int main() {
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:10017: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:9957: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   eval "ac_cv_header_$ac_safe=yes"
+ else
+@@ -10048,12 +9988,12 @@ EOF
+   do
+        ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+   echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+-echo "configure:10052: checking for $ac_hdr" >&5
++echo "configure:9992: checking for $ac_hdr" >&5
+   if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+    cat > conftest.$ac_ext <<EOF
+-#line 10057 "configure"
++#line 9997 "configure"
+ #include "confdefs.h"
+ 
+ #include <$ac_hdr>
+@@ -10061,7 +10001,7 @@ int main() {
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:10065: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:10005: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   eval "ac_cv_header_$ac_safe=yes"
+ else
+@@ -10095,12 +10035,12 @@ EOF
+   do
+        ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+   echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+-echo "configure:10099: checking for $ac_hdr" >&5
++echo "configure:10039: checking for $ac_hdr" >&5
+   if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+    cat > conftest.$ac_ext <<EOF
+-#line 10104 "configure"
++#line 10044 "configure"
+ #include "confdefs.h"
+ 
+ #include <$ac_hdr>
+@@ -10108,7 +10048,7 @@ int main() {
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:10112: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:10052: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   eval "ac_cv_header_$ac_safe=yes"
+ else
+@@ -10141,12 +10081,12 @@ EOF
+   do
+        ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+   echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+-echo "configure:10145: checking for $ac_hdr" >&5
++echo "configure:10085: checking for $ac_hdr" >&5
+   if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+    cat > conftest.$ac_ext <<EOF
+-#line 10150 "configure"
++#line 10090 "configure"
+ #include "confdefs.h"
+ 
+ #include <$ac_hdr>
+@@ -10154,7 +10094,7 @@ int main() {
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:10158: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:10098: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   eval "ac_cv_header_$ac_safe=yes"
+ else
+@@ -10188,12 +10128,12 @@ EOF
+   do
+        ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+   echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+-echo "configure:10192: checking for $ac_hdr" >&5
++echo "configure:10132: checking for $ac_hdr" >&5
+   if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+    cat > conftest.$ac_ext <<EOF
+-#line 10197 "configure"
++#line 10137 "configure"
+ #include "confdefs.h"
+ 
+ #include <$ac_hdr>
+@@ -10201,7 +10141,7 @@ int main() {
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:10205: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:10145: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   eval "ac_cv_header_$ac_safe=yes"
+ else
+@@ -10241,12 +10181,12 @@ cross_compiling=$ac_cv_prog_cxx_cross
+ NEW_H=new.h
+    ac_safe=`echo "new" | sed 'y%./+-%__p_%'`
+   echo $ac_n "checking for new""... $ac_c" 1>&6
+-echo "configure:10245: checking for new" >&5
++echo "configure:10185: checking for new" >&5
+   if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+    cat > conftest.$ac_ext <<EOF
+-#line 10250 "configure"
++#line 10190 "configure"
+ #include "confdefs.h"
+ 
+ #include <new>
+@@ -10254,7 +10194,7 @@ int main() {
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:10258: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:10198: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   eval "ac_cv_header_$ac_safe=yes"
+ else
+@@ -10298,12 +10238,12 @@ fi
+ if test "x$enable_dtrace" = "xyes"; then
+      ac_safe=`echo "sys/sdt.h" | sed 'y%./+-%__p_%'`
+   echo $ac_n "checking for sys/sdt.h""... $ac_c" 1>&6
+-echo "configure:10302: checking for sys/sdt.h" >&5
++echo "configure:10242: checking for sys/sdt.h" >&5
+   if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+    cat > conftest.$ac_ext <<EOF
+-#line 10307 "configure"
++#line 10247 "configure"
+ #include "confdefs.h"
+ 
+ #include <sys/sdt.h>
+@@ -10311,7 +10251,7 @@ int main() {
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:10315: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:10255: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   eval "ac_cv_header_$ac_safe=yes"
+ else
+@@ -10353,12 +10293,12 @@ case $target in
+   do
+        ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+   echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+-echo "configure:10357: checking for $ac_hdr" >&5
++echo "configure:10297: checking for $ac_hdr" >&5
+   if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+    cat > conftest.$ac_ext <<EOF
+-#line 10362 "configure"
++#line 10302 "configure"
+ #include "confdefs.h"
+ 
+ #include <$ac_hdr>
+@@ -10366,7 +10306,7 @@ int main() {
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:10370: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:10310: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   eval "ac_cv_header_$ac_safe=yes"
+ else
+@@ -10418,12 +10358,12 @@ CFLAGS="$CFLAGS $LINUX_HEADERS_INCLUDES"
+ 
+    ac_safe=`echo "linux/perf_event.h" | sed 'y%./+-%__p_%'`
+   echo $ac_n "checking for linux/perf_event.h""... $ac_c" 1>&6
+-echo "configure:10422: checking for linux/perf_event.h" >&5
++echo "configure:10362: checking for linux/perf_event.h" >&5
+   if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+    cat > conftest.$ac_ext <<EOF
+-#line 10427 "configure"
++#line 10367 "configure"
+ #include "confdefs.h"
+ 
+ #include <linux/perf_event.h>
+@@ -10431,7 +10371,7 @@ int main() {
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:10435: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:10375: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   eval "ac_cv_header_$ac_safe=yes"
+ else
+@@ -10446,19 +10386,19 @@ fi
+   if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+     echo "$ac_t""yes" 1>&6
+     echo $ac_n "checking for perf_event_open system call""... $ac_c" 1>&6
+-echo "configure:10450: checking for perf_event_open system call" >&5
++echo "configure:10390: checking for perf_event_open system call" >&5
+ if eval "test \"`echo '$''{'ac_cv_perf_event_open'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 10455 "configure"
++#line 10395 "configure"
+ #include "confdefs.h"
+ #include <asm/unistd.h>
+ int main() {
+ return sizeof(__NR_perf_event_open);
+ ; return 0; }
+ EOF
+-if { (eval echo configure:10462: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:10402: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   ac_cv_perf_event_open=yes
+ else
+@@ -10494,7 +10434,7 @@ case $target in
+ 	;;
+ *)
+ 	echo $ac_n "checking for gethostbyname_r in -lc_r""... $ac_c" 1>&6
+-echo "configure:10498: checking for gethostbyname_r in -lc_r" >&5
++echo "configure:10438: checking for gethostbyname_r in -lc_r" >&5
+ ac_lib_var=`echo c_r'_'gethostbyname_r | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+@@ -10502,7 +10442,7 @@ else
+   ac_save_LIBS="$LIBS"
+ LIBS="-lc_r  $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 10506 "configure"
++#line 10446 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error.  */
+ /* We use char because int might match the return type of a gcc2
+@@ -10513,7 +10453,7 @@ int main() {
+ gethostbyname_r()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:10517: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:10457: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -10554,14 +10494,14 @@ case $target in
+ *)
+     
+ echo $ac_n "checking for library containing dlopen""... $ac_c" 1>&6
+-echo "configure:10558: checking for library containing dlopen" >&5
++echo "configure:10498: checking for library containing dlopen" >&5
+ if eval "test \"`echo '$''{'ac_cv_search_dlopen'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   ac_func_search_save_LIBS="$LIBS"
+ ac_cv_search_dlopen="no"
+ cat > conftest.$ac_ext <<EOF
+-#line 10565 "configure"
++#line 10505 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error.  */
+ /* We use char because int might match the return type of a gcc2
+@@ -10572,7 +10512,7 @@ int main() {
+ dlopen()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:10576: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:10516: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   ac_cv_search_dlopen="none required"
+ else
+@@ -10583,7 +10523,7 @@ rm -f conftest*
+ test "$ac_cv_search_dlopen" = "no" && for i in dl; do
+ LIBS="-l$i  $ac_func_search_save_LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 10587 "configure"
++#line 10527 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error.  */
+ /* We use char because int might match the return type of a gcc2
+@@ -10594,7 +10534,7 @@ int main() {
+ dlopen()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:10598: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:10538: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   ac_cv_search_dlopen="-l$i"
+ break
+@@ -10612,12 +10552,12 @@ if test "$ac_cv_search_dlopen" != "no"; then
+   test "$ac_cv_search_dlopen" = "none required" || LIBS="$ac_cv_search_dlopen $LIBS"
+      ac_safe=`echo "dlfcn.h" | sed 'y%./+-%__p_%'`
+   echo $ac_n "checking for dlfcn.h""... $ac_c" 1>&6
+-echo "configure:10616: checking for dlfcn.h" >&5
++echo "configure:10556: checking for dlfcn.h" >&5
+   if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+    cat > conftest.$ac_ext <<EOF
+-#line 10621 "configure"
++#line 10561 "configure"
+ #include "confdefs.h"
+ 
+ #include <dlfcn.h>
+@@ -10625,7 +10565,7 @@ int main() {
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:10629: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:10569: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   eval "ac_cv_header_$ac_safe=yes"
+ else
+@@ -10662,12 +10602,12 @@ CFLAGS="$CFLAGS -D_GNU_SOURCE"
+ for ac_func in dladdr
+ do
+ echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+-echo "configure:10666: checking for $ac_func" >&5
++echo "configure:10606: checking for $ac_func" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 10671 "configure"
++#line 10611 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char $ac_func(); below.  */
+@@ -10690,7 +10630,7 @@ $ac_func();
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:10694: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:10634: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_func_$ac_func=yes"
+ else
+@@ -10724,7 +10664,7 @@ if test ! "$GNU_CXX"; then
+     case $target in
+     *-aix*)
+ 	echo $ac_n "checking for demangle in -lC_r""... $ac_c" 1>&6
+-echo "configure:10728: checking for demangle in -lC_r" >&5
++echo "configure:10668: checking for demangle in -lC_r" >&5
+ ac_lib_var=`echo C_r'_'demangle | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+@@ -10732,7 +10672,7 @@ else
+   ac_save_LIBS="$LIBS"
+ LIBS="-lC_r  $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 10736 "configure"
++#line 10676 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error.  */
+ /* We use char because int might match the return type of a gcc2
+@@ -10743,7 +10683,7 @@ int main() {
+ demangle()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:10747: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:10687: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -10776,7 +10716,7 @@ fi
+ 	;;
+      *)
+ 	echo $ac_n "checking for demangle in -lC""... $ac_c" 1>&6
+-echo "configure:10780: checking for demangle in -lC" >&5
++echo "configure:10720: checking for demangle in -lC" >&5
+ ac_lib_var=`echo C'_'demangle | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+@@ -10784,7 +10724,7 @@ else
+   ac_save_LIBS="$LIBS"
+ LIBS="-lC  $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 10788 "configure"
++#line 10728 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error.  */
+ /* We use char because int might match the return type of a gcc2
+@@ -10795,7 +10735,7 @@ int main() {
+ demangle()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:10799: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:10739: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -10834,7 +10774,7 @@ case $target in
+     ;;
+ *)
+     echo $ac_n "checking for socket in -lsocket""... $ac_c" 1>&6
+-echo "configure:10838: checking for socket in -lsocket" >&5
++echo "configure:10778: checking for socket in -lsocket" >&5
+ ac_lib_var=`echo socket'_'socket | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+@@ -10842,7 +10782,7 @@ else
+   ac_save_LIBS="$LIBS"
+ LIBS="-lsocket  $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 10846 "configure"
++#line 10786 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error.  */
+ /* We use char because int might match the return type of a gcc2
+@@ -10853,7 +10793,7 @@ int main() {
+ socket()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:10857: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:10797: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -10892,7 +10832,7 @@ darwin*)
+ *)
+     
+ echo $ac_n "checking for pthread_create in -lpthreads""... $ac_c" 1>&6
+-echo "configure:10896: checking for pthread_create in -lpthreads" >&5
++echo "configure:10836: checking for pthread_create in -lpthreads" >&5
+ echo "
+     #include <pthread.h>
+     #include <stdlib.h>
+@@ -10915,7 +10855,7 @@ echo "
+         echo "$ac_t""no" 1>&6
+         
+ echo $ac_n "checking for pthread_create in -lpthread""... $ac_c" 1>&6
+-echo "configure:10919: checking for pthread_create in -lpthread" >&5
++echo "configure:10859: checking for pthread_create in -lpthread" >&5
+ echo "
+     #include <pthread.h>
+     #include <stdlib.h>
+@@ -10938,7 +10878,7 @@ echo "
+         echo "$ac_t""no" 1>&6
+         
+ echo $ac_n "checking for pthread_create in -lc_r""... $ac_c" 1>&6
+-echo "configure:10942: checking for pthread_create in -lc_r" >&5
++echo "configure:10882: checking for pthread_create in -lc_r" >&5
+ echo "
+     #include <pthread.h>
+     #include <stdlib.h>
+@@ -10961,7 +10901,7 @@ echo "
+         echo "$ac_t""no" 1>&6
+         
+ echo $ac_n "checking for pthread_create in -lc""... $ac_c" 1>&6
+-echo "configure:10965: checking for pthread_create in -lc" >&5
++echo "configure:10905: checking for pthread_create in -lc" >&5
+ echo "
+     #include <pthread.h>
+     #include <stdlib.h>
+@@ -11020,7 +10960,7 @@ then
+ 				rm -f conftest*
+ 	ac_cv_have_dash_pthread=no
+ 	echo $ac_n "checking whether ${CC-cc} accepts -pthread""... $ac_c" 1>&6
+-echo "configure:11024: checking whether ${CC-cc} accepts -pthread" >&5
++echo "configure:10964: checking whether ${CC-cc} accepts -pthread" >&5
+ 	echo 'int main() { return 0; }' | cat > conftest.c
+ 	${CC-cc} -pthread -o conftest conftest.c > conftest.out 2>&1
+ 	if test $? -eq 0; then
+@@ -11043,7 +10983,7 @@ echo "configure:11024: checking whether ${CC-cc} accepts -pthread" >&5
+ 			    ac_cv_have_dash_pthreads=no
+     if test "$ac_cv_have_dash_pthread" = "no"; then
+ 	    echo $ac_n "checking whether ${CC-cc} accepts -pthreads""... $ac_c" 1>&6
+-echo "configure:11047: checking whether ${CC-cc} accepts -pthreads" >&5
++echo "configure:10987: checking whether ${CC-cc} accepts -pthreads" >&5
+     	echo 'int main() { return 0; }' | cat > conftest.c
+ 	    ${CC-cc} -pthreads -o conftest conftest.c > conftest.out 2>&1
+     	if test $? -eq 0; then
+@@ -11148,13 +11088,13 @@ fi
+ 
+ if test $ac_cv_prog_gcc = yes; then
+     echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6
+-echo "configure:11152: checking whether ${CC-cc} needs -traditional" >&5
++echo "configure:11092: checking whether ${CC-cc} needs -traditional" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+     ac_pattern="Autoconf.*'x'"
+   cat > conftest.$ac_ext <<EOF
+-#line 11158 "configure"
++#line 11098 "configure"
+ #include "confdefs.h"
+ #include <sgtty.h>
+ Autoconf TIOCGETP
+@@ -11172,7 +11112,7 @@ rm -f conftest*
+ 
+   if test $ac_cv_prog_gcc_traditional = no; then
+     cat > conftest.$ac_ext <<EOF
+-#line 11176 "configure"
++#line 11116 "configure"
+ #include "confdefs.h"
+ #include <termio.h>
+ Autoconf TCGETA
+@@ -11194,7 +11134,7 @@ echo "$ac_t""$ac_cv_prog_gcc_traditional" 1>&6
+ fi
+ 
+ echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6
+-echo "configure:11198: checking for 8-bit clean memcmp" >&5
++echo "configure:11138: checking for 8-bit clean memcmp" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -11202,7 +11142,7 @@ else
+   ac_cv_func_memcmp_clean=no
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 11206 "configure"
++#line 11146 "configure"
+ #include "confdefs.h"
+ 
+ main()
+@@ -11212,7 +11152,7 @@ main()
+ }
+ 
+ EOF
+-if { (eval echo configure:11216: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
++if { (eval echo configure:11156: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+ then
+   ac_cv_func_memcmp_clean=yes
+ else
+@@ -11234,12 +11174,12 @@ for ac_func in fchmod flockfile getc_unlocked _getc_nolock getpagesize \
+                 stat64 statvfs statvfs64 strerror strtok_r truncate64
+ do
+ echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+-echo "configure:11238: checking for $ac_func" >&5
++echo "configure:11178: checking for $ac_func" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 11243 "configure"
++#line 11183 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char $ac_func(); below.  */
+@@ -11262,7 +11202,7 @@ $ac_func();
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:11266: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:11206: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_func_$ac_func=yes"
+ else
+@@ -11291,14 +11231,14 @@ done
+ 
+ 
+ cat > conftest.$ac_ext <<EOF
+-#line 11295 "configure"
++#line 11235 "configure"
+ #include "confdefs.h"
+ #include <windows.h>
+ int main() {
+ SYSTEMTIME st;FILETIME ft;SystemTimeToFileTime(&st,&ft);
+ ; return 0; }
+ EOF
+-if { (eval echo configure:11302: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:11242: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   ac_cv_have_systemtimetofiletime="yes"
+ else
+@@ -11318,14 +11258,14 @@ EOF
+ 
+ fi
+ cat > conftest.$ac_ext <<EOF
+-#line 11322 "configure"
++#line 11262 "configure"
+ #include "confdefs.h"
+ #include <windows.h>
+ int main() {
+ FILETIME ft;GetSystemTimeAsFileTime(&ft);
+ ; return 0; }
+ EOF
+-if { (eval echo configure:11329: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:11269: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   ac_cv_have_getsystemtimeasfiletime="yes"
+ else
+@@ -11355,19 +11295,19 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
+ cross_compiling=$ac_cv_prog_cxx_cross
+ 
+ echo $ac_n "checking for wcrtomb""... $ac_c" 1>&6
+-echo "configure:11359: checking for wcrtomb" >&5
++echo "configure:11299: checking for wcrtomb" >&5
+ if eval "test \"`echo '$''{'ac_cv_have_wcrtomb'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 11364 "configure"
++#line 11304 "configure"
+ #include "confdefs.h"
+ #include <wchar.h>
+ int main() {
+ mbstate_t ps={0};wcrtomb(0,'f',&ps);
+ ; return 0; }
+ EOF
+-if { (eval echo configure:11371: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:11311: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   ac_cv_have_wcrtomb="yes"
+ else
+@@ -11390,19 +11330,19 @@ EOF
+ 
+ fi
+ echo $ac_n "checking for mbrtowc""... $ac_c" 1>&6
+-echo "configure:11394: checking for mbrtowc" >&5
++echo "configure:11334: checking for mbrtowc" >&5
+ if eval "test \"`echo '$''{'ac_cv_have_mbrtowc'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 11399 "configure"
++#line 11339 "configure"
+ #include "confdefs.h"
+ #include <wchar.h>
+ int main() {
+ mbstate_t ps={0};mbrtowc(0,0,0,&ps);
+ ; return 0; }
+ EOF
+-if { (eval echo configure:11406: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:11346: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   ac_cv_have_mbrtowc="yes"
+ else
+@@ -11434,12 +11374,12 @@ cross_compiling=$ac_cv_prog_cc_cross
+ fi
+ 
+ echo $ac_n "checking for res_ninit()""... $ac_c" 1>&6
+-echo "configure:11438: checking for res_ninit()" >&5
++echo "configure:11378: checking for res_ninit()" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_res_ninit'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 11443 "configure"
++#line 11383 "configure"
+ #include "confdefs.h"
+ 
+         #ifdef linux
+@@ -11451,7 +11391,7 @@ int main() {
+ int foo = res_ninit(&_res);
+ ; return 0; }
+ EOF
+-if { (eval echo configure:11455: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:11395: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   ac_cv_func_res_ninit=yes
+ else
+@@ -11484,12 +11424,12 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
+ cross_compiling=$ac_cv_prog_cxx_cross
+ 
+ echo $ac_n "checking for gnu_get_libc_version()""... $ac_c" 1>&6
+-echo "configure:11488: checking for gnu_get_libc_version()" >&5
++echo "configure:11428: checking for gnu_get_libc_version()" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_gnu_get_libc_version'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 11493 "configure"
++#line 11433 "configure"
+ #include "confdefs.h"
+ 
+         #ifdef HAVE_GNU_LIBC_VERSION_H
+@@ -11500,7 +11440,7 @@ int main() {
+ const char *glibc_version = gnu_get_libc_version();
+ ; return 0; }
+ EOF
+-if { (eval echo configure:11504: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:11444: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   ac_cv_func_gnu_get_libc_version=yes
+ else
+@@ -11534,7 +11474,7 @@ cross_compiling=$ac_cv_prog_cc_cross
+ 
+ 
+ echo $ac_n "checking for an implementation of va_copy()""... $ac_c" 1>&6
+-echo "configure:11538: checking for an implementation of va_copy()" >&5
++echo "configure:11478: checking for an implementation of va_copy()" >&5
+ if eval "test \"`echo '$''{'ac_cv_va_copy'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -11544,7 +11484,7 @@ else
+     
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 11548 "configure"
++#line 11488 "configure"
+ #include "confdefs.h"
+ 
+         #include <stdarg.h>
+@@ -11558,7 +11498,7 @@ else
+         }
+         int main() { f (0, 42); return 0; }
+ EOF
+-if { (eval echo configure:11562: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
++if { (eval echo configure:11502: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+ then
+   ac_cv_va_copy=yes
+ else
+@@ -11575,7 +11515,7 @@ fi
+ 
+ echo "$ac_t""$ac_cv_va_copy" 1>&6
+ echo $ac_n "checking for an implementation of __va_copy()""... $ac_c" 1>&6
+-echo "configure:11579: checking for an implementation of __va_copy()" >&5
++echo "configure:11519: checking for an implementation of __va_copy()" >&5
+ if eval "test \"`echo '$''{'ac_cv___va_copy'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -11585,7 +11525,7 @@ else
+     
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 11589 "configure"
++#line 11529 "configure"
+ #include "confdefs.h"
+ 
+         #include <stdarg.h>
+@@ -11599,7 +11539,7 @@ else
+         }
+         int main() { f (0, 42); return 0; }
+ EOF
+-if { (eval echo configure:11603: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
++if { (eval echo configure:11543: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+ then
+   ac_cv___va_copy=yes
+ else
+@@ -11616,7 +11556,7 @@ fi
+ 
+ echo "$ac_t""$ac_cv___va_copy" 1>&6
+ echo $ac_n "checking whether va_lists can be copied by value""... $ac_c" 1>&6
+-echo "configure:11620: checking whether va_lists can be copied by value" >&5
++echo "configure:11560: checking whether va_lists can be copied by value" >&5
+ if eval "test \"`echo '$''{'ac_cv_va_val_copy'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -11626,7 +11566,7 @@ else
+     
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 11630 "configure"
++#line 11570 "configure"
+ #include "confdefs.h"
+ 
+         #include <stdarg.h>
+@@ -11640,7 +11580,7 @@ else
+         }
+         int main() { f (0, 42); return 0; }
+ EOF
+-if { (eval echo configure:11644: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
++if { (eval echo configure:11584: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+ then
+   ac_cv_va_val_copy=yes
+ else
+@@ -11710,12 +11650,12 @@ ARM_ABI_PREFIX=
+ if test "$GNU_CC"; then
+   if test "$CPU_ARCH" = "arm" ; then
+     echo $ac_n "checking for ARM EABI""... $ac_c" 1>&6
+-echo "configure:11714: checking for ARM EABI" >&5
++echo "configure:11654: checking for ARM EABI" >&5
+ if eval "test \"`echo '$''{'ac_cv_gcc_arm_eabi'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 11719 "configure"
++#line 11659 "configure"
+ #include "confdefs.h"
+ 
+ int main() {
+@@ -11728,7 +11668,7 @@ int main() {
+                         
+ ; return 0; }
+ EOF
+-if { (eval echo configure:11732: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:11672: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   ac_cv_gcc_arm_eabi="yes"
+ else
+@@ -11753,12 +11693,12 @@ echo "$ac_t""$ac_cv_gcc_arm_eabi" 1>&6
+ fi
+ 
+ echo $ac_n "checking for modern C++ template specialization syntax support""... $ac_c" 1>&6
+-echo "configure:11757: checking for modern C++ template specialization syntax support" >&5
++echo "configure:11697: checking for modern C++ template specialization syntax support" >&5
+ if eval "test \"`echo '$''{'ac_cv_cpp_modern_specialize_template_syntax'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 11762 "configure"
++#line 11702 "configure"
+ #include "confdefs.h"
+ template <class T> struct X { int a; };
+                                class Y {};
+@@ -11768,7 +11708,7 @@ X<int> int_x;
+                                X<Y> y_x;
+ ; return 0; }
+ EOF
+-if { (eval echo configure:11772: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:11712: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   ac_cv_cpp_modern_specialize_template_syntax=yes
+ else
+@@ -11786,12 +11726,12 @@ if test "$ac_cv_cpp_modern_specialize_template_syntax" = no ; then
+ fi
+ 
+ echo $ac_n "checking whether partial template specialization works""... $ac_c" 1>&6
+-echo "configure:11790: checking whether partial template specialization works" >&5
++echo "configure:11730: checking whether partial template specialization works" >&5
+ if eval "test \"`echo '$''{'ac_cv_cpp_partial_specialization'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 11795 "configure"
++#line 11735 "configure"
+ #include "confdefs.h"
+ template <class T> class Foo {};
+                                template <class T> class Foo<T*> {};
+@@ -11799,7 +11739,7 @@ int main() {
+ return 0;
+ ; return 0; }
+ EOF
+-if { (eval echo configure:11803: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:11743: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   ac_cv_cpp_partial_specialization=yes
+ else
+@@ -11823,12 +11763,12 @@ EOF
+ fi
+ 
+ echo $ac_n "checking whether the C++ \"using\" keyword resolves ambiguity""... $ac_c" 1>&6
+-echo "configure:11827: checking whether the C++ \"using\" keyword resolves ambiguity" >&5
++echo "configure:11767: checking whether the C++ \"using\" keyword resolves ambiguity" >&5
+ if eval "test \"`echo '$''{'ac_cv_cpp_ambiguity_resolving_using'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 11832 "configure"
++#line 11772 "configure"
+ #include "confdefs.h"
+ class X {
+                                  public: int go(const X&) {return 3;}
+@@ -11844,7 +11784,7 @@ int main() {
+ X x; Y y; y.jo(x);
+ ; return 0; }
+ EOF
+-if { (eval echo configure:11848: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:11788: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   ac_cv_cpp_ambiguity_resolving_using=yes
+ else
+@@ -11868,7 +11808,7 @@ EOF
+ fi
+ 
+ echo $ac_n "checking for C++ dynamic_cast to void*""... $ac_c" 1>&6
+-echo "configure:11872: checking for C++ dynamic_cast to void*" >&5
++echo "configure:11812: checking for C++ dynamic_cast to void*" >&5
+ if eval "test \"`echo '$''{'ac_cv_cpp_dynamic_cast_void_ptr'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -11876,7 +11816,7 @@ else
+   ac_cv_cpp_dynamic_cast_void_ptr=no
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 11880 "configure"
++#line 11820 "configure"
+ #include "confdefs.h"
+ class X { int i; public: virtual ~X() { } };
+                             class Y { int j; public: virtual ~Y() { } };
+@@ -11892,7 +11832,7 @@ class X { int i; public: virtual ~X() { } };
+                                            ((void*)&mdo == dynamic_cast<void*>(suby))));
+                             }
+ EOF
+-if { (eval echo configure:11896: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
++if { (eval echo configure:11836: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+ then
+   ac_cv_cpp_dynamic_cast_void_ptr=yes
+ else
+@@ -11919,19 +11859,19 @@ fi
+ 
+ 
+ echo $ac_n "checking whether C++ requires implementation of unused virtual methods""... $ac_c" 1>&6
+-echo "configure:11923: checking whether C++ requires implementation of unused virtual methods" >&5
++echo "configure:11863: checking whether C++ requires implementation of unused virtual methods" >&5
+ if eval "test \"`echo '$''{'ac_cv_cpp_unused_required'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 11928 "configure"
++#line 11868 "configure"
+ #include "confdefs.h"
+ class X {private: virtual void never_called();};
+ int main() {
+ X x;
+ ; return 0; }
+ EOF
+-if { (eval echo configure:11935: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:11875: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   ac_cv_cpp_unused_required=no
+ else
+@@ -11957,12 +11897,12 @@ fi
+ 
+ 
+ echo $ac_n "checking for trouble comparing to zero near std::operator!=()""... $ac_c" 1>&6
+-echo "configure:11961: checking for trouble comparing to zero near std::operator!=()" >&5
++echo "configure:11901: checking for trouble comparing to zero near std::operator!=()" >&5
+ if eval "test \"`echo '$''{'ac_cv_trouble_comparing_to_zero'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 11966 "configure"
++#line 11906 "configure"
+ #include "confdefs.h"
+ #include <algorithm>
+                                 template <class T> class Foo {};
+@@ -11973,7 +11913,7 @@ int main() {
+ Foo<int> f; return (0 != f);
+ ; return 0; }
+ EOF
+-if { (eval echo configure:11977: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:11917: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   ac_cv_trouble_comparing_to_zero=no
+ else
+@@ -12003,19 +11943,19 @@ fi
+ _SAVE_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS $DSO_PIC_CFLAGS $DSO_LDOPTS $MOZ_OPTIMIZE_LDFLAGS"
+ echo $ac_n "checking for __thread keyword for TLS variables""... $ac_c" 1>&6
+-echo "configure:12007: checking for __thread keyword for TLS variables" >&5
++echo "configure:11947: checking for __thread keyword for TLS variables" >&5
+ if eval "test \"`echo '$''{'ac_cv_thread_keyword'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 12012 "configure"
++#line 11952 "configure"
+ #include "confdefs.h"
+ __thread bool tlsIsMainThread = false;
+ int main() {
+ return tlsIsMainThread;
+ ; return 0; }
+ EOF
+-if { (eval echo configure:12019: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:11959: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   ac_cv_thread_keyword=yes
+ else
+@@ -12055,12 +11995,12 @@ fi
+ MALLOC_H=
+    ac_safe=`echo "malloc.h" | sed 'y%./+-%__p_%'`
+   echo $ac_n "checking for malloc.h""... $ac_c" 1>&6
+-echo "configure:12059: checking for malloc.h" >&5
++echo "configure:11999: checking for malloc.h" >&5
+   if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+    cat > conftest.$ac_ext <<EOF
+-#line 12064 "configure"
++#line 12004 "configure"
+ #include "confdefs.h"
+ 
+ #include <malloc.h>
+@@ -12068,7 +12008,7 @@ int main() {
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:12072: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:12012: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   eval "ac_cv_header_$ac_safe=yes"
+ else
+@@ -12091,12 +12031,12 @@ fi
+ if test "$MALLOC_H" = ""; then
+      ac_safe=`echo "malloc/malloc.h" | sed 'y%./+-%__p_%'`
+   echo $ac_n "checking for malloc/malloc.h""... $ac_c" 1>&6
+-echo "configure:12095: checking for malloc/malloc.h" >&5
++echo "configure:12035: checking for malloc/malloc.h" >&5
+   if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+    cat > conftest.$ac_ext <<EOF
+-#line 12100 "configure"
++#line 12040 "configure"
+ #include "confdefs.h"
+ 
+ #include <malloc/malloc.h>
+@@ -12104,7 +12044,7 @@ int main() {
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:12108: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:12048: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   eval "ac_cv_header_$ac_safe=yes"
+ else
+@@ -12127,12 +12067,12 @@ fi
+   if test "$MALLOC_H" = ""; then
+        ac_safe=`echo "sys/malloc.h" | sed 'y%./+-%__p_%'`
+   echo $ac_n "checking for sys/malloc.h""... $ac_c" 1>&6
+-echo "configure:12131: checking for sys/malloc.h" >&5
++echo "configure:12071: checking for sys/malloc.h" >&5
+   if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+    cat > conftest.$ac_ext <<EOF
+-#line 12136 "configure"
++#line 12076 "configure"
+ #include "confdefs.h"
+ 
+ #include <sys/malloc.h>
+@@ -12140,7 +12080,7 @@ int main() {
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:12144: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:12084: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   eval "ac_cv_header_$ac_safe=yes"
+ else
+@@ -12176,12 +12116,12 @@ MOZ_ALLOCATING_FUNCS="strndup posix_memalign memalign valloc"
+ for ac_func in strndup posix_memalign memalign valloc
+ do
+ echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+-echo "configure:12180: checking for $ac_func" >&5
++echo "configure:12120: checking for $ac_func" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 12185 "configure"
++#line 12125 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char $ac_func(); below.  */
+@@ -12207,7 +12147,7 @@ $ac_func();
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:12211: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:12151: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_func_$ac_func=yes"
+ else
+@@ -12237,19 +12177,19 @@ done
+ 
+ 
+ echo $ac_n "checking for __attribute__((always_inline))""... $ac_c" 1>&6
+-echo "configure:12241: checking for __attribute__((always_inline))" >&5
++echo "configure:12181: checking for __attribute__((always_inline))" >&5
+ if eval "test \"`echo '$''{'ac_cv_attribute_always_inline'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 12246 "configure"
++#line 12186 "configure"
+ #include "confdefs.h"
+ inline void f(void) __attribute__((always_inline));
+ int main() {
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:12253: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:12193: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   ac_cv_attribute_always_inline=yes
+ else
+@@ -12264,19 +12204,19 @@ fi
+ echo "$ac_t""$ac_cv_attribute_always_inline" 1>&6
+ 
+ echo $ac_n "checking for __attribute__((malloc))""... $ac_c" 1>&6
+-echo "configure:12268: checking for __attribute__((malloc))" >&5
++echo "configure:12208: checking for __attribute__((malloc))" >&5
+ if eval "test \"`echo '$''{'ac_cv_attribute_malloc'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 12273 "configure"
++#line 12213 "configure"
+ #include "confdefs.h"
+ void* f(int) __attribute__((malloc));
+ int main() {
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:12280: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:12220: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   ac_cv_attribute_malloc=yes
+ else
+@@ -12291,19 +12231,19 @@ fi
+ echo "$ac_t""$ac_cv_attribute_malloc" 1>&6
+ 
+ echo $ac_n "checking for __attribute__((warn_unused_result))""... $ac_c" 1>&6
+-echo "configure:12295: checking for __attribute__((warn_unused_result))" >&5
++echo "configure:12235: checking for __attribute__((warn_unused_result))" >&5
+ if eval "test \"`echo '$''{'ac_cv_attribute_warn_unused'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 12300 "configure"
++#line 12240 "configure"
+ #include "confdefs.h"
+ int f(void) __attribute__((warn_unused_result));
+ int main() {
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:12307: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:12247: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   ac_cv_attribute_warn_unused=yes
+ else
+@@ -12327,19 +12267,19 @@ cross_compiling=$ac_cv_prog_cc_cross
+ 
+ 
+ echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6
+-echo "configure:12331: checking for LC_MESSAGES" >&5
++echo "configure:12271: checking for LC_MESSAGES" >&5
+ if eval "test \"`echo '$''{'ac_cv_i18n_lc_messages'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 12336 "configure"
++#line 12276 "configure"
+ #include "confdefs.h"
+ #include <locale.h>
+ int main() {
+ int category = LC_MESSAGES;
+ ; return 0; }
+ EOF
+-if { (eval echo configure:12343: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:12283: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   ac_cv_i18n_lc_messages=yes
+ else
+@@ -12365,12 +12305,12 @@ fi
+ for ac_func in localeconv
+ do
+ echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+-echo "configure:12369: checking for $ac_func" >&5
++echo "configure:12309: checking for $ac_func" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 12374 "configure"
++#line 12314 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char $ac_func(); below.  */
+@@ -12393,7 +12333,7 @@ $ac_func();
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:12397: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:12337: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_func_$ac_func=yes"
+ else
+@@ -12580,7 +12520,7 @@ fi
+ 	# Extract the first word of "nspr-config", so it can be a program name with args.
+ set dummy nspr-config; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:12584: checking for $ac_word" >&5
++echo "configure:12524: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_path_NSPR_CONFIG'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -12615,7 +12555,7 @@ fi
+ 
+ 	min_nspr_version=$NSPR_MINVER
+ 	echo $ac_n "checking for NSPR - version >= $min_nspr_version""... $ac_c" 1>&6
+-echo "configure:12619: checking for NSPR - version >= $min_nspr_version" >&5
++echo "configure:12559: checking for NSPR - version >= $min_nspr_version" >&5
+ 
+ 	no_nspr=""
+ 	if test "$NSPR_CONFIG" != "no"; then
+@@ -12678,7 +12618,7 @@ if test -n "$MOZ_NATIVE_NSPR"; then
+     _SAVE_CFLAGS=$CFLAGS
+     CFLAGS="$CFLAGS $NSPR_CFLAGS"
+     cat > conftest.$ac_ext <<EOF
+-#line 12682 "configure"
++#line 12622 "configure"
+ #include "confdefs.h"
+ #include "prlog.h"
+ int main() {
+@@ -12687,7 +12627,7 @@ int main() {
+                  #endif
+ ; return 0; }
+ EOF
+-if { (eval echo configure:12691: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:12631: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   MOZ_NATIVE_NSPR=1
+ else
+@@ -12729,7 +12669,7 @@ if test -z "$MOZ_ZLIB_LIBS$MOZ_ZLIB_CFLAGS$SKIP_LIBRARY_CHECKS"; then
+         MOZ_NATIVE_ZLIB=
+     else
+         echo $ac_n "checking for gzread in -lz""... $ac_c" 1>&6
+-echo "configure:12733: checking for gzread in -lz" >&5
++echo "configure:12673: checking for gzread in -lz" >&5
+ ac_lib_var=`echo z'_'gzread | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+@@ -12737,7 +12677,7 @@ else
+   ac_save_LIBS="$LIBS"
+ LIBS="-lz  $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 12741 "configure"
++#line 12681 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error.  */
+ /* We use char because int might match the return type of a gcc2
+@@ -12748,7 +12688,7 @@ int main() {
+ gzread()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:12752: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:12692: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -12772,7 +12712,7 @@ fi
+         if test "$MOZ_NATIVE_ZLIB" = 1; then
+             MOZZLIBNUM=`echo $MOZZLIB | awk -F. '{printf "0x%x\n", ((($1 * 16 + $2) * 16) + $3) * 16 + $4}'`
+             cat > conftest.$ac_ext <<EOF
+-#line 12776 "configure"
++#line 12716 "configure"
+ #include "confdefs.h"
+  #include <stdio.h>
+                              #include <string.h>
+@@ -12783,7 +12723,7 @@ int main() {
+                              #endif 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:12787: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:12727: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   MOZ_NATIVE_ZLIB=1
+ else
+@@ -12829,7 +12769,7 @@ if test -n "$MOZ_NATIVE_FFI"; then
+     # Extract the first word of "pkg-config", so it can be a program name with args.
+ set dummy pkg-config; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:12833: checking for $ac_word" >&5
++echo "configure:12773: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -12873,19 +12813,19 @@ fi
+      PKG_CONFIG_MIN_VERSION=0.9.0
+      if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
+         echo $ac_n "checking for libffi > 3.0.9""... $ac_c" 1>&6
+-echo "configure:12877: checking for libffi > 3.0.9" >&5
++echo "configure:12817: checking for libffi > 3.0.9" >&5
+ 
+         if $PKG_CONFIG --exists "libffi > 3.0.9" ; then
+             echo "$ac_t""yes" 1>&6
+             succeeded=yes
+ 
+             echo $ac_n "checking MOZ_FFI_CFLAGS""... $ac_c" 1>&6
+-echo "configure:12884: checking MOZ_FFI_CFLAGS" >&5
++echo "configure:12824: checking MOZ_FFI_CFLAGS" >&5
+             MOZ_FFI_CFLAGS=`$PKG_CONFIG --cflags "libffi > 3.0.9"`
+             echo "$ac_t""$MOZ_FFI_CFLAGS" 1>&6
+ 
+             echo $ac_n "checking MOZ_FFI_LIBS""... $ac_c" 1>&6
+-echo "configure:12889: checking MOZ_FFI_LIBS" >&5
++echo "configure:12829: checking MOZ_FFI_LIBS" >&5
+             ## Remove evil flags like -Wl,--export-dynamic
+             MOZ_FFI_LIBS="`$PKG_CONFIG --libs \"libffi > 3.0.9\" |sed s/-Wl,--export-dynamic//g`"
+             echo "$ac_t""$MOZ_FFI_LIBS" 1>&6
+@@ -12921,7 +12861,7 @@ echo "configure:12889: checking MOZ_FFI_LIBS" >&5
+     # Extract the first word of "pkg-config", so it can be a program name with args.
+ set dummy pkg-config; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:12925: checking for $ac_word" >&5
++echo "configure:12865: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -12965,19 +12905,19 @@ fi
+      PKG_CONFIG_MIN_VERSION=0.9.0
+      if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
+         echo $ac_n "checking for libffi >= 3.0.9""... $ac_c" 1>&6
+-echo "configure:12969: checking for libffi >= 3.0.9" >&5
++echo "configure:12909: checking for libffi >= 3.0.9" >&5
+ 
+         if $PKG_CONFIG --exists "libffi >= 3.0.9" ; then
+             echo "$ac_t""yes" 1>&6
+             succeeded=yes
+ 
+             echo $ac_n "checking MOZ_FFI_CFLAGS""... $ac_c" 1>&6
+-echo "configure:12976: checking MOZ_FFI_CFLAGS" >&5
++echo "configure:12916: checking MOZ_FFI_CFLAGS" >&5
+             MOZ_FFI_CFLAGS=`$PKG_CONFIG --cflags "libffi >= 3.0.9"`
+             echo "$ac_t""$MOZ_FFI_CFLAGS" 1>&6
+ 
+             echo $ac_n "checking MOZ_FFI_LIBS""... $ac_c" 1>&6
+-echo "configure:12981: checking MOZ_FFI_LIBS" >&5
++echo "configure:12921: checking MOZ_FFI_LIBS" >&5
+             ## Remove evil flags like -Wl,--export-dynamic
+             MOZ_FFI_LIBS="`$PKG_CONFIG --libs \"libffi >= 3.0.9\" |sed s/-Wl,--export-dynamic//g`"
+             echo "$ac_t""$MOZ_FFI_LIBS" 1>&6
+@@ -13112,18 +13052,18 @@ MOZ_DEBUG_DISABLE_DEFS="-DNDEBUG -DTRIMMED"
+ 
+ if test -n "$MOZ_DEBUG"; then
+     echo $ac_n "checking for valid debug flags""... $ac_c" 1>&6
+-echo "configure:13116: checking for valid debug flags" >&5
++echo "configure:13056: checking for valid debug flags" >&5
+     _SAVE_CFLAGS=$CFLAGS
+     CFLAGS="$CFLAGS $MOZ_DEBUG_FLAGS"
+     cat > conftest.$ac_ext <<EOF
+-#line 13120 "configure"
++#line 13060 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int main() {
+ printf("Hello World\n");
+ ; return 0; }
+ EOF
+-if { (eval echo configure:13127: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:13067: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   _results=yes
+ else
+@@ -13201,18 +13141,18 @@ fi
+ if test "$COMPILE_ENVIRONMENT"; then
+ if test -n "$MOZ_OPTIMIZE"; then
+     echo $ac_n "checking for valid optimization flags""... $ac_c" 1>&6
+-echo "configure:13205: checking for valid optimization flags" >&5
++echo "configure:13145: checking for valid optimization flags" >&5
+     _SAVE_CFLAGS=$CFLAGS
+     CFLAGS="$CFLAGS $MOZ_OPTIMIZE_FLAGS"
+     cat > conftest.$ac_ext <<EOF
+-#line 13209 "configure"
++#line 13149 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int main() {
+ printf("Hello World\n");
+ ; return 0; }
+ EOF
+-if { (eval echo configure:13216: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:13156: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   _results=yes
+ else
+@@ -13364,7 +13304,7 @@ EOF
+     fi
+   else
+     echo $ac_n "checking size of int *""... $ac_c" 1>&6
+-echo "configure:13368: checking size of int *" >&5
++echo "configure:13308: checking size of int *" >&5
+ if eval "test \"`echo '$''{'ac_cv_sizeof_int_p'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -13372,7 +13312,7 @@ else
+   ac_cv_sizeof_int_p=4
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 13376 "configure"
++#line 13316 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int main()
+@@ -13383,7 +13323,7 @@ int main()
+   return(0);
+ }
+ EOF
+-if { (eval echo configure:13387: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
++if { (eval echo configure:13327: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+ then
+   ac_cv_sizeof_int_p=`cat conftestval`
+ else
+@@ -13687,12 +13627,12 @@ fi
+ if test -n "$MOZ_VALGRIND"; then
+        ac_safe=`echo "valgrind/valgrind.h" | sed 'y%./+-%__p_%'`
+   echo $ac_n "checking for valgrind/valgrind.h""... $ac_c" 1>&6
+-echo "configure:13691: checking for valgrind/valgrind.h" >&5
++echo "configure:13631: checking for valgrind/valgrind.h" >&5
+   if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+    cat > conftest.$ac_ext <<EOF
+-#line 13696 "configure"
++#line 13636 "configure"
+ #include "confdefs.h"
+ 
+ #include <valgrind/valgrind.h>
+@@ -13700,7 +13640,7 @@ int main() {
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:13704: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:13644: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   eval "ac_cv_header_$ac_safe=yes"
+ else
+@@ -13973,7 +13913,7 @@ do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:13977: checking for $ac_word" >&5
++echo "configure:13917: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_path_CCACHE'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -14099,12 +14039,12 @@ cross_compiling=$ac_cv_prog_cxx_cross
+     for ac_func in __cxa_demangle
+ do
+ echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+-echo "configure:14103: checking for $ac_func" >&5
++echo "configure:14043: checking for $ac_func" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 14108 "configure"
++#line 14048 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char $ac_func(); below.  */
+@@ -14130,7 +14070,7 @@ $ac_func();
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:14134: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:14074: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_func_$ac_func=yes"
+ else
+@@ -14184,12 +14124,12 @@ fi
+ if test -z "$SKIP_LIBRARY_CHECKS"; then
+        ac_safe=`echo "unwind.h" | sed 'y%./+-%__p_%'`
+   echo $ac_n "checking for unwind.h""... $ac_c" 1>&6
+-echo "configure:14188: checking for unwind.h" >&5
++echo "configure:14128: checking for unwind.h" >&5
+   if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+    cat > conftest.$ac_ext <<EOF
+-#line 14193 "configure"
++#line 14133 "configure"
+ #include "confdefs.h"
+ 
+ #include <unwind.h>
+@@ -14197,7 +14137,7 @@ int main() {
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:14201: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:14141: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   eval "ac_cv_header_$ac_safe=yes"
+ else
+@@ -14214,12 +14154,12 @@ fi
+     for ac_func in _Unwind_Backtrace
+ do
+ echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+-echo "configure:14218: checking for $ac_func" >&5
++echo "configure:14158: checking for $ac_func" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 14223 "configure"
++#line 14163 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char $ac_func(); below.  */
+@@ -14242,7 +14182,7 @@ $ac_func();
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:14246: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:14186: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_func_$ac_func=yes"
+ else
+@@ -14334,7 +14274,7 @@ if test -z "$SKIP_COMPILER_CHECKS"; then
+ # Compiler Options
+ 
+ echo $ac_n "checking for -pipe support""... $ac_c" 1>&6
+-echo "configure:14338: checking for -pipe support" >&5
++echo "configure:14278: checking for -pipe support" >&5
+ if test -n "$GNU_CC" -a -n "$GNU_CXX"; then
+         CFLAGS="$CFLAGS -pipe"
+     CXXFLAGS="$CXXFLAGS -pipe"
+@@ -14348,16 +14288,16 @@ _SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -fprofile-generate -fprofile-correction"
+ 
+ echo $ac_n "checking whether C compiler supports -fprofile-generate""... $ac_c" 1>&6
+-echo "configure:14352: checking whether C compiler supports -fprofile-generate" >&5
++echo "configure:14292: checking whether C compiler supports -fprofile-generate" >&5
+ cat > conftest.$ac_ext <<EOF
+-#line 14354 "configure"
++#line 14294 "configure"
+ #include "confdefs.h"
+ 
+ int main() {
+ return 0;
+ ; return 0; }
+ EOF
+-if { (eval echo configure:14361: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:14301: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+    PROFILE_GEN_CFLAGS="-fprofile-generate"
+                  result="yes" 
+@@ -14421,16 +14361,16 @@ if test "$_PEDANTIC"; then
+     _SAVE_CXXFLAGS=$CXXFLAGS
+     CXXFLAGS="$CXXFLAGS -pedantic ${_WARNINGS_CXXFLAGS} -Wno-long-long"
+     echo $ac_n "checking whether C++ compiler has -pedantic long long bug""... $ac_c" 1>&6
+-echo "configure:14425: checking whether C++ compiler has -pedantic long long bug" >&5
++echo "configure:14365: checking whether C++ compiler has -pedantic long long bug" >&5
+     cat > conftest.$ac_ext <<EOF
+-#line 14427 "configure"
++#line 14367 "configure"
+ #include "confdefs.h"
+ $configure_static_assert_macros
+ int main() {
+ CONFIGURE_STATIC_ASSERT(sizeof(long long) == 8)
+ ; return 0; }
+ EOF
+-if { (eval echo configure:14434: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:14374: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   result="no"
+ else
+@@ -14457,12 +14397,12 @@ fi
+ _SAVE_CXXFLAGS=$CXXFLAGS
+ CXXFLAGS="$CXXFLAGS ${_WARNINGS_CXXFLAGS}"
+ echo $ac_n "checking for correct overload resolution with const and templates""... $ac_c" 1>&6
+-echo "configure:14461: checking for correct overload resolution with const and templates" >&5
++echo "configure:14401: checking for correct overload resolution with const and templates" >&5
+ if eval "test \"`echo '$''{'ac_nscap_nonconst_opeq_bug'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 14466 "configure"
++#line 14406 "configure"
+ #include "confdefs.h"
+ 
+                       template <class T>
+@@ -14492,7 +14432,7 @@ int main() {
+                     
+ ; return 0; }
+ EOF
+-if { (eval echo configure:14496: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:14436: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   ac_nscap_nonconst_opeq_bug="no"
+ else
+@@ -14518,19 +14458,19 @@ EOF
+ fi
+ 
+ echo $ac_n "checking for tm_zone tm_gmtoff in struct tm""... $ac_c" 1>&6
+-echo "configure:14522: checking for tm_zone tm_gmtoff in struct tm" >&5
++echo "configure:14462: checking for tm_zone tm_gmtoff in struct tm" >&5
+ if eval "test \"`echo '$''{'ac_cv_struct_tm_zone_tm_gmtoff'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 14527 "configure"
++#line 14467 "configure"
+ #include "confdefs.h"
+ #include <time.h>
+ int main() {
+ struct tm tm; tm.tm_zone = 0; tm.tm_gmtoff = 1;
+ ; return 0; }
+ EOF
+-if { (eval echo configure:14534: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:14474: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   rm -rf conftest*
+   ac_cv_struct_tm_zone_tm_gmtoff="yes"
+ else
+@@ -14572,18 +14512,18 @@ cross_compiling=$ac_cv_prog_cc_cross
+ 
+ 
+ echo $ac_n "checking what kind of list files are supported by the linker""... $ac_c" 1>&6
+-echo "configure:14576: checking what kind of list files are supported by the linker" >&5
++echo "configure:14516: checking what kind of list files are supported by the linker" >&5
+ if eval "test \"`echo '$''{'EXPAND_LIBS_LIST_STYLE'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   echo "int main() {return 0;}" > conftest.${ac_ext}
+-     if { ac_try='${CC-cc} -o conftest.${OBJ_SUFFIX} -c $CFLAGS $CPPFLAGS conftest.${ac_ext} 1>&5'; { (eval echo configure:14581: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest.${OBJ_SUFFIX}; then
++     if { ac_try='${CC-cc} -o conftest.${OBJ_SUFFIX} -c $CFLAGS $CPPFLAGS conftest.${ac_ext} 1>&5'; { (eval echo configure:14521: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest.${OBJ_SUFFIX}; then
+          echo "INPUT(conftest.${OBJ_SUFFIX})" > conftest.list
+-         if { ac_try='${CC-cc} -o conftest${ac_exeext} $LDFLAGS conftest.list $LIBS 1>&5'; { (eval echo configure:14583: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest${ac_exeext}; then
++         if { ac_try='${CC-cc} -o conftest${ac_exeext} $LDFLAGS conftest.list $LIBS 1>&5'; { (eval echo configure:14523: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest${ac_exeext}; then
+              EXPAND_LIBS_LIST_STYLE=linkerscript
+          else
+              echo "conftest.${OBJ_SUFFIX}" > conftest.list
+-             if { ac_try='${CC-cc} -o conftest${ac_exeext} $LDFLAGS @conftest.list $LIBS 1>&5'; { (eval echo configure:14587: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest${ac_exeext}; then
++             if { ac_try='${CC-cc} -o conftest${ac_exeext} $LDFLAGS @conftest.list $LIBS 1>&5'; { (eval echo configure:14527: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest${ac_exeext}; then
+                  EXPAND_LIBS_LIST_STYLE=list
+              else
+                  EXPAND_LIBS_LIST_STYLE=none
+@@ -14603,7 +14543,7 @@ LIBS_DESC_SUFFIX=desc
+ 
+ if test "$GCC_USE_GNU_LD"; then
+     echo $ac_n "checking what kind of ordering can be done with the linker""... $ac_c" 1>&6
+-echo "configure:14607: checking what kind of ordering can be done with the linker" >&5
++echo "configure:14547: checking what kind of ordering can be done with the linker" >&5
+ if eval "test \"`echo '$''{'EXPAND_LIBS_ORDER_STYLE'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -14611,14 +14551,14 @@ else
+          _SAVE_LDFLAGS="$LDFLAGS"
+          LDFLAGS="${LDFLAGS} -Wl,--section-ordering-file,conftest.order"
+          cat > conftest.$ac_ext <<EOF
+-#line 14615 "configure"
++#line 14555 "configure"
+ #include "confdefs.h"
+ 
+ int main() {
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:14622: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:14562: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   EXPAND_LIBS_ORDER_STYLE=section-ordering-file
+ else
+@@ -14630,7 +14570,7 @@ fi
+ rm -f conftest*
+          LDFLAGS="$_SAVE_LDFLAGS"
+          if test -z "$EXPAND_LIBS_ORDER_STYLE"; then
+-             if { ac_try='${CC-cc} ${DSO_LDOPTS} ${LDFLAGS} -o ${DLL_PREFIX}conftest${DLL_SUFFIX} -Wl'; { (eval echo configure:14634: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
++             if { ac_try='${CC-cc} ${DSO_LDOPTS} ${LDFLAGS} -o ${DLL_PREFIX}conftest${DLL_SUFFIX} -Wl'; { (eval echo configure:14574: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+                  EXPAND_LIBS_ORDER_STYLE=linkerscript
+              else
+                  EXPAND_LIBS_ORDER_STYLE=none
+@@ -14741,7 +14681,7 @@ esac
+ if test -z "$SKIP_LIBRARY_CHECKS" -a -z "$NO_EDITLINE"; then
+   if test -n "$JS_WANT_READLINE"; then
+     echo $ac_n "checking for readline in -lreadline""... $ac_c" 1>&6
+-echo "configure:14745: checking for readline in -lreadline" >&5
++echo "configure:14685: checking for readline in -lreadline" >&5
+ ac_lib_var=`echo readline'_'readline | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+@@ -14749,7 +14689,7 @@ else
+   ac_save_LIBS="$LIBS"
+ LIBS="-lreadline  $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 14753 "configure"
++#line 14693 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error.  */
+ /* We use char because int might match the return type of a gcc2
+@@ -14760,7 +14700,7 @@ int main() {
+ readline()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:14764: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:14704: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -14990,9 +14930,9 @@ EOF
+ 
+ 
+ echo $ac_n "checking for posix_fallocate""... $ac_c" 1>&6
+-echo "configure:14994: checking for posix_fallocate" >&5
++echo "configure:14934: checking for posix_fallocate" >&5
+ cat > conftest.$ac_ext <<EOF
+-#line 14996 "configure"
++#line 14936 "configure"
+ #include "confdefs.h"
+ #define _XOPEN_SOURCE 600
+   #include <fcntl.h>
+@@ -15000,7 +14940,7 @@ int main() {
+ posix_fallocate(0, 0, 0);
+ ; return 0; }
+ EOF
+-if { (eval echo configure:15004: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:14944: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   ac_cv___posix_fallocate=true
+ else
+@@ -15029,7 +14969,7 @@ if test "$MOZ_X11"; then
+                 _SAVE_CFLAGS=$CFLAGS
+     CFLAGS="$CFLAGS $XCFLAGS"
+     cat > conftest.$ac_ext <<EOF
+-#line 15033 "configure"
++#line 14973 "configure"
+ #include "confdefs.h"
+ 
+         #include <stdio.h>
+@@ -15047,7 +14987,7 @@ int main() {
+     
+ ; return 0; }
+ EOF
+-if { (eval echo configure:15051: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:14991: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+   :
+ else
+   echo "configure: failed program was:" >&5
+@@ -15162,12 +15102,12 @@ fi
+ for ac_func in setlocale
+ do
+ echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+-echo "configure:15166: checking for $ac_func" >&5
++echo "configure:15106: checking for $ac_func" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 15171 "configure"
++#line 15111 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char $ac_func(); below.  */
+@@ -15190,7 +15130,7 @@ $ac_func();
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:15194: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:15134: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_func_$ac_func=yes"
+ else
+@@ -15220,12 +15160,12 @@ done
+ for ac_func in localeconv
+ do
+ echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+-echo "configure:15224: checking for $ac_func" >&5
++echo "configure:15164: checking for $ac_func" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+   echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   cat > conftest.$ac_ext <<EOF
+-#line 15229 "configure"
++#line 15169 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char $ac_func(); below.  */
+@@ -15248,7 +15188,7 @@ $ac_func();
+ 
+ ; return 0; }
+ EOF
+-if { (eval echo configure:15252: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:15192: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+   rm -rf conftest*
+   eval "ac_cv_func_$ac_func=yes"
+ else
+-- 
+1.9.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0002-Move-JS_BYTES_PER_WORD-out-of-config.h.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0002-Move-JS_BYTES_PER_WORD-out-of-config.h.patch
new file mode 100644
index 0000000..6aeb2f6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0002-Move-JS_BYTES_PER_WORD-out-of-config.h.patch
@@ -0,0 +1,75 @@
+From d4a15ad82292ff6d772dcc631df98754d20be31b Mon Sep 17 00:00:00 2001
+From: Colin Walters <walters@verbum.org>
+Date: Tue, 18 Mar 2014 11:46:05 -0400
+Subject: [PATCH 2/5] Move JS_BYTES_PER_WORD out of config.h
+
+Instead define it in terms of the already extant GNU C extension
+__SIZEOF_POINTER__.  This avoids multiarch conflicts when 32 and 64
+bit packages of js are co-installed.
+---
+
+Upstream-status: Pending
+
+ js/src/configure.in   |  9 ---------
+ js/src/js-config.h.in |  1 -
+ js/src/jstypes.h      | 12 ++++++++++++
+ 3 files changed, 12 insertions(+), 10 deletions(-)
+
+diff --git a/js/src/configure.in b/js/src/configure.in
+index 15605b2..64c7606 100644
+--- a/js/src/configure.in
++++ b/js/src/configure.in
+@@ -2345,15 +2345,6 @@ else
+   AC_MSG_RESULT(no)
+ fi
+ 
+-MOZ_SIZE_OF_TYPE(JS_BYTES_PER_WORD, void*, 4 8)
+-if test "$moz_cv_size_of_JS_BYTES_PER_WORD" -eq "4"; then
+-  AC_DEFINE(JS_BITS_PER_WORD_LOG2, 5)
+-elif test "$moz_cv_size_of_JS_BYTES_PER_WORD" -eq "8"; then
+-  AC_DEFINE(JS_BITS_PER_WORD_LOG2, 6)
+-else
+-  AC_MSG_ERROR([Unexpected JS_BYTES_PER_WORD])
+-fi
+-
+ MOZ_ALIGN_OF_TYPE(JS_ALIGN_OF_POINTER, void*, 2 4 8 16)
+ MOZ_SIZE_OF_TYPE(JS_BYTES_PER_DOUBLE, double, 6 8 10 12 14)
+ 
+diff --git a/js/src/js-config.h.in b/js/src/js-config.h.in
+index 6889e00..4775420 100644
+--- a/js/src/js-config.h.in
++++ b/js/src/js-config.h.in
+@@ -56,7 +56,6 @@
+ #undef JS_INT32_TYPE
+ #undef JS_INT64_TYPE
+ #undef JS_INTPTR_TYPE
+-#undef JS_BYTES_PER_WORD
+ 
+ /* Some mozilla code uses JS-friend APIs that depend on JS_METHODJIT being
+    correct. */
+diff --git a/js/src/jstypes.h b/js/src/jstypes.h
+index d0cf183..3e7928f 100644
+--- a/js/src/jstypes.h
++++ b/js/src/jstypes.h
+@@ -24,6 +24,18 @@
+ #include "mozilla/Util.h"
+ 
+ #include "js-config.h"
++#ifndef JS_BYTES_PER_WORD
++#define JS_BYTES_PER_WORD __SIZEOF_POINTER__
++#endif
++#ifndef JS_BITS_PER_WORD_LOG2
++#if JS_BYTES_PER_WORD == 8
++#define JS_BITS_PER_WORD_LOG2 6
++#elif JS_BYTES_PER_WORD == 4
++#define JS_BITS_PER_WORD_LOG2 5
++#else
++#error Unhandled JS_BYTES_PER_WORD
++#endif 
++#endif
+ 
+ /***********************************************************************
+ ** MACROS:      JS_EXTERN_API
+-- 
+1.9.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0003-Add-AArch64-support.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0003-Add-AArch64-support.patch
new file mode 100644
index 0000000..6e72429
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0003-Add-AArch64-support.patch
@@ -0,0 +1,76 @@
+From 15e710e331d36eb279852b5cd1ba37a9a6005217 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen.kooi@linaro.org>
+Date: Mon, 2 Mar 2015 19:08:22 +0800
+Subject: [PATCH 3/5] Add AArch64 support
+
+---
+Upstream-status: Pending
+
+ js/src/assembler/jit/ExecutableAllocator.h | 6 ++++++
+ js/src/assembler/wtf/Platform.h            | 4 ++++
+ js/src/configure.in                        | 4 ++++
+ mfbt/double-conversion/utils.h             | 1 +
+ 4 files changed, 15 insertions(+)
+
+diff --git a/js/src/assembler/jit/ExecutableAllocator.h b/js/src/assembler/jit/ExecutableAllocator.h
+index c071c33..90764c3 100644
+--- a/js/src/assembler/jit/ExecutableAllocator.h
++++ b/js/src/assembler/jit/ExecutableAllocator.h
+@@ -382,6 +382,12 @@ public:
+     {
+         reprotectRegion(start, size, Executable);
+     }
++#elif WTF_CPU_AARCH64 && WTF_PLATFORM_LINUX
++    static void cacheFlush(void* code, size_t size)
++    {
++        intptr_t end = reinterpret_cast<intptr_t>(code) + size;
++        __builtin___clear_cache(reinterpret_cast<char*>(code), reinterpret_cast<char*>(end));
++    }
+ #else
+     static void makeWritable(void*, size_t) {}
+     static void makeExecutable(void*, size_t) {}
+diff --git a/js/src/assembler/wtf/Platform.h b/js/src/assembler/wtf/Platform.h
+index 0c84896..e8763a7 100644
+--- a/js/src/assembler/wtf/Platform.h
++++ b/js/src/assembler/wtf/Platform.h
+@@ -325,6 +325,10 @@
+ #define WTF_THUMB_ARCH_VERSION 0
+ #endif
+ 
++/* CPU(AArch64) - 64-bit ARM */
++#if defined(__aarch64__)
++#define WTF_CPU_AARCH64 1
++#endif
+ 
+ /* WTF_CPU_ARMV5_OR_LOWER - ARM instruction set v5 or earlier */
+ /* On ARMv5 and below the natural alignment is required. 
+diff --git a/js/src/configure.in b/js/src/configure.in
+index 64c7606..0673aca 100644
+--- a/js/src/configure.in
++++ b/js/src/configure.in
+@@ -1121,6 +1121,10 @@ arm*)
+     CPU_ARCH=arm
+     ;;
+ 
++aarch64)
++    CPU_ARCH=aarch64
++    ;;
++
+ mips|mipsel)
+     CPU_ARCH="mips"
+     ;;
+diff --git a/mfbt/double-conversion/utils.h b/mfbt/double-conversion/utils.h
+index 0eec2d9..fe26dab 100644
+--- a/mfbt/double-conversion/utils.h
++++ b/mfbt/double-conversion/utils.h
+@@ -58,6 +58,7 @@
+     defined(__mips__) || defined(__powerpc__) || \
+     defined(__sparc__) || defined(__sparc) || defined(__s390__) || \
+     defined(__SH4__) || defined(__alpha__) || \
++    defined(__aarch64__) || \
+     defined(_MIPS_ARCH_MIPS32R2)
+ #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
+ #elif defined(_M_IX86) || defined(__i386__) || defined(__i386)
+-- 
+1.9.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0004-mozbug746112-no-decommit-on-large-pages.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0004-mozbug746112-no-decommit-on-large-pages.patch
new file mode 100644
index 0000000..8bd35d4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0004-mozbug746112-no-decommit-on-large-pages.patch
@@ -0,0 +1,103 @@
+From 0128c5a9eeee0d3fc0deb9129dd20eb79338c8f4 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen.kooi@linaro.org>
+Date: Mon, 2 Mar 2015 19:08:59 +0800
+Subject: [PATCH 4/5] mozbug746112-no-decommit-on-large-pages
+
+---
+Upstream-status: Pending
+
+ js/src/gc/Heap.h | 15 ++++++++++-----
+ js/src/jsgc.cpp  | 15 ++++++++++++---
+ 2 files changed, 22 insertions(+), 8 deletions(-)
+
+diff --git a/js/src/gc/Heap.h b/js/src/gc/Heap.h
+index b8f8c78..1cfd269 100644
+--- a/js/src/gc/Heap.h
++++ b/js/src/gc/Heap.h
+@@ -103,26 +103,31 @@ struct Cell
+ };
+ 
+ /*
+- * Page size is 4096 by default, except for SPARC, where it is 8192.
++ * Page size must be static to support our arena pointer optimizations, so we
++ * are forced to support each platform with non-4096 pages as a special case.
++ * Note: The freelist supports a maximum arena shift of 15.
+  * Note: Do not use JS_CPU_SPARC here, this header is used outside JS.
+  * Bug 692267: Move page size definition to gc/Memory.h and include it
+  *             directly once jsgc.h is no longer an installed header.
+  */
+ #if defined(SOLARIS) && (defined(__sparc) || defined(__sparcv9))
+ const size_t PageShift = 13;
++const size_t ArenaShift = PageShift;
++#elif defined(__powerpc__)
++const size_t PageShift = 16;
++const size_t ArenaShift = 12;
+ #else
+ const size_t PageShift = 12;
++const size_t ArenaShift = PageShift;
+ #endif
+ const size_t PageSize = size_t(1) << PageShift;
++const size_t ArenaSize = size_t(1) << ArenaShift;
++const size_t ArenaMask = ArenaSize - 1;
+ 
+ const size_t ChunkShift = 20;
+ const size_t ChunkSize = size_t(1) << ChunkShift;
+ const size_t ChunkMask = ChunkSize - 1;
+ 
+-const size_t ArenaShift = PageShift;
+-const size_t ArenaSize = PageSize;
+-const size_t ArenaMask = ArenaSize - 1;
+-
+ /*
+  * This is the maximum number of arenas we allow in the FreeCommitted state
+  * before we trigger a GC_SHRINK to release free arenas to the OS.
+diff --git a/js/src/jsgc.cpp b/js/src/jsgc.cpp
+index b3caf05..a258d2d 100644
+--- a/js/src/jsgc.cpp
++++ b/js/src/jsgc.cpp
+@@ -251,6 +251,13 @@ static const int BackgroundPhaseLength[] = {
+     sizeof(BackgroundPhaseStrings) / sizeof(AllocKind)
+ };
+ 
++/* Unused memory decommiting requires the arena size match the page size. */
++static bool
++DecommitEnabled()
++{
++    return PageSize == ArenaSize;
++}
++
+ #ifdef DEBUG
+ void
+ ArenaHeader::checkSynchronizedWithFreeList() const
+@@ -742,7 +749,8 @@ Chunk::fetchNextDecommittedArena()
+     decommittedArenas.unset(offset);
+ 
+     Arena *arena = &arenas[offset];
+-    MarkPagesInUse(arena, ArenaSize);
++    if (DecommitEnabled())
++        MarkPagesInUse(arena, ArenaSize);
+     arena->aheader.setAsNotAllocated();
+ 
+     return &arena->aheader;
+@@ -2731,7 +2739,7 @@ DecommitArenasFromAvailableList(JSRuntime *rt, Chunk **availableListHeadp)
+                 chunk->removeFromAvailableList();
+ 
+             size_t arenaIndex = Chunk::arenaIndex(aheader->arenaAddress());
+-            bool ok;
++            bool ok = true;
+             {
+                 /*
+                  * If the main thread waits for the decommit to finish, skip
+@@ -2741,7 +2749,8 @@ DecommitArenasFromAvailableList(JSRuntime *rt, Chunk **availableListHeadp)
+                 Maybe<AutoUnlockGC> maybeUnlock;
+                 if (!rt->isHeapBusy())
+                     maybeUnlock.construct(rt);
+-                ok = MarkPagesUnused(aheader->getArena(), ArenaSize);
++                if (DecommitEnabled())
++                    ok = MarkPagesUnused(aheader->getArena(), ArenaSize);
+             }
+ 
+             if (ok) {
+-- 
+1.9.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0005-aarch64-64k-page.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0005-aarch64-64k-page.patch
new file mode 100644
index 0000000..bc99ecc
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0005-aarch64-64k-page.patch
@@ -0,0 +1,44 @@
+From 9c42920c2b635a399bd1f93833efdeb1696f17ee Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen.kooi@linaro.org>
+Date: Mon, 2 Mar 2015 19:09:57 +0800
+Subject: [PATCH 5/5] aarch64-64k-page
+
+---
+Upstream-status: Pending
+
+ js/src/gc/Heap.h     | 2 +-
+ js/src/gc/Memory.cpp | 3 +++
+ 2 files changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/js/src/gc/Heap.h b/js/src/gc/Heap.h
+index 1cfd269..f4dbcda 100644
+--- a/js/src/gc/Heap.h
++++ b/js/src/gc/Heap.h
+@@ -113,7 +113,7 @@ struct Cell
+ #if defined(SOLARIS) && (defined(__sparc) || defined(__sparcv9))
+ const size_t PageShift = 13;
+ const size_t ArenaShift = PageShift;
+-#elif defined(__powerpc__)
++#elif defined(__powerpc__) || defined(__aarch64__)
+ const size_t PageShift = 16;
+ const size_t ArenaShift = 12;
+ #else
+diff --git a/js/src/gc/Memory.cpp b/js/src/gc/Memory.cpp
+index 5b386a2..e5ad018 100644
+--- a/js/src/gc/Memory.cpp
++++ b/js/src/gc/Memory.cpp
+@@ -302,8 +302,11 @@ GetPageFaultCount()
+ void
+ InitMemorySubsystem()
+ {
++    /* aarch64 may have 64KB or 4KB pages */
++#ifndef __aarch64__
+     if (size_t(sysconf(_SC_PAGESIZE)) != PageSize)
+         MOZ_CRASH();
++#endif
+ }
+ 
+ void *
+-- 
+1.9.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0010-fix-cross-compilation-on-i586-targets.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0010-fix-cross-compilation-on-i586-targets.patch
new file mode 100644
index 0000000..6432e1f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/0010-fix-cross-compilation-on-i586-targets.patch
@@ -0,0 +1,46 @@
+From a452138a1dd274bfad381a701729783360dc86fb Mon Sep 17 00:00:00 2001
+From: Maciej Borzecki <maciej.borzecki@open-rnd.pl>
+Date: Tue, 5 Jan 2016 22:04:17 +0100
+Subject: [PATCH] fix cross compilation on i586 targets
+
+Remove offending -Wl,-rpath-link that may cause host libraries to be picked
+during linking. The patch applies a fix to configure.in. So as not to
+regenerate configure, similar fix is applied there.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Maciej Borzecki <maciej.borzecki@open-rnd.pl>
+---
+ js/src/configure    | 2 +-
+ js/src/configure.in | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/js/src/configure b/js/src/configure
+index d019b0fdba44233596541de94307010d85a8e32e..5aa40f757a3dbb7d6887175046f44212c15c2eac 100755
+--- a/js/src/configure
++++ b/js/src/configure
+@@ -5555,7 +5555,7 @@ TARGET_MD_ARCH=unix
+ DIRENT_INO=d_ino
+ MOZ_USER_DIR=".mozilla"
+ 
+-MOZ_FIX_LINK_PATHS='-Wl,-rpath-link,$(LIBXUL_DIST)/bin -Wl,-rpath-link,$(prefix)/lib'
++MOZ_FIX_LINK_PATHS='-Wl,-rpath-link,$(LIBXUL_DIST)/bin'
+ 
+ MOZ_COMPONENT_NSPR_LIBS='-L$(LIBXUL_DIST)/bin $(NSPR_LIBS)'
+ 
+diff --git a/js/src/configure.in b/js/src/configure.in
+index 0673aca12f6d83035549ade2a4a83906bf91f0f0..39b22724f9535ac1a6dba04658c91e4ef667fc47 100644
+--- a/js/src/configure.in
++++ b/js/src/configure.in
+@@ -919,7 +919,7 @@ TARGET_MD_ARCH=unix
+ DIRENT_INO=d_ino
+ MOZ_USER_DIR=".mozilla"
+ 
+-MOZ_FIX_LINK_PATHS='-Wl,-rpath-link,$(LIBXUL_DIST)/bin -Wl,-rpath-link,$(prefix)/lib'
++MOZ_FIX_LINK_PATHS='-Wl,-rpath-link,$(LIBXUL_DIST)/bin'
+ 
+ MOZ_COMPONENT_NSPR_LIBS='-L$(LIBXUL_DIST)/bin $(NSPR_LIBS)'
+ 
+-- 
+2.5.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/fix-the-compile-error-of-powerpc64.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/fix-the-compile-error-of-powerpc64.patch
new file mode 100644
index 0000000..43c4590
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/fix-the-compile-error-of-powerpc64.patch
@@ -0,0 +1,18 @@
+fix the compile error of powerpc64
+ 
+Upstream-status: Accepted
+
+ fix the following error
+ |error: 'jsuword' does not name a type
+
+
+--- a/js/src/jsval.hold	2015-04-24 01:15:06.692970731 -0500
++++ b/js/src/jsval.h	2015-04-24 01:15:41.792969478 -0500
+@@ -304,7 +304,6 @@
+             int32_t        i32;
+             uint32_t       u32;
+             JSWhyMagic     why;
+-            jsuword        word;
+         } payload;
+     } s;
+     double asDouble;
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/fix_milestone_compile_issue.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/fix_milestone_compile_issue.patch
new file mode 100644
index 0000000..abde01b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/fix_milestone_compile_issue.patch
@@ -0,0 +1,20 @@
+fix the compile error do to perl update
+
+Upstream-status: Inappropriate
+
+
+Signed-of-by: Armin Kuster <akuster808@gmail.com>
+
+Index: src/config/milestone.pl
+===================================================================
+--- src.orig/config/milestone.pl
++++ src/config/milestone.pl
+@@ -55,7 +55,7 @@ $MILESTONE_FILE  = "$TOPSRCDIR/config/mi
+ #
+ my $milestone = Moz::Milestone::getOfficialMilestone($MILESTONE_FILE);
+ 
+-if (defined(@TEMPLATE_FILE)) {
++if (@TEMPLATE_FILE) {
+   my $TFILE;
+ 
+   foreach $TFILE (@TEMPLATE_FILE) {
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs_17.0.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs_17.0.0.bb
new file mode 100644
index 0000000..02d5694
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs_17.0.0.bb
@@ -0,0 +1,73 @@
+SUMMARY = "SpiderMonkey is Mozilla's JavaScript engine written in C/C++"
+LICENSE = "MPL-2.0"
+LIC_FILES_CHKSUM = "file://../../LICENSE;md5=815ca599c9df247a0c7f619bab123dad"
+
+SRC_URI = " \
+    http://ftp.mozilla.org/pub/mozilla.org/js/${BPN}${PV}.tar.gz \
+    file://0001-mozjs17.0.0-fix-the-compile-bug-of-powerpc.patch \
+    file://0001-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch \
+    file://0002-Move-JS_BYTES_PER_WORD-out-of-config.h.patch;patchdir=../../ \
+    file://0003-Add-AArch64-support.patch;patchdir=../../ \
+    file://0004-mozbug746112-no-decommit-on-large-pages.patch;patchdir=../../ \
+    file://0005-aarch64-64k-page.patch;patchdir=../../ \
+    file://0001-regenerate-configure.patch;patchdir=../../ \ 
+    file://fix-the-compile-error-of-powerpc64.patch;patchdir=../../ \
+    file://fix_milestone_compile_issue.patch \
+    file://0010-fix-cross-compilation-on-i586-targets.patch;patchdir=../../ \
+    file://0001-add-support-for-big-endian-32bit-ARM.patch;patchdir=../../ \
+  "
+
+SRC_URI[md5sum] = "20b6f8f1140ef6e47daa3b16965c9202"
+SRC_URI[sha256sum] = "321e964fe9386785d3bf80870640f2fa1c683e32fe988eeb201b04471c172fba"
+
+S = "${WORKDIR}/${BPN}${PV}/js/src"
+
+inherit autotools pkgconfig perlnative pythonnative
+
+DEPENDS += "nspr zlib"
+
+# nspr's package-config is ignored so set libs manually
+EXTRA_OECONF = " \
+    --target=${TARGET_SYS} \
+    --host=${BUILD_SYS} \
+    --build=${BUILD_SYS} \
+    --prefix=${prefix} \
+    --libdir=${libdir} \
+    --with-nspr-libs='-lplds4 -lplc4 -lnspr4' \
+    --enable-threadsafe \
+    --disable-static \
+"
+EXTRA_OECONF_append_armv4 += " \
+    --disable-methodjit \
+"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}"
+PACKAGECONFIG[x11] = "--with-x --x-includes=${STAGING_INCDIR} --x-libraries=${STAGING_LIBDIR},--without-x,virtual/libx11"
+
+# mozjs requires autoreconf 2.13
+do_configure() {
+    ( cd ${S} 
+      gnu-configize --force
+      mv config.guess config.sub build/autoconf )
+    ${S}/configure ${EXTRA_OECONF}
+}
+
+# patch.bbclass will try to apply the patches already present and fail, so clean them out
+do_unpack() {
+    tar -xvf ${DL_DIR}/mozjs17.0.0.tar.gz -C ${WORKDIR}/
+    rm -rf ${WORKDIR}/${BPN}${PV}/patches
+}
+
+
+PACKAGES =+ "lib${PN}"
+FILES_lib${PN} += "${libdir}/lib*.so"
+FILES_${PN}-dev += "${bindir}/js17-config"
+
+# Fails to build with thumb-1 (qemuarm)
+#| {standard input}: Assembler messages:
+#| {standard input}:2172: Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r2,r1,LSR#20'
+#| {standard input}:2173: Error: unshifted register required -- `bic r2,r2,#(1<<11)'
+#| {standard input}:2174: Error: unshifted register required -- `orr r1,r1,#(1<<20)'
+#| {standard input}:2176: Error: instruction not supported in Thumb16 mode -- `subs r2,r2,#0x300'
+#| {standard input}:2178: Error: instruction not supported in Thumb16 mode -- `subs r5,r2,#52'
+ARM_INSTRUCTION_SET = "arm"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/nana/nana/change-mandir-to-DESTDIR.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/nana/nana/change-mandir-to-DESTDIR.patch
new file mode 100644
index 0000000..653a7e4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/nana/nana/change-mandir-to-DESTDIR.patch
@@ -0,0 +1,40 @@
+From 7b04c4873c0a4510bdaf9145bf01ca34b3549fdb Mon Sep 17 00:00:00 2001
+From: Li xin <lixin.fnst@cn.fujitsu.com>
+Date: Thu, 4 Dec 2014 03:50:19 +0900
+Subject: [PATCH 1/2] change mandir to DESTDIR
+
+Upstream-Status: pending
+
+Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
+---
+ man/Makefile.am | 2 +-
+ man/Makefile.in | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/man/Makefile.am b/man/Makefile.am
+index 80d24d8..944bc57 100644
+--- a/man/Makefile.am
++++ b/man/Makefile.am
+@@ -16,5 +16,5 @@ install-data-local:
+ 	@sect=1;				\
+ 	inst=`echo "nana" | sed '$(transform)'`.1; \
+ 	echo installing nana.1 as $(mandir)/man$$sect/$$inst; \
+-	$(INSTALL_DATA) $(srcdir)/nana.1 $(mandir)/man$$sect/$$inst
++	$(INSTALL_DATA) $(srcdir)/nana.1 $(DESTDIR)$(mandir)/man$$sect/$$inst
+ 
+diff --git a/man/Makefile.in b/man/Makefile.in
+index 6008b20..64bb84c 100644
+--- a/man/Makefile.in
++++ b/man/Makefile.in
+@@ -274,7 +274,7 @@ install-data-local:
+ 	@sect=1;				\
+ 	inst=`echo "nana" | sed '$(transform)'`.1; \
+ 	echo installing nana.1 as $(mandir)/man$$sect/$$inst; \
+-	$(INSTALL_DATA) $(srcdir)/nana.1 $(mandir)/man$$sect/$$inst
++	$(INSTALL_DATA) $(srcdir)/nana.1 $(DESTDIR)$(mandir)/man$$sect/$$inst
+ 
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+ # Otherwise a system limit (for SysV at least) may be exceeded.
+-- 
+1.8.4.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/nana/nana/modify-acinclude.m4-and-configure.in.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/nana/nana/modify-acinclude.m4-and-configure.in.patch
new file mode 100644
index 0000000..aeb2546
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/nana/nana/modify-acinclude.m4-and-configure.in.patch
@@ -0,0 +1,137 @@
+From 679e33bfe74d713240fdd930602b993b937dce39 Mon Sep 17 00:00:00 2001
+From: Li xin <lixin.fnst@cn.fujitsu.com>
+Date: Fri, 23 Jan 2015 03:30:47 +0900
+Subject: [PATCH] modify acinclude.m4 and configure.in
+
+this patch is from Debian to fix build errors.
+"acinclude.m4:34: error: automatic de-ANSI-fication
+support has been removed"
+
+Upstream-Status: pending
+
+Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
+---
+ acinclude.m4 | 79 ------------------------------------------------------------
+ configure.in | 12 +++++++++
+ 2 files changed, 12 insertions(+), 79 deletions(-)
+
+diff --git a/acinclude.m4 b/acinclude.m4
+index e9e5500..d467fb5 100644
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -30,82 +30,3 @@ AC_SUBST($1)
+ ## ------------------------------- ##
+ ## Check for function prototypes.  ##
+ ## ------------------------------- ##
+-
+-AC_DEFUN(fp_C_PROTOTYPES,
+-[AC_REQUIRE([AM_PROG_CC_STDC])
+-AC_MSG_CHECKING([for function prototypes])
+-if test "$ac_cv_prog_cc_stdc" != no; then
+-  AC_MSG_RESULT(yes)
+-  AC_DEFINE(PROTOTYPES)
+-  U= ANSI2KNR=
+-else
+-  AC_MSG_RESULT(no)
+-  U=_ ANSI2KNR=./ansi2knr
+-fi
+-AC_SUBST(U)dnl
+-AC_SUBST(ANSI2KNR)dnl
+-])
+-
+-## ----------------------------------------- ##
+-## ANSIfy the C compiler whenever possible.  ##
+-## ----------------------------------------- ##
+-
+-# @defmac AC_PROG_CC_STDC
+-# @maindex PROG_CC_STDC
+-# @ovindex CC
+-# If the C compiler in not in ANSI C mode by default, try to add an option
+-# to output variable @code{CC} to make it so.  This macro tries various
+-# options that select ANSI C on some system or another.  It considers the
+-# compiler to be in ANSI C mode if it defines @code{__STDC__} to 1 and
+-# handles function prototypes correctly.
+-#
+-# If you use this macro, you should check after calling it whether the C
+-# compiler has been set to accept ANSI C; if not, the shell variable
+-# @code{ac_cv_prog_cc_stdc} is set to @samp{no}.  If you wrote your source
+-# code in ANSI C, you can make an un-ANSIfied copy of it by using the
+-# program @code{ansi2knr}, which comes with Ghostscript.
+-# @end defmac
+-
+-AC_DEFUN(fp_PROG_CC_STDC,
+-[AC_MSG_CHECKING(for ${CC-cc} option to accept ANSI C)
+-AC_CACHE_VAL(ac_cv_prog_cc_stdc,
+-[ac_cv_prog_cc_stdc=no
+-ac_save_CFLAGS="$CFLAGS"
+-# Don't try gcc -ansi; that turns off useful extensions and
+-# breaks some systems' header files.
+-# AIX			-qlanglvl=ansi
+-# Ultrix and OSF/1	-std1
+-# HP-UX			-Aa -D_HPUX_SOURCE
+-# SVR4			-Xc
+-for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" -Xc
+-do
+-  CFLAGS="$ac_save_CFLAGS $ac_arg"
+-  AC_TRY_COMPILE(
+-[#if !defined(__STDC__) || __STDC__ != 1
+-choke me
+-#endif
+-], [int test (int i, double x);
+-struct s1 {int (*f) (int a);};
+-struct s2 {int (*f) (double a);};],
+-[ac_cv_prog_cc_stdc="$ac_arg"; break])
+-done
+-CFLAGS="$ac_save_CFLAGS"
+-])
+-AC_MSG_RESULT($ac_cv_prog_cc_stdc)
+-case "x$ac_cv_prog_cc_stdc" in
+-  x|xno) ;;
+-  *) CC="$CC $ac_cv_prog_cc_stdc" ;;
+-esac
+-])
+-
+-## --------------------------------------------------------- ##
+-## Use AC_PROG_INSTALL, supplementing it with INSTALL_SCRIPT ##
+-## substitution.                                             ##
+-## --------------------------------------------------------- ##
+-
+-AC_DEFUN(fp_PROG_INSTALL,
+-[AC_PROG_INSTALL
+-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL} -m 755'
+-AC_SUBST(INSTALL_SCRIPT)dnl
+-])
+-
+diff --git a/configure.in b/configure.in
+index 6b25ed5..a6a7f5b 100644
+--- a/configure.in
++++ b/configure.in
+@@ -103,6 +103,12 @@ nana_DEFINE(DI_MAKE_VALID_BREAKPOINT,(exprn),
+   sparc-*-*|i?86-*-*)
+     DI_MAKE_VALID_BREAKPOINT='asm("nop")'
+     ;;
++  arm*-*-*|frv-*-*|mips*-*-*)
++    DI_MAKE_VALID_BREAKPOINT='asm("nop")'
++    ;;
++  sh*-*-*)
++    DI_MAKE_VALID_BREAKPOINT='asm("nop\n\tnop\n\t")'
++    ;;
+   esac
+ ])
+ 
+@@ -113,6 +119,12 @@ nana_DEFINE(DL_MAKE_VALID_BREAKPOINT,(),
+   sparc-*-*|i?86-*-*)
+     DL_MAKE_VALID_BREAKPOINT='asm("nop")'
+     ;;
++  arm*-*-*|frv-*-*|mips*-*-*)
++    DL_MAKE_VALID_BREAKPOINT='asm("nop")'
++    ;;
++  sh*-*-*)
++    DL_MAKE_VALID_BREAKPOINT='asm("nop\n\tnop\n\t")'
++    ;;
+   esac
+ ])
+ 
+-- 
+1.8.4.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/nana/nana_2.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/nana/nana_2.5.bb
new file mode 100644
index 0000000..19a90ff
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/nana/nana_2.5.bb
@@ -0,0 +1,34 @@
+SUMMARY = "Support for assertion checking and logging in GNU C/C++"
+DESCRIPTION = "GNU Nana is a free library providing improved support for assertion\
+checking (as in assert.h) and logging (printf style debugging) in \
+GNU C and C++."
+SECTION = "Development/Languages/C and C++"
+
+SRC_URI = "http://download.savannah.gnu.org/releases/${PN}/${BP}.tar.gz \
+    file://change-mandir-to-DESTDIR.patch \
+    file://modify-acinclude.m4-and-configure.in.patch \
+"
+SRC_URI[md5sum] = "66c88aa0ad095b2e67673773135475f1"
+SRC_URI[sha256sum] = "fd1819ffea94b209513959447e4802afe2719600e7d161cd78b265a42812affa"
+
+LICENSE = "BSD-2-Clause"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=16aa57f3b7fdda870cee597275bd5d11"
+
+inherit autotools-brokensep pkgconfig
+
+EXTRA_OEMAKE = "DESTDIR=${D}"
+
+do_configure_prepend_class-nativesdk() {
+    sed -i -e 's:@CPP@:\$\{CXX\} \$\{CXXFLAGS\} \-E:g' ${S}/src/nana.in
+    sed -i -e 's:@CC@:\$\{CC\} \$\{CFLAGS\} \-E:g' ${S}/src/nana-clg.in
+    sed -i -e 's:@CXX@::g' ${S}/src/nana-c++lg.in
+    sed -i -e 's:@GDB@:\$\{GDB\}:g' ${S}/src/nana-run.in
+}
+
+do_install_prepend() {
+    install -d ${D}${mandir}/man1
+    install -d ${D}${mandir}/man3
+    install -d ${D}${datadir}/info
+}
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/nicstat/nicstat_1.95.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/nicstat/nicstat_1.95.bb
new file mode 100644
index 0000000..5126a31
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/nicstat/nicstat_1.95.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "nicstat is a Solaris and Linux command-line that prints out network \
+statistics for all network interface cards (NICs), including packets, kilobytes \
+per second, average packet sizes and more."
+HOMEPAGE = "http://nicstat.sourceforge.net"
+LICENSE = "Artistic-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b4a94da2a1f918b217ef5156634fc9e0"
+
+SRC_URI = "http://softlayer-sng.dl.sourceforge.net/project/${BPN}/${BP}.tar.gz"
+SRC_URI[md5sum] = "9a0b87bbc670c1e738e5b40c7afd184d"
+SRC_URI[sha256sum] = "c4cc33f8838f4523f27c3d7584eedbe59f4c587f0821612f5ac2201adc18b367"
+
+do_compile() {
+    ${CC} ${CFLAGS} ${LDFLAGS} -o nicstat nicstat.c
+}
+do_install() {
+    install -d ${D}/${bindir}/
+    install -d ${D}/${mandir}/
+    install -m 0755 ${S}/nicstat ${D}${bindir}/
+    install -m 0644 ${S}/nicstat.1 ${D}/${mandir}/
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-networking/0001-fix-lib64-can-not-be-shiped-in-64bit-target.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-networking/0001-fix-lib64-can-not-be-shiped-in-64bit-target.patch
new file mode 100644
index 0000000..c238200
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-networking/0001-fix-lib64-can-not-be-shiped-in-64bit-target.patch
@@ -0,0 +1,31 @@
+From 336bb5a031077461ec6b2e5438738bf100f0dd2f Mon Sep 17 00:00:00 2001
+From: Lei Maohui <leimaohui@cn.fujitsu.com>
+Date: Mon, 3 Aug 2015 02:37:46 +0900
+Subject: [PATCH] fix lib64 can not be shiped in 64bit target
+
+Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
+---
+ CMakeLists.txt | 7 -------
+ 1 file changed, 7 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 1ba3cd3..2411745 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -35,13 +35,6 @@ if (DEBUG)
+     add_definitions("-DDEBUG_ENABLED")
+ endif (DEBUG)
+ 
+-# Set LIB_SUFFIX to 64 on 64bit architectures
+-if(CMAKE_SIZEOF_VOID_P EQUAL 4)
+-    set(LIB_SUFFIX "")
+-else(CMAKE_SIZEOF_VOID_P EQUAL 4)
+-    SET(LIB_SUFFIX 64)
+-endif(CMAKE_SIZEOF_VOID_P EQUAL 4)
+-
+ # Find OpenLMIMacros when installed in other prefix than /usr (e.g. /usr/local)
+ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_INSTALL_PREFIX})
+ include(OpenLMIMacros RESULT_VARIABLE LMIMACROS)
+-- 
+1.8.4.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-networking_0.3.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-networking_0.3.1.bb
new file mode 100644
index 0000000..5442910
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-networking_0.3.1.bb
@@ -0,0 +1,30 @@
+SUMMARY = "CIM providers for network management"
+DESCRIPTION = "\
+openlmi-networking is set of CMPI providers for network management using \
+Common Information Model (CIM)."
+HOMEPAGE = "http://www.openlmi.org/"
+LICENSE = "LGPL-2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=7c13b3376cea0ce68d2d2da0a1b3a72c"
+SECTION = "System/Management"
+DEPENDS = "openlmi-providers konkretcmpi sblim-cmpi-devel cim-schema-exper networkmanager dbus libcheck glib-2.0"
+
+SRC_URI = "http://fedorahosted.org/released/${BPN}/${BP}.tar.gz \
+           file://0001-fix-lib64-can-not-be-shiped-in-64bit-target.patch \
+          "
+SRC_URI[md5sum] = "f20de8c76fb6a80001b14c1eb035953e"
+SRC_URI[sha256sum] = "578eaa5c65fe924b5d7aeb635509dd46443166cd6a88b019bc42646e3518a460"
+
+inherit cmake
+
+EXTRA_OECMAKE = "${@base_conditional("libdir", "/usr/lib64", "-DLIB_SUFFIX=64", "", d)} \
+                 ${@base_conditional("libdir", "/usr/lib32", "-DLIB_SUFFIX=32", "", d)} \
+                "
+
+
+do_configure_prepend() {
+     export CMAKE_INSTALL_DATDIR="${STAGING_DATADIR}"
+}
+
+
+FILES_${PN} =+ "${libdir}/cmpi/libcmpiLMI_Networking.so ${prefix}/libexec*"
+FILES_${PN}-dbg =+ "${libdir}/cmpi/.debug*"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-providers/0001-fix-error.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-providers/0001-fix-error.patch
new file mode 100644
index 0000000..4bcd1c4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-providers/0001-fix-error.patch
@@ -0,0 +1,26 @@
+From 764171866b84e0198b67538f63022abde3e628ad Mon Sep 17 00:00:00 2001
+From: Qian Lei <qianl.fnst@cn.fujitsu.com>
+Date: Fri, 16 Jan 2015 14:15:25 +0800
+Subject: [PATCH] fix error
+
+Signed-off-by: Qian Lei <qianl.fnst@cn.fujitsu.com>
+---
+ cmake/modules/OpenLMIMacros.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cmake/modules/OpenLMIMacros.cmake b/cmake/modules/OpenLMIMacros.cmake
+index d55f983..dbc32ec 100644
+--- a/cmake/modules/OpenLMIMacros.cmake
++++ b/cmake/modules/OpenLMIMacros.cmake
+@@ -89,7 +89,7 @@ macro(konkretcmpi_generate MOFS CIM_PROVIDERS CIM_HEADERS CIM_CLASSES)
+         endforeach(CLASS ${CIM_CLASS_NAMES})
+ 
+         # Generate headers for CIM classes
+-        set(ENV{KONKRET_SCHEMA_DIR} "/usr/share/mof/cim-current")
++        set(ENV{KONKRET_SCHEMA_DIR} "$ENV{CMAKE_INSTALL_DATDIR}/mof/cim-current")
+         execute_process(COMMAND ${KONKRETCMPI_KONKRET}
+                                 ${KONKRET_MOF_FILES}
+                                 ${GENERATE_PROVIDERS}
+-- 
+1.8.3.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-providers/0001-fix-lib64-can-not-be-shiped-in-64bit-target.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-providers/0001-fix-lib64-can-not-be-shiped-in-64bit-target.patch
new file mode 100644
index 0000000..9c8ebe4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-providers/0001-fix-lib64-can-not-be-shiped-in-64bit-target.patch
@@ -0,0 +1,31 @@
+From 7cecfa95f033b33a1c3260c214b2d0e5e81b4fd3 Mon Sep 17 00:00:00 2001
+From: Lei Maohui <leimaohui@cn.fujitsu.com>
+Date: Mon, 3 Aug 2015 02:05:56 +0900
+Subject: [PATCH] fix lib64 can not be shiped in 64bit target
+
+Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
+---
+ CMakeLists.txt | 7 -------
+ 1 file changed, 7 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 48ae206..3ead9c6 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -21,13 +21,6 @@ else(HAS_STACK_PROTECTOR_STRONG)
+     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fstack-protector")
+ endif()
+ 
+-# Set LIB_SUFFIX to 64 on 64bit architectures
+-if(CMAKE_SIZEOF_VOID_P EQUAL 4)
+-    set(LIB_SUFFIX "")
+-else(CMAKE_SIZEOF_VOID_P EQUAL 4)
+-    SET(LIB_SUFFIX 64)
+-endif(CMAKE_SIZEOF_VOID_P EQUAL 4)
+-
+ if(NOT SYSCONF_INSTALL_DIR)
+     set(SYSCONF_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/etc)
+ endif(NOT SYSCONF_INSTALL_DIR)
+-- 
+1.8.4.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-providers_0.6.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-providers_0.6.0.bb
new file mode 100644
index 0000000..6048888
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-providers_0.6.0.bb
@@ -0,0 +1,54 @@
+SUMMARY = "Set of basic CIM providers"
+DESCRIPTION = "\
+openlmi-providers is set of (usually) small CMPI providers (agents) for \
+basic monitoring and management of host system using Common Information \
+Model (CIM)."
+HOMEPAGE = "http://www.openlmi.org/"
+LICENSE = "LGPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=7c13b3376cea0ce68d2d2da0a1b3a72c"
+SECTION = "System/Management"
+DEPENDS = "konkretcmpi-native konkretcmpi sblim-sfcb sblim-cmpi-devel cim-schema-exper lmsensors libuser swig swig-native dbus udev systemd-systemctl-native pciutils"
+
+SRC_URI = "http://fedorahosted.org/released/${BPN}/${BP}.tar.gz \
+           file://0001-fix-error.patch \
+           file://0001-fix-lib64-can-not-be-shiped-in-64bit-target.patch \
+          "
+SRC_URI[md5sum] = "5904f23cf494946237cfbbdbe644a3cd"
+SRC_URI[sha256sum] = "e2b2fbeaec45a83905d0da3b87da83904d9cd94c1b86312f844587b3fff11f56"
+
+inherit cmake
+LDFLAGS_append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
+EXTRA_OECMAKE = " \
+                 -DWITH-DEVASSISTANT=OFF \
+                 -DWITH-JOURNALD=OFF \
+                 -DWITH-SERVICE=OFF \
+                 -DWITH-SERVICE-LEGACY=ON \
+                 -DWITH-ACCOUNT=OFF \
+                 -DWITH-PCP=OFF \
+                 -DWITH-REALMD=OFF \
+                 -DWITH-FAN=OFF \
+                 -DWITH-LOCALE=OFF \
+                 -DWITH-INDSENDER=OFF \
+                 -DWITH-JOBMANAGER=OFF \
+                 -DWITH-SSSD=OFF \
+                 -DWITH-SELINUX=OFF \
+                 -DWITH-SOFTWARE-DBUS=ON \
+                 ${@base_conditional("libdir", "/usr/lib64", "-DLIB_SUFFIX=64", "", d)} \
+                 ${@base_conditional("libdir", "/usr/lib32", "-DLIB_SUFFIX=32", "", d)} \
+               "
+
+do_configure_prepend() {
+    export CMAKE_INSTALL_DATDIR="${STAGING_DATADIR}"
+}
+
+do_install_append() {
+    if [ -d ${D}${prefix}${sysconfidr} ]; then
+        mv ${D}${prefix}${sysconfdir} ${D}${sysconfdir}
+    fi
+}
+
+FILES_${PN} =+ "${libdir}/cmpi/libcmpiLMI* ${prefix}/libexec*"
+FILES_${PN}-dev =+ "${datadir}/cmake*"
+FILES_${PN}-dbg =+ "${libdir}/cmpi/.debug*"
+
+RDEPENDS_${PN} = "python"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-storage_0.8.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-storage_0.8.1.bb
new file mode 100644
index 0000000..015d803
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-storage_0.8.1.bb
@@ -0,0 +1,32 @@
+SUMMARY = "CIM providers for storage management"
+DESCRIPTION = "\
+The openlmi-storage package contains CMPI providers for management of storage \
+using Common Information Managemen (CIM) protocol. \
+\
+The providers can be registered in any CMPI-aware CIMOM, both OpenPegasus and \
+SFCB were tested."
+HOMEPAGE = "http://www.openlmi.org/"
+LICENSE = "LGPL-2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+SECTION = "System/Management"
+DEPENDS = "openlmi-providers pywbem cmpi-bindings"
+RDEPENDS_${PN} += "bash"
+
+SRC_URI = "http://fedorahosted.org/released/${BPN}/${BP}.tar.gz"
+SRC_URI[md5sum] = "898cf0d8c03b8ad6b45d65f335ddee0d"
+SRC_URI[sha256sum] = "4a1ba9957750f94ea58a89cea28985564f38d7cc9aa00fcae20c51e7b32bd0a8"
+
+inherit setuptools
+
+do_install_append() {
+    install -m 755 -d ${D}${datadir}/${BPN}
+    install -m 644 ${S}/mof/* ${D}${datadir}/${BPN}/
+
+    install -m 755 -d ${D}${sysconfdir}/openlmi/storage
+    install -m 644 storage.conf ${D}${sysconfdir}/openlmi/storage/storage.conf
+
+    install -m 755 -d ${D}${libexecdir}/pegasus
+    install -m 755 pycmpiLMI_Storage-cimprovagt ${D}${libexecdir}/pegasus/
+}
+
+FILES_${PN} =+ "${sysconfdir}/openlmi/storage/storage.conf ${datadir}/${BPN}/*"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-tools_0.10.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-tools_0.10.5.bb
new file mode 100644
index 0000000..b23869d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/openlmi/openlmi-tools_0.10.5.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Set of CLI tools for Openlmi providers"
+DESCRIPTION = "openlmi-tools is a set of command line tools for Openlmi providers."
+HOMEPAGE = "http://www.openlmi.org/"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=75859989545e37968a99b631ef42722e"
+SECTION = "System/Management"
+
+inherit setuptools
+
+DEPENDS = "python-native pywbem-native python-m2crypto pywbem"
+
+SRC_URI = "http://fedorahosted.org/released/${BPN}/${BP}.tar.gz \
+          "
+SRC_URI[md5sum] = "e156246cb7b49753db82f4ddf7f03e50"
+SRC_URI[sha256sum] = "292b8f5f2250655a4add8183c529b73358bc980bd4f23cfa484a940953fce9e4"
+
+do_compile_prepend() {
+    cd cli
+    sed 's/@@VERSION@@/$(VERSION)/g' setup.py.skel >setup.py
+}
+do_install_prepend() {
+    cd cli
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman/libssl-is-required-if-eventint-supported.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman/libssl-is-required-if-eventint-supported.patch
new file mode 100644
index 0000000..bd540e3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman/libssl-is-required-if-eventint-supported.patch
@@ -0,0 +1,17 @@
+libssl is required by wsman_client_transport if ENABLE_EVENTING_SUPPORT enabled.
+
+Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
+
+diff -Nurp openwsman-2.4.12.orig/src/lib/CMakeLists.txt openwsman-2.4.12/src/lib/CMakeLists.txt
+--- openwsman-2.4.12.orig/src/lib/CMakeLists.txt	2014-10-28 23:04:47.000000000 +0800
++++ openwsman-2.4.12/src/lib/CMakeLists.txt	2014-12-31 11:09:20.340428523 +0800
+@@ -56,6 +56,9 @@ TARGET_LINK_LIBRARIES( ${WSMAN_CLIENT_TR
+ SET_TARGET_PROPERTIES( ${WSMAN_CLIENT_TRANSPORT_PKG} PROPERTIES VERSION 1.0.0 SOVERSION 1)
+ INSTALL(TARGETS ${WSMAN_CLIENT_TRANSPORT_PKG} DESTINATION ${LIB_INSTALL_DIR})
+ 
++IF( ENABLE_EVENTING_SUPPORT )
++TARGET_LINK_LIBRARIES( ${WSMAN_CLIENT_TRANSPORT_PKG} ${OPENSSL_LIBRARIES} )
++ENDIF( ENABLE_EVENTING_SUPPORT )
+ 
+ ############### wsman_client ###############
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman/openwsmand.service b/import-layers/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman/openwsmand.service
new file mode 100644
index 0000000..154f3cd
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman/openwsmand.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Openwsman WS-Management Service
+After=syslog.target
+
+[Service]
+Type=forking
+ExecStart=@SBINDIR@/openwsmand
+ExecStartPre=@SYSCONFDIR@/openwsman/owsmangencert.sh
+PIDFile=@LOCALSTATEDIR@/run/wsmand.pid
+
+[Install]
+WantedBy=multi-user.target
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.2.bb
new file mode 100644
index 0000000..52b271c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.2.bb
@@ -0,0 +1,67 @@
+SUMMARY = "Opensource Implementation of WS-Management"
+DESCRIPTION = "Openwsman is a project intended to provide an open-source \
+implementation of the Web Services Management specipication \
+(WS-Management) and to expose system management information on the \
+Linux operating system using the WS-Management protocol. WS-Management \
+is based on a suite of web services specifications and usage \
+requirements that exposes a set of operations focused on and covers \
+all system management aspects. \
+Openwsman Server and service libraries"
+HOMEPAGE = "http://www.openwsman.org/"
+SECTION = "Applications/System"
+
+DEPENDS = "curl libxml2 openssl libpam"
+
+SRCREV = "ed7a119e036c53078d70fd85936d94dc9b9b98be"
+PV = "2.6.2"
+
+SRC_URI = "git://github.com/Openwsman/openwsman.git;protocol=http \
+           file://libssl-is-required-if-eventint-supported.patch \
+           file://openwsmand.service"
+
+S = "${WORKDIR}/git"
+
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d4f53d4c6cf73b9d43186ce3be6dd0ba"
+
+inherit systemd cmake pkgconfig pythonnative perlnative
+
+SYSTEMD_SERVICE_${PN} = "openwsmand.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+LDFLAGS_append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', " -fuse-ld=bfd ", '', d)}"
+
+EXTRA_OECMAKE = "-DBUILD_BINDINGS=NO \
+                 -DBUILD_LIBCIM=NO \
+                 -DBUILD_PERL=YES \
+                 -DCMAKE_INSTALL_PREFIX=${prefix} \
+                 -DLIB=${baselib} \
+                "
+
+do_configure_prepend() {
+    export HOST_SYS=${HOST_SYS}
+    export BUILD_SYS=${BUILD_SYS}
+    export STAGING_INCDIR=${STAGING_INCDIR}
+    export STAGING_LIBDIR=${STAGING_LIBDIR}
+}
+
+do_install_append() {
+    install -d ${D}/${sysconfdir}/init.d
+    install -m 755 ${B}/etc/init/openwsmand.sh ${D}/${sysconfdir}/init.d/openwsmand
+    ln -sf ${sysconfdir}/init.d/openwsmand ${D}/${sbindir}/rcopenwsmand
+    chmod 755 ${D}/${sysconfdir}/openwsman/owsmangencert.sh
+    if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+        install -d ${D}/${systemd_unitdir}/system
+        install -m 644 ${WORKDIR}/openwsmand.service ${D}/${systemd_unitdir}/system
+
+        sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/openwsmand.service
+        sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' ${D}${systemd_unitdir}/system/openwsmand.service
+        sed -i -e 's,@LOCALSTATEDIR@,${localstatedir},g' ${D}${systemd_unitdir}/system/openwsmand.service
+    fi
+}
+
+FILES_${PN}-dbg += "${libdir}/openwsman/plugins/.debug/ \
+                    ${libdir}/openwsman/authenticators/.debug/ \
+                   "
+
+INSANE_SKIP_${PN} = "dev-so"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/p7zip/files/do_not_override_compiler_and_do_not_strip.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/p7zip/files/do_not_override_compiler_and_do_not_strip.patch
new file mode 100644
index 0000000..a3b02c5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/p7zip/files/do_not_override_compiler_and_do_not_strip.patch
@@ -0,0 +1,31 @@
+do not override compiler and do not strip
+
+The default makefile sets the compiler to g++ or gcc. This leads to a wrong architecture when cross-compiling.
+Remove the hardcoded compiler and just append the flags to CXX and CC.
+
+Upstream-Status: Pending
+Signed-off-by: Raphael Freudiger <raphael.freudiger@siemens.com>
+Reviewed-By: Pascal Bach <pascal.bach@siemens.com>
+
+Index: p7zip_9.20.1/makefile.machine
+=====================================================================
+--- p7zip_9.20.1/makefile.machine	2011-03-13 12:54:57.000000000 +0100
++++ p7zip_9.20.1/makefile.machine	2015-02-03 08:39:44.427696944 +0100
+@@ -4,14 +4,14 @@
+ 
+ OPTFLAGS=-O
+ 
+-ALLFLAGS=${OPTFLAGS} -pipe -s \
++ALLFLAGS=${OPTFLAGS} -pipe \
+     	-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \
+ 	-DNDEBUG -D_REENTRANT -DENV_UNIX \
+ 	-D_7ZIP_LARGE_PAGES \
+ 	$(LOCAL_FLAGS)
+ 
+-CXX=g++ $(ALLFLAGS)
+-CC=gcc $(ALLFLAGS)
++CXX+=$(ALLFLAGS)
++CC+=$(ALLFLAGS)
+ CC_SHARED=-fPIC
+ LINK_SHARED=-fPIC -shared
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/p7zip/p7zip_9.20.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/p7zip/p7zip_9.20.1.bb
new file mode 100644
index 0000000..b89fc42
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/p7zip/p7zip_9.20.1.bb
@@ -0,0 +1,35 @@
+SUMMARY = "7-zip is a commandline utility handling 7z archives."
+HOMEPAGE = "http://www.7-zip.org/"
+LICENSE = "LGPL-2.1+ & unRAR"
+LIC_FILES_CHKSUM = "file://DOCS/copying.txt;md5=ecfc54c9e37b63ac58900061ce2eab5a \
+                    file://DOCS/unRarLicense.txt;md5=9c87ddde469ef94aed153b0951d088de"
+
+SRC_URI = "http://downloads.sourceforge.net/p7zip/p7zip/${PV}/p7zip_${PV}_src_all.tar.bz2 \
+          file://do_not_override_compiler_and_do_not_strip.patch"
+SRC_URI[md5sum] = "bd6caaea567dc0d995c990c5cc883c89"
+SRC_URI[sha256sum] = "49557e7ffca08100f9fc687f4dfc5aea703ca207640c76d9dee7b66f03cb4782"
+
+S = "${WORKDIR}/${BPN}_${PV}"
+
+do_install() {
+    install -d ${D}${bindir}
+    install -m 0755 ${S}/bin/* ${D}${bindir}
+}
+
+# all3: to build bin/7za, bin/7z (with its plugins), bin/7zr and bin/7zCon.sfx
+EXTRA_OEMAKE_class-native = "all3"
+
+do_install_class-native() {
+    install -d ${D}${bindir}
+    install -d ${D}${bindir}/Codecs
+    install -m 0755 ${S}/bin/7* ${D}${bindir}
+    install -m 0755 ${S}/bin/Codecs/* ${D}${bindir}/Codecs
+
+    # Create a shell script wrapper to execute next to 7z.so
+    mv ${D}${bindir}/7z ${D}${bindir}/7z.bin
+    echo "#! /bin/sh" > ${D}${bindir}/7z
+    echo "exec ${D}${bindir}/7z.bin \"\$@\"" >> ${D}${bindir}/7z
+    chmod 0755 ${D}${bindir}/7z
+}
+
+BBCLASSEXTEND += "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/files/50-org.freedesktop.NetworkManager.rules b/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/files/50-org.freedesktop.NetworkManager.rules
new file mode 100644
index 0000000..4b50cf8
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/files/50-org.freedesktop.NetworkManager.rules
@@ -0,0 +1,8 @@
+/* give group 'network' rights to change settings */
+/* taken from https://wiki.archlinux.org/index.php/NetworkManager#Set_up_PolicyKit_permissions */
+
+polkit.addRule(function(action, subject) {
+  if (action.id.indexOf("org.freedesktop.NetworkManager.") == 0 && subject.isInGroup("network")) {
+    return polkit.Result.YES;
+  }
+});
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/files/50-org.freedesktop.timedate1.rules b/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/files/50-org.freedesktop.timedate1.rules
new file mode 100644
index 0000000..95b0e0f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/files/50-org.freedesktop.timedate1.rules
@@ -0,0 +1,8 @@
+/* give group 'datetime' rights to change settings */
+/* based upon http://lists.freedesktop.org/archives/systemd-devel/2013-March/009576.html */
+
+polkit.addRule(function(action, subject) {
+  if (action.id.indexOf("org.freedesktop.timedate1.") == 0 && subject.isInGroup("datetime")) {
+    return polkit.Result.YES;
+  }
+});
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/files/gtk-doc-check.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/files/gtk-doc-check.patch
new file mode 100644
index 0000000..4b6ad75
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/files/gtk-doc-check.patch
@@ -0,0 +1,12 @@
+--- polkit-gnome-0.105/configure.ac.org	2015-05-04 22:33:03.925977953 -0700
++++ polkit-gnome-0.105/configure.ac	2015-05-04 22:33:16.862288030 -0700
+@@ -120,6 +120,9 @@
+ # Check for required packages
+ # ***************************
+ 
++# check for gtk-doc
++GTK_DOC_CHECK([1.14],[--flavour no-tmpl])
++
+ POLKIT_AGENT_REQUIRED=0.97
+ POLKIT_GOBJECT_REQUIRED=0.97
+ GTK_REQUIRED=3.0.0
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit-gnome_0.105.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit-gnome_0.105.bb
new file mode 100644
index 0000000..8e99731
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit-gnome_0.105.bb
@@ -0,0 +1,26 @@
+SUMMARY = "GNOME Authentication Agent for PolicyKit"
+DESCRIPTION = "PolicyKit-gnome provides an Authentication Agent for PolicyKit that integrates well with the GNOME desktop environment"
+HOMEPAGE = "http://www.packagekit.org/"
+BUGTRACKER = "http://bugzilla.gnome.org/"
+DEPENDS = "polkit dbus-glib gconf gtk+ intltool-native gnome-common"
+LICENSE = "LGPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=74579fab173e4c5e12aac0cd83ee98ec \
+                    file://src/main.c;beginline=1;endline=20;md5=aba145d1802f2329ba561e3e48ecb795"
+
+SRC_URI = "https://download.gnome.org/sources/polkit-gnome/${PV}/polkit-gnome-${PV}.tar.xz \
+           file://gtk-doc-check.patch \
+"
+SRC_URI[md5sum] = "50ecad37c8342fb4a52f590db7530621"
+SRC_URI[sha256sum] = "1784494963b8bf9a00eedc6cd3a2868fb123b8a5e516e66c5eda48df17ab9369"
+
+EXTRA_OECONF = "\
+    --disable-static \
+"
+
+DEPENDS += "gtk+3"
+
+inherit autotools gtk-doc pkgconfig
+
+FILES_${PN} += " ${datadir}/dbus-1 \
+                 ${datadir}/PolicyKit \
+"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit-group-rule-datetime.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit-group-rule-datetime.bb
new file mode 100644
index 0000000..eced4b6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit-group-rule-datetime.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "Create usergroup datetime. All members off this group are allowed set date/time/timezone via system dbus"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690"
+
+require polkit-group-rule.inc
+
+SRC_URI = "file://50-org.freedesktop.timedate1.rules"
+
+do_install() {
+        install -m 0755 ${WORKDIR}/50-org.freedesktop.timedate1.rules ${D}${sysconfdir}/polkit-1/rules.d
+}
+
+USERADD_PACKAGES = "${PN}"
+GROUPADD_PARAM_${PN} = "--system datetime"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit-group-rule-network.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit-group-rule-network.bb
new file mode 100644
index 0000000..551ed3e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit-group-rule-network.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "Create usergroup network. All members off this group are allowed to modify networkmanager settings"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690"
+
+require polkit-group-rule.inc
+
+SRC_URI = "file://50-org.freedesktop.NetworkManager.rules"
+
+do_install() {
+        install -m 0755 ${WORKDIR}/50-org.freedesktop.NetworkManager.rules ${D}${sysconfdir}/polkit-1/rules.d
+}
+
+USERADD_PACKAGES = "${PN}"
+GROUPADD_PARAM_${PN} = "--system network"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit-group-rule.inc b/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit-group-rule.inc
new file mode 100644
index 0000000..b727d00
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit-group-rule.inc
@@ -0,0 +1,10 @@
+# polkit must prepare polkid group
+DEPENDS += "polkit"
+
+inherit useradd
+
+do_install_prepend() {
+    install -m 700 -d ${D}${sysconfdir}/polkit-1/rules.d
+    chown polkitd:polkitd ${D}${sysconfdir}/polkit-1/rules.d
+}
+USERADD_PARAM_${PN}_prepend = "--system --no-create-home --user-group --home-dir ${sysconfdir}/polkit-1 polkitd;"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit/0001-make-netgroup-support-configurable.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit/0001-make-netgroup-support-configurable.patch
new file mode 100644
index 0000000..4e3af87
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit/0001-make-netgroup-support-configurable.patch
@@ -0,0 +1,107 @@
+From 7d5e205aa58a10e7b1ccc2fa75b443508a5c3e18 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 20 Jan 2016 04:31:59 +0000
+Subject: [PATCH] make netgroup support configurable
+
+Disable using innetgr and *netigrent function if not available
+
+These functions are not available on all libc implementations e.g. musl
+doesnt have them.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ configure.ac                                          | 2 +-
+ src/polkitbackend/polkitbackendinteractiveauthority.c | 6 +++++-
+ src/polkitbackend/polkitbackendjsauthority.c          | 5 ++---
+ 3 files changed, 8 insertions(+), 5 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 07982d1..21590b2 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -158,7 +158,7 @@ AC_CHECK_LIB(expat,XML_ParserCreate,[EXPAT_LIBS="-lexpat"],
+ 	     [AC_MSG_ERROR([Can't find expat library. Please install expat.])])
+ AC_SUBST(EXPAT_LIBS)
+ 
+-AC_CHECK_FUNCS(clearenv fdatasync)
++AC_CHECK_FUNCS(clearenv fdatasync getnetgrent innetgr)
+ 
+ if test "x$GCC" = "xyes"; then
+   LDFLAGS="-Wl,--as-needed $LDFLAGS"
+diff --git a/src/polkitbackend/polkitbackendinteractiveauthority.c b/src/polkitbackend/polkitbackendinteractiveauthority.c
+index 7019356..cf39d77 100644
+--- a/src/polkitbackend/polkitbackendinteractiveauthority.c
++++ b/src/polkitbackend/polkitbackendinteractiveauthority.c
+@@ -2213,7 +2213,7 @@ get_users_in_group (PolkitIdentity                    *group,
+  out:
+   return ret;
+ }
+-
++#if defined HAVE_GETNETGRENT
+ static GList *
+ get_users_in_net_group (PolkitIdentity                    *group,
+                         gboolean                           include_root)
+@@ -2270,6 +2270,8 @@ get_users_in_net_group (PolkitIdentity                    *group,
+   return ret;
+ }
+ 
++#endif
++
+ /* ---------------------------------------------------------------------------------------------------- */
+ 
+ static void
+@@ -2355,10 +2357,12 @@ authentication_agent_initiate_challenge (AuthenticationAgent         *agent,
+         {
+           user_identities = g_list_concat (user_identities, get_users_in_group (identity, FALSE));
+         }
++#if defined HAVE_GETNETGRENT
+       else if (POLKIT_IS_UNIX_NETGROUP (identity))
+         {
+           user_identities =  g_list_concat (user_identities, get_users_in_net_group (identity, FALSE));
+         }
++#endif
+       else
+         {
+           g_warning ("Unsupported identity");
+diff --git a/src/polkitbackend/polkitbackendjsauthority.c b/src/polkitbackend/polkitbackendjsauthority.c
+index 097dcc5..e59b3f7 100644
+--- a/src/polkitbackend/polkitbackendjsauthority.c
++++ b/src/polkitbackend/polkitbackendjsauthority.c
+@@ -1498,7 +1498,6 @@ js_polkit_spawn (JSContext  *cx,
+ 
+ /* ---------------------------------------------------------------------------------------------------- */
+ 
+-
+ static JSBool
+ js_polkit_user_is_in_netgroup (JSContext  *cx,
+                                unsigned    argc,
+@@ -1518,6 +1517,7 @@ js_polkit_user_is_in_netgroup (JSContext  *cx,
+   user = JS_EncodeString (cx, user_str);
+   netgroup = JS_EncodeString (cx, netgroup_str);
+ 
++#if defined HAVE_INNETGR
+   if (innetgr (netgroup,
+                NULL,  /* host */
+                user,
+@@ -1525,6 +1525,7 @@ js_polkit_user_is_in_netgroup (JSContext  *cx,
+     {
+       is_in_netgroup =  JS_TRUE;
+     }
++#endif
+ 
+   JS_free (cx, netgroup);
+   JS_free (cx, user);
+@@ -1536,8 +1537,6 @@ js_polkit_user_is_in_netgroup (JSContext  *cx,
+   return ret;
+ }
+ 
+-
+-
+ /* ---------------------------------------------------------------------------------------------------- */
+ 
+ typedef struct
+-- 
+2.7.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit/polkit-1_pam.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit/polkit-1_pam.patch
new file mode 100644
index 0000000..74647ef
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit/polkit-1_pam.patch
@@ -0,0 +1,23 @@
+polkit: No system-auth in OE-Core, we can use common-* in place of it.
+
+Upstream-Status:Inappropriate [configuration]
+
+Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
+
+--- a/configure.ac	2011-03-04 02:26:20.000000000 +0800
++++ b/configure.ac.new	2011-07-18 10:14:12.516818852 +0800
+@@ -350,10 +350,10 @@
+     PAM_FILE_INCLUDE_PASSWORD=system
+     PAM_FILE_INCLUDE_SESSION=system
+ else
+-   PAM_FILE_INCLUDE_AUTH=system-auth
+-   PAM_FILE_INCLUDE_ACCOUNT=system-auth
+-   PAM_FILE_INCLUDE_PASSWORD=system-auth
+-   PAM_FILE_INCLUDE_SESSION=system-auth
++   PAM_FILE_INCLUDE_AUTH=common-auth
++   PAM_FILE_INCLUDE_ACCOUNT=common-account
++   PAM_FILE_INCLUDE_PASSWORD=common-password
++   PAM_FILE_INCLUDE_SESSION=common-session
+ fi
+ 
+ AC_SUBST(PAM_FILE_INCLUDE_AUTH)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit_0.113.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit_0.113.bb
new file mode 100644
index 0000000..fdd198a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/polkit/polkit_0.113.bb
@@ -0,0 +1,49 @@
+SUMMARY = "PolicyKit Authorization Framework"
+DESCRIPTION = "The polkit package is an application-level toolkit for defining and handling the policy that allows unprivileged processes to speak to privileged processes."
+HOMEPAGE = "http://www.freedesktop.org/wiki/Software/polkit"
+LICENSE = "LGPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=155db86cdbafa7532b41f390409283eb \
+                    file://src/polkit/polkit.h;beginline=1;endline=20;md5=0a8630b0133176d0504c87a0ded39db4"
+
+DEPENDS = "expat glib-2.0 intltool-native mozjs"
+
+inherit autotools gtk-doc pkgconfig useradd systemd gobject-introspection
+
+PACKAGECONFIG = "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)} \
+                 ${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','consolekit',d)}"
+
+PACKAGECONFIG[pam] = "--with-authfw=pam,--with-authfw=shadow,libpam,libpam"
+PACKAGECONFIG[systemd] = "--enable-libsystemd-login=yes --with-systemdsystemunitdir=${systemd_unitdir}/system/,--enable-libsystemd-login=no --with-systemdsystemunitdir=,systemd"
+# there is no --enable/--disable option for consolekit and it's not picked by shlibs, so add it to RDEPENDS
+PACKAGECONFIG[consolekit] = ",,,consolekit"
+
+PAM_SRC_URI = "file://polkit-1_pam.patch"
+SRC_URI = "http://www.freedesktop.org/software/polkit/releases/polkit-${PV}.tar.gz \
+           file://0001-make-netgroup-support-configurable.patch \
+           ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \
+"
+SRC_URI[md5sum] = "4b77776c9e4f897dcfe03b2c34198edf"
+SRC_URI[sha256sum] = "e1c095093c654951f78f8618d427faf91cf62abdefed98de40ff65eca6413c81"
+
+EXTRA_OECONF = "--with-os-type=moblin --disable-man-pages"
+
+do_compile_prepend () {
+	export GIR_EXTRA_LIBS_PATH="${B}/src/polkit/.libs"
+}
+
+PACKAGES =+ "${PN}-examples"
+
+FILES_${PN}_append = " \
+    ${libdir}/${BPN}-1 \
+    ${nonarch_libdir}/${BPN}-1 \
+    ${datadir}/dbus-1 \
+    ${datadir}/${BPN}-1 \
+"
+
+FILES_${PN}-examples = "${bindir}/*example*"
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM_${PN} = "--system --no-create-home --user-group --home-dir ${sysconfdir}/${BPN}-1 polkitd"
+
+SYSTEMD_SERVICE_${PN} = "${BPN}.service"
+SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/pywbem/pywbem_0.8.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/pywbem/pywbem_0.8.0.bb
new file mode 100644
index 0000000..2f9a5bd
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/pywbem/pywbem_0.8.0.bb
@@ -0,0 +1,36 @@
+SUMMARY = "Python WBEM Client and Provider Interface"
+DESCRIPTION = "\
+A Python library for making CIM (Common Information Model) operations over \
+HTTP using the WBEM CIM-XML protocol. It is based on the idea that a good \
+WBEM client should be easy to use and not necessarily require a large amount \
+of programming knowledge. It is suitable for a large range of tasks from \
+simply poking around to writing web and GUI applications. \
+\
+WBEM, or Web Based Enterprise Management is a manageability protocol, like \
+SNMP, standardised by the Distributed Management Task Force (DMTF) available \
+at http://www.dmtf.org/standards/wbem. \
+\
+It also provides a Python provider interface, and is the fastest and easiest \
+way to write providers on the planet."
+HOMEPAGE = "http://pywbem.sf.net/"
+LICENSE = "LGPLv2"
+LIC_FILES_CHKSUM = "file://pywbem/LICENSE.txt;md5=fbc093901857fcd118f065f900982c24"
+SECTION = "Development/Libraries"
+DEPENDS = "python-m2crypto-native"
+SRC_URI = "http://jaist.dl.sourceforge.net/project/${BPN}/${BPN}/${BP}/${BP}-dev.r704.zip"
+SRC_URI[md5sum] = "84072451dcdd1aa9ee82363848faf7ad"
+SRC_URI[sha256sum] = "898035866d3cc741bbcd62c4ac26e633ad07b7c11d89db2472b9f923f3fd3ed8"
+
+S = "${WORKDIR}/${BP}-dev"
+
+inherit setuptools python-dir
+
+do_install_append() {
+    mv ${D}${bindir}/wbemcli.py ${D}${bindir}/pywbemcli
+    mv ${D}${bindir}/mof_compiler.py ${D}${bindir}/mofcomp
+
+    rm ${D}${libdir}/python2.7/site-packages/${BPN}/wbemcli.py*
+    rm ${D}${libdir}/python2.7/site-packages/${BPN}/mof_compiler.py*
+}
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/rarpd/rarpd/0001-rarpd.8-add-man-file.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/rarpd/rarpd/0001-rarpd.8-add-man-file.patch
new file mode 100644
index 0000000..77c75b4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/rarpd/rarpd/0001-rarpd.8-add-man-file.patch
@@ -0,0 +1,89 @@
+From d91161eb163c16408202a91b4325a3381ab33752 Mon Sep 17 00:00:00 2001
+From: Li xin <lixin.fnst@cn.fujitsu.com>
+Date: Tue, 18 Nov 2014 17:55:31 +0900
+Subject: [PATCH 1/5] rarpd.8 : add man file
+
+Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
+---
+ rarpd.8 | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 69 insertions(+)
+ create mode 100644 rarpd.8
+
+diff --git a/rarpd.8 b/rarpd.8
+new file mode 100644
+index 0000000..ce7bd70
+--- /dev/null
++++ b/rarpd.8
+@@ -0,0 +1,69 @@
++.TH RARP 8 "7 April 2000" "rarpd" "Linux Programmer's Manual"
++.SH NAME
++rarpd \- Reverse Address Resolution Protocol (RARP) daemon
++.SH SYNOPSIS
++.B "rarpd [-aAvde] [-b bootdir ] [ interface ]"
++.SH DESCRIPTION
++.B Rarpd
++is a daemon which responds to RARP requests.
++RARP is used by some machines at boot time to discover their IP address.
++They provide their Ethernet address and
++.B rarpd
++responds with their IP address if it finds it in the ethers database
++(either
++.I /etc/ethers
++file or NIS+ lookup) and using DNS lookup if ethers database
++contains a hostname and not an IP address.
++By default
++.B rarpd
++also checks if a bootable image with a name starting with the IP address
++in hexadecimal uppercase letters is present in the TFTP boot directory
++(usually
++.I /tftpboot
++) before it decides to respond to the RARP request.
++.SH OPTIONS
++.TP
++.B \-a
++Do not bind to the interface.
++.TP
++.B \-A
++Respond to ARP as well as RARP requests.
++.TP
++.B \-v
++Tell the user what is going on by being verbose.
++.TP
++.B \-d
++Debugging mode. Do not detach from the tty.
++.TP
++.B \-e
++Skip the check for bootable image in the TFTP boot directory. If not
++present, then even if the Ethernet address is present in
++the ethers database but the bootable image for the resolved IP does not exist,
++.B rarpd
++will not respond to the request.
++.TP
++.B "\-b bootdir"
++Use
++.I bootdir
++instead of the default
++.I /tftpboot
++as the TFTP boot directory for bootable image checks.
++.SH OBSOLETES
++This
++.B rarpd
++obsoletes kernel
++.B rarp
++daemon present in Linux kernels up to 2.2 which was controlled by the
++rarp(8) command.
++.SH FILES
++.I /etc/ethers,
++.br
++.I /etc/nsswitch.conf,
++.br
++.I /tftpboot
++.SH SEE ALSO
++ethers(5)
++.SH AUTHORS
++Alexey Kuznetsov, <kuznet@ms2.inr.ac.ru>
++.br
++Jakub Jelinek, <jakub@redhat.com>
+-- 
+1.8.4.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/rarpd/rarpd/0002-Makefile-modify-compile-parameters.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/rarpd/rarpd/0002-Makefile-modify-compile-parameters.patch
new file mode 100644
index 0000000..0b3ebc4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/rarpd/rarpd/0002-Makefile-modify-compile-parameters.patch
@@ -0,0 +1,26 @@
+From d23b13bd959204824070433d954c5dfbfc421bb7 Mon Sep 17 00:00:00 2001
+From: Li xin <lixin.fnst@cn.fujitsu.com>
+Date: Tue, 18 Nov 2014 18:05:27 +0900
+Subject: [PATCH 2/5] Makefile : modify compile parameters
+
+Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index 19966b4..86a8169 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,7 +1,7 @@
+ CC=gcc
+ CFLAGS=-O2 -Wall -g $(DEFINES)
+ 
+-OBJ=rarpd.o ethernet.o
++OBJ=rarpd.o
+ 
+ all: rarpd
+ 
+-- 
+1.8.4.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/rarpd/rarpd/0003-rarpd.c-bug-fix.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/rarpd/rarpd/0003-rarpd.c-bug-fix.patch
new file mode 100644
index 0000000..7ce1279
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/rarpd/rarpd/0003-rarpd.c-bug-fix.patch
@@ -0,0 +1,263 @@
+From b49c8e6e66801406520d1bff791c66dff7b1cddb Mon Sep 17 00:00:00 2001
+From: Li xin <lixin.fnst@cn.fujitsu.com>
+Date: Tue, 18 Nov 2014 18:10:20 +0900
+Subject: [PATCH 3/5] rarpd.c : bug fix
+
+Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
+---
+ rarpd.c | 98 +++++++++++++++++++++++++++++++++++++----------------------------
+ 1 file changed, 56 insertions(+), 42 deletions(-)
+
+diff --git a/rarpd.c b/rarpd.c
+index 335d2d2..d45300e 100644
+--- a/rarpd.c
++++ b/rarpd.c
+@@ -7,9 +7,11 @@
+  *		2 of the License, or (at your option) any later version.
+  *
+  * Authors:	Alexey Kuznetsov, <kuznet@ms2.inr.ac.ru>
++ *		Jakub Jelinek, <jakub@redhat.com>
+  */
+ 
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <syslog.h>
+ #include <dirent.h>
+ #include <malloc.h>
+@@ -26,6 +28,8 @@
+ #include <net/if.h>
+ #include <net/if_arp.h>
+ #include <netinet/in.h>
++#include <netinet/ether.h>
++#include <asm/types.h>
+ #include <linux/if_packet.h>
+ #include <linux/filter.h>
+ 
+@@ -39,27 +43,26 @@ int only_ethers;
+ int all_ifaces;
+ int listen_arp;
+ char *ifname;
+-char *tftp_dir = "/etc/tftpboot";
++char *tftp_dir = "/tftpboot";
+ 
+-extern int ether_ntohost(char *name, unsigned char *ea);
+ void usage(void) __attribute__((noreturn));
+ 
+-struct iflink
++struct rarpiflink
+ {
+-	struct iflink	*next;
+-	int	       	index;
+-	int		hatype;
+-	unsigned char	lladdr[16];
+-	unsigned char	name[IFNAMSIZ];
+-	struct ifaddr 	*ifa_list;
++	struct rarpiflink	*next;
++	int	       		index;
++	int			hatype;
++	unsigned char		lladdr[16];
++	unsigned char		name[IFNAMSIZ];
++	struct rarpifaddr 	*ifa_list;
+ } *ifl_list;
+ 
+-struct ifaddr
++struct rarpifaddr
+ {
+-	struct ifaddr 	*next;
+-	__u32		prefix;
+-	__u32		mask;
+-	__u32		local;
++	struct rarpifaddr 	*next;
++	__u32			prefix;
++	__u32			mask;
++	__u32			local;
+ };
+ 
+ struct rarp_map
+@@ -87,8 +90,8 @@ void load_if()
+ {
+ 	int fd;
+ 	struct ifreq *ifrp, *ifend;
+-	struct iflink *ifl;
+-	struct ifaddr *ifa;
++	struct rarpiflink *ifl;
++	struct rarpifaddr *ifa;
+ 	struct ifconf ifc;
+ 	struct ifreq ibuf[256];
+ 
+@@ -144,7 +147,7 @@ void load_if()
+ 				continue;
+ 			}
+ 
+-			ifl = (struct iflink*)malloc(sizeof(*ifl));
++			ifl = (struct rarpiflink*)malloc(sizeof(*ifl));
+ 			if (ifl == NULL)
+ 				continue;
+ 			memset(ifl, 0, sizeof(*ifl));
+@@ -154,6 +157,7 @@ void load_if()
+ 			ifl->hatype = ifrp->ifr_hwaddr.sa_family;
+ 			memcpy(ifl->lladdr, ifrp->ifr_hwaddr.sa_data, 14);
+ 			strncpy(ifl->name, ifrp->ifr_name, IFNAMSIZ);
++			ifl->name[IFNAMSIZ-1] = 0;
+ 			p = strchr(ifl->name, ':');
+ 			if (p)
+ 				*p = 0;
+@@ -179,7 +183,7 @@ void load_if()
+ 		if (ifa == NULL) {
+ 			if (mask == 0 || prefix == 0)
+ 				continue;
+-			ifa = (struct ifaddr*)malloc(sizeof(*ifa));
++			ifa = (struct rarpifaddr*)malloc(sizeof(*ifa));
+ 			memset(ifa, 0, sizeof(*ifa));
+ 			ifa->local = addr;
+ 			ifa->prefix = prefix;
+@@ -207,6 +211,7 @@ void load_if()
+ 			}
+ 		}
+ 	}
++	close(fd);
+ }
+ 
+ void configure()
+@@ -225,20 +230,21 @@ int bootable(__u32 addr)
+ 	d = opendir(tftp_dir);
+ 	if (d == NULL) {
+ 		syslog(LOG_ERR, "opendir: %m");
+-		return 0;
++		goto done_bootable;
+ 	}
+ 	while ((dent = readdir(d)) != NULL) {
+ 		if (strncmp(dent->d_name, name, 8) == 0)
+ 			break;
+ 	}
++done_bootable:
+ 	closedir(d);
+ 	return dent != NULL;
+ }
+ 
+-struct ifaddr *select_ipaddr(int ifindex, __u32 *sel_addr, __u32 **alist)
++struct rarpifaddr *select_ipaddr(int ifindex, __u32 *sel_addr, __u32 **alist)
+ {
+-	struct iflink *ifl;
+-	struct ifaddr *ifa;
++	struct rarpiflink *ifl;
++	struct rarpifaddr *ifa;
+ 	int retry = 0;
+ 	int i;
+ 
+@@ -294,7 +300,7 @@ struct rarp_map *rarp_lookup(int ifindex, int hatype,
+ 
+ 	if (r == NULL) {
+ 		if (hatype == ARPHRD_ETHER && halen == 6) {
+-			struct ifaddr *ifa;
++			struct rarpifaddr *ifa;
+ 			struct hostent *hp;
+ 			char ename[256];
+ 			static struct rarp_map emap = {
+@@ -304,7 +310,7 @@ struct rarp_map *rarp_lookup(int ifindex, int hatype,
+ 				6,
+ 			};
+ 
+-			if (ether_ntohost(ename, lladdr) != 0 ||
++			if (ether_ntohost(ename, (struct ether_addr *)lladdr) != 0 ||
+ 			    (hp = gethostbyname(ename)) == NULL) {
+ 				if (verbose)
+ 					syslog(LOG_INFO, "not found in /etc/ethers");
+@@ -345,7 +351,7 @@ static int load_arp_bpflet(int fd)
+ 
+ int put_mylladdr(unsigned char **ptr_p, int ifindex, int alen)
+ {
+-	struct iflink *ifl;
++	struct rarpiflink *ifl;
+ 
+ 	for (ifl=ifl_list; ifl; ifl = ifl->next)
+ 		if (ifl->index == ifindex)
+@@ -362,8 +368,8 @@ int put_mylladdr(unsigned char **ptr_p, int ifindex, int alen)
+ int put_myipaddr(unsigned char **ptr_p, int ifindex, __u32 hisipaddr)
+ {
+ 	__u32 laddr = 0;
+-	struct iflink *ifl;
+-	struct ifaddr *ifa;
++	struct rarpiflink *ifl;
++	struct rarpifaddr *ifa;
+ 
+ 	for (ifl=ifl_list; ifl; ifl = ifl->next)
+ 		if (ifl->index == ifindex)
+@@ -388,7 +394,7 @@ void arp_advise(int ifindex, unsigned char *lladdr, int lllen, __u32 ipaddr)
+ 	int fd;
+ 	struct arpreq req;
+ 	struct sockaddr_in *sin;
+-	struct iflink *ifl;
++	struct rarpiflink *ifl;
+ 
+ 	for (ifl=ifl_list; ifl; ifl = ifl->next)
+ 		if (ifl->index == ifindex)
+@@ -421,6 +427,10 @@ void serve_it(int fd)
+ 	struct rarp_map *rmap;
+ 	unsigned char *ptr;
+ 	int n;
++	int i;
++	char tmpbuf[16*3];
++	char tmpname[IFNAMSIZ];
++	struct rarpiflink *ifl;
+ 
+ 	n = recvfrom(fd, buf, sizeof(buf), MSG_DONTWAIT, (struct sockaddr*)&sll, &sll_len);
+ 	if (n<0) {
+@@ -447,21 +457,23 @@ void serve_it(int fd)
+ 	if (a->ar_op != htons(ARPOP_RREQUEST))
+ 		return;
+ 
+-	if (verbose) {
+-		int i;
+-		char tmpbuf[16*3];
+-		char *ptr = tmpbuf;
+-		for (i=0; i<sll.sll_halen; i++) {
+-			if (i) {
+-				sprintf(ptr, ":%02x", sll.sll_addr[i]);
+-				ptr++;
+-			} else
+-				sprintf(ptr, "%02x", sll.sll_addr[i]);
+-			ptr += 2;
+-		}
+-		syslog(LOG_INFO, "RARP request from %s on if%d", tmpbuf, sll.sll_ifindex);
++	ptr = tmpbuf;
++        snprintf(tmpbuf, 2, "%02x", sll.sll_addr[0]);
++	for (ptr=tmpbuf+2, i=1; i<sll.sll_halen; i++) {
++		snprintf(ptr, 3, ":%02x", sll.sll_addr[i]);
++		ptr += 3;
+ 	}
+ 
++	for (ifl=ifl_list; ifl; ifl = ifl->next)
++		if (ifl->index == sll.sll_ifindex)
++			break;
++	if (ifl) {
++		strncpy(tmpname, ifl->name, IFNAMSIZ);
++		tmpname[IFNAMSIZ-1] = 0;
++	} else
++		sprintf(tmpname, "if%d", sll.sll_ifindex);
++	syslog(LOG_INFO, "RARP request from %s on %s", tmpbuf, tmpname);
++
+ 	/* Sanity checks */
+ 
+ 	/* 1. IP only -> pln==4 */
+@@ -526,6 +538,8 @@ void serve_it(int fd)
+ 	ptr += rmap->lladdr_len;
+ 	memcpy(ptr, &rmap->ipaddr, 4);
+ 	ptr += 4;
++	syslog(LOG_INFO, "RARP response to %s %s on %s", tmpbuf,
++	       inet_ntoa(*(struct in_addr *)&rmap->ipaddr), tmpname);
+ 
+ 	/* Update our ARP cache. Probably, this guy
+ 	   will not able to make ARP (if it is broken)
+@@ -613,7 +627,7 @@ int main(int argc, char **argv)
+         if (ifname) {
+ 		struct ifreq ifr;
+ 		memset(&ifr, 0, sizeof(ifr));
+-		strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
++		strncpy(ifr.ifr_name, ifname, IFNAMSIZ-1);
+ 		if (ioctl(pset[0].fd, SIOCGIFINDEX, &ifr)) {
+ 			perror("ioctl(SIOCGIFINDEX)");
+ 			usage();
+-- 
+1.8.4.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/rarpd/rarpd/0004-rarpd.init-add-new-init-file.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/rarpd/rarpd/0004-rarpd.init-add-new-init-file.patch
new file mode 100644
index 0000000..3ba11ff
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/rarpd/rarpd/0004-rarpd.init-add-new-init-file.patch
@@ -0,0 +1,116 @@
+From 0ef1a95b220c7e110da950e5cc544c50c25b1bc6 Mon Sep 17 00:00:00 2001
+From: Li xin <lixin.fnst@cn.fujitsu.com>
+Date: Tue, 18 Nov 2014 18:11:56 +0900
+Subject: [PATCH 4/5] rarpd.init : add new init file
+
+Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
+---
+ rarpd.init | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 96 insertions(+)
+ create mode 100644 rarpd.init
+
+diff --git a/rarpd.init b/rarpd.init
+new file mode 100644
+index 0000000..efcf825
+--- /dev/null
++++ b/rarpd.init
+@@ -0,0 +1,96 @@
++#!/bin/bash
++#
++#	/etc/init.d/rarpd
++#
++# Starts the rarpd daemon
++#
++# chkconfig: - 82 16
++# description: Server Reverse Address Resolution Protocol requests.
++# processname: rarpd
++
++### BEGIN INIT INFO
++# Provides: rarpd
++# Required-Start: $syslog $network
++# Required-Stop:  $syslog $network
++# Default-Start:
++# Default-Stop: 0 1 2 3 4 5 6
++# Short-Description: start and stop rarpd
++# Description: RARP (Reverse Address Resolution Protocol) is a protocol \
++#              which allows individual devices on an IP network to get \
++#              their own IP addresses from the RARP server. \
++### END INIT INFO
++
++# Source function library.
++. /etc/init.d/functions
++
++# Read the config file if exists
++if [ -f /etc/sysconfig/rarpd ]; then
++ . /etc/sysconfig/rarpd
++fi
++
++RETVAL=0
++prog="rarpd"
++
++
++start() {
++    #if these files don't exist rarpd can't work
++    test -x /usr/sbin/rarpd -a -f /etc/ethers || exit 6
++	# Check if rarpd is already running
++	#if [ ! -f /var/lock/subsys/rarpd ]; then
++    status rarpd;
++    if [ $? -ne 0 ]; then
++	    echo -n $"Starting $prog: "
++	    daemon /usr/sbin/rarpd $OPTIONS $INTERFACE
++	    RETVAL=$?
++	    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/rarpd
++	    echo
++	fi
++	return $RETVAL
++}
++
++stop() {
++	echo -n $"Stopping $prog: "
++	killproc /usr/sbin/rarpd
++	RETVAL=$?
++	[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/rarpd
++	echo
++	return $RETVAL
++}
++reload() {
++    RETVAL=3
++}
++
++#
++#	See how we were called.
++#
++case "$1" in
++  start)
++	start
++	;;
++  stop)
++	stop
++	;;
++  reload)
++    reload
++    ;;
++  force-reload|restart)
++    stop
++	start
++	;;
++  condrestart)
++	if [ -f /var/lock/subsys/rarpd ]; then
++	    stop
++	    start
++	fi
++	;;
++  status)
++	status rarpd
++	RETVAL=$?
++	;;
++  *)
++	echo $"Usage: $0 {start|stop|restart|condrestart|reload|status|force-reload}"
++	RETVAL=2
++    
++esac
++
++exit $RETVAL
+-- 
+1.8.4.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/rarpd/rarpd/0005-ethernet.c-remove-it.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/rarpd/rarpd/0005-ethernet.c-remove-it.patch
new file mode 100644
index 0000000..c77c806
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/rarpd/rarpd/0005-ethernet.c-remove-it.patch
@@ -0,0 +1,244 @@
+From abe15ba10ddc3548c528ccb088097d7abf5be48b Mon Sep 17 00:00:00 2001
+From: Li xin <lixin.fnst@cn.fujitsu.com>
+Date: Tue, 18 Nov 2014 18:14:07 +0900
+Subject: [PATCH 5/5] ethernet.c : remove it
+
+Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
+---
+ ethernet.c | 224 -------------------------------------------------------------
+ 1 file changed, 224 deletions(-)
+ delete mode 100644 ethernet.c
+
+diff --git a/ethernet.c b/ethernet.c
+deleted file mode 100644
+index d682b63..0000000
+--- a/ethernet.c
++++ /dev/null
+@@ -1,224 +0,0 @@
+-/*
+- * Copyright (c) 1990, 1993 The Regents of the University of California.
+- * All rights reserved.
+- *
+- * Redistribution and use in source and binary forms, with or without
+- * modification, are permitted provided that: (1) source code distributions
+- * retain the above copyright notice and this paragraph in its entirety, (2)
+- * distributions including binary code include the above copyright notice and
+- * this paragraph in its entirety in the documentation or other materials
+- * provided with the distribution, and (3) all advertising materials mentioning
+- * features or use of this software display the following acknowledgement:
+- * ``This product includes software developed by the University of California,
+- * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
+- * the University nor the names of its contributors may be used to endorse
+- * or promote products derived from this software without specific prior
+- * written permission.
+- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
+- * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
+- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+- */
+-#ifndef lint
+-static char rcsid[] =
+-    "@(#) $Header: etherent.c,v 1.4 96/06/14 20:34:25 leres Exp $ (LBL)";
+-#endif
+-
+-#include <sys/types.h>
+-#include <sys/stat.h>
+-#include <sys/time.h>
+-
+-#include <ctype.h>
+-#include <stdio.h>
+-#include <string.h>
+-
+-#ifndef ETHERS_FILE
+-#define ETHERS_FILE "/etc/ethers"
+-#endif
+-
+-struct etherent {
+-        u_char addr[6];
+-        char name[122];
+-};
+-
+-static FILE *ether_fp = NULL;
+-
+-
+-/* Hex digit to integer. */
+-static inline int
+-xdtoi(c)
+-	int c;
+-{
+-
+-	if (isdigit(c))
+-		return c - '0';
+-	else if (islower(c))
+-		return c - 'a' + 10;
+-	else
+-		return c - 'A' + 10;
+-}
+-
+-static inline int
+-skip_space(f)
+-	FILE *f;
+-{
+-	int c;
+-
+-	do {
+-		c = getc(f);
+-	} while (isspace(c) && c != '\n');
+-
+-	return c;
+-}
+-
+-static inline int
+-skip_line(f)
+-	FILE *f;
+-{
+-	int c;
+-
+-	do
+-		c = getc(f);
+-	while (c != '\n' && c != EOF);
+-
+-	return c;
+-}
+-
+-static struct etherent *
+-next_etherent(fp)
+-	FILE *fp;
+-{
+-	register int c, d, i;
+-	char *bp;
+-	static struct etherent e;
+-	static int nline = 1;
+- top:
+-	while (nline) {
+-		/* Find addr */
+-		c = skip_space(fp);
+-		if (c == '\n')
+-			continue;
+-		/* If this is a comment, or first thing on line
+-		   cannot be etehrnet address, skip the line. */
+-		else if (!isxdigit(c))
+-			c = skip_line(fp);
+-		else {
+-			/* must be the start of an address */
+-			for (i = 0; i < 6; i += 1) {
+-				d = xdtoi(c);
+-				c = getc(fp);
+-				if (c != ':') {
+-					d <<= 4;
+-					d |= xdtoi(c);
+-					c = getc(fp);
+-				}
+-				e.addr[i] = d;
+-				if (c != ':')
+-					break;
+-				c = getc(fp);
+-			}
+-			nline = 0;
+-		}
+-		if (c == EOF)
+-			return NULL;
+-	}
+-	
+-	/* If we started a new line, 'c' holds the char past the ether addr,
+-	   which we assume is white space.  If we are continuing a line,
+-	   'c' is garbage.  In either case, we can throw it away. */
+-	   
+-	c = skip_space(fp);
+-	if (c == '\n') {
+-		nline = 1;
+-		goto top;
+-	}
+-	else if (c == '#') {
+-		(void)skip_line(fp);
+-		nline = 1;
+-		goto top;
+-	}
+-	else if (c == EOF)
+-		return NULL;
+-	
+-	/* Must be a name. */
+-	bp = e.name;
+-	/* Use 'd' to prevent buffer overflow. */
+-	d = sizeof(e.name) - 1;
+-	do {
+-		*bp++ = c;
+-		c = getc(fp);
+-	} while (!isspace(c) && c != EOF && --d > 0);
+-	*bp = '\0';
+-	if (c == '\n')
+-		nline = 1;
+-
+-	return &e;
+-}
+-
+-/* Open/rewind the ethers files; returns 1 if file was reopened */
+-int
+-ether_rewind()
+-{
+-	struct stat st;
+-	static long mtime = 0, ctime = 0;
+-
+-	if (ether_fp != NULL) {
+-		if (fstat(fileno(ether_fp), &st) < 0 ||
+-		    mtime != st.st_mtime || ctime != st.st_ctime ||
+-		    fseek(ether_fp, 0L, SEEK_SET) < 0) {
+-			fclose(ether_fp);
+-			ether_fp = NULL;
+-		}
+-	}
+-	if (ether_fp == NULL) {
+-		ether_fp = fopen(ETHERS_FILE, "r");
+-		if (ether_fp == NULL)
+-			return (-1);
+-		if (fstat(fileno(ether_fp), &st) < 0) {
+-			fclose(ether_fp);
+-			ether_fp = NULL;
+-			return (-1);
+-		}
+-		mtime = st.st_mtime;
+-		ctime = st.st_ctime;
+-		return (1);
+-	}
+-	return (0);
+-}
+-
+-/* Map an ethernet address to a name; returns 0 on success, else 1. */
+-int
+-ether_ntohost(name, ea)
+-	register char *name;
+-	register u_char *ea;
+-{
+-	register struct etherent *ep;
+-
+-	if (ether_rewind() < 0)
+-		return (1);
+-
+-	while ((ep = next_etherent(ether_fp)) != NULL)
+-		if (bcmp(ep->addr, ea, 6) == 0) {
+-			strcpy(name, ep->name);
+-			return (0);
+-		}
+-	return (1);
+-}
+-
+-/* Map an ethernet name to an address; returns 0 on success, else 1. */
+-int
+-ether_hostton(name, ea)
+-	register char *name;
+-	register u_char *ea;
+-{
+-	register struct etherent *ep;
+-
+-	if (ether_rewind() < 0)
+-		return (1);
+-
+-	while ((ep = next_etherent(ether_fp)) != NULL)
+-		if (strcmp(ep->name, name) == 0) {
+-			bcopy(ep->addr, ea, 6);
+-			return (0);
+-		}
+-	return (1);
+-}
+-- 
+1.8.4.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/rarpd/rarpd/ethers.sample b/import-layers/meta-openembedded/meta-oe/recipes-extended/rarpd/rarpd/ethers.sample
new file mode 100644
index 0000000..249ca6b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/rarpd/rarpd/ethers.sample
@@ -0,0 +1 @@
+# see man ethers for syntax
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/rarpd/rarpd/rarpd.service b/import-layers/meta-openembedded/meta-oe/recipes-extended/rarpd/rarpd/rarpd.service
new file mode 100644
index 0000000..137710e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/rarpd/rarpd/rarpd.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=Reverse Address Resolution Protocol Requests Server
+Requires=network.target
+After=syslog.target network.target
+
+[Service]
+Type=forking
+EnvironmentFile=-/etc/sysconfig/rarpd
+ExecStart=/usr/sbin/rarpd $OPTIONS $INTERFACE
+StandardError=syslog
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/rarpd/rarpd_ss981107.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/rarpd/rarpd_ss981107.bb
new file mode 100644
index 0000000..a112168
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/rarpd/rarpd_ss981107.bb
@@ -0,0 +1,53 @@
+SUMMARY = "The RARP daemon."
+DESCRIPTION = "RARP (Reverse Address Resolution Protocol) is a protocol which \
+allows individual devices on an IP network to get their own IP addresses from \
+the RARP server. Some machines (e.g. SPARC boxes) use this protocol instead \
+of e.g. DHCP to query their IP addresses during network bootup. \
+Linux kernels up to 2.2 used to provide a kernel daemon for this service, \
+but since 2.3 kernels it is served by this userland daemon. \
+You should install rarpd if you want to set up a RARP server on your \
+network."
+SECTION = "System Environment/Daemons"
+
+SRC_URI = "http://pkgs.fedoraproject.org/repo/pkgs/${BPN}/${BP}.tar.gz/be2a88f8ccddf2a40ac484cb3294fedc/${BP}.tar.gz"
+SRC_URI[md5sum] = "be2a88f8ccddf2a40ac484cb3294fedc"
+SRC_URI[sha256sum] = "4d6145d435a5d8b567b9798620f57f9b0a464078a1deba267958f168fbe776e6"
+
+SRC_URI += "file://0001-rarpd.8-add-man-file.patch \
+    file://0002-Makefile-modify-compile-parameters.patch \
+    file://0003-rarpd.c-bug-fix.patch \
+    file://0004-rarpd.init-add-new-init-file.patch \
+    file://0005-ethernet.c-remove-it.patch \
+    file://ethers.sample \
+    file://rarpd.service \
+"
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://rarpd.c;md5=199b20b172ea93121bc613a9c77b6931"
+
+S = "${WORKDIR}/${BPN}"
+
+EXTRA_OEMAKE = "-e MAKEFLAGS="
+
+do_install() {
+    install -d ${D}${sysconfdir}/init.d
+    install -d ${D}${sbindir}
+    install -d ${D}${mandir}/man8
+    install -m 755 rarpd.init ${D}${sysconfdir}/init.d/rarpd
+    install -m 755 rarpd ${D}${sbindir}/rarpd
+    install -m 644 rarpd.8 ${D}${mandir}/man8/rarpd.8
+    install -m 644 ${WORKDIR}/ethers.sample ${D}${sysconfdir}/ethers
+
+    if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+        install -d ${D}${systemd_unitdir}/system
+        install -m 0644 ${WORKDIR}/rarpd.service ${D}${systemd_unitdir}/system/
+    fi
+}
+
+inherit ${@bb.utils.contains('VIRTUAL-RUNTIME_init_manager','systemd','systemd','',d)}
+
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE_${PN} = "rarpd.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+RDEPENDS_${PN} += "bash"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/redis/redis/hiredis-use-default-CC-if-it-is-set.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/redis/redis/hiredis-use-default-CC-if-it-is-set.patch
new file mode 100644
index 0000000..f9f1c0d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/redis/redis/hiredis-use-default-CC-if-it-is-set.patch
@@ -0,0 +1,30 @@
+From dc745a33f3875cc72d41bd34ed490b352e546352 Mon Sep 17 00:00:00 2001
+From: Venture Research <tech@ventureresearch.com>
+Date: Fri, 8 Feb 2013 17:39:52 -0600
+Subject: [PATCH] hiredis: use default CC if it is set
+
+Instead of trying to automagically figure out CC, which breaks with OE
+as CC has spaces in it, just skip it if one was already passed in.
+
+Signed-off-by: Venture Research <tech@ventureresearch.com>
+
+Update to work with 3.0.x
+Signed-off-by: Armin Kuster <akuster808@gmail.com>
+
+---
+ deps/hiredis/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: deps/hiredis/Makefile
+===================================================================
+--- a/deps/hiredis/Makefile
++++ b/deps/hiredis/Makefile
+@@ -24,7 +24,7 @@ endef
+ export REDIS_TEST_CONFIG
+ 
+ # Fallback to gcc when $CC is not in $PATH.
+-CC:=$(shell sh -c 'type $(CC) >/dev/null 2>/dev/null && echo $(CC) || echo gcc')
++CC?=$(shell sh -c 'type $(CC) >/dev/null 2>/dev/null && echo $(CC) || echo gcc')
+ OPTIMIZATION?=-O3
+ WARNINGS=-Wall -W -Wstrict-prototypes -Wwrite-strings
+ DEBUG?= -g -ggdb
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/redis/redis/init-redis-server b/import-layers/meta-openembedded/meta-oe/recipes-extended/redis/redis/init-redis-server
new file mode 100755
index 0000000..6014d70
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/redis/redis/init-redis-server
@@ -0,0 +1,40 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides:          redis-server
+# Required-Start:    $network
+# Required-Stop:     $network
+# Default-Start:     S 2 3 4 5
+# Default-Stop:      0 1 6
+# Short-Description: Redis, a key-value store
+# Description:       Redis is an open source, advanced key-value store.
+#                    http://redis.io
+### END INIT INFO
+
+test -f /usr/bin/redis-server || exit 0
+
+ARGS="/etc/redis/redis.conf"
+
+case "$1" in
+    start)
+	echo "Starting redis-server..."
+        start-stop-daemon --start --quiet --exec /usr/bin/redis-server -- $ARGS
+	;;
+    stop)
+        echo "Stopping redis-server..."
+        start-stop-daemon --stop --quiet --exec /usr/bin/redis-server
+	;;
+    restart)
+        echo "Stopping redis-server..."
+        start-stop-daemon --stop --quiet --exec /usr/bin/redis-server
+	echo "Starting redis-server..."
+        start-stop-daemon --start --quiet --exec /usr/bin/redis-server -- $ARGS
+	;;
+    *)
+	echo "Usage: /etc/init.d/redis-server {start|stop|restart}"
+	exit 1
+	;;
+esac
+
+exit 0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/redis/redis/lua-update-Makefile-to-use-environment-build-setting.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/redis/redis/lua-update-Makefile-to-use-environment-build-setting.patch
new file mode 100644
index 0000000..7e62ae1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/redis/redis/lua-update-Makefile-to-use-environment-build-setting.patch
@@ -0,0 +1,71 @@
+From 394108035d350ae662a431c80131f812b5f72dff Mon Sep 17 00:00:00 2001
+From: Venture Research <tech@ventureresearch.com>
+Date: Fri, 8 Feb 2013 20:22:19 -0600
+Subject: [PATCH] lua: update Makefile to use environment build settings
+
+OE-specific parameters, instead of overriding all of these simply use
+the ones that are already passed in. Also configure for only Linux...
+
+Signed-off-by: Venture Research <tech@ventureresearch.com>
+
+Updated to work with 3.0.x
+
+Signed-off-by: Armin Kuster <akust808@gmail.com>
+
+---
+ deps/lua/src/Makefile | 18 +++++++-----------
+ 1 file changed, 7 insertions(+), 11 deletions(-)
+
+Index: redis-3.0.2/deps/lua/src/Makefile
+===================================================================
+--- redis-3.0.2.orig/deps/lua/src/Makefile
++++ redis-3.0.2/deps/lua/src/Makefile
+@@ -5,18 +5,14 @@
+ # == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT =======================
+ 
+ # Your platform. See PLATS for possible values.
+-PLAT= none
++PLAT= linux
+ 
+-CC?= gcc
+-CFLAGS= -O2 -Wall $(MYCFLAGS)
+-AR= ar rcu
+-RANLIB= ranlib
+-RM= rm -f
+-LIBS= -lm $(MYLIBS)
+-
+-MYCFLAGS=
++MYCFLAGS=-DLUA_USE_LINUX
+ MYLDFLAGS=
+-MYLIBS=
++MYLIBS=-Wl,-E -ldl -lreadline -lhistory -lncurses
++
++CFLAGS += $(MYCFLAGS)
++LIBS += -lm $(MYLIBS)
+ 
+ # == END OF USER SETTINGS. NO NEED TO CHANGE ANYTHING BELOW THIS LINE =========
+ 
+Index: redis-3.0.2/deps/Makefile
+===================================================================
+--- redis-3.0.2.orig/deps/Makefile
++++ redis-3.0.2/deps/Makefile
+@@ -63,7 +63,6 @@ LUA_LDFLAGS+= $(LDFLAGS)
+ # lua's Makefile defines AR="ar rcu", which is unusual, and makes it more
+ # challenging to cross-compile lua (and redis).  These defines make it easier
+ # to fit redis into cross-compilation environments, which typically set AR.
+-AR=ar
+ ARFLAGS=rcu
+ 
+ lua: .make-prerequisites
+Index: redis-3.0.2/deps/lua/Makefile
+===================================================================
+--- redis-3.0.2.orig/deps/lua/Makefile
++++ redis-3.0.2/deps/lua/Makefile
+@@ -33,7 +33,6 @@ INSTALL_DATA= $(INSTALL) -m 0644
+ 
+ # Utilities.
+ MKDIR= mkdir -p
+-RANLIB= ranlib
+ 
+ # == END OF USER SETTINGS. NO NEED TO CHANGE ANYTHING BELOW THIS LINE =========
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/redis/redis/oe-use-libc-malloc.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/redis/redis/oe-use-libc-malloc.patch
new file mode 100644
index 0000000..b768a77
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/redis/redis/oe-use-libc-malloc.patch
@@ -0,0 +1,34 @@
+From f8861d2129b9e18bba137705bfa38c6bd9be1790 Mon Sep 17 00:00:00 2001
+From: Venture Research <tech@ventureresearch.com>
+Date: Wed, 6 Feb 2013 20:51:02 -0600
+Subject: [PATCH] hack to force use of libc malloc
+
+Hack to force libc usage as it seems the option to pass it in has been
+removed in favor of magic.
+
+Note that this of course doesn't allow tcmalloc and jemalloc, however 
+jemalloc wasn't building correctly.
+
+Signed-off-by: Venture Research <tech@ventureresearch.com>
+
+Update to work with 3.0.x
+Signed-off-by: Armin Kuster <akuster808@gmail.com>
+
+---
+ src/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: src/Makefile
+===================================================================
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -13,7 +13,8 @@
+ # Just use 'make dep', but this is only needed by developers.
+ 
+ release_hdr := $(shell sh -c './mkreleasehdr.sh')
+-uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
++# use fake uname option to force use of generic libc
++uname_S := "USE_LIBC_MALLOC"
+ OPTIMIZATION?=-O2
+ DEPENDENCY_TARGETS=hiredis linenoise lua
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/redis/redis/redis.conf b/import-layers/meta-openembedded/meta-oe/recipes-extended/redis/redis/redis.conf
new file mode 100644
index 0000000..923b98e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/redis/redis/redis.conf
@@ -0,0 +1,550 @@
+# Redis configuration file example
+
+# Note on units: when memory size is needed, it is possible to specify
+# it in the usual form of 1k 5GB 4M and so forth:
+#
+# 1k => 1000 bytes
+# 1kb => 1024 bytes
+# 1m => 1000000 bytes
+# 1mb => 1024*1024 bytes
+# 1g => 1000000000 bytes
+# 1gb => 1024*1024*1024 bytes
+#
+# units are case insensitive so 1GB 1Gb 1gB are all the same.
+
+# By default Redis does not run as a daemon. Use 'yes' if you need it.
+# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
+#
+# OE: run as a daemon.
+#
+daemonize yes
+
+# When running daemonized, Redis writes a pid file in /var/run/redis.pid by
+# default. You can specify a custom pid file location here.
+pidfile /var/run/redis.pid
+
+# Accept connections on the specified port, default is 6379.
+# If port 0 is specified Redis will not listen on a TCP socket.
+port 6379
+
+# If you want you can bind a single interface, if the bind option is not
+# specified all the interfaces will listen for incoming connections.
+#
+# bind 127.0.0.1
+
+# Specify the path for the unix socket that will be used to listen for
+# incoming connections. There is no default, so Redis will not listen
+# on a unix socket when not specified.
+#
+# unixsocket /tmp/redis.sock
+# unixsocketperm 755
+
+# Close the connection after a client is idle for N seconds (0 to disable)
+timeout 0
+
+# Set server verbosity to 'debug'
+# it can be one of:
+# debug (a lot of information, useful for development/testing)
+# verbose (many rarely useful info, but not a mess like the debug level)
+# notice (moderately verbose, what you want in production probably)
+# warning (only very important / critical messages are logged)
+loglevel notice
+
+# Specify the log file name. Also 'stdout' can be used to force
+# Redis to log on the standard output. Note that if you use standard
+# output for logging but daemonize, logs will be sent to /dev/null
+logfile /var/log/redis.log
+
+# To enable logging to the system logger, just set 'syslog-enabled' to yes,
+# and optionally update the other syslog parameters to suit your needs.
+# syslog-enabled no
+
+# Specify the syslog identity.
+# syslog-ident redis
+
+# Specify the syslog facility.  Must be USER or between LOCAL0-LOCAL7.
+# syslog-facility local0
+
+# Set the number of databases. The default database is DB 0, you can select
+# a different one on a per-connection basis using SELECT <dbid> where
+# dbid is a number between 0 and 'databases'-1
+databases 16
+
+################################ SNAPSHOTTING  #################################
+#
+# Save the DB on disk:
+#
+#   save <seconds> <changes>
+#
+#   Will save the DB if both the given number of seconds and the given
+#   number of write operations against the DB occurred.
+#
+#   In the example below the behaviour will be to save:
+#   after 900 sec (15 min) if at least 1 key changed
+#   after 300 sec (5 min) if at least 10 keys changed
+#   after 60 sec if at least 10000 keys changed
+#
+#   Note: you can disable saving at all commenting all the "save" lines.
+#
+#   It is also possible to remove all the previously configured save
+#   points by adding a save directive with a single empty string argument
+#   like in the following example:
+#
+#   save ""
+
+#save 900 1
+#save 300 10
+#save 60 10000
+
+# OE: tune for a small embedded system with a limited # of keys.
+save 120 1
+save 60 100
+save 30 1000
+
+# By default Redis will stop accepting writes if RDB snapshots are enabled
+# (at least one save point) and the latest background save failed.
+# This will make the user aware (in an hard way) that data is not persisting
+# on disk properly, otherwise chances are that no one will notice and some
+# distater will happen.
+#
+# If the background saving process will start working again Redis will
+# automatically allow writes again.
+#
+# However if you have setup your proper monitoring of the Redis server
+# and persistence, you may want to disable this feature so that Redis will
+# continue to work as usually even if there are problems with disk,
+# permissions, and so forth.
+stop-writes-on-bgsave-error yes
+
+# Compress string objects using LZF when dump .rdb databases?
+# For default that's set to 'yes' as it's almost always a win.
+# If you want to save some CPU in the saving child set it to 'no' but
+# the dataset will likely be bigger if you have compressible values or keys.
+rdbcompression yes
+
+# Since verison 5 of RDB a CRC64 checksum is placed at the end of the file.
+# This makes the format more resistant to corruption but there is a performance
+# hit to pay (around 10%) when saving and loading RDB files, so you can disable it
+# for maximum performances.
+#
+# RDB files created with checksum disabled have a checksum of zero that will
+# tell the loading code to skip the check.
+rdbchecksum yes
+
+# The filename where to dump the DB
+dbfilename dump.rdb
+
+# The working directory.
+#
+# The DB will be written inside this directory, with the filename specified
+# above using the 'dbfilename' configuration directive.
+# 
+# Also the Append Only File will be created inside this directory.
+# 
+# Note that you must specify a directory here, not a file name.
+dir /var/lib/redis/
+
+################################# REPLICATION #################################
+
+# Master-Slave replication. Use slaveof to make a Redis instance a copy of
+# another Redis server. Note that the configuration is local to the slave
+# so for example it is possible to configure the slave to save the DB with a
+# different interval, or to listen to another port, and so on.
+#
+# slaveof <masterip> <masterport>
+
+# If the master is password protected (using the "requirepass" configuration
+# directive below) it is possible to tell the slave to authenticate before
+# starting the replication synchronization process, otherwise the master will
+# refuse the slave request.
+#
+# masterauth <master-password>
+
+# When a slave lost the connection with the master, or when the replication
+# is still in progress, the slave can act in two different ways:
+#
+# 1) if slave-serve-stale-data is set to 'yes' (the default) the slave will
+#    still reply to client requests, possibly with out of date data, or the
+#    data set may just be empty if this is the first synchronization.
+#
+# 2) if slave-serve-stale data is set to 'no' the slave will reply with
+#    an error "SYNC with master in progress" to all the kind of commands
+#    but to INFO and SLAVEOF.
+#
+slave-serve-stale-data yes
+
+# You can configure a slave instance to accept writes or not. Writing against
+# a slave instance may be useful to store some ephemeral data (because data
+# written on a slave will be easily deleted after resync with the master) but
+# may also cause problems if clients are writing to it because of a
+# misconfiguration.
+#
+# Since Redis 2.6 by default slaves are read-only.
+#
+# Note: read only slaves are not designed to be exposed to untrusted clients
+# on the internet. It's just a protection layer against misuse of the instance.
+# Still a read only slave exports by default all the administrative commands
+# such as CONFIG, DEBUG, and so forth. To a limited extend you can improve
+# security of read only slaves using 'rename-command' to shadow all the
+# administrative / dangerous commands.
+slave-read-only yes
+
+# Slaves send PINGs to server in a predefined interval. It's possible to change
+# this interval with the repl_ping_slave_period option. The default value is 10
+# seconds.
+#
+# repl-ping-slave-period 10
+
+# The following option sets a timeout for both Bulk transfer I/O timeout and
+# master data or ping response timeout. The default value is 60 seconds.
+#
+# It is important to make sure that this value is greater than the value
+# specified for repl-ping-slave-period otherwise a timeout will be detected
+# every time there is low traffic between the master and the slave.
+#
+# repl-timeout 60
+
+# The slave priority is an integer number published by Redis in the INFO output.
+# It is used by Redis Sentinel in order to select a slave to promote into a
+# master if the master is no longer working correctly.
+#
+# A slave with a low priority number is considered better for promotion, so
+# for instance if there are three slaves with priority 10, 100, 25 Sentinel will
+# pick the one wtih priority 10, that is the lowest.
+#
+# However a special priority of 0 marks the slave as not able to perform the
+# role of master, so a slave with priority of 0 will never be selected by
+# Redis Sentinel for promotion.
+#
+# By default the priority is 100.
+slave-priority 100
+
+################################## SECURITY ###################################
+
+# Require clients to issue AUTH <PASSWORD> before processing any other
+# commands.  This might be useful in environments in which you do not trust
+# others with access to the host running redis-server.
+#
+# This should stay commented out for backward compatibility and because most
+# people do not need auth (e.g. they run their own servers).
+# 
+# Warning: since Redis is pretty fast an outside user can try up to
+# 150k passwords per second against a good box. This means that you should
+# use a very strong password otherwise it will be very easy to break.
+#
+# requirepass foobared
+
+# Command renaming.
+#
+# It is possible to change the name of dangerous commands in a shared
+# environment. For instance the CONFIG command may be renamed into something
+# of hard to guess so that it will be still available for internal-use
+# tools but not available for general clients.
+#
+# Example:
+#
+# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
+#
+# It is also possible to completely kill a command renaming it into
+# an empty string:
+#
+# rename-command CONFIG ""
+
+################################### LIMITS ####################################
+
+# Set the max number of connected clients at the same time. By default
+# this limit is set to 10000 clients, however if the Redis server is not
+# able ot configure the process file limit to allow for the specified limit
+# the max number of allowed clients is set to the current file limit
+# minus 32 (as Redis reserves a few file descriptors for internal uses).
+#
+# Once the limit is reached Redis will close all the new connections sending
+# an error 'max number of clients reached'.
+#
+# maxclients 10000
+
+# Don't use more memory than the specified amount of bytes.
+# When the memory limit is reached Redis will try to remove keys
+# accordingly to the eviction policy selected (see maxmemmory-policy).
+#
+# If Redis can't remove keys according to the policy, or if the policy is
+# set to 'noeviction', Redis will start to reply with errors to commands
+# that would use more memory, like SET, LPUSH, and so on, and will continue
+# to reply to read-only commands like GET.
+#
+# This option is usually useful when using Redis as an LRU cache, or to set
+# an hard memory limit for an instance (using the 'noeviction' policy).
+#
+# WARNING: If you have slaves attached to an instance with maxmemory on,
+# the size of the output buffers needed to feed the slaves are subtracted
+# from the used memory count, so that network problems / resyncs will
+# not trigger a loop where keys are evicted, and in turn the output
+# buffer of slaves is full with DELs of keys evicted triggering the deletion
+# of more keys, and so forth until the database is completely emptied.
+#
+# In short... if you have slaves attached it is suggested that you set a lower
+# limit for maxmemory so that there is some free RAM on the system for slave
+# output buffers (but this is not needed if the policy is 'noeviction').
+#
+# maxmemory <bytes>
+
+# MAXMEMORY POLICY: how Redis will select what to remove when maxmemory
+# is reached? You can select among five behavior:
+# 
+# volatile-lru -> remove the key with an expire set using an LRU algorithm
+# allkeys-lru -> remove any key accordingly to the LRU algorithm
+# volatile-random -> remove a random key with an expire set
+# allkeys-random -> remove a random key, any key
+# volatile-ttl -> remove the key with the nearest expire time (minor TTL)
+# noeviction -> don't expire at all, just return an error on write operations
+# 
+# Note: with all the kind of policies, Redis will return an error on write
+#       operations, when there are not suitable keys for eviction.
+#
+#       At the date of writing this commands are: set setnx setex append
+#       incr decr rpush lpush rpushx lpushx linsert lset rpoplpush sadd
+#       sinter sinterstore sunion sunionstore sdiff sdiffstore zadd zincrby
+#       zunionstore zinterstore hset hsetnx hmset hincrby incrby decrby
+#       getset mset msetnx exec sort
+#
+# The default is:
+#
+# maxmemory-policy volatile-lru
+
+# LRU and minimal TTL algorithms are not precise algorithms but approximated
+# algorithms (in order to save memory), so you can select as well the sample
+# size to check. For instance for default Redis will check three keys and
+# pick the one that was used less recently, you can change the sample size
+# using the following configuration directive.
+#
+# maxmemory-samples 3
+
+############################## APPEND ONLY MODE ###############################
+
+# By default Redis asynchronously dumps the dataset on disk. This mode is
+# good enough in many applications, but an issue with the Redis process or
+# a power outage may result into a few minutes of writes lost (depending on
+# the configured save points).
+#
+# The Append Only File is an alternative persistence mode that provides
+# much better durability. For instance using the default data fsync policy
+# (see later in the config file) Redis can lose just one second of writes in a
+# dramatic event like a server power outage, or a single write if something
+# wrong with the Redis process itself happens, but the operating system is
+# still running correctly.
+#
+# AOF and RDB persistence can be enabled at the same time without problems.
+# If the AOF is enabled on startup Redis will load the AOF, that is the file
+# with the better durability guarantees.
+#
+# Please check http://redis.io/topics/persistence for more information.
+
+#
+# OE: changed default to enable this
+appendonly yes
+
+# The name of the append only file (default: "appendonly.aof")
+# appendfilename appendonly.aof
+
+# The fsync() call tells the Operating System to actually write data on disk
+# instead to wait for more data in the output buffer. Some OS will really flush 
+# data on disk, some other OS will just try to do it ASAP.
+#
+# Redis supports three different modes:
+#
+# no: don't fsync, just let the OS flush the data when it wants. Faster.
+# always: fsync after every write to the append only log . Slow, Safest.
+# everysec: fsync only one time every second. Compromise.
+#
+# The default is "everysec" that's usually the right compromise between
+# speed and data safety. It's up to you to understand if you can relax this to
+# "no" that will let the operating system flush the output buffer when
+# it wants, for better performances (but if you can live with the idea of
+# some data loss consider the default persistence mode that's snapshotting),
+# or on the contrary, use "always" that's very slow but a bit safer than
+# everysec.
+#
+# More details please check the following article:
+# http://antirez.com/post/redis-persistence-demystified.html
+#
+# If unsure, use "everysec".
+
+# appendfsync always
+appendfsync everysec
+# appendfsync no
+
+# When the AOF fsync policy is set to always or everysec, and a background
+# saving process (a background save or AOF log background rewriting) is
+# performing a lot of I/O against the disk, in some Linux configurations
+# Redis may block too long on the fsync() call. Note that there is no fix for
+# this currently, as even performing fsync in a different thread will block
+# our synchronous write(2) call.
+#
+# In order to mitigate this problem it's possible to use the following option
+# that will prevent fsync() from being called in the main process while a
+# BGSAVE or BGREWRITEAOF is in progress.
+#
+# This means that while another child is saving the durability of Redis is
+# the same as "appendfsync none", that in practical terms means that it is
+# possible to lost up to 30 seconds of log in the worst scenario (with the
+# default Linux settings).
+# 
+# If you have latency problems turn this to "yes". Otherwise leave it as
+# "no" that is the safest pick from the point of view of durability.
+no-appendfsync-on-rewrite no
+
+# Automatic rewrite of the append only file.
+# Redis is able to automatically rewrite the log file implicitly calling
+# BGREWRITEAOF when the AOF log size will growth by the specified percentage.
+# 
+# This is how it works: Redis remembers the size of the AOF file after the
+# latest rewrite (or if no rewrite happened since the restart, the size of
+# the AOF at startup is used).
+#
+# This base size is compared to the current size. If the current size is
+# bigger than the specified percentage, the rewrite is triggered. Also
+# you need to specify a minimal size for the AOF file to be rewritten, this
+# is useful to avoid rewriting the AOF file even if the percentage increase
+# is reached but it is still pretty small.
+#
+# Specify a percentage of zero in order to disable the automatic AOF
+# rewrite feature.
+
+auto-aof-rewrite-percentage 100
+auto-aof-rewrite-min-size 64mb
+
+################################ LUA SCRIPTING  ###############################
+
+# Max execution time of a Lua script in milliseconds.
+#
+# If the maximum execution time is reached Redis will log that a script is
+# still in execution after the maximum allowed time and will start to
+# reply to queries with an error.
+#
+# When a long running script exceed the maximum execution time only the
+# SCRIPT KILL and SHUTDOWN NOSAVE commands are available. The first can be
+# used to stop a script that did not yet called write commands. The second
+# is the only way to shut down the server in the case a write commands was
+# already issue by the script but the user don't want to wait for the natural
+# termination of the script.
+#
+# Set it to 0 or a negative value for unlimited execution without warnings.
+lua-time-limit 5000
+
+################################## SLOW LOG ###################################
+
+# The Redis Slow Log is a system to log queries that exceeded a specified
+# execution time. The execution time does not include the I/O operations
+# like talking with the client, sending the reply and so forth,
+# but just the time needed to actually execute the command (this is the only
+# stage of command execution where the thread is blocked and can not serve
+# other requests in the meantime).
+# 
+# You can configure the slow log with two parameters: one tells Redis
+# what is the execution time, in microseconds, to exceed in order for the
+# command to get logged, and the other parameter is the length of the
+# slow log. When a new command is logged the oldest one is removed from the
+# queue of logged commands.
+
+# The following time is expressed in microseconds, so 1000000 is equivalent
+# to one second. Note that a negative number disables the slow log, while
+# a value of zero forces the logging of every command.
+slowlog-log-slower-than 10000
+
+# There is no limit to this length. Just be aware that it will consume memory.
+# You can reclaim memory used by the slow log with SLOWLOG RESET.
+slowlog-max-len 128
+
+############################### ADVANCED CONFIG ###############################
+
+# Hashes are encoded using a memory efficient data structure when they have a
+# small number of entries, and the biggest entry does not exceed a given
+# threshold. These thresholds can be configured using the following directives.
+hash-max-ziplist-entries 512
+hash-max-ziplist-value 64
+
+# Similarly to hashes, small lists are also encoded in a special way in order
+# to save a lot of space. The special representation is only used when
+# you are under the following limits:
+list-max-ziplist-entries 512
+list-max-ziplist-value 64
+
+# Sets have a special encoding in just one case: when a set is composed
+# of just strings that happens to be integers in radix 10 in the range
+# of 64 bit signed integers.
+# The following configuration setting sets the limit in the size of the
+# set in order to use this special memory saving encoding.
+set-max-intset-entries 512
+
+# Similarly to hashes and lists, sorted sets are also specially encoded in
+# order to save a lot of space. This encoding is only used when the length and
+# elements of a sorted set are below the following limits:
+zset-max-ziplist-entries 128
+zset-max-ziplist-value 64
+
+# Active rehashing uses 1 millisecond every 100 milliseconds of CPU time in
+# order to help rehashing the main Redis hash table (the one mapping top-level
+# keys to values). The hash table implementation Redis uses (see dict.c)
+# performs a lazy rehashing: the more operation you run into an hash table
+# that is rehashing, the more rehashing "steps" are performed, so if the
+# server is idle the rehashing is never complete and some more memory is used
+# by the hash table.
+# 
+# The default is to use this millisecond 10 times every second in order to
+# active rehashing the main dictionaries, freeing memory when possible.
+#
+# If unsure:
+# use "activerehashing no" if you have hard latency requirements and it is
+# not a good thing in your environment that Redis can reply form time to time
+# to queries with 2 milliseconds delay.
+#
+# use "activerehashing yes" if you don't have such hard requirements but
+# want to free memory asap when possible.
+activerehashing yes
+
+# The client output buffer limits can be used to force disconnection of clients
+# that are not reading data from the server fast enough for some reason (a
+# common reason is that a Pub/Sub client can't consume messages as fast as the
+# publisher can produce them).
+#
+# The limit can be set differently for the three different classes of clients:
+#
+# normal -> normal clients
+# slave  -> slave clients and MONITOR clients
+# pubsub -> clients subcribed to at least one pubsub channel or pattern
+#
+# The syntax of every client-output-buffer-limit directive is the following:
+#
+# client-output-buffer-limit <class> <hard limit> <soft limit> <soft seconds>
+#
+# A client is immediately disconnected once the hard limit is reached, or if
+# the soft limit is reached and remains reached for the specified number of
+# seconds (continuously).
+# So for instance if the hard limit is 32 megabytes and the soft limit is
+# 16 megabytes / 10 seconds, the client will get disconnected immediately
+# if the size of the output buffers reach 32 megabytes, but will also get
+# disconnected if the client reaches 16 megabytes and continuously overcomes
+# the limit for 10 seconds.
+#
+# By default normal clients are not limited because they don't receive data
+# without asking (in a push way), but just after a request, so only
+# asynchronous clients may create a scenario where data is requested faster
+# than it can read.
+#
+# Instead there is a default limit for pubsub and slave clients, since
+# subscribers and slaves receive data in a push fashion.
+#
+# Both the hard or the soft limit can be disabled just setting it to zero.
+client-output-buffer-limit normal 0 0 0
+client-output-buffer-limit slave 256mb 64mb 60
+client-output-buffer-limit pubsub 32mb 8mb 60
+
+################################## INCLUDES ###################################
+
+# Include one or more other config files here.  This is useful if you
+# have a standard template that goes to all Redis server but also need
+# to customize a few per-server settings.  Include files can include
+# other files, so use this wisely.
+#
+# include /path/to/local.conf
+# include /path/to/other.conf
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/redis/redis_3.0.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/redis/redis_3.0.2.bb
new file mode 100644
index 0000000..55f2c96
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/redis/redis_3.0.2.bb
@@ -0,0 +1,34 @@
+SUMMARY = "Redis key-value store"
+DESCRIPTION = "Redis is an open source, advanced key-value store."
+HOMEPAGE = "http://redis.io"
+SECTION = "libs"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=3c01b49fed4df1a79843688fa3f7b9d6"
+DEPENDS = ""
+
+SRC_URI = "http://download.redis.io/releases/${BP}.tar.gz \
+           file://hiredis-use-default-CC-if-it-is-set.patch \
+           file://lua-update-Makefile-to-use-environment-build-setting.patch \
+           file://oe-use-libc-malloc.patch \
+           file://redis.conf \
+           file://init-redis-server \
+"
+SRC_URI[md5sum] = "87be8867447f62524b584813e5a7bd14"
+SRC_URI[sha256sum] = "93e422c0d584623601f89b956045be158889ebe594478a2c24e1bf218495633f"
+
+inherit autotools-brokensep update-rc.d
+
+do_install() {
+    export PREFIX=${D}/${prefix}
+    oe_runmake install
+    install -d ${D}/${sysconfdir}/redis
+    install -m 0644 ${WORKDIR}/redis.conf ${D}/${sysconfdir}/redis/redis.conf
+    install -d ${D}/${sysconfdir}/init.d
+    install -m 0755 ${WORKDIR}/init-redis-server ${D}/${sysconfdir}/init.d/redis-server
+    install -d ${D}/var/lib/redis/
+}
+
+CONFFILES_${PN} = "${sysconfdir}/redis/redis.conf"
+
+INITSCRIPT_NAME = "redis-server"
+INITSCRIPT_PARAMS = "defaults 87"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/rrdtool/rrdtool_1.5.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/rrdtool/rrdtool_1.5.4.bb
new file mode 100644
index 0000000..216aafc
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/rrdtool/rrdtool_1.5.4.bb
@@ -0,0 +1,120 @@
+SUMMARY = "High performance data logging and graphing system for time series data"
+HOMEPAGE = "http://oss.oetiker.ch/rrdtool/"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=3349111ed0533471494beec99715bc9d"
+
+DEPENDS = "libpng zlib cairo pango glib-2.0 libxml2 groff-native"
+
+SRCREV = "04f70058cc894c0a3ee5d555ea1bb5a8d4bb8a0e"
+PV = "1.5.4"
+
+SRC_URI = "\
+    git://github.com/oetiker/rrdtool-1.x.git;branch=1.5 \
+"
+
+S = "${WORKDIR}/git"
+
+inherit cpan autotools-brokensep gettext pythonnative python-dir systemd
+
+BBCLASSEXTEND = "native"
+
+SYSTEMD_SERVICE_${PN} = "rrdcached.socket rrdcached.service"
+
+EXTRA_AUTORECONF = "-I m4"
+
+PACKAGECONFIG ??= "python perl ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}"
+
+PACKAGECONFIG[python] = "--enable-python=yes \
+am_cv_python_pythondir=${STAGING_LIBDIR}/python${PYTHON_BASEVERSION}/site-packages \
+am_cv_python_pyexecdir=${STAGING_LIBDIR}/python${PYTHON_BASEVERSION}/site-packages,\
+--disable-python,python,"
+
+PACKAGECONFIG[perl] = \
+"--enable-perl=yes --with-perl-options='INSTALLDIRS="vendor"' \
+ac_cv_path_PERL_CC='${CC}',  \
+--disable-perl,perl,"
+
+PACKAGECONFIG[dbi] = "--enable-libdbi,--disable-libdbi,libdbi"
+
+PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,--without-systemdsystemunitdir,systemd,"
+
+EXTRA_OECONF = " \
+    --enable-shared \
+    --disable-libwrap \
+    --program-prefix='' \
+    rd_cv_ieee_works=yes \
+    --disable-ruby \
+    --disable-lua \
+    --disable-tcl \
+    --disable-rpath \
+"
+
+export BUILD_SYS
+export HOST_SYS
+export STAGING_LIBDIR
+export STAGING_INCDIR
+
+# emulate cpan_do_configure
+EXTRA_OEMAKE = ' PERL5LIB="${PERL_ARCHLIB}" '
+# Avoid do_configure error on some hosts
+export PERLHOSTLIB = ""
+
+do_configure() {
+    #fix the pkglib problem with newer automake
+    #perl
+    sed -i -e "s|-Wl,--rpath -Wl,\$rp||g" \
+        ${S}/bindings/perl-shared/Makefile.PL
+
+    #python
+    sed -i -e '/PYTHON_INCLUDES="-I${/c \
+    PYTHON_INCLUDES="-I=/usr/include/python${PYTHON_BASEVERSION}"' \
+        ${S}/m4/acinclude.m4
+    #remove the useless RPATH from the rrdtool.so
+    sed -i -e 's|LD_RUN_PATH=$(libdir)||g' ${S}/bindings/Makefile.am
+
+    autotools_do_configure
+
+    #modify python sitepkg
+    #remove the dependency of perl-shared:Makefile
+    #or perl-shared/Makefile will be regenerated
+    #if any code touch bindings/Makefile after below perl bindings code
+    sed -i -e "s:python/setup.py install:python/setup.py install \
+        --install-lib=${PYTHON_SITEPACKAGES_DIR}:" \
+        -e "s:perl-shared/Makefile.PL Makefile:perl-shared/Makefile.PL:" \
+        ${B}/bindings/Makefile
+
+    #redo the perl bindings
+    (
+    cd ${S}/bindings/perl-shared;
+    perl Makefile.PL INSTALLDIRS="vendor" INSTALLPRIVLIB="abc";
+
+    cd ../../bindings/perl-piped;
+    perl Makefile.PL INSTALLDIRS="vendor";
+    )
+
+    #change the interpreter in file
+    sed -i -e "s|^PERL = ${STAGING_BINDIR_NATIVE}/.*|PERL = /usr/bin/perl|g" \
+        ${B}/examples/Makefile
+    sed -i -e "s|${STAGING_BINDIR_NATIVE}/perl-native/perl|/usr/bin/perl|g" \
+        ${B}/examples/*.pl
+}
+
+PACKAGES =+ "${PN}-perl ${PN}-python"
+
+FILES_${PN}-doc += "${datadir}/rrdtool/examples"
+
+DESCRIPTION_${PN}-perl = \
+"The ${PN}-perl package includes RRDtool bindings for perl."
+FILES_${PN}-perl = "${libdir}/perl/vendor_perl/*/*.pm \
+    ${libdir}/perl/vendor_perl/*/auto/RRDs/RRDs.*"
+RDEPENDS_${PN}-perl = "perl perl-module-lib perl-module-getopt-long perl-module-time-hires \
+    perl-module-io-file perl-module-ipc-open2 perl-module-io-socket"
+
+DESCRIPTION_${PN}-python = \
+"The ${PN}-python package includes RRDtool bindings for python."
+FILES_${PN}-python = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/*"
+RDEPENDS_${PN}-python = "python"
+
+FILES_${PN}-dbg += "${libdir}/perl/vendor_perl/*/auto/RRDs/.debug \
+    ${libdir}/python${PYTHON_BASEVERSION}/site-packages/.debug"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/enable_tls_ptests.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/enable_tls_ptests.patch
new file mode 100644
index 0000000..c858f32
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/enable_tls_ptests.patch
@@ -0,0 +1,28 @@
+Enable tls ptest
+
+Signed-off-by: Tudor Florea <tudor.florea@enea.com>
+Upstream-Status: Pending
+
+--- rsyslog-7.4.4/tests/Makefile.am.orig	2013-08-30 18:30:41.000000000 +0200
++++ rsyslog-7.4.4/tests/Makefile.am	2015-10-01 09:38:45.176289031 +0200
+@@ -118,15 +118,13 @@
+ endif
+ 
+ if ENABLE_GNUTLS
+-# TODO: re-enable in newer version
+-#TESTS +=  \
+-	#sndrcv_tls_anon.sh \
+-	#sndrcv_tls_anon_rebind.sh \
+-	#imtcp-tls-basic.sh
++TESTS +=  \
++	 imtcp-tls-basic.sh \
++	 imtcp_conndrop_tls.sh
+ if HAVE_VALGRIND
+ TESTS += imtcp-tls-basic-vg.sh \
+-	 imtcp_conndrop_tls-vg.sh 
+-	 manytcp-too-few-tls-vg.sh 
++	 imtcp_conndrop_tls-vg.sh \
++	 manytcp-too-few-tls.sh
+ endif
+ endif
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/initscript b/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/initscript
new file mode 100644
index 0000000..7a8f8f9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/initscript
@@ -0,0 +1,118 @@
+#! /bin/sh
+#
+# This is an init script for openembedded
+# Copy it to /etc/init.d/rsyslog and type
+# > update-rc.d rsyslog defaults 5
+#
+
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+NAME=rsyslog
+RSYSLOGD=rsyslogd
+RSYSLOGD_BIN=/usr/sbin/rsyslogd
+RSYSLOGD_OPTIONS=""
+RSYSLOGD_PIDFILE=/var/run/rsyslogd.pid
+SCRIPTNAME=/etc/init.d/$NAME
+# Exit if the package is not installed
+[ -x "$RSYSLOGD_BIN" ] || exit 0
+# Read configuration variable file if it is present
+[ -r /etc/default/$NAME ] && . /etc/default/$NAME
+#
+# Function that starts the daemon/service
+#
+do_start()
+{
+        DAEMON=$1
+        DAEMON_ARGS=$2
+        PIDFILE=$3
+        # Return
+        #   0 if daemon has been started
+        #   1 if daemon could not be started
+        #   if daemon had already been started, start-stop-daemon will return 1
+        #   so add -o/--oknodo(if nothing is done, exit 0)
+        start-stop-daemon -S --quiet --pidfile $PIDFILE --exec $DAEMON \
+                             --oknodo -- $DAEMON_ARGS || return 1
+}
+#
+# Function that stops the daemon/service
+#
+do_stop()
+{
+        NAME=$1
+        PIDFILE=$2
+        # Return
+        #   0 if daemon has been stopped
+        #   1 if daemon was already stopped
+        #   2 if daemon could not be stopped
+        #   other if a failure occurred
+        # QUIT/TERM/INT should work here, but they don't ????? 
+        start-stop-daemon -K --quiet --signal KILL --pidfile $PIDFILE --name $NAME
+        RETVAL="$?"
+        rm -f $PIDFILE
+        return "$RETVAL"
+}
+#
+# Function that sends a SIGHUP to the daemon/service
+#
+do_reload() {
+        NAME=$1
+        PIDFILE=$2
+        start-stop-daemon -K --signal HUP --quiet --pidfile $PIDFILE --name $NAME
+        return 0
+}
+
+do_status() {
+        NAME=$1
+        PIDFILE=$2
+        # -t: test only but not stop
+        start-stop-daemon -K -t --quiet --pidfile $PIDFILE --name $NAME
+        # exit with status 0 if process is found
+        if [ "$?" = "0" ]; then
+                return 0
+        else
+                return 1
+        fi
+}
+
+case "$1" in
+  start)
+        echo -n "starting $RSYSLOGD ... "
+        do_start "$RSYSLOGD_BIN" "$RSYSLOGD_OPTIONS" "$RSYSLOGD_PIDFILE"
+        case "$?" in
+                0) echo "done" ;;
+                1) echo "failed" ;;
+        esac
+        ;;
+  stop)
+        echo -n "stopping $RSYSLOGD ... "
+        do_stop "$RSYSLOGD" "$RSYSLOGD_PIDFILE"
+        case "$?" in
+                0|1) echo "done" ;;
+                2) echo "failed" ;;
+        esac
+        ;;
+  reload|force-reload)
+        echo -n "reloading $RSYSLOGD ... "
+        do_reload "$RSYSLOGD" "$RSYSLOGD_PIDFILE"
+        echo "done"
+        ;;
+  restart)
+        $0 stop
+        $0 start
+        ;;
+  status)
+        echo -n "status $RSYSLOGD ... "
+        do_status "$RSYSLOGD" "$RSYSLOGD_PIDFILE"
+        if [ "$?" = "0" ]; then
+                echo "running"
+                exit 0        
+        else
+                echo "stopped"
+                exit 1        
+        fi
+        ;;
+  *)
+        echo "Usage: $SCRIPTNAME {start|stop|status|restart|reload|force-reload}" >&2
+        exit 3
+        ;;
+esac
+exit 0
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/json-0.12-fix.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/json-0.12-fix.patch
new file mode 100644
index 0000000..3dd85a7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/json-0.12-fix.patch
@@ -0,0 +1,47 @@
+json-c-0.12 unlike 0.11 doesn't install json -> json-c symlink in include
+
+* Resolved in Version 7.6.4 [v7.6-stable] 2014-09-12
+  https://github.com/rsyslog/rsyslog/blob/v7-stable/ChangeLog
+* permits to build against json-c 0.12
+  Unfortunately, json-c had an ABI breakage, so this is necessary. Note
+  that versions prior to 0.12 had security issues (CVE-2013-6370,
+  CVE-2013-6371) and so it is desirable to link against the new version.
+  Thanks to Thomas D. for the patch. Note that at least some distros
+  have fixed the security issue in older versions of json-c, so this
+  seems to apply mostly when building from sources.
+
+Upstream-Status: Backport
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+
+diff --git a/plugins/ommongodb/ommongodb.c b/plugins/ommongodb/ommongodb.c
+index 41c0d76..682c40e 100644
+--- a/plugins/ommongodb/ommongodb.c
++++ b/plugins/ommongodb/ommongodb.c
+@@ -33,9 +33,9 @@
+ #include <stdint.h>
+ #include <time.h>
+ #include <mongo.h>
+-#include <json.h>
++#include <json-c/json.h>
+ /* For struct json_object_iter, should not be necessary in future versions */
+-#include <json_object_private.h>
++#include <json-c/json_object_private.h>
+ 
+ #include "rsyslog.h"
+ #include "conf.h"
+diff --git a/runtime/msg.c b/runtime/msg.c
+index d04ce7b..b367e1f 100644
+--- a/runtime/msg.c
++++ b/runtime/msg.c
+@@ -41,9 +41,9 @@
+ #endif
+ #include <netdb.h>
+ #include <libestr.h>
+-#include <json.h>
++#include <json-c/json.h>
+ /* For struct json_object_iter, should not be necessary in future versions */
+-#include <json_object_private.h>
++#include <json-c/json_object_private.h>
+ #if HAVE_MALLOC_H
+ #  include <malloc.h>
+ #endif
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/replace_deprecated_GnuTLS_functions.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/replace_deprecated_GnuTLS_functions.patch
new file mode 100644
index 0000000..be05eee
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/replace_deprecated_GnuTLS_functions.patch
@@ -0,0 +1,73 @@
+replace deprecated GnuTLS functions with newer ones if available
+
+closes https://github.com/rsyslog/rsyslog/issues/302
+
+Upstream fix https://github.com/rsyslog/rsyslog/commit/b34c35e38f258935c0e92ca754da097d7f3f0f58
+
+Upstream-Status: Backport
+Signed-off-by: Tudor Florea  <tudor.florea@enea.com>
+
+---
+ configure.ac       |  2 ++
+ runtime/nsd_gtls.c | 21 ++++++++++++++++++---
+ 2 files changed, 20 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 643fc94..56835fb 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -763,6 +763,8 @@ AC_ARG_ENABLE(gnutls,
+ if test "x$enable_gnutls" = "xyes"; then
+ 	PKG_CHECK_MODULES(GNUTLS, gnutls >= 1.4.0)
+ 	AC_DEFINE([ENABLE_GNUTLS], [1], [Indicator that GnuTLS is present])
++        AC_CHECK_LIB(gnutls, gnutls_global_init)
++	AC_CHECK_FUNCS(gnutls_certificate_set_retrieve_function,,)
+ fi
+ AM_CONDITIONAL(ENABLE_GNUTLS, test x$enable_gnutls = xyes)
+ 
+diff --git a/runtime/nsd_gtls.c b/runtime/nsd_gtls.c
+index a763e4b..e127834 100644
+--- a/runtime/nsd_gtls.c
++++ b/runtime/nsd_gtls.c
+@@ -232,15 +232,26 @@ gtlsLoadOurCertKey(nsd_gtls_t *pThis)
+  */
+ static int
+ gtlsClientCertCallback(gnutls_session session,
+-              __attribute__((unused)) const gnutls_datum* req_ca_rdn, int __attribute__((unused)) nreqs,
+-              __attribute__((unused)) const gnutls_pk_algorithm* sign_algos, int __attribute__((unused)) sign_algos_length,
+-              gnutls_retr_st *st)
++        __attribute__((unused)) const gnutls_datum* req_ca_rdn,
++	int __attribute__((unused)) nreqs,
++        __attribute__((unused)) const gnutls_pk_algorithm* sign_algos,
++	int __attribute__((unused)) sign_algos_length,
++#if HAVE_GNUTLS_CERTIFICATE_SET_RETRIEVE_FUNCTION
++	gnutls_retr2_st* st
++#else
++        gnutls_retr_st *st
++#endif
++	)
+ {
+ 	nsd_gtls_t *pThis;
+ 
+ 	pThis = (nsd_gtls_t*) gnutls_session_get_ptr(session);
+ 
++#if HAVE_GNUTLS_CERTIFICATE_SET_RETRIEVE_FUNCTION
++	st->cert_type = GNUTLS_CRT_X509;
++#else
+ 	st->type = GNUTLS_CRT_X509;
++#endif
+ 	st->ncerts = 1;
+ 	st->cert.x509 = &pThis->ourCert;
+ 	st->key.x509 = pThis->ourKey;
+@@ -1625,7 +1625,11 @@ Connect(nsd_t *pNsd, int family, uchar *port, uchar *host)
+ 	gnutls_session_set_ptr(pThis->sess, (void*)pThis);
+ 	iRet = gtlsLoadOurCertKey(pThis); /* first load .pem files */
+ 	if(iRet == RS_RET_OK) {
++#		if HAVE_GNUTLS_CERTIFICATE_SET_RETRIEVE_FUNCTION 
++		gnutls_certificate_set_retrieve_function(xcred, gtlsClientCertCallback);
++#		else
+ 		gnutls_certificate_client_set_retrieve_function(xcred, gtlsClientCertCallback);
++#	endif
+ 	} else if(iRet != RS_RET_CERTLESS) {
+ 		FINALIZE; /* we have an error case! */
+ 	}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog-fix-ptest-not-finish.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog-fix-ptest-not-finish.patch
new file mode 100644
index 0000000..bdcb6e2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog-fix-ptest-not-finish.patch
@@ -0,0 +1,96 @@
+$MaxMessageSize doesn't work if before $IncludeConfig diag-common.conf, then
+test cases fall into infinite loop with error message:
+
+8062.511110729:4902c480: error: message received is larger than max msg size, we split it
+8062.511152265:4902c480: discarding zero-sized message
+
+Update configure to fix it.
+
+Upstream-Status: pending
+
+Kai Kang <kai.kang@windriver.com>
+---
+diff -Nru rsyslog-7.4.4/tests/testsuites/complex1.conf rsyslog-7.4.4.new/tests/testsuites/complex1.conf
+--- rsyslog-7.4.4/tests/testsuites/complex1.conf	2013-08-31 00:30:41.000000000 +0800
++++ rsyslog-7.4.4.new/tests/testsuites/complex1.conf	2013-12-18 14:28:10.644004184 +0800
+@@ -1,7 +1,7 @@
+ # complex test case with multiple actions in gzip mode
+ # rgerhards, 2009-05-22
+-$MaxMessageSize 10k
+ $IncludeConfig diag-common.conf
++$MaxMessageSize 10k
+ 
+ $MainMsgQueueTimeoutEnqueue 5000
+ 
+diff -Nru rsyslog-7.4.4/tests/testsuites/gzipwr_large.conf rsyslog-7.4.4.new/tests/testsuites/gzipwr_large.conf
+--- rsyslog-7.4.4/tests/testsuites/gzipwr_large.conf	2012-04-04 14:29:55.000000000 +0800
++++ rsyslog-7.4.4.new/tests/testsuites/gzipwr_large.conf	2013-12-18 14:28:10.645004186 +0800
+@@ -1,7 +1,7 @@
+ # simple async writing test
+ # rgerhards, 2010-03-09
+-$MaxMessageSize 10k
+ $IncludeConfig diag-common.conf
++$MaxMessageSize 10k
+ 
+ $ModLoad ../plugins/imtcp/.libs/imtcp
+ $MainMsgQueueTimeoutShutdown 10000
+diff -Nru rsyslog-7.4.4/tests/testsuites/gzipwr_large_dynfile.conf rsyslog-7.4.4.new/tests/testsuites/gzipwr_large_dynfile.conf
+--- rsyslog-7.4.4/tests/testsuites/gzipwr_large_dynfile.conf	2012-04-04 14:29:55.000000000 +0800
++++ rsyslog-7.4.4.new/tests/testsuites/gzipwr_large_dynfile.conf	2013-12-18 14:28:10.645004186 +0800
+@@ -1,7 +1,7 @@
+ # simple async writing test
+ # rgerhards, 2010-03-09
+-$MaxMessageSize 10k
+ $IncludeConfig diag-common.conf
++$MaxMessageSize 10k
+ 
+ $ModLoad ../plugins/imtcp/.libs/imtcp
+ $MainMsgQueueTimeoutShutdown 10000
+diff -Nru rsyslog-7.4.4/tests/testsuites/imptcp_conndrop.conf rsyslog-7.4.4.new/tests/testsuites/imptcp_conndrop.conf
+--- rsyslog-7.4.4/tests/testsuites/imptcp_conndrop.conf	2013-08-31 00:30:41.000000000 +0800
++++ rsyslog-7.4.4.new/tests/testsuites/imptcp_conndrop.conf	2013-12-18 14:28:10.646004189 +0800
+@@ -1,7 +1,7 @@
+ # simple async writing test
+ # rgerhards, 2010-03-09
+-$MaxMessageSize 10k
+ $IncludeConfig diag-common.conf
++$MaxMessageSize 10k
+ 
+ $ModLoad ../plugins/imptcp/.libs/imptcp
+ $MainMsgQueueTimeoutShutdown 10000
+diff -Nru rsyslog-7.4.4/tests/testsuites/imptcp_large.conf rsyslog-7.4.4.new/tests/testsuites/imptcp_large.conf
+--- rsyslog-7.4.4/tests/testsuites/imptcp_large.conf	2013-08-31 00:30:41.000000000 +0800
++++ rsyslog-7.4.4.new/tests/testsuites/imptcp_large.conf	2013-12-18 14:28:10.646004189 +0800
+@@ -1,7 +1,7 @@
+ # simple async writing test
+ # rgerhards, 2010-03-09
+-$MaxMessageSize 10k
+ $IncludeConfig diag-common.conf
++$MaxMessageSize 10k
+ 
+ $ModLoad ../plugins/imptcp/.libs/imptcp
+ $MainMsgQueueTimeoutShutdown 10000
+diff -Nru rsyslog-7.4.4/tests/testsuites/imtcp_conndrop.conf rsyslog-7.4.4.new/tests/testsuites/imtcp_conndrop.conf
+--- rsyslog-7.4.4/tests/testsuites/imtcp_conndrop.conf	2013-07-19 20:59:03.000000000 +0800
++++ rsyslog-7.4.4.new/tests/testsuites/imtcp_conndrop.conf	2013-12-18 14:28:10.646004189 +0800
+@@ -1,7 +1,7 @@
+ # simple async writing test
+ # rgerhards, 2010-03-09
+-$MaxMessageSize 10k
+ $IncludeConfig diag-common.conf
++$MaxMessageSize 10k
+ 
+ $ModLoad ../plugins/imtcp/.libs/imtcp
+ $MainMsgQueueTimeoutShutdown 10000
+diff -Nru rsyslog-7.4.4/tests/testsuites/wr_large.conf rsyslog-7.4.4.new/tests/testsuites/wr_large.conf
+--- rsyslog-7.4.4/tests/testsuites/wr_large.conf	2012-04-04 14:29:55.000000000 +0800
++++ rsyslog-7.4.4.new/tests/testsuites/wr_large.conf	2013-12-18 14:28:10.647004190 +0800
+@@ -1,7 +1,7 @@
+ # simple async writing test
+ # rgerhards, 2010-03-09
+-$MaxMessageSize 10k
+ $IncludeConfig diag-common.conf
++$MaxMessageSize 10k
+ 
+ $ModLoad ../plugins/imtcp/.libs/imtcp
+ $MainMsgQueueTimeoutShutdown 10000
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog.conf b/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog.conf
new file mode 100644
index 0000000..324ae6d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog.conf
@@ -0,0 +1,86 @@
+# if you experience problems, check
+# http://www.rsyslog.com/troubleshoot for assistance
+
+# rsyslog v3: load input modules
+# If you do not load inputs, nothing happens!
+# You may need to set the module load path if modules are not found.
+#
+# Ported from debian's sysklogd.conf
+
+$ModLoad immark   # provides --MARK-- message capability
+$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
+$ModLoad imklog   # kernel logging (formerly provided by rklogd)
+
+#
+# Set the default permissions
+#
+$FileOwner root
+$FileGroup adm
+$FileCreateMode 0640
+$DirCreateMode 0755
+$Umask 0022
+
+auth,authpriv.*                 /var/log/auth.log
+*.*;auth,authpriv.none          -/var/log/syslog
+cron.*                          /var/log/cron.log
+daemon.*                        -/var/log/daemon.log
+kern.*                          -/var/log/kern.log
+lpr.*                           -/var/log/lpr.log
+mail.*                          -/var/log/mail.log
+user.*                          -/var/log/user.log
+
+#
+# Logging for the mail system.  Split it up so that
+# it is easy to write scripts to parse these files.
+#
+mail.info                       -/var/log/mail.info
+mail.warn                       -/var/log/mail.warn
+mail.err                        /var/log/mail.err
+
+# Logging for INN news system
+#
+news.crit                       /var/log/news.crit
+news.err                        /var/log/news.err
+news.notice                     -/var/log/news.notice
+
+#
+# Some `catch-all' logfiles.
+#
+*.=debug;\
+        auth,authpriv.none;\
+        news.none;mail.none     -/var/log/debug
+*.=info;*.=notice;*.=warn;\
+        auth,authpriv.none;\
+        cron,daemon.none;\
+        mail,news.none          -/var/log/messages
+
+#
+# Emergencies are sent to everybody logged in.
+#
+*.emerg                         :omusrmsg:*
+
+# Save boot messages also to boot.log
+local7.*                                                /var/log/boot.log
+
+# Remote Logging (we use TCP for reliable delivery)
+# An on-disk queue is created for this action. If the remote host is
+# down, messages are spooled to disk and sent when it is up again.
+#$WorkDirectory /var/spool/rsyslog # where to place spool files
+#$ActionQueueFileName uniqName # unique name prefix for spool files
+$ActionQueueMaxDiskSpace 10m   # 1gb space limit (use as much as possible)
+#$ActionQueueSaveOnShutdown on # save messages to disk on shutdown
+#$ActionQueueType LinkedList   # run asynchronously
+#$ActionResumeRetryCount -1    # infinite retries if host is down
+# remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional
+#*.* @@remote-host:514
+
+
+# ######### Receiving Messages from Remote Hosts ##########
+# TCP Syslog Server:
+# provides TCP syslog reception and GSS-API (if compiled to support it)
+#$ModLoad imtcp.so  # load module
+#$InputTCPServerRun 514 # start up TCP listener at port 514
+
+# UDP Syslog Server:
+#$ModLoad imudp.so  # provides UDP syslog reception
+#$UDPServerRun 514 # start a UDP syslog server at standard port 514
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog.logrotate b/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog.logrotate
new file mode 100644
index 0000000..94ec517
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog.logrotate
@@ -0,0 +1,39 @@
+# /etc/logrotate.d/rsyslog - Ported from Debian
+
+/var/log/syslog
+{
+        rotate 7
+        daily
+        missingok
+        notifempty
+        delaycompress
+        compress
+        postrotate
+		/bin/kill -HUP `cat /var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true
+        endscript
+}
+
+/var/log/mail.info
+/var/log/mail.warn
+/var/log/mail.err
+/var/log/mail.log
+/var/log/daemon.log
+/var/log/kern.log
+/var/log/auth.log
+/var/log/user.log
+/var/log/lpr.log
+/var/log/cron.log
+/var/log/debug
+/var/log/messages
+{
+        rotate 4
+        weekly
+        missingok
+        notifempty
+        compress
+        delaycompress
+        sharedscripts
+        postrotate
+		/bin/kill -HUP `cat /var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true
+        endscript
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/run-ptest b/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/run-ptest
new file mode 100644
index 0000000..3770a75
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+#
+make -C tests -k check-TESTS
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/use-pkgconfig-to-check-libgcrypt.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/use-pkgconfig-to-check-libgcrypt.patch
new file mode 100644
index 0000000..ebc1070
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/use-pkgconfig-to-check-libgcrypt.patch
@@ -0,0 +1,48 @@
+From 5c3ba79177f7d1763db33c4358af2af60ff214b7 Mon Sep 17 00:00:00 2001
+From: Roy Li <rongqing.li@windriver.com> 
+Date: Wed, 18 Jun 2014 13:46:52 +0800
+Subject: [PATCH] use pkgconfig to check libgcrypt
+
+Upstream-status: Inappropriate [configuration]
+
+libgcrypt does no longer provide libgcrypt-config, and provide
+*.pc, so we should use pkgconfig to check
+
+Signed-off-by: Roy Li <rongqing.li@windriver.com>
+---
+ configure.ac |   19 +------------------
+ 1 file changed, 1 insertion(+), 18 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 017116e..1b880f8 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -784,24 +784,7 @@ AC_ARG_ENABLE(libgcrypt,
+         [enable_libgcrypt=yes]
+ )
+ if test "x$enable_libgcrypt" = "xyes"; then
+-        AC_CHECK_PROG(
+-      	    [HAVE_LIBGCRYPT_CONFIG],
+-            [libgcrypt-config],
+-            [yes],,,
+-            )
+-        if test "x${HAVE_LIBGCRYPT_CONFIG}" != "xyes"; then
+-           AC_MSG_FAILURE([libgcrypt-config not found in PATH])
+-        fi
+-        AC_CHECK_LIB(
+-		[gcrypt],
+-        	[gcry_cipher_open],
+-        	[LIBGCRYPT_CFLAGS="`libgcrypt-config --cflags`"
+-        	LIBGCRYPT_LIBS="`libgcrypt-config --libs`"
+-        	],
+-        	[AC_MSG_FAILURE([libgcrypt is missing])],
+-        	[`libgcrypt-config --libs --cflags`]
+-        	)
+-	AC_DEFINE([ENABLE_LIBGCRYPT], [1], [Indicator that LIBGCRYPT is present])
++	PKG_CHECK_MODULES(LIBGCRYPT, libgcrypt)
+ fi
+ AM_CONDITIONAL(ENABLE_LIBGCRYPT, test x$enable_libgcrypt = xyes)
+ AC_SUBST(LIBGCRYPT_CFLAGS)
+-- 
+1.7.9.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/use_gnutls_certificate_type_set_priority_only_if_available.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/use_gnutls_certificate_type_set_priority_only_if_available.patch
new file mode 100644
index 0000000..e1dab75
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/use_gnutls_certificate_type_set_priority_only_if_available.patch
@@ -0,0 +1,79 @@
+From 21674039db99d1067e9df4df04d965297d62c6af Mon Sep 17 00:00:00 2001
+From: Rainer Gerhards <rgerhards@adiscon.com>
+Date: Mon, 18 May 2015 09:36:02 +0200
+Subject: [PATCH] use gnutls_certificate_type_set_priority() only if available
+
+The gnutls_certificate_type_set_priority function is deprecated
+and not available in recent GnuTLS versions. However, there is no
+doc how to properly replace it with gnutls_priority_set_direct.
+A lot of folks have simply removed it, when they also called
+gnutls_set_default_priority. This is what we now also do. If
+this causes problems or someone has an idea of how to replace
+the deprecated function in a better way, please let us know!
+In any case, we use it as long as it is available and let
+not insult us by the deprecation warnings.
+
+Upstream-Status: Backport
+Signed-off-by: Tudor Florea  <tudor.florea@enea.com>
+
+---
+ configure.ac       |  1 +
+ runtime/nsd_gtls.c | 18 ++++++++++++++++--
+ 2 files changed, 17 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 56835fb..1c2be01 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -765,6 +765,7 @@ if test "x$enable_gnutls" = "xyes"; then
+ 	AC_DEFINE([ENABLE_GNUTLS], [1], [Indicator that GnuTLS is present])
+         AC_CHECK_LIB(gnutls, gnutls_global_init)
+ 	AC_CHECK_FUNCS(gnutls_certificate_set_retrieve_function,,)
++	AC_CHECK_FUNCS(gnutls_certificate_type_set_priority,,)
+ fi
+ AM_CONDITIONAL(ENABLE_GNUTLS, test x$enable_gnutls = xyes)
+ 
+diff --git a/runtime/nsd_gtls.c b/runtime/nsd_gtls.c
+index e127834..4b6aab1 100644
+--- a/runtime/nsd_gtls.c
++++ b/runtime/nsd_gtls.c
+@@ -1658,8 +1658,9 @@ Connect(nsd_t *pNsd, int family, uchar *port, uchar *host)
+ 	nsd_gtls_t *pThis = (nsd_gtls_t*) pNsd;
+ 	int sock;
+ 	int gnuRet;
+-	/* TODO: later? static const int cert_type_priority[3] = { GNUTLS_CRT_X509, GNUTLS_CRT_OPENPGP, 0 };*/
++#	if HAVE_GNUTLS_CERTIFICATE_TYPE_SET_PRIORITY
+ 	static const int cert_type_priority[2] = { GNUTLS_CRT_X509, 0 };
++#	endif
+ 	DEFiRet;
+ 
+ 	ISOBJ_TYPE_assert(pThis, nsd_gtls);
+@@ -1688,14 +1689,27 @@ Connect(nsd_t *pNsd, int family, uchar *port, uchar *host)
+ 		gnutls_certificate_set_retrieve_function(xcred, gtlsClientCertCallback);
+ #		else
+ 		gnutls_certificate_client_set_retrieve_function(xcred, gtlsClientCertCallback);
+-#	endif
++#		endif
+ 	} else if(iRet != RS_RET_CERTLESS) {
+ 		FINALIZE; /* we have an error case! */
+ 	}
+ 
+ 	/* Use default priorities */
+ 	CHKgnutls(gnutls_set_default_priority(pThis->sess));
++#	if HAVE_GNUTLS_CERTIFICATE_TYPE_SET_PRIORITY
++	/* The gnutls_certificate_type_set_priority function is deprecated
++	 * and not available in recent GnuTLS versions. However, there is no
++	 * doc how to properly replace it with gnutls_priority_set_direct.
++	 * A lot of folks have simply removed it, when they also called
++	 * gnutls_set_default_priority. This is what we now also do. If
++	 * this causes problems or someone has an idea of how to replace
++	 * the deprecated function in a better way, please let us know!
++	 * In any case, we use it as long as it is available and let
++	 * not insult us by the deprecation warnings.
++	 * 2015-05-18 rgerhards
++	 */
+ 	CHKgnutls(gnutls_certificate_type_set_priority(pThis->sess, cert_type_priority));
++#	endif
+ 
+ 	/* put the x509 credentials to the current session */
+ 	CHKgnutls(gnutls_credentials_set(pThis->sess, GNUTLS_CRD_CERTIFICATE, xcred));
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_7.6.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_7.6.1.bb
new file mode 100644
index 0000000..c1d923c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_7.6.1.bb
@@ -0,0 +1,178 @@
+SUMMARY = "Rsyslog is an enhanced multi-threaded syslogd"
+DESCRIPTION = "\
+Rsyslog is an enhanced syslogd supporting, among others, MySQL,\
+ PostgreSQL, failover log destinations, syslog/tcp, fine grain\
+ output format control, high precision timestamps, queued operations\
+ and the ability to filter on any message part. It is quite\
+ compatible to stock sysklogd and can be used as a drop-in replacement.\
+ Its advanced features make it suitable for enterprise-class,\
+ encryption protected syslog relay chains while at the same time being\
+ very easy to setup for the novice user."
+
+DEPENDS = "zlib libestr json-c bison-native flex-native liblogging"
+HOMEPAGE = "http://www.rsyslog.com/"
+LICENSE = "GPLv3 & LGPLv3 & Apache-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=51d9635e646fb75e1b74c074f788e973 \
+                    file://COPYING.LESSER;md5=cb7903f1e5c39ae838209e130dca270a \
+                    file://COPYING.ASL20;md5=052f8a09206615ab07326ff8ce2d9d32\
+"
+
+SRC_URI = "http://www.rsyslog.com/download/files/download/rsyslog/${BPN}-${PV}.tar.gz \
+           file://initscript \
+           file://rsyslog.conf \
+           file://rsyslog.logrotate \
+           file://use-pkgconfig-to-check-libgcrypt.patch \
+           file://run-ptest \
+           file://rsyslog-fix-ptest-not-finish.patch \
+           file://json-0.12-fix.patch \
+           file://replace_deprecated_GnuTLS_functions.patch \
+           file://use_gnutls_certificate_type_set_priority_only_if_available.patch \
+           file://enable_tls_ptests.patch \
+"
+
+SRC_URI[md5sum] = "093c462a5245012bd9e7b82dd8aedffb"
+SRC_URI[sha256sum] = "357f089d866c351d5fe5b7139fa85b010223d77b3c21f29b2a1baa8688926111"
+
+inherit autotools pkgconfig systemd update-rc.d update-alternatives ptest
+
+EXTRA_OECONF += "--enable-cached-man-pages"
+
+# first line is default yes in configure
+PACKAGECONFIG ??= " \
+    zlib rsyslogd rsyslogrt klog inet regexp uuid libgcrypt \
+    imdiag gnutls imfile \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'snmp', 'snmp', '', d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'testbench ${VALGRIND}', '', d)} \
+"
+
+# default yes in configure
+PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib,"
+PACKAGECONFIG[rsyslogd] = "--enable-rsyslogd,--disable-rsyslogd,,"
+PACKAGECONFIG[rsyslogrt] = "--enable-rsyslogrt,--disable-rsyslogrt,,"
+PACKAGECONFIG[inet] = "--enable-inet,--disable-inet,,"
+PACKAGECONFIG[klog] = "--enable-klog,--disable-klog,,"
+PACKAGECONFIG[regexp] = "--enable-regexp,--disable-regexp,,"
+PACKAGECONFIG[uuid] = "--enable-uuid,--disable-uuid,util-linux,"
+PACKAGECONFIG[libgcrypt] = "--enable-libgcrypt,--disable-libgcrypt,libgcrypt,"
+PACKAGECONFIG[testbench] = "--enable-testbench,--disable-testbench,,"
+
+# default no in configure
+PACKAGECONFIG[debug] = "--enable-debug,--disable-debug,,"
+PACKAGECONFIG[imdiag] = "--enable-imdiag,--disable-imdiag,,"
+PACKAGECONFIG[imfile] = "--enable-imfile,--disable-imfile,,"
+PACKAGECONFIG[snmp] = "--enable-snmp,--disable-snmp,net-snmp,"
+PACKAGECONFIG[gnutls] = "--enable-gnutls,--disable-gnutls,gnutls,"
+PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,--without-systemdsystemunitdir,systemd,"
+PACKAGECONFIG[mysql] = "--enable-mysql,--disable-mysql,mysql5,"
+PACKAGECONFIG[postgresql] = "--enable-pgsql,--disable-pgsql,postgresql,"
+PACKAGECONFIG[libdbi] = "--enable-libdbi,--disable-libdbi,libdbi,"
+PACKAGECONFIG[mail] = "--enable-mail,--disable-mail,,"
+PACKAGECONFIG[gui] = "--enable-gui,--disable-gui,,"
+PACKAGECONFIG[valgrind] = "--enable-valgrind,--disable-valgrind,valgrind,"
+
+TESTDIR = "tests"
+do_compile_ptest() {
+    echo 'buildtest-TESTS: $(check_PROGRAMS)' >> ${TESTDIR}/Makefile
+    oe_runmake -C ${TESTDIR} buildtest-TESTS
+}
+
+do_install_ptest() {
+    # install the tests
+    cp -rf ${S}/${TESTDIR} ${D}${PTEST_PATH}
+    cp -rf ${B}/${TESTDIR} ${D}${PTEST_PATH}
+
+    # do NOT need to rebuild Makefile itself
+    sed -i 's/^Makefile:.*$/Makefile:/' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
+
+    # fix the srcdir, top_srcdir
+    sed -i 's,^\(srcdir = \).*,\1${PTEST_PATH}/tests,' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
+    sed -i 's,^\(top_srcdir = \).*,\1${PTEST_PATH}/tests,' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
+
+    # valgrind is not compatible with arm and mips,
+    # so remove related test cases if there is no valgrind.
+    if [ x${VALGRIND} = x ]; then
+        sed -i '/udp-msgreduc-/d' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
+    fi
+
+    # install test-driver
+    install -m 644 ${S}/test-driver ${D}${PTEST_PATH}/${TESTDIR}
+
+    # install necessary links
+    install -d ${D}${PTEST_PATH}/tools
+    ln -sf ${sbindir}/rsyslogd ${D}${PTEST_PATH}/tools/rsyslogd
+
+    install -d ${D}${PTEST_PATH}/runtime
+    install -d ${D}${PTEST_PATH}/runtime/.libs
+    (
+        cd ${D}/${libdir}/rsyslog
+        allso="*.so"
+        for i in $allso; do
+            ln -sf ${libdir}/rsyslog/$i ${D}${PTEST_PATH}/runtime/.libs/$i
+        done
+    )
+
+    # fix the module load path with runtime/.libs
+    find ${D}${PTEST_PATH}/${TESTDIR} -name \*.conf -exec \
+        sed -i -e 's:../plugins/.*/.libs/:../runtime/.libs/:' \
+        '{}' \;
+}
+
+do_install_append() {
+    install -d "${D}${sysconfdir}/init.d"
+    install -m 755 ${WORKDIR}/initscript ${D}${sysconfdir}/init.d/syslog.${BPN}
+    install -m 644 ${WORKDIR}/rsyslog.conf ${D}${sysconfdir}/rsyslog.conf
+    install -m 644 ${WORKDIR}/rsyslog.logrotate ${D}${sysconfdir}/logrotate.rsyslog
+}
+
+FILES_${PN} += "${bindir}"
+
+INITSCRIPT_NAME = "syslog"
+INITSCRIPT_PARAMS = "defaults"
+
+# higher than sysklogd's 100
+ALTERNATIVE_PRIORITY = "110"
+
+ALTERNATIVE_${PN} = "syslogd syslog-conf syslog-logrotate"
+
+ALTERNATIVE_LINK_NAME[syslogd] = "${base_sbindir}/syslogd"
+ALTERNATIVE_TARGET[syslogd] = "${sbindir}/rsyslogd"
+ALTERNATIVE_LINK_NAME[syslog-conf] = "${sysconfdir}/syslog.conf"
+ALTERNATIVE_TARGET[syslog-conf] = "${sysconfdir}/rsyslog.conf"
+ALTERNATIVE_LINK_NAME[syslog-logrotate] = "${sysconfdir}/logrotate.d/syslog"
+ALTERNATIVE_TARGET[syslog-logrotate] = "${sysconfdir}/logrotate.rsyslog"
+
+CONFFILES_${PN} = "${sysconfdir}/rsyslog.conf"
+
+RPROVIDES_${PN} += "${PN}-systemd"
+RREPLACES_${PN} += "${PN}-systemd"
+RCONFLICTS_${PN} += "${PN}-systemd"
+SYSTEMD_SERVICE_${PN} = "${BPN}.service"
+
+RDEPENDS_${PN} += "logrotate"
+
+# for rsyslog-ptest
+VALGRIND = "valgrind"
+VALGRIND_mips = ""
+VALGRIND_mips64 = ""
+VALGRIND_mips64n32 = ""
+VALGRIND_arm = ""
+VALGRIND_aarch64 = ""
+RDEPENDS_${PN}-ptest += "make diffutils gzip"
+RRECOMMENDS_${PN}-ptest += "${TCLIBC}-dbg ${VALGRIND}"
+
+# no syslog-init for systemd
+python () {
+    if bb.utils.contains('DISTRO_FEATURES', 'sysvinit', True, False, d):
+        pn = d.getVar('PN', True)
+        sysconfdir = d.getVar('sysconfdir', True)
+        d.appendVar('ALTERNATIVE_%s' % (pn), ' syslog-init')
+        d.setVarFlag('ALTERNATIVE_LINK_NAME', 'syslog-init', '%s/init.d/syslog' % (sysconfdir))
+        d.setVarFlag('ALTERNATIVE_TARGET', 'syslog-init', '%s/init.d/syslog.%s' % (d.getVar('sysconfdir', True), d.getVar('BPN', True)))
+
+    if bb.utils.contains('DISTRO_FEATURES', 'systemd', True, False, d):
+        pn = d.getVar('PN', True)
+        d.appendVar('ALTERNATIVE_%s' % (pn), ' syslog-service')
+        d.setVarFlag('ALTERNATIVE_LINK_NAME', 'syslog-service', '%s/systemd/system/syslog.service' % (d.getVar('sysconfdir', True)))
+        d.setVarFlag('ALTERNATIVE_TARGET', 'syslog-service', '%s/system/rsyslog.service' % (d.getVar('systemd_unitdir', True)))
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-cmpi-devel/sblim-cmpi-devel/sblim-cmpi-devel-2.0.3-docdir.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-cmpi-devel/sblim-cmpi-devel/sblim-cmpi-devel-2.0.3-docdir.patch
new file mode 100644
index 0000000..58940c1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-cmpi-devel/sblim-cmpi-devel/sblim-cmpi-devel-2.0.3-docdir.patch
@@ -0,0 +1,17 @@
+Port from Fedora20
+
+Upstream-Status: Pending
+Signed-off-by: Qian Lei <qianl.fnst@cn.fujitsu.com>
+
+diff -up sblim-cmpi-devel-2.0.3/Makefile.in.orig sblim-cmpi-devel-2.0.3/Makefile.in
+--- sblim-cmpi-devel-2.0.3/Makefile.in.orig	2012-07-31 06:11:51.000000000 +0200
++++ sblim-cmpi-devel-2.0.3/Makefile.in	2013-08-07 18:28:09.600712807 +0200
+@@ -221,7 +221,7 @@ build_vendor = @build_vendor@
+ builddir = @builddir@
+ datadir = @datadir@
+ datarootdir = @datarootdir@
+-docdir = $(datadir)/doc/$(PACKAGE)-$(VERSION)
++docdir = $(datadir)/doc/$(PACKAGE)
+ dvidir = @dvidir@
+ exec_prefix = @exec_prefix@
+ host = @host@
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-cmpi-devel/sblim-cmpi-devel_2.0.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-cmpi-devel/sblim-cmpi-devel_2.0.3.bb
new file mode 100644
index 0000000..0e5fc7b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-cmpi-devel/sblim-cmpi-devel_2.0.3.bb
@@ -0,0 +1,18 @@
+SUMMARY = "SBLIM CMPI Provider Development Support"
+DESCRIPTION = "\
+This packages provides the C and C++ CMPI header files needed by provider \
+developers and can be used standalone. If used for C++ provider development \
+it is also necessary to have tog-pegasus-devel installed."
+HOMEPAGE = "http://sblim.wiki.sourceforge.net/"
+LICENSE = "EPL-1.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=5f63d3a4e701129e869e89d7dcac8982"
+SECTION = "Development/Libraries"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/sblim/${BP}.tar.bz2 \
+           file://sblim-cmpi-devel-2.0.3-docdir.patch"
+SRC_URI[md5sum] = "b934616f88a848f17ca3cf1b9e792cbf"
+SRC_URI[sha256sum] = "1671cabff6b922b6fde897673d9fdafd56c9310f82a7eacc0547d596b9cdfea6"
+
+inherit autotools
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfc-common/sblim-sfc-common_1.0.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfc-common/sblim-sfc-common_1.0.1.bb
new file mode 100644
index 0000000..2a9b4bb
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfc-common/sblim-sfc-common_1.0.1.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Common functions for SBLIM Small Footprint CIM Broker and CIM Client Library."
+DESCRIPTION = "\
+This package provides a common library for functions shared between Small Footprint CIM Broker (sblim-sfcb) \
+Small Footprint CIM Client (and sblim-sfcc)."
+HOMEPAGE = "http://sourceforge.net/projects/sblim/"
+LICENSE = "EPL"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f300afd598546add034364cd0a533261"
+SECTION = "Development/Libraries"
+
+DEPENDS = "cmpi-bindings"
+
+S = "${WORKDIR}/sblim-sfcCommon-${PV}"
+SRC_URI = "http://downloads.sourceforge.net/sblim/sblim-sfcCommon-${PV}.tar.bz2"
+SRC_URI[md5sum] = "8aa2655d97bdea54c4750f220b40990c"
+SRC_URI[sha256sum] = "b9b1037173d6ae0181c3bd5a316ddab5afd6a342ad0dbdc18e940fc0ad2c3297"
+
+inherit autotools
+
+do_install() {
+    oe_runmake DESTDIR=${D} install
+
+    rm -rf ${D}${libdir}/libsfcUtil.a
+    rm -rf ${D}${libdir}/libsfcUtil.la
+}
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/files/sfcb.service b/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/files/sfcb.service
new file mode 100644
index 0000000..5adf63c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/files/sfcb.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Small Footprint CIM Broker Service
+After=syslog.target
+
+[Service]
+Type=oneshot
+ExecStart=/usr/sbin/sfcbd -d
+RemainAfterExit=yes
+
+[Install]
+WantedBy=multi-user.target
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/sblim-sfcb-1.3.15-fix-provider-debugging.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/sblim-sfcb-1.3.15-fix-provider-debugging.patch
new file mode 100644
index 0000000..4fbecaa
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/sblim-sfcb-1.3.15-fix-provider-debugging.patch
@@ -0,0 +1,12 @@
+diff -up sblim-sfcb-1.4.5/providerDrv.c.orig sblim-sfcb-1.4.5/providerDrv.c
+--- sblim-sfcb-1.4.5/providerDrv.c.orig	2013-09-04 12:59:22.140813239 +0200
++++ sblim-sfcb-1.4.5/providerDrv.c	2013-09-04 12:59:40.511870274 +0200
+@@ -3585,7 +3585,7 @@ processProviderInvocationRequests(char *
+     rc = spRecvReq(&providerSockets.receive, &parms->requestor,
+                    (void **) &parms->req, &rl, &mqg);
+     if (mqg.rdone) {
+-      int             debug_break = 0;
++      volatile int debug_break = 0;
+       if (rc != 0) {
+         mlogf(M_ERROR,M_SHOW, "spRecvReq returned error %d. Skipping message.\n", rc);
+         free(parms);
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/sblim-sfcb-1.3.16-maxMsgLen.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/sblim-sfcb-1.3.16-maxMsgLen.patch
new file mode 100644
index 0000000..a0dd816
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/sblim-sfcb-1.3.16-maxMsgLen.patch
@@ -0,0 +1,14 @@
+diff -up sblim-sfcb-1.3.16/sfcb.cfg.pre.in.old sblim-sfcb-1.3.16/sfcb.cfg.pre.in
+--- sblim-sfcb-1.3.16/sfcb.cfg.pre.in.old	2012-06-13 23:21:09.000000000 +0200
++++ sblim-sfcb-1.3.16/sfcb.cfg.pre.in	2013-06-24 15:34:38.881992781 +0200
+@@ -113,8 +113,8 @@ provProcs:      32
+ 
+ ## Max message length, in bytes. This is a limit on the size of messages
+ ## written across sockets, for instance, between providers and SFCB.
+-## Default is 10000000
+-maxMsgLen:      10000000
++## Default is 100000000
++maxMsgLen:      100000000
+ 
+ ## Location of the registration directory, where providerRegister can be found
+ ## Default is @localstatedir@/lib/sfcb/registration
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/sblim-sfcb-1.3.16-multilib-man-cfg.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/sblim-sfcb-1.3.16-multilib-man-cfg.patch
new file mode 100644
index 0000000..c8cece2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/sblim-sfcb-1.3.16-multilib-man-cfg.patch
@@ -0,0 +1,41 @@
+diff -up sblim-sfcb-1.3.16/man/sfcbd.1.pre.in.orig sblim-sfcb-1.3.16/man/sfcbd.1.pre.in
+--- sblim-sfcb-1.3.16/man/sfcbd.1.pre.in.orig	2014-02-26 14:05:32.213091734 +0100
++++ sblim-sfcb-1.3.16/man/sfcbd.1.pre.in	2014-02-26 15:10:54.476196379 +0100
+@@ -151,7 +151,7 @@ Default=\fI@localstatedir@/lib/sfcb/regi
+ .TP
+ .B providerDirs
+ A space separated list of directories where sfcb is looking for provider
+-libraries. Default=\fI@libdir@\ @libdir@/cmpi\fR
++libraries. Default=\fI/usr/lib\ /usr/lib/cmpi /usr/lib64\ /usr/lib64/cmpi\fR
+ .TP
+ .B providerSampleInterval
+ The interval in seconds at which the provider manager is checking for
+@@ -275,11 +275,11 @@ SSL private key file for sfcb.
+ SSL client certificate / trust store for sfcb.
+ .SH LIBRARIES
+ .TP
+-.I @libdir@/libsfc*
++.I /usr/lib/libsfc* /usr/lib64/libsfc*
+ Binaries for sfcb runtime libraries.
+ .TP
+-.I @libdir@/cmpi/*
+-Binaries for providers
++.I /usr/lib/cmpi/* /usr/lib64/cmpi/*
++Binaries for providers.
+ .SH AUTHOR
+ Adrian Schuur <schuur@de.ibm.com>
+ .SH CONRIBUTORS
+diff -up sblim-sfcb-1.3.16/sfcb.cfg.pre.in.orig sblim-sfcb-1.3.16/sfcb.cfg.pre.in
+--- sblim-sfcb-1.3.16/sfcb.cfg.pre.in.orig	2014-02-26 15:35:43.133869718 +0100
++++ sblim-sfcb-1.3.16/sfcb.cfg.pre.in	2014-02-26 15:38:12.794240532 +0100
+@@ -121,8 +121,8 @@ maxMsgLen:      100000000
+ registrationDir: @localstatedir@/lib/sfcb/registration
+ 
+ ## Locations to look for provider libraries. Delimit paths with a space.
+-## Default is @libdir@/sfcb @libdir@ @libdir@/cmpi
+-providerDirs: @libdir@/sfcb @libdir@ @libdir@/cmpi
++## Default is /usr/lib/sfcb /usr/lib64/sfcb /usr/lib /usr/lib64 /usr/lib/cmpi /usr/lib64/cmpi
++providerDirs: /usr/lib/sfcb /usr/lib64/sfcb /usr/lib /usr/lib64 /usr/lib/cmpi /usr/lib64/cmpi
+ 
+ ## Enable the root/interop namespace (affects indications)
+ ## Default: true
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/sblim-sfcb-1.3.9-sfcbrepos-schema-location.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/sblim-sfcb-1.3.9-sfcbrepos-schema-location.patch
new file mode 100644
index 0000000..7f95a9d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/sblim-sfcb-1.3.9-sfcbrepos-schema-location.patch
@@ -0,0 +1,42 @@
+diff -up sblim-sfcb-1.3.9/man/sfcbrepos.1.pre.in.orig sblim-sfcb-1.3.9/man/sfcbrepos.1.pre.in
+--- sblim-sfcb-1.3.9/man/sfcbrepos.1.pre.in.orig	2009-10-13 21:54:13.000000000 +0200
++++ sblim-sfcb-1.3.9/man/sfcbrepos.1.pre.in	2010-09-06 14:01:57.294564062 +0200
+@@ -26,7 +26,7 @@ Supported command line options are:
+ .TP
+ \fB\-c\fR \fIschemadir\fR
+ Path to obtain the CIM Schema classes.
+-Default is \fI@datadir@/sfcb\fR
++Default is \fI@datadir@/mof/cim-current\fR
+ .TP
+ \fB\-s\fR \fIstagingdir\fR
+ Path to sfcb staging area containing class MOFs and registration files
+@@ -58,7 +58,7 @@ Alias of \fB-b\fR
+ Display usage information and exit.
+ .SH FILES
+ .TP
+-\fI@datadir@/sfcb/CIM/CIM_Schema.mof\fR
++\fI@datadir@/mof/cim-current/CIM_Schema.mof\fR
+ CIM Schema
+ .TP
+ \fI@localstatedir@/lib/sfcb/registration/providerRegister\fR
+diff -up sblim-sfcb-1.3.9/sfcbrepos.sh.in.orig sblim-sfcb-1.3.9/sfcbrepos.sh.in
+--- sblim-sfcb-1.3.9/sfcbrepos.sh.in.orig	2009-12-22 01:18:29.000000000 +0100
++++ sblim-sfcb-1.3.9/sfcbrepos.sh.in	2010-09-06 13:45:28.671491648 +0200
+@@ -59,7 +59,7 @@ then
+     echo -e "\t-X create repository in non-native format as specifed by argument"
+     echo -e "\t-s specify staging directory [@localstatedir@/lib/sfcb/stage]"
+     echo -e "\t-r specify repository directory [@localstatedir@/lib/sfcb/registration]"
+-    echo -e "\t-c specify directory containing CIM Schema MOFs [@datadir@/sfcb/CIM]"
++    echo -e "\t-c specify directory containing CIM Schema MOFs [@datadir@/mof/cim-current]"
+     echo -e "\t-t create tiny class repository by omitting inheritance information"
+     echo -e "\t-z compress repository with gzip"
+     echo
+@@ -99,7 +99,7 @@ fi
+ 
+ if [ -z "$cimschemadir" ]
+ then
+-    cimschemadir=${DESTDIR}@datadir@/sfcb/CIM
++    cimschemadir=${DESTDIR}@datadir@/mof/cim-current
+ fi
+ 
+ if [ -d $stagingdir ] && [ -f $stagingdir/default.reg ] &&
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/sblim-sfcb-1.4.5-service.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/sblim-sfcb-1.4.5-service.patch
new file mode 100644
index 0000000..eaccfa5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/sblim-sfcb-1.4.5-service.patch
@@ -0,0 +1,27 @@
+diff -up sblim-sfcb-1.4.6/Makefile.in.orig sblim-sfcb-1.4.6/Makefile.in
+--- sblim-sfcb-1.4.6/Makefile.in.orig	2013-10-07 10:43:34.783228137 +0200
++++ sblim-sfcb-1.4.6/Makefile.in	2013-10-07 10:44:30.178533289 +0200
+@@ -627,7 +627,6 @@ initdir = $(sysconfdir)/init.d
+ pamdir = $(sysconfdir)/pam.d
+ sfcblibdir = $(libdir)/sfcb
+ cmpilibdir = $(libdir)/cmpi
+-systemddir = $(DESTDIR)@SYSTEMDDIR@
+ MANFILES = man/genSslCert.1 man/getSchema.1 man/sfcbd.1 man/sfcbmof.1 \
+ 	man/sfcbrepos.1 man/sfcbstage.1 man/sfcbunstage.1 man/sfcbuuid.1 \
+ 	man/wbemcat.1 man/xmltest.1
+@@ -2366,7 +2365,6 @@ unittest:
+ 	cd test && sh check_all.sh
+ 
+ install-data-local:
+-	if test -d $(systemddir); then cp $(srcdir)/sblim-sfcb.service $(systemddir); fi; 
+ 	test -d $(DESTDIR)$(sfcbstatedir)/registration/repository || $(mkdir_p) $(DESTDIR)$(sfcbstatedir)/registration/repository
+ 	test -d $(DESTDIR)$(sfcbstatedir)/stage/mofs/root/interop || $(mkdir_p) $(DESTDIR)$(sfcbstatedir)/stage/mofs/root/interop
+ 	test -d $(DESTDIR)$(sfcbstatedir)/stage/regs || $(mkdir_p) $(DESTDIR)$(sfcbstatedir)/stage/regs
+@@ -2384,7 +2382,6 @@ install-data-local:
+ uninstall-local:
+ 	rm -f $(DESTDIR)$(sfcbstatedir)/stage/default.reg
+ 	rm -f $(DESTDIR)$(sfcbstatedir)/stage/mofs/root/interop/10_interop.mof
+-	rm -f $(systemddir)/sblim-sfcb.service
+ @INDICATIONS_TRUE@	rm -f $(DESTDIR)$(sfcbstatedir)/stage/mofs/root/interop/20_indication.mof
+ @INDICATIONS_TRUE@	rm -f $(DESTDIR)$(sfcbstatedir)/stage/mofs/indication.mof
+ @DOCS_TRUE@	rm -rf $(DESTDIR)$(sfcbdocdir)/html
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/sblim-sfcb-1.4.8-default-ecdh-curve-name.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/sblim-sfcb-1.4.8-default-ecdh-curve-name.patch
new file mode 100644
index 0000000..3268d49
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/sblim-sfcb-1.4.8-default-ecdh-curve-name.patch
@@ -0,0 +1,26 @@
+diff -up sblim-sfcb-1.4.8/control.c.orig sblim-sfcb-1.4.8/control.c
+--- sblim-sfcb-1.4.8/control.c.orig	2014-03-27 00:46:28.000000000 +0100
++++ sblim-sfcb-1.4.8/control.c	2014-05-15 12:31:38.304169409 +0200
+@@ -170,7 +170,7 @@ static Control init[] = {
+   {"sslCertList", CTL_STRING, SFCB_CONFDIR "/clist.pem", {0}},
+   {"sslCiphers", CTL_STRING, "ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH", {0}},
+   {"sslDhParamsFilePath", CTL_STRING, NULL, {0}},
+-  {"sslEcDhCurveName", CTL_STRING, "secp224r1", {0}},
++  {"sslEcDhCurveName", CTL_STRING, "secp384r1", {0}},
+   {"enableSslCipherServerPref", CTL_BOOL, NULL, {.b=0}},
+ 
+   {"registrationDir", CTL_STRING, SFCB_STATEDIR "/registration", {0}},
+diff -up sblim-sfcb-1.4.8/sfcb.cfg.pre.in.orig sblim-sfcb-1.4.8/sfcb.cfg.pre.in
+--- sblim-sfcb-1.4.8/sfcb.cfg.pre.in.orig	2014-05-15 12:31:59.188244865 +0200
++++ sblim-sfcb-1.4.8/sfcb.cfg.pre.in	2014-05-15 12:32:45.554408412 +0200
+@@ -293,8 +293,8 @@ sslCiphers: ALL:!ADH:!LOW:!EXP:!MD5:@STR
+ ## environment. If this value is not set, the indicated default is in effect.
+ ## If the value is set but the curve name is not recognized by the underlying
+ ## openssl implementation, SFCB will abort.
+-## Default is secp224r1
+-#sslEcDhCurveName: secp224r1
++## Default is secp384r1
++#sslEcDhCurveName: secp384r1
+ 
+ ## When set to true, sets the SSL_OP_CIPHER_SERVER_PREFERENCE flag for the ssl
+ ## context, to enforce server's preference instead of the client preference for
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/sblim-sfcb-1.4.9-fix-ftbfs.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/sblim-sfcb-1.4.9-fix-ftbfs.patch
new file mode 100644
index 0000000..9548b3c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/sblim-sfcb-1.4.9-fix-ftbfs.patch
@@ -0,0 +1,12 @@
+diff -up sblim-sfcb-1.4.9/control.c.orig sblim-sfcb-1.4.9/control.c
+--- sblim-sfcb-1.4.9/control.c.orig	2015-07-13 15:06:21.331660336 +0200
++++ sblim-sfcb-1.4.9/control.c	2015-07-13 15:08:38.031308917 +0200
+@@ -83,7 +83,7 @@ long            httpReqHandlerTimeout;
+  * Kindly null terminate, always, even if might overwrite
+  * the last char of the truncated string. 
+ */
+-inline char *strncpy_kind(char *to, char *from, size_t size) {
++char *strncpy_kind(char *to, char *from, size_t size) {
+   strncpy(to, from, size);
+   *(to + size - 1) = '\0';
+   return to;
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb
new file mode 100644
index 0000000..41626d1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb
@@ -0,0 +1,83 @@
+SUMMARY = "Small Footprint CIM Broker"
+DESCRIPTION = "\
+Small Footprint CIM Broker (sfcb) is a CIM server conforming to the CIM \
+Operations over HTTP protocol. It is robust, with low resource consumption \
+and therefore specifically suited for embedded and resource constrained \
+environments. sfcb supports providers written against the Common \
+Manageability Programming Interface (CMPI)."
+HOMEPAGE = "http://www.sblim.org"
+SECTION = "Applications/System"
+LICENSE = "EPL-1.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f300afd598546add034364cd0a533261"
+DEPENDS = "curl libpam openssl sblim-sfc-common unzip-native"
+
+SRC_URI = "http://downloads.sourceforge.net/sblim/${BP}.tar.bz2 \
+           file://sblim-sfcb-1.3.9-sfcbrepos-schema-location.patch \
+           file://sblim-sfcb-1.3.15-fix-provider-debugging.patch \
+           file://sblim-sfcb-1.3.16-maxMsgLen.patch \
+           file://sblim-sfcb-1.4.5-service.patch \
+           file://sblim-sfcb-1.3.16-multilib-man-cfg.patch \
+           file://sblim-sfcb-1.4.8-default-ecdh-curve-name.patch \
+           file://sblim-sfcb-1.4.9-fix-ftbfs.patch \
+           file://sfcb.service"
+           
+SRC_URI[md5sum] = "28021cdabc73690a94f4f9d57254ce30"
+SRC_URI[sha256sum] = "634a67b2f7ac3b386a79160eb44413d618e33e4e7fc74ae68b0240484af149dd"
+
+inherit autotools
+inherit ${@bb.utils.contains('VIRTUAL-RUNTIME_init_manager','systemd','systemd','', d)}
+
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE_${PN} = "sblim-sfcb.service"
+SYSTEMD_AUTO_ENABLE = "enable"
+
+LDFLAGS_append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
+
+EXTRA_OECONF = '--enable-debug \
+                --enable-ssl \
+                --enable-pam \
+                --enable-ipv6 \
+                CFLAGS="${CFLAGS} -D_GNU_SOURCE"'
+
+# make all with -j option is unsafe.
+PARALLEL_MAKE = ""
+
+INSANE_SKIP_${PN} = "dev-so"
+CONFIG_SITE = "${WORKDIR}/config-site.${P}"
+
+do_install() {
+    cp -f ${S}/sfcb.cfg.pre.in ${S}/sfcb.cfg
+
+    oe_runmake DESTDIR=${D} install
+
+    if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+        install -d ${D}${systemd_unitdir}/system
+        install -m 0644 ${WORKDIR}/sfcb.service ${D}${systemd_unitdir}/system/sblim-sfcb.service
+    fi
+
+    install -d ${D}${sysconfdir}/init.d
+    mv ${D}${sysconfdir}/init.d/sfcb ${D}${sysconfdir}/init.d/sblim-sfcb
+    sed -i -e 's/\/var\/lock\/subsys\/sfcb/\/var\/lock\/subsys\/sblim-sfcb/g' ${D}${sysconfdir}/init.d/sblim-sfcb
+    
+    rm -rf ${D}${libdir}/sfcb/*.la
+}
+
+pkg_postinst_${PN} () {
+    OPTS=""
+
+    if [ x"$D" != "x" ]; then
+        OPTS="--root=$D"
+        if type systemctl >/dev/null 2>/dev/null; then
+                systemctl $OPTS ${SYSTEMD_AUTO_ENABLE} ${SYSTEMD_SERVICE}
+        fi
+        exit 1
+    fi
+
+    ${datadir}/sfcb/genSslCert.sh ${sysconfdir}/sfcb
+    ${bindir}/sfcbrepos -f
+}
+
+FILES_${PN} += "${libdir}/sfcb ${datadir}/sfcb"
+FILES_${PN}-dbg += "${libdir}/sfcb/.debug"
+
+RDEPENDS_${PN} = "perl bash"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcc/sblim-sfcc_2.2.8.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcc/sblim-sfcc_2.2.8.bb
new file mode 100644
index 0000000..1ec9940
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/sblim-sfcc/sblim-sfcc_2.2.8.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Small Footprint CIM Client Library"
+DESCRIPTION = "Small Footprint CIM Client Library Runtime Libraries"
+HOMEPAGE = "http://www.sblim.org"
+
+SRC_URI = "http://netcologne.dl.sourceforge.net/project/sblim/${BPN}/${BPN}-${PV}.tar.bz2"
+
+SRC_URI[md5sum] = "0bac0dec19f17ec065b6c332a56d7bae"
+SRC_URI[sha256sum] = "1b8f187583bc6c6b0a63aae0165ca37892a2a3bd4bb0682cd76b56268b42c3d6"
+
+LICENSE = "EPL-1.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f300afd598546add034364cd0a533261"
+
+DEPENDS = "curl"
+
+inherit autotools
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/scsirastools/scsirastools_1.6.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/scsirastools/scsirastools_1.6.4.bb
new file mode 100644
index 0000000..13f93cc
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/scsirastools/scsirastools_1.6.4.bb
@@ -0,0 +1,41 @@
+SUMMARY = "Linux SCSi tools to service maintain disk storage devices"
+DESCRIPTION = "scsirastools were designed to add to the Serviceability of \
+               SCSI devices under Linux so that the system does not have \
+               to be rebooted or taken out of service to perform common \
+               maintenance or service functions. It handles SCSI, \
+               Linux SW RAID, SAS, SATA, and USB devices via SCSI emulation."
+HOMEPAGE = "http://scsirastools.sourceforge.net/"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=687ea108478d26152ae46eb29d9d1545"
+PR = "r0"
+
+SRC_URI = "http://prdownloads.sourceforge.net/scsirastools/scsirastools-${PV}.tar.gz \
+	  "
+SRC_URI[md5sum] = "2d775111b62e2dfc1960a722f5fda211"
+SRC_URI[sha256sum] = "38d2c6c9b04a2c594e528927b950754f94c0522718d17c78e6589ba778339bf8"
+
+inherit autotools update-rc.d
+
+# mdadm Makefile has CC set to gcc, hence override CC to ${CC}
+EXTRA_OEMAKE += "CC='${CC}'"
+
+INITSCRIPT_PACKAGES = "${PN}-diskmon ${PN}-raidmon"
+INITSCRIPT_NAME_${PN}-diskmon = "sgdisk"
+INITSCRIPT_PARAMS_${PN}-diskmon = "defaults 80 20"
+INITSCRIPT_NAME_${PN}-raidmon = "sgraid"
+INITSCRIPT_PARAMS_${PN}-raidmon = "defaults 80 20"
+
+PACKAGES =+ "${PN}-diskmon ${PN}-diskmon-dbg"
+PACKAGES =+ "${PN}-raidmon ${PN}-raidmon-dbg"
+
+FILES_${PN}-dbg += "/usr/share/scsirastools/.debug"
+
+FILES_${PN}-diskmon = "${sbindir}/sgdiskmon ${sysconfdir}/init.d/sgdisk"
+FILES_${PN}-diskmon-dbg = "${sbindir}/.debug/sgdiskmon"
+
+FILES_${PN}-raidmon = "${sbindir}/sgraidmon ${sysconfdir}/init.d/sgraid"
+FILES_${PN}-raidmon-dbg = "${sbindir}/.debug/sgraidmon"
+
+RDEPENDS_${PN} += "bash"
+RDEPENDS_${PN}-diskmon += "${PN}"
+RDEPENDS_${PN}-raidmon += "${PN}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/sgpio/sgpio/Makefile-error-fix.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/sgpio/sgpio/Makefile-error-fix.patch
new file mode 100644
index 0000000..709f831
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/sgpio/sgpio/Makefile-error-fix.patch
@@ -0,0 +1,127 @@
+Fix Makefile:
+
+* change the file format from dos to unix to avoid do_patch failed.
+* override gcc,SBIN_DIR and INSTALL for cross-compilation.
+
+Upstream-Status: pending
+
+Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
+---
+ Makefile | 107 ++++++++++++++++++++++++++++++++-------------------------------
+ 1 file changed, 55 insertions(+), 52 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 278d966..c2b0bc7 100755
+--- a/Makefile
++++ b/Makefile
+@@ -1,52 +1,55 @@
+-########################################################################

+-# Copyright (C) 2007-2008, Intel Corp. All rights reserved.

+-#

+-#

+-# This program is free software; you can redistribute it and/or modify it under

+-# the terms of the GNU General Public License as published by the Free Software

+-# Foundation; 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, Inc.,

+-# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

+-########################################################################

+-

+-

+-# Intel SGPIO enclosure management utility

+-#

+-# Author: Eric R Hall <Eric.R.Hall@intel.com>

+-

+-

+-MANDIR ?= /usr/local/man

+-ALL = sgpio

+-

+-all: $(ALL)

+-

+-sgpio.o: sgpio.c

+-	gcc -g -Wall -c sgpio.c

+-

+-sgpio: sgpio.o

+-	gcc -g sgpio.o -o sgpio

+-

+-clean:

+-	rm -f sgpio.o sgpio

+-

+-install: $(ALL)

+-	for i in $(ALL); do \

+-		install $$i /sbin/$$i; \

+-	done

+-	install -d $(MANDIR)/man1

+-	install -m 0644 *.1 $(MANDIR)/man1

+-

+-uninstall:

+-	for i in $(ALL); do \

+-		rm -f /sbin/$$i; \

+-	done

+-	for i in $(ALL:=.1); do \

+-		rm -f $(MANDIR)/man1/$$i; \

+-	done

++########################################################################
++# Copyright (C) 2007-2008, Intel Corp. All rights reserved.
++#
++#
++# This program is free software; you can redistribute it and/or modify it under
++# the terms of the GNU General Public License as published by the Free Software
++# Foundation; 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, Inc.,
++# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++########################################################################
++
++
++# Intel SGPIO enclosure management utility
++#
++# Author: Eric R Hall <Eric.R.Hall@intel.com>
++
++
++MANDIR ?= /usr/local/man
++SBIN_DIR = /sbin
++INSTALL =/usr/bin/install -c
++ALL = sgpio
++CFLAGS = -g -Wall
++
++all: $(ALL)
++
++sgpio.o: sgpio.c
++	${CC} $(CFLAGS) -c sgpio.c
++
++sgpio: sgpio.o
++	${CC} -g sgpio.o -o sgpio
++
++clean:
++	rm -f sgpio.o sgpio
++
++install: $(ALL)
++	for i in $(ALL); do \
++		$(INSTALL) -D $$i $(SBIN_DIR)/$$i; \
++	done
++	$(INSTALL) -d $(MANDIR)/man1
++	$(INSTALL) -m 0644 *.1 $(MANDIR)/man1
++
++uninstall:
++	for i in $(ALL); do \
++		rm -f /sbin/$$i; \
++	done
++	for i in $(ALL:=.1); do \
++		rm -f $(MANDIR)/man1/$$i; \
++	done
+-- 
+1.8.3.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/sgpio/sgpio_1.2.0.10.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/sgpio/sgpio_1.2.0.10.bb
new file mode 100644
index 0000000..ed7c413
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/sgpio/sgpio_1.2.0.10.bb
@@ -0,0 +1,26 @@
+SUMMARY = "SGPIO captive backplane tool"
+DESCRIPTION = "Intel SGPIO enclosure management utility"
+
+SRC_URI = " \
+    http://pkgs.fedoraproject.org/repo/pkgs/${BPN}/${BPN}-1.2-0.10-src.tar.gz/a417bf68da4e9bd79a4664c11d7debd1/${BPN}-1.2-0.10-src.tar.gz \
+    file://Makefile-error-fix.patch \
+"
+SRC_URI[md5sum] = "a417bf68da4e9bd79a4664c11d7debd1"
+SRC_URI[sha256sum] = "9bf8c42acaa247efd9321bdb1fc2390022f0c554d77fbbd4a7363d990fc0270b"
+
+S = "${WORKDIR}/${BPN}"
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://LICENSE_GPL;md5=393a5ca445f6965873eca0259a17f833"
+
+do_compile_prepend() {
+    oe_runmake clean
+}
+
+do_install() {
+    oe_runmake install \
+        INSTALL="/usr/bin/install -p" \
+        DESTDIR=${D} \
+        SBIN_DIR=${D}/${sbindir} \
+        MANDIR=${D}/${mandir}
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/smartmontools/files/initd.smartd b/import-layers/meta-openembedded/meta-oe/recipes-extended/smartmontools/files/initd.smartd
new file mode 100755
index 0000000..54adcb4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/smartmontools/files/initd.smartd
@@ -0,0 +1,112 @@
+#! /bin/sh
+
+# smartmontools init file for smartd
+# Copyright (C) 2002-8 Bruce Allen <smartmontools-support@lists.sourceforge.net>
+# $Id: smartd.initd.in 3360 2011-06-06 19:25:36Z chrfranke $
+
+# For RedHat and cousins:
+# chkconfig: - 60 60
+# description: Self Monitoring and Reporting Technology (SMART) Daemon
+# processname: smartd 
+
+# For SuSE and cousins
+### BEGIN INIT INFO
+# Provides:                   smartd
+# Required-Start:             $syslog $remote_fs
+# Should-Start:               sendmail
+# Required-Stop:              $syslog $remote_fs
+# Should-Stop:                sendmail
+# Default-Start:              2 3 4 5
+# Default-Stop:               0 1 6
+# Short-Description:          Monitors disk and tape health via S.M.A.R.T.
+# Description:                Start S.M.A.R.T. disk and tape monitor.
+### END INIT INFO
+
+# 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, or (at your option) any later
+# version. 
+# You should have received a copy of the GNU General Public License (for
+# example COPYING); if not, write to the Free Software Foundation, Inc., 675
+# Mass Ave, Cambridge, MA 02139, USA.
+# This code was originally developed as a Senior Thesis by Michael Cornwell
+# at the Concurrent Systems Laboratory (now part of the Storage Systems
+# Research Center), Jack Baskin School of Engineering, University of
+# California, Santa Cruz. http://ssrc.soe.ucsc.edu/.
+
+# Uncomment the line below to pass options to smartd on startup. 
+# Note that distribution specific configuration files like
+# /etc/{default,sysconfig}/smartmontools might override these
+#smartd_opts="--interval=1800"
+
+SMARTD_BIN=/usr/sbin/smartd
+SMARTDPID=/var/run/smartd.pid
+[ -x $SMARTD_BIN ] || exit 0
+RET=0
+
+# source configuration file
+[ -r /etc/default/rcS ] && . /etc/default/rcS
+[ -r /etc/default/smartmontools ] && . /etc/default/smartmontools
+
+smartd_opts="--pidfile $SMARTDPID $smartd_opts"
+
+case "$1" in
+	start)
+		if [ "$start_smartd" != "yes" ]; then
+			[ "$VERBOSE" != "no" ] && echo "Not starting S.M.A.R.T. daemon smartd, disabled via /etc/default/smartmontools"
+			exit 0
+		fi
+		echo -n "Starting S.M.A.R.T. daemon: smartd"
+		if start-stop-daemon --start --quiet --pidfile $SMARTDPID \
+			--exec $SMARTD_BIN -- $smartd_opts; then
+			echo "."
+		else
+			echo " (failed)"
+			RET=1
+		fi
+		;;
+	stop)
+		echo -n "Stopping S.M.A.R.T. daemon: smartd"
+		start-stop-daemon --stop --quiet --oknodo --pidfile $SMARTDPID
+		echo "."
+		;;
+	restart)
+		$0 stop
+		$0 start
+		;;
+	force-reload)
+		$0 reload || $0 restart
+		;;
+	reload)
+		echo -n "Reload S.M.A.R.T. daemon: smartd"
+		if start-stop-daemon --stop --quiet --signal 1 \
+			--pidfile $SMARTDPID; then
+			echo "."
+		else
+			echo " (failed)"
+			RET=1
+		fi
+		;;
+	report)
+		echo -n "Checking SMART devices now"
+		if start-stop-daemon --stop --quiet --signal 10 \
+			--pidfile $SMARTDPID; then
+			echo "."
+		else
+			echo " (failed)"
+			RET=1
+		fi
+		;;
+	status)
+		if pidof $SMARTD_BIN >/dev/null; then
+			echo "$SMARTD_BIN is running."
+		else
+			echo "$SMARTD_BIN is not running."
+			RET=1
+		fi
+		;;
+	*)
+		echo "Usage: $0 {start|stop|restart|force-reload|reload|report|status}"
+		exit 1
+esac
+exit $RET
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/smartmontools/files/smartd.service b/import-layers/meta-openembedded/meta-oe/recipes-extended/smartmontools/files/smartd.service
new file mode 100644
index 0000000..f3db946
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/smartmontools/files/smartd.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Self Monitoring and Reporting Technology (SMART) Daemon
+After=syslog.target
+
+[Service]
+EnvironmentFile=-@SYSCONFDIR@/smartmontools
+ExecStart=@SBINDIR@/smartd -n $smart_opts
+ExecReload=@BASE_BINDIR@/kill -HUP $MAINPID
+StandardOutput=syslog
+
+[Install]
+WantedBy=multi-user.target
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/smartmontools/files/smartmontools.default b/import-layers/meta-openembedded/meta-oe/recipes-extended/smartmontools/files/smartmontools.default
new file mode 100644
index 0000000..602e00b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/smartmontools/files/smartmontools.default
@@ -0,0 +1,6 @@
+# uncomment to start smartd on system startup for SysV init script
+# For systemd service file, use `systemctl enable smartd'.
+#start_smartd=yes
+
+# uncomment to pass additional options to smartd on startup
+#smartd_opts="--interval=1800"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/smartmontools/smartmontools_6.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/smartmontools/smartmontools_6.4.bb
new file mode 100644
index 0000000..86e6d9e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/smartmontools/smartmontools_6.4.bb
@@ -0,0 +1,54 @@
+SUMMARY = "Control and monitor storage systems using S.M.A.R.T"
+DESCRIPTION = \
+"The smartmontools package contains two utility programs (smartctl \
+and smartd) to control and monitor storage systems using the Self-\
+Monitoring, Analysis and Reporting Technology System (SMART) built \
+into most modern ATA and SCSI hard disks. In many cases, these \
+utilities will provide advanced warning of disk degradation and failure."
+
+HOMEPAGE = "http://smartmontools.sourceforge.net/"
+SECTION = "console/utils"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/smartmontools/smartmontools-${PV}.tar.gz \
+           file://initd.smartd \
+           file://smartmontools.default \
+           file://smartd.service \
+          "
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'libcap-ng', 'libcap-ng', '', d)} \
+                   ${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'selinux', '', d)} \
+                  "
+PACKAGECONFIG[libcap-ng] = "--with-libcap-ng=yes,--with-libcap-ng=no,libcap-ng"
+PACKAGECONFIG[selinux] = "--with-selinux=yes,--with-selinux=no,libselinux"
+
+SRC_URI[md5sum] = "56812c8312fd123ed40ef65afde1049e"
+SRC_URI[sha256sum] = "eab75600c1eda9c34b13097db71138ab376f3dad8a6a4667fb4d1d081feb7a85"
+
+inherit autotools update-rc.d systemd
+
+SYSTEMD_SERVICE_${PN} = "smartd.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+do_install_append () {
+	#install the init.d/smartd
+	install -d ${D}${sysconfdir}/init.d
+	install -p -m 0755 ${WORKDIR}/initd.smartd ${D}${sysconfdir}/init.d/smartd
+	install -d ${D}${sysconfdir}/default
+	install -p -m 0644 ${WORKDIR}/smartmontools.default ${D}${sysconfdir}/default/smartmontools
+
+	#install systemd service file
+	install -d ${D}${systemd_unitdir}/system
+	install -m 0644 ${WORKDIR}/smartd.service ${D}${systemd_unitdir}/system
+	sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \
+		-e 's,@SYSCONFDIR@,${sysconfdir},g' \
+		-e 's,@SBINDIR@,${sbindir},g' \
+		${D}${systemd_unitdir}/system/smartd.service
+}
+
+INITSCRIPT_NAME = "smartd"
+INITSCRIPT_PARAMS = "start 60 2 3 4 5 . stop 60 0 1 6 ."
+
+RDEPENDS_${PN} += "mailx"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/socketcan/can-utils_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/socketcan/can-utils_git.bb
new file mode 100644
index 0000000..931e332
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/socketcan/can-utils_git.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Linux CAN network development utilities"
+DESCRIPTION = "Linux CAN network development"
+LICENSE = "GPLv2 & BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://include/linux/can.h;endline=43;md5=390a2c9a3c5e3595a069ac1436553ee7"
+
+DEPENDS = "libsocketcan"
+
+SRC_URI = "git://github.com/linux-can/${BPN}.git;protocol=git;branch=master"
+SRCREV = "67a2bdcd336e6becfa5784742e18c88dbeddc973"
+
+PV = "0.0+gitr${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/socketcan/canutils/0001-canutils-candump-Add-error-frame-s-handling.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/socketcan/canutils/0001-canutils-candump-Add-error-frame-s-handling.patch
new file mode 100644
index 0000000..fcc38e0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/socketcan/canutils/0001-canutils-candump-Add-error-frame-s-handling.patch
@@ -0,0 +1,94 @@
+From bab595e38295dcafcfc17a011d3d51f2df1618e6 Mon Sep 17 00:00:00 2001
+From: AnilKumar Ch <anilkumar@ti.com>
+Date: Tue, 10 Jan 2012 18:55:11 +0530
+Subject: [PATCH] canutils: candump: Add error frame's handling
+
+This patch adds the error handling capability to candump utility
+by adding error flags for displaying all kind of error frames
+like tx_timeout, lost arbitration, controller problems, buserrors,
+bus warnings etc.
+
+Usage of candump for error frame display on console:
+candump [<can-interface>] [Options]
+Ex: candump can0 --error
+
+This patch is created on top of canutils-4.0.6 tag from
+http://git.pengutronix.de/?p=tools/canutils.git
+
+Signed-off-by: AnilKumar Ch <anilkumar@ti.com>
+Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
+---
+Upstream-Status: Backport
+
+ src/candump.c | 20 ++++++++++++++++++++
+ 1 file changed, 20 insertions(+)
+
+diff --git a/src/candump.c b/src/candump.c
+index 259d442..c16425b 100644
+--- a/src/candump.c
++++ b/src/candump.c
+@@ -20,6 +20,7 @@
+ 
+ #include <linux/can.h>
+ #include <linux/can/raw.h>
++#include <linux/can/error.h>
+ 
+ extern int optind, opterr, optopt;
+ 
+@@ -40,6 +41,7 @@ static void print_usage(char *prg)
+ 		" -p, --protocol=PROTO\t"	"CAN protocol (default CAN_RAW = %d)\n"
+ 		"     --filter=id:mask[:id:mask]...\n"
+ 		"\t\t\t"			"apply filter\n"
++		" -e, --error\t\t"		"dump error frames along with data frames\n"
+ 		" -h, --help\t\t"		"this help\n"
+ 		" -o <filename>\t\t"		"output into filename\n"
+ 		" -d\t\t\t"			"daemonize\n"
+@@ -86,6 +88,11 @@ int main(int argc, char **argv)
+ 	int nbytes, i;
+ 	int opt, optdaemon = 0;
+ 	uint32_t id, mask;
++	int error = 0;
++	can_err_mask_t err_mask = (CAN_ERR_TX_TIMEOUT | CAN_ERR_LOSTARB |
++					CAN_ERR_CRTL | CAN_ERR_PROT |
++					CAN_ERR_TRX | CAN_ERR_ACK | CAN_ERR_BUSOFF |
++					CAN_ERR_BUSERROR);
+ 
+ 	signal(SIGPIPE, SIG_IGN);
+ 
+@@ -95,6 +102,7 @@ int main(int argc, char **argv)
+ 		{ "protocol", required_argument, 0, 'p' },
+ 		{ "type", required_argument, 0, 't' },
+ 		{ "filter", required_argument, 0, FILTER_OPTION },
++		{ "error", no_argument, 0, 'e' },
+ 		{ "version", no_argument, 0, VERSION_OPTION},
+ 		{ 0, 0, 0, 0},
+ 	};
+@@ -121,6 +129,10 @@ int main(int argc, char **argv)
+ 			proto = strtoul(optarg, NULL, 0);
+ 			break;
+ 
++		case 'e':
++			error = 1;
++			break;
++
+ 		case 'o':
+ 			optout = optarg;
+ 			break;
+@@ -186,6 +198,14 @@ int main(int argc, char **argv)
+ 		}
+ 	}
+ 
++	if (error) {
++		if (setsockopt(s, SOL_CAN_RAW, CAN_RAW_ERR_FILTER, &err_mask,
++			       sizeof(err_mask)) != 0) {
++			perror("setsockopt");
++			exit(1);
++		}
++	}
++
+ 	if (optdaemon)
+ 		daemon(1, 0);
+ 	else {
+-- 
+1.8.3.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/socketcan/canutils_4.0.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/socketcan/canutils_4.0.6.bb
new file mode 100644
index 0000000..e1508af
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/socketcan/canutils_4.0.6.bb
@@ -0,0 +1,20 @@
+SUMMARY = "canutils (PTX flavour)"
+HOMEPAGE = "http://www.pengutronix.de"
+SECTION = "console/network"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+DEPENDS = "libsocketcan"
+
+SRCREV = "299dff7f5322bf0348dcdd60071958ebedf5f09d"
+SRC_URI = "git://git.pengutronix.de/git/tools/canutils.git;protocol=git \
+    file://0001-canutils-candump-Add-error-frame-s-handling.patch \
+"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
+# Busybox ip doesn't support can interface configuration, use the real thing
+RDEPENDS_${PN} += "iproute2"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/socketcan/libsocketcan/0001-Use-strcmp-instead-of-sizeof-on-char-string.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/socketcan/libsocketcan/0001-Use-strcmp-instead-of-sizeof-on-char-string.patch
new file mode 100644
index 0000000..aa6196e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/socketcan/libsocketcan/0001-Use-strcmp-instead-of-sizeof-on-char-string.patch
@@ -0,0 +1,39 @@
+From 94094cc4ee7ae585da3e5e7e83e7d82b5d6de656 Mon Sep 17 00:00:00 2001
+From: Alexander Stein <alexander.stein@systec-electronic.com>
+Date: Wed, 14 Nov 2012 12:13:06 +0100
+Subject: [PATCH] Use strcmp instead of sizeof on char* string
+
+This bug was detected by the clang warning:
+libsocketcan.c:384:16: warning: argument to 'sizeof' in 'strncmp' call
+is the same expression as the source; did you mean to provide an
+explicit length? [-Wsizeof-pointer-memaccess]
+sizeof(name)) != 0)
+~~~~~~~^~~~~~
+
+Signed-off-by: Alexander Stein <alexander.stein@systec-electronic.com>
+Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
+---
+Upstream-Status: Backport
+
+ src/libsocketcan.c | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/src/libsocketcan.c b/src/libsocketcan.c
+index fedcbdc..841c2ed 100644
+--- a/src/libsocketcan.c
++++ b/src/libsocketcan.c
+@@ -379,9 +379,8 @@ static int do_get_nl_link(int fd, __u8 acquire, const char *name, void *res)
+ 				nl_msg->nlmsg_len - NLMSG_LENGTH(sizeof(struct ifaddrmsg));
+ 			parse_rtattr(tb, IFLA_MAX, IFLA_RTA(ifi), len);
+ 
+-			if (strncmp
+-			    ((char *)RTA_DATA(tb[IFLA_IFNAME]), name,
+-			     sizeof(name)) != 0)
++			if (strcmp
++			    ((char *)RTA_DATA(tb[IFLA_IFNAME]), name) != 0)
+ 				continue;
+ 
+ 			if (tb[IFLA_LINKINFO])
+-- 
+1.8.3.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/socketcan/libsocketcan_0.0.9.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/socketcan/libsocketcan_0.0.9.bb
new file mode 100644
index 0000000..98ef73f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/socketcan/libsocketcan_0.0.9.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Control basic functions in socketcan from userspace"
+HOMEPAGE = "http://www.pengutronix.de"
+SECTION = "libs/network"
+
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://src/libsocketcan.c;beginline=3;endline=17;md5=97e38adced4385d8fba1ae2437cedee1"
+
+SRCREV = "e1a224bf1c409adf0c02b07a90deada634e54b88"
+
+SRC_URI = "git://git.pengutronix.de/git/tools/libsocketcan.git;protocol=git \
+    file://0001-Use-strcmp-instead-of-sizeof-on-char-string.patch \
+"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
+do_configure_prepend() {
+    sed -i -e s:tests/GNUmakefile::g -e s:trunk:0.0.9: ${S}/configure.ac
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/subsurface/subsurface_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/subsurface/subsurface_git.bb
new file mode 100644
index 0000000..22b9d2f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/subsurface/subsurface_git.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Subsurface is an open source dive log program"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = "libdivecomputer gtk+ libxml2 glib-2.0 gconf"
+
+PNBLACKLIST[subsurface] ?= "Needs to be upgraded for compatibility with new libdivecomputer"
+
+inherit gtk-icon-cache cmake
+
+inherit gitpkgv
+PKGV = "${GITPKGVTAG}"
+PV = "4.2"
+
+SRCREV = "f61ee20ba356ecfc4c5b247f548f52d588179c94"
+SRC_URI = "git://subsurface.hohndel.org/subsurface.git"
+S = "${WORKDIR}/git"
+
+#FILES_${PN} += "${datadir}/icons/hicolor/scalable/apps/subsurface.svg"
+RRECOMMENDS_${PN}_append_libc-glibc = " glibc-gconv-iso8859-15"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig/0001-Fix-build-with-musl-backtrace-APIs-are-glibc-specifi.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig/0001-Fix-build-with-musl-backtrace-APIs-are-glibc-specifi.patch
new file mode 100644
index 0000000..7d3f8a1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig/0001-Fix-build-with-musl-backtrace-APIs-are-glibc-specifi.patch
@@ -0,0 +1,50 @@
+From 290703a5d21f34ea5ec23efc815a9f4df241e7e8 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 23 Oct 2015 00:33:32 -0700
+Subject: [PATCH] Fix build with musl, backtrace() APIs are glibc specific
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ userspace/libsinsp/utils.cpp | 4 +++-
+ userspace/libsinsp/utils.h   | 2 +-
+ 2 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/userspace/libsinsp/utils.cpp b/userspace/libsinsp/utils.cpp
+index 8f23f9c..c496a57 100644
+--- a/userspace/libsinsp/utils.cpp
++++ b/userspace/libsinsp/utils.cpp
+@@ -21,7 +21,9 @@ along with sysdig.  If not, see <http://www.gnu.org/licenses/>.
+ #include <limits.h>
+ #include <stdlib.h>
+ #include <sys/time.h>
++#ifdef __GLIBC__
+ #include <execinfo.h>
++#endif
+ #include <unistd.h>
+ #include <sys/time.h>
+ #include <netdb.h>
+@@ -741,7 +743,7 @@ uint64_t sinsp_utils::get_current_time_ns()
+     return tv.tv_sec * (uint64_t) 1000000000 + tv.tv_usec * 1000;
+ }
+ 
+-#ifndef _WIN32
++#if defined(_WIN32) && defined(__GLIBC__)
+ void sinsp_utils::bt(void)
+ {
+ 	static const char start[] = "BACKTRACE ------------";
+diff --git a/userspace/libsinsp/utils.h b/userspace/libsinsp/utils.h
+index 600d00b..4ab4650 100644
+--- a/userspace/libsinsp/utils.h
++++ b/userspace/libsinsp/utils.h
+@@ -79,7 +79,7 @@ public:
+ 
+ 	static uint64_t get_current_time_ns();
+ 
+-#ifndef _WIN32
++#if not defined(_WIN32) && defined(__GLIBC__)
+ 	//
+ 	// Print the call stack
+ 	//
+-- 
+2.6.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig/0001-libsinsp-Port-to-build-with-lua-5.2.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig/0001-libsinsp-Port-to-build-with-lua-5.2.patch
new file mode 100644
index 0000000..8fec0ca
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig/0001-libsinsp-Port-to-build-with-lua-5.2.patch
@@ -0,0 +1,108 @@
+From c2782a6ca968190e221c25b0890600ba8cd43798 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 23 Oct 2015 00:23:15 -0700
+Subject: [PATCH] libsinsp: Port to build with lua >= 5.2
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ userspace/libsinsp/chisel.cpp | 40 +++++++++++++++++++++++++++++-----------
+ 1 file changed, 29 insertions(+), 11 deletions(-)
+
+diff --git a/userspace/libsinsp/chisel.cpp b/userspace/libsinsp/chisel.cpp
+index 3cfbd8d..2db9348 100644
+--- a/userspace/libsinsp/chisel.cpp
++++ b/userspace/libsinsp/chisel.cpp
+@@ -94,7 +94,7 @@ void lua_stackdump(lua_State *L)
+ // Lua callbacks
+ ///////////////////////////////////////////////////////////////////////////////
+ #ifdef HAS_LUA_CHISELS
+-const static struct luaL_reg ll_sysdig [] = 
++const static struct luaL_Reg ll_sysdig [] =
+ {
+ 	{"set_filter", &lua_cbacks::set_global_filter},
+ 	{"set_snaplen", &lua_cbacks::set_snaplen},
+@@ -120,7 +120,7 @@ const static struct luaL_reg ll_sysdig [] =
+ 	{NULL,NULL}
+ };
+ 
+-const static struct luaL_reg ll_chisel [] = 
++const static struct luaL_Reg ll_chisel [] =
+ {
+ 	{"request_field", &lua_cbacks::request_field},
+ 	{"set_filter", &lua_cbacks::set_filter},
+@@ -131,7 +131,7 @@ const static struct luaL_reg ll_chisel [] =
+ 	{NULL,NULL}
+ };
+ 
+-const static struct luaL_reg ll_evt [] = 
++const static struct luaL_Reg ll_evt [] =
+ {
+ 	{"field", &lua_cbacks::field},
+ 	{"get_num", &lua_cbacks::get_num},
+@@ -853,10 +853,28 @@ bool sinsp_chisel::parse_view_info(lua_State *ls, OUT chisel_desc* cd)
+ 
+ 
+ #ifdef HAS_LUA_CHISELS
++static void chisel_lua_registerlib(lua_State *L, const char *libname,
++				const luaL_Reg *l, int ind)
++{
++#if LUA_VERSION_NUM >= 502
++	if (libname)
++	{
++		lua_newtable(L);
++		luaL_setfuncs(L, l, ind);
++		lua_pushvalue(L, -1);
++		lua_setglobal(L, libname);
++	}
++	else
++		luaL_setfuncs(L, l, ind);
++#else
++	luaL_register(L, libname, l);
++#endif
++}
++
+ // Initializes a lua chisel
+ bool sinsp_chisel::init_lua_chisel(chisel_desc &cd, string const &fpath)
+ {
+-	lua_State* ls = lua_open();
++	lua_State* ls = luaL_newstate();
+ 	if(ls == NULL)
+ 	{
+ 		return false;
+@@ -867,9 +885,9 @@ bool sinsp_chisel::init_lua_chisel(chisel_desc &cd, string const &fpath)
+ 	//
+ 	// Load our own lua libs
+ 	//
+-	luaL_openlib(ls, "sysdig", ll_sysdig, 0);
+-	luaL_openlib(ls, "chisel", ll_chisel, 0);
+-	luaL_openlib(ls, "evt", ll_evt, 0);
++	chisel_lua_registerlib(ls, "sysdig", ll_sysdig, 0);
++	chisel_lua_registerlib(ls, "chisel", ll_chisel, 0);
++	chisel_lua_registerlib(ls, "evt", ll_evt, 0);
+ 
+ 	//
+ 	// Add our chisel paths to package.path
+@@ -1111,16 +1129,16 @@ void sinsp_chisel::load(string cmdstr)
+ 	//
+ 	// Open the script
+ 	//
+-	m_ls = lua_open();
++	m_ls = luaL_newstate();
+  
+ 	luaL_openlibs(m_ls);
+ 
+ 	//
+ 	// Load our own lua libs
+ 	//
+-	luaL_openlib(m_ls, "sysdig", ll_sysdig, 0);
+-	luaL_openlib(m_ls, "chisel", ll_chisel, 0);
+-	luaL_openlib(m_ls, "evt", ll_evt, 0);
++	chisel_lua_registerlib(m_ls, "sysdig", ll_sysdig, 0);
++	chisel_lua_registerlib(m_ls, "chisel", ll_chisel, 0);
++	chisel_lua_registerlib(m_ls, "evt", ll_evt, 0);
+ 
+ 	//
+ 	// Add our chisel paths to package.path
+-- 
+2.6.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig_git.bb
new file mode 100644
index 0000000..717fab9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/sysdig/sysdig_git.bb
@@ -0,0 +1,35 @@
+SUMMARY = "A New System Troubleshooting Tool Built for the Way You Work"
+DESCRIPTION = "Sysdig is open source, system-level exploration: capture \
+system state and activity from a running Linux instance, then save, \
+filter and analyze."
+HOMEPAGE = "http://www.sysdig.org/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+inherit cmake pkgconfig
+
+DEPENDS = "luajit zlib ncurses"
+RDEPENDS_${PN} = "bash"
+
+SRC_URI = "git://github.com/draios/sysdig.git;branch=master \
+           file://0001-libsinsp-Port-to-build-with-lua-5.2.patch \
+           file://0001-Fix-build-with-musl-backtrace-APIs-are-glibc-specifi.patch \
+          "
+SRCREV = "85d16f33a82a17f87ccdbc088749271c71d87013"
+PV = "0.1.102+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+DIR_ETC="/etc"
+EXTRA_OECMAKE = ' -DUSE_BUNDLED_LUAJIT="OFF" \
+                  -DUSE_BUNDLED_ZLIB="OFF" \
+                  -DBUILD_DRIVER="OFF" \
+                  -DUSE_BUNDLED_NCURSES="OFF" \
+                  -DDIR_ETC="${DIR_ETC}" \
+                '
+
+FILES_${PN} += " \
+    ${DIR_ETC}/* \
+    ${datadir}/zsh/* \ 
+    ${prefix}/src/*  \
+"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/t1lib/t1lib-5.1.2/configure.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/t1lib/t1lib-5.1.2/configure.patch
new file mode 100644
index 0000000..8b98707
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/t1lib/t1lib-5.1.2/configure.patch
@@ -0,0 +1,128 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- t1lib-5.0.2/configure.in~configure.patch
++++ t1lib-5.0.2/configure.in
+@@ -75,9 +75,9 @@
+ T1LIB_VERSIONSTRING=\"MACRO_T1LIB_IDENTIFIER\"
+ 
+ 
+-dnl We use this file by Andreas Zeller to check for libXaw
+-builtin(include, ac-tools/ice_find_athena.m4)
+-builtin(include, ac-tools/aclocal.m4)
++#dnl We use this file by Andreas Zeller to check for libXaw
++#builtin(include, ac-tools/ice_find_athena.m4)
++#builtin(include, ac-tools/aclocal.m4)
+ 
+ dnl We want these before the checks, so the checks can modify their values.
+ test -z "$LDLIBS" && LDLIBS=-lm   AC_SUBST(LDLIBS)
+@@ -161,6 +161,7 @@
+ 
+ dnl **** Check for underscore on external symbols ****
+ 
++AH_TEMPLATE([NEED_UNDERSCORE_PREFIX], [Define if external symbols need an underscore prefix])
+ AC_CACHE_CHECK("whether external symbols need an underscore prefix",
+                ac_cv_c_extern_prefix,
+ [saved_libs=$LIBS
+@@ -178,68 +179,48 @@
+   AC_DEFINE(NEED_UNDERSCORE_PREFIX)
+ fi
+ 
+-dnl **** Check which ANSI integer type is 16 bit 
++dnl **** Check which ANSI integer type is 16 bit
++T1_AA_TYPE16=""
++for type in short int; do
++	if test x"`eval echo \\$ac_cv_sizeof_$type`" = "x2"; then
++		T1_AA_TYPE16="-DT1_AA_TYPE16=$type"
++		T1_INT16="$type"
++		break
++	fi
++done
+ 
+-AC_CACHE_CHECK( "which ANSI integer type is 16 bit", ac_16bit_type,
+-		AC_TRY_RUN([
+-int main(void) {
+-  if (sizeof(short)==2)
+-    return(0);
+-  else if (sizeof(int)==2)
+-    return(1);
+-  else
+-    return(2);
+-}], ac_16bit_type="short", ac_16bit_type="int", ac_16bit_type=))
+-if test "$ac_16bit_type" = "short"
+-then
+-  T1_AA_TYPE16="-DT1_AA_TYPE16=short"
+-  T1_INT16="short"
+-else
+-  T1_AA_TYPE16="-DT1_AA_TYPE16=int"
+-  T1_INT16="int"
++if test x"$T1_AA_TYPE16" = "x"; then
++	AC_MSG_ERROR("Unable to determine which integer type is 16 bit.")
+ fi
+ 
+-
+ dnl **** Check which ANSI integer type is 32 bit 
++T1_AA_TYPE32=""
++for type in int long; do
++	if test x"`eval echo \\$ac_cv_sizeof_$type`" = "x4"; then
++		T1_AA_TYPE32="-DT1_AA_TYPE32=$type"
++		T1_INT32="$type"
++		break
++	fi
++done
+ 
+-AC_CACHE_CHECK( "which ANSI integer type is 32 bit", ac_32bit_type,
+-		AC_TRY_RUN([
+-int main(void) {
+-  if (sizeof(int)==4)
+-    return(0);
+-  else if (sizeof(long)==4)
+-    return(1);
+-  else
+-    return(2);
+-}], ac_32bit_type="int", ac_32bit_type="long", ac_32bit_type=))
+-if test "$ac_32bit_type" = "int"
+-then
+-  T1_AA_TYPE32="-DT1_AA_TYPE32=int"
+-  T1_INT32="int"
+-else
+-  T1_AA_TYPE32="-DT1_AA_TYPE32=long"
+-  T1_INT32="long"
++if test x"$T1_AA_TYPE32" = "x"; then
++	AC_MSG_ERROR("Unable to determine which integer type is 32 bit.")
+ fi
+ 
+-
+ dnl **** Check which ANSI integer type is 64 bit 
++T1_AA_TYPE64=""
++for type in long long_long; do
++	if test x"`eval echo \\$ac_cv_sizeof_$type`" = "x8"; then
++		AC_MSG_WARN("$type is 64 bit")
++		T1_AA_TYPE64="-DT1_AA_TYPE64=\"`echo $type|tr '_' ' '`\""
++		break
++	fi
++done
+ 
+-AC_CACHE_CHECK( "which ANSI integer type is 64 bit", ac_64bit_type,
+-		AC_TRY_RUN([
+-int main(void) {
+-  if (sizeof(long)==8)
+-    return(0);
+-  else
+-    return(1);
+-}], ac_64bit_type="long", ac_64bit_type="<none>"))
+-if test "$ac_64bit_type" = "long"
+-then
+-  T1_AA_TYPE64="-DT1_AA_TYPE64=long"
+-else
+-  T1_AA_TYPE64=
++if test x"$T1_AA_TYPE64" = "x"; then
++	AC_MSG_ERROR("Unable to determine which integer type is 64 bit.")
+ fi
+ 
+-
+ CFLAGS="${CFLAGS} -DT1LIB_IDENT=\"\\\"${T1LIB_IDENTIFIER}\\\"\" -DGLOBAL_CONFIG_DIR=\"\\\"${T1LIB_DATA_DIR}\\\"\""
+ 
+ dnl **** Check for functions and header files ****
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/t1lib/t1lib-5.1.2/libtool.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/t1lib/t1lib-5.1.2/libtool.patch
new file mode 100644
index 0000000..e050025
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/t1lib/t1lib-5.1.2/libtool.patch
@@ -0,0 +1,116 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- t1lib-5.0.2/Makefile.in~libtool
++++ t1lib-5.0.2/Makefile.in
+@@ -18,7 +18,8 @@
+ # Last modified:       2001-04-01
+ #
+ 
+-SHELL     = /bin/sh
++SHELL     = @SHELL@
++LIBTOOL   = @LIBTOOL@
+ CC        = @CC@
+ CPP       = @CPP@
+ CFLAGS    = @CFLAGS@
+@@ -150,7 +151,7 @@
+ 	$(RM) examples/Makefile
+ 	$(RM) xglyph/Makefile
+ 	$(RM) doc/Makefile
+-	$(RM) libtool
++	$(RM) $(LIBTOOL)
+ 
+ 
+ # The following two targets are for building and cleaning the python-
+--- t1lib-5.0.2/examples/Makefile.in~libtool
++++ t1lib-5.0.2/examples/Makefile.in
+@@ -14,9 +14,10 @@
+ # Last modified:       2001-04-01
+ #
+ 
++top_builddir = @top_builddir@
+ 
+-LIBTOOL   = ../libtool
+-SHELL     = /bin/sh
++LIBTOOL   = @LIBTOOL@
++SHELL     = @SHELL@
+ CC        = @CC@
+ CPP       = @CPP@
+ CFLAGS    = @CFLAGS@
+--- t1lib-5.0.2/lib/Makefile.in~libtool
++++ t1lib-5.0.2/lib/Makefile.in
+@@ -15,8 +15,10 @@
+ #
+ # Contributions by H.Kakugawa to use libtool!
+ 
+-LIBTOOL   = ../libtool
+-SHELL     = /bin/sh
++top_builddir = @top_builddir@
++
++LIBTOOL   = @LIBTOOL@
++SHELL     = @SHELL@
+ CC        = @CC@
+ CPP       = @CPP@
+ CFLAGS    = @CFLAGS@
+--- t1lib-5.0.2/lib/t1lib/Makefile.in~libtool
++++ t1lib-5.0.2/lib/t1lib/Makefile.in
+@@ -14,8 +14,10 @@
+ #
+ # Modified by H.Kakugawa to use libtool
+ 
+-LIBTOOL   = ../../libtool
+-SHELL     = /bin/sh
++top_builddir = @top_builddir@
++
++LIBTOOL   = @LIBTOOL@
++SHELL     = @SHELL@
+ CC        = @CC@
+ CPP       = @CPP@
+ CFLAGS    = @CFLAGS@
+--- t1lib-5.0.2/lib/type1/Makefile.in~libtool
++++ t1lib-5.0.2/lib/type1/Makefile.in
+@@ -14,8 +14,10 @@
+ #
+ # Modified by H.Kakugawa to use libtool
+ 
+-LIBTOOL   = ../../libtool
+-SHELL     = /bin/sh
++top_builddir = @top_builddir@
++
++LIBTOOL   = @LIBTOOL@
++SHELL     = @SHELL@
+ CC        = @CC@
+ CPP       = @CPP@
+ CFLAGS    = @CFLAGS@
+--- t1lib-5.0.2/type1afm/Makefile.in~libtool
++++ t1lib-5.0.2/type1afm/Makefile.in
+@@ -15,8 +15,10 @@
+ #
+ # Modified by H.Kakugawa to use libtool
+ 
+-LIBTOOL   = ../libtool
+-SHELL     = /bin/sh
++top_builddir = @top_builddir@
++
++LIBTOOL   = @LIBTOOL@
++SHELL     = @SHELL@
+ CC        = @CC@
+ CPP       = @CPP@
+ CFLAGS    = @CFLAGS@
+--- t1lib-5.0.2/xglyph/Makefile.in~libtool
++++ t1lib-5.0.2/xglyph/Makefile.in
+@@ -15,8 +15,10 @@
+ #
+ # Modified by H.Kakugawa to use libtool
+ 
+-LIBTOOL   = ../libtool
+-SHELL     = /bin/sh
++top_builddir = @top_builddir@
++
++LIBTOOL   = @LIBTOOL@
++SHELL     = @SHELL@
+ CC        = @CC@
+ CPP       = @CPP@
+ CFLAGS    = @CFLAGS@
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/t1lib/t1lib_5.1.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/t1lib/t1lib_5.1.2.bb
new file mode 100644
index 0000000..1d670a7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/t1lib/t1lib_5.1.2.bb
@@ -0,0 +1,28 @@
+SUMMARY = "A Type1 Font Rastering Library"
+SECTION = "libs"
+DEPENDS = "virtual/libx11 libxaw"
+
+LICENSE = "LGPLv2 & GPLv2"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8ca43cbc842c2336e835926c2166c28b \
+                    file://LGPL;md5=6e29c688d912da12b66b73e32b03d812 \
+"
+
+SRC_URI = "${DEBIAN_MIRROR}/main/t/t1lib/t1lib_${PV}.orig.tar.gz \
+           file://configure.patch \
+           file://libtool.patch"
+SRC_URI[md5sum] = "a5629b56b93134377718009df1435f3c"
+SRC_URI[sha256sum] = "821328b5054f7890a0d0cd2f52825270705df3641dbd476d58d17e56ed957b59"
+
+inherit autotools-brokensep distro_features_check
+# depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+# Fix GNU_HASH problem
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+EXTRA_OECONF = "--with-x --without-athena"
+EXTRA_OEMAKE = "without_doc"
+
+FILES_${PN} += " ${datadir}/t1lib/t1lib.config"
+FILES_${PN}-doc = "${datadir}/t1lib/doc/t1lib_doc.pdf"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/files/01_build.1.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/files/01_build.1.patch
new file mode 100644
index 0000000..b9f41ad
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/files/01_build.1.patch
@@ -0,0 +1,16 @@
+Author: Franz Pletz <fpletz@franz-pletz.org>
+Description: Original comment: Fix build
+Not sure why we have this patch. Let's keep it for compatibility.
+--- a/pathnames.h
++++ b/pathnames.h
+@@ -92,6 +92,10 @@
+ # define _PATH_TCSHELL		"/local/bin/tcsh"	/* use ram disk */
+ #endif /* _MINIX && !_PATH_TCSHELL */
+ 
++#ifndef _PATH_TCSHELL
++# define _PATH_TCSHELL		"/bin/tcsh"		/* Debian */
++#endif /* !_PATH_TCSHELL */
++
+ #if defined(__EMX__) && !defined(_PATH_DEVNULL)
+ # define _PATH_DEVNULL		"nul"
+ #endif /* __EMX__ && !_PATH_DEVNULL */
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/files/01_build.2.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/files/01_build.2.patch
new file mode 100644
index 0000000..ff27531
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/files/01_build.2.patch
@@ -0,0 +1,13 @@
+Author: Franz Pletz <fpletz@franz-pletz.org>
+Description: Update manpage.
+--- a/tcsh.man
++++ b/tcsh.man
+@@ -578,7 +578,7 @@ Repeating \fIdabbrev-expand\fR without a
+ changes to the next previous word etc., skipping identical matches
+ much like \fIhistory-search-backward\fR does.
+ .TP 8
+-.B delete-char \fR(not bound)
++.B delete-char \fR(bound to `Del' if using the standard \fI/etc/csh.cshrc\fR)
+ Deletes the character under the cursor.
+ See also \fIdelete-char-or-list-or-eof\fR.
+ .TP 8
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/files/01_build.3.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/files/01_build.3.patch
new file mode 100644
index 0000000..d36c177
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/files/01_build.3.patch
@@ -0,0 +1,13 @@
+Author: Franz Pletz <fpletz@franz-pletz.org>
+Description: Enable NODOT
+--- a/config_f.h
++++ b/config_f.h
+@@ -98,7 +98,7 @@
+ /*
+  * NODOT	Don't put "." in the default path, for security reasons
+  */
+-#undef NODOT
++#define NODOT
+ 
+ /*
+  * AUTOLOGOUT	tries to determine if it should set autologout depending
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/files/12_unknown_lscolors.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/files/12_unknown_lscolors.patch
new file mode 100644
index 0000000..faa59cc
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/files/12_unknown_lscolors.patch
@@ -0,0 +1,24 @@
+Author: Franz Pletz <fpletz@franz-pletz.org>
+Description: Don't die on unknown LS_COLORS values
+Removing the patch causes a segfault when dircolors is set by coreutils' dircolors.
+Debian-Bug: #592089
+
+--- a/tw.color.c
++++ b/tw.color.c
+@@ -239,13 +239,10 @@ parseLS_COLORS(const Char *value)
+ 		    if ((Char)variables[i].variable[0] == (v[0] & CHAR) &&
+ 			(Char)variables[i].variable[1] == (v[1] & CHAR))
+ 			break;
+-		if (i < nvariables) {
+-		    v += 3;
++		v += 3;
++		if (i < nvariables)
+ 		    getstring(&c, &v, &variables[i].color, ':');
+-		    continue;
+-		}
+-		else
+-		    stderror(ERR_BADCOLORVAR, v[0], v[1]);
++		continue;
+ 	    }
+ 	    break;
+ 	}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/files/15_no-strip.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/files/15_no-strip.patch
new file mode 100644
index 0000000..cbc9f65
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/files/15_no-strip.patch
@@ -0,0 +1,14 @@
+Author: Lucas Nussbaum <lucas@debian.org>
+Description: do not strip binary
+ Stripping should be handled by dh_strip instead, so DEB_BUILD_OPTIONS=nostrip works.
+ Closes: #438109, #411607
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -596,7 +596,6 @@ install: tcsh$(EXEEXT)
+ 	-mkdir -p ${DESTBIN}
+ 	-mv -f ${DESTBIN}/tcsh$(EXEEXT)  ${DESTBIN}/tcsh.old
+ 	cp tcsh$(EXEEXT) ${DESTBIN}/tcsh$(EXEEXT)
+-	-strip ${DESTBIN}/tcsh$(EXEEXT)
+ 	chmod 755 ${DESTBIN}/tcsh$(EXEEXT)
+ 
+ install.man: tcsh.man
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/files/disable-broken-test.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/files/disable-broken-test.patch
new file mode 100644
index 0000000..0bda0ba
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/files/disable-broken-test.patch
@@ -0,0 +1,14 @@
+Author: Lucas Nussbaum <lucas@debian.org>
+Description: disable syntactically incorrect test
+--- a/tests/lexical.at
++++ b/tests/lexical.at
+@@ -172,9 +172,6 @@
+ AT_DATA([nohist.csh],
+ [echo ! space !	tab != "!(" newline !
+ ])
+-AT_CHECK([tcsh -f nohist.csh], ,
+-[[! space ! tab != !( newline !
+-]])
+ 
+ AT_CLEANUP
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/files/disable-lexical.at-31.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/files/disable-lexical.at-31.patch
new file mode 100644
index 0000000..98a9b2e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/files/disable-lexical.at-31.patch
@@ -0,0 +1,30 @@
+--- a/tests/lexical.at
++++ b/tests/lexical.at
+@@ -27,27 +27,6 @@ AT_CHECK([tcsh -f oneword.csh], ,
+ 
+ AT_CLEANUP
+ 
+-
+-AT_SETUP([Comments])
+-
+-AT_CHECK([echo 'echo OK@%:@comment' | tcsh -f], , [OK
+-])
+-
+-AT_CHECK([tcsh -f -c 'echo @%:@no comment'], ,
+-[@%:@no comment
+-])
+-
+-AT_DATA([comment2.csh],
+-[[echo testing...@%:@\
+-OK
+-]])
+-AT_CHECK([tcsh -f comment2.csh], ,
+-[testing... OK
+-])
+-
+-AT_CLEANUP
+-
+-
+ AT_SETUP([Escaping special characters])
+ 
+ AT_DATA([nosplit.csh],
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/files/disable-test-nice.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/files/disable-test-nice.patch
new file mode 100644
index 0000000..79f918c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/files/disable-test-nice.patch
@@ -0,0 +1,23 @@
+Author: Lucas Nussbaum <lucas@debian.org>
+Description: disable test that fails on the buildd with
+  "setpriority: Permission denied".
+--- a/tests/commands.at
++++ b/tests/commands.at
+@@ -888,17 +888,6 @@ TCSH_UNTESTED([migrate])
+ TCSH_UNTESTED([newgrp])
+ 
+ 
+-AT_SETUP([nice])
+-
+-# Nothing really tested
+-AT_CHECK([tcsh -f -c 'nice set var=1; echo $?var'], ,
+-[0
+-])
+-
+-
+-AT_CLEANUP
+-
+-
+ AT_SETUP([nohup])
+ 
+ AT_DATA([nohup.csh],
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/files/disable-test-notty.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/files/disable-test-notty.patch
new file mode 100644
index 0000000..69f0564
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/files/disable-test-notty.patch
@@ -0,0 +1,30 @@
+From: Lucas Nussbaum <lucas@debian.org>
+Description: Those tests fail when running the testsuite without a tty. Disabling them.
+
+--- a/tests/commands.at
++++ b/tests/commands.at
+@@ -1203,11 +1203,6 @@ AT_SETUP([source])
+ AT_DATA([script.csh],
+ [[set var=$1
+ ]])
+-AT_CHECK([[tcsh -f -c 'source -h script.csh foo; history' \
+-	   | sed 's/	[^	]*	/ TIME /']], ,
+-[     1 TIME source -h script.csh foo ; history
+-     2 TIME set var=$1
+-])
+ 
+ AT_CHECK([tcsh -f -c 'source -h script.csh foo; echo $var'], 1, [],
+ [var: Undefined variable.
+--- a/tests/variables.at
++++ b/tests/variables.at
+@@ -319,10 +319,6 @@ AT_CLEANUP
+ 
+ AT_SETUP([$ edit])
+ 
+-AT_CHECK([TERM=something tcsh -f -c 'echo $?edit'], ,
+-[1
+-])
+-
+ AT_CHECK([TERM=dumb tcsh -f -c 'echo $?edit'], ,
+ [0
+ ])
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/files/tcsh-6.17.02-multibyte.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/files/tcsh-6.17.02-multibyte.patch
new file mode 100644
index 0000000..3dd420a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/files/tcsh-6.17.02-multibyte.patch
@@ -0,0 +1,18 @@
+Author:  Jean-Luc Leger <reiga@dspnet.fr.eu.org>
+Description: fix broken globbing expansion
+Debian-Bug: #603545
+Index: tcsh-6.18.01/tc.str.c
+===================================================================
+--- tcsh-6.18.01.orig/tc.str.c	2012-01-10 13:34:31.000000000 -0800
++++ tcsh-6.18.01/tc.str.c	2013-02-26 13:12:13.429153489 -0800
+@@ -122,8 +122,9 @@
+ #else
+     ret = mbtowc(&tmp, s, n);
+ #endif
+-    if (ret > 0) {
++    if (ret >= 0)
+ 	*pwc = tmp;
++    if (ret >= 0) {
+ #if defined(UTF16_STRINGS) && defined(HAVE_MBRTOWC)
+ 	if (tmp >= 0xd800 && tmp <= 0xdbff) {
+ 	    /* UTF-16 surrogate pair.  Fetch second half and compute
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/tcsh_6.18.01.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/tcsh_6.18.01.bb
new file mode 100644
index 0000000..1dd4cb5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/tcsh/tcsh_6.18.01.bb
@@ -0,0 +1,49 @@
+DESCRIPTION = "TENEX C Shell, an enhanced version of Berkeley csh \
+    The TENEX C Shell is an enhanced version of the Berkeley Unix C shell. \
+    It includes all features of 4.4BSD C shell, plus a command-line editor, \
+    programmable word completion, spelling correction and more."
+
+HOMEPAGE = "http://www.tcsh.org/"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://Copyright;md5=1cf29be62df2be1a3763118b25b4c780"
+SECTION = "base"
+DEPENDS = "ncurses gettext-native"
+SRC_URI = " \
+    ${DEBIAN_MIRROR}/main/t/tcsh/tcsh_${PV}.orig.tar.gz;name=tarball \
+    ${DEBIAN_MIRROR}/main/t/tcsh/tcsh_${PV}-2.diff.gz;name=diffs \
+    file://01_build.1.patch \
+    file://01_build.2.patch \
+    file://01_build.3.patch \
+    file://15_no-strip.patch \
+    file://disable-test-notty.patch \
+    file://disable-test-nice.patch \
+    file://disable-lexical.at-31.patch \
+    file://12_unknown_lscolors.patch \
+    file://tcsh-6.17.02-multibyte.patch \
+    file://disable-broken-test.patch \
+"
+SRC_URI[tarball.md5sum] = "6eed09dbd4223ab5b6955378450d228a"
+SRC_URI[tarball.sha256sum] = "d81ca27851f3e8545666399b4bcf25433e602a195113b3f7c73886fef84c9fa8"
+SRC_URI[diffs.md5sum] = "ea39b818b624aca49ebf2cd2708d6ff9"
+SRC_URI[diffs.sha256sum] = "95b0c1a339b745c47c5d2f9d02c22a71597462e2e882b51614a9d1f75bd3d16c"
+
+inherit autotools
+
+do_install_append () {
+    oe_runmake install.man DESTDIR=${D}
+
+    install -d ${D}${base_bindir}
+    ln -s /usr/bin/tcsh ${D}${base_bindir}/tcsh
+
+    install -d ${D}${sysconfdir}/csh/login.d
+    install -m 0644 ${S}/debian/csh.cshrc ${S}/debian/csh.login ${S}/debian/csh.logout ${S}/complete.tcsh ${D}${sysconfdir}
+    install -D -m 0644 ${S}/csh-mode.el ${D}${datadir}/emacs/site-lisp/csh-mode.el
+}
+
+FILES_${PN} += "${datadir}/emacs/site-lisp/csh-mode.el"
+
+
+pkg_postinst_${PN} () {
+#!/bin/sh -e
+echo /usr/bin/tcsh >> $D/etc/shells
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/testfloat/files/0001-Makefile-for-cross-compile-SoftFloat.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/testfloat/files/0001-Makefile-for-cross-compile-SoftFloat.patch
new file mode 100644
index 0000000..71782c5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/testfloat/files/0001-Makefile-for-cross-compile-SoftFloat.patch
@@ -0,0 +1,348 @@
+Upstream-Status: Inappropriate [configuration]
+
+From 07f2528d93f44fe1d8080a4225f29f4ada9f4663 Mon Sep 17 00:00:00 2001
+From: Fabio Berton <fabio.berton@ossystems.com.br>
+Date: Thu, 4 Feb 2016 09:15:37 -0200
+Subject: [PATCH 1/2] Makefile for cross compile SoftFloat
+
+Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
+---
+ SoftFloat-3a/build/Linux-Cross-Compile/Makefile   | 274 ++++++++++++++++++++++
+ SoftFloat-3a/build/Linux-Cross-Compile/platform.h |  44 ++++
+ 2 files changed, 318 insertions(+)
+ create mode 100644 SoftFloat-3a/build/Linux-Cross-Compile/Makefile
+ create mode 100644 SoftFloat-3a/build/Linux-Cross-Compile/platform.h
+
+diff --git a/SoftFloat-3a/build/Linux-Cross-Compile/Makefile b/SoftFloat-3a/build/Linux-Cross-Compile/Makefile
+new file mode 100644
+index 0000000..c4d0a60
+--- /dev/null
++++ b/SoftFloat-3a/build/Linux-Cross-Compile/Makefile
+@@ -0,0 +1,274 @@
++
++#=============================================================================
++#
++# This Makefile is part of the SoftFloat IEEE Floating-Point Arithmetic
++# Package, Release 3a, by John R. Hauser.
++#
++# Copyright 2011, 2012, 2013, 2014 The Regents of the University of
++# California.  All rights reserved.
++#
++# Redistribution and use in source and binary forms, with or without
++# modification, are permitted provided that the following conditions are met:
++#
++#  1. Redistributions of source code must retain the above copyright notice,
++#     this list of conditions, and the following disclaimer.
++#
++#  2. Redistributions in binary form must reproduce the above copyright
++#     notice, this list of conditions, and the following disclaimer in the
++#     documentation and/or other materials provided with the distribution.
++#
++#  3. Neither the name of the University nor the names of its contributors
++#     may be used to endorse or promote products derived from this software
++#     without specific prior written permission.
++#
++# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
++# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
++# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
++# DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
++# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
++# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
++# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
++# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
++# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++#
++#=============================================================================
++
++SOURCE_DIR = ../../source
++SPECIALIZE_TYPE = 8086
++
++SOFTFLOAT_OPTS = -DINLINE_LEVEL=5 -DSOFTFLOAT_FAST_DIV64TO32 -fgnu89-inline
++
++DELETE = rm -f
++C_INCLUDES = -I. -I$(SOURCE_DIR)/$(SPECIALIZE_TYPE) -I$(SOURCE_DIR)/include
++COMPILE_C = \
++  ${CC} -c -Werror-implicit-function-declaration $(SOFTFLOAT_OPTS) \
++    $(C_INCLUDES) -O2 -o $@
++MAKELIB = ${AR} crs $@
++
++OBJ = .o
++LIB = .a
++
++.PHONY: all
++all: softfloat$(LIB)
++
++OBJS_PRIMITIVES = \
++  s_compare96M$(OBJ) \
++  s_compare128M$(OBJ) \
++  s_shortShiftLeft64To96M$(OBJ) \
++  s_shortShiftLeftM$(OBJ) \
++  s_shiftLeftM$(OBJ) \
++  s_shortShiftRightM$(OBJ) \
++  s_shortShiftRightJam64$(OBJ) \
++  s_shortShiftRightJamM$(OBJ) \
++  s_shiftRightJam32$(OBJ) \
++  s_shiftRightJam64$(OBJ) \
++  s_shiftRightJamM$(OBJ) \
++  s_shiftRightM$(OBJ) \
++  s_countLeadingZeros8$(OBJ) \
++  s_countLeadingZeros32$(OBJ) \
++  s_countLeadingZeros64$(OBJ) \
++  s_addM$(OBJ) \
++  s_addCarryM$(OBJ) \
++  s_addComplCarryM$(OBJ) \
++  s_negXM$(OBJ) \
++  s_sub1XM$(OBJ) \
++  s_subM$(OBJ) \
++  s_mul64To128M$(OBJ) \
++  s_mul128MTo256M$(OBJ) \
++  s_approxRecip32_1$(OBJ) \
++  s_approxRecipSqrt32_1$(OBJ) \
++  s_remStepMBy32$(OBJ) \
++
++OBJS_SPECIALIZE = \
++  softfloat_raiseFlags$(OBJ) \
++  s_f32UIToCommonNaN$(OBJ) \
++  s_commonNaNToF32UI$(OBJ) \
++  s_propagateNaNF32UI$(OBJ) \
++  s_f64UIToCommonNaN$(OBJ) \
++  s_commonNaNToF64UI$(OBJ) \
++  s_propagateNaNF64UI$(OBJ) \
++  extF80M_isSignalingNaN$(OBJ) \
++  s_extF80MToCommonNaN$(OBJ) \
++  s_commonNaNToExtF80M$(OBJ) \
++  s_propagateNaNExtF80M$(OBJ) \
++  f128M_isSignalingNaN$(OBJ) \
++  s_f128MToCommonNaN$(OBJ) \
++  s_commonNaNToF128M$(OBJ) \
++  s_propagateNaNF128M$(OBJ) \
++
++OBJS_OTHERS = \
++  s_roundPackToUI32$(OBJ) \
++  s_roundPackMToUI64$(OBJ) \
++  s_roundPackToI32$(OBJ) \
++  s_roundPackMToI64$(OBJ) \
++  s_normSubnormalF32Sig$(OBJ) \
++  s_roundPackToF32$(OBJ) \
++  s_normRoundPackToF32$(OBJ) \
++  s_addMagsF32$(OBJ) \
++  s_subMagsF32$(OBJ) \
++  s_mulAddF32$(OBJ) \
++  s_normSubnormalF64Sig$(OBJ) \
++  s_roundPackToF64$(OBJ) \
++  s_normRoundPackToF64$(OBJ) \
++  s_addMagsF64$(OBJ) \
++  s_subMagsF64$(OBJ) \
++  s_mulAddF64$(OBJ) \
++  s_tryPropagateNaNExtF80M$(OBJ) \
++  s_invalidExtF80M$(OBJ) \
++  s_normExtF80SigM$(OBJ) \
++  s_roundPackMToExtF80M$(OBJ) \
++  s_normRoundPackMToExtF80M$(OBJ) \
++  s_addExtF80M$(OBJ) \
++  s_compareNonnormExtF80M$(OBJ) \
++  s_isNaNF128M$(OBJ) \
++  s_tryPropagateNaNF128M$(OBJ) \
++  s_invalidF128M$(OBJ) \
++  s_shiftNormSigF128M$(OBJ) \
++  s_roundPackMToF128M$(OBJ) \
++  s_normRoundPackMToF128M$(OBJ) \
++  s_addF128M$(OBJ) \
++  s_mulAddF128M$(OBJ) \
++  softfloat_state$(OBJ) \
++  ui32_to_f32$(OBJ) \
++  ui32_to_f64$(OBJ) \
++  ui32_to_extF80M$(OBJ) \
++  ui32_to_f128M$(OBJ) \
++  ui64_to_f32$(OBJ) \
++  ui64_to_f64$(OBJ) \
++  ui64_to_extF80M$(OBJ) \
++  ui64_to_f128M$(OBJ) \
++  i32_to_f32$(OBJ) \
++  i32_to_f64$(OBJ) \
++  i32_to_extF80M$(OBJ) \
++  i32_to_f128M$(OBJ) \
++  i64_to_f32$(OBJ) \
++  i64_to_f64$(OBJ) \
++  i64_to_extF80M$(OBJ) \
++  i64_to_f128M$(OBJ) \
++  f32_to_ui32$(OBJ) \
++  f32_to_ui64$(OBJ) \
++  f32_to_i32$(OBJ) \
++  f32_to_i64$(OBJ) \
++  f32_to_ui32_r_minMag$(OBJ) \
++  f32_to_ui64_r_minMag$(OBJ) \
++  f32_to_i32_r_minMag$(OBJ) \
++  f32_to_i64_r_minMag$(OBJ) \
++  f32_to_f64$(OBJ) \
++  f32_to_extF80M$(OBJ) \
++  f32_to_f128M$(OBJ) \
++  f32_roundToInt$(OBJ) \
++  f32_add$(OBJ) \
++  f32_sub$(OBJ) \
++  f32_mul$(OBJ) \
++  f32_mulAdd$(OBJ) \
++  f32_div$(OBJ) \
++  f32_rem$(OBJ) \
++  f32_sqrt$(OBJ) \
++  f32_eq$(OBJ) \
++  f32_le$(OBJ) \
++  f32_lt$(OBJ) \
++  f32_eq_signaling$(OBJ) \
++  f32_le_quiet$(OBJ) \
++  f32_lt_quiet$(OBJ) \
++  f32_isSignalingNaN$(OBJ) \
++  f64_to_ui32$(OBJ) \
++  f64_to_ui64$(OBJ) \
++  f64_to_i32$(OBJ) \
++  f64_to_i64$(OBJ) \
++  f64_to_ui32_r_minMag$(OBJ) \
++  f64_to_ui64_r_minMag$(OBJ) \
++  f64_to_i32_r_minMag$(OBJ) \
++  f64_to_i64_r_minMag$(OBJ) \
++  f64_to_f32$(OBJ) \
++  f64_to_extF80M$(OBJ) \
++  f64_to_f128M$(OBJ) \
++  f64_roundToInt$(OBJ) \
++  f64_add$(OBJ) \
++  f64_sub$(OBJ) \
++  f64_mul$(OBJ) \
++  f64_mulAdd$(OBJ) \
++  f64_div$(OBJ) \
++  f64_rem$(OBJ) \
++  f64_sqrt$(OBJ) \
++  f64_eq$(OBJ) \
++  f64_le$(OBJ) \
++  f64_lt$(OBJ) \
++  f64_eq_signaling$(OBJ) \
++  f64_le_quiet$(OBJ) \
++  f64_lt_quiet$(OBJ) \
++  f64_isSignalingNaN$(OBJ) \
++  extF80M_to_ui32$(OBJ) \
++  extF80M_to_ui64$(OBJ) \
++  extF80M_to_i32$(OBJ) \
++  extF80M_to_i64$(OBJ) \
++  extF80M_to_ui32_r_minMag$(OBJ) \
++  extF80M_to_ui64_r_minMag$(OBJ) \
++  extF80M_to_i32_r_minMag$(OBJ) \
++  extF80M_to_i64_r_minMag$(OBJ) \
++  extF80M_to_f32$(OBJ) \
++  extF80M_to_f64$(OBJ) \
++  extF80M_to_f128M$(OBJ) \
++  extF80M_roundToInt$(OBJ) \
++  extF80M_add$(OBJ) \
++  extF80M_sub$(OBJ) \
++  extF80M_mul$(OBJ) \
++  extF80M_div$(OBJ) \
++  extF80M_rem$(OBJ) \
++  extF80M_sqrt$(OBJ) \
++  extF80M_eq$(OBJ) \
++  extF80M_le$(OBJ) \
++  extF80M_lt$(OBJ) \
++  extF80M_eq_signaling$(OBJ) \
++  extF80M_le_quiet$(OBJ) \
++  extF80M_lt_quiet$(OBJ) \
++  f128M_to_ui32$(OBJ) \
++  f128M_to_ui64$(OBJ) \
++  f128M_to_i32$(OBJ) \
++  f128M_to_i64$(OBJ) \
++  f128M_to_ui32_r_minMag$(OBJ) \
++  f128M_to_ui64_r_minMag$(OBJ) \
++  f128M_to_i32_r_minMag$(OBJ) \
++  f128M_to_i64_r_minMag$(OBJ) \
++  f128M_to_f32$(OBJ) \
++  f128M_to_f64$(OBJ) \
++  f128M_to_extF80M$(OBJ) \
++  f128M_roundToInt$(OBJ) \
++  f128M_add$(OBJ) \
++  f128M_sub$(OBJ) \
++  f128M_mul$(OBJ) \
++  f128M_mulAdd$(OBJ) \
++  f128M_div$(OBJ) \
++  f128M_rem$(OBJ) \
++  f128M_sqrt$(OBJ) \
++  f128M_eq$(OBJ) \
++  f128M_le$(OBJ) \
++  f128M_lt$(OBJ) \
++  f128M_eq_signaling$(OBJ) \
++  f128M_le_quiet$(OBJ) \
++  f128M_lt_quiet$(OBJ) \
++
++OBJS_ALL = $(OBJS_PRIMITIVES) $(OBJS_SPECIALIZE) $(OBJS_OTHERS)
++
++$(OBJS_ALL): \
++  platform.h $(SOURCE_DIR)/include/primitiveTypes.h \
++  $(SOURCE_DIR)/include/primitives.h
++$(OBJS_SPECIALIZE) $(OBJS_OTHERS): \
++  $(SOURCE_DIR)/include/softfloat_types.h $(SOURCE_DIR)/include/internals.h \
++  $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/specialize.h \
++  $(SOURCE_DIR)/include/softfloat.h
++
++$(OBJS_PRIMITIVES) $(OBJS_OTHERS): %$(OBJ): $(SOURCE_DIR)/%.c
++	$(COMPILE_C) $(SOURCE_DIR)/$*.c
++
++$(OBJS_SPECIALIZE): %$(OBJ): $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/%.c
++	$(COMPILE_C) $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/$*.c
++
++softfloat$(LIB): $(OBJS_ALL)
++	$(DELETE) $@
++	$(MAKELIB) $^
++
++.PHONY: clean
++clean:
++	$(DELETE) $(OBJS_ALL) softfloat$(LIB)
++
+diff --git a/SoftFloat-3a/build/Linux-Cross-Compile/platform.h b/SoftFloat-3a/build/Linux-Cross-Compile/platform.h
+new file mode 100644
+index 0000000..5e566fc
+--- /dev/null
++++ b/SoftFloat-3a/build/Linux-Cross-Compile/platform.h
+@@ -0,0 +1,44 @@
++
++/*============================================================================
++
++This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
++Package, Release 3a, by John R. Hauser.
++
++Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
++All rights reserved.
++
++Redistribution and use in source and binary forms, with or without
++modification, are permitted provided that the following conditions are met:
++
++ 1. Redistributions of source code must retain the above copyright notice,
++    this list of conditions, and the following disclaimer.
++
++ 2. Redistributions in binary form must reproduce the above copyright notice,
++    this list of conditions, and the following disclaimer in the documentation
++    and/or other materials provided with the distribution.
++
++ 3. Neither the name of the University nor the names of its contributors may
++    be used to endorse or promote products derived from this software without
++    specific prior written permission.
++
++THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
++EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
++WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
++DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
++DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
++(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
++LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
++ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
++SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++=============================================================================*/
++
++/*----------------------------------------------------------------------------
++*----------------------------------------------------------------------------*/
++#define LITTLEENDIAN 1
++
++/*----------------------------------------------------------------------------
++*----------------------------------------------------------------------------*/
++#define INLINE extern inline
++
+-- 
+2.1.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/testfloat/files/0002-Makefile-for-cross-compile-TestFloat.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/testfloat/files/0002-Makefile-for-cross-compile-TestFloat.patch
new file mode 100644
index 0000000..cc124b3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/testfloat/files/0002-Makefile-for-cross-compile-TestFloat.patch
@@ -0,0 +1,396 @@
+Upstream-Status: Inappropriate [configuration]
+
+From 9aa4a416f05967320c1aa52bdccfe105a3bf3269 Mon Sep 17 00:00:00 2001
+From: Fabio Berton <fabio.berton@ossystems.com.br>
+Date: Thu, 4 Feb 2016 09:16:09 -0200
+Subject: [PATCH 2/2] Makefile for cross compile TestFloat
+
+Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
+---
+ TestFloat-3a/build/Linux-Cross-Compile/Makefile   | 321 ++++++++++++++++++++++
+ TestFloat-3a/build/Linux-Cross-Compile/platform.h |  45 +++
+ 2 files changed, 366 insertions(+)
+ create mode 100644 TestFloat-3a/build/Linux-Cross-Compile/Makefile
+ create mode 100644 TestFloat-3a/build/Linux-Cross-Compile/platform.h
+
+diff --git a/TestFloat-3a/build/Linux-Cross-Compile/Makefile b/TestFloat-3a/build/Linux-Cross-Compile/Makefile
+new file mode 100644
+index 0000000..a89326a
+--- /dev/null
++++ b/TestFloat-3a/build/Linux-Cross-Compile/Makefile
+@@ -0,0 +1,321 @@
++
++#=============================================================================
++#
++# This Makefile is part of TestFloat, Release 3a, a package of programs for
++# testing the correctness of floating-point arithmetic complying with the IEEE
++# Standard for Floating-Point, by John R. Hauser.
++#
++# Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
++# California.  All rights reserved.
++#
++# Redistribution and use in source and binary forms, with or without
++# modification, are permitted provided that the following conditions are met:
++#
++#  1. Redistributions of source code must retain the above copyright notice,
++#     this list of conditions, and the following disclaimer.
++#
++#  2. Redistributions in binary form must reproduce the above copyright
++#     notice, this list of conditions, and the following disclaimer in the
++#     documentation and/or other materials provided with the distribution.
++#
++#  3. Neither the name of the University nor the names of its contributors
++#     may be used to endorse or promote products derived from this software
++#     without specific prior written permission.
++#
++# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
++# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
++# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
++# DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
++# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
++# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
++# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
++# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
++# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++#
++#=============================================================================
++
++SOURCE_DIR = ../../source
++SUBJ_SOURCE_DIR = $(SOURCE_DIR)/subj-C
++SOFTFLOAT_DIR = ../../../SoftFloat-3a
++SOFTFLOAT_INCLUDE_DIR = $(SOFTFLOAT_DIR)/source/include
++PLATFORM = Linux-Cross-Compile
++
++SOFTFLOAT_H = \
++  $(SOFTFLOAT_INCLUDE_DIR)/softfloat_types.h \
++  $(SOFTFLOAT_INCLUDE_DIR)/softfloat.h
++SOFTFLOAT_LIB = $(SOFTFLOAT_DIR)/build/$(PLATFORM)/softfloat$(LIB)
++
++TESTFLOAT_OPTS = -DEXTFLOAT80 -DFLOAT128 -DLONG_DOUBLE_IS_EXTFLOAT80 -fgnu89-inline
++
++DELETE = rm -f
++C_INCLUDES = \
++  -I. -I$(SUBJ_SOURCE_DIR) -I$(SOURCE_DIR) -I$(SOFTFLOAT_INCLUDE_DIR)
++COMPILE_C = \
++  ${CC} -c -Werror-implicit-function-declaration $(TESTFLOAT_OPTS) \
++    $(C_INCLUDES) -O2 -o $@
++COMPILE_SLOWFLOAT_C = \
++  ${CC} -c -Werror-implicit-function-declaration $(TESTFLOAT_OPTS) \
++    $(C_INCLUDES) -O3 -o $@
++MAKELIB = ${AR} crs $@
++LINK = ${CC} -o $@
++OTHER_LIBS = -lm
++
++OBJ = .o
++LIB = .a
++EXE =
++
++.PHONY: all
++all: \
++  testsoftfloat$(EXE) \
++  timesoftfloat$(EXE) \
++  testfloat_gen$(EXE) \
++  testfloat_ver$(EXE) \
++  testfloat$(EXE) \
++
++OBJS_GENCASES = \
++  genCases_ui32$(OBJ) \
++  genCases_ui64$(OBJ) \
++  genCases_i32$(OBJ) \
++  genCases_i64$(OBJ) \
++  genCases_f32$(OBJ) \
++  genCases_f64$(OBJ) \
++  genCases_extF80$(OBJ) \
++  genCases_f128$(OBJ) \
++
++OBJS_WRITECASE = \
++  writeCase_a_ui32$(OBJ) \
++  writeCase_a_ui64$(OBJ) \
++  writeCase_a_f32$(OBJ) \
++  writeCase_ab_f32$(OBJ) \
++  writeCase_abc_f32$(OBJ) \
++  writeCase_a_f64$(OBJ) \
++  writeCase_ab_f64$(OBJ) \
++  writeCase_abc_f64$(OBJ) \
++  writeCase_a_extF80M$(OBJ) \
++  writeCase_ab_extF80M$(OBJ) \
++  writeCase_abc_extF80M$(OBJ) \
++  writeCase_a_f128M$(OBJ) \
++  writeCase_ab_f128M$(OBJ) \
++  writeCase_abc_f128M$(OBJ) \
++  writeCase_z_bool$(OBJ) \
++  writeCase_z_ui32$(OBJ) \
++  writeCase_z_ui64$(OBJ) \
++  writeCase_z_f32$(OBJ) \
++  writeCase_z_f64$(OBJ) \
++  writeCase_z_extF80M$(OBJ) \
++  writeCase_z_f128M$(OBJ) \
++
++OBJS_TEST = \
++  test_a_ui32_z_f32$(OBJ) \
++  test_a_ui32_z_f64$(OBJ) \
++  test_a_ui32_z_extF80$(OBJ) \
++  test_a_ui32_z_f128$(OBJ) \
++  test_a_ui64_z_f32$(OBJ) \
++  test_a_ui64_z_f64$(OBJ) \
++  test_a_ui64_z_extF80$(OBJ) \
++  test_a_ui64_z_f128$(OBJ) \
++  test_a_i32_z_f32$(OBJ) \
++  test_a_i32_z_f64$(OBJ) \
++  test_a_i32_z_extF80$(OBJ) \
++  test_a_i32_z_f128$(OBJ) \
++  test_a_i64_z_f32$(OBJ) \
++  test_a_i64_z_f64$(OBJ) \
++  test_a_i64_z_extF80$(OBJ) \
++  test_a_i64_z_f128$(OBJ) \
++  test_a_f32_z_ui32_rx$(OBJ) \
++  test_a_f32_z_ui64_rx$(OBJ) \
++  test_a_f32_z_i32_rx$(OBJ) \
++  test_a_f32_z_i64_rx$(OBJ) \
++  test_a_f32_z_ui32_x$(OBJ) \
++  test_a_f32_z_ui64_x$(OBJ) \
++  test_a_f32_z_i32_x$(OBJ) \
++  test_a_f32_z_i64_x$(OBJ) \
++  test_a_f32_z_f64$(OBJ) \
++  test_a_f32_z_extF80$(OBJ) \
++  test_a_f32_z_f128$(OBJ) \
++  test_az_f32$(OBJ) \
++  test_az_f32_rx$(OBJ) \
++  test_abz_f32$(OBJ) \
++  test_abcz_f32$(OBJ) \
++  test_ab_f32_z_bool$(OBJ) \
++  test_a_f64_z_ui32_rx$(OBJ) \
++  test_a_f64_z_ui64_rx$(OBJ) \
++  test_a_f64_z_i32_rx$(OBJ) \
++  test_a_f64_z_i64_rx$(OBJ) \
++  test_a_f64_z_ui32_x$(OBJ) \
++  test_a_f64_z_ui64_x$(OBJ) \
++  test_a_f64_z_i32_x$(OBJ) \
++  test_a_f64_z_i64_x$(OBJ) \
++  test_a_f64_z_f32$(OBJ) \
++  test_a_f64_z_extF80$(OBJ) \
++  test_a_f64_z_f128$(OBJ) \
++  test_az_f64$(OBJ) \
++  test_az_f64_rx$(OBJ) \
++  test_abz_f64$(OBJ) \
++  test_abcz_f64$(OBJ) \
++  test_ab_f64_z_bool$(OBJ) \
++  test_a_extF80_z_ui32_rx$(OBJ) \
++  test_a_extF80_z_ui64_rx$(OBJ) \
++  test_a_extF80_z_i32_rx$(OBJ) \
++  test_a_extF80_z_i64_rx$(OBJ) \
++  test_a_extF80_z_ui32_x$(OBJ) \
++  test_a_extF80_z_ui64_x$(OBJ) \
++  test_a_extF80_z_i32_x$(OBJ) \
++  test_a_extF80_z_i64_x$(OBJ) \
++  test_a_extF80_z_f32$(OBJ) \
++  test_a_extF80_z_f64$(OBJ) \
++  test_a_extF80_z_f128$(OBJ) \
++  test_az_extF80$(OBJ) \
++  test_az_extF80_rx$(OBJ) \
++  test_abz_extF80$(OBJ) \
++  test_ab_extF80_z_bool$(OBJ) \
++  test_a_f128_z_ui32_rx$(OBJ) \
++  test_a_f128_z_ui64_rx$(OBJ) \
++  test_a_f128_z_i32_rx$(OBJ) \
++  test_a_f128_z_i64_rx$(OBJ) \
++  test_a_f128_z_ui32_x$(OBJ) \
++  test_a_f128_z_ui64_x$(OBJ) \
++  test_a_f128_z_i32_x$(OBJ) \
++  test_a_f128_z_i64_x$(OBJ) \
++  test_a_f128_z_f32$(OBJ) \
++  test_a_f128_z_f64$(OBJ) \
++  test_a_f128_z_extF80$(OBJ) \
++  test_az_f128$(OBJ) \
++  test_az_f128_rx$(OBJ) \
++  test_abz_f128$(OBJ) \
++  test_abcz_f128$(OBJ) \
++  test_ab_f128_z_bool$(OBJ) \
++
++OBJS_LIB = \
++  uint128$(OBJ) \
++  fail$(OBJ) \
++  functions_common$(OBJ) \
++  functionInfos$(OBJ) \
++  standardFunctionInfos$(OBJ) \
++  random$(OBJ) \
++  genCases_common$(OBJ) \
++  $(OBJS_GENCASES) \
++  genCases_writeTestsTotal$(OBJ) \
++  verCases_common$(OBJ) \
++  verCases_writeFunctionName$(OBJ) \
++  readHex$(OBJ) \
++  writeHex$(OBJ) \
++  $(OBJS_WRITECASE) \
++  testLoops_common$(OBJ) \
++  $(OBJS_TEST) \
++
++uint128$(OBJ): $(SOURCE_DIR)/uint128.h
++fail$(OBJ): $(SOURCE_DIR)/fail.h
++functions_common$(OBJ): $(SOFTFLOAT_H) $(SOURCE_DIR)/functions.h
++functionInfos$(OBJ): $(SOURCE_DIR)/functions.h
++standardFunctionInfos$(OBJ): $(SOURCE_DIR)/functions.h
++random$(OBJ): $(SOURCE_DIR)/random.h
++genCases_common$(OBJ): $(SOURCE_DIR)/fail.h $(SOURCE_DIR)/genCases.h
++$(OBJS_GENCASES): \
++  $(SOURCE_DIR)/random.h $(SOFTFLOAT_H) $(SOURCE_DIR)/genCases.h
++genCases_f128$(OBJ): $(SOURCE_DIR)/uint128.h
++genCases_writeTestsTotal$(OBJ): $(SOURCE_DIR)/genCases.h
++verCases_common$(OBJ): $(SOURCE_DIR)/verCases.h
++verCases_writeFunctionName$(OBJ): $(SOURCE_DIR)/verCases.h
++readHex$(OBJ): $(SOURCE_DIR)/readHex.h
++writeHex$(OBJ): $(SOURCE_DIR)/uint128.h $(SOFTFLOAT_H) $(SOURCE_DIR)/writeHex.h
++$(OBJS_WRITECASE): \
++  $(SOFTFLOAT_H) $(SOURCE_DIR)/writeHex.h $(SOURCE_DIR)/writeCase.h
++testLoops_common$(OBJ): $(SOURCE_DIR)/testLoops.h
++$(OBJS_TEST): \
++  $(SOURCE_DIR)/uint128.h $(SOFTFLOAT_H) $(SOURCE_DIR)/genCases.h \
++  $(SOURCE_DIR)/verCases.h $(SOURCE_DIR)/writeCase.h $(SOURCE_DIR)/testLoops.h
++$(OBJS_LIB): %$(OBJ): platform.h $(SOURCE_DIR)/%.c
++	$(COMPILE_C) $(SOURCE_DIR)/$*.c
++testfloat$(LIB): $(OBJS_LIB)
++	$(MAKELIB) $^
++
++OBJS_TESTSOFTFLOAT = slowfloat$(OBJ) testsoftfloat$(OBJ)
++
++slowfloat$(OBJ): \
++  platform.h $(SOURCE_DIR)/uint128.h $(SOFTFLOAT_H) \
++  $(SOURCE_DIR)/slowfloat.h $(SOURCE_DIR)/slowfloat.c
++	$(COMPILE_SLOWFLOAT_C) $(SOURCE_DIR)/slowfloat.c
++testsoftfloat$(OBJ): \
++  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
++  $(SOURCE_DIR)/slowfloat.h $(SOURCE_DIR)/functions.h \
++  $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/verCases.h $(SOURCE_DIR)/writeCase.h \
++  $(SOURCE_DIR)/testLoops.h $(SOURCE_DIR)/testsoftfloat.c
++	$(COMPILE_C) $(SOURCE_DIR)/testsoftfloat.c
++
++testsoftfloat$(EXE): $(OBJS_TESTSOFTFLOAT) testfloat$(LIB) $(SOFTFLOAT_LIB)
++	$(LINK) $^ $(OTHER_LIBS)
++
++OBJS_TIMESOFTFLOAT = timesoftfloat$(OBJ)
++
++timesoftfloat$(OBJ): \
++  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
++  $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/timesoftfloat.c
++	$(COMPILE_C) $(SOURCE_DIR)/timesoftfloat.c
++
++timesoftfloat$(EXE): $(OBJS_TIMESOFTFLOAT) testfloat$(LIB) $(SOFTFLOAT_LIB)
++	$(LINK) $^ $(OTHER_LIBS)
++
++OBJS_TESTFLOAT_GEN = genLoops$(OBJ) testfloat_gen$(OBJ)
++
++genLoops$(OBJ): \
++  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
++  $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/writeHex.h $(SOURCE_DIR)/genLoops.h \
++  $(SOURCE_DIR)/genLoops.c
++	$(COMPILE_C) $(SOURCE_DIR)/genLoops.c
++testfloat_gen$(OBJ): \
++  $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) $(SOURCE_DIR)/functions.h \
++  $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/genLoops.h \
++  $(SOURCE_DIR)/testfloat_gen.c
++	$(COMPILE_C) $(SOURCE_DIR)/testfloat_gen.c
++
++testfloat_gen$(EXE): $(OBJS_TESTFLOAT_GEN) testfloat$(LIB) $(SOFTFLOAT_LIB)
++	$(LINK) $^ $(OTHER_LIBS)
++
++OBJS_TESTFLOAT_VER = verLoops$(OBJ) testfloat_ver$(OBJ)
++
++verLoops$(OBJ): \
++  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
++  $(SOURCE_DIR)/readHex.h $(SOURCE_DIR)/verCases.h $(SOURCE_DIR)/writeCase.h \
++  $(SOURCE_DIR)/verLoops.h $(SOURCE_DIR)/verLoops.c
++	$(COMPILE_C) $(SOURCE_DIR)/verLoops.c
++testfloat_ver$(OBJ): \
++  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
++  $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/verCases.h \
++  $(SOURCE_DIR)/writeCase.h $(SOURCE_DIR)/verLoops.h \
++  $(SOURCE_DIR)/testfloat_ver.c
++	$(COMPILE_C) $(SOURCE_DIR)/testfloat_ver.c
++
++testfloat_ver$(EXE): $(OBJS_TESTFLOAT_VER) testfloat$(LIB) $(SOFTFLOAT_LIB)
++	$(LINK) $^ $(OTHER_LIBS)
++
++OBJS_TESTFLOAT = subjfloat$(OBJ) subjfloat_functions$(OBJ) testfloat$(OBJ)
++
++subjfloat$(OBJ): \
++  platform.h $(SOFTFLOAT_H) $(SUBJ_SOURCE_DIR)/subjfloat_config.h \
++  $(SOURCE_DIR)/subjfloat.h $(SUBJ_SOURCE_DIR)/subjfloat.c
++	$(COMPILE_C) $(SUBJ_SOURCE_DIR)/subjfloat.c
++subjfloat_functions$(OBJ): \
++  platform.h $(SUBJ_SOURCE_DIR)/subjfloat_config.h $(SOURCE_DIR)/subjfloat.h \
++  $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/subjfloat_functions.c
++	$(COMPILE_C) $(SOURCE_DIR)/subjfloat_functions.c
++testfloat$(OBJ): \
++  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
++  $(SUBJ_SOURCE_DIR)/subjfloat_config.h $(SOURCE_DIR)/subjfloat.h \
++  $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/verCases.h \
++  $(SOURCE_DIR)/testLoops.h $(SOURCE_DIR)/testfloat.c
++	$(COMPILE_C) $(SOURCE_DIR)/testfloat.c
++
++testfloat$(EXE): $(OBJS_TESTFLOAT) testfloat$(LIB) $(SOFTFLOAT_LIB)
++	$(LINK) $^ $(OTHER_LIBS)
++
++.PHONY: clean
++clean:
++	$(DELETE) $(OBJS_LIB) testfloat$(LIB)
++	$(DELETE) $(OBJS_TESTSOFTFLOAT) testsoftfloat$(EXE)
++	$(DELETE) $(OBJS_TIMESOFTFLOAT) timesoftfloat$(EXE)
++	$(DELETE) $(OBJS_TESTFLOAT_GEN) testfloat_gen$(EXE)
++	$(DELETE) $(OBJS_TESTFLOAT_VER) testfloat_ver$(EXE)
++	$(DELETE) $(OBJS_TESTFLOAT) testfloat$(EXE)
++
+diff --git a/TestFloat-3a/build/Linux-Cross-Compile/platform.h b/TestFloat-3a/build/Linux-Cross-Compile/platform.h
+new file mode 100644
+index 0000000..09e63a0
+--- /dev/null
++++ b/TestFloat-3a/build/Linux-Cross-Compile/platform.h
+@@ -0,0 +1,45 @@
++
++/*============================================================================
++
++This C header file is part of TestFloat, Release 3a, a package of programs for
++testing the correctness of floating-point arithmetic complying with the IEEE
++Standard for Floating-Point, by John R. Hauser.
++
++Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
++All rights reserved.
++
++Redistribution and use in source and binary forms, with or without
++modification, are permitted provided that the following conditions are met:
++
++ 1. Redistributions of source code must retain the above copyright notice,
++    this list of conditions, and the following disclaimer.
++
++ 2. Redistributions in binary form must reproduce the above copyright notice,
++    this list of conditions, and the following disclaimer in the documentation
++    and/or other materials provided with the distribution.
++
++ 3. Neither the name of the University nor the names of its contributors may
++    be used to endorse or promote products derived from this software without
++    specific prior written permission.
++
++THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
++EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
++WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
++DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
++DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
++(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
++LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
++ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
++SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++=============================================================================*/
++
++/*----------------------------------------------------------------------------
++*----------------------------------------------------------------------------*/
++#define LITTLEENDIAN 1
++
++/*----------------------------------------------------------------------------
++*----------------------------------------------------------------------------*/
++#define INLINE extern inline
++
+-- 
+2.1.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/testfloat/testfloat_3a.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/testfloat/testfloat_3a.bb
new file mode 100644
index 0000000..28e9677
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/testfloat/testfloat_3a.bb
@@ -0,0 +1,35 @@
+DESCRIPTION = "Berkeley TestFloat is a small collection of programs for \
+    testing that an implementation of binary floating-point conforms to the \
+    IEEE Standard for Floating-Point Arithmetic."
+
+HOMEPAGE = "http://www.jhauser.us/arithmetic/TestFloat.html"
+
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://TestFloat-${PV}/COPYING.txt;md5=e45c175a323b5727777fb6bd4b26eafc"
+
+SRC_URI = "\
+    http://www.jhauser.us/arithmetic/TestFloat-3a.zip;name=TestFloat \
+    http://www.jhauser.us/arithmetic/SoftFloat-3a.zip;name=SoftFloat \
+    file://0001-Makefile-for-cross-compile-SoftFloat.patch \
+    file://0002-Makefile-for-cross-compile-TestFloat.patch \
+"
+SRC_URI[TestFloat.md5sum] = "5a124e85ab74c5e52da27d401cea6cc3"
+SRC_URI[TestFloat.sha256sum] = "fa258b5b3c751656a372051adee4183e19ad4763032322eb7a87dfb9e2c22c75"
+SRC_URI[SoftFloat.md5sum] = "e53bd4550cf99690642c41374d188517"
+SRC_URI[SoftFloat.sha256sum] = "946fd23180559d60eb6683dda1cf8b142f5426dedfefb97b03c6afdfd70ee9e0"
+
+S = "${WORKDIR}"
+
+do_compile(){
+    oe_runmake -C SoftFloat-${PV}/build/Linux-Cross-Compile/
+    oe_runmake -C TestFloat-${PV}/build/Linux-Cross-Compile/
+}
+
+do_install(){
+    install -d ${D}/${bindir}
+    install ${S}/TestFloat-${PV}/build/Linux-Cross-Compile/testfloat     ${D}/${bindir}
+    install ${S}/TestFloat-${PV}/build/Linux-Cross-Compile/testfloat_gen ${D}/${bindir}
+    install ${S}/TestFloat-${PV}/build/Linux-Cross-Compile/testfloat_ver ${D}/${bindir}
+    install ${S}/TestFloat-${PV}/build/Linux-Cross-Compile/testsoftfloat ${D}/${bindir}
+    install ${S}/TestFloat-${PV}/build/Linux-Cross-Compile/timesoftfloat ${D}/${bindir}
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/tipcutils/tipcutils_2.0.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/tipcutils/tipcutils_2.0.6.bb
new file mode 100644
index 0000000..0ac8fad
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/tipcutils/tipcutils_2.0.6.bb
@@ -0,0 +1,43 @@
+SUMMARY = "Transparent Inter-Process Communication protocol"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://tipc-config/tipc-config.c;endline=32;md5=527a3d5745e1581b15a4fddfb5dfda68"
+
+SRC_URI = "git://tipc.git.sourceforge.net/gitroot/tipc/tipcutils"
+SRCREV = "292a03e17f889013fca2c7bd0aaeebd600c88f40"
+
+DEPENDS="virtual/kernel"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+inherit autotools
+
+S = "${WORKDIR}/git"
+
+do_configure_prepend() {
+    ( cd ${S}; ${S}/bootstrap )
+}
+
+do_install_append() {
+    demos="benchmark hello_world topology_subscr_demo connection_demo \
+           multicast_demo stream_demo"
+    for i in $demos;do
+        install -d ${D}/opt/tipcutils/demos/$i
+        install ${B}/demos/$i/client_tipc ${D}/opt/tipcutils/demos/$i/
+        install ${B}/demos/$i/server_tipc ${D}/opt/tipcutils/demos/$i/
+    done
+    install -d ${D}/opt/tipcutils/demos/inventory_sim
+    install ${B}/demos/inventory_sim/inventory_sim ${D}/opt/tipcutils/demos/inventory_sim/
+
+    install -d ${D}/opt/tipcutils/ptts
+    install ${B}/ptts/tipcTS ${D}/opt/tipcutils/ptts/
+    install ${B}/ptts/tipcTC ${D}/opt/tipcutils/ptts/
+
+    install -d ${D}${sysconfdir}
+    cp -R --no-dereference --preserve=mode,links -v ${S}/scripts/etc/* ${D}${sysconfdir}/
+    chown -R root:root ${D}${sysconfdir}
+}
+
+PACKAGES += "${PN}-demos"
+FILES_${PN}-dbg += "/opt/tipcutils/demos/*/.debug /opt/tipcutils/ptts/.debug"
+FILES_${PN}-demos = "/opt/tipcutils/*"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/tiptop/tiptop_2.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/tiptop/tiptop_2.3.bb
new file mode 100644
index 0000000..5a98116
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/tiptop/tiptop_2.3.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Hardware performance monitoring counters"
+HOMEPAGE = "http://tiptop.gforge.inria.fr/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+DEPENDS = "ncurses libxml2"
+
+SRC_URI = "http://tiptop.gforge.inria.fr/releases/${BP}.tar.gz"
+SRC_URI[md5sum] = "f1fba1e90465b0e5a3865b19133fa19d"
+SRC_URI[sha256sum] = "3f07e958b40acaeab98e9eb1326c9f91b0be0a782c1cc2bd7a9e18d31fab18ca"
+
+inherit autotools-brokensep
+EXTRA_OECONF = "CFLAGS="$CFLAGS -I${STAGING_INCDIR}/libxml2""
+COMPATIBLE_HOST = "(i.86|x86_64|arm|powerpc).*-linux"
+
+do_configure_prepend () {
+    # Two bugs in configure.ac when cross-compiling.
+    # 1. The path of libxml2. Specify it in EXTRA_OECONF.
+    # 2. hw's value on other platforms. Replace it if the target is 
+    #    not i*86/x86_64.
+    if ( echo "${TARGET_ARCH}" | grep -q -e 'i.86' -e 'x86_64' ); then
+        sed -i 's= -I/usr/include/libxml2=='    ${S}/configure.ac
+    else
+        sed -i 's/hw=`uname -m`/hw="unknown"/'  ${S}/configure.ac
+        sed -i 's= -I/usr/include/libxml2=='    ${S}/configure.ac
+    fi
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/tmux/tmux_2.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/tmux/tmux_2.1.bb
new file mode 100644
index 0000000..bf21de5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/tmux/tmux_2.1.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Terminal multiplexer"
+HOMEPAGE = "http://tmux.sourceforge.net"
+SECTION = "console/utils"
+
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://tmux.c;beginline=3;endline=17;md5=8685b4455330a940fab1ff451aa941a0"
+
+DEPENDS = "ncurses libevent"
+
+
+SRC_URI = "git://github.com/tmux/tmux.git;branch=master"
+SRCREV ?= "310f0a960ca64fa3809545badc629c0c166c6cd2"
+
+S = "${WORKDIR}/git"
+B = "${WORKDIR}/build"
+
+inherit autotools pkgconfig
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[utempter] = "ac_cv_header_utempter_h=yes,ac_cv_header_utempter_h=no,libutempter,"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/uml-utilities/uml-utilities-20040406/fix-ldflags.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/uml-utilities/uml-utilities-20040406/fix-ldflags.patch
new file mode 100644
index 0000000..05cc537
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/uml-utilities/uml-utilities-20040406/fix-ldflags.patch
@@ -0,0 +1,16 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- tools/mconsole/Makefile~fix-ldflags	2003-02-08 05:10:08.000000000 +0100
++++ tools/mconsole/Makefile	2004-04-01 15:37:37.000000000 +0200
+@@ -7,7 +7,7 @@
+ all : $(BIN)
+ 
+ $(BIN) : $(OBJS)
+-	$(CC) $(CFLAGS) -o $(BIN) $(OBJS) -lreadline -lncurses
++	$(CC) $(CFLAGS) -o $(BIN) $(OBJS) $(LDFLAGS) -lreadline -lncurses
+ 
+ clean : 
+ 	rm -f $(BIN) $(OBJS) *~
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/uml-utilities/uml-utilities-20040406/unstrip.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/uml-utilities/uml-utilities-20040406/unstrip.patch
new file mode 100644
index 0000000..868001d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/uml-utilities/uml-utilities-20040406/unstrip.patch
@@ -0,0 +1,84 @@
+Dont strip during install let the packaging handle it
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Index: tools/jailtest/Makefile
+===================================================================
+--- tools.orig/jailtest/Makefile	2003-02-07 20:10:27.000000000 -0800
++++ tools/jailtest/Makefile	2012-09-05 12:13:56.061615854 -0700
+@@ -14,4 +14,4 @@
+ 
+ install : $(BIN)
+ 	install -d $(DESTDIR)$(BIN_DIR)
+-	install -s $(BIN) $(DESTDIR)$(BIN_DIR)
++	install $(BIN) $(DESTDIR)$(BIN_DIR)
+Index: tools/mconsole/Makefile
+===================================================================
+--- tools.orig/mconsole/Makefile	2012-09-05 12:05:09.869607043 -0700
++++ tools/mconsole/Makefile	2012-09-05 12:14:07.725607469 -0700
+@@ -14,4 +14,4 @@
+ 
+ install : $(BIN)
+ 	install -d $(DESTDIR)$(BIN_DIR)
+-	install -s $(BIN) $(DESTDIR)$(BIN_DIR)
++	install $(BIN) $(DESTDIR)$(BIN_DIR)
+Index: tools/moo/Makefile
+===================================================================
+--- tools.orig/moo/Makefile	2003-06-26 09:27:00.000000000 -0700
++++ tools/moo/Makefile	2012-09-05 12:14:20.981604580 -0700
+@@ -22,4 +22,4 @@
+ 
+ install : $(BIN)
+ 	install -d $(DESTDIR)$(BIN_DIR)
+-	install -s $(BIN) $(DESTDIR)$(BIN_DIR)
++	install $(BIN) $(DESTDIR)$(BIN_DIR)
+Index: tools/port-helper/Makefile
+===================================================================
+--- tools.orig/port-helper/Makefile	2003-02-07 20:05:31.000000000 -0800
++++ tools/port-helper/Makefile	2012-09-05 12:14:39.429609678 -0700
+@@ -14,4 +14,4 @@
+ 
+ install : $(BIN)
+ 	install -d $(DESTDIR)$(LIB_DIR)
+-	install -s $(BIN) $(DESTDIR)$(LIB_DIR)
++	install $(BIN) $(DESTDIR)$(LIB_DIR)
+Index: tools/tunctl/Makefile
+===================================================================
+--- tools.orig/tunctl/Makefile	2003-02-07 20:05:04.000000000 -0800
++++ tools/tunctl/Makefile	2012-09-05 12:14:49.985606470 -0700
+@@ -14,4 +14,4 @@
+ 
+ install : $(BIN)
+ 	install -d $(DESTDIR)$(BIN_DIR)
+-	install -s $(BIN) $(DESTDIR)$(BIN_DIR)
++	install $(BIN) $(DESTDIR)$(BIN_DIR)
+Index: tools/uml_net/Makefile
+===================================================================
+--- tools.orig/uml_net/Makefile	2003-02-07 20:04:55.000000000 -0800
++++ tools/uml_net/Makefile	2012-09-05 12:15:00.961607290 -0700
+@@ -21,4 +21,4 @@
+ 
+ install : $(BIN)
+ 	install -d $(DESTDIR)$(BIN_DIR)
+-	install -s -m 04755 $(BIN) $(DESTDIR)$(BIN_DIR)
++	install -m 04755 $(BIN) $(DESTDIR)$(BIN_DIR)
+Index: tools/uml_router/Makefile
+===================================================================
+--- tools.orig/uml_router/Makefile	2003-02-07 20:04:39.000000000 -0800
++++ tools/uml_router/Makefile	2012-09-05 12:15:10.649607571 -0700
+@@ -20,4 +20,4 @@
+ 
+ install : $(BIN)
+ 	install -d $(DESTDIR)$(BIN_DIR)
+-	install -s $(BIN) $(DESTDIR)$(BIN_DIR)
++	install $(BIN) $(DESTDIR)$(BIN_DIR)
+Index: tools/watchdog/Makefile
+===================================================================
+--- tools.orig/watchdog/Makefile	2003-02-07 20:04:25.000000000 -0800
++++ tools/watchdog/Makefile	2012-09-05 12:15:35.561612203 -0700
+@@ -14,4 +14,4 @@
+ 
+ install : $(BIN)
+ 	install -d $(DESTDIR)$(BIN_DIR)
+-	install -s $(BIN) $(DESTDIR)$(BIN_DIR)
++	install $(BIN) $(DESTDIR)$(BIN_DIR)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/uml-utilities/uml-utilities_20040406.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/uml-utilities/uml-utilities_20040406.bb
new file mode 100644
index 0000000..45cc2e7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/uml-utilities/uml-utilities_20040406.bb
@@ -0,0 +1,26 @@
+SECTION = "console/utils"
+SUMMARY = "Utilities for User-Mode-Linux"
+LICENSE = "GPL-2.0"
+DEPENDS = "zlib ncurses readline"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
+SRC_URI = "http://downloads.sourceforge.net/project/user-mode-linux/tools/1/uml_utilities_${PV}.tar.bz2  \
+           file://fix-ldflags.patch \
+           file://unstrip.patch \
+"
+SRC_URI[md5sum] = "2c1ccd9efacbfb39e42d482b89b2550a"
+SRC_URI[sha256sum] = "4f179b1db021ef15ac7e9b2eed57c525db127a754c574f591c367460cded9f41"
+
+PR = "r1"
+
+S = "${WORKDIR}/tools"
+
+do_compile() {
+    oe_runmake
+}
+
+do_install() {
+    oe_runmake install DESTDIR=${D}
+}
+
+FILES_${PN} += "${exec_prefix}${nonarch_base_libdir}"
+FILES_${PN}-dbg += "${exec_prefix}${nonarch_base_libdir}/uml/.debug"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/wipe/files/support-cross-compile-for-linux.patch b/import-layers/meta-openembedded/meta-oe/recipes-extended/wipe/files/support-cross-compile-for-linux.patch
new file mode 100644
index 0000000..fb3aee8
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/wipe/files/support-cross-compile-for-linux.patch
@@ -0,0 +1,36 @@
+From 35f14bd5aba2ed6cee258e11eab42c408afc04d0 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Wed, 4 Nov 2015 02:29:05 -0500
+Subject: [PATCH] Makefile: support cross compile for linux
+
+Upstream-Status: Pending
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ Makefile | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 17d9758..9e74cdf 100644
+--- a/Makefile
++++ b/Makefile
+@@ -41,7 +41,7 @@
+ # Linux 2.0.x
+ #
+ 
+-CC_LINUX=gcc
++CC_LINUX=$(CC)
+ CCO_LINUX=-Wall -DHAVE_DEV_URANDOM -DHAVE_OSYNC -DHAVE_STRCASECMP -DHAVE_RANDOM -DWEAK_RC6 -DSYNC_WAITS_FOR_SYNC -DFIND_DEVICE_SIZE_BY_BLKGETSIZE -DSIXTYFOUR -D__USE_LARGEFILE -D_FILE_OFFSET_BITS=64
+ # default should be to turn off debugging and to turn on optimization.
+ #CCO_LINUX+=-O9 -pipe -fomit-frame-pointer -finline-functions -funroll-loops -fstrength-reduce
+@@ -185,6 +185,7 @@ clean	:
+ 		rm -f wipe $(OBJECTS) wipe.tr-asc.1 version.h
+ 
+ install:
+-	install -m755 -o root -g root wipe $(DESTDIR)/usr/bin
++	[ -e $(DESTDIR)$(bindir) ] || mkdir -p $(DESTDIR)$(bindir)
++	install -m755 -o root -g root wipe $(DESTDIR)$(bindir)
+ 
+ .PHONY: always clean install
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/wipe/wipe_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/wipe/wipe_git.bb
new file mode 100644
index 0000000..70229f0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/wipe/wipe_git.bb
@@ -0,0 +1,26 @@
+SUMMARY = "A UNIX tool for secure deletion"
+DESCRIPTION = "Wipe is a little command for securely erasing files from \
+magnetic media. It compiles under various unix platforms, \
+including Linux 2. * , (Open, Net, Free)BSD, aix 4.1, SunOS \
+5.5.1, Solaris 2.6. wipe is released under the GPL. Pre-compiled \
+packages are available on most Linux distributions. \
+Under Debian, the package name is wipe"
+HOMEPAGE = "http://lambda-diode.com/software/wipe/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://GPL;md5=0636e73ff0215e8d672dc4c32c317bb3"
+
+SRC_URI = "git://github.com/berke/wipe.git;branch=master \
+           file://support-cross-compile-for-linux.patch \
+          "
+SRCREV = "d9c100c9cd0b1cbbe4359e4d6c9a035d11e7597c"
+PV = "0.23+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OEMAKE = "linux"
+
+do_install() {
+	make install DESTDIR=${D}
+}
+
+do_configure[noexec] = "1"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/zram/zram/init b/import-layers/meta-openembedded/meta-oe/recipes-extended/zram/zram/init
new file mode 100644
index 0000000..7b6cbf4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/zram/zram/init
@@ -0,0 +1,85 @@
+#!/bin/sh
+### BEGIN INIT INFO
+# Provides: zram
+# Required-Start:
+# Required-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Increased Performance In Linux With zRam (Virtual Swap Compressed in RAM)
+# Description: Adapted from systemd scripts at https://github.com/mystilleef/FedoraZram
+# Included as part of antix-goodies package by anticapitalista <antiX@operamail.com>
+# This script was written by tradetaxfree and is found at http://crunchbanglinux.org/forums/topic/15344/zram-a-good-idea/
+# Copy this script (as root) from /usr/local/bin to /etc/init.d and then #update-rc.d zram defaults
+# After booting verify the module is loaded with: lsmod | grep zram
+### END INIT INFO
+set -e
+
+start() {
+    # get the number of CPUs
+    num_cpus=$(grep -c processor /proc/cpuinfo)
+    # if something goes wrong, assume we have 1
+    [ "$num_cpus" != 0 ] || num_cpus=1
+
+    # set decremented number of CPUs
+    last_cpu=$((num_cpus - 1))
+
+    #default Factor % = 90 change this value here or create /etc/default/zram
+    FACTOR=90
+    #& put the above single line in /etc/default/zram with the value you want
+    [ -f /etc/default/zram ] && . /etc/default/zram || true
+    factor=$FACTOR # percentage
+
+    # get the amount of memory in the machine
+    memtotal=$(grep MemTotal /proc/meminfo | awk ' { print $2 } ')
+    mem_by_cpu=$(($memtotal/$num_cpus*$factor/100*1024))
+
+    # load dependency modules
+    modprobe zram zram_num_devices=$num_cpus
+    echo "zram devices probed successfully"
+
+    # initialize the devices
+    for i in $(seq 0 $last_cpu); do
+    	echo 1 > /sys/block/zram$i/reset
+    	echo $mem_by_cpu > /sys/block/zram$i/disksize
+    	# Creating swap filesystems
+    	mkswap /dev/zram$i
+    	# Switch the swaps on
+    	swapon -p 100 /dev/zram$i
+    done
+}
+
+stop() {
+    # get the number of CPUs
+    num_cpus=$(grep -c processor /proc/cpuinfo)
+
+    # set decremented number of CPUs
+    last_cpu=$((num_cpus - 1))
+
+    # Switching off swap
+    for i in $(seq 0 $last_cpu); do
+    	if [ "$(grep /dev/zram$i /proc/swaps)" != "" ]; then
+    		swapoff /dev/zram$i
+    		sleep 1
+    	fi
+    done
+    sleep 1
+    rmmod zram
+}
+
+case "$1" in
+    start)
+        start
+        ;;
+    stop)
+        stop
+        ;;
+    restart)
+        stop
+        sleep 3
+        start
+        ;;
+    *)
+        echo "Usage: $0 {start|stop|restart}"
+        RETVAL=1
+esac
+exit $RETVAL
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/zram/zram/zram.service b/import-layers/meta-openembedded/meta-oe/recipes-extended/zram/zram/zram.service
new file mode 100644
index 0000000..4a19367
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/zram/zram/zram.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Enable zram compressed in-memory swap.
+After=multi-user.target
+
+[Service]
+RemainAfterExit=yes
+ExecStart=/usr/bin/zram-load.sh --load
+ExecStop=/usr/bin/zram-load.sh --unload
+Type=oneshot
+
+[Install]
+WantedBy=multi-user.target
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/zram/zram_0.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/zram/zram_0.1.bb
new file mode 100644
index 0000000..e07f570
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/zram/zram_0.1.bb
@@ -0,0 +1,33 @@
+SUMMARY = "Linux zram compressed in-memory swap"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690"
+
+inherit update-rc.d systemd
+
+RDEPENDS_${PN} = "util-linux-swaponoff kmod"
+RRECOMMENDS_${PN} = "kernel-module-zram"
+
+PR = "r3"
+
+SRC_URI = " \
+           file://init \
+           file://zram.service \
+"
+
+do_install () {
+    # Sysvinit
+    install -d ${D}${sysconfdir}/init.d
+    install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/zram
+
+    install -d ${D}${systemd_unitdir}/system
+    install -m 0644 ${WORKDIR}/zram.service ${D}${systemd_unitdir}/system
+}
+
+FILES_${PN} = "${sysconfdir}"
+INITSCRIPT_NAME = "zram"
+INITSCRIPT_PARAMS = "start 05 2 3 4 5 . stop 22 0 1 6 ."
+
+RPROVIDES_${PN} += "${PN}-systemd"
+RREPLACES_${PN} += "${PN}-systemd"
+RCONFLICTS_${PN} += "${PN}-systemd"
+SYSTEMD_SERVICE_${PN} = "zram.service"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-extended/zsh/zsh_5.0.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-extended/zsh/zsh_5.0.5.bb
new file mode 100644
index 0000000..39b2d95
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-extended/zsh/zsh_5.0.5.bb
@@ -0,0 +1,61 @@
+SUMMARY = "UNIX Shell similar to the Korn shell"
+DESCRIPTION = "Zsh is a shell designed for interactive use, although it is also a \
+               powerful scripting language. Many of the useful features of bash, \
+               ksh, and tcsh were incorporated into zsh; many original features were added."
+HOMEPAGE = "http://www.zsh.org"
+SECTION = "base/shell"
+
+LICENSE = "zsh"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=b7bc853894664be455a922db9805288e"
+
+DEPENDS = "ncurses bison-native libcap libpcre gdbm groff-native"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz"
+SRC_URI[md5sum] = "6fb0e3e52a0f8de5ca63138391b81ce0"
+SRC_URI[sha256sum] = "b35cf19e4a6ba39fd03c6372b8a8760a491cc2e2e4aba3d15023ff291c2894b4"
+
+inherit autotools gettext update-alternatives
+
+EXTRA_OECONF = " \
+    --bindir=${base_bindir} \
+    --enable-etcdir=${sysconfdir} \
+    --enable-fndir=${datadir}/${PN}/${PV}/functions \
+    --enable-site-fndir=${datadir}/${PN}/site-functions \
+    --with-term-lib='ncursesw ncurses' \
+    --with-tcsetpgrp \
+    --enable-cap \
+    --enable-multibyte \
+    --disable-gdbm \
+    --disable-dynamic \
+    zsh_cv_shared_environ=yes \
+"
+
+EXTRA_OEMAKE = "-e MAKEFLAGS="
+
+ALTERNATIVE_${PN} = "sh"
+ALTERNATIVE_LINK_NAME[sh] = "${base_bindir}/sh"
+ALTERNATIVE_TARGET[sh] = "${base_bindir}/${BPN}"
+ALTERNATIVE_PRIORITY = "100"
+
+export AUTOHEADER = "true"
+
+do_configure () {
+    gnu-configize --force ${S}
+    oe_runconf
+}
+
+do_install_append () {
+    rm -fr ${D}/usr/share
+}
+
+pkg_postinst_${PN} () {
+    touch $D${sysconfdir}/shells
+    grep -q "bin/zsh" $D${sysconfdir}/shells || echo /bin/zsh >> $D${sysconfdir}/shells
+    grep -q "bin/sh" $D${sysconfdir}/shells || echo /bin/sh >> $D${sysconfdir}/shells
+}
+
+FILES_${PN}-dbg += "\
+    ${libdir}/${PN}/${PV}/${PN}/.debug/*.so \
+    ${libdir}/${PN}/${PV}/${PN}/db/.debug/*.so \
+    ${libdir}/${PN}/${PV}/${PN}/net/.debug/*.so \
+"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-gnome/atk/atkmm_2.22.7.bb b/import-layers/meta-openembedded/meta-oe/recipes-gnome/atk/atkmm_2.22.7.bb
new file mode 100644
index 0000000..6f51e34
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-gnome/atk/atkmm_2.22.7.bb
@@ -0,0 +1,19 @@
+SUMMARY = "C++ bindings for the atk"
+SECTION = "libs"
+
+LICENSE = "LGPLv2.1 & GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1 \
+                    file://COPYING.tools;md5=751419260aa954499f7abaabaa882bbe"
+
+DEPENDS = "atk glibmm"
+
+inherit gnome autotools pkgconfig
+
+GNOME_COMPRESS_TYPE = "xz"
+
+SRC_URI[archive.md5sum] = "fec7db3fc47ba2e0c95d130ec865a236"
+SRC_URI[archive.sha256sum] = "bfbf846b409b4c5eb3a52fa32a13d86936021969406b3dcafd4dd05abd70f91b"
+
+EXTRA_OECONF = " --disable-documentation "
+
+FILES_${PN}-dev += "${libdir}/*/include ${libdir}/*/proc/m4"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtkmm_2.24.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtkmm_2.24.3.bb
new file mode 100644
index 0000000..80595fe
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtkmm_2.24.3.bb
@@ -0,0 +1,20 @@
+SUMMARY = "C++ bindings for the GTK+ toolkit"
+HOMEPAGE = "http://www.gtkmm.org/"
+SECTION = "libs"
+
+LICENSE = "LGPLv2.1 & GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499 \
+                    file://COPYING.tools;md5=751419260aa954499f7abaabaa882bbe"
+
+DEPENDS = "atkmm pangomm glibmm gtk+ cairomm"
+
+inherit gnome autotools pkgconfig
+
+GNOME_COMPRESS_TYPE = "xz"
+
+SRC_URI[archive.md5sum] = "42fc5a3feeb33ea59b7660200e2a5465"
+SRC_URI[archive.sha256sum] = "c564a438677174b97d69dd70467cb03c933481006398dc9377417aa6abe02a39"
+
+EXTRA_OECONF = " --disable-documentation "
+
+FILES_${PN}-dev += "${libdir}/*/include ${libdir}/*/proc/m4"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-gnome/gtkextra/files/remove-tutorial.patch b/import-layers/meta-openembedded/meta-oe/recipes-gnome/gtkextra/files/remove-tutorial.patch
new file mode 100644
index 0000000..da4f3f4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-gnome/gtkextra/files/remove-tutorial.patch
@@ -0,0 +1,12 @@
+Upstream-Status: Inappropriate [configuration]
+
+diff --git a/docs/Makefile.am b/docs/Makefile.am
+index f5375f5..c306f23 100644
+--- a/docs/Makefile.am
++++ b/docs/Makefile.am
+@@ -1,4 +1,4 @@
+-SUBDIRS = reference tutorial
++SUBDIRS = reference
+ 
+ EXTRA_DIST = \
+ 	COPYING \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-gnome/gtkextra/gtkextra_3.0.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-gnome/gtkextra/gtkextra_3.0.5.bb
new file mode 100644
index 0000000..926eff7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-gnome/gtkextra/gtkextra_3.0.5.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Gtk+Extra is a set of custom widget for plots and images"
+HOMEPAGE = "http://gtkextra.sourceforge.net/"
+
+LICENSE = "LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/gtkextra/${BP}.tar.gz \
+           file://remove-tutorial.patch \
+"
+
+SRC_URI[md5sum] = "486cea93666020f85f101ed8341baf41"
+SRC_URI[sha256sum] = "9cab6c5d6b792eb828d17cec2b9c1baba2ef57f789a290464afab80b53969e65"
+
+DEPENDS = "gtk+"
+
+inherit autotools pkgconfig gobject-introspection
+
+# | ./.libs/libgtkextra-x11-3.0.so: error: undefined reference to 'roundint'
+PNBLACKLIST[gtkextra] ?= "BROKEN: Fails to build with gcc-5"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-gnome/gtkhtml2/files/0001-tests-main.c-fix-build-with-glib-2.36.patch b/import-layers/meta-openembedded/meta-oe/recipes-gnome/gtkhtml2/files/0001-tests-main.c-fix-build-with-glib-2.36.patch
new file mode 100644
index 0000000..b3eb396
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-gnome/gtkhtml2/files/0001-tests-main.c-fix-build-with-glib-2.36.patch
@@ -0,0 +1,32 @@
+From 4b17eed4b8588569d11ec4bd2b6fa3c063830e6e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Thu, 16 May 2013 18:44:50 +0200
+Subject: [PATCH] tests/main.c: fix build with glib 2.36
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: project seems dead
+
+Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+---
+ tests/main.c |    2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/tests/main.c b/tests/main.c
+index 61cce82..18165ed 100644
+--- a/tests/main.c
++++ b/tests/main.c
+@@ -30,7 +30,9 @@ main (gint argc, gchar **argv)
+ {
+ 	GtkWidget *browser;
+ 
++#if !GLIB_CHECK_VERSION (2, 36, 0)
+ 	g_thread_init(NULL);
++#endif
+ 
+ 	gtk_init (&argc, &argv);
+ 
+-- 
+1.7.6.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-gnome/gtkhtml2/gtkhtml2_svn.bb b/import-layers/meta-openembedded/meta-oe/recipes-gnome/gtkhtml2/gtkhtml2_svn.bb
new file mode 100644
index 0000000..cd22576
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-gnome/gtkhtml2/gtkhtml2_svn.bb
@@ -0,0 +1,39 @@
+SECTION = "libs"
+DEPENDS = "gtk+ glib-2.0 libxml2"
+SUMMARY = "A GTK+ HTML rendering library"
+LICENSE = "LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605"
+
+SRCREV = "1161"
+PV = "2.11.0+svnr${SRCPV}"
+PR = "r5"
+
+SRC_URI = "svn://svn.gnome.org/svn/gtkhtml2/;module=trunk;protocol=http \
+           http://git.yoctoproject.org/cgit/cgit.cgi/web-patches/plain/css-stylesheet-user.patch;striplevel=0;name=patch2 \
+           http://git.yoctoproject.org/cgit/cgit.cgi/web-patches/plain/css-media.patch;striplevel=0;name=patch3 \
+           http://git.yoctoproject.org/cgit/cgit.cgi/web-patches/plain/add-end-element-signal.patch;striplevel=0;name=patch4 \
+           http://git.yoctoproject.org/cgit/cgit.cgi/web-patches/plain/add-dom-functions.patch;striplevel=0;name=patch5 \
+           http://git.yoctoproject.org/cgit/cgit.cgi/web-patches/plain/iain-mem-leak.patch;striplevel=0;name=patch6 \
+           file://0001-tests-main.c-fix-build-with-glib-2.36.patch \
+"
+
+SRC_URI[patch2.md5sum] = "05fc3627ca364095702dc804f41c8391"
+SRC_URI[patch2.sha256sum] = "df5cca50a8f95333505d7920929fea251daea3be25be6834a1c50a742d9eb674"
+
+SRC_URI[patch3.md5sum] = "d3fe4cda3545f3e4718f1acc186608ab"
+SRC_URI[patch3.sha256sum] = "3aefaa17ffa38143bf5df1161c51ab402d35bfbee41ab4643c313edf569165d5"
+
+SRC_URI[patch4.md5sum] = "651b1601d8a1b21c8a3040fadb729043"
+SRC_URI[patch4.sha256sum] = "d067e8331bf9c6851f1c6067d991a7f54327f532900b405ebdf8e149c071f381"
+
+SRC_URI[patch5.md5sum] = "041be9711a16e629d01487664ba97152"
+SRC_URI[patch5.sha256sum] = "42956fb41341cf82ae8bce18b4cf96a7e2aa631b1b60657afb6d7e9be7cd138c"
+
+SRC_URI[patch6.md5sum] = "4e11dc7899d68f2be2e06ccee01d296d"
+SRC_URI[patch6.sha256sum] = "1e2cc080e654c1839c5cb4b4adf4c62a23e7da208427f3ba0b16cfed9e5cfa98"
+
+S = "${WORKDIR}/trunk"
+
+inherit pkgconfig autotools
+
+EXTRA_OECONF = " --disable-accessibility"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-gnome/libunique/libunique/0001-Makefile.am-use-LIBTOOL-instead-of-hardcoded-libtool.patch b/import-layers/meta-openembedded/meta-oe/recipes-gnome/libunique/libunique/0001-Makefile.am-use-LIBTOOL-instead-of-hardcoded-libtool.patch
new file mode 100644
index 0000000..2b5eda0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-gnome/libunique/libunique/0001-Makefile.am-use-LIBTOOL-instead-of-hardcoded-libtool.patch
@@ -0,0 +1,27 @@
+From f39bcd5af79aa3efe2cecb2212793c5b596890a8 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Thu, 18 Feb 2016 17:40:45 +0200
+Subject: [PATCH] Makefile.am: use $(LIBTOOL) instead of hardcoded libtool name
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ unique/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/unique/Makefile.am b/unique/Makefile.am
+index 6475a87..734f431 100644
+--- a/unique/Makefile.am
++++ b/unique/Makefile.am
+@@ -114,7 +114,7 @@ Unique-1.0.gir: $(INTROSPECTION_SCANNER) libunique-1.0.la
+ 		--include=GObject-2.0 \
+ 		--include=Gtk-2.0 \
+ 		--library=libunique-1.0.la \
+-		--libtool="$(top_builddir)/libtool" \
++		--libtool="$(LIBTOOL)" \
+ 		--pkg gobject-2.0 \
+ 		--pkg gtk+-2.0 \
+ 		--output $@ \
+-- 
+2.7.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-gnome/libunique/libunique/build.patch b/import-layers/meta-openembedded/meta-oe/recipes-gnome/libunique/libunique/build.patch
new file mode 100644
index 0000000..46a5c62
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-gnome/libunique/libunique/build.patch
@@ -0,0 +1,421 @@
+Upstream-Status: Backport [http://git.gnome.org/browse/unique/commit/?h=unique-1.1&id=f75ca2d7aad7d27686acca6090c1c569a79d7e63]
+Signed-off-By: Ross Burton <ross.burton@intel.com>
+
+From f75ca2d7aad7d27686acca6090c1c569a79d7e63 Mon Sep 17 00:00:00 2001
+From: Emmanuele Bassi <ebassi@gnome.org>
+Date: Sat, 08 May 2010 11:17:21 +0000
+Subject: build: Update the build environment
+
+Require autoconf 2.63, automake 1.11 and libtool 2.2.6 to remove Shave.
+
+Also bump up the requirement for gobject-introspection to 0.6.7.
+---
+diff --git a/build/autotools/Makefile.am b/build/autotools/Makefile.am
+index 5f35b85..b78428f 100644
+--- a/build/autotools/Makefile.am
++++ b/build/autotools/Makefile.am
+@@ -1,7 +1,4 @@
+ EXTRA_DIST = \
+-	shave-libtool.in 	\
+-	shave.in 		\
+-	shave.m4 		\
+ 	as-compiler-flag.m4	\
+ 	introspection.m4	\
+ 	Makefile.am.enums	\
+diff --git a/build/autotools/Makefile.am.silent b/build/autotools/Makefile.am.silent
+index 249f6af..8576846 100644
+--- a/build/autotools/Makefile.am.silent
++++ b/build/autotools/Makefile.am.silent
+@@ -1,10 +1,5 @@
+ # custom rules for quiet builds
+ 
+-if USE_SHAVE
+-QUIET_GEN = $(Q:@=@echo '  GEN   '$@;)
+-QUIET_LN  = $(Q:@=@echo '  LN    '$@;)
+-QUIET_RM  = $(Q:@=@echo '  RM    '$@;)
+-else
+ QUIET_GEN = $(AM_V_GEN)
+ 
+ QUIET_LN   = $(QUIET_LN_$(V))
+@@ -14,4 +9,3 @@ QUIET_LN_0 = @echo '  LN     '$@;
+ QUIET_RM   = $(QUIET_RM_$(V))
+ QUIET_RM_  = $(QUIET_RM_$(AM_DEFAULT_VERBOSITY))
+ QUIET_RM_0 = @echo '  RM     '$@;
+-endif # USE_SHAVE
+diff --git a/build/autotools/introspection.m4 b/build/autotools/introspection.m4
+index f9ce49c..589721c 100644
+--- a/build/autotools/introspection.m4
++++ b/build/autotools/introspection.m4
+@@ -59,12 +59,18 @@ m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL],
+        INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
+        INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
+        INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
++       INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
++       INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
++       INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
+     fi
+     AC_SUBST(INTROSPECTION_SCANNER)
+     AC_SUBST(INTROSPECTION_COMPILER)
+     AC_SUBST(INTROSPECTION_GENERATE)
+     AC_SUBST(INTROSPECTION_GIRDIR)
+     AC_SUBST(INTROSPECTION_TYPELIBDIR)
++    AC_SUBST(INTROSPECTION_CFLAGS)
++    AC_SUBST(INTROSPECTION_LIBS)
++    AC_SUBST(INTROSPECTION_MAKEFILE)
+ 
+     AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes")
+ ])
+diff --git a/build/autotools/shave-libtool.in b/build/autotools/shave-libtool.in
+deleted file mode 100644
+index 1f3a720..0000000
+--- a/build/autotools/shave-libtool.in
++++ b/dev/null
+@@ -1,69 +0,0 @@
+-#!/bin/sh
+-
+-# we need sed
+-SED=@SED@
+-if test -z "$SED" ; then
+-SED=sed
+-fi
+-
+-lt_unmangle ()
+-{
+-   last_result=`echo $1 | $SED -e 's#.libs/##' -e 's#[0-9a-zA-Z_\-\.]*_la-##'`
+-}
+-
+-# the real libtool to use
+-LIBTOOL="$1"
+-shift
+-
+-# if 1, don't print anything, the underlaying wrapper will do it
+-pass_though=0
+-
+-# scan the arguments, keep the right ones for libtool, and discover the mode
+-preserved_args=
+-while test "$#" -gt 0; do
+-    opt="$1"
+-    shift
+-
+-    case $opt in
+-    --mode=*)
+-        mode=`echo $opt | $SED -e 's/[-_a-zA-Z0-9]*=//'`
+-        preserved_args="$preserved_args $opt"
+-        ;;
+-    -o)
+-        lt_output="$1"
+-        preserved_args="$preserved_args $opt"
+-	;;
+-    *)
+-        preserved_args="$preserved_args $opt"
+-        ;;
+-      esac
+-done
+-
+-case "$mode" in
+-compile)
+-    # shave will be called and print the actual CC/CXX/LINK line
+-    preserved_args="$preserved_args --shave-mode=$mode"
+-    pass_though=1
+-    ;;
+-link)
+-    preserved_args="$preserved_args --shave-mode=$mode"
+-    Q="  LINK  "
+-    ;;
+-*)
+-    # let's u
+-    # echo "*** libtool: Unimplemented mode: $mode, fill a bug report"
+-    ;;
+-esac
+-
+-lt_unmangle "$lt_output"
+-output=$last_result
+-
+-if test -z $V; then
+-    if test $pass_though -eq 0; then
+-        echo "$Q$output"
+-    fi
+-    $LIBTOOL --silent $preserved_args
+-else
+-    echo $LIBTOOL $preserved_args
+-    $LIBTOOL $preserved_args
+-fi
+diff --git a/build/autotools/shave.in b/build/autotools/shave.in
+deleted file mode 100644
+index 5c16f27..0000000
+--- a/build/autotools/shave.in
++++ b/dev/null
+@@ -1,79 +0,0 @@
+-#!/bin/sh
+-
+-# we need sed
+-SED=@SED@
+-if test -z "$SED" ; then
+-SED=sed
+-fi
+-
+-lt_unmangle ()
+-{
+-   last_result=`echo $1 | $SED -e 's#.libs/##' -e 's#[0-9a-zA-Z_\-\.]*_la-##'`
+-}
+-
+-# the tool to wrap (cc, cxx, ar, ranlib, ..)
+-tool="$1"
+-shift
+-
+-# the reel tool (to call)
+-REEL_TOOL="$1"
+-shift
+-
+-pass_through=0
+-preserved_args=
+-while test "$#" -gt 0; do
+-    opt="$1"
+-    shift
+-
+-    case $opt in
+-    --shave-mode=*)
+-        mode=`echo $opt | $SED -e 's/[-_a-zA-Z0-9]*=//'`
+-	;;
+-    -o)
+-        lt_output="$1"
+-        preserved_args="$preserved_args $opt"
+-	;;
+-    *)
+-        preserved_args="$preserved_args $opt"
+-        ;;
+-      esac
+-done
+-
+-# mode=link is handled in the libtool wrapper
+-case "$mode,$tool" in
+-link,*)
+-    pass_through=1
+-    ;;
+-*,cxx)
+-    Q="  CXX   "
+-    ;;
+-*,cc)
+-    Q="  CC    "
+-    ;;
+-*,fc)
+-    Q="  FC    "
+-    ;;
+-*,f77)
+-    Q="  F77   "
+-    ;;
+-*,objc)
+-    Q="  OBJC   "
+-    ;;
+-*,*)
+-    # should not happen
+-    Q="  CC    "
+-    ;;
+-esac
+-
+-lt_unmangle "$lt_output"
+-output=$last_result
+-
+-if test -z $V; then
+-    if test $pass_through -eq 0; then
+-        echo "$Q$output"
+-    fi
+-    $REEL_TOOL $preserved_args
+-else
+-    echo $REEL_TOOL $preserved_args
+-    $REEL_TOOL $preserved_args
+-fi
+diff --git a/build/autotools/shave.m4 b/build/autotools/shave.m4
+deleted file mode 100644
+index 0a3509e..0000000
+--- a/build/autotools/shave.m4
++++ b/dev/null
+@@ -1,77 +0,0 @@
+-dnl Make automake/libtool output more friendly to humans
+-dnl  Damien Lespiau <damien.lespiau@gmail.com>
+-dnl
+-dnl SHAVE_INIT([shavedir],[default_mode])
+-dnl
+-dnl shavedir: the directory where the shave scripts are, it defaults to
+-dnl           $(top_builddir)
+-dnl default_mode: (enable|disable) default shave mode.  This parameter
+-dnl               controls shave's behaviour when no option has been
+-dnl               given to configure.  It defaults to disable.
+-dnl
+-dnl * SHAVE_INIT should be called late in your configure.(ac|in) file (just
+-dnl   before AC_CONFIG_FILE/AC_OUTPUT is perfect.  This macro rewrites CC and
+-dnl   LIBTOOL, you don't want the configure tests to have these variables
+-dnl   re-defined.
+-dnl * This macro requires GNU make's -s option.
+-
+-AC_DEFUN([_SHAVE_ARG_ENABLE],
+-[
+-  AC_ARG_ENABLE([shave],
+-    AS_HELP_STRING(
+-      [--enable-shave],
+-      [use shave to make the build pretty [[default=$1]]]),,
+-      [enable_shave=$1]
+-    )
+-])
+-
+-AC_DEFUN([SHAVE_INIT],
+-[
+-  dnl you can tweak the default value of enable_shave
+-  m4_if([$2], [enable], [_SHAVE_ARG_ENABLE(yes)], [_SHAVE_ARG_ENABLE(no)])
+-
+-  if test x"$enable_shave" = xyes; then
+-    dnl where can we find the shave scripts?
+-    m4_if([$1],,
+-      [shavedir="$ac_pwd"],
+-      [shavedir="$ac_pwd/$1"])
+-    AC_SUBST(shavedir)
+-
+-    dnl make is now quiet
+-    AC_SUBST([MAKEFLAGS], [-s])
+-    AC_SUBST([AM_MAKEFLAGS], ['`test -z $V && echo -s`'])
+-
+-    dnl we need sed
+-    AC_CHECK_PROG(SED,sed,sed,false)
+-
+-    dnl substitute libtool
+-    SHAVE_SAVED_LIBTOOL=$LIBTOOL
+-    LIBTOOL="${SHELL} ${shavedir}/shave-libtool '${SHAVE_SAVED_LIBTOOL}'"
+-    AC_SUBST(LIBTOOL)
+-
+-    dnl substitute cc/cxx
+-    SHAVE_SAVED_CC=$CC
+-    SHAVE_SAVED_CXX=$CXX
+-    SHAVE_SAVED_FC=$FC
+-    SHAVE_SAVED_F77=$F77
+-    SHAVE_SAVED_OBJC=$OBJC
+-    CC="${SHELL} ${shavedir}/shave cc ${SHAVE_SAVED_CC}"
+-    CXX="${SHELL} ${shavedir}/shave cxx ${SHAVE_SAVED_CXX}"
+-    FC="${SHELL} ${shavedir}/shave fc ${SHAVE_SAVED_FC}"
+-    F77="${SHELL} ${shavedir}/shave f77 ${SHAVE_SAVED_F77}"
+-    OBJC="${SHELL} ${shavedir}/shave objc ${SHAVE_SAVED_OBJC}"
+-    AC_SUBST(CC)
+-    AC_SUBST(CXX)
+-    AC_SUBST(FC)
+-    AC_SUBST(F77)
+-    AC_SUBST(OBJC)
+-
+-    V=@
+-  else
+-    V=1
+-  fi
+-  Q='$(V:1=)'
+-  AC_SUBST(V)
+-  AC_SUBST(Q)
+-])
+-
+diff --git a/configure.ac b/configure.ac
+index a3ed3ee..bc3163a 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -14,7 +14,7 @@ m4_define([unique_api_version], [1.0])
+ # This is the X.Y used in the protocol negotiation
+ m4_define([unique_protocol_version], [1.0])
+ 
+-AC_PREREQ([2.59])
++AC_PREREQ([2.63])
+ 
+ AC_INIT([unique], [unique_version],
+         [http://bugzilla.gnome.org/enter_bug.cgi?product=libunique],
+@@ -23,9 +23,21 @@ AC_INIT([unique], [unique_version],
+ AC_CONFIG_SRCDIR([unique/unique.h])
+ AC_CONFIG_MACRO_DIR([build/autotools])
+ 
+-AM_INIT_AUTOMAKE([1.10])
++AM_INIT_AUTOMAKE([1.11 no-define -Wno-portability dist-bzip2])
+ AM_CONFIG_HEADER([config.h])
+ 
++AM_SILENT_RULES([yes])
++
++AC_PROG_CC_C_O
++
++AM_PATH_GLIB_2_0
++
++LT_PREREQ([2.2.6])
++LT_INIT([disable-static])
++
++# Honor aclocal flags
++ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
++
+ # version symbols
+ UNIQUE_MAJOR_VERSION=unique_major_version
+ UNIQUE_MINOR_VERSION=unique_minor_version
+@@ -49,21 +61,6 @@ UNIQUE_LT_CURRENT_MINUS_AGE=m4_eval(lt_current - lt_age)
+ AC_SUBST(UNIQUE_LT_VERSION_INFO)
+ AC_SUBST(UNIQUE_LT_CURRENT_MINUS_AGE)
+ 
+-AC_ISC_POSIX
+-AC_PROG_CC
+-AC_PROG_INSTALL
+-AC_PROG_MAKE_SET
+-AC_C_CONST
+-AC_PROG_LIBTOOL
+-AC_PATH_PROG(GLIB_MKENUMS, [glib-mkenums])
+-AC_PATH_PROG(GLIB_GENMARSHAL, [glib-genmarshal])
+-
+-AM_SANITY_CHECK
+-AM_PROG_CC_STDC
+-
+-# Honor aclocal flags
+-ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
+-
+ m4_define([glib_required], [2.12.0])
+ m4_define([gtk_required],  [2.11.0])
+ m4_define([dbus_required], [0.70])
+@@ -122,7 +119,6 @@ AM_CONDITIONAL([HAVE_DBUS], [test "x$have_dbus" = "xyes"])
+ dnl Bacon backend
+ dnl This is the fallback backend, so we *need* these headers and functions
+ dnl even if we end up using D-Bus
+-dnl D-Bus backend dependencies
+ m4_define([have_bacon_default], [yes])
+ AC_ARG_ENABLE([bacon],
+               [AC_HELP_STRING([--enable-bacon=@<:@yes/no@:>@],
+@@ -178,9 +174,9 @@ AC_ARG_ENABLE([maintainer-flags],
+ AS_IF([test "x$enable_maintainer_flags" = "xyes" &&  test "x$GCC" = "xyes"],
+       [
+         AS_COMPILER_FLAGS([MAINTAINER_CFLAGS],
+-                          ["-Werror -Wall -Wshadow -Wcast-align
+-                            -Wno-uninitialized -Wempty-body -Wformat-security
+-                            -Winit-self"])
++                          ["-Wall -Wshadow -Wcast-align
++                            -Wno-uninitialized -Wempty-body
++                            -Wformat-security -Winit-self"])
+       ]
+ )
+ 
+@@ -230,27 +226,10 @@ AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],
+ AM_GLIB_DEFINE_LOCALEDIR(UNIQUE_LOCALEDIR)
+ 
+ # introspection
+-GOBJECT_INTROSPECTION_CHECK([0.6.3])
++GOBJECT_INTROSPECTION_CHECK([0.6.7])
+ 
+ # gtk-doc
+-GTK_DOC_CHECK([1.11])
+-
+-# nice builds
+-m4_ifdef([AM_SILENT_RULES],
+-         [
+-           AM_SILENT_RULES([yes])
+-           use_shave=no
+-         ],
+-         [
+-           SHAVE_INIT([build/autotools], [enable])
+-           AC_CONFIG_FILES([
+-                build/autotools/shave-libtool
+-                build/autotools/shave
+-           ])
+-           use_shave=yes
+-         ])
+-
+-AM_CONDITIONAL([USE_SHAVE], [test "x$use_shave" = "xyes"])
++GTK_DOC_CHECK([1.13])
+ 
+ AC_CONFIG_FILES([
+         Makefile
+--
+cgit v0.9.0.2
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-gnome/libunique/libunique/fix_for_compile_with_gcc-4.6.0.patch b/import-layers/meta-openembedded/meta-oe/recipes-gnome/libunique/libunique/fix_for_compile_with_gcc-4.6.0.patch
new file mode 100644
index 0000000..d75de93
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-gnome/libunique/libunique/fix_for_compile_with_gcc-4.6.0.patch
@@ -0,0 +1,36 @@
+Upstream-Status: Pending
+
+Fix Following compilation errors with gcc 4.6.0
+
+Nitin A Kamble <nitin.a.kamble@intel.com> 2011/05/10
+
+| uniquebackend-dbus.c: In function 'unique_backend_dbus_request_name':
+| uniquebackend-dbus.c:87:22: error: variable 'backend_dbus' set but not used [-Werror=unused-but-set-variable]
+| uniquebackend-dbus.c: In function 'unique_backend_dbus_send_message':
+| uniquebackend-dbus.c:189:12: error: variable 'res' set but not used [-Werror=unused-but-set-variable]
+| cc1: all warnings being treated as errors
+| 
+| make[5]: *** [libunique_dbus_la-uniquebackend-dbus.lo] Error 1
+
+Index: libunique-1.1.6/unique/dbus/uniquebackend-dbus.c
+===================================================================
+--- libunique-1.1.6.orig/unique/dbus/uniquebackend-dbus.c
++++ libunique-1.1.6/unique/dbus/uniquebackend-dbus.c
+@@ -84,7 +84,7 @@ unique_backend_dbus_register_proxy (Uniq
+ static gboolean
+ unique_backend_dbus_request_name (UniqueBackend *backend)
+ {
+-  UniqueBackendDBus *backend_dbus;
++  UniqueBackendDBus __attribute__((__unused__)) *backend_dbus;
+   const gchar *name;
+   DBusGConnection *connection;
+   DBusGProxy *proxy;
+@@ -186,7 +186,7 @@ unique_backend_dbus_send_message (Unique
+   GValueArray *data;
+   gchar *cmd;
+   gchar *resp;
+-  gboolean res;
++  gboolean __attribute__((__unused__)) res;
+   GError *error;
+   UniqueResponse response;
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-gnome/libunique/libunique/noconst.patch b/import-layers/meta-openembedded/meta-oe/recipes-gnome/libunique/libunique/noconst.patch
new file mode 100644
index 0000000..2cc0347
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-gnome/libunique/libunique/noconst.patch
@@ -0,0 +1,130 @@
+G_CONST_RETURN is deprecated in glib 2.30 so remove to to avoid
+build failures.
+
+RP 2011/10/12
+
+Upstream-Status: Pending
+
+Index: libunique-1.1.6/unique/uniqueapp.c
+===================================================================
+--- libunique-1.1.6.orig/unique/uniqueapp.c	2011-10-12 01:21:25.842046488 +0100
++++ libunique-1.1.6/unique/uniqueapp.c	2011-10-12 01:21:55.062046796 +0100
+@@ -781,7 +781,7 @@
+ }
+ 
+ 
+-G_CONST_RETURN gchar *
++const gchar *
+ unique_command_to_string (UniqueApp *app,
+                           gint       command)
+ {
+@@ -863,7 +863,7 @@
+   return retval;
+ }
+ 
+-G_CONST_RETURN gchar *
++const gchar *
+ unique_response_to_string (UniqueResponse response)
+ {
+   GEnumClass *enum_class;
+Index: libunique-1.1.6/unique/uniquebackend.c
+===================================================================
+--- libunique-1.1.6.orig/unique/uniquebackend.c	2011-10-12 01:21:25.742046323 +0100
++++ libunique-1.1.6/unique/uniquebackend.c	2011-10-12 01:21:55.062046796 +0100
+@@ -111,7 +111,7 @@
+  *
+  * Return value: FIXME
+  */
+-G_CONST_RETURN gchar *
++const gchar *
+ unique_backend_get_name (UniqueBackend *backend)
+ {
+   g_return_val_if_fail (UNIQUE_IS_BACKEND (backend), NULL);
+@@ -154,7 +154,7 @@
+  *
+  * Return value: FIXME
+  */
+-G_CONST_RETURN gchar *
++const gchar *
+ unique_backend_get_startup_id (UniqueBackend *backend)
+ {
+   g_return_val_if_fail (UNIQUE_IS_BACKEND (backend), NULL);
+Index: libunique-1.1.6/unique/uniquebackend.h
+===================================================================
+--- libunique-1.1.6.orig/unique/uniquebackend.h	2011-10-12 01:21:25.992046521 +0100
++++ libunique-1.1.6/unique/uniquebackend.h	2011-10-12 01:21:56.512047875 +0100
+@@ -94,10 +94,10 @@
+ 
+ UniqueBackend *       unique_backend_create         (void);
+ 
+-G_CONST_RETURN gchar *unique_backend_get_name       (UniqueBackend     *backend);
++const gchar *unique_backend_get_name       (UniqueBackend     *backend);
+ void                  unique_backend_set_name       (UniqueBackend     *backend,
+                                                      const gchar       *name);
+-G_CONST_RETURN gchar *unique_backend_get_startup_id (UniqueBackend     *backend);
++const gchar *unique_backend_get_startup_id (UniqueBackend     *backend);
+ void                  unique_backend_set_startup_id (UniqueBackend     *backend,
+                                                      const gchar       *startup_id);
+ GdkScreen *           unique_backend_get_screen     (UniqueBackend     *backend);
+Index: libunique-1.1.6/unique/uniqueinternals.h
+===================================================================
+--- libunique-1.1.6.orig/unique/uniqueinternals.h	2011-10-12 01:21:25.892046532 +0100
++++ libunique-1.1.6/unique/uniqueinternals.h	2011-10-12 01:21:56.512047875 +0100
+@@ -44,11 +44,11 @@
+  * and then back into an id
+  */
+ UniqueResponse        unique_response_from_string  (const gchar    *response);
+-G_CONST_RETURN gchar *unique_response_to_string    (UniqueResponse  response);
++const gchar *unique_response_to_string    (UniqueResponse  response);
+ 
+ gint                  unique_command_from_string   (UniqueApp      *app,
+                                                     const gchar    *command);
+-G_CONST_RETURN gchar *unique_command_to_string     (UniqueApp      *app,
++const gchar *unique_command_to_string     (UniqueApp      *app,
+                                                     gint            command);
+ 
+ G_END_DECLS
+Index: libunique-1.1.6/unique/uniquemessage.c
+===================================================================
+--- libunique-1.1.6.orig/unique/uniquemessage.c	2011-10-12 01:21:25.942046524 +0100
++++ libunique-1.1.6/unique/uniquemessage.c	2011-10-12 01:21:55.072046595 +0100
+@@ -185,7 +185,7 @@
+  *
+  * Since: 1.0.2
+  */
+-G_CONST_RETURN guchar *
++const guchar *
+ unique_message_data_get (UniqueMessageData *message_data,
+                          gsize             *length)
+ {
+@@ -525,7 +525,7 @@
+  *   owned by the #UniqueMessageData structure and should not be
+  *   modified or freed
+  */
+-G_CONST_RETURN gchar *
++const gchar *
+ unique_message_data_get_startup_id (UniqueMessageData *message_data)
+ {
+   g_return_val_if_fail (message_data != NULL, NULL);
+Index: libunique-1.1.6/unique/uniquemessage.h
+===================================================================
+--- libunique-1.1.6.orig/unique/uniquemessage.h	2011-10-12 01:21:25.792046596 +0100
++++ libunique-1.1.6/unique/uniquemessage.h	2011-10-12 01:21:56.512047875 +0100
+@@ -48,7 +48,7 @@
+ void                   unique_message_data_set            (UniqueMessageData *message_data,
+                                                            const guchar      *data,
+                                                            gsize              length);
+-G_CONST_RETURN guchar *unique_message_data_get            (UniqueMessageData *message_data,
++const guchar *unique_message_data_get            (UniqueMessageData *message_data,
+                                                            gsize             *length);
+ 
+ gboolean               unique_message_data_set_text       (UniqueMessageData *message_data,
+@@ -63,7 +63,7 @@
+ gchar *                unique_message_data_get_filename   (UniqueMessageData *message_data);
+ 
+ GdkScreen *            unique_message_data_get_screen     (UniqueMessageData *message_data);
+-G_CONST_RETURN gchar * unique_message_data_get_startup_id (UniqueMessageData *message_data);
++const gchar * unique_message_data_get_startup_id (UniqueMessageData *message_data);
+ guint                  unique_message_data_get_workspace  (UniqueMessageData *message_data);
+ 
+ G_END_DECLS
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-gnome/libunique/libunique_1.1.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-gnome/libunique/libunique_1.1.6.bb
new file mode 100644
index 0000000..3d13e5a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-gnome/libunique/libunique_1.1.6.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Library for supporting single instance GTK+ applications"
+DESCRIPTION = "Unique is a library for writing single instance GTK+ applications. If you launch a single instance application twice, the second instance will either just quit or will send a message to the running instance."
+HOMEPAGE = "https://wiki.gnome.org/Attic/LibUnique"
+BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=libunique"
+
+SRC_URI = "${GNOME_MIRROR}/libunique/1.1/libunique-${PV}.tar.bz2 \
+	file://fix_for_compile_with_gcc-4.6.0.patch \
+	file://noconst.patch \
+        file://build.patch \
+        file://0001-Makefile.am-use-LIBTOOL-instead-of-hardcoded-libtool.patch \
+        "
+
+SRC_URI[md5sum] = "7955769ef31f1bc4f83446dbb3625e6d"
+SRC_URI[sha256sum] = "e5c8041cef8e33c55732f06a292381cb345db946cf792a4ae18aa5c66cdd4fbb"
+
+PR = "r7"
+
+DEPENDS = "glib-2.0 gtk+"
+
+PACKAGECONFIG ??= "dbus"
+PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus dbus-glib"
+
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
+
+
+inherit autotools pkgconfig gobject-introspection
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/babl/babl_0.1.16.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/babl/babl_0.1.16.bb
new file mode 100644
index 0000000..daea052
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/babl/babl_0.1.16.bb
@@ -0,0 +1,13 @@
+SUMMARY = "Babl is a dynamic, any to any, pixel format conversion library"
+LICENSE = "LGPL-3.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6a6a8e020838b23406c81b19c1d46df6"
+
+inherit gnomebase
+
+SRC_URI = "http://ftp.gimp.org/pub/${BPN}/0.1/${BP}.tar.bz2"
+SRC_URI[md5sum] = "a1c72e5f5d55a8b736ef2fa67ddb86ec"
+SRC_URI[sha256sum] = "7d6ba55ec53ee6f6bf6945beec28839d09ff72376f4d83035eb379cd4f3e980e"
+
+FILES_${PN} += "${libdir}/babl-*/*.so"
+FILES_${PN}-dev += "${libdir}/babl-*/*.la"
+FILES_${PN}-dbg += "${libdir}/babl-*/.debug/"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/cairo/cairomm_1.11.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/cairo/cairomm_1.11.2.bb
new file mode 100644
index 0000000..a330458
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/cairo/cairomm_1.11.2.bb
@@ -0,0 +1,16 @@
+SUMMARY = "C++ bindings for Cairo graphics library"
+
+LICENSE = "LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c46bda00ffbb0ba1dac22f8d087f54d9"
+
+inherit autotools pkgconfig
+
+DEPENDS = "cairo libsigc++-2.0"
+
+SRC_URI = "http://cairographics.org/releases/cairomm-${PV}.tar.gz;name=archive"
+SRC_URI[archive.md5sum] = "732a3ff5b57401eb5dfeef795a2a0c52"
+SRC_URI[archive.sha256sum] = "ccf677098c1e08e189add0bd146f78498109f202575491a82f1815b6bc28008d"
+
+FILES_${PN}-doc += "${datadir}/devhelp"
+FILES_${PN}-dev += "${libdir}/cairomm-*/"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/clutter/clutter-box2d.inc b/import-layers/meta-openembedded/meta-oe/recipes-graphics/clutter/clutter-box2d.inc
new file mode 100644
index 0000000..646b785
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/clutter/clutter-box2d.inc
@@ -0,0 +1,15 @@
+DESCRIPTION = "Clutter Box2D"
+HOMEPAGE = "http://www.clutter-project.org/"
+LICENSE = "LGPLv2.1+"
+
+# The main clutter lib is machine specific so we need to be too
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+inherit autotools pkgconfig gtk-doc
+
+do_install_append () {
+    install -d ${D}${bindir}
+    install ${S}/examples/.libs/blockbox ${D}${bindir}
+}
+
+FILESPATH = "${FILE_DIRNAME}/clutter-box2d"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/clutter/clutter-box2d_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/clutter/clutter-box2d_git.bb
new file mode 100644
index 0000000..194d104
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/clutter/clutter-box2d_git.bb
@@ -0,0 +1,19 @@
+require clutter-box2d.inc
+
+LIC_FILES_CHKSUM = "file://box2d/License.txt;md5=e5d39ad91f7dc4692dcdb1d85139ec6b"
+
+# 0.12.1+gitAUTOINC+de5452e56b-r1/git/clutter-box2d/clutter-box2d.h:226:47:
+#  fatal error: clutter-box2d/clutter-box2d-child.h: No such file or directory
+# |  #include <clutter-box2d/clutter-box2d-child.h>
+PNBLACKLIST[clutter-box2d] ?= "BROKEN: doesn't build with B!=S"
+
+SRCREV = "de5452e56b537a11fd7f9453d048ff4b4793b5a2"
+PV = "0.12.1+git${SRCPV}"
+PR = "r1"
+
+SRC_URI = "git://git.gnome.org/clutter-box2d.git"
+
+S = "${WORKDIR}/git"
+
+DEPENDS += "clutter-1.0"
+PROVIDES = "clutter-box2d-1.6"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/dietsplash/dietsplash_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/dietsplash/dietsplash_git.bb
new file mode 100644
index 0000000..a88caf8
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/dietsplash/dietsplash_git.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Simple bootsplash for systemd systems"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+# Really, no depends besides a C library
+
+PV = "0.3"
+PR = "r1"
+
+SRCREV = "f7aadacbe3c19e37ea938e00a5141b577fb74a5e"
+SRC_URI = "git://github.com/lucasdemarchi/dietsplash.git"
+
+inherit autotools
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECONF = " --with-systemdsystemunitdir=${systemd_unitdir}/system \
+                 --disable-staticimages"
+
+FILES_${PN} += "${systemd_unitdir}/system/"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/fbgrab/fbgrab_1.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/fbgrab/fbgrab_1.2.bb
new file mode 100644
index 0000000..1d87b86
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/fbgrab/fbgrab_1.2.bb
@@ -0,0 +1,18 @@
+SUMMARY = "FBGrab is a framebuffer screenshot program"
+HOMEPAGE = "http://fbgrab.monells.se/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ea5bed2f60d357618ca161ad539f7c0a"
+SECTION = "console/utils"
+DEPENDS = "libpng zlib"
+SRC_URI = "http://fbgrab.monells.se/${BP}.tar.gz"
+
+inherit autotools-brokensep
+
+S = "${WORKDIR}/${BPN}"
+
+SRC_URI[md5sum] = "15b432735d6efd0373722bb96577b945"
+SRC_URI[sha256sum] = "61e0772ad6ea744ee597ae478398ddd0ba6fceee2cf343859bebde2c15bafb91"
+
+do_configure_prepend() {
+    sed -i 's|$(DESTDIR)/usr/man/|$(DESTDIR)${mandir}/|g' ${S}/Makefile
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/fbida/fbida_2.10.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/fbida/fbida_2.10.bb
new file mode 100644
index 0000000..c14fc9b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/fbida/fbida_2.10.bb
@@ -0,0 +1,66 @@
+SUMMARY = "Framebuffer image and doc viewer tools"
+DESCRIPTION = "The fbida project contains a few applications for viewing and editing images, \
+               with the main focus being photos."
+HOMEPAGE = "http://linux.bytesex.org/fbida/"
+AUTHOR = "Gerd Hoffmann"
+SECTION = "utils"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
+
+DEPENDS = "virtual/libiconv jpeg fontconfig freetype libexif"
+
+SRC_URI = "https://www.kraxel.org/releases/fbida/fbida-${PV}.tar.gz"
+SRC_URI[md5sum] = "09460b964b58c2e39b665498eca29018"
+SRC_URI[sha256sum] = "7a5a3aac61b40a6a2bbf716d270a46e2f8e8d5c97e314e927d41398a4d0b6cb6"
+
+B = "${WORKDIR}/build"
+
+EXTRA_OEMAKE = "STRIP= 'srcdir=${S}' -f ${S}/GNUmakefile"
+
+PACKAGECONFIG ??= "gif png curl"
+PACKAGECONFIG[curl] = ",,curl"
+PACKAGECONFIG[gif] = ",,giflib"
+PACKAGECONFIG[png] = ",,libpng"
+PACKAGECONFIG[tiff] = ",,tiff"
+PACKAGECONFIG[motif] = ",,libx11 libxext libxpm libxt openmotif"
+PACKAGECONFIG[webp] = ",,libwebp"
+PACKAGECONFIG[lirc] = ",,lirc"
+
+do_compile() {
+    sed -i -e 's# fbgs# \$(srcdir)/fbgs#; s#-Ijpeg#-I\$(srcdir)/jpeg#; s# jpeg/# \$(srcdir)/jpeg/#' ${S}/GNUmakefile
+    sed -i -e 's:/sbin/ldconfig:echo x:' ${S}/mk/Autoconf.mk
+    sed -i -e 's: cpp: ${TARGET_PREFIX}cpp -I${STAGING_INCDIR}:' ${S}/GNUmakefile
+
+    # Be sure to respect preferences (force to "no")
+    # Also avoid issues when ${BUILD_ARCH} == ${HOST_ARCH}
+    if [ -z "${@bb.utils.contains('PACKAGECONFIG', 'curl', 'curl', '', d)}" ]; then
+        sed -i -e '/^HAVE_LIBCURL/s/:=.*$/:= no/' ${S}/GNUmakefile
+    fi
+    if [ -z "${@bb.utils.contains('PACKAGECONFIG', 'gif', 'gif', '', d)}" ]; then
+        sed -i -e '/^HAVE_LIBGIF/s/:=.*$/:= no/' ${S}/GNUmakefile
+    fi
+    if [ -z "${@bb.utils.contains('PACKAGECONFIG', 'png', 'png', '', d)}" ]; then
+        sed -i -e '/^HAVE_LIBPNG/s/:=.*$/:= no/' ${S}/GNUmakefile
+    fi
+    if [ -z "${@bb.utils.contains('PACKAGECONFIG', 'tiff', 'tiff', '', d)}" ]; then
+        sed -i -e '/^HAVE_LIBTIFF/s/:=.*$/:= no/' ${S}/GNUmakefile
+    fi
+    if [ -z "${@bb.utils.contains('PACKAGECONFIG', 'motif', 'motif', '', d)}" ]; then
+        sed -i -e '/^HAVE_MOTIF/s/:=.*$/:= no/' ${S}/GNUmakefile
+    fi
+    if [ -z "${@bb.utils.contains('PACKAGECONFIG', 'webp', 'webp', '', d)}" ]; then
+        sed -i -e '/^HAVE_LIBWEBP/s/:=.*$/:= no/' ${S}/GNUmakefile
+    fi
+    if [ -z "${@bb.utils.contains('PACKAGECONFIG', 'lirc', 'lirc', '', d)}" ]; then
+        sed -i -e '/^HAVE_LIBLIRC/s/:=.*$/:= no/' ${S}/GNUmakefile
+    fi
+
+    oe_runmake
+}
+
+do_install() {
+    oe_runmake 'DESTDIR=${D}' install
+}
+
+RDEPENDS_${PN} = "ttf-dejavu-sans-mono bash"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/fim/files/cross_cc.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/fim/files/cross_cc.patch
new file mode 100644
index 0000000..85ab1ef
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/fim/files/cross_cc.patch
@@ -0,0 +1,29 @@
+From 9b0b322d86c7b2d2cddaa62f7dab4aa669739a48 Mon Sep 17 00:00:00 2001
+From: Matthieu Crapet <Matthieu.Crapet@ingenico.com>
+Date: Wed, 19 Mar 2014 13:18:21 +0100
+Subject: [PATCH] Upstream-Status: Pending
+
+b2ba should be built by BUILD_CC in cross environment
+This is only used when configured with --enable-hardcoded-font
+
+Signed-off-by: Matthieu Crapet <Matthieu.Crapet@ingenico.com>
+---
+ src/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/Makefile.am b/src/Makefile.am
+index a1d4330..a8150b9 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -63,7 +63,7 @@ help-acm.cpp: fim.h
+ 	$(ECHO) '//#endif' >> $@
+ 
+ b2ba:
+-	$(CC) -o b2ba b2ba.c
++	$(BUILD_CC) -o b2ba b2ba.c
+ 
+ if FIM_WANT_CUSTOM_HARDCODED_CONSOLEFONT
+ default_font_byte_array.h: $(FIM_CUSTOM_HARDCODED_CONSOLEFONT) b2ba
+-- 
+1.8.5.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/fim/fim_0.4-rc1.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/fim/fim_0.4-rc1.bb
new file mode 100644
index 0000000..90ac702
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/fim/fim_0.4-rc1.bb
@@ -0,0 +1,52 @@
+SUMMARY = "Framebuffer (scriptable) image viewer"
+DESCRIPTION = "FIM (Fbi IMproved) aims to be a highly customizable and scriptable \
+               image viewer targeted at users who are comfortable with software \
+               like the Vim text editor or the Mutt mail user agent."
+SECTION = "utils"
+HOMEPAGE = "http://www.autistici.org/dezperado/fim/"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fa01bff138cc98a62b8840a157951c88"
+
+PNBLACKLIST[fim] ?= "BROKEN: doesn't build with B!=S (flex: can't open lex.lex)"
+
+# flex with provide /usr/include/FlexLexer.h
+DEPENDS = "flex-native bison-native flex"
+
+SRC_URI = "${SAVANNAH_NONGNU_MIRROR}/fbi-improved/${BPN}-${PV}.tar.gz \
+           file://cross_cc.patch"
+SRC_URI[md5sum] = "d7362dde5541c2b6439c35c6e2bd5046"
+SRC_URI[sha256sum] = "3f6bf2de2952b9adcbeb3db12c2a979e999a81dd1e314a03bc58e24f1ea9f686"
+
+PARALLEL_MAKE = ""
+
+inherit autotools pkgconfig
+
+# Don't use provided regex.c
+EXTRA_OECONF = "fim_cv_regex=no fim_cv_regex_broken=no \
+    --enable-framebuffer \
+    --disable-djvu \
+    --disable-ps \
+    --disable-xcftopnm \
+    --disable-convert \
+    --disable-inkscape \
+    --disable-xfig \
+    --disable-dia \
+    --disable-aa \
+    --disable-sdl \
+    --enable-read-dirs \
+    --enable-recursive-dirs \
+    --enable-custom-status-bar \
+"
+
+# Note: imlib2 is located in meta-efl layer.
+PACKAGECONFIG ?= "jpeg rl hf"
+PACKAGECONFIG[png] = "--enable-png,--disable-png,libpng"
+PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg"
+PACKAGECONFIG[tiff] = "--enable-tiff,--disable-tiff,tiff"
+PACKAGECONFIG[gif] = "--enable-gif,--disable-gif,giflib"
+PACKAGECONFIG[pdf] = "--enable-poppler,--disable-poppler,poppler"
+PACKAGECONFIG[magick] = "--enable-graphicsmagick,--disable-graphicsmagick,imagemagick"
+PACKAGECONFIG[imlib2] = "--enable-imlib2,--disable-imlib2,imlib2"
+PACKAGECONFIG[rl] = "--enable-readline,--disable-readline,readline"
+PACKAGECONFIG[hf] = "--enable-hardcoded-font,--disable-hardcoded-font"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/fontforge/fontforge_20150824.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/fontforge/fontforge_20150824.bb
new file mode 100644
index 0000000..53899f1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/fontforge/fontforge_20150824.bb
@@ -0,0 +1,60 @@
+SUMMARY = "A font editor"
+HOMEPAGE = "http://fontforge.github.io/en-US/"
+LICENSE = "BSD-3-Clause & GPLv3"
+LIC_FILES_CHKSUM = " \
+    file://COPYING.gplv3;md5=d32239bcb673463ab874e80d47fae504 \
+    file://LICENSE;md5=3f922b42ed0033fa0fd4cd3268f6429c \
+"
+
+DEPENDS = "glib-2.0 pango giflib tiff libxml2 jpeg python libtool uthash"
+DEPENDS_append_class-target = " libxi"
+
+inherit autotools pkgconfig pythonnative distro_features_check
+
+REQUIRED_DISTRO_FEATURES_append_class-target = " x11"
+
+SRC_URI = "git://github.com/${BPN}/${BPN}.git"
+# tag 20150824
+SRCREV = "07d5ccff2704f8a56f1b3cc6695a4e31f85f88e6"
+S = "${WORKDIR}/git"
+
+EXTRA_OECONF_append_class-native = " with_x=no --disable-python-extension --disable-python-scripting"
+
+do_configure_prepend() {
+    # uthash sources are expected in uthash/src
+    currdir=`pwd`
+    cd ${S}
+
+    mkdir -p uthash/src
+    cp ${STAGING_INCDIR}/ut*.h uthash/src
+
+    # avoid bootstrap cloning gnulib on every configure
+    cat >.gitmodules <<EOF
+[submodule "gnulib"]
+       path = gnulib
+       url = git://git.sv.gnu.org/gnulib
+EOF
+    cp -rf ${STAGING_DATADIR}/gnulib ${S}
+
+    # --force to avoid errors on reconfigure e.g if recipes changed we depend on
+    # | bootstrap: running: libtoolize --quiet
+    # | libtoolize:   error: 'libltdl/COPYING.LIB' exists: use '--force' to overwrite
+    # | ...
+    ./bootstrap --force
+
+    cd $currdir
+}
+
+PACKAGES =+ "${PN}-python-dbg ${PN}-python"
+
+FILES_${PN} += " \
+    ${datadir}/mime \
+    ${datadir}/icons \
+"
+
+FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR} ${datadir}/${PN}/python"
+FILES_${PN}-python-dbg = "${PYTHON_SITEPACKAGES_DIR}/.debug"
+RDEPENDS_${PN}-python = "python"
+
+# for e.g kde's oxygen-fonts
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gegl/gegl/pkgconfig.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gegl/gegl/pkgconfig.patch
new file mode 100644
index 0000000..d145b62
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gegl/gegl/pkgconfig.patch
@@ -0,0 +1,21 @@
+Index: gegl-0.2.0/configure.ac
+===================================================================
+--- gegl-0.2.0.orig/configure.ac	2012-04-02 21:56:49.000000000 +0000
++++ gegl-0.2.0/configure.ac	2014-07-17 21:34:15.312546602 +0000
+@@ -765,15 +765,7 @@
+ 
+ have_sdl="no"
+ if test "x$with_sdl" != "xno"; then
+-  AC_PATH_PROG(SDL_CONFIG, sdl-config, no)
+-  if test "$SDL_CONFIG" = "no"; then
+-    have_sdl="no  (SDL library not found)"
+-    AC_MSG_RESULT([*** Check for SDL library failed.])
+-  else
+-    have_sdl="yes"
+-    SDL_CFLAGS=`$SDL_CONFIG --cflags`
+-    SDL_LIBS=`$SDL_CONFIG --libs`
+-  fi
++  PKG_CHECK_MODULES([SDL], [sdl], [have_sdl="yes"], [have_sdl="no  (SDL library not found)"])
+ fi
+ 
+ AM_CONDITIONAL(HAVE_SDL, test "$have_sdl" = "yes")
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gegl/gegl_0.3.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gegl/gegl_0.3.4.bb
new file mode 100644
index 0000000..15c1b64
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gegl/gegl_0.3.4.bb
@@ -0,0 +1,30 @@
+SUMMARY = "GEGL (Generic Graphics Library) is a graph based image processing framework"
+LICENSE = "LGPL-3.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+DEPENDS = "babl librsvg glib-2.0 gtk+ pango cairo expat zlib libpng jpeg virtual/libsdl json-glib"
+
+EXTRA_OECONF = "--disable-docs"
+
+inherit gnomebase vala gobject-introspection
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[jasper] = "--with-jasper,--without-jasper,jasper"
+PACKAGECONFIG[avformat] = "--with-libavformat,--without-libavformat,libav"
+PACKAGECONFIG[lcms] = "--with-lcms,--without-lcms,lcms"
+PACKAGECONFIG[tiff] = "--with-libtiff,--without-libtiff,tiff"
+PACKAGECONFIG[webp] = "--with-webp,--without-webp,webp"
+
+SRC_URI = "http://ftp.gimp.org/pub/${BPN}/0.3/${BP}.tar.bz2 \
+           file://pkgconfig.patch "
+SRC_URI[md5sum] = "c19478321594d715a4cb324a0decda6f"
+SRC_URI[sha256sum] = "846290a790854d1e6b7c17a2d6f82ad7cb14c72e240bd3b81b98cc0ceddbc3ec"
+
+# There are a couple of non-symlink .so files installed into libdir, which need to go into main package
+FILES_${PN}_append = " ${libdir}/gegl-0.3/*.so ${libdir}/gegl-0.3/*.json ${libdir}/libgegl-npd-0.3.so ${libdir}/libgegl-sc-0.3.so"
+FILES_${PN}-dev_append = " ${libdir}/gegl-0.3/*.la ${libdir}/libgegl-0.3.so"
+FILES_${PN}-dev_remove = "${libdir}/lib*.so"
+
+# Fails to build with thumb-1 (qemuarm)
+# gegl-0.2.0/operations/common/matting-global.c: In function 'matting_process':
+# gegl-0.2.0/operations/common/matting-global.c:463:1: internal compiler error: in patch_jump_insn, at cfgrtl.c:1275
+ARM_INSTRUCTION_SET = "arm"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp/0001-configure-ac-do-not-check-for-freetype-config.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp/0001-configure-ac-do-not-check-for-freetype-config.patch
new file mode 100644
index 0000000..fecd012
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp/0001-configure-ac-do-not-check-for-freetype-config.patch
@@ -0,0 +1,38 @@
+From 72ad76841d87e857428693d812a961935284ac62 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Thu, 12 Feb 2015 15:57:47 +0100
+Subject: [PATCH] configure-ac: do not check for freetype-config
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+freetype-config is not allowed in our environment - see also binconfig-disabled
+
+Upstream-Status: inappropriate [OE specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+---
+ configure.ac | 7 -------
+ 1 file changed, 7 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 26812b6..abec714 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -647,13 +647,6 @@ if test "x$fontconfig_ok" = xno; then
+ fi
+ 
+ 
+-AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)
+-if test "x$FREETYPE_CONFIG" != "xno" ; then
+-  AC_MSG_CHECKING([for freetype libraries])
+-  FREETYPE_LIBS=`$FREETYPE_CONFIG --libs`
+-  AC_MSG_RESULT($FREETYPE_LIBS)
+-fi
+-AC_SUBST(FREETYPE_LIBS)
+ 
+ 
+ ##########################################
+-- 
+1.9.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp/bump_Babl-GEGL_versions.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp/bump_Babl-GEGL_versions.patch
new file mode 100644
index 0000000..b71bf32
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp/bump_Babl-GEGL_versions.patch
@@ -0,0 +1,53 @@
+Bump acceptable versions of babl and gegl.
+
+Patch is taken from debian:
+https://packages.debian.org/stretch/gimp
+
+Upstream-Status: Inappropriate [OE specific]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+diff --git a/app/sanity.c b/app/sanity.c
+index febddfb..85fea55 100644
+--- a/app/sanity.c
++++ b/app/sanity.c
+@@ -351,7 +351,7 @@ sanity_check_babl (void)
+ 
+ #define BABL_REQUIRED_MAJOR 0
+ #define BABL_REQUIRED_MINOR 1
+-#define BABL_REQUIRED_MICRO 10
++#define BABL_REQUIRED_MICRO 12
+ 
+   babl_get_version (&babl_major_version,
+                     &babl_minor_version,
+@@ -388,7 +388,7 @@ sanity_check_gegl (void)
+   gint gegl_micro_version;
+ 
+ #define GEGL_REQUIRED_MAJOR 0
+-#define GEGL_REQUIRED_MINOR 2
++#define GEGL_REQUIRED_MINOR 3
+ #define GEGL_REQUIRED_MICRO 0
+ 
+   gegl_get_version (&gegl_major_version,
+diff --git a/configure.ac b/configure.ac
+index 26812b6..4252fe9 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -40,8 +40,8 @@ m4_define([gimp_stable],
+ m4_define([gimp_full_name], [GNU Image Manipulation Program])
+ 
+ # required versions of other packages
+-m4_define([babl_required_version], [0.1.10])
+-m4_define([gegl_required_version], [0.2.0])
++m4_define([babl_required_version], [0.1.12])
++m4_define([gegl_required_version], [0.3.0])
+ m4_define([glib_required_version], [2.30.2])
+ m4_define([atk_required_version], [2.2.0])
+ m4_define([gtk_required_version], [2.24.10])
+@@ -519,7 +519,7 @@ AC_SUBST(ISO_CODES_LOCALEDIR)
+ ###############################
+ 
+ PKG_CHECK_MODULES(BABL, babl >= babl_required_version)
+-PKG_CHECK_MODULES(GEGL, gegl-0.2 >= gegl_required_version)
++PKG_CHECK_MODULES(GEGL, gegl-0.3 >= gegl_required_version)
+ PKG_CHECK_MODULES(ATK, atk >= atk_required_version)
+ 
+ AM_PATH_GLIB_2_0(glib_required_version, :,
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp_2.8.14.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp_2.8.14.bb
new file mode 100644
index 0000000..29ed4d9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gimp/gimp_2.8.14.bb
@@ -0,0 +1,32 @@
+SUMMARY = "The GIMP is the GNU Image Manipulation Program"
+HOMEPAGE = "http://www.gimp.org"
+SECTION = "x11/graphics"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+DEPENDS = "babl gdk-pixbuf-native libart-lgpl gtk+ jpeg libpng libexif tiff lcms gegl poppler jasper bzip2 libgudev"
+DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxmu libxpm', '', d)}"
+
+inherit gnome gtk-doc
+
+SRC_URI = " \
+    http://ftp.gimp.org/pub/gimp/v2.8/gimp-${PV}.tar.bz2 \
+    file://0001-configure-ac-do-not-check-for-freetype-config.patch \
+    file://bump_Babl-GEGL_versions.patch \
+"
+SRC_URI[md5sum] = "233c948203383fa078434cc3f8f925cb"
+SRC_URI[sha256sum] = "d82a958641c9c752d68e35f65840925c08e314cea90222ad845892a40e05b22d"
+
+EXTRA_OECONF = "--disable-python \
+                --without-webkit \
+                --without-wmf"
+
+do_configure_append() {
+    find ${B} -name Makefile | xargs sed -i s:'-I$(includedir)':'-I.':g
+    find ${B} -name Makefile | xargs sed -i s:'-I/usr/include':'-I${STAGING_INCDIR}':g
+}
+
+CFLAGS += "-fPIC"
+
+FILES_${PN}-dbg += "${libdir}/gimp/2.0/*/.debug"
+FILES_${PN}  += "${datadir}/appdata"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/glcompbench/glcompbench/glbench-compile-fix.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/glcompbench/glcompbench/glbench-compile-fix.patch
new file mode 100644
index 0000000..374a6cf
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/glcompbench/glcompbench/glbench-compile-fix.patch
@@ -0,0 +1,35 @@
+From c4bc44c3abf69f26e4c2b7684f4da4670a51f993 Mon Sep 17 00:00:00 2001
+From: Prabhu Sundararaj <prabhu.sundararaj@freescale.com>
+Date: Tue, 5 Nov 2013 11:03:04 -0600
+Subject: [PATCH] to make compilable
+
+Upstream Status: Inappropriate [workaround]
+
+Signed-off-by: Prabhu Sundararaj <prabhu.sundararaj@freescale.com>
+---
+ src/composite-test-simple-blur.cc | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/composite-test-simple-blur.cc b/src/composite-test-simple-blur.cc
+index 170ad64..d7f77cf 100644
+--- a/src/composite-test-simple-blur.cc
++++ b/src/composite-test-simple-blur.cc
+@@ -347,6 +347,7 @@ CompositeTestSimpleBlur::CompositeTestSimpleBlur() :
+ 
+ CompositeTestSimpleBlur::~CompositeTestSimpleBlur()
+ {
++#if 0
+     for (BlurWindowMapType::iterator winIt = priv_->windowMap.begin();
+          winIt != priv_->windowMap.end();
+          winIt++)
+@@ -354,6 +355,7 @@ CompositeTestSimpleBlur::~CompositeTestSimpleBlur()
+         RenderWindowBlur* ro = winIt->second;
+         delete ro;
+     }
++#endif
+     delete priv_;
+ }
+ 
+-- 
+1.8.1.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/glcompbench/glcompbench_2012.08.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/glcompbench/glcompbench_2012.08.bb
new file mode 100644
index 0000000..d0f4494
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/glcompbench/glcompbench_2012.08.bb
@@ -0,0 +1,16 @@
+SUMMARY = "A benchmark for GL(ES)2 based compositing operations"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949"
+
+DEPENDS = "virtual/libgl virtual/egl virtual/libgles1 virtual/libgles2 \
+           virtual/libx11 libxcomposite pixman libxrender libpng12"
+
+SRC_URI = "https://launchpad.net/glcompbench/trunk/${PV}/+download/${BPN}-${PV}.tar.gz \
+           file://glbench-compile-fix.patch"
+
+SRC_URI[md5sum] = "c939d9156fe940960098f38707fea827"
+SRC_URI[sha256sum] = "b04b738cec06c6786ceafa86e4735fd8b971c078265754854ef356b0379542ee"
+
+inherit pkgconfig waf distro_features_check
+# depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/gphoto2-2.5.8/0001-configure.ac-remove-AM_PO_SUBDIRS.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/gphoto2-2.5.8/0001-configure.ac-remove-AM_PO_SUBDIRS.patch
new file mode 100644
index 0000000..7800fdd
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/gphoto2-2.5.8/0001-configure.ac-remove-AM_PO_SUBDIRS.patch
@@ -0,0 +1,26 @@
+From 60b6d5c95ca3632e02031ac04fb5486dd209011c Mon Sep 17 00:00:00 2001
+From: Andreas Baak <andreas.baak@gmail.com>
+Date: Sun, 12 Jul 2015 01:02:15 -0700
+Subject: [PATCH] configure.ac remove AM_PO_SUBDIRS
+
+This is done twice together with oe autotools.bbclass.
+
+---
+ configure.ac | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index bb5b795..93fbaf2 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -64,7 +64,6 @@ GP_GETTEXT_HACK([],[Lutz Müller and others],[${MAIL_GPHOTO_TRANSLATION}])
+ ALL_LINGUAS="az cs da de en_GB es eu fi fr hu id is it ja nl pa pl pt_BR ro ru rw sk sr sv uk vi zh_CN zh_TW"
+ AM_GNU_GETTEXT_VERSION([0.14.1])
+ AM_GNU_GETTEXT([external])
+-AM_PO_SUBDIRS()
+ AM_ICONV()
+ GP_GETTEXT_FLAGS()
+ 
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/gphoto2-2.5.8/0002-Look-for-popt-with-GP_CHECK_LIBRARY-function.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/gphoto2-2.5.8/0002-Look-for-popt-with-GP_CHECK_LIBRARY-function.patch
new file mode 100644
index 0000000..e6c7dd6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/gphoto2-2.5.8/0002-Look-for-popt-with-GP_CHECK_LIBRARY-function.patch
@@ -0,0 +1,32 @@
+From 884d4c9bbd2dc147d614a5fabc25dbea7a71cd48 Mon Sep 17 00:00:00 2001
+From: Andreas Baak <andreas.baak@gmail.com>
+Date: Sun, 12 Jul 2015 02:13:58 -0700
+Subject: [PATCH] Look for popt with GP_CHECK_LIBRARY function
+
+The previously used proprietary function GP_CHECK_POPT
+defined in /.m4m/gp-check-opt.m4 is not ready for cross
+compilation since it looks for the library and headers
+in the host system. Yocto reports the following error:
+"QA Issue: gphoto2: The compile log indicates that host
+include and/or library paths were used."
+Using the GP_CHECK_LIBRARY function fixes this problem
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 93fbaf2..6d661f0 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -285,7 +285,7 @@ GP_CONFIG_MSG([Text preview support],[$aa_msg])
+ dnl ---------------------------------------------------------------------------
+ dnl popt.h: Simplifies handling of command-line options enormously.
+ dnl ---------------------------------------------------------------------------
+-GP_CHECK_POPT([mandatory])
++GP_CHECK_LIBRARY([POPT], [popt], [], [popt.h], [], [], [mandatory])
+ 
+ 
+ dnl ---------------------------------------------------------------------------
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/gphoto2_2.5.8.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/gphoto2_2.5.8.bb
new file mode 100644
index 0000000..62d283b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/gphoto2_2.5.8.bb
@@ -0,0 +1,22 @@
+SUMMARY = "gphoto2 - a command-line frontend to libgphoto2"
+HOMEPAGE = "http://www.gphoto.com/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+DEPENDS = "libgphoto2 popt readline"
+RDEPENDS_gphoto2 = "libgphoto2"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/gphoto/gphoto2-${PV}.tar.bz2;name=gphoto2 \
+           file://0001-configure.ac-remove-AM_PO_SUBDIRS.patch \
+           file://0002-Look-for-popt-with-GP_CHECK_LIBRARY-function.patch \
+"
+
+SRC_URI[gphoto2.md5sum] = "bae369aee6881e590c5c91bdbb11a5f8"
+SRC_URI[gphoto2.sha256sum] = "a9abcd15d95f205318d17e3ac12af7ce523d2bc4943709d50b0a12c30cc5ee4d"
+
+inherit autotools pkgconfig gettext
+
+EXTRA_OECONF += "--with-jpeg-prefix=${STAGING_INCDIR} \
+                 --without-cdk \
+"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2-2.5.8/0001-configure.ac-remove-AM_PO_SUBDIRS.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2-2.5.8/0001-configure.ac-remove-AM_PO_SUBDIRS.patch
new file mode 100644
index 0000000..8093676
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2-2.5.8/0001-configure.ac-remove-AM_PO_SUBDIRS.patch
@@ -0,0 +1,48 @@
+From 31a5d2f7db18737aef08c34e8707b4f69f7e5156 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Sun, 21 Oct 2012 17:59:20 +0200
+Subject: [PATCH] configure.ac: remove AM_PO_SUBDIRS
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+together with oe autotools.bbclass this is done twice and causes:
+
+| autoreconf: running: aclocal --system-acdir=/home/Superandy/tmp/oe-core-eglibc/work/armv7a-vfp-neon-angstrom-linux-gnueabi/libgphoto2-2.4.11-r2/libgphoto2-2.4.11/aclocal-copy/ --automake-acdir=/home/Superandy/tmp/oe-core-eglibc/sysroots/x86_64-linux/usr/share/aclocal-1.12 -I /home/Superandy/tmp/oe-core-eglibc/work/armv7a-vfp-neon-angstrom-linux-gnueabi/libgphoto2-2.4.11-r2/libgphoto2-2.4.11/auto-m4/ -I /home/Superandy/tmp/oe-core-eglibc/work/armv7a-vfp-neon-angstrom-linux-gnueabi/libgphoto2-2.4.11-r2/libgphoto2-2.4.11/m4m/ -I /home/Superandy/tmp/oe-core-eglibc/work/armv7a-vfp-neon-angstrom-linux-gnueabi/libgphoto2-2.4.11-r2/libgphoto2-2.4.11/auto-m4/ -I /home/Superandy/tmp/oe-core-eglibc/work/armv7a-vfp-neon-angstrom-linux-gnueabi/libgphoto2-2.4.11-r2/libgphoto2-2.4.11/m4m/ --force -I auto-m4 -I m4m
+| configure.ac:230: error: `po-directories' is already registered with AC_CONFIG_COMMANDS.
+
+Upstream-Status: Inapropriate [configuration]
+
+Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+---
+ configure.ac                 |    1 -
+ libgphoto2_port/configure.ac |    1 -
+ 2 files changed, 0 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 2f8e1b8..2e90acf 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -209,7 +209,6 @@ ALL_LINGUAS="cs da de es eu fr hu it ja nl pl ru sv uk vi zh_CN"
+ GP_GETTEXT_HACK([${PACKAGE}-${LIBGPHOTO2_CURRENT_MIN}],[The gPhoto Team],[${MAIL_GPHOTO_TRANSLATION}])
+ AM_GNU_GETTEXT_VERSION([0.14.1])
+ AM_GNU_GETTEXT([external])
+-AM_PO_SUBDIRS()
+ AM_ICONV()
+ GP_GETTEXT_FLAGS()
+ 
+diff --git a/libgphoto2_port/configure.ac b/libgphoto2_port/configure.ac
+index 0b66d58..df47357 100644
+--- a/libgphoto2_port/configure.ac
++++ b/libgphoto2_port/configure.ac
+@@ -124,7 +124,6 @@ GP_GETTEXT_HACK([${PACKAGE}-${LIBGPHOTO2_PORT_CURRENT_MIN}],[Lutz Mueller and ot
+ ALL_LINGUAS="cs da de es eu fi fr it ja nl pl pt_BR ru sk sr sv uk vi zh_CN zh_TW"
+ AM_GNU_GETTEXT_VERSION([0.14.1])
+ AM_GNU_GETTEXT([external])
+-AM_PO_SUBDIRS()
+ AM_ICONV()
+ GP_GETTEXT_FLAGS()
+ 
+-- 
+1.7.4.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2-2.5.8/10-camera-libgphoto2-device.fdi b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2-2.5.8/10-camera-libgphoto2-device.fdi
new file mode 100644
index 0000000..3977064
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2-2.5.8/10-camera-libgphoto2-device.fdi
@@ -0,0 +1,9533 @@
+<?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- -->
+<!-- This file was generated by libgphoto2 print-camera-list - - fdi-device -->
+<!--+
+    | Created from this library:
+    |   libgphoto2      2.5.8          all camlibs, gcc, ltdl, no EXIF
+    |   libgphoto2_port 0.12.0         gcc, ltdl, no USB, serial without locking
+    +-->
+<deviceinfo version="0.2">
+ <device>
+  <match key="info.subsystem" string="usb">
+   <match key="usb_device.vendor_id" int="2425">
+    <match key="usb_device.product_id" int="551">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1282">
+    <match key="usb_device.product_id" int="13251">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1282">
+    <match key="usb_device.product_id" int="13252">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1282">
+    <match key="usb_device.product_id" int="13891">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1282">
+    <match key="usb_device.product_id" int="13628">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1282">
+    <match key="usb_device.product_id" int="13869">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1282">
+    <match key="usb_device.product_id" int="13702">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1282">
+    <match key="usb_device.product_id" int="13128">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1282">
+    <match key="usb_device.product_id" int="13129">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1282">
+    <match key="usb_device.product_id" int="13130">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1282">
+    <match key="usb_device.product_id" int="13272">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1282">
+    <match key="usb_device.product_id" int="13180">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1282">
+    <match key="usb_device.product_id" int="13181">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1282">
+    <match key="usb_device.product_id" int="13259">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1282">
+    <match key="usb_device.product_id" int="13093">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1282">
+    <match key="usb_device.product_id" int="13121">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1282">
+    <match key="usb_device.product_id" int="13124">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1282">
+    <match key="usb_device.product_id" int="13125">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1282">
+    <match key="usb_device.product_id" int="13193">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1282">
+    <match key="usb_device.product_id" int="13194">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1282">
+    <match key="usb_device.product_id" int="13176">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1282">
+    <match key="usb_device.product_id" int="13588">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1282">
+    <match key="usb_device.product_id" int="13736">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1282">
+    <match key="usb_device.product_id" int="13892">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1282">
+    <match key="usb_device.product_id" int="14117">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1282">
+    <match key="usb_device.product_id" int="13833">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1282">
+    <match key="usb_device.product_id" int="13427">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1282">
+    <match key="usb_device.product_id" int="13663">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1282">
+    <match key="usb_device.product_id" int="13911">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1282">
+    <match key="usb_device.product_id" int="13226">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1282">
+    <match key="usb_device.product_id" int="13796">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1282">
+    <match key="usb_device.product_id" int="13853">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="5845">
+    <match key="usb_device.product_id" int="32774">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="5845">
+    <match key="usb_device.product_id" int="32773">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1363">
+    <match key="usb_device.product_id" int="514">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1725">
+    <match key="usb_device.product_id" int="1027">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1725">
+    <match key="usb_device.product_id" int="1028">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1276">
+    <match key="usb_device.product_id" int="20555">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1363">
+    <match key="usb_device.product_id" int="514">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1276">
+    <match key="usb_device.product_id" int="20554">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1363">
+    <match key="usb_device.product_id" int="514">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2250">
+    <match key="usb_device.product_id" int="273">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1276">
+    <match key="usb_device.product_id" int="20554">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1276">
+    <match key="usb_device.product_id" int="20555">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="7099">
+    <match key="usb_device.product_id" int="360">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="7099">
+    <match key="usb_device.product_id" int="8200">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="7099">
+    <match key="usb_device.product_id" int="3074">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="7099">
+    <match key="usb_device.product_id" int="40974">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="7099">
+    <match key="usb_device.product_id" int="61443">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="7099">
+    <match key="usb_device.product_id" int="36941">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="7099">
+    <match key="usb_device.product_id" int="359">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2425">
+    <match key="usb_device.product_id" int="551">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6473">
+    <match key="usb_device.product_id" int="2048">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6473">
+    <match key="usb_device.product_id" int="7">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6473">
+    <match key="usb_device.product_id" int="8">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6473">
+    <match key="usb_device.product_id" int="10">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6473">
+    <match key="usb_device.product_id" int="12">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6473">
+    <match key="usb_device.product_id" int="18">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6473">
+    <match key="usb_device.product_id" int="11">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6473">
+    <match key="usb_device.product_id" int="13">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6473">
+    <match key="usb_device.product_id" int="5">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6473">
+    <match key="usb_device.product_id" int="242">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2425">
+    <match key="usb_device.product_id" int="548">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1452">
+    <match key="usb_device.product_id" int="4762">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1452">
+    <match key="usb_device.product_id" int="4779">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1452">
+    <match key="usb_device.product_id" int="4752">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1452">
+    <match key="usb_device.product_id" int="4754">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1452">
+    <match key="usb_device.product_id" int="4756">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1452">
+    <match key="usb_device.product_id" int="4759">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1452">
+    <match key="usb_device.product_id" int="4768">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1452">
+    <match key="usb_device.product_id" int="4776">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1452">
+    <match key="usb_device.product_id" int="4753">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1452">
+    <match key="usb_device.product_id" int="4755">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1452">
+    <match key="usb_device.product_id" int="4761">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="20488">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="20489">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="16386">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="5416">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="5417">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="5433">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="5432">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="5305">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="5448">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="4618">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="4893">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="4620">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="4865">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="4867">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="4881">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="4897">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="12787">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="4913">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="4915">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="12841">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="4871">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="8200">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="4951">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="4945">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="4873">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="4875">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="4883">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="4885">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="4917">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="4877">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="4879">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="4889">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="5359">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="5480">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="5481">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="5311">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="5400">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="5384">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="5385">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="5293">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="5274">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="5227">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="5214">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="5208">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="12715">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="4615">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="4929">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="4891">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3705">
+    <match key="usb_device.product_id" int="4616">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2425">
+    <match key="usb_device.product_id" int="551">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1363">
+    <match key="usb_device.product_id" int="514">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="37152">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2362">
+    <match key="usb_device.product_id" int="271">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2362">
+    <match key="usb_device.product_id" int="271">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="37180">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2329">
+    <match key="usb_device.product_id" int="256">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2425">
+    <match key="usb_device.product_id" int="551">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2362">
+    <match key="usb_device.product_id" int="271">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2425">
+    <match key="usb_device.product_id" int="551">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="36956">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="23055">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="19680">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="19681">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="20815">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="30579">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="21519">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="21535">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="21775">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="21760">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="19664">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="19665">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="21023">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="21007">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="19648">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="19649">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="21600">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="21608">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="21504">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="21520">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="21521">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="21606">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="30578">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="21766">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="21857">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="20992">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="20993">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="21008">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="21009">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="21012">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="21024">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="21025">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="21040">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="21041">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="19968">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="19969">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="19983">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="19999">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="19712">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="19713">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="19584">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="19585">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="19600">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="19601">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="19616">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="19617">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="22047">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="24322">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="22543">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="22559">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="21632">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="21633">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="30593">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="21648">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2821">
+    <match key="usb_device.product_id" int="21649">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="36945">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8320">
+    <match key="usb_device.product_id" int="6">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8320">
+    <match key="usb_device.product_id" int="5">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1189">
+    <match key="usb_device.product_id" int="12291">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="7493">
+    <match key="usb_device.product_id" int="17821">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10823">
+    <match key="usb_device.product_id" int="32528">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10823">
+    <match key="usb_device.product_id" int="8200">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10823">
+    <match key="usb_device.product_id" int="3074">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12359">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12738">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12733">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12774">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12787">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12904">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12480">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12365">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12791">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12390">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12479">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12405">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12474">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12558">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12468">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12543">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12572">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12542">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12623">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12530">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12622">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12566">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12676">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12569">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12660">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12598">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12640">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12660">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12565">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12740">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12619">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12639">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12659">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12691">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12737">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12443">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12443">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12484">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12402">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12470">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12532">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12370">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12389">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12400">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12401">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12529">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12526">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12394">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12424">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12423">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12453">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12667">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12912">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12419">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12476">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12823">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12927">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12522">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12615">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12752">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12825">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12523">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12524">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12420">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12441">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12563">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12527">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12526">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12526">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12560">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12614">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12613">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12751">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12699">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12778">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12545">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12546">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12697">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12858">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12824">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12821">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12859">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12880">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12914">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12883">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12698">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12911">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12356">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12384">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12420">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12441">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12560">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12420">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12441">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12526">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12560">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12613">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12751">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12861">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12953">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12751">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12613">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12430">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12865">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12969">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12837">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12774">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12691">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12358">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12363">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12484">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12395">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12438">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12412">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12410">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12448">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12438">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12430">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12417">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12416">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12457">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12395">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12429">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12418">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12415">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12416">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12395">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12438">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12457">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12549">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12430">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12367">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12385">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12686">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12739">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12862">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12900">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12366">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12386">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12689">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12734">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12842">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12874">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12873">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12913">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12898">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12377">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12406">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12786">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12472">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12785">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12897">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12376">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12471">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12867">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12537">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12559">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12536">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12629">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12617">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12666">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12735">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12783">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12482">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12481">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12582">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12571">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12624">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12621">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12620">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12663">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12662">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12404">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12541">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12540">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12602">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12601">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12635">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12403">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12567">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12600">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12637">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12469">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12442">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12838">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12863">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12473">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12475">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12732">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12936">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12937">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12360">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12851">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12687">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12767">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12888">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12373">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12398">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12399">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12421">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12467">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12581">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12634">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12443">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12361">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12444">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12353">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12854">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12357">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12369">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12891">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12917">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12528">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12355">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12389">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12400">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12401">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12570">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12375">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12364">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12390">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12374">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12405">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12474">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12396">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12397">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12616">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12407">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12468">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12466">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12465">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12538">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12818">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12443">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12402">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12623">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12470">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12676">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12740">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12788">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12484">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12480">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12599">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12529">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12543">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12530">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12572">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12542">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12569">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12622">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12661">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12738">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12660">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12619">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12694">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12565">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12774">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12737">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12691">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12685">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12638">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12690">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12768">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12817">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12852">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12890">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12918">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12772">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12736">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12790">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12844">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12840">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12869">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12868">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12895">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12856">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12892">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12919">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12955">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12368">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12380">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12778">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12823">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12859">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1193">
+    <match key="usb_device.product_id" int="12408">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1999">
+    <match key="usb_device.product_id" int="4169">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1999">
+    <match key="usb_device.product_id" int="4162">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1999">
+    <match key="usb_device.product_id" int="4173">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1999">
+    <match key="usb_device.product_id" int="4172">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1999">
+    <match key="usb_device.product_id" int="4474">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1375">
+    <match key="usb_device.product_id" int="49664">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1207">
+    <match key="usb_device.product_id" int="34985">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="37152">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="36956">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1363">
+    <match key="usb_device.product_id" int="514">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1363">
+    <match key="usb_device.product_id" int="4098">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1363">
+    <match key="usb_device.product_id" int="514">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1943">
+    <match key="usb_device.product_id" int="32769">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2425">
+    <match key="usb_device.product_id" int="548">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="36956">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="7796">
+    <match key="usb_device.product_id" int="25874">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="7763">
+    <match key="usb_device.product_id" int="5">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="37152">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="37152">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3478">
+    <match key="usb_device.product_id" int="16640">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1000">
+    <match key="usb_device.product_id" int="8578">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1000">
+    <match key="usb_device.product_id" int="8576">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2329">
+    <match key="usb_device.product_id" int="256">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3617">
+    <match key="usb_device.product_id" int="2386">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3617">
+    <match key="usb_device.product_id" int="1809">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3617">
+    <match key="usb_device.product_id" int="1873">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3617">
+    <match key="usb_device.product_id" int="2321">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3617">
+    <match key="usb_device.product_id" int="2369">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3617">
+    <match key="usb_device.product_id" int="2049">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3617">
+    <match key="usb_device.product_id" int="2161">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3617">
+    <match key="usb_device.product_id" int="2193">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3617">
+    <match key="usb_device.product_id" int="2145">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3617">
+    <match key="usb_device.product_id" int="2177">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3617">
+    <match key="usb_device.product_id" int="2337">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3617">
+    <match key="usb_device.product_id" int="2305">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3617">
+    <match key="usb_device.product_id" int="1793">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3617">
+    <match key="usb_device.product_id" int="1889">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3617">
+    <match key="usb_device.product_id" int="2353">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1054">
+    <match key="usb_device.product_id" int="16406">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1054">
+    <match key="usb_device.product_id" int="16391">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1054">
+    <match key="usb_device.product_id" int="16394">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1054">
+    <match key="usb_device.product_id" int="16402">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1054">
+    <match key="usb_device.product_id" int="16395">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1054">
+    <match key="usb_device.product_id" int="16403">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1054">
+    <match key="usb_device.product_id" int="16675">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1054">
+    <match key="usb_device.product_id" int="16727">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1054">
+    <match key="usb_device.product_id" int="16688">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1054">
+    <match key="usb_device.product_id" int="16700">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1054">
+    <match key="usb_device.product_id" int="16691">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1054">
+    <match key="usb_device.product_id" int="16737">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1054">
+    <match key="usb_device.product_id" int="16695">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1054">
+    <match key="usb_device.product_id" int="16701">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1054">
+    <match key="usb_device.product_id" int="16689">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1054">
+    <match key="usb_device.product_id" int="16720">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1054">
+    <match key="usb_device.product_id" int="16728">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1054">
+    <match key="usb_device.product_id" int="16722">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1054">
+    <match key="usb_device.product_id" int="16671">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1054">
+    <match key="usb_device.product_id" int="16723">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1054">
+    <match key="usb_device.product_id" int="16702">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1054">
+    <match key="usb_device.product_id" int="16721">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1054">
+    <match key="usb_device.product_id" int="16738">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1054">
+    <match key="usb_device.product_id" int="16745">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1054">
+    <match key="usb_device.product_id" int="16680">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4204">
+    <match key="usb_device.product_id" int="12821">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2125">
+    <match key="usb_device.product_id" int="3">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3428">
+    <match key="usb_device.product_id" int="4129">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1000">
+    <match key="usb_device.product_id" int="8496">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="36956">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="37152">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3141">
+    <match key="usb_device.product_id" int="32768">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1054">
+    <match key="usb_device.product_id" int="16690">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1054">
+    <match key="usb_device.product_id" int="16687">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="16700">
+    <match key="usb_device.product_id" int="45323">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="16700">
+    <match key="usb_device.product_id" int="45338">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="16700">
+    <match key="usb_device.product_id" int="45339">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="16700">
+    <match key="usb_device.product_id" int="17664">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="36956">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="7994">
+    <match key="usb_device.product_id" int="3074">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2362">
+    <match key="usb_device.product_id" int="270">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2425">
+    <match key="usb_device.product_id" int="551">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1498">
+    <match key="usb_device.product_id" int="4120">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1363">
+    <match key="usb_device.product_id" int="514">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2329">
+    <match key="usb_device.product_id" int="256">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1363">
+    <match key="usb_device.product_id" int="514">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4483">
+    <match key="usb_device.product_id" int="1">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1498">
+    <match key="usb_device.product_id" int="4128">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1363">
+    <match key="usb_device.product_id" int="514">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1363">
+    <match key="usb_device.product_id" int="514">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2726">
+    <match key="usb_device.product_id" int="24609">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="36944">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="36946">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4310">
+    <match key="usb_device.product_id" int="8704">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2362">
+    <match key="usb_device.product_id" int="270">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2362">
+    <match key="usb_device.product_id" int="271">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1208">
+    <match key="usb_device.product_id" int="1027">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1208">
+    <match key="usb_device.product_id" int="1026">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10608">
+    <match key="usb_device.product_id" int="8200">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10608">
+    <match key="usb_device.product_id" int="3074">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6018">
+    <match key="usb_device.product_id" int="16385">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1747">
+    <match key="usb_device.product_id" int="8634">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3530">
+    <match key="usb_device.product_id" int="2">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3530">
+    <match key="usb_device.product_id" int="2">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="330">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="466">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="454">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="467">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="539">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="403">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="480">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="448">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="484">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="411">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="449">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="453">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="468">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="486">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="506">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="526">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="557">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="625">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="592">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="477">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="475">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="495">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="512">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="488">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="521">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="576">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="637">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="613">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="664">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="452">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="471">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="447">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="322">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="399">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="668">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="563">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="622">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="611">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="678">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="648">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="472">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="513">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="525">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="510">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="693">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1363">
+    <match key="usb_device.product_id" int="514">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1227">
+    <match key="usb_device.product_id" int="451">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2329">
+    <match key="usb_device.product_id" int="256">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1221">
+    <match key="usb_device.product_id" int="4416">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1221">
+    <match key="usb_device.product_id" int="4923">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2334">
+    <match key="usb_device.product_id" int="9605">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="37152">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2329">
+    <match key="usb_device.product_id" int="256">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1112">
+    <match key="usb_device.product_id" int="28677">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1037">
+    <match key="usb_device.product_id" int="34908">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1044">
+    <match key="usb_device.product_id" int="8200">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1044">
+    <match key="usb_device.product_id" int="3074">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2425">
+    <match key="usb_device.product_id" int="551">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2425">
+    <match key="usb_device.product_id" int="551">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="37152">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6353">
+    <match key="usb_device.product_id" int="7">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6353">
+    <match key="usb_device.product_id" int="6">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6353">
+    <match key="usb_device.product_id" int="20033">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6353">
+    <match key="usb_device.product_id" int="20034">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6353">
+    <match key="usb_device.product_id" int="19983">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6353">
+    <match key="usb_device.product_id" int="19712">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6353">
+    <match key="usb_device.product_id" int="11522">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6353">
+    <match key="usb_device.product_id" int="29706">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6353">
+    <match key="usb_device.product_id" int="53514">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6353">
+    <match key="usb_device.product_id" int="53513">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6353">
+    <match key="usb_device.product_id" int="20193">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6353">
+    <match key="usb_device.product_id" int="20194">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6353">
+    <match key="usb_device.product_id" int="45066">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6353">
+    <match key="usb_device.product_id" int="28840">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6353">
+    <match key="usb_device.product_id" int="20005">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6353">
+    <match key="usb_device.product_id" int="20006">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6353">
+    <match key="usb_device.product_id" int="1459">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6353">
+    <match key="usb_device.product_id" int="28930">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6353">
+    <match key="usb_device.product_id" int="20197">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="9842">
+    <match key="usb_device.product_id" int="17">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1943">
+    <match key="usb_device.product_id" int="32796">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="37152">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4866">
+    <match key="usb_device.product_id" int="4118">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4866">
+    <match key="usb_device.product_id" int="4119">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2362">
+    <match key="usb_device.product_id" int="270">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1363">
+    <match key="usb_device.product_id" int="514">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="32285">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="23837">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="23581">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4251">
+    <match key="usb_device.product_id" int="37126">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4251">
+    <match key="usb_device.product_id" int="37129">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4251">
+    <match key="usb_device.product_id" int="37125">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="25858">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="25090">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="31746">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="32002">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="25346">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="26114">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="29698">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="30722">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="29186">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="28162">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="30978">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="27906">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="25346">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="16642">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="26626">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="28930">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="27394">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="25602">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="30210">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="26370">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="27650">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="27138">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="16898">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="30466">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="32258">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="17154">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="16642">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="17410">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="17666">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="16642">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="24578">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="61443">
+    <match key="usb_device.product_id" int="24578">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="35586">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="35842">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="29954">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="31490">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="29442">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="31234">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="32770">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="33026">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="33282">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="39682">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="33794">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="34050">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="38402">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="38658">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="34562">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1008">
+    <match key="usb_device.product_id" int="34818">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="26716">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="26720">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="3074">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="8200">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="3782">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="3773">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="3583">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="3219">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="3240">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="3582">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="3556">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="1533">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="3541">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="3633">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="3634">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="3573">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="1966">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="3546">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="3985">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="3940">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="3939">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="3975">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="3935">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="3936">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="3562">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="3538">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="1994">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="3877">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="1562">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="4020">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="4021">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="1995">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="2009">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="3308">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="3576">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="3577">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="3578">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="3579">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="3580">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="3581">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="2008">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="8210">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="1547">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="3533">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="61642">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="2977">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2996">
+    <match key="usb_device.product_id" int="2978">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4817">
+    <match key="usb_device.product_id" int="4226">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4817">
+    <match key="usb_device.product_id" int="13839">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4817">
+    <match key="usb_device.product_id" int="13855">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4817">
+    <match key="usb_device.product_id" int="4177">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4817">
+    <match key="usb_device.product_id" int="4178">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="37203">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="37152">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1161">
+    <match key="usb_device.product_id" int="49189">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2362">
+    <match key="usb_device.product_id" int="270">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6655">
+    <match key="usb_device.product_id" int="771">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6655">
+    <match key="usb_device.product_id" int="777">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6655">
+    <match key="usb_device.product_id" int="775">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="32903">
+    <match key="usb_device.product_id" int="2655">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="32903">
+    <match key="usb_device.product_id" int="2581">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="32903">
+    <match key="usb_device.product_id" int="2582">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="32902">
+    <match key="usb_device.product_id" int="1584">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="32903">
+    <match key="usb_device.product_id" int="2654">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="32903">
+    <match key="usb_device.product_id" int="2555">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1363">
+    <match key="usb_device.product_id" int="514">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2362">
+    <match key="usb_device.product_id" int="271">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="16642">
+    <match key="usb_device.product_id" int="4394">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="16642">
+    <match key="usb_device.product_id" int="4390">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="16642">
+    <match key="usb_device.product_id" int="4417">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="16642">
+    <match key="usb_device.product_id" int="4418">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="16642">
+    <match key="usb_device.product_id" int="4434">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="16642">
+    <match key="usb_device.product_id" int="4455">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="16642">
+    <match key="usb_device.product_id" int="4433">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="16642">
+    <match key="usb_device.product_id" int="8449">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="16642">
+    <match key="usb_device.product_id" int="8453">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="16642">
+    <match key="usb_device.product_id" int="8450">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4102">
+    <match key="usb_device.product_id" int="12292">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="16642">
+    <match key="usb_device.product_id" int="4104">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="16642">
+    <match key="usb_device.product_id" int="4386">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4102">
+    <match key="usb_device.product_id" int="16386">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4102">
+    <match key="usb_device.product_id" int="16387">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="16642">
+    <match key="usb_device.product_id" int="4423">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="16642">
+    <match key="usb_device.product_id" int="4371">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="16642">
+    <match key="usb_device.product_id" int="4384">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="16642">
+    <match key="usb_device.product_id" int="4375">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="16642">
+    <match key="usb_device.product_id" int="4373">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="16642">
+    <match key="usb_device.product_id" int="4372">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="16642">
+    <match key="usb_device.product_id" int="4376">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="16642">
+    <match key="usb_device.product_id" int="4377">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="16642">
+    <match key="usb_device.product_id" int="4435">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="16642">
+    <match key="usb_device.product_id" int="4404">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4162">
+    <match key="usb_device.product_id" int="4419">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="7784">
+    <match key="usb_device.product_id" int="4098">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="16642">
+    <match key="usb_device.product_id" int="4374">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="16642">
+    <match key="usb_device.product_id" int="4402">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2848">
+    <match key="usb_device.product_id" int="56814">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1924">
+    <match key="usb_device.product_id" int="256">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2425">
+    <match key="usb_device.product_id" int="551">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="36956">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2425">
+    <match key="usb_device.product_id" int="551">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3478">
+    <match key="usb_device.product_id" int="13056">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3478">
+    <match key="usb_device.product_id" int="16640">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1498">
+    <match key="usb_device.product_id" int="4102">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3478">
+    <match key="usb_device.product_id" int="0">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="37152">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10545">
+    <match key="usb_device.product_id" int="2561">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10545">
+    <match key="usb_device.product_id" int="2565">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1265">
+    <match key="usb_device.product_id" int="24837">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2126">
+    <match key="usb_device.product_id" int="1">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2856">
+    <match key="usb_device.product_id" int="4108">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8759">
+    <match key="usb_device.product_id" int="53512">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8759">
+    <match key="usb_device.product_id" int="53513">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8759">
+    <match key="usb_device.product_id" int="45320">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1559">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1547">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1406">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1418">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1420">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1421">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1417">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1450">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1434">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1442">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1463">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1466">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1447">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1455">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1454">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1475">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1449">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1478">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1436">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1376">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1376">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1333">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1382">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1382">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1396">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1395">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1393">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1412">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1401">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1400">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1400">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1402">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1403">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1414">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1404">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="256">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="288">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="289">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="272">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="273">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="304">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="274">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="306">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="352">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="305">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1317">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1280">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1296">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1328">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="368">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1365">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1398">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1360">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1392">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1394">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1397">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1405">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1407">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1399">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="768">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1344">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1384">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1385">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1381">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1383">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1486">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1536">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1439">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1473">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1453">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1413">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1024">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1426">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1427">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1422">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1423">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1425">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1440">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1452">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1451">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1464">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1437">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1438">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1415">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1459">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1460">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1408">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1416">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1027">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1461">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1429">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1487">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1485">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1034">
+    <match key="usb_device.product_id" int="1472">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1224">
+    <match key="usb_device.product_id" int="1826">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4907">
+    <match key="usb_device.product_id" int="1">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4907">
+    <match key="usb_device.product_id" int="25">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4907">
+    <match key="usb_device.product_id" int="9">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4907">
+    <match key="usb_device.product_id" int="7">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4907">
+    <match key="usb_device.product_id" int="24">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4907">
+    <match key="usb_device.product_id" int="34">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="7994">
+    <match key="usb_device.product_id" int="4102">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1154">
+    <match key="usb_device.product_id" int="2425">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1154">
+    <match key="usb_device.product_id" int="2064">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1154">
+    <match key="usb_device.product_id" int="1393">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1154">
+    <match key="usb_device.product_id" int="1434">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="36945">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1242">
+    <match key="usb_device.product_id" int="9077">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6808">
+    <match key="usb_device.product_id" int="2">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6127">
+    <match key="usb_device.product_id" int="30519">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6127">
+    <match key="usb_device.product_id" int="30507">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6127">
+    <match key="usb_device.product_id" int="29848">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6127">
+    <match key="usb_device.product_id" int="30140">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6127">
+    <match key="usb_device.product_id" int="30142">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6127">
+    <match key="usb_device.product_id" int="30018">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6127">
+    <match key="usb_device.product_id" int="30077">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6127">
+    <match key="usb_device.product_id" int="30440">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6127">
+    <match key="usb_device.product_id" int="29706">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6127">
+    <match key="usb_device.product_id" int="30851">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6127">
+    <match key="usb_device.product_id" int="30133">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6127">
+    <match key="usb_device.product_id" int="30554">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6127">
+    <match key="usb_device.product_id" int="29900">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6127">
+    <match key="usb_device.product_id" int="3074">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6127">
+    <match key="usb_device.product_id" int="29847">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6127">
+    <match key="usb_device.product_id" int="29862">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6127">
+    <match key="usb_device.product_id" int="29944">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6127">
+    <match key="usb_device.product_id" int="30488">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6127">
+    <match key="usb_device.product_id" int="29724">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6127">
+    <match key="usb_device.product_id" int="30450">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6127">
+    <match key="usb_device.product_id" int="30698">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6127">
+    <match key="usb_device.product_id" int="30463">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6127">
+    <match key="usb_device.product_id" int="30641">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4100">
+    <match key="usb_device.product_id" int="25073">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4100">
+    <match key="usb_device.product_id" int="25081">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4100">
+    <match key="usb_device.product_id" int="25215">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4100">
+    <match key="usb_device.product_id" int="25198">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4100">
+    <match key="usb_device.product_id" int="24859">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4100">
+    <match key="usb_device.product_id" int="24719">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4100">
+    <match key="usb_device.product_id" int="24882">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4100">
+    <match key="usb_device.product_id" int="25406">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4100">
+    <match key="usb_device.product_id" int="25145">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4100">
+    <match key="usb_device.product_id" int="25149">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4100">
+    <match key="usb_device.product_id" int="25116">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4100">
+    <match key="usb_device.product_id" int="25125">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4100">
+    <match key="usb_device.product_id" int="24986">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1086">
+    <match key="usb_device.product_id" int="28736">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1086">
+    <match key="usb_device.product_id" int="28849">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4100">
+    <match key="usb_device.product_id" int="25372">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4100">
+    <match key="usb_device.product_id" int="25189">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4100">
+    <match key="usb_device.product_id" int="24592">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4100">
+    <match key="usb_device.product_id" int="24581">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3478">
+    <match key="usb_device.product_id" int="16640">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="5073">
+    <match key="usb_device.product_id" int="28674">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1133">
+    <match key="usb_device.product_id" int="2304">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1133">
+    <match key="usb_device.product_id" int="2384">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3478">
+    <match key="usb_device.product_id" int="16640">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3478">
+    <match key="usb_device.product_id" int="13056">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="37152">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1276">
+    <match key="usb_device.product_id" int="20555">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1647">
+    <match key="usb_device.product_id" int="33900">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2329">
+    <match key="usb_device.product_id" int="256">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3725">
+    <match key="usb_device.product_id" int="80">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1032">
+    <match key="usb_device.product_id" int="45066">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6127">
+    <match key="usb_device.product_id" int="29827">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1276">
+    <match key="usb_device.product_id" int="20554">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3478">
+    <match key="usb_device.product_id" int="16640">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1482">
+    <match key="usb_device.product_id" int="8709">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3478">
+    <match key="usb_device.product_id" int="16642">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1647">
+    <match key="usb_device.product_id" int="34128">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1647">
+    <match key="usb_device.product_id" int="34184">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1032">
+    <match key="usb_device.product_id" int="45065">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4721">
+    <match key="usb_device.product_id" int="8210">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8222">
+    <match key="usb_device.product_id" int="17067">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10821">
+    <match key="usb_device.product_id" int="8200">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10821">
+    <match key="usb_device.product_id" int="3074">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4310">
+    <match key="usb_device.product_id" int="8960">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3504">
+    <match key="usb_device.product_id" int="21874">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1363">
+    <match key="usb_device.product_id" int="514">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1118">
+    <match key="usb_device.product_id" int="1600">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1118">
+    <match key="usb_device.product_id" int="1570">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1118">
+    <match key="usb_device.product_id" int="1260">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1118">
+    <match key="usb_device.product_id" int="1808">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1118">
+    <match key="usb_device.product_id" int="1598">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1118">
+    <match key="usb_device.product_id" int="61642">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1118">
+    <match key="usb_device.product_id" int="201">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1118">
+    <match key="usb_device.product_id" int="1601">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3141">
+    <match key="usb_device.product_id" int="32776">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2125">
+    <match key="usb_device.product_id" int="3">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="37152">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="37152">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8888">
+    <match key="usb_device.product_id" int="24778">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8888">
+    <match key="usb_device.product_id" int="28808">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8888">
+    <match key="usb_device.product_id" int="25807">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8888">
+    <match key="usb_device.product_id" int="11826">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8888">
+    <match key="usb_device.product_id" int="11827">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8888">
+    <match key="usb_device.product_id" int="11879">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8888">
+    <match key="usb_device.product_id" int="11941">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8888">
+    <match key="usb_device.product_id" int="11944">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8888">
+    <match key="usb_device.product_id" int="11880">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8888">
+    <match key="usb_device.product_id" int="16854">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8888">
+    <match key="usb_device.product_id" int="16858">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8888">
+    <match key="usb_device.product_id" int="17063">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8888">
+    <match key="usb_device.product_id" int="17279">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8888">
+    <match key="usb_device.product_id" int="17267">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8888">
+    <match key="usb_device.product_id" int="18449">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8888">
+    <match key="usb_device.product_id" int="16860">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8888">
+    <match key="usb_device.product_id" int="28874">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8888">
+    <match key="usb_device.product_id" int="11894">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8888">
+    <match key="usb_device.product_id" int="11906">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8888">
+    <match key="usb_device.product_id" int="11908">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8888">
+    <match key="usb_device.product_id" int="11874">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8888">
+    <match key="usb_device.product_id" int="11875">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8888">
+    <match key="usb_device.product_id" int="11878">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8888">
+    <match key="usb_device.product_id" int="25619">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8888">
+    <match key="usb_device.product_id" int="25781">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8888">
+    <match key="usb_device.product_id" int="25782">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8888">
+    <match key="usb_device.product_id" int="11856">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8888">
+    <match key="usb_device.product_id" int="11857">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8888">
+    <match key="usb_device.product_id" int="25621">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8888">
+    <match key="usb_device.product_id" int="10853">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8888">
+    <match key="usb_device.product_id" int="28835">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8888">
+    <match key="usb_device.product_id" int="28840">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8888">
+    <match key="usb_device.product_id" int="28841">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8888">
+    <match key="usb_device.product_id" int="17169">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8888">
+    <match key="usb_device.product_id" int="17158">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8888">
+    <match key="usb_device.product_id" int="16847">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8888">
+    <match key="usb_device.product_id" int="28941">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8888">
+    <match key="usb_device.product_id" int="28942">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8888">
+    <match key="usb_device.product_id" int="17250">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1375">
+    <match key="usb_device.product_id" int="49664">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1375">
+    <match key="usb_device.product_id" int="41808">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1375">
+    <match key="usb_device.product_id" int="49696">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1375">
+    <match key="usb_device.product_id" int="50208">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1375">
+    <match key="usb_device.product_id" int="50464">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2726">
+    <match key="usb_device.product_id" int="38401">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1033">
+    <match key="usb_device.product_id" int="806">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1033">
+    <match key="usb_device.product_id" int="1074">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1033">
+    <match key="usb_device.product_id" int="578">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1026">
+    <match key="usb_device.product_id" int="22120">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="36956">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="770">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="279">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="290">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="291">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="265">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="277">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="289">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="273">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="285">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="301">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="516">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="271">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="267">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="304">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="305">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="297">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="275">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="518">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="281">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="302">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="269">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="309">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="313">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="311">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="287">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="259">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="295">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="274">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="401">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="258">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="550">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="392">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="520">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="779">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="777">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="382">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="351">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="389">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="789">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="792">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="791">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="804">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="835">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="773">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="402">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="320">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="381">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="322">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="545">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="551">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="524">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="361">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="388">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="347">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="547">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="355">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="552">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="785">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="367">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="383">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="395">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="549">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="553">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="363">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="364">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="371">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="823">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="838">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="334">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="353">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="375">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="376">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="801">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="813">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="831">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="795">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="800">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="820">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="810">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="324">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="809">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="349">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="544">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="334">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="369">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="542">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="540">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="343">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="543">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="546">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="390">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="403">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="843">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="514">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1028">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1036">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1032">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1052">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1034">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1026">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1040">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1046">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1050">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1060">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1061">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1063">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1068">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1075">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1062">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1056">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1067">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1044">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1048">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1077">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1059">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1065">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1071">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1073">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1054">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1069">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1076">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1030">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1058">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1064">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1038">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1072">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1079">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1042">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1066">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1070">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1078">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1057">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1538">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1539">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1541">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1545">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1542">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1537">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1200">
+    <match key="usb_device.product_id" int="1540">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1276">
+    <match key="usb_device.product_id" int="20554">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2425">
+    <match key="usb_device.product_id" int="548">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="705">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="101">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="95">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="1122">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="494">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="521">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="1214">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="738">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="1210">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="108">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="234">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="1150">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="553">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="1204">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="340">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="341">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="345">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="46">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="152">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="141">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="60">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="663">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="1491">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="1426">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="961">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="973">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="463">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="815">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="377">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="229">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="820">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="821">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="228">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="417">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="545">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="1788">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="1638">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="1633">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="1316">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="1160">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="1233">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="1249">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="121">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="390">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="766">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="770">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="1265">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="10">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="116">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="146">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="1306">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="1157">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="1144">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="1253">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="1263">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="110">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="978">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="57">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="501">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="619">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="500">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="628">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1057">
+    <match key="usb_device.product_id" int="1768">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="5891">
+    <match key="usb_device.product_id" int="1">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="5891">
+    <match key="usb_device.product_id" int="2">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2389">
+    <match key="usb_device.product_id" int="28841">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2389">
+    <match key="usb_device.product_id" int="46080">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2389">
+    <match key="usb_device.product_id" int="52999">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2389">
+    <match key="usb_device.product_id" int="52994">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2389">
+    <match key="usb_device.product_id" int="28928">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2389">
+    <match key="usb_device.product_id" int="28930">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="7763">
+    <match key="usb_device.product_id" int="6">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1972">
+    <match key="usb_device.product_id" int="256">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1972">
+    <match key="usb_device.product_id" int="256">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1972">
+    <match key="usb_device.product_id" int="256">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1972">
+    <match key="usb_device.product_id" int="276">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1972">
+    <match key="usb_device.product_id" int="276">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1972">
+    <match key="usb_device.product_id" int="276">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1972">
+    <match key="usb_device.product_id" int="276">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1972">
+    <match key="usb_device.product_id" int="276">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1972">
+    <match key="usb_device.product_id" int="276">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1972">
+    <match key="usb_device.product_id" int="272">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1972">
+    <match key="usb_device.product_id" int="303">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1972">
+    <match key="usb_device.product_id" int="303">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1972">
+    <match key="usb_device.product_id" int="278">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1972">
+    <match key="usb_device.product_id" int="276">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1972">
+    <match key="usb_device.product_id" int="275">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1972">
+    <match key="usb_device.product_id" int="303">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1972">
+    <match key="usb_device.product_id" int="276">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1972">
+    <match key="usb_device.product_id" int="276">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1972">
+    <match key="usb_device.product_id" int="278">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1972">
+    <match key="usb_device.product_id" int="278">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8921">
+    <match key="usb_device.product_id" int="10085">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8921">
+    <match key="usb_device.product_id" int="10100">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8921">
+    <match key="usb_device.product_id" int="10099">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2329">
+    <match key="usb_device.product_id" int="256">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2329">
+    <match key="usb_device.product_id" int="256">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1242">
+    <match key="usb_device.product_id" int="9076">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1242">
+    <match key="usb_device.product_id" int="9076">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1242">
+    <match key="usb_device.product_id" int="9076">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1242">
+    <match key="usb_device.product_id" int="9076">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1242">
+    <match key="usb_device.product_id" int="9076">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1242">
+    <match key="usb_device.product_id" int="9076">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1242">
+    <match key="usb_device.product_id" int="9076">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1242">
+    <match key="usb_device.product_id" int="9076">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1242">
+    <match key="usb_device.product_id" int="9076">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1242">
+    <match key="usb_device.product_id" int="9076">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1242">
+    <match key="usb_device.product_id" int="9076">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1242">
+    <match key="usb_device.product_id" int="9076">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1242">
+    <match key="usb_device.product_id" int="8517">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1242">
+    <match key="usb_device.product_id" int="8536">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4204">
+    <match key="usb_device.product_id" int="61443">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="7501">
+    <match key="usb_device.product_id" int="20534">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="7501">
+    <match key="usb_device.product_id" int="20533">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="7501">
+    <match key="usb_device.product_id" int="20554">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1363">
+    <match key="usb_device.product_id" int="514">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="9723">
+    <match key="usb_device.product_id" int="357">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2583">
+    <match key="usb_device.product_id" int="13">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2583">
+    <match key="usb_device.product_id" int="247">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2726">
+    <match key="usb_device.product_id" int="38658">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1137">
+    <match key="usb_device.product_id" int="8316">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1137">
+    <match key="usb_device.product_id" int="8377">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1137">
+    <match key="usb_device.product_id" int="8504">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1137">
+    <match key="usb_device.product_id" int="357">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1137">
+    <match key="usb_device.product_id" int="8311">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1137">
+    <match key="usb_device.product_id" int="8334">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1137">
+    <match key="usb_device.product_id" int="8196">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1137">
+    <match key="usb_device.product_id" int="2135">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1137">
+    <match key="usb_device.product_id" int="2126">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1137">
+    <match key="usb_device.product_id" int="8194">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1137">
+    <match key="usb_device.product_id" int="335">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1137">
+    <match key="usb_device.product_id" int="8309">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1137">
+    <match key="usb_device.product_id" int="8315">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1137">
+    <match key="usb_device.product_id" int="8375">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1137">
+    <match key="usb_device.product_id" int="8421">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1137">
+    <match key="usb_device.product_id" int="333">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1137">
+    <match key="usb_device.product_id" int="332">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1137">
+    <match key="usb_device.product_id" int="491">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1137">
+    <match key="usb_device.product_id" int="331">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1137">
+    <match key="usb_device.product_id" int="6411">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2362">
+    <match key="usb_device.product_id" int="270">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1137">
+    <match key="usb_device.product_id" int="8592">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1137">
+    <match key="usb_device.product_id" int="32257">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1137">
+    <match key="usb_device.product_id" int="385">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1137">
+    <match key="usb_device.product_id" int="356">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1137">
+    <match key="usb_device.product_id" int="8226">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1137">
+    <match key="usb_device.product_id" int="370">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1363">
+    <match key="usb_device.product_id" int="514">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2276">
+    <match key="usb_device.product_id" int="322">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2276">
+    <match key="usb_device.product_id" int="328">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2362">
+    <match key="usb_device.product_id" int="270">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="36956">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="37152">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1924">
+    <match key="usb_device.product_id" int="10376">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1350">
+    <match key="usb_device.product_id" int="8245">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1350">
+    <match key="usb_device.product_id" int="3503">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="36956">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="37152">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2362">
+    <match key="usb_device.product_id" int="271">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10724">
+    <match key="usb_device.product_id" int="4611">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10724">
+    <match key="usb_device.product_id" int="4355">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1924">
+    <match key="usb_device.product_id" int="21248">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1276">
+    <match key="usb_device.product_id" int="65535">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1478">
+    <match key="usb_device.product_id" int="34816">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1478">
+    <match key="usb_device.product_id" int="61443">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1478">
+    <match key="usb_device.product_id" int="553">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1478">
+    <match key="usb_device.product_id" int="12694">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1478">
+    <match key="usb_device.product_id" int="26468">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1478">
+    <match key="usb_device.product_id" int="26469">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1478">
+    <match key="usb_device.product_id" int="36921">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1478">
+    <match key="usb_device.product_id" int="36901">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1363">
+    <match key="usb_device.product_id" int="514">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3530">
+    <match key="usb_device.product_id" int="4">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1924">
+    <match key="usb_device.product_id" int="256">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10007">
+    <match key="usb_device.product_id" int="4704">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10007">
+    <match key="usb_device.product_id" int="4712">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="37152">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1482">
+    <match key="usb_device.product_id" int="8715">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1482">
+    <match key="usb_device.product_id" int="8707">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1482">
+    <match key="usb_device.product_id" int="8708">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1482">
+    <match key="usb_device.product_id" int="8712">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1482">
+    <match key="usb_device.product_id" int="8716">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1482">
+    <match key="usb_device.product_id" int="805">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1482">
+    <match key="usb_device.product_id" int="8724">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1482">
+    <match key="usb_device.product_id" int="813">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1482">
+    <match key="usb_device.product_id" int="8717">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1482">
+    <match key="usb_device.product_id" int="8722">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1482">
+    <match key="usb_device.product_id" int="811">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1482">
+    <match key="usb_device.product_id" int="8723">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1482">
+    <match key="usb_device.product_id" int="8726">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1482">
+    <match key="usb_device.product_id" int="815">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1482">
+    <match key="usb_device.product_id" int="8727">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1482">
+    <match key="usb_device.product_id" int="8730">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1482">
+    <match key="usb_device.product_id" int="272">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1482">
+    <match key="usb_device.product_id" int="8706">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1482">
+    <match key="usb_device.product_id" int="829">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1482">
+    <match key="usb_device.product_id" int="8717">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4042">
+    <match key="usb_device.product_id" int="32775">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1482">
+    <match key="usb_device.product_id" int="8719">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1482">
+    <match key="usb_device.product_id" int="8719">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="37181">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="37181">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="37181">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2425">
+    <match key="usb_device.product_id" int="551">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3141">
+    <match key="usb_device.product_id" int="32771">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3141">
+    <match key="usb_device.product_id" int="32771">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3141">
+    <match key="usb_device.product_id" int="32771">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2362">
+    <match key="usb_device.product_id" int="270">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2362">
+    <match key="usb_device.product_id" int="271">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2425">
+    <match key="usb_device.product_id" int="551">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2425">
+    <match key="usb_device.product_id" int="551">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="37152">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2425">
+    <match key="usb_device.product_id" int="551">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="36956">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2425">
+    <match key="usb_device.product_id" int="551">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2362">
+    <match key="usb_device.product_id" int="271">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2425">
+    <match key="usb_device.product_id" int="551">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2425">
+    <match key="usb_device.product_id" int="551">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2425">
+    <match key="usb_device.product_id" int="551">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2425">
+    <match key="usb_device.product_id" int="551">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2425">
+    <match key="usb_device.product_id" int="551">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2425">
+    <match key="usb_device.product_id" int="551">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="26726">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="26407">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="26720">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="26716">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="26743">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="26450">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="26799">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="57868">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="26649">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="1188">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="20255">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="26420">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="26178">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="5132">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="4996">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="26698">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="26467">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="26377">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="26793">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="26370">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="20526">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="20509">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="20514">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="20527">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="20516">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="23055">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="20531">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="1033">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="20567">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="20609">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="20570">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="20760">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="20611">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="20762">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="20757">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="20765">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="20784">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="20773">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="20751">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="20782">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="20625">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="20619">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="20618">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="20551">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="20607">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="20564">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="20605">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="20627">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="20769">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="20791">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1256">
+    <match key="usb_device.product_id" int="20540">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1921">
+    <match key="usb_device.product_id" int="29712">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1921">
+    <match key="usb_device.product_id" int="29776">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1921">
+    <match key="usb_device.product_id" int="29778">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1921">
+    <match key="usb_device.product_id" int="29746">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1921">
+    <match key="usb_device.product_id" int="29748">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1921">
+    <match key="usb_device.product_id" int="29924">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1921">
+    <match key="usb_device.product_id" int="29904">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1921">
+    <match key="usb_device.product_id" int="29824">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1921">
+    <match key="usb_device.product_id" int="29728">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1921">
+    <match key="usb_device.product_id" int="29730">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1921">
+    <match key="usb_device.product_id" int="29792">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1921">
+    <match key="usb_device.product_id" int="29888">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1921">
+    <match key="usb_device.product_id" int="29890">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1921">
+    <match key="usb_device.product_id" int="29920">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1921">
+    <match key="usb_device.product_id" int="29697">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1921">
+    <match key="usb_device.product_id" int="29696">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1921">
+    <match key="usb_device.product_id" int="29744">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1921">
+    <match key="usb_device.product_id" int="29872">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1140">
+    <match key="usb_device.product_id" int="560">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1943">
+    <match key="usb_device.product_id" int="35073">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1943">
+    <match key="usb_device.product_id" int="35081">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1943">
+    <match key="usb_device.product_id" int="35089">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2125">
+    <match key="usb_device.product_id" int="4097">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2329">
+    <match key="usb_device.product_id" int="256">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1482">
+    <match key="usb_device.product_id" int="851">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1482">
+    <match key="usb_device.product_id" int="8718">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1482">
+    <match key="usb_device.product_id" int="807">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="37152">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="37152">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="37152">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1245">
+    <match key="usb_device.product_id" int="38497">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1245">
+    <match key="usb_device.product_id" int="38602">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1161">
+    <match key="usb_device.product_id" int="49189">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2362">
+    <match key="usb_device.product_id" int="270">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1647">
+    <match key="usb_device.product_id" int="40976">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3191">
+    <match key="usb_device.product_id" int="4113">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3191">
+    <match key="usb_device.product_id" int="4117">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3191">
+    <match key="usb_device.product_id" int="4098">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3191">
+    <match key="usb_device.product_id" int="4112">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3428">
+    <match key="usb_device.product_id" int="4097">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3191">
+    <match key="usb_device.product_id" int="4097">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6390">
+    <match key="usb_device.product_id" int="258">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6390">
+    <match key="usb_device.product_id" int="272">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3478">
+    <match key="usb_device.product_id" int="13056">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="7132">
+    <match key="usb_device.product_id" int="64191">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3530">
+    <match key="usb_device.product_id" int="2">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3783">
+    <match key="usb_device.product_id" int="4104">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="1870">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="1990">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="2391">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="2279">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="2382">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="2231">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="2387">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="2381">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="2388">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="2274">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="4756">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="704">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="743">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="1347">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="1567">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="1774">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="1169">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="2221">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="1323">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="1322">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="1867">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="662">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="662">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="835">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="760">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="1340">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20853">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="41333">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="45429">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="370">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20850">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="16754">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="390">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20870">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="16774">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="361">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20841">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="16745">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="373">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="16757">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="374">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="16758">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="375">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20855">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="16759">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="41335">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="45431">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="376">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20856">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="16760">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="386">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20866">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="16770">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="371">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20851">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="16755">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="41331">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="45427">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="1839">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="1656">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="860">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="805">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="859">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="1028">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="878">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="984">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="1214">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="1434">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="1673">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="1020">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="1227">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="901">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="1021">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="1446">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="806">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="1022">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="807">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="910">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="858">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="908">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="1228">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="1448">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="904">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="1211">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="919">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="920">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="78">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="1191">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="801">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="1187">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="1641">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="1846">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="1847">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="1396">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="1653">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20854">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="41334">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="45430">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="385">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20865">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="16769">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="1233">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="1459">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1356">
+    <match key="usb_device.product_id" int="1460">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="369">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="368">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20848">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="16752">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="384">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20864">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="16768">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20849">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="16753">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="382">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20862">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="16766">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="41342">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="45438">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="365">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="408">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20888">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="419">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20899">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="16803">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="396">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20876">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="16780">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="444">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20924">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="444">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="459">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20939">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="16843">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="392">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20872">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="16776">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="402">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20882">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="16786">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="411">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20891">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="16795">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="427">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20907">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="16811">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="426">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20906">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="16810">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="405">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20885">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="16789">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="397">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="404">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20877">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20884">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="16781">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="16788">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="403">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20883">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="16787">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="438">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="406">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="412">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20918">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20886">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20892">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="16796">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="423">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="16807">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20903">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="414">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20894">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="16798">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="431">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20911">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="16815">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="443">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20923">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="16827">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="442">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20922">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="16826">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="393">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20873">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="16777">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="407">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20887">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="326">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20806">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="217">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="212">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="239">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="343">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20823">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="16727">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="334">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="53572">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="324">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="57344">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="117">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20815">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="335">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="346">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20826">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="342">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20822">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="349">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20829">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="358">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20838">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="359">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20839">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="360">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20840">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="16744">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="353">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20833">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="251">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="307">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="314">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="4296">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="243">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="261">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="198">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="179">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="245">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="118">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="218">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="274">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4046">
+    <match key="usb_device.product_id" int="20845">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="36956">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1363">
+    <match key="usb_device.product_id" int="514">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1363">
+    <match key="usb_device.product_id" int="514">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1363">
+    <match key="usb_device.product_id" int="514">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1363">
+    <match key="usb_device.product_id" int="514">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1363">
+    <match key="usb_device.product_id" int="514">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="37152">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2329">
+    <match key="usb_device.product_id" int="256">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1363">
+    <match key="usb_device.product_id" int="514">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="36956">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1363">
+    <match key="usb_device.product_id" int="514">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="37181">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="37152">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1105">
+    <match key="usb_device.product_id" int="53512">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="5073">
+    <match key="usb_device.product_id" int="28695">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2726">
+    <match key="usb_device.product_id" int="12305">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1691">
+    <match key="usb_device.product_id" int="12341">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1691">
+    <match key="usb_device.product_id" int="1911">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1691">
+    <match key="usb_device.product_id" int="1908">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1691">
+    <match key="usb_device.product_id" int="1916">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1691">
+    <match key="usb_device.product_id" int="12314">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1691">
+    <match key="usb_device.product_id" int="12328">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2329">
+    <match key="usb_device.product_id" int="256">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1363">
+    <match key="usb_device.product_id" int="514">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="5008">
+    <match key="usb_device.product_id" int="21589">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4571">
+    <match key="usb_device.product_id" int="4096">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2352">
+    <match key="usb_device.product_id" int="2403">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2352">
+    <match key="usb_device.product_id" int="12">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2352">
+    <match key="usb_device.product_id" int="9">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2352">
+    <match key="usb_device.product_id" int="29">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2352">
+    <match key="usb_device.product_id" int="26">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2352">
+    <match key="usb_device.product_id" int="24">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2352">
+    <match key="usb_device.product_id" int="17">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2352">
+    <match key="usb_device.product_id" int="15">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2352">
+    <match key="usb_device.product_id" int="16">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2352">
+    <match key="usb_device.product_id" int="25">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2352">
+    <match key="usb_device.product_id" int="22">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2352">
+    <match key="usb_device.product_id" int="20">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4402">
+    <match key="usb_device.product_id" int="17207">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4402">
+    <match key="usb_device.product_id" int="17202">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4402">
+    <match key="usb_device.product_id" int="17205">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="4402">
+    <match key="usb_device.product_id" int="17204">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2352">
+    <match key="usb_device.product_id" int="28928">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3478">
+    <match key="usb_device.product_id" int="13056">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3478">
+    <match key="usb_device.product_id" int="16640">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="7784">
+    <match key="usb_device.product_id" int="2">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1026">
+    <match key="usb_device.product_id" int="1553">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1647">
+    <match key="usb_device.product_id" int="33834">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2125">
+    <match key="usb_device.product_id" int="3">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1750">
+    <match key="usb_device.product_id" int="46">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1750">
+    <match key="usb_device.product_id" int="45">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2250">
+    <match key="usb_device.product_id" int="272">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1276">
+    <match key="usb_device.product_id" int="20554">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1943">
+    <match key="usb_device.product_id" int="32794">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1363">
+    <match key="usb_device.product_id" int="514">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3428">
+    <match key="usb_device.product_id" int="4097">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8711">
+    <match key="usb_device.product_id" int="1">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8711">
+    <match key="usb_device.product_id" int="17">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1032">
+    <match key="usb_device.product_id" int="14489">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="37152">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="37152">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2425">
+    <match key="usb_device.product_id" int="551">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2362">
+    <match key="usb_device.product_id" int="270">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="2362">
+    <match key="usb_device.product_id" int="271">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3141">
+    <match key="usb_device.product_id" int="32778">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="36956">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1161">
+    <match key="usb_device.product_id" int="57617">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1161">
+    <match key="usb_device.product_id" int="49190">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1161">
+    <match key="usb_device.product_id" int="57408">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1329">
+    <match key="usb_device.product_id" int="8193">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="3141">
+    <match key="usb_device.product_id" int="32769">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="7763">
+    <match key="usb_device.product_id" int="7">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10007">
+    <match key="usb_device.product_id" int="4968">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10007">
+    <match key="usb_device.product_id" int="4680">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10007">
+    <match key="usb_device.product_id" int="4672">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10007">
+    <match key="usb_device.product_id" int="61443">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10007">
+    <match key="usb_device.product_id" int="36921">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10007">
+    <match key="usb_device.product_id" int="65352">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10007">
+    <match key="usb_device.product_id" int="872">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10007">
+    <match key="usb_device.product_id" int="864">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10007">
+    <match key="usb_device.product_id" int="1632">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="8711">
+    <match key="usb_device.product_id" int="6">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10518">
+    <match key="usb_device.product_id" int="37197">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10518">
+    <match key="usb_device.product_id" int="61443">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="7871">
+    <match key="usb_device.product_id" int="32553">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="1054">
+    <match key="usb_device.product_id" int="24576">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="10096">
+    <match key="usb_device.product_id" int="36956">
+     <append key="info.capabilities" type="strlist">camera</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6610">
+    <match key="usb_device.product_id" int="835">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6610">
+    <match key="usb_device.product_id" int="65486">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6610">
+    <match key="usb_device.product_id" int="580">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6610">
+    <match key="usb_device.product_id" int="581">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6610">
+    <match key="usb_device.product_id" int="774">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6610">
+    <match key="usb_device.product_id" int="775">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+   <match key="usb_device.vendor_id" int="6610">
+    <match key="usb_device.product_id" int="899">
+     <append key="info.capabilities" type="strlist">portable_audio_player</append>
+    </match>
+   </match>
+  </match>
+ </device>
+</deviceinfo>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2-2.5.8/10-camera-libgphoto2.fdi b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2-2.5.8/10-camera-libgphoto2.fdi
new file mode 100644
index 0000000..00427e7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2-2.5.8/10-camera-libgphoto2.fdi
@@ -0,0 +1,19018 @@
+<?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- -->
+<!-- This file was generated by libgphoto2 print-camera-list - - fdi -->
+<!--+
+    | Created from this library:
+    |   libgphoto2      2.5.8          all camlibs, gcc, ltdl, no EXIF
+    |   libgphoto2_port 0.12.0         gcc, ltdl, no USB, serial without locking
+    +-->
+<deviceinfo version="0.2">
+ <device>
+  <match key="info.subsystem" string="usb">
+   <match key="usb.vendor_id" int="2425">
+    <match key="usb.product_id" int="551">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string"> JL2005B/C/D camera</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1282">
+    <match key="usb.product_id" int="13251">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Acer E350 Liquid Gallant Duo (ID1)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1282">
+    <match key="usb.product_id" int="13252">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Acer E350 Liquid Gallant Duo (ID2)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1282">
+    <match key="usb.product_id" int="13891">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Acer E39</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1282">
+    <match key="usb.product_id" int="13628">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Acer Iconia A1-810</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1282">
+    <match key="usb.product_id" int="13869">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Acer Iconia A1-840FHD</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1282">
+    <match key="usb.product_id" int="13702">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Acer Iconia A3-A11</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1282">
+    <match key="usb.product_id" int="13128">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A100 (ID1)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1282">
+    <match key="usb.product_id" int="13129">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A100 (ID2)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1282">
+    <match key="usb.product_id" int="13130">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A101 (ID1)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1282">
+    <match key="usb.product_id" int="13272">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A110</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1282">
+    <match key="usb.product_id" int="13180">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A200 (ID1)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1282">
+    <match key="usb.product_id" int="13181">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A200 (ID2)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1282">
+    <match key="usb.product_id" int="13259">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A210</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1282">
+    <match key="usb.product_id" int="13093">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A500 (ID1)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1282">
+    <match key="usb.product_id" int="13121">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A500 (ID2)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1282">
+    <match key="usb.product_id" int="13124">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A501 (ID1)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1282">
+    <match key="usb.product_id" int="13125">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A501 (ID2)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1282">
+    <match key="usb.product_id" int="13193">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A510 (ID1)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1282">
+    <match key="usb.product_id" int="13194">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A510 (ID2)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1282">
+    <match key="usb.product_id" int="13176">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A700</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1282">
+    <match key="usb.product_id" int="13588">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Acer Liquid E2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1282">
+    <match key="usb.product_id" int="13736">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Acer Liquid E3</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1282">
+    <match key="usb.product_id" int="13892">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Acer liquid e700</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1282">
+    <match key="usb.product_id" int="14117">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Acer Liquid S56</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1282">
+    <match key="usb.product_id" int="13833">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Acer Liquid X1</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1282">
+    <match key="usb.product_id" int="13427">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Acer Liquid Z120 MT65xx Android Phone</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1282">
+    <match key="usb.product_id" int="13663">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Acer Liquid Z130 MT65xx Android Phone</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1282">
+    <match key="usb.product_id" int="13911">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Acer One 7</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1282">
+    <match key="usb.product_id" int="13226">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Acer S500 CloudMobile</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1282">
+    <match key="usb.product_id" int="13796">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Acer Z150</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1282">
+    <match key="usb.product_id" int="13853">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Acer Z160</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="5845">
+    <match key="usb.product_id" int="32774">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Acromag Inc. XO Learning Tablet (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="5845">
+    <match key="usb.product_id" int="32773">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Acromag Inc. XO Learning Tablet (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1363">
+    <match key="usb.product_id" int="514">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">AEG Snap 300</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1725">
+    <match key="usb.product_id" int="1027">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Agfa ePhoto CL18</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1725">
+    <match key="usb.product_id" int="1028">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Agfa ePhoto CL20</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1276">
+    <match key="usb.product_id" int="20555">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Aiptek 1.3 mega PocketCam</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1363">
+    <match key="usb.product_id" int="514">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Aiptek PalmCam Trio</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1276">
+    <match key="usb.product_id" int="20554">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Aiptek Pencam</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1363">
+    <match key="usb.product_id" int="514">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Aiptek PenCam Trio</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2250">
+    <match key="usb.product_id" int="273">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Aiptek PenCam VGA+</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1276">
+    <match key="usb.product_id" int="20554">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Aiptek Pencam without flash</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1276">
+    <match key="usb.product_id" int="20555">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Aiptek Smart Megacam</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="7099">
+    <match key="usb.product_id" int="360">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Alcatel 6030a</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="7099">
+    <match key="usb.product_id" int="8200">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Alcatel One Touch 997D (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="7099">
+    <match key="usb.product_id" int="3074">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Alcatel One Touch 997D (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="7099">
+    <match key="usb.product_id" int="40974">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Alcatel OneTouch 5042D (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="7099">
+    <match key="usb.product_id" int="61443">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Alcatel OneTouch 6034R</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="7099">
+    <match key="usb.product_id" int="36941">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Alcatel/Bouygues BS472</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="7099">
+    <match key="usb.product_id" int="359">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Alcatel/TCT 6010D/TCL S950</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2425">
+    <match key="usb.product_id" int="551">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Amazing Spiderman</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6473">
+    <match key="usb.product_id" int="2048">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Amazon Fire Phone</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6473">
+    <match key="usb.product_id" int="7">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Amazon Kindle Fire (ID1)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6473">
+    <match key="usb.product_id" int="8">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Amazon Kindle Fire (ID2)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6473">
+    <match key="usb.product_id" int="10">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Amazon Kindle Fire (ID3)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6473">
+    <match key="usb.product_id" int="12">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Amazon Kindle Fire (ID4)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6473">
+    <match key="usb.product_id" int="18">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Amazon Kindle Fire (ID5)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6473">
+    <match key="usb.product_id" int="11">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Amazon Kindle Fire (ID6)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6473">
+    <match key="usb.product_id" int="13">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Amazon Kindle Fire (ID7)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6473">
+    <match key="usb.product_id" int="5">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Amazon Kindle Fire 2G (ID1)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6473">
+    <match key="usb.product_id" int="242">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Amazon Kindle Fire HD6</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2425">
+    <match key="usb.product_id" int="548">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">American Idol Keychain Camera</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1452">
+    <match key="usb.product_id" int="4762">
+     <match key="usb.interface.class" int="6">
+      <match key="usb.interface.subclass" int="1">
+       <match key="usb.interface.protocol" int="1">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Apple iPad (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+       </match>
+      </match>
+     </match>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1452">
+    <match key="usb.product_id" int="4779">
+     <match key="usb.interface.class" int="6">
+      <match key="usb.interface.subclass" int="1">
+       <match key="usb.interface.protocol" int="1">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Apple iPad Air</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+       </match>
+      </match>
+     </match>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1452">
+    <match key="usb.product_id" int="4752">
+     <match key="usb.interface.class" int="6">
+      <match key="usb.interface.subclass" int="1">
+       <match key="usb.interface.protocol" int="1">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Apple iPhone (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+       </match>
+      </match>
+     </match>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1452">
+    <match key="usb.product_id" int="4754">
+     <match key="usb.interface.class" int="6">
+      <match key="usb.interface.subclass" int="1">
+       <match key="usb.interface.protocol" int="1">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Apple iPhone 3G (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+       </match>
+      </match>
+     </match>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1452">
+    <match key="usb.product_id" int="4756">
+     <match key="usb.interface.class" int="6">
+      <match key="usb.interface.subclass" int="1">
+       <match key="usb.interface.protocol" int="1">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Apple iPhone 3GS (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+       </match>
+      </match>
+     </match>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1452">
+    <match key="usb.product_id" int="4759">
+     <match key="usb.interface.class" int="6">
+      <match key="usb.interface.subclass" int="1">
+       <match key="usb.interface.protocol" int="1">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Apple iPhone 4 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+       </match>
+      </match>
+     </match>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1452">
+    <match key="usb.product_id" int="4768">
+     <match key="usb.interface.class" int="6">
+      <match key="usb.interface.subclass" int="1">
+       <match key="usb.interface.protocol" int="1">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Apple iPhone 4S (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+       </match>
+      </match>
+     </match>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1452">
+    <match key="usb.product_id" int="4776">
+     <match key="usb.interface.class" int="6">
+      <match key="usb.interface.subclass" int="1">
+       <match key="usb.interface.protocol" int="1">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Apple iPhone 5 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+       </match>
+      </match>
+     </match>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1452">
+    <match key="usb.product_id" int="4753">
+     <match key="usb.interface.class" int="6">
+      <match key="usb.interface.subclass" int="1">
+       <match key="usb.interface.protocol" int="1">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Apple iPod Touch (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+       </match>
+      </match>
+     </match>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1452">
+    <match key="usb.product_id" int="4755">
+     <match key="usb.interface.class" int="6">
+      <match key="usb.interface.subclass" int="1">
+       <match key="usb.interface.protocol" int="1">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Apple iPod Touch 2G (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+       </match>
+      </match>
+     </match>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1452">
+    <match key="usb.product_id" int="4761">
+     <match key="usb.interface.class" int="6">
+      <match key="usb.interface.subclass" int="1">
+       <match key="usb.interface.protocol" int="1">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Apple iPod Touch 3rd Gen (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+       </match>
+      </match>
+     </match>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="20488">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos (for Tesco) Hudl (ID1)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="20489">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos (for Tesco) Hudl (ID2)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="16386">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos 101 G4</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="5416">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos 101 G9 (ID1)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="5417">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos 101 G9 (ID2)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="5433">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos 101 G9 Turbo</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="5432">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos 101 G9 Turbo 250 HD</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="5305">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos 101 Titanium</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="5448">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos 101 XS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="4618">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos 104 (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="4893">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos 105 (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="4620">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos 204 (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="4865">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos 404 (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="4867">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos 404CAM (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="4881">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos 405 (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="4897">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos 405HDD (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="12787">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos 45 Neon</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="4913">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos 5 (MTP mode 1)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="4915">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos 5 (MTP mode 2)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="12841">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos 50 Diamond</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="4871">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos 504 (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="8200">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos 50c</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="4951">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos 5H IT (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="4945">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos 5S IT (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="4873">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos 604 (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="4875">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos 604WIFI (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="4883">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos 605 (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="4885">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos 605F (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="4917">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos 7 (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="4877">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos 704 mobile dvr</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="4879">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos 704TV (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="4889">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos 705 (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="5359">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos 70b Titanium</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="5480">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos 70it2 (ID 1)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="5481">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos 70it2 (ID 2)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="5311">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos 80 Titanium</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="5400">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos 80G9</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="5384">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos 8o G9 (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="5385">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos 8o G9 Turbo (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="5293">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos 97 Titanium</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="5274">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos 97 Xenon</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="5227">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos Arnova 10bG3 Tablet</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="5214">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos Arnova 8c G3</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="5208">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos Arnova Childpad</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="12715">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos C40</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="4615">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos Gmini XS100</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="4929">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos SPOD (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="4891">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos TV+ (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3705">
+    <match key="usb.product_id" int="4616">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Archos XS202 (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2425">
+    <match key="usb.product_id" int="551">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Argus Bean Sprout</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1363">
+    <match key="usb.product_id" int="514">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Argus DC-1500</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="37152">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Argus DC-1510</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2362">
+    <match key="usb.product_id" int="271">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Argus DC-1610</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2362">
+    <match key="usb.product_id" int="271">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Argus DC-1620</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="37180">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Argus DC-1730</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2329">
+    <match key="usb.product_id" int="256">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Argus DC-2200</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2425">
+    <match key="usb.product_id" int="551">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Argus DC1512e</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2362">
+    <match key="usb.product_id" int="271">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Argus QuickClix</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2425">
+    <match key="usb.product_id" int="551">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Aries ATC-0017</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="36956">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Aries Digital Keychain Camera, I</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="23055">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus A450CG (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="19680">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus Asus Fonepad Note 6 (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="19681">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus Asus Fonepad Note 6 (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="20815">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus Fonepad</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="30579">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus Fonepad 7 (FE375CXG)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="21519">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus Fonepad 7 LTE ME372CL (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="21535">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus Fonepad 7 LTE ME372CL (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="21775">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus K00E (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="21760">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus K010 (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="19664">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus ME301T MeMo Pad Smart 10 (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="19665">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus ME301T MeMo Pad Smart 10 (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="21023">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus ME302C MemoPad (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="21007">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus ME302C MemoPad (MTP+?)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="19648">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus ME302KL MeMo Pad FHD10 (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="19649">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus ME302KL MeMo Pad FHD10 (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="21600">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus Memo K00F (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="21608">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus Memo K00F (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="21504">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus Memo ME172V (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="21520">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus Memo ME173X (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="21521">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus Memo ME173X (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="21606">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus Memo Pad 8 (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="30578">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus MemoPad 7 (ME572CL)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="21766">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus MemoPad 7 (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="21857">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus MemoPad 8 ME181 CX (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="20992">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus PadFone (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="20993">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus PadFone (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="21008">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus PadFone 2 (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="21009">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus PadFone 2 (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="21012">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus PadFone 2 (PTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="21024">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus PadFone Infinity (2nd ID) (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="21025">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus PadFone Infinity (2nd ID) (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="21040">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus PadFone Infinity (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="21041">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus PadFone Infinity (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="19968">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus SL101 (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="19969">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus SL101 (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="19983">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus TF101 Eeepad Transformer (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="19999">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus TF101 Eeepad Transformer (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="19712">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus TF201 Transformer Prime (keyboard dock)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="19713">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus TF201 Transformer Prime (tablet only)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="19584">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus TF300 Transformer (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="19585">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus TF300 Transformer (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="19600">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus TF700 Transformer (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="19601">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus TF700 Transformer (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="19616">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus TF701T Transformer Pad (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="19617">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus TF701T Transformer Pad (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="22047">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus TX201LA (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="24322">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus Zenfone 2 ZE550ML (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="22543">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus ZenFone 4 (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="22559">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus ZenFone 4 A400CG (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="21632">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus ZenFone 5 (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="21633">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus ZenFone 5 (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="30593">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus ZenFone 5 A500KL (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="21648">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus ZenFone 6 (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2821">
+    <match key="usb.product_id" int="21649">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Asus ZenFone 6 (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="36945">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Barbie Camera (Digital Blue)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8320">
+    <match key="usb.product_id" int="6">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Barnes&amp;Noble Nook HD</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8320">
+    <match key="usb.product_id" int="5">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Barnes&amp;Noble Nook HD+</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1189">
+    <match key="usb.product_id" int="12291">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Benq DC1300</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="7493">
+    <match key="usb.product_id" int="17821">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">BenQ F5</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10823">
+    <match key="usb.product_id" int="32528">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">bq Aquarius E5-4G</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10823">
+    <match key="usb.product_id" int="8200">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">bq Krillin (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10823">
+    <match key="usb.product_id" int="3074">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">bq Krillin (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12359">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12738">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 100 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12733">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 110 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12774">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 120 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12787">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 130</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12904">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 255HS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12480">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 30 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12365">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 300</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12791">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 300 HS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12390">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 330</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12479">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 40 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12405">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 400 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12474">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 430 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12558">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 50 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12468">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 500 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12543">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 55 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12572">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 60 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12542">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 65 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12623">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 70 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12530">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 700 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12622">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 75 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12566">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 750 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12676">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 80 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12569">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 800 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12660">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 85 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12598">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 850 IS (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12640">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 860 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12660">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 90 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12565">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 900Ti (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12740">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 95 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12619">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 950 IS (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12639">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 960 IS (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12659">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 970 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12691">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 980 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12737">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 990 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12443">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS i (normal mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12443">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS i (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12484">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS i5 (normal mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12402">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS II (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12470">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS IIs (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12532">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS iZ (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12370">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS v</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12389">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS v2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12400">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS v3 (normal mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12401">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS v3 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12529">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS Wireless (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12526">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital Rebel XT (normal mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12394">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Digital unknown 3</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12424">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Elura 50 (normal mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12423">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Elura 50 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12453">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Elura 65 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12667">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS 1000D</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12912">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS 100D</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12419">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS 10D</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12476">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS 10D (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12823">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS 1100D</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12927">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS 1200D</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12522">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS 1D Mark II (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12615">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS 1D Mark III (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12752">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS 1D Mark IV</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12825">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS 1D X</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12523">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS 20D (normal mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12524">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS 20D (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12420">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS 300D (normal mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12441">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS 300D (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12563">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS 30D (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12527">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS 350D</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12526">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS 350D (normal mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12526">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS 350D (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12560">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS 400D (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12614">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS 40D (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12613">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS 450D (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12751">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS 500D</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12699">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS 50D</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12778">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS 550D</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12545">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS 5D (normal mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12546">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS 5D (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12697">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS 5D Mark II</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12858">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS 5D Mark III</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12824">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS 600D</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12821">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS 60D</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12859">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS 650D</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12880">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS 6D</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12914">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS 700D</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12883">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS 70D</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12698">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS 7D</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12911">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS 7D MarkII</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12356">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS D30</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12384">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS D60</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12420">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS Digital Rebel (normal mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12441">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS Digital Rebel (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12560">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS Digital Rebel XTi (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12420">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS Kiss Digital (normal mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12441">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS Kiss Digital (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12526">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS Kiss Digital N (normal mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12560">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS Kiss Digital X (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12613">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS Kiss X2 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12751">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS Kiss X3</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12861">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS M</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12953">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS M3</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12751">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS Rebel T1i</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12613">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon EOS Rebel XSi (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12430">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon FV M1 (normal mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12865">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon IXUS 125HS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12969">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon IXUS 165</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12837">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon IXUS 310IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12774">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon IXY 220 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12691">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon IXY 3000 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12358">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon IXY DIGITAL</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12363">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon IXY DIGITAL 300</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12484">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon IXY Digital L2 (normal mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12395">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon IXY DV M</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12438">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon IXY DV M2 (normal mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12412">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon MV630i (normal mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12410">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon MV650i (normal mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12448">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon MV750i (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12438">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon MVX 10i (normal mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12430">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon MVX 3i (normal mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12417">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon MVX100i</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12416">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon MVX150i (normal mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12457">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon MVX25i (normal mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12395">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon MVX2i</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12429">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon MVX3i (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12418">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Optura 10</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12415">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Optura 20</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12416">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Optura 20 (normal mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12395">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Optura 200 MC</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12438">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Optura 300 (normal mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12457">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Optura 40 (normal mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12549">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Optura 600 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12430">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Optura Xi (normal mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12367">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A10</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12385">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A100</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12686">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A1000 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12739">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A1100 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12862">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A1300IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12900">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A1400</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12366">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A20</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12386">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A200</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12689">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A2000 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12734">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A2100 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12842">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A2200</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12874">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A2300IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12873">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A2400IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12913">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A2500</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12898">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A2600</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12377">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A30</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12406">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A300 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12786">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A3000 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12472">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A310 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12785">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A3100 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12897">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A3500IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12376">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A40</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12471">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A400 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12867">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A4000IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12537">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A410 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12559">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A420 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12536">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A430 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12629">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A450 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12617">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A460 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12666">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A470</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12735">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A480</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12783">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Powershot A495</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12482">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A510 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12481">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A520 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12582">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A530 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12571">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A540 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12624">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A550 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12621">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A560 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12620">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A570 IS (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12663">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A580</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12662">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A590 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12404">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A60 (PTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12541">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A610 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12540">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A620 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12602">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A630 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12601">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A640 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12635">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A650IS (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12403">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A70 (PTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12567">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A700 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12600">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A710 IS (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12637">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A720 IS (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12469">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A75 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12442">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A80 (PTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12838">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A800</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12863">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A810</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12473">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A85 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12475">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A95 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12732">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot D10</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12936">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot Elph135</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12937">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot Elph340HS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12360">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot G1</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12851">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot G1 X</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12687">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot G10</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12767">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot G11</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12888">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot G15</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12373">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot G2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12398">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot G3 (normal mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12399">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot G3 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12421">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot G5 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12467">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Powershot G6 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12581">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot G7 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12634">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot G9 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12443">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot IXY Digital L (normal mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12361">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot Pro90 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12444">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S1 IS (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12353">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S10</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12854">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S100</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12357">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S100 (2000)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12369">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S110 (2001)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12891">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S110 (PTP Mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12917">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S120</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12528">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S2 IS (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12355">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S20</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12389">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S200</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12400">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S230 (normal mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12401">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S230 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12570">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S3 IS (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12375">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S30</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12364">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S300</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12390">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S330</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12374">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S40</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12405">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S400 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12474">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S410 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12396">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S45 (normal mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12397">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S45 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12616">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S5 IS (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12407">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S50 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12468">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S500 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12466">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Powershot S60 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12465">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Powershot S70 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12538">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S80 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12818">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S95</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12443">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD10 Digital ELPH (normal mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12402">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD100 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12623">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD1000 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12470">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD110 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12676">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Powershot SD1100 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12740">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Powershot SD1200 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12788">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD1300 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12484">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD20 (normal mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12480">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD200 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12599">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD40 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12529">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD430 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12543">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD450 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12530">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD500 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12572">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD600 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12542">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD630 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12569">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD700 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12622">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD750 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12661">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD770 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12738">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD780 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12660">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Powershot SD790 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12619">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD850 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12694">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD880 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12565">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD900 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12774">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD940 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12737">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD970 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12691">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD990</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12685">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX10 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12638">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Powershot SX100 IS (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12690">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX110 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12768">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX120 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12817">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX130 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12852">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX150 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12890">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX160IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12918">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX170 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12772">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX20 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12736">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX200 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12790">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX210 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12844">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX220HS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12840">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX230HS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12869">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX240HS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12868">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX260HS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12895">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX280HS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12856">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX40HS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12892">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX500IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12919">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX510 HS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12955">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX520 HS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12368">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot unknown 1</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12380">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon PowerShot unknown 2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12778">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Rebel T2i</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12823">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Rebel T3</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12859">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon Rebel T4i</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1193">
+    <match key="usb.product_id" int="12408">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Canon ZR70MC (normal mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1999">
+    <match key="usb.product_id" int="4169">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Casio EX-S770</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1999">
+    <match key="usb.product_id" int="4162">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Casio EX-Z120</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1999">
+    <match key="usb.product_id" int="4173">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Casio EX-Z65</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1999">
+    <match key="usb.product_id" int="4172">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Casio EX-Z700</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1999">
+    <match key="usb.product_id" int="4474">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Casio EX-ZR700</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1375">
+    <match key="usb.product_id" int="49664">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Casio LV 10</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1207">
+    <match key="usb.product_id" int="34985">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Caterpillar Cat S50</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="37152">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Che-ez Snap</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="36956">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Che-Ez Snap SNAP-U</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1363">
+    <match key="usb.product_id" int="514">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Che-ez! Babe</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1363">
+    <match key="usb.product_id" int="4098">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Che-ez! Splash</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1363">
+    <match key="usb.product_id" int="514">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Che-ez! SPYZ</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1943">
+    <match key="usb.product_id" int="32769">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Clever CAM 360</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2425">
+    <match key="usb.product_id" int="548">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Cobra DC125</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="36956">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Cobra Digital Camera DC150</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="7796">
+    <match key="usb.product_id" int="25874">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Coby COBY MP705</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="7763">
+    <match key="usb.product_id" int="5">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Conceptronic CMTD2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="37152">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Concord Eye-Q Duo</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="37152">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Concord Eye-Q Easy</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3478">
+    <match key="usb.product_id" int="16640">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Concord EyeQ 4330</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1000">
+    <match key="usb.product_id" int="8578">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Concord EyeQMini_1</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1000">
+    <match key="usb.product_id" int="8576">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Concord EyeQMini_2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2329">
+    <match key="usb.product_id" int="256">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">CoolCam CP086</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3617">
+    <match key="usb.product_id" int="2386">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Cowon iAudio 10 (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3617">
+    <match key="usb.product_id" int="1809">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Cowon iAudio 6 (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3617">
+    <match key="usb.product_id" int="1873">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Cowon iAudio 7 (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3617">
+    <match key="usb.product_id" int="2321">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Cowon iAudio 9 (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3617">
+    <match key="usb.product_id" int="2369">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Cowon iAudio C2 (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3617">
+    <match key="usb.product_id" int="2049">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Cowon iAudio D2 (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3617">
+    <match key="usb.product_id" int="2161">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Cowon iAudio D2+ DAB FW 4.x (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3617">
+    <match key="usb.product_id" int="2193">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Cowon iAudio D2+ DMB FW 1.x (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3617">
+    <match key="usb.product_id" int="2145">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Cowon iAudio D2+ FW 2.x (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3617">
+    <match key="usb.product_id" int="2177">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Cowon iAudio D2+ FW 3.x (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3617">
+    <match key="usb.product_id" int="2337">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Cowon iAudio J3 (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3617">
+    <match key="usb.product_id" int="2305">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Cowon iAudio S9 (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3617">
+    <match key="usb.product_id" int="1793">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Cowon iAudio U3 (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3617">
+    <match key="usb.product_id" int="1889">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Cowon iAudio U5 (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3617">
+    <match key="usb.product_id" int="2353">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Cowon iAudio X7 (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1054">
+    <match key="usb.product_id" int="16406">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Creative CardCam</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1054">
+    <match key="usb.product_id" int="16391">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Creative Go Mini</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1054">
+    <match key="usb.product_id" int="16394">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Creative PC-CAM 300</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1054">
+    <match key="usb.product_id" int="16402">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Creative PC-CAM350</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1054">
+    <match key="usb.product_id" int="16395">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Creative PC-CAM600</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1054">
+    <match key="usb.product_id" int="16403">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Creative PC-CAM750</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1054">
+    <match key="usb.product_id" int="16675">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Creative Portable Media Center</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1054">
+    <match key="usb.product_id" int="16727">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Creative ZEN</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1054">
+    <match key="usb.product_id" int="16688">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Creative ZEN Micro (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1054">
+    <match key="usb.product_id" int="16700">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Creative ZEN MicroPhoto</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1054">
+    <match key="usb.product_id" int="16691">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Creative ZEN MicroPhoto (alternate version)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1054">
+    <match key="usb.product_id" int="16737">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Creative ZEN Mozaic</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1054">
+    <match key="usb.product_id" int="16695">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Creative ZEN Sleek (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1054">
+    <match key="usb.product_id" int="16701">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Creative ZEN Sleek Photo</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1054">
+    <match key="usb.product_id" int="16689">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Creative ZEN Touch (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1054">
+    <match key="usb.product_id" int="16720">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Creative ZEN V</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1054">
+    <match key="usb.product_id" int="16728">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Creative ZEN V 2GB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1054">
+    <match key="usb.product_id" int="16722">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Creative ZEN V Plus</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1054">
+    <match key="usb.product_id" int="16671">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Creative ZEN Vision</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1054">
+    <match key="usb.product_id" int="16723">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Creative ZEN Vision W</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1054">
+    <match key="usb.product_id" int="16702">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Creative ZEN Vision:M</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1054">
+    <match key="usb.product_id" int="16721">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Creative ZEN Vision:M (DVP-HD0004)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1054">
+    <match key="usb.product_id" int="16738">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Creative ZEN X-Fi</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1054">
+    <match key="usb.product_id" int="16745">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Creative ZEN X-Fi 3</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1054">
+    <match key="usb.product_id" int="16680">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Creative ZEN Xtra (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4204">
+    <match key="usb.product_id" int="12821">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Curitel Communications, Inc. Verizon Wireless Device</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2125">
+    <match key="usb.product_id" int="3">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">D-Link DSC 350+</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3428">
+    <match key="usb.product_id" int="4129">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">D-Link DSC 350F</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1000">
+    <match key="usb.product_id" int="8496">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">D-MAX DM3588</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="36956">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">DC-N130t</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="37152">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">DC-N130ta</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3141">
+    <match key="usb.product_id" int="32768">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">DC31VC</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1054">
+    <match key="usb.product_id" int="16690">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Dell Dell Pocket DJ (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1054">
+    <match key="usb.product_id" int="16687">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Dell DJ (2nd generation)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="16700">
+    <match key="usb.product_id" int="45323">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Dell Inc Dell Streak 7</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="16700">
+    <match key="usb.product_id" int="45338">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Dell Inc Dell Venue 7 inch</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="16700">
+    <match key="usb.product_id" int="45339">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Dell Inc Dell Venue 7 inch (2nd ID)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="16700">
+    <match key="usb.product_id" int="17664">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Dell Inc DJ Itty</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="36956">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Digigr8</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="7994">
+    <match key="usb.product_id" int="3074">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">DigiLand DL701Q</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2362">
+    <match key="usb.product_id" int="270">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Digital camera, CD302N</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2425">
+    <match key="usb.product_id" int="551">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">DIGITAL MID#0020509 (no-name camera)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1498">
+    <match key="usb.product_id" int="4120">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">DigitalDream Enigma1.3</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1363">
+    <match key="usb.product_id" int="514">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">DigitalDream l'elegante</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2329">
+    <match key="usb.product_id" int="256">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">DigitalDream l'elite</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1363">
+    <match key="usb.product_id" int="514">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">DigitalDream l'espion</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4483">
+    <match key="usb.product_id" int="1">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">DigitalDream l'espion XS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1498">
+    <match key="usb.product_id" int="4128">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">DigitalDream l'espion xtra</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1363">
+    <match key="usb.product_id" int="514">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">DigitalDream l'esprit</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1363">
+    <match key="usb.product_id" int="514">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">DigitalDream la ronde</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2726">
+    <match key="usb.product_id" int="24609">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Disney MixMax</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="36944">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Disney pix micro</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="36946">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Disney pix micro 2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4310">
+    <match key="usb.product_id" int="8704">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Dunlop MP3 player 1GB / EGOMAN MD223AFD</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2362">
+    <match key="usb.product_id" int="270">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Elta Medi@ digi-cam</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2362">
+    <match key="usb.product_id" int="271">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Emprex PCD3600</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1208">
+    <match key="usb.product_id" int="1027">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Epson PhotoPC 3000z</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1208">
+    <match key="usb.product_id" int="1026">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Epson PhotoPC 850z</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10608">
+    <match key="usb.product_id" int="8200">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Fly Evo Tech 4</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10608">
+    <match key="usb.product_id" int="3074">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Fly iq4415 era style 3</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6018">
+    <match key="usb.product_id" int="16385">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Fly iq449</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1747">
+    <match key="usb.product_id" int="8634">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">FOMA D905i</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3530">
+    <match key="usb.product_id" int="2">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji Axia Eyeplate</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3530">
+    <match key="usb.product_id" int="2">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji Axia Slimshot</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="330">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix A330</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="466">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix A800</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="454">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix A820</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="467">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix A920</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="539">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix AV-150</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="403">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix E900</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="480">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix F100fd</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="448">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix F20</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="484">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix F200 EXR</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="411">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix F30</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="449">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix F31fd</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="453">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix F40fd</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="468">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix F50fd</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="486">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix F60fd</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="506">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix F70 EXR</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="526">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix F80EXR</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="557">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix H20EXR</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="625">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix HS30EXR</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="592">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix JX370</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="477">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S1000fd</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="475">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S100fs</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="495">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S1500</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="512">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S1800</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="488">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S2000HD</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="521">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S2500HD</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="576">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S2950</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="637">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S2980</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="613">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S4300</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="664">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S4850</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="452">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S5700</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="471">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S5800</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="447">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S6500fd</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="322">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S7000</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="399">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S9500</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="668">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix SL1000</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="563">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix T200</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="622">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix X-S1</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="611">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix X10</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="678">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix X20</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="648">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix XF1</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="472">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix Z100fd</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="513">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix Z35</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="525">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji FinePix Z700EXR</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="510">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji Fujifilm A220</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="693">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji Fujifilm X-E2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1363">
+    <match key="usb.product_id" int="514">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji IX-1</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1227">
+    <match key="usb.product_id" int="451">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Fuji S5 Pro</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2329">
+    <match key="usb.product_id" int="256">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">FujiFilm @xia ix-100</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1221">
+    <match key="usb.product_id" int="4416">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Fujitsu, Ltd F903iX HIGH-SPEED</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1221">
+    <match key="usb.product_id" int="4923">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Fujitsu, Ltd STYLISTIC M532</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2334">
+    <match key="usb.product_id" int="9605">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Garmin Monterra</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="37152">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Gear to go</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2329">
+    <match key="usb.product_id" int="256">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Generic SoundVision Clarity2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1112">
+    <match key="usb.product_id" int="28677">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Genius Smart 300, version 2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1037">
+    <match key="usb.product_id" int="34908">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Gensis GT-7305 </merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1044">
+    <match key="usb.product_id" int="8200">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Gigabyte RCT6773W22 (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1044">
+    <match key="usb.product_id" int="3074">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Gigabyte RCT6773W22 (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2425">
+    <match key="usb.product_id" int="551">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Global Point 3 in 1 Digital Fun Graffiti 00044</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2425">
+    <match key="usb.product_id" int="551">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Global Point Clipster</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="37152">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Global Point Splash Mini (underwater camera)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6353">
+    <match key="usb.product_id" int="7">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Google Inc (for Ainol Novo) Fire/Flame</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6353">
+    <match key="usb.product_id" int="6">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Google Inc (for Allwinner) A31 SoC</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6353">
+    <match key="usb.product_id" int="20033">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Google Inc (for Asus) Nexus 7 (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6353">
+    <match key="usb.product_id" int="20034">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Google Inc (for Asus) Nexus 7 (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6353">
+    <match key="usb.product_id" int="19983">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Google Inc (for Asus) TF101 Transformer</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6353">
+    <match key="usb.product_id" int="19712">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Google Inc (for Asus) TF201 Transformer</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6353">
+    <match key="usb.product_id" int="11522">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Google Inc (for Barnes &amp; Noble) Nook Color</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6353">
+    <match key="usb.product_id" int="29706">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Google Inc (for Lenovo) Ideapad K1</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6353">
+    <match key="usb.product_id" int="53514">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Google Inc (for LG Electronics) P990/Optimus</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6353">
+    <match key="usb.product_id" int="53513">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Google Inc (for LG Electronics) P990/Optimus (Cyanogen)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6353">
+    <match key="usb.product_id" int="20193">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Google Inc (for LG Electronics/Samsung) Nexus 4/5/7/10 (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6353">
+    <match key="usb.product_id" int="20194">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Google Inc (for LG Electronics/Samsung) Nexus 4/5/7/10 (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6353">
+    <match key="usb.product_id" int="45066">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Google Inc (for Medion) MD99000 (P9514)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6353">
+    <match key="usb.product_id" int="28840">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Google Inc (for Motorola) Xoom (MZ604)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6353">
+    <match key="usb.product_id" int="20005">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Google Inc (for Samsung) Nexus S (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6353">
+    <match key="usb.product_id" int="20006">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Google Inc (for Samsung) Nexus S (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6353">
+    <match key="usb.product_id" int="1459">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Google Inc (for Sony) S1</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6353">
+    <match key="usb.product_id" int="28930">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Google Inc (for Toshiba) Thrive 7/AT105</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6353">
+    <match key="usb.product_id" int="20197">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Google Nexus 5 (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="9842">
+    <match key="usb.product_id" int="17">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">GoPro HERO3+</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1943">
+    <match key="usb.product_id" int="32796">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">GrandTek ScopeCam</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="37152">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">GTW Electronics</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4866">
+    <match key="usb.product_id" int="4118">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Haier Ibiza Rhapsody 1</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4866">
+    <match key="usb.product_id" int="4119">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Haier Ibiza Rhapsody 2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2362">
+    <match key="usb.product_id" int="270">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Haimei Electronics HE-501A</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1363">
+    <match key="usb.product_id" int="514">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Hawking DC120 Pocketcam</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="32285">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Hewlett-Packard Slate 10 HD</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="23837">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Hewlett-Packard Slate 7 2800</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="23581">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Hewlett-Packard Slate 7 4600</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4251">
+    <match key="usb.product_id" int="37126">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Hisense E860 (ID1)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4251">
+    <match key="usb.product_id" int="37129">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Hisense E860 (ID2)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4251">
+    <match key="usb.product_id" int="37125">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HiSense Sero 7 Pro</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="25858">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 120 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="25090">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 215</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="31746">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 217 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="32002">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 317 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="25346">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 318 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="26114">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 320 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="29698">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 407 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="30722">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 417 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="29186">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 43x (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="28162">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 507 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="30978">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 517 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="27906">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 607 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="25346">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 612 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="16642">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 618</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="26626">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 620 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="28930">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 635 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="27394">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 707 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="25602">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 715 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="30210">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 717 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="26370">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 720 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="27650">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 733 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="27138">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 735 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="16898">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 812 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="30466">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 817 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="32258">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 818 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="17154">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 850 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="16642">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 912</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="17410">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 935 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="17666">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 945 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="16642">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart C500</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="24578">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart C500 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="61443">
+    <match key="usb.product_id" int="24578">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart C500 2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="35586">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart E327 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="35842">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart E427 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="29954">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart M22 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="31490">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart M23 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="29442">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart M307 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="31234">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart M415 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="32770">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart M425 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="33026">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart M525 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="33282">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart M527 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="39682">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart M547 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="33794">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart M725 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="34050">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart M727 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="38402">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart M737 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="38658">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart R742 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="34562">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart R927 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1008">
+    <match key="usb.product_id" int="34818">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart R967 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="26716">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC (for Hewlett-Packard) HP Touchpad (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="26720">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC (for Hewlett-Packard) HP Touchpad (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="3074">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC Android Device ID1 (Zopo, HD2, Bird...)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="8200">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC Android Device ID2 (Zopo, HD2...)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="3782">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC Desire 310 (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="3773">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC Droid DNA (MTP+UMS)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="3583">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC Droid DNA (MTP+UMS+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="3219">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC EVO 4G LTE/One V (ID1)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="3240">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC EVO 4G LTE/One V (ID2)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="3582">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC HTC Butterfly (ID1)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="3556">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC HTC Butterfly X290d</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="1533">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC HTC Desire 510 (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="3541">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC HTC Desire X</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="3633">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC HTC Droid Incredible 4G LTE (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="3634">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC HTC Droid Incredible 4G LTE (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="3573">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC HTC Evo 4G LTE (ID1)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="1966">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC HTC One (HTC6500LVW)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="3546">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC HTC One (ID1)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="3985">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC HTC One (ID3)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="3940">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC HTC One (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="3939">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC HTC One (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="3975">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC HTC One (MTP+ADB+?)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="3935">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC HTC One (MTP+ADB+CDC)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="3936">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC HTC One (MTP+CDC)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="3562">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC HTC One (MTP+UMS+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="3538">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC HTC One 802w (ID1)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="1994">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC HTC One M8 (HTC6525LVW)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="3877">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC HTC One M8 (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="1562">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC HTC One M8 (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="4020">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC HTC One M8 (MTP+ADB+UMS)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="4021">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC HTC One M8 (MTP+UMS)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="1995">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC HTC One M8 (Verizon) (HTC6525LVW)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="2009">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC HTC One Remix (HTC6515LVW)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="3308">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC HTC One S (ID1)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="3576">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC HTC One S (ID2)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="3577">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC HTC One S (ID3)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="3578">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC HTC One X (ID1)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="3579">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC HTC One X (ID2)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="3580">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC HTC One X (ID3)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="3581">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC HTC One X (ID4)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="2008">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC HTC6515LVW/One Remix</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="8210">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC Motorola Razr D1</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="1547">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC One M8 Google Play Edition (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="3533">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC One Mini (ID1)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="61642">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC Windows Phone 8s ID1</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="2977">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC Windows Phone 8X ID1</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2996">
+    <match key="usb.product_id" int="2978">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">HTC Windows Phone 8X ID2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4817">
+    <match key="usb.product_id" int="4226">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Huawei Ascend P8 </merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4817">
+    <match key="usb.product_id" int="13839">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Huawei Mediapad (mode 0)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4817">
+    <match key="usb.product_id" int="13855">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Huawei Mediapad (mode 1)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4817">
+    <match key="usb.product_id" int="4177">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Huawei MTP device (ID1)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4817">
+    <match key="usb.product_id" int="4178">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Huawei MTP device (ID2)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="37203">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">iClick 5X</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="37152">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">iConcepts digital camera</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1161">
+    <match key="usb.product_id" int="49189">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">InFocus M810</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2362">
+    <match key="usb.product_id" int="270">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">INNOVAGE Mini Digital, CD302N</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6655">
+    <match key="usb.product_id" int="771">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Insignia NS-DV45</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6655">
+    <match key="usb.product_id" int="777">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Insignia Pilot 4GB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6655">
+    <match key="usb.product_id" int="775">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Insignia Sport Player</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="32903">
+    <match key="usb.product_id" int="2655">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Intel Chuwi vi8</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="32903">
+    <match key="usb.product_id" int="2581">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Intel Foxconn iView i700</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="32903">
+    <match key="usb.product_id" int="2582">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Intel Noblex T7A21</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="32902">
+    <match key="usb.product_id" int="1584">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Intel Pocket PC Camera</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="32903">
+    <match key="usb.product_id" int="2654">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Intel Telcast Air 3G</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="32903">
+    <match key="usb.product_id" int="2555">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Intel Xolo 900/AZ210A</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1363">
+    <match key="usb.product_id" int="514">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">IOMagic MagicImage 400</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2362">
+    <match key="usb.product_id" int="271">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">ION digital camera</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="16642">
+    <match key="usb.product_id" int="4394">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">iRiver Clix</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="16642">
+    <match key="usb.product_id" int="4390">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">iRiver Clix2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="16642">
+    <match key="usb.product_id" int="4417">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">iRiver E100</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="16642">
+    <match key="usb.product_id" int="4418">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">iRiver E100 v2/Lplayer</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="16642">
+    <match key="usb.product_id" int="4434">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">iRiver E150</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="16642">
+    <match key="usb.product_id" int="4455">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">iRiver E30</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="16642">
+    <match key="usb.product_id" int="4433">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">iRiver E50</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="16642">
+    <match key="usb.product_id" int="8449">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">iRiver H10 20GB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="16642">
+    <match key="usb.product_id" int="8453">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">iRiver H10 5.6GB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="16642">
+    <match key="usb.product_id" int="8450">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">iRiver H10 5GB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4102">
+    <match key="usb.product_id" int="12292">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">iRiver H300 Series MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="16642">
+    <match key="usb.product_id" int="4104">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">iRiver iFP-880</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="16642">
+    <match key="usb.product_id" int="4386">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">iRiver N12</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4102">
+    <match key="usb.product_id" int="16386">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">iRiver Portable Media Center 1</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4102">
+    <match key="usb.product_id" int="16387">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">iRiver Portable Media Center 2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="16642">
+    <match key="usb.product_id" int="4423">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">iRiver Spinn</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="16642">
+    <match key="usb.product_id" int="4371">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">iRiver T10</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="16642">
+    <match key="usb.product_id" int="4384">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">iRiver T10 2GB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="16642">
+    <match key="usb.product_id" int="4375">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">iRiver T10b</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="16642">
+    <match key="usb.product_id" int="4373">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">iRiver T20</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="16642">
+    <match key="usb.product_id" int="4372">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">iRiver T20 FM</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="16642">
+    <match key="usb.product_id" int="4376">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">iRiver T20b</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="16642">
+    <match key="usb.product_id" int="4377">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">iRiver T30</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="16642">
+    <match key="usb.product_id" int="4435">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">iRiver T5</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="16642">
+    <match key="usb.product_id" int="4404">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">iRiver T60</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4162">
+    <match key="usb.product_id" int="4419">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">iRiver T7 Volcano</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="7784">
+    <match key="usb.product_id" int="4098">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">iRiver Tolino Tab 7</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="16642">
+    <match key="usb.product_id" int="4374">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">iRiver U10</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="16642">
+    <match key="usb.product_id" int="4402">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">iRiver X20</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2848">
+    <match key="usb.product_id" int="56814">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Isabella Her Prototype</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1924">
+    <match key="usb.product_id" int="256">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Ixla DualCam 640</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2425">
+    <match key="usb.product_id" int="551">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Jazwares Star Wars no. 15256</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="36956">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Jazz JDC9</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2425">
+    <match key="usb.product_id" int="551">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Jazz JDK235</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3478">
+    <match key="usb.product_id" int="13056">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Jenoptik JD-3300z3</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3478">
+    <match key="usb.product_id" int="16640">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Jenoptik JD-4100z3</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1498">
+    <match key="usb.product_id" int="4102">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Jenoptik JD350 entrance</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3478">
+    <match key="usb.product_id" int="0">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Jenoptik JD350 video</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="37152">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Jenoptik JDC 350</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10545">
+    <match key="usb.product_id" int="2561">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Jolla Sailfish (ID1)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10545">
+    <match key="usb.product_id" int="2565">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Jolla Sailfish (ID2)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1265">
+    <match key="usb.product_id" int="24837">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">JVC Alneo XA-HD500</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2126">
+    <match key="usb.product_id" int="1">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">KBGear JamCam</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2856">
+    <match key="usb.product_id" int="4108">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Kenwood Media Keg HD10GB7 Sport Player</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8759">
+    <match key="usb.product_id" int="53512">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Kobo Arc (ID1)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8759">
+    <match key="usb.product_id" int="53513">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Kobo Arc (ID2)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8759">
+    <match key="usb.product_id" int="45320">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Kobo Arc 7 HD</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1559">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak C1530</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1547">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak C183</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1406">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak C300</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1418">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak C310</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1420">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak C330</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1421">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak C340</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1417">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak C360</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1450">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak C433</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1434">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak C530</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1442">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak C533</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1463">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak C613</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1466">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak C633</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1447">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak C643</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1455">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak C653</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1454">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak C743</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1475">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak C813</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1449">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak C875</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1478">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak C913</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1436">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak CD33</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1376">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak CX4200</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1376">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak CX4210</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1333">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak CX4230</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1382">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak CX4300</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1382">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak CX4310</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1396">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak CX6200</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1395">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak CX6230</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1393">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak CX6330</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1412">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak CX6445</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1401">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak CX7220</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1400">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak CX7300</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1400">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak CX7310</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1402">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak CX7330</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1403">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak CX7430</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1414">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak CX7525</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1404">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak CX7530</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="256">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak DC220</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="288">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak DC240</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="289">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak DC240 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="272">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak DC260</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="273">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak DC265</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="304">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak DC280</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="274">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak DC290</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="306">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak DC3400</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="352">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak DC4800</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="305">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak DC5000</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1317">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak DX3215</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1280">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak DX3500</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1296">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak DX3600</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1328">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak DX3700</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="368">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak DX3900</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1365">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak DX4330</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1398">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak DX4530</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1360">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak DX4900</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1392">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak DX6340</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1394">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak DX6440</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1397">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak DX6490</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1405">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak DX7440</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1407">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak DX7590</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1399">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak DX7630</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="768">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak EZ200</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1344">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak LS420</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1384">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak LS443</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1385">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak LS663</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1381">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak LS743</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1383">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak LS753</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1486">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak M1063</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1536">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak M531</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1439">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak M753</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1473">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak M863</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1453">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak M883</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1413">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak M893 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1024">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak MC3</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1426">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak P850</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1427">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak P880</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1422">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak V530</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1423">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak V550</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1425">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak V570</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1440">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak V603</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1452">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak V610</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1451">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak V705</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1464">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak V803</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1437">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak Z612</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1438">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak Z650</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1415">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak Z700</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1459">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak Z710</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1460">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak Z712 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1408">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak Z730</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1416">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak Z740</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1027">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak Z7590</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1461">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak Z812 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1429">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak Z8612 IS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1487">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak Z915</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1485">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak Z950</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1034">
+    <match key="usb.product_id" int="1472">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Kodak ZD710</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1224">
+    <match key="usb.product_id" int="1826">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Konica e-mini</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4907">
+    <match key="usb.product_id" int="1">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Konica-Minolta DiMAGE A2 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4907">
+    <match key="usb.product_id" int="25">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Konica-Minolta DiMAGE A200 (PictBridge mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4907">
+    <match key="usb.product_id" int="9">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Konica-Minolta DiMAGE X21 (PictBridge mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4907">
+    <match key="usb.product_id" int="7">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Konica-Minolta DiMAGE Z2 (PictBridge mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4907">
+    <match key="usb.product_id" int="24">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Konica-Minolta DiMAGE Z3 (PictBridge mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4907">
+    <match key="usb.product_id" int="34">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Konica-Minolta DiMAGE Z5 (PictBridge mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="7994">
+    <match key="usb.product_id" int="4102">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Kurio 7S</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1154">
+    <match key="usb.product_id" int="2425">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Kyocera DuraForce</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1154">
+    <match key="usb.product_id" int="2064">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Kyocera KYL22</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1154">
+    <match key="usb.product_id" int="1393">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Kyocera Rise</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1154">
+    <match key="usb.product_id" int="1434">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Kyocera Torque Model E6715</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="36945">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Lego Bionicle</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1242">
+    <match key="usb.product_id" int="9077">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Leica D-LUX 2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6808">
+    <match key="usb.product_id" int="2">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Leica M9</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6127">
+    <match key="usb.product_id" int="30519">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Lenovo A3500-F</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6127">
+    <match key="usb.product_id" int="30507">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Lenovo A5500-F</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6127">
+    <match key="usb.product_id" int="29848">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Lenovo A820</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6127">
+    <match key="usb.product_id" int="30140">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Lenovo IdeaPad A3000 (ID1)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6127">
+    <match key="usb.product_id" int="30142">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Lenovo IdeaPad A3000 (ID2)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6127">
+    <match key="usb.product_id" int="30018">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Lenovo IdeaTab A2109A</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6127">
+    <match key="usb.product_id" int="30077">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Lenovo IdeaTab S2210a</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6127">
+    <match key="usb.product_id" int="30440">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Lenovo IdeaTab S5000</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6127">
+    <match key="usb.product_id" int="29706">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Lenovo K1</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6127">
+    <match key="usb.product_id" int="30851">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Lenovo K3 Note</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6127">
+    <match key="usb.product_id" int="30133">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Lenovo K900 (ID1)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6127">
+    <match key="usb.product_id" int="30554">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Lenovo LifeTab E733X</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6127">
+    <match key="usb.product_id" int="29900">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Lenovo Lifetab S9512</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6127">
+    <match key="usb.product_id" int="3074">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Lenovo P70-A</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6127">
+    <match key="usb.product_id" int="29847">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Lenovo P700</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6127">
+    <match key="usb.product_id" int="29862">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Lenovo P780</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6127">
+    <match key="usb.product_id" int="29944">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Lenovo S660</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6127">
+    <match key="usb.product_id" int="30488">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Lenovo S930</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6127">
+    <match key="usb.product_id" int="29724">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Lenovo ThinkPad Tablet</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6127">
+    <match key="usb.product_id" int="30450">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Lenovo Toga Tablet B6000-F</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6127">
+    <match key="usb.product_id" int="30698">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Lenovo Vibe Z2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6127">
+    <match key="usb.product_id" int="30463">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Lenovo Yoga Tablet 10 B8000-H</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6127">
+    <match key="usb.product_id" int="30641">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Lenovo Yoga Tablet 2 Pro</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4100">
+    <match key="usb.product_id" int="25073">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. Android phone (ID1)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4100">
+    <match key="usb.product_id" int="25081">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. Android phone (ID2)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4100">
+    <match key="usb.product_id" int="25215">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. G3</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4100">
+    <match key="usb.product_id" int="25198">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. G3 (VS985)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4100">
+    <match key="usb.product_id" int="24859">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. GR-500 Music Player</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4100">
+    <match key="usb.product_id" int="24719">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. KC910 Renoir Mobile Phone</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4100">
+    <match key="usb.product_id" int="24882">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. KM900</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4100">
+    <match key="usb.product_id" int="25406">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. LG G Flex 2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4100">
+    <match key="usb.product_id" int="25145">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. LG VS870</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4100">
+    <match key="usb.product_id" int="25149">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. LG VS890</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4100">
+    <match key="usb.product_id" int="25116">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. LG VS980</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4100">
+    <match key="usb.product_id" int="25125">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. LG2 Optimus</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4100">
+    <match key="usb.product_id" int="24986">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. LG8575</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1086">
+    <match key="usb.product_id" int="28736">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. T54</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1086">
+    <match key="usb.product_id" int="28849">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. UP3</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4100">
+    <match key="usb.product_id" int="25372">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. Various E and P models</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4100">
+    <match key="usb.product_id" int="25189">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. VK810</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4100">
+    <match key="usb.product_id" int="24592">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. VX8550 V CAST Mobile Phone</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4100">
+    <match key="usb.product_id" int="24581">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">LG T5100</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3478">
+    <match key="usb.product_id" int="16640">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Lifetec LT 5995</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="5073">
+    <match key="usb.product_id" int="28674">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Logik LOG DAX MP3 and DAB Player</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1133">
+    <match key="usb.product_id" int="2304">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Logitech Clicksmart 310</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1133">
+    <match key="usb.product_id" int="2384">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Logitech Pocket Digital</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3478">
+    <match key="usb.product_id" int="16640">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Maginon SX-410z</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3478">
+    <match key="usb.product_id" int="13056">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Maginon SX330z</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="37152">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Magpix B350</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1276">
+    <match key="usb.product_id" int="20555">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Maxell Max Pocket</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1647">
+    <match key="usb.product_id" int="33900">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Maxfield G-Flash NG 1GB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2329">
+    <match key="usb.product_id" int="256">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Media-Tech mt-406</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3725">
+    <match key="usb.product_id" int="80">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">MediaTek Inc MT5xx and MT6xx SoCs</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1032">
+    <match key="usb.product_id" int="45066">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Medion Lifetab P9514</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6127">
+    <match key="usb.product_id" int="29827">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Medion Lifetab P9516</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1276">
+    <match key="usb.product_id" int="20554">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Medion MD 5319</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3478">
+    <match key="usb.product_id" int="16640">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Medion MD 6000</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1482">
+    <match key="usb.product_id" int="8709">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Medion MD 6126</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3478">
+    <match key="usb.product_id" int="16642">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Medion MD 9700</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1647">
+    <match key="usb.product_id" int="34128">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Medion MD8333 (ID1)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1647">
+    <match key="usb.product_id" int="34184">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Medion MD8333 (ID2)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1032">
+    <match key="usb.product_id" int="45065">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Medion MD99000 (P9514)/Olivetti Olipad 110</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4721">
+    <match key="usb.product_id" int="8210">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Megafon Login+</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8222">
+    <match key="usb.product_id" int="17067">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Megafon MFLogin3T</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10821">
+    <match key="usb.product_id" int="8200">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Meizu MX Phone (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10821">
+    <match key="usb.product_id" int="3074">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Meizu MX Phone (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4310">
+    <match key="usb.product_id" int="8960">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Memorex or iRiver MMP 8585/8586 or iRiver E200</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3504">
+    <match key="usb.product_id" int="21874">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Micro-Star International P610/Model MS-5557</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1363">
+    <match key="usb.product_id" int="514">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Micromaxx Digital Camera</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1118">
+    <match key="usb.product_id" int="1600">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Microsoft Kin 1</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1118">
+    <match key="usb.product_id" int="1570">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Microsoft Windows MTP Simulator</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1118">
+    <match key="usb.product_id" int="1260">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Microsoft Windows Phone</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1118">
+    <match key="usb.product_id" int="1808">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Microsoft Zune</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1118">
+    <match key="usb.product_id" int="1598">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Microsoft Zune HD</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1118">
+    <match key="usb.product_id" int="61642">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Microsoft/HTC HTC 8S</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1118">
+    <match key="usb.product_id" int="201">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Microsoft/Intel Bandon Portable Media Center</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1118">
+    <match key="usb.product_id" int="1601">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Microsoft/Sharp/nVidia Kin TwoM</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3141">
+    <match key="usb.product_id" int="32776">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Mini Shotz ms-350</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2125">
+    <match key="usb.product_id" int="3">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Minton S-Cam F5</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="37152">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Mitek CD10</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="37152">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Mitek CD30P</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8888">
+    <match key="usb.product_id" int="24778">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Motorola A1200</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8888">
+    <match key="usb.product_id" int="28808">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Motorola Atrix MB860 (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8888">
+    <match key="usb.product_id" int="25807">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Motorola Atrix XT687 (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8888">
+    <match key="usb.product_id" int="11826">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Motorola Atrix/Razr HD (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8888">
+    <match key="usb.product_id" int="11827">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Motorola Atrix/Razr HD (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8888">
+    <match key="usb.product_id" int="11879">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Motorola Droid Maxx (XT1080)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8888">
+    <match key="usb.product_id" int="11941">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Motorola Droid Turbo (XT1254)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8888">
+    <match key="usb.product_id" int="11944">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Motorola Droid Turbo Verizon</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8888">
+    <match key="usb.product_id" int="11880">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Motorola Droid Ultra</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8888">
+    <match key="usb.product_id" int="16854">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Motorola Droid X/MB525 (Defy)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8888">
+    <match key="usb.product_id" int="16858">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Motorola DROID2 (ID1)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8888">
+    <match key="usb.product_id" int="17063">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Motorola DROID2 (ID2)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8888">
+    <match key="usb.product_id" int="17279">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Motorola DROID4</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8888">
+    <match key="usb.product_id" int="17267">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Motorola DROID4 (PTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8888">
+    <match key="usb.product_id" int="18449">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Motorola IdeaPad K1</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8888">
+    <match key="usb.product_id" int="16860">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Motorola Milestone / Verizon Droid</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8888">
+    <match key="usb.product_id" int="28874">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Motorola Milestone X2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8888">
+    <match key="usb.product_id" int="11894">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Motorola Moto G (ID1)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8888">
+    <match key="usb.product_id" int="11906">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Motorola Moto G (ID2)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8888">
+    <match key="usb.product_id" int="11908">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Motorola Moto G (XT1032)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8888">
+    <match key="usb.product_id" int="11874">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Motorola Moto X (XT1053)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8888">
+    <match key="usb.product_id" int="11875">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Motorola Moto X (XT1058)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8888">
+    <match key="usb.product_id" int="11878">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Motorola Moto X (XT1080)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8888">
+    <match key="usb.product_id" int="25619">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Motorola MTP Test Command Interface</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8888">
+    <match key="usb.product_id" int="25781">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Motorola Razr D1/D3/i (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8888">
+    <match key="usb.product_id" int="25782">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Motorola Razr D1/D3/i (MTP+?)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8888">
+    <match key="usb.product_id" int="11856">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Motorola RAZR M XT907 (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8888">
+    <match key="usb.product_id" int="11857">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Motorola RAZR M XT907 (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8888">
+    <match key="usb.product_id" int="25621">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Motorola RAZR2 V8/U9/Z6</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8888">
+    <match key="usb.product_id" int="10853">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Motorola V3m/V750 verizon</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8888">
+    <match key="usb.product_id" int="28835">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Motorola Xoom (Factory test)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8888">
+    <match key="usb.product_id" int="28840">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Motorola Xoom (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8888">
+    <match key="usb.product_id" int="28841">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Motorola Xoom (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8888">
+    <match key="usb.product_id" int="17169">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Motorola Xoom 2 Media Edition</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8888">
+    <match key="usb.product_id" int="17158">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Motorola Xoom 2 Media Edition (ID2)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8888">
+    <match key="usb.product_id" int="16847">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Motorola Xoom 2 Media Edition (ID3)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8888">
+    <match key="usb.product_id" int="28941">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Motorola XT890/907/Razr (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8888">
+    <match key="usb.product_id" int="28942">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Motorola XT890/907/Razr (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8888">
+    <match key="usb.product_id" int="17250">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Motorola XT912/XT928</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1375">
+    <match key="usb.product_id" int="49664">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Mustek gSmart 300</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1375">
+    <match key="usb.product_id" int="41808">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Mustek gSmart 350</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1375">
+    <match key="usb.product_id" int="49696">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Mustek gSmart mini</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1375">
+    <match key="usb.product_id" int="50208">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Mustek gSmart mini 2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1375">
+    <match key="usb.product_id" int="50464">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Mustek gSmart mini 3</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2726">
+    <match key="usb.product_id" int="38401">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">MyMusix PD-6070</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1033">
+    <match key="usb.product_id" int="806">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">NEC Casio C811</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1033">
+    <match key="usb.product_id" int="1074">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">NEC Casio CA-201L</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1033">
+    <match key="usb.product_id" int="578">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">NEC FOMA N01A</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1026">
+    <match key="usb.product_id" int="22120">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nextar MA715A-8R</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="36956">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nexxtech Mini Digital Camera</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="770">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 2000 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="279">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 2100 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="290">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 2200 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="291">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 2200v1.1 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="265">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 2500 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="277">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 3100 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="289">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 3200 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="273">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 3500 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="285">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 3700 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="301">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 4100 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="516">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 4200 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="271">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 4300 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="267">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 4500 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="304">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 4600 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="305">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 4600a (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="297">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 4800 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="275">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 5000 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="518">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 5200 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="281">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 5400 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="302">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 5600 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="269">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 5700 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="309">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 5900 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="313">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 7600 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="311">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 7900 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="287">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 8700 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="259">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon CoolPix 880</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="295">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 8800 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="274">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 885 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="401">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 9400  (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="258">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon CoolPix 990</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="550">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix A (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="392">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix AW100 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="520">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix L1 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="779">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix L10 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="777">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix L11 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="382">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix L110 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="351">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix L12 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="389">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix L120 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="789">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix L16 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="792">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix L19 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="791">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix L20 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="804">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix L23 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="835">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix L27</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="773">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix L4 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="402">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix L820  (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="320">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P1 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="381">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P100 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="322">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P2 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="545">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P300 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="551">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P330 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="524">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P4 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="361">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P50 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="388">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P500 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="347">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P5000 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="547">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P510 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="355">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P5100 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="552">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P520 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="785">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P60 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="367">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P6000 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="383">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P7000 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="395">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P7100 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="549">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P7700 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="553">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P7800 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="363">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P80 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="364">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P80 v1.1 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="371">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P90 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="823">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S01</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="838">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S02</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="334">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S2 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="353">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S200 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="375">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S220 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="376">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S225 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="801">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S2500 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="813">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S2600 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="831">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S2700</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="795">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S3000 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="800">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S3100 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="820">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S3200</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="810">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S3300 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="324">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S4 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="809">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S4300 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="349">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S500 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="544">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S5100 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="334">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S6 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="369">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S60 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="542">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S6000 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="540">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S620 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="343">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S7c (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="543">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S8000 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="546">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S8200</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="390">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S9100 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="403">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S9500 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="843">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S9700</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="514">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix SQ (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1028">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon D2H SLR (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1036">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon D2Hs (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1032">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon D2X SLR (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1052">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon D3 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1034">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon D50 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1026">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon DSC D100 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1040">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon DSC D200 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1046">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon DSC D2Xs (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1050">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon DSC D300 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1060">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon DSC D3000 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1061">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon DSC D300s (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1063">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon DSC D3100 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1068">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon DSC D3200</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1075">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon DSC D3300</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1062">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon DSC D3s (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1056">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon DSC D3x (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1067">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon DSC D4</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1044">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon DSC D40 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1048">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon DSC D40x (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1077">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon DSC D4s</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1059">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon DSC D5000 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1065">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon DSC D5100 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1071">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon DSC D5200</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1073">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon DSC D5300</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1054">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon DSC D60 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1069">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon DSC D600</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1076">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon DSC D610</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1030">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon DSC D70 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1058">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon DSC D700 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1064">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon DSC D7000 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1038">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon DSC D70s (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1072">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon DSC D7100</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1079">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon DSC D750</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1042">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon DSC D80 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1066">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon DSC D800</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1070">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon DSC D800E</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1078">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon DSC D810</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1057">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon DSC D90 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1538">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon J1</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1539">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon J2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1541">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon J3</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1545">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon J4</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1542">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon S1</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1537">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon V1</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1200">
+    <match key="usb.product_id" int="1540">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nikon V2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1276">
+    <match key="usb.product_id" int="20554">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">nisis Quickpix Qp3</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2425">
+    <match key="usb.product_id" int="548">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">NogaNet TDC-15</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="705">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia 2710</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="101">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia 3109c Mobile Phone</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="95">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia 3110c Mobile Phone</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="1122">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia 3250 Mobile Phone</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="494">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia 3710</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="521">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia 5130 XpressMusic</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="1214">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia 5200 Mobile Phone</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="738">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia 5230</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="1210">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia 5300 Mobile Phone</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="108">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia 5310 XpressMusic</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="234">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia 5320 XpressMusic</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="1150">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia 5500 Sport Mobile Phone</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="553">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia 5530</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="1204">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia 5700 XpressMusic Mobile Phone</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="340">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia 5800 XpressMusic</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="341">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia 5800 XpressMusic v2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="345">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia 5800 XpressMusic v3</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="46">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia 6120c Classic Mobile Phone</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="152">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia 6210 Navigator</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="141">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia 6220 Classic</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="60">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia 6500c Classic Mobile Phone</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="663">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia 6600i</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="1491">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia 808 PureView</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="1426">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia C5-00</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="961">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia C7</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="973">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia C7 (ID2)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="463">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia E52</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="815">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia E6</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="377">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia E63</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="229">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia E66</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="820">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia E7</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="821">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia E7 (Ovi mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="228">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia E71</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="417">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia E71x</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="545">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia E72</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="1788">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia Lumia (RM-975)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="1638">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia Lumia 301</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="1633">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia Lumia WP8</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="1316">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia N300</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="1160">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Nokia N73</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="1233">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia N73 Mobile Phone</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="1249">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia N75 Mobile Phone</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="121">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia N78 Mobile Phone</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="390">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia N79</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="766">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia N8</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="770">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia N8 (Ovi mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="1265">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia N80 Internet Edition (Media Player)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="10">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia N81 Mobile Phone</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="116">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia N82 Mobile Phone</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="146">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia N85 Mobile Phone</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="1306">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia N9</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="1157">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia N91 Mobile Phone</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="1144">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia N93 Mobile Phone</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="1253">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia N93i Mobile Phone</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="1263">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia N95 Mobile Phone</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="110">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia N95 Mobile Phone 8GB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="978">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia N950</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="57">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia N96 Mobile Phone</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="501">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia N97</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="619">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia N97 mini</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="500">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia N97-1</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="628">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia X6</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1057">
+    <match key="usb.product_id" int="1768">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Nokia XL</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="5891">
+    <match key="usb.product_id" int="1">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">NormSoft, Inc. Pocket Tunes</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="5891">
+    <match key="usb.product_id" int="2">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">NormSoft, Inc. Pocket Tunes 4</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2389">
+    <match key="usb.product_id" int="28841">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">nVidia CM9-Adam</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2389">
+    <match key="usb.product_id" int="46080">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">nVidia Shield (ID1)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2389">
+    <match key="usb.product_id" int="52999">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">nVidia Shield (ID2)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2389">
+    <match key="usb.product_id" int="52994">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">nVidia Tegra Note</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2389">
+    <match key="usb.product_id" int="28928">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">nVidia Various tablets (ID1)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2389">
+    <match key="usb.product_id" int="28930">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">nVidia Various tablets (ID2)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="7763">
+    <match key="usb.product_id" int="6">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">O2 Sistemas ZoltarTV</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1972">
+    <match key="usb.product_id" int="256">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Olympus C-2100UZ</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1972">
+    <match key="usb.product_id" int="256">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Olympus C-3000Z</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1972">
+    <match key="usb.product_id" int="256">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Olympus C-3030Z</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1972">
+    <match key="usb.product_id" int="276">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Olympus C-310Z</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1972">
+    <match key="usb.product_id" int="276">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Olympus C-350Z</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1972">
+    <match key="usb.product_id" int="276">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Olympus C-5500Z</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1972">
+    <match key="usb.product_id" int="276">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Olympus C-55Z</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1972">
+    <match key="usb.product_id" int="276">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Olympus D-540Z</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1972">
+    <match key="usb.product_id" int="276">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Olympus D-560Z</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1972">
+    <match key="usb.product_id" int="272">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Olympus E series (Control)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1972">
+    <match key="usb.product_id" int="303">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Olympus E-M5</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1972">
+    <match key="usb.product_id" int="303">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Olympus E-PL5</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1972">
+    <match key="usb.product_id" int="278">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Olympus FE4000</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1972">
+    <match key="usb.product_id" int="276">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Olympus IR-300</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1972">
+    <match key="usb.product_id" int="275">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Olympus mju 500</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1972">
+    <match key="usb.product_id" int="303">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Olympus SP-720UZ</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1972">
+    <match key="usb.product_id" int="276">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Olympus X-100</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1972">
+    <match key="usb.product_id" int="276">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Olympus X-250</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1972">
+    <match key="usb.product_id" int="278">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Olympus X920</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1972">
+    <match key="usb.product_id" int="278">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Olympus X925</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8921">
+    <match key="usb.product_id" int="10085">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Oppo Find 7 (ID 1)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8921">
+    <match key="usb.product_id" int="10100">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Oppo Find 7 (ID 2)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8921">
+    <match key="usb.product_id" int="10099">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Oppo X9006</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2329">
+    <match key="usb.product_id" int="256">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Oregon Scientific DShot II</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2329">
+    <match key="usb.product_id" int="256">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Oregon Scientific DShot III</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1242">
+    <match key="usb.product_id" int="9076">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Panasonic DMC-FS62</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1242">
+    <match key="usb.product_id" int="9076">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Panasonic DMC-FZ20</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1242">
+    <match key="usb.product_id" int="9076">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Panasonic DMC-FZ38</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1242">
+    <match key="usb.product_id" int="9076">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Panasonic DMC-FZ45</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1242">
+    <match key="usb.product_id" int="9076">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Panasonic DMC-FZ50</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1242">
+    <match key="usb.product_id" int="9076">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Panasonic DMC-GF1</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1242">
+    <match key="usb.product_id" int="9076">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Panasonic DMC-LS2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1242">
+    <match key="usb.product_id" int="9076">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Panasonic DMC-LS3</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1242">
+    <match key="usb.product_id" int="9076">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Panasonic DMC-LX7</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1242">
+    <match key="usb.product_id" int="9076">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Panasonic DMC-TZ15</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1242">
+    <match key="usb.product_id" int="9076">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Panasonic DMC-TZ18</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1242">
+    <match key="usb.product_id" int="9076">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Panasonic DMC-TZ8</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1242">
+    <match key="usb.product_id" int="8517">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Panasonic P905i</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1242">
+    <match key="usb.product_id" int="8536">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Panasonic P906i</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4204">
+    <match key="usb.product_id" int="61443">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Pantech Crux</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="7501">
+    <match key="usb.product_id" int="20534">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Pegatron Chagall</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="7501">
+    <match key="usb.product_id" int="20533">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Pegatron Chagall (ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="7501">
+    <match key="usb.product_id" int="20554">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Pegatron Hudl 2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1363">
+    <match key="usb.product_id" int="514">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Pencam TEVION MD 9456</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="9723">
+    <match key="usb.product_id" int="357">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Pentax K3 (PTP Mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2583">
+    <match key="usb.product_id" int="13">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Pentax Optio 43WR</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2583">
+    <match key="usb.product_id" int="247">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Pentax Optio W90</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2726">
+    <match key="usb.product_id" int="38658">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Perception Digital, Ltd Gigaware GX400</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1137">
+    <match key="usb.product_id" int="8316">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Philips GoGear Aria</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1137">
+    <match key="usb.product_id" int="8377">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Philips GoGear Ariaz</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1137">
+    <match key="usb.product_id" int="8504">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Philips GoGear Ariaz/97</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1137">
+    <match key="usb.product_id" int="357">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Philips GoGear Audio</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1137">
+    <match key="usb.product_id" int="8311">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Philips GoGear Muse</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1137">
+    <match key="usb.product_id" int="8334">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Philips GoGear SA1VBE08KX/78</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1137">
+    <match key="usb.product_id" int="8196">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Philips GoGear SA3345</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1137">
+    <match key="usb.product_id" int="2135">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Philips GoGear SA5145</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1137">
+    <match key="usb.product_id" int="2126">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Philips GoGear SA6014/SA6015/SA6024/SA6025/SA6044/SA6045</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1137">
+    <match key="usb.product_id" int="8194">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Philips GoGear SA6125/SA6145/SA6185</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1137">
+    <match key="usb.product_id" int="335">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Philips GoGear SA9200</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1137">
+    <match key="usb.product_id" int="8309">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Philips GoGear ViBE SA1VBE04</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1137">
+    <match key="usb.product_id" int="8315">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Philips GoGear ViBE SA1VBE04/08</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1137">
+    <match key="usb.product_id" int="8375">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Philips GoGear VIBE SA2VBE[08|16]K/02</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1137">
+    <match key="usb.product_id" int="8421">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Philips GoGear Vibe/02</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1137">
+    <match key="usb.product_id" int="333">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Philips HDD085/00 or HDD082/17</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1137">
+    <match key="usb.product_id" int="332">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Philips HDD14XX,HDD1620 or HDD1630/17</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1137">
+    <match key="usb.product_id" int="491">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Philips HDD6320</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1137">
+    <match key="usb.product_id" int="331">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Philips HDD6320/00 or HDD6330/17</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1137">
+    <match key="usb.product_id" int="6411">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Philips i908</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2362">
+    <match key="usb.product_id" int="270">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Philips P44417B keychain camera</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1137">
+    <match key="usb.product_id" int="8592">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Philips PI3900B2/58 </merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1137">
+    <match key="usb.product_id" int="32257">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Philips PSA235</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1137">
+    <match key="usb.product_id" int="385">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Philips PSA610</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1137">
+    <match key="usb.product_id" int="356">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Philips SA1115/55</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1137">
+    <match key="usb.product_id" int="8226">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Philips SA5285</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1137">
+    <match key="usb.product_id" int="370">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Philips Shoqbox</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1363">
+    <match key="usb.product_id" int="514">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Phoebe Smartcam</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2276">
+    <match key="usb.product_id" int="322">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Pioneer DVR-LX60D</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2276">
+    <match key="usb.product_id" int="328">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Pioneer XMP3</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2362">
+    <match key="usb.product_id" int="270">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Pixart Gemini Keychain Camera</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="36956">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Pixie Princess Jelly-Soft</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="37152">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">PockCam</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1924">
+    <match key="usb.product_id" int="10376">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Polaroid DC700</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1350">
+    <match key="usb.product_id" int="8245">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Polaroid Freescape/MPU-433158</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1350">
+    <match key="usb.product_id" int="3503">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Polaroid PDC 2300Z</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="36956">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Praktica Slimpix</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="37152">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Precision Mini Digital Camera</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2362">
+    <match key="usb.product_id" int="271">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Precision Mini, Model HA513A</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10724">
+    <match key="usb.product_id" int="4611">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Prestigio 5504 DUO </merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10724">
+    <match key="usb.product_id" int="4355">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Prestigio 5505 DUO </merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1924">
+    <match key="usb.product_id" int="21248">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Pretec dc530</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1276">
+    <match key="usb.product_id" int="65535">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">PureDigital Ritz Disposable</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1478">
+    <match key="usb.product_id" int="34816">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Qualcomm (for Gigabyte) GSmart G1342</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1478">
+    <match key="usb.product_id" int="61443">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Qualcomm (for Highscreen) Omega Prime S</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1478">
+    <match key="usb.product_id" int="553">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Qualcomm (for Nokia) 5530 Xpressmusic</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1478">
+    <match key="usb.product_id" int="12694">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Qualcomm (for Nokia/Verizon) 6205 Balboa/Verizon Music Phone</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1478">
+    <match key="usb.product_id" int="26468">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Qualcomm (for OnePlus) One (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1478">
+    <match key="usb.product_id" int="26469">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Qualcomm (for OnePlus) One (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1478">
+    <match key="usb.product_id" int="36921">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Qualcomm (for PhiComm) C230w (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1478">
+    <match key="usb.product_id" int="36901">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Qualcomm (for Smartfren) Andromax U</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1363">
+    <match key="usb.product_id" int="514">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">QuickPix QP1</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3530">
+    <match key="usb.product_id" int="4">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Radioshack Flatfoto</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1924">
+    <match key="usb.product_id" int="256">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">RCA CDS1005</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10007">
+    <match key="usb.product_id" int="4704">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Redmi 1S (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10007">
+    <match key="usb.product_id" int="4712">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Redmi HM 1S (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="37152">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Request Ultra Slim</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1482">
+    <match key="usb.product_id" int="8715">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Ricoh Capilo RX</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1482">
+    <match key="usb.product_id" int="8707">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio 300G</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1482">
+    <match key="usb.product_id" int="8708">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio G3</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1482">
+    <match key="usb.product_id" int="8712">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio G4</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1482">
+    <match key="usb.product_id" int="8716">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio GX</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1482">
+    <match key="usb.product_id" int="805">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio GX (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1482">
+    <match key="usb.product_id" int="8724">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio GX 8</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1482">
+    <match key="usb.product_id" int="813">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio GX 8 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1482">
+    <match key="usb.product_id" int="8717">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio R1</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1482">
+    <match key="usb.product_id" int="8722">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio R1v</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1482">
+    <match key="usb.product_id" int="811">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio R1v (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1482">
+    <match key="usb.product_id" int="8723">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio R2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1482">
+    <match key="usb.product_id" int="8726">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio R3</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1482">
+    <match key="usb.product_id" int="815">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio R3 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1482">
+    <match key="usb.product_id" int="8727">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio R4</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1482">
+    <match key="usb.product_id" int="8730">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio R5</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1482">
+    <match key="usb.product_id" int="272">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio R5 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1482">
+    <match key="usb.product_id" int="8706">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio RR30</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1482">
+    <match key="usb.product_id" int="829">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio RR750 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1482">
+    <match key="usb.product_id" int="8717">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio RZ1</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4042">
+    <match key="usb.product_id" int="32775">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">RIM BlackBerry Storm/9650</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1482">
+    <match key="usb.product_id" int="8719">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Rollei dr5</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1482">
+    <match key="usb.product_id" int="8719">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Rollei dr5 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="37181">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sakar 23070  Crayola Digital Cam</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="37181">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sakar 28290 and 28292  Digital C</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="37181">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sakar 92045  Spiderman</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2425">
+    <match key="usb.product_id" int="551">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sakar clipshot no. 1169x</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3141">
+    <match key="usb.product_id" int="32771">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sakar Digital Keychain 11199</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3141">
+    <match key="usb.product_id" int="32771">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sakar Digital no, 6637x</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3141">
+    <match key="usb.product_id" int="32771">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sakar Digital no, 67480</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2362">
+    <match key="usb.product_id" int="270">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sakar Digital no. 56379 Spyshot</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2362">
+    <match key="usb.product_id" int="271">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sakar Digital no. 77379</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2425">
+    <match key="usb.product_id" int="551">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sakar Dora the Explorer no. 88067</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2425">
+    <match key="usb.product_id" int="551">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sakar Hello Kitty no. 94009</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="37152">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sakar Kidz Cam 86379</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2425">
+    <match key="usb.product_id" int="551">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sakar Kidz-Cam no. 88379</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="36956">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sakar Micro Digital 2428x</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2425">
+    <match key="usb.product_id" int="551">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sakar Nickelodeon iCarly no. 88061</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2362">
+    <match key="usb.product_id" int="271">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sakar no. 1638x CyberPix</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2425">
+    <match key="usb.product_id" int="551">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sakar no. 75379</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2425">
+    <match key="usb.product_id" int="551">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sakar no. 81890</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2425">
+    <match key="usb.product_id" int="551">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sakar no. 91379</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2425">
+    <match key="usb.product_id" int="551">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sakar no. 98379</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2425">
+    <match key="usb.product_id" int="551">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sakar Star Wars kit no. 92022</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2425">
+    <match key="usb.product_id" int="551">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sakar Sticker Wizard no. 59379</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="26726">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Samsung EK-GC100</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="26407">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung F250 Mobile Phone</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="26720">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung Galaxy models (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="26716">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung Galaxy models (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="26743">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung Galaxy models Kies mode</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="26450">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung GT-B2700</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="26799">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung GT-B2710/Xcover 271</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="57868">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung GT-S5230</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="26649">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung GT-S8500</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="1188">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung I550W Phone</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="20255">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung Jet S8000</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="26420">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung Juke (SCH-U470)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="26178">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung M7600 Beat/GT-S8300T/SGH-F490/S8300</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="5132">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Samsung NX1</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="4996">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Samsung NX1000</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="26698">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Samsung S5620</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="26467">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung SAMSUNG Trance</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="26377">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung U600 Mobile Phone</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="26793">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung Vibrant SGH-T959/Captivate/Media player mode</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="26370">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung X830 Mobile Phone</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="20526">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung YH-820</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="20509">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung YH-920 (501d)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="20514">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung YH-920 (5022)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="20527">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung YH-925(-GS)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="20516">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung YH-925GS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="23055">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung YH-999 Portable Media Center/SGH-A707/SGH-L760V/SGH-U900/Verizon Intensity/Fascinate</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="20531">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung YH-J70J</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="1033">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung YP-900</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="20567">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung YP-F2J</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="20609">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung YP-K3</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="20570">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung YP-K5</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="20760">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung YP-M1</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="20611">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung YP-P2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="20762">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung YP-P3</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="20757">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung YP-Q1</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="20765">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung YP-Q2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="20784">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung YP-Q3</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="20773">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung YP-R0</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="20751">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung YP-R1</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="20782">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung YP-R2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="20625">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung YP-S3</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="20619">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung YP-S5</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="20618">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung YP-T10</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="20551">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung YP-T7J</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="20607">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung YP-T9</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="20564">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung YP-U2J (YP-U2JXB/XAA)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="20605">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung YP-U3</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="20627">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung YP-U4</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="20769">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung YP-U5</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="20791">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung YP-Z3</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1256">
+    <match key="usb.product_id" int="20540">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Samsung YP-Z5</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1921">
+    <match key="usb.product_id" int="29712">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa c150</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1921">
+    <match key="usb.product_id" int="29776">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa c240/c250</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1921">
+    <match key="usb.product_id" int="29778">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa c250 v2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1921">
+    <match key="usb.product_id" int="29746">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa Clip</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1921">
+    <match key="usb.product_id" int="29748">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa Clip v2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1921">
+    <match key="usb.product_id" int="29924">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa Clip Zip</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1921">
+    <match key="usb.product_id" int="29904">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa Clip+</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1921">
+    <match key="usb.product_id" int="29824">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa Connect</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1921">
+    <match key="usb.product_id" int="29728">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa e200/e250/e260/e270/e280</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1921">
+    <match key="usb.product_id" int="29730">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa e260/e280 v2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1921">
+    <match key="usb.product_id" int="29792">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa Express</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1921">
+    <match key="usb.product_id" int="29888">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa Fuze</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1921">
+    <match key="usb.product_id" int="29890">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa Fuze v2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1921">
+    <match key="usb.product_id" int="29920">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa Fuze+</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1921">
+    <match key="usb.product_id" int="29697">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa m200-tcc (MTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1921">
+    <match key="usb.product_id" int="29696">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa m230/m240</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1921">
+    <match key="usb.product_id" int="29744">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa m240/m250</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1921">
+    <match key="usb.product_id" int="29872">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa View</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1140">
+    <match key="usb.product_id" int="560">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sanyo VPC-C5 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1943">
+    <match key="usb.product_id" int="35073">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">ScanHex SX-35a</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1943">
+    <match key="usb.product_id" int="35081">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">ScanHex SX-35b</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1943">
+    <match key="usb.product_id" int="35089">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">ScanHex SX-35c</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2125">
+    <match key="usb.product_id" int="4097">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">ScanHex SX-35d</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2329">
+    <match key="usb.product_id" int="256">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Scott APX 30</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1482">
+    <match key="usb.product_id" int="851">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sea &amp; Sea 2G (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1482">
+    <match key="usb.product_id" int="8718">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sea &amp; Sea 5000G</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1482">
+    <match key="usb.product_id" int="807">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sea &amp; Sea 5000G (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="37152">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Shark 2-in-1 Mini</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="37152">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Shark SDC-513</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="37152">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Shark SDC-519</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1245">
+    <match key="usb.product_id" int="38497">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SHARP Corporation SBM203SH</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1245">
+    <match key="usb.product_id" int="38602">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SHARP Corporation SH-06E</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1161">
+    <match key="usb.product_id" int="49189">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SHARP Corporation SH930W</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2362">
+    <match key="usb.product_id" int="270">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Shift3</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1647">
+    <match key="usb.product_id" int="40976">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SigmaTel Inc. MTPMSCN Audio Player</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3191">
+    <match key="usb.product_id" int="4113">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">SiPix Blink 2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3191">
+    <match key="usb.product_id" int="4117">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">SiPix CAMeleon</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3191">
+    <match key="usb.product_id" int="4098">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">SiPix SC2100</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3191">
+    <match key="usb.product_id" int="4112">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">SiPix Snap</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3428">
+    <match key="usb.product_id" int="4097">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">SiPix Stylecam</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3191">
+    <match key="usb.product_id" int="4097">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">SiPix Web2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6390">
+    <match key="usb.product_id" int="258">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Sirius Stiletto</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6390">
+    <match key="usb.product_id" int="272">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Sirius Stiletto 2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3478">
+    <match key="usb.product_id" int="13056">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Skanhex SX-330z</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="7132">
+    <match key="usb.product_id" int="64191">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Slacker Inc. Slacker Portable Media Player</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3530">
+    <match key="usb.product_id" int="2">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">SMaL Ultra-Pocket</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3783">
+    <match key="usb.product_id" int="4104">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">So. Show 301</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="1870">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony Alpha-A3000</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="1990">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony Alpha-A5000 (Control)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="2391">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony Alpha-A5100 (Control)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="2279">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony Alpha-A5100 (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="2382">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony Alpha-A6000 (Control)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="2231">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony Alpha-A6000 (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="2387">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony Alpha-A77 M2 (Control)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="2381">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony Alpha-A7r (Control)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="2388">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony Alpha-A7S (Control)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="2274">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony Alpha-A7S (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="4756">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Sony DCR-SR75</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="704">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-A100 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="743">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-A900 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-F707V (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-F717 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-F828 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-H1 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-H2 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-H5 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="1347">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-HX100V (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="1567">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-HX200V (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="1774">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-HX300 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="1169">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-HX5V (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="2221">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-HX60V (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-N2 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-P10 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-P100 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-P120 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-P200 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-P30 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-P31 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-P32 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-P41 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-P43 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-P5 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-P50 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-P51 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-P52 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-P71 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-P72 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-P73 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-P92 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-P93 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-R1 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="1323">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-RX1 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="1322">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-RX100 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="1867">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-RX100M2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-S40 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-S60 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="662">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-S730 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-S75 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="662">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-S780 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-S85 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-T1 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-T10 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-T3 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-U10 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-U20 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-V1 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-W1 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-W12 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="835">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-W130 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="760">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-W200 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-W35 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="1340">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-W510 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony DSC-W55 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20853">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY IS12S Xperia Acro HD MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="41333">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY IS12S Xperia Acro HD MTP+UMS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="45429">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY IS12S Xperia Acro MTP+UMS+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="370">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY LT22i Xperia P MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20850">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY LT22i Xperia P MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="16754">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY LT22i Xperia P MTP+CDROM</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="390">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY LT25i Xperia V MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20870">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY LT25i Xperia V MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="16774">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY LT25i Xperia V MTP+CDROM</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="361">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY LT26i Xperia S MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20841">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY LT26i Xperia S MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="16745">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY LT26i Xperia S MTP+CDROM</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="373">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY LT26w Xperia Acro HD IS12S MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="16757">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY LT26w Xperia Acro HD IS12S MTP+CDROM</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="374">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY LT26w Xperia Acro HD SO-03D MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="16758">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY LT26w Xperia Acro HD SO-03D MTP+CDROM</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="375">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY LT28at Xperia Ion MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20855">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY LT28at Xperia Ion MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="16759">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY LT28at Xperia Ion MTP+CDROM</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="41335">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY LT28at Xperia Ion MTP+UMS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="45431">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY LT28at Xperia Ion MTP+UMS+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="376">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY LT29i Xperia GX MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20856">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY LT29i Xperia GX MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="16760">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY LT29i Xperia GX MTP+CDROM</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="386">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY LT30p Xperia T MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20866">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY LT30p Xperia T MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="16770">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY LT30p Xperia T MTP+CDROM</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="371">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY MT27i Xperia Sola MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20851">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY MT27i Xperia Sola MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="16755">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY MT27i Xperia Sola MTP+CDROM</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="41331">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY MT27i Xperia Sola MTP+UMS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="45427">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY MT27i Xperia Sola MTP+UMS+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony MVC-CD300 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony MVC-CD500 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="1839">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony NEX-3N (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="1656">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony NEX-6</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="860">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Sony NWZ-A726/NWZ-A728/NWZ-A768</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="805">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Sony NWZ-A815/NWZ-A818</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="859">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Sony NWZ-A826/NWZ-A828/NWZ-A829</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="1028">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Sony NWZ-A845</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="878">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Sony NWZ-B135</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="984">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Sony NWZ-B142F</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="1214">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Sony NWZ-B153F</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="1434">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Sony NWZ-B163F</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="1673">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Sony NWZ-B173F</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="1020">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Sony NWZ-E344/E345</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="1227">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Sony NWZ-E354</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="901">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Sony NWZ-E436F</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="1021">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Sony NWZ-E445</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="1446">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Sony NWZ-E464</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="806">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Sony NWZ-S516</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="1022">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Sony NWZ-S545</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="807">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Sony NWZ-S615F/NWZ-S616F/NWZ-S618F</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="910">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Sony NWZ-S638F</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="858">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Sony NWZ-S716F</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="908">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Sony NWZ-S739F</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="1228">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Sony NWZ-S754</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="1448">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Sony NWZ-S765</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="904">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Sony NWZ-W202</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="1211">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Sony NWZ-W252B</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="919">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Sony NWZ-X1050B/NWZ-X1060B</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="920">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Sony NWZ-X1051/NWZ-X1061</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="78">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony PTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="1191">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony SLT-A35 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="801">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony SLT-A350 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="1187">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony SLT-A55 (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="1641">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony SLT-A57</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="1846">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony SLT-A58</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="1847">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony SLT-A58 (Control)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="1396">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony SLT-A65V (PTP mode)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="1653">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">ptp</merge>
+     <merge key="camera.libgphoto2.name" type="string">Sony SLT-A99v</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20854">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY SO-03D Xperia Acro HD MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="41334">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY SO-03D Xperia Acro HD MTP+UMS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="45430">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY SO-03D Xperia Acro MTP+UMS+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="385">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY SO-05D Xperia SX MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20865">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY SO-05D Xperia SX MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="16769">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY SO-05D Xperia SX MTP+CDROM</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="1233">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Sony Sony Tablet P1</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="1459">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Sony Sony Tablet S</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1356">
+    <match key="usb.product_id" int="1460">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Sony Sony Tablet S1</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="369">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY ST15i Xperia U MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="368">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY ST21i Xperia Tipo MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20848">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY ST21i Xperia Tipo MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="16752">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY ST21i Xperia Tipo MTP+CDROM</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="384">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY ST23i Xperia Miro MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20864">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY ST23i Xperia Miro MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="16768">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY ST23i Xperia Miro MTP+CDROM</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20849">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY ST25i Xperia U MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="16753">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY ST25i Xperia U MTP+CDROM</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="382">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY ST27i/ST27a Xperia go MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20862">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY ST27i/ST27a Xperia go MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="16766">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY ST27i/ST27a Xperia go MTP+CDROM</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="41342">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY ST27i/ST27a Xperia go MTP+UMS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="45438">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY ST27i/ST27a Xperia go MTP+UMS+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="365">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY WT19i Live Walkman MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="408">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia A MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20888">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia A MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="419">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia C MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20899">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia C MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="16803">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia C MTP+CDROM</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="396">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia E MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20876">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia E MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="16780">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia E MTP+CDROM</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="444">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia E3 MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20924">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia E3 MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="444">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia E3 MTP+CDROM</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="459">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY XPeria E4g MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20939">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY XPeria E4g MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="16843">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY XPeria E4g MTP+CDROM</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="392">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia J MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20872">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia J MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="16776">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia J MTP+CDROM</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="402">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia L MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20882">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia L MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="16786">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia L MTP+CDROM</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="411">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia M MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20891">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia M MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="16795">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia M MTP+CDROM</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="427">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia M2 Dual MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20907">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia M2 Dual MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="16811">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia M2 Dual MTP+CDROM</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="426">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia M2 MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20906">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia M2 MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="16810">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia M2 MTP+CDROM</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="405">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia SP MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20885">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia SP MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="16789">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia SP MTP+CDROM</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="397">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia Tablet Z MTP 1</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="404">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia Tablet Z MTP 2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20877">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia Tablet Z MTP+ADB 1</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20884">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia Tablet Z MTP+ADB 2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="16781">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia Tablet Z MTP+CDROM 1</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="16788">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia Tablet Z MTP+CDROM 2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="403">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20883">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="16787">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z MTP+CDROM</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="438">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z Ultra MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="406">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z Ultra MTP (ID2)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="412">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z Ultra MTP (ID3)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20918">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z Ultra MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20886">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z Ultra MTP+ADB (ID2)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20892">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z Ultra MTP+ADB (ID3)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="16796">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z Ultra MTP+CDROM (ID3)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="423">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z1 Compact D5503</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="16807">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z1 Compact D5503 MTP+CDROM</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20903">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z1 Compact MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="414">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z1 MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20894">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z1 MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="16798">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z1 MTP+CDROM</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="431">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z2 MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20911">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z2 MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="16815">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z2 MTP+CDROM</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="443">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z3 Compact MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20923">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z3 Compact MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="16827">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z3 Compact MTP+CDROM</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="442">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z3 MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20922">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z3 MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="16826">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z3 MTP+CDROM</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="393">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia ZL MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20873">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia ZL MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="16777">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia ZL MTP+CDROM</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="407">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia ZR MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20887">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SONY Xperia ZR MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="326">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson c1605 Xperia Dual E MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20806">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson c1605 Xperia Dual E MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="217">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson C702</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="212">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson C902</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="239">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson C905</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="343">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson IS12S Xperia Acro MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20823">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson IS12S Xperia Acro MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="16727">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson IS12S Xperia Acro MTP+CDROM</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="334">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson j108i (Cedar)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="53572">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson j10i (Elm)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="324">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson j10i2 (Elm)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="57344">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson K550i</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="117">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson K850i</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20815">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson LT15i Xperia Arc MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="335">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson LT15i Xperia arc S MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="346">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson MK16i Xperia MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20826">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson MK16i Xperia MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="342">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson MT11i Xperia Neo MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20822">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson MT11i Xperia Neo MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="349">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson R800/R88i Xperia Play MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20829">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson R800/R88i Xperia Play MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="358">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson SK17i Xperia Mini Pro MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20838">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson SK17i Xperia Mini Pro MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="359">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson ST15i Xperia Mini MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20839">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson ST15i Xperia Mini MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="360">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson ST17i Xperia Active MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20840">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson ST17i Xperia Active MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="16744">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson ST17i Xperia Active MTP+CDROM</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="353">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson ST18a Xperia Ray MTP</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20833">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson ST18i Xperia Ray MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="251">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson T700</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="307">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson U5</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="314">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson U8i</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="4296">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson W302</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="243">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson W595</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="261">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson W705/W715</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="198">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson W760i</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="179">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson W890i</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="245">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson W902</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="118">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson W910</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="218">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson W980</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="274">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson W995</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4046">
+    <match key="usb.product_id" int="20845">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">SonyEricsson WT19i Live Walkman MTP+ADB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="36956">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Soundstar TDC-35</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1363">
+    <match key="usb.product_id" int="514">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">SpyPen Axys</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1363">
+    <match key="usb.product_id" int="514">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">SpyPen Cleo</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1363">
+    <match key="usb.product_id" int="514">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">SpyPen Luxo</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1363">
+    <match key="usb.product_id" int="514">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">SpyPen Memo</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1363">
+    <match key="usb.product_id" int="514">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">SpyPen Xion</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="37152">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">SQ chip camera</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2329">
+    <match key="usb.product_id" int="256">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">StarCam CP086</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1363">
+    <match key="usb.product_id" int="514">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">STM USB Dual-mode camera</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="36956">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Stop &amp; Shop 87096</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1363">
+    <match key="usb.product_id" int="514">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">STV0680</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="37181">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Suprema Digital Keychain Camera</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="37152">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">SY-2107C</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1105">
+    <match key="usb.product_id" int="53512">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">TCL Alcatel one touch 986+</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="5073">
+    <match key="usb.product_id" int="28695">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Technika MP-709</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2726">
+    <match key="usb.product_id" int="12305">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Tevion MD 81488</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1691">
+    <match key="usb.product_id" int="12341">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Thomson / RCA Lyra HC308A</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1691">
+    <match key="usb.product_id" int="1911">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Thomson / RCA Opal / Lyra MC4002</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1691">
+    <match key="usb.product_id" int="1908">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Thomson EM28 Series</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1691">
+    <match key="usb.product_id" int="1916">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Thomson Lyra MC5104B (M51 Series)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1691">
+    <match key="usb.product_id" int="12314">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Thomson RCA H106</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1691">
+    <match key="usb.product_id" int="12328">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Thomson scenium E308</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2329">
+    <match key="usb.product_id" int="256">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Tiger Fast Flicks</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1363">
+    <match key="usb.product_id" int="514">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Timlex CP075</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="5008">
+    <match key="usb.product_id" int="21589">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">TomTom Rider 40</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4571">
+    <match key="usb.product_id" int="4096">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Topfield TF5000PVR</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2352">
+    <match key="usb.product_id" int="2403">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Toshiba Excite AT300</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2352">
+    <match key="usb.product_id" int="12">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Toshiba Gigabeat</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2352">
+    <match key="usb.product_id" int="9">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Toshiba Gigabeat MEGF-40</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2352">
+    <match key="usb.product_id" int="29">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Toshiba Gigabeat MET401</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2352">
+    <match key="usb.product_id" int="26">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Toshiba Gigabeat MEU201</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2352">
+    <match key="usb.product_id" int="24">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Toshiba Gigabeat MEU202</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2352">
+    <match key="usb.product_id" int="17">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Toshiba Gigabeat P10</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2352">
+    <match key="usb.product_id" int="15">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Toshiba Gigabeat P20</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2352">
+    <match key="usb.product_id" int="16">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Toshiba Gigabeat S</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2352">
+    <match key="usb.product_id" int="25">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Toshiba Gigabeat T</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2352">
+    <match key="usb.product_id" int="22">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Toshiba Gigabeat U</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2352">
+    <match key="usb.product_id" int="20">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Toshiba Gigabeat V30</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4402">
+    <match key="usb.product_id" int="17207">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Toshiba PDR-M11</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4402">
+    <match key="usb.product_id" int="17202">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Toshiba PDR-M60</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4402">
+    <match key="usb.product_id" int="17205">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Toshiba PDR-M61</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="4402">
+    <match key="usb.product_id" int="17204">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Toshiba PDR-M65</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2352">
+    <match key="usb.product_id" int="28928">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Toshiba Thrive AT100/AT105</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3478">
+    <match key="usb.product_id" int="13056">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Traveler SX330z</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3478">
+    <match key="usb.product_id" int="16640">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Traveler SX410z</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="7784">
+    <match key="usb.product_id" int="2">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">TrekStor i.Beat Organix 2.0</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1026">
+    <match key="usb.product_id" int="1553">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">TrekStor i.Beat Sweez FM</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1647">
+    <match key="usb.product_id" int="33834">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">TrekStor Vibez 8/12GB</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2125">
+    <match key="usb.product_id" int="3">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Trust Familycam 300</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1750">
+    <match key="usb.product_id" int="46">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Trust PowerC@m 350FS</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1750">
+    <match key="usb.product_id" int="45">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Trust PowerC@m 350FT</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2250">
+    <match key="usb.product_id" int="272">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Trust Spyc@m 100</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1276">
+    <match key="usb.product_id" int="20554">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Trust Spyc@m 500F FLASH</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1943">
+    <match key="usb.product_id" int="32794">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Typhoon StyloCam</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1363">
+    <match key="usb.product_id" int="514">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">UMAX AstraPen</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3428">
+    <match key="usb.product_id" int="4097">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">UMAX AstraPix 320s</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.interface.class" int="6">
+    <match key="usb.interface.subclass" int="1">
+     <match key="usb.interface.protocol" int="1">
+      <merge key="info.category" type="string">camera</merge>
+      <addset key="info.capabilities" type="strlist">camera</addset>
+      <merge key="camera.access_method" type="string">ptp</merge>
+      <merge key="camera.libgphoto2.name" type="string">USB PTP Class Camera</merge>
+      <merge key="camera.libgphoto2.support" type="bool">true</merge>
+     </match>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8711">
+    <match key="usb.product_id" int="1">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Various Viewpia DR/bq Kepler</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8711">
+    <match key="usb.product_id" int="17">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Various Viewpia DR/bq Kepler Debugging</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1032">
+    <match key="usb.product_id" int="14489">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Verizon Ellipsis 7</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="37152">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">ViviCam3350</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="37152">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">ViviCam5B</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2425">
+    <match key="usb.product_id" int="551">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Vivitar Freelance</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2362">
+    <match key="usb.product_id" int="270">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Vivitar Mini Digital Camera</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="2362">
+    <match key="usb.product_id" int="271">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Vivitar Vivicam 55</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3141">
+    <match key="usb.product_id" int="32778">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Vivitar Vivicam3350B</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="36956">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Vivitar Vivicam35</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1161">
+    <match key="usb.product_id" int="57617">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Vizio (for Lenovo) LIFETAB S9714</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1161">
+    <match key="usb.product_id" int="49190">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Vizio Unknown 1</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1161">
+    <match key="usb.product_id" int="57408">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Vizio VTAB1008</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1329">
+    <match key="usb.product_id" int="8193">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Wacom Cintiq Companion Hybrid (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="3141">
+    <match key="usb.product_id" int="32769">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">Wild Planet Digital Spy Camera 70137</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="7763">
+    <match key="usb.product_id" int="7">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Wyplay Wyplayer</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10007">
+    <match key="usb.product_id" int="4968">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Xiaomi HM NOTE 1LTEW MIUI (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10007">
+    <match key="usb.product_id" int="4680">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Xiaomi Hongmi (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10007">
+    <match key="usb.product_id" int="4672">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Xiaomi Hongmi (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10007">
+    <match key="usb.product_id" int="61443">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Xiaomi Mi-2 (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10007">
+    <match key="usb.product_id" int="36921">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Xiaomi Mi-2 (MTP+ADB)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10007">
+    <match key="usb.product_id" int="65352">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Xiaomi Mi-2s (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10007">
+    <match key="usb.product_id" int="872">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Xiaomi Mi-3 (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10007">
+    <match key="usb.product_id" int="864">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Xiaomi Mi-3w (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10007">
+    <match key="usb.product_id" int="1632">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Xiaomi MiPad (MTP)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="8711">
+    <match key="usb.product_id" int="6">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">YiFang BQ Tesla</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10518">
+    <match key="usb.product_id" int="37197">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Yota Phone 2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10518">
+    <match key="usb.product_id" int="61443">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">Yota Phone 2 (ID2)</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="7871">
+    <match key="usb.product_id" int="32553">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">YU Yureka Vodafone smart turbo 4</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="1054">
+    <match key="usb.product_id" int="24576">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">ZiiLABS Zii EGG</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="10096">
+    <match key="usb.product_id" int="36956">
+     <merge key="info.category" type="string">camera</merge>
+     <addset key="info.capabilities" type="strlist">camera</addset>
+     <merge key="camera.access_method" type="string">proprietary</merge>
+     <merge key="camera.libgphoto2.name" type="string">ZINA Mini Digital Keychain Camer</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6610">
+    <match key="usb.product_id" int="835">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">ZTE Grand X In</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6610">
+    <match key="usb.product_id" int="65486">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">ZTE V5</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6610">
+    <match key="usb.product_id" int="580">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">ZTE V55 ID 1</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6610">
+    <match key="usb.product_id" int="581">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">ZTE V55 ID 2</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6610">
+    <match key="usb.product_id" int="774">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">ZTE V790/Blade 3</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6610">
+    <match key="usb.product_id" int="775">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">ZTE V880E</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+   <match key="usb.vendor_id" int="6610">
+    <match key="usb.product_id" int="899">
+     <merge key="info.category" type="string">portable_audio_player</merge>
+     <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
+     <merge key="portable_audio_player.access_method" type="string">user</merge>
+     <merge key="portable_audio_player.type" type="string">mtp</merge>
+     <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
+     <merge key="camera.libgphoto2.name" type="string">ZTE V985</merge>
+     <merge key="camera.libgphoto2.support" type="bool">true</merge>
+    </match>
+   </match>
+  </match>
+ </device>
+</deviceinfo>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2-2.5.8/40-libgphoto2.rules b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2-2.5.8/40-libgphoto2.rules
new file mode 100644
index 0000000..b9f0439
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2-2.5.8/40-libgphoto2.rules
@@ -0,0 +1,1955 @@
+# udev rules file for libgphoto2 devices (for udev 0.98 version)
+# Created from this library:
+#   libgphoto2      2.5.8          all camlibs, gcc, ltdl, no EXIF
+#   libgphoto2_port 0.12.0         gcc, ltdl, no USB, serial without locking
+#
+# this file is autogenerated, local changes will be LOST on upgrades
+ACTION!="add", GOTO="libgphoto2_rules_end"
+SUBSYSTEM!="usb|usb_device", GOTO="libgphoto2_usb_end"
+
+ATTRS{idVendor}=="0979", ATTRS{idProduct}=="0227", MODE="l36"
+ATTRS{idVendor}=="0502", ATTRS{idProduct}=="33c3", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0502", ATTRS{idProduct}=="33c4", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0502", ATTRS{idProduct}=="3643", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0502", ATTRS{idProduct}=="353c", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0502", ATTRS{idProduct}=="362d", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0502", ATTRS{idProduct}=="3586", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0502", ATTRS{idProduct}=="3348", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0502", ATTRS{idProduct}=="3349", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0502", ATTRS{idProduct}=="334a", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0502", ATTRS{idProduct}=="33d8", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0502", ATTRS{idProduct}=="337c", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0502", ATTRS{idProduct}=="337d", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0502", ATTRS{idProduct}=="33cb", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0502", ATTRS{idProduct}=="3325", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0502", ATTRS{idProduct}=="3341", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0502", ATTRS{idProduct}=="3344", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0502", ATTRS{idProduct}=="3345", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0502", ATTRS{idProduct}=="3389", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0502", ATTRS{idProduct}=="338a", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0502", ATTRS{idProduct}=="3378", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0502", ATTRS{idProduct}=="3514", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0502", ATTRS{idProduct}=="35a8", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0502", ATTRS{idProduct}=="3644", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0502", ATTRS{idProduct}=="3725", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0502", ATTRS{idProduct}=="3609", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0502", ATTRS{idProduct}=="3473", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0502", ATTRS{idProduct}=="355f", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0502", ATTRS{idProduct}=="3657", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0502", ATTRS{idProduct}=="33aa", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0502", ATTRS{idProduct}=="35e4", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0502", ATTRS{idProduct}=="361d", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="16d5", ATTRS{idProduct}=="8006", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="16d5", ATTRS{idProduct}=="8005", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0553", ATTRS{idProduct}=="0202", MODE="l36"
+ATTRS{idVendor}=="06bd", ATTRS{idProduct}=="0403", MODE="l36"
+ATTRS{idVendor}=="06bd", ATTRS{idProduct}=="0404", MODE="l36"
+ATTRS{idVendor}=="04fc", ATTRS{idProduct}=="504b", MODE="l36"
+ATTRS{idVendor}=="0553", ATTRS{idProduct}=="0202", MODE="l36"
+ATTRS{idVendor}=="04fc", ATTRS{idProduct}=="504a", MODE="l36"
+ATTRS{idVendor}=="0553", ATTRS{idProduct}=="0202", MODE="l36"
+ATTRS{idVendor}=="08ca", ATTRS{idProduct}=="0111", MODE="l36"
+ATTRS{idVendor}=="04fc", ATTRS{idProduct}=="504a", MODE="l36"
+ATTRS{idVendor}=="04fc", ATTRS{idProduct}=="504b", MODE="l36"
+ATTRS{idVendor}=="1bbb", ATTRS{idProduct}=="0168", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1bbb", ATTRS{idProduct}=="2008", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1bbb", ATTRS{idProduct}=="0c02", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1bbb", ATTRS{idProduct}=="a00e", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1bbb", ATTRS{idProduct}=="f003", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1bbb", ATTRS{idProduct}=="904d", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1bbb", ATTRS{idProduct}=="0167", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0979", ATTRS{idProduct}=="0227", MODE="l36"
+ATTRS{idVendor}=="1949", ATTRS{idProduct}=="0800", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1949", ATTRS{idProduct}=="0007", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1949", ATTRS{idProduct}=="0008", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1949", ATTRS{idProduct}=="000a", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1949", ATTRS{idProduct}=="000c", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1949", ATTRS{idProduct}=="0012", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1949", ATTRS{idProduct}=="000b", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1949", ATTRS{idProduct}=="000d", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1949", ATTRS{idProduct}=="0005", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1949", ATTRS{idProduct}=="00f2", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0979", ATTRS{idProduct}=="0224", MODE="l36"
+ATTRS{idVendor}=="05ac", ATTRS{idProduct}=="129a", MODE="l36"
+ATTRS{idVendor}=="05ac", ATTRS{idProduct}=="12ab", MODE="l36"
+ATTRS{idVendor}=="05ac", ATTRS{idProduct}=="1290", MODE="l36"
+ATTRS{idVendor}=="05ac", ATTRS{idProduct}=="1292", MODE="l36"
+ATTRS{idVendor}=="05ac", ATTRS{idProduct}=="1294", MODE="l36"
+ATTRS{idVendor}=="05ac", ATTRS{idProduct}=="1297", MODE="l36"
+ATTRS{idVendor}=="05ac", ATTRS{idProduct}=="12a0", MODE="l36"
+ATTRS{idVendor}=="05ac", ATTRS{idProduct}=="12a8", MODE="l36"
+ATTRS{idVendor}=="05ac", ATTRS{idProduct}=="1291", MODE="l36"
+ATTRS{idVendor}=="05ac", ATTRS{idProduct}=="1293", MODE="l36"
+ATTRS{idVendor}=="05ac", ATTRS{idProduct}=="1299", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="5008", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="5009", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="4002", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="1528", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="1529", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="1539", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="1538", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="14b9", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="1548", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="120a", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="131d", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="120c", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="1301", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="1303", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="1311", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="1321", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="31f3", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="1331", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="1333", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="3229", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="1307", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="2008", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="1357", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="1351", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="1309", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="130b", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="1313", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="1315", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="1335", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="130d", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="130f", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="1319", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="14ef", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="1568", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="1569", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="14bf", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="1518", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="1508", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="1509", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="14ad", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="149a", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="146b", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="145e", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="1458", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="31ab", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="1207", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="1341", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="131b", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e79", ATTRS{idProduct}=="1208", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0979", ATTRS{idProduct}=="0227", MODE="l36"
+ATTRS{idVendor}=="0553", ATTRS{idProduct}=="0202", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="9120", MODE="l36"
+ATTRS{idVendor}=="093a", ATTRS{idProduct}=="010f", MODE="l36"
+ATTRS{idVendor}=="093a", ATTRS{idProduct}=="010f", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="913c", MODE="l36"
+ATTRS{idVendor}=="0919", ATTRS{idProduct}=="0100", MODE="l36"
+ATTRS{idVendor}=="0979", ATTRS{idProduct}=="0227", MODE="l36"
+ATTRS{idVendor}=="093a", ATTRS{idProduct}=="010f", MODE="l36"
+ATTRS{idVendor}=="0979", ATTRS{idProduct}=="0227", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="905c", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="5a0f", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="4ce0", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="4ce1", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="514f", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="7773", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="540f", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="541f", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="550f", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="5500", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="4cd0", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="4cd1", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="521f", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="520f", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="4cc0", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="4cc1", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="5460", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="5468", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="5400", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="5410", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="5411", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="5466", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="7772", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="5506", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="5561", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="5200", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="5201", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="5210", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="5211", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="5214", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="5220", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="5221", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="5230", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="5231", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="4e00", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="4e01", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="4e0f", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="4e1f", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="4d00", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="4d01", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="4c80", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="4c81", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="4c90", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="4c91", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="4ca0", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="4ca1", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="561f", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="5f02", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="580f", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="581f", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="5480", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="5481", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="7781", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="5490", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="5491", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="9051", MODE="l36"
+ATTRS{idVendor}=="2080", ATTRS{idProduct}=="0006", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="2080", ATTRS{idProduct}=="0005", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04a5", ATTRS{idProduct}=="3003", MODE="l36"
+ATTRS{idVendor}=="1d45", ATTRS{idProduct}=="459d", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="2a47", ATTRS{idProduct}=="7f10", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="2a47", ATTRS{idProduct}=="2008", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="2a47", ATTRS{idProduct}=="0c02", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3047", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="31c2", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="31bd", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="31e6", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="31f3", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3268", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30c0", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="304d", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="31f7", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3066", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30bf", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3075", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30ba", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="310e", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30b4", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30ff", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="311c", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30fe", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="314f", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30f2", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="314e", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3116", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3184", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3119", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3174", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3136", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3160", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3174", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3115", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="31c4", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="314b", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="315f", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3173", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3193", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="31c1", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="309b", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="309b", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30c4", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3072", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30b6", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30f4", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3052", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3065", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3070", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3071", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30f1", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30ee", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="306a", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3088", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3087", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30a5", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="317b", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3270", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3083", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30bc", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3217", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="327f", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30ea", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3147", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="31d0", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3219", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30eb", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30ec", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3084", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3099", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3113", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30ef", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30ee", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30ee", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3110", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3146", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3145", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="31cf", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="319b", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="31ea", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3101", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3102", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3199", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="323a", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3218", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3215", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="323b", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3250", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3272", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3253", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="319a", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="326f", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3044", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3060", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3084", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3099", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3110", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3084", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3099", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30ee", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3110", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3145", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="31cf", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="323d", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3299", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="31cf", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3145", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="308e", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3241", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="32a9", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3225", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="31e6", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3193", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3046", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="304b", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30c4", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="306b", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3096", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="307c", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="307a", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30a0", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3096", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="308e", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3081", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3080", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30a9", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="306b", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="308d", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3082", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="307f", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3080", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="306b", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3096", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30a9", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3105", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="308e", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="304f", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3061", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="318e", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="31c3", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="323e", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3264", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="304e", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3062", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3191", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="31be", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="322a", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="324a", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3249", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3271", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3262", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3059", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3076", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="31f2", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30b8", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="31f1", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3261", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3058", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30b7", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3243", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30f9", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="310f", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30f8", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3155", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3149", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="317a", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="31bf", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="31ef", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30c2", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30c1", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3126", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="311b", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3150", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="314d", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="314c", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3177", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3176", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3074", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30fd", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30fc", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="313a", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3139", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="315b", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3073", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3117", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3138", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="315d", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30b5", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="309a", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3226", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="323f", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30b9", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30bb", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="31bc", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3288", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3289", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3048", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3233", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="318f", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="31df", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3258", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3055", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="306e", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="306f", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3085", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30b3", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3125", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="315a", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="309b", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3049", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="309c", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3041", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3236", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3045", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3051", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="325b", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3275", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30f0", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3043", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3065", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3070", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3071", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="311a", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3057", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="304c", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3066", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3056", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3075", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30ba", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="306c", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="306d", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3148", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3077", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30b4", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30b2", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30b1", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30fa", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3212", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="309b", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3072", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="314f", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30b6", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3184", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="31c4", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="31f4", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30c4", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30c0", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3137", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30f1", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30ff", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30f2", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="311c", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="30fe", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3119", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="314e", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3175", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="31c2", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3174", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="314b", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3196", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3115", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="31e6", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="31c1", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3193", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="318d", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="315e", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3192", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="31e0", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3211", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3234", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="325a", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3276", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="31e4", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="31c0", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="31f6", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="322c", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3228", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3245", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3244", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="325f", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3238", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="325c", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3277", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="329b", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3050", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="305c", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="31ea", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3217", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="323b", MODE="l36"
+ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3078", MODE="l36"
+ATTRS{idVendor}=="07cf", ATTRS{idProduct}=="1049", MODE="l36"
+ATTRS{idVendor}=="07cf", ATTRS{idProduct}=="1042", MODE="l36"
+ATTRS{idVendor}=="07cf", ATTRS{idProduct}=="104d", MODE="l36"
+ATTRS{idVendor}=="07cf", ATTRS{idProduct}=="104c", MODE="l36"
+ATTRS{idVendor}=="07cf", ATTRS{idProduct}=="117a", MODE="l36"
+ATTRS{idVendor}=="055f", ATTRS{idProduct}=="c200", MODE="l36"
+ATTRS{idVendor}=="04b7", ATTRS{idProduct}=="88a9", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="9120", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="905c", MODE="l36"
+ATTRS{idVendor}=="0553", ATTRS{idProduct}=="0202", MODE="l36"
+ATTRS{idVendor}=="0553", ATTRS{idProduct}=="1002", MODE="l36"
+ATTRS{idVendor}=="0553", ATTRS{idProduct}=="0202", MODE="l36"
+ATTRS{idVendor}=="0797", ATTRS{idProduct}=="8001", MODE="l36"
+ATTRS{idVendor}=="0979", ATTRS{idProduct}=="0224", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="905c", MODE="l36"
+ATTRS{idVendor}=="1e74", ATTRS{idProduct}=="6512", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1e53", ATTRS{idProduct}=="0005", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="9120", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="9120", MODE="l36"
+ATTRS{idVendor}=="0d96", ATTRS{idProduct}=="4100", MODE="l36"
+ATTRS{idVendor}=="03e8", ATTRS{idProduct}=="2182", MODE="l36"
+ATTRS{idVendor}=="03e8", ATTRS{idProduct}=="2180", MODE="l36"
+ATTRS{idVendor}=="0919", ATTRS{idProduct}=="0100", MODE="l36"
+ATTRS{idVendor}=="0e21", ATTRS{idProduct}=="0952", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e21", ATTRS{idProduct}=="0711", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e21", ATTRS{idProduct}=="0751", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e21", ATTRS{idProduct}=="0911", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e21", ATTRS{idProduct}=="0941", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e21", ATTRS{idProduct}=="0801", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e21", ATTRS{idProduct}=="0871", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e21", ATTRS{idProduct}=="0891", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e21", ATTRS{idProduct}=="0861", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e21", ATTRS{idProduct}=="0881", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e21", ATTRS{idProduct}=="0921", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e21", ATTRS{idProduct}=="0901", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e21", ATTRS{idProduct}=="0701", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e21", ATTRS{idProduct}=="0761", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0e21", ATTRS{idProduct}=="0931", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="041e", ATTRS{idProduct}=="4016", MODE="l36"
+ATTRS{idVendor}=="041e", ATTRS{idProduct}=="4007", MODE="l36"
+ATTRS{idVendor}=="041e", ATTRS{idProduct}=="400a", MODE="l36"
+ATTRS{idVendor}=="041e", ATTRS{idProduct}=="4012", MODE="l36"
+ATTRS{idVendor}=="041e", ATTRS{idProduct}=="400b", MODE="l36"
+ATTRS{idVendor}=="041e", ATTRS{idProduct}=="4013", MODE="l36"
+ATTRS{idVendor}=="041e", ATTRS{idProduct}=="4123", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="041e", ATTRS{idProduct}=="4157", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="041e", ATTRS{idProduct}=="4130", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="041e", ATTRS{idProduct}=="413c", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="041e", ATTRS{idProduct}=="4133", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="041e", ATTRS{idProduct}=="4161", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="041e", ATTRS{idProduct}=="4137", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="041e", ATTRS{idProduct}=="413d", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="041e", ATTRS{idProduct}=="4131", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="041e", ATTRS{idProduct}=="4150", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="041e", ATTRS{idProduct}=="4158", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="041e", ATTRS{idProduct}=="4152", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="041e", ATTRS{idProduct}=="411f", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="041e", ATTRS{idProduct}=="4153", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="041e", ATTRS{idProduct}=="413e", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="041e", ATTRS{idProduct}=="4151", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="041e", ATTRS{idProduct}=="4162", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="041e", ATTRS{idProduct}=="4169", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="041e", ATTRS{idProduct}=="4128", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="106c", ATTRS{idProduct}=="3215", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="084d", ATTRS{idProduct}=="0003", MODE="l36"
+ATTRS{idVendor}=="0d64", ATTRS{idProduct}=="1021", MODE="l36"
+ATTRS{idVendor}=="03e8", ATTRS{idProduct}=="2130", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="905c", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="9120", MODE="l36"
+ATTRS{idVendor}=="0c45", ATTRS{idProduct}=="8000", MODE="l36"
+ATTRS{idVendor}=="041e", ATTRS{idProduct}=="4132", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="041e", ATTRS{idProduct}=="412f", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="413c", ATTRS{idProduct}=="b10b", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="413c", ATTRS{idProduct}=="b11a", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="413c", ATTRS{idProduct}=="b11b", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="413c", ATTRS{idProduct}=="4500", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="905c", MODE="l36"
+ATTRS{idVendor}=="1f3a", ATTRS{idProduct}=="0c02", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="093a", ATTRS{idProduct}=="010e", MODE="l36"
+ATTRS{idVendor}=="0979", ATTRS{idProduct}=="0227", MODE="l36"
+ATTRS{idVendor}=="05da", ATTRS{idProduct}=="1018", MODE="l36"
+ATTRS{idVendor}=="0553", ATTRS{idProduct}=="0202", MODE="l36"
+ATTRS{idVendor}=="0919", ATTRS{idProduct}=="0100", MODE="l36"
+ATTRS{idVendor}=="0553", ATTRS{idProduct}=="0202", MODE="l36"
+ATTRS{idVendor}=="1183", ATTRS{idProduct}=="0001", MODE="l36"
+ATTRS{idVendor}=="05da", ATTRS{idProduct}=="1020", MODE="l36"
+ATTRS{idVendor}=="0553", ATTRS{idProduct}=="0202", MODE="l36"
+ATTRS{idVendor}=="0553", ATTRS{idProduct}=="0202", MODE="l36"
+ATTRS{idVendor}=="0aa6", ATTRS{idProduct}=="6021", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="9050", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="9052", MODE="l36"
+ATTRS{idVendor}=="10d6", ATTRS{idProduct}=="2200", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="093a", ATTRS{idProduct}=="010e", MODE="l36"
+ATTRS{idVendor}=="093a", ATTRS{idProduct}=="010f", MODE="l36"
+ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0403", MODE="l36"
+ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0402", MODE="l36"
+ATTRS{idVendor}=="2970", ATTRS{idProduct}=="2008", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="2970", ATTRS{idProduct}=="0c02", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1782", ATTRS{idProduct}=="4001", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="06d3", ATTRS{idProduct}=="21ba", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0dca", ATTRS{idProduct}=="0002", MODE="l36"
+ATTRS{idVendor}=="0dca", ATTRS{idProduct}=="0002", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="014a", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="01d2", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="01c6", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="01d3", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="021b", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="0193", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="01e0", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="01c0", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="01e4", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="019b", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="01c1", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="01c5", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="01d4", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="01e6", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="01fa", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="020e", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="022d", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="0271", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="0250", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="01dd", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="01db", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="01ef", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="0200", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="01e8", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="0209", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="0240", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="027d", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="0265", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="0298", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="01c4", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="01d7", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="01bf", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="0142", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="018f", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="029c", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="0233", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="026e", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="0263", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="02a6", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="0288", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="01d8", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="0201", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="020d", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="01fe", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="02b5", MODE="l36"
+ATTRS{idVendor}=="0553", ATTRS{idProduct}=="0202", MODE="l36"
+ATTRS{idVendor}=="04cb", ATTRS{idProduct}=="01c3", MODE="l36"
+ATTRS{idVendor}=="0919", ATTRS{idProduct}=="0100", MODE="l36"
+ATTRS{idVendor}=="04c5", ATTRS{idProduct}=="1140", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04c5", ATTRS{idProduct}=="133b", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="091e", ATTRS{idProduct}=="2585", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="9120", MODE="l36"
+ATTRS{idVendor}=="0919", ATTRS{idProduct}=="0100", MODE="l36"
+ATTRS{idVendor}=="0458", ATTRS{idProduct}=="7005", MODE="l36"
+ATTRS{idVendor}=="040d", ATTRS{idProduct}=="885c", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0414", ATTRS{idProduct}=="2008", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0414", ATTRS{idProduct}=="0c02", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0979", ATTRS{idProduct}=="0227", MODE="l36"
+ATTRS{idVendor}=="0979", ATTRS{idProduct}=="0227", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="9120", MODE="l36"
+ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="0007", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="0006", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="4e41", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="4e42", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="4e0f", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="4d00", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="2d02", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="740a", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="d10a", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="d109", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="4ee1", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="4ee2", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="b00a", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="70a8", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="4e25", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="4e26", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="05b3", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="7102", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="4ee5", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="2672", ATTRS{idProduct}=="0011", MODE="l36"
+ATTRS{idVendor}=="0797", ATTRS{idProduct}=="801c", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="9120", MODE="l36"
+ATTRS{idVendor}=="1302", ATTRS{idProduct}=="1016", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1302", ATTRS{idProduct}=="1017", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="093a", ATTRS{idProduct}=="010e", MODE="l36"
+ATTRS{idVendor}=="0553", ATTRS{idProduct}=="0202", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="7e1d", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="5d1d", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="5c1d", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="109b", ATTRS{idProduct}=="9106", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="109b", ATTRS{idProduct}=="9109", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="109b", ATTRS{idProduct}=="9105", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="6502", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="6202", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="7c02", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="7d02", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="6302", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="6602", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="7402", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="7802", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="7202", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="6e02", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="7902", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="6d02", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="6302", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="4102", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="6802", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="7102", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="6b02", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="6402", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="7602", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="6702", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="6c02", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="6a02", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="4202", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="7702", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="7e02", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="4302", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="4102", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="4402", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="4502", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="4102", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="6002", MODE="l36"
+ATTRS{idVendor}=="f003", ATTRS{idProduct}=="6002", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="8b02", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="8c02", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="7502", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="7b02", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="7302", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="7a02", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="8002", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="8102", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="8202", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="9b02", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="8402", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="8502", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="9602", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="9702", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="8702", MODE="l36"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="8802", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="685c", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="6860", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0c02", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="2008", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0ec6", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0ebd", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0dff", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0c93", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0ca8", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0dfe", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0de4", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="05fd", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0dd5", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0e31", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0e32", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0df5", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="07ae", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0dda", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0f91", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0f64", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0f63", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0f87", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0f5f", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0f60", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0dea", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0dd2", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="07ca", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0f25", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="061a", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0fb4", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0fb5", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="07cb", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="07d9", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0cec", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0df8", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0df9", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0dfa", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0dfb", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0dfc", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0dfd", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="07d8", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="2012", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="060b", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0dcd", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="f0ca", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0ba1", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0ba2", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1082", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="360f", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="361f", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1051", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1052", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="9153", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="9120", MODE="l36"
+ATTRS{idVendor}=="0489", ATTRS{idProduct}=="c025", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="093a", ATTRS{idProduct}=="010e", MODE="l36"
+ATTRS{idVendor}=="19ff", ATTRS{idProduct}=="0303", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="19ff", ATTRS{idProduct}=="0309", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="19ff", ATTRS{idProduct}=="0307", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="8087", ATTRS{idProduct}=="0a5f", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="8087", ATTRS{idProduct}=="0a15", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="8087", ATTRS{idProduct}=="0a16", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0630", MODE="l36"
+ATTRS{idVendor}=="8087", ATTRS{idProduct}=="0a5e", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="8087", ATTRS{idProduct}=="09fb", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0553", ATTRS{idProduct}=="0202", MODE="l36"
+ATTRS{idVendor}=="093a", ATTRS{idProduct}=="010f", MODE="l36"
+ATTRS{idVendor}=="4102", ATTRS{idProduct}=="112a", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="4102", ATTRS{idProduct}=="1126", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="4102", ATTRS{idProduct}=="1141", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="4102", ATTRS{idProduct}=="1142", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="4102", ATTRS{idProduct}=="1152", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="4102", ATTRS{idProduct}=="1167", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="4102", ATTRS{idProduct}=="1151", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="4102", ATTRS{idProduct}=="2101", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="4102", ATTRS{idProduct}=="2105", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="4102", ATTRS{idProduct}=="2102", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1006", ATTRS{idProduct}=="3004", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="4102", ATTRS{idProduct}=="1008", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="4102", ATTRS{idProduct}=="1122", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1006", ATTRS{idProduct}=="4002", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1006", ATTRS{idProduct}=="4003", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="4102", ATTRS{idProduct}=="1147", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="4102", ATTRS{idProduct}=="1113", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="4102", ATTRS{idProduct}=="1120", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="4102", ATTRS{idProduct}=="1117", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="4102", ATTRS{idProduct}=="1115", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="4102", ATTRS{idProduct}=="1114", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="4102", ATTRS{idProduct}=="1118", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="4102", ATTRS{idProduct}=="1119", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="4102", ATTRS{idProduct}=="1153", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="4102", ATTRS{idProduct}=="1134", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1042", ATTRS{idProduct}=="1143", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1e68", ATTRS{idProduct}=="1002", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="4102", ATTRS{idProduct}=="1116", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="4102", ATTRS{idProduct}=="1132", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0b20", ATTRS{idProduct}=="ddee", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0784", ATTRS{idProduct}=="0100", MODE="l36"
+ATTRS{idVendor}=="0979", ATTRS{idProduct}=="0227", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="905c", MODE="l36"
+ATTRS{idVendor}=="0979", ATTRS{idProduct}=="0227", MODE="l36"
+ATTRS{idVendor}=="0d96", ATTRS{idProduct}=="3300", MODE="l36"
+ATTRS{idVendor}=="0d96", ATTRS{idProduct}=="4100", MODE="l36"
+ATTRS{idVendor}=="05da", ATTRS{idProduct}=="1006", MODE="l36"
+ATTRS{idVendor}=="0d96", ATTRS{idProduct}=="0000", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="9120", MODE="l36"
+ATTRS{idVendor}=="2931", ATTRS{idProduct}=="0a01", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="2931", ATTRS{idProduct}=="0a05", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04f1", ATTRS{idProduct}=="6105", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="084e", ATTRS{idProduct}=="0001", MODE="l36"
+ATTRS{idVendor}=="0b28", ATTRS{idProduct}=="100c", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="2237", ATTRS{idProduct}=="d108", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="2237", ATTRS{idProduct}=="d109", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="2237", ATTRS{idProduct}=="b108", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0617", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="060b", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="057e", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="058a", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="058c", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="058d", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0589", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="05aa", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="059a", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="05a2", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="05b7", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="05ba", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="05a7", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="05af", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="05ae", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="05c3", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="05a9", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="05c6", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="059c", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0560", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0560", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0535", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0566", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0566", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0574", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0573", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0571", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0584", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0579", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0578", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0578", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="057a", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="057b", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0586", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="057c", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0100", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0120", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0121", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0110", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0111", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0130", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0112", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0132", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0160", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0131", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0525", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0500", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0510", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0530", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0170", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0555", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0576", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0550", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0570", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0572", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0575", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="057d", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="057f", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0577", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0300", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0540", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0568", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0569", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0565", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0567", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="05ce", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0600", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="059f", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="05c1", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="05ad", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0585", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0400", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0592", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0593", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="058e", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="058f", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0591", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="05a0", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="05ac", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="05ab", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="05b8", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="059d", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="059e", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0587", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="05b3", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="05b4", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0580", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0588", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0403", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="05b5", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="0595", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="05cf", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="05cd", MODE="l36"
+ATTRS{idVendor}=="040a", ATTRS{idProduct}=="05c0", MODE="l36"
+ATTRS{idVendor}=="04c8", ATTRS{idProduct}=="0722", MODE="l36"
+ATTRS{idVendor}=="132b", ATTRS{idProduct}=="0001", MODE="l36"
+ATTRS{idVendor}=="132b", ATTRS{idProduct}=="0019", MODE="l36"
+ATTRS{idVendor}=="132b", ATTRS{idProduct}=="0009", MODE="l36"
+ATTRS{idVendor}=="132b", ATTRS{idProduct}=="0007", MODE="l36"
+ATTRS{idVendor}=="132b", ATTRS{idProduct}=="0018", MODE="l36"
+ATTRS{idVendor}=="132b", ATTRS{idProduct}=="0022", MODE="l36"
+ATTRS{idVendor}=="1f3a", ATTRS{idProduct}=="1006", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0482", ATTRS{idProduct}=="0979", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0482", ATTRS{idProduct}=="0810", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0482", ATTRS{idProduct}=="0571", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0482", ATTRS{idProduct}=="059a", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="9051", MODE="l36"
+ATTRS{idVendor}=="04da", ATTRS{idProduct}=="2375", MODE="l36"
+ATTRS{idVendor}=="1a98", ATTRS{idProduct}=="0002", MODE="l36"
+ATTRS{idVendor}=="17ef", ATTRS{idProduct}=="7737", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="17ef", ATTRS{idProduct}=="772b", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="17ef", ATTRS{idProduct}=="7498", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="17ef", ATTRS{idProduct}=="75bc", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="17ef", ATTRS{idProduct}=="75be", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="17ef", ATTRS{idProduct}=="7542", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="17ef", ATTRS{idProduct}=="757d", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="17ef", ATTRS{idProduct}=="76e8", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="17ef", ATTRS{idProduct}=="740a", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="17ef", ATTRS{idProduct}=="7883", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="17ef", ATTRS{idProduct}=="75b5", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="17ef", ATTRS{idProduct}=="775a", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="17ef", ATTRS{idProduct}=="74cc", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="17ef", ATTRS{idProduct}=="0c02", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="17ef", ATTRS{idProduct}=="7497", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="17ef", ATTRS{idProduct}=="74a6", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="17ef", ATTRS{idProduct}=="74f8", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="17ef", ATTRS{idProduct}=="7718", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="17ef", ATTRS{idProduct}=="741c", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="17ef", ATTRS{idProduct}=="76f2", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="17ef", ATTRS{idProduct}=="77ea", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="17ef", ATTRS{idProduct}=="76ff", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="17ef", ATTRS{idProduct}=="77b1", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1004", ATTRS{idProduct}=="61f1", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1004", ATTRS{idProduct}=="61f9", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1004", ATTRS{idProduct}=="627f", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1004", ATTRS{idProduct}=="626e", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1004", ATTRS{idProduct}=="611b", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1004", ATTRS{idProduct}=="608f", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1004", ATTRS{idProduct}=="6132", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1004", ATTRS{idProduct}=="633e", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1004", ATTRS{idProduct}=="6239", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1004", ATTRS{idProduct}=="623d", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1004", ATTRS{idProduct}=="621c", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1004", ATTRS{idProduct}=="6225", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1004", ATTRS{idProduct}=="619a", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="043e", ATTRS{idProduct}=="7040", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="043e", ATTRS{idProduct}=="70b1", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1004", ATTRS{idProduct}=="631c", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1004", ATTRS{idProduct}=="6265", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1004", ATTRS{idProduct}=="6010", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1004", ATTRS{idProduct}=="6005", MODE="l36"
+ATTRS{idVendor}=="0d96", ATTRS{idProduct}=="4100", MODE="l36"
+ATTRS{idVendor}=="13d1", ATTRS{idProduct}=="7002", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="046d", ATTRS{idProduct}=="0900", MODE="l36"
+ATTRS{idVendor}=="046d", ATTRS{idProduct}=="0950", MODE="l36"
+ATTRS{idVendor}=="0d96", ATTRS{idProduct}=="4100", MODE="l36"
+ATTRS{idVendor}=="0d96", ATTRS{idProduct}=="3300", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="9120", MODE="l36"
+ATTRS{idVendor}=="04fc", ATTRS{idProduct}=="504b", MODE="l36"
+ATTRS{idVendor}=="066f", ATTRS{idProduct}=="846c", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0919", ATTRS{idProduct}=="0100", MODE="l36"
+ATTRS{idVendor}=="0e8d", ATTRS{idProduct}=="0050", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0408", ATTRS{idProduct}=="b00a", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="17ef", ATTRS{idProduct}=="7483", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04fc", ATTRS{idProduct}=="504a", MODE="l36"
+ATTRS{idVendor}=="0d96", ATTRS{idProduct}=="4100", MODE="l36"
+ATTRS{idVendor}=="05ca", ATTRS{idProduct}=="2205", MODE="l36"
+ATTRS{idVendor}=="0d96", ATTRS{idProduct}=="4102", MODE="l36"
+ATTRS{idVendor}=="066f", ATTRS{idProduct}=="8550", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="066f", ATTRS{idProduct}=="8588", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0408", ATTRS{idProduct}=="b009", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1271", ATTRS{idProduct}=="2012", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="201e", ATTRS{idProduct}=="42ab", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="2a45", ATTRS{idProduct}=="2008", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="2a45", ATTRS{idProduct}=="0c02", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="10d6", ATTRS{idProduct}=="2300", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0db0", ATTRS{idProduct}=="5572", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0553", ATTRS{idProduct}=="0202", MODE="l36"
+ATTRS{idVendor}=="045e", ATTRS{idProduct}=="0640", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="045e", ATTRS{idProduct}=="0622", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="045e", ATTRS{idProduct}=="04ec", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="045e", ATTRS{idProduct}=="0710", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="045e", ATTRS{idProduct}=="063e", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="045e", ATTRS{idProduct}=="f0ca", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="045e", ATTRS{idProduct}=="00c9", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="045e", ATTRS{idProduct}=="0641", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0c45", ATTRS{idProduct}=="8008", MODE="l36"
+ATTRS{idVendor}=="084d", ATTRS{idProduct}=="0003", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="9120", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="9120", MODE="l36"
+ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="60ca", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="7088", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="64cf", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="2e32", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="2e33", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="2e67", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="2ea5", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="2ea8", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="2e68", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="41d6", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="41da", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="42a7", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="437f", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="4373", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="4811", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="41dc", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="70ca", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="2e76", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="2e82", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="2e84", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="2e62", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="2e63", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="2e66", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="6413", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="64b5", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="64b6", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="2e50", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="2e51", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="6415", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="2a65", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="70a3", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="70a8", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="70a9", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="4311", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="4306", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="41cf", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="710d", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="710e", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="4362", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+# not working yet: PROGRAM="check-mtp-device", , ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="055f", ATTRS{idProduct}=="c200", MODE="l36"
+ATTRS{idVendor}=="055f", ATTRS{idProduct}=="a350", MODE="l36"
+ATTRS{idVendor}=="055f", ATTRS{idProduct}=="c220", MODE="l36"
+ATTRS{idVendor}=="055f", ATTRS{idProduct}=="c420", MODE="l36"
+ATTRS{idVendor}=="055f", ATTRS{idProduct}=="c520", MODE="l36"
+ATTRS{idVendor}=="0aa6", ATTRS{idProduct}=="9601", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0409", ATTRS{idProduct}=="0326", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0409", ATTRS{idProduct}=="0432", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0409", ATTRS{idProduct}=="0242", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0402", ATTRS{idProduct}=="5668", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="905c", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0302", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0117", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0122", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0123", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0109", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0115", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0121", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0111", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="011d", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="012d", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0204", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="010f", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="010b", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0130", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0131", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0129", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0113", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0206", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0119", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="012e", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="010d", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0135", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0139", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0137", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="011f", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0103", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0127", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0112", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0191", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0102", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0226", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0188", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0208", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="030b", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0309", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="017e", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="015f", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0185", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0315", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0318", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0317", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0324", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0343", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0305", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0192", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0140", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="017d", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0142", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0221", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0227", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="020c", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0169", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0184", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="015b", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0223", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0163", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0228", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0311", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="016f", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="017f", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="018b", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0225", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0229", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="016b", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="016c", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0173", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0337", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0346", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="014e", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0161", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0177", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0178", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0321", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="032d", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="033f", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="031b", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0320", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0334", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="032a", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0144", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0329", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="015d", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0220", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="014e", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0171", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="021e", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="021c", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0157", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="021f", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0222", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0186", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0193", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="034b", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0202", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0404", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="040c", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0408", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="041c", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="040a", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0402", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0410", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0416", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="041a", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0424", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0425", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0427", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="042c", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0433", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0426", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0420", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="042b", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0414", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0418", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0435", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0423", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0429", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="042f", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0431", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="041e", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="042d", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0434", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0406", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0422", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0428", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="040e", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0430", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0437", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0412", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="042a", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="042e", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0436", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0421", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0602", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0603", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0605", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0609", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0606", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0601", MODE="l36"
+ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0604", MODE="l36"
+ATTRS{idVendor}=="04fc", ATTRS{idProduct}=="504a", MODE="l36"
+ATTRS{idVendor}=="0979", ATTRS{idProduct}=="0224", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="02c1", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="0065", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="005f", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="0462", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="01ee", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="0209", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="04be", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="02e2", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="04ba", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="006c", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="00ea", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="047e", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="0229", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="04b4", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="0154", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="0155", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="0159", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="002e", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="0098", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="008d", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="003c", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="0297", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="05d3", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="0592", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="03c1", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="03cd", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="01cf", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="032f", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="0179", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="00e5", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="0334", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="0335", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="00e4", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="01a1", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="0221", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="06fc", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="0666", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="0661", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="0524", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="0488", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="04d1", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="04e1", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="0079", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="0186", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="02fe", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="0302", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="04f1", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="000a", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="0074", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="0092", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="051a", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="0485", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="0478", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="04e5", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="04ef", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="006e", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="03d2", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="0039", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="01f5", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="026b", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="01f4", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="0274", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0421", ATTRS{idProduct}=="06e8", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1703", ATTRS{idProduct}=="0001", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1703", ATTRS{idProduct}=="0002", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0955", ATTRS{idProduct}=="70a9", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0955", ATTRS{idProduct}=="b400", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0955", ATTRS{idProduct}=="cf07", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0955", ATTRS{idProduct}=="cf02", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0955", ATTRS{idProduct}=="7100", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0955", ATTRS{idProduct}=="7102", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1e53", ATTRS{idProduct}=="0006", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="07b4", ATTRS{idProduct}=="0100", MODE="l36"
+ATTRS{idVendor}=="07b4", ATTRS{idProduct}=="0100", MODE="l36"
+ATTRS{idVendor}=="07b4", ATTRS{idProduct}=="0100", MODE="l36"
+ATTRS{idVendor}=="07b4", ATTRS{idProduct}=="0114", MODE="l36"
+ATTRS{idVendor}=="07b4", ATTRS{idProduct}=="0114", MODE="l36"
+ATTRS{idVendor}=="07b4", ATTRS{idProduct}=="0114", MODE="l36"
+ATTRS{idVendor}=="07b4", ATTRS{idProduct}=="0114", MODE="l36"
+ATTRS{idVendor}=="07b4", ATTRS{idProduct}=="0114", MODE="l36"
+ATTRS{idVendor}=="07b4", ATTRS{idProduct}=="0114", MODE="l36"
+ATTRS{idVendor}=="07b4", ATTRS{idProduct}=="0110", MODE="l36"
+ATTRS{idVendor}=="07b4", ATTRS{idProduct}=="012f", MODE="l36"
+ATTRS{idVendor}=="07b4", ATTRS{idProduct}=="012f", MODE="l36"
+ATTRS{idVendor}=="07b4", ATTRS{idProduct}=="0116", MODE="l36"
+ATTRS{idVendor}=="07b4", ATTRS{idProduct}=="0114", MODE="l36"
+ATTRS{idVendor}=="07b4", ATTRS{idProduct}=="0113", MODE="l36"
+ATTRS{idVendor}=="07b4", ATTRS{idProduct}=="012f", MODE="l36"
+ATTRS{idVendor}=="07b4", ATTRS{idProduct}=="0114", MODE="l36"
+ATTRS{idVendor}=="07b4", ATTRS{idProduct}=="0114", MODE="l36"
+ATTRS{idVendor}=="07b4", ATTRS{idProduct}=="0116", MODE="l36"
+ATTRS{idVendor}=="07b4", ATTRS{idProduct}=="0116", MODE="l36"
+ATTRS{idVendor}=="22d9", ATTRS{idProduct}=="2765", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="22d9", ATTRS{idProduct}=="2774", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="22d9", ATTRS{idProduct}=="2773", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0919", ATTRS{idProduct}=="0100", MODE="l36"
+ATTRS{idVendor}=="0919", ATTRS{idProduct}=="0100", MODE="l36"
+ATTRS{idVendor}=="04da", ATTRS{idProduct}=="2374", MODE="l36"
+ATTRS{idVendor}=="04da", ATTRS{idProduct}=="2374", MODE="l36"
+ATTRS{idVendor}=="04da", ATTRS{idProduct}=="2374", MODE="l36"
+ATTRS{idVendor}=="04da", ATTRS{idProduct}=="2374", MODE="l36"
+ATTRS{idVendor}=="04da", ATTRS{idProduct}=="2374", MODE="l36"
+ATTRS{idVendor}=="04da", ATTRS{idProduct}=="2374", MODE="l36"
+ATTRS{idVendor}=="04da", ATTRS{idProduct}=="2374", MODE="l36"
+ATTRS{idVendor}=="04da", ATTRS{idProduct}=="2374", MODE="l36"
+ATTRS{idVendor}=="04da", ATTRS{idProduct}=="2374", MODE="l36"
+ATTRS{idVendor}=="04da", ATTRS{idProduct}=="2374", MODE="l36"
+ATTRS{idVendor}=="04da", ATTRS{idProduct}=="2374", MODE="l36"
+ATTRS{idVendor}=="04da", ATTRS{idProduct}=="2374", MODE="l36"
+ATTRS{idVendor}=="04da", ATTRS{idProduct}=="2145", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04da", ATTRS{idProduct}=="2158", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="106c", ATTRS{idProduct}=="f003", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1d4d", ATTRS{idProduct}=="5036", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1d4d", ATTRS{idProduct}=="5035", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1d4d", ATTRS{idProduct}=="504a", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0553", ATTRS{idProduct}=="0202", MODE="l36"
+ATTRS{idVendor}=="25fb", ATTRS{idProduct}=="0165", MODE="l36"
+ATTRS{idVendor}=="0a17", ATTRS{idProduct}=="000d", MODE="l36"
+ATTRS{idVendor}=="0a17", ATTRS{idProduct}=="00f7", MODE="l36"
+ATTRS{idVendor}=="0aa6", ATTRS{idProduct}=="9702", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0471", ATTRS{idProduct}=="207c", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0471", ATTRS{idProduct}=="20b9", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0471", ATTRS{idProduct}=="2138", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0471", ATTRS{idProduct}=="0165", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0471", ATTRS{idProduct}=="2077", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0471", ATTRS{idProduct}=="208e", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0471", ATTRS{idProduct}=="2004", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0471", ATTRS{idProduct}=="0857", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0471", ATTRS{idProduct}=="084e", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0471", ATTRS{idProduct}=="2002", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0471", ATTRS{idProduct}=="014f", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0471", ATTRS{idProduct}=="2075", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0471", ATTRS{idProduct}=="207b", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0471", ATTRS{idProduct}=="20b7", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0471", ATTRS{idProduct}=="20e5", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0471", ATTRS{idProduct}=="014d", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0471", ATTRS{idProduct}=="014c", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0471", ATTRS{idProduct}=="01eb", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0471", ATTRS{idProduct}=="014b", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0471", ATTRS{idProduct}=="190b", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="093a", ATTRS{idProduct}=="010e", MODE="l36"
+ATTRS{idVendor}=="0471", ATTRS{idProduct}=="2190", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0471", ATTRS{idProduct}=="7e01", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0471", ATTRS{idProduct}=="0181", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0471", ATTRS{idProduct}=="0164", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0471", ATTRS{idProduct}=="2022", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0471", ATTRS{idProduct}=="0172", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0553", ATTRS{idProduct}=="0202", MODE="l36"
+ATTRS{idVendor}=="08e4", ATTRS{idProduct}=="0142", MODE="l36"
+ATTRS{idVendor}=="08e4", ATTRS{idProduct}=="0148", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="093a", ATTRS{idProduct}=="010e", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="905c", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="9120", MODE="l36"
+ATTRS{idVendor}=="0784", ATTRS{idProduct}=="2888", MODE="l36"
+ATTRS{idVendor}=="0546", ATTRS{idProduct}=="2035", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0546", ATTRS{idProduct}=="0daf", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="905c", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="9120", MODE="l36"
+ATTRS{idVendor}=="093a", ATTRS{idProduct}=="010f", MODE="l36"
+ATTRS{idVendor}=="29e4", ATTRS{idProduct}=="1203", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="29e4", ATTRS{idProduct}=="1103", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0784", ATTRS{idProduct}=="5300", MODE="l36"
+ATTRS{idVendor}=="04fc", ATTRS{idProduct}=="ffff", MODE="l36"
+ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="8800", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="f003", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="0229", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="3196", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="6764", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="6765", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="9039", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="9025", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0553", ATTRS{idProduct}=="0202", MODE="l36"
+ATTRS{idVendor}=="0dca", ATTRS{idProduct}=="0004", MODE="l36"
+ATTRS{idVendor}=="0784", ATTRS{idProduct}=="0100", MODE="l36"
+ATTRS{idVendor}=="2717", ATTRS{idProduct}=="1260", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="2717", ATTRS{idProduct}=="1268", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="9120", MODE="l36"
+ATTRS{idVendor}=="05ca", ATTRS{idProduct}=="220b", MODE="l36"
+ATTRS{idVendor}=="05ca", ATTRS{idProduct}=="2203", MODE="l36"
+ATTRS{idVendor}=="05ca", ATTRS{idProduct}=="2204", MODE="l36"
+ATTRS{idVendor}=="05ca", ATTRS{idProduct}=="2208", MODE="l36"
+ATTRS{idVendor}=="05ca", ATTRS{idProduct}=="220c", MODE="l36"
+ATTRS{idVendor}=="05ca", ATTRS{idProduct}=="0325", MODE="l36"
+ATTRS{idVendor}=="05ca", ATTRS{idProduct}=="2214", MODE="l36"
+ATTRS{idVendor}=="05ca", ATTRS{idProduct}=="032d", MODE="l36"
+ATTRS{idVendor}=="05ca", ATTRS{idProduct}=="220d", MODE="l36"
+ATTRS{idVendor}=="05ca", ATTRS{idProduct}=="2212", MODE="l36"
+ATTRS{idVendor}=="05ca", ATTRS{idProduct}=="032b", MODE="l36"
+ATTRS{idVendor}=="05ca", ATTRS{idProduct}=="2213", MODE="l36"
+ATTRS{idVendor}=="05ca", ATTRS{idProduct}=="2216", MODE="l36"
+ATTRS{idVendor}=="05ca", ATTRS{idProduct}=="032f", MODE="l36"
+ATTRS{idVendor}=="05ca", ATTRS{idProduct}=="2217", MODE="l36"
+ATTRS{idVendor}=="05ca", ATTRS{idProduct}=="221a", MODE="l36"
+ATTRS{idVendor}=="05ca", ATTRS{idProduct}=="0110", MODE="l36"
+ATTRS{idVendor}=="05ca", ATTRS{idProduct}=="2202", MODE="l36"
+ATTRS{idVendor}=="05ca", ATTRS{idProduct}=="033d", MODE="l36"
+ATTRS{idVendor}=="05ca", ATTRS{idProduct}=="220d", MODE="l36"
+ATTRS{idVendor}=="0fca", ATTRS{idProduct}=="8007", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="05ca", ATTRS{idProduct}=="220f", MODE="l36"
+ATTRS{idVendor}=="05ca", ATTRS{idProduct}=="220f", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="913d", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="913d", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="913d", MODE="l36"
+ATTRS{idVendor}=="0979", ATTRS{idProduct}=="0227", MODE="l36"
+ATTRS{idVendor}=="0c45", ATTRS{idProduct}=="8003", MODE="l36"
+ATTRS{idVendor}=="0c45", ATTRS{idProduct}=="8003", MODE="l36"
+ATTRS{idVendor}=="0c45", ATTRS{idProduct}=="8003", MODE="l36"
+ATTRS{idVendor}=="093a", ATTRS{idProduct}=="010e", MODE="l36"
+ATTRS{idVendor}=="093a", ATTRS{idProduct}=="010f", MODE="l36"
+ATTRS{idVendor}=="0979", ATTRS{idProduct}=="0227", MODE="l36"
+ATTRS{idVendor}=="0979", ATTRS{idProduct}=="0227", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="9120", MODE="l36"
+ATTRS{idVendor}=="0979", ATTRS{idProduct}=="0227", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="905c", MODE="l36"
+ATTRS{idVendor}=="0979", ATTRS{idProduct}=="0227", MODE="l36"
+ATTRS{idVendor}=="093a", ATTRS{idProduct}=="010f", MODE="l36"
+ATTRS{idVendor}=="0979", ATTRS{idProduct}=="0227", MODE="l36"
+ATTRS{idVendor}=="0979", ATTRS{idProduct}=="0227", MODE="l36"
+ATTRS{idVendor}=="0979", ATTRS{idProduct}=="0227", MODE="l36"
+ATTRS{idVendor}=="0979", ATTRS{idProduct}=="0227", MODE="l36"
+ATTRS{idVendor}=="0979", ATTRS{idProduct}=="0227", MODE="l36"
+ATTRS{idVendor}=="0979", ATTRS{idProduct}=="0227", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="6866", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="6727", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="6860", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="685c", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="6877", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="6752", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="68af", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="e20c", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="6819", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="04a4", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="4f1f", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="6734", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="6642", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="140c", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="1384", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="684a", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="6763", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="6709", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="68a9", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="6702", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="502e", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="501d", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="5022", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="502f", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="5024", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="5a0f", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="5033", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="0409", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="5057", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="5081", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="505a", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="5118", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="5083", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="511a", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="5115", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="511d", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="5130", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="5125", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="510f", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="512e", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="5091", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="508b", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="508a", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="5047", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="507f", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="5054", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="507d", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="5093", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="5121", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="5137", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="503c", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0781", ATTRS{idProduct}=="7410", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0781", ATTRS{idProduct}=="7450", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0781", ATTRS{idProduct}=="7452", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0781", ATTRS{idProduct}=="7432", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0781", ATTRS{idProduct}=="7434", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0781", ATTRS{idProduct}=="74e4", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0781", ATTRS{idProduct}=="74d0", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0781", ATTRS{idProduct}=="7480", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0781", ATTRS{idProduct}=="7420", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0781", ATTRS{idProduct}=="7422", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0781", ATTRS{idProduct}=="7460", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0781", ATTRS{idProduct}=="74c0", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0781", ATTRS{idProduct}=="74c2", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0781", ATTRS{idProduct}=="74e0", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0781", ATTRS{idProduct}=="7401", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0781", ATTRS{idProduct}=="7400", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0781", ATTRS{idProduct}=="7430", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0781", ATTRS{idProduct}=="74b0", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0474", ATTRS{idProduct}=="0230", MODE="l36"
+ATTRS{idVendor}=="0797", ATTRS{idProduct}=="8901", MODE="l36"
+ATTRS{idVendor}=="0797", ATTRS{idProduct}=="8909", MODE="l36"
+ATTRS{idVendor}=="0797", ATTRS{idProduct}=="8911", MODE="l36"
+ATTRS{idVendor}=="084d", ATTRS{idProduct}=="1001", MODE="l36"
+ATTRS{idVendor}=="0919", ATTRS{idProduct}=="0100", MODE="l36"
+ATTRS{idVendor}=="05ca", ATTRS{idProduct}=="0353", MODE="l36"
+ATTRS{idVendor}=="05ca", ATTRS{idProduct}=="220e", MODE="l36"
+ATTRS{idVendor}=="05ca", ATTRS{idProduct}=="0327", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="9120", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="9120", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="9120", MODE="l36"
+ATTRS{idVendor}=="04dd", ATTRS{idProduct}=="9661", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="04dd", ATTRS{idProduct}=="96ca", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0489", ATTRS{idProduct}=="c025", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="093a", ATTRS{idProduct}=="010e", MODE="l36"
+ATTRS{idVendor}=="066f", ATTRS{idProduct}=="a010", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0c77", ATTRS{idProduct}=="1011", MODE="l36"
+ATTRS{idVendor}=="0c77", ATTRS{idProduct}=="1015", MODE="l36"
+ATTRS{idVendor}=="0c77", ATTRS{idProduct}=="1002", MODE="l36"
+ATTRS{idVendor}=="0c77", ATTRS{idProduct}=="1010", MODE="l36"
+ATTRS{idVendor}=="0d64", ATTRS{idProduct}=="1001", MODE="l36"
+ATTRS{idVendor}=="0c77", ATTRS{idProduct}=="1001", MODE="l36"
+ATTRS{idVendor}=="18f6", ATTRS{idProduct}=="0102", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="18f6", ATTRS{idProduct}=="0110", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0d96", ATTRS{idProduct}=="3300", MODE="l36"
+ATTRS{idVendor}=="1bdc", ATTRS{idProduct}=="fabf", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0dca", ATTRS{idProduct}=="0002", MODE="l36"
+ATTRS{idVendor}=="0ec7", ATTRS{idProduct}=="1008", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="074e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="07c6", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0957", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="08e7", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="094e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="08b7", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0953", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="094d", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0954", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="08e2", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="1294", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="02c0", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="02e7", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0543", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="061f", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="06ee", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0491", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="08ad", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="052b", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="052a", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="074b", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0296", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0296", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0343", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="02f8", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="053c", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="5175", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="a175", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="b175", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="0172", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="5172", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="4172", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="0186", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="5186", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="4186", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="0169", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="5169", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="4169", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="0175", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="4175", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="0176", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="4176", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="0177", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="5177", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="4177", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="a177", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="b177", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="0178", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="5178", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="4178", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="0182", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="5182", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="4182", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="0173", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="5173", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="4173", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="a173", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="b173", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="072f", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0678", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="035c", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0325", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="035b", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0404", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="036e", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="03d8", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="04be", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="059a", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0689", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="03fc", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="04cb", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0385", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="03fd", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="05a6", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0326", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="03fe", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0327", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="038e", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="035a", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="038c", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="04cc", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="05a8", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0388", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="04bb", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0397", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0398", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="004e", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="04a7", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0321", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="04a3", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0669", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0736", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0737", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0574", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0675", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="5176", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="a176", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="b176", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="0181", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="5181", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="4181", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="04d1", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="05b3", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="054c", ATTRS{idProduct}=="05b4", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="0171", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="0170", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="5170", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="4170", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="0180", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="5180", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="4180", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="5171", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="4171", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="017e", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="517e", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="417e", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="a17e", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="b17e", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="016d", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="0198", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="5198", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="01a3", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="51a3", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="41a3", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="018c", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="518c", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="418c", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="01bc", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="51bc", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="01bc", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="01cb", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="51cb", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="41cb", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="0188", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="5188", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="4188", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="0192", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="5192", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="4192", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="019b", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="519b", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="419b", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="01ab", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="51ab", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="41ab", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="01aa", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="51aa", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="41aa", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="0195", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="5195", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="4195", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="018d", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="0194", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="518d", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="5194", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="418d", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="4194", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="0193", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="5193", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="4193", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="01b6", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="0196", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="019c", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="51b6", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="5196", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="519c", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="419c", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="01a7", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="41a7", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="51a7", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="019e", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="519e", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="419e", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="01af", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="51af", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="41af", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="01bb", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="51bb", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="41bb", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="01ba", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="51ba", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="41ba", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="0189", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="5189", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="4189", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="0197", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="5197", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="0146", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="5146", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="00d9", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="00d4", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="00ef", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="0157", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="5157", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="4157", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="014e", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="d144", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="0144", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="e000", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="0075", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="514f", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="014f", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="015a", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="515a", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="0156", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="5156", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="015d", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="515d", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="0166", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="5166", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="0167", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="5167", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="0168", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="5168", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="4168", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="0161", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="5161", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="00fb", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="0133", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="013a", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="10c8", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="00f3", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="0105", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="00c6", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="00b3", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="00f5", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="0076", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="00da", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="0112", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="516d", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="905c", MODE="l36"
+ATTRS{idVendor}=="0553", ATTRS{idProduct}=="0202", MODE="l36"
+ATTRS{idVendor}=="0553", ATTRS{idProduct}=="0202", MODE="l36"
+ATTRS{idVendor}=="0553", ATTRS{idProduct}=="0202", MODE="l36"
+ATTRS{idVendor}=="0553", ATTRS{idProduct}=="0202", MODE="l36"
+ATTRS{idVendor}=="0553", ATTRS{idProduct}=="0202", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="9120", MODE="l36"
+ATTRS{idVendor}=="0919", ATTRS{idProduct}=="0100", MODE="l36"
+ATTRS{idVendor}=="0553", ATTRS{idProduct}=="0202", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="905c", MODE="l36"
+ATTRS{idVendor}=="0553", ATTRS{idProduct}=="0202", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="913d", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="9120", MODE="l36"
+ATTRS{idVendor}=="0451", ATTRS{idProduct}=="d108", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="13d1", ATTRS{idProduct}=="7017", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0aa6", ATTRS{idProduct}=="3011", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="069b", ATTRS{idProduct}=="3035", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="069b", ATTRS{idProduct}=="0777", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="069b", ATTRS{idProduct}=="0774", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="069b", ATTRS{idProduct}=="077c", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="069b", ATTRS{idProduct}=="301a", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="069b", ATTRS{idProduct}=="3028", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0919", ATTRS{idProduct}=="0100", MODE="l36"
+ATTRS{idVendor}=="0553", ATTRS{idProduct}=="0202", MODE="l36"
+ATTRS{idVendor}=="1390", ATTRS{idProduct}=="5455", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="11db", ATTRS{idProduct}=="1000", MODE="l36"
+ATTRS{idVendor}=="0930", ATTRS{idProduct}=="0963", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0930", ATTRS{idProduct}=="000c", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0930", ATTRS{idProduct}=="0009", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0930", ATTRS{idProduct}=="001d", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0930", ATTRS{idProduct}=="001a", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0930", ATTRS{idProduct}=="0018", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0930", ATTRS{idProduct}=="0011", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0930", ATTRS{idProduct}=="000f", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0930", ATTRS{idProduct}=="0010", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0930", ATTRS{idProduct}=="0019", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0930", ATTRS{idProduct}=="0016", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0930", ATTRS{idProduct}=="0014", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1132", ATTRS{idProduct}=="4337", MODE="l36"
+ATTRS{idVendor}=="1132", ATTRS{idProduct}=="4332", MODE="l36"
+ATTRS{idVendor}=="1132", ATTRS{idProduct}=="4335", MODE="l36"
+ATTRS{idVendor}=="1132", ATTRS{idProduct}=="4334", MODE="l36"
+ATTRS{idVendor}=="0930", ATTRS{idProduct}=="7100", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0d96", ATTRS{idProduct}=="3300", MODE="l36"
+ATTRS{idVendor}=="0d96", ATTRS{idProduct}=="4100", MODE="l36"
+ATTRS{idVendor}=="1e68", ATTRS{idProduct}=="0002", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0402", ATTRS{idProduct}=="0611", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="066f", ATTRS{idProduct}=="842a", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="084d", ATTRS{idProduct}=="0003", MODE="l36"
+ATTRS{idVendor}=="06d6", ATTRS{idProduct}=="002e", MODE="l36"
+ATTRS{idVendor}=="06d6", ATTRS{idProduct}=="002d", MODE="l36"
+ATTRS{idVendor}=="08ca", ATTRS{idProduct}=="0110", MODE="l36"
+ATTRS{idVendor}=="04fc", ATTRS{idProduct}=="504a", MODE="l36"
+ATTRS{idVendor}=="0797", ATTRS{idProduct}=="801a", MODE="l36"
+ATTRS{idVendor}=="0553", ATTRS{idProduct}=="0202", MODE="l36"
+ATTRS{idVendor}=="0d64", ATTRS{idProduct}=="1001", MODE="l36"
+PROGRAM="check-ptp-camera 06/01/01", MODE="l36"
+ATTRS{idVendor}=="2207", ATTRS{idProduct}=="0001", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="2207", ATTRS{idProduct}=="0011", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0408", ATTRS{idProduct}=="3899", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="9120", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="9120", MODE="l36"
+ATTRS{idVendor}=="0979", ATTRS{idProduct}=="0227", MODE="l36"
+ATTRS{idVendor}=="093a", ATTRS{idProduct}=="010e", MODE="l36"
+ATTRS{idVendor}=="093a", ATTRS{idProduct}=="010f", MODE="l36"
+ATTRS{idVendor}=="0c45", ATTRS{idProduct}=="800a", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="905c", MODE="l36"
+ATTRS{idVendor}=="0489", ATTRS{idProduct}=="e111", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0489", ATTRS{idProduct}=="c026", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0489", ATTRS{idProduct}=="e040", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0531", ATTRS{idProduct}=="2001", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="0c45", ATTRS{idProduct}=="8001", MODE="l36"
+ATTRS{idVendor}=="1e53", ATTRS{idProduct}=="0007", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="2717", ATTRS{idProduct}=="1368", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="2717", ATTRS{idProduct}=="1248", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="2717", ATTRS{idProduct}=="1240", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="2717", ATTRS{idProduct}=="f003", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="2717", ATTRS{idProduct}=="9039", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="2717", ATTRS{idProduct}=="ff48", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="2717", ATTRS{idProduct}=="0368", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="2717", ATTRS{idProduct}=="0360", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="2717", ATTRS{idProduct}=="0660", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="2207", ATTRS{idProduct}=="0006", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="2916", ATTRS{idProduct}=="914d", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="2916", ATTRS{idProduct}=="f003", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="1ebf", ATTRS{idProduct}=="7f29", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="041e", ATTRS{idProduct}=="6000", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="2770", ATTRS{idProduct}=="905c", MODE="l36"
+ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0343", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="ffce", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0244", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0245", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0306", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0307", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0383", ENV{ID_MEDIA_PLAYER}="1", MODE="l36"
+
+LABEL="libgphoto2_usb_end"
+
+KERNEL=="sg[0-9]*", ATTRS{idVendor}=="1908", ATTRS{idProduct}=="1315", MODE="l36"
+KERNEL=="sg[0-9]*", ATTRS{idVendor}=="1908", ATTRS{idProduct}=="1320", MODE="l36"
+KERNEL=="sg[0-9]*", ATTRS{idVendor}=="1908", ATTRS{idProduct}=="0102", MODE="l36"
+KERNEL=="sg[0-9]*", ATTRS{idVendor}=="1908", ATTRS{idProduct}=="3335", MODE="l36"
+KERNEL=="sg[0-9]*", ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0116", MODE="l36"
+KERNEL=="sg[0-9]*", ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0108", MODE="l36"
+KERNEL=="sg[0-9]*", ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0110", MODE="l36"
+KERNEL=="sg[0-9]*", ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="010e", MODE="l36"
+KERNEL=="sg[0-9]*", ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0104", MODE="l36"
+KERNEL=="sg[0-9]*", ATTRS{idVendor}=="04b0", ATTRS{idProduct}=="0401", MODE="l36"
+KERNEL=="sg[0-9]*", ATTRS{idVendor}=="07b4", ATTRS{idProduct}=="0105", MODE="l36"
+KERNEL=="sg[0-9]*", ATTRS{idVendor}=="07b4", ATTRS{idProduct}=="0105", MODE="l36"
+KERNEL=="sg[0-9]*", ATTRS{idVendor}=="07b4", ATTRS{idProduct}=="0105", MODE="l36"
+KERNEL=="sg[0-9]*", ATTRS{idVendor}=="07b4", ATTRS{idProduct}=="0109", MODE="l36"
+KERNEL=="sg[0-9]*", ATTRS{idVendor}=="07b4", ATTRS{idProduct}=="0105", MODE="l36"
+KERNEL=="sg[0-9]*", ATTRS{idVendor}=="07b4", ATTRS{idProduct}=="0105", MODE="l36"
+KERNEL=="sg[0-9]*", ATTRS{idVendor}=="07b4", ATTRS{idProduct}=="0105", MODE="l36"
+KERNEL=="sg[0-9]*", ATTRS{idVendor}=="07b4", ATTRS{idProduct}=="0105", MODE="l36"
+KERNEL=="sg[0-9]*", ATTRS{idVendor}=="07b4", ATTRS{idProduct}=="0105", MODE="l36"
+KERNEL=="sg[0-9]*", ATTRS{idVendor}=="07b4", ATTRS{idProduct}=="0109", MODE="l36"
+KERNEL=="sg[0-9]*", ATTRS{idVendor}=="07b4", ATTRS{idProduct}=="0109", MODE="l36"
+KERNEL=="sg[0-9]*", ATTRS{idVendor}=="07b4", ATTRS{idProduct}=="0109", MODE="l36"
+KERNEL=="sg[0-9]*", ATTRS{idVendor}=="07b4", ATTRS{idProduct}=="0109", MODE="l36"
+KERNEL=="sg[0-9]*", ATTRS{idVendor}=="0a17", ATTRS{idProduct}=="0070", MODE="l36"
+KERNEL=="sg[0-9]*", ATTRS{idVendor}=="0a17", ATTRS{idProduct}=="00a1", MODE="l36"
+KERNEL=="sg[0-9]*", ATTRS{idVendor}=="0a17", ATTRS{idProduct}=="006e", MODE="l36"
+KERNEL=="sg[0-9]*", ATTRS{idVendor}=="0a17", ATTRS{idProduct}=="0093", MODE="l36"
+KERNEL=="sg[0-9]*", ATTRS{idVendor}=="0a17", ATTRS{idProduct}=="0091", MODE="l36"
+KERNEL=="sg[0-9]*", ATTRS{idVendor}=="25fb", ATTRS{idProduct}=="0164", MODE="l36"
+KERNEL=="sg[0-9]*", ATTRS{idVendor}=="25fb", ATTRS{idProduct}=="0132", MODE="l36"
+KERNEL=="sg[0-9]*", ATTRS{idVendor}=="25fb", ATTRS{idProduct}=="0102", MODE="l36"
+KERNEL=="sg[0-9]*", ATTRS{idVendor}=="0a17", ATTRS{idProduct}=="0009", MODE="l36"
+KERNEL=="sg[0-9]*", ATTRS{idVendor}=="0a17", ATTRS{idProduct}=="0007", MODE="l36"
+KERNEL=="sd[a-z]*", ATTRS{idVendor}=="1403", ATTRS{idProduct}=="0001", MODE="l36"
+KERNEL=="sg[0-9]*", ATTRS{idVendor}=="0168", ATTRS{idProduct}=="3011", MODE="l36"
+
+LABEL="libgphoto2_rules_end"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.8.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.8.bb
new file mode 100644
index 0000000..3de6942
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.8.bb
@@ -0,0 +1,55 @@
+SUMMARY = "libgphoto2 allows you to access digital cameras"
+SECTION = "libs"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0448d3676bc0de00406af227d341a4d1"
+
+DEPENDS = "libtool jpeg virtual/libusb0 libexif zlib libxml2"
+
+# The .fdi and .rules files were generated with:
+#  libgphoto2-2.5.8/packaging/generic$ qemu-arm -s 1048576 -r 2.6.24 -L /OE/angstrom-dev/staging/armv5te-angstrom-linux-gnueabi/ .libs/print-camera-list
+# They are release specific, so please regen when adding new releases
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/gphoto/libgphoto2-${PV}.tar.bz2;name=libgphoto2 \
+           file://10-camera-libgphoto2-device.fdi \
+           file://10-camera-libgphoto2.fdi \
+           file://40-libgphoto2.rules \
+           file://0001-configure.ac-remove-AM_PO_SUBDIRS.patch \
+"
+
+SRC_URI[libgphoto2.md5sum] = "873ab01aced49c6b92a98e515db5dcef"
+SRC_URI[libgphoto2.sha256sum] = "031a262e342fae43f724afe66787947ce1fb483277dfe5a8cf1fbe92c58e27b6"
+
+inherit autotools pkgconfig gettext lib_package
+
+EXTRA_OECONF = " --with-drivers=all udevscriptdir=/lib/udev ac_cv_lib_ltdl_lt_dlcaller_register=yes"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[gd] = ",--without-gdlib,gd"
+PACKAGECONFIG[serial] = "--enable-serial,--disable-serial,lockdev"
+
+do_configure_append() {
+    cp ${STAGING_DATADIR}/gettext/po/Makefile.in.in ${S}/libgphoto2_port/po/
+    cd ${S}/libgphoto2_port/
+    autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} $acpaths
+    cd ${S}
+}
+
+do_install_append() {
+    install -d ${D}${datadir}/hal/fdi/information/20thirdparty
+    install -m 0644 ${WORKDIR}/*.fdi ${D}${datadir}/hal/fdi/information/20thirdparty/
+
+    install -d ${D}${sysconfdir}/udev/rules.d/
+    install -m 0755 ${WORKDIR}/*.rules ${D}${sysconfdir}/udev/rules.d/
+}
+
+PACKAGES =+ "libgphotoport libgphoto2-camlibs"
+FILES_libgphoto2-camlibs = "${libdir}/libgphoto2*/*/*.so*"
+RRECOMMENDS_${PN} = "libgphoto2-camlibs"
+RDEPENDS_${PN} = "bash"
+
+FILES_libgphotoport = "${libdir}/libgphoto2_port.so.*"
+
+FILES_${PN} += "${nonarch_base_libdir}/udev/* ${datadir}/hal"
+FILES_${PN}-dbg += "${libdir}/*/*/.debug"
+FILES_${PN}-dev += "${libdir}/*/*/*.la"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gtkperf/gtkperf/Makevars b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gtkperf/gtkperf/Makevars
new file mode 100644
index 0000000..8b09f53
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gtkperf/gtkperf/Makevars
@@ -0,0 +1,25 @@
+# Makefile variables for PO directory in any package using GNU gettext.
+
+# Usually the message domain is the same as the package name.
+DOMAIN = $(PACKAGE)
+
+# These two variables depend on the location of this directory.
+subdir = po
+top_builddir = ..
+
+# These options get passed to xgettext.
+XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
+
+# This is the copyright holder that gets inserted into the header of the
+# $(DOMAIN).pot file.  Set this to the copyright holder of the surrounding
+# package.  (Note that the msgstr strings, extracted from the package's
+# sources, belong to the copyright holder of the package.)  Translators are
+# expected to transfer the copyright for their translations to this person
+# or entity, or to disclaim their copyright.  The empty string stands for
+# the public domain; in this case the translators are expected to disclaim
+# their copyright.
+COPYRIGHT_HOLDER = Free Software Foundation, Inc.
+
+# This is the list of locale categories, beyond LC_MESSAGES, for which the
+# message catalogs shall be used.  It is usually empty.
+EXTRA_LOCALE_CATEGORIES =
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/gtkperf/gtkperf_0.40.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gtkperf/gtkperf_0.40.bb
new file mode 100644
index 0000000..e404a7a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/gtkperf/gtkperf_0.40.bb
@@ -0,0 +1,27 @@
+SUMMARY = "GTK Performance tool"
+SECTION = "libs"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+SRC_URI = "http://prdownloads.sourceforge.net/${BPN}/${BPN}_${PV}.tar.gz \
+           file://Makevars"
+
+SRC_URI[md5sum] = "4331dde4bb83865e15482885fcb0cc53"
+SRC_URI[sha256sum] = "9704344e732038eecbd007dd996a56293a6b027b5b76f3f036273a3fae1ab27b"
+
+DEPENDS = "gtk+"
+
+S = "${WORKDIR}/${BPN}"
+
+inherit autotools binconfig pkgconfig gettext
+
+do_configure_prepend () {
+    rm -f ${S}/m4/init.m4
+    cp -f ${WORKDIR}/Makevars ${S}/po/
+}
+
+do_install_append () {
+    rm -rf ${D}/${exec_prefix}/doc
+}
+
+FILES_${PN} += "${exec_prefix}/share/duck.png"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/jasper/jasper_1.900.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/jasper/jasper_1.900.1.bb
new file mode 100644
index 0000000..2c51319
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/jasper/jasper_1.900.1.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Jpeg 2000 implementation"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=baa697d7510288a9cdcce9bd7edaf9bc"
+
+PR = "r1"
+
+SRC_URI = "http://www.ece.uvic.ca/~mdadams/jasper/software/jasper-${PV}.zip"
+
+inherit autotools lib_package
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[jpeg] = "--enable-libjpeg,--disable-libjpeg,jpeg"
+
+EXTRA_OECONF = "--enable-shared"
+
+SRC_URI[md5sum] = "a342b2b4495b3e1394e161eb5d85d754"
+SRC_URI[sha256sum] = "6b905a9c2aca2e275544212666eefc4eb44d95d0a57e4305457b407fe63f9494"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/leptonica/leptonica_1.70.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/leptonica/leptonica_1.70.bb
new file mode 100644
index 0000000..e826e05
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/leptonica/leptonica_1.70.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "A pedagogically-oriented open source site containing software that is broadly useful for image processing and image analysis applications"
+DEPENDS = "jpeg tiff libpng zlib giflib"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://leptonica-license.txt;md5=20cdd3af097ca431b82004c691f406a6"
+
+SRC_URI = "http://leptonica.com/source/leptonica-${PV}.tar.gz"
+SRC_URI[md5sum] = "5ac2a31cf5b4f0e8f5a853a5266c42ef"
+SRC_URI[sha256sum] = "d3d209a1f6d1f7a80119486b5011bc8c6627e582c927ab44ba33c37edb2cfba2"
+
+EXTRA_OECONF += " \
+    --without-libwebp \
+"
+
+inherit autotools pkgconfig
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/libsexy/libsexy.inc b/import-layers/meta-openembedded/meta-oe/recipes-graphics/libsexy/libsexy.inc
new file mode 100644
index 0000000..5a11ca0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/libsexy/libsexy.inc
@@ -0,0 +1,15 @@
+DESCRIPTION = "Libsexy is a collection of GTK+ widgets that extend the functionality of such standard widgets as GtkEntry and GtkLabel"
+HOMEPAGE = "http://wiki.chipx86.com/wiki/Libsexy"
+AUTHOR = "Christian Hammond <chipx86@chipx86.com>"
+SECTION = "x11/libs"
+
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
+
+DEPENDS = "gtk+ enchant libxml2"
+
+SRC_URI = "http://releases.chipx86.com/libsexy/${BPN}/${BP}.tar.gz \
+           file://libsexy-pkgconfig-fixes.patch"
+
+inherit autotools pkgconfig
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/libsexy/libsexy/libsexy-pkgconfig-fixes.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/libsexy/libsexy/libsexy-pkgconfig-fixes.patch
new file mode 100644
index 0000000..61da947
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/libsexy/libsexy/libsexy-pkgconfig-fixes.patch
@@ -0,0 +1,15 @@
+Index: libsexy-0.1.11/libsexy.pc.in
+===================================================================
+--- libsexy-0.1.11.orig/libsexy.pc.in	2005-11-10 10:21:18.000000000 +0000
++++ libsexy-0.1.11/libsexy.pc.in	2008-03-05 14:36:39.000000000 +0000
+@@ -6,7 +6,8 @@
+ Name: libsexy
+ Description: Doing naughty things to good widgets
+ Version: @VERSION@
+-Libs: -L${libdir} -lsexy @PACKAGE_LIBS@
+-Cflags: -I${includedir} @PACKAGE_CFLAGS@
+ 
++Requires: pango glib-2.0 gtk+-2.0 libxml-2.0
++Libs: -L${libdir} -lsexy 
++Cflags: -I${includedir}
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/libsexy/libsexy_0.1.11.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/libsexy/libsexy_0.1.11.bb
new file mode 100644
index 0000000..86b4958
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/libsexy/libsexy_0.1.11.bb
@@ -0,0 +1,6 @@
+require libsexy.inc
+
+PR = "r2"
+
+SRC_URI[md5sum] = "33c079a253270ec8bfb9508e4bb30754"
+SRC_URI[sha256sum] = "8c4101a8cda5fccbba85ba1a15f46f2cf75deaa8b3c525ce5b135b9e1a8fe49e"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver/0001-remove-webclients-build.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver/0001-remove-webclients-build.patch
new file mode 100644
index 0000000..8f4365c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver/0001-remove-webclients-build.patch
@@ -0,0 +1,28 @@
+diff --git a/Makefile.am b/Makefile.am
+index 5c2a94d..f98038a 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -1,7 +1,7 @@
+ ACLOCAL_AMFLAGS = -I m4
+ 
+-SUBDIRS=libvncserver examples libvncclient webclients client_examples test
+-DIST_SUBDIRS=libvncserver examples libvncclient webclients client_examples test
++SUBDIRS=libvncserver examples libvncclient client_examples test
++DIST_SUBDIRS=libvncserver examples libvncclient client_examples test
+ EXTRA_DIST = CMakeLists.txt rfb/rfbint.h.cmake rfb/rfbconfig.h.cmake
+ 
+ bin_SCRIPTS = libvncserver-config
+diff --git a/configure.ac b/configure.ac
+index ca9f3b3..9b464cf 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -600,9 +600,6 @@ AC_CONFIG_FILES([Makefile
+ 	libvncserver/Makefile
+ 	examples/Makefile
+ 	examples/android/Makefile
+-	webclients/Makefile
+-	webclients/java-applet/Makefile
+-	webclients/java-applet/ssl/Makefile
+ 	libvncclient/Makefile
+ 	client_examples/Makefile
+ 	test/Makefile
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver/0002-common-add-sha1.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver/0002-common-add-sha1.patch
new file mode 100644
index 0000000..8b70d2f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver/0002-common-add-sha1.patch
@@ -0,0 +1,524 @@
+diff --git a/common/sha1.c b/common/sha1.c
+new file mode 100644
+index 0000000..988b188
+--- /dev/null
++++ b/common/sha1.c
+@@ -0,0 +1,411 @@
++/*
++ * Copyright (C) The Internet Society (2001).  All Rights Reserved.
++ *
++ * This document and translations of it may be copied and furnished to
++ * others, and derivative works that comment on or otherwise explain it
++ * or assist in its implementation may be prepared, copied, published
++ * and distributed, in whole or in part, without restriction of any
++ * kind, provided that the above copyright notice and this paragraph are
++ * included on all such copies and derivative works.  However, this
++ * document itself may not be modified in any way, such as by removing
++ * the copyright notice or references to the Internet Society or other
++ * Internet organizations, except as needed for the purpose of
++ * developing Internet standards in which case the procedures for
++ * copyrights defined in the Internet Standards process must be
++ * followed, or as required to translate it into languages other than
++ * English.
++ *
++ * The limited permissions granted above are perpetual and will not be
++ * revoked by the Internet Society or its successors or assigns.
++ *
++ * This document and the information contained herein is provided on an
++ * "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
++ * TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
++ * BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
++ * HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
++ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
++ */
++
++/*
++ *  sha1.c
++ *
++ *  Description:
++ *      This file implements the Secure Hashing Algorithm 1 as
++ *      defined in FIPS PUB 180-1 published April 17, 1995.
++ *
++ *      The SHA-1, produces a 160-bit message digest for a given
++ *      data stream.  It should take about 2**n steps to find a
++ *      message with the same digest as a given message and
++ *      2**(n/2) to find any two messages with the same digest,
++ *      when n is the digest size in bits.  Therefore, this
++ *      algorithm can serve as a means of providing a
++ *      "fingerprint" for a message.
++ *
++ *  Portability Issues:
++ *      SHA-1 is defined in terms of 32-bit "words".  This code
++ *      uses <stdint.h> (included via "sha1.h" to define 32 and 8
++ *      bit unsigned integer types.  If your C compiler does not
++ *      support 32 bit unsigned integers, this code is not
++ *      appropriate.
++ *
++ *  Caveats:
++ *      SHA-1 is designed to work with messages less than 2^64 bits
++ *      long.  Although SHA-1 allows a message digest to be generated
++ *      for messages of any number of bits less than 2^64, this
++ *      implementation only works with messages with a length that is
++ *      a multiple of the size of an 8-bit character.
++ *
++ */
++
++#include "sha1.h"
++
++/*
++ *  Define the SHA1 circular left shift macro
++ */
++#define SHA1CircularShift(bits,word) \
++                (((word) << (bits)) | ((word) >> (32-(bits))))
++
++/* Local Function Prototyptes */
++void SHA1PadMessage(SHA1Context *);
++void SHA1ProcessMessageBlock(SHA1Context *);
++
++/*
++ *  SHA1Reset
++ *
++ *  Description:
++ *      This function will initialize the SHA1Context in preparation
++ *      for computing a new SHA1 message digest.
++ *
++ *  Parameters:
++ *      context: [in/out]
++ *          The context to reset.
++ *
++ *  Returns:
++ *      sha Error Code.
++ *
++ */
++int SHA1Reset(SHA1Context *context)
++{
++    if (!context)
++    {
++        return shaNull;
++    }
++
++    context->Length_Low             = 0;
++    context->Length_High            = 0;
++    context->Message_Block_Index    = 0;
++
++    context->Intermediate_Hash[0]   = 0x67452301;
++    context->Intermediate_Hash[1]   = 0xEFCDAB89;
++    context->Intermediate_Hash[2]   = 0x98BADCFE;
++    context->Intermediate_Hash[3]   = 0x10325476;
++    context->Intermediate_Hash[4]   = 0xC3D2E1F0;
++
++    context->Computed   = 0;
++    context->Corrupted  = 0;
++    return shaSuccess;
++}
++
++/*
++ *  SHA1Result
++ *
++ *  Description:
++ *      This function will return the 160-bit message digest into the
++ *      Message_Digest array  provided by the caller.
++ *      NOTE: The first octet of hash is stored in the 0th element,
++ *            the last octet of hash in the 19th element.
++ *
++ *  Parameters:
++ *      context: [in/out]
++ *          The context to use to calculate the SHA-1 hash.
++ *      Message_Digest: [out]
++ *          Where the digest is returned.
++ *
++ *  Returns:
++ *      sha Error Code.
++ *
++ */
++int SHA1Result( SHA1Context *context,
++                uint8_t Message_Digest[SHA1HashSize])
++{
++    int i;
++
++    if (!context || !Message_Digest)
++    {
++        return shaNull;
++    }
++
++    if (context->Corrupted)
++    {
++        return context->Corrupted;
++    }
++
++    if (!context->Computed)
++    {
++        SHA1PadMessage(context);
++        for(i=0; i<64; ++i)
++        {
++            /* message may be sensitive, clear it out */
++            context->Message_Block[i] = 0;
++        }
++        context->Length_Low = 0;    /* and clear length */
++        context->Length_High = 0;
++        context->Computed = 1;
++    }
++
++    for(i = 0; i < SHA1HashSize; ++i)
++    {
++        Message_Digest[i] = context->Intermediate_Hash[i>>2]
++                            >> 8 * ( 3 - ( i & 0x03 ) );
++    }
++
++    return shaSuccess;
++}
++
++/*
++ *  SHA1Input
++ *
++ *  Description:
++ *      This function accepts an array of octets as the next portion
++ *      of the message.
++ *
++ *  Parameters:
++ *      context: [in/out]
++ *          The SHA context to update
++ *      message_array: [in]
++ *          An array of characters representing the next portion of
++ *          the message.
++ *      length: [in]
++ *          The length of the message in message_array
++ *
++ *  Returns:
++ *      sha Error Code.
++ *
++ */
++int SHA1Input(    SHA1Context    *context,
++                  const uint8_t  *message_array,
++                  unsigned       length)
++{
++    if (!length)
++    {
++        return shaSuccess;
++    }
++
++    if (!context || !message_array)
++    {
++        return shaNull;
++    }
++
++    if (context->Computed)
++    {
++        context->Corrupted = shaStateError;
++        return shaStateError;
++    }
++
++    if (context->Corrupted)
++    {
++         return context->Corrupted;
++    }
++    while(length-- && !context->Corrupted)
++    {
++    context->Message_Block[context->Message_Block_Index++] =
++                    (*message_array & 0xFF);
++
++    context->Length_Low += 8;
++    if (context->Length_Low == 0)
++    {
++        context->Length_High++;
++        if (context->Length_High == 0)
++        {
++            /* Message is too long */
++            context->Corrupted = 1;
++        }
++    }
++
++    if (context->Message_Block_Index == 64)
++    {
++        SHA1ProcessMessageBlock(context);
++    }
++
++    message_array++;
++    }
++
++    return shaSuccess;
++}
++
++/*
++ *  SHA1ProcessMessageBlock
++ *
++ *  Description:
++ *      This function will process the next 512 bits of the message
++ *      stored in the Message_Block array.
++ *
++ *  Parameters:
++ *      None.
++ *
++ *  Returns:
++ *      Nothing.
++ *
++ *  Comments:
++ *      Many of the variable names in this code, especially the
++ *      single character names, were used because those were the
++ *      names used in the publication.
++ *
++ *
++ */
++void SHA1ProcessMessageBlock(SHA1Context *context)
++{
++    const uint32_t K[] =    {       /* Constants defined in SHA-1   */
++                            0x5A827999,
++                            0x6ED9EBA1,
++                            0x8F1BBCDC,
++                            0xCA62C1D6
++                            };
++    int           t;                 /* Loop counter                */
++    uint32_t      temp;              /* Temporary word value        */
++    uint32_t      W[80];             /* Word sequence               */
++    uint32_t      A, B, C, D, E;     /* Word buffers                */
++
++    /*
++     *  Initialize the first 16 words in the array W
++     */
++    for(t = 0; t < 16; t++)
++    {
++        W[t] = context->Message_Block[t * 4] << 24;
++        W[t] |= context->Message_Block[t * 4 + 1] << 16;
++        W[t] |= context->Message_Block[t * 4 + 2] << 8;
++        W[t] |= context->Message_Block[t * 4 + 3];
++    }
++
++    for(t = 16; t < 80; t++)
++    {
++       W[t] = SHA1CircularShift(1,W[t-3] ^ W[t-8] ^ W[t-14] ^ W[t-16]);
++    }
++
++    A = context->Intermediate_Hash[0];
++    B = context->Intermediate_Hash[1];
++    C = context->Intermediate_Hash[2];
++    D = context->Intermediate_Hash[3];
++    E = context->Intermediate_Hash[4];
++
++    for(t = 0; t < 20; t++)
++    {
++        temp =  SHA1CircularShift(5,A) +
++                ((B & C) | ((~B) & D)) + E + W[t] + K[0];
++        E = D;
++        D = C;
++        C = SHA1CircularShift(30,B);
++        B = A;
++        A = temp;
++    }
++
++    for(t = 20; t < 40; t++)
++    {
++        temp = SHA1CircularShift(5,A) + (B ^ C ^ D) + E + W[t] + K[1];
++        E = D;
++        D = C;
++        C = SHA1CircularShift(30,B);
++        B = A;
++        A = temp;
++    }
++
++    for(t = 40; t < 60; t++)
++    {
++        temp = SHA1CircularShift(5,A) +
++               ((B & C) | (B & D) | (C & D)) + E + W[t] + K[2];
++        E = D;
++        D = C;
++        C = SHA1CircularShift(30,B);
++        B = A;
++        A = temp;
++    }
++
++    for(t = 60; t < 80; t++)
++    {
++        temp = SHA1CircularShift(5,A) + (B ^ C ^ D) + E + W[t] + K[3];
++        E = D;
++        D = C;
++        C = SHA1CircularShift(30,B);
++        B = A;
++        A = temp;
++    }
++
++    context->Intermediate_Hash[0] += A;
++    context->Intermediate_Hash[1] += B;
++    context->Intermediate_Hash[2] += C;
++    context->Intermediate_Hash[3] += D;
++    context->Intermediate_Hash[4] += E;
++
++    context->Message_Block_Index = 0;
++}
++
++
++/*
++ *  SHA1PadMessage
++ *
++ *  Description:
++ *      According to the standard, the message must be padded to an even
++ *      512 bits.  The first padding bit must be a '1'.  The last 64
++ *      bits represent the length of the original message.  All bits in
++ *      between should be 0.  This function will pad the message
++ *      according to those rules by filling the Message_Block array
++ *      accordingly.  It will also call the ProcessMessageBlock function
++ *      provided appropriately.  When it returns, it can be assumed that
++ *      the message digest has been computed.
++ *
++ *  Parameters:
++ *      context: [in/out]
++ *          The context to pad
++ *      ProcessMessageBlock: [in]
++ *          The appropriate SHA*ProcessMessageBlock function
++ *  Returns:
++ *      Nothing.
++ *
++ */
++
++void SHA1PadMessage(SHA1Context *context)
++{
++    /*
++     *  Check to see if the current message block is too small to hold
++     *  the initial padding bits and length.  If so, we will pad the
++     *  block, process it, and then continue padding into a second
++     *  block.
++     */
++    if (context->Message_Block_Index > 55)
++    {
++        context->Message_Block[context->Message_Block_Index++] = 0x80;
++        while(context->Message_Block_Index < 64)
++        {
++            context->Message_Block[context->Message_Block_Index++] = 0;
++        }
++
++        SHA1ProcessMessageBlock(context);
++
++        while(context->Message_Block_Index < 56)
++        {
++            context->Message_Block[context->Message_Block_Index++] = 0;
++        }
++    }
++    else
++    {
++        context->Message_Block[context->Message_Block_Index++] = 0x80;
++        while(context->Message_Block_Index < 56)
++        {
++            context->Message_Block[context->Message_Block_Index++] = 0;
++        }
++    }
++
++    /*
++     *  Store the message length as the last 8 octets
++     */
++    context->Message_Block[56] = context->Length_High >> 24;
++    context->Message_Block[57] = context->Length_High >> 16;
++    context->Message_Block[58] = context->Length_High >> 8;
++    context->Message_Block[59] = context->Length_High;
++    context->Message_Block[60] = context->Length_Low >> 24;
++    context->Message_Block[61] = context->Length_Low >> 16;
++    context->Message_Block[62] = context->Length_Low >> 8;
++    context->Message_Block[63] = context->Length_Low;
++
++    SHA1ProcessMessageBlock(context);
++}
+diff --git a/common/sha1.h b/common/sha1.h
+new file mode 100644
+index 0000000..1d49b1b
+--- /dev/null
++++ b/common/sha1.h
+@@ -0,0 +1,101 @@
++/*
++ * Copyright (C) The Internet Society (2001).  All Rights Reserved.
++ *
++ * This document and translations of it may be copied and furnished to
++ * others, and derivative works that comment on or otherwise explain it
++ * or assist in its implementation may be prepared, copied, published
++ * and distributed, in whole or in part, without restriction of any
++ * kind, provided that the above copyright notice and this paragraph are
++ * included on all such copies and derivative works.  However, this
++ * document itself may not be modified in any way, such as by removing
++ * the copyright notice or references to the Internet Society or other
++ * Internet organizations, except as needed for the purpose of
++ * developing Internet standards in which case the procedures for
++ * copyrights defined in the Internet Standards process must be
++ * followed, or as required to translate it into languages other than
++ * English.
++ *
++ * The limited permissions granted above are perpetual and will not be
++ * revoked by the Internet Society or its successors or assigns.
++ *
++ * This document and the information contained herein is provided on an
++ * "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
++ * TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
++ * BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
++ * HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
++ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
++ */
++
++/*
++ *  sha1.h
++ *
++ *  Description:
++ *      This is the header file for code which implements the Secure
++ *      Hashing Algorithm 1 as defined in FIPS PUB 180-1 published
++ *      April 17, 1995.
++ *
++ *      Many of the variable names in this code, especially the
++ *      single character names, were used because those were the names
++ *      used in the publication.
++ *
++ *      Please read the file sha1.c for more information.
++ *
++ */
++
++
++#ifndef _SHA1_H_
++#define _SHA1_H_
++
++#include <stdint.h>
++/*
++ * If you do not have the ISO standard stdint.h header file, then you
++ * must typdef the following:
++ *    name              meaning
++ *  uint32_t         unsigned 32 bit integer
++ *  uint8_t          unsigned 8 bit integer (i.e., unsigned char)
++ *  int_least16_t    integer of >= 16 bits
++ *
++ */
++
++#ifndef _SHA_enum_
++#define _SHA_enum_
++enum
++{
++    shaSuccess = 0,
++    shaNull,            /* Null pointer parameter */
++    shaInputTooLong,    /* input data too long */
++    shaStateError       /* called Input after Result */
++};
++#endif
++#define SHA1HashSize 20
++
++/*
++ *  This structure will hold context information for the SHA-1
++ *  hashing operation
++ */
++typedef struct SHA1Context
++{
++    uint32_t Intermediate_Hash[SHA1HashSize/4]; /* Message Digest  */
++
++    uint32_t Length_Low;            /* Message length in bits      */
++    uint32_t Length_High;           /* Message length in bits      */
++
++                               /* Index into message block array   */
++    int_least16_t Message_Block_Index;
++    uint8_t Message_Block[64];      /* 512-bit message blocks      */
++
++    int Computed;               /* Is the digest computed?         */
++    int Corrupted;             /* Is the message digest corrupted? */
++} SHA1Context;
++
++/*
++ *  Function Prototypes
++ */
++int SHA1Reset(  SHA1Context *);
++int SHA1Input(  SHA1Context *,
++                const uint8_t *,
++                unsigned int);
++int SHA1Result( SHA1Context *,
++                uint8_t Message_Digest[SHA1HashSize]);
++
++#endif
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.10.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.10.bb
new file mode 100644
index 0000000..235b17e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.10.bb
@@ -0,0 +1,24 @@
+DESCRIPTION = "library for easy implementation of a RDP/VNC server"
+HOMEPAGE = "https://libvnc.github.io"
+SECTION = "libs"
+PRIORITY = "optional"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=361b6b837cad26c6900a926b62aada5f"
+
+DEPENDS += "zlib libsdl jpeg libpng gtk+ libgcrypt nettle gnutls gmp"
+RDEPENDS_${PN} += "libpng gtk+ libgcrypt"
+
+inherit autotools binconfig pkgconfig
+
+SRC_URI  = "\
+	 ${DEBIAN_MIRROR}/main/libv/libvncserver/libvncserver_0.9.10+dfsg.orig.tar.xz \
+	 file://0001-remove-webclients-build.patch \
+	 file://0002-common-add-sha1.patch \
+"
+
+SRC_URI[md5sum] = "e883b6c7bd339a5e1c48645051abe5c4"
+SRC_URI[sha256sum] = "583f28869b82aec57768d7d18cd7ff81bf092ecbbc1209b587c2c2cd68330250"
+
+S = "${WORKDIR}/${BPN}-LibVNCServer-${PV}"
+
+TARGET_LDFLAGS += "-lgcrypt"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm/0001-lxdm.conf.in-blacklist-root-for-release-images.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm/0001-lxdm.conf.in-blacklist-root-for-release-images.patch
new file mode 100644
index 0000000..49ecdb8
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm/0001-lxdm.conf.in-blacklist-root-for-release-images.patch
@@ -0,0 +1,29 @@
+From 5038c49c0b61e057dec44c932f02c4bf99cee96e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Mon, 3 Sep 2012 10:02:51 +0200
+Subject: [PATCH] lxdm.conf.in: blacklist root for release images
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Inappropriate [configuration]
+
+Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+---
+ data/lxdm.conf.in |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/data/lxdm.conf.in b/data/lxdm.conf.in
+index defc082..759e6e5 100644
+--- a/data/lxdm.conf.in
++++ b/data/lxdm.conf.in
+@@ -58,5 +58,5 @@ disable=0
+ white=
+ 
+ ## blacklist user
+-black=
++black=root
+ 
+-- 
+1.7.4.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm/0002-let-autotools-create-lxdm.conf.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm/0002-let-autotools-create-lxdm.conf.patch
new file mode 100644
index 0000000..75dc10c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm/0002-let-autotools-create-lxdm.conf.patch
@@ -0,0 +1,35 @@
+From 0ea0329f2c19a43acdc8444fa89e233ba617973d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Mon, 6 Oct 2014 13:06:24 +0200
+Subject: [PATCH] let autotools create lxdm.conf
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+in out of tree builds lxdm.conf is empty
+
+Upstream-Status: submitted [1]
+
+[1] http://sourceforge.net/p/lxde/mailman/message/32901417/
+
+Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+---
+ data/lxdm.conf.in | 2 +-
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/data/lxdm.conf.in b/data/lxdm.conf.in
+index d93f280..6206262 100644
+--- a/data/lxdm.conf.in
++++ b/data/lxdm.conf.in
+@@ -19,7 +19,7 @@
+ # skip_password=1
+ 
+ ## greeter used to welcome the user
+-greeter=@FULL_LIBEXECDIR@/lxdm-greeter-gtk
++greeter=@libexecdir@/lxdm-greeter-gtk
+ 
+ [server]
+ ## arg used to start xserver, not fully function
+-- 
+1.8.3.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm/lxdm-pam b/import-layers/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm/lxdm-pam
new file mode 100644
index 0000000..486621f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm/lxdm-pam
@@ -0,0 +1,13 @@
+#%PAM-1.0
+# taken from http://aur.archlinux.org/packages/lx/lxdm-git/lxdm-git.tar.gz
+# further info https://wiki.archlinux.org/index.php/LXDM
+auth            requisite       pam_nologin.so
+auth            required        pam_env.so
+auth            required        pam_unix.so
+# To allow passwordless login comment previous line and uncomment next line
+#auth            required        pam_unix.so nullok
+account         required        pam_unix.so
+session         required        pam_limits.so
+session         required        pam_unix.so
+password        required        pam_unix.so
+-session optional pam_systemd.so
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm/lxdm-pam-debug b/import-layers/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm/lxdm-pam-debug
new file mode 100644
index 0000000..734949f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm/lxdm-pam-debug
@@ -0,0 +1,13 @@
+#%PAM-1.0
+# taken from http://aur.archlinux.org/packages/lx/lxdm-git/lxdm-git.tar.gz
+# further info https://wiki.archlinux.org/index.php/LXDM
+auth            requisite       pam_nologin.so
+auth            required        pam_env.so
+#auth            required        pam_unix.so
+# To deny passwordless login comment next line and uncomment previous line
+auth            required        pam_unix.so nullok
+account         required        pam_unix.so
+session         required        pam_limits.so
+session         required        pam_unix.so
+password        required        pam_unix.so
+-session optional pam_systemd.so
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm/lxdm.conf b/import-layers/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm/lxdm.conf
new file mode 100644
index 0000000..0a6e672
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm/lxdm.conf
@@ -0,0 +1,4 @@
+[base]
+last_session=
+last_lang=
+last_langs=
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm_0.5.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm_0.5.3.bb
new file mode 100644
index 0000000..407129d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/lxdm/lxdm_0.5.3.bb
@@ -0,0 +1,78 @@
+SUMMARY = "LXDM is the lightweight display manager"
+HOMEPAGE = "http://blog.lxde.org/?p=531"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+SRC_URI = " \
+    ${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}%20${PV}/${BPN}-${PV}.tar.xz \
+    file://lxdm.conf \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'file://lxdm-pam file://lxdm-pam-debug', '', d)} \
+    ${@bb.utils.contains("DISTRO_TYPE", "debug", "", "file://0001-lxdm.conf.in-blacklist-root-for-release-images.patch",d)} \
+    file://0002-let-autotools-create-lxdm.conf.patch \
+"
+SRC_URI[md5sum] = "061caae432634e6db38bbdc84bc6ffa0"
+SRC_URI[sha256sum] = "4891efee81c72a400cc6703e40aa76f3f3853833d048b72ec805da0f93567f2f"
+
+PE = "1"
+
+DEPENDS = "virtual/libintl intltool-native cairo dbus gdk-pixbuf glib-2.0 gtk+ virtual/libx11 libxcb pango iso-codes"
+DEPENDS += "${@bb.utils.contains("DISTRO_FEATURES", "systemd", "", "consolekit", d)}"
+
+# combine oe-core way with angstrom DISTRO_TYPE
+DISTRO_TYPE ?= "${@bb.utils.contains("IMAGE_FEATURES", "debug-tweaks", "debug", "",d)}"
+
+inherit autotools pkgconfig gettext systemd distro_features_check
+# depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+CFLAGS_append = " -fno-builtin-fork -fno-builtin-memset -fno-builtin-strstr "
+
+EXTRA_OECONF += "--enable-gtk3=no --enable-password=yes --with-x -with-xconn=xcb \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--with-systemdsystemunitdir=${systemd_unitdir}/system/ --disable-consolekit', '--without-systemdsystemunitdir', d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--with-pam', '--without-pam', d)} \
+"
+
+do_configure_prepend() {
+    cp ${STAGING_DATADIR}/gettext/po/Makefile.in.in ${S}/po/
+}
+
+do_compile_append() {
+    # default background configured not available / no password field available / no default screensaver
+    sed -i     -e 's,bg=,# bg=,g' \
+        -e 's,# skip_password=,skip_password=,g' \
+        -e 's,# arg=.*,arg=${bindir}/X -s 0,g' \
+        ${S}/data/lxdm.conf.in
+    # add default configuration
+    oe_runmake -C ${B}/data lxdm.conf
+}
+
+do_install_append() {
+    install -d ${D}${localstatedir}/lib/lxdm
+    install -m 644 ${WORKDIR}/lxdm.conf ${D}${localstatedir}/lib/lxdm
+    if ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'true', 'false', d)}; then
+        # ArchLinux version of pam config has the following advantages:
+        # * simple setup of passwordless login
+        # * in XFCE powerdown/restart enabled in logoff dialog
+        install -m 644 ${WORKDIR}/${@bb.utils.contains("DISTRO_TYPE", "debug", "lxdm-pam-debug", "lxdm-pam",d)} ${D}${sysconfdir}/pam.d/lxdm
+    fi
+}
+
+# make installed languages choosable
+pkg_postinst_${PN} () {
+langs=""
+for lang in `find $D${libdir}/locale -maxdepth 1 | grep _ | sort`; do
+lang=`basename $lang`
+if [ "x$langs" = "x" ]; then
+    langs="$lang"
+else
+   langs="$langs $lang"
+fi
+done
+sed -i "s:last_langs=.*$:last_langs=$langs:g" $D${localstatedir}/lib/lxdm/lxdm.conf
+}
+
+RDEPENDS_${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam-plugin-loginuid', '', d)} setxkbmap bash librsvg-gtk"
+
+RPROVIDES_${PN} += "${PN}-systemd"
+RREPLACES_${PN} += "${PN}-systemd"
+RCONFLICTS_${PN} += "${PN}-systemd"
+SYSTEMD_SERVICE_${PN} = "lxdm.service"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/mesa/mesa-glut_8.0.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/mesa/mesa-glut_8.0.1.bb
new file mode 100644
index 0000000..404ee53
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/mesa/mesa-glut_8.0.1.bb
@@ -0,0 +1,16 @@
+SUMMARY = "OpenGL Utility Toolkit"
+LICENSE = "Kilgard"
+LIC_FILES_CHKSUM = "file://include/GL/glut.h;md5=4aab626c830aed79d7b2e5a76dfa2dd6;startline=4;endline=8"
+
+SRC_URI = "git://anongit.freedesktop.org/mesa/glut"
+
+SRCREV = "ee89e9aeb49604b036e06f1df6478d32006b30cd"
+PV = "8.0.0+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+inherit autotools-brokensep pkgconfig distro_features_check
+# depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+DEPENDS = "virtual/libx11 libxmu libxi virtual/libgl libglu"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/numlockx/numlockx_1.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/numlockx/numlockx_1.2.bb
new file mode 100644
index 0000000..08d7f5b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/numlockx/numlockx_1.2.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Enable NumLock in X11 sessions"
+HOMEPAGE = "http://home.kde.org/~seli/numlockx/"
+SECTION = "x11/apps"
+LICENSE = "MIT-X"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=dcb1cc75e21540a4a66b54e38d95b047"
+DEPENDS = "virtual/libx11 libxtst"
+
+SRC_URI = "http://pkgs.fedoraproject.org/repo/pkgs/numlockx/numlockx-${PV}.tar.gz/be9109370447eae23f6f3f8527bb1a67/numlockx-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "be9109370447eae23f6f3f8527bb1a67"
+SRC_URI[sha256sum] = "e468eb9121c94c9089dc6a287eeb347e900ce04a14be37da29d7696cbce772e4"
+
+inherit autotools distro_features_check
+# depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+EXTRA_OECONF = "--x-includes=${STAGING_INCDIR} \
+                --x-libraries=${STAGING_LIBDIR}"
+
+do_configure_prepend() {
+    # remove this from acinclude.m4 or build fails
+    sed -i '/_AC_PATH_X_XMKMF/d' ${S}/acinclude.m4
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/openbox/files/0001-Makefile.am-avoid-race-when-creating-autostart-direc.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/openbox/files/0001-Makefile.am-avoid-race-when-creating-autostart-direc.patch
new file mode 100644
index 0000000..2762e1c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/openbox/files/0001-Makefile.am-avoid-race-when-creating-autostart-direc.patch
@@ -0,0 +1,54 @@
+From 6bbde84a2197c97e49d9e64118a979728209e436 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Wed, 23 Sep 2015 23:21:42 +0200
+Subject: [PATCH] Makefile.am: avoid race when creating autostart directories
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+fixes:
+
+| make: creating data/xsession/openbox-gnome-session
+| make: creating data/xsession/openbox-session
+| make: creating data/xsession/openbox-kde-session
+| make: creating data/autostart/openbox-autostart
+| make: creating doc/openbox.1
+| make: creating data/autostart/autostart
+| make: creating doc/openbox-session.1
+| make: creating doc/openbox-gnome-session.1
+| make: creating doc/openbox-kde-session.1
+| make: creating doc/obxprop.1
+| mkdir: cannot create directory './data/autostart': File exists
+| Makefile:4329: recipe for target 'data/autostart/autostart' failed
+
+Upstream-Status: Pending
+
+Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+---
+ Makefile.am | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index f25bf8e..306e77d 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -505,14 +505,12 @@ edit = $(SED) \
+ 
+ data/autostart/autostart: $(top_srcdir)/data/autostart/autostart.in Makefile
+ 	@echo make: creating $@
+-	@test -d $(shell dirname $(top_builddir)/$@) || \
+-	  mkdir $(shell dirname $(top_builddir)/$@)
++	mkdir -p $(shell dirname $(top_builddir)/$@)
+ 	@$(edit) $< >$(top_builddir)/$@
+ 
+ data/autostart/openbox-autostart: $(top_srcdir)/data/autostart/openbox-autostart.in Makefile
+ 	@echo make: creating $@
+-	@test -d $(shell dirname $(top_builddir)/$@) || \
+-	  mkdir $(shell dirname $(top_builddir)/$@)
++	mkdir -p $(shell dirname $(top_builddir)/$@)
+ 	@$(edit) $< >$(top_builddir)/$@
+ 
+ %.desktop: %.desktop.in Makefile
+-- 
+2.1.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/openbox/openbox_3.6.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/openbox/openbox_3.6.1.bb
new file mode 100644
index 0000000..b354ae7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/openbox/openbox_3.6.1.bb
@@ -0,0 +1,53 @@
+SUMMARY = "openbox Window Manager"
+SECTION = "x11/wm"
+DEPENDS = "glib-2.0 pango libxml2 virtual/libx11 libcroco librsvg gdk-pixbuf"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+SRC_URI = " \
+    http://icculus.org/openbox/releases/openbox-${PV}.tar.gz \
+    file://0001-Makefile.am-avoid-race-when-creating-autostart-direc.patch \
+"
+
+SRC_URI[md5sum] = "b72794996c6a3ad94634727b95f9d204"
+SRC_URI[sha256sum] = "8b4ac0760018c77c0044fab06a4f0c510ba87eae934d9983b10878483bde7ef7"
+
+inherit autotools gettext update-alternatives pkgconfig distro_features_check
+# depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+ALTERNATIVE_${PN}-core = "x-window-manager"
+ALTERNATIVE_TARGET[x-window-manager] = "${bindir}/openbox"
+ALTERNATIVE_PRIORITY[x-window-manager] = "10"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[imlib2] = "--enable-imlib2,--disable-imlib2,imlib2"
+PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-startup-notification,startup-notification"
+PACKAGECONFIG[xrandr] = "--enable-xrandr,--disable-xrandr,libxrandr"
+PACKAGECONFIG[xinerama] = "--enable-xinerama,--disable-xinerama,libxinerama"
+PACKAGECONFIG[xcursor] = "--enable-xcursor,--disable-xcursor,libxcursor"
+
+PACKAGES =+ "${PN}-core ${PN}-lxde ${PN}-gnome ${PN}-config"
+
+PACKAGES_DYNAMIC += "^${PN}-theme-.*"
+
+python populate_packages_prepend() {
+    theme_dir = d.expand('${datadir}/themes/')
+    theme_name = d.expand('${PN}-theme-%s')
+    do_split_packages(d, theme_dir, '(.*)', theme_name, '${PN} theme for %s', extra_depends='', allow_dirs=True)
+}
+
+RDEPENDS_${PN} += "${PN}-core ${PN}-config ${PN}-theme-clearlooks"
+FILES_${PN}-core = "${bindir}/openbox ${libdir}/*${SOLIBS}"
+
+FILES_${PN}-lxde += "${datadir}/lxde/ \
+                     ${datadir}/lxpanel \
+                     ${datadir}/xsessions \
+                     ${datadir}/icons"
+
+FILES_${PN}-gnome += " \
+    ${datadir}/gnome \
+    ${datadir}/gnome-session \
+"
+
+FILES_${PN}-config += "${sysconfdir}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg_2.1.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg_2.1.0.bb
new file mode 100644
index 0000000..d28a865
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/openjpeg/openjpeg_2.1.0.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "OpenJPEG library is an open-source JPEG 2000 codec"
+HOMEPAGE = "http://www.openjpeg.org/index.php?menu=main"
+
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c648878b4840d7babaade1303e7f108c"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}.mirror/${PV}/${BPN}-${PV}.tar.gz"
+SRC_URI[md5sum] = "f6419fcc233df84f9a81eb36633c6db6"
+SRC_URI[sha256sum] = "1232bb814fd88d8ed314c94f0bfebb03de8559583a33abbe8c64ef3fc0a8ff03"
+
+inherit cmake
+
+DEPENDS = "libpng tiff lcms"
+
+# standard path for *.cmake
+EXTRA_OECMAKE += "-DOPENJPEG_INSTALL_PACKAGE_DIR=${baselib}/cmake \
+                  -DOPENJPEG_INSTALL_LIB_DIR:PATH=${libdir}"
+
+FILES_${PN}-dev += "${libdir}/cmake/*.cmake"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/packagegroups/packagegroup-fonts-truetype.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/packagegroups/packagegroup-fonts-truetype.bb
new file mode 100644
index 0000000..632e7d4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/packagegroups/packagegroup-fonts-truetype.bb
@@ -0,0 +1,40 @@
+SUMMARY = "Install one of these tasks to get support for truetype fonts"
+SECTION = "fonts"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+PV = "1.0"
+PR = "r2"
+
+inherit packagegroup allarch
+
+PACKAGES += "\
+    ${PN}-core \
+    ${PN}-chinese \
+    ${PN}-japanese \
+"
+
+RRECOMMENDS_${PN} = "\
+    ${PN}-core \
+    ${PN}-chinese \
+    ${PN}-japanese \
+"
+
+RDEPENDS_${PN}-core = "\
+    fontconfig-utils \
+    \
+    ttf-dejavu-common \
+    ttf-dejavu-sans \
+    ttf-dejavu-sans-mono \
+"
+#  ttf-dejavu-serif
+
+RDEPENDS_${PN}-chinese = "\
+    ${PN}-core \
+    ttf-arphic-uming \
+"
+
+RDEPENDS_${PN}-japanese = "\
+    ${PN}-core \
+    ttf-sazanami-gothic \
+    ttf-sazanami-mincho \
+"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/pango/pangomm_2.36.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/pango/pangomm_2.36.0.bb
new file mode 100644
index 0000000..f738153
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/pango/pangomm_2.36.0.bb
@@ -0,0 +1,21 @@
+SUMMARY = "C++ bindings for the pango library"
+SECTION = "libs"
+LICENSE = "LGPLv2.1 & GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499 \
+                    file://COPYING.tools;md5=751419260aa954499f7abaabaa882bbe"
+
+DEPENDS = "mm-common cairomm glibmm pango"
+
+SHRT_VER = "${@d.getVar('PV',1).split('.')[0]}.${@d.getVar('PV',1).split('.')[1]}"
+
+SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/pangomm/${SHRT_VER}/pangomm-${PV}.tar.xz"
+SRC_URI[md5sum] = "62910723211d86ab825b666b479871c9"
+SRC_URI[sha256sum] = "a8d96952c708d7726bed260d693cece554f8f00e48b97cccfbf4f5690b6821f0"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = " --disable-documentation "
+
+FILES_${PN} = "${libdir}/lib*.so.*"
+FILES_${PN}-dev += "${libdir}/*/include/ ${libdir}/pangomm-*/"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/qrencode/qrencode_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/qrencode/qrencode_git.bb
new file mode 100644
index 0000000..6a159a7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/qrencode/qrencode_git.bb
@@ -0,0 +1,16 @@
+SUMMARY = "C library for encoding data in a QR Code symbol"
+AUTHOR = "Kentaro Fukuchi"
+HOMEPAGE = "http://fukuchi.org/works/qrencode/"
+SECTION = "libs"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
+PV = "3.4.4+git${SRCPV}"
+
+SRCREV = "1b565c7b599029818fc596e7da4371a3083da36c"
+SRC_URI = "git://github.com/fukuchi/libqrencode.git"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF += "--without-tools --without-tests"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0002-Fix-image-handling-integer-overflows.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0002-Fix-image-handling-integer-overflows.patch
new file mode 100644
index 0000000..de82d63
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0002-Fix-image-handling-integer-overflows.patch
@@ -0,0 +1,343 @@
+From 24e548a222f0aab4313d5ba8b04f0840b173000f Mon Sep 17 00:00:00 2001
+From: iwamatsu <iwamatsu@7c53e7cc-98ea-0310-8f1f-a0b24da60408>
+Date: Mon, 30 Aug 2010 01:24:54 +0000
+Subject: [PATCH 2/8] Fix image handling integer overflows
+
+Image loading memory allocation is based on the image width and height:
+ malloc(heigth * width * 3).  Providing an image with large height and
+width values can cause the result of this calculation to exceed the
+maximum value of an unsigned int and thus causes an integer overflow.
+The result: too little memory is allocated and an heap overflow occurs.
+
+This patch was based by Niels Heinen <niels@freebsd.org>
+Thanks!
+
+Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
+
+git-svn-id: svn://svn.berlios.de/slim/trunk@176 7c53e7cc-98ea-0310-8f1f-a0b24da60408
+---
+ const.h |    3 ++
+ jpeg.c  |   51 +++++++++++++++-----------
+ png.c   |  122 ++++++++++++++++++++++++++++++++------------------------------
+ 3 files changed, 96 insertions(+), 80 deletions(-)
+
+diff --git a/const.h b/const.h
+index df0989c..a18c6f3 100644
+--- a/const.h
++++ b/const.h
+@@ -42,4 +42,7 @@
+ // variables replaced in pre-session_cmd and post-session_cmd
+ #define USER_VAR       "%user"
+ 
++// max height/width for images
++#define MAX_DIMENSION 10000
++
+ #endif
+diff --git a/jpeg.c b/jpeg.c
+index 1cf106c..e1f8352 100644
+--- a/jpeg.c
++++ b/jpeg.c
+@@ -22,16 +22,22 @@
+ #include <string.h>
+ 
+ #include <jpeglib.h>
++#include "const.h"
+ 
+ int
+ read_jpeg(const char *filename, int *width, int *height, unsigned char **rgb)
+ {
++    int ret = 0;
+     struct jpeg_decompress_struct cinfo;
+     struct jpeg_error_mgr jerr;
+     unsigned char *ptr = NULL;
+     unsigned int i, ipos;
+ 
+     FILE *infile = fopen(filename, "rb");
++    if (infile == NULL) {
++        fprintf(stderr, "Can not fopen file: %s\n",filename);
++        return ret;
++    }
+ 
+     cinfo.err = jpeg_std_error(&jerr);
+     jpeg_create_decompress(&cinfo);
+@@ -39,43 +45,39 @@ read_jpeg(const char *filename, int *width, int *height, unsigned char **rgb)
+     jpeg_read_header(&cinfo, TRUE);
+     jpeg_start_decompress(&cinfo);
+ 
++    /* Prevent against integer overflow */
++    if(cinfo.output_width >= MAX_DIMENSION || cinfo.output_height >= MAX_DIMENSION) {
++        fprintf(stderr, "Unreasonable dimension found in file: %s\n",filename);
++        goto close_file;
++    }
++
+     *width = cinfo.output_width;
+     *height = cinfo.output_height;
+ 
+     rgb[0] = malloc(3 * cinfo.output_width * cinfo.output_height);
+-    if (rgb[0] == NULL)
+-    {
++    if (rgb[0] == NULL) {
+         fprintf(stderr, "Can't allocate memory for JPEG file.\n");
+-    fclose(infile);
+-        return(0);
++        goto close_file;
+     }
+ 
+-    if (cinfo.output_components == 3)
+-    {
++    if (cinfo.output_components == 3) {
+         ptr = rgb[0];
+-        while (cinfo.output_scanline < cinfo.output_height) 
+-        {
++        while (cinfo.output_scanline < cinfo.output_height) {
+             jpeg_read_scanlines(&cinfo, &ptr, 1);
+             ptr += 3 * cinfo.output_width;
+         }
+-    }
+-    else if (cinfo.output_components == 1)
+-    {
++    } else if (cinfo.output_components == 1) {
+         ptr = malloc(cinfo.output_width);
+-        if (ptr == NULL)
+-        {
++        if (ptr == NULL) {
+             fprintf(stderr, "Can't allocate memory for JPEG file.\n");
+-        fclose(infile);
+-            return(0);
++            goto rgb_free;
+         }
+ 
+         ipos = 0;
+-        while (cinfo.output_scanline < cinfo.output_height) 
+-        {
++        while (cinfo.output_scanline < cinfo.output_height) {
+             jpeg_read_scanlines(&cinfo, &ptr, 1);
+ 
+-            for (i = 0; i < cinfo.output_width; i++)
+-            {
++            for (i = 0; i < cinfo.output_width; i++) {
+                 memset(rgb[0] + ipos, ptr[i], 3);
+                 ipos += 3;
+             }
+@@ -85,9 +87,16 @@ read_jpeg(const char *filename, int *width, int *height, unsigned char **rgb)
+     }
+ 
+     jpeg_finish_decompress(&cinfo);
+-    jpeg_destroy_decompress(&cinfo);
+ 
++    ret = 1;
++    goto close_file;
++
++rgb_free:
++    free(rgb[0]);
++
++close_file:
++    jpeg_destroy_decompress(&cinfo);
+     fclose(infile);
+ 
+-    return(1);
++    return(ret);
+ }
+diff --git a/png.c b/png.c
+index a2661c6..5c086c6 100644
+--- a/png.c
++++ b/png.c
+@@ -22,12 +22,13 @@
+ #include <stdlib.h>
+ 
+ #include <png.h>
++#include "const.h"
+ 
+ int
+ read_png(const char *filename, int *width, int *height, unsigned char **rgb, 
+      unsigned char **alpha)
+ {
+-    FILE *infile = fopen(filename, "rb");
++    int ret = 0;
+ 
+     png_structp png_ptr;
+     png_infop info_ptr;
+@@ -38,31 +39,27 @@ read_png(const char *filename, int *width, int *height, unsigned char **rgb,
+     int bit_depth, color_type, interlace_type;
+     int i;
+ 
++    FILE *infile = fopen(filename, "rb");
++    if (infile == NULL) {
++        fprintf(stderr, "Can not fopen file: %s\n",filename);
++        return ret;
++    }
++
+     png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, 
+                                      (png_voidp) NULL, 
+                                      (png_error_ptr) NULL, 
+                                      (png_error_ptr) NULL);
+-    if (!png_ptr) 
+-    {
+-        fclose(infile);
+-        return(0);
+-    }
++    if (!png_ptr)
++        goto file_close;
+   
+     info_ptr = png_create_info_struct(png_ptr);
+-    if (!info_ptr)
+-    {
++    if (!info_ptr) {
+         png_destroy_read_struct(&png_ptr, (png_infopp) NULL, 
+                                 (png_infopp) NULL);
+-        fclose(infile);
+-        return(0);
+     }
+   
+     if (setjmp(png_ptr->jmpbuf))
+-    {
+-        png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp) NULL);
+-        fclose(infile);
+-        return(0);
+-    }
++        goto png_destroy;
+   
+     png_init_io(png_ptr, infile);
+     png_read_info(png_ptr, info_ptr);
+@@ -70,18 +67,23 @@ read_png(const char *filename, int *width, int *height, unsigned char **rgb,
+     png_get_IHDR(png_ptr, info_ptr, &w, &h, &bit_depth, &color_type,
+                  &interlace_type, (int *) NULL, (int *) NULL);
+ 
++    /* Prevent against integer overflow */
++    if(w >= MAX_DIMENSION || h >= MAX_DIMENSION) {
++        fprintf(stderr, "Unreasonable dimension found in file: %s\n",filename);
++        goto png_destroy;
++    }
++
+     *width = (int) w;
+     *height = (int) h;
+     
+     if (color_type == PNG_COLOR_TYPE_RGB_ALPHA
+-    || color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
+-    {
+-    alpha[0] = malloc(*width * *height);
+-    if (alpha[0] == NULL)
+-    {
+-        fprintf(stderr, "Can't allocate memory for alpha channel in PNG file.\n");
+-        return(0); 
+-    }
++        || color_type == PNG_COLOR_TYPE_GRAY_ALPHA) {
++        alpha[0] = malloc(*width * *height);
++        if (alpha[0] == NULL)
++        {
++            fprintf(stderr, "Can't allocate memory for alpha channel in PNG file.\n");
++            goto png_destroy;
++        }
+     }
+ 
+     /* Change a paletted/grayscale image to RGB */
+@@ -94,68 +96,70 @@ read_png(const char *filename, int *width, int *height, unsigned char **rgb,
+         png_set_gray_to_rgb(png_ptr);
+ 
+     /* If the PNG file has 16 bits per channel, strip them down to 8 */
+-    if (bit_depth == 16) png_set_strip_16(png_ptr);
++    if (bit_depth == 16)
++        png_set_strip_16(png_ptr);
+ 
+     /* use 1 byte per pixel */
+     png_set_packing(png_ptr);
+ 
+     row_pointers = malloc(*height * sizeof(png_bytep));
+-    if (row_pointers == NULL)
+-    {
++    if (row_pointers == NULL) {
+         fprintf(stderr, "Can't allocate memory for PNG file.\n");
+-        return(0);
++        goto png_destroy;
+     }
+ 
+-    for (i = 0; i < *height; i++)
+-    {
++    for (i = 0; i < *height; i++) {
+         row_pointers[i] = malloc(4 * *width);
+-        if (row_pointers == NULL)
+-        {
++        if (row_pointers == NULL) {
+             fprintf(stderr, "Can't allocate memory for PNG line.\n");
+-            return(0);
++            goto rows_free;
+         }
+     }
+ 
+     png_read_image(png_ptr, row_pointers);
+ 
+     rgb[0] = malloc(3 * *width * *height);
+-    if (rgb[0] == NULL)
+-    {
++    if (rgb[0] == NULL) {
+         fprintf(stderr, "Can't allocate memory for PNG file.\n");
+-        return(0);
++        goto rows_free;
+     }
+ 
+     if (alpha[0] == NULL)
+     {
+-    ptr = rgb[0];
+-    for (i = 0; i < *height; i++)
+-    {
+-        memcpy(ptr, row_pointers[i], 3 * *width);
+-        ptr += 3 * *width;
+-    }
+-    }
+-    else
+-    {
+-    int j;
+-    ptr = rgb[0];
+-    for (i = 0; i < *height; i++)
+-    {
+-        int ipos = 0;
+-        for (j = 0; j < *width; j++)
+-        {
+-        *ptr++ = row_pointers[i][ipos++];
+-        *ptr++ = row_pointers[i][ipos++];
+-        *ptr++ = row_pointers[i][ipos++];
+-        alpha[0][i * *width + j] = row_pointers[i][ipos++];
++        ptr = rgb[0];
++        for (i = 0; i < *height; i++) {
++            memcpy(ptr, row_pointers[i], 3 * *width);
++            ptr += 3 * *width;
++        }
++    } else {
++        int j;
++        ptr = rgb[0];
++        for (i = 0; i < *height; i++) {
++            int ipos = 0;
++            for (j = 0; j < *width; j++) {
++                *ptr++ = row_pointers[i][ipos++];
++                *ptr++ = row_pointers[i][ipos++];
++                *ptr++ = row_pointers[i][ipos++];
++                alpha[0][i * *width + j] = row_pointers[i][ipos++];
++            }
+         }
+-    }
+     }
+ 
+-    png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp) NULL);
++    ret = 1; /* data reading is OK */
++
++rows_free:
++    for (i = 0; i < *height; i++) {
++        if (row_pointers[i] != NULL ) {
++            free(row_pointers[i]);
++        }
++    }
+ 
+-    for (i = 0; i < *height; i++) free(row_pointers[i]);
+     free(row_pointers);
+ 
++png_destroy:
++    png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp) NULL);
++
++file_close:
+     fclose(infile);
+-    return(1);
++    return(ret);
+ }
+-- 
+1.6.6.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0003-Fix-build-failure-with-ld-as-needed.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0003-Fix-build-failure-with-ld-as-needed.patch
new file mode 100644
index 0000000..471c4f5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0003-Fix-build-failure-with-ld-as-needed.patch
@@ -0,0 +1,37 @@
+From 6aad913ddd5cdb473db9fa21a5e8ecec58de172b Mon Sep 17 00:00:00 2001
+From: iwamatsu <iwamatsu@7c53e7cc-98ea-0310-8f1f-a0b24da60408>
+Date: Wed, 12 Jan 2011 04:41:02 +0000
+Subject: [PATCH 3/8] Fix build failure with ld --as-needed.
+
+Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
+
+git-svn-id: svn://svn.berlios.de/slim/trunk@177 7c53e7cc-98ea-0310-8f1f-a0b24da60408
+---
+ Makefile |    4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 1219de4..fafa0ef 100644
+--- a/Makefile
++++ b/Makefile
+@@ -4,7 +4,7 @@
+ # to fit into your operating system / distribution
+ #######################################################
+ CXX=/usr/bin/g++
+-CC=/usr/bin/gcc
++CC=/usr/bin/gcc-4.5
+ CFLAGS=-Wall -I. -I/usr/include/freetype2 -I/usr/include/freetype2/config -I/usr/include/libpng12 -I/usr/include
+ CXXFLAGS=$(CFLAGS)
+ LDFLAGS=-lXft -lX11 -lfreetype -lXrender -lfontconfig -lpng12 -lz -lm -lcrypt -lXmu -lpng -ljpeg -lrt
+@@ -33,7 +33,7 @@ endif
+ all: slim
+ 
+ slim: $(OBJECTS)
+-	$(CXX) $(LDFLAGS) $(OBJECTS) -o $(NAME)
++	$(CXX) $(OBJECTS) $(LDFLAGS) -o $(NAME)
+ 
+ .cpp.o:
+ 	$(CXX) $(CXXFLAGS) $(DEFINES) $(CUSTOM) -c $< -o $@
+-- 
+1.6.6.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0004-Add-support-libpng15.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0004-Add-support-libpng15.patch
new file mode 100644
index 0000000..f2087c0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0004-Add-support-libpng15.patch
@@ -0,0 +1,50 @@
+From c2067e8c16bfb721d339718ae0c99c70a994936b Mon Sep 17 00:00:00 2001
+From: iwamatsu <iwamatsu@7c53e7cc-98ea-0310-8f1f-a0b24da60408>
+Date: Fri, 17 Jun 2011 20:35:07 +0000
+Subject: [PATCH 4/8] Add support libpng15
+
+Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
+
+git-svn-id: svn://svn.berlios.de/slim/trunk@178 7c53e7cc-98ea-0310-8f1f-a0b24da60408
+---
+ Makefile |    4 ++--
+ png.c    |    6 +++++-
+ 2 files changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index fafa0ef..1202614 100644
+--- a/Makefile
++++ b/Makefile
+@@ -5,9 +5,9 @@
+ #######################################################
+ CXX=/usr/bin/g++
+ CC=/usr/bin/gcc-4.5
+-CFLAGS=-Wall -I. -I/usr/include/freetype2 -I/usr/include/freetype2/config -I/usr/include/libpng12 -I/usr/include
++CFLAGS=-Wall -I. -I/usr/include/freetype2 -I/usr/include/freetype2/config -I/usr/include
+ CXXFLAGS=$(CFLAGS)
+-LDFLAGS=-lXft -lX11 -lfreetype -lXrender -lfontconfig -lpng12 -lz -lm -lcrypt -lXmu -lpng -ljpeg -lrt
++LDFLAGS=-lXft -lX11 -lfreetype -lXrender -lfontconfig -lpng -lz -lm -lcrypt -lXmu -lpng -ljpeg -lrt
+ CUSTOM=-DHAVE_SHADOW
+ ifdef USE_PAM
+ LDFLAGS+= -lpam
+diff --git a/png.c b/png.c
+index 5c086c6..aa0f5e5 100644
+--- a/png.c
++++ b/png.c
+@@ -57,8 +57,12 @@ read_png(const char *filename, int *width, int *height, unsigned char **rgb,
+         png_destroy_read_struct(&png_ptr, (png_infopp) NULL, 
+                                 (png_infopp) NULL);
+     }
+-  
++
++#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4
++	if (setjmp(png_jmpbuf((data->png_ptr))))
++#else
+     if (setjmp(png_ptr->jmpbuf))
++#endif
+         goto png_destroy;
+   
+     png_init_io(png_ptr, infile);
+-- 
+1.6.6.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0005-Remove-path-of-gcc-amd-g-and-version-of-g.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0005-Remove-path-of-gcc-amd-g-and-version-of-g.patch
new file mode 100644
index 0000000..566ae35
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0005-Remove-path-of-gcc-amd-g-and-version-of-g.patch
@@ -0,0 +1,30 @@
+From 4f69eb1aa85fbb395a0474b1f376505fab81ee22 Mon Sep 17 00:00:00 2001
+From: iwamatsu <iwamatsu@7c53e7cc-98ea-0310-8f1f-a0b24da60408>
+Date: Fri, 17 Jun 2011 20:35:10 +0000
+Subject: [PATCH 5/8] Remove path of gcc amd g++, and version of g++
+
+Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
+
+git-svn-id: svn://svn.berlios.de/slim/trunk@179 7c53e7cc-98ea-0310-8f1f-a0b24da60408
+---
+ Makefile |    4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 1202614..5c5fde1 100644
+--- a/Makefile
++++ b/Makefile
+@@ -3,8 +3,8 @@
+ # Edit the following section to adjust the options
+ # to fit into your operating system / distribution
+ #######################################################
+-CXX=/usr/bin/g++
+-CC=/usr/bin/gcc-4.5
++CXX=g++
++CC=gcc
+ CFLAGS=-Wall -I. -I/usr/include/freetype2 -I/usr/include/freetype2/config -I/usr/include
+ CXXFLAGS=$(CFLAGS)
+ LDFLAGS=-lXft -lX11 -lfreetype -lXrender -lfontconfig -lpng -lz -lm -lcrypt -lXmu -lpng -ljpeg -lrt
+-- 
+1.6.6.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0006-Remove-localhost-from-Authenticator-of-pam.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0006-Remove-localhost-from-Authenticator-of-pam.patch
new file mode 100644
index 0000000..a5b8125
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0006-Remove-localhost-from-Authenticator-of-pam.patch
@@ -0,0 +1,32 @@
+From e188d5fd3e3c0e40c3e35729fd8b81b138191a75 Mon Sep 17 00:00:00 2001
+From: iwamatsu <iwamatsu@7c53e7cc-98ea-0310-8f1f-a0b24da60408>
+Date: Fri, 17 Jun 2011 20:35:13 +0000
+Subject: [PATCH 6/8] Remove localhost from Authenticator of pam
+
+http://bugs.gentoo.org/346037
+https://developer.berlios.de/bugs/?func=detailbug&bug_id=17757&group_id=2663
+http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/x11-misc/slim/files/346037-stop_setting_host_for_pam_ck_connector_so.patch?view=log
+
+Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
+
+git-svn-id: svn://svn.berlios.de/slim/trunk@180 7c53e7cc-98ea-0310-8f1f-a0b24da60408
+---
+ app.cpp |    2 --
+ 1 files changed, 0 insertions(+), 2 deletions(-)
+
+diff --git a/app.cpp b/app.cpp
+index c80a73e..7177363 100644
+--- a/app.cpp
++++ b/app.cpp
+@@ -236,8 +236,6 @@ void App::Run() {
+         pam.start("slim");
+         pam.set_item(PAM::Authenticator::TTY, DisplayName);
+         pam.set_item(PAM::Authenticator::Requestor, "root");
+-        pam.set_item(PAM::Authenticator::Host, "localhost");
+-
+     }
+     catch(PAM::Exception& e){
+         cerr << APPNAME << ": " << e << endl;
+-- 
+1.6.6.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0007-Fix-tty-slowness.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0007-Fix-tty-slowness.patch
new file mode 100644
index 0000000..fa2502b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0007-Fix-tty-slowness.patch
@@ -0,0 +1,47 @@
+From da172fd6234b3b2b487ab36d63da72758829cb1d Mon Sep 17 00:00:00 2001
+From: iwamatsu <iwamatsu@7c53e7cc-98ea-0310-8f1f-a0b24da60408>
+Date: Fri, 17 Jun 2011 20:35:15 +0000
+Subject: [PATCH 7/8] Fix tty slowness
+
+Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
+
+git-svn-id: svn://svn.berlios.de/slim/trunk@181 7c53e7cc-98ea-0310-8f1f-a0b24da60408
+---
+ app.cpp |   10 ++++++----
+ 1 files changed, 6 insertions(+), 4 deletions(-)
+
+diff --git a/app.cpp b/app.cpp
+index 7177363..44ab099 100644
+--- a/app.cpp
++++ b/app.cpp
+@@ -278,21 +278,23 @@ void App::Run() {
+         signal(SIGALRM, AlarmSignal);
+ 
+ #ifndef XNEST_DEBUG
+-        OpenLog();
+-        
+         if (!force_nodaemon && cfg->getOption("daemon") == "yes") {
+             daemonmode = true;
+         }
+ 
+         // Daemonize
+         if (daemonmode) {
+-            if (daemon(0, 1) == -1) {
++            if (daemon(0, 0) == -1) {
+                 cerr << APPNAME << ": " << strerror(errno) << endl;
+                 exit(ERR_EXIT);
+             }
+-            UpdatePid();
+         }
+ 
++        OpenLog();
++
++        if (daemonmode)
++            UpdatePid();
++
+         CreateServerAuth();
+         StartServer();
+         alarm(2);
+-- 
+1.6.6.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0008-restart-Xserver-if-killed.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0008-restart-Xserver-if-killed.patch
new file mode 100644
index 0000000..0c5cfb7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/0008-restart-Xserver-if-killed.patch
@@ -0,0 +1,161 @@
+From ee77a3d154443d2823ecbf2141daa1b5924f629f Mon Sep 17 00:00:00 2001
+From: iwamatsu <iwamatsu@7c53e7cc-98ea-0310-8f1f-a0b24da60408>
+Date: Fri, 17 Jun 2011 20:38:34 +0000
+Subject: [PATCH 8/8] restart Xserver if killed
+
+Patch from http://developer.berlios.de/patch/?func=detailpatch&patch_id=2378&group_id=2663.
+
+Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
+
+git-svn-id: svn://svn.berlios.de/slim/trunk@182 7c53e7cc-98ea-0310-8f1f-a0b24da60408
+---
+ app.cpp |   36 +++++++++---------------------------
+ app.h   |    2 +-
+ 2 files changed, 10 insertions(+), 28 deletions(-)
+
+diff --git a/app.cpp b/app.cpp
+index 44ab099..358a98f 100644
+--- a/app.cpp
++++ b/app.cpp
+@@ -104,6 +104,11 @@ int conv(int num_msg, const struct pam_message **msg,
+ 
+ extern App* LoginApp;
+ 
++int xioerror(Display *disp) {
++	LoginApp->RestartServer();
++    return 0;
++}
++
+ void CatchSignal(int sig) {
+     cerr << APPNAME << ": unexpected signal " << sig << endl;
+ 
+@@ -114,19 +119,6 @@ void CatchSignal(int sig) {
+     exit(ERR_EXIT);
+ }
+ 
+-
+-void AlarmSignal(int sig) {
+-    int pid = LoginApp->GetServerPID();
+-    if(waitpid(pid, NULL, WNOHANG) == pid) {
+-        LoginApp->StopServer();
+-        LoginApp->RemoveLock();
+-        exit(OK_EXIT);
+-    }
+-    signal(sig, AlarmSignal);
+-    alarm(2);
+-}
+-
+-
+ void User1Signal(int sig) {
+     signal(sig, User1Signal);
+ }
+@@ -275,7 +267,6 @@ void App::Run() {
+         signal(SIGHUP, CatchSignal);
+         signal(SIGPIPE, CatchSignal);
+         signal(SIGUSR1, User1Signal);
+-        signal(SIGALRM, AlarmSignal);
+ 
+ #ifndef XNEST_DEBUG
+         if (!force_nodaemon && cfg->getOption("daemon") == "yes") {
+@@ -297,7 +288,6 @@ void App::Run() {
+ 
+         CreateServerAuth();
+         StartServer();
+-        alarm(2);
+ #endif
+ 
+     }
+@@ -613,6 +603,8 @@ void App::Login() {
+     int status;
+     while (wpid != pid) {
+         wpid = wait(&status);
++		if (wpid == ServerPID)
++			xioerror(Dpy);	// Server died, simulate IO error
+     }
+     if (WIFEXITED(status) && WEXITSTATUS(status)) {
+         LoginPanel->Message("Failed to execute login command");
+@@ -658,9 +650,6 @@ void App::Login() {
+ 
+ 
+ void App::Reboot() {
+-    // Stop alarm clock
+-    alarm(0);
+-
+ #ifdef USE_PAM
+     try{
+         pam.end();
+@@ -683,9 +672,6 @@ void App::Reboot() {
+ 
+ 
+ void App::Halt() {
+-    // Stop alarm clock
+-    alarm(0);
+-
+ #ifdef USE_PAM
+     try{
+         pam.end();
+@@ -771,6 +757,7 @@ void App::RestartServer() {
+ 
+     StopServer(); 
+     RemoveLock();
++	while (waitpid(-1, NULL, WNOHANG) > 0); // Collects all dead childrens
+     Run();
+ } 
+ 
+@@ -841,6 +828,7 @@ int App::WaitForServer() {
+ 
+     for(cycles = 0; cycles < ncycles; cycles++) {
+         if((Dpy = XOpenDisplay(DisplayName))) {
++            XSetIOErrorHandler(xioerror);
+             return 1;
+         } else {
+             if(!ServerTimeout(1, (char *) "X server to begin accepting connections"))
+@@ -925,9 +913,6 @@ int App::StartServer() {
+             ServerPID = -1;
+             break;
+         }
+-        alarm(15);
+-        pause();
+-        alarm(0);
+ 
+         // Wait for server to start up
+         if(WaitForServer() == 0) {
+@@ -962,15 +947,12 @@ int IgnoreXIO(Display *d) {
+ 
+ 
+ void App::StopServer() {
+-    // Stop alars clock and ignore signals
+-    alarm(0);
+     signal(SIGQUIT, SIG_IGN);
+     signal(SIGINT, SIG_IGN);
+     signal(SIGHUP, SIG_IGN);
+     signal(SIGPIPE, SIG_IGN);
+     signal(SIGTERM, SIG_DFL);
+     signal(SIGKILL, SIG_DFL);
+-    signal(SIGALRM, SIG_DFL);
+ 
+     // Catch X error
+     XSetIOErrorHandler(IgnoreXIO);
+diff --git a/app.h b/app.h
+index dd7c281..2db1038 100644
+--- a/app.h
++++ b/app.h
+@@ -34,6 +34,7 @@ public:
+     ~App();
+     void Run();
+     int GetServerPID();
++    void RestartServer();
+     void StopServer();
+ 
+ 	bool serverStarted;
+@@ -49,7 +50,6 @@ private:
+     void Console();
+     void Exit();
+     void KillAllClients(Bool top);
+-    void RestartServer();
+     void ReadConfig();
+     void OpenLog();
+     void CloseLog();
+-- 
+1.6.6.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/Makefile.oe b/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/Makefile.oe
new file mode 100644
index 0000000..2ee6934
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/Makefile.oe
@@ -0,0 +1,64 @@
+# Makefile for slim - OpenEmbedded
+#######################################################
+
+
+SLIMLDFLAGS=-lXft -lX11 -lfreetype -lXrender -lfontconfig -lpng12 -lz -lm -lcrypt -lXmu -lpng -ljpeg -lrt -lpthread
+CUSTOM=-DHAVE_SHADOW
+
+USE_PAM=1
+ifdef USE_PAM
+SLIMLDFLAGS+= -lpam
+CUSTOM+= -DUSE_PAM
+endif
+
+#######################################################
+
+NAME=slim
+VERSION=1.3.2
+
+DEFINES=-DPACKAGE=\"$(NAME)\" -DVERSION=\"$(VERSION)\" \
+		-DPKGDATADIR=\"$(PREFIX)/share/slim\" -DSYSCONFDIR=\"$(CFGDIR)\"
+
+OBJECTS=jpeg.o png.o main.o image.o numlock.o cfg.o switchuser.o app.o \
+	panel.o util.o
+ifdef USE_PAM
+OBJECTS+=PAM.o
+endif
+
+all: slim
+
+slim: $(OBJECTS)
+	$(CXX) $(OBJECTS) $(LDFLAGS) $(SLIMLDFLAGS) -o $(NAME)
+
+.cpp.o:
+	$(CXX) $(CXXFLAGS) $(DEFINES) $(CUSTOM) -c $< -o $@
+
+.c.o:
+	$(CC) $(CFLAGS) $(DEFINES) $(CUSTOM) -c $< -o $@
+
+install: slim install-theme
+	install -D -m 755 slim $(DESTDIR)$(PREFIX)/bin/slim
+	install -D -m 644 slim.1 $(DESTDIR)$(MANDIR)/man1/slim.1
+	test -e $(DESTDIR)$(CFGDIR)/slim.conf || \
+		install -D -m 644 slim.conf $(DESTDIR)$(CFGDIR)/slim.conf
+
+clean:
+	@rm -f slim *.o
+
+dist:
+	@rm -rf $(NAME)-$(VERSION)
+	@mkdir $(NAME)-$(VERSION)
+	@cp -r *.cpp *.h *.c Makefile Makefile.* COPYING ChangeLog INSTALL README TODO \
+		xinitrc.sample slim.1 THEMES themes slim.conf $(NAME)-$(VERSION)
+	@rm -rf $(NAME)-$(VERSION)/themes/.svn	$(NAME)-$(VERSION)/themes/default/.svn
+	@tar cvzf $(NAME)-$(VERSION).tar.gz $(NAME)-$(VERSION)
+	@rm -rf $(NAME)-$(VERSION)
+
+
+install-theme:
+	install -D -m 644 themes/default/slim.theme \
+		 $(DESTDIR)$(PREFIX)/share/slim/themes/default/slim.theme
+	install -D -m 644 themes/default/panel.png \
+		 $(DESTDIR)$(PREFIX)/share/slim/themes/default/panel.png
+	install -D -m 644 themes/default/background.jpg \
+		 $(DESTDIR)$(PREFIX)/share/slim/themes/default/background.jpg
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/slim-dynwm b/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/slim-dynwm
new file mode 100644
index 0000000..49c9d47
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/slim-dynwm
@@ -0,0 +1,8 @@
+#!/bin/sh
+update_slim_wmlist
+if [ "x$1" = "x-nodaemon" ]; then
+  shift
+  exec slim "$@"
+else
+  slim -d "$@"
+fi
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/slim.pamd b/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/slim.pamd
new file mode 100644
index 0000000..80c34b1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/slim.pamd
@@ -0,0 +1,19 @@
+# Begin /etc/pam.d/slim
+
+auth       required     pam_shells.so
+auth       include      common-auth
+auth       optional     pam_securetty.so
+auth       optional     pam_gnome_keyring.so
+
+account    required     pam_nologin.so
+account    include      common-account
+
+password   include      common-password
+
+session    include      common-session
+session    required     pam_mkhomedir.so skel=/etc/skel/ umask=0022
+session    optional     pam_lastlog.so nowtmp
+session    optional     pam_mail.so dir=/var/mail standard
+session    optional     pam_gnome_keyring.so  auto_start
+
+# End /etc/pam.d/slim
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/slim.service b/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/slim.service
new file mode 100644
index 0000000..341351a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/slim.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=SLiM Simple Login Manager
+Requires=dev-tty7.device
+After=dev-tty7.device systemd-user-sessions.service
+
+[Service]
+ExecStart=/usr/bin/slim -nodaemon
+StandardOutput=syslog
+
+[Install]
+WantedBy=graphical.target
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/update_slim_wmlist b/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/update_slim_wmlist
new file mode 100644
index 0000000..0f11653
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim/update_slim_wmlist
@@ -0,0 +1,76 @@
+#!/usr/bin/perl -w
+#
+# update_slim_wmlist, based on:
+# update_wdm_wmlist, (c) 1998 Marcelo Magallón <mmagallo@debian.org>
+# rewriten to use the x-window-manager alternative
+# modified to also use the x-session-manager alternative by Arthur Korn
+# Copyright 2000 Wichert Akkerman <wakkerma@debian.org>
+# Modified to use the freedesktop.org .desktop like kdm and gdm
+#
+# This script will read the list of installed window managers from
+# the freedesktop .desktop files in <etc>/X11/sessions/:<etc>/dm/Sessions/:
+# <share>/xsessions/
+# and update the sessions line in /etc/slim.conf.
+# BEWARE: It doesn't ask any questions about this. It just does it. It
+# takes an optional list of window managers.
+
+use strict;
+use File::DesktopEntry;
+
+my $wm_list='';
+my %desktop_files;
+
+unless (@ARGV) {
+    #my @wm_list = ('default');
+    my @wm_list;
+    foreach my $dir ('/etc/X11/sessions/','/etc/dm/Sessions/','/usr/share/xsessions/') {
+	    next unless (opendir DIR, $dir);
+	    my @files;
+	    @files = grep { /\.desktop$/ && -r "$dir/$_" } readdir(DIR);
+	    foreach my $file (@files) {
+		   push @{$desktop_files{$file}}, "$dir/$file";
+	    }
+    }
+    DESKTOP: foreach my $desktop_file (keys(%desktop_files)) {
+	    foreach my $file (@{$desktop_files{$desktop_file}}) {
+		    my $entry = File::DesktopEntry->new_from_file($file);
+		    next DESKTOP if (defined($entry->get_value('Hidden'))
+			and $entry->get_value('Hidden') eq 'true');
+		    if ($entry->get_value('Name') =~ /^gnome$/i) {
+			    push (@wm_list, 'gnome');
+		    }
+		    elsif ($entry->get_value('Name') =~ /^kde$/i) {
+			    push (@wm_list, 'kde');
+		    }
+		    elsif (defined($entry->get_value('Exec'))) {
+			    push (@wm_list, $entry->get_value('Exec'));
+		    }
+		    else { # not found, go to next file
+			    next;
+		    }
+		    # found, proceed to next destop file
+		    next DESKTOP;
+	    }
+    }
+   $wm_list = join (',', sort @wm_list) . ',custom';
+} else {
+    $wm_list = join (',', sort @ARGV);
+}
+
+open (SLIM_CONFIG_FILE, '</etc/slim.conf')
+    or die "Can't open /etc/slim.conf for reading: $!";
+open (NEW_SLIM_CONFIG_FILE, '>/etc/slim.conf.new')
+    or die "Can't open /etc/slim.conf.new for writing: $!";
+
+while (<SLIM_CONFIG_FILE>) {
+    s|^(sessions\s*).*|$1$wm_list|;
+    print NEW_SLIM_CONFIG_FILE;
+}
+
+close(SLIM_CONFIG_FILE);
+close(NEW_SLIM_CONFIG_FILE);
+
+rename '/etc/slim.conf.new', '/etc/slim.conf'
+    or die "Can't rename /etc/slim.conf.new: $!";
+
+exit 0;
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim_1.3.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim_1.3.2.bb
new file mode 100644
index 0000000..71359e0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/slim/slim_1.3.2.bb
@@ -0,0 +1,82 @@
+DESCRIPTION="Simple Login Manager"
+HOMEPAGE="http://slim.berlios.de"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
+
+PR = "r1"
+
+DEPENDS = "virtual/libx11 libxmu libpng jpeg freetype sessreg ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
+
+SRC_URI = " \
+    http://download.berlios.de/${BPN}/${BP}.tar.gz \
+    file://0002-Fix-image-handling-integer-overflows.patch \
+    file://0003-Fix-build-failure-with-ld-as-needed.patch \
+    file://0004-Add-support-libpng15.patch \
+    file://0005-Remove-path-of-gcc-amd-g-and-version-of-g.patch \
+    file://0006-Remove-localhost-from-Authenticator-of-pam.patch \
+    file://0007-Fix-tty-slowness.patch \
+    file://0008-restart-Xserver-if-killed.patch \
+    file://slim-dynwm \
+    file://update_slim_wmlist \
+    file://Makefile.oe \
+    file://slim.pamd \
+    file://slim.service \
+"
+
+SRC_URI[md5sum] = "ca1ae6120e6f4b4969f2d6cf94f47b42"
+SRC_URI[sha256sum] = "f1560125005f253b9b88220598fed7a9575ef405716862c6ca3fcc72dbd482b8"
+
+
+EXTRA_OEMAKE += " \
+    USE_PAM=${@bb.utils.contains('DISTRO_FEATURES', 'pam', '1', '0', d)} \
+    PREFIX=${prefix} \
+    CFGDIR=${sysconfdir} \
+    MANDIR=${mandir} \
+    DESTDIR=${D} \
+    CFLAGS+=-I${STAGING_INCDIR}/freetype2 \
+    CXXFLAGS+=-I${STAGING_INCDIR}/freetype2 \
+"
+
+do_compile_prepend() {
+    cp -pP ${WORKDIR}/Makefile.oe ${S}/Makefile
+}
+
+do_install() {
+    oe_runmake install
+    install -d ${D}${bindir}
+    install -m 0755 ${WORKDIR}/slim-dynwm ${D}${bindir}/
+    install -m 0755 ${WORKDIR}/update_slim_wmlist ${D}${bindir}/
+    install -d ${D}${sysconfdir}/pam.d/
+    install -m 0644 ${WORKDIR}/slim.pamd ${D}${sysconfdir}/pam.d/slim
+
+    install -d ${D}${systemd_unitdir}/system/
+    install -m 0644 ${WORKDIR}/*.service ${D}${systemd_unitdir}/system/
+
+    echo 'sessionstart_cmd    /usr/bin/sessreg -a -l $DISPLAY %user' >> ${D}${sysconfdir}/slim.conf
+    echo 'sessionstop_cmd     /usr/bin/sessreg -d -l $DISPLAY %user' >> ${D}${sysconfdir}/slim.conf
+}
+
+
+RDEPENDS_${PN} = "perl xauth freetype sessreg "
+FILES_${PN} += "${systemd_unitdir}/system/"
+
+pkg_postinst_${PN} () {
+if test "x$D" != "x"; then
+    exit 1
+fi
+systemctl enable slim.service
+
+# Register SLiM as default DM
+mkdir -p ${sysconfdir}/X11/
+echo "${bindir}/slim" > ${sysconfdir}/X11/default-display-manager
+}
+
+pkg_postrm_${PN} () {
+if test "x$D" != "x"; then
+    exit 1
+fi
+systemctl disable slim.service
+sed -i /slim/d $D${sysconfdir}/X11/default-display-manager || true
+}
+
+PNBLACKLIST[slim] ?= "does not build with distroless qemuarm as reported in 'State of bitbake world' thread, nobody volunteered to fix them"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/takao-fonts/takao-fonts_003.03.01.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/takao-fonts/takao-fonts_003.03.01.bb
new file mode 100644
index 0000000..d99ff14
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/takao-fonts/takao-fonts_003.03.01.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Takao Fonts are a community developed derivatives of IPA Fonts."
+DESCRIPTION = "Takao Fonts are a community developed derivatives of IPA Fonts."
+
+HOMEPAGE = "https://launchpad.net/takao-fonts"
+SECTION = "User Interface/X"
+
+LICENSE = "IPA"
+LIC_FILES_CHKSUM = "file://IPA_Font_License_Agreement_v1.0.txt;md5=6cd3351ba979cf9db1fad644e8221276"
+SRC_URI = "https://launchpad.net/${BPN}/trunk/15.03/+download/TakaoFonts_00303.01.tar.xz"
+SRC_URI[md5sum] = "8cd3fe724faa5034a9369e98cf108d2d"
+SRC_URI[sha256sum] = "e9871f72ac69acb3e277aebbee7ca01fbebf54800733e29fafdc46133fc3552f"
+
+S = "${WORKDIR}/TakaoFonts_00303.01"
+do_install() {
+    install -m 0755 -d ${D}/${datadir}/fonts
+    install -m 0644 -p ${S}/*.ttf ${D}/${datadir}/fonts/
+}
+
+FILES_${PN} += "${datadir}/fonts/*.ttf"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/terminus-font/terminus-font_4.38.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/terminus-font/terminus-font_4.38.bb
new file mode 100644
index 0000000..e5bea97
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/terminus-font/terminus-font_4.38.bb
@@ -0,0 +1,45 @@
+SUMMARY = "Terminus fonts packages (console and X11)"
+DESCRIPTION = "Terminus Font is a clean, fixed width bitmap font, designed for \
+               long (8 and more hours per day) work with computers."
+HOMEPAGE = "http://terminus-font.sourceforge.net/"
+AUTHOR = "Dimitar Zhekov"
+SECTION = "fonts"
+
+LICENSE = "OFL-1.1"
+LIC_FILES_CHKSUM = "file://OFL.TXT;md5=9cadb26f4c5c005618c5ae74f041ec54"
+
+DEPENDS = "hostperl-runtime-native gzip-native"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz"
+SRC_URI[md5sum] = "a8e792fe6e84c86ed2b6ed3e2a12ba66"
+SRC_URI[sha256sum] = "f6f4876a4dabe6a37c270c20bb9e141e38fb50e0bba200e1b9d0470e5eed97b7"
+
+inherit allarch fontcache
+
+PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}"
+PACKAGECONFIG[x11] = ""
+
+# Don't use font cache mecanism for console packages
+FONT_PACKAGES = "${@bb.utils.contains('PACKAGECONFIG', 'x11', '${PN}-pcf', '', d)}"
+
+# Hand made configure script. Don't need oe_runconf
+do_configure() {
+    chmod +x ${S}/configure
+    ${S}/configure --prefix=${prefix} \
+                   --psfdir=${datadir}/consolefonts \
+                   --acmdir=${datadir}/consoletrans \
+                   --x11dir=${datadir}/fonts/terminus
+}
+
+do_compile() {
+    oe_runmake DESTDIR=${D} psf txt ${@bb.utils.contains('PACKAGECONFIG', 'x11', 'pcf', '', d)}
+}
+
+do_install() {
+    oe_runmake DESTDIR=${D} install-psf install-acm ${@bb.utils.contains('PACKAGECONFIG', 'x11', 'install-pcf', '', d)}
+}
+
+PACKAGES += "${PN}-consolefonts ${PN}-consoletrans ${PN}-pcf"
+FILES_${PN}-consolefonts = "${datadir}/consolefonts"
+FILES_${PN}-consoletrans = "${datadir}/consoletrans"
+FILES_${PN}-pcf = "${datadir}/fonts/terminus"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-afr_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-afr_3.02.bb
new file mode 100644
index 0000000..0c73a53
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-afr_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "afr"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "16a756bf353896e34386f4509582e487"
+SRC_URI[sha256sum] = "371399ce6700f28d04ccfc12e421f315e356e3aa26575b27d06083c06987784d"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-ara_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-ara_3.02.bb
new file mode 100644
index 0000000..fb68bdc
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-ara_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "ara"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "d7b3708f1f1f2898c258209923063f57"
+SRC_URI[sha256sum] = "2c7be319c30e93950c121897969c1bc1eb1d6bdceb75f1184ee34a6f01d66b6a"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-aze_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-aze_3.02.bb
new file mode 100644
index 0000000..21ed3d3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-aze_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "aze"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "143044ff7b643b844c2f0b2a170ceda2"
+SRC_URI[sha256sum] = "0f17a06a163d97ec23db3ab14b91b84a67aeba1e441ca5e53a8632b2110a0e79"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-bel_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-bel_3.02.bb
new file mode 100644
index 0000000..5f88301
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-bel_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "bel"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "3bb6dab515166d641ac62e973c868ac5"
+SRC_URI[sha256sum] = "e59e008c542f786f6f7bd14c6608b2c128c9297d6bede647ae357f7421f7a3e7"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-ben_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-ben_3.02.bb
new file mode 100644
index 0000000..673fd42
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-ben_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "ben"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "0b662630eb4b2e0ebf40c38184068fba"
+SRC_URI[sha256sum] = "14a87e0762dcee0cd95acfd3b370b81fd14a003d39328ed97db0b28c55d31e50"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-bul_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-bul_3.02.bb
new file mode 100644
index 0000000..4988fc2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-bul_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "bul"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "91fc34ef041aafe32549a7a6232afad0"
+SRC_URI[sha256sum] = "1b8b4d7b12d896cf9f7e60e8e3274d3891886544253d41681dd9b32d6567e3f3"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-cat_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-cat_3.02.bb
new file mode 100644
index 0000000..ec3fa74
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-cat_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "cat"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "27b77ecc66f8c8d904cd6b87886aca22"
+SRC_URI[sha256sum] = "894af4c718e821cdc4ae3ec65838b174ac8a003e5417a08557698e1576ac3a34"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-ces_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-ces_3.02.bb
new file mode 100644
index 0000000..d58d0e8
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-ces_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "ces"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "ae144b9d230267b5ae62804ad7a09dac"
+SRC_URI[sha256sum] = "843522eddcd0e2059a1c7069183b68c2459d527157bc47833a79b6ff56bb09de"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-chi-sim_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-chi-sim_3.02.bb
new file mode 100644
index 0000000..8469801
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-chi-sim_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "chi_sim"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "718779539d3202ae95ae5ff52a3ad5e8"
+SRC_URI[sha256sum] = "f5b196b5bea6917bcbbf15131b4c2afe94d34c2d9e21d08c0ca42dfbe5aa1095"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-chi-tra_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-chi-tra_3.02.bb
new file mode 100644
index 0000000..1c4d98d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-chi-tra_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "chi_tra"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "391ed3fcf014bae777b33dc7a771a00d"
+SRC_URI[sha256sum] = "78742e273a9ca74a6ab5543414e04bcac90d03a317dd35edc634956beafa3d20"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-chr_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-chr_3.02.bb
new file mode 100644
index 0000000..7aa6cc5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-chr_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "chr"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "dd5b4fa247500d7713ab5556af62d9fa"
+SRC_URI[sha256sum] = "27c917ba39898d63752b2a4ecb0cd8f688772bcbbae2bf430a93d894d328a4c1"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-dan_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-dan_3.02.bb
new file mode 100644
index 0000000..5af3f79
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-dan_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "dan"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "2f6a93920b3ce55de24ca762a66a5de1"
+SRC_URI[sha256sum] = "deb93f6326aa8a4d353159201681947a808577662084d4060daea7d644e63eb9"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-deu_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-deu_3.02.bb
new file mode 100644
index 0000000..4d68fd9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-deu_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "deu"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "57bdb26ec7c767e126ff97776d8bfb10"
+SRC_URI[sha256sum] = "d03cdd0b00d368ff49ebaf77b8758bcf2ff1b0d39331368987e622ac261443ca"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-ell_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-ell_3.02.bb
new file mode 100644
index 0000000..be4b90e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-ell_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "ell"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "3760cc3dee6489dcc865b31e7a36bd47"
+SRC_URI[sha256sum] = "29745ced8fbfb4ec9abebeb99e4b385821cb5eb0ed81fb1870b93543553b8fba"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-eng_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-eng_3.02.bb
new file mode 100644
index 0000000..ce15a2d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-eng_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "eng"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "3562250fe6f4e76229a329166b8ae853"
+SRC_URI[sha256sum] = "c110029560e7f6d41cb852ca23b66899daa4456d9afeeae9d062204bd271bdf8"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-enm_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-enm_3.02.bb
new file mode 100644
index 0000000..5f1531f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-enm_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "enm"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "d9dc4ad9cbcde78e5be59eb226865661"
+SRC_URI[sha256sum] = "19c9bd89c823451655e3f265b7fcd06727cd36ddec01b8fad9900159b688a1e3"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-epo-alt_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-epo-alt_3.02.bb
new file mode 100644
index 0000000..0469ea6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-epo-alt_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "epo_alt"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "67815529386679223092ddf301bf57d4"
+SRC_URI[sha256sum] = "e516b8362fa060be720d2768a8abbee9cc965b9162249c5914ef1d8159e03dc2"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-epo_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-epo_3.02.bb
new file mode 100644
index 0000000..7f42502
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-epo_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "epo"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "5dc0cf01d21ee43ed834ee947e1e810a"
+SRC_URI[sha256sum] = "22ae681c34ee7aa825994115f927c2e1f8ec1a98c97c01218b98d2549af22252"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-equ_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-equ_3.02.bb
new file mode 100644
index 0000000..f4d81bb
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-equ_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "equ"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "94667836c651fc4fd43645efdc34e19a"
+SRC_URI[sha256sum] = "2010e724686171ef2eb3388df00d8d89ba7e50cb2298b0368b847fffb95d804e"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-est_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-est_3.02.bb
new file mode 100644
index 0000000..adfe25c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-est_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "est"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "a067f5975cbe83fea205897187fa256b"
+SRC_URI[sha256sum] = "d5d6b9d4b567a10e2f63cafd2f60bf5b0c994e415470becafd729b20349e2e80"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-eus_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-eus_3.02.bb
new file mode 100644
index 0000000..a22bcac
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-eus_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "eus"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "4c2cee5bf3558f6384e5907aa02ae80c"
+SRC_URI[sha256sum] = "78359d57896623cf8211e17604a9dfa574e2253c9157035f439c5fbe06cd5019"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-fin_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-fin_3.02.bb
new file mode 100644
index 0000000..e8a55e2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-fin_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "fin"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "71f8b343ed2010f775ff474faec5874f"
+SRC_URI[sha256sum] = "e02ff1798960d3af15c0dafafac0de954442cfb13f4eff45c3263c2ff6e59026"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-fra_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-fra_3.02.bb
new file mode 100644
index 0000000..22c9261
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-fra_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "fra"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "2bca200b783fdba2f546063c68740c50"
+SRC_URI[sha256sum] = "74592f5f2ab73a6668934922753be0505fc4333ee790543949f8b70f03eab101"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-frk_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-frk_3.02.bb
new file mode 100644
index 0000000..f75b96a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-frk_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "frk"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "dd734ac212a98a02945760891b657e70"
+SRC_URI[sha256sum] = "a9f4219d6b2ef4ed8b76c86be99ae3c9190509df72ba6f0217a77f7205ec52f8"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-frm_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-frm_3.02.bb
new file mode 100644
index 0000000..d0d1398
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-frm_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "frm"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "e0ca24ca45de83e67057f0e208233ffc"
+SRC_URI[sha256sum] = "f32f774d88e7936f16ff41b832cecfbd71f82c9bf7584330d750da941c07ca79"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-glg_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-glg_3.02.bb
new file mode 100644
index 0000000..b94fd03
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-glg_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "glg"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "ef7b8e13891e08f29b02011a5dd6b630"
+SRC_URI[sha256sum] = "82ffa27c4de17545fa9d46e0fcd5690b1b59bcce9e93f71c0a41d19afbe869ee"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-grc_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-grc_3.02.bb
new file mode 100644
index 0000000..16c9605
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-grc_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "grc"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "ac493e5a49e456f2dd354f5b6449573e"
+SRC_URI[sha256sum] = "586b955eb9fba5a304cfa37bfdd7c89f2db33335d5ae83f2962aed8903266805"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-heb_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-heb_3.02.bb
new file mode 100644
index 0000000..9d7a4fa
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-heb_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "heb"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "7ae7f3384083c66f06d63b6c0f0a66c3"
+SRC_URI[sha256sum] = "da47b0cfe241775c9b36339efda6339d59e146fa6143c65a2253eb9f67164811"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-hin_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-hin_3.02.bb
new file mode 100644
index 0000000..d3ed173
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-hin_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "hin"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "186f17b326a58313344c2ea987ea7785"
+SRC_URI[sha256sum] = "91f91da5adc73ee71150865d6598df8a50424350480df2753ca9035320b3c78d"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-hrv_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-hrv_3.02.bb
new file mode 100644
index 0000000..7423687
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-hrv_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "hrv"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "0396a267d894f485b6b534476f3322dc"
+SRC_URI[sha256sum] = "e20575f5b0ec73ff7f3197c112a8dcc24303b64016910399d9127bda42e7d866"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-hun_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-hun_3.02.bb
new file mode 100644
index 0000000..61a9ce6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-hun_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "hun"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "eb1b3537cd664fec48bebac75fac5992"
+SRC_URI[sha256sum] = "edf5cc42b516b2a18681955167d1964dfc7ff8cda642408ebda91b3c4656f9f1"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-ind_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-ind_3.02.bb
new file mode 100644
index 0000000..6776952
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-ind_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "ind"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "9f672ea7c90eecbbe35ec353ff45c764"
+SRC_URI[sha256sum] = "337ba4400a798c60dee16070071337c96fc67bcb4e2cc1b4676dcbc340fbbcd7"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-isl_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-isl_3.02.bb
new file mode 100644
index 0000000..7fa188f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-isl_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "isl"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "3f05946a9e57a8ffabb3fccc8a80cfaa"
+SRC_URI[sha256sum] = "6b226366d8d2d87f859d4099e8b715e3ec3890f9317198e7b8c80fba001055f8"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-ita-old_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-ita-old_3.02.bb
new file mode 100644
index 0000000..be4ad3e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-ita-old_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "ita_old"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "989ca558eb05fcf6873dfdd8c692291d"
+SRC_URI[sha256sum] = "caf591be6d4eda9e7627397c3c520d58115c660002ecace680749504348ba104"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-ita_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-ita_3.02.bb
new file mode 100644
index 0000000..581977a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-ita_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "ita"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "fbdba86f34b907f5a709051c01b53f71"
+SRC_URI[sha256sum] = "26453b302c108e08f594c7a19597382314529f648e141805417f9af1e4c99ac2"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-jpn_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-jpn_3.02.bb
new file mode 100644
index 0000000..269bdef
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-jpn_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "jpn"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "e1be2b08e667c3bb0ab0f18c9456bf2f"
+SRC_URI[sha256sum] = "09bf447a29e990c065024b3b720fd70f08d596a7be534312fc9e47d0aabf681f"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-kan_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-kan_3.02.bb
new file mode 100644
index 0000000..2d21085
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-kan_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "kan"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "510016e85d7ea8e1f4ebf98741138909"
+SRC_URI[sha256sum] = "15851cc22058c08cad9ec6058113f76966409061f21f5cde8c9cc1d214298c22"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-kor_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-kor_3.02.bb
new file mode 100644
index 0000000..617d199
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-kor_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "kor"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "fc9125f6652fb661575d6e15c94f88f6"
+SRC_URI[sha256sum] = "7c85c4107a781d90d6d4adb001f2189b113f9db6942618b4bc47f4cc80cd126a"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-lav_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-lav_3.02.bb
new file mode 100644
index 0000000..c207504
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-lav_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "lav"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "2095b56c9c6b0dba9b837fd226ed6d29"
+SRC_URI[sha256sum] = "e6a190ee1edf0a58948a9d7b01569fd8a4c05bc678da3a40ad884c0849958c36"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-lit_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-lit_3.02.bb
new file mode 100644
index 0000000..83ad480
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-lit_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "lit"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "801021a1ad6e4aa3ef697f065ff6c798"
+SRC_URI[sha256sum] = "350891a182076df2e8067da04b3b2127a77e48782d9905e8339db4f1d6c7a729"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-mal_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-mal_3.02.bb
new file mode 100644
index 0000000..571385e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-mal_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "mal"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "1f5e8f022d3c2697075bdfc03935f128"
+SRC_URI[sha256sum] = "72b3b23979ae4a6b63518964bf239beae8bb6c02f35a2695f47262178b3fef34"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-mkd_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-mkd_3.02.bb
new file mode 100644
index 0000000..ad1eaff
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-mkd_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "mkd"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "b8930c64befcaadbb47951cad4a2f075"
+SRC_URI[sha256sum] = "ea489277e7a588a1b7566a21cbbd647786f16659cae087a4705d4fdabd823ee6"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-mlt_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-mlt_3.02.bb
new file mode 100644
index 0000000..4a6d42d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-mlt_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "mlt"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "90a41ac86375b230980b643b35b88011"
+SRC_URI[sha256sum] = "ba99e8bfc753a274bbea38ef44f5abf81e5f12d09f9d12d267436961270ef2de"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-msa_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-msa_3.02.bb
new file mode 100644
index 0000000..8418ab6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-msa_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "msa"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "cb42ec9504eecdc4f974dbca4387ac34"
+SRC_URI[sha256sum] = "f34e4950ad9079f92965a234253cc16f92deb66f1ce4e9c9a885ad2695c2d136"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-nld_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-nld_3.02.bb
new file mode 100644
index 0000000..412d4a7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-nld_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "nld"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "6db5753b3b03296544bbb2c0f59a7178"
+SRC_URI[sha256sum] = "5e2e53499a05282968e5a9699aad66ae52a5abf06ae828e2f4cf2c1f6e674a98"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-nor_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-nor_3.02.bb
new file mode 100644
index 0000000..75d2940
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-nor_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "nor"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "6d979585abb07c13dda003820129461c"
+SRC_URI[sha256sum] = "6b5c42444595a81b5f6fea859d97999895917bcc2f85a505488ea5c2f4efa01a"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-pol_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-pol_3.02.bb
new file mode 100644
index 0000000..5858013
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-pol_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "pol"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "90b3f1f4113a9dccd0287e6b5b7512d6"
+SRC_URI[sha256sum] = "62999058bfb609d95d53bd519c6de99620d025b3bfbc54d8679a87b10474ccbb"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-por_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-por_3.02.bb
new file mode 100644
index 0000000..75f0139
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-por_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "por"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "ad490a8091ee329190266f3fd057c511"
+SRC_URI[sha256sum] = "f9b126323757c62da23aab163e2ce5257d137e86be7c37dea13bb0585e1ace3f"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-ron_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-ron_3.02.bb
new file mode 100644
index 0000000..3c8940a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-ron_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "ron"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "9f498e01855a57473af8f083c125455a"
+SRC_URI[sha256sum] = "d7e6454c9cc80c84a654f94283fc06b2df33c5c7fd2d3bff269c3cbdeb0b39e7"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-rus_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-rus_3.02.bb
new file mode 100644
index 0000000..e1dd3f1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-rus_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "rus"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "e8c785df8aaa49e61f3a95aa24066122"
+SRC_URI[sha256sum] = "091cda49489d15f33916263fc78fbf8dcd4e6547012dc7e1a8496a38ab192315"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-slk_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-slk_3.02.bb
new file mode 100644
index 0000000..241b038
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-slk_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "slk"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "991e4771e16abd6a66caeaeeb2a4d4d2"
+SRC_URI[sha256sum] = "cbd5a88e2188ef39ef438c9859dbd7a9b9e2a99c23a823ec310f7f84a012cc82"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-slv_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-slv_3.02.bb
new file mode 100644
index 0000000..0b08210
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-slv_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "slv"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "c7bea975ba663d13e03c29d6cf33b5a8"
+SRC_URI[sha256sum] = "b901507d2901c882f98f6ef5db07dbf74636fba6a1f616c5f094954106791667"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-spa-old_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-spa-old_3.02.bb
new file mode 100644
index 0000000..79be8a3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-spa-old_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "spa_old"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "7838da948e404bb760bef83a5c3d64dd"
+SRC_URI[sha256sum] = "2b980c0eda1572423dd56260b32d748288028fdd45266311c4ab448fcbce5814"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-spa_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-spa_3.02.bb
new file mode 100644
index 0000000..8790ee5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-spa_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "spa"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "fe1385ed203ecd9e0999a44b135069ec"
+SRC_URI[sha256sum] = "f40cc264d037b0c71ecb4a8bb6def8b3ec04b647d8da7fd44d0daa558bfa31b1"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-sqi_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-sqi_3.02.bb
new file mode 100644
index 0000000..8e923a9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-sqi_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "sqi"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "372e38617fcc7e25c77996c5499ae063"
+SRC_URI[sha256sum] = "99bfcda3e0c471f63b36cd0db7dea596e59a2219c9275c3ba51e59973555c101"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-srp_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-srp_3.02.bb
new file mode 100644
index 0000000..18676c4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-srp_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "srp"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "d8350668fa790b5d4007348a55840bdf"
+SRC_URI[sha256sum] = "b1eeeb2958d0a4e2ba16fb55a98ca4ca8e69fee8b0be8162ff599ba19d0b2404"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-swa_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-swa_3.02.bb
new file mode 100644
index 0000000..2b9960f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-swa_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "swa"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "6c68107a71f82fa42c858e4d6dc70aca"
+SRC_URI[sha256sum] = "2681e59f2a9333259a2de42f3deed46aa7dd84b638e6927f40db0409adff143b"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-swe_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-swe_3.02.bb
new file mode 100644
index 0000000..7fd1c1d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-swe_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "swe"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "46d3a5d7159236edb33272dd8b1090f6"
+SRC_URI[sha256sum] = "ada287d7b64183df906215fe4ca86c3b6fe30dc5121e9a83113c3265ca7fc5ae"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-tam_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-tam_3.02.bb
new file mode 100644
index 0000000..fcfc1fb
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-tam_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "tam"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "c68b0fdcdf34dd431c25f323673ef1d6"
+SRC_URI[sha256sum] = "75f73362421a23eb955212f7aa19c9a3efdc80a4c6761445869148bfd2a6dc62"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-tel_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-tel_3.02.bb
new file mode 100644
index 0000000..fb827ed
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-tel_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "tel"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "349d203ef88864eab8d1201672ca84be"
+SRC_URI[sha256sum] = "f36af3d5ca9f8ff6e606485fe5db835f96b42e7d2380ac5d61af6b41827834fd"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-tgl_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-tgl_3.02.bb
new file mode 100644
index 0000000..8c84ed9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-tgl_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "tgl"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "d458f0719b99e4dcfd4fa2a06e5150a3"
+SRC_URI[sha256sum] = "5c515310df83c9b40e557027e49de6df70e33a9bbabeaf1301ca9e8c13558948"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-tha_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-tha_3.02.bb
new file mode 100644
index 0000000..06055d1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-tha_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "tha"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "3dc5a5028e75da12eaba62669a80acc4"
+SRC_URI[sha256sum] = "7a98e25e0c61dda48cbdb241f0f53c3dfaa7ef574b81799ab2ddac50da6db4fb"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-tur_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-tur_3.02.bb
new file mode 100644
index 0000000..f5ec76f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-tur_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "tur"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "a8934e0e6496997112cbef2961adef5e"
+SRC_URI[sha256sum] = "fe4657ca3455585a06eb3d02b4a0472fda8ca06efe587be75e175662dc6329d7"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-ukr_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-ukr_3.02.bb
new file mode 100644
index 0000000..25de06a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-ukr_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "ukr"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "0aa61f18463bb89234a6d06fcbf0c644"
+SRC_URI[sha256sum] = "7862b10c1ff7e02b41c7a50eec7fccd2c30b8162d965fa1ae00510c6d1210762"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-vie_3.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-vie_3.02.bb
new file mode 100644
index 0000000..6bd813e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang-vie_3.02.bb
@@ -0,0 +1,9 @@
+# Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
+
+TESSERACT_LANG = "vie"
+
+require tesseract-lang.inc
+
+SRC_URI[md5sum] = "78a74432848b4c53cc2ccf2eb339c0b6"
+SRC_URI[sha256sum] = "a113254882eac70168aec00544805e7c9cec20527217b98349ed48f6e2d2611e"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang.inc b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang.inc
new file mode 100644
index 0000000..c40c71d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract-lang.inc
@@ -0,0 +1,15 @@
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
+
+SRC_URI = "https://tesseract-ocr.googlecode.com/files/tesseract-ocr-${PV}.${TESSERACT_LANG}.tar.gz"
+
+S = "${WORKDIR}/tesseract-ocr"
+
+inherit allarch
+
+do_install() {
+    install -d ${D}${datadir}/tessdata
+    cp ${S}/tessdata/${TESSERACT_LANG}.traineddata ${D}${datadir}/tessdata
+}
+
+FILES_${PN} += "${datadir}/tessdata"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract_3.02.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract_3.02.02.bb
new file mode 100644
index 0000000..652bcf2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract_3.02.02.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "A commercial quality OCR engine "
+
+DEPENDS = "leptonica"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c0c94b3c86ad0c386bb6dec70ca8a36a"
+
+SRC_URI = "https://tesseract-ocr.googlecode.com/files/tesseract-ocr-${PV}.tar.gz"
+SRC_URI[md5sum] = "26adc8154f0e815053816825dde246e6"
+SRC_URI[sha256sum] = "26cd39cb3f2a6f6f1bf4050d1cc0aae35edee49eb49a92df3cb7f9487caa013d"
+
+EXTRA_OECONF += "LIBLEPT_HEADERSDIR=${STAGING_INCDIR}/leptonica"
+
+S = "${WORKDIR}/tesseract-ocr"
+
+inherit autotools pkgconfig
+
+FILES_${PN} += "${datadir}/tessdata"
+
+RRECOMMENDS_${PN} += "tesseract-lang-eng"
+
+# http://errors.yoctoproject.org/Errors/Details/35134/
+PNBLACKLIST[tesseract] ?= "BROKEN: QA Issue: tesseract.pc failed sanity test (tmpdir)"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-cn-fonts/44-source-han-sans-cn.conf b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-cn-fonts/44-source-han-sans-cn.conf
new file mode 100644
index 0000000..6855791
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-cn-fonts/44-source-han-sans-cn.conf
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE fontconfig SYSTEM "../fonts.dtd">
+<fontconfig>
+	<!-- 
+	    - Medium variant is used instead of Regular on Qt apps:
+		https://bugs.launchpad.net/ubuntu-font-family/+bug/744812
+		- Medium and Bold looks the same in certain applications:
+		https://bugs.launchpad.net/ubuntu/+source/gnome-specimen/+bug/813373
+	-->
+	<match target="scan">
+		<test name="fullname" compare="eq">
+			<string>Source Han Sans CN Medium</string>
+		</test>
+		<edit name="weight" mode="assign">
+			<const>demibold</const>
+		</edit>
+	</match>
+</fontconfig>
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-cn-fonts_1.004.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-cn-fonts_1.004.bb
new file mode 100644
index 0000000..9fbfc8b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-cn-fonts_1.004.bb
@@ -0,0 +1,34 @@
+require ttf.inc
+
+SUMMARY = "Adobe OpenType Pan-CJK font family for Simplified Chinese"
+HOMEPAGE = "https://github.com/adobe-fonts/source-han-sans"
+LICENSE = "OFL-1.1"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=55719faa0112708e946b820b24b14097"
+
+inherit allarch fontcache
+
+# Download tends to break - so - or not?
+#EXCLUDE_FROM_WORLD = "1"
+
+SRC_URI = " \
+    https://github.com/adobe-fonts/source-han-sans/raw/release/SubsetOTF/SourceHanSansCN.zip \
+    file://44-source-han-sans-cn.conf \
+"
+SRC_URI[md5sum] = "d16abc21f6575bb08894efedbed484a2"
+SRC_URI[sha256sum] = "0a0e1d8e52833bc352d454d8242da03b82c0efc41323fb66f7435e5b39734a4f"
+
+S = "${WORKDIR}/SourceHanSansCN"
+
+do_install() {
+    install -d ${D}${sysconfdir}/fonts/conf.d/
+    install -m 0644 ${WORKDIR}/44-source-han-sans-cn.conf ${D}${sysconfdir}/fonts/conf.d/
+
+    install -d ${D}${datadir}/fonts/truetype/
+    find ./ -name '*.otf' -exec install -m 0644 {} ${D}${datadir}/fonts/truetype/ \;
+}
+
+FILES_${PN} = " \
+    ${sysconfdir}/fonts \
+    ${datadir}/fonts \
+"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-jp-fonts/44-source-han-sans-jp.conf b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-jp-fonts/44-source-han-sans-jp.conf
new file mode 100644
index 0000000..a7a93fe
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-jp-fonts/44-source-han-sans-jp.conf
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE fontconfig SYSTEM "../fonts.dtd">
+<fontconfig>
+    <!-- 
+        - Medium variant is used instead of Regular on Qt apps:
+        https://bugs.launchpad.net/ubuntu-font-family/+bug/744812
+        - Medium and Bold looks the same in certain applications:
+        https://bugs.launchpad.net/ubuntu/+source/gnome-specimen/+bug/813373
+    -->
+    <match target="scan">
+        <test name="fullname" compare="eq">
+            <string>Source Han Sans JP Medium</string>
+        </test>
+        <edit name="weight" mode="assign">
+            <const>demibold</const>
+        </edit>
+    </match>
+</fontconfig>
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-jp-fonts_1.004.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-jp-fonts_1.004.bb
new file mode 100644
index 0000000..4a26a2f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-jp-fonts_1.004.bb
@@ -0,0 +1,34 @@
+require ttf.inc
+
+SUMMARY = "Adobe OpenType Pan-CJK font family for Japanese"
+HOMEPAGE = "https://github.com/adobe-fonts/source-han-sans"
+LICENSE = "OFL-1.1"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=55719faa0112708e946b820b24b14097"
+
+inherit allarch fontcache
+
+# Download tends to break - so - or not?
+#EXCLUDE_FROM_WORLD = "1"
+
+SRC_URI = " \
+    https://github.com/adobe-fonts/source-han-sans/raw/release/SubsetOTF/SourceHanSansJP.zip \
+    file://44-source-han-sans-jp.conf \
+"
+SRC_URI[md5sum] = "908fbf97f3df04a6838708c093f1e900"
+SRC_URI[sha256sum] = "dc6dbae3fba35f220bac88ba7130b826c7efe1282f472788fae3628b79be3f54"
+
+S = "${WORKDIR}/SourceHanSansJP"
+
+do_install() {
+    install -d ${D}${sysconfdir}/fonts/conf.d/
+    install -m 0644 ${WORKDIR}/44-source-han-sans-jp.conf ${D}${sysconfdir}/fonts/conf.d/
+
+    install -d ${D}${datadir}/fonts/truetype/
+    find ./ -name '*.otf' -exec install -m 0644 {} ${D}${datadir}/fonts/truetype/ \;
+}
+
+FILES_${PN} = " \
+    ${sysconfdir}/fonts \
+    ${datadir}/fonts \
+"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-kr-fonts/44-source-han-sans-kr.conf b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-kr-fonts/44-source-han-sans-kr.conf
new file mode 100644
index 0000000..dee73ae
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-kr-fonts/44-source-han-sans-kr.conf
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE fontconfig SYSTEM "../fonts.dtd">
+<fontconfig>
+    <!-- 
+        - Medium variant is used instead of Regular on Qt apps:
+        https://bugs.launchpad.net/ubuntu-font-family/+bug/744812
+        - Medium and Bold looks the same in certain applications:
+        https://bugs.launchpad.net/ubuntu/+source/gnome-specimen/+bug/813373
+    -->
+    <match target="scan">
+        <test name="fullname" compare="eq">
+            <string>Source Han Sans KR Medium</string>
+        </test>
+        <edit name="weight" mode="assign">
+            <const>demibold</const>
+        </edit>
+    </match>
+</fontconfig>
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-kr-fonts_1.004.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-kr-fonts_1.004.bb
new file mode 100644
index 0000000..c91d167
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-kr-fonts_1.004.bb
@@ -0,0 +1,34 @@
+require ttf.inc
+
+SUMMARY = "Adobe OpenType Pan-CJK font family for Korean"
+HOMEPAGE = "https://github.com/adobe-fonts/source-han-sans"
+LICENSE = "OFL-1.1"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=55719faa0112708e946b820b24b14097"
+
+inherit allarch fontcache
+
+# Download tends to break - so - or not?
+#EXCLUDE_FROM_WORLD = "1"
+
+SRC_URI = " \
+    https://github.com/adobe-fonts/source-han-sans/raw/release/SubsetOTF/SourceHanSansKR.zip \
+    file://44-source-han-sans-kr.conf \
+"
+SRC_URI[md5sum] = "f8d1bd6c87d8575afdb25e2f46bd81d4"
+SRC_URI[sha256sum] = "38fd15c80f9980492faaa1af39ff873d8a38e45027023fb17d5b10d4b4b0e6af"
+
+S = "${WORKDIR}/SourceHanSansKR"
+
+do_install() {
+    install -d ${D}${sysconfdir}/fonts/conf.d/
+    install -m 0644 ${WORKDIR}/44-source-han-sans-kr.conf ${D}${sysconfdir}/fonts/conf.d/
+
+    install -d ${D}${datadir}/fonts/truetype/
+    find ./ -name '*.otf' -exec install -m 0644 {} ${D}${datadir}/fonts/truetype/ \;
+}
+
+FILES_${PN} = " \
+    ${sysconfdir}/fonts \
+    ${datadir}/fonts \
+"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-tw-fonts/44-source-han-sans-tw.conf b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-tw-fonts/44-source-han-sans-tw.conf
new file mode 100644
index 0000000..ae28940
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-tw-fonts/44-source-han-sans-tw.conf
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE fontconfig SYSTEM "../fonts.dtd">
+<fontconfig>
+    <!-- 
+        - Medium variant is used instead of Regular on Qt apps:
+        https://bugs.launchpad.net/ubuntu-font-family/+bug/744812
+        - Medium and Bold looks the same in certain applications:
+        https://bugs.launchpad.net/ubuntu/+source/gnome-specimen/+bug/813373
+    -->
+    <match target="scan">
+        <test name="fullname" compare="eq">
+            <string>Source Han Sans TWHK Medium</string>
+        </test>
+        <edit name="weight" mode="assign">
+            <const>demibold</const>
+        </edit>
+    </match>
+</fontconfig>
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-tw-fonts_1.004.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-tw-fonts_1.004.bb
new file mode 100644
index 0000000..7282505
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-tw-fonts_1.004.bb
@@ -0,0 +1,34 @@
+require ttf.inc
+
+SUMMARY = "Adobe OpenType Pan-CJK font family for Traditional Chinese"
+HOMEPAGE = "https://github.com/adobe-fonts/source-han-sans"
+LICENSE = "OFL-1.1"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=55719faa0112708e946b820b24b14097"
+
+inherit allarch fontcache
+
+# Download tends to break - so - or not?
+#EXCLUDE_FROM_WORLD = "1"
+
+SRC_URI = " \
+    https://github.com/adobe-fonts/source-han-sans/raw/release/SubsetOTF/SourceHanSansTW.zip \
+    file://44-source-han-sans-tw.conf \
+"
+SRC_URI[md5sum] = "6533b71b31c19e548768f0fc963202f3"
+SRC_URI[sha256sum] = "92ba161921c5cdec5a8f8d5711676f0865b50cee071c25eb4bd4125b5af59fd0"
+
+S = "${WORKDIR}/SourceHanSansTW"
+
+do_install() {
+    install -d ${D}${sysconfdir}/fonts/conf.d/
+    install -m 0644 ${WORKDIR}/44-source-han-sans-tw.conf ${D}${sysconfdir}/fonts/conf.d/
+
+    install -d ${D}${datadir}/fonts/truetype/
+    find ./ -name '*.otf' -exec install -m 0644 {} ${D}${datadir}/fonts/truetype/ \;
+}
+
+FILES_${PN} = " \
+    ${sysconfdir}/fonts \
+    ${datadir}/fonts \
+"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-arphic-uming_20080216.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-arphic-uming_20080216.bb
new file mode 100644
index 0000000..522f0fb
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-arphic-uming_20080216.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Unicode Mingti (printed) TrueType Font"
+HOMEPAGE = "http://www.freedesktop.org/wiki/Software/CJKUnifonts"
+LICENSE = "Arphic-Public-License"
+LIC_FILES_CHKSUM = "file://README;md5=62be011094b7865ddc4d1a648444d31a"
+SRC_DISTRIBUTE_LICENSES += "${PN}"
+RPROVIDES_${PN} = "virtual-chinese-font"
+PR = "r6"
+
+FONT_PACKAGES = "${PN}"
+
+SRC_URI = "http://archive.ubuntu.com/ubuntu/pool/main/t/ttf-arphic-uming/ttf-arphic-uming_0.2.${PV}.1.orig.tar.gz"
+S = "${WORKDIR}"
+
+require ttf.inc
+
+FILES_${PN} = "${datadir}"
+
+SRC_URI[md5sum] = "d219fcaf953f3eb1889399955a00379f"
+SRC_URI[sha256sum] = "8038a6db9e832456d5da5559aff8d15130243be1091bf24f3243503a6f1bda98"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-dejavu/30-dejavu-aliases.conf b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-dejavu/30-dejavu-aliases.conf
new file mode 100644
index 0000000..9c6e56b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-dejavu/30-dejavu-aliases.conf
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+	<alias>
+		<family>DejaVu Serif</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>DejaVu Sans</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+ 	<alias>
+		<family>DejaVu Sans Mono</family>
+		<default><family>monospace</family></default>
+	</alias>
+</fontconfig>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-dejavu_2.35.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-dejavu_2.35.bb
new file mode 100644
index 0000000..3ce791b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-dejavu_2.35.bb
@@ -0,0 +1,44 @@
+require ttf.inc
+
+SUMMARY = "DejaVu font - TTF Edition"
+HOMEPAGE = "http://dejavu.sourceforge.net/wiki/"
+LICENSE = "BitstreamVera"
+LIC_FILES_CHKSUM = "file://${WORKDIR}/dejavu-fonts-ttf-${PV}/LICENSE;md5=9f867da7a73fad2715291348e80d0763"
+
+# all subpackages except ${PN}-common itself rdepends on ${PN}-common
+RDEPENDS_${PN}-sans = "${PN}-common"
+RDEPENDS_${PN}-sans-mono = "${PN}-common"
+RDEPENDS_${PN}-sans-condensed = "${PN}-common"
+RDEPENDS_${PN}-serif = "${PN}-common"
+RDEPENDS_${PN}-serif-condensed = "${PN}-common"
+RDEPENDS_${PN}-common = ""
+PR = "r7"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/dejavu/dejavu-fonts-ttf-${PV}.tar.bz2 \
+           file://30-dejavu-aliases.conf"
+
+S = "${WORKDIR}/dejavu-fonts-ttf-${PV}/ttf"
+
+do_install_append () {
+    install -d ${D}${sysconfdir}/fonts/conf.d/
+    install -m 0644 ${WORKDIR}/30-dejavu-aliases.conf ${D}${sysconfdir}/fonts/conf.d/
+}
+
+PACKAGES = "\
+            ${PN}-sans \
+            ${PN}-sans-mono \
+            ${PN}-sans-condensed \
+            ${PN}-serif \
+            ${PN}-serif-condensed \
+            ${PN}-common"
+FONT_PACKAGES = "${PN}-sans ${PN}-sans-mono ${PN}-sans-condensed ${PN}-serif ${PN}-serif-condensed"
+
+FILES_${PN}-sans            = "${datadir}/fonts/truetype/DejaVuSans.ttf ${datadir}/fonts/truetype/DejaVuSans-*.ttf"
+FILES_${PN}-sans-mono       = "${datadir}/fonts/truetype/DejaVuSansMono*.ttf"
+FILES_${PN}-sans-condensed  = "${datadir}/fonts/truetype/DejaVuSansCondensed*.ttf"
+FILES_${PN}-serif           = "${datadir}/fonts/truetype/DejaVuSerif.ttf ${datadir}/fonts/truetype/DejaVuSerif-*.ttf"
+FILES_${PN}-serif-condensed = "${datadir}/fonts/truetype/DejaVuSerifCondensed*.ttf"
+FILES_${PN}-common          = "${sysconfdir}"
+
+SRC_URI[md5sum] = "59eaca5acf5c7c8212e92778e3e01f32"
+SRC_URI[sha256sum] = "f6d7965586101ff3a8a5c3ec503e082bb6a9604ff53413e10702e5917c194d88"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-droid_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-droid_git.bb
new file mode 100644
index 0000000..e62badf
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-droid_git.bb
@@ -0,0 +1,27 @@
+require ttf.inc
+
+SUMMARY = "Droid fonts - TTF Edition"
+HOMEPAGE = "http://www.droidfonts.com/"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://README.txt;md5=83544262a86f1f1ec761e75897df92bc"
+SRCREV = "21e6e2de1f0062f949fcc52d0b4559dfa3246e0e"
+PV = "0.1+gitr${SRCPV}"
+PR = "r3"
+
+SRC_URI = "git://github.com/android/platform_frameworks_base.git;branch=master"
+
+S = "${WORKDIR}/git/data/fonts"
+
+do_install_prepend() {
+    rm ${S}/Ahem.ttf MTLc3m.ttf DroidSansArabic.ttf DroidSansThai.ttf Clockopia.ttf MTLmr3m.ttf DroidSansHebrew.ttf DroidSansFallbackLegacy.ttf # we're not packaging it
+}
+
+PACKAGES = "ttf-droid-sans ttf-droid-sans-mono \
+            ttf-droid-sans-fallback ttf-droid-sans-japanese ttf-droid-serif"
+FONT_PACKAGES = "ttf-droid-sans ttf-droid-sans-mono ttf-droid-sans-fallback ttf-droid-sans-japanese ttf-droid-serif"
+
+FILES_ttf-droid-sans = "${datadir}/fonts/truetype/DroidSans.ttf ${datadir}/fonts/truetype/DroidSans-Bold.ttf"
+FILES_ttf-droid-sans-mono = "${datadir}/fonts/truetype/DroidSansMono.ttf"
+FILES_ttf-droid-sans-fallback = "${datadir}/fonts/truetype/DroidSansFallback.ttf"
+FILES_ttf-droid-sans-japanese = "${datadir}/fonts/truetype/DroidSansJapanese.ttf"
+FILES_ttf-droid-serif = "${datadir}/fonts/truetype/DroidSerif*.ttf"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-gentium_1.02.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-gentium_1.02.bb
new file mode 100644
index 0000000..6a6258a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-gentium_1.02.bb
@@ -0,0 +1,37 @@
+require ttf.inc
+
+SUMMARY = "Gentium fonts - TTF Version"
+HOMEPAGE = "http://scripts.sil.org/gentium"
+LICENSE = "OFL"
+LICENSE_URL = "http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&item_id=OFL"
+LIC_FILES_CHKSUM = "file://OFL;md5=33a5bf7b98a9c0ae87430760ba762295 \
+"
+PR = "r8"
+
+SRC_URI = "${DEBIAN_MIRROR}/main/t/ttf-gentium/ttf-gentium_${PV}.orig.tar.gz "
+
+S = "${WORKDIR}/ttf-sil-gentium-${PV}"
+
+do_install_append() {
+
+    install -d ${D}${datadir}/doc/ttf-gentium/
+    install -d ${D}${datadir}/doc/ttf-gentium-alt/
+
+    install -m 0644 ${S}/OFL ${D}${datadir}/doc/ttf-gentium/
+    install -m 0644 ${S}/OFL ${D}${datadir}/doc/ttf-gentium-alt/
+
+}
+
+PACKAGES = "${PN} ${PN}-alt"
+FONT_PACKAGES = "${PN} ${PN}-alt"
+
+FILES_${PN}-alt = "${datadir}/fonts/truetype/GenAI*.ttf \
+                   ${datadir}/fonts/truetype/GenAR*.ttf \
+                   ${datadir}/doc/ttf-gentium-alt/*"
+
+FILES_${PN} = "${datadir}/fonts/truetype/GenI*.ttf \
+               ${datadir}/fonts/truetype/GenR*.ttf \
+               ${datadir}/doc/ttf-gentium/*"
+
+SRC_URI[md5sum] = "4c3e6ae586be277537ebb68f2a45b883"
+SRC_URI[sha256sum] = "4746c04c9a4ad9e0788a38e0a2f81919a630d8070ceabc89f156b6d41d8ceb37"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-hunkyfonts_0.3.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-hunkyfonts_0.3.0.bb
new file mode 100644
index 0000000..5cd9935
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-hunkyfonts_0.3.0.bb
@@ -0,0 +1,20 @@
+require ttf.inc
+
+SUMMARY = "Hunky fonts - TTF Version"
+HOMEPAGE = "http://sourceforge.net/projects/hunkyfonts"
+LICENSE = "LGPL"
+LIC_FILES_CHKSUM = "file://../LICENSE;md5=7fbc338309ac38fefcd64b04bb903e34"
+PR = "r7"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/hunkyfonts/hunkyfonts-${PV}.tar.bz2"
+
+S = "${WORKDIR}/hunkyfonts-${PV}/TTF/"
+
+PACKAGES = "ttf-hunky-sans ttf-hunky-serif"
+FONT_PACKAGES = "ttf-hunky-sans ttf-hunky-serif"
+
+FILES_ttf-hunky-sans = "${datadir}/fonts/truetype/HunkySans*.ttf"
+FILES_ttf-hunky-serif = "${datadir}/fonts/truetype/HunkySerif*.ttf"
+
+SRC_URI[md5sum] = "36444795a356fb8a56c63b2840729bab"
+SRC_URI[sha256sum] = "e0b1849c545b6af276407d93025c73094dd74fc259b07c1d91594fdbb9a0b829"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-inconsolata/OFL.txt b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-inconsolata/OFL.txt
new file mode 100644
index 0000000..1456c18
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-inconsolata/OFL.txt
@@ -0,0 +1,97 @@
+Copyright (c) <dates>, <Copyright Holder> (<URL|email>),
+with Reserved Font Name <Reserved Font Name>.
+Copyright (c) <dates>, <additional Copyright Holder> (<URL|email>),
+with Reserved Font Name <additional Reserved Font Name>.
+Copyright (c) <dates>, <additional Copyright Holder> (<URL|email>).
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
+This license is copied below, and is also available with a FAQ at:
+http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font creation
+efforts of academic and linguistic communities, and to provide a free and
+open framework in which fonts may be shared and improved in partnership
+with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded, 
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply
+to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as
+distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting -- in part or in whole -- any of the components of the
+Original Version, by changing formats or by porting the Font Software to a
+new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,
+in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the corresponding
+Copyright Holder. This restriction only applies to the primary font name as
+presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder(s) and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed entirely under this license, and must not be
+distributed under any other license. The requirement for fonts to
+remain under this license does not apply to any document created
+using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-inconsolata_20100526.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-inconsolata_20100526.bb
new file mode 100644
index 0000000..20041bb
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-inconsolata_20100526.bb
@@ -0,0 +1,26 @@
+require ttf.inc
+
+SUMMARY = "Inconsolata font - TTF Version"
+HOMEPAGE = "http://www.levien.com/type/myfonts/inconsolata.html"
+LICENSE = "OFL-1.1"
+LIC_FILES_CHKSUM = "file://../OFL.txt;md5=969851e3a70122069a4d9ee61dd5a2ed"
+
+SRC_URI = "http://levien.com/type/myfonts/Inconsolata.otf \
+    file://OFL.txt"
+
+S = "${WORKDIR}/ttf-inconsolata-${PV}"
+
+FILES_${PN} = "${datadir}/fonts/truetype/Inconsolata.ttf \
+    ${datadir}/doc/ttf-inconsolata/*"
+
+do_configure() {
+    mv ${WORKDIR}/Inconsolata.otf ${S}/Inconsolata.ttf
+}
+
+do_install_append() {
+    install -d ${D}${datadir}/doc/ttf-inconsolata/
+    install -m 0644 ${WORKDIR}/OFL.txt ${D}${datadir}/doc/ttf-inconsolata/
+}
+
+SRC_URI[md5sum] = "0fbe014c1f0fb5e3c71140ff0dc63edf"
+SRC_URI[sha256sum] = "1561e616c414a1b82d6e6dfbd18e5726fd65028913ade191e5fa38b6ec375a1a"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-liberation_0.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-liberation_0.2.bb
new file mode 100644
index 0000000..7204c92
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-liberation_0.2.bb
@@ -0,0 +1,23 @@
+require ttf.inc
+
+SUMMARY = "Liberation fonts - TTF Version"
+HOMEPAGE = "https://www.redhat.com/promo/fonts/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+                    file://License.txt;md5=5b171c5100029d884fcea21d9a2b7543 \
+"
+
+PR = "r7"
+
+SRC_URI = "http://fedorahosted.org/liberation-fonts/export/807b6dfd069b998cd9b4d3158da98817ef23c79d/F-9/liberation-fonts-ttf-3.tar.gz"
+S = "${WORKDIR}/liberation-fonts-${PV}"
+
+PACKAGES = "ttf-liberation-mono ttf-liberation-sans ttf-liberation-serif"
+FONT_PACKAGES = "ttf-liberation-mono ttf-liberation-sans ttf-liberation-serif"
+
+FILES_ttf-liberation-mono  = "${datadir}/fonts/truetype/*Mono*"
+FILES_ttf-liberation-sans  = "${datadir}/fonts/truetype/*Sans*"
+FILES_ttf-liberation-serif = "${datadir}/fonts/truetype/*Serif*"
+
+SRC_URI[md5sum] = "77728078a17e39f7c242b42c3bf6feb8"
+SRC_URI[sha256sum] = "174cf27c57612971434ec8cc4a52bfd37bad8408e9b9219539c6d5113df6ff8f"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-mplus_027.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-mplus_027.bb
new file mode 100644
index 0000000..9ad348d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-mplus_027.bb
@@ -0,0 +1,28 @@
+require ttf.inc
+
+SUMMARY = "MPlus font - TTF Edition"
+HOMEPAGE = "http://dejavu.sourceforge.net/wiki/"
+LICENSE = "${PN}"
+LIC_FILES_CHKSUM = "file://LICENSE_E;md5=ac161e96eda00db9a3aec7870b5d9658 \
+                    file://LICENSE_J;md5=a120ca8d7c8e4a475d5277c9aeb95221 \
+"
+PR = "r4"
+
+SRC_URI = "http://osdn.dl.sourceforge.jp/mplus-fonts/6650/mplus-TESTFLIGHT-${PV}.tar.gz"
+S = "${WORKDIR}/mplus-TESTFLIGHT-${PV}"
+
+PACKAGESPLITFUNCS_prepend = "split_ttf_mplus_packages "
+
+python split_ttf_mplus_packages() {
+    plugindir = d.expand('${datadir}/fonts/ttf-mplus/')
+    packages = do_split_packages(d, plugindir, '^(.*)\.ttf$', 'ttf-%s', 'TTF Font %s')
+    d.setVar('FONT_PACKAGES', ' '.join(packages))
+}
+
+do_install() {
+    install -d ${D}${datadir}/fonts/ttf-mplus
+    install -m 0644 *.ttf ${D}${datadir}/fonts/ttf-mplus/
+}
+
+SRC_URI[md5sum] = "d1400184b51b3871e8d2fca6c50e18ae"
+SRC_URI[sha256sum] = "a20b9b9b03c2a6fb1e2137d29e8a6ce06406ba1e008906ea3c474dc048dc06a6"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-pt-sans_1.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-pt-sans_1.1.bb
new file mode 100644
index 0000000..ac60a36
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-pt-sans_1.1.bb
@@ -0,0 +1,39 @@
+SUMMARY = "PT Sans Fonts"
+DESCRIPTION = "The PT Sans TTF font set"
+HOMEPAGE = "http://www.paratype.com/public/"
+
+SECTION = "x11/fonts"
+
+LICENSE = "ParaTypeFFL-1.3"
+LIC_FILES_CHKSUM = "file://../PT%20Free%20Font%20License_eng.txt;md5=d720f3a281ed81c3f4cfc465e11b1d0d"
+
+inherit allarch fontcache
+
+# Downloading from fedora because upstream doesn't version its zip file
+# and causes hash build failures
+SRC_URI = "http://pkgs.fedoraproject.org/repo/pkgs/paratype-pt-sans-fonts/PTSans.zip/c3f5a0e20a75cf628387510a720924a7/PTSans.zip"
+
+SRC_URI[md5sum] = "c3f5a0e20a75cf628387510a720924a7"
+SRC_URI[sha256sum] = "0164f824e03c32c99e8a225853ec168893a04a09ade132e93a674e85ae033b2e"
+
+do_install () {
+    install -d ${D}${datadir}/fonts/X11/TTF/
+    cd ..
+    for i in *.ttf; do
+        install -m 0644 $i ${D}${prefix}/share/fonts/X11/TTF/${i}
+    done
+}
+
+FILES_${PN} += "${datadir}"
+
+pkg_postinst_${PN} () {
+    set -x
+    for fontdir in `find $D/usr/lib/X11/fonts -type d`; do
+        mkfontdir $fontdir
+        mkfontscale $fontdir
+    done
+    for fontdir in `find $D/usr/share/fonts/X11 -type d`; do
+        mkfontdir $fontdir
+        mkfontscale $fontdir
+    done
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-sazanami_20040629.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-sazanami_20040629.bb
new file mode 100644
index 0000000..efdcec8
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-sazanami_20040629.bb
@@ -0,0 +1,35 @@
+require ttf.inc
+
+SUMMARY = "Sazanami Gothic/Mincho Japanese TrueType fonts"
+SUMMARY_ttf-sazanami-gothic = "Sazanami Gothic Japanese TrueType font"
+SUMMARY_ttf-sazanami-mincho = "Sazanami Mincho Japanese TrueType font"
+AUTHOR = "Electronic Font Open Laboratory (/efont/)"
+HOMEPAGE = "http://sourceforge.jp/projects/efont/"
+LICENSE = "PD"
+LIC_FILES_CHKSUM = "file://README;md5=97d739900be6e852830f55aa3c07d4a0"
+SRC_DISTRIBUTE_LICENSES += "${PN}"
+RPROVIDES_${PN} = "virtual-japanese-font"
+PR = "r9"
+
+SRC_URI = "http://osdn.dl.sourceforge.jp/efont/10087/sazanami-20040629.tar.bz2"
+S = "${WORKDIR}/sazanami-20040629"
+
+PACKAGES = "ttf-sazanami-gothic ttf-sazanami-mincho"
+FONT_PACKAGES = "ttf-sazanami-gothic ttf-sazanami-mincho"
+
+FILES_ttf-sazanami-gothic = "${datadir}/fonts/truetype/sazanami-gothic.ttf \
+                             ${datadir}/doc/ttf-sazanami-gothic/README"
+FILES_ttf-sazanami-mincho = "${datadir}/fonts/truetype/sazanami-mincho.ttf \
+                             ${datadir}/doc/ttf-sazanami-mincho/README"
+
+do_install_append() {
+    # README contains the redistribution license
+    install -d ${D}${datadir}/doc/
+    install -d ${D}${datadir}/doc/ttf-sazanami-gothic
+    install -d ${D}${datadir}/doc/ttf-sazanami-mincho
+    install -m 0644 ${S}/README ${D}${datadir}/doc/ttf-sazanami-gothic
+    install -m 0644 ${S}/README ${D}${datadir}/doc/ttf-sazanami-mincho
+}
+
+SRC_URI[md5sum] = "ceef10579a75c92483171f3bd7f77df2"
+SRC_URI[sha256sum] = "3467ce2f70a9a3fbbf8d4d97355a2f334a6351baa6722251403637a8cbebf6b7"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-tlwg_0.6.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-tlwg_0.6.1.bb
new file mode 100644
index 0000000..06a3fe5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-tlwg_0.6.1.bb
@@ -0,0 +1,27 @@
+require ttf.inc
+
+SUMMARY = "Thai Linux Working Group Fonts"
+AUTHOR = "Thai Linux Working Group"
+HOMEPAGE = "http://linux.thai.net/projects/fonts-tlwg"
+LICENSE = "GPLv2 & TLWG"
+LIC_FILES_CHKSUM = "file://../fonts-tlwg-${PV}/COPYING;md5=3d20cd7eadf4afd5460c0adb32e387fd"
+
+SRC_URI = "http://linux.thai.net/pub/ThaiLinux/software/fonts-tlwg/fonts-tlwg-${PV}.tar.xz;name=source \
+           http://linux.thai.net/pub/ThaiLinux/software/ttf-tlwg/ttf-tlwg-${PV}.tar.xz;name=ttf"
+SRC_URI[source.md5sum] = "5ea5bc964d992df0428f2e0b85f48400"
+SRC_URI[source.sha256sum] = "77fb9832221fde60c9f683ac3fdce7d45ab6e9c0d83df83da969a3fe9faba537"
+SRC_URI[ttf.md5sum] = "1bc51f45a7b661404a944fab6911261c"
+SRC_URI[ttf.sha256sum] = "aa9cd68969b6f704df3e5b1a2e11204c47f118c8ab052f04c111bd5f299f77c8"
+
+do_install_append () {
+    install -d ${D}${sysconfdir}/fonts/conf.d
+
+    for x in ${S}/etc/fonts/conf.avail/*.conf; do
+        install -m 0644 $x ${D}${sysconfdir}/fonts/conf.d/
+    done
+}
+
+PACKAGES = "${PN}"
+FONT_PACKAGES = "${PN}"
+
+FILES_${PN} = "${datadir}/fonts ${sysconfdir}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-ubuntu-font-family_0.80.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-ubuntu-font-family_0.80.bb
new file mode 100644
index 0000000..d5d1b9a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-ubuntu-font-family_0.80.bb
@@ -0,0 +1,20 @@
+require ttf.inc
+
+SUMMARY = "Ubuntu Font Family - TTF Version"
+HOMEPAGE = "http://font.ubuntu.com"
+LICENSE = "UFL"
+LIC_FILES_CHKSUM = "file://LICENCE.txt;md5=325a1a9029112a2405e743c7f816427b"
+PR = "r1"
+
+SRC_URI = "http://font.ubuntu.com/download/ubuntu-font-family-${PV}.zip"
+
+SRC_URI[md5sum] = "a1fc70f5a5b1d096ab8310886cddaa1c"
+SRC_URI[sha256sum] = "107170099bbc3beae8602b97a5c423525d363106c3c24f787d43e09811298e4c"
+
+S = "${WORKDIR}/ubuntu-font-family-${PV}"
+
+PACKAGES = "ttf-ubuntu-mono ttf-ubuntu-sans"
+FONT_PACKAGES = "ttf-ubuntu-mono ttf-ubuntu-sans"
+
+FILES_ttf-ubuntu-mono  = "${datadir}/fonts/truetype/*Mono*"
+FILES_ttf-ubuntu-sans  = "${datadir}/fonts/truetype/Ubuntu-*"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-wqy-zenhei_0.9.45.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-wqy-zenhei_0.9.45.bb
new file mode 100644
index 0000000..1207a61
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-wqy-zenhei_0.9.45.bb
@@ -0,0 +1,27 @@
+require ttf.inc
+
+SUMMARY = "WenQuanYi Zen Hei - A Hei-Ti Style Chinese font"
+AUTHOR = "Qianqian Fang and The WenQuanYi Project Contributors"
+HOMEPAGE = "http://wenq.org/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=cf540fc7d35b5777e36051280b3a911c"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/wqy/wqy-zenhei-${PV}.tar.gz"
+SRC_URI[md5sum] = "4c6c3f4e902dd5ee0a121e8c41d040bd"
+SRC_URI[sha256sum] = "e4b7e306475bf9427d1757578f0e4528930c84c44eaa3f167d4c42f110ee75d6"
+
+S = "${WORKDIR}/wqy-zenhei"
+
+do_install_append () {
+    sed -i -e '/<string>[^W]/d' ${S}/44-wqy-zenhei.conf
+    install -d ${D}${sysconfdir}/fonts/conf.d
+
+    for x in ${S}/*.conf; do
+        install -m 0644 $x ${D}${sysconfdir}/fonts/conf.d/
+    done
+}
+
+PACKAGES = "${PN}"
+FONT_PACKAGES = "${PN}"
+
+FILES_${PN} = "${datadir}/fonts ${sysconfdir}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf.inc b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf.inc
new file mode 100644
index 0000000..c77af39
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf.inc
@@ -0,0 +1,12 @@
+DESCRIPTION ?= "TrueType font package ${PN}"
+SECTION = "fonts"
+
+# we don't need a compiler nor a c library for these fonts
+INHIBIT_DEFAULT_DEPS = "1"
+
+do_install() {
+    install -d ${D}${datadir}/fonts/truetype/
+    find ./ -name '*.tt[cf]' -exec install -m 0644 {} ${D}${datadir}/fonts/truetype/ \;
+}
+
+inherit allarch fontcache
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/wayland/wayland-fits_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/wayland/wayland-fits_git.bb
new file mode 100755
index 0000000..6852fd3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/wayland/wayland-fits_git.bb
@@ -0,0 +1,33 @@
+SUMMARY = "Wayland-fits, the Wayland Functional Integration Test Suite"
+DESCRIPTION = "Wayland-fits is a fully automated functional integration \
+test suite. Its main purpose is to test the functionality and integration of \
+client-side (i.e. toolkit) and server-side (compositor) implementations of \
+the Wayland protocol."
+HOMEPAGE = "https://github.com/01org/wayland-fits"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f8d34cadaf891753c0f00c6cd48f08f5 \
+                    file://src/extensions/weston/weston-wfits.cpp;endline=21;md5=848c81e55cf3a30a9f6ed75f0dba7a97"
+
+SRC_URI = "git://github.com/01org/wayland-fits.git"
+SRCREV = "f108335e374772ae2818a30ae37fe6fcda81980f"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
+DEPENDS = "libcheck boost wayland weston"
+RDEPENDS_${PN} = "weston"
+
+EXTRA_OECONF += "--enable-shared --disable-static --with-boost-libdir=${STAGING_LIBDIR}"
+
+PACKAGECONFIG ?= "gtk+3"
+
+PACKAGECONFIG[elementary] = "--enable-efl-tests,--disable-efl-tests,elementary"
+PACKAGECONFIG[gtk+3] = "--enable-gtk-tests,--disable-gtk-tests,gtk+3"
+
+do_install_append() {
+	rm -f ${D}/${libdir}/weston/*.la
+}
+
+FILES_${PN} += "${bindir}/wfits ${libdir}/weston/*.so"
+FILES_${PN}-dbg += "${bindir}/.debug ${libdir}/weston/.debug ${prefix}/src"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/x11vnc/files/endian-fix.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/x11vnc/files/endian-fix.patch
new file mode 100644
index 0000000..f2a538b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/x11vnc/files/endian-fix.patch
@@ -0,0 +1,24 @@
+libvncserver: replace LIBVNCSERVER_WORDS_BIGENDIAN with WORDS_BIGENDIAN
+
+since macro AC_C_BIGENDIAN is used in autoconf and WORDS_BIGENDIAN is
+automatically set for different arch, it is better to use WORDS_BIGENDIAN
+instead of LIBVNCSERVER_WORDS_BIGENDIAN, which cuase issue in mips.
+
+Signed-off-by: Yu Ke <ke.yu@intel.com>
+
+Upstream-Status: Pending
+
+diff --git a/libvncserver/main.c b/libvncserver/main.c
+index b6bd930..8bbb7bf 100644
+--- a/libvncserver/main.c
++++ b/libvncserver/main.c
+@@ -47,7 +47,7 @@ static MUTEX(extMutex);
+ 
+ static int rfbEnableLogging=1;
+ 
+-#ifdef LIBVNCSERVER_WORDS_BIGENDIAN
++#ifdef WORDS_BIGENDIAN
+ char rfbEndianTest = (1==0);
+ #else
+ char rfbEndianTest = (1==1);
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/x11vnc/files/starting-fix.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/x11vnc/files/starting-fix.patch
new file mode 100644
index 0000000..f62e405
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/x11vnc/files/starting-fix.patch
@@ -0,0 +1,25 @@
+"-gui" & "-rfbport" require "wish" installed, or else x11vnc fails to start.
+Removing these 2 parameters makes x11vnc works well on poky sato image.
+
+Add also -skip_lockkeys option to ignore all Caps_Lock, Shift_Lock, Num_Lock,
+Scroll_Lock keysyms received from viewers, in order to leave the lock state on
+the server side unchanged. Yet, the keys will appear correctly.
+
+Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
+Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
+
+Upstream-Status: Inappropriate [configuration]
+
+Index: x11vnc-0.9.12/x11vnc/x11vnc.desktop
+===================================================================
+--- x11vnc-0.9.12.orig/x11vnc/x11vnc.desktop	2011-03-03 10:33:18.000000000 +0800
++++ x11vnc-0.9.12/x11vnc/x11vnc.desktop	2011-03-03 10:35:20.000000000 +0800
+@@ -1,7 +1,7 @@
+ [Desktop Entry]
+ Name=X11VNC Server
+ Comment=Share this desktop by VNC
+-Exec=x11vnc -gui tray=setpass -rfbport PROMPT -bg -o %%HOME/.x11vnc.log.%%VNCDISPLAY
++Exec=x11vnc -bg -rfbport 5900 -skip_lockkeys -o %%HOME/.x11vnc.log.%%VNCDISPLAY
+ Icon=computer
+ Terminal=false
+ Type=Application
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.13.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.13.bb
new file mode 100644
index 0000000..7e92965
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.13.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Exports your X session on-the-fly via VNC"
+HOMEPAGE = "http://www.karlrunge.com/x11vnc/"
+
+SECTION = "x11/utils"
+AUTHOR = "Karl Runge"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=361b6b837cad26c6900a926b62aada5f \
+                    file://x11vnc/x11vnc.h;endline=33;md5=6f95dc6535467d7ee1563fd434fb372e"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/libvncserver/x11vnc/${PV}/x11vnc-${PV}.tar.gz\
+           file://starting-fix.patch \
+           file://endian-fix.patch "
+
+SRC_URI[md5sum] = "a372ec4fe8211221547b1c108cf56e4c"
+SRC_URI[sha256sum] = "f6829f2e629667a5284de62b080b13126a0736499fe47cdb447aedb07a59f13b"
+
+DEPENDS = "openssl virtual/libx11 libxext jpeg zlib libxfixes libxrandr libxdamage libxtst libtasn1 p11-kit"
+
+inherit autotools-brokensep distro_features_check
+# depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)} libvncserver"
+PACKAGECONFIG[avahi] = "--with-avahi,--without-avahi,avahi"
+PACKAGECONFIG[xinerama] = "--with-xinerama,--without-xinerama,libxinerama"
+PACKAGECONFIG[libvncserver] = "--with-system-libvncserver,--without-system-libvncserver,libvncserver"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xcursorgen/xcursorgen_1.0.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xcursorgen/xcursorgen_1.0.5.bb
new file mode 100644
index 0000000..27a38c1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xcursorgen/xcursorgen_1.0.5.bb
@@ -0,0 +1,12 @@
+LICENSE = "ManishSingh"
+LIC_FILES_CHKSUM = "file://COPYING;md5=bd1fb9ee90eead85f7b171807b3ab4f2"
+
+DEPENDS = "libpng libxcursor"
+
+SRC_URI = "http://xorg.freedesktop.org/archive/individual/app/${BPN}-${PV}.tar.bz2"
+SRC_URI[md5sum] = "09f56978a62854534deacc8aa8ff3031"
+SRC_URI[sha256sum] = "bc7171a0fa212da866fca2301241630e2009aea8c4ddb75f21b51a31c2e4c581"
+
+inherit autotools pkgconfig
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xdotool/xdotool_1.20100416.2809.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xdotool/xdotool_1.20100416.2809.bb
new file mode 100644
index 0000000..474d298
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xdotool/xdotool_1.20100416.2809.bb
@@ -0,0 +1,23 @@
+SUMMARY = "xdotool - command-line X11 automation tool - utilising X11 XTEST interface"
+HOMEPAGE = "http://www.semicomplete.com/projects/xdotool"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=2f9cbf7e9401cec8a38666a08851ce6b"
+SECTION = "x11"
+DEPENDS = "virtual/libx11 libxtst"
+
+PR = "r1"
+
+inherit distro_features_check
+# depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI = "http://semicomplete.googlecode.com/files/xdotool-${PV}.tar.gz"
+SRC_URI[md5sum] = "1d5be641e512c343abfe5f78b39e6f19"
+SRC_URI[sha256sum] = "42d7271fbc796e53db71bb221f311b9ff3c51d90a71c9487a9bd3101ca39894f"
+
+EXTRA_OEMAKE = "PREFIX=${prefix} INSTALLLIB=${libdir} INSTALLMAN=${mandir}"
+
+do_install() {
+    oe_runmake -e install DESTDIR=${D} PREFIX=${prefix}
+}
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/bdftopcf_1.0.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/bdftopcf_1.0.5.bb
new file mode 100644
index 0000000..35d5002
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/bdftopcf_1.0.5.bb
@@ -0,0 +1,13 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+
+SUMMARY = "bdftopcf is a tool to convert BDF fonts to PCF fonts"
+HOMEPAGE = "http://cgit.freedesktop.org/xorg/app/bdftopcf/"
+SECTION = "x11/app"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f9a35333adf75edd1eaef84bca65a490"
+DEPENDS = "libxfont"
+
+SRC_URI[md5sum] = "53a48e1fdfec29ab2e89f86d4b7ca902"
+SRC_URI[sha256sum] = "38f447be0c61f94c473f128cf519dd0cff63b5d7775240a2e895a183a61e2026"
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/iceauth_1.0.7.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/iceauth_1.0.7.bb
new file mode 100644
index 0000000..f40dec8
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/iceauth_1.0.7.bb
@@ -0,0 +1,16 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+
+SUMMARY = "X.Org X11 X client utilities"
+
+DESCRIPTION = "A collection of utilities used to tweak and query the runtime configuration\
+of the X server."
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=13f70acf3c27f5f834bbc954df775f8e"
+
+BBCLASSEXTEND = "native"
+
+DEPENDS += "libice"
+
+SRC_URI[md5sum] = "25dab02f8e40d5b71ce29a07dc901b8c"
+SRC_URI[sha256sum] = "1216af2dee99b318fcf8bf9a259915273bcb37a7f1e7859af4f15d0ebf6f3f0a"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/sessreg/0001-Makefile.am-Error-Fix.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/sessreg/0001-Makefile.am-Error-Fix.patch
new file mode 100644
index 0000000..2072853
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/sessreg/0001-Makefile.am-Error-Fix.patch
@@ -0,0 +1,33 @@
+From 088bb4cef2c93bef312b076a8c7a3c798cbf2f19 Mon Sep 17 00:00:00 2001
+From: daicy <daicy@cn.fujitsu.com>
+Date: Tue, 8 Dec 2015 11:45:01 +0900
+Subject: [PATCH] Makefile.am: Error Fix
+
+Do not compile man dir since error always occur.
+ | sed: file filenames.sed line 3: unterminated `s' command
+ | make[2]: *** [sessreg.1] Error 1
+It is not a good way.But can remove it from PNBLACKLIST.
+
+Upstream-Status: pending
+
+Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
+---
+ Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index cddffd0..94f7048 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -18,7 +18,7 @@
+ #  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ #  PERFORMANCE OF THIS SOFTWARE.
+ 
+-SUBDIRS = man
++#SUBDIRS = man
+ bin_PROGRAMS = sessreg
+ 
+ AM_CFLAGS = $(CWARNFLAGS) $(SESSREG_CFLAGS)
+-- 
+1.8.4.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/sessreg_1.1.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/sessreg_1.1.0.bb
new file mode 100644
index 0000000..2e25b7d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/sessreg_1.1.0.bb
@@ -0,0 +1,8 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+
+SUMMARY = "a simple program for managing utmp/wtmp entries"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d938a70c8280c265a1ccd2954365d185"
+SRC_URI += "file://0001-Makefile.am-Error-Fix.patch"
+SRC_URI[md5sum] = "e238c89dabc566e1835e1ecb61b605b9"
+SRC_URI[sha256sum] = "551177657835e0902b5eee7b19713035beaa1581bbd3c6506baa553e751e017c"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/setxkbmap_1.3.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/setxkbmap_1.3.1.bb
new file mode 100644
index 0000000..8402753
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/setxkbmap_1.3.1.bb
@@ -0,0 +1,19 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+
+SUMMARY = "A program to compile XKB keyboard description"
+
+DESCRIPTION = "The xkbcomp keymap compiler converts a description of an \
+XKB keymap into one of several output formats. The most common use for \
+xkbcomp is to create a compiled keymap file (.xkm extension) which can \
+be read directly by XKB-capable X servers or utilities."
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=5feafdbe6dfe9e2bd32325be0cfc86f8"
+
+PE = "1"
+
+DEPENDS += "libxkbfile"
+
+BBCLASSEXTEND = "native"
+
+SRC_URI[md5sum] = "2c47a1b8e268df73963c4eb2316b1a89"
+SRC_URI[sha256sum] = "a9ddb3963f263ba13f0ea105d8c45a531832140530217cc559587bb94f02d3e1"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/twm_1.0.9.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/twm_1.0.9.bb
new file mode 100644
index 0000000..41c804b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/twm_1.0.9.bb
@@ -0,0 +1,15 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+SUMMARY = "tiny window manager"
+DEPENDS += " libxext libxt libxmu bison-native"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4c6d42ef60e8166aa26606524c0b9586"
+
+SRC_URI[md5sum] = "59a6f076cdacb5f6945dac809bcf4906"
+SRC_URI[sha256sum] = "c575167ac33edf3bd1592f1bedfe0559debb128ed5fb4873c1278e3be166310a"
+
+FILES_${PN} += "${datadir}/X11/twm/system.twmrc"
+ALTERNATIVE_NAME = "x-window-manager"
+ALTERNATIVE_PATH = "${bindir}/twm"
+ALTERNATIVE_LINK = "${bindir}/x-window-manager"
+ALTERNATIVE_PRIORITY = "1"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xclock_1.0.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xclock_1.0.5.bb
new file mode 100644
index 0000000..cf970d5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xclock_1.0.5.bb
@@ -0,0 +1,11 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+
+SUMMARY = "analog / digital clock for X"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=857759ade8f2ddde5c7b32ef7356ea36"
+
+DEPENDS += " libxaw libxrender libxft libxkbfile libxt"
+
+SRC_URI[md5sum] = "eaf124bbc9d13e1a12a29faaa2ed3612"
+SRC_URI[sha256sum] = "53a9169e24f3814fbfcfee3ca0b98637840a3156ed7c7e36ae03940fabae4c9a"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xfontsel_1.0.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xfontsel_1.0.5.bb
new file mode 100644
index 0000000..c74b291
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xfontsel_1.0.5.bb
@@ -0,0 +1,13 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+
+SUMMARY = "xfontsel provides point and click selection of X11 font names"
+HOMEPAGE = "http://cgit.freedesktop.org/xorg/app/xfontsel/"
+SECTION = "x11/app"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4669d2703c60d585cc29ba7e9a69bcb3"
+DEPENDS += " libxaw"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=4669d2703c60d585cc29ba7e9a69bcb3"
+
+SRC_URI[md5sum] = "a40302b88c599b63e3d3d412e02871e6"
+SRC_URI[sha256sum] = "170d8550b96fb47b04db6181b947e6f6b8b97f4df5d691c351a278480cc931bf"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xgamma_1.0.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xgamma_1.0.6.bb
new file mode 100644
index 0000000..4949616
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xgamma_1.0.6.bb
@@ -0,0 +1,15 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+
+SUMMARY = "X.Org X11 X client utilities"
+
+DESCRIPTION = "xgamma allows X users to query and alter the gamma \
+correction of a monitor via the X video mode extension."
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=ac9801b8423fd7a7699ccbd45cf134d8"
+
+DEPENDS += "libxxf86vm"
+
+BBCLASSEXTEND = "native"
+
+SRC_URI[md5sum] = "90b4305157c2b966d5180e2ee61262be"
+SRC_URI[sha256sum] = "0ef1c35b5c18b1b22317f455c8df13c0a471a8efad63c89c98ae3ce8c2b222d3"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xkbevd_1.1.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xkbevd_1.1.4.bb
new file mode 100644
index 0000000..a6fc9e7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xkbevd_1.1.4.bb
@@ -0,0 +1,13 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+SUMMARY = "A program to compile XKB keyboard description"
+DESCRIPTION = "The  xkbevd event daemon listens for specified XKB \
+events and executes requested commands if they occur. "
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=208668fa9004709ba22c2b748140956c"
+
+DEPENDS += "libxkbfile"
+
+BBCLASSEXTEND = "native"
+
+SRC_URI[md5sum] = "c747faf1f78f5a5962419f8bdd066501"
+SRC_URI[sha256sum] = "2430a2e5302a4cb4a5530c1df8cb3721a149bbf8eb377a2898921a145197f96a"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xkbprint_1.0.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xkbprint_1.0.4.bb
new file mode 100644
index 0000000..26977be
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xkbprint_1.0.4.bb
@@ -0,0 +1,13 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+SUMMARY = "A program to compile XKB keyboard description"
+DESCRIPTION = "xkbprint generates a printable or encapsulated PostScript \
+description of an XKB keyboard description."
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=20f28f97555b220fde762bc2a4406a8f"
+
+DEPENDS += "libxkbfile"
+
+BBCLASSEXTEND = "native"
+
+SRC_URI[md5sum] = "3c25b40de530112c08bf7d229c5c6a28"
+SRC_URI[sha256sum] = "0b3faab8fefad03dfb7e866f634cf859822801de6b5fc6cf5e0a62857ed93e12"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xkbutils_1.0.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xkbutils_1.0.4.bb
new file mode 100644
index 0000000..6a05e98
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xkbutils_1.0.4.bb
@@ -0,0 +1,19 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+
+SUMMARY = "XKeyboard (XKB) extension to the X11 protocol"
+DESCRIPTION = " \
+xkbutils is a collection of small utilities utilizing the XKeyboard (XKB) \
+extension to the X11 protocol. \
+It includes: \
+    xkbbell  - generate XKB bell events \
+    xkbvleds - display the state of LEDs on an XKB keyboard in a window \
+    xkbwatch - reports changes in the XKB keyboard state \
+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=64322fab5239f5c8d97cf6e0e14f1c62"
+
+DEPENDS += "libxaw libxkbfile"
+
+BBCLASSEXTEND = "native"
+
+SRC_URI[md5sum] = "502b14843f610af977dffc6cbf2102d5"
+SRC_URI[sha256sum] = "d2a18ab90275e8bca028773c44264d2266dab70853db4321bdbc18da75148130"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xlsatoms_1.1.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xlsatoms_1.1.2.bb
new file mode 100644
index 0000000..723d4e2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xlsatoms_1.1.2.bb
@@ -0,0 +1,14 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+
+SUMMARY = "X.Org X11 X client utilities"
+HOMEPAGE = "http://cgit.freedesktop.org/xorg/app/xlsatoms/"
+DESCRIPTION = "Xlsatoms lists the interned atoms defined on an X11 server"
+SECTION = "x11/app"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2b08d9e2e718ac83e6fe2b974d4b5fd8"
+
+DEPENDS += "libxmu"
+BBCLASSEXTEND = "native"
+
+SRC_URI[md5sum] = "5dcb6e6c4b28c8d7aeb45257f5a72a7d"
+SRC_URI[sha256sum] = "47e5dc7c3dbda6db2cf8c00cedac1722835c1550aa21cfdbc9ba83906694dea4"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xlsclients_1.1.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xlsclients_1.1.3.bb
new file mode 100644
index 0000000..583a531
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xlsclients_1.1.3.bb
@@ -0,0 +1,14 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+
+SUMMARY = "X.Org X11 X client utilities"
+HOMEPAGE = "http://cgit.freedesktop.org/xorg/app/xlsclients/"
+DESCRIPTION = "xlsclients is a utility for listing information about the \
+client applications running on a X11 server."
+SECTION = "x11/app"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=350e1b718a56df39cfe8ca9345ea4575"
+
+BBCLASSEXTEND = "native"
+
+SRC_URI[md5sum] = "9fbf6b174a5138a61738a42e707ad8f5"
+SRC_URI[sha256sum] = "5d9666fcc6c3de210fc70d5a841a404955af709a616fde530fe4e8f7723e3d3d"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xlsfonts_1.0.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xlsfonts_1.0.5.bb
new file mode 100644
index 0000000..9feed75
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xlsfonts_1.0.5.bb
@@ -0,0 +1,10 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+
+SUMMARY = "server font list displayer for X"
+HOMEPAGE = "http://cgit.freedesktop.org/xorg/app/xlsfonts/"
+SECTION = "x11/app"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=5ec74dd7ea4d10c4715a7c44f159a40b"
+
+SRC_URI[md5sum] = "6f5711bef8c765857a0887a91476283b"
+SRC_URI[sha256sum] = "40295bec35077cee93be2e4c26cc00268ed6ace779ae6e97766a866c1e3927fa"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xmag_1.0.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xmag_1.0.5.bb
new file mode 100644
index 0000000..d577421
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xmag_1.0.5.bb
@@ -0,0 +1,11 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+
+SUMMARY = "xmag is a tool to magnify parts of the screen"
+HOMEPAGE = "http://cgit.freedesktop.org/xorg/app/xmag/"
+SECTION = "x11/app"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=3413fe6832380b44b69b172d2d1b2387"
+DEPENDS += " libxaw libxt"
+
+SRC_URI[md5sum] = "280b81cb09d1903aa868a058d90128ad"
+SRC_URI[sha256sum] = "4ace8795cf756be4ba387f30366045594ce26adda2f5ffe1f8e896825d0932c6"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xmessage_1.0.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xmessage_1.0.4.bb
new file mode 100644
index 0000000..9960706
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xmessage_1.0.4.bb
@@ -0,0 +1,10 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+
+SUMMARY = "Display a message or query in a window"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=73c7f696a728de728d7446cbca814cc5"
+
+DEPENDS += "libxaw"
+
+SRC_URI[md5sum] = "2dd5ae46fa18abc9331bc26250a25005"
+SRC_URI[sha256sum] = "bcdf4b461c439bb3ade6e1e41c47d6218b912da8e9396b7ad70856db2f95ab68"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xrdb_1.1.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xrdb_1.1.0.bb
new file mode 100644
index 0000000..85957e0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xrdb_1.1.0.bb
@@ -0,0 +1,9 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+SUMMARY = "X server resource database utility"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d1167c4f586bd41f0c62166db4384a69"
+
+DEPENDS += "libxmu"
+
+SRC_URI[md5sum] = "b54c7e3e53b4f332d41ed435433fbda0"
+SRC_URI[sha256sum] = "73827b6bbfc9d27ca287d95a1224c306d7053cd7b8156641698d7dc541ca565b"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xrefresh_1.0.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xrefresh_1.0.5.bb
new file mode 100644
index 0000000..a2a4941
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xrefresh_1.0.5.bb
@@ -0,0 +1,13 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+
+SUMMARY = "X.Org X11 X client utilities"
+HOMEPAGE = "http://cgit.freedesktop.org/xorg/app/xrefresh/"
+DESCRIPTION = "xrefresh - refresh all or part of an X screen"
+SECTION = "x11/app"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=dad633bce9c3cd0e3abf72a16e0057cf"
+
+BBCLASSEXTEND = "native"
+
+SRC_URI[md5sum] = "a896382bc53ef3e149eaf9b13bc81d42"
+SRC_URI[sha256sum] = "3213671b0a8a9d1e8d1d5d9e3fd86842c894dd9acc1be2560eda50bc1fb791d6"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xsetmode_1.0.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xsetmode_1.0.0.bb
new file mode 100644
index 0000000..b757329
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xsetmode_1.0.0.bb
@@ -0,0 +1,15 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+
+SUMMARY = "X.Org X11 X client utilities"
+HOMEPAGE = "http://cgit.freedesktop.org/xorg/app/xsetmode/"
+DESCRIPTION = "xsetmode sets the mode of an XInput device to either absolute \
+or relative."
+SECTION = "x11/app"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=9b37e00e7793b667cbc64f9df7b6d733"
+
+DEPENDS += "libxi"
+BBCLASSEXTEND = "native"
+
+SRC_URI[md5sum] = "d074e79d380b031d2f60e4cd56538c93"
+SRC_URI[sha256sum] = "988b47cd922991c6e6adbce15dc386ac75690b61744b526c3af5a4eaa9afa0aa"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xsetroot_1.1.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xsetroot_1.1.1.bb
new file mode 100644
index 0000000..2c79f27
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xsetroot_1.1.1.bb
@@ -0,0 +1,14 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+
+SUMMARY = "X.Org X11 X client utilities"
+HOMEPAGE = "http://cgit.freedesktop.org/xorg/app/xsetroot/"
+DESCRIPTION = "xsetroot is a root window parameter setting utility for X"
+SECTION = "x11/app"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6ea29dbee22324787c061f039e0529de"
+
+DEPENDS += "xbitmaps libxcursor"
+BBCLASSEXTEND = "native"
+
+SRC_URI[md5sum] = "7211b31ec70631829ebae9460999aa0b"
+SRC_URI[sha256sum] = "ba215daaa78c415fce11b9e58c365d03bb602eaa5ea916578d76861a468cc3d9"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xstdcmap_1.0.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xstdcmap_1.0.3.bb
new file mode 100644
index 0000000..3f5511e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xstdcmap_1.0.3.bb
@@ -0,0 +1,15 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+
+SUMMARY = "X.Org X11 X client utilities"
+HOMEPAGE = "http://cgit.freedesktop.org/xorg/app/xstdcmap"
+DESCRIPTION = "The xstdcmap utility can be used to selectively define \
+standard colormap properties."
+SECTION = "x11/app"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2b08d9e2e718ac83e6fe2b974d4b5fd8"
+
+RDEPENDS_${PN} = "libxmu"
+BBCLASSEXTEND = "native"
+
+SRC_URI[md5sum] = "eb5473acaef15a5db9b50df29c6a7f90"
+SRC_URI[sha256sum] = "f648e2b0cf16aa29856de998e2c7204be39dc1f8daeda9464d32288e0b580fc1"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_320.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_320.bb
new file mode 100644
index 0000000..f2abc3c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_320.bb
@@ -0,0 +1,30 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+SUMMARY = "xterm is the standard terminal emulator for the X Window System"
+DEPENDS = "libxaw xproto xextproto libxext libxau libxinerama libxpm ncurses"
+
+LIC_FILES_CHKSUM = "file://xterm.h;beginline=3;endline=31;md5=ee6435019d00b884cde8d7ba2b318ff0"
+
+SRC_URI = "http://invisible-mirror.net/archives/${BPN}/${BP}.tgz"
+
+SRC_URI[md5sum] = "0d7f0e6390d132ae59876b3870e5783d"
+SRC_URI[sha256sum] = "a60dbb574334c081425fa30f011cd9f571e3be7a91e2a84e252461798bce24a7"
+
+PACKAGECONFIG ?= ""
+PACKAGECONFIG[xft] = "--enable-freetype,--disable-freetype,libxft fontconfig freetype-native"
+
+EXTRA_OECONF = " --x-includes=${STAGING_INCDIR} \
+                 --x-libraries=${STAGING_LIBDIR} \
+                 FREETYPE_CONFIG=${STAGING_BINDIR_CROSS}/freetype-config \
+                 --disable-imake \
+                 --disable-rpath-hack \
+                 --disable-setuid"
+
+B = "${S}"
+
+do_configure() {
+    gnu-configize --force
+    sed -e "s%/usr/contrib/X11R6%${STAGING_LIBDIR}%g" -i configure
+    oe_runconf
+}
+
+FILES_${PN} += "${libdir}/X11"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xwd_1.0.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xwd_1.0.6.bb
new file mode 100644
index 0000000..694bf57
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xwd_1.0.6.bb
@@ -0,0 +1,11 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+
+SUMMARY = "xwd is a tool to capture an X window or screen to file"
+HOMEPAGE = "http://cgit.freedesktop.org/xorg/app/xwd/"
+SECTION = "x11/app"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c0cdb783e9a0198237371fdaa26a18bf"
+DEPENDS = "libxmu libxkbfile"
+
+SRC_URI[md5sum] = "6b5d48464c5f366e91efd08b62b12d94"
+SRC_URI[sha256sum] = "3bb396a2268d78de4b1c3e5237a85f7849d3434e87b3cd1f4d57eef614227d79"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xwud_1.0.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xwud_1.0.4.bb
new file mode 100644
index 0000000..33bd7f0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xwud_1.0.4.bb
@@ -0,0 +1,12 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+
+SUMMARY = "X.Org X11 X client utilities"
+HOMEPAGE = "http://cgit.freedesktop.org/xorg/app/xwud/"
+DESCRIPTION = "xwud allows X users to display in a window an image saved \
+in a specially formatted dump file, such as produced by xwd."
+SECTION = "x11/app"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=31e8892c80b7a0c1c5f37c8e8ae6d794"
+
+SRC_URI[md5sum] = "3025b152b4f13fdffd0c46d0be587be6"
+SRC_URI[sha256sum] = "d6b3a09ccfe750868e26bd2384900ab5ff0d434f7f40cd272a50eda8aaa1f8bd"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-data/xbitmaps_1.1.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-data/xbitmaps_1.1.1.bb
new file mode 100644
index 0000000..8647f03
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-data/xbitmaps_1.1.1.bb
@@ -0,0 +1,11 @@
+require xorg-data-common.inc
+
+SUMMARY = "Common X11 Bitmaps"
+LICENSE = "MIT"
+DEPENDS += "libxmu"
+RDEPENDS_${PN}-dev = ""
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=dbd075aaffa4a60a8d00696f2e4b9a8f"
+
+SRC_URI[md5sum] = "7444bbbd999b53bec6a60608a5301f4c"
+SRC_URI[sha256sum] = "3671b034356bbc4d32d052808cf646c940ec8b2d1913adac51b1453e41aa1e9d"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-data/xorg-data-common.inc b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-data/xorg-data-common.inc
new file mode 100644
index 0000000..b230962
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-data/xorg-data-common.inc
@@ -0,0 +1,10 @@
+HOMEPAGE = "http://www.x.org"
+SECTION = "x11/data"
+LICENSE = "MIT-X"
+
+XORG_PN = "${BPN}"
+
+SRC_URI = "${XORG_MIRROR}/individual/data/${BP}.tar.bz2"
+S = "${WORKDIR}/${XORG_PN}-${PV}"
+
+inherit autotools pkgconfig
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-doc/xorg-doc-common.inc b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-doc/xorg-doc-common.inc
new file mode 100644
index 0000000..f4b8b00
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-doc/xorg-doc-common.inc
@@ -0,0 +1,12 @@
+DESCRIPTION = "X documentation"
+HOMEPAGE = "http://www.x.org"
+SECTION = "x11/docs"
+LICENSE = "MIT-X"
+
+SRC_URI = "${XORG_MIRROR}/individual/doc/${BPN}-${PV}.tar.bz2"
+
+S = "${WORKDIR}/${BPN}-${PV}"
+
+INC_PR = "r1"
+
+inherit autotools pkgconfig
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-doc/xorg-sgml-doctools_1.7.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-doc/xorg-sgml-doctools_1.7.bb
new file mode 100644
index 0000000..80f1f00
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-doc/xorg-sgml-doctools_1.7.bb
@@ -0,0 +1,12 @@
+require xorg-doc-common.inc
+PE = "1"
+PR = "${INC_PR}.0"
+
+DEPENDS += "util-macros"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=c8c6c808cd3c797a07b24e443af1c449"
+
+SRC_URI[md5sum] = "2588efb3f49f7fc6ecf41ce42e0b2e5e"
+SRC_URI[sha256sum] = "84fd94e5c50556e6f77501485f8a48724cf3c95c6d58480bc280258ba14580c8"
+
+FILES_${PN} += " /usr/share/sgml/X11"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-mtev/fix-it.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-mtev/fix-it.patch
new file mode 100644
index 0000000..771a2a8
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-mtev/fix-it.patch
@@ -0,0 +1,153 @@
+diff --git a/src/multitouch.c b/src/multitouch.c
+index c55d742..4a8192d 100644
+--- a/src/multitouch.c
++++ b/src/multitouch.c
+@@ -114,7 +114,7 @@ static int init_properties(DeviceIntPtr dev)
+ 	return Success;
+ }
+ 
+-static int device_init(DeviceIntPtr dev, LocalDevicePtr local)
++static int device_init(DeviceIntPtr dev, InputInfoPtr local)
+ {
+ 	struct mtev_mtouch *mt = local->private;
+ 	Atom atom;
+@@ -222,7 +222,7 @@ static int device_init(DeviceIntPtr dev, LocalDevicePtr local)
+ 			xf86InitValuatorAxisStruct(dev, val, axes_labels[val],
+ 						   min,
+ 						   max,
+-						   1, 0, 1);
++						   1, 0, 1,Absolute);
+ 			xf86InitValuatorDefaults(dev, val);
+ 		}
+ 	}
+@@ -232,7 +232,7 @@ static int device_init(DeviceIntPtr dev, LocalDevicePtr local)
+ 	return Success;
+ }
+ 
+-static int device_on(LocalDevicePtr local)
++static int device_on(InputInfoPtr local)
+ {
+ 	struct mtev_mtouch *mt = local->private;
+ 	local->fd = xf86OpenSerial(local->options);
+@@ -248,7 +248,7 @@ static int device_on(LocalDevicePtr local)
+ 	return Success;
+ }
+ 
+-static int device_off(LocalDevicePtr local)
++static int device_off(InputInfoPtr local)
+ {
+ 	struct mtev_mtouch *mt = local->private;
+ 	xf86RemoveEnabledDevice(local);
+@@ -259,12 +259,12 @@ static int device_off(LocalDevicePtr local)
+ 	return Success;
+ }
+ 
+-static int device_close(LocalDevicePtr local)
++static int device_close(InputInfoPtr local)
+ {
+ 	return Success;
+ }
+ 
+-static void process_state(LocalDevicePtr local,
++static void process_state(InputInfoPtr local,
+ 			  const struct mtev_mtouch *mt)
+ {
+ 
+@@ -321,22 +321,22 @@ static void process_state(LocalDevicePtr local,
+ 	}
+ 
+ 	/* Some x-clients assume they get motion events before button down */
++	xf86Msg(X_INFO,"down %d|pdown %d\n", down, pdown);
+ 	if (down)
+ 		xf86PostMotionEventP(local->dev, TRUE,
+ 				     0, down * MT_AXIS_PER_FINGER, valuators);
+-
+ 	if(down && pdown == 0)
+ 		xf86PostButtonEventP(local->dev, TRUE,
+ 				     1, 1,
+ 				     0, down * MT_AXIS_PER_FINGER, valuators);
+-	else if (down == 0 && pdown)
+-		xf86PostButtonEvent(local->dev, TRUE, 1, 0, 0, 0);
+-
++	else if (down == 0 && pdown){
++		xf86PostButtonEvent(local->dev, TRUE, 1, 1, 0, 0);
++	}
+ 	pdown = !!down;
+ }
+ 
+ /* called for each full received packet from the touchpad */
+-static void read_input(LocalDevicePtr local)
++static void read_input(InputInfoPtr local)
+ {
+ 	struct mtev_mtouch *mt = local->private;
+ 	while (mtouch_read_synchronized_event(mt, local->fd)) {
+@@ -346,7 +346,7 @@ static void read_input(LocalDevicePtr local)
+ 
+ static Bool device_control(DeviceIntPtr dev, int mode)
+ {
+-	LocalDevicePtr local = dev->public.devicePrivate;
++	InputInfoPtr local = dev->public.devicePrivate;
+ 	switch (mode) {
+ 	case DEVICE_INIT:
+ 		xf86Msg(X_INFO, "device control: init\n");
+@@ -366,39 +366,29 @@ static Bool device_control(DeviceIntPtr dev, int mode)
+ 	}
+ }
+ 
+-static InputInfoPtr preinit(InputDriverPtr drv, IDevPtr dev, int flags)
++static InputInfoPtr preinit(InputDriverPtr drv, InputInfoPtr pInfo, int flags)
+ {
+ 	struct mtev_mtouch *mt;
+-	InputInfoPtr local = xf86AllocateInput(drv, 0);
+-	if (!local)
+-		goto error;
++	int rc;
++
+ 	mt = calloc(1, sizeof(struct mtev_mtouch));
++
+ 	if (!mt)
+ 		goto error;
+ 
+-	local->name = dev->identifier;
+-	local->type_name = XI_TOUCHSCREEN;
+-	local->device_control = device_control;
+-	local->read_input = read_input;
+-	local->private = mt;
+-	local->flags = XI86_POINTER_CAPABLE |
+-		XI86_SEND_DRAG_EVENTS;
+-
+-	local->conf_idev = dev;
+-
+-	xf86CollectInputOptions(local, NULL, NULL);
+-	//xf86OptionListReport(local->options);
+-	xf86ProcessCommonOptions(local, local->options);
++	pInfo->private = mt;
++	pInfo->type_name = "UNKNOWN";
++	pInfo->device_control = device_control;
++	pInfo->read_input = read_input;
+ 
++	mt->swap_xy = xf86SetBoolOption(pInfo->options, "SwapAxes", FALSE);
++	mt->invert_x = xf86SetBoolOption(pInfo->options, "InvertX", FALSE);
++	mt->invert_y = xf86SetBoolOption(pInfo->options, "InvertY", FALSE);
+ 
+-	mt->swap_xy = xf86SetBoolOption(local->options, "SwapAxes", FALSE);
+-	mt->invert_x = xf86SetBoolOption(local->options, "InvertX", FALSE);
+-	mt->invert_y = xf86SetBoolOption(local->options, "InvertY", FALSE);
+-
+-	local->flags |= XI86_CONFIGURED;
++	return Success;
+ 
+ error:
+-	return local;
++	return !Success;
+ }
+ 
+ static void uninit(InputDriverPtr drv, InputInfoPtr local, int flags)
+@@ -415,7 +405,6 @@ static InputDriverRec MTEV = {
+ 	.PreInit = preinit,
+ 	.UnInit = uninit,
+ 	.module = NULL,
+-	.refCount = 0
+ };
+ 
+ static XF86ModuleVersionInfo VERSION = {
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-mtev_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-mtev_git.bb
new file mode 100644
index 0000000..547ec86
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-mtev_git.bb
@@ -0,0 +1,22 @@
+require recipes-graphics/xorg-driver/xorg-driver-input.inc
+SUMMARY = "X.Org X server -- multitouch input driver"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8a71d0475d08eee76d8b6d0c6dbec543"
+
+DEPENDS += "pixman"
+
+PNBLACKLIST[xf86-input-mtev] ?= "BROKEN: doesn't build with B!=S (Makefile without ${S} in sed call)"
+
+SRC_URI = "git://gitorious.org/xorg/xf86-input-mtev.git file://fix-it.patch"
+SRCREV = "1eb469166ffc095c5801475f057f911f97a6e641"
+S = "${WORKDIR}/git"
+PV = "1.0.0+gitr${SRCPV}"
+PR = "${INC_PR}.0"
+
+EXTRA_OEMAKE = "'INCLUDE=-I${STAGING_INCDIR}/xorg -I${STAGING_INCDIR}/pixman-1'"
+
+#skip xorg-driver-common.inc AC_CHECK_FILE mangling
+do_configure_prepend () {
+    sed 's#gcc#${CC}#g' -i Makefile
+    return
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/10-x11-input-tslib.fdi b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/10-x11-input-tslib.fdi
new file mode 100644
index 0000000..9060439
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/10-x11-input-tslib.fdi
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<deviceinfo version="0.2">
+  <device>
+    <match key="info.capabilities" contains="input.touchpad">
+      <merge key="input.x11_driver" type="string">tslib</merge>
+    </match>
+    <match key="info.capabilities" contains="input.touchscreen">
+      <merge key="input.x11_driver" type="string">tslib</merge>
+    </match>
+  </device>
+</deviceinfo>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/99-xf86-input-tslib.rules b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/99-xf86-input-tslib.rules
new file mode 100644
index 0000000..ec130c2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/99-xf86-input-tslib.rules
@@ -0,0 +1,5 @@
+# create /dev/input/touchscreenX symlink, tag xf86-input-tslib as driver
+SUBSYSTEM=="input", KERNEL=="event[0-9]*", ATTRS{modalias}=="input:*-e0*,3,*a0,1,*18,*", SYMLINK+="input/touchscreen%n", ENV{x11_driver}="tslib"
+SUBSYSTEM=="input", KERNEL=="event[0-9]*", ATTRS{modalias}=="ads7846", SYMLINK+="input/touchscreen%n", ENV{x11_driver}="tslib"
+
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/double-free-crash.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/double-free-crash.patch
new file mode 100644
index 0000000..0775473
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/double-free-crash.patch
@@ -0,0 +1,20 @@
+xorg-server-1.7.3/hw/xfree86/common/xf86Helper.c contains this code
+causing a double free crash on chvt or exit:
+
+    /* This should *really* be handled in drv->UnInit(dev) call instead, but
+     * if the driver forgets about it make sure we free it or at least crash
+     * with flying colors */
+    if (pInp->private)
+	xfree(pInp->private);
+Index: xf86-input-tslib-0.0.6/src/tslib.c
+===================================================================
+--- xf86-input-tslib-0.0.6.orig/src/tslib.c
++++ xf86-input-tslib-0.0.6/src/tslib.c
+@@ -435,6 +435,7 @@ xf86TslibUninit(InputDriverPtr drv, Inpu
+ 	xf86TslibControlProc(pInfo->dev, DEVICE_OFF);
+ 	ts_close(priv->ts);
+ 	xfree(pInfo->private);
++	pInfo->private = NULL;
+ 	xf86DeleteInput(pInfo, 0);
+ }
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xf86-input-tslib-0.0.6-xf86XInputSetScreen.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xf86-input-tslib-0.0.6-xf86XInputSetScreen.patch
new file mode 100644
index 0000000..d16b4a5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xf86-input-tslib-0.0.6-xf86XInputSetScreen.patch
@@ -0,0 +1,31 @@
+Fixes crash when a touchscreen event is received with xserver 1.12 and later:
+X: symbol lookup error: /usr/lib/xorg/modules/input/tslib_drv.so: undefined symbol: xf86XInputSetScreen
+
+Upstream-Status: Pending
+
+Taken from Gentoo:
+https://bugs.gentoo.org/show_bug.cgi?id=446432
+
+diff -ur xf86-input-tslib-0.0.6.orig/src/tslib.c xf86-input-tslib-0.0.6/src/tslib.c
+--- xf86-input-tslib-0.0.6.orig/src/tslib.c	2012-12-05 01:12:16.286597071 +0100
++++ xf86-input-tslib-0.0.6/src/tslib.c	2012-12-05 01:11:02.686598595 +0100
+@@ -75,6 +75,19 @@
+ #define COLLECT_INPUT_OPTIONS(pInfo, options) xf86CollectInputOptions((pInfo), (options))
+ #endif
+ 
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) > 13
++static void
++xf86XInputSetScreen(InputInfoPtr	pInfo,
++		    int			screen_number,
++		    int			x,
++		    int			y)
++{
++    if (miPointerGetScreen(pInfo->dev) !=
++          screenInfo.screens[screen_number]) {
++	miPointerSetScreen(pInfo->dev, screen_number, x, y);
++    }
++}
++#endif
+ 
+ enum { TSLIB_ROTATE_NONE=0, TSLIB_ROTATE_CW=270, TSLIB_ROTATE_UD=180, TSLIB_ROTATE_CCW=90 };
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xf86-input-tslib-port-ABI-12-r48.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xf86-input-tslib-port-ABI-12-r48.patch
new file mode 100644
index 0000000..6a6d5b9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xf86-input-tslib-port-ABI-12-r48.patch
@@ -0,0 +1,196 @@
+Upstream-Status: Pending
+
+Taken from debian:
+http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=627075
+
+Index: xf86-input-tslib-trunk/src/tslib.c
+===================================================================
+--- xf86-input-tslib-trunk/src/tslib.c	(revision 48)
++++ xf86-input-tslib-trunk/src/tslib.c	(working copy)
+@@ -69,6 +69,13 @@
+ #define DEFAULT_HEIGHT		240
+ #define DEFAULT_WIDTH		320
+ 
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
++#define COLLECT_INPUT_OPTIONS(pInfo, options) xf86CollectInputOptions((pInfo), (options), NULL)
++#else
++#define COLLECT_INPUT_OPTIONS(pInfo, options) xf86CollectInputOptions((pInfo), (options))
++#endif
++
++
+ enum { TSLIB_ROTATE_NONE=0, TSLIB_ROTATE_CW=270, TSLIB_ROTATE_UD=180, TSLIB_ROTATE_CCW=90 };
+ 
+ enum button_state { BUTTON_NOT_PRESSED = 0, BUTTON_1_PRESSED = 1, BUTTON_3_CLICK = 3, BUTTON_3_CLICKED=4, BUTTON_EMULATION_OFF=-1 };
+@@ -106,7 +113,7 @@
+ }
+ 
+ static Bool
+-ConvertProc( LocalDevicePtr local,
++ConvertProc( InputInfoPtr local,
+ 			 int first,
+ 			 int num,
+ 			 int v0,
+@@ -135,7 +142,7 @@
+     return t;
+ }
+ 
+-static void ReadInput (LocalDevicePtr local)
++static void ReadInput (InputInfoPtr local)
+ {
+ 	struct ts_priv *priv = (struct ts_priv *) (local->private);
+ 	struct ts_sample samp;
+@@ -382,7 +389,11 @@
+ 					       axiswidth - 1,	/* max val */
+ 					       axiswidth,	/* resolution */
+ 					       0,		/* min_res */
+-					       axiswidth);	/* max_res */
++					       axiswidth	/* max_res */
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 12
++					       ,Absolute
++#endif
++					       );
+ 
+ 		InitValuatorAxisStruct(device, 1,
+ #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
+@@ -392,7 +403,11 @@
+ 					       axisheight - 1,	/* max val */
+ 					       axisheight,	/* resolution */
+ 					       0,		/* min_res */
+-					       axisheight);	/* max_res */
++					       axisheight	/* max_res */
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 12
++					       ,Absolute
++#endif
++					       );
+ 
+ 		if (InitProximityClassDeviceStruct (device) == FALSE) {
+ 			ErrorF ("Unable to allocate EVTouch touchscreen ProximityClassDeviceStruct\n");
+@@ -434,7 +449,7 @@
+ 	ErrorF("%s\n", __FUNCTION__);
+ 	xf86TslibControlProc(pInfo->dev, DEVICE_OFF);
+ 	ts_close(priv->ts);
+-	xfree(pInfo->private);
++	free(pInfo->private);
+ 	pInfo->private = NULL;
+ 	xf86DeleteInput(pInfo, 0);
+ }
+@@ -444,47 +459,57 @@
+  *
+  * called when the module subsection is found in XF86Config
+  */
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 12
++static int 
++xf86TslibInit(InputDriverPtr drv, InputInfoPtr pInfo, int flags)
++#else
+ static InputInfoPtr
+ xf86TslibInit(InputDriverPtr drv, IDevPtr dev, int flags)
++#endif
+ {
+ 	struct ts_priv *priv;
+ 	char *s;
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
+ 	InputInfoPtr pInfo;
++#endif
+ 
+-	priv = xcalloc (1, sizeof (struct ts_priv));
++	priv = calloc (1, sizeof (struct ts_priv));
+         if (!priv)
+-                return NULL;
++                return BadValue;
+ 
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
+ 	if (!(pInfo = xf86AllocateInput(drv, 0))) {
+-		xfree(priv);
+-		return NULL;
++		free(priv);
++		return BadValue;
+ 	}
+ 
+ 	/* Initialise the InputInfoRec. */
+ 	pInfo->name = dev->identifier;
+-	pInfo->type_name = XI_TOUCHSCREEN;
+ 	pInfo->flags =
+ 	    XI86_KEYBOARD_CAPABLE | XI86_POINTER_CAPABLE |
+ 	    XI86_SEND_DRAG_EVENTS;
+-	pInfo->device_control = xf86TslibControlProc;
+-	pInfo->read_input = ReadInput;
+ #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) == 0
+ 	pInfo->motion_history_proc = xf86GetMotionEvents;
+ 	pInfo->history_size = 0;
+ #endif
+-	pInfo->control_proc = NULL;
++	pInfo->conf_idev = dev;
+ 	pInfo->close_proc = NULL;
+-	pInfo->switch_mode = NULL;
+ 	pInfo->conversion_proc = ConvertProc;
+ 	pInfo->reverse_conversion_proc = NULL;
+-	pInfo->dev = NULL;
+ 	pInfo->private_flags = 0;
+ 	pInfo->always_core_feedback = 0;
+-	pInfo->conf_idev = dev;
++#endif
++
++	pInfo->type_name = XI_TOUCHSCREEN;
++	pInfo->control_proc = NULL;
++	pInfo->read_input = ReadInput;
++	pInfo->device_control = xf86TslibControlProc;
++	pInfo->switch_mode = NULL;
+ 	pInfo->private = priv;
++	pInfo->dev = NULL;
+ 
+ 	/* Collect the options, and process the common options. */
+-	xf86CollectInputOptions(pInfo, NULL, NULL);
++	COLLECT_INPUT_OPTIONS(pInfo, NULL);
+ 	xf86ProcessCommonOptions(pInfo, pInfo->options);
+ 
+ 	priv->screen_num = xf86SetIntOption(pInfo->options, "ScreenNumber", 0 );
+@@ -510,23 +535,31 @@
+ 		priv->rotate = TSLIB_ROTATE_NONE;
+ 	}
+ 
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
+  	s = xf86CheckStrOption(dev->commonOptions, "path", NULL);
++#else
++	s = xf86CheckStrOption(pInfo->options, "path", NULL);
++#endif
+   	if (!s)
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
+ 		s = xf86CheckStrOption(dev->commonOptions, "Device", NULL);
++#else
++		s = xf86CheckStrOption(pInfo->options, "Device", NULL);
++#endif
+  
+ 	priv->ts = ts_open(s, 1);
+-	xfree(s);
++	free(s);
+ 
+ 	if (!priv->ts) {
+ 		ErrorF("ts_open failed (device=%s)\n",s);
+ 		xf86DeleteInput(pInfo, 0);
+-		return NULL;
++		return BadValue;
+ 	}
+ 
+ 	if (ts_config(priv->ts)) {
+ 		ErrorF("ts_config failed\n");
+ 		xf86DeleteInput(pInfo, 0);
+-		return NULL;
++		return BadValue;
+ 	}
+ 
+ 	pInfo->fd = ts_fd(priv->ts);
+@@ -536,11 +569,13 @@
+ 		priv->state = BUTTON_EMULATION_OFF;
+ 	}
+ 
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
+ 	/* Mark the device configured */
+ 	pInfo->flags |= XI86_CONFIGURED;
++#endif
+ 
+ 	/* Return the configured device */
+-	return (pInfo);
++	return Success;
+ }
+ 
+ _X_EXPORT InputDriverRec TSLIB = {
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xserver-174-XGetPointerControl.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xserver-174-XGetPointerControl.patch
new file mode 100644
index 0000000..a1f6ba8
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xserver-174-XGetPointerControl.patch
@@ -0,0 +1,34 @@
+From Grazvydas Ignotas
+
+At least xserver 1.7.4 crashes on XGetPointerControl request because of xf86-input-tslib:
+
+Program received signal SIGSEGV, Segmentation fault.
+#0  0x000355e0 in ProcGetPointerControl (client=0x4a2e58) at devices.c:2122
+#1  0x00062fa8 in Dispatch () at dispatch.c:439
+#2  0x00022444 in main (argc=4, argv=0xbeebedc4, envp=0xbeebedd8) at main.c:285
+
+This happens because ptrfeed field is not set in device structure from tslib.
+To fix this, call InitPtrFeedbackClassDeviceStruct() during DEVICE_INIT to get necessary setup done (as done in other input drivers).
+
+---
+diff -ur xf86-input-tslib-0.0.6/src/tslib.c xf86-input-tslib-0.0.6_/src/tslib.c
+--- xf86-input-tslib-0.0.6/src/tslib.c	2010-02-09 12:23:22.000000000 +0200
++++ xf86-input-tslib-0.0.6_/src/tslib.c	2010-02-09 12:37:33.000000000 +0200
+@@ -103,8 +103,6 @@
+ static void
+ PointerControlProc(DeviceIntPtr dev, PtrCtrl * ctrl)
+ {
+-	ErrorF("%s\n", __FUNCTION__);
+-	return;
+ }
+ 
+ static Bool
+@@ -406,6 +404,8 @@
+ 		xf86MotionHistoryAllocate(pInfo);
+ #endif
+ 
++		if (!InitPtrFeedbackClassDeviceStruct(device, PointerControlProc))
++			return !Success;
+ 		break;
+ 
+ 	case DEVICE_ON:
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib_0.0.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib_0.0.6.bb
new file mode 100644
index 0000000..082c771
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib_0.0.6.bb
@@ -0,0 +1,35 @@
+require recipes-graphics/xorg-driver/xorg-driver-input.inc
+SUMMARY = "X.Org X server -- tslib input driver"
+DEPENDS += "tslib"
+RRECOMMENDS_${PN} += "tslib-calibrate"
+RSUGGESTS_${PN} += "hal"
+
+# derived from xf86-input-void, that's why I kept MIT-X, but it's not clear, see COPYING
+LIC_FILES_CHKSUM = "file://src/tslib.c;endline=28;md5=bd62eaef222dcf5cd59e490a12bd795e \
+                    file://COPYING;md5=4641deddaa80fe7ca88e944e1fd94a94"
+
+PR = "${INC_PR}.1"
+
+SRC_URI = "http://www.pengutronix.de/software/xf86-input-tslib/download/xf86-input-tslib-${PV}.tar.bz2 \
+           file://double-free-crash.patch \
+           file://10-x11-input-tslib.fdi \
+           file://xserver-174-XGetPointerControl.patch \
+           file://99-xf86-input-tslib.rules \
+           file://xf86-input-tslib-port-ABI-12-r48.patch \
+           file://xf86-input-tslib-0.0.6-xf86XInputSetScreen.patch \
+"
+
+SRC_URI[md5sum] = "b7a4d2f11637ee3fcf432e044b1d017f"
+SRC_URI[sha256sum] = "5f46fdef095a6e44a69e0f0b57c7d665224b26d990d006611236d8332e85b105"
+
+do_configure_prepend() {
+    rm -rf ${S}/m4/ || true
+}
+do_install_append() {
+    install -d ${D}/${datadir}/hal/fdi/policy/20thirdparty
+    install -m 0644 ${WORKDIR}/10-x11-input-tslib.fdi ${D}/${datadir}/hal/fdi/policy/20thirdparty
+    install -d ${D}/lib/udev/rules.d
+    install -m 0644 ${WORKDIR}/99-xf86-input-tslib.rules ${D}/lib/udev/rules.d/
+}
+
+FILES_${PN} += "${datadir}/hal /lib/udev"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-void_1.4.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-void_1.4.1.bb
new file mode 100644
index 0000000..ca0b486
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-input-void_1.4.1.bb
@@ -0,0 +1,8 @@
+require recipes-graphics/xorg-driver/xorg-driver-input.inc
+SUMMARY = "X.Org X server -- void input driver"
+PR = "${INC_PR}.0"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=4be6a915bfbf111cd88706fc6a6f141b"
+
+SRC_URI[md5sum] = "5227013b52b3ca85d6b7ec8adea988d4"
+SRC_URI[sha256sum] = "f96e4f0a622821bf43a74bd419f2a18423343996c9d243c7e1430ba2d142339c"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_7.6.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_7.6.1.bb
new file mode 100644
index 0000000..f1d06f2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_7.6.1.bb
@@ -0,0 +1,20 @@
+require recipes-graphics/xorg-driver/xorg-driver-video.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=aabff1606551f9461ccf567739af63dc"
+
+SUMMARY = "X.Org X server -- ATI Radeon video driver"
+
+DESCRIPTION = "Open-source X.org graphics driver for ATI Radeon graphics"
+
+DEPENDS += "virtual/libx11 libxvmc drm xf86driproto glproto \
+            virtual/libgl xineramaproto libpciaccess"
+
+COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
+
+SRC_URI[md5sum] = "ede86cd3d1b1d8882f0aea61d9e924ed"
+SRC_URI[sha256sum] = "2516d9eeb8da8bcd3a01365ed1314919777910fa904ab268af342b5693e1d34c"
+
+EXTRA_OECONF += "--disable-glamor"
+
+RDEPENDS_${PN} += "xserver-xorg-module-exa"
+RRECOMMENDS_${PN} += "linux-firmware"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-geode/0001-Add-config.h-include-to-src-lx_memory.c.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-geode/0001-Add-config.h-include-to-src-lx_memory.c.patch
new file mode 100644
index 0000000..fcd2f68
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-geode/0001-Add-config.h-include-to-src-lx_memory.c.patch
@@ -0,0 +1,41 @@
+From 621d946e56efac2c779b83b1a5c6b645169c4ebd Mon Sep 17 00:00:00 2001
+From: "Brian A. Lloyd" <brian.lloyd@familyhonor.net>
+Date: Wed, 1 Oct 2014 12:35:18 +0300
+Subject: [PATCH] Add config.h include to src/lx_memory.c
+
+The src/lx_memory.c file uses the xf86.h header file.  This file must have
+HAVE_STRNDUP defined before calling it when the building platform has a strndup
+function.  When using config.h, this file doesn't have that define and so fails
+to compile.
+
+The attached patch adds the conditional config.h to this file so it may compile
+on the affected platforms.
+
+The patch is trivial and may be included and used under whatever licensing
+desired.
+
+Closes: Free Desktop Bug #84541
+
+Signed-off-by: Brian A. Lloyd <brian.lloyd@familyhonor.net>
+Upstream-Status: Backport
+---
+ src/lx_memory.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/lx_memory.c b/src/lx_memory.c
+index f26d280..992446f 100644
+--- a/src/lx_memory.c
++++ b/src/lx_memory.c
+@@ -22,6 +22,9 @@
+  * contributors may be used to endorse or promote products derived from this
+  * software without specific prior written permission.
+  */
++#if HAVE_CONFIG_H
++#include "config.h"
++#endif
+ 
+ #include "xf86.h"
+ #include "geode.h"
+-- 
+2.1.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-geode_2.11.16.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-geode_2.11.16.bb
new file mode 100644
index 0000000..d267598
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-geode_2.11.16.bb
@@ -0,0 +1,16 @@
+require recipes-graphics/xorg-driver/xorg-driver-video.inc
+LIC_FILES_CHKSUM = "file://COPYING;md5=e7f3e39474aeea5af381a8e103dafc36"
+
+SUMMARY = "X.org server -- Geode GX2/LX display driver"
+PR = "${INC_PR}.0"
+
+SRC_URI += "file://0001-Add-config.h-include-to-src-lx_memory.c.patch"
+SRC_URI[md5sum] = "35fa387f6a33f6b22a56ce4bda424392"
+SRC_URI[sha256sum] = "38fc1f55e29fb7985b90c9021a4b7e5295d42888bd669174f42f3b7f681fc1a7"
+
+COMPATIBLE_HOST = "i.86.*-linux"
+
+RDEPENDS_${PN} += "xserver-xorg-module-exa"
+
+# 2_2.11.16-r21.0/xf86-video-geode-2.11.16/src/gx_driver.c:376:20: error: implicit declaration of function 'xf86MapVidMem' [-Werror=implicit-function-declaration]
+PNBLACKLIST[xf86-video-geode] ?= "BROKEN, fails to build"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0001-fix-build-with-KMS-disabled.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0001-fix-build-with-KMS-disabled.patch
new file mode 100644
index 0000000..25e8320
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0001-fix-build-with-KMS-disabled.patch
@@ -0,0 +1,29 @@
+From f485e878bc8bb0e381a38a30009308c82fa8d672 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Thu, 16 Aug 2012 08:18:56 +0200
+Subject: [PATCH] fix build with KMS disabled
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ src/glamo.h |    3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+diff --git a/src/glamo.h b/src/glamo.h
+index d4a2f19..5fd5c04 100644
+--- a/src/glamo.h
++++ b/src/glamo.h
+@@ -37,8 +37,11 @@
+ #include "xf86.h"
+ #include "exa.h"
+ #include <linux/fb.h>
++
++#ifdef HAVE_KMS
+ #include <libdrm/drm.h>
+ #include <libdrm/glamo_bo.h>
++#endif
+ 
+ #define GLAMO_REG_BASE(c)		((c)->attr.address[0])
+ #define GLAMO_REG_SIZE(c)		(0x2400)
+-- 
+1.7.8.6
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0001-glamo-driver-remove-references-to-mibstore.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0001-glamo-driver-remove-references-to-mibstore.patch
new file mode 100644
index 0000000..fab0b23
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0001-glamo-driver-remove-references-to-mibstore.patch
@@ -0,0 +1,48 @@
+From 040ade8bb86a771fa4e71b41d2080254830ca9f3 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Sat, 16 Mar 2013 17:44:37 +0100
+Subject: [PATCH] glamo*driver: remove references to mibstore
+
+* fix build with xserver-1.14
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ src/glamo-driver.c     | 2 --
+ src/glamo-kms-driver.c | 1 -
+ 2 files changed, 3 deletions(-)
+
+diff --git a/src/glamo-driver.c b/src/glamo-driver.c
+index 10b7762..22f57d7 100644
+--- a/src/glamo-driver.c
++++ b/src/glamo-driver.c
+@@ -14,7 +14,6 @@
+ #include "xf86_OSproc.h"
+ 
+ #include "mipointer.h"
+-#include "mibstore.h"
+ #include "micmap.h"
+ #include "colormapst.h"
+ #include "xf86cmap.h"
+@@ -612,7 +611,6 @@ GlamoScreenInit(SCREEN_INIT_ARGS_DECL)
+     }
+ 
+     xf86SetBlackWhitePixels(pScreen);
+-    miInitializeBackingStore(pScreen);
+     xf86SetBackingStore(pScreen);
+ 
+     /* software cursor */
+diff --git a/src/glamo-kms-driver.c b/src/glamo-kms-driver.c
+index c5c7a00..f192398 100644
+--- a/src/glamo-kms-driver.c
++++ b/src/glamo-kms-driver.c
+@@ -415,7 +415,6 @@ Bool GlamoKMSScreenInit(int scrnIndex, ScreenPtr pScreen, int argc,
+ 
+ 	GlamoKMSExaInit(pScrn);
+ 
+-	miInitializeBackingStore(pScreen);
+ 	xf86SetBackingStore(pScreen);
+ 	xf86SetSilkenMouse(pScreen);
+ 	miDCInitialize(pScreen, xf86GetPointerScreenFuncs());
+-- 
+1.8.1.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0001-glamo-kms-driver-drop-unused-xf86_config.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0001-glamo-kms-driver-drop-unused-xf86_config.patch
new file mode 100644
index 0000000..0d63743
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0001-glamo-kms-driver-drop-unused-xf86_config.patch
@@ -0,0 +1,35 @@
+From 963c221aa01be2ea99d39578d91e4aa08ec3ab0a Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Mon, 23 May 2011 14:29:38 +0200
+Subject: [PATCH] glamo-kms-driver: drop unused xf86_config
+
+* gcc-4.6 doesn't like unused variables which are only set and never read
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ src/glamo-kms-driver.c |    2 --
+ 1 files changed, 0 insertions(+), 2 deletions(-)
+
+diff --git a/src/glamo-kms-driver.c b/src/glamo-kms-driver.c
+index ce87caa..c5c7a00 100644
+--- a/src/glamo-kms-driver.c
++++ b/src/glamo-kms-driver.c
+@@ -208,7 +208,6 @@ static const xf86CrtcConfigFuncsRec crtc_config_funcs = {
+ 
+ Bool GlamoKMSPreInit(ScrnInfoPtr pScrn, int flags)
+ {
+-	xf86CrtcConfigPtr xf86_config;
+ 	GlamoPtr pGlamo;
+ 	rgb defaultWeight = { 0, 0, 0 };
+ 	int max_width, max_height;
+@@ -254,7 +253,6 @@ Bool GlamoKMSPreInit(ScrnInfoPtr pScrn, int flags)
+ 
+ 	/* Allocate an xf86CrtcConfig */
+ 	xf86CrtcConfigInit(pScrn, &crtc_config_funcs);
+-	xf86_config = XF86_CRTC_CONFIG_PTR(pScrn);
+ 
+ 	max_width = 480;
+ 	max_height = 640;
+-- 
+1.7.5.rc3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0003-glamo-driver-adapt-to-xserver-0.13-video-API.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0003-glamo-driver-adapt-to-xserver-0.13-video-API.patch
new file mode 100644
index 0000000..cbdc6e7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0003-glamo-driver-adapt-to-xserver-0.13-video-API.patch
@@ -0,0 +1,279 @@
+From 57e8944e3cced03b9526bd075649d74d97c24899 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Tue, 20 Nov 2012 22:18:23 +0100
+Subject: [PATCH 3/3] glamo-driver: adapt to xserver-0.13 video API
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ src/compat-api.h   | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/glamo-driver.c | 43 ++++++++++++------------
+ 2 files changed, 118 insertions(+), 21 deletions(-)
+ create mode 100644 src/compat-api.h
+
+diff --git a/src/compat-api.h b/src/compat-api.h
+new file mode 100644
+index 0000000..b1591b1
+--- /dev/null
++++ b/src/compat-api.h
+@@ -0,0 +1,96 @@
++/*
++ * Copyright 2012 Red Hat, Inc.
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining a
++ * copy of this software and associated documentation files (the "Software"),
++ * to deal in the Software without restriction, including without limitation
++ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
++ * and/or sell copies of the Software, and to permit persons to whom the
++ * Software is furnished to do so, subject to the following conditions:
++ *
++ * The above copyright notice and this permission notice (including the next
++ * paragraph) shall be included in all copies or substantial portions of the
++ * Software.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
++ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
++ * DEALINGS IN THE SOFTWARE.
++ *
++ * Author: Dave Airlie <airlied@redhat.com>
++ */
++
++/* this file provides API compat between server post 1.13 and pre it,
++   it should be reused inside as many drivers as possible */
++#ifndef COMPAT_API_H
++#define COMPAT_API_H
++
++#ifndef GLYPH_HAS_GLYPH_PICTURE_ACCESSOR
++#define GetGlyphPicture(g, s) GlyphPicture((g))[(s)->myNum]
++#define SetGlyphPicture(g, s, p) GlyphPicture((g))[(s)->myNum] = p
++#endif
++
++#ifndef XF86_HAS_SCRN_CONV
++#define xf86ScreenToScrn(s) xf86Screens[(s)->myNum]
++#define xf86ScrnToScreen(s) screenInfo.screens[(s)->scrnIndex]
++#endif
++
++#ifndef XF86_SCRN_INTERFACE
++
++#define SCRN_ARG_TYPE int
++#define SCRN_INFO_PTR(arg1) ScrnInfoPtr pScrn = xf86Screens[(arg1)]
++
++#define SCREEN_ARG_TYPE int
++#define SCREEN_PTR(arg1) ScreenPtr pScreen = screenInfo.screens[(arg1)]
++
++#define SCREEN_INIT_ARGS_DECL int index, ScreenPtr pScreen, int argc, char **argv
++
++#define BLOCKHANDLER_ARGS_DECL int arg, pointer blockData, pointer pTimeout, pointer pReadmask
++#define BLOCKHANDLER_ARGS arg, blockData, pTimeout, pReadmask
++
++#define CLOSE_SCREEN_ARGS_DECL int scrnIndex, ScreenPtr pScreen
++#define CLOSE_SCREEN_ARGS scrnIndex, pScreen
++
++#define ADJUST_FRAME_ARGS_DECL int arg, int x, int y, int flags
++
++#define SWITCH_MODE_ARGS_DECL int arg, DisplayModePtr mode, int flags
++
++#define FREE_SCREEN_ARGS_DECL int arg, int flags
++#define FREE_SCREEN_ARGS(x) (x)->scrnIndex, 0
++
++#define VT_FUNC_ARGS_DECL int arg, int flags
++#define VT_FUNC_ARGS(flags) pScrn->scrnIndex, (flags)
++
++#define XF86_ENABLEDISABLEFB_ARG(x) ((x)->scrnIndex)
++#else
++#define SCRN_ARG_TYPE ScrnInfoPtr
++#define SCRN_INFO_PTR(arg1) ScrnInfoPtr pScrn = (arg1)
++
++#define SCREEN_ARG_TYPE ScreenPtr
++#define SCREEN_PTR(arg1) ScreenPtr pScreen = (arg1)
++
++#define SCREEN_INIT_ARGS_DECL ScreenPtr pScreen, int argc, char **argv
++
++#define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout, pointer pReadmask
++#define BLOCKHANDLER_ARGS arg, pTimeout, pReadmask
++
++#define CLOSE_SCREEN_ARGS_DECL ScreenPtr pScreen
++#define CLOSE_SCREEN_ARGS pScreen
++
++#define ADJUST_FRAME_ARGS_DECL ScrnInfoPtr arg, int x, int y
++#define SWITCH_MODE_ARGS_DECL ScrnInfoPtr arg, DisplayModePtr mode
++
++#define FREE_SCREEN_ARGS_DECL ScrnInfoPtr arg
++#define FREE_SCREEN_ARGS(x) (x)
++
++#define VT_FUNC_ARGS_DECL ScrnInfoPtr arg
++#define VT_FUNC_ARGS(flags) pScrn
++
++#define XF86_ENABLEDISABLEFB_ARG(x) (x)
++
++#endif
++
++#endif
+diff --git a/src/glamo-driver.c b/src/glamo-driver.c
+index b13caae..10b7762 100644
+--- a/src/glamo-driver.c
++++ b/src/glamo-driver.c
+@@ -43,6 +43,7 @@
+ 
+ #include <sys/mman.h>
+ 
++#include "compat-api.h"
+ 
+ static Bool debug = 0;
+ 
+@@ -68,10 +69,10 @@ static Bool
+ GlamoPreInit(ScrnInfoPtr pScrn, int flags);
+ 
+ static Bool
+-GlamoScreenInit(int Index, ScreenPtr pScreen, int argc, char **argv);
++GlamoScreenInit(SCREEN_INIT_ARGS_DECL);
+ 
+ static Bool
+-GlamoCloseScreen(int scrnIndex, ScreenPtr pScreen);
++GlamoCloseScreen(CLOSE_SCREEN_ARGS_DECL);
+ 
+ static Bool
+ GlamoCrtcResize(ScrnInfoPtr scrn, int width, int height);
+@@ -86,10 +87,10 @@ static void
+ GlamoRestoreHW(ScrnInfoPtr pScren);
+ 
+ static Bool
+-GlamoEnterVT(int scrnIndex, int flags);
++GlamoEnterVT(VT_FUNC_ARGS_DECL);
+ 
+ static void
+-GlamoLeaveVT(int scrnIndex, int flags);
++GlamoLeaveVT(VT_FUNC_ARGS_DECL);
+ 
+ static void
+ GlamoLoadColormap(ScrnInfoPtr pScrn, int numColors, int *indices,
+@@ -248,8 +249,8 @@ GlamoUnmapMMIO(ScrnInfoPtr pScrn) {
+ }
+ 
+ static Bool
+-GlamoSwitchMode(int scrnIndex, DisplayModePtr mode, int flags) {
+-    ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
++GlamoSwitchMode(SWITCH_MODE_ARGS_DECL) {
++    SCRN_INFO_PTR(arg);
+     xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR (pScrn);
+     xf86OutputPtr output = config->output[config->compat_output];
+     Rotation rotation;
+@@ -286,7 +287,7 @@ GlamoFbdevProbe(DriverPtr drv, GDevPtr *devSections, int numDevSections)
+ 
+ 	for (i = 0; i < numDevSections; i++) {
+ 
+-		dev = xf86FindOptionValue(devSections[i]->options, "Device");
++		dev = (char *) xf86FindOptionValue(devSections[i]->options, "Device");
+ 		if (fbdevHWProbe(NULL, dev, NULL)) {
+ 			int entity;
+ 			pScrn = NULL;
+@@ -430,7 +431,7 @@ GlamoPreInit(ScrnInfoPtr pScrn, int flags)
+ 
+     pGlamo->pEnt = xf86GetEntityInfo(pScrn->entityList[0]);
+ 
+-    fb_device = xf86FindOptionValue(pGlamo->pEnt->device->options, "Device");
++    fb_device = (char *) xf86FindOptionValue(pGlamo->pEnt->device->options, "Device");
+ 
+     /* open device */
+     if (!fbdevHWInit(pScrn, NULL, fb_device))
+@@ -523,7 +524,7 @@ GlamoPreInit(ScrnInfoPtr pScrn, int flags)
+ 
+ 
+ static Bool
+-GlamoScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
++GlamoScreenInit(SCREEN_INIT_ARGS_DECL)
+ {
+     ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+     GlamoPtr pGlamo = GlamoPTR(pScrn);
+@@ -545,7 +546,7 @@ GlamoScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
+ #endif
+ 
+     if (NULL == (pGlamo->fbmem = fbdevHWMapVidmem(pScrn))) {
+-        xf86DrvMsg(scrnIndex, X_ERROR, "mapping of video memory failed\n");
++        xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "mapping of video memory failed\n");
+         return FALSE;
+     }
+ 
+@@ -556,13 +557,13 @@ GlamoScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
+     /* mi layer */
+     miClearVisualTypes();
+     if (!miSetVisualTypes(pScrn->depth, TrueColorMask, pScrn->rgbBits, TrueColor)) {
+-        xf86DrvMsg(scrnIndex, X_ERROR,
++        xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+                    "visual type setup failed for %d bits per pixel [1]\n",
+                    pScrn->bitsPerPixel);
+         return FALSE;
+     }
+     if (!miSetPixmapDepths()) {
+-      xf86DrvMsg(scrnIndex, X_ERROR, "pixmap depth setup failed\n");
++      xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "pixmap depth setup failed\n");
+       return FALSE;
+     }
+ 
+@@ -617,7 +618,7 @@ GlamoScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
+     /* software cursor */
+     miDCInitialize(pScreen, xf86GetPointerScreenFuncs());
+ 
+-    GlamoEnterVT(scrnIndex, 0);
++    GlamoEnterVT(VT_FUNC_ARGS(0));
+ 
+     xf86CrtcScreenInit(pScreen);
+ #if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1,5,0,0,0)
+@@ -627,7 +628,7 @@ GlamoScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
+     /* colormap */
+     pGlamo->colormap = NULL;
+     if (!miCreateDefColormap(pScreen)) {
+-        xf86DrvMsg(scrnIndex, X_ERROR,
++        xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+                    "internal error: miCreateDefColormap failed "
+                    "in GlamoScreenInit()\n");
+         return FALSE;
+@@ -652,9 +653,9 @@ GlamoScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
+ }
+ 
+ static Bool
+-GlamoCloseScreen(int scrnIndex, ScreenPtr pScreen)
++GlamoCloseScreen(CLOSE_SCREEN_ARGS_DECL)
+ {
+-    ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
++    ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
+     GlamoPtr pGlamo = GlamoPTR(pScrn);
+ 
+     if (pGlamo->accel)
+@@ -675,7 +676,7 @@ GlamoCloseScreen(int scrnIndex, ScreenPtr pScreen)
+ 
+     pScreen->CreateScreenResources = pGlamo->CreateScreenResources;
+     pScreen->CloseScreen = pGlamo->CloseScreen;
+-    return (*pScreen->CloseScreen)(scrnIndex, pScreen);
++    return (*pScreen->CloseScreen)(CLOSE_SCREEN_ARGS);
+ }
+ 
+ static Bool
+@@ -826,8 +827,8 @@ GlamoRestoreHW(ScrnInfoPtr pScrn) {
+ }
+ 
+ static Bool
+-GlamoEnterVT(int scrnIndex, int flags) {
+-    ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
++GlamoEnterVT(VT_FUNC_ARGS_DECL) {
++    SCRN_INFO_PTR(arg);
+     GlamoPtr pGlamo = GlamoPTR(pScrn);
+ 
+     GlamoSaveHW(pScrn);
+@@ -842,8 +843,8 @@ GlamoEnterVT(int scrnIndex, int flags) {
+ }
+ 
+ static void
+-GlamoLeaveVT(int scrnIndex, int flags) {
+-    ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
++GlamoLeaveVT(VT_FUNC_ARGS_DECL) {
++    SCRN_INFO_PTR(arg);
+     GlamoPtr pGlamo = GlamoPTR(pScrn);
+ 
+     if (pGlamo->accel)
+-- 
+1.8.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0004-glamo.h-use-const-for-jbt6k74_state_path.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0004-glamo.h-use-const-for-jbt6k74_state_path.patch
new file mode 100644
index 0000000..a820371
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo/0004-glamo.h-use-const-for-jbt6k74_state_path.patch
@@ -0,0 +1,29 @@
+From 180a00634f351a09ceabc5695d8e1acc3e585501 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Fri, 12 Dec 2014 12:00:10 +0100
+Subject: [PATCH] glamo.h: use const for jbt6k74_state_path
+
+* fix build issue with xserver 1.16:
+  glamo-driver.c:501:32: error: assignment discards 'const' qualifier from pointer target type [-Werror]
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ src/glamo.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/glamo.h b/src/glamo.h
+index 5fd5c04..5e072be 100644
+--- a/src/glamo.h
++++ b/src/glamo.h
+@@ -148,7 +148,7 @@ typedef struct {
+ #endif
+ 
+ #ifdef JBT6K74_SET_STATE
+-    char *jbt6k74_state_path;
++    const char *jbt6k74_state_path;
+     char saved_jbt6k74_state[14];
+ #endif
+ 
+-- 
+2.1.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo_git.bb
new file mode 100644
index 0000000..78c6564
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-glamo_git.bb
@@ -0,0 +1,23 @@
+require recipes-graphics/xorg-driver/xorg-driver-video.inc
+SUMMARY = "X.Org X server -- Glamo display driver with KMS support"
+DEPENDS += "libdrm"
+RDEPENDS_${PN} += "xserver-xorg-module-exa"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=d8cbd99fff773f92e844948f74ef0df8"
+
+PE = "2"
+PV = "1.0.0+gitr${SRCPV}"
+PR = "${INC_PR}.4"
+
+SRC_URI = "git://git.openmoko.org/git/xf86-video-glamo.git;branch=master \
+           file://0001-glamo-kms-driver-drop-unused-xf86_config.patch \
+           file://0001-fix-build-with-KMS-disabled.patch \
+           file://0003-glamo-driver-adapt-to-xserver-0.13-video-API.patch \
+           file://0001-glamo-driver-remove-references-to-mibstore.patch \   
+           file://0004-glamo.h-use-const-for-jbt6k74_state_path.patch \
+"
+
+S = "${WORKDIR}/git"
+SRCREV = "cb9ed17035a79e49dde26a1e7e2bc5f10fd8144b"
+
+EXTRA_OECONF = " --disable-kms "
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.12.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.12.bb
new file mode 100644
index 0000000..3a7507c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.12.bb
@@ -0,0 +1,17 @@
+require recipes-graphics/xorg-driver/xorg-driver-video.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=4641deddaa80fe7ca88e944e1fd94a94"
+
+SUMMARY = "X.Org X server -- nouveau video driver"
+
+DESCRIPTION = "Open-source X.org graphics driver for NVIDIA graphics"
+
+DEPENDS += "virtual/libx11 libxvmc drm xf86driproto glproto \
+            virtual/libgl xineramaproto libpciaccess"
+RDEPENDS_${PN} += "xserver-xorg-module-exa"
+
+COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
+
+SRC_URI[md5sum] = "dc79910c7b9e32321cefc7af250c7765"
+SRC_URI[sha256sum] = "0ea057ad7fc31caba2d4e46c7e418fe2b3c762b04fb8d382f53383397fd8391e"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-adobe-100dpi_1.0.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-adobe-100dpi_1.0.3.bb
new file mode 100644
index 0000000..85a4466
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-adobe-100dpi_1.0.3.bb
@@ -0,0 +1,18 @@
+require recipes-graphics/xorg-font/xorg-font-common.inc
+
+SUMMARY = "Adobe 100 DPI fonts"
+HOMEPAGE = "http://cgit.freedesktop.org/xorg/font/adobe-100dpi/"
+SECTION = "x11/font"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=5dfa0fdf45473b4ca0acf37d854df10e"
+
+DEPENDS = "util-macros-native font-util-native bdftopcf-native"
+RDEPENDS_${PN} = "encodings font-util"
+RDEPENDS_${PN}_class-native = "font-util-native"
+
+inherit distro_features_check
+# depends on bdftopcf-native -> virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI[md5sum] = "1347c3031b74c9e91dc4dfa53b12f143"
+SRC_URI[sha256sum] = "b2c08433eab5cb202470aa9f779efefce8d9cab2534f34f3aa4a31d05671c054"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-adobe-utopia-100dpi_1.0.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-adobe-utopia-100dpi_1.0.4.bb
new file mode 100644
index 0000000..16e3d2c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-adobe-utopia-100dpi_1.0.4.bb
@@ -0,0 +1,18 @@
+require recipes-graphics/xorg-font/xorg-font-common.inc
+
+SUMMARY = "Adobe Utopia 100 DPI fonts"
+HOMEPAGE = "http://cgit.freedesktop.org/xorg/font/adobe-utopia-100dpi/"
+SECTION = "x11/font"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fa13e704b7241f60ef9105cc041b9732"
+
+DEPENDS = "util-macros-native font-util-native bdftopcf-native"
+RDEPENDS_${PN} = "encodings font-util"
+RDEPENDS_${PN}_class-native = "font-util-native"
+
+inherit distro_features_check
+# depends on bdftopcf-native -> virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI[md5sum] = "66fb6de561648a6dce2755621d6aea17"
+SRC_URI[sha256sum] = "d16f5e3f227cc6dd07a160a71f443559682dbc35f1c056a5385085aaec4fada5"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-bh-100dpi_1.0.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-bh-100dpi_1.0.3.bb
new file mode 100644
index 0000000..08ed6b6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-bh-100dpi_1.0.3.bb
@@ -0,0 +1,18 @@
+require recipes-graphics/xorg-font/xorg-font-common.inc
+
+SUMMARY = "Bigelow & Holmes 100 DPI fonts"
+HOMEPAGE = "http://cgit.freedesktop.org/xorg/font/bh-100dpi/"
+SECTION = "x11/font"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=cffd5e9c4b61b3d74166ca74b99e460e"
+
+DEPENDS = "util-macros-native font-util-native bdftopcf-native"
+RDEPENDS_${PN} = "encodings font-util"
+RDEPENDS_${PN}_class-native = "font-util-native"
+
+inherit distro_features_check
+# depends on bdftopcf-native -> virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI[md5sum] = "9f11ade089d689b9d59e0f47d26f39cd"
+SRC_URI[sha256sum] = "23c07162708e4b79eb33095c8bfa62c783717a9431254bbf44863734ea239481"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-bh-lucidatypewriter-100dpi_1.0.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-bh-lucidatypewriter-100dpi_1.0.3.bb
new file mode 100644
index 0000000..5ded41a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-bh-lucidatypewriter-100dpi_1.0.3.bb
@@ -0,0 +1,18 @@
+require recipes-graphics/xorg-font/xorg-font-common.inc
+
+SUMMARY = "Bigelow & Holmes Lucida Typewriter 100 DPI fonts"
+HOMEPAGE = "http://cgit.freedesktop.org/xorg/font/bh-lucidatypewriter-100dpi/"
+SECTION = "x11/font"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0d221a9cd144806cb469735cc4775939"
+
+DEPENDS = "util-macros-native font-util-native bdftopcf-native"
+RDEPENDS_${PN} = "encodings font-util"
+RDEPENDS_${PN}_class-native = "font-util-native"
+
+inherit distro_features_check
+# depends on bdftopcf-native -> virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI[md5sum] = "c8b73a53dcefe3e8d3907d3500e484a9"
+SRC_URI[sha256sum] = "62a83363c2536095fda49d260d21e0847675676e4e3415054064cbdffa641fbb"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-bitstream-100dpi_1.0.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-bitstream-100dpi_1.0.3.bb
new file mode 100644
index 0000000..e8cfb61
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-bitstream-100dpi_1.0.3.bb
@@ -0,0 +1,18 @@
+require recipes-graphics/xorg-font/xorg-font-common.inc
+
+SUMMARY = "Bitstream 100 DPI fonts"
+HOMEPAGE = "http://cgit.freedesktop.org/xorg/font/bitstream-100dpi/"
+SECTION = "x11/font"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=30330812324ff9d9bd9ea645bb944427"
+
+DEPENDS = "util-macros-native font-util-native bdftopcf-native"
+RDEPENDS_${PN} = "encodings font-util"
+RDEPENDS_${PN}_class-native = "font-util-native"
+
+inherit distro_features_check
+# depends on bdftopcf-native -> virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI[md5sum] = "6b223a54b15ecbd5a1bc52312ad790d8"
+SRC_URI[sha256sum] = "ebe0d7444e3d7c8da7642055ac2206f0190ee060700d99cd876f8fc9964cb6ce"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-cursor-misc_1.0.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-cursor-misc_1.0.3.bb
new file mode 100644
index 0000000..d425ce5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-cursor-misc_1.0.3.bb
@@ -0,0 +1,17 @@
+require recipes-graphics/xorg-font/xorg-font-common.inc
+
+SUMMARY = "X.org cursor fonts"
+HOMEPAGE = "http://cgit.freedesktop.org/xorg/font/cursor-misc/"
+SECTION = "x11/font"
+LICENSE = "PD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8b32ccac3ad25e75e68478deb7780265"
+
+DEPENDS = "util-macros-native font-util-native bdftopcf-native"
+RDEPENDS_${PN} = "encodings font-util"
+
+inherit distro_features_check
+# depends on bdftopcf-native -> virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI[md5sum] = "3e0069d4f178a399cffe56daa95c2b63"
+SRC_URI[sha256sum] = "17363eb35eece2e08144da5f060c70103b59d0972b4f4d77fd84c9a7a2dba635"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-misc-misc_1.1.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-misc-misc_1.1.2.bb
new file mode 100644
index 0000000..a7c284a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-font/font-misc-misc_1.1.2.bb
@@ -0,0 +1,17 @@
+require recipes-graphics/xorg-font/xorg-font-common.inc
+
+SUMMARY = "X.org miscellaneous fonts"
+HOMEPAGE = "http://cgit.freedesktop.org/xorg/font/misc-misc/"
+SECTION = "x11/font"
+LICENSE = "PD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=200c507f595ee97008c7c5c3e94ab9a8"
+
+DEPENDS = "util-macros-native font-util-native bdftopcf-native"
+RDEPENDS_${PN} = "encodings font-util"
+
+inherit distro_features_check
+# depends on bdftopcf-native -> virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI[md5sum] = "c88eb44b3b903d79fb44b860a213e623"
+SRC_URI[sha256sum] = "b8e77940e4e1769dc47ef1805918d8c9be37c708735832a07204258bacc11794"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-font/xorg-fonts-100dpi.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-font/xorg-fonts-100dpi.bb
new file mode 100644
index 0000000..158416b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-font/xorg-fonts-100dpi.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Xorg 100 DPI font set"
+LICENSE = "Custom"
+
+inherit packagegroup distro_features_check
+# rdepends on font recipes with this restriction
+REQUIRED_DISTRO_FEATURES = "x11"
+
+RDEPENDS_${PN} = "\
+	font-adobe-100dpi \
+	font-adobe-utopia-100dpi \
+	font-bh-100dpi \
+	font-bh-lucidatypewriter-100dpi \
+	font-bitstream-100dpi \
+"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/liblbxutil-1.1.0/mkg3states-1.1.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/liblbxutil-1.1.0/mkg3states-1.1.patch
new file mode 100644
index 0000000..f9f4a63
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/liblbxutil-1.1.0/mkg3states-1.1.patch
@@ -0,0 +1,55 @@
+diff -uNr liblbxutil-1.1.0.orig/configure.ac liblbxutil-1.1.0/configure.ac
+--- liblbxutil-1.1.0.orig/configure.ac	2009-12-04 23:52:04.000000000 +0100
++++ liblbxutil-1.1.0/configure.ac	2009-12-16 10:45:00.000000000 +0100
+@@ -50,4 +50,5 @@
+ 
+ AC_OUTPUT([Makefile
+ 	   src/Makefile
++	   src/image/Makefile
+ 	   lbxutil.pc])
+diff -uNr liblbxutil-1.1.0.orig/src/image/Makefile.am liblbxutil-1.1.0/src/image/Makefile.am
+--- liblbxutil-1.1.0.orig/src/image/Makefile.am	1970-01-01 01:00:00.000000000 +0100
++++ liblbxutil-1.1.0/src/image/Makefile.am	2009-12-16 10:45:00.000000000 +0100
+@@ -0,0 +1,15 @@
++# evil hack
++CFLAGS=$(CFLAGS_FOR_BUILD)
++CPPFLAGS=$(CPPFLAGS_FOR_BUILD)
++LDFLAGS=$(LDFLAGS_FOR_BUILD)
++
++CC=$(CC_FOR_BUILD)
++LIBTOOL = @LIBTOOL@ --tag=CC
++
++noinst_PROGRAMS = mkg3states
++
++mkg3states_SOURCES =				\
++	mkg3states.c
++
++mkg3states_CFLAGS=$(CFLAGS_FOR_BUILD)
++mkg3states_LDFLAGS=$(LDFLAGS_FOR_BUILD)
+diff -uNr liblbxutil-1.1.0.orig/src/Makefile.am liblbxutil-1.1.0/src/Makefile.am
+--- liblbxutil-1.1.0.orig/src/Makefile.am	2009-12-16 10:48:11.000000000 +0100
++++ liblbxutil-1.1.0/src/Makefile.am	2009-12-16 10:46:47.000000000 +0100
+@@ -3,10 +3,7 @@
+ AM_CFLAGS = $(CWARNFLAGS) $(LBXUTIL_CFLAGS)
+ INCLUDES = -I$(top_srcdir)/include
+ 
+-noinst_PROGRAMS = mkg3states
+-
+-mkg3states_SOURCES =				\
+-	$(srcdir)/image/mkg3states.c
++SUBDIRS = image
+ 
+ liblbxutil_la_SOURCES =				\
+ 	$(srcdir)/lbx_zlib/reqstats.h		\
+@@ -38,9 +35,8 @@
+ 
+ $(srcdir)/image/dfaxg42d.c: g3states.h
+ 
+-g3states.h: mkg3states
+-	-rm -f g3states.h
+-	$(AM_V_GEN) ./mkg3states -c > g3states.h_ && mv g3states.h_ g3states.h
++g3states.h: image/mkg3states
++	$(AM_V_GEN) ./image/mkg3states -c > g3states.h_ && mv g3states.h_ g3states.h
+ 
+ liblbxutil_la_LDFLAGS = -version-number 1:0:0 -no-undefined
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/liblbxutil_1.1.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/liblbxutil_1.1.0.bb
new file mode 100644
index 0000000..7d26d14
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/liblbxutil_1.1.0.bb
@@ -0,0 +1,14 @@
+require recipes-graphics/xorg-lib/xorg-lib-common.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=b0d5bdc98f7ebab3b6c3791d9bf40907"
+
+SUMMARY = "XFIXES Extension"
+DEPENDS += " xextproto xproto zlib"
+PE = "1"
+PR = "r11"
+
+SRC_URI += "file://mkg3states-1.1.patch"
+SRC_URI[md5sum] = "273329a78c2e9ea189ac416c7fde94a1"
+SRC_URI[sha256sum] = "c6b6ff7858ec619cafa8205debca6bf78c5610a2844a782ed643c7fd017cf8ae"
+
+export CC_FOR_BUILD = "gcc"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/libxaw_1.0.13.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/libxaw_1.0.13.bb
new file mode 100644
index 0000000..8ba5ac3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/libxaw_1.0.13.bb
@@ -0,0 +1,28 @@
+require recipes-graphics/xorg-lib/xorg-lib-common.inc
+SUMMARY = "X Athena Widget Set"
+DEPENDS += "xproto virtual/libx11 libxext xextproto libxt libxmu libxpm libxau xmlto-native"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=1c65719d42900bb81b83e8293c20a364"
+
+PE = "1"
+PR = "r2"
+
+SRC_URI[md5sum] = "e5e06eb14a608b58746bdd1c0bd7b8e3"
+SRC_URI[sha256sum] = "8ef8067312571292ccc2bbe94c41109dcf022ea5a4ec71656a83d8cce9edb0cd"
+
+do_install_append () {
+    ln -sf libXaw6.so.6 ${D}${libdir}/libXaw.so.6
+    ln -sf libXaw7.so.7 ${D}${libdir}/libXaw.so.7
+    ln -sf libXaw7.so.7 ${D}${libdir}/libXaw.so
+}
+
+PACKAGES =+ "libxaw6 libxaw7 libxaw8"
+
+FILES_libxaw6 = "${libdir}/libXaw*.so.6*"
+FILES_libxaw7 = "${libdir}/libXaw*.so.7*"
+FILES_libxaw8 = "${libdir}/libXaw8.so.8*"
+
+# Avoid dependency on libxaw as it is not build
+RDEPENDS_${PN}-dev = ""
+
+XORG_PN = "libXaw"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/libxkbui_1.0.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/libxkbui_1.0.2.bb
new file mode 100644
index 0000000..66a717e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/libxkbui_1.0.2.bb
@@ -0,0 +1,10 @@
+require recipes-graphics/xorg-lib/xorg-lib-common.inc
+SUMMARY = "X11 keyboard UI presentation library"
+LICENSE = "GPL"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4641deddaa80fe7ca88e944e1fd94a94"
+DEPENDS += "virtual/libx11 libxt libxkbfile"
+PE = "1"
+PR = "r10"
+
+SRC_URI[md5sum] = "1143e456f7429e18e88f2eadb2f2b6b1"
+SRC_URI[sha256sum] = "20c23101d63234ee5f6d696dfa069b29c6c58e39eff433bcd7705b50b3ffa214"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0001-COPYING-add-GPLv2-license-file.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0001-COPYING-add-GPLv2-license-file.patch
new file mode 100644
index 0000000..29dd71a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0001-COPYING-add-GPLv2-license-file.patch
@@ -0,0 +1,364 @@
+From 834fa06920f88ceedf752964c8e296c653d541e4 Mon Sep 17 00:00:00 2001
+From: Yu Ke <ke.yu@intel.com>
+Date: Wed, 11 Apr 2012 14:26:16 +0200
+Subject: [PATCH 01/12] COPYING: add GPLv2 license file
+
+this is a local file recipe and the license file is missing.In order
+to pass the license checksum checking, the license file is needed. So
+this patch add the GPLv2 license file.
+
+Signed-off-by: Yu Ke <ke.yu@intel.com>
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ COPYING |  339 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 files changed, 339 insertions(+), 0 deletions(-)
+ create mode 100644 COPYING
+
+diff --git a/COPYING b/COPYING
+new file mode 100644
+index 0000000..d511905
+--- /dev/null
++++ b/COPYING
+@@ -0,0 +1,339 @@
++		    GNU GENERAL PUBLIC LICENSE
++		       Version 2, June 1991
++
++ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
++ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
++ Everyone is permitted to copy and distribute verbatim copies
++ of this license document, but changing it is not allowed.
++
++			    Preamble
++
++  The licenses for most software are designed to take away your
++freedom to share and change it.  By contrast, the GNU General Public
++License is intended to guarantee your freedom to share and change free
++software--to make sure the software is free for all its users.  This
++General Public License applies to most of the Free Software
++Foundation's software and to any other program whose authors commit to
++using it.  (Some other Free Software Foundation software is covered by
++the GNU Lesser General Public License instead.)  You can apply it to
++your programs, too.
++
++  When we speak of free software, we are referring to freedom, not
++price.  Our General Public Licenses are designed to make sure that you
++have the freedom to distribute copies of free software (and charge for
++this service if you wish), that you receive source code or can get it
++if you want it, that you can change the software or use pieces of it
++in new free programs; and that you know you can do these things.
++
++  To protect your rights, we need to make restrictions that forbid
++anyone to deny you these rights or to ask you to surrender the rights.
++These restrictions translate to certain responsibilities for you if you
++distribute copies of the software, or if you modify it.
++
++  For example, if you distribute copies of such a program, whether
++gratis or for a fee, you must give the recipients all the rights that
++you have.  You must make sure that they, too, receive or can get the
++source code.  And you must show them these terms so they know their
++rights.
++
++  We protect your rights with two steps: (1) copyright the software, and
++(2) offer you this license which gives you legal permission to copy,
++distribute and/or modify the software.
++
++  Also, for each author's protection and ours, we want to make certain
++that everyone understands that there is no warranty for this free
++software.  If the software is modified by someone else and passed on, we
++want its recipients to know that what they have is not the original, so
++that any problems introduced by others will not reflect on the original
++authors' reputations.
++
++  Finally, any free program is threatened constantly by software
++patents.  We wish to avoid the danger that redistributors of a free
++program will individually obtain patent licenses, in effect making the
++program proprietary.  To prevent this, we have made it clear that any
++patent must be licensed for everyone's free use or not licensed at all.
++
++  The precise terms and conditions for copying, distribution and
++modification follow.
++
++		    GNU GENERAL PUBLIC LICENSE
++   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
++
++  0. This License applies to any program or other work which contains
++a notice placed by the copyright holder saying it may be distributed
++under the terms of this General Public License.  The "Program", below,
++refers to any such program or work, and a "work based on the Program"
++means either the Program or any derivative work under copyright law:
++that is to say, a work containing the Program or a portion of it,
++either verbatim or with modifications and/or translated into another
++language.  (Hereinafter, translation is included without limitation in
++the term "modification".)  Each licensee is addressed as "you".
++
++Activities other than copying, distribution and modification are not
++covered by this License; they are outside its scope.  The act of
++running the Program is not restricted, and the output from the Program
++is covered only if its contents constitute a work based on the
++Program (independent of having been made by running the Program).
++Whether that is true depends on what the Program does.
++
++  1. You may copy and distribute verbatim copies of the Program's
++source code as you receive it, in any medium, provided that you
++conspicuously and appropriately publish on each copy an appropriate
++copyright notice and disclaimer of warranty; keep intact all the
++notices that refer to this License and to the absence of any warranty;
++and give any other recipients of the Program a copy of this License
++along with the Program.
++
++You may charge a fee for the physical act of transferring a copy, and
++you may at your option offer warranty protection in exchange for a fee.
++
++  2. You may modify your copy or copies of the Program or any portion
++of it, thus forming a work based on the Program, and copy and
++distribute such modifications or work under the terms of Section 1
++above, provided that you also meet all of these conditions:
++
++    a) You must cause the modified files to carry prominent notices
++    stating that you changed the files and the date of any change.
++
++    b) You must cause any work that you distribute or publish, that in
++    whole or in part contains or is derived from the Program or any
++    part thereof, to be licensed as a whole at no charge to all third
++    parties under the terms of this License.
++
++    c) If the modified program normally reads commands interactively
++    when run, you must cause it, when started running for such
++    interactive use in the most ordinary way, to print or display an
++    announcement including an appropriate copyright notice and a
++    notice that there is no warranty (or else, saying that you provide
++    a warranty) and that users may redistribute the program under
++    these conditions, and telling the user how to view a copy of this
++    License.  (Exception: if the Program itself is interactive but
++    does not normally print such an announcement, your work based on
++    the Program is not required to print an announcement.)
++
++These requirements apply to the modified work as a whole.  If
++identifiable sections of that work are not derived from the Program,
++and can be reasonably considered independent and separate works in
++themselves, then this License, and its terms, do not apply to those
++sections when you distribute them as separate works.  But when you
++distribute the same sections as part of a whole which is a work based
++on the Program, the distribution of the whole must be on the terms of
++this License, whose permissions for other licensees extend to the
++entire whole, and thus to each and every part regardless of who wrote it.
++
++Thus, it is not the intent of this section to claim rights or contest
++your rights to work written entirely by you; rather, the intent is to
++exercise the right to control the distribution of derivative or
++collective works based on the Program.
++
++In addition, mere aggregation of another work not based on the Program
++with the Program (or with a work based on the Program) on a volume of
++a storage or distribution medium does not bring the other work under
++the scope of this License.
++
++  3. You may copy and distribute the Program (or a work based on it,
++under Section 2) in object code or executable form under the terms of
++Sections 1 and 2 above provided that you also do one of the following:
++
++    a) Accompany it with the complete corresponding machine-readable
++    source code, which must be distributed under the terms of Sections
++    1 and 2 above on a medium customarily used for software interchange; or,
++
++    b) Accompany it with a written offer, valid for at least three
++    years, to give any third party, for a charge no more than your
++    cost of physically performing source distribution, a complete
++    machine-readable copy of the corresponding source code, to be
++    distributed under the terms of Sections 1 and 2 above on a medium
++    customarily used for software interchange; or,
++
++    c) Accompany it with the information you received as to the offer
++    to distribute corresponding source code.  (This alternative is
++    allowed only for noncommercial distribution and only if you
++    received the program in object code or executable form with such
++    an offer, in accord with Subsection b above.)
++
++The source code for a work means the preferred form of the work for
++making modifications to it.  For an executable work, complete source
++code means all the source code for all modules it contains, plus any
++associated interface definition files, plus the scripts used to
++control compilation and installation of the executable.  However, as a
++special exception, the source code distributed need not include
++anything that is normally distributed (in either source or binary
++form) with the major components (compiler, kernel, and so on) of the
++operating system on which the executable runs, unless that component
++itself accompanies the executable.
++
++If distribution of executable or object code is made by offering
++access to copy from a designated place, then offering equivalent
++access to copy the source code from the same place counts as
++distribution of the source code, even though third parties are not
++compelled to copy the source along with the object code.
++
++  4. You may not copy, modify, sublicense, or distribute the Program
++except as expressly provided under this License.  Any attempt
++otherwise to copy, modify, sublicense or distribute the Program is
++void, and will automatically terminate your rights under this License.
++However, parties who have received copies, or rights, from you under
++this License will not have their licenses terminated so long as such
++parties remain in full compliance.
++
++  5. You are not required to accept this License, since you have not
++signed it.  However, nothing else grants you permission to modify or
++distribute the Program or its derivative works.  These actions are
++prohibited by law if you do not accept this License.  Therefore, by
++modifying or distributing the Program (or any work based on the
++Program), you indicate your acceptance of this License to do so, and
++all its terms and conditions for copying, distributing or modifying
++the Program or works based on it.
++
++  6. Each time you redistribute the Program (or any work based on the
++Program), the recipient automatically receives a license from the
++original licensor to copy, distribute or modify the Program subject to
++these terms and conditions.  You may not impose any further
++restrictions on the recipients' exercise of the rights granted herein.
++You are not responsible for enforcing compliance by third parties to
++this License.
++
++  7. If, as a consequence of a court judgment or allegation of patent
++infringement or for any other reason (not limited to patent issues),
++conditions are imposed on you (whether by court order, agreement or
++otherwise) that contradict the conditions of this License, they do not
++excuse you from the conditions of this License.  If you cannot
++distribute so as to satisfy simultaneously your obligations under this
++License and any other pertinent obligations, then as a consequence you
++may not distribute the Program at all.  For example, if a patent
++license would not permit royalty-free redistribution of the Program by
++all those who receive copies directly or indirectly through you, then
++the only way you could satisfy both it and this License would be to
++refrain entirely from distribution of the Program.
++
++If any portion of this section is held invalid or unenforceable under
++any particular circumstance, the balance of the section is intended to
++apply and the section as a whole is intended to apply in other
++circumstances.
++
++It is not the purpose of this section to induce you to infringe any
++patents or other property right claims or to contest validity of any
++such claims; this section has the sole purpose of protecting the
++integrity of the free software distribution system, which is
++implemented by public license practices.  Many people have made
++generous contributions to the wide range of software distributed
++through that system in reliance on consistent application of that
++system; it is up to the author/donor to decide if he or she is willing
++to distribute software through any other system and a licensee cannot
++impose that choice.
++
++This section is intended to make thoroughly clear what is believed to
++be a consequence of the rest of this License.
++
++  8. If the distribution and/or use of the Program is restricted in
++certain countries either by patents or by copyrighted interfaces, the
++original copyright holder who places the Program under this License
++may add an explicit geographical distribution limitation excluding
++those countries, so that distribution is permitted only in or among
++countries not thus excluded.  In such case, this License incorporates
++the limitation as if written in the body of this License.
++
++  9. The Free Software Foundation may publish revised and/or new versions
++of the General Public License from time to time.  Such new versions will
++be similar in spirit to the present version, but may differ in detail to
++address new problems or concerns.
++
++Each version is given a distinguishing version number.  If the Program
++specifies a version number of this License which applies to it and "any
++later version", you have the option of following the terms and conditions
++either of that version or of any later version published by the Free
++Software Foundation.  If the Program does not specify a version number of
++this License, you may choose any version ever published by the Free Software
++Foundation.
++
++  10. If you wish to incorporate parts of the Program into other free
++programs whose distribution conditions are different, write to the author
++to ask for permission.  For software which is copyrighted by the Free
++Software Foundation, write to the Free Software Foundation; we sometimes
++make exceptions for this.  Our decision will be guided by the two goals
++of preserving the free status of all derivatives of our free software and
++of promoting the sharing and reuse of software generally.
++
++			    NO WARRANTY
++
++  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
++FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
++OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
++PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
++OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
++MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
++TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
++PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
++REPAIR OR CORRECTION.
++
++  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
++WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
++REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
++INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
++OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
++TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
++YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
++PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
++POSSIBILITY OF SUCH DAMAGES.
++
++		     END OF TERMS AND CONDITIONS
++
++	    How to Apply These Terms to Your New Programs
++
++  If you develop a new program, and you want it to be of the greatest
++possible use to the public, the best way to achieve this is to make it
++free software which everyone can redistribute and change under these terms.
++
++  To do so, attach the following notices to the program.  It is safest
++to attach them to the start of each source file to most effectively
++convey the exclusion of warranty; and each file should have at least
++the "copyright" line and a pointer to where the full notice is found.
++
++    <one line to give the program's name and a brief idea of what it does.>
++    Copyright (C) <year>  <name of author>
++
++    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, Inc.,
++    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
++
++Also add information on how to contact you by electronic and paper mail.
++
++If the program is interactive, make it output a short notice like this
++when it starts in an interactive mode:
++
++    Gnomovision version 69, Copyright (C) year name of author
++    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
++    This is free software, and you are welcome to redistribute it
++    under certain conditions; type `show c' for details.
++
++The hypothetical commands `show w' and `show c' should show the appropriate
++parts of the General Public License.  Of course, the commands you use may
++be called something other than `show w' and `show c'; they could even be
++mouse-clicks or menu items--whatever suits your program.
++
++You should also get your employer (if you work as a programmer) or your
++school, if any, to sign a "copyright disclaimer" for the program, if
++necessary.  Here is a sample; alter the names:
++
++  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
++  `Gnomovision' (which makes passes at compilers) written by James Hacker.
++
++  <signature of Ty Coon>, 1 April 1989
++  Ty Coon, President of Vice
++
++This General Public License does not permit incorporating your program into
++proprietary programs.  If your program is a subroutine library, you may
++consider it more useful to permit linking proprietary applications with the
++library.  If this is what you want to do, use the GNU Lesser General
++Public License instead of this License.
+-- 
+1.7.8.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0002-add-setdpi-Xinit.d-script.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0002-add-setdpi-Xinit.d-script.patch
new file mode 100644
index 0000000..23b5345
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0002-add-setdpi-Xinit.d-script.patch
@@ -0,0 +1,112 @@
+From 3d1a1a8273112668927a6c6bb3e361e896f5b229 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Wed, 11 Apr 2012 14:28:45 +0200
+Subject: [PATCH 02/12] add setdpi Xinit.d script
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ X11/Xinit.d/50setdpi |   92 ++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 files changed, 92 insertions(+), 0 deletions(-)
+ create mode 100644 X11/Xinit.d/50setdpi
+
+diff --git a/X11/Xinit.d/50setdpi b/X11/Xinit.d/50setdpi
+new file mode 100644
+index 0000000..04a2edd
+--- /dev/null
++++ b/X11/Xinit.d/50setdpi
+@@ -0,0 +1,92 @@
++#! /bin/sh
++#
++# Copyright Matthias Hentges <devel@hentges.net> (c) 2006
++# License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the license)
++#
++# Filename: setDPI.sh
++# Date: 09-Apr-06
++
++# This script configures Xft.dpi dependent on your screens DPI. This insures that the same font-size
++# setting of 7 can be used on all machines.
++
++
++XDEFAULTS="/etc/X11/Xdefaults"
++
++
++
++set_dpi() {
++	
++	CURRENT_SETTING="`cat ${XDEFAULTS} | sed -n "/Xft.dpi\:/s/.*\:\(.*\)/\1/p" | sed -n "s/\ //p"`"	
++
++	if test "$CURRENT_SETTING" != "$1"
++	then
++		echo "Using Xft.dpi of $SET_SCREEN_DPI for your $SCREEN_DPI DPI screen"
++		
++		if grep -q "Xft.dpi" "$XDEFAULTS"
++		then
++			cat "${XDEFAULTS}" | sed "s/^Xft.dpi\:.*/Xft.dpi\: $SET_SCREEN_DPI/" > "${XDEFAULTS}_"
++			mv "${XDEFAULTS}_" "${XDEFAULTS}"
++		else
++			echo -e "Xft.dpi: $SET_SCREEN_DPI\n" >> "$XDEFAULTS"
++		fi
++	else
++		echo "Your $SCREEN_DPI DPI screen is already configured."
++	fi
++}
++
++set_rxvt_font() {
++
++	CURRENT_SETTING="`cat ${XDEFAULTS} | sed  -n "/Rxvt\*font/s/\(.*\pixelsize=\)\(.*\)/\2/p"`"
++
++	if test "$1" -gt 100
++	then
++	
++		# Configure the rxvt font-size for your screen here:
++		test "$1" -gt 180 -a "$1" -lt "221" && RXVT_FONT_SIZE=16
++		
++		if test -z "$RXVT_FONT_SIZE"
++		then
++			echo "WARNING: No rxvt font-size configured for a $SCREEN_DPI DPI screen!"
++			echo "Defaulting to size 9"
++			RXVT_FONT_SIZE=9
++		fi
++		
++		if test "$CURRENT_SETTING" != "$RXVT_FONT_SIZE"
++		then
++			echo "Using a rxvt font-size of $RXVT_FONT_SIZE"
++			cat ${XDEFAULTS} | sed "/Rxvt\*font/s/\(.*\pixelsize\)\(=*.*\)/\1=$RXVT_FONT_SIZE/" > ${XDEFAULTS}_
++			mv ${XDEFAULTS}_ ${XDEFAULTS}
++		else
++			echo "The rxvt font-size is already configured"
++		fi 
++	fi
++}
++
++if test -z "$DISPLAY"
++then
++	echo "DISPLAY is not set, aborting..."
++	exit 0
++fi
++
++SCREEN_DPI="`/usr/bin/xdpyinfo | grep "dots per inch" | awk '{print $2}'| sed -n "s/\(.*\)x\(.*\)/\2/p"`"
++
++if test -z "$SCREEN_DPI"
++then
++	echo "WARNING: Couldn't read your screens DPI, defaulting to 100"
++	SCREEN_DPI=100
++fi
++
++# Configure your screen here:
++test "$SCREEN_DPI" -gt 180 -a "$SCREEN_DPI" -lt "221" && SET_SCREEN_DPI=160
++test "$SCREEN_DPI" -gt 90 -a "$SCREEN_DPI" -lt "121" && SET_SCREEN_DPI=100
++
++
++if test -z "$SET_SCREEN_DPI"
++then
++	echo "WARNING: No default configuration found for your $SCREEN_DPI DPI screen!"
++	echo "Using 100 DPI"
++	SET_SCREEN_DPI=100
++fi
++
++set_dpi "$SET_SCREEN_DPI"
++set_rxvt_font "$SCREEN_DPI"
+-- 
+1.7.8.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0003-add-89xdgautostart-Xsession.d-script.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0003-add-89xdgautostart-Xsession.d-script.patch
new file mode 100644
index 0000000..bf806a9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0003-add-89xdgautostart-Xsession.d-script.patch
@@ -0,0 +1,29 @@
+From a93a86c2ff1ca5eb35615f4e1568409ff342aa7f Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Wed, 11 Apr 2012 14:29:41 +0200
+Subject: [PATCH 03/12] add 89xdgautostart Xsession.d script
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ X11/Xsession.d/89xdgautostart |    9 +++++++++
+ 1 files changed, 9 insertions(+), 0 deletions(-)
+ create mode 100644 X11/Xsession.d/89xdgautostart
+
+diff --git a/X11/Xsession.d/89xdgautostart b/X11/Xsession.d/89xdgautostart
+new file mode 100644
+index 0000000..9886f9f
+--- /dev/null
++++ b/X11/Xsession.d/89xdgautostart
+@@ -0,0 +1,9 @@
++#!/bin/sh
++
++XDGAUTOSTART=/etc/xdg/autostart
++if [ -d $XDGAUTOSTART ] ; then
++    for SCRIPT in $XDGAUTOSTART/*; do
++        CMD=`grep ^Exec= $SCRIPT | cut -d '=' -f 2`
++        $CMD &
++    done
++fi
+-- 
+1.7.8.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0005-add-XWindowManager-Xsession.d-script.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0005-add-XWindowManager-Xsession.d-script.patch
new file mode 100644
index 0000000..1782665
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0005-add-XWindowManager-Xsession.d-script.patch
@@ -0,0 +1,23 @@
+From b01a532ebb525552e23d7169a2aeb55c42b3ec99 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Wed, 11 Apr 2012 14:32:13 +0200
+Subject: [PATCH 05/12] add XWindowManager Xsession.d script
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ X11/Xsession.d/90xXWindowManager |    6 ++++++
+ 1 files changed, 6 insertions(+), 0 deletions(-)
+ create mode 100644 X11/Xsession.d/90xXWindowManager
+
+Index: xserver-common-1.34/X11/Xsession.d/90xXWindowManager
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ xserver-common-1.34/X11/Xsession.d/90xXWindowManager	2012-06-28 15:02:22.010521773 +0200
+@@ -0,0 +1,7 @@
++if [ -x $HOME/.Xsession ]; then
++    exec $HOME/.Xsession
++elif [ -x /usr/bin/x-session-manager ]; then
++    exec /usr/bin/x-session-manager
++else
++    exec /usr/bin/x-window-manager
++fi
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0006-add-support-for-etc-X11-xserver-system.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0006-add-support-for-etc-X11-xserver-system.patch
new file mode 100644
index 0000000..7ee8572
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0006-add-support-for-etc-X11-xserver-system.patch
@@ -0,0 +1,26 @@
+From 0c42e1fb84cc2bfe768bed17f3b979aca868cf64 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Wed, 11 Apr 2012 14:34:43 +0200
+Subject: [PATCH 06/12] add support for /etc/X11/xserver-system
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ X11/xserver-common |    5 +++++
+ 1 files changed, 5 insertions(+), 0 deletions(-)
+
+diff --git a/X11/xserver-common b/X11/xserver-common
+index 4c7ed6e..6d8c9df 100644
+--- a/X11/xserver-common
++++ b/X11/xserver-common
+@@ -204,3 +204,8 @@ fi
+ if [ "$XSERVER" != "Xorg" ] ; then
+     ARGS="$ARGS $MOUSE $KDRIVEARGS"
+ fi
++
++# let a local script modify the variables                    
++if [ -e /etc/X11/xserver-system ] ; then                    
++       . /etc/X11/xserver-system                    
++fi                    
+-- 
+1.7.8.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0007-use-own-functions-file-instead-etc-init.d-functions.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0007-use-own-functions-file-instead-etc-init.d-functions.patch
new file mode 100644
index 0000000..8791226
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0007-use-own-functions-file-instead-etc-init.d-functions.patch
@@ -0,0 +1,87 @@
+From 63e6b9a54e1f12dbf7ddbfe3376fff4c382421a5 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Wed, 11 Apr 2012 14:36:02 +0200
+Subject: [PATCH 07/12] use own functions file instead /etc/init.d/functions
+
+* so we don't have to depend on initscripts
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ Makefile             |    1 +
+ X11/Xinit.d/11zaurus |    2 +-
+ X11/Xinit.d/12keymap |    2 +-
+ X11/functions        |   11 +++++++++++
+ X11/xserver-common   |    2 +-
+ 5 files changed, 15 insertions(+), 3 deletions(-)
+ create mode 100644 X11/functions
+
+diff --git a/Makefile b/Makefile
+index e2d9af9..caa5de1 100644
+--- a/Makefile
++++ b/Makefile
+@@ -23,6 +23,7 @@ install-program:
+ 	install -m 755 X11/Xserver $(DESTDIR)/etc/X11/Xserver
+ 	install -m 755 X11/Xsession $(DESTDIR)/etc/X11/Xsession
+ 	install -m 755 X11/xserver-common $(DESTDIR)/etc/X11/xserver-common
++	install -m 755 X11/functions $(DESTDIR)/etc/X11/functions
+ 	install -d $(DESTDIR)/etc/X11/xmodmap
+ 	install -m 644 X11/xmodmap/*.xmodmap $(DESTDIR)/etc/X11/xmodmap
+ 	install -m 644 X11/xmodmap/xmodmap-* $(DESTDIR)/etc/X11/xmodmap
+diff --git a/X11/Xinit.d/11zaurus b/X11/Xinit.d/11zaurus
+index 54ea6f5..23e7713 100644
+--- a/X11/Xinit.d/11zaurus
++++ b/X11/Xinit.d/11zaurus
+@@ -8,7 +8,7 @@ else
+    CHCK=chkhinge
+ fi
+ 
+-. /etc/init.d/functions
++. /etc/X11/functions
+ 
+ $CHCK -e
+ if [ $? = 12 ]; then
+diff --git a/X11/Xinit.d/12keymap b/X11/Xinit.d/12keymap
+index 7eac296..b7a7f2d 100644
+--- a/X11/Xinit.d/12keymap
++++ b/X11/Xinit.d/12keymap
+@@ -1,6 +1,6 @@
+ #!/bin/sh
+ 
+-. /etc/init.d/functions
++. /etc/X11/functions
+ 
+ # since kdrive 1.4 there is no default keymap in server
+ xmodmap - </etc/X11/xmodmap/default.xmodmap
+diff --git a/X11/functions b/X11/functions
+new file mode 100644
+index 0000000..a1311ad
+--- /dev/null
++++ b/X11/functions
+@@ -0,0 +1,11 @@
++# -*-Shell-script-*-
++#
++# functions     This file contains functions shared by few X11 scripts
++#               machine_id also exists in /etc/init.d/functions but some
++#               people don't use initscripts anymore
++#
++
++machine_id() { # return the machine ID
++	awk 'BEGIN { FS=": " } /Hardware/ \
++		{ gsub(" ", "_", $2); print tolower($2) } ' </proc/cpuinfo
++}
+diff --git a/X11/xserver-common b/X11/xserver-common
+index 6d8c9df..de92bb7 100644
+--- a/X11/xserver-common
++++ b/X11/xserver-common
+@@ -30,7 +30,7 @@ if [ -f /etc/profile ]; then
+   . /etc/profile
+ fi
+ 
+-. /etc/init.d/functions
++. /etc/X11/functions
+ 
+ fallback_screen_arg() {
+     geom=`fbset | grep geometry`
+-- 
+1.7.8.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0008-xserver-common-add-dpi-and-nocursor-params-for-gta01.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0008-xserver-common-add-dpi-and-nocursor-params-for-gta01.patch
new file mode 100644
index 0000000..e35e4a7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0008-xserver-common-add-dpi-and-nocursor-params-for-gta01.patch
@@ -0,0 +1,40 @@
+From 0ee7bf87e0c83abc79de3a99dfa3c87dd5c5b229 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Wed, 11 Apr 2012 14:37:29 +0200
+Subject: [PATCH 08/12] xserver-common: add dpi and nocursor params for gta01
+ and gta02
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ X11/xserver-common |    8 ++++++--
+ 1 files changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/X11/xserver-common b/X11/xserver-common
+index de92bb7..f76fa5f 100644
+--- a/X11/xserver-common
++++ b/X11/xserver-common
+@@ -133,15 +133,19 @@ else
+             ARGS="$ARGS -screen ${SCREEN_SIZE}"
+             DPI="225" ;;
+         "gta01" )
+-            DPI="285"
++            DPI="280"
+             if [ "$XSERVER" != "Xorg" ] ; then
+                 ARGS="$ARGS -screen 480x640"
++            else
++                ARGS="$ARGS -dpi ${DPI} -nocursor"
+             fi
+             ;;
+         "gta02")
+-            DPI="285"
++            DPI="280"
+             if [ "$XSERVER" != "Xorg" ] ; then
+                 ARGS="$ARGS -screen ${SCREEN_SIZE}"
++            else
++                ARGS="$ARGS -dpi ${DPI} -nocursor"
+             fi
+             ;;
+         "motorola_ezx_platform")
+-- 
+1.7.8.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0009-xserver-common-add-support-for-n900-alias-nokia_rx-5.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0009-xserver-common-add-support-for-n900-alias-nokia_rx-5.patch
new file mode 100644
index 0000000..1a0bde8
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0009-xserver-common-add-support-for-n900-alias-nokia_rx-5.patch
@@ -0,0 +1,32 @@
+From 6d6caecb7172b9b33e7364564b0e6eabf67b6e8b Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Wed, 11 Apr 2012 14:40:14 +0200
+Subject: [PATCH 09/12] xserver-common: add support for n900 alias
+ nokia_rx-51_board
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ X11/xserver-common |    7 +++++++
+ 1 files changed, 7 insertions(+), 0 deletions(-)
+
+diff --git a/X11/xserver-common b/X11/xserver-common
+index f76fa5f..86ed17f 100644
+--- a/X11/xserver-common
++++ b/X11/xserver-common
+@@ -132,6 +132,13 @@ else
+         "nokia_n800" | "nokia_rx-44" | "nokia_n770")
+             ARGS="$ARGS -screen ${SCREEN_SIZE}"
+             DPI="225" ;;
++        "nokia_rx-51_board" )                                     
++            DPI="267"                                    
++            if [ "$XSERVER" != "Xorg" ] ; then                    
++                ARGS="$ARGS -screen ${SCREEN_SIZE}"               
++            else                                                  
++                ARGS="$ARGS -dpi ${DPI} -nocursor"       
++            fi ;;                                                    
+         "gta01" )
+             DPI="280"
+             if [ "$XSERVER" != "Xorg" ] ; then
+-- 
+1.7.8.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0010-xserver-common-add-support-for-nexus-S-alias-herring.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0010-xserver-common-add-support-for-nexus-S-alias-herring.patch
new file mode 100644
index 0000000..688be40
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0010-xserver-common-add-support-for-nexus-S-alias-herring.patch
@@ -0,0 +1,27 @@
+From 52003e6b52b1417c1a0e57243d83349addcdacf6 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Wed, 11 Apr 2012 14:40:44 +0200
+Subject: [PATCH 10/12] xserver-common: add support for nexus S alias herring
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ X11/xserver-common |    3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+diff --git a/X11/xserver-common b/X11/xserver-common
+index 86ed17f..5c9a6eb 100644
+--- a/X11/xserver-common
++++ b/X11/xserver-common
+@@ -126,6 +126,9 @@ else
+         "htc_tornado")
+             ARGS="$ARGS -hide-cursor"
+             DPI="100" ;;
++        "herring")
++            DPI="235"
++            ARGS="$ARGS -dpi ${DPI} -nocursor";;
+         "generic_omap1510/1610/1710")
+             ARGS="$ARGS -screen ${SCREEN_SIZE}"
+             DPI="225" ;;
+-- 
+1.7.8.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0011-xserver-common-add-support-for-nexus-one-alias-mahim.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0011-xserver-common-add-support-for-nexus-one-alias-mahim.patch
new file mode 100644
index 0000000..f80456d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0011-xserver-common-add-support-for-nexus-one-alias-mahim.patch
@@ -0,0 +1,28 @@
+From 0ecc978b7d8cb6867646fb2a29523ebef3afa016 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Wed, 11 Apr 2012 14:41:06 +0200
+Subject: [PATCH 11/12] xserver-common: add support for nexus one alias
+ mahimahi
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ X11/xserver-common |    3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+diff --git a/X11/xserver-common b/X11/xserver-common
+index 5c9a6eb..55594fd 100644
+--- a/X11/xserver-common
++++ b/X11/xserver-common
+@@ -129,6 +129,9 @@ else
+         "herring")
+             DPI="235"
+             ARGS="$ARGS -dpi ${DPI} -nocursor";;
++        "mahimahi")
++            DPI="254"
++            ARGS="$ARGS -dpi ${DPI}";;
+         "generic_omap1510/1610/1710")
+             ARGS="$ARGS -screen ${SCREEN_SIZE}"
+             DPI="225" ;;
+-- 
+1.7.8.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0012-xserver-common-add-support-for-gta04-alias-OpenPhoen.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0012-xserver-common-add-support-for-gta04-alias-OpenPhoen.patch
new file mode 100644
index 0000000..54a0329
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0012-xserver-common-add-support-for-gta04-alias-OpenPhoen.patch
@@ -0,0 +1,33 @@
+From d194f0302582f1ca599f2ea58c15e15f4fd6bdef Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Wed, 11 Apr 2012 14:41:52 +0200
+Subject: [PATCH 12/12] xserver-common: add support for gta04 alias
+ OpenPhoenux
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ X11/xserver-common |    8 ++++++++
+ 1 files changed, 8 insertions(+), 0 deletions(-)
+
+diff --git a/X11/xserver-common b/X11/xserver-common
+index 55594fd..434333e 100644
+--- a/X11/xserver-common
++++ b/X11/xserver-common
+@@ -161,6 +161,14 @@ else
+                 ARGS="$ARGS -dpi ${DPI} -nocursor"
+             fi
+             ;;
++        "gta04")
++            DPI="280"
++            if [ "$XSERVER" != "Xorg" ] ; then
++                ARGS="$ARGS -screen ${SCREEN_SIZE}"
++            else
++                ARGS="$ARGS -dpi ${DPI} -nocursor"
++            fi
++            ;;
+         "motorola_ezx_platform")
+             ARGS="$ARGS -screen 240x320"
+             DPI="170" ;;
+-- 
+1.7.8.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0013-xserver-common-add-support-for-tuna-alias-Galaxy-Nex.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0013-xserver-common-add-support-for-tuna-alias-Galaxy-Nex.patch
new file mode 100644
index 0000000..49321eb
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0013-xserver-common-add-support-for-tuna-alias-Galaxy-Nex.patch
@@ -0,0 +1,33 @@
+From 176c3bd3d86c223fd44b0f15b62d38526bb3b0d2 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Fri, 17 Aug 2012 13:00:56 +0200
+Subject: [PATCH 13/13] xserver-common: add support for tuna alias Galaxy
+ Nexus
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ X11/xserver-common |    8 ++++++++
+ 1 files changed, 8 insertions(+), 0 deletions(-)
+
+diff --git a/X11/xserver-common b/X11/xserver-common
+index d9325dd..017e5ae 100644
+--- a/X11/xserver-common
++++ b/X11/xserver-common
+@@ -169,6 +169,14 @@ else
+                 ARGS="$ARGS -dpi ${DPI} -nocursor"
+             fi
+             ;;
++        "tuna")
++            DPI="316"
++            if [ "$XSERVER" != "Xorg" ] ; then
++                ARGS="$ARGS -screen ${SCREEN_SIZE}"
++            else
++                ARGS="$ARGS -dpi ${DPI} -nocursor"
++            fi
++            ;;
+         "motorola_ezx_platform")
+             ARGS="$ARGS -screen 240x320"
+             DPI="170" ;;
+-- 
+1.7.8.6
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0014-Xserver-Start-Xsession-like-x11-common-does.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0014-Xserver-Start-Xsession-like-x11-common-does.patch
new file mode 100644
index 0000000..5a75964
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0014-Xserver-Start-Xsession-like-x11-common-does.patch
@@ -0,0 +1,26 @@
+From 8171f89944969a081be1ac193b2a59016e39a345 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Tue, 29 Oct 2013 17:07:21 +0100
+Subject: [PATCH 14/14] Xserver: Start Xsession like x11-common does
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ X11/Xserver | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/X11/Xserver b/X11/Xserver
+index 559f059..4b88637 100755
+--- a/X11/Xserver
++++ b/X11/Xserver
+@@ -4,6 +4,6 @@
+ . /etc/X11/xserver-common
+ 
+ echo "tslib: $TSLIB_TSDEVICE"
+-echo "exec $XSERVER $ARGS -dpi $DPI $*"
+-exec $XSERVER $ARGS -dpi $DPI $*
++echo "exec xinit /etc/X11/Xsession -- $BINDIR/$XSERVER $ARGS -dpi $DPI $*"
+ 
++exec xinit /etc/X11/Xsession -- $BINDIR/$XSERVER $ARGS -dpi $DPI $*
+-- 
+1.8.4.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0015-xserver-common-disable-TCP-connections.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0015-xserver-common-disable-TCP-connections.patch
new file mode 100644
index 0000000..06df261
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0015-xserver-common-disable-TCP-connections.patch
@@ -0,0 +1,24 @@
+From: Javier Viguera <javier.viguera@digi.com>
+Date: Wed, 26 Nov 2014 09:24:44 +0100
+Subject: [PATCH] xserver-common: disable TCP connections
+
+Upstream-Status: Inappropriate [configuration]
+
+Signed-off-by: Javier Viguera <javier.viguera@digi.com>
+---
+ X11/xserver-common | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/X11/xserver-common b/X11/xserver-common
+index 017e5aee1ab0..4dc48c412741 100644
+--- a/X11/xserver-common
++++ b/X11/xserver-common
+@@ -44,7 +44,7 @@ SCREEN_SIZE=`fallback_screen_arg`
+ export USER=root
+ export XSERVER_DEFAULT_ORIENTATION=normal
+ 
+-ARGS="-br -pn $INPUT_EXTRA_ARGS"
++ARGS="-br -pn -nolisten tcp $INPUT_EXTRA_ARGS"
+ DPI="100"
+ MOUSE=""
+ KDRIVEARGS=""
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common_1.34.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common_1.34.bb
new file mode 100644
index 0000000..0315ed7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-common/xserver-common_1.34.bb
@@ -0,0 +1,45 @@
+SUMMARY = "Common X11 scripts and support files"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+PR = "r8"
+
+# we are using a gpe-style Makefile
+inherit gpe
+
+SRC_URI[md5sum] = "82f2f84cd96610e8f7b92c700cd31c14"
+SRC_URI[sha256sum] = "cd04c33418f776b1e13fcc7af3d6bd0c7cccd03fbabd7dbcd97f88166cc34210"
+
+SRC_URI_append = " \
+    file://0001-COPYING-add-GPLv2-license-file.patch \
+    file://0002-add-setdpi-Xinit.d-script.patch \
+    file://0003-add-89xdgautostart-Xsession.d-script.patch \
+    file://0005-add-XWindowManager-Xsession.d-script.patch \
+    file://0006-add-support-for-etc-X11-xserver-system.patch \
+    file://0007-use-own-functions-file-instead-etc-init.d-functions.patch \
+    file://0008-xserver-common-add-dpi-and-nocursor-params-for-gta01.patch \
+    file://0009-xserver-common-add-support-for-n900-alias-nokia_rx-5.patch \
+    file://0010-xserver-common-add-support-for-nexus-S-alias-herring.patch \
+    file://0011-xserver-common-add-support-for-nexus-one-alias-mahim.patch \
+    file://0012-xserver-common-add-support-for-gta04-alias-OpenPhoen.patch \
+    file://0013-xserver-common-add-support-for-tuna-alias-Galaxy-Nex.patch \
+    file://0014-Xserver-Start-Xsession-like-x11-common-does.patch \
+    file://0015-xserver-common-disable-TCP-connections.patch \
+"
+
+do_install_append() {
+    sed -i 's:^BINDIR=.*$:BINDIR=${bindir}:' ${D}/etc/X11/xserver-common
+    # Rename all Xsession files not ending with .sh
+    # Unfortunatelly when xinput-calibrator was moved to oe-core
+    # its Xsession file got name 30xinput_calibrate.sh and ls -X sorts it
+    # last, not respecting numbers for sorting them
+    for i in ${D}/${sysconfdir}/X11/Xsession.d/*; do
+        echo $i | grep '.sh$' || mv $i $i.sh
+    done
+}
+
+RDEPENDS_${PN} = "xmodmap xrandr xdpyinfo fbset xinput-calibrator"
+
+RCONFLICTS_${PN} = "xserver-kdrive-common x11-common"
+RREPLACES_${PN} = "xserver-kdrive-common x11-common"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-nodm-init/xserver-nodm-init-2.0/gplv2-license.patch b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-nodm-init/xserver-nodm-init-2.0/gplv2-license.patch
new file mode 100644
index 0000000..ec93253
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-nodm-init/xserver-nodm-init-2.0/gplv2-license.patch
@@ -0,0 +1,353 @@
+COPYING: add GPLv2 license file
+
+this is a local file recipe and the license file is missing.In order
+to pass the license checksum checking, the license file is needed. So
+this patch add the GPLv2 license file.
+
+Signed-off-by: Yu Ke <ke.yu@intel.com>
+
+diff --git a/COPYING b/COPYING
+new file mode 100644
+index 0000000..d511905
+--- /dev/null
++++ b/COPYING
+@@ -0,0 +1,339 @@
++		    GNU GENERAL PUBLIC LICENSE
++		       Version 2, June 1991
++
++ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
++ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
++ Everyone is permitted to copy and distribute verbatim copies
++ of this license document, but changing it is not allowed.
++
++			    Preamble
++
++  The licenses for most software are designed to take away your
++freedom to share and change it.  By contrast, the GNU General Public
++License is intended to guarantee your freedom to share and change free
++software--to make sure the software is free for all its users.  This
++General Public License applies to most of the Free Software
++Foundation's software and to any other program whose authors commit to
++using it.  (Some other Free Software Foundation software is covered by
++the GNU Lesser General Public License instead.)  You can apply it to
++your programs, too.
++
++  When we speak of free software, we are referring to freedom, not
++price.  Our General Public Licenses are designed to make sure that you
++have the freedom to distribute copies of free software (and charge for
++this service if you wish), that you receive source code or can get it
++if you want it, that you can change the software or use pieces of it
++in new free programs; and that you know you can do these things.
++
++  To protect your rights, we need to make restrictions that forbid
++anyone to deny you these rights or to ask you to surrender the rights.
++These restrictions translate to certain responsibilities for you if you
++distribute copies of the software, or if you modify it.
++
++  For example, if you distribute copies of such a program, whether
++gratis or for a fee, you must give the recipients all the rights that
++you have.  You must make sure that they, too, receive or can get the
++source code.  And you must show them these terms so they know their
++rights.
++
++  We protect your rights with two steps: (1) copyright the software, and
++(2) offer you this license which gives you legal permission to copy,
++distribute and/or modify the software.
++
++  Also, for each author's protection and ours, we want to make certain
++that everyone understands that there is no warranty for this free
++software.  If the software is modified by someone else and passed on, we
++want its recipients to know that what they have is not the original, so
++that any problems introduced by others will not reflect on the original
++authors' reputations.
++
++  Finally, any free program is threatened constantly by software
++patents.  We wish to avoid the danger that redistributors of a free
++program will individually obtain patent licenses, in effect making the
++program proprietary.  To prevent this, we have made it clear that any
++patent must be licensed for everyone's free use or not licensed at all.
++
++  The precise terms and conditions for copying, distribution and
++modification follow.
++
++		    GNU GENERAL PUBLIC LICENSE
++   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
++
++  0. This License applies to any program or other work which contains
++a notice placed by the copyright holder saying it may be distributed
++under the terms of this General Public License.  The "Program", below,
++refers to any such program or work, and a "work based on the Program"
++means either the Program or any derivative work under copyright law:
++that is to say, a work containing the Program or a portion of it,
++either verbatim or with modifications and/or translated into another
++language.  (Hereinafter, translation is included without limitation in
++the term "modification".)  Each licensee is addressed as "you".
++
++Activities other than copying, distribution and modification are not
++covered by this License; they are outside its scope.  The act of
++running the Program is not restricted, and the output from the Program
++is covered only if its contents constitute a work based on the
++Program (independent of having been made by running the Program).
++Whether that is true depends on what the Program does.
++
++  1. You may copy and distribute verbatim copies of the Program's
++source code as you receive it, in any medium, provided that you
++conspicuously and appropriately publish on each copy an appropriate
++copyright notice and disclaimer of warranty; keep intact all the
++notices that refer to this License and to the absence of any warranty;
++and give any other recipients of the Program a copy of this License
++along with the Program.
++
++You may charge a fee for the physical act of transferring a copy, and
++you may at your option offer warranty protection in exchange for a fee.
++
++  2. You may modify your copy or copies of the Program or any portion
++of it, thus forming a work based on the Program, and copy and
++distribute such modifications or work under the terms of Section 1
++above, provided that you also meet all of these conditions:
++
++    a) You must cause the modified files to carry prominent notices
++    stating that you changed the files and the date of any change.
++
++    b) You must cause any work that you distribute or publish, that in
++    whole or in part contains or is derived from the Program or any
++    part thereof, to be licensed as a whole at no charge to all third
++    parties under the terms of this License.
++
++    c) If the modified program normally reads commands interactively
++    when run, you must cause it, when started running for such
++    interactive use in the most ordinary way, to print or display an
++    announcement including an appropriate copyright notice and a
++    notice that there is no warranty (or else, saying that you provide
++    a warranty) and that users may redistribute the program under
++    these conditions, and telling the user how to view a copy of this
++    License.  (Exception: if the Program itself is interactive but
++    does not normally print such an announcement, your work based on
++    the Program is not required to print an announcement.)
++
++These requirements apply to the modified work as a whole.  If
++identifiable sections of that work are not derived from the Program,
++and can be reasonably considered independent and separate works in
++themselves, then this License, and its terms, do not apply to those
++sections when you distribute them as separate works.  But when you
++distribute the same sections as part of a whole which is a work based
++on the Program, the distribution of the whole must be on the terms of
++this License, whose permissions for other licensees extend to the
++entire whole, and thus to each and every part regardless of who wrote it.
++
++Thus, it is not the intent of this section to claim rights or contest
++your rights to work written entirely by you; rather, the intent is to
++exercise the right to control the distribution of derivative or
++collective works based on the Program.
++
++In addition, mere aggregation of another work not based on the Program
++with the Program (or with a work based on the Program) on a volume of
++a storage or distribution medium does not bring the other work under
++the scope of this License.
++
++  3. You may copy and distribute the Program (or a work based on it,
++under Section 2) in object code or executable form under the terms of
++Sections 1 and 2 above provided that you also do one of the following:
++
++    a) Accompany it with the complete corresponding machine-readable
++    source code, which must be distributed under the terms of Sections
++    1 and 2 above on a medium customarily used for software interchange; or,
++
++    b) Accompany it with a written offer, valid for at least three
++    years, to give any third party, for a charge no more than your
++    cost of physically performing source distribution, a complete
++    machine-readable copy of the corresponding source code, to be
++    distributed under the terms of Sections 1 and 2 above on a medium
++    customarily used for software interchange; or,
++
++    c) Accompany it with the information you received as to the offer
++    to distribute corresponding source code.  (This alternative is
++    allowed only for noncommercial distribution and only if you
++    received the program in object code or executable form with such
++    an offer, in accord with Subsection b above.)
++
++The source code for a work means the preferred form of the work for
++making modifications to it.  For an executable work, complete source
++code means all the source code for all modules it contains, plus any
++associated interface definition files, plus the scripts used to
++control compilation and installation of the executable.  However, as a
++special exception, the source code distributed need not include
++anything that is normally distributed (in either source or binary
++form) with the major components (compiler, kernel, and so on) of the
++operating system on which the executable runs, unless that component
++itself accompanies the executable.
++
++If distribution of executable or object code is made by offering
++access to copy from a designated place, then offering equivalent
++access to copy the source code from the same place counts as
++distribution of the source code, even though third parties are not
++compelled to copy the source along with the object code.
++
++  4. You may not copy, modify, sublicense, or distribute the Program
++except as expressly provided under this License.  Any attempt
++otherwise to copy, modify, sublicense or distribute the Program is
++void, and will automatically terminate your rights under this License.
++However, parties who have received copies, or rights, from you under
++this License will not have their licenses terminated so long as such
++parties remain in full compliance.
++
++  5. You are not required to accept this License, since you have not
++signed it.  However, nothing else grants you permission to modify or
++distribute the Program or its derivative works.  These actions are
++prohibited by law if you do not accept this License.  Therefore, by
++modifying or distributing the Program (or any work based on the
++Program), you indicate your acceptance of this License to do so, and
++all its terms and conditions for copying, distributing or modifying
++the Program or works based on it.
++
++  6. Each time you redistribute the Program (or any work based on the
++Program), the recipient automatically receives a license from the
++original licensor to copy, distribute or modify the Program subject to
++these terms and conditions.  You may not impose any further
++restrictions on the recipients' exercise of the rights granted herein.
++You are not responsible for enforcing compliance by third parties to
++this License.
++
++  7. If, as a consequence of a court judgment or allegation of patent
++infringement or for any other reason (not limited to patent issues),
++conditions are imposed on you (whether by court order, agreement or
++otherwise) that contradict the conditions of this License, they do not
++excuse you from the conditions of this License.  If you cannot
++distribute so as to satisfy simultaneously your obligations under this
++License and any other pertinent obligations, then as a consequence you
++may not distribute the Program at all.  For example, if a patent
++license would not permit royalty-free redistribution of the Program by
++all those who receive copies directly or indirectly through you, then
++the only way you could satisfy both it and this License would be to
++refrain entirely from distribution of the Program.
++
++If any portion of this section is held invalid or unenforceable under
++any particular circumstance, the balance of the section is intended to
++apply and the section as a whole is intended to apply in other
++circumstances.
++
++It is not the purpose of this section to induce you to infringe any
++patents or other property right claims or to contest validity of any
++such claims; this section has the sole purpose of protecting the
++integrity of the free software distribution system, which is
++implemented by public license practices.  Many people have made
++generous contributions to the wide range of software distributed
++through that system in reliance on consistent application of that
++system; it is up to the author/donor to decide if he or she is willing
++to distribute software through any other system and a licensee cannot
++impose that choice.
++
++This section is intended to make thoroughly clear what is believed to
++be a consequence of the rest of this License.
++
++  8. If the distribution and/or use of the Program is restricted in
++certain countries either by patents or by copyrighted interfaces, the
++original copyright holder who places the Program under this License
++may add an explicit geographical distribution limitation excluding
++those countries, so that distribution is permitted only in or among
++countries not thus excluded.  In such case, this License incorporates
++the limitation as if written in the body of this License.
++
++  9. The Free Software Foundation may publish revised and/or new versions
++of the General Public License from time to time.  Such new versions will
++be similar in spirit to the present version, but may differ in detail to
++address new problems or concerns.
++
++Each version is given a distinguishing version number.  If the Program
++specifies a version number of this License which applies to it and "any
++later version", you have the option of following the terms and conditions
++either of that version or of any later version published by the Free
++Software Foundation.  If the Program does not specify a version number of
++this License, you may choose any version ever published by the Free Software
++Foundation.
++
++  10. If you wish to incorporate parts of the Program into other free
++programs whose distribution conditions are different, write to the author
++to ask for permission.  For software which is copyrighted by the Free
++Software Foundation, write to the Free Software Foundation; we sometimes
++make exceptions for this.  Our decision will be guided by the two goals
++of preserving the free status of all derivatives of our free software and
++of promoting the sharing and reuse of software generally.
++
++			    NO WARRANTY
++
++  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
++FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
++OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
++PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
++OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
++MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
++TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
++PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
++REPAIR OR CORRECTION.
++
++  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
++WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
++REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
++INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
++OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
++TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
++YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
++PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
++POSSIBILITY OF SUCH DAMAGES.
++
++		     END OF TERMS AND CONDITIONS
++
++	    How to Apply These Terms to Your New Programs
++
++  If you develop a new program, and you want it to be of the greatest
++possible use to the public, the best way to achieve this is to make it
++free software which everyone can redistribute and change under these terms.
++
++  To do so, attach the following notices to the program.  It is safest
++to attach them to the start of each source file to most effectively
++convey the exclusion of warranty; and each file should have at least
++the "copyright" line and a pointer to where the full notice is found.
++
++    <one line to give the program's name and a brief idea of what it does.>
++    Copyright (C) <year>  <name of author>
++
++    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, Inc.,
++    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
++
++Also add information on how to contact you by electronic and paper mail.
++
++If the program is interactive, make it output a short notice like this
++when it starts in an interactive mode:
++
++    Gnomovision version 69, Copyright (C) year name of author
++    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
++    This is free software, and you are welcome to redistribute it
++    under certain conditions; type `show c' for details.
++
++The hypothetical commands `show w' and `show c' should show the appropriate
++parts of the General Public License.  Of course, the commands you use may
++be called something other than `show w' and `show c'; they could even be
++mouse-clicks or menu items--whatever suits your program.
++
++You should also get your employer (if you work as a programmer) or your
++school, if any, to sign a "copyright disclaimer" for the program, if
++necessary.  Here is a sample; alter the names:
++
++  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
++  `Gnomovision' (which makes passes at compilers) written by James Hacker.
++
++  <signature of Ty Coon>, 1 April 1989
++  Ty Coon, President of Vice
++
++This General Public License does not permit incorporating your program into
++proprietary programs.  If your program is a subroutine library, you may
++consider it more useful to permit linking proprietary applications with the
++library.  If this is what you want to do, use the GNU Lesser General
++Public License instead of this License.
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-nodm-init/xserver-nodm-init-2.0/xserver-nodm b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-nodm-init/xserver-nodm-init-2.0/xserver-nodm
new file mode 100755
index 0000000..5d7e8a2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-nodm-init/xserver-nodm-init-2.0/xserver-nodm
@@ -0,0 +1,60 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: xserver
+# Required-Start: $local_fs $remote_fs dbus
+# Required-Stop: $local_fs $remote_fs
+# Default-Start:     5
+# Default-Stop:      0 1 2 3 6
+### END INIT INFO
+
+
+. /etc/init.d/functions
+
+for x in $(cat /proc/cmdline); do
+        case $x in
+        x11=false)
+		echo "X Server disabled" 
+		exit 0;
+                ;;
+        esac
+done
+
+case "$1" in
+  start)
+    # We don't want this script to block the rest of the boot process
+    if [ "$2" != "background" ]; then
+      $0 $1 background &
+    else
+       # work around from /etc/X11/Xinit
+       export USER=root
+       export HOME=/home/root
+       if [ ! -d $HOME ] && [ -d /root ]; then
+         HOME=/root
+       fi
+
+       . /etc/profile
+
+       echo "Starting Xserver"
+       . /etc/X11/xserver-common
+       xinit /etc/X11/Xsession -- `which $XSERVER` $ARGS >/var/log/Xsession.log 2>&1
+    fi 
+  ;;
+
+  stop)
+        echo "Stopping XServer"
+        killproc xinit
+  ;;
+
+  restart)
+	$0 stop
+        sleep 1
+        $0 start
+  ;;
+
+  *)
+        echo "usage: $0 { start | stop | restart }"
+  ;;
+esac
+
+exit 0
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-nodm-init/xserver-nodm-init-2.0/xserver-nodm.conf b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-nodm-init/xserver-nodm-init-2.0/xserver-nodm.conf
new file mode 100644
index 0000000..3c0582a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-nodm-init/xserver-nodm-init-2.0/xserver-nodm.conf
@@ -0,0 +1 @@
+HOME=/home/root
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-nodm-init/xserver-nodm-init-2.0/xserver-nodm.service b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-nodm-init/xserver-nodm-init-2.0/xserver-nodm.service
new file mode 100644
index 0000000..94d221e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-nodm-init/xserver-nodm-init-2.0/xserver-nodm.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Xserver startup with a display manager
+
+[Service]
+EnvironmentFile=/etc/default/xserver-nodm
+ExecStart=/etc/X11/Xserver
+
+[Install]
+Alias=display-manager.service
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-nodm-init/xserver-nodm-init_2.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-nodm-init/xserver-nodm-init_2.0.bb
new file mode 100644
index 0000000..95a07d1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-graphics/xserver-nodm-init/xserver-nodm-init_2.0.bb
@@ -0,0 +1,41 @@
+SUMMARY = "Simple Xserver Init Script (no dm)"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+SECTION = "x11"
+
+PR = "r22"
+
+SRC_URI = "file://xserver-nodm \
+           file://gplv2-license.patch \
+           file://xserver-nodm.service \
+           file://xserver-nodm.conf \
+"
+S = "${WORKDIR}"
+
+inherit update-rc.d systemd
+
+INITSCRIPT_NAME = "xserver-nodm"
+INITSCRIPT_PARAMS = "start 01 5 . stop 01 0 1 2 3 6 ."
+INITSCRIPT_PARAMS_shr = "start 90 5 . stop 90 0 1 2 3 6 ."
+
+do_install() {
+    install -d ${D}${sysconfdir}/init.d
+    install xserver-nodm ${D}${sysconfdir}/init.d
+
+    install -d ${D}${sysconfdir}/default
+
+    if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+        install -d ${D}${systemd_unitdir}/system
+        install xserver-nodm.conf ${D}${sysconfdir}/default/xserver-nodm
+        install -m 0644 ${WORKDIR}/xserver-nodm.service ${D}${systemd_unitdir}/system
+    fi
+}
+
+RDEPENDS_${PN} = "xserver-common (>= 1.30) xinit"
+
+RPROVIDES_${PN} += "${PN}-systemd"
+RREPLACES_${PN} += "${PN}-systemd"
+RCONFLICTS_${PN} += "${PN}-systemd"
+SYSTEMD_SERVICE_${PN} = "xserver-nodm.service"
+
+FILES_${PN} += "${sysconfdir}/default/xserver-nodm"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/0001-cross_add_configure_option.patch b/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/0001-cross_add_configure_option.patch
new file mode 100644
index 0000000..229647f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/0001-cross_add_configure_option.patch
@@ -0,0 +1,34 @@
+From cbaaa42933bb27b1bcff4c7d71d54c913201ee88 Mon Sep 17 00:00:00 2001
+From: Lei Maohui <leimaohui@cn.fujitsu.com>
+Date: Fri, 9 Jan 2015 11:51:18 +0900
+Subject: [PATCH] cross_add_configure_option
+
+---
+ Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 9c44633..39bebd0 100644
+--- a/Makefile
++++ b/Makefile
+@@ -229,7 +229,7 @@ gdb_merge: force
+ 	@echo "../../${PROGRAM} ../../${PROGRAM}lib.a" > ${GDB}/gdb/mergeobj
+ 	@rm -f ${PROGRAM}
+ 	@if [ ! -f ${GDB}/config.status ]; then \
+-	  (cd ${GDB}; ./configure ${GDB_CONF_FLAGS} --with-separate-debug-dir=/usr/lib/debug \
++	  (cd ${GDB}; ./configure --host=${GDB_TARGET} --build=${GDB_HOST} --with-separate-debug-dir=/usr/lib/debug \
+ 	    --with-bugurl="" --with-expat=no --with-python=no; \
+ 	  make --no-print-directory CRASH_TARGET=${TARGET}; echo ${TARGET} > crash.target) \
+ 	else make --no-print-directory rebuild; fi
+@@ -277,7 +277,7 @@ force:
+ 
+ make_configure: force
+ 	@rm -f configure
+-	@${CC} ${CONF_FLAGS} -o configure configure.c ${WARNING_ERROR} ${WARNING_OPTIONS}
++	@cc ${CONF_FLAGS} -o configure configure.c ${WARNING_ERROR} ${WARNING_OPTIONS}
+ 
+ clean: make_configure
+ 	@./configure ${CONF_TARGET_FLAG} -q -b
+-- 
+1.8.4.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/7001force_define_architecture.patch b/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/7001force_define_architecture.patch
new file mode 100644
index 0000000..0d44c7f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/7001force_define_architecture.patch
@@ -0,0 +1,13 @@
+diff -uprN crash-5.1.8.org/configure.c crash-5.1.8/configure.c
+--- crash-5.1.8.org/configure.c	2011-09-17 04:01:12.000000000 +0900
++++ crash-5.1.8/configure.c	2012-09-13 13:28:45.393344108 +0900
+@@ -391,6 +391,9 @@ get_current_configuration(struct support
+ 			arch_mismatch(sp);
+ 	}
+ 
++	/** Force define archtecture */
++	target_data.target = FORCE_DEFINE_ARCH;
++
+         if ((fp = fopen("Makefile", "r")) == NULL) {
+ 		perror("Makefile");
+ 		goto get_release;
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/7003cross_ranlib.patch b/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/7003cross_ranlib.patch
new file mode 100644
index 0000000..d567fa0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/7003cross_ranlib.patch
@@ -0,0 +1,10 @@
+--- crash-5.1.8/Makefile.orig	2011-12-27 11:21:58.220652105 +0900
++++ crash-5.1.8/Makefile	2011-12-27 11:22:29.563651593 +0900
+@@ -285,6 +285,7 @@
+ 
+ library: make_build_data ${OBJECT_FILES}
+ 	ar -rs ${PROGRAM}lib.a ${OBJECT_FILES}
++	${RANLIB} ${PROGRAM}lib.a 
+ 
+ gdb: force
+ 	rm -f ${GDB_OFILES}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/config-site.crash-7.0.9 b/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/config-site.crash-7.0.9
new file mode 100644
index 0000000..d6fc22f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/config-site.crash-7.0.9
@@ -0,0 +1 @@
+bash_cv_have_mbstate_t=yes
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/donnot-extract-gdb-during-do-compile.patch b/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/donnot-extract-gdb-during-do-compile.patch
new file mode 100644
index 0000000..e254fe8
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/donnot-extract-gdb-during-do-compile.patch
@@ -0,0 +1,32 @@
+Put gdb source tarball in SRC_URI and don't fetch and extract it during
+do_compile.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+diff --git a/Makefile b/Makefile
+index bb0a34e..5eb7604 100644
+--- a/Makefile
++++ b/Makefile
+@@ -226,7 +226,7 @@ all: make_configure
+ #	@make --no-print-directory extensions
+ 
+ gdb_merge: force
+-	@if [ ! -f ${GDB}/README ]; then \
++	@if [ ! -f ${GDB}/${GDB}.patch ]; then \
+ 	  make --no-print-directory gdb_unzip; fi
+ 	@echo "${LDFLAGS} -lz -ldl -rdynamic" > ${GDB}/gdb/mergelibs
+ 	@echo "../../${PROGRAM} ../../${PROGRAM}lib.a" > ${GDB}/gdb/mergeobj
+@@ -253,11 +253,6 @@ gdb_unzip:
+ 	@rm -f gdb.files
+ 	@for FILE in ${GDB_FILES} dummy; do\
+ 	  echo $$FILE >> gdb.files; done
+-	@if [ ! -f ${GDB}.tar.gz ] && [ ! -f /usr/bin/wget ]; then \
+-	  echo /usr/bin/wget is required to download ${GDB}.tar.gz; echo; exit 1; fi
+-	@if [ ! -f ${GDB}.tar.gz ] && [ -f /usr/bin/wget ]; then \
+-	  wget http://ftp.gnu.org/gnu/gdb/${GDB}.tar.gz; fi
+-	@tar --exclude-from gdb.files -xvzmf ${GDB}.tar.gz
+ 	@make --no-print-directory gdb_patch
+ 
+ gdb_patch:
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/gdb_build_jobs_and_not_write_crash_target.patch b/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/gdb_build_jobs_and_not_write_crash_target.patch
new file mode 100644
index 0000000..3f4d1bc
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/gdb_build_jobs_and_not_write_crash_target.patch
@@ -0,0 +1,26 @@
+This enables parallel building (multiple jobs in gdb) by reading the
+value from GDB_MAKE_JOBS.
+
+Signed-off-by: Amy Fong <amy.fong@windriver.com>
+
+Upstream-Status: Pending
+
+Don't write ${TARGET} to crash.target which causes rebuild fails.
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+--
+diff --git a/Makefile b/Makefile
+index 27a1d47..bcf2d2f 100644
+--- a/Makefile
++++ b/Makefile
+@@ -232,8 +232,8 @@ gdb_merge: force
+ 	@if [ ! -f ${GDB}/config.status ]; then \
+ 	  (cd ${GDB}; ./configure --host=${GDB_TARGET} --build=${GDB_HOST} --with-separate-debug-dir=/usr/lib/debug \
+ 	    --with-bugurl="" --with-expat=no --with-python=no; \
+-	  make --no-print-directory CRASH_TARGET=${TARGET}; echo ${TARGET} > crash.target) \
+-	else make --no-print-directory rebuild; fi
++	  make --no-print-directory CRASH_TARGET=${TARGET} ${GDB_MAKE_JOBS}; ) \
++	else make --no-print-directory ${GDB_MAKE_JOBS} rebuild; fi
+ 	@if [ ! -f ${PROGRAM} ]; then \
+ 	  echo; echo "${PROGRAM} build failed"; \
+ 	  echo; exit 1; fi
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/remove-unrecognized-gcc-option-m32-for-mips.patch b/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/remove-unrecognized-gcc-option-m32-for-mips.patch
new file mode 100644
index 0000000..c24db10
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/remove-unrecognized-gcc-option-m32-for-mips.patch
@@ -0,0 +1,33 @@
+Upstream-Status: Pending
+
+It fails to build crash for mips with error:
+
+| mips-wrs-linux-gcc: error: unrecognized command line option '-m32'
+| Makefile:291: recipe for target 'make_build_data' failed
+
+So remove the unrecognized option '-m32' for mips.
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+diff --git a/configure.c b/configure.c
+index cf1973b..71e97b3 100644
+--- a/configure.c
++++ b/configure.c
+@@ -148,7 +148,7 @@ void add_extra_lib(char *);
+ #define TARGET_CFLAGS_PPC64_ON_X86_64  "TARGET_CFLAGS="
+ #define TARGET_CFLAGS_MIPS            "TARGET_CFLAGS=-D_FILE_OFFSET_BITS=64"
+ #define TARGET_CFLAGS_MIPS_ON_X86     "TARGET_CFLAGS=-D_FILE_OFFSET_BITS=64"
+-#define TARGET_CFLAGS_MIPS_ON_X86_64  "TARGET_CFLAGS=-m32 -D_FILE_OFFSET_BITS=64"
++#define TARGET_CFLAGS_MIPS_ON_X86_64  "TARGET_CFLAGS=-D_FILE_OFFSET_BITS=64"
+ 
+ #define GDB_TARGET_DEFAULT        "GDB_CONF_FLAGS="
+ #define GDB_TARGET_ARM_ON_X86     "GDB_CONF_FLAGS=--target=arm-elf-linux"
+@@ -158,7 +158,7 @@ void add_extra_lib(char *);
+ #define GDB_TARGET_ARM64_ON_X86_64  "GDB_CONF_FLAGS=--target=aarch64-elf-linux"   /* TBD */
+ #define GDB_TARGET_PPC64_ON_X86_64  "GDB_CONF_FLAGS=--target=powerpc64le-unknown-linux-gnu"
+ #define GDB_TARGET_MIPS_ON_X86     "GDB_CONF_FLAGS=--target=mipsel-elf-linux"
+-#define GDB_TARGET_MIPS_ON_X86_64  "GDB_CONF_FLAGS=--target=mipsel-elf-linux CFLAGS=-m32"
++#define GDB_TARGET_MIPS_ON_X86_64  "GDB_CONF_FLAGS=--target=mipsel-elf-linux"
+      
+ /*
+  *  The original plan was to allow the use of a particular version
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/sim-common-sim-arange-fix-extern-inline-handling.patch b/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/sim-common-sim-arange-fix-extern-inline-handling.patch
new file mode 100644
index 0000000..0185b57
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/sim-common-sim-arange-fix-extern-inline-handling.patch
@@ -0,0 +1,79 @@
+Upstream-Status: Backport
+
+https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=92fc615
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+--
+From 92fc6153a6fdf2a027d9780f5945712aafad4a9e Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Sun, 29 Mar 2015 15:59:01 -0400
+Subject: [PATCH] sim: common: sim-arange: fix extern inline handling
+
+With newer versions of gcc (5.x), the extern inline we're using with the
+sim-arange module no longer works.  Since this code really wants the gnu
+inline semantics, use that attribute explicitly.
+
+Reported-by: DJ Delorie <dj@redhat.com>
+Reported-by: Joel Sherrill <joel.sherrill@oarcorp.com>
+---
+ gdb-7.6/sim/common/sim-arange.h | 20 ++++++++++++--------
+ gdb-7.6/sim/common/sim-inline.h |  4 +++-
+ 2 files changed, 15 insertions(+), 9 deletions(-)
+
+diff --git a/gdb-7.6/sim/common/sim-arange.h b/gdb-7.6/sim/common/sim-arange.h
+index 73117f3..de842c9 100644
+--- a/gdb-7.6/sim/common/sim-arange.h
++++ b/gdb-7.6/sim/common/sim-arange.h
+@@ -60,22 +60,26 @@ extern void sim_addr_range_delete (ADDR_RANGE * /*ar*/,
+ 				   address_word /*start*/,
+ 				   address_word /*end*/);
+ 
++/* TODO: This should get moved into sim-inline.h.  */
++#ifdef HAVE_INLINE
++#ifdef SIM_ARANGE_C
++#define SIM_ARANGE_INLINE INLINE
++#else
++#define SIM_ARANGE_INLINE EXTERN_INLINE
++#endif
++#else
++#define SIM_ARANGE_INLINE EXTERN
++#endif
++
+ /* Return non-zero if ADDR is in range AR, traversing the entire tree.
+    If no range is specified, that is defined to mean "everything".  */
+-extern INLINE int
++SIM_ARANGE_INLINE int
+ sim_addr_range_hit_p (ADDR_RANGE * /*ar*/, address_word /*addr*/);
+ #define ADDR_RANGE_HIT_P(ar, addr) \
+   ((ar)->range_tree == NULL || sim_addr_range_hit_p ((ar), (addr)))
+ 
+ #ifdef HAVE_INLINE
+-#ifdef SIM_ARANGE_C
+-#define SIM_ARANGE_INLINE INLINE
+-#else
+-#define SIM_ARANGE_INLINE EXTERN_INLINE
+-#endif
+ #include "sim-arange.c"
+-#else
+-#define SIM_ARANGE_INLINE
+ #endif
+ #define SIM_ARANGE_C_INCLUDED
+ 
+diff --git a/gdb-7.6/sim/common/sim-inline.h b/gdb-7.6/sim/common/sim-inline.h
+index af75562..8a9c286 100644
+--- a/gdb-7.6/sim/common/sim-inline.h
++++ b/gdb-7.6/sim/common/sim-inline.h
+@@ -303,7 +303,9 @@
+ /* ??? Temporary, pending decision to always use extern inline and do a vast
+    cleanup of inline support.  */
+ #ifndef INLINE2
+-#if defined (__GNUC__)
++#if defined (__GNUC_GNU_INLINE__) || defined (__GNUC_STDC_INLINE__)
++#define INLINE2 __inline__ __attribute__ ((__gnu_inline__))
++#elif defined (__GNUC__)
+ #define INLINE2 __inline__
+ #else
+ #define INLINE2 /*inline*/
+-- 
+2.6.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/sim-ppc-drop-LIBS-from-psim-dependency.patch b/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/sim-ppc-drop-LIBS-from-psim-dependency.patch
new file mode 100644
index 0000000..77a287f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash/sim-ppc-drop-LIBS-from-psim-dependency.patch
@@ -0,0 +1,37 @@
+Upstream-Status: Backport
+
+https://sourceware.org/git/?p=binutils-gdb.git;h=0d8a6ab
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+From 0d8a6ab7d39d28fb1557e2a62e9e4b336341ab34 Mon Sep 17 00:00:00 2001
+From: Aaro Koskinen <aaro.koskinen@iki.fi>
+Date: Mon, 17 Feb 2014 17:12:59 -0500
+Subject: [PATCH] sim: ppc: drop $(LIBS) from psim dependency
+
+When cross-compiling GDB for PPC, there's a prerequisite "-lz" for psim
+that results in a build failure. With such prerequisite, GNU Make will
+try to search the library from build machine's /usr/lib which is wrong.
+On 64-bit Linux build machines the compilation will fail because of this.
+
+URL: https://sourceware.org/bugzilla/show_bug.cgi?id=12202
+---
+ sim/ppc/Makefile.in | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/gdb-7.6/sim/ppc/Makefile.in b/gdb-7.6/sim/ppc/Makefile.in
+index b811f6f..740bdb0 100644
+--- a/gdb-7.6/sim/ppc/Makefile.in
++++ b/gdb-7.6/sim/ppc/Makefile.in
+@@ -552,7 +552,7 @@ PACKAGE_SRC = @sim_pk_src@
+ PACKAGE_OBJ = @sim_pk_obj@
+ 
+ 
+-psim: $(TARGETLIB) main.o $(LIBIBERTY_LIB) $(BFD_LIB) $(LIBS) $(LIBINTL_DEP)
++psim: $(TARGETLIB) main.o $(LIBIBERTY_LIB) $(BFD_LIB) $(LIBINTL_DEP)
+ 	$(CC) $(CFLAGS) $(SIM_CFLAGS) $(LDFLAGS) -o psim$(EXEEXT) main.o $(TARGETLIB) $(BFD_LIB) $(LIBINTL) $(LIBIBERTY_LIB) $(LIBS)
+ 
+ run: psim
+-- 
+1.9.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.1.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.1.3.bb
new file mode 100644
index 0000000..b787f02
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.1.3.bb
@@ -0,0 +1,112 @@
+SUMMARY = "Kernel analysis utility for live systems, netdump, diskdump, kdump, LKCD or mcore dumpfiles"
+DESCRIPTION = "The core analysis suite is a self-contained tool that can be used to\
+investigate either live systems, kernel core dumps created from the\
+netdump, diskdump and kdump packages from Red Hat Linux, the mcore kernel patch\
+offered by Mission Critical Linux, or the LKCD kernel patch."
+
+HOMEPAGE = "http://people.redhat.com/anderson"
+SECTION = "devel"
+
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING3;md5=d32239bcb673463ab874e80d47fae504"
+
+DEPENDS = "zlib readline"
+
+SRC_URI = "https://github.com/crash-utility/${BPN}/archive/${PV}.tar.gz;downloadfilename=${BP}.tar.gz \
+           http://ftp.gnu.org/gnu/gdb/gdb-7.6.tar.gz;name=gdb;subdir=${BP} \
+           file://7001force_define_architecture.patch \ 
+           file://7003cross_ranlib.patch \
+           file://0001-cross_add_configure_option.patch \
+           file://sim-ppc-drop-LIBS-from-psim-dependency.patch \
+           file://sim-common-sim-arange-fix-extern-inline-handling.patch \
+           file://donnot-extract-gdb-during-do-compile.patch \
+           file://gdb_build_jobs_and_not_write_crash_target.patch \
+           file://remove-unrecognized-gcc-option-m32-for-mips.patch \
+           "
+
+SRC_URI[md5sum] = "155889a233c5230ef1d387858091d294"
+SRC_URI[sha256sum] = "ae98529d42b843f07d795b86b8f8529f64cc607ee3c58affc5a8aa8a506e183d"
+
+SRC_URI[gdb.md5sum] = "a9836707337e5f7bf76a009a8904f470"
+SRC_URI[gdb.sha256sum] = "8070389a5dcc104eb0be483d582729f98ed4d761ad19cedd3f17b5d2502faa36"
+
+inherit gettext
+
+BBCLASSEXTEND = "native cross"
+
+# crash 7.1.3 and before don't support mips64
+COMPATIBLE_HOST = "^(?!mips64).*"
+
+EXTRA_OEMAKE = 'RPMPKG="${PV}" \
+                GDB_TARGET="${TARGET_SYS}" \
+                GDB_HOST="${BUILD_SYS}" \
+                GDB_MAKE_JOBS="${PARALLEL_MAKE}" \
+                '
+
+EXTRA_OEMAKE_class-cross = 'RPMPKG="${PV}" \
+                            GDB_TARGET="${BUILD_SYS} \
+                                        \${GDB_CONF_FLAGS} \
+                                        --target=${TARGET_SYS}" \
+                            GDB_HOST="${BUILD_SYS}" \
+                            GDB_MAKE_JOBS="${PARALLEL_MAKE}" \
+                            '
+
+EXTRA_OEMAKE_append_class-native = " LDFLAGS='${BUILD_LDFLAGS}'"
+EXTRA_OEMAKE_append_class-cross = " LDFLAGS='${BUILD_LDFLAGS}'"
+
+REMOVE_M32 = "sed -i -e 's/#define TARGET_CFLAGS_ARM_ON_X86_64.*/#define TARGET_CFLAGS_ARM_ON_X86_64\t\"TARGET_CFLAGS=-D_FILE_OFFSET_BITS=64\"/g' ${S}/configure.c"
+
+REMOVE_M32_class-cross = ""
+
+do_configure() {
+    :
+}
+
+do_compile_prepend() {
+    case ${TARGET_ARCH} in
+        aarch64*)    ARCH=ARM64 ;;
+        arm*)        ARCH=ARM ;;
+        i*86*)       ARCH=X86 ;;
+        x86_64*)     ARCH=X86_64 ;;
+        powerpc64*)  ARCH=PPC64 ;;
+        powerpc*)    ARCH=PPC ;;
+        mips*)       ARCH=MIPS ;;
+    esac
+
+    sed -i s/FORCE_DEFINE_ARCH/"${ARCH}"/g ${S}/configure.c
+    ${REMOVE_M32}
+    sed -i 's/&gt;/>/g' ${S}/Makefile
+}
+
+do_compile() {
+    oe_runmake ${EXTRA_OEMAKE}
+}
+
+do_install_prepend () {
+    install -d ${D}${bindir}
+    install -d ${D}/${mandir}/man8
+    install -d ${D}${includedir}/crash
+
+    install -m 0644 ${S}/crash.8 ${D}/${mandir}/man8/
+    install -m 0644 ${S}/defs.h ${D}${includedir}/crash
+}
+
+do_install_class-target () {
+    oe_runmake DESTDIR=${D} install
+}
+
+do_install_class-native () {
+    oe_runmake DESTDIR=${D}${STAGING_DIR_NATIVE} install
+}
+
+do_install_class-cross () {
+    install -m 0755 ${S}/crash ${D}/${bindir}
+}
+
+RDEPENDS_${PN} += "liblzma"
+RDEPENDS_${PN}_class-native = ""
+RDEPENDS_${PN}_class-cross = ""
+
+# Causes gcc to get stuck and eat all available memory in qemuarm builds
+# jenkins  15161  100 12.5 10389596 10321284 ?   R    11:40  28:17 /home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/x86_64-linux/usr/libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/4.9.2/cc1 -quiet -I . -I . -I ./common -I ./config -I ./../include/opcode -I ./../opcodes/.. -I ./../readline/.. -I ../bfd -I ./../bfd -I ./../include -I ../libdecnumber -I ./../libdecnumber -I ./gnulib/import -I build-gnulib/import -isysroot /home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/qemuarm -MMD eval.d -MF .deps/eval.Tpo -MP -MT eval.o -D LOCALEDIR="/usr/local/share/locale" -D CRASH_MERGE -D HAVE_CONFIG_H -D TUI=1 eval.c -quiet -dumpbase eval.c -march=armv5te -mthumb -mthumb-interwork -mtls-dialect=gnu -auxbase-strip eval.o -g -O2 -Wall -Wpointer-arith -Wformat-nonliteral -Wno-pointer-sign -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wmissing-prototypes -Wdeclaration-after-statement -Wempty-body -feliminate-unused-debug-types -o -
+ARM_INSTRUCTION_SET = "arm"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/ktap/ktap-module_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-kernel/ktap/ktap-module_git.bb
new file mode 100644
index 0000000..cb91327
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/ktap/ktap-module_git.bb
@@ -0,0 +1,22 @@
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+require ktap.inc
+
+SUMMARY = "KTAP is a scripting dynamic tracing tool for Linux"
+
+inherit module
+
+# See https://github.com/ktap/ktap/issues/80
+PNBLACKLIST[ktap-module] ?= "Not compatible with 3.19 kernel"
+
+# Only build the module
+MAKE_TARGETS = "mod"
+
+# Kernel module packages MUST begin with 'kernel-module-', otherwise
+# multilib image generation can fail.
+#
+# The following line is only necessary if the recipe name does not begin
+# with kernel-module-.
+#
+PKG_${PN} = "kernel-module-${PN}"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/ktap/ktap.inc b/import-layers/meta-openembedded/meta-oe/recipes-kernel/ktap/ktap.inc
new file mode 100644
index 0000000..c214a02
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/ktap/ktap.inc
@@ -0,0 +1,26 @@
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+HOMEPAGE = "http://www.ktap.org"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://LICENSE-GPL;md5=eb723b61539feef013de476e68b5c50a"
+
+PV = "0.4+gitr${SRCPV}"
+SRCREV = "c8401e07c89cdec9a5f673da4ddb12b7982b522b"
+SRC_URI = "git://github.com/ktap/ktap.git"
+
+S = "${WORKDIR}/git"
+
+# Package config is abused as a general compile time configuration tool.
+
+# Only supports x86_64 for now!. Needs to be enabled for ktap-module too.
+PACKAGECONFIG[ffi] = ""
+
+# Needed to resolve symbols in DSO and for sdt
+PACKAGECONFIG[libelf] = ",,elfutils"
+
+PACKAGECONFIG ?= "libelf"
+
+EXTRA_OEMAKE = " \
+    ${@bb.utils.contains('PACKAGECONFIG', 'libelf', '', 'NO_LIBELF=1', d)} \
+    ${@bb.utils.contains('PACKAGECONFIG', 'ffi', 'FFI=1', '', d)} \
+"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/ktap/ktap_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-kernel/ktap/ktap_git.bb
new file mode 100644
index 0000000..248e7bd
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/ktap/ktap_git.bb
@@ -0,0 +1,19 @@
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+require ktap.inc
+
+SUMMARY = "KTAP is a scripting dynamic tracing tool for Linux"
+DEPENDS = "ktap-module"
+
+PNBLACKLIST[ktap] ?= "Depends on blacklisted kernel-module-ktapvm"
+
+# Only build the userspace app
+EXTRA_OEMAKE += "ktap"
+
+do_install() {
+    install -d ${D}${bindir}
+    install -m 0755 ${S}/ktap ${D}${bindir}/
+}
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+RRECOMMENDS_${PN} = "kernel-module-ktapvm"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-kernel/linux/linux.inc b/import-layers/meta-openembedded/meta-oe/recipes-kernel/linux/linux.inc
new file mode 100644
index 0000000..e200127
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-kernel/linux/linux.inc
@@ -0,0 +1,131 @@
+DESCRIPTION = "Linux Kernel"
+SECTION = "kernel"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
+
+INC_PR = "r0"
+
+inherit kernel siteinfo
+
+# Enable OABI compat for people stuck with obsolete userspace
+ARM_KEEP_OABI ?= "0"
+
+# Set the verbosity of kernel messages during runtime
+# You can define CMDLINE_DEBUG in your local.conf or distro.conf to override this behaviour
+CMDLINE_DEBUG ?= "loglevel=3"
+
+# Kernel bootlogo is distro-specific (default is OE logo).
+# Logo resolution (qvga, vga, ...) is machine-specific.
+LOGO_SIZE ?= '${@base_conditional("MACHINE_GUI_CLASS", "bigscreen", "vga", "qvga", d)}'
+# To use this, add file://${LOGO_SIZE}/logo_linux_clut224.ppm.bz2 or similar
+# to your kernel recipe, and then structure your logos for each resolution
+# accordingly.
+
+LOCALVERSION ?= ""
+
+#kernel_conf_variable CMDLINE "\"${CMDLINE} ${CMDLINE_DEBUG}\""
+kernel_conf_variable() {
+    CONF_SED_SCRIPT="$CONF_SED_SCRIPT /CONFIG_$1[ =]/d;"
+    if test "$2" = "n"
+    then
+        echo "# CONFIG_$1 is not set" >> ${B}/.config
+    else
+        echo "CONFIG_$1=$2" >> ${B}/.config
+    fi
+}
+
+do_configure_prepend() {
+    echo "" > ${B}/.config
+    CONF_SED_SCRIPT=""
+
+    #
+    # logo support, if you supply logo_linux_clut224.ppm in SRC_URI, then it's going to be used
+    #
+    if [ -e ${WORKDIR}/logo_linux_clut224.ppm ]; then
+        install -m 0644 ${WORKDIR}/logo_linux_clut224.ppm drivers/video/logo/logo_linux_clut224.ppm
+        kernel_conf_variable LOGO y
+        kernel_conf_variable LOGO_LINUX_CLUT224 y
+    fi
+
+    #
+    # oabi / eabi support
+    #
+    kernel_conf_variable AEABI y
+    if [ "${ARM_KEEP_OABI}" = "1" ] ; then
+        kernel_conf_variable OABI_COMPAT y
+    else
+        kernel_conf_variable OABI_COMPAT n
+    fi
+
+    # When enabling thumb for userspace we also need thumb support in the kernel
+    if [ "${ARM_INSTRUCTION_SET}" = "thumb" ] ; then
+        kernel_conf_variable ARM_THUMB y
+    fi
+
+    kernel_conf_variable CMDLINE "\"${CMDLINE} ${CMDLINE_DEBUG}\""
+
+    kernel_conf_variable LOCALVERSION "\"${LOCALVERSION}\""
+    kernel_conf_variable LOCALVERSION_AUTO n
+
+    kernel_conf_variable SYSFS_DEPRECATED n
+    kernel_conf_variable SYSFS_DEPRECATED_V2 n
+    kernel_conf_variable HOTPLUG y
+    kernel_conf_variable UEVENT_HELPER_PATH \"\"
+    kernel_conf_variable UNIX y
+    kernel_conf_variable SYSFS y
+    kernel_conf_variable PROC_FS y
+    kernel_conf_variable TMPFS y
+    kernel_conf_variable INOTIFY_USER y
+    kernel_conf_variable SIGNALFD y
+    kernel_conf_variable TMPFS_POSIX_ACL y
+    kernel_conf_variable BLK_DEV_BSG y
+    kernel_conf_variable DEVTMPFS y
+    kernel_conf_variable DEVTMPFS_MOUNT y
+
+    # Newer inits like systemd need cgroup support
+    if [ "${KERNEL_ENABLE_CGROUPS}" = "1" ] ; then
+        kernel_conf_variable CGROUP_SCHED y
+        kernel_conf_variable CGROUPS y
+        kernel_conf_variable CGROUP_NS y
+        kernel_conf_variable CGROUP_FREEZER y
+        kernel_conf_variable CGROUP_DEVICE y
+        kernel_conf_variable CPUSETS y
+        kernel_conf_variable PROC_PID_CPUSET y
+        kernel_conf_variable CGROUP_CPUACCT y
+        kernel_conf_variable RESOURCE_COUNTERS y
+    fi
+
+    #
+    # root-over-nfs-over-usb-eth support. Limited, but should cover some cases.
+    # Enable this by setting a proper CMDLINE_NFSROOT_USB.
+    #
+    if [ ! -z "${CMDLINE_NFSROOT_USB}" ]; then
+        bbnote "Configuring the kernel for root-over-nfs-over-usb-eth with CMDLINE ${CMDLINE_NFSROOT_USB}"
+        kernel_conf_variable INET y
+        kernel_conf_variable IP_PNP y
+        kernel_conf_variable USB_GADGET y
+        kernel_conf_variable USB_GADGET_SELECTED y
+        kernel_conf_variable USB_ETH y
+        kernel_conf_variable NFS_FS y
+        kernel_conf_variable ROOT_NFS y
+        kernel_conf_variable CMDLINE \"${CMDLINE_NFSROOT_USB} ${CMDLINE_DEBUG}\"
+    fi
+
+    sed -e "${CONF_SED_SCRIPT}" \
+    < '${WORKDIR}/defconfig' >>'${B}/.config'
+
+    yes '' | oe_runmake -C ${S} O=${B} oldconfig
+}
+
+do_configure_append() {
+    if test -e scripts/Makefile.fwinst ; then
+        sed -i -e "s:-m0644:-m 0644:g" scripts/Makefile.fwinst
+    fi
+}
+
+do_install_append() {
+    oe_runmake headers_install INSTALL_HDR_PATH=${D}${exec_prefix}/src/linux-${KERNEL_VERSION} ARCH=$ARCH
+}
+
+PACKAGES =+ "kernel-headers"
+FILES_kernel-headers = "${exec_prefix}/src/linux*"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss-1.0.17/libio.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss-1.0.17/libio.patch
new file mode 100644
index 0000000..a053e4c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss-1.0.17/libio.patch
@@ -0,0 +1,43 @@
+Index: alsa-oss-1.0.15/alsa/stdioemu.c
+===================================================================
+--- alsa-oss-1.0.15.orig/alsa/stdioemu.c	2007-10-15 10:50:40.000000000 +0200
++++ alsa-oss-1.0.15/alsa/stdioemu.c	2008-07-21 22:17:06.303161438 +0200
+@@ -37,7 +37,9 @@
+ #endif
+ 
+ #include <stdio.h>
++#ifdef HAVE_LIBIO_H
+ #include <libio.h>
++#endif
+ 
+ struct fd_cookie {
+ 	int fd;
+@@ -99,7 +101,11 @@
+ 
+ 	if (open_mode && fdc->fd > 0) {
+ 		result = fopencookie (fdc,"w", fns);
++#ifdef HAVE_FILENO
+ 		result->_fileno = fdc->fd;		/* ugly patchy slimy kludgy hack */
++#else
++		result->__filedes = fdc->fd;
++#endif
+ 	}
+ 	return result;
+ }
+Index: alsa-oss-1.0.15/configure.in
+===================================================================
+--- alsa-oss-1.0.15.orig/configure.in	2007-10-15 10:50:40.000000000 +0200
++++ alsa-oss-1.0.15/configure.in	2008-07-21 22:16:11.719837298 +0200
+@@ -33,6 +33,12 @@
+   LIBS="$OLD_LIBS"
+ fi
+ 
++AC_CHECK_HEADERS_ONCE([libio.h])
++
++AC_CHECK_MEMBER([struct _IO_FILE._fileno],
++		[AC_DEFINE([HAVE_FILENO], [1],[Define if _fileno exists.])],
++		[],[])
++
+ AC_OUTPUT(Makefile alsa/Makefile alsa/aoss alsa/aoss.old \
+ 	  oss-redir/Makefile test/Makefile \
+           alsa/testaoss test/testaoss)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss_1.0.17.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss_1.0.17.bb
new file mode 100644
index 0000000..8966dbb
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/alsa/alsa-oss_1.0.17.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Alsa OSS Compatibility Package"
+SECTION = "libs/multimedia"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833"
+DEPENDS = "alsa-lib"
+PR = "r1"
+
+SRC_URI = "ftp://ftp.alsa-project.org/pub/oss-lib/alsa-oss-${PV}.tar.bz2 \
+    file://libio.patch \
+"
+
+inherit autotools
+
+LEAD_SONAME = "libaoss.so.0"
+
+do_configure_prepend () {
+    touch NEWS README AUTHORS ChangeLog
+    sed -i "s/libaoss.so/${LEAD_SONAME}/" ${S}/alsa/aoss.in
+}
+
+SRC_URI[md5sum] = "1b1850c2fc91476a73d50f537cbd402f"
+SRC_URI[sha256sum] = "8d009e23e2cbee1691ec3c95d1838056a804d98440eae7715d6c3aebc710f9ca"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/audiofile/audiofile_0.2.7.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/audiofile/audiofile_0.2.7.bb
new file mode 100644
index 0000000..6188659
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/audiofile/audiofile_0.2.7.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "The Audio File Library provides a uniform and elegant \
+API for accessing a variety of audio file formats, such as AIFF/AIFF-C, \
+WAVE, NeXT/Sun .snd/.au, Berkeley/IRCAM/CARL Sound File, Audio Visual \
+Research, Amiga IFF/8SVX, and NIST SPHERE."
+HOMEPAGE = "http://www.68k.org/~michael/audiofile/"
+SECTION = "libs"
+LICENSE = "LGPLv2 & GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \
+                    file://COPYING.GPL;md5=0636e73ff0215e8d672dc4c32c317bb3"
+
+SRC_URI = "${GNOME_MIRROR}/audiofile/0.2/${BP}.tar.gz"
+SRC_URI[md5sum] = "a39be317a7b1971b408805dc5e371862"
+SRC_URI[sha256sum] = "a61c4036c2600a645843f16bec4be166093a9df5f15b02c85291213aa9cf15a2"
+
+inherit autotools lib_package binconfig
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/cdrkit/cdrkit_1.1.11.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/cdrkit/cdrkit_1.1.11.bb
new file mode 100644
index 0000000..554b89f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/cdrkit/cdrkit_1.1.11.bb
@@ -0,0 +1,18 @@
+SUMMARY = "CD/DVD command line tools"
+HOMEPAGE = "http://cdrkit.org/"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b30d3b2750b668133fc17b401e1b98f8"
+
+# While writing download from cdrkit.org was broken so get sources from debian
+SRC_URI = " \
+    ${DEBIAN_MIRROR}/main/c/${BPN}/${BPN}_${PV}.orig.tar.gz \
+    file://0001-do-not-create-a-run-test-to-determine-order-of-bitfi.patch \
+"
+SRC_URI[md5sum] = "efe08e2f3ca478486037b053acd512e9"
+SRC_URI[sha256sum] = "d1c030756ecc182defee9fe885638c1785d35a2c2a297b4604c0e0dcc78e47da"
+
+inherit cmake
+
+DEPENDS = "libcap file bzip2"
+RDEPENDS_${PN} = "perl"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/cdrkit/files/0001-do-not-create-a-run-test-to-determine-order-of-bitfi.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/cdrkit/files/0001-do-not-create-a-run-test-to-determine-order-of-bitfi.patch
new file mode 100644
index 0000000..c9725cb
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/cdrkit/files/0001-do-not-create-a-run-test-to-determine-order-of-bitfi.patch
@@ -0,0 +1,53 @@
+From a702cd1bb5eba5a05d1098862b5b863a3f6dd558 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Thu, 10 Sep 2015 09:39:13 +0200
+Subject: [PATCH] do not create a run test to determine order of bitfields
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+taken from [1]
+
+Upstream-Status: Inappropriate [cross compile specific]
+
+[1] http://cgit.openembedded.org/openembedded/tree/recipes/cdrkit/cdrkit/xconfig.patch
+
+Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+---
+ include/CMakeLists.txt | 2 --
+ include/xconfig.h.in   | 6 +++++-
+ 2 files changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
+index 99a69fd..e5ba8a7 100644
+--- a/include/CMakeLists.txt
++++ b/include/CMakeLists.txt
+@@ -35,8 +35,6 @@ endif(VA_LIST_IS_ARRAY)
+ INCLUDE(TestBigEndian)
+ TEST_BIG_ENDIAN(WORDS_BIGENDIAN)
+ 
+-TRY_RUN(BITFIELDS_HTOL TEST_DUMMY ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/test_BITFIELDS_HTOL.c)
+-
+ INCLUDE(CheckIncludeFiles)
+ 
+ #SET(CMAKE_REQUIRED_INCLUDES "/usr/include;/usr/local/include")
+diff --git a/include/xconfig.h.in b/include/xconfig.h.in
+index c130600..476c00b 100644
+--- a/include/xconfig.h.in
++++ b/include/xconfig.h.in
+@@ -233,7 +233,11 @@
+ /* If using network byte order             */
+ #cmakedefine WORDS_BIGENDIAN
+ /* If high bits come first in structures   */
+-#cmakedefine BITFIELDS_HTOL
++#ifdef WORDS_BIGENDIAN
++#define BITFIELDS_HTOL
++#else
++#define BITFIELDS_LTOH
++#endif
+ #define	HAVE_C_BIGENDIAN	/* Flag that WORDS_BIGENDIAN test was done */
+ #define	HAVE_C_BITFIELDS	/* Flag that BITFIELDS_HTOL test was done  */
+ 
+-- 
+2.1.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/configure-fix.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/configure-fix.patch
new file mode 100644
index 0000000..8fdc35a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/configure-fix.patch
@@ -0,0 +1,10 @@
+--- /tmp/configure.ac	2008-06-02 16:46:55.640793306 +0200
++++ esound-0.2.36/configure.ac	2008-06-02 16:47:26.030793494 +0200
+@@ -29,6 +29,7 @@
+ AC_SUBST(pkgdocdir)
+ 
+ AC_PROG_CC
++AC_PROG_CXX
+ AC_PROG_CPP
+ AC_LIBTOOL_WIN32_DLL
+ AM_PROG_LIBTOOL
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/esound_0.2.36-1ubuntu5.diff.gz b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/esound_0.2.36-1ubuntu5.diff.gz
new file mode 100644
index 0000000..719f5d0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/esound_0.2.36-1ubuntu5.diff.gz
Binary files differ
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/no-docs.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/no-docs.patch
new file mode 100644
index 0000000..fc69f1a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound/no-docs.patch
@@ -0,0 +1,11 @@
+Index: esound-0.2.36/Makefile.am
+===================================================================
+--- esound-0.2.36.orig/Makefile.am
++++ esound-0.2.36/Makefile.am
+@@ -1,5 +1,5 @@
+ 
+-SUBDIRS = docs
++SUBDIRS = 
+ 
+ ACLOCAL_FLAGS = -I m4
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound_0.2.36.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound_0.2.36.bb
new file mode 100644
index 0000000..035358d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/esound/esound_0.2.36.bb
@@ -0,0 +1,33 @@
+SUMMARY = "Enlightened Sound Daemon"
+SECTION = "gpe/base"
+LICENSE = "LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605"
+DEPENDS = "audiofile"
+
+inherit gnome binconfig
+
+PR = "r1"
+
+SRC_URI = "ftp://ftp.gnome.org/pub/GNOME/sources/esound/0.2/esound-0.2.36.tar.bz2;name=archive \
+           file://esound_0.2.36-1ubuntu5.diff.gz \
+           file://no-docs.patch \
+           file://configure-fix.patch"
+
+SRC_URI[archive.md5sum] = "3facb5aa0115cc1c31771b9ad454ae76"
+SRC_URI[archive.sha256sum] = "68bf399fcbd45c5e9ba99cd13a3a479e4ef2bc5dc52e540ffa00aef1e1b19a76"
+
+EXTRA_OECONF = " \
+    --disable-alsa \
+    --disable-arts \
+    --disable-artstest \
+"
+do_configure_prepend() {
+    sed -i -e 's:/usr/include/mme:${STAGING_INCDIR}/mme:g' ${S}/configure.ac
+}
+
+PACKAGES =+ "esddsp esd esd-utils"
+
+FILES_esddsp = "${bindir}/esddsp ${libdir}/libesddsp.so.*"
+FILES_esd = "${bindir}/esd"
+FILES_esd-utils = "${bindir}/*"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/faad2/faad2_2.7.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/faad2/faad2_2.7.bb
new file mode 100644
index 0000000..63e590c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/faad2/faad2_2.7.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Library for reading some sort of media format"
+SECTION = "libs"
+LICENSE = "GPLv2"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=381c8cbe277a7bc1ee2ae6083a04c958"
+
+PR = "r1"
+
+inherit autotools
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/faac/faad2-src/faad2-${PV}/${BP}.tar.bz2;name=faad2 \
+"
+
+SRC_URI[faad2.md5sum] = "4c332fa23febc0e4648064685a3d4332"
+SRC_URI[faad2.sha256sum] = "14561b5d6bc457e825bfd3921ae50a6648f377a9396eaf16d4b057b39a3f63b5"
+
+PACKAGES =+ "libfaad libfaad-dev libmp4ff libmp4ff-dev"
+
+FILES_${PN} = "${bindir}/faad"
+
+FILES_libfaad = "${libdir}/libfaad.so.*"
+FILES_libfaad-dev = "${libdir}/libfaad.so ${libdir}/libfaad.la ${includedir}/faad.h"
+FILES_libfaad-staticdev = "${libdir}/libfaad.a"
+
+FILES_libmp4ff = "${libdir}/libmp4ff.so.*"
+FILES_libmp4ff-dev = "${libdir}/libmp4ff.so ${libdir}/libmp4ff.la ${includedir}/mp4ff.h"
+FILES_libmp4ff-staticdev = "${libdir}/libmp4ff.a"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/id3lib/id3lib/acdefine.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/id3lib/id3lib/acdefine.patch
new file mode 100644
index 0000000..09edecc
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/id3lib/id3lib/acdefine.patch
@@ -0,0 +1,42 @@
+Add a description to the AC_DEFINE statements so that it appears in config.h and silences a fatal warning.
+
+Upstream-Status:Pending
+Signed-off-by: Matthieu Crapet <Matthieu.Crapet@ingenico.com>
+---
+ configure.in | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index abfe4cd..ce0d380 100644
+--- a/configure.in
++++ b/configure.in
+@@ -168,7 +168,7 @@ if test $has_iconv = 1; then
+ 		iconv_oldstyle=1, iconv_oldstyle=0)
+   if test $iconv_oldstyle = 1; then
+     AC_MSG_RESULT(const char **)
+-    AC_DEFINE(ID3LIB_ICONV_OLDSTYLE)
++    AC_DEFINE(ID3LIB_ICONV_OLDSTYLE,[1],[Old iconv prototype definition in iconv.h])
+     #we'll check out the need of
+     #typecast in the call of iconv_open
+     AC_MSG_CHECKING(whether to typecast in iconv)
+@@ -184,7 +184,7 @@ if test $has_iconv = 1; then
+                    iconv_cast=0, iconv_cast=1)
+     if test $iconv_cast = 1; then
+       AC_MSG_RESULT(yes)
+-      AC_DEFINE(ID3LIB_ICONV_CAST_OK)
++      AC_DEFINE(ID3LIB_ICONV_CAST_OK,[1],[Accepting const char ** in iconv prototype])
+     else
+       AC_MSG_RESULT(no)
+     fi
+@@ -206,7 +206,7 @@ if test $has_iconv = 1; then
+                    iconv_cast=0, iconv_cast=1)
+     if test $iconv_cast = 1; then
+       AC_MSG_RESULT(yes)
+-      AC_DEFINE(ID3LIB_ICONV_CAST_OK)
++      AC_DEFINE(ID3LIB_ICONV_CAST_OK,[1],[Accepting const char ** in iconv prototype])
+     else
+       AC_MSG_RESULT(no)
+     fi
+-- 
+2.0.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/id3lib/id3lib_3.8.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/id3lib/id3lib_3.8.3.bb
new file mode 100644
index 0000000..fc80cc0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/id3lib/id3lib_3.8.3.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Library for interacting with ID3 tags"
+SECTION = "libs/multimedia"
+LICENSE = "LGPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7"
+DEPENDS = "zlib"
+
+PR = "r1"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/id3lib/id3lib-${PV}.tar.gz;name=archive \
+           http://ftp.de.debian.org/debian/pool/main/i/id3lib3.8.3/id3lib3.8.3_3.8.3-7.2.diff.gz;name=patch \
+           file://acdefine.patch \
+"
+SRC_URI[archive.md5sum] = "19f27ddd2dda4b2d26a559a4f0f402a7"
+SRC_URI[archive.sha256sum] = "2749cc3c0cd7280b299518b1ddf5a5bcfe2d1100614519b68702230e26c7d079"
+SRC_URI[patch.md5sum] = "805c0320a2efb21c40ce06fa13cd7c4b"
+SRC_URI[patch.sha256sum] = "9f03b59ccc8826a5be55a3dcde2f889067d58bdc72bf846416a198c9b933704c"
+
+inherit autotools
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/jack/jack/jack_fix_TWL4030_alsa_capture.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/jack/jack/jack_fix_TWL4030_alsa_capture.patch
new file mode 100644
index 0000000..77337ff
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/jack/jack/jack_fix_TWL4030_alsa_capture.patch
@@ -0,0 +1,31 @@
+--- a/drivers/alsa/alsa_driver.c	2009-05-06 06:36:08.000000000 +1000
++++ b/drivers/alsa/alsa_driver.c	2010-07-28 21:02:57.238101024 +1000
+@@ -2388,7 +2388,7 @@
+ 	strcpy (params[i].name, "period");
+ 	params[i].character  = 'p';
+ 	params[i].type       = JackDriverParamUInt;
+-	params[i].value.ui   = 1024U;
++	params[i].value.ui   = 256U;            /* TWL4030 capture. */
+ 	strcpy (params[i].short_desc, "Frames per period");
+ 	strcpy (params[i].long_desc, params[i].short_desc);
+ 
+@@ -2396,7 +2396,7 @@
+ 	strcpy (params[i].name, "nperiods");
+ 	params[i].character  = 'n';
+ 	params[i].type       = JackDriverParamUInt;
+-	params[i].value.ui   = 2U;
++	params[i].value.ui   = 4U;              /* TWL4030 capture. */
+ 	strcpy (params[i].short_desc, "Number of periods of playback latency");
+ 	strcpy (params[i].long_desc, params[i].short_desc);
+ 
+@@ -2518,8 +2518,8 @@
+ driver_initialize (jack_client_t *client, const JSList * params)
+ {
+         jack_nframes_t srate = 48000;
+-	jack_nframes_t frames_per_interrupt = 1024;
+-	unsigned long user_nperiods = 2;
++	jack_nframes_t frames_per_interrupt = 256;      /* TWL4030 needs small number of frames here. */
++	unsigned long user_nperiods = 4;                /* TWL4030 needs 4 periods to avoid XRuns. */
+ 	char *playback_pcm_name = "hw:0";
+ 	char *capture_pcm_name = "hw:0";
+ 	int hw_monitoring = FALSE;
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/jack/jack/remove-wrong-host-test.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/jack/jack/remove-wrong-host-test.patch
new file mode 100644
index 0000000..b41c98f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/jack/jack/remove-wrong-host-test.patch
@@ -0,0 +1,68 @@
+From be5f1439a1f36c0bc714411d20186045bd3e9539 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Tue, 12 Jul 2011 12:48:14 +0200
+Subject: [PATCH] remove bogus check for host-side jack installs, we are crosscompiling and don't care about these misguided checks
+
+---
+ configure.ac |   45 ---------------------------------------------
+ 1 files changed, 0 insertions(+), 45 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 0a7e6bc..4033c21 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -3,51 +3,6 @@ dnl $Id: configure.ac 4467 2011-06-23 15:10:03Z paul $
+ 
+ AC_INIT(jackd/jackd.c)
+ 
+-
+-dnl
+-dnl Check for existing JACK installs
+-dnl 
+-
+-AC_MSG_CHECKING([existing, conflicting JACK installs])
+-not_overwriting=0
+-installs=
+-for dir in /usr/lib /usr/local/lib /opt/lib ; do
+-    if test -d $dir ; then
+-	if test $(find $dir/ -name 'libjack.so.*' 2>/dev/null | wc -l) -gt 0 ; then
+-	    if echo $prefix/lib | grep -vs $dir >/dev/null 2>&1 ; then
+-		not_overwriting=$(expr $not_overwriting + 1)
+-	    fi
+-	    installs="$installs $dir"
+-	fi	    
+-    fi
+-done
+-
+-if test $not_overwriting -gt 0 ; then
+-    echo 
+-    echo
+-    echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
+-    echo "You appear to have at least one existing installation of JACK."
+-    echo
+-    echo "Complete or partial JACK installs exist in:$installs"
+-    echo 
+-    echo "Installing this version will leave at least one of these"
+-    echo "existing installations installed and this will probably break"
+-    echo "JACK on your machine. "
+-    echo
+-    echo "Before building, you should first remove the existing JACK"
+-    echo "installation(s). "
+-    echo
+-    echo "Alternatively use ./configure --prefix=... to force overwriting"
+-    echo "the existing install."
+-    echo
+-    echo "WARNING: ON ANY DEBIAN-DERIVED DISTRIBUTION (Debian, Ubuntu etc)"
+-    echo "CHANGING THE INSTALLATION PREFIX WILL NOT PRODUCE A WORKING JACK"
+-    echo "INSTALL. Please contact the distribution packager for JACK and"
+-    echo "ask them to fix their packaging."
+-    echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
+-    exit 1
+-fi
+-
+ AC_CONFIG_AUX_DIR(config)
+ AC_CANONICAL_TARGET
+ 
+-- 
+1.6.6.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/jack/jack_0.121.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/jack/jack_0.121.0.bb
new file mode 100644
index 0000000..7b33927
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/jack/jack_0.121.0.bb
@@ -0,0 +1,40 @@
+DESCRIPTION = "JACK is a low-latency audio server. It can \
+connect a number of different applications to an audio \
+device, as well as allowing them to share audio between \
+themselves."
+SECTION = "libs/multimedia"
+
+LICENSE = "GPLv2 & LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c030468238b2cf89925a57f2780396a7 \
+                    file://COPYING.GPL;md5=94d55d512a9ba36caa9b7df079bae19f \
+                    file://COPYING.LGPL;md5=e77fe93202736b47c07035910f47974a \
+"
+
+DEPENDS = "alsa-lib libsamplerate0 readline"
+
+SRCREV = "91a688c602b7ce1711d8ad10fb07ebcf2e530a64"
+SRC_URI = "git://github.com/jackaudio/jack1.git \
+           file://remove-wrong-host-test.patch \
+           file://jack_fix_TWL4030_alsa_capture.patch \
+"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--enable-timestamps \
+                --disable-capabilities \
+                --disable-oldtrans \
+                --disable-portaudio \
+                --disable-coreaudio \
+                --disable-oss \
+                --enable-alsa"
+
+EXTRA_OEMAKE = 'transform="s,^,,"'
+
+PACKAGES =+ "libjack jack-server jack-utils"
+
+FILES_libjack = "${libdir}/*.so.* ${libdir}/jack/*.so"
+FILES_jack-server = "${bindir}/jackd"
+FILES_jack-utils = "${bindir}/*"
+FILES_${PN}-doc += " ${datadir}/jack-audio-connection-kit/reference/html/* "
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libass/libass.inc b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libass/libass.inc
new file mode 100644
index 0000000..328cd14
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libass/libass.inc
@@ -0,0 +1,28 @@
+DESCRIPTION = "libass is a portable subtitle renderer for the ASS/SSA (Advanced Substation Alpha/Substation Alpha) subtitle format. It is mostly compatible with VSFilter."
+HOMEPAGE = "http://code.google.com/p/libass/"
+SECTION = "libs/multimedia"
+
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8ae98663bac55afe5d989919d296f28a"
+
+DEPENDS = "enca fontconfig freetype libpng fribidi"
+
+INC_PR = "r1"
+
+SRC_URI = "http://${BPN}.googlecode.com/files/${BP}.tar.gz"
+
+inherit autotools pkgconfig
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[harfbuzz] = "--enable-harfbuzz,--disable-harfbuzz,harfbuzz"
+
+EXTRA_OECONF = " \
+    --enable-enca \
+    --enable-fontconfig \
+"
+
+PACKAGES =+ "${PN}-tests"
+
+FILES_${PN}-tests = " \
+    ${libdir}/test/test \
+"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libass/libass_0.10.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libass/libass_0.10.1.bb
new file mode 100644
index 0000000..0b32276
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libass/libass_0.10.1.bb
@@ -0,0 +1,5 @@
+require ${PN}.inc
+PR = "${INC_PR}.0"
+
+SRC_URI[md5sum] = "6cace482a013a3c4bf3b31a68ac66026"
+SRC_URI[sha256sum] = "629a7e81fff92dea8d0399b818a41fd1b61e381c67a5961b1eaec2efadb14c6c"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libburn/libburn_1.4.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libburn/libburn_1.4.0.bb
new file mode 100644
index 0000000..91fe693
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libburn/libburn_1.4.0.bb
@@ -0,0 +1,11 @@
+SUMMARY = "Library for reading, mastering and writing optical discs"
+HOMEPAGE = "http://libburnia-project.org/"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=9ac2e7cff1ddaf48b6eab6028f23ef88"
+
+SRC_URI = "http://files.libburnia-project.org/releases/${BPN}-${PV}.tar.gz"
+SRC_URI[md5sum] = "82ff94bb04e78eac9b12c7546f005d6f"
+SRC_URI[sha256sum] = "6c975abae4ae1f80e47fc5d1e235f85157f73e954c84627a5ef85d8b1b95ae94"
+
+inherit autotools pkgconfig
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libcdio/libcdio_0.93.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libcdio/libcdio_0.93.bb
new file mode 100644
index 0000000..f21f914
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libcdio/libcdio_0.93.bb
@@ -0,0 +1,25 @@
+ESCRIPTION = "The GNU Compact Disc Input and Control library (libcdio) contains a library for CD-ROM and CD image access."
+HOMEPAGE = "http://www.gnu.org/software/libcdio/"
+SECTION = "libs"
+
+LICENSE = "GPLv3+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+DEPENDS = "ncurses"
+
+SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.gz"
+SRC_URI[md5sum] = "d154476feaac5a7b5f180e83eaf3d689"
+SRC_URI[sha256sum] = "4972cd22fd8d0e8bff922d35c7a645be0db0ab0e7b3dfaecc9cd8272429d6975"
+
+inherit autotools pkgconfig
+
+PACKAGES += "${PN}-utils"
+
+FILES_${PN} = "${libdir}/${PN}${SOLIB}"
+FILES_${PN}-utils = "${bindir}/*"
+
+python populate_packages_prepend () {
+    glibdir = d.expand('${libdir}')
+    do_split_packages(d, glibdir, '^lib(.*)\.so\..*', 'lib%s', 'gstreamer %s library', extra_depends='', allow_links=True)
+}
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libdvdread/libdvdread_5.0.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libdvdread/libdvdread_5.0.3.bb
new file mode 100644
index 0000000..0506725
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libdvdread/libdvdread_5.0.3.bb
@@ -0,0 +1,13 @@
+SUMMARY = "DVD access multimeda library"
+SECTION = "libs/multimedia"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=64e753fa7d1ca31632bc383da3b57c27"
+SRC_URI = "http://download.videolan.org/pub/videolan/libdvdread/${PV}/libdvdread-${PV}.tar.bz2"
+
+SRC_URI[md5sum] = "b7b7d2a782087ed2a913263087083715"
+SRC_URI[sha256sum] = "321cdf2dbdc83c96572bc583cd27d8c660ddb540ff16672ecb28607d018ed82b"
+
+inherit autotools lib_package binconfig pkgconfig
+
+CONFIGUREOPTS_remove = "--disable-silent-rules"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libmms/libmms_0.6.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libmms/libmms_0.6.4.bb
new file mode 100644
index 0000000..831394e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libmms/libmms_0.6.4.bb
@@ -0,0 +1,12 @@
+SUMMARY = "MMS stream protocol library"
+HOMEPAGE = "http://sourceforge.net/projects/libmms/"
+SECTION = "libs/multimedia"
+
+LICENSE = "LGPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=fad9b3332be894bab9bc501572864b29"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${PV}/${BP}.tar.gz"
+SRC_URI[md5sum] = "d6b665b335a6360e000976e770da7691"
+SRC_URI[sha256sum] = "3c05e05aebcbfcc044d9e8c2d4646cd8359be39a3f0ba8ce4e72a9094bee704f"
+
+inherit autotools pkgconfig
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libmodplug/libmodplug_0.8.8.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libmodplug/libmodplug_0.8.8.5.bb
new file mode 100644
index 0000000..1070246
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libmodplug/libmodplug_0.8.8.5.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Library for reading mod-like audio files"
+HOMEPAGE = "http://modplug-xmms.sf.net"
+
+LICENSE = "PD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c9182faa1f7c316f7b97d404bcbe3685"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/modplug-xmms/libmodplug-${PV}.tar.gz"
+SRC_URI[md5sum] = "5f30241db109d647781b784e62ddfaa1"
+SRC_URI[sha256sum] = "77462d12ee99476c8645cb5511363e3906b88b33a6b54362b4dbc0f39aa2daad"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--disable-option-checking"
+
+# NOTE: autotools_stage_all does nothing here, we need to do it manually
+do_install_append() {
+    install -d ${D}${includedir}/libmodplug
+    install -m 0644 ${S}/src/modplug.h ${D}${includedir}/libmodplug
+    install -m 0644 ${S}/src/modplug.h ${D}${includedir}/
+}
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libopus/libopus_1.1.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libopus/libopus_1.1.2.bb
new file mode 100644
index 0000000..9d9a634
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libopus/libopus_1.1.2.bb
@@ -0,0 +1,50 @@
+SUMMARY = "Opus Audio Codec"
+DESCRIPTION = "The Opus codec is designed for interactive \
+speech and audio transmission over the Internet. It is \
+designed by the IETF Codec Working Group and incorporates \
+technology from Skype's SILK codec and Xiph.Org's CELT codec."
+HOMEPAGE = "http://www.opus-codec.org/"
+SECTION = "libs/multimedia"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e304cdf74c2a1b0a33a5084c128a23a3"
+
+SRC_URI = "http://downloads.xiph.org/releases/opus/opus-${PV}.tar.gz"
+SRC_URI[md5sum] = "1f08a661bc72930187893a07f3741a91"
+SRC_URI[sha256sum] = "0e290078e31211baa7b5886bcc8ab6bc048b9fc83882532da4a1a45e58e907fd"
+
+S = "${WORKDIR}/opus-${PV}"
+
+inherit autotools pkgconfig
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[fixed-point] = "--enable-fixed-point,,"
+PACKAGECONFIG[float-approx] = "--enable-float-approx,,"
+
+EXTRA_OECONF = "--with-NE10-includes=${STAGING_DIR_TARGET}${includedir} \
+                --with-NE10-libraries=${STAGING_DIR_TARGET}${libdir} \
+                --enable-asm \
+                --enable-intrinsics \
+               "
+
+python () {
+    if d.getVar('TARGET_FPU', True) in [ 'soft' ]:
+        d.appendVar('PACKAGECONFIG', ' fixed-point')
+
+    # Ne10 is only available for armv7 and aarch64
+    if any((t.startswith('armv7') or t.startswith('aarch64')) for t in d.getVar('TUNE_FEATURES', True).split()):
+        d.appendVar('DEPENDS', ' ne10')
+}
+
+# Fails to build with thumb-1 (qemuarm)
+#| {standard input}: Assembler messages:
+#| {standard input}:389: Error: selected processor does not support Thumb mode `smull r5,r7,r1,r4'
+#| {standard input}:418: Error: selected processor does not support Thumb mode `smull r5,r6,r4,r1'
+#| {standard input}:448: Error: selected processor does not support Thumb mode `smull r4,r5,r1,r0'
+#| {standard input}:474: Error: selected processor does not support Thumb mode `smull r0,r4,r8,r1'
+#| {standard input}:510: Error: selected processor does not support Thumb mode `smull fp,r0,r10,r1'
+#| {standard input}:553: Error: selected processor does not support Thumb mode `smull fp,r1,r10,r3'
+#| {standard input}:741: Error: selected processor does not support Thumb mode `smull r3,r0,r6,r10'
+#| {standard input}:761: Error: selected processor does not support Thumb mode `smull fp,r2,r3,r9'
+#| {standard input}:773: Error: selected processor does not support Thumb mode `smull fp,r3,r5,r8'
+#| make[2]: *** [celt/celt.lo] Error 1
+ARM_INSTRUCTION_SET = "arm"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libsdl-image/libsdl-image/configure.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libsdl-image/libsdl-image/configure.patch
new file mode 100644
index 0000000..5299d37
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libsdl-image/libsdl-image/configure.patch
@@ -0,0 +1,43 @@
+Index: SDL_image-1.2.12/configure.in
+===================================================================
+--- SDL_image-1.2.12.orig/configure.in	2012-01-21 01:51:33.000000000 +0000
++++ SDL_image-1.2.12/configure.in	2014-07-18 06:56:56.853466678 +0000
+@@ -1,5 +1,4 @@
+ dnl Process this file with autoconf to produce a configure script.
+-AC_INIT(README)
+ 
+ dnl Set various version strings - taken gratefully from the GTk sources
+ 
+@@ -11,12 +10,19 @@
+ # if backwards compatibility has been broken,
+ # set BINARY_AGE and INTERFACE_AGE to 0.
+ 
+-MAJOR_VERSION=1
+-MINOR_VERSION=2
+-MICRO_VERSION=12
++m4_define([sdlimage_major_version],[1])
++m4_define([sdlimage_minor_version],[2])
++m4_define([sdlimage_micro_version],[12])
++m4_define([sdlimage_version], [sdlimage_major_version.sdlimage_minor_version.sdlimage_micro_version])
++
++AC_INIT([SDL_image], [sdlimage_version])
++
++MAJOR_VERSION=sdlimage_major_version
++MINOR_VERSION=sdlimage_minor_version
++MICRO_VERSION=sdlimage_micro_version
+ INTERFACE_AGE=4
+ BINARY_AGE=12
+-VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION
++VERSION=sdlimage_version
+ 
+ AC_SUBST(MAJOR_VERSION)
+ AC_SUBST(MINOR_VERSION)
+@@ -42,7 +48,7 @@
+ AC_CANONICAL_HOST
+ 
+ dnl Setup for automake
+-AM_INIT_AUTOMAKE(SDL_image, $VERSION)
++AM_INIT_AUTOMAKE([foreign])
+ 
+ dnl Check for tools
+ AC_PROG_LIBTOOL
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libsdl-image/libsdl-image_1.2.12.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libsdl-image/libsdl-image_1.2.12.bb
new file mode 100644
index 0000000..ea8e9ea
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libsdl-image/libsdl-image_1.2.12.bb
@@ -0,0 +1,32 @@
+SUMMARY = "Simple DirectMedia Layer image library"
+SECTION = "libs"
+
+LICENSE = "Zlib"
+LIC_FILES_CHKSUM = "file://COPYING;md5=613734b7586e1580ef944961c6d62227"
+
+DEPENDS = "tiff zlib libpng jpeg virtual/libsdl"
+
+SRC_URI = "http://www.libsdl.org/projects/SDL_image/release/SDL_image-${PV}.tar.gz \
+           file://configure.patch"
+SRC_URI[md5sum] = "a0f9098ebe5400f0bdc9b62e60797ecb"
+SRC_URI[sha256sum] = "0b90722984561004de84847744d566809dbb9daf732a9e503b91a1b5a84e5699"
+
+S = "${WORKDIR}/SDL_image-${PV}"
+
+inherit autotools pkgconfig
+
+export SDL_CONFIG = "${STAGING_BINDIR_CROSS}/sdl-config"
+
+# Disable the run-time loading of the libs and bring back the soname dependencies.
+EXTRA_OECONF += "--disable-jpg-shared --disable-png-shared -disable-tif-shared"
+
+do_configure_prepend() {
+    # Removing these files fixes a libtool version mismatch.
+    rm -f ${S}/acinclude/libtool.m4
+    rm -f ${S}/acinclude/sdl.m4
+    rm -f ${S}/acinclude/pkg.m4
+    rm -f ${S}/acinclude/lt~obsolete.m4
+    rm -f ${S}/acinclude/ltoptions.m4
+    rm -f ${S}/acinclude/ltsugar.m4
+    rm -f ${S}/acinclude/ltversion.m4
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libsdl-image/libsdl2-image_2.0.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libsdl-image/libsdl2-image_2.0.1.bb
new file mode 100644
index 0000000..1f9c794
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libsdl-image/libsdl2-image_2.0.1.bb
@@ -0,0 +1,31 @@
+SUMMARY = "Simple DirectMedia Layer image library v2"
+SECTION = "libs"
+
+LICENSE = "Zlib"
+LIC_FILES_CHKSUM = "file://COPYING.txt;md5=ec65b9778f5584a0bd8dfc17d6340ba0"
+
+DEPENDS = "tiff zlib libpng jpeg virtual/libsdl2 libwebp"
+
+SRC_URI = "http://www.libsdl.org/projects/SDL_image/release/SDL2_image-${PV}.tar.gz"
+SRC_URI[md5sum] = "d94b94555ba022fa249a53a021dc3606"
+SRC_URI[sha256sum] = "3a3eafbceea5125c04be585373bfd8b3a18f259bd7eae3efc4e6d8e60e0d7f64"
+
+S = "${WORKDIR}/SDL2_image-${PV}"
+
+inherit autotools pkgconfig
+
+# Disable the run-time loading of the libs and bring back the soname dependencies.
+EXTRA_OECONF += "--disable-jpg-shared --disable-png-shared -disable-tif-shared"
+
+do_configure_prepend() {
+    # make autoreconf happy
+    touch ${S}/NEWS ${S}/README ${S}/AUTHORS ${S}/ChangeLog
+    # Removing these files fixes a libtool version mismatch.
+    rm -f ${S}/acinclude/libtool.m4
+    rm -f ${S}/acinclude/sdl2.m4
+    rm -f ${S}/acinclude/pkg.m4
+    rm -f ${S}/acinclude/lt~obsolete.m4
+    rm -f ${S}/acinclude/ltoptions.m4
+    rm -f ${S}/acinclude/ltsugar.m4
+    rm -f ${S}/acinclude/ltversion.m4
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libsdl-mixer/libsdl-mixer/configure.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libsdl-mixer/libsdl-mixer/configure.patch
new file mode 100644
index 0000000..4c9e8d0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libsdl-mixer/libsdl-mixer/configure.patch
@@ -0,0 +1,21 @@
+diff -Nurd SDL_mixer-1.2.12/configure.in SDL_mixer-1.2.12/configure.in
+--- SDL_mixer-1.2.12/configure.in	2012-01-16 00:01:05.000000000 +0200
++++ SDL_mixer-1.2.12/configure.in	2012-12-15 04:08:04.627871456 +0200
+@@ -1,6 +1,5 @@
+ dnl Process this file with autoconf to produce a configure script.
+ AC_INIT(README)
+-AC_CONFIG_AUX_DIR(build-scripts)
+ 
+ dnl Set various version strings - taken gratefully from the GTk sources
+ 
+@@ -40,10 +39,6 @@
+ AC_SUBST(LT_REVISION)
+ AC_SUBST(LT_AGE)
+ 
+-dnl Detect the canonical build and host environments
+-AC_CONFIG_AUX_DIRS($srcdir/build-scripts)
+-dnl AC_CANONICAL_HOST
+-
+ dnl Check for tools
+ AC_PROG_LIBTOOL
+ AC_PROG_CC
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libsdl-mixer/libsdl-mixer_1.2.12.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libsdl-mixer/libsdl-mixer_1.2.12.bb
new file mode 100644
index 0000000..f1a01b9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libsdl-mixer/libsdl-mixer_1.2.12.bb
@@ -0,0 +1,40 @@
+SUMMARY = "Simple DirectMedia Layer mixer library"
+SECTION = "libs"
+DEPENDS = "virtual/libsdl flac libmikmod libvorbis"
+LICENSE = "Zlib"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a37a47a0e579e461474cd03b9e05199d"
+
+SRC_URI = "http://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-${PV}.tar.gz \
+           file://configure.patch \
+"
+
+SRC_URI[md5sum] = "e03ff73d77a55e3572ad0217131dc4a1"
+SRC_URI[sha256sum] = "1644308279a975799049e4826af2cfc787cad2abb11aa14562e402521f86992a"
+
+S = "${WORKDIR}/SDL_mixer-${PV}"
+
+inherit autotools-brokensep
+
+EXTRA_AUTORECONF += "--include=acinclude"
+EXTRA_OECONF = "--disable-music-mp3 --enable-music-ogg --enable-music-ogg-tremor LIBS=-L${STAGING_LIBDIR}"
+
+PACKAGECONFIG[mad] = "--enable-music-mp3-mad-gpl,--disable-music-mp3-mad-gpl,libmad"
+
+do_configure () {
+    # Remove old libtool macros.
+    MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4"
+    for i in ${MACROS}; do
+        rm -f acinclude/$i
+    done
+    cp build-scripts/* . || true
+    rm -rf build-scripts/
+    export SYSROOT=$PKG_CONFIG_SYSROOT_DIR
+
+    autotools_do_configure
+
+    rm config.log
+    for i in $(find -name "Makefile") ; do
+        sed -i -e 's:-L/usr/lib:-L${STAGING_LIBDIR}:g' $i
+    done
+}
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libsdl-mixer/libsdl2-mixer_2.0.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libsdl-mixer/libsdl2-mixer_2.0.1.bb
new file mode 100644
index 0000000..2dc48e4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/libsdl-mixer/libsdl2-mixer_2.0.1.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Simple DirectMedia Layer mixer library V2"
+SECTION = "libs"
+DEPENDS = "virtual/libsdl2 flac libmikmod libvorbis"
+LICENSE = "Zlib"
+LIC_FILES_CHKSUM = "file://COPYING.txt;md5=29d8bc7c38aa44b1cf3a633a46589917"
+
+SRC_URI = "http://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "c6c4f556d4415871f526248f5c9a627d"
+SRC_URI[sha256sum] = "5a24f62a610249d744cbd8d28ee399d8905db7222bf3bdbc8a8b4a76e597695f"
+
+S = "${WORKDIR}/SDL2_mixer-${PV}"
+
+inherit autotools-brokensep
+
+EXTRA_AUTORECONF += "--include=acinclude"
+EXTRA_OECONF = "--disable-music-mp3 --enable-music-ogg --enable-music-ogg-tremor LIBS=-L${STAGING_LIBDIR}"
+
+PACKAGECONFIG[mad] = "--enable-music-mp3-mad-gpl,--disable-music-mp3-mad-gpl,libmad"
+
+do_configure_prepend () {
+    # Remove old libtool macros.
+    MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4"
+    for i in ${MACROS}; do
+        rm -f acinclude/$i
+    done
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/live555/files/config.linux-cross b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/live555/files/config.linux-cross
new file mode 100644
index 0000000..d1277da
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/live555/files/config.linux-cross
@@ -0,0 +1,17 @@
+COMPILE_OPTS =		$(INCLUDES) -I. -O2 -DSOCKLEN_T=socklen_t -DNO_STRSTREAM=1 -D_LARGEFILE_SOURCE=1
+C =			c
+C_COMPILER =		$(CC)
+C_FLAGS =		$(COMPILE_OPTS)
+CPP =			cpp
+CPLUSPLUS_COMPILER =	$(CXX)
+CPLUSPLUS_FLAGS =	$(COMPILE_OPTS) -Wall -DBSD=1
+OBJ =			o
+LINK =			$(CXX) -o
+LINK_OPTS =		-L.
+CONSOLE_LINK_OPTS =	$(LINK_OPTS)
+LIBRARY_LINK =		$(LD) -o
+LIBRARY_LINK_OPTS =	$(LINK_OPTS) -r -Bstatic
+LIB_SUFFIX =			a
+LIBS_FOR_CONSOLE_APPLICATION =
+LIBS_FOR_GUI_APPLICATION =
+EXE =
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/live555/live555.inc b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/live555/live555.inc
new file mode 100644
index 0000000..0d11de9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/live555/live555.inc
@@ -0,0 +1,58 @@
+# live555 OE build file
+# Copyright (C) 2005, Koninklijke Philips Electronics NV.  All Rights Reserved
+# Released under the MIT license (see packages/COPYING)
+
+DESCRIPTION = "LIVE555 Streaming Media libraries"
+HOMEPAGE = "http://live.com/"
+LICENSE = "LGPLv3"
+SECTION = "devel"
+
+INC_PR = "r1"
+
+URLV = "${@d.getVar('PV',1)[0:4]}.${@d.getVar('PV',1)[4:6]}.${@d.getVar('PV',1)[6:8]}"
+SRC_URI = "http://www.live555.com/liveMedia/public/live.${URLV}.tar.gz \
+           file://config.linux-cross"
+# only latest live version stays on http://www.live555.com/liveMedia/public/, add mirror for older
+MIRRORS += "http://www.live555.com/liveMedia/public/ http://distcache.FreeBSD.org/ports-distfiles/ \n"
+
+S = "${WORKDIR}/live"
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+do_configure() {
+    cp ${WORKDIR}/config.linux-cross .
+    echo "COMPILE_OPTS+=" -fPIC "" >> config.linux-cross
+    ./genMakefiles linux-cross
+}
+
+do_compile() {
+    make
+}
+
+do_install() {
+    install -d ${D}${includedir}/BasicUsageEnvironment
+    install -d ${D}${includedir}/groupsock
+    install -d ${D}${includedir}/liveMedia
+    install -d ${D}${includedir}/UsageEnvironment
+    install -d ${D}${libdir}
+    cp -R --no-dereference --preserve=mode,links -v ${S}/BasicUsageEnvironment/include/*.hh ${D}${includedir}/BasicUsageEnvironment/
+    cp -R --no-dereference --preserve=mode,links -v ${S}/groupsock/include/*.h ${D}${includedir}/groupsock/
+    cp -R --no-dereference --preserve=mode,links -v ${S}/groupsock/include/*.hh ${D}${includedir}/groupsock/
+    cp -R --no-dereference --preserve=mode,links -v ${S}/liveMedia/include/*.hh ${D}${includedir}/liveMedia/
+    cp -R --no-dereference --preserve=mode,links -v ${S}/UsageEnvironment/include/*.hh ${D}${includedir}/UsageEnvironment/
+    # Find all the headers
+    for i in $(find . -name "*.hh") $(find . -name "*.h") ; do
+        install ${i} ${D}${includedir}
+    done
+    cp ${S}/*/*.a ${D}${libdir}
+    install -d ${D}${bindir}
+    for i in MPEG2TransportStreamIndexer openRTSP playSIP sapWatch testMPEG1or2AudioVideoToDarwin testMPEG1or2ProgramToTransportStream testMPEG1or2Splitter testMPEG1or2VideoReceiver testMPEG2TransportStreamTrickPlay testMPEG4VideoToDarwin testOnDemandRTSPServer testRelay testAMRAudioStreamer testDVVideoStreamer testMP3Receiver testMP3Streamer testMPEG1or2AudioVideoStreamer testMPEG1or2VideoStreamer testMPEG2TransportStreamer testMPEG4VideoStreamer testWAVAudioStreamer vobStreamer; do
+        install -m 0755 ${S}/testProgs/${i} ${D}${bindir}/
+    done
+    install -m 0755 ${S}/mediaServer/live555MediaServer ${D}${bindir}/
+}
+
+PACKAGES =+ " live555-openrtsp live555-playsip live555-mediaserver"
+FILES_${PN} = "${bindir}/sapWatch ${bindir}/testMPEG1or2AudioVideoToDarwin ${bindir}/testMPEG1or2ProgramToTransportStream ${bindir}/testMPEG1or2Splitter ${bindir}/testMPEG1or2VideoReceiver ${bindir}/testMPEG2TransportStreamTrickPlay ${bindir}/testMPEG4VideoToDarwin ${bindir}/testOnDemandRTSPServer ${bindir}/testRelay ${bindir}/testAMRAudioStreamer ${bindir}/testDVVideoStreamer ${bindir}/testMP3Receiver ${bindir}/testMP3Streamer ${bindir}/testMPEG1or2AudioVideoStreamer ${bindir}/testMPEG1or2VideoStreamer ${bindir}/testMPEG2TransportStreamer ${bindir}/testMPEG4VideoStreamer ${bindir}/testWAVAudioStreamer ${bindir}/vobStreamer ${bindir}/MPEG2TransportStreamIndexer"
+FILES_live555-openrtsp = "${bindir}/openRTSP"
+FILES_live555-playsip = "${bindir}/playSIP"
+FILES_live555-mediaserver = "${bindir}/live555MediaServer"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/live555/live555_20130430.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/live555/live555_20130430.bb
new file mode 100644
index 0000000..f83285c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/live555/live555_20130430.bb
@@ -0,0 +1,7 @@
+require live555.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=68ad62c64cc6c620126241fd429e68fe"
+
+SRC_URI[md5sum] = "95533d91bd196e42fd748076dc244b09"
+SRC_URI[sha256sum] = "e549af608c9961d85cb647bc3b99804fec0fbaf5338c1b72d057558ae5cd2aea"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mikmod/libmikmod_3.3.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mikmod/libmikmod_3.3.6.bb
new file mode 100644
index 0000000..2e1b9bf
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mikmod/libmikmod_3.3.6.bb
@@ -0,0 +1,26 @@
+DESCRIPTION = "libmikmod is a module player library supporting many formats, including mod, s3m, it, and xm."
+SECTION = "libs"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = "alsa-lib texinfo pulseaudio"
+
+SRC_URI = "\
+    ${SOURCEFORGE_MIRROR}/project/mikmod/${BPN}/${PV}/${BPN}-${PV}.tar.gz \
+"
+SRC_URI[md5sum] = "9dd9bed30c6f7607a55480234606071b"
+SRC_URI[sha256sum] = "3f363e03f7b1db75b9b6602841bbd440ed275a548e53545f980df8155de4d330"
+
+inherit autotools binconfig lib_package
+
+EXTRA_OECONF = "\
+    --disable-af \
+    --enable-alsa \
+    --disable-esd \
+    --enable-oss \
+    --disable-sam9407 \
+    --disable-ultra \
+    --disable-esdtest \
+    --enable-threads \
+"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/minidlna/minidlna.inc b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/minidlna/minidlna.inc
new file mode 100644
index 0000000..ebca755
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/minidlna/minidlna.inc
@@ -0,0 +1,39 @@
+DESCRIPTION = "MiniDLNA (aka ReadyDLNA) is server software with the aim of \
+being fully compliant with DLNA/UPnP-AV clients."
+LICENSE = "GPL-2.0|BSD"
+DEPENDS = "ffmpeg flac libav jpeg sqlite3 libexif libogg libid3tag libvorbis"
+
+# because it depends on libav which has commercial flag
+LICENSE_FLAGS = "commercial"
+
+inherit gettext autotools-brokensep update-rc.d systemd
+
+SRC_URI = "git://git.code.sf.net/p/minidlna/git;branch=master;module=git \
+           file://minidlna-daemon.init.d \
+           file://minidlna.service "
+
+S = "${WORKDIR}/git"
+
+# This remove "--exclude=autopoint" option from autoreconf argument to avoid
+# configure.ac:30: error: required file './ABOUT-NLS' not found
+EXTRA_AUTORECONF = ""
+
+do_install_append(){
+	install -d ${D}${sysconfdir}
+	install -m 0755 minidlna.conf ${D}${sysconfdir}
+
+# Systemd script
+	install -d ${D}${nonarch_base_libdir}/systemd/system
+	install -m 0755 ${WORKDIR}/minidlna.service ${D}${nonarch_base_libdir}/systemd/system
+
+# Sysvinit script
+	install -d ${D}${sysconfdir}/init.d
+	install -m 0755 ${WORKDIR}/minidlna-daemon.init.d ${D}${sysconfdir}/init.d/minidlna
+
+}
+
+SYSTEMD_SERVICE_${PN} = "minidlna.service"
+
+INITSCRIPT_NAME = "minidlna"
+INITSCRIPT_PARAMS = "defaults 90"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/minidlna/minidlna/minidlna-daemon.init.d b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/minidlna/minidlna/minidlna-daemon.init.d
new file mode 100644
index 0000000..9e64a20
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/minidlna/minidlna/minidlna-daemon.init.d
@@ -0,0 +1,54 @@
+#!/bin/sh
+
+NAME="minidlna"
+DAEMON=/usr/sbin/minidlnad
+SCRIPTNAME=/etc/init.d/$NAME
+PIDFILE=/var/run/$NAME.pid
+CONF=/etc/$NAME.conf
+ARGS="-f $CONF"
+
+# Exit if the package is not installed
+[ -x "$DAEMON" ] || exit 0
+
+start_function() {
+
+    export PATH=$PWD:$PATH
+
+    if [ -f ${PIDFILE} ]; then
+        echo "$SCRIPTNAME already running with PID #`cat $PIDFILE` ( according to ${PIDFILE} )";
+        exit 0
+    fi
+    
+    $DAEMON $ARGS
+ 
+    pid=$!
+
+    if [ "$pid" != "" ]; then
+        echo -n "$pid" > ${PIDFILE}
+    fi
+}
+
+stop_function() {
+
+    export PATH=$PWD:$PATH
+
+    if [ ! -e "${PIDFILE}" ]; then
+        echo "${SCRIPTNAME} not running ( according to ${PIDFILE} )";
+        exit 1;
+    fi
+    PID=`cat ${PIDFILE}`
+    kill -INT ${PID}
+    rm -f ${PIDFILE}
+}
+
+case $1 in
+    "start")
+        start_function
+        ;;
+    "stop")
+        stop_function
+        ;;
+    *)
+    echo "Usage: $0 {start | stop}"
+
+esac
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/minidlna/minidlna/minidlna.service b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/minidlna/minidlna/minidlna.service
new file mode 100644
index 0000000..656100b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/minidlna/minidlna/minidlna.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Minidlna Daemon
+After=network.target
+
+[Service]
+Type=notify
+ExecStart=/usr/sbin/minidlnad -f /etc/minidlna.conf
+
+[Install]
+WantedBy=multi-user.target
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/minidlna/minidlna_1.1.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/minidlna/minidlna_1.1.5.bb
new file mode 100644
index 0000000..7c6db62
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/minidlna/minidlna_1.1.5.bb
@@ -0,0 +1,4 @@
+require ${BPN}.inc
+
+SRCREV = "v1_1_5"
+LIC_FILES_CHKSUM = "file://LICENCE.miniupnpd;md5=b0dabf9d8e0f871554e309d62ead8d2b"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer-common.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer-common.bb
new file mode 100644
index 0000000..829c3b2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer-common.bb
@@ -0,0 +1,23 @@
+# Copyright Matthias Hentges <devel@hentges.net> (c) 2006
+# License: MIT (see COPYING.MIT)
+
+SUMMARY = "Preconfigured mplayer preferences"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+PV = "0.0.1"
+PR = "r1"
+
+SRC_URI = "file://mplayer.conf"
+
+# Yes, really /usr/etc!!!
+do_install() {
+    install -d "${D}/usr${sysconfdir}/mplayer"
+
+    install -m 0644 ${WORKDIR}/mplayer.conf "${D}/usr${sysconfdir}/mplayer"
+}
+
+FILES_${PN} = "/usr${sysconfdir}/mplayer"
+
+inherit allarch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer-common/mplayer.conf b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer-common/mplayer.conf
new file mode 100644
index 0000000..37ad65f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer-common/mplayer.conf
@@ -0,0 +1,15 @@
+
+# You probably shouldn't touch these
+ac=mad,
+ao=alsa,
+
+# Required on SL-Cxxxx for correct rotation in the *VT*,
+# breaks rotation in X!
+# vf=rotate=1
+
+# Enable fullscreen display by default
+# fs=true
+
+# Drop frames to keep audio and video in sync
+framedrop=true
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer2/0001-configure-don-t-disable-ASS-support-when-explicitly-.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer2/0001-configure-don-t-disable-ASS-support-when-explicitly-.patch
new file mode 100644
index 0000000..e232595
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer2/0001-configure-don-t-disable-ASS-support-when-explicitly-.patch
@@ -0,0 +1,26 @@
+From 3541649b711a773aa2e42ac80d9b4c1b36fce23f Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Thu, 27 Mar 2014 00:08:54 +0100
+Subject: [PATCH] configure: don't disable ASS support when explicitly enabled
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ configure | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure b/configure
+index 60fd308..2f7df3b 100755
+--- a/configure
++++ b/configure
+@@ -4346,7 +4346,7 @@ fi
+ 
+ 
+ echocheck "SSA/ASS support"
+-if test "$_ass" = auto ; then
++if test "$_ass" = auto -o "$_ass" = yes ; then
+     if pkg_config_add libass ; then
+         _ass=yes
+         def_ass='#define CONFIG_ASS 1'
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer2/0001-demux_ogg-partially-port-libtheora-glue-code-to-Theo.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer2/0001-demux_ogg-partially-port-libtheora-glue-code-to-Theo.patch
new file mode 100644
index 0000000..b4d9841
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer2/0001-demux_ogg-partially-port-libtheora-glue-code-to-Theo.patch
@@ -0,0 +1,136 @@
+From 0571bb4f1a6e1934ee7e093ce7aa517b9bac8e6a Mon Sep 17 00:00:00 2001
+From: Awais Belal <awais_belal@mentor.com>
+Date: Sun, 17 Jan 2016 14:46:10 +0500
+Subject: [PATCH] demux_ogg: partially port libtheora glue code to Theora 1.0
+ API
+
+This partially backports the following commit to allow building
+with gcc-5.x and otherwise fails to find the definition of
+the _ilog function the way it is used.
+
+https://github.com/pigoz/mplayer-svn/commit/85e51408cd00979fc209da8e3a39b6f0e7f325bc
+
+Signed-off-by: Awais Belal <awais_belal@mentor.com>
+---
+ libmpdemux/demux_ogg.c | 52 ++++++++++++++++++++++++++------------------------
+ 1 file changed, 27 insertions(+), 25 deletions(-)
+
+diff --git a/libmpdemux/demux_ogg.c b/libmpdemux/demux_ogg.c
+index 9eea061..9144426 100644
+--- a/libmpdemux/demux_ogg.c
++++ b/libmpdemux/demux_ogg.c
+@@ -50,8 +50,7 @@
+ #endif
+ 
+ #ifdef CONFIG_OGGTHEORA
+-#include <theora/theora.h>
+-int _ilog (unsigned int); /* defined in many places in theora/lib/ */
++#include <theora/theoradec.h>
+ #endif
+ 
+ #define BLOCK_SIZE 4096
+@@ -62,9 +61,10 @@ int _ilog (unsigned int); /* defined in many places in theora/lib/ */
+  */
+ #ifdef CONFIG_OGGTHEORA
+ typedef struct theora_struct_st {
+-    theora_state   st;
+-    theora_comment cc;
+-    theora_info    inf;
++    th_setup_info *tsi;
++    th_dec_ctx    *tctx;
++    th_comment     tc;
++    th_info        ti;
+ } theora_struct_t;
+ #endif
+ 
+@@ -117,7 +117,7 @@ typedef struct ogg_stream {
+     float   samplerate; /// granulpos 2 time
+     int64_t lastpos;
+     int32_t lastsize;
+-    int     keyframe_frequency_force;
++    int     keyframe_granule_shift;
+ 
+     // Logical stream state
+     ogg_stream_state stream;
+@@ -300,11 +300,10 @@ static unsigned char *demux_ogg_read_packet(ogg_stream_t *os, ogg_packet *pack,
+            have theora_state st, until all header packets were passed to the
+            decoder. */
+         if (!pack->bytes || !(*data&0x80)) {
+-            int keyframe_granule_shift = _ilog(os->keyframe_frequency_force - 1);
+-            int64_t iframemask = (1 << keyframe_granule_shift) - 1;
++            int64_t iframemask = iframemask = (1 << os->keyframe_granule_shift) - 1;
+ 
+             if (pack->granulepos >= 0) {
+-                os->lastpos  = pack->granulepos >> keyframe_granule_shift;
++                os->lastpos  = pack->granulepos >> os->keyframe_granule_shift;
+                 os->lastpos += pack->granulepos & iframemask;
+                 *keyframe = (pack->granulepos & iframemask) == 0;
+             } else {
+@@ -888,14 +887,15 @@ int demux_ogg_open(demuxer_t *demuxer)
+ #ifdef CONFIG_OGGTHEORA
+         } else if (pack.bytes >= 7 && !strncmp (&pack.packet[1], "theora", 6)) {
+             int errorCode = 0;
+-            theora_info inf;
+-            theora_comment cc;
++            th_info ti;
++            th_comment tc;
++            th_setup_info *tsi = NULL;
+ 
+-            theora_info_init (&inf);
+-            theora_comment_init (&cc);
++            th_info_init (&ti);
++            th_comment_init (&tc);
+ 
+-            errorCode = theora_decode_header (&inf, &cc, &pack);
+-            if (errorCode) {
++            errorCode = th_decode_headerin(&ti, &tc, &tsi, &pack);
++            if (errorCode < 0) {
+                 mp_msg(MSGT_DEMUX, MSGL_ERR,
+                        "Theora header parsing failed: %i \n", errorCode);
+             } else {
+@@ -904,30 +904,32 @@ int demux_ogg_open(demuxer_t *demuxer)
+                 sh_v->bih = calloc(1, sizeof(*sh_v->bih));
+                 sh_v->bih->biSize        = sizeof(*sh_v->bih);
+                 sh_v->bih->biCompression = sh_v->format = FOURCC_THEORA;
+-                sh_v->fps = ((double)inf.fps_numerator) / (double)inf.fps_denominator;
+-                sh_v->frametime = ((double)inf.fps_denominator) / (double)inf.fps_numerator;
+-                sh_v->disp_w = sh_v->bih->biWidth  = inf.frame_width;
+-                sh_v->disp_h = sh_v->bih->biHeight = inf.frame_height;
++                sh_v->fps = ((double)ti.fps_numerator) / (double)ti.fps_denominator;
++                sh_v->frametime = ((double)ti.fps_denominator) / (double)ti.fps_numerator;
++                sh_v->i_bps  = ti.target_bitrate / 8;
++                sh_v->disp_w = sh_v->bih->biWidth  = ti.frame_width;
++                sh_v->disp_h = sh_v->bih->biHeight = ti.frame_height;
+                 sh_v->bih->biBitCount  = 24;
+                 sh_v->bih->biPlanes    = 3;
+                 sh_v->bih->biSizeImage = ((sh_v->bih->biBitCount / 8) * sh_v->bih->biWidth * sh_v->bih->biHeight);
+                 ogg_d->subs[ogg_d->num_sub].samplerate               = sh_v->fps;
+                 ogg_d->subs[ogg_d->num_sub].theora                   = 1;
+-                ogg_d->subs[ogg_d->num_sub].keyframe_frequency_force = inf.keyframe_frequency_force;
++                ogg_d->subs[ogg_d->num_sub].keyframe_granule_shift   = ti.keyframe_granule_shift;
+                 ogg_d->subs[ogg_d->num_sub].id                       = n_video;
+                 n_video++;
+                 mp_msg(MSGT_DEMUX, MSGL_INFO,
+                        "[Ogg] stream %d: video (Theora v%d.%d.%d), -vid %d\n",
+                        ogg_d->num_sub,
+-                       (int)inf.version_major,
+-                       (int)inf.version_minor,
+-                       (int)inf.version_subminor,
++                       (int)ti.version_major,
++                       (int)ti.version_minor,
++                       (int)ti.version_subminor,
+                        n_video - 1);
+                 if (mp_msg_test(MSGT_HEADER, MSGL_V))
+                     print_video_header(sh_v->bih, MSGL_V);
+             }
+-            theora_comment_clear(&cc);
+-            theora_info_clear(&inf);
++            th_comment_clear(&tc);
++            th_info_clear(&ti);
++            th_setup_free(tsi);
+ #endif /* CONFIG_OGGTHEORA */
+         } else if (pack.bytes >= 4 && !strncmp (&pack.packet[0], "fLaC", 4)) {
+             sh_a = new_sh_audio_aid(demuxer, ogg_d->num_sub, n_audio);
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer2_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer2_git.bb
new file mode 100644
index 0000000..145497a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer2_git.bb
@@ -0,0 +1,159 @@
+SUMMARY = "Open Source multimedia player"
+SECTION = "multimedia"
+HOMEPAGE = "http://www.mplayerhq.hu/"
+DEPENDS = "libvpx libdvdread libtheora virtual/libsdl ffmpeg xsp zlib \
+           libpng jpeg liba52 freetype fontconfig alsa-lib lzo ncurses \
+           libxv virtual/libx11 libass speex faad2 libxscrnsaver"
+
+RDEPENDS_${PN} = "mplayer-common"
+PROVIDES = "mplayer"
+RPROVIDES_${PN} = "mplayer"
+RCONFLICTS_${PN} = "mplayer"
+
+# Depends on xsp, libxv, virtual/libx11, libxscrnsaver
+REQUIRED_DISTRO_FEATURES = "x11"
+
+# because it depends on libpostproc/libav which has commercial flag
+LICENSE_FLAGS = "${@bb.utils.contains('PACKAGECONFIG', 'postproc', 'commercial', '', d)}"
+
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d32239bcb673463ab874e80d47fae504"
+
+SRC_URI = "git://repo.or.cz/mplayer.git \
+    file://0001-configure-don-t-disable-ASS-support-when-explicitly-.patch \
+    file://0001-demux_ogg-partially-port-libtheora-glue-code-to-Theo.patch \
+"
+
+SRCREV = "2c378c71a4d9b1df382db9aa787b646628b4e3f9"
+
+ARM_INSTRUCTION_SET = "arm"
+
+PV = "2.0+gitr${SRCPV}"
+PR = "r13"
+
+PARALLEL_MAKE = ""
+
+S = "${WORKDIR}/git"
+
+FILES_${PN} = "${bindir}/mplayer ${libdir} /usr/etc/mplayer/"
+CONFFILES_${PN} += "/usr/etc/mplayer/input.conf \
+                    /usr/etc/mplayer/example.conf \
+                    /usr/etc/mplayer/codecs.conf \
+"
+
+inherit autotools-brokensep pkgconfig python3native
+
+EXTRA_OECONF = " \
+    --prefix=/usr \
+    --mandir=${mandir} \
+    --target=${SIMPLE_TARGET_SYS} \
+    \
+    --disable-lirc \
+    --disable-lircc \
+    --disable-joystick \
+    --disable-vm \
+    --disable-xf86keysym \
+    --enable-tv \
+    --enable-tv-v4l2 \
+    --disable-tv-bsdbt848 \
+    --enable-rtc \
+    --enable-networking \
+    --disable-smb \
+    --disable-dvdnav \
+    --enable-dvdread \
+    --disable-dvdread-internal \
+    --disable-libdvdcss-internal \
+    --disable-enca \
+    --disable-ftp \
+    --disable-vstream \
+    \
+    --disable-gif \
+    --enable-png \
+    --enable-jpeg \
+    --disable-libcdio \
+    --disable-qtx \
+    --disable-xanim \
+    --disable-real \
+    --disable-xvid \
+    \
+    --enable-speex \
+    --enable-theora \
+    --disable-ladspa \
+    --disable-libdv \
+    --enable-mad \
+    --disable-xmms \
+    --disable-musepack \
+    \
+    --disable-gl \
+    --enable-sdl \
+    --disable-caca \
+    --disable-directx \
+    --disable-dvb \
+    --enable-xv \
+    --disable-vm \
+    --disable-xinerama \
+    --enable-x11 \
+    --disable-directfb \
+    --disable-tga \
+    --disable-pnm \
+    --disable-md5sum \
+    \
+    --enable-alsa \
+    --enable-ossaudio \
+    --disable-pulse \
+    --disable-jack \
+    --disable-openal \
+    --enable-select \
+    --enable-libass \
+    \
+    --extra-libs=' -lXext -lX11 -lvorbis -ltheoradec -lasound ' \
+"
+# -ltheoradec is missing in:
+# libmpcodecs/vd_theora.o: undefined reference to symbol 'theora_decode_init@@libtheora.so.1.0'
+
+EXTRA_OECONF_append_armv6 = " --enable-armv6"
+EXTRA_OECONF_append_armv7a = " --enable-armv6 --enable-neon"
+
+PACKAGECONFIG ??= "vorbis postproc"
+PACKAGECONFIG[mad] = "--enable-mad,--disable-mad,libmad"
+PACKAGECONFIG[a52] = "--enable-liba52,--disable-liba52,liba52"
+PACKAGECONFIG[lame] = ",,lame"
+PACKAGECONFIG[postproc] = ",--disable-libpostproc,libpostproc"
+PACKAGECONFIG[vorbis] = ",--disable-libvorbis,libvorbis"
+PACKAGECONFIG[portaudio] = ",--disable-portaudio,portaudio-v19"
+PACKAGECONFIG[mpg123] = ",--disable-mpg123,mpg123"
+PACKAGECONFIG[directfb] = "--enable-directfb,--disable-directfb,directfb"
+
+FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O4 -ffast-math"
+BUILD_OPTIMIZATION = "${FULL_OPTIMIZATION}"
+
+CFLAGS_append = " -I${S}/libdvdread4 "
+
+do_configure() {
+    sed -i 's|/usr/include|${STAGING_INCDIR}|g' ${S}/configure
+    sed -i 's|/usr/lib|${STAGING_LIBDIR}|g' ${S}/configure
+    sed -i 's|/usr/\S*include[\w/]*||g' ${S}/configure
+    sed -i 's|/usr/\S*lib[\w/]*||g' ${S}/configure
+    sed -i 's|_install_strip="-s"|_install_strip=""|g' ${S}/configure
+    sed -i 's|HOST_CC|BUILD_CC|' ${S}/Makefile
+    sed -i 's|extra_cflags="-I. $extra_cflags"|extra_cflags="-I. -I${STAGING_INCDIR}/directfb $extra_cflags"|g' ${S}/configure
+    export SIMPLE_TARGET_SYS="$(echo ${TARGET_SYS} | sed s:${TARGET_VENDOR}::g)"
+    ./configure ${EXTRA_OECONF}
+    
+}
+
+do_compile () {
+    oe_runmake
+}
+
+do_install() {
+    oe_runmake 'DESTDIR=${D}' install-no-man
+    install -d ${D}/usr/etc/mplayer
+    install ${S}/etc/input.conf ${D}/usr/etc/mplayer/
+    install ${S}/etc/example.conf ${D}/usr/etc/mplayer/
+    install ${S}/etc/codecs.conf ${D}/usr/etc/mplayer/
+    [ -e ${D}/usr/lib ] && rmdir ${D}/usr/lib
+}
+
+# http://errors.yoctoproject.org/Errors/Details/40734/
+PNBLACKLIST[mplayer2] ?= "Not compatible with currently used ffmpeg 3"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/opus-tools/opus-tools_0.1.8.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/opus-tools/opus-tools_0.1.8.bb
new file mode 100644
index 0000000..ff63111
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/opus-tools/opus-tools_0.1.8.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Opus Audio Tools"
+HOMEPAGE = "http://www.opus-codec.org/"
+
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=843a066da9f1facfcc6ea6f616ffecb1"
+
+SRC_URI = "http://downloads.xiph.org/releases/opus/opus-tools-${PV}.tar.gz"
+SRC_URI[md5sum] = "b424790eda9357a4df394e2d7ca19eac"
+SRC_URI[sha256sum] = "e4e188579ea1c4e4d5066460d4a7214a7eafe3539e9a4466fdc98af41ba4a2f6"
+
+S = "${WORKDIR}/opus-tools-${PV}"
+
+DEPENDS = "libopus flac"
+
+inherit autotools pkgconfig
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_3.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_3.0.bb
new file mode 100644
index 0000000..84227b4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_3.0.bb
@@ -0,0 +1,13 @@
+DESCRIPTION = "PulseAudio Volume Control (pavucontrol) is a simple GTK based volume control tool ("mixer") for the PulseAudio sound server."
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe"
+
+DEPENDS = "intltool gtkmm libcanberra pulseaudio"
+
+inherit gnome
+
+SRC_URI = "http://freedesktop.org/software/pulseaudio/${BPN}/${BP}.tar.xz"
+SRC_URI[md5sum] = "176308d2c03f8f3a7b2bd4f4d284fe71"
+SRC_URI[sha256sum] = "b3d2ea5a25fc88dcee80c396014f72df1b4742f8cfbbc5349c39d64a0d338890"
+
+EXTRA_OECONF = " --disable-gtk3 --disable-lynx "
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/sound-themes/sound-theme-freedesktop_0.8.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/sound-themes/sound-theme-freedesktop_0.8.bb
new file mode 100644
index 0000000..098b08d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/sound-themes/sound-theme-freedesktop_0.8.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Freedesktop sound theme"
+HOMEPAGE = "http://freedesktop.org/wiki/Specifications/sound-theme-spec"
+LICENSE = "GPLv2+ & CC-BY-3.0 & CC-BY-SA-3.0"
+LIC_FILES_CHKSUM = "file://CREDITS;md5=3213e601ce34bb42ddc3498903ac4e69"
+
+# glib-2.0 for glib-gettext.m4 which provides AM_GLIB_GNU_GETTEXT
+# intltool for intltool.m4 which provides IT_PROG_INTLTOOL
+DEPENDS = "glib-2.0 intltool-native"
+
+inherit autotools gettext
+
+DEPENDS += "glib-2.0-native intltool-native"
+
+SRC_URI = "http://people.freedesktop.org/~mccann/dist/${BPN}-${PV}.tar.bz2"
+SRC_URI[md5sum] = "d7387912cfd275282d1ec94483cb2f62"
+SRC_URI[sha256sum] = "cb518b20eef05ec2e82dda1fa89a292c1760dc023aba91b8aa69bafac85e8a14"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch
new file mode 100644
index 0000000..4b3de3c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch
@@ -0,0 +1,41 @@
+From 4ee15a8a69b84526ece1180a288a37db077bcd9b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 27 Feb 2015 21:55:36 +0000
+Subject: [PATCH] Revert "media-ctl: Don't install libmediactl and
+ libv4l2subdev"
+
+This reverts commit 0911dce53b08b0df3066be2c75f67e8a314d8729.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Conflicts:
+	utils/media-ctl/Makefile.am
+---
+ utils/media-ctl/Makefile.am | 11 +++--------
+ 1 file changed, 3 insertions(+), 8 deletions(-)
+
+diff --git a/utils/media-ctl/Makefile.am b/utils/media-ctl/Makefile.am
+index a3931fb..fe1fea5 100644
+--- a/utils/media-ctl/Makefile.am
++++ b/utils/media-ctl/Makefile.am
+@@ -1,14 +1,9 @@
+-noinst_LTLIBRARIES = libmediactl.la libv4l2subdev.la
+-
++lib_LTLIBRARIES = libmediactl.la libv4l2subdev.la
+ libmediactl_la_SOURCES = libmediactl.c mediactl-priv.h
+-libmediactl_la_CFLAGS = -static $(LIBUDEV_CFLAGS)
+-libmediactl_la_LDFLAGS = -static $(LIBUDEV_LIBS)
+-
++libmediactl_la_CFLAGS = $(LIBUDEV_CFLAGS)
++libmediactl_la_LDFLAGS = $(LIBUDEV_LIBS)
+ libv4l2subdev_la_SOURCES = libv4l2subdev.c
+ libv4l2subdev_la_LIBADD = libmediactl.la
+-libv4l2subdev_la_CFLAGS = -static
+-libv4l2subdev_la_LDFLAGS = -static
+-
+ mediactl_includedir=$(includedir)/mediactl
+ noinst_HEADERS = mediactl.h v4l2subdev.h
+ 
+-- 
+2.1.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/export-mediactl-headers.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/export-mediactl-headers.patch
new file mode 100644
index 0000000..c610e7e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/export-mediactl-headers.patch
@@ -0,0 +1,15 @@
+Index: v4l-utils-1.6.2/utils/media-ctl/Makefile.am
+===================================================================
+--- v4l-utils-1.6.2.orig/utils/media-ctl/Makefile.am
++++ v4l-utils-1.6.2/utils/media-ctl/Makefile.am
+@@ -4,8 +4,8 @@ libmediactl_la_CFLAGS = $(LIBUDEV_CFLAGS
+ libmediactl_la_LDFLAGS = $(LIBUDEV_LIBS)
+ libv4l2subdev_la_SOURCES = libv4l2subdev.c
+ libv4l2subdev_la_LIBADD = libmediactl.la
+-mediactl_includedir=$(includedir)/mediactl
+-noinst_HEADERS = mediactl.h v4l2subdev.h
++otherincludedir = $(includedir)/mediactl
++otherinclude_HEADERS = mediactl.h v4l2subdev.h
+ 
+ pkgconfig_DATA = libmediactl.pc
+ bin_PROGRAMS = media-ctl
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/mediactl-pkgconfig.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/mediactl-pkgconfig.patch
new file mode 100644
index 0000000..34fb3cf
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/mediactl-pkgconfig.patch
@@ -0,0 +1,12 @@
+Index: v4l-utils-1.6.2/utils/media-ctl/Makefile.am
+===================================================================
+--- v4l-utils-1.6.2.orig/utils/media-ctl/Makefile.am
++++ v4l-utils-1.6.2/utils/media-ctl/Makefile.am
+@@ -7,6 +7,7 @@ libv4l2subdev_la_LIBADD = libmediactl.la
+ mediactl_includedir=$(includedir)/mediactl
+ noinst_HEADERS = mediactl.h v4l2subdev.h
+ 
++pkgconfig_DATA = libmediactl.pc
+ bin_PROGRAMS = media-ctl
+ media_ctl_SOURCES = media-ctl.c options.c options.h tools.h
+ media_ctl_LDADD = libmediactl.la libv4l2subdev.la
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.6.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.6.2.bb
new file mode 100644
index 0000000..75a42a2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.6.2.bb
@@ -0,0 +1,45 @@
+SUMMARY = "v4l2 and IR applications"
+LICENSE = "GPLv2 & LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=48da9957849056017dc568bbc43d8975 \
+                    file://COPYING.libv4l;md5=d749e86a105281d7a44c2328acebc4b0"
+PROVIDES = "libv4l media-ctl"
+
+DEPENDS = "jpeg \
+           ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'virtual/libx11', '', d)}"
+
+inherit autotools gettext pkgconfig
+
+PACKAGECONFIG ??= "media-ctl"
+PACKAGECONFIG[media-ctl] = "--enable-v4l-utils,--disable-v4l-utils,,"
+
+SRC_URI = "http://linuxtv.org/downloads/v4l-utils/v4l-utils-${PV}.tar.bz2 \
+           file://0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch \
+           file://mediactl-pkgconfig.patch \
+           file://export-mediactl-headers.patch \
+          "
+SRC_URI[md5sum] = "9cb3c178f937954e65bf30920af433ef"
+SRC_URI[sha256sum] = "d3d6eb1f0204fb11f3d318bfca35d5f73cc077f88fac7665a47856a16496be7d"
+
+EXTRA_OECONF = "--disable-qv4l2 --enable-shared --with-udevdir=${base_libdir}/udev"
+
+VIRTUAL-RUNTIME_ir-keytable-keymaps ?= "rc-keymaps"
+
+PACKAGES =+ "media-ctl ir-keytable rc-keymaps libv4l libv4l-dbg libv4l-dev"
+
+FILES_media-ctl = "${bindir}/media-ctl ${libdir}/libmediactl.so.*"
+
+FILES_ir-keytable = "${bindir}/ir-keytable ${base_libdir}/udev/rules.d/*-infrared.rules"
+RDEPENDS_ir-keytable += "${VIRTUAL-RUNTIME_ir-keytable-keymaps}"
+
+FILES_rc-keymaps = "${sysconfdir}/rc* ${base_libdir}/udev/rc*"
+
+FILES_${PN} = "${bindir} ${sbindir}"
+
+FILES_libv4l += "${libdir}/libv4l*${SOLIBS} ${libdir}/libv4l/*.so ${libdir}/libv4l/plugins/*.so \
+                 ${libdir}/libdvbv5*${SOLIBS} \
+                 ${libdir}/libv4l/*-decomp"
+
+FILES_libv4l-dbg += "${libdir}/libv4l/.debug ${libdir}/libv4l/plugins/.debug"
+FILES_libv4l-dev += "${includedir} ${libdir}/pkgconfig \
+                     ${libdir}/libv4l*${SOLIBSDEV} ${libdir}/*.la \
+                     ${libdir}/v4l*${SOLIBSDEV} ${libdir}/libv4l/*.la ${libdir}/libv4l/plugins/*.la"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/yavta/0001-Add-stdout-mode-to-allow-streaming-over-the-network-.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/yavta/0001-Add-stdout-mode-to-allow-streaming-over-the-network-.patch
new file mode 100644
index 0000000..41a5dbf
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/yavta/0001-Add-stdout-mode-to-allow-streaming-over-the-network-.patch
@@ -0,0 +1,961 @@
+From 141d3b3593722eb3d588e7c4b1542f810bc25853 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Thu, 5 Jun 2014 11:29:20 -0500
+Subject: [PATCH] Add stdout mode to allow streaming over the network with nc
+
+Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
+Signed-off-by: Chase Maupin <Chase.Maupin@ti.com>
+---
+ yavta.c |  315 ++++++++++++++++++++++++++++++++++-----------------------------
+ 1 file changed, 169 insertions(+), 146 deletions(-)
+
+diff --git a/yavta.c b/yavta.c
+index 32adc26..b398da0 100644
+--- a/yavta.c
++++ b/yavta.c
+@@ -309,7 +309,7 @@ static bool video_has_fd(struct device *dev)
+ static int video_set_fd(struct device *dev, int fd)
+ {
+ 	if (video_has_fd(dev)) {
+-		printf("Can't set fd (already open).\n");
++		fprintf(stderr, "Can't set fd (already open).\n");
+ 		return -1;
+ 	}
+ 
+@@ -321,18 +321,18 @@ static int video_set_fd(struct device *dev, int fd)
+ static int video_open(struct device *dev, const char *devname)
+ {
+ 	if (video_has_fd(dev)) {
+-		printf("Can't open device (already open).\n");
++		fprintf(stderr, "Can't open device (already open).\n");
+ 		return -1;
+ 	}
+ 
+ 	dev->fd = open(devname, O_RDWR);
+ 	if (dev->fd < 0) {
+-		printf("Error opening device %s: %s (%d).\n", devname,
++		fprintf(stderr, "Error opening device %s: %s (%d).\n", devname,
+ 		       strerror(errno), errno);
+ 		return dev->fd;
+ 	}
+ 
+-	printf("Device %s opened.\n", devname);
++	fprintf(stderr, "Device %s opened.\n", devname);
+ 
+ 	dev->opened = 1;
+ 
+@@ -352,7 +352,7 @@ static int video_querycap(struct device *dev, unsigned int *capabilities)
+ 	*capabilities = cap.capabilities & V4L2_CAP_DEVICE_CAPS
+ 		     ? cap.device_caps : cap.capabilities;
+ 
+-	printf("Device `%s' on `%s' is a video %s (%s mplanes) device.\n",
++	fprintf(stderr, "Device `%s' on `%s' is a video %s (%s mplanes) device.\n",
+ 		cap.card, cap.bus_info,
+ 		video_is_capture(dev) ? "capture" : "output",
+ 		video_is_mplane(dev) ? "with" : "without");
+@@ -370,7 +370,7 @@ static int cap_get_buf_type(unsigned int capabilities)
+ 	} else if (capabilities & V4L2_CAP_VIDEO_OUTPUT) {
+ 		return V4L2_BUF_TYPE_VIDEO_OUTPUT;
+ 	} else {
+-		printf("Device supports neither capture nor output.\n");
++		fprintf(stderr, "Device supports neither capture nor output.\n");
+ 		return -EINVAL;
+ 	}
+ 
+@@ -440,7 +440,7 @@ static int get_control(struct device *dev, unsigned int id, int type,
+ 		}
+ 	}
+ 
+-	printf("unable to get control 0x%8.8x: %s (%d).\n",
++	fprintf(stderr, "unable to get control 0x%8.8x: %s (%d).\n",
+ 		id, strerror(errno), errno);
+ 	return -1;
+ }
+@@ -484,12 +484,12 @@ static void set_control(struct device *dev, unsigned int id, int type,
+ 			val = old.value;
+ 	}
+ 	if (ret == -1) {
+-		printf("unable to set control 0x%8.8x: %s (%d).\n",
++		fprintf(stderr, "unable to set control 0x%8.8x: %s (%d).\n",
+ 			id, strerror(errno), errno);
+ 		return;
+ 	}
+ 
+-	printf("Control 0x%08x set to %" PRId64 ", is %" PRId64 "\n",
++	fprintf(stderr, "Control 0x%08x set to %" PRId64 ", is %" PRId64 "\n",
+ 	       id, old_val, val);
+ }
+ 
+@@ -504,7 +504,7 @@ static int video_get_format(struct device *dev)
+ 
+ 	ret = ioctl(dev->fd, VIDIOC_G_FMT, &fmt);
+ 	if (ret < 0) {
+-		printf("Unable to get format: %s (%d).\n", strerror(errno),
++		fprintf(stderr, "Unable to get format: %s (%d).\n", strerror(errno),
+ 			errno);
+ 		return ret;
+ 	}
+@@ -514,7 +514,7 @@ static int video_get_format(struct device *dev)
+ 		dev->height = fmt.fmt.pix_mp.height;
+ 		dev->num_planes = fmt.fmt.pix_mp.num_planes;
+ 
+-		printf("Video format: %s (%08x) %ux%u field %s, %u planes: \n",
++	    fprintf(stderr, "Video format: %s (%08x) %ux%u field %s, %u planes: \n",
+ 			v4l2_format_name(fmt.fmt.pix_mp.pixelformat), fmt.fmt.pix_mp.pixelformat,
+ 			fmt.fmt.pix_mp.width, fmt.fmt.pix_mp.height,
+ 			v4l2_field_name(fmt.fmt.pix_mp.field),
+@@ -527,7 +527,7 @@ static int video_get_format(struct device *dev)
+ 					fmt.fmt.pix_mp.plane_fmt[i].bytesperline ?
+ 						fmt.fmt.pix_mp.plane_fmt[i].sizeimage : 0;
+ 
+-			printf(" * Stride %u, buffer size %u\n",
++			fprintf(stderr, " * Stride %u, buffer size %u\n",
+ 				fmt.fmt.pix_mp.plane_fmt[i].bytesperline,
+ 				fmt.fmt.pix_mp.plane_fmt[i].sizeimage);
+ 		}
+@@ -539,7 +539,7 @@ static int video_get_format(struct device *dev)
+ 		dev->plane_fmt[0].bytesperline = fmt.fmt.pix.bytesperline;
+ 		dev->plane_fmt[0].sizeimage = fmt.fmt.pix.bytesperline ? fmt.fmt.pix.sizeimage : 0;
+ 
+-		printf("Video format: %s (%08x) %ux%u (stride %u) field %s buffer size %u\n",
++		fprintf(stderr, "Video format: %s (%08x) %ux%u (stride %u) field %s buffer size %u\n",
+ 			v4l2_format_name(fmt.fmt.pix.pixelformat), fmt.fmt.pix.pixelformat,
+ 			fmt.fmt.pix.width, fmt.fmt.pix.height, fmt.fmt.pix.bytesperline,
+ 			v4l2_field_name(fmt.fmt.pix_mp.field),
+@@ -581,25 +581,25 @@ static int video_set_format(struct device *dev, unsigned int w, unsigned int h,
+ 
+ 	ret = ioctl(dev->fd, VIDIOC_S_FMT, &fmt);
+ 	if (ret < 0) {
+-		printf("Unable to set format: %s (%d).\n", strerror(errno),
++		fprintf(stderr, "Unable to set format: %s (%d).\n", strerror(errno),
+ 			errno);
+ 		return ret;
+ 	}
+ 
+ 	if (video_is_mplane(dev)) {
+-		printf("Video format set: %s (%08x) %ux%u field %s, %u planes: \n",
++		fprintf(stderr, "Video format set: %s (%08x) %ux%u field %s, %u planes: \n",
+ 			v4l2_format_name(fmt.fmt.pix_mp.pixelformat), fmt.fmt.pix_mp.pixelformat,
+ 			fmt.fmt.pix_mp.width, fmt.fmt.pix_mp.height,
+ 			v4l2_field_name(fmt.fmt.pix_mp.field),
+ 			fmt.fmt.pix_mp.num_planes);
+ 
+ 		for (i = 0; i < fmt.fmt.pix_mp.num_planes; i++) {
+-			printf(" * Stride %u, buffer size %u\n",
++			fprintf(stderr, " * Stride %u, buffer size %u\n",
+ 				fmt.fmt.pix_mp.plane_fmt[i].bytesperline,
+ 				fmt.fmt.pix_mp.plane_fmt[i].sizeimage);
+ 		}
+ 	} else {
+-		printf("Video format set: %s (%08x) %ux%u (stride %u) field %s buffer size %u\n",
++		fprintf(stderr, "Video format set: %s (%08x) %ux%u (stride %u) field %s buffer size %u\n",
+ 			v4l2_format_name(fmt.fmt.pix.pixelformat), fmt.fmt.pix.pixelformat,
+ 			fmt.fmt.pix.width, fmt.fmt.pix.height, fmt.fmt.pix.bytesperline,
+ 			v4l2_field_name(fmt.fmt.pix.field),
+@@ -619,16 +619,16 @@ static int video_set_framerate(struct device *dev, struct v4l2_fract *time_per_f
+ 
+ 	ret = ioctl(dev->fd, VIDIOC_G_PARM, &parm);
+ 	if (ret < 0) {
+-		printf("Unable to get frame rate: %s (%d).\n",
++		fprintf(stderr, "Unable to get frame rate: %s (%d).\n",
+ 			strerror(errno), errno);
+ 		return ret;
+ 	}
+ 
+-	printf("Current frame rate: %u/%u\n",
++	fprintf(stderr, "Current frame rate: %u/%u\n",
+ 		parm.parm.capture.timeperframe.numerator,
+ 		parm.parm.capture.timeperframe.denominator);
+ 
+-	printf("Setting frame rate to: %u/%u\n",
++	fprintf(stderr, "Setting frame rate to: %u/%u\n",
+ 		time_per_frame->numerator,
+ 		time_per_frame->denominator);
+ 
+@@ -637,19 +637,19 @@ static int video_set_framerate(struct device *dev, struct v4l2_fract *time_per_f
+ 
+ 	ret = ioctl(dev->fd, VIDIOC_S_PARM, &parm);
+ 	if (ret < 0) {
+-		printf("Unable to set frame rate: %s (%d).\n", strerror(errno),
++		fprintf(stderr, "Unable to set frame rate: %s (%d).\n", strerror(errno),
+ 			errno);
+ 		return ret;
+ 	}
+ 
+ 	ret = ioctl(dev->fd, VIDIOC_G_PARM, &parm);
+ 	if (ret < 0) {
+-		printf("Unable to get frame rate: %s (%d).\n", strerror(errno),
++		fprintf(stderr, "Unable to get frame rate: %s (%d).\n", strerror(errno),
+ 			errno);
+ 		return ret;
+ 	}
+ 
+-	printf("Frame rate set: %u/%u\n",
++	fprintf(stderr, "Frame rate set: %u/%u\n",
+ 		parm.parm.capture.timeperframe.numerator,
+ 		parm.parm.capture.timeperframe.denominator);
+ 	return 0;
+@@ -674,7 +674,7 @@ static int video_buffer_mmap(struct device *dev, struct buffer *buffer,
+ 		buffer->mem[i] = mmap(0, length, PROT_READ | PROT_WRITE, MAP_SHARED,
+ 				      dev->fd, offset);
+ 		if (buffer->mem[i] == MAP_FAILED) {
+-			printf("Unable to map buffer %u/%u: %s (%d)\n",
++			fprintf(stderr, "Unable to map buffer %u/%u: %s (%d)\n",
+ 			       buffer->idx, i, strerror(errno), errno);
+ 			return -1;
+ 		}
+@@ -682,7 +682,7 @@ static int video_buffer_mmap(struct device *dev, struct buffer *buffer,
+ 		buffer->size[i] = length;
+ 		buffer->padding[i] = 0;
+ 
+-		printf("Buffer %u/%u mapped at address %p.\n",
++		fprintf(stderr, "Buffer %u/%u mapped at address %p.\n",
+ 		       buffer->idx, i, buffer->mem[i]);
+ 	}
+ 
+@@ -697,7 +697,7 @@ static int video_buffer_munmap(struct device *dev, struct buffer *buffer)
+ 	for (i = 0; i < dev->num_planes; i++) {
+ 		ret = munmap(buffer->mem[i], buffer->size[i]);
+ 		if (ret < 0) {
+-			printf("Unable to unmap buffer %u/%u: %s (%d)\n",
++			fprintf(stderr, "Unable to unmap buffer %u/%u: %s (%d)\n",
+ 			       buffer->idx, i, strerror(errno), errno);
+ 		}
+ 
+@@ -725,7 +725,7 @@ static int video_buffer_alloc_userptr(struct device *dev, struct buffer *buffer,
+ 		ret = posix_memalign(&buffer->mem[i], page_size,
+ 				     length + offset + padding);
+ 		if (ret < 0) {
+-			printf("Unable to allocate buffer %u/%u (%d)\n",
++			fprintf(stderr, "Unable to allocate buffer %u/%u (%d)\n",
+ 			       buffer->idx, i, ret);
+ 			return -ENOMEM;
+ 		}
+@@ -734,7 +734,7 @@ static int video_buffer_alloc_userptr(struct device *dev, struct buffer *buffer,
+ 		buffer->size[i] = length;
+ 		buffer->padding[i] = padding;
+ 
+-		printf("Buffer %u/%u allocated at address %p.\n",
++		fprintf(stderr, "Buffer %u/%u allocated at address %p.\n",
+ 		       buffer->idx, i, buffer->mem[i]);
+ 	}
+ 
+@@ -809,12 +809,12 @@ static int video_alloc_buffers(struct device *dev, int nbufs,
+ 
+ 	ret = ioctl(dev->fd, VIDIOC_REQBUFS, &rb);
+ 	if (ret < 0) {
+-		printf("Unable to request buffers: %s (%d).\n", strerror(errno),
++		fprintf(stderr, "Unable to request buffers: %s (%d).\n", strerror(errno),
+ 			errno);
+ 		return ret;
+ 	}
+ 
+-	printf("%u buffers requested.\n", rb.count);
++	fprintf(stderr, "%u buffers requested.\n", rb.count);
+ 
+ 	buffers = malloc(rb.count * sizeof buffers[0]);
+ 	if (buffers == NULL)
+@@ -835,12 +835,12 @@ static int video_alloc_buffers(struct device *dev, int nbufs,
+ 
+ 		ret = ioctl(dev->fd, VIDIOC_QUERYBUF, &buf);
+ 		if (ret < 0) {
+-			printf("Unable to query buffer %u: %s (%d).\n", i,
++			fprintf(stderr, "Unable to query buffer %u: %s (%d).\n", i,
+ 				strerror(errno), errno);
+ 			return ret;
+ 		}
+ 		get_ts_flags(buf.flags, &ts_type, &ts_source);
+-		printf("length: %u offset: %u timestamp type/source: %s/%s\n",
++		fprintf(stderr, "length: %u offset: %u timestamp type/source: %s/%s\n",
+ 		       buf.length, buf.m.offset, ts_type, ts_source);
+ 
+ 		buffers[i].idx = i;
+@@ -899,12 +899,12 @@ static int video_free_buffers(struct device *dev)
+ 
+ 	ret = ioctl(dev->fd, VIDIOC_REQBUFS, &rb);
+ 	if (ret < 0) {
+-		printf("Unable to release buffers: %s (%d).\n",
++		fprintf(stderr, "Unable to release buffers: %s (%d).\n",
+ 			strerror(errno), errno);
+ 		return ret;
+ 	}
+ 
+-	printf("%u buffers released.\n", dev->nbufs);
++	fprintf(stderr, "%u buffers released.\n", dev->nbufs);
+ 
+ 	free(dev->buffers);
+ 	dev->nbufs = 0;
+@@ -974,7 +974,7 @@ static int video_queue_buffer(struct device *dev, int index, enum buffer_fill_mo
+ 
+ 	ret = ioctl(dev->fd, VIDIOC_QBUF, &buf);
+ 	if (ret < 0)
+-		printf("Unable to queue buffer: %s (%d).\n",
++		fprintf(stderr, "Unable to queue buffer: %s (%d).\n",
+ 			strerror(errno), errno);
+ 
+ 	return ret;
+@@ -987,7 +987,7 @@ static int video_enable(struct device *dev, int enable)
+ 
+ 	ret = ioctl(dev->fd, enable ? VIDIOC_STREAMON : VIDIOC_STREAMOFF, &type);
+ 	if (ret < 0) {
+-		printf("Unable to %s streaming: %s (%d).\n",
++		fprintf(stderr, "Unable to %s streaming: %s (%d).\n",
+ 			enable ? "start" : "stop", strerror(errno), errno);
+ 		return ret;
+ 	}
+@@ -1009,10 +1009,10 @@ static void video_query_menu(struct device *dev, struct v4l2_queryctrl *query,
+ 			continue;
+ 
+ 		if (query->type == V4L2_CTRL_TYPE_MENU)
+-			printf("  %u: %.32s%s\n", menu.index, menu.name,
++			fprintf(stderr, "  %u: %.32s%s\n", menu.index, menu.name,
+ 			       menu.index == value ? " (*)" : "");
+ 		else
+-			printf("  %u: %lld%s\n", menu.index, menu.value,
++			fprintf(stderr, "  %u: %lld%s\n", menu.index, menu.value,
+ 			       menu.index == value ? " (*)" : "");
+ 	};
+ }
+@@ -1043,7 +1043,7 @@ static void video_list_controls(struct device *dev)
+ 			continue;
+ 
+ 		if (query.type == V4L2_CTRL_TYPE_CTRL_CLASS) {
+-			printf("--- %s (class 0x%08x) ---\n", query.name, query.id);
++			fprintf(stderr, "--- %s (class 0x%08x) ---\n", query.name, query.id);
+ 			continue;
+ 		}
+ 
+@@ -1053,7 +1053,7 @@ static void video_list_controls(struct device *dev)
+ 		else
+ 			sprintf(value, "%" PRId64, val64);
+ 
+-		printf("control 0x%08x `%s' min %d max %d step %d default %d current %s.\n",
++		fprintf(stderr, "control 0x%08x `%s' min %d max %d step %d default %d current %s.\n",
+ 			query.id, query.name, query.minimum, query.maximum,
+ 			query.step, query.default_value, value);
+ 
+@@ -1065,9 +1065,9 @@ static void video_list_controls(struct device *dev)
+ 	}
+ 
+ 	if (nctrls)
+-		printf("%u control%s found.\n", nctrls, nctrls > 1 ? "s" : "");
++		fprintf(stderr, "%u control%s found.\n", nctrls, nctrls > 1 ? "s" : "");
+ 	else
+-		printf("No control found.\n");
++		fprintf(stderr, "No control found.\n");
+ }
+ 
+ static void video_enum_frame_intervals(struct device *dev, __u32 pixelformat,
+@@ -1088,30 +1088,30 @@ static void video_enum_frame_intervals(struct device *dev, __u32 pixelformat,
+ 			break;
+ 
+ 		if (i != ival.index)
+-			printf("Warning: driver returned wrong ival index "
++			fprintf(stderr, "Warning: driver returned wrong ival index "
+ 				"%u.\n", ival.index);
+ 		if (pixelformat != ival.pixel_format)
+-			printf("Warning: driver returned wrong ival pixel "
++			fprintf(stderr, "Warning: driver returned wrong ival pixel "
+ 				"format %08x.\n", ival.pixel_format);
+ 		if (width != ival.width)
+-			printf("Warning: driver returned wrong ival width "
++			fprintf(stderr, "Warning: driver returned wrong ival width "
+ 				"%u.\n", ival.width);
+ 		if (height != ival.height)
+-			printf("Warning: driver returned wrong ival height "
++			fprintf(stderr, "Warning: driver returned wrong ival height "
+ 				"%u.\n", ival.height);
+ 
+ 		if (i != 0)
+-			printf(", ");
++			fprintf(stderr, ", ");
+ 
+ 		switch (ival.type) {
+ 		case V4L2_FRMIVAL_TYPE_DISCRETE:
+-			printf("%u/%u",
++			fprintf(stderr, "%u/%u",
+ 				ival.discrete.numerator,
+ 				ival.discrete.denominator);
+ 			break;
+ 
+ 		case V4L2_FRMIVAL_TYPE_CONTINUOUS:
+-			printf("%u/%u - %u/%u",
++			fprintf(stderr, "%u/%u - %u/%u",
+ 				ival.stepwise.min.numerator,
+ 				ival.stepwise.min.denominator,
+ 				ival.stepwise.max.numerator,
+@@ -1119,7 +1119,7 @@ static void video_enum_frame_intervals(struct device *dev, __u32 pixelformat,
+ 			return;
+ 
+ 		case V4L2_FRMIVAL_TYPE_STEPWISE:
+-			printf("%u/%u - %u/%u (by %u/%u)",
++			fprintf(stderr, "%u/%u - %u/%u (by %u/%u)",
+ 				ival.stepwise.min.numerator,
+ 				ival.stepwise.min.denominator,
+ 				ival.stepwise.max.numerator,
+@@ -1149,23 +1149,23 @@ static void video_enum_frame_sizes(struct device *dev, __u32 pixelformat)
+ 			break;
+ 
+ 		if (i != frame.index)
+-			printf("Warning: driver returned wrong frame index "
++			fprintf(stderr, "Warning: driver returned wrong frame index "
+ 				"%u.\n", frame.index);
+ 		if (pixelformat != frame.pixel_format)
+-			printf("Warning: driver returned wrong frame pixel "
++			fprintf(stderr, "Warning: driver returned wrong frame pixel "
+ 				"format %08x.\n", frame.pixel_format);
+ 
+ 		switch (frame.type) {
+ 		case V4L2_FRMSIZE_TYPE_DISCRETE:
+-			printf("\tFrame size: %ux%u (", frame.discrete.width,
++			fprintf(stderr, "\tFrame size: %ux%u (", frame.discrete.width,
+ 				frame.discrete.height);
+ 			video_enum_frame_intervals(dev, frame.pixel_format,
+ 				frame.discrete.width, frame.discrete.height);
+-			printf(")\n");
++			fprintf(stderr, ")\n");
+ 			break;
+ 
+ 		case V4L2_FRMSIZE_TYPE_CONTINUOUS:
+-			printf("\tFrame size: %ux%u - %ux%u (",
++			fprintf(stderr, "\tFrame size: %ux%u - %ux%u (",
+ 				frame.stepwise.min_width,
+ 				frame.stepwise.min_height,
+ 				frame.stepwise.max_width,
+@@ -1173,11 +1173,11 @@ static void video_enum_frame_sizes(struct device *dev, __u32 pixelformat)
+ 			video_enum_frame_intervals(dev, frame.pixel_format,
+ 				frame.stepwise.max_width,
+ 				frame.stepwise.max_height);
+-			printf(")\n");
++			fprintf(stderr, ")\n");
+ 			break;
+ 
+ 		case V4L2_FRMSIZE_TYPE_STEPWISE:
+-			printf("\tFrame size: %ux%u - %ux%u (by %ux%u) (\n",
++			fprintf(stderr, "\tFrame size: %ux%u - %ux%u (by %ux%u) (\n",
+ 				frame.stepwise.min_width,
+ 				frame.stepwise.min_height,
+ 				frame.stepwise.max_width,
+@@ -1187,7 +1187,7 @@ static void video_enum_frame_sizes(struct device *dev, __u32 pixelformat)
+ 			video_enum_frame_intervals(dev, frame.pixel_format,
+ 				frame.stepwise.max_width,
+ 				frame.stepwise.max_height);
+-			printf(")\n");
++			fprintf(stderr, ")\n");
+ 			break;
+ 
+ 		default:
+@@ -1211,19 +1211,19 @@ static void video_enum_formats(struct device *dev, enum v4l2_buf_type type)
+ 			break;
+ 
+ 		if (i != fmt.index)
+-			printf("Warning: driver returned wrong format index "
++			fprintf(stderr, "Warning: driver returned wrong format index "
+ 				"%u.\n", fmt.index);
+ 		if (type != fmt.type)
+-			printf("Warning: driver returned wrong format type "
++			fprintf(stderr, "Warning: driver returned wrong format type "
+ 				"%u.\n", fmt.type);
+ 
+-		printf("\tFormat %u: %s (%08x)\n", i,
++		fprintf(stderr, "\tFormat %u: %s (%08x)\n", i,
+ 			v4l2_format_name(fmt.pixelformat), fmt.pixelformat);
+-		printf("\tType: %s (%u)\n", v4l2_buf_type_name(fmt.type),
++		fprintf(stderr, "\tType: %s (%u)\n", v4l2_buf_type_name(fmt.type),
+ 			fmt.type);
+-		printf("\tName: %.32s\n", fmt.description);
++		fprintf(stderr, "\tName: %.32s\n", fmt.description);
+ 		video_enum_frame_sizes(dev, fmt.pixelformat);
+-		printf("\n");
++		fprintf(stderr, "\n");
+ 	}
+ }
+ 
+@@ -1241,13 +1241,13 @@ static void video_enum_inputs(struct device *dev)
+ 			break;
+ 
+ 		if (i != input.index)
+-			printf("Warning: driver returned wrong input index "
++			fprintf(stderr, "Warning: driver returned wrong input index "
+ 				"%u.\n", input.index);
+ 
+-		printf("\tInput %u: %s.\n", i, input.name);
++		fprintf(stderr, "\tInput %u: %s.\n", i, input.name);
+ 	}
+ 
+-	printf("\n");
++	fprintf(stderr, "\n");
+ }
+ 
+ static int video_get_input(struct device *dev)
+@@ -1257,7 +1257,7 @@ static int video_get_input(struct device *dev)
+ 
+ 	ret = ioctl(dev->fd, VIDIOC_G_INPUT, &input);
+ 	if (ret < 0) {
+-		printf("Unable to get current input: %s (%d).\n",
++		fprintf(stderr, "Unable to get current input: %s (%d).\n",
+ 			strerror(errno), errno);
+ 		return ret;
+ 	}
+@@ -1272,7 +1272,7 @@ static int video_set_input(struct device *dev, unsigned int input)
+ 
+ 	ret = ioctl(dev->fd, VIDIOC_S_INPUT, &_input);
+ 	if (ret < 0)
+-		printf("Unable to select input %u: %s (%d).\n", input,
++		fprintf(stderr, "Unable to select input %u: %s (%d).\n", input,
+ 			strerror(errno), errno);
+ 
+ 	return ret;
+@@ -1291,14 +1291,14 @@ static int video_set_quality(struct device *dev, unsigned int quality)
+ 
+ 	ret = ioctl(dev->fd, VIDIOC_S_JPEGCOMP, &jpeg);
+ 	if (ret < 0) {
+-		printf("Unable to set quality to %u: %s (%d).\n", quality,
++		fprintf(stderr, "Unable to set quality to %u: %s (%d).\n", quality,
+ 			strerror(errno), errno);
+ 		return ret;
+ 	}
+ 
+ 	ret = ioctl(dev->fd, VIDIOC_G_JPEGCOMP, &jpeg);
+ 	if (ret >= 0)
+-		printf("Quality set to %u\n", jpeg.quality);
++		fprintf(stderr, "Quality set to %u\n", jpeg.quality);
+ 
+ 	return 0;
+ }
+@@ -1313,7 +1313,7 @@ static int video_load_test_pattern(struct device *dev, const char *filename)
+ 	if (filename != NULL) {
+ 		fd = open(filename, O_RDONLY);
+ 		if (fd == -1) {
+-			printf("Unable to open test pattern file '%s': %s (%d).\n",
++			fprintf(stderr, "Unable to open test pattern file '%s': %s (%d).\n",
+ 				filename, strerror(errno), errno);
+ 			return -errno;
+ 		}
+@@ -1331,7 +1331,7 @@ static int video_load_test_pattern(struct device *dev, const char *filename)
+ 		if (filename != NULL) {
+ 			ret = read(fd, dev->pattern[plane], size);
+ 			if (ret != (int)size && dev->plane_fmt[plane].bytesperline != 0) {
+-				printf("Test pattern file size %u doesn't match image size %u\n",
++				fprintf(stderr, "Test pattern file size %u doesn't match image size %u\n",
+ 					ret, size);
+ 				ret = -EINVAL;
+ 				goto done;
+@@ -1341,7 +1341,7 @@ static int video_load_test_pattern(struct device *dev, const char *filename)
+ 			unsigned int i;
+ 
+ 			if (dev->plane_fmt[plane].bytesperline == 0) {
+-				printf("Compressed format detected for plane %u and no test pattern filename given.\n"
++				fprintf(stderr, "Compressed format detected for plane %u and no test pattern filename given.\n"
+ 					"The test pattern can't be generated automatically.\n", plane);
+ 				ret = -EINVAL;
+ 				goto done;
+@@ -1410,7 +1410,7 @@ static void video_verify_buffer(struct device *dev, struct v4l2_buffer *buf)
+ 
+ 		if (dev->plane_fmt[plane].sizeimage &&
+ 		    dev->plane_fmt[plane].sizeimage != length)
+-			printf("Warning: bytes used %u != image size %u for plane %u\n",
++			fprintf(stderr, "Warning: bytes used %u != image size %u for plane %u\n",
+ 			       length, dev->plane_fmt[plane].sizeimage, plane);
+ 
+ 		if (buffer->padding[plane] == 0)
+@@ -1424,16 +1424,16 @@ static void video_verify_buffer(struct device *dev, struct v4l2_buffer *buf)
+ 		}
+ 
+ 		if (errors) {
+-			printf("Warning: %u bytes overwritten among %u first padding bytes for plane %u\n",
++			fprintf(stderr, "Warning: %u bytes overwritten among %u first padding bytes for plane %u\n",
+ 			       errors, dirty, plane);
+ 
+ 			dirty = (dirty + 15) & ~15;
+ 			dirty = dirty > 32 ? 32 : dirty;
+ 
+ 			for (i = 0; i < dirty; ++i) {
+-				printf("%02x ", data[i]);
++				fprintf(stderr, "%02x ", data[i]);
+ 				if (i % 16 == 15)
+-					printf("\n");
++					fprintf(stderr, "\n");
+ 			}
+ 		}
+ 	}
+@@ -1481,18 +1481,32 @@ static void video_save_image(struct device *dev, struct v4l2_buffer *buf,
+ 
+ 		ret = write(fd, dev->buffers[buf->index].mem[i], length);
+ 		if (ret < 0) {
+-			printf("write error: %s (%d)\n", strerror(errno), errno);
++			fprintf(stderr, "write error: %s (%d)\n", strerror(errno), errno);
+ 			break;
+ 		} else if (ret != (int)length)
+-			printf("write error: only %d bytes written instead of %u\n",
++			fprintf(stderr, "write error: only %d bytes written instead of %u\n",
+ 			       ret, length);
+ 	}
+ 	close(fd);
+ }
+ 
++static void video_stdout_image(struct device *dev, struct v4l2_buffer *buf)
++{
++    int ret;
++
++    fprintf(stderr, "stdout");
++    ret = fwrite(dev->buffers[buf->index].mem, buf->bytesused, 1, stdout);
++
++    if (ret < 0)
++        fprintf(stderr, "write error: %s (%d)\n", strerror(errno), errno);
++    else if (ret != (int)buf->bytesused)
++        fprintf(stderr, "write error: only %d bytes written instead of %u\n",
++                ret, buf->bytesused);
++}
++
+ static int video_do_capture(struct device *dev, unsigned int nframes,
+ 	unsigned int skip, unsigned int delay, const char *pattern,
+-	int do_requeue_last, enum buffer_fill_mode fill)
++	int do_requeue_last, enum buffer_fill_mode fill, int do_stdout)
+ {
+ 	struct v4l2_plane planes[VIDEO_MAX_PLANES];
+ 	struct v4l2_buffer buf;
+@@ -1529,7 +1543,7 @@ static int video_do_capture(struct device *dev, unsigned int nframes,
+ 		ret = ioctl(dev->fd, VIDIOC_DQBUF, &buf);
+ 		if (ret < 0) {
+ 			if (errno != EIO) {
+-				printf("Unable to dequeue buffer: %s (%d).\n",
++				fprintf(stderr, "Unable to dequeue buffer: %s (%d).\n",
+ 					strerror(errno), errno);
+ 				goto done;
+ 			}
+@@ -1550,7 +1564,7 @@ static int video_do_capture(struct device *dev, unsigned int nframes,
+ 
+ 		clock_gettime(CLOCK_MONOTONIC, &ts);
+ 		get_ts_flags(buf.flags, &ts_type, &ts_source);
+-		printf("%u (%u) [%c] %s %u %u B %ld.%06ld %ld.%06ld %.3f fps ts %s/%s\n", i, buf.index,
++		fprintf(stderr, "%u (%u) [%c] %s %u %u B %ld.%06ld %ld.%06ld %.3f fps ts %s/%s\n", i, buf.index,
+ 			(buf.flags & V4L2_BUF_FLAG_ERROR) ? 'E' : '-',
+ 			v4l2_field_name(buf.field),
+ 			buf.sequence, buf.bytesused, buf.timestamp.tv_sec,
+@@ -1563,6 +1577,9 @@ static int video_do_capture(struct device *dev, unsigned int nframes,
+ 		if (video_is_capture(dev) && pattern && !skip)
+ 			video_save_image(dev, &buf, pattern, i);
+ 
++		if (video_is_capture(dev) && do_stdout && !skip)
++			video_stdout_image(dev, &buf);
++
+ 		if (skip)
+ 			--skip;
+ 
+@@ -1577,7 +1594,7 @@ static int video_do_capture(struct device *dev, unsigned int nframes,
+ 
+ 		ret = video_queue_buffer(dev, buf.index, fill);
+ 		if (ret < 0) {
+-			printf("Unable to requeue buffer: %s (%d).\n",
++			fprintf(stderr, "Unable to requeue buffer: %s (%d).\n",
+ 				strerror(errno), errno);
+ 			goto done;
+ 		}
+@@ -1587,7 +1604,7 @@ static int video_do_capture(struct device *dev, unsigned int nframes,
+ 	video_enable(dev, 0);
+ 
+ 	if (nframes == 0) {
+-		printf("No frames captured.\n");
++		fprintf(stderr, "No frames captured.\n");
+ 		goto done;
+ 	}
+ 
+@@ -1604,7 +1621,7 @@ static int video_do_capture(struct device *dev, unsigned int nframes,
+ 	bps = size/(ts.tv_nsec/1000.0+1000000.0*ts.tv_sec)*1000000.0;
+ 	fps = i/(ts.tv_nsec/1000.0+1000000.0*ts.tv_sec)*1000000.0;
+ 
+-	printf("Captured %u frames in %lu.%06lu seconds (%f fps, %f B/s).\n",
++	fprintf(stderr, "Captured %u frames in %lu.%06lu seconds (%f fps, %f B/s).\n",
+ 		i, ts.tv_sec, ts.tv_nsec/1000, fps, bps);
+ 
+ done:
+@@ -1616,42 +1633,42 @@ done:
+ 
+ static void usage(const char *argv0)
+ {
+-	printf("Usage: %s [options] device\n", argv0);
+-	printf("Supported options:\n");
+-	printf("-B, --buffer-type		Buffer type (\"capture\", \"output\",\n");
+-	printf("                                \"capture-mplane\" or \"output-mplane\")\n");
+-	printf("-c, --capture[=nframes]		Capture frames\n");
+-	printf("-C, --check-overrun		Verify dequeued frames for buffer overrun\n");
+-	printf("-d, --delay			Delay (in ms) before requeuing buffers\n");
+-	printf("-f, --format format		Set the video format\n");
+-	printf("-F, --file[=name]		Read/write frames from/to disk\n");
+-	printf("\tFor video capture devices, the first '#' character in the file name is\n");
+-	printf("\texpanded to the frame sequence number. The default file name is\n");
+-	printf("\t'frame-#.bin'.\n");
+-	printf("-h, --help			Show this help screen\n");
+-	printf("-i, --input input		Select the video input\n");
+-	printf("-I, --fill-frames		Fill frames with check pattern before queuing them\n");
+-	printf("-l, --list-controls		List available controls\n");
+-	printf("-n, --nbufs n			Set the number of video buffers\n");
+-	printf("-p, --pause			Pause before starting the video stream\n");
+-	printf("-q, --quality n			MJPEG quality (0-100)\n");
+-	printf("-r, --get-control ctrl		Get control 'ctrl'\n");
+-	printf("-R, --realtime=[priority]	Enable realtime RR scheduling\n");
+-	printf("-s, --size WxH			Set the frame size\n");
+-	printf("-t, --time-per-frame num/denom	Set the time per frame (eg. 1/25 = 25 fps)\n");
+-	printf("-u, --userptr			Use the user pointers streaming method\n");
+-	printf("-w, --set-control 'ctrl value'	Set control 'ctrl' to 'value'\n");
+-	printf("    --enum-formats		Enumerate formats\n");
+-	printf("    --enum-inputs		Enumerate inputs\n");
+-	printf("    --fd                        Use a numeric file descriptor insted of a device\n");
+-	printf("    --field			Interlaced format field order\n");
+-	printf("    --no-query			Don't query capabilities on open\n");
+-	printf("    --offset			User pointer buffer offset from page start\n");
+-	printf("    --requeue-last		Requeue the last buffers before streamoff\n");
+-	printf("    --timestamp-source		Set timestamp source on output buffers [eof, soe]\n");
+-	printf("    --skip n			Skip the first n frames\n");
+-	printf("    --sleep-forever		Sleep forever after configuring the device\n");
+-	printf("    --stride value		Line stride in bytes\n");
++	fprintf(stderr, "Usage: %s [options] device\n", argv0);
++	fprintf(stderr, "Supported options:\n");
++	fprintf(stderr, "-B, --buffer-type		Buffer type (\"capture\", \"output\",\n");
++	fprintf(stderr, "                                \"capture-mplane\" or \"output-mplane\")\n");
++	fprintf(stderr, "-c, --capture[=nframes]		Capture frames\n");
++	fprintf(stderr, "-C, --check-overrun		Verify dequeued frames for buffer overrun\n");
++	fprintf(stderr, "-d, --delay			Delay (in ms) before requeuing buffers\n");
++	fprintf(stderr, "-f, --format format		Set the video format\n");
++	fprintf(stderr, "-F, --file[=name]		Read/write frames from/to disk\n");
++	fprintf(stderr, "\tFor video capture devices, the first '#' character in the file name is\n");
++	fprintf(stderr, "\texpanded to the frame sequence number. The default file name is\n");
++	fprintf(stderr, "\t'frame-#.bin'.\n");
++	fprintf(stderr, "-h, --help			Show this help screen\n");
++	fprintf(stderr, "-i, --input input		Select the video input\n");
++	fprintf(stderr, "-I, --fill-frames		Fill frames with check pattern before queuing them\n");
++	fprintf(stderr, "-l, --list-controls		List available controls\n");
++	fprintf(stderr, "-n, --nbufs n			Set the number of video buffers\n");
++	fprintf(stderr, "-p, --pause			Pause before starting the video stream\n");
++	fprintf(stderr, "-q, --quality n			MJPEG quality (0-100)\n");
++	fprintf(stderr, "-r, --get-control ctrl		Get control 'ctrl'\n");
++	fprintf(stderr, "-R, --realtime=[priority]	Enable realtime RR scheduling\n");
++	fprintf(stderr, "-s, --size WxH			Set the frame size\n");
++	fprintf(stderr, "-t, --time-per-frame num/denom	Set the time per frame (eg. 1/25 = 25 fps)\n");
++	fprintf(stderr, "-u, --userptr			Use the user pointers streaming method\n");
++	fprintf(stderr, "-w, --set-control 'ctrl value'	Set control 'ctrl' to 'value'\n");
++	fprintf(stderr, "    --enum-formats		Enumerate formats\n");
++	fprintf(stderr, "    --enum-inputs		Enumerate inputs\n");
++	fprintf(stderr, "    --fd                        Use a numeric file descriptor insted of a device\n");
++	fprintf(stderr, "    --field			Interlaced format field order\n");
++	fprintf(stderr, "    --no-query			Don't query capabilities on open\n");
++	fprintf(stderr, "    --offset			User pointer buffer offset from page start\n");
++	fprintf(stderr, "    --requeue-last		Requeue the last buffers before streamoff\n");
++	fprintf(stderr, "    --timestamp-source		Set timestamp source on output buffers [eof, soe]\n");
++	fprintf(stderr, "    --skip n			Skip the first n frames\n");
++	fprintf(stderr, "    --sleep-forever		Sleep forever after configuring the device\n");
++	fprintf(stderr, "    --stride value		Line stride in bytes\n");
+ }
+ 
+ #define OPT_ENUM_FORMATS	256
+@@ -1665,6 +1682,7 @@ static void usage(const char *argv0)
+ #define OPT_FD			264
+ #define OPT_TSTAMP_SRC		265
+ #define OPT_FIELD		266
++#define OPT_STDOUT		267
+ 
+ static struct option opts[] = {
+ 	{"buffer-type", 1, 0, 'B'},
+@@ -1677,6 +1695,7 @@ static struct option opts[] = {
+ 	{"field", 1, 0, OPT_FIELD},
+ 	{"file", 2, 0, 'F'},
+ 	{"fill-frames", 0, 0, 'I'},
++	{"stdout", 0, 0, OPT_STDOUT},
+ 	{"format", 1, 0, 'f'},
+ 	{"help", 0, 0, 'h'},
+ 	{"input", 1, 0, 'i'},
+@@ -1717,7 +1736,8 @@ int main(int argc, char *argv[])
+ 	int do_list_controls = 0, do_get_control = 0, do_set_control = 0;
+ 	int do_sleep_forever = 0, do_requeue_last = 0;
+ 	int do_rt = 0;
+-	int no_query = 0;
++	int no_query = 0; 
++	int do_stdout = 0;
+ 	char *endptr;
+ 	int c;
+ 
+@@ -1755,7 +1775,7 @@ int main(int argc, char *argv[])
+ 		case 'B':
+ 			ret = v4l2_buf_type_from_string(optarg);
+ 			if (ret == -1) {
+-				printf("Bad buffer type \"%s\"\n", optarg);
++				fprintf(stderr, "Bad buffer type \"%s\"\n", optarg);
+ 				return 1;
+ 			}
+ 			video_set_buf_type(&dev, ret);
+@@ -1775,7 +1795,7 @@ int main(int argc, char *argv[])
+ 			do_set_format = 1;
+ 			info = v4l2_format_by_name(optarg);
+ 			if (info == NULL) {
+-				printf("Unsupported video format '%s'\n", optarg);
++				fprintf(stderr, "Unsupported video format '%s'\n", optarg);
+ 				return 1;
+ 			}
+ 			pixelformat = info->fourcc;
+@@ -1812,7 +1832,7 @@ int main(int argc, char *argv[])
+ 		case 'r':
+ 			ctrl_name = strtol(optarg, &endptr, 0);
+ 			if (*endptr != 0) {
+-				printf("Invalid control name '%s'\n", optarg);
++				fprintf(stderr, "Invalid control name '%s'\n", optarg);
+ 				return 1;
+ 			}
+ 			do_get_control = 1;
+@@ -1826,12 +1846,12 @@ int main(int argc, char *argv[])
+ 			do_set_format = 1;
+ 			width = strtol(optarg, &endptr, 10);
+ 			if (*endptr != 'x' || endptr == optarg) {
+-				printf("Invalid size '%s'\n", optarg);
++				fprintf(stderr, "Invalid size '%s'\n", optarg);
+ 				return 1;
+ 			}
+ 			height = strtol(endptr + 1, &endptr, 10);
+ 			if (*endptr != 0) {
+-				printf("Invalid size '%s'\n", optarg);
++				fprintf(stderr, "Invalid size '%s'\n", optarg);
+ 				return 1;
+ 			}
+ 			break;
+@@ -1839,12 +1859,12 @@ int main(int argc, char *argv[])
+ 			do_set_time_per_frame = 1;
+ 			time_per_frame.numerator = strtol(optarg, &endptr, 10);
+ 			if (*endptr != '/' || endptr == optarg) {
+-				printf("Invalid time per frame '%s'\n", optarg);
++				fprintf(stderr, "Invalid time per frame '%s'\n", optarg);
+ 				return 1;
+ 			}
+ 			time_per_frame.denominator = strtol(endptr + 1, &endptr, 10);
+ 			if (*endptr != 0) {
+-				printf("Invalid time per frame '%s'\n", optarg);
++				fprintf(stderr, "Invalid time per frame '%s'\n", optarg);
+ 				return 1;
+ 			}
+ 			break;
+@@ -1854,12 +1874,12 @@ int main(int argc, char *argv[])
+ 		case 'w':
+ 			ctrl_name = strtol(optarg, &endptr, 0);
+ 			if (*endptr != ' ' || endptr == optarg) {
+-				printf("Invalid control name '%s'\n", optarg);
++				fprintf(stderr, "Invalid control name '%s'\n", optarg);
+ 				return 1;
+ 			}
+ 			ctrl_value = strtol(endptr + 1, &endptr, 0);
+ 			if (*endptr != 0) {
+-				printf("Invalid control value '%s'\n", optarg);
++				fprintf(stderr, "Invalid control value '%s'\n", optarg);
+ 				return 1;
+ 			}
+ 			do_set_control = 1;
+@@ -1873,16 +1893,16 @@ int main(int argc, char *argv[])
+ 		case OPT_FD:
+ 			ret = atoi(optarg);
+ 			if (ret < 0) {
+-				printf("Bad file descriptor %d\n", ret);
++				fprintf(stderr, "Bad file descriptor %d\n", ret);
+ 				return 1;
+ 			}
+-			printf("Using file descriptor %d\n", ret);
++			fprintf(stderr, "Using file descriptor %d\n", ret);
+ 			video_set_fd(&dev, ret);
+ 			break;
+ 		case OPT_FIELD:
+ 			field = v4l2_field_from_string(optarg);
+ 			if (field == (enum v4l2_field)-1) {
+-				printf("Invalid field order '%s'\n", optarg);
++				fprintf(stderr, "Invalid field order '%s'\n", optarg);
+ 				return 1;
+ 			}
+ 			break;
+@@ -1907,22 +1927,25 @@ int main(int argc, char *argv[])
+ 			} else if (!strcmp(optarg, "soe")) {
+ 				dev.buffer_output_flags |= V4L2_BUF_FLAG_TSTAMP_SRC_SOE;
+ 			} else {
+-				printf("Invalid timestamp source %s\n", optarg);
++				fprintf(stderr, "Invalid timestamp source %s\n", optarg);
+ 				return 1;
+ 			}
+ 			break;
+ 		case OPT_USERPTR_OFFSET:
+ 			userptr_offset = atoi(optarg);
+ 			break;
++		case OPT_STDOUT:
++			do_stdout = 1;
++			break;
+ 		default:
+-			printf("Invalid option -%c\n", c);
+-			printf("Run %s -h for help.\n", argv[0]);
++			fprintf(stderr, "Invalid option -%c\n", c);
++			fprintf(stderr, "Run %s -h for help.\n", argv[0]);
+ 			return 1;
+ 		}
+ 	}
+ 
+ 	if ((fill_mode & BUFFER_FILL_PADDING) && memtype != V4L2_MEMORY_USERPTR) {
+-		printf("Buffer overrun can only be checked in USERPTR mode.\n");
++		fprintf(stderr, "Buffer overrun can only be checked in USERPTR mode.\n");
+ 		return 1;
+ 	}
+ 
+@@ -1959,7 +1982,7 @@ int main(int argc, char *argv[])
+ 		ret = get_control(&dev, ctrl_name,
+ 				  get_control_type(&dev, ctrl_name), &val);
+ 		if (ret >= 0)
+-			printf("Control 0x%08x value %" PRId64 "\n", ctrl_name, val);
++			fprintf(stderr, "Control 0x%08x value %" PRId64 "\n", ctrl_name, val);
+ 	}
+ 
+ 	if (do_set_control)
+@@ -1970,7 +1993,7 @@ int main(int argc, char *argv[])
+ 		video_list_controls(&dev);
+ 
+ 	if (do_enum_formats) {
+-		printf("- Available formats:\n");
++		fprintf(stderr, "- Available formats:\n");
+ 		video_enum_formats(&dev, V4L2_BUF_TYPE_VIDEO_CAPTURE);
+ 		video_enum_formats(&dev, V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE);
+ 		video_enum_formats(&dev, V4L2_BUF_TYPE_VIDEO_OUTPUT);
+@@ -1979,14 +2002,14 @@ int main(int argc, char *argv[])
+ 	}
+ 
+ 	if (do_enum_inputs) {
+-		printf("- Available inputs:\n");
++		fprintf(stderr, "- Available inputs:\n");
+ 		video_enum_inputs(&dev);
+ 	}
+ 
+ 	if (do_set_input) {
+ 		video_set_input(&dev, input);
+ 		ret = video_get_input(&dev);
+-		printf("Input %d selected\n", ret);
++		fprintf(stderr, "Input %d selected\n", ret);
+ 	}
+ 
+ 	/* Set the video format. */
+@@ -2028,7 +2051,7 @@ int main(int argc, char *argv[])
+ 	}
+ 
+ 	if (do_pause) {
+-		printf("Press enter to start capture\n");
++		fprintf(stderr, "Press enter to start capture\n");
+ 		getchar();
+ 	}
+ 
+@@ -2037,12 +2060,12 @@ int main(int argc, char *argv[])
+ 		sched.sched_priority = rt_priority;
+ 		ret = sched_setscheduler(0, SCHED_RR, &sched);
+ 		if (ret < 0)
+-			printf("Failed to select RR scheduler: %s (%d)\n",
++			fprintf(stderr, "Failed to select RR scheduler: %s (%d)\n",
+ 				strerror(errno), errno);
+ 	}
+ 
+ 	if (video_do_capture(&dev, nframes, skip, delay, filename,
+-			     do_requeue_last, fill_mode) < 0) {
++			     do_requeue_last, fill_mode, do_stdout) < 0) {
+ 		video_close(&dev);
+ 		return 1;
+ 	}
+-- 
+1.7.9.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/yavta_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/yavta_git.bb
new file mode 100644
index 0000000..a192d1a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/yavta_git.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Yet Another V4L2 Test Application"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=751419260aa954499f7abaabaa882bbe"
+
+SRC_URI = "git://git.ideasonboard.org/yavta.git \
+           file://0001-Add-stdout-mode-to-allow-streaming-over-the-network-.patch"
+SRCREV = "7e9f28bedc1ed3205fb5164f686aea96f27a0de2"
+
+PV = "0.0"
+PR = "r2"
+S = "${WORKDIR}/git"
+
+EXTRA_OEMAKE = "-e MAKEFLAGS="
+
+# The yavta sources include copies of the headers required to build in the
+# include directory.  The Makefile uses CFLAGS to include these, but since
+# we override the CFLAGS then we need to add this include path back in.
+CFLAGS += "-I${S}/include"
+
+do_install() {
+    install -d ${D}${bindir}
+    install -m 0755 yavta ${D}${bindir}
+}
+
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/wavpack/wavpack_4.60.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/wavpack/wavpack_4.60.1.bb
new file mode 100644
index 0000000..cc5b844
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/wavpack/wavpack_4.60.1.bb
@@ -0,0 +1,10 @@
+DESCRIPTION = "WavPack is a completely open audio compression format providing lossless, high-quality lossy, and a unique hybrid compression mode."
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://license.txt;md5=f596650807588c61fcab60bec8242df8"
+
+SRC_URI = "http://wavpack.com/wavpack-${PV}.tar.bz2"
+SRC_URI[md5sum] = "7bb1528f910e4d0003426c02db856063"
+SRC_URI[sha256sum] = "175ee4f2effd6f51e6ec487956f41177256bf892c2e8e07de5d27ed4ee6888c5"
+
+inherit autotools lib_package
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx/libvpx-configure-support-blank-prefix.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx/libvpx-configure-support-blank-prefix.patch
new file mode 100644
index 0000000..c7a6e51
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx/libvpx-configure-support-blank-prefix.patch
@@ -0,0 +1,43 @@
+Upstream: not yet
+
+Fix configure to accept "--prefix=" (a blank prefix).
+
+--- libvpx-0.9.1/build/make/configure.sh.orig	2010-06-17 09:08:56.000000000 -0400
++++ libvpx-0.9.1/build/make/configure.sh	2010-09-23 14:27:48.000000000 -0400
+@@ -444,6 +444,8 @@
+         ;;
+         --prefix=*)
+         prefix="${optval}"
++        # Distinguish between "prefix not set" and "prefix set to ''"
++        prefixset=1
+         ;;
+         --libdir=*)
+         libdir="${optval}"
+@@ -587,13 +587,23 @@ process_cmdline() {
+ }
+ 
+ post_process_common_cmdline() {
+-  prefix="${prefix:-/usr/local}"
++  if [ "$prefixset" != "1" ]
++  then
++      prefix=/usr/local
++  fi
++
++  # Strip trailing slash
+   prefix="${prefix%/}"
++
+   libdir="${libdir:-${prefix}/lib}"
+   libdir="${libdir%/}"
+-  if [ "${libdir#${prefix}}" = "${libdir}" ]; then
+-    die "Libdir ${libdir} must be a subdirectory of ${prefix}"
+-  fi
++
++  case "$libdir" in
++      "${prefix}/"*) ;;
++      *)
++          die "Libdir ${libdir} must be a subdirectory of ${prefix}"
++          ;;
++  esac
+ }
+ 
+ post_process_cmdline() {
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx_1.5.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx_1.5.0.bb
new file mode 100644
index 0000000..648818e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx_1.5.0.bb
@@ -0,0 +1,49 @@
+SUMMARY = "VPX multi-format codec"
+DESCRIPTION = "The BSD-licensed libvpx reference implementation provides en- and decoders for VP8 and VP9 bitstreams."
+HOMEPAGE = "http://www.webmproject.org/code/"
+BUGTRACKER = "http://code.google.com/p/webm/issues/list"
+SECTION = "libs/multimedia"
+LICENSE = "BSD"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d5b04755015be901744a78cc30d390d4"
+
+SRC_URI += "http://storage.googleapis.com/downloads.webmproject.org/releases/webm/${BP}.tar.bz2 \
+            file://libvpx-configure-support-blank-prefix.patch \
+           "
+SRC_URI[md5sum] = "49e59dd184caa255886683facea56fca"
+SRC_URI[sha256sum] = "306d67908625675f8e188d37a81fbfafdf5068b09d9aa52702b6fbe601c76797"
+
+# ffmpeg links with this and fails
+# sysroots/armv4t-oe-linux-gnueabi/usr/lib/libvpx.a(vpx_encoder.c.o)(.text+0xc4): unresolvable R_ARM_THM_CALL relocation against symbol `memcpy@@GLIBC_2.4'
+ARM_INSTRUCTION_SET = "arm"
+
+CFLAGS += "-fPIC"
+
+export CC
+export LD = "${CC}"
+
+VPXTARGET_armv5te = "armv5te-linux-gcc"
+VPXTARGET_armv6 = "armv6-linux-gcc"
+VPXTARGET_armv7a = "armv7-linux-gcc"
+VPXTARGET ?= "generic-gnu"
+
+CONFIGUREOPTS = " \
+    --target=${VPXTARGET} \
+    --enable-vp9 \
+    --enable-libs \
+    --disable-install-docs \
+    --disable-static \
+    --enable-shared \
+    --prefix=${prefix} \
+    --libdir=${libdir} \
+    --size-limit=16384x16384 \
+"
+
+do_configure() {
+    ${S}/configure ${CONFIGUREOPTS}
+}
+
+do_install() {
+    oe_runmake install DESTDIR=${D}
+    chown -R root:root ${D}
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/xpext/xpext/auxdir.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/xpext/xpext/auxdir.patch
new file mode 100644
index 0000000..da5841a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/xpext/xpext/auxdir.patch
@@ -0,0 +1,13 @@
+--- configure.ac.old	2005-06-03 12:53:28.000000000 +0200
++++ configure.ac	2005-06-03 12:54:29.000000000 +0200
+@@ -25,9 +25,9 @@
+ 
+ AC_PREREQ([2.57])
+ AC_INIT([spext], [1.0], [lauri.leukkunen@nokia.com], spext)
++AC_CONFIG_AUX_DIR(.)
+ AM_INIT_AUTOMAKE([dist-bzip2])
+ AM_MAINTAINER_MODE
+-AC_CONFIG_AUX_DIR(.)
+ 
+ dnl PKG_CHECK_MODULES(FIXESEXT, fixesext)
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/xpext/xpext_1.0-5.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/xpext/xpext_1.0-5.bb
new file mode 100644
index 0000000..d65546d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/xpext/xpext_1.0-5.bb
@@ -0,0 +1,17 @@
+LICENSE= "MIT"
+SUMMARY = "X Server Nokia 770 extensions library"
+SECTION = "x11/libs"
+DEPENDS = "virtual/libx11 libxext"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=db043791349ba57ad1169e1c92477cb6"
+
+SRC_URI = "http://repository.maemo.org/pool/maemo/ossw/source/x/${BPN}/${BPN}_${PV}.tar.gz \
+           file://auxdir.patch;striplevel=0"
+S = "${WORKDIR}/xpext-1.0"
+
+inherit autotools pkgconfig distro_features_check
+# depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI[md5sum] = "1b0cb67b6f2bd7c4abef17648b062896"
+SRC_URI[sha256sum] = "a3b06f5188fd9effd0799ae31352b3cd65cb913b964e2c1a923ffa9d3c08abbe"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/xsp/xsp/xsp-fix-pc.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/xsp/xsp/xsp-fix-pc.patch
new file mode 100644
index 0000000..18bc67c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/xsp/xsp/xsp-fix-pc.patch
@@ -0,0 +1,10 @@
+--- Xsp/xsp.pc.in~	2009-01-07 13:06:07.000000000 +0100
++++ Xsp/xsp.pc.in	2009-01-07 13:06:07.000000000 +0100
+@@ -6,5 +6,5 @@
+ Name: Xsp
+ Description: X Sputnik Library
+ Version: @PACKAGE_VERSION@
+-Cflags: -I${includedir}  @XSP_CFLAGS@ @X_CFLAGS@
+-Libs: -L${libdir} -lXsp @XSP_LIBS@ @X_LIBS@
++Cflags: -I${includedir}
++Libs: -L${libdir} -lXsp -lX11
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/xsp/xsp_1.0.0-8.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/xsp/xsp_1.0.0-8.bb
new file mode 100644
index 0000000..c7a068d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/xsp/xsp_1.0.0-8.bb
@@ -0,0 +1,15 @@
+LICENSE= "MIT"
+SUMMARY = "X Server Nokia 770 extensions library"
+SECTION = "x11/libs"
+DEPENDS = "virtual/libx11 libxext xpext"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ea2bda168c508c7cd8afa567b2fcc549"
+SRC_URI = "http://repository.maemo.org/pool/maemo/ossw/source/x/xsp/${BPN}_${PV}.tar.gz \
+           file://xsp-fix-pc.patch"
+S = "${WORKDIR}/Xsp"
+
+inherit autotools pkgconfig distro_features_check
+# depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI[md5sum] = "2a0d8d02228d4cbd28b6e07bb7c17cf5"
+SRC_URI[sha256sum] = "8b722b952b64841d996c70c3278499886c81bb5012991beed5f66f4158418f59"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/foxtrotgps/foxtrotgps_1.1.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-navigation/foxtrotgps/foxtrotgps_1.1.1.bb
new file mode 100644
index 0000000..d91cbcb
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/foxtrotgps/foxtrotgps_1.1.1.bb
@@ -0,0 +1,26 @@
+SUMMARY = "FoxtrotGPS is a map and GPS application using OpenStreetMap"
+AUTHOR = "Joshua Judson Rosen <rozzin@geekspace.com>"
+HOMEPAGE = "http://www.foxtrotgps.org/"
+SECTION = "x11/applications"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+DEPENDS = "curl gtk+ libglade sqlite3 libexif gpsd bluez4 intltool-native"
+
+PNBLACKLIST[foxtrotgps] ?= "${@bb.utils.contains('DISTRO_FEATURES', 'bluez5', 'bluez5 conflicts with bluez4 and bluez5 is selected in DISTRO_FEATURES', '', d)}"
+
+SRC_URI = "http://www.foxtrotgps.org/releases/${BP}.tar.gz"
+SRC_URI[md5sum] = "6777d448ee9d3ba195f9d26ea90e3163"
+SRC_URI[sha256sum] = "ae9706285510554cc0813ac92522e0d1672b0ddb065307bfacfcff3c328f6adb"
+
+inherit autotools pkgconfig perlnative gconf
+
+PR = "r2"
+
+do_configure_prepend() {
+    if [ -f ${S}/configure.in ] ; then
+    mv ${S}/configure.in ${S}/configure.ac
+    fi
+}
+
+RDEPENDS_${PN} += "python perl"
+RRECOMMENDS_${PN} = "gpsd"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gdal/gdal_1.11.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gdal/gdal_1.11.1.bb
new file mode 100644
index 0000000..012806a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gdal/gdal_1.11.1.bb
@@ -0,0 +1,114 @@
+SUMMARY = "GDAL is a translator library for raster geospatial data formats"
+HOMEPAGE = "http://www.gdal.org/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=0952e17969fab12227096b5228f23149"
+
+DEPENDS = "proj sqlite3 tiff json-c"
+
+SRC_URI = "ftp://download.osgeo.org/gdal/${PV}/${BP}.tar.xz"
+
+SRC_URI[md5sum] = "2e126d7c6605691d38f3e71b945f5c73"
+SRC_URI[sha256sum] = "20e1042cff15a71038459a299732fb342428aea9912f32df30c85790fcab6302"
+
+inherit autotools-brokensep lib_package binconfig
+
+EXTRA_OECONF = "--without-perl \
+                --without-php \
+                --without-ruby \
+                --without-python \
+                \
+                --without-grass \
+                --without-libgrass \
+                --without-cfitsio \
+                --without-dds \
+                --without-gta \
+                --without-pcidsk \
+                --without-ogdi \
+                --without-fme \
+                --without-hdf4 \
+                --without-hdf5 \
+                --without-pg \
+                --without-jpeg12 \
+                --without-ogdi \
+                --without-netcdf \
+                --without-openjpeg \
+                --without-fgdb \
+                --without-ecw \
+                --without-kakadu \
+                --without-mrsid \
+                --without-jp2mrsid \
+                --without-mrsid_lidar \
+                --without-msg \
+                --without-bsb \
+                --without-grib \
+                --without-mysql \
+                --without-ingres \
+                --without-odbc \
+                --without-dods_root \
+                --without-xml2 \
+                --without-spatialite \
+                --without-pcre \
+                --without-dwgdirect \
+                --without-dwgdirect \
+                --without-idb \
+                --without-sde \
+                --without-sde-version \
+                --without-epsilon \
+                --without-webp \
+                --without-opencl \
+                --without-opencl-include \
+                --without-opencl-lib \
+                --without-freexl \
+                --without-pam \
+                --without-poppler \
+                --without-podofo \
+                --without-podofo-lib \
+                --without-podofo-extra-lib-for-test \
+                --without-static_proj4 \
+                --without-perl \
+                --without-php \
+                --without-ruby \
+                --without-python \
+                --without-java \
+                --without-mdb \
+                --without-jvm-lib \
+                --without-jvm-lib-add-rpath \
+                --without-rasdaman \
+                --without-armadillo \
+                \
+                --with-pcraster=internal \
+                --with-geotiff=internal \
+                \
+                --with-sqlite3=${STAGING_EXECPREFIXDIR} \
+                --with-libtiff=${STAGING_EXECPREFIXDIR} \
+                --with-libjson-c=${STAGING_EXECPREFIXDIR} \
+                --with-expat=${STAGING_EXECPREFIXDIR} \
+"
+
+EXTRA_OEMAKE += "INST_DATA="${datadir}/gdal""
+
+PACKAGECONFIG ?= "geos png jasper"
+PACKAGECONFIG[geos] = "--with-geos,--without-geos,geos"
+PACKAGECONFIG[lzma] = "--with-liblzma,--without-liblzma,xz"
+PACKAGECONFIG[png] = "--with-png,--without-png,libpng"
+PACKAGECONFIG[gif] = "--with-gif,--without-gif,giflib"
+PACKAGECONFIG[jpeg] = "--with-jpeg,--without-jpeg,jpeg"
+PACKAGECONFIG[z] = "--with-libz,--without-libz,zlib"
+PACKAGECONFIG[jasper] = "--with-jasper,--without-jasper,jasper"
+PACKAGECONFIG[curl] = "--with-curl,--without-curl,curl"
+
+do_configure_prepend () {
+    # The configure script has many hardcoded paths to search
+    # for the library headers when using external libraries,
+    # workaround it.
+    sed -e 's,/usr/include,NON_EXISTENT_DIR,g' \
+        -e 's,/usr/lib,NON_EXISTENT_DIR,g' \
+        -i ${S}/configure.in
+}
+
+FILES_${PN} += "${libdir}/gdalplugins"
+
+# | gdalserver.c:124:21: error: storage size of 'sHints' isn't known
+# |      struct addrinfo sHints;
+# |                      ^
+PNBLACKLIST[gdal] ?= "BROKEN: fails to build with gcc-5"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/geoclue/files/soup-session-fix.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/geoclue/files/soup-session-fix.patch
new file mode 100644
index 0000000..70fe3f5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/geoclue/files/soup-session-fix.patch
@@ -0,0 +1,30 @@
+Upstream-Status: Upstream-Status: Inappropriate [poky 9.0 has older libsoup]
+
+Signed-off-by: Felipe F. Tonello <eu@felipetonello.com>
+
+diff --git a/src/gclue-ipclient.c b/src/gclue-ipclient.c
+index 09add30..1771d5c 100644
+--- a/src/gclue-ipclient.c
++++ b/src/gclue-ipclient.c
+@@ -83,7 +83,7 @@ gclue_ipclient_init (GClueIpclient *ipclient)
+ {
+         ipclient->priv = G_TYPE_INSTANCE_GET_PRIVATE ((ipclient), GCLUE_TYPE_IPCLIENT, GClueIpclientPrivate);
+ 
+-        ipclient->priv->soup_session = soup_session_new ();
++        ipclient->priv->soup_session = soup_session_sync_new ();
+ }
+ 
+ /**
+diff --git a/src/geoip-server/geoip-update.c b/src/geoip-server/geoip-update.c
+index 6cce7b2..ef672ba 100644
+--- a/src/geoip-server/geoip-update.c
++++ b/src/geoip-server/geoip-update.c
+@@ -214,7 +214,7 @@ main (int argc, char **argv)
+                         path = GEOIP_DATABASE_PATH;
+         }
+ 
+-        session = soup_session_new ();
++        session = soup_session_sync_new ();
+ 
+         for (i = 0; i < G_N_ELEMENTS (db_info_map); i++) {
+                 SoupMessage *msg = NULL;
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/geoclue/geoclue_2.0.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-navigation/geoclue/geoclue_2.0.0.bb
new file mode 100644
index 0000000..5e3d04e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/geoclue/geoclue_2.0.0.bb
@@ -0,0 +1,33 @@
+SUMMARY = "The Geolocation Service"
+DESCRIPTION = "Geoclue is a D-Bus service that provides location information. \
+The primary goal of the Geoclue project is to make creating location-aware applications \
+as simple as possible, while the secondary goal is to ensure that no application \
+can access location information without explicit permission from user."
+LICENSE = "GPLv2.0+"
+SECTION = "console/network"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=8114b83a0435d8136b47bd70111ce5cd"
+
+DEPENDS = "glib-2.0 dbus dbus-glib json-glib libsoup-2.4"
+
+inherit autotools pkgconfig gtk-doc
+
+SRC_URI = " \
+  http://www.freedesktop.org/software/geoclue/releases/2.0/geoclue-${PV}.tar.xz \
+  file://soup-session-fix.patch \
+"
+
+SRC_URI[md5sum] = "401ff99d530b177c62afacef0a33efd9"
+SRC_URI[sha256sum] = "4a82f184e55a163d86e0ad69bbe1bba9960bb5094220fe1f01350bceda8c67a1"
+
+PACKAGECONFIG[geoip] = "--enable-geoip-server,--disable-geoip-server,geoip"
+
+EXTRA_OECONF += " \
+  --with-dbus-service-user=root \
+  --with-dbus-sys-dir=${sysconfdir}/dbus-1/system.d \
+"
+
+FILES_${PN} += " \
+  ${datadir}/dbus-1/system-services/org.freedesktop.GeoClue2.service \
+  ${datadir}/geoclue-2.0/geoclue-interface.xml \
+"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/geos/files/geos-config-Add-includedir-variable.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/geos/files/geos-config-Add-includedir-variable.patch
new file mode 100644
index 0000000..645e6f6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/geos/files/geos-config-Add-includedir-variable.patch
@@ -0,0 +1,39 @@
+From 9d51027c228dafd7db2d0cffca1f0fc695e950fd Mon Sep 17 00:00:00 2001
+From: Otavio Salvador <otavio@ossystems.com.br>
+Date: Mon, 2 Dec 2013 11:33:26 -0200
+Subject: [PATCH] geos-config: Add includedir variable
+
+This fixes cross-compile as it is easier to mangle the includedir
+during sysroot generation.
+
+Upstream-Status: Pending
+
+Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
+---
+ tools/geos-config.in |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/tools/geos-config.in b/tools/geos-config.in
+index 9b45b5f..1749892 100644
+--- a/tools/geos-config.in
++++ b/tools/geos-config.in
+@@ -1,6 +1,7 @@
+ #!/bin/sh
+ prefix=@prefix@
+ exec_prefix=@exec_prefix@
++includedir=@includedir@
+ libdir=@libdir@
+ 
+ usage()
+@@ -38,7 +39,7 @@ case $1 in
+     echo @VERSION@
+      ;;
+     --cflags)
+-    echo -I${prefix}/include 
++    echo -I${includedir}
+       ;;
+     --libs)
+       # TODO: make an alias for --clibs
+-- 
+1.7.10.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/geos/geos.inc b/import-layers/meta-openembedded/meta-oe/recipes-navigation/geos/geos.inc
new file mode 100644
index 0000000..2e308b4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/geos/geos.inc
@@ -0,0 +1,21 @@
+DESCRIPTION = "GEOS - Geometry Engine, Open Source"
+HOMEPAGE = "http://trac.osgeo.org/geos/"
+SECTION = "libs"
+
+LICENSE = "LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
+
+SRC_URI = "http://download.osgeo.org/geos/geos-${PV}.tar.bz2"
+
+inherit autotools pkgconfig binconfig
+
+PACKAGES =+ "geoslib ${PN}-c1"
+
+DESCRIPTION_${PN}lib = "Geometry engine for Geographic Information Systems - C++ Library"
+FILES_${PN}lib += "${libdir}/libgeos-${PV}.so"
+
+DESCRIPTION_${PN}-c1 = "Geometry engine for Geographic Information Systems - C Library"
+FILES_${PN}-c1 += "${libdir}/libgeos_c.so.*"
+
+ALLOW_EMPTY_${PN} = "1"
+RDEPENDS_${PN} += "geoslib ${PN}-c1"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/geos/geos_3.4.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-navigation/geos/geos_3.4.2.bb
new file mode 100644
index 0000000..3a9a028e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/geos/geos_3.4.2.bb
@@ -0,0 +1,6 @@
+require geos.inc
+
+SRC_URI += "file://geos-config-Add-includedir-variable.patch"
+
+SRC_URI[md5sum] = "fc5df2d926eb7e67f988a43a92683bae"
+SRC_URI[sha256sum] = "15e8bfdf7e29087a957b56ac543ea9a80321481cef4d4f63a7b268953ad26c53"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-Check-for-__STDC_NO_ATOMICS__-before-using-stdatomic.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-Check-for-__STDC_NO_ATOMICS__-before-using-stdatomic.patch
new file mode 100644
index 0000000..82ac5aa
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-Check-for-__STDC_NO_ATOMICS__-before-using-stdatomic.patch
@@ -0,0 +1,25 @@
+From c30716be9e615513fe66993fd3cdc818c3d70410 Mon Sep 17 00:00:00 2001
+From: "Gary E. Miller" <gem@rellim.com>
+Date: Sun, 15 Mar 2015 11:51:45 -0700
+Subject: [PATCH 1/3] Check for __STDC_NO_ATOMICS__ before using stdatomic.h
+
+---
+ SConstruct | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/SConstruct b/SConstruct
+index adf473d..566c14a 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -633,7 +633,7 @@ else:
+         announce("You do not have kernel CANbus available.")
+         env["nmea2000"] = False
+ 
+-    if config.CheckHeader("stdatomic.h"):
++    if not config.CheckCompilerDefines("__STDC_NO_ATOMICS__") and config.CheckHeader("stdatomic.h"):
+         confdefs.append("#define HAVE_STDATOMIC_H 1\n")
+     else:
+ 	confdefs.append("/* #undef HAVE_STDATOMIC_H */\n")
+-- 
+2.1.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-Include-stdatomic.h-only-in-C-mode.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-Include-stdatomic.h-only-in-C-mode.patch
new file mode 100644
index 0000000..bc9167e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-Include-stdatomic.h-only-in-C-mode.patch
@@ -0,0 +1,43 @@
+From 79f6d9133378325d70a92e66f7352c1becefbb88 Mon Sep 17 00:00:00 2001
+From: Gleb Smirnoff <glebius@FreeBSD.org>
+Date: Sat, 16 May 2015 02:47:28 +0300
+Subject: [PATCH] Include <stdatomic.h> only in C mode.
+
+Upstream-Status: Backport from 3.15
+
+Without this build with gcc-5.2 fails with:
+| arm-oe-linux-gnueabi-g++ -march=armv4t -mthumb -mthumb-interwork -mtune=arm920t --sysroot=/OE/build/shr-core/tmp-glibc/sysroots/om-gta02 -o clock_gettime-qt.os -c -O2 -pipe -g -feliminate-unused-debug-types --sysroot=/OE/build/shr-core/tmp-glibc/sysroots/om-gta02 -Wextra -Wall -Wno-uninitialized -Wno-missing-field-initializers -Wcast-align -Wmissing-declarations -Wpointer-arith -Wreturn-type -pthread -Wmissing-declarations -g -O0 -pthread -fPIC -DUSE_QT -DQT_SHARED -I/OE/build/shr-core/tmp-glibc/sysroots/om-gta02/usr/include/dbus-1.0 -I/OE/build/shr-core/tmp-glibc/sysroots/om-gta02/usr/lib/dbus-1.0/include -I/OE/build/shr-core/tmp-glibc/sysroots/om-gta02/usr/include/qt4/QtNetwork -I/OE/build/shr-core/tmp-glibc/sysroots/om-gta02/usr/include/qt4 -I/OE/build/shr-core/tmp-glibc/sysroots/om-gta02/usr/include/qt4/QtCore clock_gettime.c
+| In file included from compiler.h:50:0,
+|                  from clock_gettime.c:10:
+| /OE/build/shr-core/tmp-glibc/sysroots/x86_64-linux/usr/lib/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/5.2.0/include/stdatomic.h:40:9: error: '_Atomic' does not name a type
+|  typedef _Atomic _Bool atomic_bool;
+|          ^
+....
+
+More info:
+https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60932
+
+Signed-off-by: Gary E. Miller <gem@rellim.com>
+---
+ compiler.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/compiler.h b/compiler.h
+index 837c935..03430c0 100644
+--- a/compiler.h
++++ b/compiler.h
+@@ -66,9 +66,9 @@
+     } while (0)
+ 
+ #ifdef HAVE_STDATOMIC_H
+-#ifndef __COVERITY__	/* Coverity is confused by a GNU typedef */
++#if !defined(__COVERITY__) && !defined(__cplusplus)
+ #include <stdatomic.h>
+-#endif /* __COVERITY__ */
++#endif /* __COVERITY__ || __cplusplus */
+ #endif /* HAVE_STDATOMIC_H */
+ 
+ #ifdef HAVE_OSATOMIC_H
+-- 
+2.5.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch
new file mode 100644
index 0000000..2ea3226
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch
@@ -0,0 +1,75 @@
+From 1e2cea8945bc2183fbe1a012dcd633a352125952 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Tue, 24 Apr 2012 18:45:14 +0200
+Subject: [PATCH] SConstruct: prefix includepy with sysroot and drop sysroot
+ from python_lib_dir
+
+* without PYTHONPATH, distutil's sysconfig returns INCLUDEPY without sysroot prefix
+  and with PYTHONPATH from OE it's pointing to native python dir
+
+    $ export PYTHONPATH=/OE/shr-core/tmp-eglibc/sysroots/om-gta02/usr/lib/python2.7/
+    $ python
+    Python 2.7.2 (default, Apr 18 2012, 09:19:59)
+    [GCC 4.6.2] on linux2
+    Type "help", "copyright", "credits" or "license" for more information.
+    >>> from distutils import sysconfig
+    >>> sysconfig.get_config_vars('INCLUDEPY')
+    ['/OE/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/include/python2.7']
+    >>>
+    $ unset PYTHONPATH
+    $ python
+    Python 2.7.2 (default, Apr 18 2012, 09:19:59)
+    [GCC 4.6.2] on linux2
+    Type "help", "copyright", "credits" or "license" for more information.
+    >>> from distutils import sysconfig
+    >>> sysconfig.get_config_vars('INCLUDEPY')
+    ['/python2.7']
+    >>> import sysconfig
+    >>> sysconfig.get_config_vars('INCLUDEPY')
+    ['/OE/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/include/python2.7']
+* python_lib_dir = python_lib_dir.replace(env['sysroot'], '')
+  returns path to target sysroot
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+Signed-off-by: Peter A. Bigot <pab@pabigot.com>
+---
+ SConstruct | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/SConstruct b/SConstruct
+index 6c93311..cde8b3d 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -1148,6 +1148,12 @@ else:
+         basecflags += ' -coverage'
+         ldflags += ' -coverage'
+         ldshared += ' -coverage'
++
++    if env['sysroot']:
++        print "Prefixing includepy '%s' with sysroot prefix" % includepy
++        includepy = os.path.normpath("%s/%s/%s/%s" % (env['sysroot'], env['prefix'], env['includedir'], includepy))
++        print "'%s'" % includepy
++
+     # in case CC/CXX was set to the scan-build wrapper,
+     # ensure that we build the python modules with scan-build, too
+     if env['CC'] is None or env['CC'].find('scan-build') < 0:
+@@ -1408,11 +1414,14 @@ if not env['python']:
+     python_install = []
+ else:
+     python_lib_dir = env['python_libdir']
++    python_lib_dir = python_lib_dir.replace(env['sysroot'], '')
+     python_module_dir = python_lib_dir + os.sep + 'gps'
+     python_extensions_install = python_env.Install( DESTDIR + python_module_dir,
+                                                     python_built_extensions)
+     if not env['debug'] and not env['profiling'] and not env['nostrip'] and not sys.platform.startswith('darwin'):
+         python_env.AddPostAction(python_extensions_install, '$STRIP $TARGET')
++    env.AddPostAction(python_extensions_install, '$CHRPATH -r "%s" "$TARGET"' \
++                     % (python_lib_dir, ))
+ 
+     python_modules_install = python_env.Install( DESTDIR + python_module_dir,
+                                                 python_modules)
+-- 
+2.1.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch
new file mode 100644
index 0000000..c4134f4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch
@@ -0,0 +1,33 @@
+From 3c5fb3a8691ac711ea93edf8e0b42bffc62b197e Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Tue, 24 Apr 2012 11:52:35 +0200
+Subject: [PATCH 1/4] SConstruct: respect sysroot also in SPLINTOPTS
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@no-log.org>
+Signed-off-by: Peter A. Bigot <pab@pabigot.com>
+---
+ SConstruct | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/SConstruct b/SConstruct
+index 14e2f59..f0cafa8 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -1414,7 +1414,10 @@ def Utility(target, source, action):
+ # Report splint warnings
+ # Note: test_bits.c is unsplintable because of the PRI64 macros.
+ # If you get preprocessor or fatal errors, add +showscan.
+-splintopts = "-I/usr/include/libusb-1.0 +quiet"
++if not env['sysroot']:
++    splintopts = "-I/usr/include/libusb-1.0 +quiet"
++else:
++    splintopts = "-I%s/usr/include/libusb-1.0 +quiet" % env['sysroot']
+ # splint does not know about multi-arch, work around that
+ ma_status, ma = _getstatusoutput('dpkg-architecture -qDEB_HOST_MULTIARCH')
+ if ma_status == 0:
+-- 
+1.8.5.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-libgpsd-core-Fix-issue-with-ACTIVATE-hook-not-being-.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-libgpsd-core-Fix-issue-with-ACTIVATE-hook-not-being-.patch
new file mode 100644
index 0000000..7a06795
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0001-libgpsd-core-Fix-issue-with-ACTIVATE-hook-not-being-.patch
@@ -0,0 +1,35 @@
+From 6ff099b1ba8de74df9ddeb61e3825264b96ef692 Mon Sep 17 00:00:00 2001
+From: Moritz Fischer <moritz.fischer@ettus.com>
+Date: Tue, 22 Dec 2015 19:38:31 -0800
+Subject: [PATCH] libgpsd-core: Fix issue with ACTIVATE hook not being called.
+
+In the current system session->mode seemed to ignore the
+O_OPTIMIZE flag, leading to the ACTIVATE hook being ignored.
+
+Another way to fix this would be to keep the session->mode
+condition pull up the check for O_CONTINUE.
+
+Upstream-Status: Backported
+This patch is in upstream git
+
+Signed-off-by: Moritz Fischer <moritz.fischer@ettus.com>
+---
+ libgpsd_core.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libgpsd_core.c b/libgpsd_core.c
+index 31fec2a..a84e85f 100644
+--- a/libgpsd_core.c
++++ b/libgpsd_core.c
+@@ -543,7 +543,7 @@ int gpsd_open(struct gps_device_t *session)
+ int gpsd_activate(struct gps_device_t *session, const int mode)
+ /* acquire a connection to the GPS device */
+ {
+-    if (session->mode == O_OPTIMIZE)
++    if (mode == O_OPTIMIZE)
+ 	gpsd_run_device_hook(&session->context->errout,
+ 			     session->gpsdata.dev.path, "ACTIVATE");
+     session->gpsdata.gps_fd = gpsd_open(session);
+-- 
+2.4.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0002-Add-a-test-for-C11-and-check-we-have-C11-before-usin.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0002-Add-a-test-for-C11-and-check-we-have-C11-before-usin.patch
new file mode 100644
index 0000000..22ee1bd
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0002-Add-a-test-for-C11-and-check-we-have-C11-before-usin.patch
@@ -0,0 +1,57 @@
+From 99444b3d2c4a4f7fd7128e60461005780d0c5c83 Mon Sep 17 00:00:00 2001
+From: "Gary E. Miller" <gem@rellim.com>
+Date: Sun, 15 Mar 2015 12:05:15 -0700
+Subject: [PATCH 2/3] Add a test for C11 and check we have C11 before using
+ stdatomic.h
+
+---
+ SConstruct | 19 ++++++++++++++++++-
+ 1 file changed, 18 insertions(+), 1 deletion(-)
+
+diff --git a/SConstruct b/SConstruct
+index 566c14a..faa8651 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -473,6 +473,20 @@ def CheckCompilerDefines(context, define):
+     context.Result(ret)
+     return ret
+ 
++# Check if this compiler is C11 or better
++def CheckC11(context):
++    context.Message( 'Checking if compiler is C11 ...' )
++    ret = context.TryLink("""
++	#if (__STDC_VERSION__ < 201112L) 
++        #error Not C11
++        #endif
++        int main(int argc, char **argv) {
++            return 0;
++        }
++    """,'.c')
++    context.Result(ret)
++    return ret
++
+ def GetLoadPath(context):
+     context.Message("Getting system load path ...")
+ 
+@@ -491,6 +505,7 @@ else:
+                                              'CheckXsltproc' : CheckXsltproc,
+                                              'CheckCompilerOption' : CheckCompilerOption,
+                                              'CheckCompilerDefines' : CheckCompilerDefines,
++                                             'CheckC11' : CheckC11,
+                                              'CheckHeaderDefines' : CheckHeaderDefines})
+ 
+ 
+@@ -633,7 +648,9 @@ else:
+         announce("You do not have kernel CANbus available.")
+         env["nmea2000"] = False
+ 
+-    if not config.CheckCompilerDefines("__STDC_NO_ATOMICS__") and config.CheckHeader("stdatomic.h"):
++    # check for C11 or better, and __STDC__NO_ATOMICS__ is no defined
++    # before looking for stdatomic.h
++    if not config.CheckC11() and  not config.CheckCompilerDefines("__STDC_NO_ATOMICS__") and config.CheckHeader("stdatomic.h"):
+         confdefs.append("#define HAVE_STDATOMIC_H 1\n")
+     else:
+ 	confdefs.append("/* #undef HAVE_STDATOMIC_H */\n")
+-- 
+2.1.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0002-SConstruct-remove-rpath.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0002-SConstruct-remove-rpath.patch
new file mode 100644
index 0000000..083a662
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0002-SConstruct-remove-rpath.patch
@@ -0,0 +1,45 @@
+From d090638ff983e509162d5e3b62aa4918de4aa5fa Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Tue, 24 Apr 2012 16:24:35 +0200
+Subject: [PATCH 2/4] SConstruct: remove rpath
+
+* even with correct prefix (without DESTDIR) included it's redundant
+  WARNING: QA Issue: libgps:
+  /work/armv4t-oe-linux-gnueabi/gpsd/gpsd-3.5-r0/packages-split/libgps/usr/lib/libgps.so.20.0
+  contains probably-redundant RPATH /usr/lib
+* and with prefix from scons.bbclass it's invalid
+  WARNING: QA Issue: package libgps contains bad RPATH
+  /OE/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/gpsd/gpsd-3.5-r0/image/usr/lib
+  in file
+  /OE/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/gpsd/gpsd-3.5-r0/packages-split/libgps/usr/lib/libgps.so.20.0
+
+Upstream-Status: Inapppropriate [embedded specific]
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@no-log.org>
+Signed-off-by: Peter A. Bigot <pab@pabigot.com>
+---
+ SConstruct | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/SConstruct b/SConstruct
+index f0cafa8..ff46713 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -1340,8 +1340,11 @@ if qt_env:
+     binaryinstall.append(LibraryInstall(qt_env, installdir('libdir'), compiled_qgpsmmlib))
+ 
+ if env["shared"] and env["chrpath"]:
+-    env.AddPostAction(binaryinstall, '$CHRPATH -r "%s" "$TARGET"' \
+-                      % (installdir('libdir', False), ))
++    if not env['sysroot']:
++        env.AddPostAction(binaryinstall, '$CHRPATH -r "%s" "$TARGET"' \
++                          % (installdir('libdir', False), ))
++    else:
++        env.AddPostAction(binaryinstall, '$CHRPATH -d "$TARGET"')
+ 
+ if not env['debug'] and not env['profiling'] and env['strip']:
+     env.AddPostAction(binaryinstall, '$STRIP $TARGET')
+-- 
+1.8.5.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0003-Whoops-check-for-C11-not-for-not-C11-in-stdatomic.h-.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0003-Whoops-check-for-C11-not-for-not-C11-in-stdatomic.h-.patch
new file mode 100644
index 0000000..8bb0928
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0003-Whoops-check-for-C11-not-for-not-C11-in-stdatomic.h-.patch
@@ -0,0 +1,26 @@
+From 674c50ee54fd7cd304e8b3c4b33d3ff1272ed191 Mon Sep 17 00:00:00 2001
+From: "Gary E. Miller" <gem@rellim.com>
+Date: Sun, 15 Mar 2015 12:17:51 -0700
+Subject: [PATCH 3/3] Whoops, check for C11, not for not C11 in stdatomic.h
+ test.
+
+---
+ SConstruct | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/SConstruct b/SConstruct
+index faa8651..f4ea145 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -650,7 +650,7 @@ else:
+ 
+     # check for C11 or better, and __STDC__NO_ATOMICS__ is no defined
+     # before looking for stdatomic.h
+-    if not config.CheckC11() and  not config.CheckCompilerDefines("__STDC_NO_ATOMICS__") and config.CheckHeader("stdatomic.h"):
++    if config.CheckC11() and  not config.CheckCompilerDefines("__STDC_NO_ATOMICS__") and config.CheckHeader("stdatomic.h"):
+         confdefs.append("#define HAVE_STDATOMIC_H 1\n")
+     else:
+ 	confdefs.append("/* #undef HAVE_STDATOMIC_H */\n")
+-- 
+2.1.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0004-SConstruct-disable-html-and-man-docs-building-becaus.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0004-SConstruct-disable-html-and-man-docs-building-becaus.patch
new file mode 100644
index 0000000..8527f0d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-3.14/0004-SConstruct-disable-html-and-man-docs-building-becaus.patch
@@ -0,0 +1,52 @@
+From 697e2e9ff97487266d817cdd41bacc83f681e3d7 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Sun, 29 Apr 2012 00:05:59 +0200
+Subject: [PATCH 4/4] SConstruct: disable html and man docs building because
+ xmlto-native from OE is broken
+
+It will try to load dtd and fail:
+| xmlto man gpsctl.xml; mv `basename gpsctl.1` gpsctl.1
+| xmlto: /var/lib/jenkins/jobs/shr-core-branches/workspace/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/gpsd-3.4-r2/gpsd-3.4/gpsctl.xml does not validate (status 3)
+| xmlto: Fix document syntax or use --skip-validation option
+| I/O error : Attempt to load network entity http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd
+| /var/lib/jenkins/jobs/shr-core-branches/workspace/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/gpsd-3.4-r2/gpsd-3.4/gpsctl.xml:8: warning: failed to load external entity "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"
+|    "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
+|                                                               ^
+| I/O error : Attempt to load network entity http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd
+| warning: failed to load external entity "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"
+| validity error : Could not load the external subset "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"
+| Document /var/lib/jenkins/jobs/shr-core-branches/workspace/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/gpsd-3.4-r2/gpsd-3.4/gpsctl.xml does not validate
+| mv: cannot stat `gpsctl.1': No such file or directory
+| scons: *** [gpsctl.1] Error 1
+| scons: building terminated because of errors.
+
+Upstream-Status: Inappropriate [disable feature]
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+Signed-off-by: Peter A. Bigot <pab@pabigot.com>
+---
+ SConstruct | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/SConstruct b/SConstruct
+index 0e518e7..c01a71b 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -704,12 +704,12 @@ size_t strlcpy(/*@out@*/char *dst, /*@in@*/const char *src, size_t size);
+ 
+     manbuilder = mangenerator = htmlbuilder = None
+     if env['manbuild']:
+-        if config.CheckXsltproc():
++        if False and config.CheckXsltproc():
+             mangenerator = 'xsltproc'
+             build = "xsltproc --nonet %s $SOURCE >$TARGET"
+             htmlbuilder = build % docbook_html_uri
+             manbuilder = build % docbook_man_uri
+-        elif WhereIs("xmlto"):
++        elif False and WhereIs("xmlto"):
+             mangenerator = 'xmlto'
+             xmlto = "xmlto %s $SOURCE || mv `basename $TARGET` `dirname $TARGET`"
+             htmlbuilder = xmlto % "html-nochunks"
+-- 
+1.8.5.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-machine-conf_1.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-machine-conf_1.0.bb
new file mode 100644
index 0000000..d023c5d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd-machine-conf_1.0.bb
@@ -0,0 +1,7 @@
+SUMMARY = "Machine specific gpsd config"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/BSD;md5=3775480a712fc46a69647678acb234cb"
+
+# empty by default
+# BSP layers can add stuff like meta-openmoko example:
+# 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/60-gpsd.rules b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/60-gpsd.rules
new file mode 100644
index 0000000..61143b8
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/60-gpsd.rules
@@ -0,0 +1,47 @@
+# udev rules for gpsd
+# $Id$
+#
+# GPSes don't have their own USB device class.  They're serial-over-USB
+# devices, so what you see is actually the ID of the serial-over-USB chip.
+# Fortunately, just two of these account for over 80% of consumer-grade
+# GPS sensors.  The gpsd.hotplug.wrapper script will tell a running gpsd
+# that it should look at the device that just went active, because it
+# might be a GPS.
+#
+# The following setup works on Debian - something similar will apply on 
+# other distributions:
+# 
+#   /etc/udev/gpsd.rules
+#   /etc/udev/rules.d/025_gpsd.rules -> ../gpsd.rules
+#   /lib/udev/gpsd.hotplug.wrapper
+#   /lib/udev/gpsd.hotplug
+# 
+# Setting the link in /etc/udev/rules.d activates the rule and determines
+# when to run it on boot (similar to init.d processing).
+
+SUBSYSTEM!="tty", GOTO="gpsd_rules_end"
+
+# Prolific Technology, Inc. PL2303 Serial Port
+ATTR{idVendor}=="067b", ATTR{idProduct}=="2303", SYMLINK+="gps%n", RUN+="/lib/udev/gpsd.hotplug.wrapper"
+# ATEN International Co., Ltd UC-232A Serial Port [pl2303]
+ATTR{idVendor}=="0557", ATTR{idProduct}=="2008", SYMLINK+="gps%n", RUN+="/lib/udev/gpsd.hotplug.wrapper"
+# FTDI 8U232AM
+ATTR{idVendor}=="0403", ATTR{idProduct}=="6001", SYMLINK+="gps%n", RUN+="/lib/udev/gpsd.hotplug.wrapper"
+# Cypress M8/CY7C64013 (DeLorme uses these)
+ATTR{idVendor}=="1163", ATTR{idProduct}=="0100", SYMLINK+="gps%n", RUN+="/lib/udev/gpsd.hotplug.wrapper"
+# PS-360 OEM (Microsoft GPS sold with Street and Trips 2005)
+ATTR{idVendor}=="067b", ATTR{idProduct}=="aaa0", SYMLINK+="gps%n", RUN+="/lib/udev/gpsd.hotplug.wrapper"
+# Garmin International GPSmap, various models (tested with Garmin GPS 18 USB)
+ATTR{idVendor}=="091e", ATTR{idProduct}=="0003", SYMLINK+="gps%n", RUN+="/lib/udev/gpsd.hotplug.wrapper"
+# Cygnal Integrated Products, Inc. CP210x Composite Device (Used by Holux m241)
+ATTR{idVendor}=="10c4", ATTR{idProduct}=="ea60", SYMLINK+="gps%n", RUN+="/lib/udev/gpsd.hotplug.wrapper"
+# u-blox AG, u-blox 5 (tested with Navilock NL-402U)
+ATTR{idVendor}=="1546", ATTR{idProduct}=="01a5", SYMLINK="gps%n", RUN+="/lib/udev/gpsd.hotplug.wrapper"
+# FTDI FT232
+ATTR{idVendor}=="0403", ATTR{idProduct}=="6001", SYMLINK="gps%n", RUN+="/lib/udev/gpsd.hotplug.wrapper"
+# u-blox 4
+ATTR{idVendor}=="1546", ATTR{idProduct}=="01a4", SYMLINK="gps%n", RUN+="/lib/udev/gpsd.hotplug.wrapper"
+
+ACTION=="remove", RUN+="/lib/udev/gpsd.hotplug.wrapper"
+
+LABEL="gpsd_rules_end"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/gpsd b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/gpsd
new file mode 100755
index 0000000..ba73daf
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/gpsd
@@ -0,0 +1,136 @@
+#!/bin/sh
+### BEGIN INIT INFO
+# Provides:          gpsd
+# Required-Start:    $remote_fs $network
+# Should-Start:      bluetooth dbus udev
+# Required-Stop:     $remote_fs $network
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+# Short-Description: GPS (Global Positioning System) daemon start/stop script
+# Description:       Start/Stop script for the gpsd service daemon,
+#                    which is able to monitor one or more GPS devices
+#                    connected to a host computer, making all data on
+#                    the location and movements of the sensors available
+#                    to be queried on TCP port 2947.
+### END INIT INFO
+
+# Author: Bernd Zeimetz <bzed@debian.org>
+#
+# Please remove the "Author" lines above and replace them
+# with your own name if you copy and modify this script.
+
+# Do NOT "set -e"
+
+# PATH should only include /usr/* if it runs after the mountnfs.sh script
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+DESC="GPS (Global Positioning System) daemon"
+NAME=gpsd
+DAEMON=/usr/sbin/$NAME
+PIDFILE=/var/run/$NAME.pid
+SCRIPTNAME=/etc/init.d/$NAME
+
+# Exit if the package is not installed
+[ -x "$DAEMON" ] || exit 0
+
+# Read configuration, if present
+[ -r /etc/default/$NAME ] && . /etc/default/$NAME
+
+if [ -z "$GPSD_SOCKET" ] && [ -z "$DEVICES" ]; then
+	GPSD_SOCKET=/var/run/gpsd.sock
+fi
+
+if [ -n "$GPSD_SOCKET" ]; then
+        GPSD_OPTIONS="$GPSD_OPTIONS -F $GPSD_SOCKET"
+fi
+
+#
+# Function that starts the daemon/service
+#
+do_start()
+{
+	# Return
+	#   0 if daemon has been started
+	#   1 if daemon was already running
+	#   2 if daemon could not be started
+	start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test \
+        -- $GPSD_OPTIONS -P $PIDFILE $GPS_DEVICES > /dev/null \
+		|| return 1
+	start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
+		$GPSD_OPTIONS -P $PIDFILE $GPS_DEVICES \
+		|| return 2
+}
+
+#
+# Function that stops the daemon/service
+#
+do_stop()
+{
+	# Return
+	#   0 if daemon has been stopped
+	#   1 if daemon was already stopped
+	#   2 if daemon could not be stopped
+	#   other if a failure occurred
+	start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
+	RETVAL="$?"
+	[ "$RETVAL" = 2 ] && return 2
+	# Many daemons don't delete their pidfiles when they exit.
+	rm -f $PIDFILE
+	return "$RETVAL"
+}
+
+#
+# Function that sends a SIGHUP to the daemon/service
+#
+do_reload() {
+	#
+	# If the daemon can reload its configuration without
+	# restarting (for example, when it is sent a SIGHUP),
+	# then implement that here.
+	#
+	start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
+	return 0
+}
+
+case "$1" in
+  start)
+		echo "Starting $DESC" "$NAME"
+		do_start
+		exit $?
+	;;
+  stop)
+	echo "Stopping $DESC" "$NAME"
+	do_stop
+	exit $?
+	;;
+  status)
+       ;;
+  reload|force-reload)
+	echo "Reloading $DESC" "$NAME"
+	do_reload
+	exit $?
+	;;
+  restart)
+	#
+	# If the "reload" option is implemented then remove the
+	# 'force-reload' alias
+	#
+	echo "Restarting $DESC" "$NAME"
+	do_stop
+	case "$?" in
+	  0|1)
+		do_start
+		exit $?
+		;;
+	  *)
+	 	# Failed to stop
+		exit 1
+		;;
+	esac
+	;;
+  *)
+	echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
+	exit 3
+	;;
+esac
+
+:
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/gpsd-default b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/gpsd-default
new file mode 100644
index 0000000..0ceff03
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/gpsd-default
@@ -0,0 +1,5 @@
+# If you must specify a non-NMEA driver, uncomment and modify the next line
+GPSD_SOCKET="/var/run/gpsd.sock"
+GPSD_OPTIONS="" 
+GPS_DEVICES=""
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/gpsd.service b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/gpsd.service
new file mode 100644
index 0000000..7131a58
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/gpsd.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=GPS (Global Positioning System) Daemon
+Requires=gpsd.socket
+
+[Service]
+EnvironmentFile=/etc/default/gpsd
+ExecStart=/usr/sbin/gpsd -N $GPS_DEVICES
+
+[Install]
+Also=gpsd.socket
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.14.bb b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.14.bb
new file mode 100644
index 0000000..aef9b13
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.14.bb
@@ -0,0 +1,145 @@
+SUMMARY = "A TCP/IP Daemon simplifying the communication with GPS devices"
+SECTION = "console/network"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d217a23f408e91c94359447735bc1800"
+DEPENDS = "dbus dbus-glib ncurses python libusb1 chrpath-replacement-native pps-tools"
+PROVIDES = "virtual/gpsd"
+
+EXTRANATIVEPATH += "chrpath-native"
+
+SRC_URI = "${SAVANNAH_GNU_MIRROR}/${BPN}/${BP}.tar.gz \
+    file://0001-SConstruct-respect-sysroot-also-in-SPLINTOPTS.patch \
+    file://0002-SConstruct-remove-rpath.patch \
+    file://0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch \
+    file://0004-SConstruct-disable-html-and-man-docs-building-becaus.patch \
+    file://0001-Check-for-__STDC_NO_ATOMICS__-before-using-stdatomic.patch \
+    file://0002-Add-a-test-for-C11-and-check-we-have-C11-before-usin.patch \
+    file://0003-Whoops-check-for-C11-not-for-not-C11-in-stdatomic.h-.patch \
+    file://0001-Include-stdatomic.h-only-in-C-mode.patch \
+    file://0001-libgpsd-core-Fix-issue-with-ACTIVATE-hook-not-being-.patch \
+    file://gpsd-default \
+    file://gpsd \
+    file://60-gpsd.rules \
+    file://gpsd.service \
+"
+SRC_URI[md5sum] = "bc7467009b99e07ba461377b5da6c039"
+SRC_URI[sha256sum] = "504fc812f3c1525a1a48e04bf4d77f9a8066c201448d98089df89d58ef53a8cb"
+
+inherit scons update-rc.d python-dir pythonnative systemd bluetooth
+
+INITSCRIPT_NAME = "gpsd"
+INITSCRIPT_PARAMS = "defaults 35"
+
+SYSTEMD_OESCONS = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false',d)}"
+
+export STAGING_INCDIR
+export STAGING_LIBDIR
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)}"
+PACKAGECONFIG[bluez] = "bluez='true',bluez='false',${BLUEZ}"
+PACKAGECONFIG[qt] = "qt='yes',qt='no',qt4-x11-free"
+EXTRA_OESCONS = " \
+    sysroot=${STAGING_DIR_TARGET} \
+    libQgpsmm='false' \
+    debug='true' \
+    strip='false' \
+    chrpath='yes' \
+    systemd='${SYSTEMD_OESCONS}' \
+    ${EXTRA_OECONF} \
+"
+DISABLE_STATIC = ""
+# this cannot be used, because then chrpath is not found and only static lib is built
+# target=${HOST_SYS}
+
+do_compile_prepend() {
+    export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}"
+    export PKG_CONFIG="PKG_CONFIG_SYSROOT_DIR=\"${PKG_CONFIG_SYSROOT_DIR}\" pkg-config"
+    export STAGING_PREFIX="${STAGING_DIR_HOST}/${prefix}"
+
+    export BUILD_SYS="${BUILD_SYS}"
+    export HOST_SYS="${HOST_SYS}"
+}
+
+do_install() {
+    export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}"
+    export PKG_CONFIG="PKG_CONFIG_SYSROOT_DIR=\"${PKG_CONFIG_SYSROOT_DIR}\" pkg-config"
+    export STAGING_PREFIX="${STAGING_DIR_HOST}/${prefix}"
+
+    export BUILD_SYS="${BUILD_SYS}"
+    export HOST_SYS="${HOST_SYS}"
+
+    export DESTDIR="${D}"
+    # prefix is used for RPATH and DESTDIR/prefix for instalation
+    ${STAGING_BINDIR_NATIVE}/scons prefix=${prefix} install ${EXTRA_OESCONS}|| \
+      bbfatal "scons install execution failed."
+}
+
+do_install_append() {
+    install -d ${D}/${sysconfdir}/init.d
+    install -m 0755 ${WORKDIR}/gpsd ${D}/${sysconfdir}/init.d/
+    install -d ${D}/${sysconfdir}/default
+    install -m 0644 ${WORKDIR}/gpsd-default ${D}/${sysconfdir}/default/gpsd.default
+
+    #support for udev
+    install -d ${D}/${sysconfdir}/udev/rules.d
+    install -m 0644 ${WORKDIR}/60-gpsd.rules ${D}/${sysconfdir}/udev/rules.d
+    install -d ${D}${base_libdir}/udev/
+    install -m 0755 ${S}/gpsd.hotplug ${D}${base_libdir}/udev/
+
+    #support for python
+    install -d ${D}/${PYTHON_SITEPACKAGES_DIR}/gps
+    install -m 755 ${S}/gps/*.py ${D}/${PYTHON_SITEPACKAGES_DIR}/gps
+
+    #support for systemd
+    install -d ${D}${systemd_unitdir}/system/
+    install -m 0644 ${WORKDIR}/${BPN}.service ${D}${systemd_unitdir}/system/${BPN}.service
+    install -m 0644 ${S}/systemd/${BPN}.socket ${D}${systemd_unitdir}/system/${BPN}.socket
+}
+
+pkg_postinst_${PN}-conf() {
+    update-alternatives --install ${sysconfdir}/default/gpsd gpsd-defaults ${sysconfdir}/default/gpsd.default 10
+}
+
+pkg_postrm_${PN}-conf() {
+    update-alternatives --remove gpsd-defaults ${sysconfdir}/default/gpsd.default
+}
+
+PACKAGES =+ "libgps libgpsd python-pygps-dbg python-pygps gpsd-udev gpsd-conf gpsd-gpsctl gps-utils"
+
+FILES_${PN}-dev += "${libdir}/pkgconfdir/libgpsd.pc ${libdir}/pkgconfdir/libgps.pc \
+                    ${libdir}/libQgpsmm.prl"
+
+FILES_python-pygps-dbg += " ${libdir}/python*/site-packages/gps/.debug"
+
+RDEPENDS_${PN} = "gpsd-gpsctl"
+RRECOMMENDS_${PN} = "gpsd-conf gpsd-udev gpsd-machine-conf"
+
+SUMMARY_gpsd-udev = "udev relevant files to use gpsd hotplugging"
+FILES_gpsd-udev = "${base_libdir}/udev ${sysconfdir}/udev/*"
+RDEPENDS_gpsd-udev += "udev gpsd-conf"
+
+SUMMARY_libgpsd = "C service library used for communicating with gpsd"
+FILES_libgpsd = "${libdir}/libgpsd.so.*"
+
+SUMMARY_libgps = "C service library used for communicating with gpsd"
+FILES_libgps = "${libdir}/libgps.so.*"
+
+SUMMARY_gpsd-conf = "gpsd configuration files and init scripts"
+FILES_gpsd-conf = "${sysconfdir}"
+CONFFILES_gpsd-conf = "${sysconfdir}/default/gpsd.default"
+
+SUMMARY_gpsd-gpsctl = "Tool for tweaking GPS modes"
+FILES_gpsd-gpsctl = "${bindir}/gpsctl"
+
+SUMMARY_gps-utils = "Utils used for simulating, monitoring,... a GPS"
+FILES_gps-utils = "${bindir}/*"
+RDEPENDS_gps-utils = "python-pygps"
+
+SUMMARY_python-pygps = "Python bindings to gpsd"
+FILES_python-pygps = "${PYTHON_SITEPACKAGES_DIR}/*"
+RDEPENDS_python-pygps = "python-core python-curses gpsd python-json"
+
+RPROVIDES_${PN} += "${PN}-systemd"
+RREPLACES_${PN} += "${PN}-systemd"
+RCONFLICTS_${PN} += "${PN}-systemd"
+SYSTEMD_SERVICE_${PN} = "${PN}.socket"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/files/0001-g_type_init-is-deprecated-for-glib-2.35.0.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/files/0001-g_type_init-is-deprecated-for-glib-2.35.0.patch
new file mode 100644
index 0000000..063bea6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/files/0001-g_type_init-is-deprecated-for-glib-2.35.0.patch
@@ -0,0 +1,114 @@
+From 5b859b6e7c82f49d967c25398a8e75b61af9bcc0 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 12 Jun 2013 20:58:51 -0700
+Subject: [PATCH] g_type_init() is deprecated for glib >= 2.35.0
+
+Call it for old versions.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
+---
+ examples/list-known-gps-devices.c |    4 ++--
+ examples/simple-gps-dbus.c        |    3 ++-
+ examples/simple-gps-gypsy.c       |    4 ++--
+ examples/simple-gps-satellites.c  |    4 ++--
+ gypsy/gypsy-marshal.c             |    2 +-
+ src/main.c                        |    4 ++--
+ 6 files changed, 11 insertions(+), 10 deletions(-)
+
+diff --git a/examples/list-known-gps-devices.c b/examples/list-known-gps-devices.c
+index c7c4059..0a8b04b 100644
+--- a/examples/list-known-gps-devices.c
++++ b/examples/list-known-gps-devices.c
+@@ -20,9 +20,9 @@ main (int argc,
+     GError *error = NULL;
+     GPtrArray *known_devices;
+     int i;
+-
++#if !GLIB_CHECK_VERSION(2,35,0)
+     g_type_init ();
+-
++#endif
+     discovery = gypsy_discovery_new ();
+     known_devices = gypsy_discovery_list_devices (discovery, &error);
+ 
+diff --git a/examples/simple-gps-dbus.c b/examples/simple-gps-dbus.c
+index f7044e6..76b18aa 100644
+--- a/examples/simple-gps-dbus.c
++++ b/examples/simple-gps-dbus.c
+@@ -121,8 +121,9 @@ main (int    argc,
+ 	DBusConnection *conn;
+ 	DBusError error;
+ 	GMainLoop *mainloop;
+-
++#if !GLIB_CHECK_VERSION(2,35,0)
+ 	g_type_init ();
++#endif
+ 	conn = get_connection ();
+ 
+ 	dbus_error_init (&error);
+diff --git a/examples/simple-gps-gypsy.c b/examples/simple-gps-gypsy.c
+index 0b6b7a6..86033d9 100644
+--- a/examples/simple-gps-gypsy.c
++++ b/examples/simple-gps-gypsy.c
+@@ -67,9 +67,9 @@ main (int    argc,
+ 		g_print ("Usage: %s device\n", argv[0]);
+ 		return 0;
+ 	}
+-
++#if !GLIB_CHECK_VERSION(2,35,0) 
+ 	g_type_init ();
+-
++#endif
+ 	control = gypsy_control_get_default ();
+ 	path = gypsy_control_create (control, argv[1], &error);
+ 	if (path == NULL) {
+diff --git a/examples/simple-gps-satellites.c b/examples/simple-gps-satellites.c
+index 140c98f..9a3f95a 100644
+--- a/examples/simple-gps-satellites.c
++++ b/examples/simple-gps-satellites.c
+@@ -42,9 +42,9 @@ main (int    argc,
+ 		g_print ("Usage: %s device\n", argv[0]);
+ 		return 0;
+ 	}
+-
++#if !GLIB_CHECK_VERSION(2,35,0)
+ 	g_type_init ();
+-
++#endif
+ 	control = gypsy_control_get_default ();
+ 	path = gypsy_control_create (control, argv[1], &error);
+ 	if (path == NULL) {
+diff --git a/gypsy/gypsy-marshal.c b/gypsy/gypsy-marshal.c
+index 6964644..9ac0095 100644
+--- a/gypsy/gypsy-marshal.c
++++ b/gypsy/gypsy-marshal.c
+@@ -5,7 +5,7 @@
+ 
+ #ifdef G_ENABLE_DEBUG
+ #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
+-#define g_marshal_value_peek_char(v)     g_value_get_char (v)
++#define g_marshal_value_peek_char(v)     g_value_get_schar (v)
+ #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
+ #define g_marshal_value_peek_int(v)      g_value_get_int (v)
+ #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
+diff --git a/src/main.c b/src/main.c
+index 3e8a794..ec980e5 100644
+--- a/src/main.c
++++ b/src/main.c
+@@ -187,9 +187,9 @@ main (int    argc,
+ 	g_option_context_free (context);
+ 
+ 	umask (022);
+-
++#if !GLIB_CHECK_VERSION(2,35,0)
+ 	g_type_init ();
+-
++#endif
+ 	mainloop = g_main_loop_new (NULL, FALSE);
+ 
+ 	conn = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
+-- 
+1.7.9.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/files/fixups.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/files/fixups.patch
new file mode 100644
index 0000000..de4d92e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/files/fixups.patch
@@ -0,0 +1,21 @@
+Upstream-Status: Inappropriate [configuration]
+
+---
+ docs/reference/Makefile.am |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- gypsy.orig/docs/reference/Makefile.am
++++ gypsy/docs/reference/Makefile.am
+@@ -81,10 +81,12 @@ expand_content_files=
+ # e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
+ 
+ INCLUDES=-I$(top_srcdir) $(GYPSY_CFLAGS)
+ GTKDOC_LIBS=$(top_builddir)/gypsy/libgypsy.la $(GYPSY_LIBS)
+ 
++EXTRA_DIST =
++CLEANFILES =
+ # This includes the standard gtk-doc make rules, copied by gtkdocize.
+ include $(top_srcdir)/gtk-doc.make
+ 
+ # Other files to distribute
+ # e.g. EXTRA_DIST += version.xml.in
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/gypsy.inc b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/gypsy.inc
new file mode 100644
index 0000000..9efd356
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/gypsy.inc
@@ -0,0 +1,25 @@
+SUMMARY = "GPS Multiplexing Daemon"
+DESCRIPTION = "Gypsy is a GPS multiplexing daemon which allows \
+multiple clients to access GPS data from multiple GPS sources \
+concurrently.  Gypsy also hides the details of parsing NMEA from the \
+client applications, passing the data as simple values for the clients \
+to use."
+LICENSE = "GPLv2.0 & LGPLv2.1"
+SECTION = "console/network"
+DEPENDS = "glib-2.0 dbus bluez4 dbus-glib libxslt-native libxslt"
+
+PNBLACKLIST[gypsy] ?= "${@bb.utils.contains('DISTRO_FEATURES', 'bluez5', 'bluez5 conflicts with bluez4 and bluez5 is selected in DISTRO_FEATURES', '', d)}"
+
+inherit autotools pkgconfig gtk-doc
+PACKAGES += "libgypsy"
+
+FILES_${PN} = " \
+  ${sysconfdir}/gypsy.conf \
+  ${sysconfdir}/dbus-1 \
+  ${libexecdir}/gypsy-daemon \
+  ${datadir}/dbus-1 \
+"
+
+FILES_libgypsy = " \
+  ${libdir}/libgypsy${SOLIBS} \
+"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/gypsy_0.9.bb b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/gypsy_0.9.bb
new file mode 100644
index 0000000..24c8987
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/gypsy_0.9.bb
@@ -0,0 +1,15 @@
+require gypsy.inc
+
+PR = "r2"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
+                    file://COPYING.lib;md5=7fbc338309ac38fefcd64b04bb903e34 \
+                    file://src/main.c;beginline=1;endline=25;md5=3fe64e27e61b289b77383a54a982cbdd \
+                    file://gypsy/gypsy-time.h;beginline=1;endline=24;md5=06432ea19a7b6607428d04d9dadc37fd"
+
+SRC_URI += "http://gypsy.freedesktop.org/releases/gypsy-${PV}.tar.gz \
+           file://0001-g_type_init-is-deprecated-for-glib-2.35.0.patch \
+          "
+
+SRC_URI[md5sum] = "e2d186df9c2cc3b70a027043e22acf1a"
+SRC_URI[sha256sum] = "14e1cbe17351f408538e033ca370b4bf51ccf9c88744e236ddfb271904f154d6"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/gypsy_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/gypsy_git.bb
new file mode 100644
index 0000000..6ab16e6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/gypsy/gypsy_git.bb
@@ -0,0 +1,22 @@
+require gypsy.inc
+
+DEFAULT_PREFERENCE = "-1"
+
+SRCREV = "be8c9c382d2d1d37b51d29b0843045121ec90213"
+PV = "0.9+git${SRCPV}"
+PR = "r2"
+
+S = "${WORKDIR}/git"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
+                    file://COPYING.lib;md5=7fbc338309ac38fefcd64b04bb903e34 \
+                    file://src/main.c;beginline=1;endline=25;md5=3fe64e27e61b289b77383a54a982cbdd \
+                    file://gypsy/gypsy-time.h;beginline=1;endline=24;md5=06432ea19a7b6607428d04d9dadc37fd"
+
+SRC_URI += "git://anongit.freedesktop.org/gypsy \
+            file://fixups.patch"
+
+do_configure_prepend() {
+  # from patch 563716fc596d53f1085949a9dd11a62f39b2d624
+  test -d ${S}/m4 || mkdir -p ${S}/m4
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/libspatialite/libspatialite-4.2.0/geos-config.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/libspatialite/libspatialite-4.2.0/geos-config.patch
new file mode 100644
index 0000000..28bd7da
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/libspatialite/libspatialite-4.2.0/geos-config.patch
@@ -0,0 +1,17 @@
+https://www.gaia-gis.it/fossil/libspatialite/tktview?name=abeeaad448
+
+Upstream-Status: Submitted [rpm5-devel@rpm5.org]
+
+Index: libspatialite-4.2.0/configure.ac
+===================================================================
+--- libspatialite-4.2.0.orig/configure.ac
++++ libspatialite-4.2.0/configure.ac
+@@ -260,7 +260,7 @@ if test x"$enable_geos" != "xno"; then
+   fi
+   # Extract the linker and include flags
+   GEOS_LDFLAGS=`$GEOSCONFIG --ldflags`
+-  GEOS_CFLAGS=-I`$GEOSCONFIG --includes`
++  GEOS_CFLAGS=`$GEOSCONFIG --cflags`
+   AC_SUBST([GEOS_LDFLAGS])
+   AC_SUBST([GEOS_CFLAGS])	
+   # Ensure that we can parse geos_c.h
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/libspatialite/libspatialite_4.2.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-navigation/libspatialite/libspatialite_4.2.0.bb
new file mode 100644
index 0000000..d66dc87
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/libspatialite/libspatialite_4.2.0.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "Library extending the SQLite core to support fully fledged Spatial SQL capabilities"
+HOMEPAGE = "https://www.gaia-gis.it/fossil/libspatialite/"
+SECTION = "libs"
+DEPENDS = "proj geos sqlite3 libxml2 zlib"
+
+LICENSE = "MPLv1.1 & GPLv2+ & LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0e92e1a36cc384b60f5b31dde0bdd39e"
+
+SRC_URI = "http://www.gaia-gis.it/gaia-sins/libspatialite-sources/libspatialite-${PV}.tar.gz"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--enable-freexl=no"
+
+# package plugins for SQLite3
+PACKAGES += "${PN}-plugin"
+INSANE_SKIP_${PN}-plugin = "dev-so"
+FILES_${PN}-plugin += "${libdir}/mod_*"
+
+SRC_URI[md5sum] = "83305ed694a77152120d1f74c5151779"
+SRC_URI[sha256sum] = "9f138a6854740c7827fdee53845eb1485fce3e805a7aa9fc9151f8046ebd312d"
+
+SRC_URI += "file://geos-config.patch"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit-fpu.inc b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit-fpu.inc
new file mode 100644
index 0000000..d963702
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit-fpu.inc
@@ -0,0 +1,6 @@
+
+def get_navit_fpu_setting(bb, d):
+    if d.getVar('TARGET_FPU', 1) in [ 'soft' ]:
+        return "--enable-avoid-float"
+    return ""
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit.inc b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit.inc
new file mode 100644
index 0000000..1c0bfda
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit.inc
@@ -0,0 +1,95 @@
+DESCRIPTION = "Navit is a car navigation system with routing engine."
+LICENSE = "GPLv2 & LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ed539d099d6ce08de6ea0dfed9ecb333 \
+                    file://LGPL-2;md5=3214f080875748938ba060314b4f727d \
+                    file://GPL-2;md5=751419260aa954499f7abaabaa882bbe \
+"
+
+SECTION = "x11/applications"
+DEPENDS = "glib-2.0 gd gypsy librsvg-native"
+RDEPENDS_${PN} = " ${PN}-icons ${PN}-config "
+RRECOMMENDS_${PN} = "gpsd ${PN}-dbus ${PN}-speech-cmdline ${PN}-gui-internal ${PN}-graphics-gtk"
+RSUGGESTS_${PN} = "flite-alsa espeak ${PN}-speech-dbus ${PN}-gui-gtk ${PN}-gui-qml ${PN}-graphics-sdl ${PN}-graphics-qt ${PN}-maptool"
+
+PE = "1"
+INC_PR = "r11"
+
+# Depends on gypsy
+PNBLACKLIST[navit] ?= "${@bb.utils.contains('DISTRO_FEATURES', 'bluez5', 'bluez5 conflicts with bluez4 and bluez5 is selected in DISTRO_FEATURES', '', d)}"
+
+inherit autotools gettext pkgconfig
+
+PACKAGECONFIG ?= ""
+PACKAGECONFIG[fribidi] = "--enable-fribidi,--disable-fribidi,fribidi"
+PACKAGECONFIG[imlib2] = "--enable-imlib2,--disable-imlib2,imlib2"
+PACKAGECONFIG[sdl] = "--enable-graphics-sdl,--disable-graphics-sdl,libsdl"
+PACKAGECONFIG[gtk] = "--enable-graphics-gtk-drawing-area --enable-gui-gtk,--disable-graphics-gtk-drawing-area --disable-gui-gtk,gtk+"
+PACKAGECONFIG[qt] = "--enable-graphics-qt-qpainter --enable-gui-qml,--disable-graphics-qt-qpainter --disable-gui-qml,qt4-x11-free,qt4-plugin-imageformat-svg"
+
+EXTRA_OECONF += " \
+    --disable-binding-python \
+    --disable-samplemap \
+    --enable-avoid-unaligned \
+    --enable-svg2png-scaling-flag=32 \
+    --disable-speech-speech-dispatcher \
+    --enable-cache-size=20971520 \
+"
+
+#  --enable-avoid-float \
+#check for TARGET_FPU=soft and inform configure of the result so it can disable some floating points
+require navit-fpu.inc
+EXTRA_OECONF += "${@get_navit_fpu_setting(bb, d)}"
+
+PACKAGES =+ "${PN}-maptool ${PN}-config ${PN}-dbus ${PN}-speech-cmdline ${PN}-speech-dbus ${PN}-gui-gtk ${PN}-gui-internal ${PN}-gui-qml ${PN}-graphics-sdl ${PN}-graphics-gtk ${PN}-graphics-qt ${PN}-icons"
+
+EXTRA_AUTORECONF = " -I m4"
+
+CONFFILES_${PN}-config += "${datadir}/navit/navit.default.xml \
+    ${datadir}/navit/navit.xml \
+    ${datadir}/navit/maps.xml \
+    ${datadir}/navit/osd.xml \
+    ${datadir}/navit/speech.xml \
+    ${datadir}/navit/plugins.xml \
+"
+
+SRC_URI += "file://navit.xml \
+            file://maps.xml \
+            file://osd.xml \
+            file://speech.xml \
+            file://plugins.xml \
+"
+
+FILES_${PN} += "${libdir}/${BPN}/*/*.so ${datadir}/icons"
+FILES_${PN}-dbg += "${libdir}/${BPN}/*/.debug"
+FILES_${PN}-maptool = " ${bindir}/maptool "
+FILES_${PN}-config = " ${datadir}/navit/*.xml "
+FILES_${PN}-dbus = " ${datadir}/dbus-1/services/ ${libdir}/${BPN}/binding/libbinding_dbus.so "
+FILES_${PN}-speech-cmdline = " ${libdir}/${BPN}/speech/libspeech_cmdline.so "
+FILES_${PN}-speech-dbus = " ${libdir}/${BPN}/speech/libspeech_dbus.so "
+FILES_${PN}-gui-gtk = " ${libdir}/${BPN}/gui/libgui_gtk.so "
+FILES_${PN}-gui-qml = " ${libdir}/${BPN}/gui/libgui_qml.so ${datadir}/navit/skins/ "
+FILES_${PN}-gui-internal = " ${libdir}/${BPN}/gui/libgui_internal.so "
+FILES_${PN}-graphics-sdl = " ${libdir}/${BPN}/graphics/libgraphics_sdl.so "
+FILES_${PN}-graphics-qt = " ${libdir}/${BPN}/graphics/libgraphics_qt_qpainter.so "
+FILES_${PN}-graphics-gtk = " ${libdir}/${BPN}/graphics/libgraphics_gtk_drawing_area.so "
+FILES_${PN}-icons = "/usr/share/navit/xpm/"
+
+do_configure_prepend() {
+    # MOC=`$PKG_CONFIG QtGui --variable=moc_location` returns only /usr/bin/moc4 which is not available on hosts without Qt
+    sed -i "s#MOC=#MOC=${STAGING_DIR_NATIVE}#g" ${S}/configure.in
+}
+
+do_install_append() {
+    # fix QA issue
+    sed -i 's#Categories=GTK;Utility;Geography;#Categories=Graphics;#g' ${D}${datadir}/applications/navit.desktop
+
+    rm ${D}${libdir}/${BPN}/*/*.la
+
+    #Use split config
+    mv ${D}${datadir}/navit/navit.xml ${D}${datadir}/navit/navit.default.xml
+    install -m 0644 ${WORKDIR}/navit.xml ${D}${datadir}/navit/navit.xml
+    install -m 0644 ${WORKDIR}/maps.xml ${D}${datadir}/navit/maps.xml
+    install -m 0644 ${WORKDIR}/osd.xml ${D}${datadir}/navit/osd.xml
+    install -m 0644 ${WORKDIR}/speech.xml ${D}${datadir}/navit/speech.xml
+    install -m 0644 ${WORKDIR}/plugins.xml ${D}${datadir}/navit/plugins.xml
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/configure.add.imlib2.option.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/configure.add.imlib2.option.patch
new file mode 100644
index 0000000..be41792
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/configure.add.imlib2.option.patch
@@ -0,0 +1,16 @@
+--- a/configure.in.orig	2014-05-10 15:57:18.146362110 +0200
++++ b/configure.in	2014-05-10 15:59:27.859358845 +0200
+@@ -498,10 +498,13 @@
+ AC_SUBST(FRIBIDI_CFLAGS)
+ AC_SUBST(FRIBIDI_LIBS)
+ 
++AC_ARG_ENABLE(imlib2, [  --disable-imlib2  disable imlib2 support], imlib2=$enableval;imlib2_reason="configure parameter", imlib2=yes)
++if test x"${imlib2}" = "xyes"; then
+ PKG_CHECK_MODULES(IMLIB2, [imlib2], [imlib2_pkgconfig=yes], [imlib2_pkgconfig=no])
+ if test "x$imlib2_pkgconfig" = "xyes"; then
+    AC_DEFINE(HAVE_IMLIB2, 1, [Define to 1 if you have imlib2])
+ fi
++fi
+ AC_SUBST(IMLIB2_CFLAGS)
+ AC_SUBST(IMLIB2_LIBS)
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/freetype-include-path.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/freetype-include-path.patch
new file mode 100644
index 0000000..288997b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/freetype-include-path.patch
@@ -0,0 +1,28 @@
+Description: Fix FTBFS caused by freetype headers path change.
+Author: Gilles Filippini <pini@debian.org>
+Bug-Debian: http://bugs.debian.org/733378
+Index: navit/navit/font/freetype/font_freetype.c
+===================================================================
+--- navit.orig/navit/font/freetype/font_freetype.c	2013-09-23 10:43:32.000000000 +0200
++++ navit/navit/font/freetype/font_freetype.c	2013-12-30 19:54:45.000000000 +0100
+@@ -32,7 +32,7 @@
+ #if USE_FRIBIDI
+ #include <fribidi.h>
+ #endif
+-#include <freetype/ftglyph.h>
++#include <ftglyph.h>
+ #include "point.h"
+ #include "graphics.h"
+ #include "debug.h"
+diff -uNr navit.orig/navit/graphics/sdl/graphics_sdl.c navit/navit/graphics/sdl/graphics_sdl.c
+--- navit.orig/navit/graphics/sdl/graphics_sdl.c	2012-06-22 14:16:01.000000000 +0200
++++ navit/navit/graphics/sdl/graphics_sdl.c	2014-01-01 22:31:10.892948164 +0100
+@@ -84,7 +84,7 @@
+ #else
+ #include <ft2build.h>
+ #include FT_FREETYPE_H
+-#include <freetype/ftglyph.h>
++#include <ftglyph.h>
+ #endif
+ #include <event.h>
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/maps.xml b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/maps.xml
new file mode 100644
index 0000000..6f59f20
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/maps.xml
@@ -0,0 +1,24 @@
+                <!-- If you have the reiseplaner maps installed, set enabled="yes" in the next line and set the path correctly -->
+                <mapset enabled="no">
+                        <map type="mg" enabled="yes" data="/opt/reiseplaner/travel/DE.map"/>
+                        <map type="mg" enabled="yes" data="/opt/reiseplaner/travel/DE.map/smp1.smp"/>
+                        <map type="mg" enabled="yes" data="/opt/reiseplaner/travel/DE.map/smp2.smp"/>
+                        <map type="mg" enabled="yes" data="/opt/reiseplaner/travel/DE.map/smp3.smp"/>
+                        <map type="mg" enabled="yes" data="/opt/reiseplaner/travel/DE.map/smp4.smp"/>
+                        <map type="mg" enabled="yes" data="/opt/reiseplaner/travel/DE.map/smp5.smp"/>
+                </mapset>
+
+                <!-- If you dont want to use the sample map, either set enabled="no" in the next line or remove the xml file from the maps directory -->
+                <mapset enabled="no">
+                        <xi:include href="$NAVIT_SHAREDIR/maps/*.xml"/>
+                </mapset>
+
+                <!-- Mapset template for openstreetmaps -->
+                <mapset enabled="yes">
+                        <map type="binfile" enabled="yes" data="/media/mmc2/MapsNavit/osm_europe.bin"/>
+                </mapset>
+
+                <!-- Mapset template for garmin maps -->
+                <mapset enabled="no">
+                        <map type="garmin" enabled="yes" data="/path/to/img" debug="4"/>
+                </mapset>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/navit.xml b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/navit.xml
new file mode 100644
index 0000000..58c8c22
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/navit.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE config SYSTEM "navit.dtd">
+<config xmlns:xi="http://www.w3.org/2001/XInclude">
+	<xi:include href="/usr/share/navit/plugins.xml"/>
+	<xi:include href="/usr/share/navit/navit.default.xml" xpointer="xpointer(/config/debug)"/>
+
+	<navit center="4808 N 1134 E" zoom="256" tracking="1" orientation="-1" recent_dest="10" drag_bitmap="1">
+		<graphics type="gtk_drawing_area"/>
+		<gui type="gtk" enabled="no" menubar="1" toolbar="1" statusbar="1"/>
+		<xi:include href="/usr/share/navit/navit.default.xml" xpointer="xpointer(/config/navit/gui[@type='internal'])"/>
+		<!-- or comment gtk version above and try:
+		opkg install navit-graphics-qt
+		opkg install navit-gui-qml
+		<graphics type="qt_qpainter"/>
+		<gui type="qml" enabled="yes" menubar="1" toolbar="1" statusbar="1"/>
+		-->
+		<xi:include href="/usr/share/navit/osd.xml"/>
+		<log enabled="no" type="textfile_debug" data="debug_%Y%m%d-%i.txt" flush_size="1000" flush_time="30"/>
+		<vehicle name="Local GPS" profilename="car" enabled="yes" active="1" source="gpsd://localhost" gpsd_query="w+xj">
+			<!-- <log type="gpx" attr_types="position_time_iso8601,position_direction,position_speed,profilename,position_radius" data="track_%Y%m%d-%i.gpx" flush_size="1000" flush_time="30"/> -->
+		</vehicle>
+
+		<vehicle name="Demo" profilename="car" enabled="no" active="yes" source="demo://"/>
+
+		<!-- For the cumulative displacement filter to be enabled, set cdf_histsize="x" here, with x being an integer somewhere around 4 -->
+		<tracking cdf_histsize="0"/>
+
+		<xi:include href="/usr/share/navit/navit.default.xml" xpointer="xpointer(/config/navit/vehicleprofile[@name='car'])"/>
+		<xi:include href="/usr/share/navit/navit.default.xml" xpointer="xpointer(/config/navit/vehicleprofile[@name='bike'])"/>
+		<xi:include href="/usr/share/navit/navit.default.xml" xpointer="xpointer(/config/navit/vehicleprofile[@name='pedestrian'])"/>
+		<xi:include href="/usr/share/navit/navit.default.xml" xpointer="xpointer(/config/navit/vehicleprofile[@name='horse'])"/>
+
+		<route destination_distance="50"/>
+
+		<xi:include href="/usr/share/navit/navit.default.xml" xpointer="xpointer(/config/navit/navigation)"/>
+
+		<xi:include href="/usr/share/navit/speech.xml"/>
+		<xi:include href="/usr/share/navit/maps.xml"/>
+
+		<xi:include href="/usr/share/navit/navit.default.xml" xpointer="xpointer(/config/navit/layout[@name='Car'])"/>
+		<xi:include href="/usr/share/navit/navit.default.xml" xpointer="xpointer(/config/navit/layout[@name='Car-dark'])"/>
+		<xi:include href="/usr/share/navit/navit.default.xml" xpointer="xpointer(/config/navit/layout[@name='Bike'])"/>
+		<xi:include href="/usr/share/navit/navit.default.xml" xpointer="xpointer(/config/navit/layout[@name='T@H'])"/>
+	</navit>
+</config>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/osd.xml b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/osd.xml
new file mode 100644
index 0000000..2d0f9ff
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/osd.xml
@@ -0,0 +1,15 @@
+                <!-- osd items allow to position display and control items directly on top of the map: -->
+                <osd enabled="no" type="compass"/>
+                <osd enabled="no" type="eta"/>
+                <osd enabled="no" type="navigation_distance_to_target"/>
+                <osd enabled="no" type="navigation"/>
+                <osd enabled="no" type="navigation_distance_to_next"/>
+                <osd enabled="no" type="navigation_next_turn"/>
+
+                <!-- Commands include gui_internal_menu, gui_internal_fullscreen, zoom_in and zoom_out.
+                         Usage of negative values change the button origins. x="0" y="0" specifies the top left, x="-0" y="-0" the bottom right corner.
+                         It's always the top left corner of the icon, so you need to consider the icon's size when you enter the values. -->
+                <osd enabled="no" type="button" x="0" y="0" command="gui.fullscreen()" src="toggle_fullscreen.xpm"/>
+                <osd enabled="no" type="button" x="-96" y="0" command="gui.menu()" src="menu.xpm"/>
+                <osd enabled="no" type="button" x="-96" y="-96" command="zoom_in()" src="zoom_in.xpm"/>
+                <osd enabled="no" type="button" x="0" y="-96" command="zoom_out()" src="zoom_out.xpm"/>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/plugins.xml b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/plugins.xml
new file mode 100644
index 0000000..015b055
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/plugins.xml
@@ -0,0 +1,6 @@
+<plugins>
+	<plugin path="$NAVIT_LIBDIR/*/${NAVIT_LIBPREFIX}lib*.so" ondemand="yes"/>
+	<plugin path="$NAVIT_LIBDIR/autoload/${NAVIT_LIBPREFIX}lib*.so"/>
+	<plugin path="$NAVIT_LIBDIR/*/${NAVIT_LIBPREFIX}libbinding_dbus.so" active="yes"/>
+	<plugin path="$NAVIT_LIBDIR/*/${NAVIT_LIBPREFIX}libgraphics_null.so" active="no"/>
+</plugins>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/speech.xml b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/speech.xml
new file mode 100644
index 0000000..28c4990
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit/speech.xml
@@ -0,0 +1,8 @@
+                <!-- Navit provides speech output in text format.
+                         If you have a speech synthesizer like festival lite installed, you can get turn by turn directions out of navit. Please set the "cps"-value to how many characters your tts engine approximately speaks per second.
+                         The default is text output to the shell -->
+                <!-- <speech type="cmdline" data="echo 'Fix the speech tag in navit.xml to let navit say:' '%s'" cps="15"/> -->
+                <!-- <speech type="cmdline" data="espeak -s 150 -v czech '%s' &amp;"/> -->
+                <!-- <speech type="cmdline" data="flite -t '%s'"/> -->
+                <!-- <speech type="cmdline" data="/usr/local/bin/say.sh '%s'"/> -->
+                <speech type="cmdline" data="espeak '%s' &amp;"/>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit_svn.bb b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit_svn.bb
new file mode 100644
index 0000000..bdfbb4b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/navit/navit_svn.bb
@@ -0,0 +1,11 @@
+require navit.inc
+
+SRCREV = "5310"
+PV = "0.2.0+svnr${SRCPV}"
+PR = "${INC_PR}.3"
+
+S = "${WORKDIR}/${BPN}"
+SRC_URI += "svn://anonymous@navit.svn.sourceforge.net/svnroot/navit/trunk;module=navit;protocol=http \
+    file://freetype-include-path.patch \
+    file://configure.add.imlib2.option.patch \
+"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/orrery/orrery/orrery.png b/import-layers/meta-openembedded/meta-oe/recipes-navigation/orrery/orrery/orrery.png
new file mode 100644
index 0000000..d9865b7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/orrery/orrery/orrery.png
Binary files differ
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/orrery/orrery/use.GdkPixbuf.patch b/import-layers/meta-openembedded/meta-oe/recipes-navigation/orrery/orrery/use.GdkPixbuf.patch
new file mode 100644
index 0000000..92d194d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/orrery/orrery/use.GdkPixbuf.patch
@@ -0,0 +1,59 @@
+From: Benjamin Deering
+Subject: orrery crashing X
+Date: Thursday, September 2, 2010 - 5:25 pm
+Link: http://kerneltrap.org/mailarchive/openmoko-community/2010/9/3/13218
+
+diff -uNr orrery.orig//orrery.c orrery/orrery.c
+--- orrery.orig//orrery.c	2009-11-30 06:59:44.000000000 +0100
++++ orrery/orrery.c	2010-11-15 22:33:17.000000000 +0100
+@@ -1238,12 +1238,44 @@
+     }
+     currentEntry = currentEntry->forwardPointer;
+   }
+-  if (nDarkGreyPoints > 0)
+-    gdk_draw_points(pixmap, darkGreyGC, darkGreyPoints, nDarkGreyPoints);
+-  if (nGreyPoints > 0)
+-    gdk_draw_points(pixmap, greyGC, greyPoints, nGreyPoints);
+-  if (nWhitePoints > 0)
+-    gdk_draw_points(pixmap, whiteGC, whitePoints, nWhitePoints);
++  GdkPixbuf* starDrawingBuf = gdk_pixbuf_get_from_drawable( NULL,
++                                                            pixmap,
++                                                            gdk_colormap_get_system()
++                                                            , 0, 0, 0, 0, displayWidth, displayHeight);
++  g_assert (gdk_pixbuf_get_bits_per_sample (starDrawingBuf) == 8);
++  guchar* p;
++  int rowstride = gdk_pixbuf_get_rowstride (starDrawingBuf);
++  guchar* pixels = gdk_pixbuf_get_pixels (starDrawingBuf);
++  int n_channels = gdk_pixbuf_get_n_channels (starDrawingBuf);
++  GdkGCValues starGCval;
++  GdkColor starColor;
++  int pointNum;
++  gdk_gc_get_values(darkGreyGC, &starGCval);
++  gdk_colormap_query_color( gdk_gc_get_colormap(darkGreyGC),starGCval.foreground.pixel, &starColor );
++  for( pointNum = 0; pointNum < nDarkGreyPoints; pointNum++) {
++    p = pixels + darkGreyPoints[pointNum].y * rowstride + darkGreyPoints[pointNum].x * n_channels;
++    p[0] = starColor.red & 0xff;
++    p[1] = starColor.green & 0xff;
++    p[2] = starColor.blue & 0xff;
++  }
++  gdk_gc_get_values(greyGC, &starGCval);
++  gdk_colormap_query_color( gdk_gc_get_colormap(greyGC), starGCval.foreground.pixel, &starColor );
++  for( pointNum = 0; pointNum < nGreyPoints; pointNum++) {
++    p = pixels + greyPoints[pointNum].y * rowstride + greyPoints[pointNum].x * n_channels;
++    p[0] = starColor.red & 0xff;
++    p[1] = starColor.green & 0xff;
++    p[2] = starColor.blue & 0xff;
++  }
++  gdk_gc_get_values(whiteGC, &starGCval);
++  gdk_colormap_query_color( gdk_gc_get_colormap(whiteGC), starGCval.foreground.pixel, &starColor );
++  for( pointNum = 0; pointNum < nWhitePoints; pointNum++) {
++    p = pixels + whitePoints[pointNum].y * rowstride + whitePoints[pointNum].x * n_channels;
++    p[0] = starColor.red & 0xff;
++    p[1] = starColor.green & 0xff;
++    p[2] = starColor.blue & 0xff;
++  }
++  gdk_draw_pixbuf ( pixmap , NULL , starDrawingBuf,
++            0, 0, 0, 0, displayWidth, displayHeight, GDK_RGB_DITHER_NORMAL, 0, 0 ) ;
+ }
+ 
+ void makeTimeString(char *string)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/orrery/orrery_2.7.bb b/import-layers/meta-openembedded/meta-oe/recipes-navigation/orrery/orrery_2.7.bb
new file mode 100644
index 0000000..40a6df3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/orrery/orrery_2.7.bb
@@ -0,0 +1,32 @@
+SUMMARY = "Astronomical application which displays the night sky"
+HOMEPAGE    = "http://projects.openmoko.org/projects/orrery/"
+SECTION = "x11/scientific"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://orrery.c;endline=25;md5=d792bdf2b591972da175aecc38d88cfe"
+DEPENDS = "gtk+"
+
+inherit autotools-brokensep pkgconfig
+
+SRC_URI = "http://projects.openmoko.org/frs/download.php/923/orrery_2.7_clean.tar.gz \
+           file://orrery.png \
+           file://use.GdkPixbuf.patch \
+"
+
+SRC_URI[md5sum]    = "bd62a33e7554ee1030313dfcdefcda8b"
+SRC_URI[sha256sum] = "645166a5e05b2064ab630534a514697fc47b681951e7fe1d635c259cbdf7a5e6"
+
+S = "${WORKDIR}/${BPN}"
+
+do_configure_prepend() {
+    # fix DSO issue with binutils-2.22
+    sed -i 's/ -lrt/ -lrt -lm/g' ${S}/Makefile.am
+}
+do_install_append() {
+    install -d ${D}${datadir}/orrery
+    cp -R --no-dereference --preserve=mode,links -v ${S}/data/* ${D}${datadir}/orrery
+    chown -R root:root ${D}${datadir}/orrery
+    install -d ${D}${datadir}/icons
+    install -m 0755 ${WORKDIR}/orrery.png ${D}${datadir}/icons
+}
+
+FILES_${PN} += "${datadir}/icons/orrery.png"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-navigation/proj/proj_4.8.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-navigation/proj/proj_4.8.0.bb
new file mode 100644
index 0000000..b4bfaf4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-navigation/proj/proj_4.8.0.bb
@@ -0,0 +1,14 @@
+SUMMARY = "PROJ.4 - Cartographic Projections library"
+HOMEPAGE = "http://trac.osgeo.org/proj/"
+SECTION = "libs"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=74d9aaec5fa0cd734341e8c4dc91b608"
+
+SRC_URI = "http://download.osgeo.org/proj/proj-${PV}.tar.gz"
+SRC_URI[md5sum] = "d815838c92a29179298c126effbb1537"
+SRC_URI[sha256sum] = "2db2dbf0fece8d9880679154e0d6d1ce7c694dd8e08b4d091028093d87a9d1b5"
+
+inherit autotools pkgconfig lib_package
+
+FILES_${PN} += "${datadir}/proj"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-mail_3.9.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-mail_3.9.0.bb
new file mode 100644
index 0000000..938af2e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-mail_3.9.0.bb
@@ -0,0 +1,56 @@
+SECTION = "x11/network"
+SUMMARY = "Mail user agent"
+DEPENDS = "gtk+ libetpan openssl aspell curl libgcrypt"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e059bde2972c1790af786f3e86bac22e"
+
+PNBLACKLIST[claws-mail] ?= "depends on blacklisted libetpan"
+
+inherit autotools pkgconfig gettext
+
+# translation patch: http://www.thewildbeast.co.uk/claws-mail/bugzilla/show_bug.cgi?id=1774
+SRC_URI = "\
+        ${SOURCEFORGE_MIRROR}/project/claws-mail/Claws%20Mail/${PV}/claws-mail-${PV}.tar.bz2;name=archive "
+SRC_URI[archive.md5sum] = "4c5ac7b21f0ed17d0f6404124c2229a4"
+SRC_URI[archive.sha256sum] = "ed70975a5056b3ffc4fe6e977f0d9606febc1499763c090241b029a73ff24e65"
+
+do_configure_append() {
+    cd ${S}/po ; for PO in *.po ; do MO=`echo $PO | sed s/\\.po//`.gmo ; if ! test -f $MO ; then msgfmt $PO -o $MO ; fi ; done; cd ${B}
+}
+
+PACKAGECONFIG ??= "startup-notification dbus"
+PACKAGECONFIG[enchant] = "--enable-enchant,--disable-enchant,enchant"
+PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-startup-notification,startup-notification"
+PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus dbus-glib"
+PACKAGECONFIG[ldap] = "--enable-ldap,--disable-ldap,openldap"
+
+# FIXME: maemo builds may want --enable-maemo
+# FIXME: some platforms may want --enable-generic-umpc
+EXTRA_OECONF = " \
+    --disable-manual \
+    --disable-crash-dialog \
+    --disable-jpilot \
+    --disable-trayicon-plugin \
+    --disable-spamassassin-plugin \
+    --disable-bogofilter-plugin \
+    --disable-pgpcore-plugin \
+    --disable-pgpmime-plugin \
+    --disable-pgpinline-plugin \
+    --disable-dillo-viewer-plugin \
+    --disable-valgrind \
+"
+
+# Remove enchant references:
+do_install_prepend() {
+    sed -i -e 's:${STAGING_INCDIR}:${includedir}:g;s:${STAGING_LIBDIR}:${libdir}:g' claws-mail.pc
+}
+
+# Work-around broken GPE icon lookup:
+do_install_append() {
+    rm -r ${D}${datadir}/icons
+    install -d ${D}${datadir}/pixmaps
+    install -m 0644 ${S}/claws-mail.png ${D}${datadir}/pixmaps/
+    sed -i 's/Icon=[^.]*$/&.png/' ${D}${datadir}/applications/claws-mail.desktop
+}
+
+RSUGGESTS_${PN} = "claws-plugin-gtkhtml2-viewer claws-plugin-mailmbox claws-plugin-rssyl"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-plugin-gtkhtml2-viewer/configure.patch b/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-plugin-gtkhtml2-viewer/configure.patch
new file mode 100644
index 0000000..222a796
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-plugin-gtkhtml2-viewer/configure.patch
@@ -0,0 +1,52 @@
+Index: gtkhtml2_viewer-0.31/configure.ac
+===================================================================
+--- gtkhtml2_viewer-0.31.orig/configure.ac	2011-08-27 08:08:55.000000000 +0000
++++ gtkhtml2_viewer-0.31/configure.ac	2014-07-18 07:28:42.769518618 +0000
+@@ -1,33 +1,27 @@
+ AC_PREREQ(2.60)
+-AC_INIT(src/gtkhtml2_viewer.c)
++
++dnl plugin version
++m4_define([plugin_major_version],[0])
++m4_define([plugin_minor_version],[31])
++m4_define([plugin_micro_version],[0])
++m4_define([plugin_version], [plugin_major_version.plugin_minor_version.plugin_micro_version])
++
++AC_INIT(gtkhml2_viewer, plugin_version)
++AC_CONFIG_SRCDIR(src/gtkhtml2_viewer.c)
+ AC_CONFIG_AUX_DIR(config)
+ AM_MAINTAINER_MODE
+ 
+ PACKAGE=gtkhtml2_viewer
+ 
+-dnl plugin version
+-MAJOR_VERSION=0
+-MINOR_VERSION=31
+-MICRO_VERSION=0
++MAJOR_VERSION=plugin_major_version
++MINOR_VERSION=plugin_minor_version
++MICRO_VERSION=plugin_micro_version
+ EXTRA_VERSION=0
+-
+-if test \( $EXTRA_VERSION -eq 0 \); then
+-    if test \( $MICRO_VERSION -eq 0 \); then
+-        VERSION=${MAJOR_VERSION}.${MINOR_VERSION} 
+-    else
+-		VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}
+-    fi
+-else
+-    if test \( $MICRO_VERSION -eq 0 \); then
+-        VERSION=${MAJOR_VERSION}.${MINOR_VERSION}cvs${EXTRA_VERSION}
+-    else
+-		VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}cvs${EXTRA_VERSION}
+-    fi
+-fi
++VERSION=plugin_version
+ 
+ AC_CANONICAL_SYSTEM
+ 
+-AM_INIT_AUTOMAKE($PACKAGE, $VERSION, no-define)
++AM_INIT_AUTOMAKE([foreign no-define])
+ AC_CONFIG_HEADERS(config.h)
+ AC_DEFINE_UNQUOTED(PLUGINVERSION, "$VERSION", [plugin version])
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-plugin-gtkhtml2-viewer_0.31.bb b/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-plugin-gtkhtml2-viewer_0.31.bb
new file mode 100644
index 0000000..c252573
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-plugin-gtkhtml2-viewer_0.31.bb
@@ -0,0 +1,24 @@
+SECTION = "x11/network"
+SUMMARY = "Mail user agent plugins"
+DEPENDS = "claws-mail gtkhtml2 curl"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=977f04a8048c04684e521c06e2844a94"
+
+PNBLACKLIST[claws-plugin-gtkhtml2-viewer] ?= "depends on blacklisted claws-mail"
+
+PR = "r1"
+
+SRC_URI = "http://www.claws-mail.org/downloads/plugins_obsolete/gtkhtml2_viewer-${PV}.tar.gz \
+           file://configure.patch"
+SRC_URI[md5sum] = "a6c9dfa6f969ccd844796a5724b52167"
+SRC_URI[sha256sum] = "4d41f6d961efaac0f51705e5052bac732bc0bdafee2ef2082a9cf9d89f183ae5"
+
+inherit autotools pkgconfig gettext
+
+S = "${WORKDIR}/gtkhtml2_viewer-${PV}"
+
+FILES_${PN} = "${libdir}/claws-mail/plugins/*.so"
+FILES_${PN}-dbg += "${libdir}/claws-mail/plugins/.debug"
+FILES_${PN}-dev += "${libdir}/claws-mail/plugins/*.la"
+FILES_${PN}-staticdev = "${libdir}/claws-mail/plugins/*.a"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-plugin-mailmbox_1.15.bb b/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-plugin-mailmbox_1.15.bb
new file mode 100644
index 0000000..b132177
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-plugin-mailmbox_1.15.bb
@@ -0,0 +1,20 @@
+SECTION = "x11/network"
+SUMMARY = "Mail user agent plugins"
+DEPENDS = "claws-mail"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+PNBLACKLIST[claws-plugin-mailmbox] ?= "depends on blacklisted claws-mail"
+
+SRC_URI = "http://www.claws-mail.org/downloads/plugins_obsolete/mailmbox-${PV}.tar.gz"
+SRC_URI[md5sum] = "7f72c68e6e1a8768f1247f455fd20b62"
+SRC_URI[sha256sum] = "633f7835261c88a0aa06de38553ac935a1799a7128120963a7fa87ace01dac18"
+
+inherit autotools pkgconfig
+
+S = "${WORKDIR}/mailmbox-${PV}"
+
+FILES_${PN} = "${libdir}/claws-mail/plugins/*.so"
+FILES_${PN}-dbg += "${libdir}/claws-mail/plugins/.debug"
+FILES_${PN}-dev += "${libdir}/claws-mail/plugins/*.la"
+FILES_${PN}-staticdev = "${libdir}/claws-mail/plugins/*.a"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-plugin-rssyl/configure.patch b/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-plugin-rssyl/configure.patch
new file mode 100644
index 0000000..a7a38f3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-plugin-rssyl/configure.patch
@@ -0,0 +1,53 @@
+Index: rssyl-0.34/configure.ac
+===================================================================
+--- rssyl-0.34.orig/configure.ac	2014-07-18 07:37:28.981532959 +0000
++++ rssyl-0.34/configure.ac	2014-07-18 07:39:45.881536690 +0000
+@@ -1,5 +1,13 @@
++
++dnl plugin version
++m4_define([plugin_major_version],[0])
++m4_define([plugin_minor_version],[34])
++m4_define([plugin_micro_version],[0])
++m4_define([plugin_version], [plugin_major_version.plugin_minor_version.plugin_micro_version])
++
+ AC_PREREQ(2.60)
+-AC_INIT(src/plugin.c)
++AC_INIT(rssyl, plugin_version)
++AC_CONFIG_SRCDIR(src/plugin.c)
+ AC_CONFIG_AUX_DIR(config)
+ AM_MAINTAINER_MODE
+ AC_CONFIG_HEADERS(config.h)
+@@ -7,28 +15,15 @@
+ PACKAGE=rssyl
+ 
+ dnl plugin version
+-MAJOR_VERSION=0
+-MINOR_VERSION=34
+-MICRO_VERSION=0
++MAJOR_VERSION=plugin_major_version
++MINOR_VERSION=plugin_minor_version
++MICRO_VERSION=plugin_micro_version
+ EXTRA_VERSION=0
+-
+-if test \( $EXTRA_VERSION -eq 0 \); then
+-    if test \( $MICRO_VERSION -eq 0 \); then
+-        VERSION=${MAJOR_VERSION}.${MINOR_VERSION} 
+-    else
+-		VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}
+-    fi
+-else
+-    if test \( $MICRO_VERSION -eq 0 \); then
+-        VERSION=${MAJOR_VERSION}.${MINOR_VERSION}cvs${EXTRA_VERSION}
+-    else
+-		VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}cvs${EXTRA_VERSION}
+-    fi
+-fi
++VERSION=plugin_version
+ 
+ AC_CANONICAL_SYSTEM
+ 
+-AM_INIT_AUTOMAKE($PACKAGE, $VERSION, no-define)
++AM_INIT_AUTOMAKE([foreign no-define])
+ AC_DEFINE_UNQUOTED(PLUGINVERSION, "$VERSION", [plugin version])
+ 
+ AC_PROG_CC
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-plugin-rssyl_0.34.bb b/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-plugin-rssyl_0.34.bb
new file mode 100644
index 0000000..7da460c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/claws-plugin-rssyl_0.34.bb
@@ -0,0 +1,20 @@
+SECTION = "x11/network"
+SUMMARY = "Mail user agent plugins"
+DEPENDS = "claws-mail libxml2 curl glib-2.0 gtk+"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0c2348e0a084e573f0220f5e45d8097e"
+
+PNBLACKLIST[claws-plugin-rssyl] ?= "depends on blacklisted claws-mail"
+
+SRC_URI = "http://www.claws-mail.org/downloads/plugins_obsolete/rssyl-${PV}.tar.gz \
+           file://configure.patch"
+SRC_URI[md5sum] = "49b45608e8d160b3625d3d50016ec2ca"
+SRC_URI[sha256sum] = "2e96a1cd6a1a5bb7f86cd2eb48f6e174665957fafe1f3b1e8361aac3bb967f79"
+inherit autotools pkgconfig gettext
+
+S = "${WORKDIR}/rssyl-${PV}"
+
+FILES_${PN} = "${libdir}/claws-mail/plugins/*.so"
+FILES_${PN}-dbg += "${libdir}/claws-mail/plugins/.debug"
+FILES_${PN}-dev += "${libdir}/claws-mail/plugins/*.la"
+FILES_${PN}-staticdev = "${libdir}/claws-mail/plugins/*.a"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/sylpheed/glib-2.32.patch b/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/sylpheed/glib-2.32.patch
new file mode 100644
index 0000000..1520e57
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/sylpheed/glib-2.32.patch
@@ -0,0 +1,11 @@
+--- sylpheed-2.7.1.orig/libsylph/defs.h	2009-06-10 09:55:46.000000000 +0200
++++ sylpheed-2.7.1/libsylph/defs.h	2012-05-06 08:28:27.514746256 +0200
+@@ -24,8 +24,6 @@
+ #  include "config.h"
+ #endif
+ 
+-#include <glibconfig.h>
+-
+ #ifdef G_OS_WIN32
+ #  include <glib/gwin32.h>
+ #endif
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/sylpheed_2.7.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/sylpheed_2.7.1.bb
new file mode 100644
index 0000000..304b654
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-sato/claws-mail/sylpheed_2.7.1.bb
@@ -0,0 +1,31 @@
+SECTION = "x11/network"
+SUMMARY = "Mail user agent"
+DEPENDS = "gtk+ gpgme gnutls"
+LICENSE = "GPLv2 & LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4325afd396febcb659c36b49533135d4 \
+                    file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1"
+
+PR = "r2"
+
+SRC_URI = "http://sylpheed.sraoss.jp/sylpheed/v2.7/sylpheed-${PV}.tar.bz2 \
+    file://glib-2.32.patch \
+"
+SRC_URI[md5sum] = "1f470525c1fbe53253813a0978c18228"
+SRC_URI[sha256sum] = "8bb6457db4e2eea1877b487d9ac8513546372db9a6a2e4271d11229f4af84e23"
+
+FILES_${PN} += "${datadir}/pixmaps ${datadir}/applications"
+FILES_${PN}-doc += "${datadir}"
+
+EXTRA_OECONF = "--disable-ssl"
+
+CFLAGS += "-D_GNU_SOURCE"
+
+do_configure_prepend() {
+    mkdir -p m4
+    for i in $(find ${S} -name "Makefile.am") ; do
+        sed -i s:'-I$(includedir)'::g $i
+    done
+}
+
+inherit autotools pkgconfig
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/anthy/anthy/2ch_t.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/anthy/anthy/2ch_t.patch
new file mode 100644
index 0000000..bf9bdb6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/anthy/anthy/2ch_t.patch
@@ -0,0 +1,5062 @@
+source: shamelessly stolen from debian ;-)
+purpose: add some entries particularly useful in Japanese 2channel anonymous website
+         (at least that is my understanding ;-))
+
+--- anthy-5414.orig/mkanthydic/2ch.t
++++ anthy-5414/mkanthydic/2ch.t
+@@ -0,0 +1,5055 @@
++# 2chÍѸì¤ÎCanna·Á¼°¼­½ñ
++# HARUYAMA Seigo haruyama@unixuser.org
++# ¸í¤ê¤äÉÊ»ì¤Ï¤³¤¦¤¹¤Ù¤­ ¤Ê¤É ¤¤¤Ã¤Ñ¤¤¤¢¤ë¤Ï¤º¤Ê¤Î¤Ç
++# ¤´»ØŦ¤è¤í¤·¤¯
++# »²¹Í: http://freezone.kakiko.com/jiten/index.html
++#       http://members.tripod.co.jp/maruheso/aadic/index.html
++#       http://isweb33.infoseek.co.jp/computer/gikosite/ (403 Forbidden)
++#       http://cannadic.oucrc.org/
++#       http://www.kyoto.trans-nt.com/anthy/
++#       http://www.media-k.co.jp/jiten/
++# »²¹Í¤Ë¤·¤Æ¤¤¤ë¼­½ñ¤ÎÇÛÉե饤¥»¥ó¥¹¤¬¤Ï¤Ã¤­¤ê¤·¤Þ¤»¤ó¤¬
++# ¼ýÏ¿¤µ¤ì¤¿¸ì¤Ë´Ø¤·¤Æ¤Ï¥Ñ¥Ö¥ê¥Ã¥¯¥É¥á¥¤¥ó¤È²ò¤·¤ÆÌäÂê¤Ê¤¤
++# ¤ÈȽÃǤ·¤Æ¤¤¤Þ¤¹.
++#
++# ¤³¤Î¼­½ñ¤Ï̵ÊݾڤǤ¹¡£
++# 
++# 2004/5/19ÈÇ
++#
++1¤Î¤¤¤·¤å¤¦¤«¤ó #T35 >>1¤Î°ì½µ´Ö
++1¤Î¤¤¤Ã¤·¤å¤¦¤«¤ó #JN >>1¤Î°ì½µ´Ö
++1¤Î¤ª¤µ¤Ê¤Ê¤¸¤ß #JN 1¤ÎÍĤʤ¸¤ß
++2¤Á¤ã¤ó¤»¤¤¤·¤ó¤Ó¤ç¤¦¤¤¤ó #JN 2chÀº¿Àɱ¡
++911¤¸¤±¤ó #T35 911»ö·ï
++¤¢¡¼¤¦¡¼ #CJ ¤¢¡Á¤¦¡Á
++¤¢¡¼¤¸¤å #KK ¥¢¡¼¥¸¥å
++¤¢¡¼¤¸¤å #T35 ¥¢¡¼¥¸¥å
++¤¢¡¼¤ë¤¢¡¼¤ë #T35 RR
++¤¢¡¼¤í¤ó¤â¤é¤é¡¼ #JN ¥¢¡¼¥í¥ó¥â¥é¥é¡¼
++¤¢¤¢¤¤¤¨¤Ð¤¸¤ç¤¦¤æ¤¦ #CJ ¤¢¤¢¸À¤¨¤Ð¾åÍ´
++¤¢¤¢¤¦¤¦ #CJ ¤¢¡Á¤¦¡Á
++¤¢¤¢¤¬¤à¤ä¤ë¤è #CJ ¤¢¤¢¡¢¥¬¥à¤ä¤ë¤è¡£
++¤¢¤¢¤¸¤å #T35 ¥¢¡¼¥¸¥å
++¤¢¤¢¤Ï¤Ï #CJ ¥¢¡¼¥Ï¥Ï
++¤¢¤¢¤Ï¤Ï #CJ ÂŽ±ÂŽ°ÂŽÊÂŽÊ
++¤¢¤¢¤ë¤¢¤¢¤ë #T35 RR
++¤¢¤¢¤ë¤¨¤¤¤¢¤¢¤ë #T35 RAR
++¤¢¤¤ #JN ¤¢¤¤
++¤¢¤¤¤¢¡¼¤ë #T35 IR
++¤¢¤¤¤³¤é #T35 ¥¢¥¤¥³¥é
++¤¢¤¤¤´ #T35 °¦¸í
++¤¢¤¤¤´¡¼ #CJ ¥¢¥¤¥´¡Á¡ª
++¤¢¤¤¤»¤ó #T35 ¤¢¤¤¤»¤ó
++¤¢¤¤¤Æ¤£¡¼¤Ñ¤ï¡¼ #T35 £É£Ô¥Ñ¥ï¡¼
++¤¢¤¤¤Ç¤£¡¼ #T35 £É£Ä
++¤¢¤¤¤É¤ë #T35 °¥¡ð
++¤¢¤¤¤Ê¤Ö¤ê¤Ã¤¸ #T35 ¥¢¥¤¥Ê¥Ö¥ê¥Ã¥¸
++¤¢¤¤¤Ë¤Á¤ã¤ó¤Í¤ë #T35 i¡Ý2¤Á¤ã¤ó¤Í¤ë
++¤¢¤¤¤Î¤¿¤Í #CN °¦¤Î¼ï
++¤¢¤¤¤Î¤¿¤Í #T35 °¦¤Î¼ï
++¤¢¤¤¤Ô¡¼ #T35 £É£Ð
++¤¢¤¤¤Ô¤¤ #T35 ip!
++¤¢¤¤¤Ö #KK °¦Éï
++¤¢¤¤¤Ö #T35 °¦Éï
++¤¢¤¤¤Ü¤ó #JN ¤¢¤¤¤Ü¤ó
++¤¢¤¤¤Ü¤ó #T35 ¤¢¤¤¤Ü¤ó
++¤¢¤¤¤á¤Ë¤å¤¦¤Ï¤¸¤­ #T35 ime.nuÃƤ­
++¤¢¤¤¤â¤Ê #T35 iMona
++¤¢¤¤¤â¤Ê¡¼ #JN ¥¢¥¤¥â¥Ê¡¼
++¤¢¤¤¤â¤Ê¡¼ #JN ¥¢¥¤¥â¥Ê¡¼ 
++¤¢¤¤¤é¤ó¤É #T35 °¥¤é¤ó¤É
++¤¢¤¤¤ë #KK ¥¢¥¤¥ë
++¤¢¤¤¤ë #T35 ¥¢¥¤¥ë
++¤¢¤¤¤ï¤¤¤æ¡¼¤¼¤í¤ï¤ó #JN IYU-01
++¤¢¤¦ #KK ¤¢¤¦
++¤¢¤¦ #T35 ¤¢¤¦
++¤¢¤¦¡¼ #JN ¥¢¥¦¡¼
++¤¢¤¦¤È¤í¡¼ #T35 ¥¢¥¦¥È¥í¡¼
++¤¢¤¦¤È¤í¤¦ #T35 ¥¢¥¦¥È¥í¡¼
++¤¢¤¦¤ò¤¿ #T35 ¤¢¤¦¥ò¥¿
++¤¢¤ª #R5r Àú
++¤¢¤ª¤¹¤® #KSr ÀĤ¹¤®
++¤¢¤ª¤¹¤® #T35 ÀĤ¹¤®
++¤¢¤ª¤¾¤é #KK ÀĶõ
++¤¢¤ª¤¾¤é #T35 ÀĶõ
++¤¢¤ª¤Ð #T35 ÀÄ»õ
++¤¢¤ª¤ê #T35 Àú¤ê
++¤¢¤ª¤ê¤³¤Æ¤¤ #T35 Àú¤ê¸ÇÄê
++¤¢¤ª¤ê¤³¤Ô¤Ú #T35 Àú¤ê¥³¥Ô¥Ú
++¤¢¤ª¤ê¤ó #JN ¥¢¥ª¥ê¥ó
++¤¢¤« #T35 ¹¤
++¤¢¤«¤¤¤¯¤Ë¤ß¤Á #T35 ÀÖ°æˮƻ
++¤¢¤«¤¤¤Û¤¦¤É¤¦ #T35 ÀÖ°æˮƻ
++¤¢¤«¤­¤ã¤Ã¤× #T35 ÀÖ¥­¥ã¥Ã¥×
++¤¢¤«¤À¤ó¤·¤ã¤¯ #T35 ÀÖÃ˼ß
++¤¢¤«¤Ò #KK ¥¢¥«Æü
++¤¢¤«¤Ò #T35 ¥¢¥«Æü
++¤¢¤«¤Þ¤Õ¤é¡¼ #T35 À֥ޥե顼
++¤¢¤«¤Þ¤Õ¤é¤¢ #T35 À֥ޥե顼
++¤¢¤¬ #R5 aga
++¤¢¤¬¤È¤¦ #CJ ¤¢¤¬¤È¤¦
++¤¢¤­¤·¤Î¤Î¤ß¤ä¤«¤³¤Ê¤¤¤·¤ó¤Î¤¦ #JN ½©¼ÄµÜ²Â»ÒÆâ¿Æ²¦
++¤¢¤­¤Ï¤Ð¤é¤Ò¤ç¤¦¤¸¤å¤ó¤·¤è¤¦ #T35 ½©ÍÕ¸¶É¸½à»ÅÍÍ
++¤¢¤­¤Ò¤í¤â¤Ê¡¼ #JN ¥¢¥­¥Ò¥í¥â¥Ê¡¼
++¤¢¤­¤Ò¤í¤â¤Ê¡¼ #T35 ¥¢¥­¥Ò¥í¥â¥Ê¡¼
++¤¢¤­¤Ò¤í¤â¤Ê¤¢ #T35 ¥¢¥­¥Ò¥í¥â¥Ê¡¼
++¤¢¤­¤ì¤¹ #JN ¥¢¥­¥ì¥¹
++¤¢¤¯¤­¤ó #T35 ¥¢¥¯¶Ø
++¤¢¤¯¤»¤¹¤­¤»¤¤ #T30 ¥¢¥¯¥»¥¹µ¬À©
++¤¢¤¯¤»¤¹¤­¤»¤¤ #T35 ¥¢¥¯¥»¥¹µ¬À©
++¤¢¤¯¤Þ #JN °­Ëâ
++¤¢¤¯¤Þ #T35 °­Ëâ
++¤¢¤°¤Í¤¹¤¹¤Ú¤·¤ã¤ë #T35 ¥¢¥°¥Í¥¹¥¹¥Ú¥·¥ã¥ë
++¤¢¤±¤¤¤¿ #CN ¥¢¥±ÈÄ
++¤¢¤±¤¤¤¿ #T35 ¥¢¥±ÈÄ
++¤¢¤² #CJ ¤¢¤²
++¤¢¤² #CN ¾å¥²
++¤¢¤² #KSr ¤¢¤²
++¤¢¤² #R5 age
++¤¢¤² #T35 age
++¤¢¤² #T35 ¤¢¤²
++¤¢¤² #T35 ¾å¤²
++¤¢¤² #T35 ¾å¥²
++¤¢¤²¤¢¤é¤· #T35 age¹Ó¤é¤·
++¤¢¤²¤¢¤é¤· #T35 ¤¢¤²¹Ó¤é¤·
++¤¢¤²¤Á¤å¤¦ #T35 ¤¢¤²¿ß
++¤¢¤²¤Ñ¤½¤Þ¤½ #JN ageÂŽÊÂŽßÂŽ¿ÂŽÏÂŽ¿
++¤¢¤²¤Ö¤é¤¶¡¼¤º #JN age¥Ö¥é¥¶¡¼¥º
++¤¢¤²¤â¤Ê¡¼ #JN age¥â¥Ê¡¼
++¤¢¤²¤ì #CJ age¤ì
++¤¢¤²¤ì¤¹ #T35 age¥ì¥¹
++¤¢¤²¤ó¤Ê¤Ü¤± #CJ ¤¢¤²¤ó¤Ê¥Ü¥±¡ª
++¤¢¤´ #JN ¥¢¥´
++¤¢¤´ #T35 ¥¢¥´
++¤¢¤´¤¢¤Ë¤á #T35 ¥¢¥´¥¢¥Ë¥á
++¤¢¤´¤ª¤¿ #JN ¥¢¥´¥ª¥¿
++¤¢¤´¤ª¤¿ #T35 ¥¢¥´¥ª¥¿
++¤¢¤´¤Ï¤º¤·¤â¤Á #T30 ¤¢¤´¥Ï¥º¥·»ý¤Á
++¤¢¤´¤Ï¤º¤·¤â¤Á #T35 ¤¢¤´¥Ï¥º¥·»ý¤Á
++¤¢¤µ¤Á¤å¤ó #T35 Ä«¥Á¥å¥ó
++¤¢¤µ¤Ì¤Þ¤Ê¤ß¤»¤ó¤»¤¤ #JN Àõ¾ÂÆàÈþÀèÀ¸
++¤¢¤µ¤Ï¤é¡¼ #JN ¥¢¥µ¥Ï¥é¡¼
++¤¢¤µ¤Ò¤¤¤Á¤Ë¤¤¤Á¤¼¤í #T35 Ä«Æü12.10
++¤¢¤µ¤Ô¡¼ #JN ¥¢¥µ¥Ô¡¼¡¡
++¤¢¤¸¤Ý¤ó #T35 Ì£¥Ý¥ó
++¤¢¤¹¤«¤â¤Ê¡¼ #JN ÈôÄ»¥â¥Ê¡¼
++¤¢¤¹¤­¡¼¤¢¡¼¤È #T35 ¥¢¥¹¥­¡¼¥¢¡¼¥È
++¤¢¤¹¤­¡¼¤¢¡¼¤È¤«¤¤¤»¤­ #JN £Á£Á²òÀÏ
++¤¢¤¹¤­¤¤¤¢¤¢¤È #T35 ¥¢¥¹¥­¡¼¥¢¡¼¥È
++¤¢¤º¤Þ¤ó¤¬¤À¤¤¤ª¤¦ #T35 ¤¢¤º¤Þ¤ó¤¬Â粦
++¤¢¤½¤¦ #JN ÂŽ±ÂŽ¿ÂŽ³
++¤¢¤½¤Ñ¤½¤Þ¤½ #JN ¥¢¥½¥Ñ¥½¥Þ¥½
++¤¢¤½¤Ñ¤½¤ï¤Ã¤·¤ç¤¤ #JN ¥¢¥½¥Ñ¥½¥ï¥Ã¥·¥ç¥¤
++¤¢¤½¤Þ¤½¤Ñ¤½¤Ô¡¼¤·¡¼ #JN ÂŽ±ÂŽ¿ÂŽÊÂŽßÂŽ¿ÂŽÏÂŽ¿PC
++¤¢¤Ã¤­¤¤ #JN ¥¢¥Ã¥­¡¼
++¤¢¤Ã¤¶¤à #JN ¥¢¥Ã¥¶¥à
++¤¢¤Ã¤½ #JN ¤¢¤Ã¤½
++¤¢¤Ã¤½¡¼ #CJ ¤¢¤Ã¤½¡¼
++¤¢¤Ã¤½¡¼ #JN ¤¢¤Ã¤½¡¼
++¤¢¤Ã¤Á¤³¤Ã¤Á¤¤¤¤¤È¤â #JN ¥¢¥Ã¥Á¥³¥Ã¥Á¥¤¥¤¥È¥â
++¤¢¤Ã¤×¤·¤ç¤¯¤Ë¤ó #T35 ¤¦£ð¿¦¿Í
++¤¢¤Ã¤×¤·¤ç¤¯¤Ë¤ó #T35 ¤¦£ð¿¦¿Í 
++¤¢¤Ã¤×¤º #T35 Appz
++¤¢¤Ã¤×¤ë¤ª¤ä¤¸ #T35 ¥¢¥Ã¥×¥ë¥ª¥ä¥¸
++¤¢¤Ã¤×¤ë¤­¤Ã¤É #JN ¥¢¥Ã¥×¥ë¥­¥Ã¥É
++¤¢¤Ã¤×¤í¡¼¤À¡¼ #T35 ¥¢¥Ã¥×¥í¡¼¥À¡¼
++¤¢¤Ä¡¼ #JN (ÂŽßAÂŽß;)ÂŽ±ÂŽÂÂŽ°
++¤¢¤Ä¡¼ #JN ÂŽ±ÂŽÂÂŽ°
++¤¢¤Ä¤²¤·¤ç¤¦¤¸¤µ¤¯¤¸¤¨¤ó #JN ¡ÚÂŽ¥¢ÏÂŽ¥¡Û
++¤¢¤Ä¤²¤·¤ç¤¦¤¸¤µ¤¯¤¸¤¨¤ó #JN ÂŽ±ÂŽÂÂŽ¹ÂŽÞÂŽ¼ÂŽ®ÂŽ³ÂŽ¼ÂŽÞÂŽ»ÂŽ¸ÂŽ¼ÂŽÞÂŽ´ÂŽÝ
++¤¢¤È¤Ô¡¼ #T35 @p
++¤¢¤Ê¤¶¡¼¤¢¤®¤³ #JN ¥¢¥Ê¥¶¡¼¥¢¥®¥³
++¤¢¤Ê¤¿¤ò¤Ï¤ó¤Ë¤ó¤Ç¤¹ #CJ ¤¢¤Ê¤¿¤ò¡¢ÈȿͤǤ¹
++¤¢¤Ê¤¿¤ò¤Ï¤ó¤Ë¤ó¤Ç¤¹ #JN ¡Ê'¢Ï`¡Ë¡ã¤¢¤Ê¤¿¤ò¡¢ÈȿͤǤ¹
++¤¢¤Ê¤¿¤ò¤Ï¤ó¤Ë¤ó¤Ç¤¹ #JN ¤¢¤Ê¤¿¤ò¡¢ÈȿͤǤ¹
++¤¢¤Ê¤í¤°¤Õ¤¡¤¯¤È¤ê¤¤ #T35 ¥¢¥Ê¥í¥°¥Õ¥¡¥¯¥È¥ê¡¼
++¤¢¤Ê¤ò¤¿ #T35 ¥¢¥Ê¥ò¥¿
++¤¢¤Ë #T35 ·»
++¤¢¤Ë¤ª¤¿ #T35 ¥¢¥Ë¥ª¥¿
++¤¢¤Ë¤­ #T35 ¥¢¥Ë¥­
++¤¢¤Ë¤¸¤ã #T35 ·»¼Ô
++¤¢¤Ë¤×¤ê #T35 ¥¢¥Ë¥×¥ê
++¤¢¤Ë¤ò¤¿ #T35 ¥¢¥Ë¥ò¥¿
++¤¢¤Î¤¯¤Ë #T35 ¤¢¤Î¹ñ
++¤¢¤Î¤¯¤Ë¤Î¤¢¤Î¤Û¤¦¤½¤¯ #T35 ¤¢¤Î¹ñ¤Î¤¢¤Îˡ§
++¤¢¤Ï¤¡ #JN (*¡­§Õ`*)ÂŽ±ÂŽÊÂŽ§&#9829;
++¤¢¤Ï¤¡ #JN (*¡­§Õ`;)¡Ä
++¤¢¤Ï¤¡ #JN ¡Ä(*¡­§Õ`)ÂŽ±ÂŽÊÂŽ§¡Ä&#9829;
++¤¢¤Ï¤¡ #JN ¦²(*Žߧ¥`;)ÂŽ±¡ÄÂŽ±¡ÄÂŽ±ÂŽ¯ÂŽÊÂŽ§ÂŽ§ÂŽ§ÂŽ§ÂŽ§ÂŽ§ÂŽ§ÂŽ§&#9829;!!!!
++¤¢¤Ï¤¡ #JN ¦²(ŽߧÕ`*;)ÂŽ±ÂŽ¯,ÂŽ±ÂŽÊÂŽ§&#9829;
++¤¢¤Ï¤¡ #JN ÂŽ±ÂŽÊÂŽ§&#9829;
++¤¢¤Ñ¤à #T35 ¥¢¥Ñ¥à
++¤¢¤Ñ¤à¤¿¤Þ¤â¤Ã¤Æ¤³¤¤ #JN ¥¢¥Ñ¥à¡ªÃÆ»ý¤Ã¤Æ¤³¤¤
++¤¢¤Ò¤ã #CJ ¥¢¥Ò¥ã
++¤¢¤Ò¤ã #CJ ÂŽ±ÂŽËÂŽ¬
++¤¢¤Ò¤ã #JN ¥¢¥Ò¥ã
++¤¢¤Ò¤ã #JN ÂŽ±ÂŽËÂŽ¬
++¤¢¤Ò¤ã¤¢¤¶¤é¤· #JN ¥¢¥Ò¥ã¥¢¥¶¥é¥·¡¡
++¤¢¤Ò¤ã¤¬¤ß¤Ï¤«¤» #JN ¥¢¥Ò¥ã¿ÀÇî»Î
++¤¢¤Ó¤ã #CJ ¤¢¤Ó¤ã
++¤¢¤Ô¤Ã¤·¤ã¡¼ #JN ¥¢¥Ô¥Ã¥·¥ã¡¼
++¤¢¤Õ¤¡¡¼¤à¤É¤¨¤Ã¤¯¤¹ #JN ¥¢¥Õ¥¡¡¼¥à¥É£Ø
++¤¢¤Õ¤© #T35 ¥¢¥Õ¥©
++¤¢¤Õ¤¬¤ó¤³¤¦¤¯¤¦¤º¤â¤¦ #T35 ¥¢¥Õ¥¬¥ó¹Ò¶õÁêËÐ
++¤¢¤Õ¤í¤Ë¤À¡¼ #JN ¥¢¥Õ¥í¥Ë¥À¡¼
++¤¢¤Ö¤¤¤¿ #T35 ¥¢¥ÖÈÄ
++¤¢¤Ö¤¥¤ë¤â¤Ê¡¼ #JN ¥¢¥ô¥É¥¥¥ë¥â¥Ê¡¼
++¤¢¤× #T30 ¤¢¤×
++¤¢¤× #T30 ¥¢¥×
++¤¢¤×¤í¤À #T35 ¤¢¤×¤í¤À
++¤¢¤Ù #JN ¤Ê¤Ã¤Á
++¤¢¤Ù #JN °ÂÇÜ
++¤¢¤Û¤¹¤± #T35 ¤¢¤Û½õ
++¤¢¤Û¤¿¤ó #JN ¤¢¤Û¤¿¤ó
++¤¢¤Û¤ë¤À¡¼ #T35 ¥¢¥Û¥ë¥À¡¼
++¤¢¤Û¤ë¤À¤¢ #T35 ¥¢¥Û¥ë¥À¡¼
++¤¢¤Ü¡¼¤ó #JN ¤¢¤Ü¡¼¤ó
++¤¢¤Ü¡¼¤ó #T30 ¤¢¤Ü¡¼¤ó
++¤¢¤Ü¡¼¤ó #T30 ¤¢¤Ü¡Á¤ó
++¤¢¤Ü¡¼¤ó¤Í¤Ã¤È¤ï¡¼¤¯ #T35 ¥¢¥Ü¡¼¥ó¥Í¥Ã¥È¥ï¡¼¥¯
++¤¢¤Ü¡¼¤ó¤Ð¤¯¤é¤¤ #JN ÂŽ±ÂŽÎÂŽÞÂŽ°ÂŽÝÇúÍë
++¤¢¤Ü¤ª¤·¤ç¤ó #T35 ¥¢¥Ü¡¼¥·¥ç¥ó
++¤¢¤Ü¤ª¤ó #T35 ¤¢¤Ü¡Á¤ó
++¤¢¤Ü¤ª¤ó¤Í¤Ã¤È¤ï¤¢¤¯ #T35 ¥¢¥Ü¡¼¥ó¥Í¥Ã¥È¥ï¡¼¥¯
++¤¢¤Ý¡¼ #KK ¥¢¥Ý¡¼
++¤¢¤Ý¡¼ #T35 ¥¢¥Ý¡¼
++¤¢¤Ý¤ª #T35 ¥¢¥Ý¡¼
++¤¢¤Þ¡¼ #JN ¡Ê&hearts;¢Ï;&hearts;¡ËÂŽ±ÂŽÏÂŽ°
++¤¢¤Þ¡¼ #JN ¥¢¥Þ¡¼
++¤¢¤ß #T35 ÌÖ
++¤¢¤à¤í¤Ë¤ã¤ß¤¨ #JN °Â¼¼ÂŽÆÂŽ¬ÂŽÐÂŽ´
++¤¢¤á¤¶¡¼ #T35 ¤¢¤á¤¶¡¼
++¤¢¤á¤¶¡¼¤Í¤Ã¤È¤Ä¡¼ #CN ¤¢¤á¤¶¡¼¤Í¤Ã¤È£²
++¤¢¤á¤¶¡¼¤Í¤Ã¤È¤Ä¡¼ #T35 ¤¢¤á¤¶¡¼¤Í¤Ã¤È£²
++¤¢¤á¤¶¤¢ #T35 ¤¢¤á¤¶¡¼
++¤¢¤á¤¶¤¢¤Í¤Ã¤È¤Ä¤¦ #T35 ¤¢¤á¤¶¡¼¤Í¤Ã¤È£²
++¤¢¤á¤¾¤¦ #CN ¤¢¤á¤¾¤¦
++¤¢¤á¤¾¤¦ #JN ¤¢¤á¤¾¤¦
++¤¢¤á¤¾¤¦ #T35 ¤¢¤á¤¾¤¦
++¤¢¤á¤¾¤¦¤«¤ê #JN ¤¢¤á¤¾¤¦¡Ê²¾¡Ë
++¤¢¤á¤¾¤¦¤«¤ê #T35 ¤¢¤á¤¾¤¦¡Ê²¾¡Ë
++¤¢¤á¤Ë¤â¤Þ¤±¤Æ #T35 ¥¢¥á¥Ë¥â¥Þ¥±¥Æ
++¤¢¤á¤Í¤³ #JN ¤¢¤á¤Í¤³
++¤¢¤ä¤·¤£¤ï¡¼¤ë¤É #CN ¤¢¤ä¤·¤£¤ï¡¼¤ë¤É
++¤¢¤ä¤·¤¤ #T35 ¤¡¤ã¦É¤£
++¤¢¤ä¤·¤¤¤¸¤å¤¦¤Ë¤ó #T35 ¤¡¤ã¦É¤£½»¿Í
++¤¢¤ä¤·¤¤¤ï¡¼¤ë¤É #CN ¤¡¤ã¦É¤£¤ï¡¼¤ë¤É
++¤¢¤ä¤·¤¤¤ï¡¼¤ë¤É #T35 ¤¡¤ã¦É¤£¤ï¡¼¤ë¤É
++¤¢¤ä¤·¤¤¤ï¤¢¤ë¤É #T35 ¤¡¤ã¦É¤£¤ï¡¼¤ë¤É
++¤¢¤ä¤Ê¤ß¤ì¤¤ #JN ¤¡¤ã¤Ê¤ß¥ì¥¤
++¤¢¤æ #JN ¤¢¤æ
++¤¢¤æ #T35 ¤¢¤æ
++¤¢¤æ #T35 °¾
++¤¢¤æ¤â¤Ê¡¼ #JN ¤¢¤æ¥â¥Ê¡¼
++¤¢¤è¤Í #T35 ¤¢¤è¤Í
++¤¢¤é #S5r ¹Ó¤é
++¤¢¤é¤¢¤­¤¤ #T35 ¥¢¥é¡¼¥­¡¼
++¤¢¤é¤¯¤ì #JN ¤¢¤é¤¯¤ì
++¤¢¤é¤¯¤ì¤ï¤Ã¤·¤ç¤¤ #JN ¤¢¤é¤¯¤ì¥ï¥Ã¥·¥ç¥¤
++¤¢¤é¤µ¡¼ #T35 ¹Ó¤µ¡¼
++¤¢¤é¤µ¤¢ #T35 ¹Ó¤µ¡¼
++¤¢¤é¤· #T35 ¹Ó¤é¤·
++¤¢¤é¤· #T35 ¹Ó¤é»á
++¤¢¤é¤· #T35 ¹Ó»á
++¤¢¤é¤· #T35 ¿·»á
++¤¢¤é¤· #T35 Íò
++¤¢¤é¤·¤¤¤é¤¤ #T30 ¹Ó¤é¤·°ÍÍê
++¤¢¤é¤·¤¤¤é¤¤ #T35 ¹Ó¤é¤·°ÍÍê
++¤¢¤é¤·¤³¤Æ¤¤ #T30 ¹Ó¤é¤·¸ÇÄê
++¤¢¤é¤·¤³¤Æ¤¤ #T35 ¹Ó¤é¤·¸ÇÄê
++¤¢¤é¤·¤½¤¦¤´¤¦¤»¤ó¤¿¡¼ #JN ¹Ó¤é¤·Áí¹ç¥»¥ó¥¿¡¼
++¤¢¤é¤¹ #S5r ¹Ó¤é
++¤¢¤é¤Ó¤¢¤´¤¢¤é¤· #T35 ¥¢¥é¥Ó¥¢¸ì¹Ó¤é¤·
++¤¢¤é¤ä¤À #CJ ¤¢¤é¤ä¤À
++¤¢¤é¤ä¤À #JN (¡¬§Õ¡¬)¡ã¤¢¤é¤ä¤À¡ª
++¤¢¤é¤ä¤À #JN ¤¢¤é¤ä¤À
++¤¢¤é¤ä¤À¤«¤ó¤¼¤ó¤¿¤¤ #JN ¤¢¤é¤ä¤À´°Á´ÂÎ
++¤¢¤ê¤¨¡¼¤ë #CJ ¥¢¥ê¥¨¡¼¥ë
++¤¢¤ê¤¨¡¼¤ë #T35 ¥¢¥ê¥¨¡¼¥ë
++¤¢¤ê¤¨¡¼¤ë #T35 ÂŽ±ÂŽØÂŽ´ÂŽ°ÂŽÙ
++¤¢¤ê¤¨¤¨¤ë #T35 ¥¢¥ê¥¨¡¼¥ë
++¤¢¤ê¤¨¤¨¤ë #T35 ÂŽ±ÂŽØÂŽ´ÂŽ°ÂŽÙ
++¤¢¤ê¤¬¤È¤¦ #JN ¤¢¤ê¤¬¤È¤¦
++¤¢¤ê¤¹ #JN ¤¢¤ê¤¹
++¤¢¤ë¤«¤â¤Ê¤º¤±¤¤¤à¤·¤ç #JN ¥¢¥ë¥«¥â¥Ê¥º·ºÌ³½ê
++¤¢¤ë¤¯¤­¤Î¤³ #JN Ê⤯¥­¥Î¥³
++¤¢¤ë¤¯¤á #JN Ê⤯²ê
++¤¢¤ì¤ó¤¸ #JN ¥¢¥ì¥ó¥¸
++¤¢¤í¤¨¤ê¡¼¤Ê #JN ¥¢¥í¥¨¥ê¡¼¥Ê
++¤¢¤ó¤¬¤È¤Ê¤â¡¼ #JN ¤¢¤ó¤¬¤È¥Ê¥â¡¼
++¤¢¤ó¤°¤é #T35 ¥¢¥ó¥°¥é
++¤¢¤ó¤±¤ó¤µ¤Ä #JN °Å¡¦·õ¡¦»¦
++¤¢¤ó¤·¤ã¤¹¤Í¤³ #JN ¥¢¥ó¥·¥ã¥¹Ç­
++¤¢¤ó¤¿¤¬¤Ê¡¼ #JN ¥¢¥ó¥¿¥¬¥Ê¡¼
++¤¢¤ó¤¿¤â¤Í¡¼ #JN ¥¢¥ó¥¿¥â¥Í¡¼
++¤¢¤ó¤À¡¼¤°¤é¤¦¤ó¤É #T35 ¥¢¥ó¥À¡¼¥°¥é¥¦¥ó¥É
++¤¢¤ó¤Á¤Ç¤£¤¤¤Æ¤£¤¤ #T35 ¥¢¥ó¥ÁDT
++¤¢¤ó¤Ê¤«¤Ï¤ë¤Ê #CN °ÂÃ濺̾
++¤¢¤ó¤Ê¤«¤Ï¤ë¤Ê #T35 °ÂÃ濺̾
++¤£¤ç¤¥ #JN ¤£¤ç¤¥
++¤¤ #C5r ÀÂ
++¤¤¡¼¤¸¤¤ #T35 £ÅÌì
++¤¤¡¼¤Ú¡¼¤³¡¼ #JN ¥¤¡¼¥Ú¡¼¥³¡¼
++¤¤¡¼¤ó¤¸¤ã¤Ê¤¤¤Î #JN ¤¤¡¼¤ó¤¸¤ã¤Ê¤¤¤Î
++¤¤¤¤ #CJ  (ÂŽ¥¢ÏÂŽ¥)ÂŽ²ÂŽ²!!
++¤¤¤¤ #CJ  ¡Ê¡¦¢Ï¡¦¡Ë¥¤¥¤!!
++¤¤¤¤ #CJ  ¡Ê¡¦¢Ï¡¦¡ËÂŽ²ÂŽ²!!
++¤¤¤¤ #CJ ¥¤¥¤
++¤¤¤¤¤¢¤¸¤ã¤ó #JN ¤¤¤¤¤¢¤¸¤ã¤ó
++¤¤¤¤¤¸¤Þ #T35 ÈÓÅè
++¤¤¤¤¤¿¤¤¤À¤±¤Á¤ã¤¦¤ó¤«¤È #CJ ¸À¤¤¤¿¤¤¤À¤±¤Á¤ã¤¦¤ó¤«¤È¡£
++¤¤¤¤¤À #T35 ÈÓÅÄ
++¤¤¤¨¤¤¤³¤é #T35 °ä±Æ¥³¥é
++¤¤¤¨¤Ï¤ä¤É¤Ç¤â¤¬¤Ã¤·¤å¤¯¤¸¤ç¤Ç¤â¤Í¤§¤¾ #T35 ²È¤Ï½É¤Ç¤â¹ç½É½ê¤Ç¤â¤Í¤§¤¾¡ª
++¤¤¤« #T35 ¤¤¤«
++¤¤¤«¤¬¤Ê¤â¤Î¤« #JN ÂŽ²ÂŽ¶ÂŽ¶ÂŽÞÂŽÅÂŽÓÂŽÉÂŽ¶
++¤¤¤«¤¯¤»¤¨ #CJ ¤¤¤«¤¯¤»¡¼
++¤¤¤«¤·¤ç¤¦¤ê¤ã¤¯ #CJ ¡Ê°Ê²¼¾Êά
++¤¤¤«¤·¤ç¤¦¤ê¤ã¤¯ #CJ °Ê²¼¾Êά
++¤¤¤«¤ê¤Î¤¤¤Þ¤Î¤¦¤Á #JN Åܤê¤Î¥¤¥Þ¥Î¥¦¥Á
++¤¤¤«¤ê¤ò¤Ö¤Ä¤±¤ë¤â¤Ê¡¼ #JN Åܤê¤ò¤Ö¤Ä¤±¤ë¥â¥Ê¡¼
++¤¤¤­¤¸¤ë¤·¤®¤å¤¦¤Ë¤å¤¦ #JN À°õµíÆý
++¤¤¤­¤Î¤¤¤¤¤®¤³¤¦¤ê #JN À¤­¤Î¤¤¤¤¥®¥³Çä¤ê
++¤¤¤­¤Î¤¤¤¤¤Ë¤»¤®¤³ #JN À¤­¤ÎÎɤ¤µ¶¥®¥³
++¤¤¤¯ #C5r À¤¯
++¤¤¤¯¤Ê¤¤ #CJ ¥¤¥¯¥Ê¥¤¡ª¡ª
++¤¤¤¯¤Ê¤¤ #CJ ÂŽ²ÂŽ¸ÂŽÅÂŽ²!!
++¤¤¤±¤Ì¤Þ #T35 ÃÓ¾Â
++¤¤¤±¤Í¡¼¤è #JN ¥¤¥±¥Í¡¼¥è
++¤¤¤±¤á¤ó #T35 ÃÓÌÍ
++¤¤¤±¤á¤ó¤¦¤ó¤³ #JN ¤¤¤±¤á¤ó¥¦¥ó¥³
++¤¤¤³¡¼¤¯¤³¤Æ¤Ê¡¼¤³¤â¤Ò¤ã #JN ¥¤¥³¡¼¥¯¡¦¥³¥Æ¥Ê¡¼¡¦¥³¥â¥Ò¥ã
++¤¤¤³¤ª¤ë¤Ð¤« #T35 ¥¤¥³¡¼¥ë¥Ð¥«
++¤¤¤³¤¯¤®¤³ #JN °Û¹ñµ¼¸Å
++¤¤¤·¤«¤ï #T35 ÀÐÀî
++¤¤¤·¤«¤ï¤Ã¤Æ¤¦¤ó¤³¤¹¤ë¤Î #CJ ÀÐÀî¤Ã¤Æ¥¦¥ó¥³¤¹¤ë¤Î¡©
++¤¤¤·¤ã #T35 °å¼Ô
++¤¤¤·¤ä¤­¤¤¤â¤¦¤ê #JN ÀоƤ¤¤âÇä¤ê
++¤¤¤¸¤á¤Ê¤¤¡¼¤Ç¤Í #JN ¥¤¥¸¡¦¥á¡¦¥Ê¥¤¥Ç¡¼¥Í
++¤¤¤¸¤ç¤¦¤¸¤µ¤¯¤¸¤¨¤ó¤Ç¤·¤¿ #CJ (ÂŽ¥¢ÏÂŽ¥)ÂŽ²ÂŽ¼ÂŽÞÂŽ®ÂŽ³ÂŽ¼ÂŽÞÂŽ»ÂŽ¸ÂŽ¼ÂŽÞÂŽ´ÂŽÝÂŽÃÂŽÞÂŽ¼ÂŽÀ
++¤¤¤¸¤ç¤¦¤¸¤µ¤¯¤¸¤¨¤ó¤Ç¤·¤¿ #CJ ¡Ê¡¦¢Ï¡¦¡ËÂŽ²ÂŽ¼ÂŽÞÂŽ®ÂŽ³ÂŽ¼ÂŽÞÂŽ»ÂŽ¸ÂŽ¼ÂŽÞÂŽ´ÂŽÝÂŽÃÂŽÞÂŽ¼ÂŽÀ
++¤¤¤¹ #T35 °Ø»Ò
++¤¤¤¹¤É¤ó #T35 ¥¤¥¹¥É¥ó
++¤¤¤¿ #T35 ÈÄ
++¤¤¤¿¤¤ #T35 °äÂÎ
++¤¤¤¿¤«¤ó #T35 ÄË´É
++¤¤¤¿¤¬¤ª¤Á¤ë #CJ ÈĤ¬Íî¤Á¤ë
++¤¤¤¿¤¬¤­ #KK Ä˲
++¤¤¤¿¤¬¤­ #T35 Ä˲
++¤¤¤¿¤¬¤È¤Ö #CJ ÈĤ¬Èô¤Ö
++¤¤¤¿¤¯¤Í¡¼¤è #JN ¥¤¥¿¥¯¥Í¡¼¥è
++¤¤¤¿¤³¤¦¤¿¤¤¤¹¤± #T35 ÈűÂà½õ
++¤¤¤¿¤´¤Ð¤¯ #T30 ÈĸíÇú
++¤¤¤¿¤Á¤¬ #W5r ÈÄ°ã
++¤¤¤¿¤Á¤¬¤¤ #T35 Èİ㤤
++¤¤¤¿¤È¤Ð¤· #T35 ÈĤȤФ·
++¤¤¤¿¤Ë¤¤¤± #CJ ÈĤËÀ¤±¡ª
++¤¤¤¿¤á¤¤ #T35 ÈÄ̾
++¤¤¤¿¤ë¤ê¤¢¤ê¤Æ¤£ #T35 ¤¤¤¿¤ë¥ê¥¢¥ê¥Æ¥£
++¤¤¤Á #T35 1
++¤¤¤Á¤¤ #JNS »Ô°æ
++¤¤¤Á¤¤ #T35 »Ô°æ
++¤¤¤Á¤´¤»¤ó¤½¤¦ #T35 çõÀïÁè
++¤¤¤Á¤´¤Þ¤«¤¤ #T35 çõË⳦
++¤¤¤Á¤µ¤ó #JN £±¤µ¤ó
++¤¤¤Á¤µ¤ó¤Î¤ª¤«¤¢¤µ¤Þ¤Ø #CJ 1¤µ¤ó¤Î¤ªÊìÍͤØ
++¤¤¤Á¤µ¤ó¤Î¤´¤¦¤«¤¯¤Ï¤Ã¤Ô¤ç¤¦ #JN £±¤µ¤ó¤Î¹ç³Êȯɽ
++¤¤¤Á¤µ¤ó¤ò¤È¤ê¤Þ¤¯¤½¤¦¤«¤ó¤º #JN £±¤µ¤ó¤ò¼è¤ê´¬¤¯Áê´Ø¿Þ
++¤¤¤Á¤µ¤ó¤ò¤È¤ê¤Þ¤¯¤½¤¦¤«¤ó¤º #T35 £±¤µ¤ó¤ò¼è¤ê´¬¤¯Áê´Ø¿Þ
++¤¤¤Á¤Ã¤Æ¤¦¤¶¤¤¤è¤Í #JN £±¤Ã¤Æ¤¦¤¶¤¤¤è¤Í¡Á
++¤¤¤Á¤Î¤Ä¤¦¤Á¤Ò¤ç¤¦ #JN £±¤ÎÄÌÃÎɽ
++¤¤¤Á¤Î¤Ï¤« #JN £±¤ÎÊè
++¤¤¤Á¤Ï¤Ï¤ä¤¯¤·¤Í #JN £±¤ÏÁ᤯»à¤Í¡ª¡ª
++¤¤¤Á¤Ó¤Ã¤È¤µ¤Ð #T35 1bit»ª
++¤¤¤Á¤â¤¸¤Å¤Ä¤Ä¤¯¤Ã¤Æ¤Õ¤ä¤·¤¿¤¢¤¹¤­¡¼¤¢¡¼¤È #JN °ìʸ»ú¤º¤Ä¤Õ¤ä¤·¤Æºî¤Ã¤¿£Á£Á
++¤¤¤Ã¤­¤³¤¦ #T35 °ì´ü¹»
++¤¤¤Ã¤¿¤ó¤³¤ê¤ó¤º #JN ÂŽ²ÂŽ¯ÂŽÀÂŽÝÂŽºÂŽØÂŽÝÂŽ½ÂŽÞ
++¤¤¤Ã¤Á¤ã¤Ã¤Æ¤¯¤À¤µ¤¤ #JN À¤äÁ¤ã¤Ã¤Æ¤¯¤À¤µ¤¤
++¤¤¤Ã¤Á¤ã¤ó #CJ 1ch
++¤¤¤Ã¤Á¤ã¤ó #CJ 1ch.tv
++¤¤¤Ã¤Á¤ã¤ó #CJ £±¤Á¤ã¤ó
++¤¤¤Ã¤Á¤ã¤ó #T35 1ch
++¤¤¤Ã¤Á¤ã¤ó #T35 1ch.tv
++¤¤¤Ã¤Á¤ã¤ó #T35 £±¤Á¤ã¤ó
++¤¤¤Ã¤Á¤ã¤ó¤Í¤ë #CJ 1ch
++¤¤¤Ã¤Á¤ã¤ó¤Í¤ë #CJ 1ch.tv
++¤¤¤Ã¤Á¤ã¤ó¤Í¤ë #CJ £±¤Á¤ã¤ó
++¤¤¤Ã¤Á¤ã¤ó¤Í¤ë #T35 1ch
++¤¤¤Ã¤Á¤ã¤ó¤Í¤ë #T35 1ch.tv
++¤¤¤Ã¤Á¤ã¤ó¤Í¤ë #T35 £±¤Á¤ã¤ó
++¤¤¤Ã¤Æ¤¯¤ë #CJ À¤äƤ¯¤ë
++¤¤¤Ã¤Æ¤¯¤ë #kxuru À¤äƤ¯¤ë
++¤¤¤Ã¤Æ¤è¤· #CJ ¤£¤Ã¦Ó¤ç¦É
++¤¤¤Ã¤Æ¤è¤· #CJ À¤äƤ褷
++¤¤¤Ã¤Æ¤è¤·¤³¤¬¤¿¤Ò¤³¤¦¤Æ¤¤ #JN À¤äƤ褷¾®·¿Èô¹ÔÄú
++¤¤¤Ã¤Æ¤è¤·¤Ë¤ó¤Æ¤¤¤¤¤¤¤ó¤«¤¤ #JN À¤äƤ褷ǧÄê°Ñ°÷²ñ
++¤¤¤Ã¤Æ¤è¤·¤Ë¤ó¤Æ¤¤¤¤¤¤¤ó¤«¤¤ #JN À¤äƤ褷ǧÄê°Ñ°÷²ñ 
++¤¤¤Ã¤Æ¤è¤¹ #CJ À¤äƥ襹
++¤¤¤Ã¤È¤¦¤¸¤ç¤æ¤¦ #T35 °ìÅù½÷Í¥
++¤¤¤Ã¤Ñ¤Ä¤À¤±¤Ê¤é¤´¤·¤ã #CJ °ìȯ¤À¤±¤Ê¤é¸í¼Í
++¤¤¤Ã¤Ñ¤ó¤­¤ã¤¯ #T35 °ìÈ̵Ò
++¤¤¤Ã¤Ñ¤ó¤¸¤ó #T35 °ìÈÌ¿Í
++¤¤¤Ä¤â¤³¤³¤«¤é #JN ¤¤¤Ä¤â¤³¤³¤«¤é
++¤¤¤Æ¤ó¤·¤Þ¤·¤¿ #CJ °Üž¤·¤Þ¤·¤¿
++¤¤¤Æ¤ó¤·¤Þ¤·¤¿ #T35 °Üž¤·¤Þ¤·¤¿
++¤¤¤Ç¤Û¤½ #JN ÅÁÀâµð¿ÀÂŽ²ÂŽÃÂŽÞÂŽÎÂŽ¿
++¤¤¤Ç¤Û¤½ #JN ÂŽ²ÂŽÃÂŽÞÂŽÎÂŽ¿
++¤¤¤È¤¦¤¯¤ó #JN °ËÆ£·¯
++¤¤¤È¤¦¤¯¤ó #JN °ËÆ£·¯ 
++¤¤¤Ê¤«¤â¤Ê¡¼ #JN Åļ˥â¥Ê¡¼
++¤¤¤Ê¤¬¤­¤á¤ó¤Ð¡¼ #T35 °ð³À¥á¥ó¥Ð¡¼
++¤¤¤Ê¤¬¤­¤á¤ó¤Ð¤¢ #T35 °ð³À¥á¥ó¥Ð¡¼
++¤¤¤Ê¤´ #T35 175
++¤¤¤Ê¤´ #T35 ¥¤¥Ê¥´
++¤¤¤Ê¤´ #T35 éû
++¤¤¤Ë¤Í¤³ #JN ini¤Í¤³
++¤¤¤Ì #CN ¸¤
++¤¤¤Ì #KK ¸¤
++¤¤¤Ì #T35 ¸¤
++¤¤¤Ì¤³¤¦¤Ü¤¦ #JN ¸¤¸ø˾
++¤¤¤Ì¤»¤ó¤»¤¤ #T35 ¸¤ÀèÀ¸
++¤¤¤Ì¤Á¤å¤¦ #T35 ¸¤¿ß
++¤¤¤Ì¤ä¤Þ¤Ð¤· #JN ¸¤»³¶¶
++¤¤¤Î¤¨¤â¤ó #T35 ¤¤¤Î¤¨¤â¤ó
++¤¤¤Î¤¬¤·¤é¡¼ #JN ¥¤¥Î¥¬¥·¥é¡¼
++¤¤¤Î¤­¤¹¤ì #T35 ÃöÌÚ¥¹¥ì
++¤¤¤Î¤­¤Î¤Ç¤ó¤ï #JN ¤¤¤Î¤­¤ÎÅÅÏÃ
++¤¤¤Î¤±¤ó #JN ¥¤¥Î¥±¥ó
++¤¤¤Î¤Á¤Î¤Ç¤ó¤ï #JN ¤¤¤Î¤Á¤ÎÅÅÏÃ
++¤¤¤Ð¤·¤ç¤Í¡¼¤è #JN µï¾ì½ê¥Í¡¼¥è
++¤¤¤Ñ¡¼¤¤ #T15 ¥¤¥Ñ¡¼¥¤
++¤¤¤Ñ¡¼¤¤ #T35 ¥¤¥Ñ¡¼¥¤
++¤¤¤Þ¤¤¤°¤ó¤À¤ó #JN º£°æ·³ÃÄ
++¤¤¤Þ¤¤¤â¤Ê¡¼ #JN º£°æ¥â¥Ê¡¼
++¤¤¤Þ¤ª¤«¤â¤Ê¡¼ #JN ¥¤¥Þ¥ª¥«¥â¥Ê¡¼
++¤¤¤Þ¤ª¤«¤â¤Ê¡¼ #T35 ¥¤¥Þ¥ª¥«¥â¥Ê¡¼
++¤¤¤Þ¤ª¤«¤â¤Ê¤¢ #T35 ¥¤¥Þ¥ª¥«¥â¥Ê¡¼
++¤¤¤Þ¤½¤«¤ê #CJ ¤¤¤Þ¤½¤«¤ê
++¤¤¤Þ¤Î¤¦¤Á #JN ¥¤¥Þ¥Î¥¦¥Á
++¤¤¤Þ¤Î¤¦¤Á¤ª¤Ë¤®¤ê¤Ð¡¼¤¸¤ç¤ó #JN ¥¤¥Þ¥Î¥¦¥Á¡¦¤ª¤Ë¤®¤ê¥Ð¡¼¥¸¥ç¥ó
++¤¤¤Þ¤Î¤¦¤Á¤Ô¤«¤¡ #JN ÂŽ²ÂŽÏÂŽÉÂŽ³ÂŽÁ¥Ô¥«¥¡!
++¤¤¤á¤Ì¤Ï¤¸¤­ #T35 ime.nuÃƤ­
++¤¤¤â #CN °ò
++¤¤¤â #T35 °ò
++¤¤¤â¤¦¤È #T35 Ëå
++¤¤¤ä¤·¤±¤¤ #JN Ìþ¤··Ï
++¤¤¤ä¤É¤ó #CJ ¡Ê¡¦£Á¡¦¡ËÂŽ²ÂŽÔÂŽÄÂŽÞÂŽÝ!!
++¤¤¤ä¤Þ¤Ã¤¿¤¯ #JN ¨¬Ï¯À¸
++¤¤¤ä¤Þ¤Ã¤¿¤¯ #JN ÂŽ¨ÂŽ¬ÂŽÏÂŽ¯ÂŽÀÂŽ¸
++¤¤¤è¤¦ #JN ¤£¤ç¤¥
++¤¤¤è¤¦ #JN ¥¤¤ç¤¥
++¤¤¤é¤Ê¤¤¤ï #JN ¥¤¥é¥Ê¥¤¥ï
++¤¤¤é¤Í #JN ¡ÊÂŽß­ùÂŽß¡ËÂŽ²ÂŽ×ÂŽÈ
++¤¤¤é¤Í #JN ÂŽ²ÂŽ×ÂŽÈ
++¤¤¤é¤Í¡¼¤è #JN ¥¤¥é¥Í¡¼¥è
++¤¤¤é¤Í¡¼¤è¤«¤¹¤¿¤à #JN ¥¤¥é¥Í¡¼¥è¥«¥¹¥¿¥à
++¤¤¤é¤Í¡¼¤ë #JN ¥¤¥é¥Í¡¼¥ë
++¤¤¤é¤Í¤¸¤å¤Ë¤¢ #JN ¥¤¥é¥Í¥¸¥å¥Ë¥¢
++¤¤¤ê¤¢¤µ¤ó #JN Iria¤µ¤ó
++¤¤¤ë¤Í #JN ¡ÊŽߧØÂŽß)ÂŽ²ÂŽÙÂŽÈ
++¤¤¤ë¤Í #JN ÂŽ²ÂŽÙÂŽÈ
++¤¤¤ë¤Ó¤Í #T35 ¤¤¤ë¤Ó¤Í
++¤¤¤ì¤°¤¤ #T35 Æþ¤ì¶ô¤¤
++¤¤¤í¤Á¤ó¤À¤ó #T35 ¿§ÄÁÃÄ
++¤¤¤ó¤³¤«¤¤¤¸¤ó #JN ¥¤¥ó¥³²ø¿Í
++¤¤¤ó¤³¤«¤¤¤¸¤ó #T35 ¥¤¥ó¥³²ø¿Í
++¤¤¤ó¤· #T35 °ü»à
++¤¤¤ó¤Ô¤ª #T35 ¥¤¥ó¥Ô¥ª
++¤¤¤ó¤Ü¤¦ #T35 ±¢ËÅ
++¤¦¡«¤¡¡¼ #CJ ¥ô¥¡¡¼
++¤¦¡«¤¡¡¼ #CJ ¥ô¥¢¡¼
++¤¦¡«¤¡¤¤¤é¤¹ #T35 ¥ô¥¡¥¤¥é¥¹
++¤¦¡«¤¡¤« #T35 ¥ô¥¡¥«
++¤¦¡«¤¡¤«¤À #KK ¥ô¥¡¥«ÂÌ
++¤¦¡«¤¡¤«¤À #T35 ¥ô¥¡¥«ÂÌ
++¤¦¡«¤£ #JN £Ö
++¤¦¡«¤£¤¯¤È¤ê¡¼¤¾¤Ë¤Ã¤¯ #JN ¥ô¥£¥¯¥È¥ê¡¼¥¾¥Ë¥Ã¥¯
++¤¦¡«¤£¤¸¤å¤¤¤¿ #T35 ¥ô¥£¥¸¥åÈÄ
++¤¦¡«¤£¤ê¤¤ #T35 virii
++¤¦¤£¤Ê #T35 ¥¦¥£¥Ê
++¤¦¤£¤ó¤¨¤à¤¨¤Ã¤¯¤¹ #T35 WinMX
++¤¦¤£¤ó¤Ç¤£ #T35 Windy
++¤¦¤£¤ó¤É¤¥¡¼¤¯ #T35 winduke
++¤¦¤£¤ó¤É¤¦¤º #T35 Windoz
++¤¦¤§ #JN ³ª
++¤¦¤§ #JN ÂŽ³ÂŽª
++¤¦¤§¤¤¤È #T35 wait
++¤¦¤§¤¨¤Ï¤Ã¤Ï¤Ã¤Ï #CJ ¥¦¥§¡¼¡¢¥Ï¥Ã¥Ï¥Ã¥Ï 
++¤¦¤§¤¶¡¼¤ê¤Ý¡¼¤È #JN ¥¦¥§¥¶¡¼¡¦¥ê¥Ý¡¼¥È
++¤¦¤¨¤Î¤¯¤ê¤Ë¤Ã¤¯¤Î¤ª¤È¤³ #T35 ¾åÌ¥ê¥Ë¥Ã¥¯¤ÎÃË
++¤¦¤©¤¬ #T35 ¥¦¥©¥¬
++¤¦¤ª¡¼¤ó #T35 ¤¦¤ª¡¼¤ó
++¤¦¤ª¤ª¤ó #T35 ¤¦¤ª¡¼¤ó
++¤¦¤ª¤Ê¤ó¤«¤¹¤´¤¤¤È¤³¤í¤Ë¤Þ¤è¤¤¤³¤ó¤¸¤Þ¤Ã¤¿¤¾¤´¤ë¤¡ #JN ¤¦¤ª¡ª¤Ê¤ó¤«¤¹¤´¤¤¤È¤³¤í¤Ë̤¤¹þ¤ó¤¸¤Þ¤Ã¤¿¤¾¥´¥ë¥¡¡ª
++¤¦¤ª¤Ê¤ó¤«¤¹¤´¤¤¤È¤³¤í¤Ë¤Þ¤è¤¤¤³¤ó¤¸¤Þ¤Ã¤¿¤¾¤´¤ë¤¡ #JN ¤¦¤ª¡ª¤Ê¤ó¤«¤¹¤´¤¤¤È¤³¤í¤Ë̤¤¹þ¤ó¤¸¤Þ¤Ã¤¿¤¾ÂŽºÂŽÞÂŽÙÂŽ§¡ª 
++¤¦¤µ¤Þ¡¼ #JN (ŽߧÕÂŽß)ÂŽ³ÂŽ»ÂŽÏÂŽ°
++¤¦¤µ¤Þ¡¼ #JN ³»|
++¤¦¤µ¤Þ¡¼ #JN ÂŽ³ÂŽ»ÂŽÏ¡Ý
++¤¦¤¶ #KYT ¤¦¤¶
++¤¦¤¶¤¬¤­ #T35 ¥¦¥¶¥¬¥­
++¤¦¤·¤ª¤ó¤Ê #JN µí½÷
++¤¦¤¼¡¼ #JN (`»®¡­)ÂŽ³ÂŽ¾ÂŽÞÂŽ°
++¤¦¤¼¡¼ #JN ¥¦¥¼¡¼
++¤¦¤¼¡¼ #JN ÂŽ³ÂŽ¾ÂŽÞÂŽ°
++¤¦¤¼¡¼¤è #JN ¥¦¥¼¡¼¥è
++¤¦¤¼¤§ #CJ ¤¦¤¼¤§
++¤¦¤¼¤§¡¼ #CJ uzeeee!
++¤¦¤¼¤§¤­¤¨¤í #JN ¥¦¥¼¥§¤­¤¨¤í¡¦¡¦¡¦
++¤¦¤½¤³¡¼ #JN ¥¦¥½¥³¡¼!
++¤¦¤½¤³¡¼ #JN ÂŽ³ÂŽ¿ÂŽºÂŽ°!
++¤¦¤½¤Ï¤¦¤½¤Ç¤¢¤ë¤È¤ß¤Ì¤±¤ë¤Ò¤È¤Ç¤Ê¤¤¤È #CJ ¤¦¤½¤Ï¤¦¤½¤Ç¤¢¤ë¤È¸«È´¤±¤ë¿Í¤Ç¤Ê¤¤¤È
++¤¦¤½¤ä #T35 ±³²°
++¤¦¤¿¤Ë¤Ä¤Ã¤³¤ó¤Ç¤¯¤ì #JN ²Î¤Ë¥Ä¥Ã¥³¤ó¤Ç¤¯¤ì
++¤¦¤Á¤å¤¦¤«¤¤¤Ï¤Ä #T30 ±§Ã賫ȯ
++¤¦¤Á¤å¤¦¤«¤¤¤Ï¤Ä #T35 ±§Ã賫ȯ
++¤¦¤Á¤å¤¦¤ä¤Ð¤¤ #CJ ±§Ãè¥ä¥Ð¥¤
++¤¦¤Ã¤µ¤¤ #JN ¥¦¥Ã¥µ¥¤
++¤¦¤Ã¤µ¤¤¤Ï¤² #CJ ¤¦¤Ã¤µ¤¤¥Ï¥²
++¤¦¤Ã¤¿¤¨¤ë¤ê¤¢¤ë¤â¤Ê¡¼ #JN Áʤ¨¤ë¥ê¥¢¥ë¥â¥Ê¡¼
++¤¦¤Ä¤¦¤¿ #T35 ݵ²Î
++¤¦¤Ä¤¨¤â¤ó #JN ¤¦¤Ä¥¨¥â¥ó
++¤¦¤Ä¤À #KK ݵÂÇ
++¤¦¤Ä¤À #T35 ݵÂÇ
++¤¦¤Ä¤À¤·¤Î¤¦ #CJ ¤¦¤Ä¤À¤·¤Î¤¦
++¤¦¤Ä¤À¤·¤Î¤¦ #CJ ¤óÂǤĤÀ»áǾ 
++¤¦¤Ä¤À¤·¤Î¤¦ #CJ ݵ¤À»á¤Î¤¦
++¤¦¤Ä¤À¤·¤Î¤¦ #CJ ݵ¤À½ÁÇ» 
++¤¦¤Ä¤À¤·¤Î¤¦ #CJ ݵÂÇ»íǹ 
++¤¦¤Ä¤À¤·¤Î¤¦ #CJ ݵÂÌ»áǾ 
++¤¦¤Ä¤ä¤­ #JN ݵ¾Æ¤­
++¤¦¤Æ¤· #T35 ¥¦¥Æ¥·
++¤¦¤È #T35 ¥¦¥È
++¤¦¤Ê¡¼ #JN ¢º(ÂŽß¡ýÂŽß)¢»ÂŽ³ÂŽÅÂŽ°
++¤¦¤Ê¡¼ #JN ÂŽ³ÂŽÅÂŽ°
++¤¦¤Ë #T35 ¥¦¥Ë
++¤¦¤Ë¤¯¤í #T35 ¥¦¥Ë¥¯¥í
++¤¦¤Ë¤¯¤í #T35 ¥¦¥Ë¹õ
++¤¦¤Ë¤ã¡¼ #JN ¤¦¤Ë¤ã¡Á
++¤¦¤Ë¤å¤¦ #JN ¤¦¤Ë¤å¤¦
++¤¦¤Ò¤ç¡¼ #JN ¥¦¥Ò¥ç¡¼
++¤¦¤Ò¤ç¤¹¤ì #T35 ¥¦¥Ò¥ç¥¹¥ì
++¤¦¤× #T30 ¤¦£ð
++¤¦¤× #T30 ¤¦¤×
++¤¦¤× #T35 up
++¤¦¤× #T35 ¤¦¤×
++¤¦¤×¤·¤ç¤¯¤Ë¤ó #T35 ¤¦£ð¿¦¿Í
++¤¦¤Ü¤¡¡¼ #JN ¡ÊŽߧ¥ÂŽß¡ËÂŽ³ÂŽÎÂŽÞÂŽ§ÂŽ°
++¤¦¤Ü¤¡¡¼ #JN ¥¦¥Ü¥¡¡¼
++¤¦¤Þ¡¼ #CJ (ŽߧÕÂŽß)ÂŽ³ÂŽÏÂŽ°
++¤¦¤Þ¡¼ #CJ ¡Ê¡¬§Õ¡¬¡Ë¥¦¥Þ¡¼
++¤¦¤Þ¡¼ #CJ ¡Ê¡¬§Õ¡¬¡ËÂŽ³ÂŽÏÂŽ°
++¤¦¤Þ¡¼ #CJ ¥¦¥Þ¡¼
++¤¦¤Þ¡¼ #JN (ŽߧÕÂŽß)ÂŽ³ÂŽÏÂŽ°
++¤¦¤Þ¡¼ #JN ÂŽ³ÂŽÏÂŽ°
++¤¦¤Þ¤¢ #CJ ¥¦¥Þ¡¼
++¤¦¤Þ¤¤¤Ü¤¦ #JN ¤¦¤Þ¤¤¤Ü¤¦
++¤¦¤Þ¤¤¤Ü¤¦ #KK ¤¦¤Þ¤¤ËÀ
++¤¦¤Þ¤¤¤Ü¤¦ #T35 ¤¦¤Þ¤¤ËÀ
++¤¦¤Þ¤Ê¤ê #T35 ÇÏÌé
++¤¦¤â¤¦¤è¤ê¤â¤«¤ë¤¯¤Á¤â¤«¤è¤Ã¤Æ¤¤¤Ê¤¤ #CJ ±©ÌÓ¤è¤ê¤â·Ú¤¯¡¢·ì¤âÄ̤äƤ¤¤Ê¤¤
++¤¦¤â¤©¡¼ #JN ¥¦¥â¥©¡¼
++¤¦¤â¤©¡¼ #JN ÂŽ³ÂŽÓÂŽ«ÂŽ°
++¤¦¤è #T35 ¥¦¥è
++¤¦¤è¤Ã¤Æ¤ë #T35 ±¦Íã¤Ã¤Æ¤ë
++¤¦¤é¤¢¤ª #T35 ΢ÀÄ
++¤¦¤é¤¢¤¯¤Þ¤Á¤ç¤¦¤¸¤ó #T35 ΢°­ËâĶ¿Í
++¤¦¤é¤¨¤í #T35 ¥¦¥é¥¨¥í
++¤¦¤é¤Ë¤Á¤ã¤ó #KK ΢£²¤Á¤ã¤ó
++¤¦¤é¤Ë¤Á¤ã¤ó #T35 ΢2¤Á¤ã¤ó
++¤¦¤é¤Ë¤Á¤ã¤ó #T35 ΢£²¤Á¤ã¤ó
++¤¦¤é¤Ï¤é #T35 ΢ʢ
++¤¦¤é¤Ü¤ó #T35 ΢ËÞ
++¤¦¤é¤Ü¤ó #T35 ΢Ëß
++¤¦¤é¤Ü¤ó #T35 â³ÍöËß
++¤¦¤é¤é¡¼ #JN ¥¦¥é¥é¡¼
++¤¦¤ê¤¸¤Ê¤ë #T35 ¥¦¥ê¥¸¥Ê¥ë
++¤¦¤ê¤Ê¤é #T35 ¥¦¥ê¥Ê¥é
++¤¦¤ê¤Ê¤é¤µ¤¤¤Ð¡¼¤Æ¤í¤À¤ó #JN ¥¦¥ê¥Ê¥é¥µ¥¤¥Ð¡¼¥Æ¥íÃÄ
++¤¦¤ê¤Ê¤é¤µ¤¤¤Ð¡¼¤Æ¤í¤À¤ó #JN ÂŽ³ÂŽØÂŽÅÂŽ×ÂŽ»ÂŽ²ÂŽÊÂŽÞÂŽ°ÂŽÃÂŽÛÃÄ
++¤¦¤ê¤Ê¤é¤µ¤¤¤Ð¡¼¤Æ¤í¤À¤ó #JN ÂŽ³ÂŽØÂŽÅÂŽ×ÂŽ»ÂŽ²ÂŽÊÂŽÞÂŽ°ÂŽÃÂŽÛÃÄ¡¡
++¤¦¤ë¤µ¤¤¤Ï¤¨¤À¤Ê¤¢ #JN ¤¦¤ë¤µ¤¤Çè¤À¤Ê¤¡
++¤¦¤ë¤»¡¼¤Ð¤« #JN ¤¦¤ë¤»¡¼Çϼ¯¡ª
++¤¦¤ë¤»¤¨¤Ð¤« #CJ ¤¦¤ë¤»¡¼Çϼ¯
++¤¦¤ë¤È¤é¤Þ¤½ #JN ÂŽ³ÂŽÙÂŽÄÂŽ×ÂŽÏÂŽ¿
++¤¦¤ë¤Þ¤é¤Þ¤ó #JN ¥¦¥ë¥Þ¥é¥Þ¥ó
++¤¦¤ë¤â¤é¤Þ¤ó #JN ¥¦¥ë¥â¥é¥Þ¥ó
++¤¦¤í¡¼¤ó #JN ¥¦¥í¡¼¥ó
++¤¦¤ï¤¡¤¡¤ó #CJ ¥¦¥ï¥¡¥¡¥ó
++¤¦¤ï¤¡¤¡¤ó #CJ ÂŽ³ÂŽÜÂŽ§ÂŽ§ÂŽÝ
++¤¦¤ï¤Ê¤Ë #CJ ¤¦¤ï¡¢¤Ê¤Ë¡©
++¤¦¤ó¤³ #T35 ¥¦¥ó»Ò
++¤¦¤ó¤³¡¼ #JN ¥¦¥ó¥³¡¼!
++¤¦¤ó¤³¡¼ #JN ÂŽ³ÂŽÝÂŽºÂŽ°!
++¤¦¤ó¤³¤¤¤¿ #CN ¥¦¥ó¥³ÈÄ
++¤¦¤ó¤³¤¤¤¿ #T35 ¥¦¥ó¥³ÈÄ
++¤¦¤ó¤³¤Ç¤­¤¿¤è¡¼ #JN ¥¦¥ó¥³¤Ç¤­¤¿¤è¡¼¡ª¡ª
++¤¨¡¼ #JN ¥¨¡¼
++¤¨¡¼¤¨¡¼ #T35 £Á£Á
++¤¨¡¼¤¸¤ã¤Ê¤¤¤« #T35 ¤ñ~¤Â¤ã¤Ê¤ð¤«
++¤¨¤¢¤¨¤Ã¤¸¤¬¤á #JN airH"ÂŽ¶ÂŽÞÂŽÒ
++¤¨¤¢¤À¤ó #T35 ¥¨¥¢¥À¥ó
++¤¨¤¤¤¨¤ó #T35 ¤¨¤¤¤¨¤ó
++¤¨¤¤¤®¤ç¤¦¤â¤Ê¡¼ #JN ±Ä¶È¥â¥Ê¡¼
++¤¨¤¤¤±¤Ë¤¹¤È #T35 ¥¨¥¤¥±¥Ë¥¹¥È
++¤¨¤¤¤»¤¤ #T35 ±ÊÀÂ
++¤¨¤¤¤Á¤Æ¤£¡¼¤¨¤à¤¨¤ë¤« #T30 html²½
++¤¨¤¤¤Á¤Æ¤£¤Æ¤£¤Ô¤£¤ì¡¼¤¶¡¼ #JN http¥ì¡¼¥¶¡¼
++¤¨¤¤¤Ù¤Ã¤¯¤½ #KK ¥¨¥¤¥Ù¥Ã¥¯¥½
++¤¨¤¤¤Ù¤Ã¤¯¤½ #KK ¥¨¥¤¥Ù¥Ãʵ
++¤¨¤¤¤ê¤¦¤ï¤¡¤¡¤ó #JN ¥¨¥¤¥ê¥¦¥ï¥¢¥¡¥ó
++¤¨¤¤¤ê¤¦¤ï¤¡¤¡¤ó #JN ÂŽ´ÂŽ²ÂŽØÂŽ³ÂŽÜÂŽ±ÂŽ§ÂŽÝ
++¤¨¤¤¤ê¤¦¤ï¤¡¤¡¤ó #JN ÂŽ´ÂŽ²ÂŽØÂŽ³ÂŽÜÂŽ±ÂŽ§ÂŽÝ 
++¤¨¤¨¤¸¤ã¤Ê¤¤¤« #T35 ¤ñ~¤Â¤ã¤Ê¤ð¤«
++¤¨¤­¤Ù¤½ #CN ¥¨¥­¥Ù¥½
++¤¨¤­¤Ù¤½ #T35 ¥¨¥­¥Ù¥½
++¤¨¤­¤Ù¤ó #CN ±ÕÊØ
++¤¨¤­¤Ù¤ó #CN ±ÖÊØ
++¤¨¤­¤Ù¤ó #CN ±ØÊÛ
++¤¨¤­¤Ù¤ó #T35 ±ÕÊØ
++¤¨¤­¤Ù¤ó #T35 ±ÖÊØ
++¤¨¤­¤Ù¤ó #T35 ±ØÊÛ
++¤¨¤­¤Ù¤ó¤À¤¤¤¬¤¯ #CN ±ØÊÛÂç³Ø
++¤¨¤­¤Ù¤ó¤À¤¤¤¬¤¯ #T35 ±ØÊÛÂç³Ø
++¤¨¤¯¤·¡¼¤É¤®¤ë¤¹ #JN ¥¨¥¯¥·¡¼¥É¥®¥ë¥¹
++¤¨¤¯¤¹¤×¤í¤¤¤Æ¤Ã¤É #JN exploited
++¤¨¤°¤¼¤Í¤³ #JN exe¤Í¤³
++¤¨¤¸¤ê¤¿¤ó #JN ¥¨¥Â¥ê¤¿¤ó
++¤¨¤¹¤¨¤à¤¤¤¤ #T35 $ME
++¤¨¤¹¤«¤ì¤¿¡¼ #T35 ¥¨¥¹¥«¥ì¥¿¡¼
++¤¨¤¹¤È¤·¡¼¤â¤¢¤¢¤é¤· #JN ¥¨¥¹¥È¥·¡¼¥â¥¢¹Ó¤é¤·
++¤¨¤À¤²¤ó¤Ê #CJ »ÞÌÓ¤ó¤Ê
++¤¨¤Ã¤¯¤¹¤®¤³ #JN X¥®¥³¡¡
++¤¨¤Ä¤³ #JN ¥¨¥Ä¥³
++¤¨¤È¤¦ #JN ¹¾ÆÚ
++¤¨¤È¤¦ #JNS ¹¾ÆÚ
++¤¨¤È¤ó #JN ¹¾ÆÚ
++¤¨¤È¤ó #JNS ¹¾ÆÚ
++¤¨¤Ê¤ê #JN ¤¨¤Ê¤ê
++¤¨¤Ê¤ê¤«¤º¤­ #JN ¤¨¤Ê¤ê¤«¤º¤­
++¤¨¤Ë¤¯¤½ #KK ¥¨¥Ë¥¯¥½
++¤¨¤Ë¤¯¤½ #T35 ¥¨¥Ë¥¯¥½
++¤¨¤Ì¤¸¤¤¤ï¤¢¤É #T35 NG¥ï¡¼¥É
++¤¨¤Ì¤¹¤Æ #T35 £Î¥¹¥Æ
++¤¨¤Ì¤Ë¤Á¤ë¤¦¤ë #T35 nÆü¥ë¡¼¥ë
++¤¨¤Ì¤ï¤¤¤Á¤å¤¦ #T35 ny¿ß
++¤¨¤Ò¤á #CN °¦É²
++¤¨¤Ó¤Õ¤é¤¤¤ï¤Ã¤·¤ç¤¤ #JN ¥¨¥Ó¥Õ¥é¥¤¥ï¥Ã¥·¥ç¥¤¡ª¡ª
++¤¨¤Õ¤¨¤¤ #CJ FA
++¤¨¤Õ¤¨¤¤ #CJ FA?
++¤¨¤Õ¤é¤ó¤¯ #T35 F¥é¥ó¥¯
++¤¨¤Ö¡¼¤¤ #T35 ¤¨¤Ö¡¼¤¤
++¤¨¤Ö¤¦¤¤ #T35 ¤¨¤Ö¡¼¤¤
++¤¨¤ß¤å #T35 ¤¨¤ß¤å
++¤¨¤à¤¨¤¨¤¯¤¹ #KK ¥¨¥à¥¨¡¼¥¯¥¹
++¤¨¤à¤¨¤¨¤¯¤¹ #KK ÂŽ´ÂŽÑÂŽ´ÂŽ°ÂŽ¸ÂŽ½
++¤¨¤à¤¨¤Ã¤¯¤¹ #T35 MX
++¤¨¤à¤¨¤Ã¤¯¤¹¤µ¤ó #JN £Í£Ø¤µ¤ó
++¤¨¤à¤¨¤Ã¤¯¤¹¤µ¤ó¤È¤³¤Þ¤ë #JN £Í£Ø¤µ¤ó¤È¥³¥Þ¥ë
++¤¨¤à¤¨¤Ã¤¯¤¹¤Á¤å¤¦ #T35 MX¿ß
++¤¨¤à¤¨¤à¤¢¤¢¤ë #T35 MMR
++¤¨¤à¤¨¤à¤¢¤¢¤ë¤³¤Ô¤Ú #CJ MMR¥³¥Ô¥Ú
++¤¨¤à¤¹¤Æ #T35 M¥¹¥Æ
++¤¨¤à¤Ö¤Á¤ç¤¦ #JN £ÍÉôĹ
++¤¨¤â¤é #JN ¥ñ¥â¥é
++¤¨¤ê #JN ¶ß
++¤¨¤ê #T35 ¶ß
++¤¨¤ê¤Á¤ó #JN ¥¨¥ê¥Ä¥£¥ó
++¤¨¤ê¤Ä¤£¤ó #JN ¤¨¤êÄÁ
++¤¨¤ì¤¯¤½ #T35 ¥¨¥ìʵ
++¤¨¤ì¤¯¤½ #T35 ¥¨¥ìʵ¡¼¥ó
++¤¨¤ì¤¯¤½¤ª¤ó #T35 ¥¨¥ìʵ
++¤¨¤ì¤¯¤½¤ª¤ó #T35 ¥¨¥ìʵ¡¼¥ó
++¤¨¤í¤¨¤í¤»¤ó¤¿¤¤¤º¤ê¤»¤ó¤¸¤ã¤¢ #T35 ¥¨¥í¥¨¥íÀïÂ⥺¥ê¥»¥ó¥¸¥ã¡¼
++¤¨¤í¤² #T30 ¥¨¥í¥²
++¤¨¤í¤² #T35 ¥¨¥í¥²
++¤¨¤í¤²¤ª¤¿¤¤¤Ä¤Ä¤Î¤Á¤«¤¤ #T35 ¥¨¥í¥²¥ª¥¿£µ¤Ä¤ÎÀÀ¤¤
++¤¨¤í¤²¤ò¤¿¤Ü¤¯¤á¤Ä¤¦¤ó¤É¤¦¤« #KK ¥¨¥í¥²¥ò¥¿ËÐÌDZ¿Æ°²È
++¤¨¤í¤²¤ó¤¬¡¼ #T35 ¥¨¥í¥²¥ó¥¬¡¼
++¤¨¤í¤²¤ó¤¬¤¢ #T35 ¥¨¥í¥²¥ó¥¬¡¼
++¤¨¤í¤º¤ê¡¼ #JN ¥¨¥í¥º¥ê¡¼
++¤¨¤í¤Ã¤¯¤¹ #T35 erox
++¤¨¤í¤Ü¤¯ #KK ¥¨¥íËÐ
++¤¨¤ó¤¤¡¼ #T30 ¤¨¤ó¤¤¡¼
++¤¨¤ó¤¤¡¼ #T35 ¤¨¤ó¤¤¡¼
++¤¨¤ó¤¤¤¤ #T35 ¤¨¤ó¤¤¡¼
++¤¨¤ó¤«¤«¤·¤å¤·¤£¤Á¤ã¤ó #JN ±é²Î²Î¼ê¤·¤£¤Á¤ã¤ó
++¤¨¤ó¤³¤¦¤É #T35 ±ç¸ò¡î
++¤¨¤ó¤¸¤ó¤ª¤¦ #JN ¥¨¥ó¥¸¥ó²¦
++¤ª¡¼¤¨¤¤¤Á¤Ô¡¼ #T35 £Ï£È£Ð
++¤ª¤¢¤¤¤½¤æ¡¼¤Û¡¼ #JN ¤ª¤¢¤¤¤½¥æ¡¼¥Û¡¼
++¤ª¤¤¤ª¤¤¤Ë¤å¡¼¤¹¤ß¤¿ #CJ ¤ª¤¤¤ª¤¤¡¢¥Ë¥å¡¼¥¹¸«¤¿¡©
++¤ª¤¤¤ª¤Þ¤¨¤é #CJ ¤ª¤¤¡¢¤ªÁ°¤é
++¤ª¤¤¤¹¤¿¡¼¤µ¤¯¤»¤ó #T35 ¥ª¥¤¥¹¥¿¡¼ºîÀï
++¤ª¤¤¤¹¤¿¤¢¤µ¤¯¤»¤ó #T35 ¥ª¥¤¥¹¥¿¡¼ºîÀï
++¤ª¤¤¤Ê¤ê¤â¤Ê¡¼ #JN ¤ª¤¤¤Ê¤ê¥â¥Ê¡¼
++¤ª¤¤¤à #T35 ¥ª¥¤¥à
++¤ª¤¤¤é #T35 ¤ª¤¤¤é
++¤ª¤¦¤´¤ó¤Á¤å¤¦ #T35 ²«¶â¿ß
++¤ª¤¦¤É¤¦¤á¤¬¤ß #KK ²¦Æ»½÷¿À
++¤ª¤ª¤®¤³¤Ö¤Á¤ç¤¦ #JN Â祮¥³ÉôĹ
++¤ª¤ª¤³¤ß¤ß¤Ï¤ó¤Æ¤ó #JN Âç¾®¼ªÈÓŹ
++¤ª¤ª¤Ã #JN ÂŽµÂŽµ¥Ã¡ª
++¤ª¤ª¤Ä¤­ #JN ¥ª¥ª¥Ä¥­
++¤ª¤ª¤Ä¤­ #JN ÂŽµÂŽµÂŽÂÂŽ·
++¤ª¤ª¤Ç¤£¤¨¤ó¤¹ #T35 ¥ª¡¼¥Ç¥£¥¨¥ó¥¹
++¤ª¤ª¤È¤³¤ó¤×¤ê¤¤¤È #T35 ¥ª¡¼¥È¥³¥ó¥×¥ê¡¼¥È
++¤ª¤ª¤È¤ê #KK ˱
++¤ª¤ª¤È¤ê #T35 ˱
++¤ª¤ª¤ß¤ß¤â¤Ê¡¼ #JN Â缪¥â¥Ê¡¼
++¤ª¤ª¤ß¤ß¤â¤Ê¤ß #JN Â缪˨ÆàÈþ
++¤ª¤ª¤ß¤ß¤â¤é¤é¡¼ #JN Â缪¥â¥é¥é¡¼
++¤ª¤ª¤â¤ê¤³¤¤¤ó #T35 Â翹¥³¥¤¥ó
++¤ª¤«¤®¤³¤­¤ç¤¦¤¸¤å #JN ¥ª¥«¥®¥³¶µ¼ø
++¤ª¤«¤·¤¤¤Ç¤¹¤è¤«¤Æ¤¸¤Ê¤µ¤ó #CJ ¤ª¤«¤·¤¤¤Ç¤¹¤è¡ª¥«¥Æ¥¸¥Ê¤µ¤ó¡ª¡ª
++¤ª¤«¤ß #JN ¤ª¤«¤ß
++¤ª¤«¤ä¤ó #JN µ¶ÔÝ¡¡
++¤ª¤«¤ä¤ó #JN ÂŽµÂŽ¶ÂŽÔÂŽÝ¡¡
++¤ª¤«¤ì¤¹ #T35 ²¬¥ì¥¹
++¤ª¤¬¤ï #T35 ¾®Àî
++¤ª¤¯ #T35 ±ü
++¤ª¤¯¤ì¤¹ #T35 Ã٥쥹
++¤ª¤°¤ê #T35 ¾®·ª
++¤ª¤±¤¤¤Ï¤ó #JN ¤ª¤±¤¤¤Ï¤ó
++¤ª¤±¤¤¤Ï¤ó #T35 ¤ª¤±¤¤¤Ï¤ó
++¤ª¤²¤Þ¤ó #T35 ¥ª¥²¥Þ¥ó
++¤ª¤³¤Î¤ß¤¸¤ç¤¦¤æ #JN ¤ª¹¥¤ß¾ßÌý
++¤ª¤µ¤·¤ß¤â¤Ê¡¼ #JN ¤ª¤µ¤·¤ß¥â¥Ê¡¼
++¤ª¤µ¤Õ¤Í¡¼¤è¤«¤Ã¤³¤¦¤£¤º¤â¤Æ¤Í¡¼¤è¤È¤¸¤«¤Ã¤³ #JN ¥ª¥µ¥Õ¥Í¡¼¥è¡Êwith¡¡¥â¥Æ¥Í¡¼¥è¡Ë
++¤ª¤µ¤Þ¤Ó¤ó¤é¤Ç¤£¤ó #JN ¥ª¥µ¥Þ¥Ó¥ó¥é¥Ç¥£¥ó
++¤ª¤µ¤é¡¼ #JN ¤ª»®¡¼
++¤ª¤µ¤é¡¼ #JN ¤ª»®¡¼ 
++¤ª¤µ¤ì #T30 ¥ª¥µ¥ì
++¤ª¤¶¤ï¤â¤Ê¤« #JN ¾®Âô¥â¥Ê¥«
++¤ª¤·¤¨¤Æ¤¯¤ó #T35 ¶µ¤¨¤Æ·¯
++¤ª¤·¤ª #JN ¤ª±ö
++¤ª¤·¤ª #T35 ¤ª±ö
++¤ª¤·¤ê¤¹ #JN ¥ª¥·¥ê¥¹
++¤ª¤·¤ê¤Ú¤ó¤Ú¤ó #CJ ¥ª¥·¥ê¥Ú¥ó¥Ú¥ó! 
++¤ª¤·¤ê¤Ú¤ó¤Ú¤ó #CJ ÂŽµÂŽ¼ÂŽØÂŽÍÂŽßÂŽÝÂŽÍÂŽßÂŽÝ! 
++¤ª¤·¤ê¤ò¤ª¤¬¤à¤¤¤¤¤ó¤«¤¤ #JN ¡ú¡ú¡ú¤ª¿¬¤òÇÒ¤à°Ñ°÷²ñ¡ú¡ú¡ú
++¤ª¤·¤ê¤ò¤ª¤¬¤à¤¤¤¤¤ó¤«¤¤ #JN ¡ú¡ú¡ú¤ª¿¬¤òÇÒ¤à°Ñ°÷²ñ¡ú¡ú¡ú 
++¤ª¤¸¤ã¤Þ¤¸¤ç #JN ¤ª¥¸¥ãËâ½÷
++¤ª¤¸¤ó¤¬¡¼¤¼¤Ã¤È #JN ¥ª¥¸¥ó¥¬¡¼Z
++¤ª¤¸¤ó¤¬¤¢¤¼¤Ã¤È #JN ¥ª¥¸¥ó¥¬¡¼Z
++¤ª¤¹¤® #T35 ¤ª¿ù
++¤ª¤»¡¼¤í #CJ ¤ª¤»¡¼¤í
++¤ª¤»¤¨¤í #CJ ¤ª¤»¡¼¤í
++¤ª¤»¤í¤Ç¤â¤·¤è¤¦¤è #CJ ¥ª¥»¥í¤Ç¤â¤·¤è¤¦¤è
++¤ª¤½¤ì¤¹ #T35 Ã٥쥹
++¤ª¤¿¤¬¤ê #T35 ¥ª¥¿¼í¤ê
++¤ª¤¿¤­¤å¤¦ #KK ¥ò¥¿µÞ
++¤ª¤¿¤­¤å¤¦ #T35 ¥ò¥¿µÞ
++¤ª¤¿¤·¤å¤¦ #T35 ¥ª¥¿½­
++¤ª¤¿¤À¤¤¤·¤å¤¦¤´¤¦ #JN ¥ª¥¿Â罸¹ç
++¤ª¤¿¤ë¤Ã¤¯ #T35 ¥ª¥¿¥ë¥Ã¥¯
++¤ª¤À¤®¤ê¤â¤Ê¡¼ #JN ¥ª¥À¥®¥ê¥â¥Ê¡¼
++¤ª¤Á¤ã¤Î¤Þ #JN ¤ªÃã¤Î´Ö
++¤ª¤Ã¤È¡¼¤Á¤ã¤ó #JN ¥ª¥Ã¥È¡¼¤Á¤ã¤ó
++¤ª¤Ä #T35 ²µ
++¤ª¤Ä¤«¤¤ #KK ²µ²ñ
++¤ª¤Ä¤«¤ì¡¼ #CJ ²µ¥«¥ì¡¼
++¤ª¤Ä¤«¤ì¡¼ #T35 ²µ¥«¥ì¡¼
++¤ª¤Ä¤«¤ì¤¨ #T35 ²µ¥«¥ì¡¼
++¤ª¤Ä¤È¤«¤¤¤Ã¤¿¤ä¤Ä¤·¤Í #CJ ²µ¤È¤«¸À¤Ã¤¿ÅÛ»à¤Í
++¤ª¤Å¤é #JN ¥ª¥Å¥é
++¤ª¤Ç¤¸¡¼¤É #JN ¥ª¥Ç¥¸¡¼¥É
++¤ª¤Ç¤ó #T35 ¤ª¤Ç¤ó
++¤ª¤Ç¤ó¤Þ¤ó #JN ¤ª¤Ç¤ó¥Þ¥ó
++¤ª¤Ç¤ó¤Þ¤ó #T35 ¤ª¤Ç¤ó¤Þ¤ó
++¤ª¤È¡¼¤Á¤ã¤ó¤Ü¤Ã¤­¤·¤ç¤¦¤¬¤¤ #JN ¤ª¤È¡¼¤Á¤ã¤óËÖµ¯¾ã³²
++¤ª¤È¤¦¤Õ #JN ¤ª¤È¤¦¤Õ
++¤ª¤È¤³¤É¤ó #T35 ´ÁЧ
++¤ª¤È¤¸¤ã #T35 Äï¼Ô
++¤ª¤È¤¿¤± #JN £ÚÉð
++¤ª¤È¤¿¤± #JNS ¥ª¥È¥¿¥±
++¤ª¤È¤¿¤± #T35 £Ú¼°
++¤ª¤È¤¿¤± #T35 £ÚÉð
++¤ª¤È¤¿¤±¤¤ #JN ¥ª¥È¥¿·º
++¤ª¤È¤¿¤±¤¤ #T30 ¥ª¥È¥¿·º
++¤ª¤È¤¿¤±¤¤ #T35 ¥ª¥È¥¿·º
++¤ª¤È¤¿¤±¤²¤ó¤¹¤¤ #JN ¥ª¥È¥¿¥±¸µ¿ã
++¤ª¤È¤Ê #T35 ¤ò¤È¤Ê
++¤ª¤È¤Ê¤Î¤®¤³¤®¤³¤¿ #JN Âç¿Í¤Îµ¼¸Å¥®¥³ÂÀ
++¤ª¤È¤Þ¤ë #JN £Ú´Ý
++¤ª¤È¤á #T35 ´Á½÷
++¤ª¤É¤ê #T35 ¤ª¤É¤ê
++¤ª¤Ê #CJ ¤ª¤Ê
++¤ª¤Ê¡¼¤Ë #T30 ¥ª¥Ê¡¼¥Ë
++¤ª¤Ê¡¼¤Ë #T30 ÂŽµÂŽÅÂŽ°ÂŽÆ
++¤ª¤Ê¤¬¤¤¤·¤Þ¤¹ #CJ ¤ª¤Ê¤¬¤¤¤·¤Þ¤¹
++¤ª¤Ê¤¬¤¤¤·¤Þ¤¹ #JN ¤ª¤Ê¤¬¤¤¤·¤Þ¤¹¡¡
++¤ª¤Ê¤·¤å¤ß #CJ ¤ª¤Ê¼ñÌ£
++¤ª¤Ê¤·¤å¤ß #T35 ¤ª¤Ê¼ñÌ£
++¤ª¤Ê¤Ë¡¼ #T30 ¥ª¥Ê¥Ë¡¼
++¤ª¤Ê¤Ë¤¤¤¹¤ì #T35 ¥ª¥Ê¥Ë¡¼¥¹¥ì
++¤ª¤Ê¤Ë¤¹¤È #T35 ¥ª¥Ê¥Ë¥¹¥È
++¤ª¤Ê¤Ì¡¼ #T30 ¥ª¥Ê¥Ì¡¼
++¤ª¤Ê¤Ì¡¼ #T30 ÂŽµÂŽÅÂŽÇÂŽ°
++¤ª¤Ë¤¤¤Ë¤ï¤Ã¤Á¤ç¤¤ #JN ¤ª¤Ë¡¼¤Ë¥ï¥Ã¥Á¥ç¥¤
++¤ª¤Ë¤®¤ê #JN ¤ª¤Ë¤®¤ê
++¤ª¤Ë¤®¤ê¤¦¤À¤¤¤¸¤ó #JN ¤ª¤Ë¤®¤ê±¦Âç¿Ã
++¤ª¤Ë¤®¤ê¤¬¤Ê¡¼ #JN ¤ª¤Ë¤®¤ê¥¬¥Ê¡¼
++¤ª¤Ë¤®¤ê¤¸¤¤¤µ¤ó #JN ¤ª¤Ë¤®¤ê¤¸¤¤¤µ¤ó
++¤ª¤Ë¤®¤ê¤¸¤ã¤® #JN ¤ª¤Ë¤®¤ê¥¸¥ã¥®
++¤ª¤Ë¤®¤ê¤¹¤é¤¤¤à #JN ¤ª¤Ë¤®¤ê¥¹¥é¥¤¥à
++¤ª¤Ë¤®¤ê¤»¤¤¤È #JN ¤ª¤Ë¤®¤êÀ¸ÅÌ
++¤ª¤Ë¤®¤ê¤»¤ó¤è¤¦¤¢¤Ã¤¬¤¤ #JN ¤ª¤Ë¤®¤êÀìÍÑ¥¢¥Ã¥¬¥¤
++¤ª¤Ë¤®¤ê¤¿¤â¤ê #JN ¤ª¤Ë¤®¤ê¥¿¡û¥ê
++¤ª¤Ë¤®¤ê¤À¤ó #JN ¤ª¤Ë¤®¤êÃÄ
++¤ª¤Ë¤®¤ê¤Æ¤ó¤· #JN ¤ª¤Ë¤®¤êÅ·»È
++¤ª¤Ë¤®¤ê¤È¤¦ #JN ¤ª¤Ë¤®¤êÅÞ
++¤ª¤Ë¤®¤ê¤È¤¦ #JN ¤ª¤Ë¤®¤êÅÞ 
++¤ª¤Ë¤®¤ê¤Ð¤ó¤É #JN ¤ª¤Ë¤®¤ê¥Ð¥ó¥É
++¤ª¤Ë¤®¤ê¤Ò¤Ã¤­¡¼ #JN ¤ª¤Ë¤®¤ê¥Ò¥Ã¥­¡¼
++¤ª¤Ë¤®¤ê¤Û¤ó¤Ý #JN ¤ª¤Ë¤®¤êËÜÊÞ
++¤ª¤Ë¤®¤ê¤à¤­¤à¤­ #JN ¤ª¤Ë¤®¤ê¥à¥­¥à¥­
++¤ª¤Ë¤®¤ê¤â¤Ê¡¼ #JN ¤ª¤Ë¤®¤ê¥â¥Ê¡¼
++¤ª¤Ë¤®¤ê¤ï¤Ã¤Á¤ç¤¤ #JN ¥ª¥Ë¥®¥ê¥ï¥Ã¥Á¥ç¥¤
++¤ª¤Ë¤ï¤ê¡¼¤Ê #T35 ¥ª¥Ë¥ï¥ê¡¼¥Ê
++¤ª¤Ë¤ï¤ê¤¤¤Ê #T35 ¥ª¥Ë¥ï¥ê¡¼¥Ê
++¤ª¤Í #T35 ¤ª¤Í
++¤ª¤Í¤¤¤µ¤ó #T35 ¤ª¤Í¤¤¤µ¤ó
++¤ª¤Ï¤Ê¤Ð¤¿¤± #T35 ¤ª²ÖȪ
++¤ª¤Ï¤è¤¦¤¸¤ç #T35 ¤ª¤Ï¤ç¤¥¦É¡«¤ç 
++¤ª¤Ð¤Á¤ã¤ó #T35 ÂŽµÂŽÊÂŽÞÂŽÁÂŽ¬ÂŽÝ
++¤ª¤Ð¤Á¤ã¤ó #T35 ¥ª¥Ð¥Á¥ã¥ó
++¤ª¤Ð¤Á¤å¤¦ #T35 ¤ª¤Ð¿ß
++¤ª¤Ð¤Á¤å¤¦ #T35 ¥ª¥Ð¿ß
++¤ª¤Ñ¡¼¤¤ #T35 ¥ª¥Ñ¡¼¥¤
++¤ª¤Ñ¤¢¤¤ #T35 ¥ª¥Ñ¡¼¥¤
++¤ª¤Ó¤¿¤Ë¤Ý¤Ã¤È #JN ÂÓë¥Ý¥Ã¥È
++¤ª¤Õ¤«¤¤ #T30 ¥ª¥Õ²ñ
++¤ª¤Õ¤é¤¤¤ó¤Ó¤å¡¼¤ï #KK ¥ª¥Õ¥é¥¤¥ó¥Ó¥å¡¼¥ï
++¤ª¤Ö¤Ä #T35 ±øʪ
++¤ª¤Ù¤ä¤ê¡¼¤Ê #T35 ¥ª¥Ù¥ä¥ê¡¼¥Ê
++¤ª¤Ù¤ä¤ê¤¤¤Ê #T35 ¥ª¥Ù¥ä¥ê¡¼¥Ê
++¤ª¤Ù¤é¤ê¡¼¤Ê #T35 ¥ª¥Ù¥é¥ê¡¼¥Ê
++¤ª¤Ù¤é¤ê¤¤¤Ê #T35 ¥ª¥Ù¥é¥ê¡¼¥Ê
++¤ª¤Ù¤ó¤È¤¦¤¦¤¤¤ó¤Ê¤¢ #T35 ¤ªÊÛÅö¥¦¥¤¥ó¥Ê¡¼
++¤ª¤Þ¡¼¤é #T35 ¤ª¤Þ¡¼¤é
++¤ª¤Þ¤¤¤ê #JN ¤ª»²¤ê
++¤ª¤Þ¤¨¤«¤Ë¡¼ #JN ¥ª¥Þ¥¨¥«¥Ë¡¼
++¤ª¤Þ¤¨¤¬¤Æ¤Û¤ó¤ò¤ß¤»¤í¤è #CJ ¤ªÁ°¤¬¼êËܤò¸«¤»¤í¤è¡Ê¡÷£÷¹Ó
++¤ª¤Þ¤¨¤¬¤Ê¡¼ #JN ¥ª¥Þ¥¨¥¬¥Ê¡¼
++¤ª¤Þ¤¨¤¯¤Þ¡¼ #JN ¥ª¥Þ¥¨¥¯¥Þ¡¼
++¤ª¤Þ¤¨¤·¤Í¡¼ #JN ¥ª¥Þ¥¨¥·¥Í¡¼
++¤ª¤Þ¤¨¤¸¤ã¤¬¡¼ #JN ¥ª¥Þ¥¨¥¸¥ã¥¬¡¼
++¤ª¤Þ¤¨¤¸¤ã¤¬¡¼ #JN ¥ª¥Þ¥¨¥¸¥ã¥¬¡¼ 
++¤ª¤Þ¤¨¤¸¤ã¤Í¡¼¤¾ #JN ¥ª¥Þ¥¨¥¸¥ã¥Í¡¼¥¾
++¤ª¤Þ¤¨¤À¤± #JN ¥ª¥Þ¥¨¥À¥±
++¤ª¤Þ¤¨¤À¤± #JN ¥ª¥Þ¥¨¥À¥±(¸æÁ°Âû)
++¤ª¤Þ¤¨¤À¤± #JN ¸æÁ°Âû
++¤ª¤Þ¤¨¤À¤Ê¡¼ #JN ¤ª¤Þ¤¨¤À¤Ê¡¼
++¤ª¤Þ¤¨¤À¤Ë #JN ¥ª¥Þ¥¨Ã«
++¤ª¤Þ¤¨¤Ï¤¿¤ó¤í¤ó¤« #CJ ¤ªÁ°¤Ï¥¿¥ó¡¦¥í¥ó¤«¡©
++¤ª¤Þ¤¨¤â¤«¡¼ #JN ¥ª¥Þ¥¨¥â¥«¡¼
++¤ª¤Þ¤¨¤â¤Â¤ã¡¼ #JN ¥ª¥Þ¥¨¥â¥Â¥ã¡¼
++¤ª¤Þ¤¨¤â¤Ê¡¼ #CJ ¥ª¥Þ¥¨¥â¥Ê¡¼
++¤ª¤Þ¤¨¤â¤Ê¡¼¤Ï¤ó #JN ¥ª¥Þ¥¨¥â¥Ê¡¼´À
++¤ª¤Þ¤¨¤â¤Ê¤¢ #CJ ¥ª¥Þ¥¨¥â¥Ê¡¼
++¤ª¤Þ¤¨¤â¤Ê¤´¤¦ #JN OMAEMONA¹æ
++¤ª¤Þ¤¨¤â¤Ë¤ã¡¼ #JN ¤ª¤Þ¤¨¤â¤Ë¤ã¡¼
++¤ª¤Þ¤¨¤â¤Ò¤ã #JN ¥ª¥Þ¥¨¥â¥Ò¥ã
++¤ª¤Þ¤ó¤¸¤å¤¦ #T35 ¤ªñ½Æ¬
++¤ª¤ß¤¢¤¤¤¹¤ë¤â¤é¤é¡¼ #JN ¤ª¸«¹ç¤¤¤¹¤ë¥â¥é¥é¡¼
++¤ª¤ß¤È¤í¤ó #T35 ¥ª¥ß¥È¥í¥ó
++¤ª¤à¤¹¤Ó #JN ¤ª¤à¤¹¤Ó
++¤ª¤á¡¼¤é #T35 ¤ª¤á¡¼¤é
++¤ª¤á¤¤¤Ð¤ó¤«¤¤ #CJ ±ø̾ÈÔ²ó
++¤ª¤á¤¬ #T35 ¥ª¥á¥¬
++¤ª¤á¤¬¤¢¤é¤· #T35 ¦Ø¹Ó¤é¤·
++¤ª¤á¤¬¤Á¤ó #T35 ¦ØÄÁ
++¤ª¤â¤Õ #CJ »×¤Õ
++¤ª¤â¤é¤¿¤«¤Ò¤í #JN Èø¥â¥éδ¹°
++¤ª¤â¤ï¤ì #CJ »×¤ï¤ì¡£
++¤ª¤â¤ï¤ì #T35 »×¤ï¤ì
++¤ª¤ä¤³¤Ú¤ó¤®¤ó #JN ¿Æ»Ò¥Ú¥ó¥®¥ó
++¤ª¤ê #KK Ý£
++¤ª¤ê #T35 Ý£
++¤ª¤ê¤­ #T35 ¥ª¥ê¥­
++¤ª¤ê¤Å¤ë14¤Þ¤ó¤Ð¤×¤í¤¸¤§¤¯¤È #CJ ÀÞ¤êÄá14Ëü±©¥×¥í¥¸¥§¥¯¥È
++¤ª¤ê¤Ï¤é¤Ö¤é #T35 ÀÞ¸¶¥Ö¥é
++¤ª¤ê¤Ù¤í¤Ó¡¼ #T35 ¿¥Éô¥í¥Ó¡¼
++¤ª¤ê¤Ù¤í¤Ó¤¤ #T35 ¿¥Éô¥í¥Ó¡¼
++¤ª¤ê¤ç¤¦¤ê¤ª¤Í¤¨¤µ¤ó #JN ¤ªÎÁÍý¤ª»Ð¤µ¤ó
++¤ª¤ë¤¹¤Æ¤Ã¤É #JN ¥ª¥ë¥¹¥Æ¥Ã¥É
++¤ª¤ì¤ª¤ó¤Ê #T35 ²¶½÷
++¤ª¤ì¤µ¤Þ #T35 ²¶ÍÍ
++¤ª¤ì¤µ¤Þ¤è¤¦¤·¤ª¤ê #T35 ²¶ÍÍÍѤ·¤ª¤ê
++¤ª¤ì¤À¡¼ #JN ²¶¤À¡¼
++¤ª¤ì¤Ë¤µ¤ï¤°¤ª¤Õ #T35 ²¶¤ËÁû¤°¥ª¥Õ
++¤ª¤ì¤Ï¤Þ¤Á¤¬¤¤¤Ê¤¯¤¤¤Ã¤Ñ¤ó¤¸¤ó #T35 ²¶¤Ï´Ö°ã¤¤¤Ê¤¯°ìÈÌ¿Í
++¤ª¤ì¤â¤Ê¡¼ #CJ ¥ª¥ì¥â¥Ê¡¼
++¤ª¤ì¤â¤ì¤â #T35 ²¶Ï³¤ì¤â
++¤ª¤ï¤Ã¤¿¤Ê #JN (¡¦¡¼¡¦¡ËÂŽµÂŽÜÂŽ¯ÂŽÀÂŽÅÂŽ¥ÂŽ¥ÂŽ¥
++¤ª¤ï¤Ã¤¿¤Ê #JN ¥ª¥ï¥Ã¥¿¥Ê¡¦¡¦¡¦
++¤ª¤ï¤Ã¤¿¤Ê #JN ÂŽµÂŽÜÂŽ¯ÂŽÀÂŽÅÂŽ¥ÂŽ¥ÂŽ¥
++¤ª¤ó¤¿¤¤ #T35 ²¹ÂÓ
++¤ª¤ó¤¿¤¤ #T35 ¸æÂç
++¤ª¤ó¤ß¤ç¤¦¤¸ #JN ±¢ÍÛ»Õ
++¤ª¤ó¤ê¤¨¤ó #T35 Onlien
++¤« #R5r ¼í
++¤«¡¼¤É¤­¤ã¤×¤¿¡¼¤â¤Ê¡¼ #JN CC¥â¥Ê¡¼
++¤«¤¤¤³¤·¤å¤® #T35 ²û¸Å¼çµÁ
++¤«¤¤¤»¤ó #T35 áÎáý
++¤«¤¤¤»¤ó¤­¤Ã¤Æ¤¯¤Ó¤Ä¤Ã¤Æ¤·¤Í #CJ ²óÀþÀڤäƼóÄߤäƻá¤Í
++¤«¤¤¤»¤ó¤­¤Ã¤Æ¤¯¤Ó¤Ä¤Ã¤Æ¤·¤Í #JN ²óÀþÀڤäƼóÄߤäƻá¤Í
++¤«¤¤¤Æ¤­¤Ö¤é¤¦¤¶¡¼ #KK ²÷Ŭ¥Ö¥é¥¦¥¶¡¼
++¤«¤¤¤É¤¦ #KK ²ñƱ
++¤«¤¤¤É¤¦ #KK ²øƸ
++¤«¤¤¤É¤¦ #KK ³¹Æ»
++¤«¤¤¤É¤¦ #T35 ²ñƱ
++¤«¤¤¤É¤¦ #T35 ²øƸ
++¤«¤¤¤É¤¦ #T35 ³¹Æ»
++¤«¤¤¤Õ¤¯¤¹¤Ñ¤¹¤Ñ¤â¤Ê¡¼¤¬¤¯ #JN ²óÉü¥¹¥Ñ¥¹¥Ñ¥â¥Ê¡¼³Ø
++¤«¤¤¤Ø¤¤¤µ¤ó #JN ³«ÊĤµ¤ó
++¤«¤¤¤ï¤ì #T35 ¥«¥¤¥ï¥ì
++¤«¤¨ #CJ ¤«¤¨
++¤«¤¨¤Ç¤ä¤Ä¤é #T35 ¤«¤¨¤Ç¤ä¤Ä¤é
++¤«¤¨¤ì #CJ (ÂŽ¥¢ÏÂŽ¥)ÂŽ¶ÂŽ´ÂŽÚ!
++¤«¤¨¤ì #CJ ¡Ê¡¦¢Ï¡¦¡ËÂŽ¶ÂŽ´ÂŽÚ!
++¤«¤¨¤ì #CJ ¥«¥¨¥ì
++¤«¤¨¤ì #CJ ¥«¥¨¥ì!
++¤«¤¨¤ì #CJ ÂŽ¶ÂŽ´ÂŽÚ!
++¤«¤¨¤ì #T35 ¥«¥¨¥ì
++¤«¤ª¤â¤¸ #T35 ´éʸ»ú
++¤«¤ª¤â¤¸¤µ¤¯¤»¤¤¤¤¤é¤¤ #T30 ´éʸ»úºîÀ®°ÍÍê
++¤«¤¬¤ä #K5r µ±
++¤«¤¬¤ä¤± #CJ µ±¤±
++¤«¤¬¤ä¤± #T35 µ±¤±
++¤«¤¬¤ï #T35 ¹áÀî
++¤«¤­¤³ #M5r ½ñ¤­¹þ
++¤«¤­¤³ #T30 ¥«¥­¥³
++¤«¤­¤ç¤¦¤¤¤ó¤Î¤ê¤¢¤­¤È¤Ï¤ó¤«¤Á¤Î¤Á¤ç¤¦¤»¤ó¤¸¤ç¤¦ #JN ²Öµþ±¡ÅµÌÀ¤È¥Ï¥ó¥«¥Á¤ÎÄ©Àï¾õ
++¤«¤® #KK ¸°
++¤«¤® #T35 ¸°
++¤«¤®¤Ã¤³ #T35 ¸°¤Ã»Ò
++¤«¤¯¤É¤È¤« #CJ ³ÑÅ٤Ȥ«
++¤«¤¯¤Ë¤¤¤¿ #CN ³Ñ¼ÑÈÄ
++¤«¤¯¤Ø¤ó #T30 ³ÎÊÑ
++¤«¤¯¤Ø¤ó #T35 ³ÎÊÑ
++¤«¤¯¤è¤¦ #T35 ÄáÂë
++¤«¤¯¤ê #T30 ³ÖÎ¥
++¤«¤¯¤ê¤¤¤¿ #CN ³ÖÎ¥ÈÄ
++¤«¤¯¤ê¤¤¤¿ #T35 ³ÖÎ¥ÈÄ
++¤«¤¯¤ê¤¤¤¿¤Î¤«¤¯¤ê¤¤¤¿ #T35 ³ÖÎ¥ÈĤγÖÎ¥ÈÄ
++¤«¤°¤· #T35 ¹á¶ñ»Õ
++¤«¤² #T35 kage
++¤«¤³¤¤ #KY ¥«¥³¥¤
++¤«¤³¤¤¤¤ #T35 ¥«¥³¥¤¥¤
++¤«¤³¤í¤° #T35 ²áµî¥í¥°
++¤«¤³¤ï¤ë #KY ¥«¥³¥ï¥ë
++¤«¤³¤ï¤ë¤¤ #T35 ¥«¥³¥ï¥ë¥¤
++¤«¤´ #JN ¤¢¤¤¤Ü¤ó
++¤«¤´ #JN ²Ã¸î
++¤«¤µ #JN »±
++¤«¤µ #T35 »±
++¤«¤µ¡¼¤ê #JN ¥«¥µ¡¼¥ê
++¤«¤µ¤«¤µ #JN ¥«¥µ¥«¥µ
++¤«¤·¤ï¤â¡¼¤Á #JN ¥«¥·¥ï¥â¡¼¥Á
++¤«¤¹¤Æ¤ë #KK ¥«¥¹¥Æ¥ë
++¤«¤¹¤Æ¤ë #T35 ¥«¥¹¥Æ¥ë
++¤«¤º #T35 ¿ô¢ª
++¤«¤º¤¸¤µ¤ó #T35 ¿ô»ú¤µ¤ó
++¤«¤º¤ä¤¸¤ë¤· #T35 ¿ô¢ª
++¤«¤»¤­¤¹¤ì #T35 ²½ÀÐ¥¹¥ì
++¤«¤½¤¤¤¿ #T35 ²áÁÂÈÄ
++¤«¤½¤¦¤â¤Ê¡¼ #JN ²ÐÁò¥â¥Ê¡¼
++¤«¤¿ #R5 ñÙ
++¤«¤¿ #R5r ñÙ
++¤«¤¿¤¬¤Á #T30 ÊÒ¥¬¥Á
++¤«¤¿¤ä¤ª #T30 Êҥ䥪
++¤«¤¿¤ê #T35 ñÙ¤ê
++¤«¤¿¤ï¤é¡¼ #JN ¥«¥¿¥ï¥é¡¼
++¤«¤Á¤°¤ß¤é¤¤¤ó #T35 ¾¡ÁȤߥ饤¥ó
++¤«¤Á¤å¡¼¤·¤ã #KK ¤«¤Á¤å¡Á¤·¤ã
++¤«¤Á¤å¡¼¤·¤ã #T35 ¤«¤Á¤å¡Á¤·¤ã
++¤«¤Á¤å¡¼¤·¤ã¤µ¤ó #JN ¤«¤Á¤å¡Á¤·¤ã¤µ¤ó
++¤«¤Á¤å¤¦¤·¤ã #T35 ¤«¤Á¤å¡Á¤·¤ã
++¤«¤Á¤ç¤¦ #T35 ²ÝĹ
++¤«¤Ã¤±¡¼ #CJ ¤«¤Ã¤±¡¼
++¤«¤Ã¤±¡¼ #T35 ¤«¤Ã¤±¡¼
++¤«¤Ã¤±¤¨ #CJ ¤«¤Ã¤±¡¼
++¤«¤Ã¤³¤¤¤¤ #T35 ¥«¥Ã¥³¥¤¥¤
++¤«¤Ã¤È¤â¤Ê¡¼ #JN ¥«¥Ã¥È¥â¥Ê¡¼
++¤«¤Ã¤Ñ #KK ²ÏƸ
++¤«¤Ã¤Ñ #T35 ²ÏƸ
++¤«¤Ã¤Ñ¤¸¤ã¤Ê¤¤¤è #JN ¥«¥Ã¥Ñ¤¸¤ã¤Ê¤¤¤è
++¤«¤Ã¤Ñ¤Ã¤Ñ¡¼ #JN ¥«¥Ã¥Ñ¥Ã¥Ñ¡¼
++¤«¤Ä #JN ¹î
++¤«¤Ä #T35 ¹î
++¤«¤Ä¤Þ¤¿ #T35 ¾¡Ëó
++¤«¤Ä¤ó #T35 ¥«¥Ä¥ó
++¤«¤Æ¤´¤ê #T35 ¥«¥Æ¥´¥ê
++¤«¤È¤¦¤¸¤å¤ê #JN ²ÃÆ£¥¸¥å¥ê
++¤«¤È¤¦¤¸¤ç¤æ¤¦ #T35 ²¼Åù½÷Í¥
++¤«¤È¤¦¤æ¤« #JN ²Ãƣͳ¹á
++¤«¤É¤Þ¤ï¤ó #KK ¥«¥É¥Þ¥ï¥ó
++¤«¤É¤Þ¤ï¤ó #T35 ¥«¥É¥Þ¥ï¥ó
++¤«¤Ê¡¼ #JN ¥«¥Ê¡¼
++¤«¤Ë #KK ³ª
++¤«¤Ë #T35 ³ª
++¤«¤Ë¤Ð¤ë #JN (¡¦Æù¡¦)
++¤«¤Ë¤Ð¤ë #JN ¥«¥Ë¥Ð¥ë
++¤«¤Í¤Í¡¼¤è #JN ¥«¥Í¥Í¡¼¥è
++¤«¤Ó¤ª¤Ë¤®¤ê #KK ¥«¥Ó¥ª¥Ë¥®¥ê
++¤«¤Ó¤ª¤Ë¤®¤ê #T35 ¥«¥Ó¥ª¥Ë¥®¥ê
++¤«¤Ó¤ó¤¿¤ó #JN ²ÖÉÓ¤¿¤ó
++¤«¤Õ¤§¡¼ #JN ¥«¥Õ¥§¡¼
++¤«¤Ö #R5 ¤«¤Ö
++¤«¤Ö¤·¤­¤¬¤¤¤·¤ã¤ä¤ª¤­¤ó #KK ³ô¼°²ñ¼Ò¥ä¥ª¥­¥ó
++¤«¤Ö¤·¤­¤¬¤¤¤·¤ã¤ä¤ª¤­¤ó #T35 ³ô¼°²ñ¼Ò¥ä¥ª¥­¥ó
++¤«¤Ö¤È¤à¤· #T35 ¥«¥Ö¥È¥à¥·
++¤«¤×¡¼¤ë¤¤¤¿ #CN ¥«¥×¡¼¥ëÈÄ
++¤«¤×¡¼¤ë¤¤¤¿ #T35 ¥«¥×¡¼¥ëÈÄ
++¤«¤×¡¼¤ë¤¤¤¿ #T35 ÂŽ¶ÂŽÌÂŽßÂŽ°ÂŽÙÈÄ
++¤«¤×¤¦¤ë¤¤¤¿ #T35 ¥«¥×¡¼¥ëÈÄ
++¤«¤×¤¦¤ë¤¤¤¿ #T35 ÂŽ¶ÂŽÌÂŽßÂŽ°ÂŽÙÈÄ
++¤«¤×¤ó¤³ #JN (ÂŽ¥¢ÏÂŽ¥)¥Î¡¡
++¤«¤×¤ó¤³ #JN ¥«¥×¥ó¥³¡ª
++¤«¤Ù #T35 ÊÉ
++¤«¤Þ¤É¤¦¤Þ¤¢¤é¤· #JN ¥«¥Þ¥É¥¦¥Þ¹Ó¤é¤·
++¤«¤ß #JN »æ
++¤«¤ß #T35 ¿À
++¤«¤ß¤«¤¼¤È¤Ã¤³¤¦¤¿¤¤ #JN ¿ÀÉ÷Æù¶Ââ
++¤«¤ß¤³¤¦¤ê¤ó #T35 ¿À¹ßÎ×
++¤«¤ß¤µ¤¯¤¬ #T35 ¿Àºî²è
++¤«¤ß¤Ê¤ê¤°¤ë¡¼¤× #JN Í륰¥ë¡¼¥×
++¤«¤ß¤Ê¤ê¤°¤ë¡¼¤× #T35 Í륰¥ë¡¼¥×
++¤«¤ß¤Ê¤ê¤°¤ë¤¦¤× #T35 Í륰¥ë¡¼¥×
++¤«¤ß¤Î¤¸¤¤¤Æ¤£¤¤¤ª¤¦ #T35 ¿À¤ÎGTO
++¤«¤ß¤Î¤Ê¤ä¤ß¤Ï¤ê¡¼¤Ö¤Ë¤¸¤å¤¦¤¤¤Á #JN ȱ¤ÎǺ¤ß¤Ï¥ê¡¼¥Ö£²£±
++¤«¤á #T35 µµ
++¤«¤á #T35 µµ¥Þ¥Þ
++¤«¤á¤Þ¤Þ #T35 µµ¥Þ¥Þ
++¤«¤á¤â¤Ê¡¼ #JN ¥«¥á¥â¥Ê¡¼
++¤«¤á¤â¤Ê¡¼¤°¤ì¡¼¤È #JN ¥«¥á¥â¥Ê¡¼¥°¥ì¡¼¥È
++¤«¤á¤ì¤¹ #T35 µµ¥ì¥¹
++¤«¤á¤ó¤é¤¤¤À¡¼¤¢¤®¤³ #JN ²¾Ì̥饤¥À¡¼¥¢¥®¥³
++¤«¤á¤ó¤é¤¤¤À¡¼¤¢¤®¤³ #JN ²¾Ì̥饤¥À¡¼¥¢¥®¥³ 
++¤«¤á¤ó¤é¤¤¤À¡¼¤¢¤Þ¤¾¤ó #JN ²¾Ì̥饤¥À¡¼¥¢¥Þ¥¾¥ó
++¤«¤á¤ó¤é¤¤¤À¡¼¤®¤ë¤¹ #JN ²¾Ì̥饤¥À¡¼¥®¥ë¥¹
++¤«¤á¤ó¤é¤¤¤À¡¼¤®¤ë¤¹ #JN ²¾Ì̥饤¥À¡¼¥®¥ë¥¹ 
++¤«¤á¤ó¤é¤¤¤À¡¼¤´¤ë¤¡¤Ã¤¯ #JN ²¾Ì̥饤¥À¡¼GOLACK
++¤«¤á¤ó¤é¤¤¤À¡¼¤·¤£¤¹¤ê¡¼ #JN ²¾Ì̥饤¥À¡¼¤·¤££³
++¤«¤á¤ó¤é¤¤¤À¡¼¤·¤£¤¹¤ê¡¼ #JN ²¾Ì̥饤¥À¡¼¤·¤££³ 
++¤«¤á¤ó¤é¤¤¤À¡¼¤·¤£¤¹¤ê¡¼¤¨¤Ã¤¯¤¹ #JN ²¾Ì̥饤¥À¡¼¤·¤££³¡Ý£Ø
++¤«¤á¤ó¤é¤¤¤À¡¼¤·¤£¤¹¤ê¡¼¤¨¤Ã¤¯¤¹ #JN ²¾Ì̥饤¥À¡¼¤·¤££³¡Ý£Ø 
++¤«¤á¤ó¤é¤¤¤À¡¼¤¹¤È¤í¤ó¤¬¡¼ #JN ²¾Ì̥饤¥À¡¼¥¹¥È¥í¥ó¥¬¡¼
++¤«¤á¤ó¤é¤¤¤À¡¼¤â¤¦¤Ê #JN ²¾Ì̥饤¥À¡¼¥â¥¦¥Ê
++¤«¤â¤¹ #S5 ¾ú¤¹
++¤«¤â¤á #T35 ²ª
++¤«¤é¤¢¤®¤ã¤ó¤° #T35 ¥«¥é¡¼¥®¥ã¥ó¥°
++¤«¤é¤¢¤² #T35 ÅâÍȤ²
++¤«¤é¤­¤Þ¤·¤¿ #CJ ¤«¤éÍè¤Þ¤·¤¿
++¤«¤é¤¹ #JN ±¨
++¤«¤ë¤¿¤ó #JN ¥«¥ë¥¿¥ó
++¤«¤ì¡¼¤Ñ¤½¤Þ¤½ #JN ¥«¥ì¡¼¥Ñ¥½¥Þ¥½
++¤«¤ì¡¼¤Ñ¤ó¤Þ¤ó #JN ¥«¥ì¡¼¥Ñ¥ó¥Þ¥ó
++¤«¤ì¡¼¤Ñ¤ó¤Þ¤ó #JN ÂŽ¶ÂŽÚÂŽ°ÂŽÊÂŽßÂŽÝÂŽÏÂŽÝ
++¤«¤ì¤¤¤·¤å¤¦¤¿¤À¤è¤¦ #CJ ²ÃÎð½­Éº¤¦
++¤«¤ì¤Ï #T35 ¸ÏÍÕ
++¤«¤ï¤µ¤® #T35 Àµ½
++¤«¤ï¤·¤Þ¤¢¤Å¤ß #JN ÀîÅçÏÂÄżÂ
++¤«¤ó #T35 ´°
++¤«¤ó¤«¤ó¤É¤¦¤ê¤Ä #KK ´Ø´ØƱΩ
++¤«¤ó¤«¤ó¤É¤¦¤ê¤Ä #T35 ´Ø´ØƱΩ
++¤«¤ó¤¬¤¯¤´¤­¤Ö¤ê #JN ´Ø³Ø¥´¥­¥Ö¥ê
++¤«¤ó¤¬¤ë¡¼¤â¤Ê¡¼ #JN ¥«¥ó¥¬¥ë¡¼¥â¥Ê¡¼
++¤«¤ó¤¯¤í¤¦ #JN ¥«¥ó£¹£¶
++¤«¤ó¤¯¤í¤¦ #JN ´ª¶ìÏ«
++¤«¤ó¤¯¤í¤¦ #T35 ¥«¥ó£¹£¶
++¤«¤ó¤¯¤í¤¦ #T35 ´ª¶ìÏ«
++¤«¤ó¤³ #R5 ¥«¥ó¥³
++¤«¤ó¤³ #R5r ¥«¥ó¥³
++¤«¤ó¤³¤¯ #KK ´¯¹ñ
++¤«¤ó¤³¤¯ #KK ´¯¹ó
++¤«¤ó¤³¤¯ #KK Õ¡¹ñ
++¤«¤ó¤³¤¯ #T35 ´¯¹ñ
++¤«¤ó¤³¤¯ #T35 ´¯¹ó
++¤«¤ó¤³¤¯ #T35 Õ¡¹ñ
++¤«¤ó¤³¤¯¤È¤ê #T35 ´Ú¹ñ¤È¤ê
++¤«¤ó¤³¤¯¤È¤ê #T35 ´Ú¹ñ¤È¤ê 
++¤«¤ó¤³¤Ã¤¯ #KK ¥«¥ó¥³¥Ã¥¯
++¤«¤ó¤³¤Ã¤¯ #T35 ¥«¥ó¥³¥Ã¥¯
++¤«¤ó¤³¤É¤ê #JN ´×¸ÅÄ»
++¤«¤ó¤µ¤¤¤Õ¤¡¤¤¤Ö¤¹¤¿¤¢ #T35 ´ØÀ¾¥Õ¥¡¥¤¥Ö¥¹¥¿¡¼
++¤«¤ó¤µ¤ó¤È¤·¤¿¤Ç¤ó¤·¤ã #JN ´×»¶¤È¤·¤¿ÅżÖ
++¤«¤ó¤·¤ã¤Ï¤à¤Ë¤À #CJ ´¶¼Õ¥Ï¥à¥Ë¥À
++¤«¤ó¤¸¤ï¤ë¤¤ #T35 ´¶¤¸°­¤¤
++¤«¤ó¤Á¤ç¤¯¤Ë¤ó #T35 ´Éľ¿Í
++¤«¤ó¤Æ¤¤¤· #T35 ´ÕÄê»Î
++¤«¤ó¤Æ¤¤¤¹¤ì #T35 ´ÕÄꥹ¥ì
++¤«¤ó¤Æ¤¤¤È¤ê¤ª #T35 ´ÕÄê¥È¥ê¥ª
++¤«¤ó¤Æ¤¤¤Ë¤ó¤¯¤ß¤¢¤¤ #T35 ´ÕÄê¿ÍÁȹç
++¤«¤ó¤Æ¤¤¤è¤¦¤´ #T35 ´ÕÄêÍѸì
++¤«¤ó¤È¤¦¤Ï¤À¤«¤«¤¤ #JN ´ØÅìÍç²ñ
++¤«¤ó¤È¤ó #KK ¥«¥ó¥È¥ó
++¤«¤ó¤È¤ó #T35 ¥«¥ó¥È¥ó
++¤«¤ó¤Ê¤ª¤È #JN ´¯Ä¾¿Í
++¤«¤ó¤Ê¤ª¤È #JN ´¯Ì¾²»
++¤«¤ó¤Ê¤ª¤È #JN ´Úľ¿Í
++¤«¤ó¤Ê¤ª¤È #JN ¿ûľ¿Í
++¤«¤ó¤Ê¤ª¤È #T35 ´¯Ä¾¿Í
++¤«¤ó¤Ê¤ª¤È #T35 ´¯Ì¾²»
++¤«¤ó¤Ê¤ª¤È #T35 ´Úľ¿Í
++¤«¤ó¤Ê¤ª¤È #T35 ¿ûľ¿Í
++¤«¤ó¤Í¤¤¤³¤¦¤Ï #JN ´ÅÇ«¶½ÇÆ
++¤«¤ó¤Þ¤ó¤»¤¤¤È #JN ´³ËþÀ¸ÅÌ
++¤«¤ó¤ê¤·¤ã¤µ¤ó¤Ç¤¹¤« #CJ ´ÉÍý¼Ô¤µ¤ó¤Ç¤¹¤«¡©£÷
++¤«¤ó¤ê¤Ë¤ó¤Õ¤¡¤ä¤ä #T35 &quot;´ÉÍý&quot;¿Í¥Õ¥¡¥ä¥ä
++¤«¤ó¤ì¤ó¤¹¤ì¤Ã¤É #T35 ´ØÏ¢¥¹¥ì¥Ã¥É
++¤«¤ó¤ì¤ó¤ê¤ó¤¯ #T35 ´ØÏ¢¥ê¥ó¥¯
++¤¬¡¼¤ó #CJ ¥¬¨¬¨¬¨¬¡Ê_§¥_;¡Ë¨¬¨¬¥ó¡ª
++¤¬¡¼¤ó #JN ¥¬¡¼¥ó
++¤¬¡¼¤ó #JN ¥¬¨¬¨¬¡ÊŽߧ¥ÂŽß;)¨¬¨¬¥ó¡ª
++¤¬¡¼¤ó #JN ¦²¡ÊŽߧÕÂŽßlll¡ËÂŽ¶ÂŽÞÂŽ°ÂŽÝ
++¤¬¤¤¤¤¤³¤È¤ò¤¤¤Ã¤¿ #CJ ¤¬¤¤¤¤¤³¤È¤ò¸À¤Ã¤¿
++¤¬¤¤¤­¤Á #T35 ¥¬¥¤¥­¥Á
++¤¬¤¤¤·¤å¤Ä #T35 ¤¬¤¤¤·¤å¤Ä
++¤¬¤¤¤·¤å¤Ä #T35 ³°½Ð
++¤¬¤¤¤·¤å¤Ä¤­¤Ã¤É #JN ´û½Ð¥­¥Ã¥É
++¤¬¤¤¤·¤å¤Ä¤¯¤ó #JN ¥¬¥¤¥·¥å¥Ä·¯
++¤¬¤¤¤¿ #T35 ¥¬ÈÄ
++¤¬¤¤¤É¤é¤¤¤Ê¤¢ #T35 ¥¬¥¤¥É¥é¥¤¥Ê¡¼
++¤¬¤¤¤É¤é¤¤¤ó¤¤¤¿ #T35 ¥¬¥¤¥É¥é¥¤¥óÈÄ
++¤¬¤¯¤¬¤¯¤Ö¤ë¤Ö¤ë #CJ ¥¬¥¯¥¬¥¯¥Ö¥ë¥Ö¥ë
++¤¬¤¯¤¬¤¯¤Ö¤ë¤Ö¤ë #CJ ÂŽ¶ÂŽÞÂŽ¸ÂŽ¶ÂŽÞÂŽ¸ÂŽÌÂŽÞÂŽÙÂŽÌÂŽÞÂŽÙ
++¤¬¤¯¤¬¤¯¤Ö¤ë¤Ö¤ë #T30 ¥¬¥¯¥¬¥¯¥Ö¥ë¥Ö¥ë
++¤¬¤¯¤¬¤¯¤Ö¤ë¤Ö¤ë¤­¤ç¤¦¤³¤¦¤ê¤ó #T30 ¥¬¥¯¥¬¥¯¥Ö¥ë¥Ö¥ë¶µ¹ßÎ×
++¤¬¤¯¤ì¤­¤¢¤¶¤é¤· #T35 ³ØÎò¥¢¥¶¥é¥·
++¤¬¤¯¤ì¤­¤¸¤å¤ó¤¤ #T35 ³ØÎò½ç°Ì
++¤¬¤¯¤ì¤­¤Á¤å¤¦¤É¤¯¤·¤ã #T35 ³ØÎòÃæÆǼÔ
++¤¬¤¯¤ì¤­¤í¤ó¤À¤ê¤ó¤° #T35 ³ØÎò¥í¥ó¥À¥ê¥ó¥°
++¤¬¤³¤Î¤¹¤ì¤Ë¤­¤ç¤¦¤ß¤ò¤â¤Ã¤¿¤è¤¦¤Ç¤¹ #CJ ¤¬¤³¤Î¥¹¥ì¤Ë¶½Ì£¤ò»ý¤Ã¤¿¤è¤¦¤Ç¤¹
++¤¬¤¾¤¦¤¢¤Ã¤×¤í¡¼¤À #T35 ²èÁü¥¢¥Ã¥×¥í¡¼¥À
++¤¬¤Á #T30 ¥¬¥Á
++¤¬¤Á #T35 ¥¬¥Á
++¤¬¤Á¤ã¤Ô¤ó #JN ¥¬¥Á¥ã¥Ô¥ó
++¤¬¤Ã¤¯¤· #CJ ¡²|¡±|¡û
++¤¬¤Ã¤¯¤· #CJ orz
++¤¬¤Ã¤¯¤· #CJ _no
++¤¬¤Ã¤¯¤· #CJ OTL
++¤¬¤Ã¤¯¤· #CJ OTZ
++¤¬¤Ã¤¯¤· #CJ JTO
++¤¬¤Ã¤· #JN ¥¬¥Ã¥·
++¤¬¤Ã¤·¤å¤¯¤¸¤ç #T35 ¹ç½É½ê
++¤¬¤Ã¤Á¤å¤ó #T35 ¤¬¤Ã¤Á¤å¤ó¡ù
++¤¬¤Ã¤Ä #KK ¥¬¥Ã¥Ä
++¤¬¤Ã¤Ä #T35 ¥¬¥Ã¥Ä
++¤¬¤Ê¡¼ #JN ¥¬¥Ê¡¼
++¤¬¤Ê¡¼¤«¤Ã¤³¤¸¤Ä¤è¤¦¤¬¤¿¤«¤Ã¤³¤È¤¸¤ë #JN ¥¬¥Ê¡¼¡Ê¼ÂÍÑ·¿¡Ë
++¤¬¤Ê¡¼¤¿¤¤¤Æ¤¤ #JN ¥¬¥Ê¡¼ÂçÄë
++¤¬¤Ê¡¼¤¿¤¤¤Æ¤¤ #JN ¥¬¥Ê¡¼ÂçÄë 
++¤¬¤Ê¤² #CJ ¥¬¥Ê¥²
++¤¬¤Ê¤² #CJ ÂŽ¶ÂŽÞÂŽÅÂŽ¹ÂŽÞ
++¤¬¤Î¤¿ #T35 ¥¬¥Î¥¿
++¤¬¤Ï¤¯ #T35 ²èÇì
++¤¬¤á¤µ¤Ð #KK µµ»ª
++¤¬¤á¤µ¤Ð #T35 µµ»ª
++¤¬¤ê¤¬¤ê¤¯¤ó #T35 ¥¬¥ê¥¬¥ê·¯
++¤¬¤ê¤Ù¤ó #JN ¥¬¥êÊÙ
++¤¬¤ê¤Ù¤ó¤â¤é¤é¡¼ #JN ¤¬¤êÊÙ¥â¥é¥é¡¼
++¤¬¤ó¤¬¤ë #R5r ¤¬¤ó¤¬¤ë
++¤¬¤ó¤¬¤ë #T35 ¥¬¥ó¥¬¥ë
++¤¬¤ó¤Ð¤ë¤â¤Ê¡¼ #JN ¥¬¥ó¥Ð¥ë¥â¥Ê¡¼
++¤¬¤ó¤Ü #R5 ¤¬¤ó¤Ü
++¤¬¤ó¤Ü #R5r ¤¬¤ó¤Ü
++¤¬¤ó¤à¤Ï¤ó¤É¤ë¤Í¤¨¤à¤â¤ó¤À¤¤ #T35 ½ÆÌ´HNÌäÂê
++¤­¤¤ #KK ¸°
++¤­¤¤¤Æ¤¢¤í¤¨¤ê¡¼¤Ê #CJ ¤­¤¤¤Æ¥¢¥í¥¨¥ê¡¼¥Ê¢ö
++¤­¤¤¤Æ¤¢¤í¤¨¤ê¡¼¤Ê #T35 ¤­¤¤¤Æ¥¢¥í¥¨¥ê¡¼¥Ê¢ö
++¤­¤¤¤Ë¤·¤­ #T35 ¥­¡¼¥Ë¥·¥­
++¤­¤¤¤í #T35 ²«¿§
++¤­¤¦¤¤ #T35 ¥­¥¦¥¤
++¤­¤¨¤¤¤Ü¤¹¤ì¤¸¤±¤ó #T35 ¥­¥¨¡¼¥Ü¥¹¥ì»ö·ï
++¤­¤« #JN µ¢²½
++¤­¤«¤¤¤«¤±¤¤¤Û¤¦ #JN µ¡³£²½·ÙÊó
++¤­¤¬¡¼ #JN ¥­¥¬¡¼
++¤­¤­¡¼¤ó #JN ¥­¥­¡¼¥ó
++¤­¤¯ #T35 µÆ
++¤­¤±¤¤¤ª¤Ë¤®¤ê #JN ´ñ·Á¤ª¤Ë¤®¤ê
++¤­¤±¤¤¤â¤é¤é¡¼ #JN ´ñ·Á¥â¥é¥é¡¼
++¤­¤´¤Ê¤Ó #KK ¥®¥³¥Ê¥Ó
++¤­¤µ¤Þ¤´¤È¤­¤¬¤È¤Ê¤ß¤ò¤«¤¿¤ë¤Ê #JN µ®ÍÍÇ¡¤­¤¬¥È¥Ê¥ß¤ò¸ì¤ë¤Ê
++¤­¤µ¤Þ¤¸¤ã¤Ê¡¼ #JN ¥­¥µ¥Þ¥¸¥ã¥Ê¡¼
++¤­¤·¤ã #T35 µ­¼Ô
++¤­¤·¤å¤¤¤½¤ó¤â¤¸ #T35 µ¡¼ï°Í¸ʸ»ú
++¤­¤·¤å¤¤¤¾¤ó¤â¤¸ #T35 µ¡¼ï°Í¸ʸ»ú
++¤­¤·¤å¤¦ #T30 ´ñ½±
++¤­¤·¤å¤¦ #T35 ´ñ½±
++¤­¤·¤å¤Ä #T35 ´û½Ð
++¤­¤·¤ç #CJ ¥­¥·¥ç
++¤­¤·¤ç #KYT ¥­¥·¥ç
++¤­¤·¤ç¤¤ #T35 ¥­¥·¥ç¥¤
++¤­¤·¤ç¤ª¤¿ #T35 ¥­¥·¥ç¥ª¥¿
++¤­¤·¤ç¤ò¤¿ #T35 ¥­¥·¥ç¥ò¥¿
++¤­¤¿¡¼ #CJ ¥­¥¿¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬(¡¬¢Ï¡¬)¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¡ª¡ª
++¤­¤¿¡¼ #CJ ¥­¥¿¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬(ŽߢÏÂŽß)¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¡ª¡ª
++¤­¤¿¡¼ #CJ ÂŽ·ÂŽÀ¨¬¨¬¨¬¨¬(¡¬¢Ï¡¬¢á(¡¬¢Ï¡¬¢á¡¬¢Ï¡¬)¢á¡¬¢Ï¡¬)¨¬¨¬¨¬¨¬!!!
++¤­¤¿¡¼ #CJ ÂŽ·ÂŽÀ¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬(ŽߢÏÂŽß)¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬!!!
++¤­¤¿¡¼ #JN ¥­¥¿¡¼!!!!
++¤­¤¿¡¼ #JN ÂŽ·ÂŽÀ¨¬¨¬¨¬¨¬¨¬(ŽߢÏÂŽß)¨¬¨¬¨¬¨¬¨¬!!!!
++¤­¤¿¤¢ #CJ ¥­¥¿¡¼
++¤­¤¿¤¢ #CJ ÂŽ·ÂŽÀÂŽ°
++¤­¤¿¤¤¤¢¤² #T35 ´üÂÔage
++¤­¤¿¤­¤å¤¦ #T35 ËÌ£Ñ
++¤­¤¿¤µ¤Ð¤¸¤À¤¤ #T35 ËÌ»ª»þÂå
++¤­¤¿¤Á¤ç¤ó #T35 ËÌ¥Á¥ç¥ó
++¤­¤¿¤Í¡¼¤è #JN ¥­¥¿¥Í¡¼¥è
++¤­¤¿¤Í¡¼¤ó¤À¤è #JN ¥­¥¿¥Í¡¼¥ó¥À¥è
++¤­¤¿¤Í¤Ã¤È #KK Ë̥ͥåÈ
++¤­¤¿¤â¤ê #KK ËÌ¿¹
++¤­¤¿¤â¤ê #T35 ËÌ¿¹
++¤­¤À #KK ÌÚÅÄ
++¤­¤À #T35 ÌÚÅÄ
++¤­¤Á #T35 ¥­¥Á
++¤­¤Á #T35 ´ðÃÏ
++¤­¤Á¡¼¤ê #JN ¥­¥Á¡¼¥ê
++¤­¤Á¡¼¤ê #JN ¥à¥«¡¼¥Ç¡Ú¤à¤«¡¼¤Ç¡ÛÊÌ̾¥­¥Á¡¼¥ê
++¤­¤Á¤¬¤¤ #T35 ¥­¥Á¥¬¥¤
++¤­¤Á¤¬¤¤ #T35 ´ðÃϳ°
++¤­¤Á¤¬¤¤ #T35 ´ðÃϳ²
++¤­¤Á¤¬¤¤¤±¤¤¤Û¤¦ #JN ´ðÃϳ°·ÙÊó
++¤­¤Á¤¬¤¤¤±¤¤¤Û¤¦ #T35 ¥­¥Á¥¬¥¤·ÙÊó
++¤­¤Ã¤³¡¼¤Þ¤½ #JN ¥­¥Ã¥³¡¼¥Þ¥½
++¤­¤Ã¤Á¤ó #T35 ¥­¥Ã¥Á¥ó
++¤­¤Æ¤£ #T35 ¥­¥Æ¥£
++¤­¤Æ¤£¤­¤å¤¦ #T35 ¥­¥Æ¥£µÞ
++¤­¤Æ¤Ê¤¤ #JN ÂŽ·ÂŽÃÂŽÅÂŽ²
++¤­¤Æ¤Ê¤¤ #JN ÂŽ·ÂŽÃÂŽÅÂŽ²¨¬¨¬¨¬¨¬¨¬¨¬¡ÊÂŽß_Žߡ˨¬¨¬¨¬¨¬¨¬¨¬!!!!!
++¤­¤È¡¼ #JN ¥­¥È¡¼
++¤­¤Ë¤¤¤é¤Í¡¼¤è #JN ¥­¥Ë¥¤¥é¥Í¡¼¥è
++¤­¤Ë¤·¤Ê¤¤ #JN ¡ÊŽߦÅÂŽß¡ËÂŽ·ÂŽÆÂŽ¼ÂŽÅÂŽ²!!
++¤­¤Ë¤·¤Ê¤¤ #JN ¥­¥Ë¥·¥Ê¥¤!!
++¤­¤Ë¤·¤Ê¤¤ #JN ÂŽ·ÂŽÆÂŽ¼ÂŽÅÂŽ²!!
++¤­¤Ì¤¦¤é¤ê¤ó¤«¤¤¤Æ¤Ä¤É¤¦ #JN °á±ºÎ׳¤Å´Æ»
++¤­¤Í¤ó¤«¤­¤³ #T30 µ­Ç°¥«¥­¥³
++¤­¤Í¤ó¤«¤­¤³ #T35 µ­Ç°¥«¥­¥³
++¤­¤Í¤ó¤Ñ¤Ô¤³ #T35 µ­Ç°¥Ñ¥Ô¥³
++¤­¤Í¤ó¤Þ¤­¤³ #T35 µ­Ç°âõª»Ò
++¤­¤Î¤³ #T35 ¥­¥Î¥³
++¤­¤Î¤³ #T35 Âû
++¤­¤Î¤»¡¼¤Ë¤ã #JN ¡¡¡¡(¡¼§×°ì)
++¤­¤Î¤»¡¼¤Ë¤ã #JN ¥­¥Î¥»¡¼¥Ë¥ã
++¤­¤Ï¤Ò¤ã¤¯¤Ë¤¸¤å¤¦ #JN ¥­¥Ï£±£²£°
++¤­¤Ð¤ó #T35 ÌÚÈÖ
++¤­¤Ü¡¼¤ó #CJ ¤­¤Ü¡¼¤ó
++¤­¤Ü¡¼¤ó #T35 ¤­¤Ü¡¼¤ó
++¤­¤Ü¤ó #CJ ¤­¤Ü¤ó
++¤­¤Ü¤ó #CJ ¥­¥Ü¥ó
++¤­¤Ü¤ó¤Ì #CJ ¤­¤Ü¤ó¤Ì
++¤­¤Ü¤ó¤Ì #CJ ¥­¥Ü¥ó¥Ì
++¤­¤ß¤Ï¤ï¤À¤µ¤ó¤´¤Î¤ß #CJ ·¯¤Ï¥ï¥À¥µ¥ó¹¥¤ß
++¤­¤à #KK ¤­¤à
++¤­¤à #KY ¤­¤à
++¤­¤à¤³ #T35 ¥­¥à¥³
++¤­¤à¤µ¤ï #KK ¥­¥àÂô
++¤­¤à¤µ¤ï #T35 ¥­¥àÂô
++¤­¤à¤µ¤ï #T35 ʧÂô
++¤­¤à¤Á #JN ¥­¥à¥Á
++¤­¤à¤Á #T35 ¥­¥à¥Á
++¤­¤à¤Á¤â¤ó #JN ¥­¥à¥Á¥â¥ó
++¤­¤à¤è¤ó¤¸¤ó #JN ¶â±Ëï¯
++¤­¤à¤è¤ó¤¸¤ó #T35 ¶â±Ëï¯
++¤­¤â #KYT ¥­¥â
++¤­¤â¤¤ #T35 ¥­¥â¥¤
++¤­¤â¤Á¤¤¤¤¤³¤È¤·¤è¤¦ #CJ µ¤»ý¤Á¤¤¤¤¤³¤È¤·¤è¤¦
++¤­¤ã¤Ã¤È¤­¤é¡¼ #JN ¥­¥ã¥Ã¥È¥­¥é¡¼
++¤­¤ã¤Ã¤È¤­¤é¡¼ #T35 ¥­¥ã¥Ã¥È¥­¥é¡¼
++¤­¤ã¤Ã¤È¤­¤é¤¢ #T35 ¥­¥ã¥Ã¥È¥­¥é¡¼
++¤­¤ã¤Ã¤Ï¤º¤«¤· #JN ¥­¥ã¥Ã¡¢¥Ï¥º¥«¥·
++¤­¤ã¤Ã¤Ï¤º¤«¤· #JN ÂŽ·ÂŽ¬ÂŽ¯¡¢ÂŽÊÂŽ½ÂŽÞÂŽ¶ÂŽ¼¡Ê-ÂŽÉÂŽÉ¡Ë
++¤­¤ã¤Ã¤× #T35 ¥­¥ã¥Ã¥×
++¤­¤ã¤Ã¤×¤â¤ì #T35 ¥­¥ã¥Ã¥×ϳ¤ì
++¤­¤ã¤Ï #T35 ¡ù
++¤­¤ã¤Ô¤¤ #CJ ¥­¥ã¥Ô¡¼
++¤­¤ã¤×¤Æ¤½ #JN ¥­¥ã¥×¥Æ¥½
++¤­¤ã¤×¤Æ¤½ #T35 ¥­¥ã¥×¥Æ¥½
++¤­¤ã¤×¤Æ¤½ #T35 ÂŽ·ÂŽ¬ÂŽÌÂŽßÂŽÃÂŽ¿
++¤­¤ã¤é¤Ï¤ó #T35 ¥­¥ã¥é¥Ï¥ó
++¤­¤å¤¦ #T35 Q
++¤­¤å¤¦¤µ¤¤¤«¤¤ #T35 µßºÑ²ñ
++¤­¤å¤¦¤· #JN µë»Å
++¤­¤å¤¦¤·¤å¤¦ #T35 µÛ¼ý
++¤­¤å¤¦¤·¤å¤¦ #T35 µÞ½±
++¤­¤å¤¦¤¹¤ì #T35 µì¥¹¥ì
++¤­¤å¤¦¤À¤¤ #T35 QÂç
++¤­¤å¤¦¤Á¤ã¤ó¤Í¤ë #T35 ¶å¥Á¥ã¥ó¥Í¥ë
++¤­¤å¤¦¤Æ¤£¤¤ #T35 QT
++¤­¤å¤¦¤Æ¤¤ #KK µìÄë
++¤­¤å¤¦¤Æ¤¤ #T35 µÜÄî
++¤­¤å¤¦¤Æ¤¤ #T35 µìÄë
++¤­¤å¤¦¤Æ¤ó¤¤¤Á¤´¤¸¤±¤ó #T35 9¡¦15»ö·ï
++¤­¤å¤¦¤Æ¤ó¤­¤å¤¦¤Ô¤ó¤¯¤¬¤Ø¤ó #T35 9¡¦9pink¤¬ÊÑ
++¤­¤å¤¦¤Ë¤­¤Î¤­¤ç¤¦¤¤¤¯¤é¤ó¤¾¤¦ #T35 µìÆó´ü¤Î¶µ°é¡¦Íô¤¸øΩ¡¦¹ñ¸øΩÌë´ÖÉô
++¤­¤å¤¦¤Þ¤Ã¤¯¤¤¤¿ #CN µì£Í£á£ãÈÄ
++¤­¤å¤¦¤Þ¤Ã¤¯¤¤¤¿ #T35 µì£Í£á£ãÈÄ
++¤­¤å¤¦¤í¤¯ #KK µìÏ»
++¤­¤å¤¦¤í¤¯ #T35 µìÏ»
++¤­¤æ #JN ¥­¥æ
++¤­¤æ #T35 ¥­¥æ
++¤­¤æ¤á¤¤¤²¤ó #JN ¥­¥æ̸À
++¤­¤ç¤¦ #T35 ¶§
++¤­¤ç¤¦¤®¤å¤¦¤Ó¤ç¤¦¤·¤ó¤¸¤ã #T35 ¶¸µíÉ¿®¼Ô
++¤­¤ç¤¦¤µ¤ó #T35 ¶¯»À
++¤­¤ç¤¦¤µ¤ó¤·¤å¤® #T35 ¶¸»´¼çµÁ
++¤­¤ç¤¦¤µ¤ó¤·¤å¤® #T35 ¶¸»º¼çµÁ
++¤­¤ç¤¦¤»¤¤¤¢¤¤¤Ç¤£¤¤ #T35 ¶¯À©ID
++¤­¤ç¤¦¤»¤¤¤·¤å¤¦¤ê¤ç¤¦ #JN ¶¯À©½ªÎ»
++¤­¤ç¤¦¤À¤¤¤Î¤Û¤´¤·¤ã #JN ¡Ê¡¦¡¼¡¦¡ËÂŽÝ¡£
++¤­¤ç¤¦¤À¤¤¤Î¤Û¤´¤·¤ã #JN ·»Äï¤ÎÊݸî¼Ô
++¤­¤ç¤¦¤À¤¤¤â¤Ê¡¼ #JN ·»Äï¥â¥Ê¡¼
++¤­¤ç¤¦¤À¤¤¤â¤Ê¡¼¤Î¤Ï¤Ï #JN ·»Äï¥â¥Ê¡¼¤ÎÊì
++¤­¤ç¤¦¤È¤¦¤»¤ó¤»¤¤ #JN ¶µÆ¬ÀèÀ¸
++¤­¤ç¤¦¤È¤±¤ó #CN µþÅÔ¸©
++¤­¤ç¤¦¤È¤±¤ó #CNS µþÅÔ¸©
++¤­¤ç¤¦¤È¤±¤ó #T35 µþÅÔ¸©
++¤­¤ç¤¦¤È¤·¤ª¤ª¤Ä¤¯ #CN µþÅÔ»ÔÂçÄŶè
++¤­¤ç¤¦¤È¤·¤ª¤ª¤Ä¤¯ #CNS µþÅÔ»ÔÂçÄŶè
++¤­¤ç¤¦¤È¤·¤ª¤ª¤Ä¤¯ #T35 µþÅÔ»ÔÂçÄŶè
++¤­¤ç¤¦¤È¤ì¤ó¤¸¤ã¡¼ #JN µþÅÔ¥ì¥ó¥¸¥ã¡¼
++¤­¤ç¤¦¤Ï¤ó #T35 ¶¦¥Ï¥ó
++¤­¤ç¤¦¤æ¤¦¤­¤ã¤Ã¤× #T35 ¶¦Í­¥­¥ã¥Ã¥×
++¤­¤ç¤¦¤æ¤¦¤³¤Æ¤Ï¤ó #T35 ¶¦Í­¥³¥Æ¥Ï¥ó
++¤­¤ç¤¦¤æ¤¦¤È¤ê¤Ã¤× #T35 ¶¦Í­¥È¥ê¥Ã¥×
++¤­¤ç¤¸¤ó #T35 µõ¿Ð
++¤­¤ç¤À¤¤¤±¤¤¤¸¤Ð¤ó #T35 µðÂç·Ç¼¨ÈÄ
++¤­¤ç¤À¤¤¤±¤¤¤¸¤Ð¤ó¤°¤ó #T35 µðÂç·Ç¼¨ÈÄ·²
++¤­¤ç¤ß¤ß¤â¤Ê¡¼ #JN µð¼ª¥â¥Ê¡¼
++¤­¤é¤ê #JN ¡Ê¡±¡¼+¡±¡ËÂŽ·ÂŽ×ÂŽØ
++¤­¤é¤ê #JN ¥­¥é¥ê
++¤­¤é¤ê #JN ÂŽ·ÂŽ×ÂŽØ
++¤­¤ê¤³¤ß¤¿¤¤¤Á¤ç¤¦ #JN ÀÚ¹þÂâĹ
++¤­¤ê¤³¤ß¤¿¤¤¤Á¤ç¤¦¤È¤Ò¤í¤æ¤­ #JN ÀÚ¹þÂâĹ¤È¤Ò¤í¤æ¤­
++¤­¤ê¤Ð¤ó #T35 ¥­¥ê¥Ð¥ó
++¤­¤ê¤Ð¤ó #T35 ¥­¥êÈÖ
++¤­¤ê¤Ð¤ó¤²¤Ã¤¿¡¼ #T35 ¥­¥êÈÖ¥²¥Ã¥¿¡¼
++¤­¤ê¤Ð¤ó¤²¤Ã¤¿¤¢ #T35 ¥­¥êÈÖ¥²¥Ã¥¿¡¼
++¤­¤ó #T35 ¶â
++¤­¤ó¤­¤¸¤É¤¦ #JN ¶áµ¦»ùƸ
++¤­¤ó¤­¤¸¤É¤¦ #T35 ¶áµ¦»ùƸ
++¤­¤ó¤°¤â¤Ê¤ê¤¾¤ó #JN ¥­¥ó¥°¥â¥Ê¥ê¥¾¥ó
++¤­¤ó¤°¤ì¤ª¤â¤ê¤è¤·¤í¤¦ #JN ¥­¥ó¥°¥ì¥ª¿¹Á±Ï¯
++¤­¤ó¤À¤¤ #T35 ¶áÂå
++¤­¤ó¤Þ¤ó¤³ #JN ¥­¥ó¥Þ¥ó¥³
++¤­¤ó¤Þ¤ó¤³ #T35 ¥­¥ó¥Þ¥ó¥³
++¤­¤ó¤Þ¤ó¤³¤­¤ç¤¦ #KK ¥­¥ó¥Þ¥ó¥³¶µ
++¤­¤ó¤Þ¤ó¤³¤­¤ç¤¦ #T35 ¥­¥ó¥Þ¥ó¥³¶µ
++¤®¤¬ #JN ¥®¥¬
++¤®¤¬¤á¤¹ #JN ¥®¥¬¥á¥¹
++¤®¤³ #CJ ¥®¥³
++¤®¤³ #JN ¥®¥³
++¤®¤³¡¼¤° #JN ¥®¥³¡¼¥°
++¤®¤³¤¢¤¤¤¹ #JN ¥®¥³¥¢¥¤¥¹
++¤®¤³¤¤¤Ì #JN ¥®¥³¸¤
++¤®¤³¤¦¤µ #JN ¥®¥³¥¦¥µ
++¤®¤³¤¨¤â¤ó #JN ¥®¥³¤¨¤â¤ó
++¤®¤³¤¨¤ë #JN ¥®¥³¥¨¥ë
++¤®¤³¤«¤ï¤À¤ó¤· #JN ¥®¥³ÀîÃÌ»Ö
++¤®¤³¤¬¤¨¤ë #JN ¥®¥³¥¬¥¨¥ë
++¤®¤³¤­¤ç¤¦¤¸¤å #JN ¥®¥³¶µ¼ø
++¤®¤³¤®¤³ #CJ ¥®¥³¥®¥³
++¤®¤³¤®¤³¤¹¤± #JN µ¼¸Å¥®¥³½õ
++¤®¤³¤®¤³¤¿ #JN µ¼¸Å¥®¥³ÂÀ
++¤®¤³¤¯¤µ #JN ¥®¥³Áð
++¤®¤³¤±¤ó¤­¤å¤¦¤¤¤ó #JN ¥®¥³¸¦µæ°÷
++¤®¤³¤³ #JN ¡¡¡¡¢¬¥â¥Ê»Ò¡Ú¤â¤Ê¤³¡Û¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¬¥®¥³»Ò
++¤®¤³¤³ #JN ¥®¥³»Ò
++¤®¤³¤¸¤É¤¦¤·¤ã¤¬¤Ã¤³¤¦ #JN ¥®¥³¼«Æ°¼Ö³Ø¹»
++¤®¤³¤¹¤¿¡¼¤°¤ó #JN ¥®¥³¥¹¥¿¡¼·³
++¤®¤³¤¹¤¿¡¼¤°¤ó #JN ÂŽ·ÂŽÞÂŽºÂŽ½ÂŽÀÂŽ°·³
++¤®¤³¤¹¤¿¡¼¤°¤ó #JN ÂŽÓÂŽÅÂŽ°ÂŽÑÂŽ°ÂŽÝ·³
++¤®¤³¤»¤ó¤È¤¦¤¤¤ó #JN ¥®¥³ÀïÆ®°÷
++¤®¤³¤¿¤¯ #JN ¥®¥³¥¿¥¯
++¤®¤³¤¿¤Þ¤³ #JN µ¼¸Å¶Ì»Ò
++¤®¤³¤Á¤ã¤ó¤â¤Ê¤Á¤ã¤ó #JN ¥®¥³¤Á¤ã¤ó¥â¥Ê¤Á¤ã¤ó
++¤®¤³¤Á¤å¤¦ #JN ¥®¥³¥Á¥å¥¦
++¤®¤³¤Á¤å¤¦ #JN ¥®¥³¿ß
++¤®¤³¤Ä¤ê¡¼ #JN ¥®¥³¥Ä¥ê¡¼
++¤®¤³¤Æ¤ó¤ª¤ª¤®¤ê #JN ¥®¥³ÅÀ¡¡Âç´îÍø¡¡
++¤®¤³¤Ê¤Ó #KK ¥®¥³¥Ê¥Ó
++¤®¤³¤Ê¤Ó #T35 ¥®¥³¥Ê¥Ó
++¤®¤³¤Í¤³ #JN ¥®¥³¥Í¥³
++¤®¤³¤Í¤³ #JN ¥®¥³Ç­
++¤®¤³¤Í¤³ #JN ¥®¥³Ç­¡¡
++¤®¤³¤Í¤³ #T35 ¥®¥³Ç­
++¤®¤³¤Í¤³¤ê¤ç¤À¤ó¤¢¤Ã¤È¤À¤ó¤Á¤ç¡¼ #JN ¥®¥³Ç­Î¹ÃÄ¡÷ÃÄĹ
++¤®¤³¤Î¤»¤ó¤¾ #JN ¥®¥³¤ÎÀèÁÄ
++¤®¤³¤Ï¤Á #JN ¥®¥³È­
++¤®¤³¤Ï¤Ë¤ã¡¼¤ó #CJ ¥®¥³¥Ï¥Ë¥ã¡¼¥ó
++¤®¤³¤Ï¤Ë¤ã¡¼¤ó #JN ¥®¥³¥Ï¥Ë¥ã¡¼¥ó
++¤®¤³¤Ï¤Ï¤Ï #CJ ¥®¥³¥Ï¥Ï¥Ï
++¤®¤³¤Ñ¤í #JN ¥®¥³¥Ñ¥í
++¤®¤³¤Ñ¤í #KK ¥®¥³¥Ñ¥í
++¤®¤³¤Ñ¤í #T35 ¥®¥³¥Ñ¥í
++¤®¤³¤Õ¤¦¤Õ #JN µ¼¸ÅÉ×ÉØ
++¤®¤³¤Õ¤µ¤ê¤ª¤ë¤·¤ç¤¦¤°¤ó #JN ¥®¥³¡¦¥Õ¥µ¥ê¥ª¥ë¾­·³
++¤®¤³¤Ù¡¼¤À¡¼ #JN ¥®¥³¥Ù¡¼¥À¡¼
++¤®¤³¤Ú #KK ¥®¥³¥Ú
++¤®¤³¤Ú #T35 ¥®¥³¥Ú
++¤®¤³¤Þ¤ë¤µ¤ó¤¢¤¤¤¨¤¹ #JN G503is
++¤®¤³¤ß #JN ¥®¥³¥ß
++¤®¤´¤Á¤ã¤ó¤â¤Ê¤Á¤ã¤ó #JN ¥®¥³¤Á¤ã¤ó¥â¥Ê¤Á¤ã¤ó
++¤®¤¸¤ó¤«¤£¤ç¤¥ #JN µ¼¿Í²½¤£¤ç¤¥
++¤®¤¸¤ó¤«¤¸¤µ¤¯¤¸¤¨¤ó #JN µ¼¿Í²½¥¸¥µ¥¯¥¸¥¨¥ó
++¤®¤¸¤ó¤«¤â¤é¤é¡¼ #JN µ¼¿Í²½¥â¥é¥é¡¼
++¤®¤Ã¤³¤·¤§¤ë¤Õ #KK ¥®¥Ã¥³¥·¥§¥ë¥Õ
++¤®¤Ã¤³¤ê #CJ ¥®¥Ã¥³¥ê
++¤®¤Î¤³ #JN ¥®¥Î¥³
++¤®¤Î¤³ #JN ¥®¥Î¥³ 
++¤®¤ã¤¯¤®¤ì¤ß¤º¤«¤±¤â¤Ê¡¼ #JN µÕ¥®¥ì¿å³Ý¤±¥â¥Ê¡¼
++¤®¤ã¤¯¤®¤ì¤ß¤º¤«¤±¤â¤Ê¡¼¤Ñ¡¼¤Õ¤§¤¯¤È¤Ð¤ó #JN µÕ¥®¥ì¿å³Ý¤±¥â¥Ê¡¼¥Ñ¡¼¥Õ¥§¥¯¥ÈÈÇ
++¤®¤ã¤¯¤µ¤Ä¤Á¤å¤¦ #T35 µÔ»¦¿ß
++¤®¤ã¤¯¤µ¤Ä¤Á¤ó #T35 µÔ»¦ÄÁ
++¤®¤ã¤¯¤¿¤¤¤®¤ã¤¯¤µ¤Ä¤¢¤¹¤­¤¤¤¢¤¢¤È #T35 µÔÂÔ¡¦µÔ»¦AA
++¤®¤ã¤¯¤¿¤¤¤·¤ç¤¯¤Ë¤ó #T35 µÔÂÔ¿¦¿Í
++¤®¤ã¤¯¤¿¤¤¤¹¤ì #T35 µÔÂÔ¥¹¥ì
++¤®¤ã¤¯¤Ï¤Ä¤É¤¦ #T30 µÕȯư
++¤®¤ã¤ó #JN ¥®¥ã¥ó
++¤®¤ç¤¯¤ä¤í¤¦ #T35 ¥®¥ç¥¯ÌîϺ
++¤®¤ë¤¡¤â¤Ê #JN ¥®¥ë¥¡¥â¥Ê
++¤®¤ë¤Ë¤ã¡¼¤Î #JN ¥®¥ë¥Ë¥ã¡Á¥Î
++¤®¤í¤ó¤«¤ó¤½¤¦¤¹¤ì¤Ã¤É #T35 µÄÏÀ¡¦´¶ÁÛ¥¹¥ì¥Ã¥É
++¤®¤í¤ó¤¹¤­¡¼ #T35 ¥®¥í¥ó¥¹¥­¡¼
++¤®¤í¤ó¤¹¤­¤¤ #T35 ¥®¥í¥ó¥¹¥­¡¼
++¤®¤ó¤¨¤ó¤Þ¤ó¤»¤¨ #T35 ¶ä±öËüºÐ
++¤¯¤¤¤º¤ß¤ê¤â¤Í¤¢ #JN ¡ð¡ð¡ð¡ð¥¯¥¤¥º¡¦¥ß¥ê¥â¥Í¥¢¡ð¡ð¡ð¡ð
++¤¯¤¦¤­ #T35 ¶õµ¤
++¤¯¤¦¤­¤³¤Æ¤¤ #T35 ¶õµ¤¸ÇÄê
++¤¯¤¦¤­¤è¤á¤Æ¤Í¡¼¤è #JN ¥¯¥¦¥­¥è¥á¥Æ¥Í¡¼¥è
++¤¯¤¦¤¸¤ç¤¦¤â¤Ê¤¿¤í¤¦ #JN ¶õ¾ò¥â¥ÊÂÀϺ
++¤¯¤¦¤¸¤ç¤¦¤â¤Ê¤ê¡¼¤ó #JN ¶õ¾ò¥â¥Ê¥ê¡¼¥ó
++¤¯¤¦¤Æ¤¤¤â¤Ê¡¼ #JN ¶õÄò¥â¥Ê¡¼
++¤¯¤ª¤© #CJ ¤¯¤ª¤©
++¤¯¤µ #T35 ¥¯¥µ
++¤¯¤µ #T35 Áð
++¤¯¤µ¡¼ #JN ¡ÊŽߧ×ÂŽß¡ËÂŽ¸ÂŽ»ÂŽ°
++¤¯¤µ¡¼ #JN ¥¯¥µ¡¼
++¤¯¤µ¡¼ #JN ÂŽ¸ÂŽ»ÂŽ°
++¤¯¤µ¤¤¤¿¤Þ #T35 ¥¯¥µ¥¤¥¿¥Þ
++¤¯¤µ¤Á¤å¡¼¤´ #KK ¥¯¥µ¥Á¥å¡¼¸ì
++¤¯¤µ¤Á¤å¡¼¤´ #T35 ¥¯¥µ¥Á¥å¡¼¸ì
++¤¯¤µ¤Á¤å¤¦¤´ #T35 ¥¯¥µ¥Á¥å¡¼¸ì
++¤¯¤· #T35 ¶ú
++¤¯¤·¤¶¤·¤ª¤Í¤¨¤µ¤ó #JN ¶ú»É¤·¤ª»Ð¤µ¤ó
++¤¯¤»¤¤¤¸¤¤¤¤¤Á¤¾¤¯ #T35 ¥¯¥»¥¤¥¸¡¼°ì²
++¤¯¤½¤²¡¼¤â¤Ê¡¼ #JN ¥¯¥½¥²¡¼¥â¥Ê¡¼
++¤¯¤½¤³¤Æ #T35 ʵ¥³¥Æ
++¤¯¤½¤µ¤ó¤Ó¤ã¤¯¤È¤ó #JN KuSo300t 
++¤¯¤½¤¹¤ì #T35 ¥¯¥½¥¹¥ì
++¤¯¤½¤¹¤ì #T35 ʵ¥¹¥ì
++¤¯¤½¤¹¤ì¤ª¤È¤³ #JN ¥¯¥½¥¹¥ìÃË
++¤¯¤½¤¹¤ì¤«¤¤¤·¤å¤¦¤®¤ç¤¦¤·¤ã #JN ʵ¥¹¥ì²ó¼ý¶È¼Ô
++¤¯¤½¤¹¤ì¤±¤ó¤»¤Ä¤¤¤¤¤ó¤«¤¤ #T35 ʵ¥¹¥ì·úÀß°Ñ°÷²ñ
++¤¯¤½¤¹¤ì¤·¤¹¤¦¤Û¤¦¤³¤¯¤¤¤¤¤ó¤«¤¤ #JN ʵ¥¹¥ì»Ø¿ôÊó¹ð°Ñ°÷²ñ
++¤¯¤½¤¹¤ì¤·¤ó #JN ¥¯¥½¥¹¥ì¿À
++¤¯¤½¤¹¤ì¤Ï #JN ʵ¥¹¥ì¤ÏΩ¤Æ¤ó¤Ê¤Ã¤Æ¸À¤Ã¤¿¤í¤¦¤¬¥ô¥©¥±¤¬¡¼¡¼¡ª
++¤¯¤½¤¹¤ì¤â¤Ê¡¼ #JN ¥¯¥½¥¹¥ì¥â¥Ê¡¼
++¤¯¤½¤¹¤ì¤ï¤Ã¤·¤ç¤¤ #JN ¥¯¥½¥¹¥ì¥ï¥Ã¥·¥ç¥¤
++¤¯¤½¤Á¤å¤¦¤Ü¤¦¤Ç¤ó¤Ñ¤À¤³¤ê¤ã #JN ʵ¿ß˼ÅÅÇȤÀ¤³¤ê¤ã¡ª
++¤¯¤½¤Ç¤«¤¤¤¢¤¹¤­¡¼¤¢¡¼¤È #JN ʵ¤Ç¤«¤¤£Á£Á
++¤¯¤½¤Ð¤³ #T35 ʵȢ
++¤¯¤½¤Ü¤Ã¤¯¤¹ #T35 ʵ¥Ü¥Ã¥¯¥¹
++¤¯¤½¤ê¤×¤È #T35 ¥¯¥½¥ê¥×¥È
++¤¯¤½¤ì¤¹ #T30 ʵ¥ì¥¹
++¤¯¤½¤ì¤¹ #T35 ʵ¥ì¥¹
++¤¯¤À¤·¤Ä #T35 ¤¯¤À¼Á
++¤¯¤À¤é¤Ê¤¤¤·¤Ä¤â¤ó #T35 ¤¯¤À¤é¤Ê¤¤¼ÁÌä
++¤¯¤À¤é¤Ê¤¤¤·¤Ä¤â¤ó¤¹¤ì #T35 ¤¯¤À¤é¤Ê¤¤¼ÁÌ䥹¥ì
++¤¯¤À¤é¤Í¡¼¤è #JN ¥¯¥À¥é¥Í¡¼¥è
++¤¯¤Á¤¯¤Á #T35 ¸ý¸ý
++¤¯¤Á¤Ó¤ë¤² #T35 ¥¯¥Á¥Ó¥ë¥²
++¤¯¤Ã¤­¡¼ #T35 ¥¯¥Ã¥­¡¼
++¤¯¤Ã¤­¤¤ #T35 ¥¯¥Ã¥­¡¼
++¤¯¤Ã¤¯¤ë¤É¤¥¤É¤¥¤É¤¥ #JN ÂŽ¸ÂŽ¯ÂŽ¸ÂŽÙÂŽÄÂŽÞÂŽ©ÂŽÄÂŽÞÂŽ©ÂŽÄÂŽÞÂŽ©
++¤¯¤É¤¦¤â¤Ê #JN ¹©Æ£¥â¥Ê
++¤¯¤Ë¤ª #JNM ¥¯¥Ë¥ò
++¤¯¤Ë¤ª #T35 ¥¯¥Ë¥ò
++¤¯¤Ë¤ª¤¯¤ó¤¯¤í¤¹¤«¤ó¤È¤ê¡¼¤Ø¤ó #JN ¤¯¤Ë¤ª¤¯¤ó¥¯¥í¥¹¥«¥ó¥È¥ê¡¼ÊÔ¡¡
++¤¯¤Ë¤µ¤ï¤Í¤Ã¤È¤Ë¤¤¤± #CJ kunisawa.net¤ËÀ¤±
++¤¯¤Ó¤Ä¤ê¤®¤³ #JN ¼óÄߤꥮ¥³
++¤¯¤Þ¤µ¤ó¤³¤ª¤¹ #T35 ¤¯¤Þ¤µ¤ó¥³¡¼¥¹
++¤¯¤á¡¼¤ë #T35 ·©¡¼¥ë
++¤¯¤á¤¨¤ë #T35 ·©¡¼¥ë
++¤¯¤á¤â¤Ê¡¼ #JN ·©¥â¥Ê¡¼
++¤¯¤é #T35 ÁÒ
++¤¯¤é #T35 ¢
++¤¯¤é¤¤¤¿ #T35 ¥¯¥éÈÄ
++¤¯¤é¤¨¤Ï¤¤¤Ö¤ê¤¹ #JN ¤¯¤é¤¨¥Ï¥¤¥Ö¥ê¥¹
++¤¯¤é¤¯ #T30 ¥¯¥é¥¯
++¤¯¤é¤² #T35 ¥¯¥é¥²
++¤¯¤é¤² #T35 ³¤·î
++¤¯¤é¤Ã¤«¡¼ #T35 ¥¯¥é¥Ã¥«¡¼
++¤¯¤é¤Ã¤«¤¢ #T35 ¥¯¥é¥Ã¥«¡¼
++¤¯¤é¤Ã¤¯ #T30 ¥¯¥é¥Ã¥¯
++¤¯¤é¤é¤¬¤¿¤Ã¤¿ #JN ¥¯¥é¥é¤¬Î©¤Ã¤¿
++¤¯¤é¤ò¤¿ #T35 ¥¯¥é¥ò¥¿
++¤¯¤ê¡¼¤ó¤Ò¤Ã¤È #T30 ¥¯¥ê¡¼¥ó¥Ò¥Ã¥È
++¤¯¤ê¤³ #JN ¤¯¤ê»Ò
++¤¯¤ê¤Á¤å¤¦ #T35 ·ª¿ß
++¤¯¤ì¤¢¤é¤·¤ë #KK ¥¯¥ì¥¢¥é¥·¥ë
++¤¯¤ì¤¤¤¸¤¤¤´¤¦¤¹¤È #T35 ¥¯¥ì¥¤¥¸¡¼¥´¡¼¥¹¥È
++¤¯¤ì¤¯¤ì¤¯¤ó #T35 ¤¯¤ì¤¯¤ì·¯
++¤¯¤ì¤¯¤ì¤Á¤å¤¦¤Ü¤¦¤Ü¤¯¤á¤Ä¤¹¤¤¤·¤ó¤¤¤¤¤ó¤«¤¤ #JN ¤¯¤ì¤¯¤ì¿ß˼ËÐÌÇ¿ä¿Ê°Ñ°÷²ñ
++¤¯¤í¤·¤ç¤¦¤¾¤¯ #T35 ¹õÁõ«
++¤¯¤í¤·¤ç¤¦¤¾¤¯¤ª¤Õ #T35 ¹õÁõ«OFF
++¤¯¤í¤Þ¤é¤é¡¼ #JN ¹õ¥Þ¥é¥é¡¼
++¤¯¤í¤ß¤ß¤â¤Ê¡¼ #JN ¹õ¼ª¥â¥Ê¡¼
++¤¯¤í¤à¤Ä #T35 ¹õ¥à¥Ä
++¤¯¤ï¤é #CJ ¥¯¥ï¥é
++¤¯¤ï¤é #CJ ÂŽ¸ÂŽÜÂŽ×
++¤° #T35 ¶ñ
++¤°¤¢¤ï¤» #T35 ¶ñ¹ç¤ï¤»
++¤°¤Ã¤¸¤ç¤Ö #CJ ¥°¥Ã¥¸¥ç¥Ö
++¤°¤Ã¤¸¤ç¤Ö #CJ ÂŽ¸ÂŽÞÂŽ¯ÂŽ¼ÂŽÞÂŽ®ÂŽÌÂŽÞ
++¤°¤Ã¤É¤Õ¤£¤¤¤ê¤ó¤° #CJ ¥°¥Ã¥É¥Õ¥£¡¼¥ê¥ó¥°
++¤°¤â¤Ã¤Á¤å¤¤¤¤¤ó #T35 ¥°¥â¥Ã¥Á¥å¥¤¡¼¥ó
++¤°¤ê¡¼¤ó #T35 ¥°¥ê¡¼¥½
++¤°¤ê¡¼¤ó #T35 ¥°¥ê¡¼¥ó
++¤°¤ê¤¤¤ó¤Í¤¨¤µ¤ó #T35 ¥°¥ê¡¼¥ó°¹¤µ¤ó
++¤°¤ê¤¤¤ó¤Í¤¨¤µ¤ó #T35 ¥°¥ê¡¼¥ó»Ð¤µ¤ó
++¤°¤ì¡¼¤È¤¬¤ó¤Ð¤ë¤â¤Ê¡¼ #JN ¥°¥ì¡¼¥È¥¬¥ó¥Ð¥ë¥â¥Ê¡¼
++¤°¤ì¤Á¤ã¤ó #JN ¥°¥ì¤Á¤ã¤ó 
++¤°¤í #T35 ¥°¥í
++¤°¤ó¤È¤¦¤®¤³ #JN ·³Å᥮¥³
++¤°¤ó¤Þ¤±¤ó #CN ·²Çϸ©
++¤±¡¼ #T35 £Ë
++¤±¡¼¤­¤ä¤Ý¤ó¤É #JN ¥±¡¼¥­²°¡ò
++¤±¤¤¤ª¤¦ #T35 KO
++¤±¤¤¤­¤å¤¦ #T35 KQ
++¤±¤¤¤³¤¯¤Ö¤ó #T35 ·Ù¹ðʸ
++¤±¤¤¤·¤Á¤ç¤¦ #JN ·Ù»ëÄ£
++¤±¤¤¤¸¤Ð¤ó #T35 ·Ç¼¨ÈÄ
++¤±¤¤¤¸¤Ð¤ó¤¤¤Á¤é¤ó #T35 ·Ç¼¨ÈÄ°ìÍ÷
++¤±¤¤¤¸¤Ð¤ó¤È¤Ã¤×¤Ø #CJ ·Ç¼¨ÈĥȥåפØ
++¤±¤¤¤¿¤¤¤Ç¤ó¤ï¤â¤Ê¡¼ #JN ·ÈÂÓÅÅÏÃ¥â¥Ê¡¼
++¤±¤¬¤Ë #JN ÌÓ¤¬¤Ë
++¤±¤³¡¼¤ó #T30 ¥±¥³¡¼¥ó
++¤±¤³¡¼¤ó #T30 ÂŽ¹ÂŽºÂŽ°ÂŽÝ
++¤±¤Ã¤³¤ó #T30 ·ëº§
++¤±¤Ã¤Ú¤­ #T35 ·éÊÊ
++¤±¤Ã¤Ú¤­¤¯¤ó #T35 ·éÊÊ·¯
++¤±¤Ä¤¬¤ó #T35 ÊÇ´ä
++¤±¤Ä¤² #T35 ¤±¤ÄÌÓ
++¤±¤Æ¤ë #CJ ¤±¤Æ¤ë
++¤±¤í¤Ô¡¼ #JN ¥±¥í¤Ô¡¼
++¤±¤í¤ê¤ó¤²¤ë¤Ó¤È¤¦ #T35 ¥±¥í¥ê¥ó¥²¥ëÈøÆ£
++¤±¤ó #JNM ¤±¤ó
++¤±¤ó¤«¤Ï¤ä¤á¤Æ #JN ¤±¤ó¤«¤Ï¤ä¤á¤Æ¡Ê¡ü¡­¡¼¡®¡ü¡Ë
++¤±¤ó¤«¤ó¤Á¤å¤¦ #T35 ·ù´Ú¿ß
++¤±¤ó¤±¤ó¤«¤ó¤Á¤å¤¦ #T35 ·ù·ù´Ú¿ß
++¤²¡¼¤Ï¡¼¤¤¤¿ #CN ¥²¡¼¥Ï¡¼ÈÄ
++¤²¤­¤¦¤é¤¸¤ç¤¦¤Û¤¦ #T35 ·ã΢¾ðÊó
++¤²¤­¤¸¤ç¤¦ #T35 ·à¾ì
++¤²¤¹¤È¤²¤¹¤È #CJ guestguest
++¤²¤½¤ª¤½ #T35 ¥²¥½¥ª¥½
++¤²¤½¤ª¤½ #T35 ÂŽ¹ÂŽÞÂŽ¿ÂŽµÂŽ¿
++¤²¤Ã¤³¤¦ #T35 ·î¸÷
++¤²¤Ã¤¿¡¼¤â¤Ê¤Þ¤Þ #JN ¥²¥Ã¥¿¡¼¥â¥Ê¥Þ¥Þ
++¤²¤Ã¤Ä #T35 ¥²¥Ã¥Ä
++¤²¤Ã¤×¡¼ #JN ¥²¥Ã¥×¡¼
++¤²¤É¤¦¤»¤ó¤»¤¤ #JN ³°Æ»ÀèÀ¸
++¤²¤é #JN ¥²¥é
++¤²¤é #JN ¥²¥é¥é¡¼
++¤²¤é¤é¡¼ #JN ¥²¥é
++¤²¤é¤é¡¼ #JN ¥²¥é¥é¡¼
++¤²¤í¤¤¤¿ #CN ¥²¥íÈÄ
++¤²¤í¤¤¤¿ #T35 ¥²¥íÈÄ
++¤²¤í¤â¤Ê¡¼ #JN ¥²¥í¥â¥Ê¡¼
++¤²¤ó¤ª¤ó #T35 ¥²¥½¥ª¥½
++¤²¤ó¤ª¤ó #T35 ÂŽ¹ÂŽÞÂŽ¿ÂŽµÂŽ¿
++¤²¤ó¤·¤ª¤¦ #JN ¸¶»Ò²¦
++¤²¤ó¤·¤Ð¤¯¤À¤ó #JN ¸¶»ÒÇúÃÆ
++¤²¤ó¤¸¤ó #T35 ¸¶¿Í
++¤³¡¼¤Û¡¼ #T35 ¥³¡¼¥Û¡¼
++¤³¡¼¤Û¡¼ #T35 ¹ªÊò
++¤³¡¼¤Û¡¼ #T35 ¹âÊò
++¤³¤¢¤ê #T35 »ÒµÂ
++¤³¤¤¤Á¤¸¤«¤ó¤È¤¤¤Ä¤á¤¿¤¤ #CJ ¾®°ì»þ´ÖÌ䤤¤Ä¤á¤¿¤¤
++¤³¤¦¡«¤¡ #T35 ¥³¥ô¥¡
++¤³¤¦¡«¤¡¤¤¤¿ #CN ¥³¥ô¥¡ÈÄ
++¤³¤¦¡«¤¡¤¤¤¿ #T35 ¥³¥ô¥¡ÈÄ
++¤³¤¦¤¨¤¤¤Ø¤¤ #JN ¹È±Òʼ
++¤³¤¦¤«¤¤¤·¤ç¤±¤¤ #T35 ¸ø³«½è·º
++¤³¤¦¤«¤ó¤Á¤å¤¦ #T35 ¹¥´Ú¿ß
++¤³¤¦¤°¤· #T35 ¹©¶ñ»Õ
++¤³¤¦¤°¤· #T35 ¹á¶ñ»Õ
++¤³¤¦¤³¤¯¤Á¤å¤¦¤Ü¤¦ #T35 ¹­¹ð¿ß˼
++¤³¤¦¤³¤¯¤è¤± #T35 ¹­¹ð½ü¤±
++¤³¤¦¤µ¤¯¤¤¤ó #T35 ¹©ºî°÷
++¤³¤¦¤·¤­¤»¤Ã¤Æ¤¤ #T35 ¸ø¼°ÀßÄê
++¤³¤¦¤¿¤¤¤·¤µ¤Þ #JN ¹ÄÂÀ»ÒÍÍ
++¤³¤¦¤À¤ó¤®¤³ #JN ¹ÖÃ̵¼¸Å
++¤³¤¦¤Á¤ç¤¦¤· #T35 ¤³¤¦¤Á¤ç¤¦¤·
++¤³¤¦¤Ä¤¦¤¤¤Ï¤ó¤Î¤â¤ß¤±¤·¤«¤¿ #KK ¸òÄÌ°ãÈ¿¤ÎÙæ¤ß¾Ã¤·Êý
++¤³¤¦¤Ê¤Ã¤Æ¤ë¤Ï¤º¤¬¤³¤¦¤Ê¤Ã¤Æ¤ë¤ó¤Ç¤¹ #CJ ¤³¤¦¤Ê¤Ã¤Æ¤ë¤Ï¤º¤¬¡¢¤³¤¦¤Ê¤Ã¤Æ¤ë¤ó¤Ç¤¹¡£
++¤³¤¦¤Î¤è¤¦¤Ø¤¤ #JN ¹¾¤ÎÍÃʼ
++¤³¤¦¤Î¤è¤¦¤Ø¤¤ #T35 ¹¾¤ÎÍÃʼ
++¤³¤¦¤Ð¤· #KY ¹á¤Ð¤·
++¤³¤¦¤Ð¤· #KYmi ¹á¤Ð¤·
++¤³¤¦¤Ù #KK ¼ó
++¤³¤¦¤Ù #T35 ¼ó
++¤³¤¦¤Û¤¦ #T35 ¥³¡¼¥Û¡¼
++¤³¤¦¤Û¤¦ #T35 ¹ªÊò
++¤³¤¦¤Û¤¦ #T35 ¹âÊò
++¤³¤¦¤Ü¤¦ #T35 ¹©Ë¼
++¤³¤¦¤â¤ê¤â¤Ê¡¼ #JN ¥³¥¦¥â¥ê¥â¥Ê¡¼
++¤³¤¦¤â¤ó¤¤¤Ã¤Æ¤è¤· #CJ æêÌçÀ¤äƤ褷
++¤³¤¦¤ê¤Ä¤Á¤å¤¦ #T35 ¸øΩÃî
++¤³¤¦¤ê¤ó #T30 ¸÷Î×
++¤³¤¦¤ê¤ó #T30 ¹ßÎ×
++¤³¤¯¤ê¤Ä¤¨¤­¤Ù¤ó¤«¤Ö #T35 ¹ñΩ±ØÊۡʳô¡Ë
++¤³¤¯¤ê¤Ä¤Ï¤¦¤Ä¤¯¤·¤¤¤·¤ê¤Ä¤Ï¤ß¤Ë¤¯¤¤ #CJ ¹ñΩ¤ÏÈþ¤·¤¤¡¢¿¬ÄŤϽ¹¤¤
++¤³¤¯¤ì¤ó¤Ê¤Ê¤·¤µ¤ó #T35 ¹ñÏ¢¤ÊÀ®¤·¤µ¤ó
++¤³¤³¤Ç¤¢¤² #CJ ¤³¤³¤Ç¤¢¤²
++¤³¤³¤Ï¤´¤¸¤ã¡¼¤¹¤Ê¤¹¤ì¤Ã¤É¤À¤è #JN (¡¦¢Ï¡¦)ÂŽºÂŽºÂŽÊÂŽºÂŽÞÂŽ¼ÂŽÞÂŽ¬ÂŽ°ÂŽ½ÂŽÅÂŽ½ÂŽÚÂŽ¯ÂŽÄÂŽÞÂŽÀÂŽÞÂŽÖ
++¤³¤³¤Ï¤´¤¸¤ã¡¼¤¹¤Ê¤¹¤ì¤Ã¤É¤À¤è #JN ¥³¥³¥Ï¥´¥¸¥ã¡¼¥¹¥Ê¥¹¥ì¥Ã¥É¥À¥è
++¤³¤³¤Ï¤´¤¸¤ã¡¼¤¹¤Ê¤¹¤ì¤Ã¤É¤À¤è #JN ÂŽºÂŽºÂŽÊÂŽºÂŽÞÂŽ¼ÂŽÞÂŽ¬ÂŽ°ÂŽ½ÂŽÅÂŽ½ÂŽÚÂŽ¯ÂŽÄÂŽÞÂŽÀÂŽÞÂŽÖ
++¤³¤³¤Ï¤É¤³¤¸¤ã #JN ¤³¤³¤Ï¤É¤³¤¸¤ã
++¤³¤³¤Ï¤É¤³¤¸¤ã #JN ¥³¥³¥Ï¥É¥³¥¸¥ã
++¤³¤³¤Ï¤É¤³¤¸¤ã #JN ÂŽºÂŽºÂŽÊÂŽÄÂŽÞÂŽºÂŽ¼ÂŽÞÂŽ¬
++¤³¤³¤Ï¤Ò¤É¤¤¤¤¤ó¤¿¤¢¤Í¤Ã¤È¤Ç¤¹¤Í #CJ ¤³¤³¤Ï¤Ò¤É¤¤¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Ç¤¹¤Í
++¤³¤³¤Ï¤ï¤»¤À¤¸¤ã¤Ê¤¤¤è #CJ ¤³¤³¤ÏÁá°ðÅĤ¸¤ã¤Ê¤¤¤è
++¤³¤³¤Ï¤ï¤ë¤¤¤¤¤ó¤¿¤¢¤Í¤Ã¤È¤Ç¤¹¤Í #CJ ¤³¤³¤Ï°­¤¤¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Ç¤¹¤Í
++¤³¤³¤Þ¤Ç¤è¤ó¤À #CJ --------¤³¤³¤Þ¤ÇÆɤó¤À-------
++¤³¤·¤ª #T35 ¾®±ö
++¤³¤·¤Ì¤± #KK ¹øÈ´¤±
++¤³¤·¤Ì¤± #T35 ¹øÈ´¤±
++¤³¤¸¤­¤â¤Ê¡¼ #JN ¸ð¿©¥â¥Ê¡¼
++¤³¤¹¤×¤ì¤Æ¤ó #T35 ¥³¥¹¥×¥ìŹ
++¤³¤¾¤¦ #JN ¾®ÁÎ
++¤³¤¾¤¦ #T35 ¾®ÁÎ
++¤³¤Ã¤¯¤â¤é¤é¡¼ #JN ¥³¥Ã¥¯¥â¥é¥é¡¼
++¤³¤Ã¤½¤ê¤µ¤ó #JN ¤³¤Ã¤½¤ê¤µ¤ó
++¤³¤Æ #T35 ¥³¥Æ
++¤³¤Æ¤¤ #T35 ¸ÇÄê
++¤³¤Æ¤¤¤¿¤¿¤­ #T30 ¸ÇÄê᤭
++¤³¤Æ¤¤¤Ï¤ó¤É¤ë #T35 ¸ÇÄê¥Ï¥ó¥É¥ë
++¤³¤Æ¤¤¤Ï¤ó¤É¤ë¤¹¤ì¤Ã¤É #T35 ¸ÇÄê¥Ï¥ó¥É¥ë¥¹¥ì¥Ã¥É
++¤³¤Æ¤¤¤Õ¤¡¤ó #T35 ¸ÇÄê¥Õ¥¡¥ó
++¤³¤Æ¤Ï¤ó #T35 ¥³¥Æ¥Ï¥ó
++¤³¤Æ¤Ï¤ó¤«¡¼¤Ë¤Ð¤ë #T35 ¥³¥Æ¥Ï¥ó¥«¡¼¥Ë¥Ð¥ë
++¤³¤Æ¤Ï¤ó¤«¤¢¤Ë¤Ð¤ë #T35 ¥³¥Æ¥Ï¥ó¥«¡¼¥Ë¥Ð¥ë
++¤³¤Æ¤Ï¤ó¤¹¤ì¤Ã¤É #T35 ¥³¥Æ¥Ï¥ó¥¹¥ì¥Ã¥É
++¤³¤É¤â¤Ê¡¼ #JN ¤³¤É¥â¥Ê¡¼
++¤³¤Ê¤· #T35 »ÒÍü
++¤³¤Ë¡¼ #T35 ¥³¥Ë¡¼
++¤³¤Ë¤¤ #T35 ¥³¥Ë¡¼
++¤³¤Î¤¦¤Ã¤¿¤¨¤Ï¤Þ¤¤¤Ë¤Á¤·¤Æ¤¤¤¯¤Ä¤â¤ê¤Ç¤¹ #CJ ¤³¤ÎÁʤ¨¤ÏËèÆü¤·¤Æ¤¤¤¯¤Ä¤â¤ê¤Ç¤¹
++¤³¤Î¤¹¤ì¤Ï¤¨¤í¤¤¤Ê #CJ ¤³¤Î¥¹¥ì¤Ï¥¨¥í¤¤¤Ê
++¤³¤Î¤¿¤³ #JN ¤³¤Î¥¿ÂŽº
++¤³¤Î¤ä¤í¤¦ #CJ ¤³¤ÎÌîϺ¡ª
++¤³¤Ô¤Ú #T30 ¥³¥Ô¥Ú
++¤³¤Ô¤Ú¤¢¤é¤· #T35 ¥³¥Ô¥Ú¹Ó¤é¤·
++¤³¤Ô¤Ú¤¦¤¶ #KYT ¥³¥Ô¥Ú¤¦¤¶
++¤³¤Ô¤Ú¤Á¤å¤¦ #T35 ¥³¥Ô¥Ú¿ß
++¤³¤Ô¤Ú¤Ï¤«¤Á¤å¡¼¤·¤ã¤Ç¤¢¤Ü¡¼¤ó¤À¤è #JN ¤³¤Ô¤Ú¤Ï¤«¤Á¤å¡Á¤·¤ã¤Ç¤¢¤Ü¡Á¤ó¤À¤è
++¤³¤Ü¤æ¤­¡¼ #JN ¡ÊÂŽÒ¡¦¤ó¡¦¡Ë
++¤³¤Ü¤æ¤­¡¼ #JN ¥³¥Ü¥æ¥­¡¼
++¤³¤Þ¤Ä¤Ð¤é¤³¤¦¤³¤¦ #KK ¾®¾¾¸¶¹â¹»
++¤³¤Þ¤Ä¤Ð¤é¤³¤¦¤³¤¦ #T35 ¾®¾¾¸¶¹â¹»
++¤³¤Þ¤ë #JN ¥³¥Þ¥ë
++¤³¤ß¤± #KK ¥³¥ß¥±
++¤³¤ß¤Ñ #KK ¤³¤ß¥Ñ
++¤³¤ß¤Ñ #T35 ¤³¤ß¥Ñ
++¤³¤ß¤ß¤â¤Ê¡¼ #JN ¾®¼ª¥â¥Ê¡¼
++¤³¤á #T35 ¢¨
++¤³¤á¤·¤ª #KK ÊƱö
++¤³¤á¤·¤ª #T35 ÊƱö
++¤³¤á¤¸¤ª #KK ÊƱö
++¤³¤á¤¸¤ª #T35 ÊƱö
++¤³¤é #RT ¥³¥é
++¤³¤é #T35 ¥³¥é
++¤³¤ê¤ã¤Þ¡¼ #CN ¥³¥ê¥ã¥Þ¡¼
++¤³¤ê¤ã¤Þ¡¼ #T35 ¥³¥ê¥ã¥Þ¡¼
++¤³¤ê¤ã¤Þ¤¢ #T35 ¥³¥ê¥ã¥Þ¡¼
++¤³¤ê¤ó¤º #JN ¥³¥ê¥ó¥º
++¤³¤ê¤ó¤º¤¢¤é¤· #JN ¥³¥ê¥ó¥º¹Ó¤é¤·¡¡
++¤³¤ê¤ó¤º¤­¤é¡¼ #JN ¥³¥ê¥ó¥º¥­¥é¡¼
++¤³¤ê¤ó¤º¤À¡¼¤¯ #JN ¥³¥ê¥ó¥º¥À¡¼¥¯
++¤³¤ì¤ª¤â¤í¤¤ #CJ ¤³¤ì¤ª¤â¤í¤¤¡ª
++¤³¤ì¤Ï¤·¤å¤¦¤»¤¤¤µ¤ì¤ë¤Í #CJ ¤³¤ì¤Ï½¤À°¤µ¤ì¤ë¤Íwwww
++¤³¤í¤Ã¤± #T35 ¥³¥í¥Ã¥±
++¤³¤í¤Ã¤±¤µ¤¤ #T35 ¥³¥í¥Ã¥±º×
++¤³¤í¤Ã¤±¤ï¤Ã¤·¤ç¤¤ #JN ¥³¥í¥Ã¥±¥ï¥Ã¥·¥ç¥¤
++¤³¤í¤Ì #CJ  ¥³¥í¥Ì
++¤³¤í¤Ì #CJ ¥³¥í¥Ì
++¤³¤í¤Ì #N5 ¥³¥í¥Ì
++¤³¤ï¤¤¤³¤ï¤¤¤Ò¡¼ #CJ ¥³¥ï¥¤¥³¥ï¥¤¥Ò¡¼
++¤³¤ó¤·¤å¤¦¤Î¤Ó¤Ã¤¯¤ê¤É¤Ã¤­¤ê¤¾¤Ì #JN º£½µ¤Î¥Ó¥Ã¥¯¥ê¥É¥Ã¥­¥ê¤¾¤Ì
++¤³¤ó¤É¡¼¤à¤Þ¤é¤é¡¼ #JN ¥³¥ó¥É¡¼¥à¥Þ¥é¥é¡¼
++¤³¤ó¤Î¤¦ #T35 º®Ç¾
++¤´¡¼ #KK ¥´¡¼
++¤´¡¼¤´¡¼¤Ë¡¼¤Ö¤ó¤·¤ç #T35 552ʸ½ñ
++¤´¡¼¤´¡¼¤Ë¡¼¤â¤ó¤¸¤ç #T35 552ʸ½ñ
++¤´¤¤¤ó¤­¤ç #T35 ¸æ±£µï
++¤´¤¦¤Á¤ó¤­¤ã¤é¤µ¤ó¤Ë¤ó¤°¤ß #JN ¹ìÄÀ¥­¥ã¥é»°¿ÍÁÈ
++¤´¤¦¤Á¤ó¤­¤ã¤é¤µ¤ó¤Ë¤ó¤°¤ß¤«¤Ã¤³¤À¤¤¤µ¤ó¤­¤È¤¸¤«¤Ã¤³ #JN ¹ìÄÀ¥­¥ã¥é»°¿ÍÁÈ¡ÊÂè»°´ü¡Ë
++¤´¤¦¤Á¤ó¤­¤ã¤é¤µ¤ó¤Ë¤ó¤°¤ß¤«¤Ã¤³¤À¤¤¤Ë¤­¤È¤¸¤«¤Ã¤³ #JN ¹ìÄÀ¥­¥ã¥é»°¿ÍÁÈ¡ÊÂèÆó´ü¡Ë
++¤´¤¦¤Ï¤é #JNS ¶ÈÊ¢
++¤´¤¦¤Ï¤é #T35 ¶ÈÊ¢
++¤´¤¦¤Ï¤é¤â¤Ê¡¼ #JN ¥´¡Ê°Ê²¼Î¬¡Ë¥â¥Ê¡¼ 
++¤´¤¦¤Þ¤ë¤µ¤ó¤é¤¦¤ó¤¸ #T35 503¥é¥¦¥ó¥¸
++¤´¤­¤Ö¤ê¤Ã¤Ä #JN ¥´¥­¥Ö¥ê¥Ã¥Ä
++¤´¤­¤Ö¤ê¤Ã¤Ä #KK ¥´¥­¥Ö¥ê¥Ã¥Ä
++¤´¤­¤Ö¤ê¤Ã¤Ä #T35 ¥´¥­¥Ö¥ê¥Ã¥Ä
++¤´¤­¤Ö¤ê¤è¤³¤Ï¤Þ¤¸¤ó #JN ¥´¥­¥Ö¥ê²£ÉÍ¿Í
++¤´¤­¤í¤ª #T35 ¥´¥­¥í¡¼
++¤´¤®¤³¤µ¡¼¤Æ¤£¡¼¤ó #JN ¥´¥®¥³£±£³
++¤´¤¯¤¦ #T35 ¸ç¶õ
++¤´¤¯¤Ö¤È¤Ð¤¤¤Ö¡¼ #T35 ¶ËÂÀ¥Ð¥¤¥Ö¡¼¡ª¡ª
++¤´¤µ¤ó¤± #T35 ¸æ»°²È
++¤´¤¸¤ã¡¼¤¹¤Þ¤é¤é¡¼ #JN ¥´¥¸¥ã¡¼¥¹¥Þ¥é¥é¡¼
++¤´¤¸¤ã¡¼¤¹¤â¤é¤é¡¼ #JN ¥´¥¸¥ã¡¼¥¹¥â¥é¥é¡¼
++¤´¤¹¤é #JN ¥´¥¹¥é
++¤´¤Ã¤É¤Ï¤ó¤É #T35 ¥´¥Ã¥É¥Ï¥ó¥É
++¤´¤Ë¤ã¤¢ #JN ¤´¤Ë¤ã¤¢
++¤´¤Ë¤ã¤¢ #JN ¥´¥Ë¥ã¥¢
++¤´¤Ð¤¯ #T35 ¸íÇú
++¤´¤Ð¤¯¤¢¤é¤· #T35 ¸íÇú¹Ó¤é¤·
++¤´¤Ð¤¯¤¹¤Þ¤½ #CJ ¸íÇú¥¹¥Þ¥½
++¤´¤Þ¤â¤É¤­ #JN ¥´¥Þ¤â¤É¤­
++¤´¤ß¤Ð¤³ #T35 ¥´¥ßÈ¢
++¤´¤ß¤ó #T35 ¤´¤ß¤ó
++¤´¤á¤½ #CJ ¥´¥á¥½
++¤´¤é¡¼ #JN ¥´¥é¡¼
++¤´¤é¤¡ #JN ¡ÔŽߧ¥ÂŽß¡ÕÂŽºÂŽÞÂŽ×ÂŽ§ÂŽ§ÂŽ§ÂŽ§ÂŽ§ÂŽ§ÂŽ§ÂŽ§ÂŽ§ÂŽ§ÂŽ§ÂŽ§ÂŽ§ÂŽ±!!!!!
++¤´¤é¤¡ #JN ¥´¥é¥¡
++¤´¤ê¤ç¤¦¤â¤¨ #T35 ¸æÎî˨
++¤´¤ë¤¡ #CJ (Žߧ¥ÂŽß)ÂŽºÂŽÞÂŽÙÂŽ§¡ª
++¤´¤ë¤¡ #CJ ¥´¥ë¥¡
++¤´¤ë¤¡ #CJ ¥´¥ë¥¡!
++¤´¤ë¤¡ #CJ ÂŽºÂŽÞÂŽÙÂŽ§¡ª
++¤´¤ë¤¡ #JN  ¡³(*¡®§¥¡­)¥ÎÂŽºÂŽÞÂŽÙÂŽ§
++¤´¤ë¤¡ #JN (Žߧ¥ÂŽß)ÂŽºÂŽÞÂŽÙÂŽ§
++¤´¤ë¤¡ #JN ¥´¥ë¥¡
++¤´¤ë¤¡ #JN ÂŽºÂŽÞÂŽÙÂŽ§
++¤´¤ë¤¡ #T35 goluah!
++¤´¤ë¤¡¤È¤é¤Þ¤ó #JN ¥´¥ë¥¡¥È¥é¥Þ¥ó
++¤´¤ë¤¢ #CJ ¥´¥ë¥¡!
++¤´¤í¤í¤¦ #T35 ¥´¥í¥í¡¼
++¤µ¡¼¤Ð¤«¤ó¤·¤¸¤ç #T35 ¥µ¡¼¥Ð´Æ»ë½ê
++¤µ¡¼¤Ð¤À¤¤¤­¤ó #T35 ¥µ¡¼¥ÐÂå¶â
++¤µ¤¢¤¤¤³¤¦¤« #JN ¤µ¤¢¡Å¡¡À¤³¤¦¤«¡Å¡Å
++¤µ¤¢¤²¤¨¤à¤Î¤Ï¤¸¤Þ¤ê¤Ç¤¹ #CJ ¤µ¤¢¥²¡¼¥à¤Î»Ï¤Þ¤ê¤Ç¤¹
++¤µ¤¢¤µ¤¢¤ª¤­¤ã¤¯¤µ¤ó¤¬¤¯¤ë¤è  #JN ¤µ¤¢¤µ¤¢¡¢¤ªµÒ¤µ¤ó¤¬Íè¤ë¤è!!! 
++¤µ¤¢¤µ¤¢¤ª¤­¤ã¤¯¤µ¤ó¤¬¤¯¤ë¤è #JN ¤µ¤¢¤µ¤¢¡¢¤ªµÒ¤µ¤ó¤¬Íè¤ë¤è!!!
++¤µ¤¤¤³¤¦ #T35 ºÇ¹â
++¤µ¤¤¤³¤¦¤­¤ç¤¦ #T35 ºÇ¹â¶µ
++¤µ¤¤¤³¤¦¤¼¡¼¤è #JN ¥µ¥¤¥³¥¦¥¼¡¼¥è
++¤µ¤¤¤³¤Õ¤Ã¤µ¡¼¤ë #JN ¥µ¥¤¥³¡¦¥Õ¥Ã¥µ¡¼¥ë
++¤µ¤¤¤·¤ó¤ì¤¹ #T35 ºÇ¿·¥ì¥¹
++¤µ¤¤¤¼¤ó¤»¤ó¤¯¤ó #T35 ºÇÁ°Àþ·¯
++¤µ¤¤¤¿¤Þ #JN ¤µ¤¤¤¿¤Þ
++¤µ¤¤¤¿¤Þ #T35 ¤µ¤¤¤¿¤Þ
++¤µ¤¤¤À¤¤¤­¤å¤¦¤­¤Á¤¬¤¤¤±¤¤¤Û¤¦ #JN ºÇÂçµé¥­¥Á¥¬¥¤·ÙÊó
++¤µ¤¤¤É¤ê¤­¤¤¤Á #JN º¸°æ¸ÍÎÏ°ì
++¤µ¤¤¤Ð¡¼¤¨¡¼¤¸¤§¤ó¤È #KK ¥µ¥¤¥Ð¡¼¥¨¡¼¥¸¥§¥ó¥È
++¤µ¤¤¤â¤¨¤È¡¼¤Ê¤á¤ó¤È #T35 ºÇ˨¥È¡¼¥Ê¥á¥ó¥È
++¤µ¤¤¤â¤¨¤È¤¦¤Ê¤á¤ó¤È #T35 ºÇ˨¥È¡¼¥Ê¥á¥ó¥È
++¤µ¤«¡¼¤Ê #JN ¥µ¥«¡¼¥Ê
++¤µ¤«¤­¤Ð¤é¤»¤¤¤È #T35 ¼òµ´é¬é¯À»ÅÍ
++¤µ¤«¤Ê #JN µû
++¤µ¤«¤Ê #T35 µû
++¤µ¤«¤Ë¤Ã¤Ý #T35 ¤µ¤«¤Ë¤Ã¤Ý
++¤µ¤¬¤±¤ó¤µ¤¬¤·¤¸¤å¤¦¤Ê¤Ê¤µ¤¤ #JN º´²ì¸©º´²ì»Ô½½¼·ºÐ
++¤µ¤¯¤¸¤ç #T30 ºï½ü
++¤µ¤¯¤¸¤ç¤¤¤é¤¤ #T30 ºï½ü°ÍÍê
++¤µ¤¯¤¸¤ç¤¤¤é¤¤ #T35 ºï½ü°ÍÍê
++¤µ¤¯¤¸¤ç¤¬¤¤¤É¤é¤¤¤ó #T35 ºï½ü¥¬¥¤¥É¥é¥¤¥ó
++¤µ¤¯¤¸¤ç¤Ë¤ó #T35 ºï½ü¿Í
++¤µ¤¯¤»¤¤¤¤¤é¤¤ #T30 ºîÀ®°ÍÍê
++¤µ¤¯¤¿¤ó #T35 ¥µ¥¯¤¿¤ó
++¤µ¤¯¤Å¤± #T30 ¤µ¤¯¤Å¤±
++¤µ¤¯¤Å¤± #T30 ¥µ¥¯¥º¤±
++¤µ¤¯¤é¤¬¤ª¤«¤¬¤¯¤¨¤ó #KK ºùµÖ³Ø±à
++¤µ¤¯¤é¤¬¤ª¤«¤³¤¦¤³¤¦ #KK ºùµÖ¹â¹»
++¤µ¤¯¤é¤¬¤ª¤«¤Á¤å¤¦¤¬¤Ã¤³¤¦ #KK ºùµÖÃæ³Ø¹»
++¤µ¤¯¤é¤¿¤ó¤«¤ê #T35 ¤µ¤¯¤é¤¿¤ó¡Ê²¾¡Ë
++¤µ¤¯¤é¤¿¤ó¤Á¤å¤¦ #T35 ¤µ¤¯¤é¤¿¤ó¿ß
++¤µ¤¯¤é¤Á¤å¤¦ #T35 ºù¿ß
++¤µ¤¯¤é¤Ã¤Á #T35 ¥µ¥¯¥é¤Ã¤Á
++¤µ¤¯¤é¤Ã¤Á #T35 ºùÙÇÃ×
++¤µ¤¯¤é¤Ë¤³ #JN ¤µ¤¯¤é¥Ë¥³
++¤µ¤¯¤é¤Í¤Ã¤È #KK ¤µ¤¯¤é¤Í¤Ã¤È
++¤µ¤¯¤é¤á¤ó¤È #JN ¥µ¥¯¥é¥á¥ó¥È
++¤µ¤±¤È¤®¤³¤È¤Ï¤Ë¤ã¡¼¤ó¤È #JN ¼ò¤È¥®¥³¤È¤Ï¤Ë¤ã¡¼¤ó¤È
++¤µ¤±¤Ë¤®¤ê¤ï¤Ã¤·¤ç¤¤ #JN ºú¤Ë¤®¤ê¥ï¥Ã¥·¥ç¥¤
++¤µ¤² #KS sage
++¤µ¤² #KSr ¤µ¤²
++¤µ¤² #T35 sage
++¤µ¤²¤¢¤ª¤ê #T35 sageÀú¤ê
++¤µ¤²¤¢¤é¤· #T35 sage¹Ó¤é¤·
++¤µ¤²¤·¤ó¤³¤¦ #T30 ¤µ¤²¿Ê¹Ô
++¤µ¤²¤·¤ó¤³¤¦ #T35 sage¿Ê¹Ô
++¤µ¤²¤Ã¤Æ¤£ #JN sageÂŽ¯ÂŽÃÂŽ¨
++¤µ¤²¤ì¤¹ #T30 sage¥ì¥¹
++¤µ¤³¤Ä #JN ¥µ¹ü
++¤µ¤µ¤­¤±¤ó¤¹¤± #JN º´¡¹ÌÚ·ò²ð
++¤µ¤¶¤¨¤µ¤ó #JN ¥µ¥¶¥¨¤µ¤ó
++¤µ¤¶¤¨¤µ¤ó #JN ¥µ¥¶¥¨¤µ¤ó¡¡
++¤µ¤¹¤µ¤¹ #JN ¤µ¤¹¤µ¤¹
++¤µ¤¿¤ó #JN ¥µ¥¿¥ó
++¤µ¤¿¤ó #JN ÂŽ»ÂŽÀÂŽÝ
++¤µ¤Ã¤Á¡¼¤Þ¤Ä¤ê #T35 ¥µ¥Ã¥Á¡¼º×¤ê
++¤µ¤Ã¤Á¤å¤¦¤¶¤¤¤´¤¸¤ã¡¼¤¹ #JN »¦¿ßºÞ¥´¥¸¥ã¡¼¥¹
++¤µ¤Ã¤Ý¤í #CN »¦ÂŽÎÂŽßÂŽÛ
++¤µ¤Ã¤Ý¤í #KK »¦¥Ý¥í
++¤µ¤Ã¤Ý¤í #T35 »¦¥Ý¥í
++¤µ¤Ã¤Ý¤í #T35 »¦ÂŽÎÂŽßÂŽÛ
++¤µ¤Ä¤¨¤¤¤­¤ó¤· #T35 »£±Æ¶Ø»ß
++¤µ¤È¤é¤ì #T35 ¥µ¥È¥é¥ì
++¤µ¤Ð #T35 »ª
++¤µ¤Ð¤ª¤Á #T30 »ªÍî¤Á
++¤µ¤Ð¤¬¤ª¤Á¤ë #CJ »ª¤¬Íî¤Á¤ë
++¤µ¤Ð¤¬¤È¤Ö #CJ »ª¤¬Èô¤Ö
++¤µ¤Ö¤Ð¤Ã¤¯¤¨¤¤¤Á¤Æ¤£¡¼¤¨¤à¤¨¤ë #T35 subback.html
++¤µ¤á¤¸¤Þ¤¸¤±¤ó #T35 »­Åç»ö·ï
++¤µ¤è #T35 ¥µ¥è
++¤µ¤è¤Ã¤Æ¤ë #T35 º¸Íã¤Ã¤Æ¤ë
++¤µ¤è¤ó¤Ü #T35 ¥µ¥è¥ó¥Ü
++¤µ¤é¤·¤¢¤² #KSr ¤µ¤é¤·age
++¤µ¤é¤·¤¢¤² #KSr ¤µ¤é¤·¤¢¤²
++¤µ¤é¤·¤¢¤² #KSr »¯¤·age
++¤µ¤é¤·¤¢¤² #T35 SALA¤·age
++¤µ¤é¤·¤¢¤² #T35 SALA»Å¾å¤²
++¤µ¤é¤·¤¢¤² #T35 £Ó£Á£Ì£Á»Å¾å¤²
++¤µ¤é¤·¤¢¤² #T35 ¤µ¤é¤·age
++¤µ¤é¤·¤¢¤² #T35 »¯¤·age
++¤µ¤é¤·¤¢¤²¤â¤Ê¡¼ #JN »¯¤·¾å¤²¥â¥Ê¡¼
++¤µ¤é¤Ö¤ì¤Ã¤È #JN ¥µ¥é¥Ö¥ì¥Ã¥È
++¤µ¤é¤Ö¤ì¤Ã¤É #JN ¥µ¥é¥Ö¥ì¥Ã¥É
++¤µ¤ë¤¶¤È¤¦ #T35 ±îº½Åü
++¤µ¤ë¤Ù¡¼¤¸ #T30 ¥µ¥ë¥Ù¡¼¥¸
++¤µ¤ì¤Ä¤Þ #T35 ¤µ¤ìºÊ
++¤µ¤ì¤Å¤Þ #T35 ¤µ¤ìºÊ
++¤µ¤ï¤¿¤ê¤Þ¤³¤È¤Ï¤ï¤¬¤¤¤Î¤Á #CJ ÂôÅÏ¿¿¶×¤Ï²æ¤¬Ì¿
++¤µ¤ï¤ä¤« #JN Á֤䤫¡ª
++¤µ¤ó¤¬¤Ä¤¦¤µ¤® #JN £³·î¥¦¥µ¥®
++¤µ¤ó¤­¤ã¤¯ #KK »°µÓ
++¤µ¤ó¤­¤ã¤¯ #T35 »°µÓ
++¤µ¤ó¤¯¤¹¤³ #CJ ¥µ¥ó¥¯¥¹¥³
++¤µ¤ó¤¯¤¹¤³ #CJ ÂŽ»ÂŽÝÂŽ¸ÂŽ½ÂŽº
++¤µ¤ó¤±¡¼ #JN ¥µ¥ó¥±¡¼
++¤µ¤ó¤±¡¼¤·¤ó¤Ö¤ó #T35 £³£Ë¿·Ê¹
++¤µ¤ó¤²¤Ã¤È #JN £³¥²¥Ã¥È¤©¤©¤©¤©¡ª¡ª
++¤µ¤ó¤´ #T35 »¹¸ê
++¤µ¤ó¤º¤Î¤«¤ï #JN »°ÅÓ¤ÎÀî
++¤µ¤ó¤¿¤â¤Ë¤« #JN ¥µ¥ó¥¿¡á¥â¥Ë¥«
++¤µ¤ó¤À¤ó¤â¤Ê¡¼ #JN £³ÃÊ¥â¥é¥é¡¼
++¤µ¤ó¤É¤¤¤Ã¤Á #JN ¥µ¥ó¥É¥¤¥Ã¥Á
++¤µ¤ó¤á¡¼¤È¤ë¤Î¤¦¤Á¤å¤¦¤¸¤ó #JN £³£í¤Î±§Ãè¿Í¡¡
++¤µ¤ó¤â¤¸¤µ¤¯¤¬ #T35 »°Ê¸»úºî²è
++¤¶¡¼¤Ü¤ó #JN ¥¶¡¼¥Ü¥ó
++¤¶¤¢¤á¤ó¤¿¤¤¤·¤Ä #T35 ¥¶¡¼ÌÌÂμÁ
++¤¶¤¤¤¢¤½ #JN ¥¶¥¤¥¢¥½
++¤¶¤¤¤¢¤½ #JN ¥¶¥¤¥¢¥½ 
++¤¶¤¤¤³ #JN ¥¶¥¤»Ò
++¤¶¤¤¤³¤·¤ç¤ê¤Ï¤ó #JN ºß¸Ë½èÍýÈÉ
++¤¶¤¤¤Ë¤Á¤¤¤·¤ì¤Ã¤É #T35 ºßÆü°å»ÕRED
++¤¶¤¤¤Ë¤Á¤Ë¤ó¤Æ¤¤ #T30 ºßÆüǧÄê
++¤¶¤¤¤ê¤ç¤¦¤Ö¤Ã¤»¤¤¤¤¤¿ #CN ºàÎÁʪÀ­ÈÄ
++¤¶¤¤¤ê¤ç¤¦¤Ö¤Ã¤»¤¤¤¤¤¿ #T35 ºàÎÁʪÀ­ÈÄ
++¤¶¤­ #T35 ¥¶¥­
++¤¶¤Ã¤·¤å¤»¤ó¤»¤¤ #JN »¨¼ïÀèÀ¸
++¤¶¤Ä¤À¤ó¤³¤Æ¤¤ #T35 »¨Ã̸ÇÄê
++¤¶¤Ö¤È¤ó¤¢¤é¤· #JN ¤¶¤Ö¤È¤ó¹Ó¤é¤·
++¤¶¤ï¤¶¤ï #T30 ¤¶¤ï¤¶¤ï
++¤· #M5 ¤·
++¤· #N5 ¤·
++¤· #N5 »Ô
++¤· #N5 »á
++¤· #R5 ¤·
++¤·¡¼¤Ë¤ã¤ó #JN ¤·¡¼¤Ë¤ã¤ó
++¤·¤¢¡¼¤ë #KK ¤·R
++¤·¤¢¡¼¤ë #T35 ¤·R
++¤·¤¢¤¢¤ë #T35 ¤·R
++¤·¤¢¤ï¤»¤µ¤ó¤× #JN ¹¬¤»»¶ÉÛ
++¤·¤£ #JN ¤·¤£
++¤·¤£ #T35 ¤·¤£
++¤·¤£¤¢ #JN ¤·¤£¤¢
++¤·¤£¤¤¤¤¤ó¤Á¤ç¤¦ #JN ¤·¤£°Ñ°÷Ĺ
++¤·¤£¤«¤Á¤ã¤ó #JN ¤·¤£¤«¤Á¤ã¤ó
++¤·¤£¤¸¤ç¤­¤ç¤¦¤¸¤å #JN ¤·¤£½õ¶µ¼ø
++¤·¤£¤¹¤ê¡¼¤Þ¤¿¡¼¤ê #JN ¤·¤££³ÏÀ°Ø
++¤·¤£¤¹¤ê¡¼¤Þ¤¿¡¼¤ê #JN ¤·¤££³ÂŽÏÂŽÀÂŽ°ÂŽØ
++¤·¤£¤¿¤± #JN ¤·¤£¤¿¤±
++¤·¤£¤¿¤± #JN ¤·¤£¤¿¤± 
++¤·¤£¤Ò¤á #JN ¤·¤£É±
++¤·¤£¤Ò¤í¤Õ¤ß #JN ¤·¤£ÍÎʸ
++¤·¤£¤Þ¤Þ #JN ¤·¤£¥Þ¥Þ
++¤·¤¤¤µ¤¢ #T35 ¥·¡¼¥µ¡¼
++¤·¤¤¤¿¤± #T35 ¤·¤¤¤¿¤±
++¤·¤¨¤ó #T35 »Ù±ç
++¤·¤ª #JN ±ö
++¤·¤ª #T35 ±ö
++¤·¤ª¤«¤ó #KK ¤·¤ª´Ú
++¤·¤ª¤«¤ó #T35 ¤·¤ª´Ú
++¤·¤ª¤¿ #T35 ±öÅÄ
++¤·¤ª¤Ë¤Á #T35 ±öÆü
++¤·¤«¤¯ #KK »Í³Ñ
++¤·¤«¤¯ #T35 ¢£
++¤·¤«¤¯¤·¤«¤¯ #T35 ¢¢¢¢
++¤·¤«¤¯¤·¤ó¤¸¤ã #T35 »Í³Ñ¿®¼Ô
++¤·¤¬¤µ¤¯ #T35 ¼¢²ìºî
++¤·¤­¤¬¤ß¤´¤é¤¡ #JN ¼°¿ÀÂŽºÂŽÞÂŽ×ÂŽ§
++¤·¤­¤¬¤ß¤Ê¤á¤¯¤¸ #JN ¼°¿ÀéÝê¡
++¤·¤±¤ó¤«¤ó #JN »î¸³´É
++¤·¤²¤ò #JNM ¥·¥²¥ò
++¤·¤²¤ò #T35 ¥·¥²¥ò
++¤·¤³¤¯ #CN »à¹ñ
++¤·¤³¤¯ #T35 »à¹ñ
++¤·¤³¤¿¤Û¤ï¤¢ #CJ ¥·¥³¥¿¥Û¥ï¡¼
++¤·¤¸¤ß #T35 ¥·¥¸¥ß
++¤·¤¹¤¿¡¼¤¶¡¼¤Ü¤ó #JN ¥·¥¹¥¿¡¼¥¶¡¼¥Ü¥ó
++¤·¤¹¤×¤ê #KK ¥·¥¹¥×¥ê
++¤·¤¹¤×¤ê #T35 ¥·¥¹¥×¥ê
++¤·¤¿¤¤¤¬¤¾¤¦ #T35 »àÂβèÁü
++¤·¤¿¤é¤Ð¤¯¤ó #JN ¤·¤¿¤é¤Ð·¯¡Ê²¾¡Ë
++¤·¤¿¤é¤Ð¤³¤¦¤Ä¤¦¤ä¤³¤¦¤³¤¦¤½¤¯¤Ð¤¹ #JN ¤·¤¿¤é¤Ð¸òÄÌÌë¹Ô¹â®¥Ð¥¹
++¤·¤¿¤é¤Ð¤Ê¡¼ #JN ¥·¥¿¥é¥Ð¥Ê¡¼
++¤·¤Á¤¸¤å¤¦¤¯ #T35 ¼·½Å¶ì
++¤·¤Á¤Ë¤ó¤Î¤µ¤Ö #T35 ¼·¿Í¤Î¥µ¥Ö
++¤·¤Ã¤¿¤« #T35 ÃΤ俤«
++¤·¤Ã¤¿¤«¤¯¤ó #T35 ÃΤ俤«·¯
++¤·¤Ã¤¿¤«¤Á¤å¤¦¤Ü¤¦ #T35 ÃΤ俤«¿ß˼
++¤·¤Ã¤Æ¤ë¤Ê¤é¤Ê¤¼¤·¤Æ¤­¤·¤Æ¤¯¤ì¤Ê¤«¤Ã¤¿¤Î¤Ç¤¹¤« #CJ ÃΤäƤë¤Ê¤é¡¢¤Ê¤¼»ØŦ¤·¤Æ¤¯¤ì¤Ê¤«¤Ã¤¿¤Î¤Ç¤¹¤«¡©
++¤·¤È¤Ë¤é¤Á¤ã¤¨¤ë #JN »ÈḀ̊˥é¥Á¥ã¥¨¥ë
++¤·¤Ê #CJ ¥·¥Ê
++¤·¤Ê¡¼ #JN ¥·¥Ê¡¼
++¤·¤Ê¤¢ #T35 ¥·¥Ê¡¼
++¤·¤Ê¤½¤Ð¤ä¤Î¤µ¤Î¤â¤Ê¡¼ #JN »ÙÆᶾÇþ²°¤Îº´Ìî¥â¥Ê¡¼
++¤·¤Ê¤Í¡¼¤è #JN »á¥Ê¥Í¡¼¥è
++¤·¤Ë¤¬¤ß¤È¤ê¤Ã¤×¤ª¤Ö¤Ç¤¹ #JN »à¿À¥È¥ê¥Ã¥×¥ª¥Ö¥Ç¥¹
++¤·¤Ë¤¬¤ß¤ß¤Ê¤é¤¤¤·¤§¤ê¡¼ #JN »à¿À¸«½¬¡¡¥·¥§¥ê¡¼
++¤·¤Ë¤¬¤ß¤ß¤Ê¤é¤¤¤·¤§¤ê¡¼ #JN »à¿À¸«½¬¥·¥§¥ê¡¼
++¤·¤Í #CJ ¤·¤Í
++¤·¤Í #CJ »Ô¤Í
++¤·¤Í #CJ »á¤Í
++¤·¤Í¡¼¤è #JN »á¥Í¡¼¥è
++¤·¤Í¤Ð¡¼ #JN ¥·¥Í¥Ð¡¼
++¤·¤Í¤Ð¡¼ #JN ¥Á¥Í¥Ð¡¼
++¤·¤Í¤è¤ª¤á¡¼¤é #JN »á¤Í¤è¤ª¤á¡¼¤é
++¤·¤Î¤Ö¤é¤¤¤ó #T35 Ǧ¥é¥¤¥ó
++¤·¤Ð¤¤¤Ì #T35 ¼Æ¸¤
++¤·¤Ð¤±¤ó #T35 ¼Æ¸¤
++¤·¤Ð¤¹ #T35 »à¥Ð¥¹
++¤·¤Ö¤µ¤ï¤µ¤ó #JN ½Âß·¤µ¤ó
++¤·¤Û¤½ #T35 ¤·¥Û¥½
++¤·¤Û¤ó #T35 ¤·¥Û¥ó
++¤·¤Ü¤¦¤¸¤å¤¦ #JN ¡Ê`)¢Ï(¡­¡Ë¡Ê¡­)§¥(`¡Ë
++¤·¤Ü¤¦¤¸¤å¤¦ #JN »éËýÃ
++¤·¤à¤â¤Ê¡¼ #JN ¥·¥à¡¦¥â¥Ê¡¼
++¤·¤á¤¸ #T35 (ŽߧÕÂŽß)ÂŽ¼ÂŽÒÂŽ¼ÂŽÞ
++¤·¤á¤Ä¤±¤Á¤«¤ó¤Ó¤¤¤à #T35 Äù¤áÉÕ¤±ÃÔ´Á¥Ó¡¼¥à
++¤·¤â¤Ä¤· #JN ¥·¥â¥Ä¥·
++¤·¤â¤È #T35 ¥·¥â¥È
++¤·¤â¤È #T35 ÂŽ¼ÂŽÓÂŽÄ
++¤·¤ã¤¡¤»¤ó¤è¤¦¤®¤³¤ó¤°¤È¤¬¤ó¤â¤Ê #JN ¥·¥ã¥¡ÀìÍÑ¥®¥³¥ó¥°¤È¥¬¥ó¥â¥Ê
++¤·¤ã¤¢¤»¤ó¤è¤¦¤¤¤¿ #CN ¥·¥ã¥¢ÀìÍÑÈÄ
++¤·¤ã¤¢¤»¤ó¤è¤¦¤¤¤¿ #T35 ¥·¥ã¥¢ÀìÍÑÈÄ
++¤·¤ã¤¤¤¢¤¸¤ó #T35 ¥·¥ã¥¤¥¢¿Í
++¤·¤ã¤¤¤ó #T35 ¥·¥ã¥¤¥ó
++¤·¤ã¤­¤¤¤ó #CJ (¡®ÂŽ¥¦ØÂŽ¥¡­)ÂŽ¼ÂŽ¬ÂŽ·ÂŽ°ÂŽÝ
++¤·¤ã¤­¤¤¤ó #CJ ¥·¥ã¥­¡¼¥ó
++¤·¤ã¤¯¤ì¤­¤ê¤·¤¿¤ó #T35 ¥·¥ã¥¯¥ì¥­¥ê¥·¥¿¥ó
++¤·¤ã¤·¤ç¤¦ #JN ¼Ö¾¸
++¤·¤ã¤Ð¤¤¤Î¤© #CJ ¥·¥ã¥Ð¥¤¥Î¥©
++¤·¤ã¤Ð¤¤¤Î¤© #CJ ÂŽ¼ÂŽ¬ÂŽÊÂŽÞÂŽ²ÂŽÉÂŽ«
++¤·¤ã¤Ð¤¾¤¦ #T35 ¥·¥ã¥ÐÁþ
++¤·¤ã¤Ù¤ë¤Ä¤¯¤¨ #JN ¤·¤ã¤Ù¤ë´ù
++¤·¤ã¤ó¤Æ¤£ #JN ¡ÊÂŽ¥¢ÏÂŽ¥¡ËÂŽ¼ÂŽ¬ÂŽÝÂŽÃÂŽ¨¢ö
++¤·¤ã¤ó¤Æ¤£ #JN ¥·¥ã¥ó¥Æ¥£
++¤·¤ä¤¢ #T35 ¤·§Á
++¤·¤å¤¦ #JN ¤·¤å¤¥
++¤·¤å¤¦¤«¤ó¤¢¤¹¤­¡¼ #KK ½µ´©¥¢¥¹¥­¡¼
++¤·¤å¤¦¤­¤ç¤¦ #T35 ½¡¶µ
++¤·¤å¤¦¤µ¤¤¤â¤é¤é¡¼ #JN ½¨ºÍ¥â¥é¥é¡¼
++¤·¤å¤¦¤È¤¦ #T30 ½ªÅß
++¤·¤å¤¦¤È¤¦ #T35 ½ªÅß
++¤·¤å¤¦¤Õ¤æ #T30 ½ªÅß
++¤·¤å¤¦¤Õ¤æ #T35 ½ªÅß
++¤·¤å¤¦¤é¤¯ #T35 ¤·¤å¤¦¤é¤¯¡Ê½°Íî¡Ë
++¤·¤å¤¦¤ê¤ç¤¦ #CJ --------½ªÎ»-------
++¤·¤å¤¦¤ê¤ç¤¦ #CJ ¡á¡á¡á¡á¡á¡á½ªÎ»¡á¡á¡á¡á¡á¡á
++¤·¤å¤¦¤ê¤ç¤¦ #T30 ½ªÎ»
++¤·¤å¤¦¤ê¤ç¤¦¤Á¤å¤¦¤Ü¤¦ #T35 ½ªÎ»¿ß˼
++¤·¤å¤· #T35 ¼ñ»Ý
++¤·¤å¤·¤å #JN ¤·¤å¤·¤å
++¤·¤å¤¸¤¤ #T35 ¼ç¼£°å
++¤·¤å¤Ã¤Á¤ç¤¦ #T30 ½ÐÄ¥
++¤·¤å¤Ô¤¤¤ó¤·¤ã #T35 ¥·¥å¥Ô¡¼¥ó¼Ô
++¤·¤ç¡¼¤â¤Ê¡¼ #JN ¥·¥ç¡¼¥â¥Ê¡¼
++¤·¤ç¡¼¤â¤Ê¡¼ #JN ¥·¥ç¡¼¥â¥Ê¡¼ 
++¤·¤ç¡¼¤æ¤Í¤¯¤¹¤È #KK ¥·¥ç¡¼¥æ¥Í¥¯¥¹¥È
++¤·¤ç¤¦¤«¤ó #T30 ¾¤´­
++¤·¤ç¤¦¤«¤ó #T30 ¾¤´Ô
++¤·¤ç¤¦¤¬¤É¤­¤å¤ó #T35 À¸ÕªDQN
++¤·¤ç¤¦¤°¤ó¤µ¤Þ #T35 ¾­·³ÍÍ
++¤·¤ç¤¦¤¸¤­¤¹¤Þ¤ó¤«¤Ã¤¿ #CJ ÀµÄ¾¡¢¥¹¥Þ¥ó¥«¥Ã¥¿
++¤·¤ç¤¦¤¸¤­¤¹¤Þ¤ó¤«¤Ã¤¿ #CJ ÀµÄ¾¡¢¥¹¥Þ¥ó¥«¥Ã¥¿¡ª
++¤·¤ç¤¦¤Á¤å¤¦ #T35 Àµ¿ß
++¤·¤ç¤¦¤Ü¤¦ #T35 ¾ÃËÉ
++¤·¤ç¤¦¤Ü¤¦¤¤¤¿ #T35 ¾ÃËÉÈÄ
++¤·¤ç¤¦¤æ¤»¤ó¤·¤­¤Ã¤³¤¦¤Þ¤½ #T35 ¾ßÌýÀï»Î¥­¥Ã¥³¡¼¥Þ¥½
++¤·¤ç¤¦¤æ¤»¤ó¤·¤­¤Ã¤³¤¦¤Þ¤ó #T35 ¾ßÌýÀï»Î¥­¥Ã¥³¡¼¥Þ¥½
++¤·¤ç¤¦¤æ¤Ê¤×¤­¤ó #T35 ¾ßÌý¥Ê¥×¥­¥ó
++¤·¤ç¤¦¤æ¤Í¤¯¤¹¤È #T35 ¥·¥ç¡¼¥æ¥Í¥¯¥¹¥È
++¤·¤ç¤¯¤Ë¤ó #T35 ¿¦¿Í
++¤·¤ç¤¯¤Ë¤ó¤µ¤ó #T35 ¿¦¿Í¤µ¤ó
++¤·¤ç¤¯¤Í¡¼¤è #JN ¿¦¥Í¡¼¥è
++¤·¤ç¤¯¤è¤¦¤â¤Ê¡¼ #JN ¿©ÍÑ¥â¥Ê¡¼
++¤·¤ç¤¸¤ç¤­¤é¡¼¤¢¤Ù¤ë #JN ½è½÷¥­¥é¡¼¥¢¥Ù¥ë
++¤·¤ç¤¿ #T35 ¥·¥ç¥¿
++¤·¤ç¤¿¤³¤ó #T35 ¥·¥ç¥¿¥³¥ó
++¤·¤ç¤À¤¤¤µ¤ó¤É¤¤¤Ã¤Á #JN ½éÂ奵¥ó¥É¥¤¥Ã¥Á
++¤·¤ç¤À¤¤¤·¤Í¤Ð¡¼ #JN ½éÂ奷¥Í¥Ð¡¼
++¤·¤ç¤À¤¤¤Þ¤¸¤ì¤¹¤Þ¤ó #JN ½éÂå¥Þ¥¸¥ì¥¹¥Þ¥ó
++¤·¤ç¤À¤¤¤â¤Ê¡¼ #JN ½éÂå¥â¥Ê¡¼
++¤·¤ç¤À¤¤¤â¤Í¡¼ #JN ½éÂå¥â¥Í¡¼
++¤·¤ç¤Ü #JN ¥·¥ç¥Ü
++¤·¤ç¤Ü #JN ÂŽ¼ÂŽ®ÂŽÎÂŽÞ
++¤·¤ç¤Ü¡¼¤ó #CJ ÂŽ¼ÂŽ®ÂŽÎÂŽÞÂŽ°ÂŽÝ
++¤·¤ç¤Ü¡¼¤ó #JN (¡­¡¦¦Ø¡¦`)¥·¥ç¥Ü¡¼¥ó
++¤·¤ç¤Ü¡¼¤ó #JN (¡­ÂŽ¥¦ØÂŽ¥`)ÂŽ¼ÂŽ®ÂŽÎÂŽÞÂŽ°ÂŽÝ
++¤·¤ç¤Ü¡¼¤ó #JN ¥·¥ç¥Ü-¥ó
++¤·¤ç¤Ü¡¼¤ó #JN ÂŽ¼ÂŽ®ÂŽÎÂŽÞ-ÂŽÝ
++¤·¤ç¤Ü¤ª¤ó #CJ ¥·¥ç¥Ü¡¼¥ó
++¤·¤ç¤Ü¤ª¤ó #CJ ÂŽ¼ÂŽ®ÂŽÎÂŽÞÂŽ°ÂŽÝ
++¤·¤ç¤Ü¤®¤³ #JN ÂŽ¼ÂŽ®ÂŽÎÂŽÞÂŽ·ÂŽÞÂŽº
++¤·¤ç¤é¤Í¡¼¤è #JN ¥·¥ç¥é¥Í¡¼¥è
++¤·¤è¤ª¤¦¤è #SUC ¥·¥è¡¼¥¦¥è
++¤·¤è¤ª¤¦¤è #SUC ÂŽ¼ÂŽÖÂŽ°ÂŽ³ÂŽÖ
++¤·¤é¤Ê¤¤¤ï #JN ¥·¥é¥Ê¥¤¥ï
++¤·¤é¤Í¡¼¤è #JN ¥·¥é¥Í¡¼¥è
++¤·¤é¤Í¤¨¤è #T35 ¥·¥é¥Í¡¼¥è
++¤·¤é¤Í¤Î¤ª¤í¤Á #JN ¥·¥é¥Í¥Î¥ª¥í¥Á
++¤·¤é¤Ò¡¼¤² #JN ¥·¥é¥Ò¡¼¥²
++¤·¤ê #T35 ¿¬
++¤·¤ê¤Ä #T35 ¿¬ÄÅ
++¤·¤ê¤È¤ê¤¤¤¿ #T35 ¤·¤ê¤È¤êÈÄ
++¤·¤ê¤È¤ê¤¶¤à¤é¤¤ #JN ¤·¤ê¤È¤ê»ø
++¤·¤ë #SUC ¤·¤ë
++¤·¤ë #SUC ½Á
++¤·¤í¤¦¤È¤Ë¤Ï¤ª¤¹¤¹¤á¤Ç¤­¤Ê¤¤ #CJ ÁǿͤˤϤªÁ¦¤á½ÐÍè¤Ê¤¤¡£
++¤·¤í¤Í¤³ #KK ÇòÇ­
++¤·¤í¤Í¤³ #T35 ÇòÇ­
++¤·¤í¤à¤Ä #T35 Çò¥à¥Ä
++¤·¤ó¤«¤á¤â¤Ê¡¼ #JN ¿¿¡¦¥«¥á¥â¥Ê¡¼¡¡
++¤·¤ó¤­¤í¤¯¤¿¤Ã¤»¤¤¤Ë¤ó¤Æ¤¤¤·¤ç¤¦ #JN ¿·µ­Ï¿Ã£À®Ç§Äê¾Ú
++¤·¤ó¤±¤¤¤»¤¤ #T35 ¿À·ÐÀ­
++¤·¤ó¤¶¤ó¤Ï¤«¤«¤º¤Ë¤Ï¤ó¤È¤·¤í¤à¤Ã¤Æ¤í #CJ ¿·»²¤Ï½ñ¤«¤º¤ËȾǯ£Ò£Ï£Í¤Ã¤Æ¤í
++¤·¤ó¤· #T35 ¿Â»Î
++¤·¤ó¤·¤å¤Î1¤µ¤ó #JN ¿·¼ï¤Î£±¤µ¤ó
++¤·¤ó¤¸¤Ä¤«¤¯¤É #T35 ¿¿¼Â³ÑÅÙ
++¤·¤ó¤¸¤ã #T35 ¿®¼Ô
++¤·¤ó¤¸¤å¤¯¤´¤¸¤å¤¦ #T35 ¿·½É50
++¤·¤ó¤¸¤å¤¯¤ß¤Ê¤ß¤°¤Á¤®¤å¤¦¤Ë¤å¤¦¤½¤Õ¤È¤¯¤ê¡¼¤à¤Î¤Í¤¨¤Á¤ã¤ó #JN ¿·½ÉÆî¸ý¡ÖµíÆý¥½¥Õ¥È¥¯¥ê¡¼¥à¡×¤Î¤Í¤¨¤Á¤ã¤ó
++¤·¤ó¤¹¤ì #T35 ¿·¥¹¥ì
++¤·¤ó¤¹¤ì¤ª¤á¤Ç¤È¤¦¤´¤¶¤¤¤Þ¡¼¤¹ #JN ¡À¡Ê¡°¢¦¡°¡Ë¡¿¿·¥¹¥ì¤ª¤á¤Ç¤È¤¦¤´¤¶¤¤¤Þ¡Ý¤¹¢ö
++¤·¤ó¤¹¤ì¤ª¤á¤Ç¤È¤¦¤´¤¶¤¤¤Þ¡¼¤¹ #JN ¿·¥¹¥ì¤ª¤á¤Ç¤È¤¦¤´¤¶¤¤¤Þ¡Ý¤¹
++¤·¤ó¤¹¤ì¤Ã¤É¤¹¤È¤Ã¤Ñ¡¼ #T35 ¿¿¡¦¥¹¥ì¥Ã¥É¥¹¥È¥Ã¥Ñ¡¼
++¤·¤ó¤¹¤ì¤Ã¤É¤¹¤È¤Ã¤Ñ¤¢ #T35 ¿¿¡¦¥¹¥ì¥Ã¥É¥¹¥È¥Ã¥Ñ¡¼
++¤·¤ó¤»¤¤ #PRE ¿¿À­
++¤·¤ó¤»¤¤ #T35 ¿¿À­
++¤·¤ó¤»¤¤¤Á¤å¤¦¤Ü¤¦ #T35 ¿¿À­¿ß˼
++¤·¤ó¤»¤ó #T35 ¿·Á¯
++¤·¤ó¤½¤³¤É¤¦¤Ç¤â¤¤ #KY ¿´Äì¤É¤¦¤Ç¤â¤¤
++¤·¤ó¤½¤³¤É¤¦¤Ç¤â¤¤ #KY ¿´Äì¤É¤¦¤Ç¤âÎÉ 
++¤·¤ó¤½¤³¤É¤¦¤Ç¤â¤è #KY ¿´Äì¤É¤¦¤Ç¤âÎÉ 
++¤·¤ó¤Á¤ç¤¦¤¹¤ì #KK ¿ÈĹ¥¹¥ì
++¤·¤ó¤Á¤ç¤¦¤¹¤ì #T35 ¿ÈĹ¥¹¥ì
++¤·¤ó¤É #T35 ¿¼ÅÙ
++¤·¤ó¤Ë¤Á¤ª¤¿ #T35 ¿·Æü¥ª¥¿
++¤·¤ó¤Í¡¼¤è¤ª¤Ö¤Í¡¼¤è #JN ¿¿¡¦¥Í¡¼¥è¡¦¥ª¥Ö¡¦¥Í¡¼¥è
++¤¸¡¼ #T35 £Ç
++¤¸¡¼¤¨¤à #T35 £Ç£Í
++¤¸¡¼¤µ¤¯¤È¤¸¤§¡¼¤ó #JN Gºî¤È¥¸¥§¡¼¥ó
++¤¸¡¼¤µ¤¯¤È¤¸¤§¡¼¤ó #JN Gºî¤È¥¸¥§¡¼¥ó¡ÊñÂΤÀ¤È²¿¤À¤«È½¤é¤Ê¤¤¤Î¤Ç£²É¤ÂŽ¾ÂŽ¯ÂŽÄ¡Ë 
++¤¸¡¼¤µ¤¯¤È¤¸¤§¡¼¤ó #JN ¡Ê¡¦¢Ï¡¦¡Ë¡¡¡Ê¡¦¢Ï¡¦¢é¢é
++¤¸¤£ #JN ¤¸¤£
++¤¸¤¤¤³ #T35 ¼«°Ö¸Å
++¤¸¤§¤¤¤¦¤è¤¯ #T35 J±¦Íã
++¤¸¤§¤¤¤Ó¤¤¤Ó¤¤¤¨¤¹ #T35 JBBS
++¤¸¤§¤Î¤µ¤¤¤É¤«¤Ã¤¿¡¼ #JN ¥¸¥§¥Î¥µ¥¤¥É¥«¥Ã¥¿¡¼
++¤¸¤§¤ó¤È¤ë¤â¤Ê #JN ¥¸¥§¥ó¥È¥ë¥â¥Ê
++¤¸¤§¤ó¤È¤ë¤â¤é¤é¡¼¤È¤®¤³ #JN ¥¸¥§¥ó¥È¥ë¥â¥é¥é¡¼¤È¥®¥³
++¤¸¤¨¤¤¤«¤ó¤¨¤é¤¤ #CJ ¥¸¥¨¥¤¥«¥ó¥¨¥é¥¤
++¤¸¤¨¤¤¤«¤ó¤¨¤é¤¤ #CJ ÂŽ¼ÂŽÞÂŽ´ÂŽ²ÂŽ¶ÂŽÝÂŽ´ÂŽ×ÂŽ²
++¤¸¤ª #KK ¥¸¥ª
++¤¸¤ª #KK ±ö
++¤¸¤ª #T35 ¥¸¥ª
++¤¸¤ª #T35 ±ö
++¤¸¤¯¤¦¤Þ¤ª¤¦ #JN »þ¶õËⲦ
++¤¸¤²¤ó #JN ¼¡¸µ
++¤¸¤´¤¦¤¸¤È¤¯ #JN (¡­¢Ï¡®)ÂŽ¼ÂŽÞÂŽºÂŽÞÂŽ³ÂŽ¼ÂŽÞÂŽÄÂŽ°ÂŽ¸
++¤¸¤´¤¦¤¸¤È¤¯ #JN ¥¸¥´¥¦¥¸¥È¥¯
++¤¸¤´¤¯¤Î¤´¤¦¤« #JN ÃϹö¤Î¶È²Ð
++¤¸¤µ¤¯¤¸¤¨¡¼¤ó #JN ¥¸¥µ¥¯¥¸¥¨¡¼¥ó
++¤¸¤µ¤¯¤¸¤¨¤ó #JN (ÂŽ¥¢ÏÂŽ¥)ÂŽ¼ÂŽÞÂŽ»ÂŽ¸ÂŽ¼ÂŽÞÂŽ´ÂŽ°ÂŽÝ
++¤¸¤µ¤¯¤¸¤¨¤ó #JN ¡Î¡Ê¡¦¢Ï¡¦¡Ë¡Ï
++¤¸¤µ¤¯¤¸¤¨¤ó #JN ¥¸¥µ¥¯¥¸¥¨¥ó
++¤¸¤µ¤¯¤¸¤¨¤ó #JN ¥¸¥µ¥¯¥¸±ß
++¤¸¤µ¤¯¤¸¤¨¤ó #JN ÂŽµÂŽÆÂŽ°ÂŽÁÂŽ¬ÂŽÝ(*¡¦¢Ï¡¦*)ÂŽ´ÂŽ¯ÂŽÁÂŽ°!!
++¤¸¤µ¤¯¤¸¤¨¤ó #T30 QQQQ
++¤¸¤µ¤¯¤¸¤¨¤ó #T30 ¼«ºî¼«±é
++¤¸¤µ¤¯¤¸¤¨¤ó #T35 ¥¸¥µ¥¯¥¸¥¨¥ó
++¤¸¤µ¤¯¤¸¤¨¤ó #T35 ¼«ºî¼«±é
++¤¸¤µ¤¯¤¸¤»¤ó #JN ¡Ê¡¦À顦¡Ë
++¤¸¤µ¤¯¤¸¤»¤ó #JN ¥¸¥µ¥¯¥¸¥»¥ó
++¤¸¤µ¤¯¤¸¤»¤ó #JN ¼Þ»¸¼Þ¾Ý
++¤¸¤µ¤¯¤¸¤»¤ó #JN ÂŽ¼ÂŽÞÂŽ»ÂŽ¸ÂŽ¼ÂŽÞÂŽ¾ÂŽÝ
++¤¸¤µ¤Ä¤¸¤¨¤ó #JN ¡Ê-»á-¡Ë
++¤¸¤µ¤Ä¤¸¤¨¤ó #JN ¥¸¥µ¥Ä¥¸¥¨¥ó
++¤¸¤µ¤Ä¤¸¤¨¤ó #JN ¼Þ»Â¼Þ´Ý
++¤¸¤µ¤Ä¤¸¤¨¤ó #JN ÂŽ¼ÂŽÞÂŽ»ÂŽÂÂŽ¼ÂŽÞÂŽ´ÂŽÝ
++¤¸¤·¤ó¤»¤¤¤È #JN ÃÏ¿ÌÀ¸ÅÌ
++¤¸¤·¤ó¤À #CJ ¼«¿®¤À¡ª¡ª¡ª¡ª
++¤¸¤·¤ó¤À #CJ ÃϿ̤À¡ª¡ª¡ª¡ª
++¤¸¤»¤¤¤Ê¤É¤­¤«¤Ê¤¤¤Ã #CJ ¼«À©¤Ê¤ÉÍø¤«¤Ê¤¤¤Ã
++¤¸¤Á¤¹¤ì #T35 ¼«¼£¥¹¥ì
++¤¸¤Á¤Á¤å¤¦ #T35 ¼«¼£¿ß
++¤¸¤Á¤ó¤µ¤¤ #T35 ÃÏÄú×
++¤¸¤Ã¤­¤ç¤¦¤¹¤ì #T35 ¼Â¶·¥¹¥ì
++¤¸¤Ã¤Ñ¤Ò¤È¤«¤ê¤² #JN ¥¸¥Ã¥Ñ¥Ò¥È¥«¥ê¥²
++¤¸¤Ä¤ï¤ò¤«¤¯¤Ê¤È¤¢¤ì¤Û¤É #CJ ¼ÂÏäò½ñ¤¯¤Ê¤È¤¢¤ì¤Û¤É¡Ä
++¤¸¤É¤¦¤ª¤¦¤À¤½¤¦¤Á #T35 ¼«Æ°²¥ÂÇÁõÃÖ
++¤¸¤Ï¤¢¤É #T35 ¥¸¥Ï¡¼¥É
++¤¸¤Ð¤¯ #T35 ¼«Çú
++¤¸¤Ò¤ã¤¯¤¸¤¨¤ó #JN ¡Ê¡¦É´¡¦¡Ë
++¤¸¤Ò¤ã¤¯¤¸¤¨¤ó #JN ¥¸¥Ò¥ã¥¯¥¸¥¨¥ó
++¤¸¤Ò¤ã¤¯¤¸¤¨¤ó #JN ÂŽ¼ÂŽÞÂŽËÂŽ¬ÂŽ¸ÂŽ¼ÂŽÞÂŽ´ÂŽÝ
++¤¸¤×¤·¡¼ #T35 ¥¸¥×¥·¡¼
++¤¸¤×¤·¤¤ #T35 ¥¸¥×¥·¡¼
++¤¸¤Ø¤¤¤Ý¤ó #KK ¼«ÊĤݤó
++¤¸¤Ø¤¤¤Ý¤ó #T35 ¼«ÊĤݤó
++¤¸¤ß¤ó¤È¤¦¤â¤Ê¡¼ #JN ¼«Ì±ÅÞ¥â¥Ê¡Ý
++¤¸¤ß¤ó¤È¤¦¤â¤Ê¡¼ #JN ¼«Ì±ÅÞ¥â¥Ê¡Ý 
++¤¸¤à #JN GM
++¤¸¤á¤ó¤ò¤ª¤è¤°¤®¤³ #JN ÃÏÌ̤ò±Ë¤°¥®¥³
++¤¸¤ã¡¼¤Ë¡¼ #JN ¥¸¥ã¡¼¥Ë¡¼
++¤¸¤ã¤¬¤â¤Ê¡¼ #JN ¤¸¤ã¤¬¥â¥Ê¡¼
++¤¸¤ã¤·¤ó #T35 ¼Ù¿À
++¤¸¤ã¤Ã¤«¤ë #T35 ¥¸¥ã¥Ã¥«¥ë
++¤¸¤ã¤Ã¤­¡¼ #JN ¥¸¥ã¥Ã¥­¡¼
++¤¸¤ã¤Ã¤­¡¼ #T35 ¥¸¥ã¥Ã¥­¡¼
++¤¸¤ã¤Ã¤­¤¤ #T35 ¥¸¥ã¥Ã¥­¡¼
++¤¸¤ã¤Ë¤¤ #T35 ¼Ø·»
++¤¸¤ã¤Ë¤¤ #T35 ¼Ù·»
++¤¸¤ã¤Ó #JN ÂŽ¼ÂŽÞÂŽ¬ÂŽËÂŽÞ
++¤¸¤ã¤Þ¤µ¤­ #T35 ¼ÙËâºê
++¤¸¤ã¤ß¤í¤¯¤¤ #JN ¥¸¥ã¥ß¥í¥¯¥¤
++¤¸¤ã¤ë #T35 JA¥ÎL
++¤¸¤ã¤ó¤¬¤ê¤¢¤ó¤Ï¤à¤¹¤¿¡¼ #JN ¥¸¥ã¥ó¥¬¥ê¥¢¥ó¥Ï¥à¥¹¥¿¡¼
++¤¸¤ã¤ó¤¯¤¯¤é¤Ã¤«¡¼¤¯¤é¤Ã¤·¤ã¡¼ #JN ¥¸¥ã¥ó¥¯¡¦¥¯¥é¥Ã¥«¡¼¡¦¥¯¥é¥Ã¥·¥ã¡¼
++¤¸¤ã¤ó¤°¤ë¤Ý¤±¤Ã¤È¤Î¤Á¤Á¤Ï¤Õ¤¸¤­¤»¤­ #CJ ¥¸¥ã¥ó¥°¥ë¥Ý¥±¥Ã¥È¤ÎÉã¤Ï¥Õ¥¸¥­¥»¥­
++¤¸¤å¤¦¤·¤ç¤¯ #JN ½»¿¦
++¤¸¤å¤¦¤·¤ç¤¯ #T35 ½»¿¦
++¤¸¤å¤¦¤Ê¤Ê¤¹¤¯¤ê¤×¤È #T35 17¥¹¥¯¥ê¥×¥È
++¤¸¤å¤¦¤Ë¤ó #T35 ½»¿Í
++¤¸¤å¤¦¤Ï¤Á¤¸¤Ë¤¸¤å¤¦¤¸¤â¤ó¤À¤¤ #T35 18»þ¡¦20»þÌäÂê
++¤¸¤å¤¦¤Õ¤¯¤¹¤ì #T35 ½ÅÊ£¥¹¥ì
++¤¸¤å¤¦¤Õ¤¯¤¹¤ì¤Ã¤É #T35 ½ÅÊ£¥¹¥ì¥É
++¤¸¤å¤¦¤Þ¤ó¤¨¤ó #JN ­ª¡¡
++¤¸¤å¤¦¤Þ¤ó¤¨¤ó #JN ½½Ëü±ß
++¤¸¤å¤¦¤ß¤ó #T35 ½»Ì±
++¤¸¤å¤¦¤è¤ó #JN £±£´
++¤¸¤å¤«¤¤ #CN ¼ù³¤
++¤¸¤å¤«¤¤ #T35 ¼ù³¤
++¤¸¤å¤Æ¡¼¤à #JN ¥¸¥å¥Æ¡¼¥à
++¤¸¤å¤ó¤«¤¤ #T30 ½ä²ó
++¤¸¤å¤ó¤­¤ó¤¤¤¿ #CN ½ã¶âÈÄ
++¤¸¤å¤ó¤­¤ó¤¤¤¿ #T35 ½ã¶âÈÄ
++¤¸¤æ¤¦¤ò¤ß¤®¤Æ¤Ë¤¢¤¤¤Ê¤é¤Ò¤À¤ê¤Æ¤Ë #JN ¥¸¥æ¥¦¥ò¥ß¥®¥Æ¥Ë¥¢¥¤¥Ê¥é¥Ò¥À¥ê¥Æ¥Ë
++¤¸¤æ¤¦¤ò¤ß¤®¤Æ¤Ë¤¢¤¤¤Ê¤é¤Ò¤À¤ê¤Æ¤Ë #JN ¼ÞÕ³¦Ð·ÞÃƱ²Å×ËÀÞØÃÆ
++¤¸¤æ¤¦¤ò¤ß¤®¤Æ¤Ë¤¢¤¤¤Ê¤é¤Ò¤À¤ê¤Æ¤Ë #JN ÂŽ¼ÂŽÞÂŽÕÂŽ³ÂŽ¦ÂŽÐÂŽ·ÂŽÞÂŽÃÂŽÆÂŽ±ÂŽ²ÂŽÅÂŽ×ÂŽËÂŽÀÂŽÞÂŽØÂŽÃÂŽÆ
++¤¸¤ç¤¤¤Ã¤Æ #KS JOY¤Ã¤Æ
++¤¸¤ç¤¦¤­¤ª¤¦ #JN ¾øµ¤²¦
++¤¸¤ç¤¦¤Á¤å¤¦ #T30 ¾ïÃó
++¤¸¤ç¤¦¤È¤¦¤¸¤ç¤æ¤¦ #T35 ¾åÅù½÷Í¥
++¤¸¤ç¤¦¤È¤Á¤å¤¦ #T35 ¾ùÅÏ¿ß
++¤¸¤ç¤¦¤ì¤ó #T35 ¾ïÏ¢
++¤¸¤ç¤»¤Õ¤È¤¢¤Ö¤É¤¥¤ë #JN ¥¸¥ç¥»¥Õ¤È¥¢¥ô¥É¥¥¥ë
++¤¸¤ç¤Æ¤¤ #T35 ½÷Äë
++¤¸¤ç¤Æ¤¤¤¨¤¹¤«¤ê¡¼¤Ì #JN ½÷Ä륨¥¹¥«¥ê¡¼¥Ì
++¤¸¤ç¤Ë¡¼ #JN ¥¸¥ç¥Ë¡¼
++¤¸¤ç¤ó #JN ¥¸¥ç¥ó
++¤¸¤ç¤ó #T35 ¥¸¥ç¥ó
++¤¸¤ç¤ó¤¸¤ç #JN ¥¸¥ç¥ó¥¸¥ç
++¤¸¤ç¤ó¤Õ¡¼¤ó #JN ¥¸¥ç¥ó¡¦¥Õ¡¼¥ó
++¤¸¤é¤¤ #T35 ÃÏÍë
++¤¸¤é¤¤¤²¤ó¤·¤ç¤ê¤·¤ã #JN ÃÏÍ븶½èÍý¼Ö
++¤¸¤é¤Í¡¼¤è #JN ¥¸¥é¥Í¡¼¥è
++¤¸¤ì¤¹ #T30 ¼«¥ì¥¹
++¤¸¤ó #SUC ¿Ð
++¤¸¤ó¤¸¤ã¡¼ #JN ¥¸¥ó¥¸¥ã¡¼
++¤¸¤ó¤Ë¤¯ #T35 ¿ÍÆù
++¤¸¤ó¤Ë¤¯ #T35 ¿ÍÆù»Ô¾ì
++¤¸¤ó¤Ë¤¯¤¤¤Á¤Ð #T35 ¿ÍÆù
++¤¸¤ó¤Ë¤¯¤¤¤Á¤Ð #T35 ¿ÍÆù»Ô¾ì
++¤¸¤ó¤ß¤ó¤°¤ó¤°¤ó¤«¤ó #JN ¿Í̱·³·³´±
++¤¸¤ó¤á¤ó¤´¤­¤Ö¤ê¤Ã¤Ä #JN ¿ÍÌÌ¥´¥­¥Ö¥ê¥Ã¥Ä
++¤¹¡¼¤Ñ¡¼¤´¤ê¤ª #JN ¥¹¡¼¥Ñ¡¼¥´¥ê¥ª
++¤¹¡¼¤Ñ¡¼¤â¤Ê¤®¤³¤¿¤¤¤»¤ó #JN ¥¹¡¼¥Ñ¡¼¥â¥Ê¥®¥³ÂçÀï
++¤¹¡¼¤Ñ¡¼¤ê¤¢¤ë¤Á¤å¤¦¤Ü¤¦ #T35 ¥¹¡¼¥Ñ¡¼¥ê¥¢¥ë¿ß˼
++¤¹¤¤¤»¤ó¤«¤ó¤¹¤ì #KK ¿åÀö´É¥¹¥ì
++¤¹¤¤¤»¤ó¤«¤ó¤¹¤ì #T35 ¿åÀö´É¥¹¥ì
++¤¹¤¤¤½¤¦ #T35 ¿åÁå
++¤¹¤¤¤¿¤£¤ç¤¥ #JN µÛ¤¤¤¿¤£¤ç¤¥¡¡
++¤¹¤¤¤¿¤¤¤è¤¦ #JN µÛ¤¤¤¿¤£¤ç¤¥¡¡
++¤¹¤¦¤Ñ¤¢¤Î¤¦¡«¤¡ #T35 ¥¹¡¼¥Ñ¡¼¥Î¥ô¥¡
++¤¹¤¦¤Ñ¤¢¤Ï¤«¤¢ #T35 ¥¹¡¼¥Ñ¡¼¥Ï¥«¡¼
++¤¹¤¦¤Ñ¤¢¤ê¤¢¤ë¤Á¤å¤¦¤Ü¤¦ #T35 ¥¹¡¼¥Ñ¡¼¥ê¥¢¥ë¿ß˼
++¤¹¤¦¤â¤¸¤â¤¸¤º¤Ä¤Ä¤¯¤Ã¤Æ¤Õ¤ä¤·¤¿¤¢¤¹¤­¡¼¤¢¡¼¤È #JN ¿ôʸ»ú¤º¤ÄÁý¤ä¤·¤Æºî¤Ã¤¿£Á£Á
++¤¹¤¨¤Ã¤³ #JN Ëö¤Ã»Ò
++¤¹¤¨¤Ã¤³ #T35 Ëö¤Ã»Ò
++¤¹¤« #T35 ¿Ü²Ã
++¤¹¤«¤¤¤é¡¼¤¯¤¼¤ó¤Ö #CJ ¥¹¥«¥¤¥é¡¼¥¯Á´Éô
++¤¹¤«¤é¤¢¤Ï #T35 ¥¹¥«¥é¡¼ÇÈ
++¤¹¤® #SUC ¿ù
++¤¹¤¯¤¦¤§¤¢ #T35 ¢£
++¤¹¤¯¤¦¤§¤¢¤Û¤ó¤·¤ã #JN ¥¹¥¯¥¦¥§¥¢ËܼÒ
++¤¹¤¯¤½¤×¤È #T35 ¥¹¥¯¥½¥×¥È
++¤¹¤¯¤Ä #T35 ¤¹¤¯¤Ä
++¤¹¤¯¤ê¤×¤È #T35 ¥¹¥¯¥ê¥×¥È
++¤¹¤´¤Þ¤¸¤¤ #CJ ¤¹¤´¤Þ¤¸¤¤
++¤¹¤¶¤±¤ë¤Ê #CJ ¤¹¤¶¤±¤ë¤Ê¡ª
++¤¹¤¹¤º #T35 ¥¹¥¹¥º
++¤¹¤º¤­¤à¤Í¤ª¤Ç¤·¤¿ #JN ¡Ê¡¦¢Ï¡¦¡ËÎëÌÚ½¡ÃËÂŽÃÂŽÞÂŽ¼ÂŽÀ
++¤¹¤º¤­¤à¤Í¤ª¤Ç¤·¤¿ #JN ÎëÌÚ½¡Ã˥ǥ·¥¿
++¤¹¤º¤­¤à¤Í¤ª¤Ç¤·¤¿ #JN ÎëÌÚ½¡ÃËÂŽÃÂŽÞÂŽ¼ÂŽÀ
++¤¹¤¿¡¼¤Þ¤ó #JN ¥¹¥¿¡¼¥Þ¥ó
++¤¹¤¿¤¸¤ª¤Ë¤Á¤ã¤ó¤Í¤ë¤Ï¤¸¤Þ¤ë¤è #JN ¥¹¥¿¥¸¥ª2ch»Ï¤Þ¤ë¤è¢ö
++¤¹¤Á¤º #JN ÁÇÃÏ¿Þ
++¤¹¤Á¤º #T35 ÁÇÃÏ¿Þ
++¤¹¤Ã¤´¤¯¤«¤ï¤¤¤¤¤â¤Ê¡¼ #JN ¡ù¤¹¤Ã¤´¤¯¡ù¤«¤ï¤¤¤¤(^o^)¥â¥Ê¡¼
++¤¹¤Ã¤É¤ì #JN ¡Ê¡¦¢Ï¡¦¡ËÂŽ½ÂŽ¯ÂŽÄÂŽÞÂŽÚ!
++¤¹¤Ã¤É¤ì #JN ¥¹¥Ã¥É¥ì
++¤¹¤Ã¤É¤ì #JN ÂŽ½ÂŽ¯ÂŽÄÂŽÞÂŽÚ
++¤¹¤Ã¤É¤ì #T35 ¥¹¥Ã¥É¥ì
++¤¹¤Æ¤­¤¿¤¤¤à #T35 ¥¹¥Æ¥­¥¿¥¤¥à
++¤¹¤Æ¤Ï¤ó #T35 ¼Î¤Æ¥Ï¥ó
++¤¹¤È¡¼¤«¤á¤³ #T35 ¥¹¥È¡¼¥«¥á¥³
++¤¹¤È¤¦¤«¤á¤³ #T35 ¥¹¥È¡¼¥«¥á¥³
++¤¹¤È¤ê¤Ã¤× #T35 Áǥȥê¥Ã¥×
++¤¹¤Ê¤¤¤× #T30 ¥¹¥Ê¥¤¥×
++¤¹¤Ê¤«¤±¤Ð¤Ð¤¢ #JN º½¤«¤±ÇÌ
++¤¹¤Í¤«¤¸¤ê #T35 ¥¹¥Í¤«¤¸¤ê
++¤¹¤Î¡¼ #T35 £Ó£Î£Ï£×
++¤¹¤Î¤¦ #T35 SNOW
++¤¹¤Ñ #KS ¥¹¥Ñ
++¤¹¤Ñ¡¼¤¯¤â¤Ê¡¼ #JN ¥¹¥Ñ¡¼¥¯¥â¥Ê¡¼
++¤¹¤Ñ¤·¡¼¤Ü #T35 ¡Ê¡¦¢Ï¡¦¡Ë¥¹¥Ñ¥·¡¼¥Ü!!¡é 
++¤¹¤Ñ¤·¡¼¤Ü #T35 ¡Ê¡¦¢Ï¡¦¡ËÂŽ½ÂŽÊÂŽßÂŽ¼ÂŽ°ÂŽÎÂŽÞ!!¡é 
++¤¹¤Ñ¤·¡¼¤Ü #T35 ¥¹¥Ñ¥·¡¼¥Ü
++¤¹¤Ñ¤·¡¼¤Ü #T35 ÂŽ½ÂŽÊÂŽßÂŽ¼ÂŽ°ÂŽÎÂŽÞ
++¤¹¤Ñ¤·¡¼¤Ü¤³¤¦¤« #T35 ¥¹¥Ñ¥·¡¼¥Ü¸ú²Ì
++¤¹¤Ñ¤·¤¤¤Ü #T35 ¡Ê¡¦¢Ï¡¦¡ËÂŽ½ÂŽÊÂŽßÂŽ¼ÂŽ°ÂŽÎÂŽÞ!!¡é 
++¤¹¤Ñ¤·¤¤¤Ü #T35 ÂŽ½ÂŽÊÂŽßÂŽ¼ÂŽ°ÂŽÎÂŽÞ
++¤¹¤Ñ¤·¤¤¤Ü¤³¤¦¤« #T35 ¥¹¥Ñ¥·¡¼¥Ü¸ú²Ì
++¤¹¤Ñ¤Á¤å¤¦ #T35 ¥¹¥Ñ¿ß
++¤¹¤Ñ¤à #T30 ¥¹¥Ñ¥à
++¤¹¤Ñ¤à #T35 spam
++¤¹¤Ñ¤à #T35 ¥¹¥Ñ¥à
++¤¹¤Ñ¤ó #JN SPAN
++¤¹¤Ô¤Þ¤¹ #T35 ¥¹¥Ô¥Þ¥¹
++¤¹¤Õ¤£¤ó¤¯¤¹ #JN ¥¹¥Õ¥£¥ó¥¯¥¹¡¡
++¤¹¤Ö¤¿¤ó #T35 ¥¹¥Ö¥¿¥ó
++¤¹¤Ú¤é¤ó¤«¡¼ #KK ¥¹¥Ú¥é¥ó¥«¡¼
++¤¹¤Ú¤é¤ó¤«¡¼ #T35 ¥¹¥Ú¥é¥ó¥«¡¼
++¤¹¤Ú¤é¤ó¤«¤¢ #T35 ¥¹¥Ú¥é¥ó¥«¡¼
++¤¹¤Þ #JN ¿ÜËá
++¤¹¤Þ #T35 ¿ÜËá
++¤¹¤Þ¤½ #CJ ¥¹¥Þ¥½
++¤¹¤à¤é¤Ã¤È #T35 SMART
++¤¹¤à¤é¤Ã¤È #T35 £Ó£Í£Ò£Á£Ô
++¤¹¤è #JN ¥¹¥è
++¤¹¤é¤¤¤à #JN ¥¹¥é¥¤¥à
++¤¹¤ë¤Ã¤È¤Á¤ã¤ó #JN ¥¹¥ë¥Ã¥È¤Á¤ã¤ó
++¤¹¤ì #T35 ¥¹¥ì
++¤¹¤ì¤´¤Ð¤¯ #T30 ¥¹¥ì¸íÇú
++¤¹¤ì¤µ¤¯¤¸¤ç #T30 ¥¹¥ìºï½ü
++¤¹¤ì¤¹¤È #T35 ¥¹¥ì¥¹¥È
++¤¹¤ì¤¿¤¤ #T35 ¥¹¥ì¥¿¥¤
++¤¹¤ì¤Á¤¬¤¤ #T35 ¥¹¥ì°ã¤¤
++¤¹¤ì¤Ã¤É #T35 ¤¹¤ì¤Ã¤É
++¤¹¤ì¤Ã¤É #T35 ¥¹¥ì¥Ã¥É
++¤¹¤ì¤Ã¤É¤¢¤Ã¤·¤å¤¯ #T30 ¥¹¥ì¥Ã¥É°µ½Ì
++¤¹¤ì¤Ã¤É¤¢¤Ã¤·¤å¤¯ #T35 ¥¹¥ì¥Ã¥É°µ½Ì
++¤¹¤ì¤Ã¤É¤¤¤Á¤é¤ó #T35 ¥¹¥ì¥Ã¥É°ìÍ÷
++¤¹¤ì¤Ã¤É¤¹¤È¤Ã¤Ñ¡¼ #T35 ¥¹¥ì¥Ã¥É¥¹¥È¥Ã¥Ñ¡¼
++¤¹¤ì¤Ã¤É¤¹¤È¤Ã¤Ñ¡¼¤¹¤Æ¡¼¤·¤ç¤ó #JN ¥¹¥ì¥Ã¥É¥¹¥È¥Ã¥Ñ¡¼¥¹¥Æ¡¼¥·¥ç¥ó
++¤¹¤ì¤Ã¤É¤¹¤È¤Ã¤Ñ¤¢ #T35 ¥¹¥ì¥Ã¥É¥¹¥È¥Ã¥Ñ¡¼
++¤¹¤ì¤Ã¤É¤Ò¤ç¤¦¤«¤Ë¤ó¤Æ¤¤¤¤¤¤¤ó¤«¤¤ #JN ¥¹¥ì¥Ã¥Éɾ²ÁǧÄê°Ñ°÷²ñ
++¤¹¤ì¤Ã¤É¤Õ¤í¡¼¤È¤Û¤¦¤·¤­ #T35 ¥¹¥ì¥Ã¥É¥Õ¥í¡¼¥ÈÊý¼°
++¤¹¤ì¤Ã¤É¤Õ¤í¤¦¤È¤Û¤¦¤·¤­ #T35 ¥¹¥ì¥Ã¥É¥Õ¥í¡¼¥ÈÊý¼°
++¤¹¤ì¤Ã¤É¤ì¤¤¤× #T30 ¥¹¥ì¥Ã¥É¥ì¥¤¥×
++¤¹¤ì¤Ë¤ó¤Æ¤¤¤·¤ç¤¦ #JN ¥¹¥ìǧÄê¾Ú
++¤¹¤ì¤Ò¤ç¤¦¤«¤¸¤ç¤¦ #JN ¥¹¥ìɾ²Á¾î
++¤¹¤ì¤ò¤è¤´ #S5 ¥¹¥ì¤ò±ø
++¤¹¤ì¤ò¤è¤´¤¹ #CJ ¥¹¥ì¤ò±ø¤¹
++¤¹¤í¤Ã¤È¤ª¤Ü¤¨¤¿¤Æ¤Ç #CJ ¥¹¥í¥Ã¥È³Ð¤¨¤¿¤Æ¤Ç
++¤¹¤ó¤¹¤ó¤¹¤¦¤ó #CJ (¡¦¢Ï¡¦)ÂŽ½ÂŽÝÂŽ½ÂŽÝÂŽ½ÂŽ°ÂŽÝ¢ö
++¤¹¤ó¤¹¤ó¤¹¤¦¤ó #CJ ¥¹¥ó¥¹¥ó¥¹¡¼¥ó¢ö
++¤¹¤ó¤Þ¤½ #CJ ¤¹¤ó¤Þ¤½
++¤º¤´¤ª¤Þ¤° #JN ¥º¡¦¥´¥ª¥Þ¡¦¥°
++¤º¤µ¤®¤³ #JN ¥º¥¶¥®¥³
++¤º¤¶¤Ê¤Þ¤Ï¤²¤µ¤Þ #JN ¡Ê¥º¥¶¡Ë¥Ê¥Þ¥Ï¥²ÍÍ
++¤º¤é¤é¡¼ #JN ¥º¥é¥é¡¼
++¤º¤ê¤»¤½ #T35 ¥º¥ê¥»¥ó
++¤º¤ë¤¤¤ª¤ó¤Ê #KK ¤º¤ë¤¤½÷
++¤º¤ë¤¤¤ª¤ó¤Ê #T35 ¤º¤ë¤¤½÷
++¤º¤ì #T35 ¥º¥ì
++¤º¤ì¤¬¤¹¤¯¤Ê¤¤¤Î¤Ç¤·¤å¤¦¤»¤¤¤·¤Æ¤ª¤­¤Þ¤·¤¿ #JN ¥º¥ì¤¬¾®¤µ¤¤¤Î¤Ç½¤Àµ¤·¤Æ¤ª¤­¤Þ¤·¤¿¡£
++¤º¤ì¤¬¤¹¤¯¤Ê¤¤¤Î¤Ç¤·¤å¤¦¤»¤¤¤·¤Þ¤·¤¿ #JN ¥º¥ì¤¬¾¯¤Ê¤¤¤Î¤Ç½¤Àµ¤·¤Þ¤·¤¿
++¤º¤ì¤¬¤¹¤¯¤Ê¤¤¤Î¤Ç¤·¤å¤¦¤»¤¤¤·¤Þ¤¹ #JN ¥º¥ì¤¬¾¯¤Ê¤¤¤Î¤Ç½¤Àµ¤·¤Þ¤¹
++¤»¡¼¤é¤à¤ª¤¦¤³¤¯ #JN ¤»¡¼¤é¤à¤ª¤¦¤³¤¯
++¤»¤¤¤«¤¤ #T35 À­²ô
++¤»¤¤¤®¤³ #JN ¥»¥¤¥®¥³
++¤»¤¤¤®¤³ #JN ¥»¥¤¥®¥³ 
++¤»¤¤¤´ #JNM À¬¸ã
++¤»¤¤¤´¤¦ #JN À­¹ë
++¤»¤¤¤´¤¦ #T35 À­¹ë
++¤»¤¤¤·¤å¤ó #JN ÀĽÕ
++¤»¤¤¤·¤ó¤Æ¤­¤Ö¤é¤¯¤é #T35 Àº¿ÀŪ¥Ö¥é¥¯¥é
++¤»¤¤¤»¤ó¤·¤ç¤¯¤Ò¤ó¤â¤é¤Þ¤µ #JN À¸Á¯¿©ÉÊ¥â¥é¥Þ¥µ
++¤»¤¤¤½¤¦¤Á¤å¤¦ #T35 À¶ÁÝ¿ß
++¤»¤¤¤Á #T35 À»ÃÏ
++¤»¤¤¤È #JN À¸ÅÌ
++¤»¤¤¤È #JN À¸ÅÌ¡©
++¤»¤¤¤È2 #JN À¸ÅÌ£Ö£å£ò£²
++¤»¤¤¤È3 #JN À¸ÅÌ£Ö£å£ò£³
++¤»¤¤¤È¤¤¤é¤Í¡¼¤è #JN À¸ÅÌ¥¤¥é¥Í¡¼¥è
++¤»¤¤¤È¤¦¤· #JN À¸Å̵í
++¤»¤¤¤È¤«¤ª¤À¤± #JN (¡¨¡­§¥¡®)¡¿ÀèÀ¸¡ª¡¦¡¦¡¦¡¦
++¤»¤¤¤È¤«¤ª¤À¤± #JN À¸ÅÌ´é¤À¤±
++¤»¤¤¤È¤µ¤¤¤·¤ç¤¦ #JN À¸Å̺Ǿ®
++¤»¤¤¤È¤¸¤ª¤ó¤° #JN À¸ÅÌ¥¸¥ª¥ó¥°
++¤»¤¤¤È¤¸¤å¤¦¤í¤¯¤¯¤ó #JN À¸ÅÌ£±£¶·¯
++¤»¤¤¤È¤¹¤Õ¤£¤ó¤¯¤¹ #JN À¸ÅÌ¥¹¥Õ¥£¥ó¥¯¥¹
++¤»¤¤¤È¤º¤´¤ª¤Þ¤° #JN À¸ÅÌ¥º¡¦¥´¥ª¥Þ¡¦¥°
++¤»¤¤¤È¤À¤¤¤¤¤Á¤Õ¤Ã¤µ¡¼¤ë #JN À¸ÅÌÂè°ì¥Õ¥Ã¥µ¡¼¥ë
++¤»¤¤¤È¤À¤¤¤¤¤Á¤Õ¤Ã¤µ¡¼¤ë¤Ð¡¼¤¸¤ç¤ó2 #JN À¸ÅÌÂè°ì¥Õ¥Ã¥µ¡¼¥ëver£²
++¤»¤¤¤È¤À¤¤¤¤¤Á¤Õ¤Ã¤µ¡¼¤ë¤Ð¡¼¤¸¤ç¤ó3 #JN À¸ÅÌÂè°ì¥Õ¥Ã¥µ¡¼¥ëver£³
++¤»¤¤¤È¤Î¤Î #JN À¸Å̤ΤÎ
++¤»¤¤¤È¤Ï¤é¤Þ¤­¤Ð¡¼¤¸¤ç¤ó1 #JN À¸ÅÌÊ¢´¬¤­£Ö£å£ò£±
++¤»¤¤¤È¤Ï¤é¤Þ¤­¤Ð¡¼¤¸¤ç¤ó2 #JN À¸ÅÌÊ¢´¬¤­£Ö£å£ò£²
++¤»¤¤¤È¤Õ¡¼¤ó #JN À¸Å̤ա¼¤ó
++¤»¤¤¤È¤Õ¤µ¤Ö¤Ä #JN À¸Å̤դµ¤Ö¤Ä
++¤»¤¤¤È¤Ö¤Ä¤Ö¤Ä #JN À¸Å̤֤Ĥ֤Ä
++¤»¤¤¤È¤Ö¤Ä¤Ö¤Ä¤¸¤å¤¦¤í¤¯¤¯¤ó #JN À¸Å̤֤Ĥ֤ģ±£¶·¯
++¤»¤¤¤È¤Ö¤Ä¤Ö¤Ä¤É¤¦¤è #JN À¸Å̤֤Ĥ֤Ĥɤ¦¤è
++¤»¤¤¤È¤Ö¤Ä¤Ö¤Ä¤É¤¦¤è¤Ð¡¼¤¸¤ç¤ó2 #JN À¸Å̤֤Ĥ֤Ĥɤ¦¤è£Ö£å£ò£²
++¤»¤¤¤È¤à¤Ã¤¯ #JN À¸ÅÌ¥à¥Ã¥¯
++¤»¤¤¤È¤á¤¿¤é¡¼¤Ð¡¼¤¸¤ç¤ó1 #JN À¸Ḁ̊᥿¥é¡¼ver£±
++¤»¤¤¤È¤á¤¿¤é¡¼¤Ð¡¼¤¸¤ç¤ó2 #JN À¸Ḁ̊᥿¥é¡¼ver£²
++¤»¤¤¤È¤é¤Ç¤£¤ó #JN À¸ÅÌ¥é¥Ç¥£¥ó
++¤»¤¤¤È¤ì¤«¤à¤Á¤ã¤Ã¤«¤ß¤½¤Á¤ó¤Ï¤¦¤¹ #JN À¸Ḁ̊졦¤«¤à¤Á¤ã¤Ã¤«¤ß¤½ÄÁ¥Ï¥¦¥¹
++¤»¤¤¤È¤ó¡¼ #JN À¸Å̤ó¡Á¡ª¡©
++¤»¤¤¤ê¤å¤¦ #T35 À¶Âí
++¤»¤«¤¤¤»¤Õ¤¯¤ò¤¿¤¯¤é¤à¤â¤é¤é¡¼ #JN À¤³¦¡ÖÀ©¡×Éþ¤ò´ë¤à¥â¥é¥é¡¼
++¤»¤¬¤·¤ó¤¸¤ã #T35 ¥»¥¬¿®¼Ô
++¤»¤¬¤Ó¡¼ #T35 ¥»¥¬B
++¤»¤¬¤ï #T35 ¥»Èé
++¤»¤­¤¹¤¤ #KK ÀÑ¿å
++¤»¤­¤¹¤¤ #T35 ÀÑ¿å
++¤»¤­¤º¤¤¤Ï¤ó¤·¤ã¤ì¤¹ #T30 ÀÔ¿ñÈ¿¼Í¥ì¥¹
++¤»¤­¤º¤¤¤Ï¤ó¤·¤ã¤ì¤¹ #T35 ÀÔ¿ñÈ¿¼Í¥ì¥¹
++¤»¤¯¡¼¤¹ #CN ¥»¥¯¡¼¥¹
++¤»¤¯¡¼¤¹ #T30 ¥»¥¯¡¼¥¹
++¤»¤¯¡¼¤¹ #T35 ¥»¥¯¡¼¥¹
++¤»¤ß¤µ¤ó¤³¤ª¤¹ #T35 ¥»¥ß¤µ¤ó¥³¡¼¥¹
++¤»¤ë¤²¤¨¤à #T35 ¥»¥ë¥²¡¼¥à
++¤»¤ó #T35 1000
++¤»¤ó¤¤¤¯¤¿¤Ó¤Ë¤¤¤¿¤ò¤Æ¤ó¤Æ¤ó¤È¤¹¤ë¤¹¤ì¤Ã¤É #T35 1000¹Ô¤¯¤¿¤Ó¤ËÈĤòž¡¹¤È¤¹¤ë¥¹¥ì¥Ã¥É
++¤»¤ó¤¤¤Á #T35 1001
++¤»¤ó¤³¤¦¤·¤ã #JN Àè¸ø¼Ô
++¤»¤ó¤³¤¦¤·¤ã #JN Àè¹Ô¼Ô
++¤»¤ó¤³¤¦¤·¤ã #T35 Àè¹Ô¼Ô
++¤»¤ó¤·¤å¤¦¤¬¤Ã¤³¤¦ #T35 À콤³Ø¹»
++¤»¤ó¤¹¤¤¤«¤ó¤¹¤ì #T35 Àø¿å´Ï¥¹¥ì
++¤»¤ó¤»¤¤ #JN ÀèÀ¸
++¤»¤ó¤»¤¤¤¿¤¹¤±¤Æ #JN ÀèÀ¸¡ª½õ¤±¤Æ¡ª
++¤»¤ó¤»¤¤¤Õ¤µ¤Ö¤Ä #JN ÀèÀ¸¤Õ¤µ¤Ö¤Ä
++¤»¤ó¤»¤¤¤Ö¤Ä¤Ö¤Ä #JN ÀèÀ¸¤Ö¤Ä¤Ö¤Ä
++¤»¤ó¤½¤¦ #T35 1000Áè
++¤»¤ó¤Î¤¦¤·¤å¤¦¤«¤¤ #T35 ÀöǾ½¸²ñ
++¤»¤ó¤â¤ó¤¤¤¿ #T35 ÀìÌçÈÄ
++¤¼¤Ã¤È¤­ #JN £Ú´ú
++¤¼¤Ã¤È¤·¤­ #T35 £Ú¼°
++¤¼¤Ã¤È¤¿¤± #T35 £ÚÉð
++¤¼¤Ã¤È¤Á¤ã¤ó¤Í¤ë¤¦¤ó¤¨¤¤¤¸¤ó #JN Zch±¿±Ä¿Ø
++¤¼¤Õ¤¡¡¼¤¢¤ó¤Á¤ã¤ó #JN ¥¼¥Õ¥¡¡¼¤¢¤ó¤Á¤ã¤ó
++¤¼¤í #T35 0
++¤¼¤í¤ï¤ó #T35 Îí°í
++¤¼¤ó¤Ä¤¦ #T30 Á´ÄÌ
++¤¼¤ó¤Ä¤¦ #T35 Á´ÄÌ
++¤¼¤ó¤é #T35 Á´Íç
++¤¼¤ó¤é¤¿¤¤ #T35 Á´ÍçÂâ
++¤½¡¼¤¹ #T35 ¥½¡¼¥¹
++¤½¡¼¤¹¤Ï #CJ ¥½¡¼¥¹¤Ï¡©
++¤½¡¼¤Ç¤â¤Ê¤¤¤è #JN ¤½¡¼¤Ç¤â¤Ê¤¤¤è
++¤½¡¼¤Ê¤Î #JN ¥½¡¼¥Ê¥Î
++¤½¤¤¤¿ #CN ¤½ÈÄ
++¤½¤¤¤¿ #T35 ¤½ÈÄ
++¤½¤¦¤« #T35 Áز½
++¤½¤¦¤¯¤Ä #T35 Áã·¢
++¤½¤¦¤±¤¤ #KK Áá·Ä
++¤½¤¦¤±¤¤ #T35 Áá·Ä
++¤½¤¦¤±¤¤¤¸¤ç¤¦¤Á #T35 Áá·Ä¾åÃÒ
++¤½¤¦¤³ #T35 ÁÒ¸Ë
++¤½¤¦¤³¤¤¤­ #CJ ÁÒ¸ËÀ¤­
++¤½¤¦¤³¤¤¤­ #T35 ÁҸ˹Ԥ­
++¤½¤¦¤³¤¦ #JN Á⹿
++¤½¤¦¤³¤Ð¤ó #T35 ÁÒ¸ËÈÖ
++¤½¤¦¤´¤¦¤¹¤ì¤Ã¤É #T35 Áí¹ç¥¹¥ì¥Ã¥É
++¤½¤¦¤µ¤¤ #T35 ÁíºÛ
++¤½¤¦¤·¤ç¤¯ #T30 Áõ¾þ
++¤½¤¦¤¸¤ó #JN Áâ¿Î
++¤½¤¦¤¹ #T35 ¥½¡¼¥¹
++¤½¤¦¤Á¤ç¤¦¤ì¤¹ #T30 ÁáÄ«¥ì¥¹
++¤½¤¦¤Ç¤â¤Ê¤¤¤è #CJ ¤½¤¦¤Ç¤â¤Ê¤¤¤è
++¤½¤¦¤Ç¤â¤Ê¤¤¤è #JN ¤½¤¦¤Ç¤â¤Ê¤¤¤è
++¤½¤¦¤È¤¦ #T35 ÁíÅý
++¤½¤¦¤Ï¤¤¤«¤ó¤¶¤­ #CJ ¤½¤¦¤Ï¤¤¿Àºê
++¤½¤¦¤ê¤½¤¦¤ê¤ã¤¯ #T35 ÁÏÍøÁÏά
++¤½¤«¤¤ #T30 Á³«
++¤½¤¯¤· #T35 ¨»à
++¤½¤¯¤·¤¹¤ì #T35 ¨»à¥¹¥ì
++¤½¤¯¤·¤Ï¤ó¤Æ¤¤ #T35 ¨»àȽÄê
++¤½¤¯¤Û¤¦ #CJ ®Êó¡ª
++¤½¤¯¤ì¤¹ #T30 ¨¥ì¥¹
++¤½¤¯¤ì¤¹ #T35 ¨¥ì¥¹
++¤½¤Ë¡¼¤¿¤¤¤Þ¡¼ #T35 ¥½¥Ë¡¼¥¿¥¤¥Þ¡¼
++¤½¤Ë¤¤¤¿¤¤¤Þ¤¢ #T35 ¥½¥Ë¡¼¥¿¥¤¥Þ¡¼
++¤½¤Ì¤­¤å¤¦¤Ó¤ó #JN ¥¾¥ÌµÞÊØ
++¤½¤Î #JN ¤½¤Î
++¤½¤Î¤³ #JN ±ñ»Ò
++¤½¤Î¤Ä¤¯¤«¤¤¤·¤ã #T35 ¡Ö¤½¡×¤Î¤Ä¤¯²ñ¼Ò
++¤½¤Ð¤Ð¤Ð¡¼¤ó #JN ¥½¥Ð¥Ð¥Ð-¥ó!!!
++¤½¤Ð¤Ð¤Ð¡¼¤ó #JN ÂŽ¿ÂŽÊÂŽÞÂŽÊÂŽÞÂŽÊÂŽÞ-ÂŽÝ!!!
++¤½¤Ð¤Ð¤Ð¡¼¤ó #JN ÂŽ¿ÂŽÊÂŽÞÂŽÊÂŽÞÂŽÊÂŽÞÂŽ°ÂŽÝ!!!!
++¤½¤Ó¤¨¤È #JN ¥½¥Ó¥¨¥È
++¤½¤Õ¤Þ¤Ã¤× #JN ¥½¥Õ¥Þ¥Ã¥×¡¡
++¤½¤Ü¤¯¤Ê¤®¤â¡¼¤ó #CJ ÁÇËѤʤ®¤â¡¼¤ó
++¤½¤Þ¤ê¤ä¤¬¤¤¤¹¤é¤à¤Ë¤½¤Þ¤ê¤ä #CJ ¥½¥Þ¥ê¥ä¤¬¥¤¥¹¥é¥à¤Ë¤½¤Þ¤ê¤ä
++¤½¤é¤¤¤à #JN ¥½¥é¥¤¥à
++¤½¤é¤Ê¤¤¤ï #JN ¥½¥é¥Ê¥¤¥ï
++¤½¤é¤Í¡¼¤Ç¤è #JN ¥½¥é¥Í¡¼¥Ç¥è
++¤½¤é¤Í¡¼¤è #JN ¥½¥é¥Í¡¼¥è
++¤½¤é¤Í¡¼¤è¤«¤ó¤¤¤Ð¤ó #JN ¥½¥é¥Í¡¼¥è´Ê°×ÈÇ
++¤½¤é¤ß¤¿¤³¤È¤« #JN ¤½¤é¸«¤¿¤³¤È¤«
++¤½¤ê¤Ã¤É¤â¤Ê¡¼¤¯ #JN ¥½¥ê¥Ã¥É¡¦¥â¥Ê¡¼¥¯
++¤½¤ì¤¬¤Ê¤Ë¤« #JN ¥½¥ì¥¬¥Ê¡á¥Ë¥«
++¤½¤ó #JNS ¹
++¤½¤ó¤´¤¯¤¦ #T35 ¹¸ç¶õ
++¤½¤ó¤·¤Î¤Ï¤¿¤¸¤ë¤· #JN ¹»Ò¤Î´ú°õ
++¤½¤ó¤Ê¤Î¤·¤Ã¤Á¤ç¤ì¤® #JN ¤½¤ó¤Ê¤ÎÃΤåÁ¥ç¥ì¥®
++¤½¤ó¤Ê¤Ð¤Ê¤Ê¤®¤³ #JN ¤½¤ó¤Ê¥Ð¥Ê¥Ê¥®¥³
++¤½¤ó¤Þ¤µ¤è¤· #JN ¹ÀµµÁ
++¤¾¤¤¤É¤¤¤¿ #CN ¥¾¥¤¥ÉÈÄ
++¤¾¤¤¤É¤¤¤¿ #T35 ¥¾¥¤¥ÉÈÄ
++¤¾¤¹ #CJ ¥¾¥¹
++¤¾¤Ë¤Ã¤¯ #JN ¤¾¤Ë¤Ã¤¯
++¤¾¤Ë¤Ã¤¯¤À¤ó¤·¤ã¤¯ #JN ¤¾¤Ë¤Ã¤¯Ã˼ß
++¤¾¤Ë¤Ã¤¯¤À¤ó¤·¤ã¤¯¤¢¤ë¤Õ¤¡ #JN ¤¾¤Ë¤Ã¤¯Ã˼ߦÁ
++¤¾¤Ë¤Ã¤¯¤À¤ó¤·¤ã¤¯¤¦¡«¤£¤¯¤È¤ê¡¼ #JN ¤¾¤Ë¤Ã¤¯Ã˼ßV
++¤¾¤Ì #JN ¤¾¤Ì
++¤¾¤Ì #JN ¥¾¥Ì
++¤¾¤Ì #T35 ¤¾¤Ì
++¤¾¤Ì¡¼¤Ô¡¼ #JN ¥¾¥Ì¡¼¥Ô¡¼
++¤¾¤Ì¤¶¤á¤¤¤¿¤ó¤Æ¤¤ #JN ¤¾¤Ì¡¦¥¶¡¦ÌÂõÄå
++¤¾¤Ì¤·¤ã¤Á¤ç¤¦ #JN ¤¾¤Ì¼ÒĹ
++¤¾¤Ì¤Ã¤Æ¤ë #CJ ¤¾¤Ì¤Ã¤Æ¤ë
++¤¾¤Ì¤Ö¤· #T35 ¤¾¤ÌÉú
++¤¾¤Ì¤Þ¤·¤ó #JN ¤¾¤Ì¥Þ¥·¥ó
++¤¾¤Í #T35 ¤¾¤Í
++¤¾¤à #JN ¥¾¥à
++¤¾¤í¤Ð¤ó #T35 ¥¾¥í¥Ð¥ó
++¤¿ #K5 ¿æ
++¤¿ #KJ ¿æ
++¤¿¡¼¤ó #JN ÂŽÀÂŽ°ÂŽÝ
++¤¿¤¤ #JN Âä
++¤¿¤¤ #T35 Âä
++¤¿¤¤¡¼¤Û #CJ ¥¿¥¤¨¬¨¬¨¬¨¬||¦µ|(|¡­|§¥|`|)|¦µ||¨¬¨¬¨¬¨¬¥Û
++¤¿¤¤¡¼¤Û #CJ ¥¿¥¤¨¬¨¬¨¬¨¬¡Ã¡Ã¦µ¡Ã¡Ê¡Ã¡¬¡Ã¢Ï¡Ã¡¬¡Ã¡Ë¡Ã¦µ¡Ã¡Ã¨¬¨¬¨¬¨¬¥Û¡ª¡ª¡ª
++¤¿¤¤¡¼¤Û #CJ ÂŽÀÂŽ²¨¬¨¬¨¬¨¬||¦µ|(|ÂŽß|¢Ï|ÂŽß|)|¦µ||¨¬¨¬¨¬¨¬ÂŽÎ!!!
++¤¿¤¤¤­ #T35 Â絤
++¤¿¤¤¤·¤«¤ó #T35 Âç»È´Û
++¤¿¤¤¤·¤ç¤¦¤·¤ç¤¦¤ï¤®¤³ #JN ÂçÀµ¾¼Ïµ¼¸Å
++¤¿¤¤¤Á¤ç¤¦ #CJ ÂâĹ¡ª
++¤¿¤¤¤È¤ë¤Ð¤Ê¡¼ #T35 ¥¿¥¤¥È¥ë¥Ð¥Ê¡¼
++¤¿¤¤¤à #T35 TIME
++¤¿¤¤¤à¤Ñ¤é¤É¤Ã¤¯¤¹ #T35 ¥¿¥¤¥à¥Ñ¥é¥É¥Ã¥¯¥¹
++¤¿¤¤¤ï¤ó #T35 ¥¿¥¤¸¤
++¤¿¤«¤¬¤Ý¤ó¤µ¤ì¤É¤Ý¤ó #CJ ¤¿¤«¤¬¥Ý¥ó¤µ¤ì¤É¥Ý¥ó
++¤¿¤«¤µ¤­¤ß¤ï #JN ¹âºêÈþÏ 
++¤¿¤«¤µ¤ó #JNM ¥¿¥«¤µ¤ó
++¤¿¤«¤µ¤ó #T35 ¥¿¥«¤µ¤ó
++¤¿¤«¤·¤¯¤ó¤¸¤±¤ó #KK ¤¿¤«¤··¯»ö·ï
++¤¿¤«¤·¤¯¤ó¤¸¤±¤ó #T35 ¤¿¤«¤··¯»ö·ï
++¤¿¤«¤¿¤·¤ã¤Á¤ç¤¦ #JNS ¤¿¤«¤¿¼ÒĹ
++¤¿¤«¤¿¤·¤ã¤Á¤ç¤¦ #JNSUC ¤¿¤«¤¿¼ÒĹ
++¤¿¤«¤Ï¤·¤è¤· #T35 ¹â¶¶Í³
++¤¿¤«¤é¤®¤³ #JN ¥¿¥«¥é¥®¥³
++¤¿¤¯¤¢¤ó¤â¤Ê¡¼ #JN ¤¿¤¯¤¢¤ó¥â¥Ê¡¼
++¤¿¤¯¤­¤å¤¦ #T35 Âðµå
++¤¿¤°¤Á¤Ë¤Ã¤­ #T35 ÅĸýÆüµ­
++¤¿¤±¤·¤¯¤ó #JNM ¤¿¤±¤··¯
++¤¿¤±¤À¤­¤¾¤Ì #JN ÉðÅĵ³¤¾¤Ì
++¤¿¤±¤À¤­¤Ð #JN ÉðÅĵ³ÇÏ
++¤¿¤±¤À¤­¤Ð¤°¤ó¤À¤ó #T35 ÉðÅĵ³ÇÏ·³ÃÄ
++¤¿¤±¤Õ¤¸¤Î¤·¡¼¤¨¤à #JN ÉðÉٻΤΣãÍ
++¤¿¤³¤µ¤Ð #T35 tako»ª
++¤¿¤³¤Í¤³ #JN ¥¿¥³¤Í¤³
++¤¿¤³¤Í¤³ #JN ¥¿¥³¤Í¤³ 
++¤¿¤·¤í #JNS ÅÄÂå
++¤¿¤·¤í #T35 ÅÄÂå
++¤¿¤·¤í¤Ã¤¯ #KK ¥¿¥·¥í¥Ã¥¯
++¤¿¤·¤í¤Û¤¦ #T35 ÅÄÂåˤ
++¤¿¤·¤í¤Þ¤µ¤· #JN ÅÄÂå¤Þ¤µ¤· 
++¤¿¤·¤í¤Þ¤Ä¤ê #T35 ÅÄÂåº×¤ê
++¤¿¤¸¤å¤¦ #T30 ¿½Å
++¤¿¤¸¤å¤¦¤È¤¦¤³¤¦ #T30 ¿½ÅÅê¹Æ
++¤¿¤¹¤£¤í¤¹ #T35 ¥¿¥¹¥£¥í¥¹
++¤¿¤½¤¬¤ì #KK ïÈà
++¤¿¤½¤¬¤ì #T35 ïÈà
++¤¿¤½¤½¤­¡¼¤½ #CJ ¥¿¥½¥½¥­¡¼¥½
++¤¿¤½¤½¤­¡¼¤½ #CJ ÂŽÀÂŽ¿ÂŽ¿ÂŽ·ÂŽ°ÂŽ¿
++¤¿¤½¤½¤­¡¼¤½ #JN (ŽߢÏÂŽß)ÂŽÀÂŽ¿ÂŽ¿ÂŽ·ÂŽ°ÂŽ¿
++¤¿¤½¤½¤­¡¼¤½ #JN ¥¿¥½¥½¥­¡¼¥½ 
++¤¿¤½¤½¤­¡¼¤½ #JN ÂŽÀÂŽ¿ÂŽ¿ÂŽ·ÂŽ°ÂŽ¿ 
++¤¿¤¿ #K5r á
++¤¿¤¿¤­ #T35 ᤭
++¤¿¤¿¤¯ #K5r ᤯
++¤¿¤À¤­¤Á¤µ¤ó #JN ÃéµÈ¤µ¤ó
++¤¿¤À¤­¤Á¤µ¤ó #JN ÃéµÈ¤µ¤ó 
++¤¿¤À¤Î #T35 TDN
++¤¿¤À¤ó¤¯¤· #T35 ¿Ãʶú
++¤¿¤Ã¤­¤å¤¦ #T35 Âðµå
++¤¿¤Æ¤¢¤é¤· #T35 Ω¤Æ¹Ó¤é¤·
++¤¿¤Æ¤Ê¤ª¤· #T35 Ω¤Æľ¤·
++¤¿¤Æ¤Ë¤² #T30 Ω¤Æƨ¤²
++¤¿¤Æ¤è¤ß #T35 ½ÄÆɤß
++¤¿¤Ê¤« #JN ÅÄÃæ
++¤¿¤Ê¤« #JNS ÅÄÃæ
++¤¿¤Ê¤«¤Õ¤¡¤ó¤¿¤¸¤¤ #T35 ÅÄÃæ¥Õ¥¡¥ó¥¿¥¸¡¼
++¤¿¤Ê¤«¤â¤Ê¤ä #JN ÅÄÃæ¥â¥ÊÌé
++¤¿¤Ê¤Ð¤¿¤¨¤É¤¦¤í¤¦¤â¤Ê¡¼ #JN ¼·Í¼³¨¤É¤¦¤í¤¦¥â¥Ê¡¼
++¤¿¤Ë¤¶¤ï¤É¤¦¤Ö¤Ä¤Ó¤ç¤¦¤¤¤ó #T35 ë߷ưʪɱ¡
++¤¿¤Í #T35 ¼ï
++¤¿¤Í¤Á¤å¤¦ #T35 ¼ï¿ß
++¤¿¤Í¤Ê¤· #JN ¼ï̵¤·
++¤¿¤Í¤Ê¤· #T35 ¼ï̵¤·
++¤¿¤Ð #KK «
++¤¿¤Ð #T35 «
++¤¿¤Ð¤¸¤ç¤¦¤»¤ó #T35 «¾åÀþ
++¤¿¤Þ¤´ #T35 ¶Ì»Ò
++¤¿¤Þ¤Á¤ã¤ó #JN ¥¿¥Þ¤Á¤ã¤ó
++¤¿¤ß¤ä #KK ¥¿¥ß¥ä
++¤¿¤à¤é¤ê¤ç¤¦¤³ #JN Åļμ»Ò
++¤À¤á¤Ý #CJ ¡²|¡±|¡û
++¤À¤á¤Ý #CJ orz
++¤À¤á¤Ý #CJ _no
++¤¿¤â¤ê #JN ¥¿¥â¥ê
++¤¿¤é #KK í
++¤¿¤é #T35 í
++¤¿¤é¤³ #T35 ¥¿¥é¥³
++¤¿¤ê¤­¤Á¤ã¤ó #T35 ¾ÎϤÁ¤ã¤ó
++¤¿¤ê¤Ð¤ó #CN ¥¿¥êÈÄ
++¤¿¤ê¤Ð¤ó #T35 ¥¿¥êÈÄ
++¤¿¤ê¤Ð¤ó¤¿¤í¤¦ #T35 ¥¿¥ê¥Ð¥óÂÀϺ
++¤¿¤ë¤±¤¨ #T35 ¥¿¥ë¥±¡¼
++¤¿¤ì¤ß¤ß¤â¤Ê¡¼ #JN ¤¿¤ì¼ª¥â¥Ê¡¼
++¤¿¤í¤¦ #SUC ÂÀϺ
++¤¿¤í¤¦ #T35 ¡û¡ûÂÀϺ
++¤¿¤ï¤é #T35 TAWARA
++¤¿¤ó #SUC ¥¿¥ó
++¤¿¤ó #SUC ÂŽÀÂŽÝ
++¤¿¤ó¤­¤å¡¼ #CJ ¥¿¥ó¥­¥å¡¼
++¤¿¤ó¤­¤å¡¼ #CJ ÂŽÀÂŽÝÂŽ·ÂŽ­ÂŽ°
++¤¿¤ó¤­¤å¤¦ #CJ ¥¿¥ó¥­¥å¡¼
++¤¿¤ó¤­¤å¤¦ #CJ ÂŽÀÂŽÝÂŽ·ÂŽ­ÂŽ°
++¤¿¤ó¤½¤­¡¼¤ó #CJ (¡¦¢Ï¡¦)¥¿¥ó¥½¥­¡¼¥ó 
++¤¿¤ó¤½¤­¡¼¤ó #CJ (¡¦¢Ï¡¦)ÂŽÀÂŽÝÂŽ¿ÂŽ·ÂŽ°ÂŽÝ 
++¤¿¤ó¤½¤­¡¼¤ó #CJ (¡¬¢Ï¡¬)¥¿¥½¥½¥­¡¼¥½ 
++¤¿¤ó¤½¤­¡¼¤ó #CJ (ŽߢÏÂŽß)ÂŽÀÂŽ¿ÂŽ¿ÂŽ·ÂŽ°ÂŽ¿ 
++¤¿¤ó¤½¤­¡¼¤ó #CJ ¥¿¥ó¥½¥­¡¼¥ó 
++¤¿¤ó¤½¤­¡¼¤ó #CJ ÂŽÀÂŽÝÂŽ¿ÂŽ·ÂŽ°ÂŽÝ 
++¤¿¤ó¤½¤­¡¼¤ó #JN (¡¦¢Ï¡¦)ÂŽÀÂŽÝÂŽ¿ÂŽ·ÂŽ°ÂŽÝ
++¤¿¤ó¤½¤­¡¼¤ó #JN ¥¿¥ó¥½¥­¡¼¥ó 
++¤¿¤ó¤½¤­¡¼¤ó #JN ÀÝ¿·°Ý
++¤¿¤ó¤½¤­¡¼¤ó #JN ÂŽÀÂŽÝÂŽ¿ÂŽ·ÂŽ°ÂŽÝ 
++¤¿¤ó¤½¤¯¤ä¤¯¤¶ #JN û­ŽÔÂŽ¸ÂŽ»ÂŽÞ
++¤¿¤ó¤Ý¤Ý¤½¤ó¤· #JN ³÷¸ø±Ñº»Õ
++¤À¡¼¤ä¤¹ #JN ¥À¡¼¥ä¥¹
++¤À¡¼¤ä¤¹ #T35 ¥À¡¼¥ä¥¹
++¤À¡¼¤ä¤¹¤­¤Î¤³ #JN ¥À¡¼¥ä¥¹¥­¥Î¥³
++¤À¤¢¤ä¤¹ #JN ¥À¡¼¥ä¥¹
++¤À¤¤¤ª¤¦¤Ò¤µ¤Þ #T35 Â粦ÈÞÍÍ
++¤À¤¤¤«¤ó¤²¤ó #T35 Âç´Ô¸µ
++¤À¤¤¤µ¤¯ #JN Âçºî
++¤À¤¤¤·¤å¤ê¤ç¤¦¤­¤ó¤°¤¾¡¼¤Ì #JN Âç¼óÎÎ¥­¥ó¥°¥¾¡¼¥Ì
++¤À¤¤¤·¤ó¤«¤ó¤³¤ê¤ó¤º #JN Âç¿À´±¥³¥ê¥ó¥º
++¤À¤¤¤·¤ó¤«¤ó¤Æ¤Ê¡¼ #JN Âç¿À´±¥Æ¥Ê¡¼
++¤À¤¤¤·¤ó¤«¤ó¤â¤Ò¤ã #JN Âç¿À´±¥â¥Ò¥ã
++¤À¤¤¤»¤ó¤»¤¤ #T35 ÂçÀèÀ¸
++¤À¤¤¤È¤¦¤¢¤Æ¤¤¤³¤¯ #KK ÂçÅì°¡Äë¹ñ
++¤À¤¤¤È¤¦¤¢¤Æ¤¤¤³¤¯ #T35 ÂçÅì°¡Äë¹ñ
++¤À¤¤¤Ë¤Á¤å¤¦¤Ü¤¦¤¤¤¿ #T35 Âè2¿ß˼ÈÄ
++¤À¤¤¤Ë¤Á¤å¤¦¤Ü¤¦¤¤¤¿ #T35 Â裲¿ß˼ÈÄ
++¤À¤¤¤Ð¤¯¤Ï¤Ä #JN ÂçÇúȯ
++¤À¤¦¤½ #T30 ¥À¥¦¥½
++¤À¤¦¤½ #T35 ¥À¥¦¥½
++¤À¤¦¤ó #T30 ¥À¥¦¥½
++¤À¤¦¤ó #T35 ¥À¥¦¥½
++¤À¤¦¤ó #T35 ¥À¥¦¥ó
++¤À¤¬¤½¤ì¤¬¤¤¤¤ #CJ ¤À¤¬¤½¤ì¤¬¤¤¤¤
++¤À¤±¤É #SUC ¤À¤±¤É
++¤À¤±¤É¤Ê¤Ë¤«¤·¤Ä¤â¤ó¤¢¤ë #CJ ¤À¤±¤É¡¢²¿¤«¼ÁÌ䤢¤ë¡©
++¤À¤±¤Ï¤«¤ó¤Ù¤ó¤·¤Æ¤¯¤À¤µ¤¤ #CJ ¤À¤±¤Ï´ªÊÛ¤·¤Æ¤¯¤À¤µ¤¤
++¤À¤µ¤¤¤¿¤Þ #T35 ¥À¥µ¥¤¥¿¥Þ
++¤À¤¹¤Ù¤§¤À #JN ½Ð¤¹¤Ù¤§ÂÀ
++¤À¤¹¤ì #T35 ÂÌ¥¹¥ì
++¤À¤¹¤ì¤·¤å¤¦¤è¤¦¤¸¤ç #T35 ÂÌ¥¹¥ì¼ýÍƽê
++¤À¤»¡¼¤è #JN ¥À¥»¡¼¥è
++¤À¤½¤Ê #JN ¥À¥½¥Ê
++¤À¤Ã¤³¤Á¤å¤¦ #T35 ¤À¤Ã¤³¿ß
++¤À¤Ã¤È¤¤¤­ #CJ datÀ¤­
++¤À¤Ã¤È¤¤¤­¤µ¤æ¤ê #JN DATÀ¤­º´Í´Íý
++¤À¤Ã¤È¤ª¤Á #CJ datÍî¤Á
++¤À¤Ö¤ë¤¤¤«¤ä¤­¤½¤Ð #JN ¥À¥Ö¥ë¤¤¤«¾Æ¤­¤½¤Ð
++¤À¤Ö¤ë¤Þ¡¼¤Á #T35 £×£Í£Á£Ò£Ã£È
++¤À¤Þ¤·¤¹¤ì #T35 ñÙ¤·¥¹¥ì
++¤À¤Þ¤ì¤³¤¾¤¦ #JN ¥À¥Þ¥ì¥³¥¾¥¦
++¤À¤ß¤¢¤ó #T35 ¥À¥ß¥¢¥½
++¤À¤ß¤¢¤ó #T35 ¥À¥ß¥¢¥ó
++¤À¤ß¤¢¤ó #T35 ¥À¥ß¥ä¥½
++¤À¤à #JN ¢º¡Ê¡¦¦Ø¡¦¡Ë¢»
++¤À¤à #JN ÂÌ̵
++¤À¤à #T35 ÂÌÌ´
++¤À¤à #T35 ÂÌ̵
++¤À¤á¤«¡¼ #CJ ÂÌÌܤ«¡¼
++¤À¤á¤«¤¢ #CJ ÂÌÌܤ«¡¼
++¤À¤á¤¹¤ì¤Ã¤É¤«¤ó¤ê¤­¤³¤¦ #JN ÂÌÌÜÂŽ½ÂŽÚÂŽ¯ÂŽÄÂŽÞ´ÉÍýµ¡¹½
++¤À¤á¤Ê¤ä¤Ä¤Ï¤Ê¤Ë¤ò¤ä¤Ã¤Æ¤À¤á #CJ ¤À¤á¤Ê¤ä¤Ä¤Ï²¿¤ò¤ä¤Ã¤Æ¤âÂÌÌÜ
++¤À¤á¤Ê¤ä¤Ä¤Ï¤Ê¤Ë¤ò¤ä¤Ã¤Æ¤â¤À¤á #CJ ¤À¤á¤ÊÅۤϲ¿¤ò¤ä¤Ã¤Æ¤â¤À¤á
++¤À¤á¤Ê¤ä¤Ä¤Ï¤Ê¤Ë¤ò¤ä¤Ã¤Æ¤â¤À¤á #JN ¤À¤á¤ÊÅۤϲ¿¤ò¤ä¤Ã¤Æ¤â¤À¤á
++¤À¤á¤Ð¤³ #T35 ¥À¥áÈ¢
++¤À¤á¤Ü¤Ã¤¯¤¹ #T35 ¥À¥á¥Ü¥Ã¥¯¥¹
++¤À¤è¤â¤ó #T35 ¤À¤è¤â¤ó
++¤À¤ë¤Þ¤â¤Ê¡¼ #JN ¤À¤ë¤Þ¥â¥Ê¡¼
++¤À¤ë¤Þ¤â¤Ê¡¼ #JN ¤À¤ë¤Þ¥â¥Ê¡¼ 
++¤À¤ì¤¤¤ä¤Í¤ó #JN ÂÄÎî²°Ç°¡¡
++¤À¤ì¤¹ #T35 Ḁ̂쥹
++¤À¤ì¤â¤¤¤Ê¤¤¤¹¤ì¤Ò¤È¤ê¤Ü¤Ã¤Á #CJ ï¤â¤¤¤Ê¤¤¥¹¥ì¡£¤Ò¤È¤ê¤Ü¤Ã¤Á
++¤Á¡¼¤º¤±¡¼¤­ #JN ÂŽÁÂŽ°ÂŽ½ÂŽÞÂŽ¹ÂŽ°ÂŽ· 
++¤Á¡¼¤à¤Ë¤Á¤ã¤ó¤Í¤ë #KK ¥Á¡¼¥à£²¤Á¤ã¤ó¤Í¤ë
++¤Á¤£¤â¤Ê¡¼ #JN ¤Á¤£¥â¥Ê¡¼
++¤Á¤§¤­¤Ê #T35 ¥Á¥§¥­¥Ê
++¤Á¤§¤Á¤§¤ó #T35 ¥Á¥§¥Á¥§¥ó
++¤Á¤§¤Ã #JN ¡¥¡¥¡¥(¡­§©¡®¡ËÂŽÁÂŽªÂŽ¯
++¤Á¤§¤Ã #JN ¤Á¤§¤Ã
++¤Á¤«¤¯¤Ø¤ó¤É¤¦ #T30 ÃϳÌÊÑÆ°
++¤Á¤«¤¯¤Ø¤ó¤É¤¦ #T35 ÃϳÌÊÑÆ°
++¤Á¤«¤² #JNM ¥Á¥«¥²
++¤Á¤«¤² #JNM ·ì±Æ
++¤Á¤«¤² #JNM Æý±Æ
++¤Á¤«¤² #T35 ¥Á¥«¥²
++¤Á¤«¤² #T35 ·ì±Æ
++¤Á¤«¤² #T35 Æý±Æ
++¤Á¤«¤¹¤ì #T35 Ãϲ¼¥¹¥ì
++¤Á¤«¤ó #T35 ÃÔ´Á
++¤Á¤«¤ó¤Ç¤Ã¤Á¤¢¤² #T35 ÃÔ´Á¤Ç¤Ã¤Á¾å¤²
++¤Á¤­¤ó¤ì¡¼¤¹ #T35 ¥Á¥­¥ó¥ì¡¼¥¹
++¤Á¤­¤ó¤ì¤¨¤¹ #T35 ¥Á¥­¥ó¥ì¡¼¥¹
++¤Á¤²¡¼¤è #JN ¥Á¥²¡¼¥è
++¤Á¤´¤¤¤Í #CJ ¥Á¥´¥¤¥Í
++¤Á¤·¤ç¤¦ #T35 ÃÓ¾Â
++¤Á¤º #T35 ÃÏ¿Þ
++¤Á¤¿¤Í¡¼¤è #JN ¥Á¥¿¥Í¡¼¥è
++¤Á¤Á¤ç¤ó¤Þ¤ó¤Á #JN ¤Á¤Á¤ç¤ó¤Þ¤ó¤Á
++¤Á¤Ã¤Ñ¤ó #KK ¤Á¤Ã¤Ñ¤ó
++¤Á¤Æ¤¤ #KK ÃÏÄì
++¤Á¤Æ¤¤ #T35 ÃÏÄì
++¤Á¤Æ¤¤¤â¤Ê #JN ÃÏÄì¤â¤Ê
++¤Á¤Í¤Ð¡¼ #JN ¥Á¥Í¥Ð¡¼
++¤Á¤Ð¤²¤ó¤¸¤ó #T35 ÀéÍÕ¸¶¿Í
++¤Á¤Ð¤·¤·¤ã #T35 ÃÔÇÍ»à¼Ô
++¤Á¤Ð¤È¤ß¤ó #T35 ÀéÍÕÅÔ̱
++¤Á¤Ð¤é¤­ #CN ¥Á¥Ð¥é¥­
++¤Á¤Ð¤é¤­ #T35 ¥Á¥Ð¥é¥­
++¤Á¤Ð¤é¤® #CN ¥Á¥Ð¥é¥®
++¤Á¤Ð¤é¤® #T35 ¥Á¥Ð¥é¥®
++¤Á¤Ó¤®¤³ #JN ¤Á¤Ó¥®¥³
++¤Á¤Ó¤®¤³¤Ö¤ê #JN ¤Á¤Ó¥®¥³¥Ö¥ê
++¤Á¤Ó¤·¤£ #JN ¤Á¤Ó¤·¤£
++¤Á¤Ó¤Õ¤µ #JN ¥Á¥Ó¥Õ¥µ
++¤Á¤Ó¤â¤é¤é¡¼ #JN ¥Á¥Ó¥â¥é¥é¡¼
++¤Á¤á¤¤ #T35 ÃÏ̾
++¤Á¤ã¤¤ #JN ¡¡¡¡,._.,¡¡
++¤Á¤ã¤¤ #JN ÂŽÁÂŽ¬ÂŽ²¡¡
++¤Á¤ã¤Ö¤À¤¤ #JN ¤Á¤ã¤ÖÂæ
++¤Á¤ã¤Ö¤À¤¤ #JN ¨µ¨¬¨µ
++¤Á¤ã¤Ö¤À¤¤¤¤¤É¤¦ #JN ¤Á¤ã¤ÖÂæ°ÜÆ°
++¤Á¤ã¤à #JN ¥Á¥ã¥à
++¤Á¤ã¤à #T35 ¥Á¥ã¥à
++¤Á¤ã¤ó¤³ #JN ¥Á¥ã¥ó¥³
++¤Á¤ã¤ó¤³¤Þ¤¹¤À #T35 ¥Á¥ã¥ó¥³ÁýÅÄ
++¤Á¤ã¤ó¤³¤í #T35 ¥Á¥ã¥ó¥³¥í
++¤Á¤ã¤ó¤µ¤Þ #SUC ¤Á¤ã¤óÍÍ
++¤Á¤ã¤ó¤µ¤Þ #T35 ¤Á¤ã¤óÍÍ
++¤Á¤å¡¼¤Á¤å¡¼¤½¤ó¤° #KK ¤Á¤å¡¼¤Á¤å¡¼¥½¥ó¥°
++¤Á¤å¡¼¤Ü¡¼ #JN ¥Á¥å¡¼¡¦¥Ü¡¼
++¤Á¤å¡¼¤Ü¡¼¤Ç¤¹¤è #JN ¥Á¥å¡¼¥Ü¡¼¤Ç¤¹¤è¡ª
++¤Á¤å¤¦ #T35 ¿ß
++¤Á¤å¤¦¤«¤ê¤ç¤¦¤ê¤í¤Ü¤»¤ó¤³¤¦¤·¤ã #JN Ãæ²ÚÎÁÍý¥í¥ÜÀè¹Ô¼Ô
++¤Á¤å¤¦¤¬¤¯¤»¤¤¤Á¤Ï¤ë #T35 Ãæ³ØÀ¸¤Á¤Ï¤ë
++¤Á¤å¤¦¤±¤¤ #T30 Ãæ·Ñ
++¤Á¤å¤¦¤±¤ó #JN Ãæ·ø
++¤Á¤å¤¦¤±¤ó #T35 Ãæ·ø
++¤Á¤å¤¦¤³¤ª¤ó¤Ê #T35 Ãæ¸Å½÷
++¤Á¤å¤¦¤Á¤å¤¦¤½¤ó¤° #T35 ¤Á¤å¡¼¤Á¤å¡¼¥½¥ó¥°
++¤Á¤å¤¦¤Ö¤ë¤ª¤ó¤Ê #T35 Ãæ¸Å½÷
++¤Á¤å¤¦¤Ü¤¦ #T35 ¿ß˼
++¤Á¤å¤¦¤Ü¤¦¤°¤ó¤À¤ó #T35 ¿ß˼·³ÃÄ
++¤Á¤å¤¦¤Ü¤¦¤ê¤Ë¤å¤¦¤ê¤ç¤¯ #KK ¿ß˼ΥÆý¿©
++¤Á¤å¤× #T35 ¥Á¥å¥×
++¤Á¤å¤×¤¿¤ó #T35 ¥Á¥å¥×¥¿¥ó
++¤Á¤å¤×¤¿¤ó #T35 ÂŽÁÂŽ­ÂŽÌÂŽßÂŽÀÂŽÝ
++¤Á¤æ #JN ¤Á¤æ
++¤Á¤æ¤â¤Ê #JN ¤Á¤æ¤â¤Ê
++¤Á¤ç¤¤¤Î¤ê #T35 ¥Á¥ç¥¤¥Î¥ê
++¤Á¤ç¤¦¤ª¤ì¤°¤ë¤Þ #JN Ķ²¶¼Ö
++¤Á¤ç¤¦¤»¤¤¤É¤Ã¤È #JN .
++¤Á¤ç¤¦¤»¤¤¤É¤Ã¤È #JN Ä´À°¥É¥Ã¥È
++¤Á¤ç¤¦¤»¤ó¤·¤ã #JN Ä©Àï¼Ô
++¤Á¤ç¤¦¤»¤ó¤»¤¤ #JN ĶÀèÀ¸
++¤Á¤ç¤¦¤»¤ó¤»¤¤ #T35 ĶÀèÀ¸
++¤Á¤ç¤¦¤Ë¤Á¤·¤ó¤Ö¤ó #KK ¤Á¤ç¤¦¤Ë¤Á¿·Ê¹
++¤Á¤ç¤¦¤Ë¤Á¤·¤ó¤Ö¤ó #T35 ¤Á¤ç¤¦¤Ë¤Á¿·Ê¹
++¤Á¤ç¤¦¤Õ¤¯¤¹¤ì #T35 ½ÅÊ£¥¹¥ì
++¤Á¤ç¤¦¤Õ¤¯¤¹¤ì¤Ã¤É #T35 ½ÅÊ£¥¹¥ì¥É
++¤Á¤ç¤¦¤Ö¤ó¤ì¤¹ #T35 Ĺʸ¥ì¥¹
++¤Á¤ç¤¦¤ì¤¹ #T35 Ĺ¥ì¥¹
++¤Á¤ç¤¦¤í¤¦ #JN ĹϷ
++¤Á¤ç¤¦¤í¤¦ #T35 ĹϷ
++¤Á¤ç¤¯¤ê¤ó #T30 ľ¥ê¥ó
++¤Á¤ç¤¯¤ê¤ó¤¯ #T30 ľ¥ê¥ó¥¯
++¤Á¤ç¤·¤å¤µ¤ó #T35 ¥Á¥ç¥·¥å¥µ¥ó
++¤Á¤ç¤·¤å¤µ¤ó #T35 ÂŽÁÂŽ®ÂŽ¼ÂŽ­ÂŽ»ÂŽÝ
++¤Á¤ç¤½ #T35 ¥Á¥ç¥½
++¤Á¤ç¤½ #T35 ÂŽÁÂŽ®ÂŽ¿
++¤Á¤ç¤Ã¤Ñ¤ê #T35 ¥Á¥ç¥Ã¥Ñ¥ê
++¤Á¤ç¤é¤Í¡¼¤è #JN ¥Á¥ç¥é¥Í¡¼¥è
++¤Á¤ç¤ì¤®¤µ¤é¤À #JN ¥Á¥ç¥ì¥®¥µ¥é¥À
++¤Á¤ç¤ó #T35 ¥Á¥ç¥ó
++¤Á¤ç¤ó #T35 ÂŽÁÂŽ®ÂŽÝ
++¤Á¤ç¤ó¤¤¤ë¤·¤ó¤Ö¤ó #KK ¥Á¥ç¥ó¥¤¥ë¿·Ê¹
++¤Á¤ç¤ó¤¤¤ë¤·¤ó¤Ö¤ó #T35 ¥Á¥ç¥ó¥¤¥ë¿·Ê¹
++¤Á¤ç¤ó¤Ê #CJ ¥Á¥ç¥ó¤Ê
++¤Á¤é¤Í¡¼¤è #JN ¥Á¥é¥Í¡¼¥è¡¡
++¤Á¤ì¤¹ #T30 Ã٥쥹
++¤Á¤ì¤¹ #T35 Ã٥쥹
++¤Á¤ó #T35 Ä¿
++¤Á¤ó #T35 ÄÁ
++¤Á¤ó¤«¤³¤ß¤À¤ó #T35 ÄÁ°ÏÃÄ
++¤Á¤ó¤² #JN ¥Á¥ó¥²
++¤Á¤ó¤² #T35 ¥Á¥ó¥²
++¤Á¤ó¤³¤ª¤ó¤É #T35 ¤Á¤ó¤³²»Æ¬
++¤Á¤ó¤³¤à¤®¤å¡¼ #CJ ¤Á¤ó¤³¤à¤®¤å¡¼
++¤Á¤ó¤³¤à¤®¤å¤¦ #CJ ¤Á¤ó¤³¤à¤®¤å¡¼
++¤Á¤ó¤·¤ã #T35 ÄÁ¼Ö
++¤Á¤ó¤¸¤ç #T35 ÄÁ½÷
++¤Á¤ó¤½¤¦ #T30 ÄÁÁÕ
++¤Á¤ó¤½¤¦¤¢¤é¤· #JN ÄÁÁö¹Ó¤é¤·
++¤Á¤ó¤½¤¦¤¸¤ó #T35 ÄÁÁÕ¿Í
++¤Á¤ó¤½¤¦¤À¤ó #T35 ÄÁÁÕÃÄ
++¤Á¤ó¤½¤¦¤À¤ó #T35 ÄÁÁöÃÄ
++¤Á¤ó¤½¤¦¤É #T35 ÄÁÁÕÅÛ
++¤Á¤ó¤½¤¦¤Ù¤ó¤¸¤ç #T35 ÄÁÁÕÊؽê
++¤Á¤ó¤½¤¦¤â¤é¤é¡¼ #JN ÄÂÁö¥â¥é¥é¡¼
++¤Á¤ó¤Ç¤£¤¤ #T35 ÄÁD
++¤Á¤ó¤Ð¤ó #T35 ÄÁÈ×
++¤Á¤ó¤×¤¦ #KK ÄÁÉ÷
++¤Á¤ó¤×¤¦ #KK ÄÄÉ奦
++¤Á¤ó¤×¤¦ #T35 ÄÁÉ÷
++¤Á¤ó¤×¤¦ #T35 ÄÄÉ奦
++¤Á¤ó¤×¤¯ #T35 ÄÁÉþ
++¤Á¤ó¤Ý¡¼ #JN ¡Ê¡¦¢Ï¡¦¡ËÂŽÁÂŽÝÂŽÎÂŽßÂŽ°!!
++¤Á¤ó¤Ý¡¼ #JN ÁÝÎß!
++¤Á¤ó¤Ý¡¼ #JN ÂŽÁÂŽÝÂŽÎÂŽßÂŽ°!!
++¤Á¤ó¤Ý¤´¤­¤Ö¤ê #JN ¥Á¥ó¥Ý¥´¥­¥Ö¥ê
++¤Á¤ó¤Ý¤À¤ó #T35 ÄÁÊâÃÄ
++¤Â¤ã¤ó #JN ¥Â¥ã¥ó
++¤Â¤ó¤®¤ç #JN ¤Â¤óµû
++¤Ã¤Æ¤¤¤¦¤«¤¦¡«¤¡¤« #CJ ¤Ã¤Æ¤¤¤¦¤«¡¢¥ô¥¡¥«¡©
++¤Ã¤Æ¤¤¤¦¤«¤¦¡«¤¡¤« #CJ ¤Ã¤Æ¤¤¤¦¤«¡¢ÂŽ³ÂŽÞÂŽ§ÂŽ¶¡©
++¤Ã¤Æ¤¤¤¦¤«¤¦¡«¤¡¤« #CJ ¤Ã¤Æ¤¤¤¦¤«¡¢ÂŽ³ÂŽÞÂŽ§ÂŽ¶¡©>>
++¤Ä  #R5r Äà
++¤Ä #R5 Äà
++¤Ä¡«¤µ¤¯¤Ä¡«¤¨¤½ #JN (?¢Ï?)
++¤Ä¡«¤µ¤¯¤Ä¡«¤¨¤½ #JN ¥Å¥µ¥¯¥Å¥¨¥½
++¤Ä¡«¤µ¤¯¤Ä¡«¤¨¤½ #JN ÂŽÂÂŽÞÂŽ»ÂŽ¸ÂŽÂÂŽÞÂŽ´ÂŽ¿
++¤Ä¡¼ #JN ¤Ä¡¼
++¤Ä¡¼¤« #CJ ¤Ä¡¼¤«
++¤Ä¡¼¤«¤«¤³¤í¤°¤è¤á #JN ¤Ä¡¼¤«²áµî¥í¥°Æɤá
++¤Ä¤¦¡«¤¡¤¤ #JN ¥Ä¥ô¥¡¥¤
++¤Ä¤¦¤¸¤ç¤¦¤Î¤µ¤ó¤Ð¤¤ #CJ Ä̾ï¤Î£³ÇÜ
++¤Ä¤¦¤¸¤ç¤¦¤Î¤µ¤ó¤Ð¤¤ #T35 Ä̾ï¤Î£³ÇÜ
++¤Ä¤¦¤Û¤¦¤·¤Þ¤¹¤¿ #T35 ÄÌÊó¤·¤Þ¤¹¤¿
++¤Ä¤« #KK ÄÍ
++¤Ä¤« #T35 ÄÍ
++¤Ä¤­ #T35 ·î
++¤Ä¤­¤Á¤å¤¦ #T35 ·î¿ß
++¤Ä¤­¤Î¤Ï¤·¤º¤¯ #JN ¤Ä¤­¤Î¤Ï¤·¤º¤¯
++¤Ä¤­¤Ò¤á #KK ·îɱ
++¤Ä¤¸ #T35 ¤Î¤Î¤¿¤ó
++¤Ä¤¸ #T35 ÄÔ
++¤Ä¤¸¡¼¤ó #JN ÄÔ¡¼¤ó
++¤Ä¤¸¡¼¤ó #T35 ÄÔ¡¼¤ó
++¤Ä¤¸¤¤¤ó #T35 ÄÔ¡¼¤ó
++¤Ä¤¸¤¨¤­ #JN ÄÔ±Ø
++¤Ä¤Î¤â¤Ê¡¼ #JN ¤Ä¤Î¥â¥Ê¡¼
++¤Ä¤Ü #CN ÄÛ
++¤Ä¤Ü #T35 ÄÚ
++¤Ä¤Ü #T35 ÄÛ
++¤Ä¤Ü¤Þ¤¸¤ó¤ß¤Ë¤Ê¤Ë¤ç¤ê¡¼¤Ê #JN ÄÛËâ¿Í¡¦ÂŽÐÂŽÆÂŽÅÂŽÆÂŽ®ÂŽØÂŽ°ÂŽÅ
++¤Ä¤Þ¤ó¤Í #CJ ¥Ä¥Þ¥ó¥Í
++¤Ä¤â #JN ¥Ä¥â
++¤Ä¤æ¤Ò¤¿ #T35 ¤Ä¤æ¤Ò¤¿
++¤Ä¤é¤¤¤³¤È¤ò¤ª¤â¤¦¤â¤é¤é¡¼ #JN ¿É¤¤¤³¤È¤ò»×¤¦¥â¥é¥é¡¼
++¤Ä¤ê #T35 Äà¤ê
++¤Ä¤ê¤· #T35 Äà¤ê»Õ
++¤Ä¤ë¤Ù¤¸¤±¤ó #T35 ÄáÉÓ»ö·ï
++¤Ä¤ì¤¿ #T35 Äà¤ì¤¿
++¤Å¡¼ #JN ¤Å¡¼
++¤Æ¤£¡¼ #JN £ô¡¡
++¤Æ¤£¡¼¤À #JN ¥Æ¥£¡¼¥À
++¤Æ¤£¤¤¤Ç¤£¤¤¤¨¤Ì #T35 TDN
++¤Æ¤£¤«¤² #JNM ¥Æ¥£¥«¥²
++¤Æ¤£¤«¤² #T35 ¥Æ¥£¥«¥²
++¤Æ¤£¤­¤ã¡¼¤² #T35 ¥Æ¥£¥­¥ã¡¼¥²
++¤Æ¤£¤­¤ã¤¢¤² #T35 ¥Æ¥£¥­¥ã¡¼¥²
++¤Æ¤£¤Ð #T35 ¥Æ¥£¥Ð
++¤Æ¤£¤Ð #T35 ÂŽÃÂŽ¨ÂŽÊÂŽÞ
++¤Æ¤£¤à¤Ý #T35 ¥Æ¥£¥à¥Ý
++¤Æ¤£¤à¤Ý¤Î¤ï¤®¤ê #T35 ¥Æ¥£¥à¥Ý¤ÎÎØÀÚ¤ê
++¤Æ¤£¤à¤Ý¤Î¤ï¤®¤ê #T35 ÂŽÃÂŽ¨ÂŽÑÂŽÎŽߤÎÎØÀÚ¤ê
++¤Æ¤£¤à¤Ý¤Ó¤ë #T35 ¥Æ¥£¥à¥Ý¥Ó¥ë
++¤Æ¤£¤ó¤Ý #T35 ¥Æ¥£¥ó¥Ý
++¤Æ¤¤¤­¤±¤ó #T35 Äê´ü·ô
++¤Æ¤¤¤­¤ç¤¦ #T35 Ä㶸
++¤Æ¤¤¤³¤¯¤á¤¤¤É #JN ÄëԢ̽ÅÓ
++¤Æ¤¤¤·¤å¤«¤ó¤Ñ¤¯¤â¤Ê¡¼ #JN Äâ¼ç´ØÇò¥â¥Ê¡¼
++¤Æ¤¤¤»¤Ä #T35 ÄêÀâ
++¤Æ¤¤¤É¤Ò¤¯ #KYT ÄøÅÙÄã
++¤Æ¤«¤ê¤Ö¤¿ #T35 ¥Æ¥«¥êÆÚ
++¤Æ¤­¤¸¤ç #T30 ¤Æ¤­¤¸¤ç
++¤Æ¤­¤È #JN ¥Æ¥­¥È
++¤Æ¤¯¤â #KK ¼êÃØéá
++¤Æ¤¯¤â #T35 ¼êÃØéá
++¤Æ¤¹¤Æ¤¹ #CJ ¤Æ¤¹¤Æ¤¹
++¤Æ¤½ #JN ¥Æ¥½
++¤Æ¤½ #JN ÂŽÃÂŽ¿
++¤Æ¤½ #T35 ¥Æ¥½
++¤Æ¤½ #T35 ÂŽÃÂŽ¿
++¤Æ¤Ã¤³¤¦¤· #T35 ¥Æ¥Ã¥³¥¦¥·
++¤Æ¤Ã¤»¤ó¤«¤¤ #KK ïÄÀðÐò
++¤Æ¤Ã¤»¤ó¤«¤¤ #T35 ïÄÀðÐò
++¤Æ¤Ã¤Æ¤¤¤³¤¦¤»¤ó¤»¤ó¤²¤ó #JN Å°Äì¹³ÀïÀë¸À
++¤Æ¤Ä #T35 Å´
++¤Æ¤Ä¤ª¤¿¤¼¤Ã¤È¤¿¤±¤¢¤Ã¤È¤á¤¤¤Æ¤Ä #JN Å´¥ò¥¿£ÚÉð@¦ÌÅ´
++¤Æ¤Ä¤ª¤¿¤¼¤Ã¤È¤¿¤±¤á¤¤¤Æ¤Ä #JN Å´¥ò¥¿£ÚÉð@¦ÌÅ´
++¤Æ¤Ä¤Î¤ª¤­¤Æ #T35 Å´¤ÎÙÝ
++¤Æ¤Æ¤· #T35 ¤Æ¤Æ¤·
++¤Æ¤Ê¡¼ #JN ¥Æ¥Ê¡¼
++¤Æ¤Õ¤Æ¤Õ #JN ¤Æ¤Õ¤Æ¤Õ 
++¤Æ¤á¤§¤â¤Ê¡¼ #JN ¥Æ¥á¥§¥â¥Ê¡¼
++¤Æ¤ë¤¯¤Ï¤Î¤ë #T35 ¤Æ¤ë¤¯¤Ï¤Î¤ë
++¤Æ¤ì¤Û #T35 ¥Æ¥ì¥Û
++¤Æ¤ì¤Û¤·¤å¤¦¤ê¤ç¤¦ #T30 ¥Æ¥ì¥Û½ªÎ»
++¤Æ¤ì¤Û¤Þ¤ó #JN ¥Æ¥ì¥Û¥Þ¥ó
++¤Æ¤ì¤Û¤é¤Ã¤·¤å #T35 ¥Æ¥ì¥Û¥é¥Ã¥·¥å
++¤Æ¤í¤¨¤ê¡¼¤Ê #JN ¥Æ¥í¥¨¥ê¡¼¥Ê
++¤Æ¤ó¤·¤¨¤ó #CJ Å·»È±ê
++¤Æ¤ó¤·¤¨¤ó #T35 Å·»È±ê
++¤Æ¤ó¤Î¤¦ #JN Å·¹Ä
++¤Æ¤ó¤×¤ì #T35 ¥Æ¥ó¥×¥ì
++¤Æ¤ó¤Ý¤Ã¤Æ #KS ¥Æ¥ó¥Ý¤Ã¤Æ
++¤Ç¤¢¤ë¤« #CJ ¤Ç¡¢¤¢¤ë¤«
++¤Ç¤£ #JN ¤Ç¤£
++¤Ç¤£¡¼¤¸¤§¡¼¤â¤Ê¡¼ #JN £Ä£Ê¥â¥Ê¡¼¡¡
++¤Ç¤£¡¼¤Ý #T35 £Ä¥Ý
++¤Ç¤£¤¢¤Ê¤µ¤Þ #JN ¥Ç¥£¥¢¥ÊÍÍ
++¤Ç¤£¤ª¤â¤é¤ó¤É¡¼ #JN ¥Ç¥£¥ª¡¦¥â¥é¥ó¥É¡¼
++¤Ç¤£¤ª¤ó¤°¤ó #T35 DION·³
++¤Ç¤£¤ë¤ì¤¦¡«¤¡¤ó¤¬¡¼ #JN ¥Ç¥£¥ë¥ì¥ô¥¡¥ó¥¬¡¼
++¤Ç¤£¤ë¤ì¤¦¡«¤¡¤ó¤¬¤¢ #JN ¥Ç¥£¥ë¥ì¥ô¥¡¥ó¥¬¡¼
++¤Ç¤¤¤È¤¤¤ì¤À¡¼ #T35 ¥Ç¥¤¥È¥¤¥ì¥À¡¼
++¤Ç¤¤¤È¤¤¤ì¤À¤¢ #T35 ¥Ç¥¤¥È¥¤¥ì¥À¡¼
++¤Ç¤¦¡« #JN DEVU
++¤Ç¤¦¡« #JN ¤à¤·¤ã¤à¤·¤ã¡Ê¡¡¡­¡Ë§¥¡Ê¡®¡Ë
++¤Ç¤¨¤ó¤Ñ¤ß¤ó¤¾¤¯ #T35 ¥Ç¡¼¥ó¥Ñ¥ß¥ó¥¾¥¯
++¤Ç¤¨¤ó¤Ñ¤ß¤ó¤¾¤¯ #T35 ÂŽÃÂŽÞÂŽ°ÂŽÝÂŽÊÂŽßÂŽÐÂŽÝÂŽ¿ÂŽÞÂŽ¸
++¤Ç¤«¤Á¤ç¤¦¤¢¤ó¤É¤«¤º #JN ¥Ç¥«Ä¹¡õ¥«¥º
++¤Ç¤¬¤ï #JNS ½ÐÀî
++¤Ç¤¬¤ï #T35 ½ÐÀî
++¤Ç¤¬¤ï¤Ò¤Ã¤·¤À¤â¤½ #T35 ½ÐÀîɬ»à¥À¥â¥½¡ª
++¤Ç¤³ #JN ÆÌ
++¤Ç¤³ #T35 ÆÌ
++¤Ç¤¸¤â¤Ê¤Æ¤¤¤Þ¡¼¤º¤í¤´ #JN ¥Ç¥¸¥â¥Ê¥Æ¥¤¥Þ¡¼¥º¥í¥´
++¤Ç¤¹ #SUC DEATH
++¤Ç¤¹ #SUC ¥Ç¥¹
++¤Ç¤¹¤¯¤È¤Ã¤×¤³¤¦¤«¤¤¤¹¤ì #T35 ¥Ç¥¹¥¯¥È¥Ã¥×¸ø³«¥¹¥ì
++¤Ç¤¹¤±¤É¤Ê¤Ë¤« #CJ ¤Ç¤¹¤±¤É¡¢²¿¤«¡©
++¤Ç¤¹¤Ç¤¹ #CJ ¤Ç¤¹¤Ç¤¹
++¤Ç¤¹¤È¤í¤¤¤µ¤Þ #JN ¥Ç¥¹¥È¥í¥¤ÍÍ
++¤Ç¤½¤Ñ #T35 ¥Ç¥½¥Ñ
++¤Ç¤Õ¤©¤ë¤È¤Ê¤Ê¤· #T35 ¥Ç¥Õ¥©¥ë¥È̵̾¤·
++¤Ç¤Ö¤ª¤¿ #T35 ¥Ç¥Ö¥ò¥¿
++¤Ç¤Ö¤­¤ó #JN ¥Ç¥Ö¥­¥ó
++¤Ç¤Ö¤À¤Ê¡¼ #JN ¥Ç¥Ö¥À¥Ê¡¼
++¤Ç¤Ö¤í¤ó¤² #T35 ¥Ç¥Ö¥í¥ó¥²
++¤Ç¤Ö¤ò¤¿ #T35 ¥Ç¥Ö¥ò¥¿
++¤Ç¤Ö¤ò¤¿¤Ò¤Ã¤­¡¼ #T35 ¥Ç¥Ö¥ò¥¿¥Ò¥Ã¥­¡¼
++¤Ç¤Ö¤ò¤¿¤Ò¤Ã¤­¤¤ #T35 ¥Ç¥Ö¥ò¥¿¥Ò¥Ã¥­¡¼
++¤Ç¤Ø¤é¡¼ #JN ¥Ç¥Ø¥é¡¼
++¤Ç¤Ü¤¹¤º¤á #JN ¥Ç¥Ü¤¹¤º¤á
++¤Ç¤Þ¤Á #T30 ½ÐÄ®
++¤Ç¤Þ¤Á #T35 ½ÐÄ®
++¤Ç¤è¤í¤·¤¤¤« #CJ ¤Ç¤è¤í¤·¤¤¤«
++¤Ç¤ê #R5 ¥Ç¥ê
++¤Ç¤ê¤«¤· #JN ¥Ç¥ê¡Ê¡­§×`¡Ë¥«¥·
++¤Ç¤ó¤­¤ª¤¦ #JN Åŵ¤²¦
++¤Ç¤ó¤²¤­¤Ð¤Á¤Ð¤Á #JN ¤Ç¤ó¤²¤­¥Ð¥Á¥Ð¥Á
++¤Ç¤ó¤·¤ã¤¦¤· #JN Åżֵí
++¤Ç¤ó¤·¤ã¤¬¤¢¤ë #T35 Åż֥¬¡¼¥ë
++¤Ç¤ó¤·¤ã¤®¤å¤¦ #JN Åżֵí
++¤Ç¤ó¤»¤Ä¤­¤ç¤¸¤ó¤¤¤Ç¤Û¤½ #JN ÅÁÀâµð¿ÀÂŽ²ÂŽÃÂŽÞÂŽÎÂŽ¿
++¤Ç¤ó¤¿¤Þ #T35 ÅĶÌ
++¤Ç¤ó¤Ä¤¦ #T35 ÅÅ2
++¤Ç¤ó¤È #T35 ÅÄÅÔ
++¤Ç¤ó¤É¤í #T35 ÅÄÅ¥
++¤Ç¤ó¤Ë #T35 ÅÅ2
++¤Ç¤ó¤Ñ #T35 ¥Ç¥ó¥Ñ
++¤Ç¤ó¤Ñ #T35 ÅÅÇÈ
++¤Ç¤ó¤Ñ¤ª¤Ï¤Ê¤Ð¤¿¤±¤¤¤¿ #T35 ÅÅÇÈ¡¦¤ª²ÖȪÈÄ
++¤Ç¤ó¤Ñ¤­¤·¤ã #T35 ÅÅÇȵ­¼Ô
++¤Ç¤ó¤Ñ¤­¤ã¤é #T35 ÅÅÇÈ¥­¥ã¥é
++¤Ç¤ó¤Ñ¤Á¤ç¤¦¤µ¤¤¤ó¤â¤Ê¡¼ #JN ÅÅÇÈÄ´ºº°÷¥â¥Ê¡¼
++¤Ç¤ó¤Ñ¤È¤· #T35 ÅÅÇÈÅÔ»Ô
++¤Ç¤ó¤Ñ¤Ë¤Á¤ã¤ó #T35 ÅÅÇÈ2ch
++¤Ç¤ó¤Ñ¤Ë¤Á¤ã¤ó¤Í¤ë #T35 ÅÅÇÈ2¤Á¤ã¤ó¤Í¤ë
++¤Ç¤ó¤Ñ¤â¤é¤é¡¼ #JN ÅÅÇÈ¥â¥é¥é¡¼
++¤Ç¤ó¤Ñ¤é¤¤¤¿¤¢ #T35 ÅÅÇȥ饤¥¿¡¼
++¤Ç¤ó¤Ñ¤ò¤¿ #T35 ÅÅÇÈ¥ò¥¿
++¤È #SUC ¤È¡£
++¤È¡¼¤Û¤° #CN ¥È¡¼¥Û¥°
++¤È¡¼¤Û¤° #T35 ¥È¡¼¥Û¥°
++¤È¤¤¤¦¤³¤È¤Ë¤·¤¿¤¤¤Î¤Ç¤¹¤Í #CJ ¤È¤¤¤¦¤³¤È¤Ë¤·¤¿¤¤¤Î¤Ç¤¹¤Í
++¤È¤¤¤¦¤³¤È¤Ë¤·¤¿¤¤¤Î¤Ç¤¹¤Í #CJ ¤È¤¤¤¦¤³¤È¤Ë¤·¤¿¤¤¤Î¤Ç¤¹¤Í¡£:)
++¤È¤¤¤Ã¤Æ¤ª¤¯¤®¤ê #CJ ¤È¸À¤Ã¤Æ¤ª¤¯µÁÍý
++¤È¤¤¤Ã¤Æ¤ß¤ë¤Æ¤¹¤È #CJ ¤È¸À¤Ã¤Æ¤ß¤ë¥Æ¥¹¥È
++¤È¤¥¤¶¤¦¡«¤£¤¯¤È¤ê¡¼ #JN ¥È¥¥¥¶¥ô¥£¥¯¥È¥ê¡¼
++¤È¤¦ #T35 Åã
++¤È¤¦¤«¤¤ #CN Åݲõ
++¤È¤¦¤«¤¤ #CN Å쳤
++¤È¤¦¤«¤¤ #KK Åݲõ
++¤È¤¦¤«¤¤ #T35 Åݲõ
++¤È¤¦¤«¤¤ #T35 Å쳤
++¤È¤¦¤­¤å¤¦¤Á¤å¤¦ #T35 ÅìµÞ¿ß
++¤È¤¦¤­¤ç¤¦ #JN Åìµþ
++¤È¤¦¤­¤ç¤¦ #T35 Åìµþ
++¤È¤¦¤­¤ç¤¦¤¢¤¯¤»¤¹ #KK Åìµþ¥¢¥¯¥»¥¹
++¤È¤¦¤­¤ç¤¦¤­¤Æ¤£¤¤ #T35 Åìµþkitty¡Ê¡÷£÷¹Ó
++¤È¤¦¤­¤ç¤¦¤¸¤¨¤ó #JN ¥È¥¦¥­¥ç¥¦¥¸¥¨¥ó
++¤È¤¦¤­¤ç¤¦¤»¤¤¤·¤ó¤Ó¤ç¤¦¤¤¤ó #JN ÅìµþÀº¿Àɱ¡¡¡
++¤È¤¦¤­¤ç¤¦¤È¤»¤¤¤½¤¦¤­¤ç¤¯ #JN ÅìµþÅÔÀ¶ÁݶÉ
++¤È¤¦¤­¤ç¤¦¤È¤ê¤Ä¤Þ¤Ä¤¶¤ï¤Ó¤ç¤¦¤¤¤ó #JN ÅìµþÅÔΩ¾¾Âôɱ¡
++¤È¤¦¤µ¤ó #T30 É㤵¤ó
++¤È¤¦¤¸¤ç¤¦¤»¤ó #T35 «¾åÀþ
++¤È¤¦¤À¤¤¤ª¤Á #T35 ÅìÂçÍî¤Á
++¤È¤¦¤Ï¤È #KK ÅìÈ·
++¤È¤¦¤Ï¤È #T35 ÅìÈ·
++¤È¤¦¤Ö¤Á¤å¤¦ #T35 ÅìÉð¿ß
++¤È¤¦¤Ö¤Ø¤Ã¤É #T35 ƬÉô¥Ø¥Ã¥É
++¤È¤¦¤Û¤° #T35 ¥È¡¼¥Û¥°
++¤È¤¦¤á¤¤¤¢¤Ü¡¼¤ó #T30 Æ©ÌÀ¤¢¤Ü¡¼¤ó
++¤È¤¦¤á¤¤¤¢¤Ü¤ª¤ó #T30 Æ©ÌÀ¤¢¤Ü¡¼¤ó
++¤È¤¦¤è¤³¤È¤Ã¤­¤å¤¦¤Ï¤Þ¤¤¤Ë¤Á¤Ü¤í¤¤¤Á #CJ Åì²£ÆõޤÏËèÆü¥Ü¥í»Ô!
++¤È¤¨¤¤¤Ð¤¹ #JN ÅԱĥХ¹
++¤È¤ª¤â¤ï¤ì #CJ ¤È»×¤ï¤ì¡£
++¤È¤ª¤â¤ï¤ì¤á #CJ ¤È»×¥ï¥ì¥á
++¤È¤­¤å¤ó #T35 ¤È¥­¥å¥ó
++¤È¤¯¤À¤³¤¦¤¤¤Á #JN ÆÁÅĹ̰ì
++¤È¤¯¤Æ¤¤¤ê¤ç¤«¤¯ #T35 ÆÃÄêιµÒ
++¤È¤¯¤Ë¤ó¤®¤ç¤¦¤»¤¤¤·¤ç¤· #JN ÆÃǧ¹ÔÀ¯½ñ»Î
++¤È¤¯¤Ë¤ó¤®¤ç¤¦¤»¤¤¤·¤ç¤· #KK ÆÃǧ¹ÔÀ¯½ñ»Î
++¤È¤¯¤á¤¤ #T35 ƿ̾
++¤È¤¯¤á¤¤¤¯¤· #T35 ƿ̾¶ú
++¤È¤¯¤á¤¤¤±¤¤¤¸¤Ð¤ó #T35 ƿ̾·Ç¼¨ÈÄ
++¤È¤±¤Í¡¼¤è #JN ¡Ê¡¬¦Ç¡¬¡Ë¡¡¥È¥±¥Í¡¼¥è
++¤È¤±¤Í¡¼¤è #JN ¥È¥±¥Í¡¼¥è
++¤È¤³¤í¤Ç #CJ ¤È¤³¤í¤Ç
++¤È¤³¤í¤ó¤È¤Á¤ã¤ê¤Ô¤«¤¡ #JN ¥È¥³¥í¥ó¥È¥Á¥ã¥ê¥Ô¥«¥¡¡ª
++¤È¤· #T35 ÅÔ»Ô
++¤È¤À¤Ê #T35 ¸Íê
++¤È¤Ã¤­¤å¤¦¤¾¤Ì¤´¤¦ #JN Æõޤ¾¤Ì¹æ
++¤È¤Ã¤Æ¤â¤¿¤á¤Ë¤Ê¤ë¤ª¤Ï¤Ê¤· #JN ¤È¤Ã¤Æ¤â¤¿¤á¤Ë¤Ê¤ë¤ªÏÃ
++¤È¤Ã¤È¤È¤¤¤¯¤ª #JN ¤È¤Ã¤È¤ÈÀÂÉ×
++¤È¤Ä¤²¤­ #T35 ÆÍ·â
++¤È¤Ä¤²¤­¤²¤Ã¤¿¡¼¤º #JN ·ãÆÍ¥²¥Ã¥¿¡¼¥º
++¤È¤Ä¤²¤­¤Á¤å¤¦ #T35 ÆÍ·â¿ß
++¤È¤Ê¤«¤¤ #JN ÂŽÄÂŽÅÂŽ¶ÂŽ²
++¤È¤Ó¤¹¤­¡¼¤ä¡¼¤â¤Ê¡¼ #JN Èô¤Ó¥¹¥­¡¼¥ä¡¼¥â¥Ê¡¼
++¤È¤Ô #T35 ¥È¥Ô
++¤È¤Þ¤È #T35 tomato
++¤È¤à #JN ¥È¥à
++¤È¤á #T35 ¥È¥á
++¤È¤â¤è¤â¤Ê¡¼ #JN ÃÎÀ¤¥â¥Ê¡¼
++¤È¤ä¤Þ #T35 ¥È¥äËâ
++¤È¤ä¤Þ #T35 ÂŽÄÂŽÔËâ
++¤È¤ä¤Þ¤ó¤³ #T35 ¥È¥ä¥Þ¥ó¥³
++¤È¤ä¤Þ¤ó¤³ #T35 ÂŽÄÂŽÔÂŽÏÂŽÝÂŽº
++¤È¤è¤Ï¤·¤·¤ß¤ó #T35 Ë­¶¶»Ô̱
++¤È¤é¤¦¤Þ¡¼ #JN (||Žߧ¥ÂŽß)ÂŽÄÂŽ×ÂŽ³ÂŽÏÂŽ°
++¤È¤é¤¦¤Þ¡¼ #JN ¥È¥é¥¦¥Þ¡¼
++¤È¤é¤¦¤Þ¡¼ #JN ÂŽÄÂŽ×ÂŽ³ÂŽÏÂŽ°
++¤È¤é¤¯¤ó¤¢¤ó¤É¤«¤×¤¯¤ó #JN ¤È¤é¤¯¤ó¡õ¤«¤×¤¯¤ó
++¤È¤é¤¯¤ó¤¢¤ó¤É¤«¤×¤¯¤ó #JN ¤È¤é¤¯¤ó¡õ¤«¤×¤¯¤ó 
++¤È¤é¤é¡¼ #JN ¥È¥é¥é¡¼
++¤È¤ê #CN Ä»
++¤È¤ê #CN ÆÓ
++¤È¤ê #KK ÆÓ
++¤È¤ê #T35 Ä»
++¤È¤ê #T35 ÆÓ
++¤È¤ê¤³¤á #CN ¼è¤ê¹þ¤á
++¤È¤ê¤³¤á #CN Ä»ÊÆ
++¤È¤ê¤³¤á #T35 ¼è¤ê¹þ¤á
++¤È¤ê¤³¤á #T35 Ä»ÊÆ
++¤È¤ê¤µ¤ó #JN ¥È¥ê¤µ¤ó
++¤È¤ê¤Ã¤× #T35 ¥È¥ê¥Ã¥×
++¤È¤ê¤È¤È¤ó¤Ç¤¤¤ë¤â¤é¤é¡¼ #JN Ä»¤ÈÈô¤ó¤Ç¤¤¤ë¥â¥é¥é¡¼
++¤È¤ê¤Ï¤à #T35 Ä»¤Ï¤à
++¤È¤ì¤«¤á #T35 ¥È¥ì¥«¥á
++¤È¤ó #T35 ­Å
++¤È¤ó¤­¤ó #CN ¥È¥ó¥­¥ó
++¤È¤ó¤­¤ó #T35 ¥È¥ó¥­¥ó
++¤È¤ó¤Á¤ã¤â¤ó #KK ¥È¥ó¥Á¥ã¥â¥ó
++¤È¤ó¤Á¤ã¤â¤ó #T35 ¥È¥ó¥Á¥ã¥â¥ó
++¤È¤ó¤É¤ë #CJ ¥È¥ó¥É¥ë
++¤È¤ó¤É¤ë #CJ ­Å­Ë
++¤È¤ó¤É¤ë #JN ­Å­Ë
++¤È¤ó¤Ú¤¤ #T35 ¥È¥ó¥Ú¥¤
++¤É¡¼¤â¤¯¤ó #T35 ¤É¡¼¤â·¯
++¤É¤¤¤¨ #JN ¥É¥¤¥¨
++¤É¤¤¤¨ #R5 ¥É¥¤¥¨
++¤É¤¤¤¨ #T35 ¥É¥¤¥¨
++¤É¤¤¤Ä¤â¤Ê¡¼ #JN ¥É¥¤¥Ä¥â¥Ê¡¼
++¤É¤¦¤·¤·¤ã¤´¤­¤Ö¤ê #JN Ʊ»Ö¼Ò¥´¥­¥Ö¥ê
++¤É¤¦¤¸¤ó #T35 Ʊ¿Í
++¤É¤¦¤¸¤ó¤ª¤ó¤Ê #T35 Ʊ¿Í½÷
++¤É¤¦¤Æ¤¤ #T35 ƸÄç
++¤É¤¦¤Ç¤â¤¤¤¤¤Ë¤À #JN ¤É¤¦¤Ç¤â¤¤¤¤¥Ë¥À
++¤É¤¦¤Ç¤â¤¤¤¤¤ä¡¼ #JN ¥É¥¦¥Ç¥â¥¤¥¤¥ä¡¼
++¤É¤¦¤Ç¤â¤¤¤¤¤ä¤½¤ó¤Ê¤³¤È #JN ¤É¤¦¤Ç¤â¤¤¤¤¤ä¡¢¤½¤ó¤Ê¤³¤È¡ª
++¤É¤¦¤Ç¤â¤¤¤¤¤è #JN ¤É¤¦¤Ç¤â¤¤¤¤¤è
++¤É¤¦¤â¤¹¤ß¤Þ¤»¤ó #JN ¥É¥¦¥â¥¹¥ß¥Þ¥»¥ó
++¤É¤¦¤â¤¹¤ß¤Þ¤»¤ó #JN ÂŽÄÂŽÞÂŽ³ÂŽÓÂŽ½ÂŽÐÂŽÏÂŽ¾ÂŽÝ
++¤É¤¦¤è #CJ ¤É¤¦¤è
++¤É¤¦¤è #SUC ¤É¤¦¤è
++¤É¤¦¤í¤¸¤ç¤¦¤Û¤¦¤Ò¤ç¤¦¤¸¤Ð¤ó #JN ƻϩ¾ðÊóɽ¼¨ÈÄ
++¤É¤©¡¼¡¼¤ó #JN ¥É¥©¡¼¡¼¥ó¡ª¡ª¡ª
++¤É¤©¡¼¡¼¤ó2 #JN ¥É¥©¡¼¡¼¥ó¡ª¡ª¡ª£²
++¤É¤­¤å¤½ #T35 DQS
++¤É¤­¤å¤½ #T35 ¥É¥­¥å¥½
++¤É¤­¤å¤½¤ª¤¦¤³¤¯¤Ë¤Ã¤Ý¤ó #JN ¥É¥­¥å¥½²¦¹ñÆüËÜ
++¤É¤­¤å¤½¤ª¤¦¤³¤¯¤Ë¤Ã¤Ý¤ó #JN ÂŽÄÂŽÞÂŽ·ÂŽ­ÂŽ¿²¦¹ñÆüËÜ
++¤É¤­¤å¤½¤Á¤ã¤ó #JN ÂŽÄÂŽÞÂŽ·ÂŽ­ÂŽ¿¤Á¤ã¤ó
++¤É¤­¤å¤â #KK ¥É¥­¥å¥â
++¤É¤­¤å¤â #T35 ¥É¥­¥å¥â
++¤É¤­¤å¤ó #T35 DJN
++¤É¤­¤å¤ó #T35 £Ä£Ñ£Î
++¤É¤­¤å¤ó #T35 ¥É¥­¥å¥ó
++¤É¤­¤å¤ó¤Ê¤«¤¤¤·¤ã #T35 ¥É¥­¥å¥ó¤Ê²ñ¼Ò
++¤É¤¯¤ª¤È¤³ #T35 ÆÇÃË
++¤É¤¯¤·¤ó¤Æ¤¤¤ª¤¦ #JN ÆÈ¿ÈÄ벦
++¤É¤¯¤¸¤¿ #T35 ¤É¤¯¤¸¤¿
++¤É¤¯¤½ #T35 ÆÇÁÇ
++¤É¤¯¤È¤¦ #CN ÆÈÅç
++¤É¤¯¤È¤¦ #T35 ÆÈÅç
++¤É¤¯¤È¤ë¤Þ¤é #JN ¥É¥¯¥È¥ëM
++¤É¤³¤Ô¡¼ #T35 ¥É¥³£Ð
++¤É¤³¤Ô¤¤ #T35 ¥É¥³P
++¤É¤¹¤¦ #T35 ÅÙ¿ô
++¤É¤»¤¤¤µ¤ó #JN ÅÚÀ±¤µ¤ó
++¤É¤Æ¤Á¤å¡¼ #T35 ¥É¥Æ¥Á¥å¡¼
++¤É¤Æ¤Á¤å¤¦ #T35 ¥É¥Æ¥Á¥å¡¼
++¤É¤Ö¤Í¤º¤ß #T35 ¹ÂÁÍ
++¤É¤à #T35 £Ä£Ï£Í
++¤É¤á¤ë¤É #JN ¥É¥á¥ë¥É
++¤É¤é #JN ¥É¥é
++¤É¤é¤¨¤â¤ó¤Õ¤¯¤â¤È¤Õ¤©¡¼¤à #JN ¥É¥é¤¨¤â¤óÊ¡ËÜ¥Õ¥©¡¼¥à
++¤É¤é¤´¤ó #T35 ¥É¥é¥´¥ó
++¤É¤é¤´¤ó¤ª¤¨¤¹¤È #T35 ¥É¥é¥´¥ó¥ª¥¨¥¹¥È
++¤É¤é¤´¤ó¤¹¤È¤Ã¤× #T35 ¥É¥é¥´¥ó¥¹¥È¥Ã¥×
++¤É¤é¤Ã¤­¤Ê¡¼ #JN ¥É¥é¥Ã¥­¥Ê¡¼
++¤É¤ê¤Á¤ó #T35 ¥É¥ê¥Á¥ó
++¤É¤ê¤ë¤Á¤ó¤Á¤ó #T35 ¥É¥ê¥ë¤Á¤ó¤Á¤ó
++¤É¤ë¤¨¤à¤¤¤¤ #T35 $ME
++¤Ê¤¢¤¹¤¦¤£¤Ã¤Á¤³¤à¤®¤Á¤ã¤ó #T35 ¥Ê¡¼¥¹¥¦¥£¥Ã¥Á¾®Çþ¤Á¤ã¤ó
++¤Ê¤¤¤¹¤Ê¤Ø¤Ã¤É¤Õ¤©¤ó #T35 ¥Ê¥¤¥¹¤Ê¥Ø¥Ã¥É¥Õ¥©¥ó¡ª
++¤Ê¤¨ #KS °à¤¨ 
++¤Ê¤¨ #T35 °à¤¨ 
++¤Ê¤¨¤Ê¤¤¤ï #JN ¥Ê¥¨¥Ê¥¤¥ï
++¤Ê¤ª¤ê¤ó #T35 ¤Ê¤ª¤ê¤ó
++¤Ê¤«¤¦¤é¤ï¤Î¤Û¤· #T35 Ã決ϤÎÀ±
++¤Ê¤«¤¸¡¼¤Ô¡¼ #T35 ¤Ê¤«GP
++¤Ê¤«¤¸¤¤¤Ô¤¤ #T35 ¤Ê¤«GP
++¤Ê¤«¤¿¤³ #JN ¤Ê¤«¤¿¤³
++¤Ê¤«¤¿¤³ #T35 ¤Ê¤«¤¿¤³
++¤Ê¤«¤¿¤Þ¤´ #T35 ¤Ê¤«Íñ
++¤Ê¤«¤À¤· #T30 ÃæÅÄ»á
++¤Ê¤«¤Ä¤®¤« #T35 Ãæ·Ñ¤®²Ý
++¤Ê¤«¤Î¤Ò¤È #T35 Ãæ¤Î¿Í
++¤Ê¤¬¤·¤½¤¦¤á¤ó #JN ή¤·¤½¤¦¤á¤ó
++¤Ê¤¬¤Ö¤ó¤Î¤«¤ó¤½¤¦¤â¤¸¤ì¤¹¤æ¤¦¤É¤¦¤¢¤¹¤­¡¼¤¢¡¼¤È #JN Ĺʸ¤Î´¶ÁÛʸ»ú¥ì¥¹Í¶Æ³£Á£Á
++¤Ê¤°¤Á¤ã¤ó¤Í¤ë #T35 ¤Ê¤°¤Á¤ã¤ó¤Í¤ë
++¤Ê¤²¤¹¤Æ¤ë¤â¤Ê¡¼ #JN Åꤲ¼Î¤Æ¤ë¥â¥Ê¡¼
++¤Ê¤´¤ä¤±¤ó #T35 ̾¸Å²°¸©
++¤Ê¤·¤À¤¤ #T35 ̵Âç
++¤Ê¤¾¤Î¤»¤¤¤á¤¤¤¿¤¤ #JN Ææ¤ÎÀ¸Ì¿ÂÎ
++¤Ê¤¾¤Î¤Ë¤Û¤ó¤¸¤ó #JN Ææ¤ÎÆüËÜ¿Í
++¤Ê¤Ã¤Á #JN ¡Ê¡ü¡­¡¼¡®¡ü¡Ë
++¤Ê¤Ã¤Á #JN ¤Ê¤Ã¤Á
++¤Ê¤Ã¤Á #T35 ¤Ê¤Ã¤Á
++¤Ê¤Ã¤Á #T35 °ÂÇÜ
++¤Ê¤Ã¤Á¤¢¤ê¤¬¤È¤¦ #CJ ¤Ê¤Ã¤Á¤¢¤ê¤¬¤È¤¦(¡ü¡­¡¼¡®¡ü)
++¤Ê¤Ã¤Á¤â¤Ê¡¼ #JN ¤Ê¤Ã¤Á¥â¥Ê¡¼
++¤Ê¤Ã¤Á¤å #T35 ¤Ê¤Ã¤Á¤å
++¤Ê¤Ã¤Á¤å¤¦ #T35 Ǽ¿ß
++¤Ê¤Ä¤Á¤å¤¦ #T35 ²Æ¿ß
++¤Ê¤Ä¤Á¤å¤¦¤Ü¤¦ #T35 ²Æ¿ß˼
++¤Ê¤Ä¤Ü¤¦ #T35 ²Æ˼
++¤Ê¤Ä¤á #JN ¥Ê¥Ä¥á
++¤Ê¤Ê¤µ¤ó #JN £·¤µ¤ó
++¤Ê¤Ê¤·¤µ¤ó #T35 ̵̾¤·¤µ¤ó
++¤Ê¤Ê¤·¤µ¤ó¤×¤é¤º¤Þ #JN ̵̾¤·¤µ¤ó¥×¥é¥º¥Þ
++¤Ê¤Ê¤á¤¦¤¨ #T35 ¼Ð¤á¾å
++¤Ê¤Ê¤á¤«¤Ã¤³¤Ï¤ó¤À¤¯¤Æ¤ó¤¿¡¼¤ó¤¨¡¼¤Ï¤ó¤À¤¯¤Æ¤ó¤«¤Ã¤³¤È¤¸¤Ê¤Ê¤á¤×¤ë¤Ã¤Ñ¤Û¤· #JN ¡À(¡¬¢Ï¡¬)¡¿¥×¥ë¥Ã¥Ñ¡ù
++¤Ê¤Ê¤á¤«¤Ã¤³¤Ï¤ó¤À¤¯¤Æ¤ó¤¿¡¼¤ó¤¨¡¼¤Ï¤ó¤À¤¯¤Æ¤ó¤«¤Ã¤³¤È¤¸¤Ê¤Ê¤á¤×¤ë¤Ã¤Ñ¤Û¤· #JN ¡À(ŽߢÏÂŽß)¡¿ÂŽÌÂŽßÂŽÙÂŽ¯ÂŽÊÂŽß¡ù
++¤Ê¤Ë¤¤¤Ã¤Æ¤ë¤Õ¤á¤¤ #CJ ²¿¸À¤Ã¤Æ¤ëÉÔÌÀ
++¤Ê¤Ë¤« #KK ²¿¤«
++¤Ê¤Ë¤« #T35 ²¿¤«
++¤Ê¤Ë¤«¤¢¤ë #CJ ¤Ê¤Ë¤«¤¢¤ë¡©
++¤Ê¤Ë¤«¤Ë¤ª¤Ó¤¨¤ë¤®¤³ #JN ((¡¨ÂŽß§¥ÂŽß)ÂŽ¶ÂŽÞÂŽ¸ÂŽ¶ÂŽÞÂŽ¸ÂŽÌÂŽÞÂŽÙÂŽÌÂŽÞÂŽÙ
++¤Ê¤Ë¤«¤Ë¤ª¤Ó¤¨¤ë¤®¤³ #JN ²¿¤«¤Ë¶±¤¨¤ë¥®¥³
++¤Ê¤Ë¤µ¤Þ #JN ²¿ÍÍ 
++¤Ê¤Ë¤µ¤Þ #T35 ²¿ÍÍ
++¤Ê¤Ë¤ß¤Æ¤ó¤À¤è¤µ¤ë #JN ²¿¸«¤Æ¤ó¤À¤è±î
++¤Ê¤Ë¤ç¤ê¡¼¤Ê #JN ÂŽÅÂŽÆÂŽ®ÂŽØÂŽ°ÂŽÅ
++¤Ê¤Î¤é #SUC ¤Ê¤Î¤é
++¤Ê¤Î¤é¤¢ #CJ ¤Ê¤Î¤é¡Á
++¤Ê¤Þ¤¢¤¤¤Ô¤¤ #T35 À¸IP
++¤Ê¤Þ¤¢¤¿¤¿¤«¤¯¤ß¤Þ¤â¤ë #CJ ¤Ê¤ÞÃȤ«¤¯¸«¼é¤ë
++¤Ê¤Þ¤³ #T35 ¤Ê¤Þ¤³
++¤Ê¤Þ¤³¤×¤ì¤¤ #T35 ¤Ê¤Þ¤³¥×¥ì¥¤
++¤Ê¤Þ¤â¤Î #T35 ¥Ê¥Þ¥â¥Î
++¤Ê¤ß¤«¤ì #CJ ¥Ê¥ß¥«¥ì
++¤Ê¤ß¤À¤Ç¤Þ¤¨¤¬¤ß¤¨¤Þ¤»¤ó #CJ ÎÞ¤ÇÁ°¤¬¸«¤¨¤Þ¤»¤ó¡ª
++¤Ê¤à #JN ¥Ê¥â
++¤Ê¤á¤¯¤¸ #JN ¥Ê¥á¥¯¥¸
++¤Ê¤ä¤ß¤¹¤®¤ë¤È¤Ï¤²¤ë #T35 Ǻ¤ß¤¹¤®¤ë¤ÈÆŤ²¤ë
++¤Ê¤æ¤­¤°¤ë¤Þ #JN ̾Àã¼Ö
++¤Ê¤ê¤­¤ê¤¹¤ì #T35 ¤Ê¤ê¤­¤ê¥¹¥ì
++¤Ê¤ê¤¹¤Þ #S5r ¤Ê¤ê¤¹¤Þ
++¤Ê¤ê¤¿¤È¤Ã¤×¤í¤ª¤É #JN ¤Ê¤ê¤¿¤È¤Ã¤×¤í¤ª¤É
++¤Ê¤ê¤¿¤È¤Ã¤×¤í¤ª¤É #JN ¤Ê¤ê¤¿¤È¤Ã¤×¤í¤ª¤É 
++¤Ê¤ê¤Ð¤ó #T35 ¥Ê¥ê¥Ð¥ó
++¤Ê¤ì¤¢ #W5 Æë¤ì¹ç
++¤Ê¤ì¤¢¤¤ #T35 Æë¤ì¹ç¤¤
++¤Ê¤í #CJ ¤Ê¤í
++¤Ê¤ó¤¬¤ó¤Æ¤¤¤­¤¢¤Ä #JN Æî´ßÄ㵤°µ
++¤Ê¤ó¤±¤¤¤Ð #T35 ¤Ê¤ó¶¥ÇÏ
++¤Ê¤ó¤À¤«¤Ê¡¼¤¢¤ó¤É¤µ¤¤¤³¡¼¤À #JN ¥Ê¥ó¥À¥«¥Ê¡¼¡õ¥µ¥¤¥³¡¼¥À
++¤Ê¤ó¤À¤«¤ó¤À #CJ ¤Ê¤ó¤À¤«¤ó¤À 
++¤Ê¤ó¤Ä¤Ã¤¿¤ê¤·¤Æ #CJ ¤Ê¤ó¤Ä¤Ã¤¿¤ê¤·¤Æ
++¤Ê¤ó¤È¤¤¤¦¤³¤È¤Ç¤·¤ç¤¦ #CJ ¤Ê¤ó¤È¤¤¤¦¤³¤È¤Ç¤·¤ç¤¦
++¤Ê¤ó¤Ð¤¢¤¹¤¯¤¦¤ë #T35 ¥Ê¥ó¥Ð¡¼¥¹¥¯¡¼¥ë
++¤Ê¤ó¤ß¤ó #T35 Æṉ̃
++¤Ê¤ó¤ß¤ó¤¤¤¿ #T35 Æṉ̃ÈÄ
++¤Ê¤ó¤â¤¸¤á¤ò¤¿¤Æ¤è¤ß¤¹¤ë¤Î #CJ ²¿Ê¸»úÌܤò½ÄÆɤߤ¹¤ë¤Î¡©
++¤Ë #T30 ½ªÅß
++¤Ë #T35 2
++¤Ë #T35 ½ªÅß
++¤Ë¡¼ #JN ¥Ë¡¼
++¤Ë¡¼¤¤¤Á¤è¤ó¤¸¤±¤ó #T35 £²¡¦£±£´»ö·ï
++¤Ë¤¤¤Á¤å¤¦ #T35 ny¿ß
++¤Ë¤¤¤Ã¤Ô¤ç¤¦ #CJ ¤Ë°ìɼ
++¤Ë¤­¤³¤¦ #T35 Æó´ü¹»
++¤Ë¤­¤Ó¤¬¤Ç¤­¤¿¤â¤Ê¡¼ #JN ¥Ë¥­¥Ó¤¬½ÐÍ褿¥â¥Ê¡¼
++¤Ë¤¯¤³¤Ã¤×¤ó¤¯¤¨ #CJ ¥Ë¥¯¥³¥Ã¥×¥ó¥¯¥¨!
++¤Ë¤¯¤³¤Ã¤×¤ó¤¯¤¨ #CJ ÂŽÆÂŽ¸ÂŽºÂŽ¯ÂŽÌÂŽßÂŽÝÂŽ¸ÂŽ´!
++¤Ë¤¯¤³¤Ã¤×¤ó¤¯¤¨ #JN ¥Ë¥¯¥³¥Ã¥×¥ó¥¯¥¨!
++¤Ë¤¯¤³¤Ã¤×¤ó¤¯¤¨ #JN ÂŽÆÂŽ¸ÂŽºÂŽ¯ÂŽÌÂŽßÂŽÝÂŽ¸ÂŽ´!
++¤Ë¤¯¤³¤×¡¼¤ó #CJ (¡¦¢Ï¡¦)¥Ë¥¯¥³¥×¡¼¥ó 
++¤Ë¤¯¤³¤×¡¼¤ó #CJ (ÂŽ¥¢ÏÂŽ¥)ÂŽÆÂŽ¸ÂŽºÂŽÌÂŽßÂŽ°ÂŽÝ 
++¤Ë¤¯¤³¤×¡¼¤ó #CJ ¥Ë¥¯¥³¥×¡¼¥ó
++¤Ë¤¯¤³¤×¡¼¤ó #CJ ÂŽÆÂŽ¸ÂŽºÂŽÌÂŽßÂŽ°ÂŽÝ
++¤Ë¤¯¤³¤×¡¼¤ó #JN (ÂŽ¥¢ÏÂŽ¥)ÂŽÆÂŽ¸ÂŽºÂŽÌÂŽßÂŽ°ÂŽÝ
++¤Ë¤¯¤³¤×¡¼¤ó #JN ¥Ë¥¯¥³¥×¡¼¥ó
++¤Ë¤¯¤³¤×¡¼¤ó #JN ÂŽÆÂŽ¸ÂŽºÂŽÌÂŽßÂŽ°ÂŽÝ
++¤Ë¤¯¤Ï¤ó¤Ë¤ã #KK ÆùÈ̼ã
++¤Ë¤¯¤Ï¤ó¤Ë¤ã #T35 ÆùÈ̼ã
++¤Ë¤¯¤Ù¤ó¤­ #T35 ÆùÊØ´ï
++¤Ë¤²¤Ã¤È #JN 2¥²¥Ã¥È
++¤Ë¤²¤Æ¤§¤Ë¤²¤Æ¤§¤Ë¤²¤Æ¤§¤Ï¤ä¤¯¤Ë¤²¤Æ¤§¤Ã #JN ƨ¤²¤Æ¤§Æ¨¤²¤Æ¤§Æ¨¤²¤Æ¤§Á᤯ƨ¤²¤Æ¤§¥Ã¡ª
++¤Ë¤³¤ì¤Ã¤È #JN ¥Ë¥³¥ì¥Ã¥È
++¤Ë¤· #JN Æó»à
++¤Ë¤· #JNS Æó»à
++¤Ë¤· #T35 Æó»à
++¤Ë¤·¤¿¤ó #JN Æó»à¥¿¥ó
++¤Ë¤·¤¿¤ó #T35 Æó»à¥¿¥ó
++¤Ë¤·¤Æ¤Ä¤Ð¤¹¤¸¤ã¤Ã¤¯¤¸¤±¤ó #KK À¾Å´¥Ð¥¹¥¸¥ã¥Ã¥¯»ö·ï
++¤Ë¤·¤Æ¤Ä¤Ð¤¹¤¸¤ã¤Ã¤¯¤¸¤±¤ó #T35 À¾Å´¥Ð¥¹¥¸¥ã¥Ã¥¯»ö·ï
++¤Ë¤·¤å¤¦¤Í¤ó¤¤¤Ù¤ó¤È #T35 £²¼þǯ¥¤¥Ù¥ó¥È
++¤Ë¤¸¤²¤ó #T35 Æ󼡸µ
++¤Ë¤¸¤²¤ó¤ª¤¿ #T35 Æ󼡸µ¥ª¥¿
++¤Ë¤¸¤²¤ó¤ò¤¿ #T35 Æ󼡸µ¥ò¥¿
++¤Ë¤¸¤å¤¦ #T35 20
++¤Ë¤¸¤å¤¦¤Ê¤Ê¤·¤­¤¯¤½¤¹¤ì¤¯¤Á¤¯¤Æ¤¤ #JN 27¼°Êµ¥¹¥ì¶îÃàÄú
++¤Ë¤¸¤å¤Ã¤È¤¦¤·¤ó #T35 20Æ®¿À
++¤Ë¤¸¤ç¤¦¤¬¤ï¤é¤Î¤é¤¯¤·¤ç #T35 Æó¾ò²Ï¸¶¤ÎÍî½ñ
++¤Ë¤»¤¢¤æ #T35 µ¶¤¢¤æ
++¤Ë¤»¤Ï¤ë¤Ê¤¢¤ó¤É¤¦¤Ë¤å¤¦¤ê¡¼¤Ê #JN µ¶½ÕºÚ¡õ¤¦¤Ë¤å¤¦¥ê¡¼¥Ê
++¤Ë¤»¤á¤Ã¤» #T35 µ¶¥á¥Ã¥»
++¤Ë¤»¤â¤Ê¡¼ #JN µ¶¥â¥Ê¡¼
++¤Ë¤»¤ó¤Î¤ï¤¶ #CJ 2000¤Îµ»
++¤Ë¤À¡¼ #JN ¥Ë¥À¡¼
++¤Ë¤À¡¼ #JN ÂŽÆÂŽÀÂŽÞÂŽ°
++¤Ë¤À¡¼¤¿¤¤¤¤ #JN ¥Ë¥À¡¼Âç°Ó
++¤Ë¤À¡¼¤Á¤ç #JN ¥Ë¥À¡¼¥Á¥ç
++¤Ë¤À¤À¡¼ #JN ¥Ë¥À¥À¡¼
++¤Ë¤À¤À¡¼ #JN ¥Ë¥À¥À¡¼ 
++¤Ë¤Á¤ã¤ó #CJ 2ch
++¤Ë¤Á¤ã¤ó #CJ £²¤Á¤ã¤ó
++¤Ë¤Á¤ã¤ó #T35 2ch
++¤Ë¤Á¤ã¤ó #T35 £²¤Á¤ã¤ó
++¤Ë¤Á¤ã¤ó¤µ¤Ð¤«¤Ã¤Æ¤Ê¤«¤ó¤·¤¸¤ç #T35 2ch»ª¾¡¼ê¤Ê´Æ»ë½ê
++¤Ë¤Á¤ã¤ó¤Æ¤­¤Ë¤Ï #CJ £²£ã£èŪ¤Ë¤Ï
++¤Ë¤Á¤ã¤ó¤Æ¤­¤Ò¤ç¤¦¤« #T35 £²£ã£èŪɾ²Á
++¤Ë¤Á¤ã¤ó¤Í¤ë¤¯¤½¤¹¤ì¤Ã¤É¤Ä¤¤¤Û¤¦¤»¤ó¤»¤ó #JN £²¤Á¤ã¤ó¤Í¤ëʵ¥¹¥ì¥Ã¥ÉÄÉÊüÀïÀþ
++¤Ë¤Á¤ã¤ó¤Í¤ë¤°¤ó¤Ý¤¦¤¬¤¤¤® #JN £²£ã£è·³Ë¡²ñµÄ
++¤Ë¤Á¤ã¤ó¤Í¤ë¤µ¤Ý¡¼¤È¤»¤ó¤¿¡¼ #JN £²¤Á¤ã¤ó¤Í¤ë¥µ¥Ý¡¼¥È¥»¥ó¥¿¡¼
++¤Ë¤Á¤ã¤ó¤Í¤ë¤¼¤ó¤¤¤¿¤Ë¤ó¤­¤È¤¦¤Ê¤á¤ó¤È #T35 2¤Á¤ã¤ó¤Í¤ëÁ´ÈĿ͵¤¥È¡¼¥Ê¥á¥ó¥È
++¤Ë¤Á¤ã¤ó¤Í¤ë¤¿¤¢¤Ü #T35 2¤Á¤ã¤ó¤Í¤ë¥¿¡¼¥Ü
++¤Ë¤Á¤ã¤ó¤Í¤ë¤Ä¤¦ #T35 2ch2
++¤Ë¤Á¤ã¤ó¤Í¤ë¤Ä¤¦ #T35 2¤Á¤ã¤ó¤Í¤ë2
++¤Ë¤Á¤ã¤ó¤Í¤ë¤Ê¤Ê¤Á¤å¤¦¤¤¤¿ #CJ £²¤Á¤ã¤ó¤Í¤ë¼·¿ßÈÄ
++¤Ë¤Á¤ã¤ó¤Í¤ë¤Ê¤Ê¤Á¤å¤¦¤¤¤¿ #T35 £²¤Á¤ã¤ó¤Í¤ë¼·¿ßÈÄ
++¤Ë¤Á¤ã¤ó¤Í¤ë¤Ë #T35 2ch2
++¤Ë¤Á¤ã¤ó¤Í¤ë¤Ë #T35 2¤Á¤ã¤ó¤Í¤ë2
++¤Ë¤Á¤ã¤ó¤Í¤ë¤Î¤Ï¤ó¤Ö¤ó¤Ï¤Í¤¿¤Ç¤Ç¤­¤Æ¤¤¤Þ¤¹ #CJ 2¤Á¤ã¤ó¤Í¤ë¤ÎȾʬ¤Ï¥Í¥¿¤Ç¤Ç¤­¤Æ¤¤¤Þ¤¹
++¤Ë¤Á¤ã¤ó¤Í¤ë¤Ó¤å¤¦¤¢ #T35 2¤Á¤ã¤ó¤Í¤ë¥Ó¥å¡¼¥¢
++¤Ë¤Á¤ã¤ó¤Í¤ë¤Ö¤é¤¦¤¶ #T35 2¤Á¤ã¤ó¤Í¤ë¥Ö¥é¥¦¥¶
++¤Ë¤Á¤ã¤ó¤Ö¤í¤° #T35 2ch-Blog
++¤Ë¤Á¤ã¤ó¤×¤í¤Ð¤¤¤À¤¢ #T35 2ch¥×¥í¥Ð¥¤¥À¡¼
++¤Ë¤Á¤ã¤ó¤ì¤ó¤á¤¤ #JN 2¤Á¤ã¤óÏ¢ÌÁ
++¤Ë¤Ã¤­ #JN Æüµ­
++¤Ë¤Ã¤­ #T35 Æüµ­
++¤Ë¤Ã¤­¡¼ #JN ¥Ë¥Ã¥­¡¼
++¤Ë¤Ã¤¯¤·¤ó¤»¤¤ #T30 ¥Ë¥Ã¥¯¿½ÀÁ
++¤Ë¤Ã¤»¤¤ #T35 ¥Ë¥Ã¥»¥¤
++¤Ë¤Ã¤»¤¤ #T35 ÆüÀÂ
++¤Ë¤Ã¤Ý¤ó¤Ï¤Ï¤ó¤»¤¤¤·¤ë #CJ ÆüËܤÏÈ¿¾Ê¤·¤ë¡ª
++¤Ë¤È¤¦¤¸¤ç¤æ¤¦ #T35 ÆóÅù½÷Í¥
++¤Ë¤È¤¦¤Ø¤¤ #JN ÆóÅùʼ
++¤Ë¤È¤¦¤Ø¤¤ #T35 ÆóÅùʼ
++¤Ë¤Ë¤Á¤ã¤ó¤¬¤¢¤Ã¤¿¤é¤·¤ê¡¼¤º #SUC ¤Ë£²¤Á¤ã¤ó¤¬¤¢¤Ã¤¿¤é¥·¥ê¡¼¥º
++¤Ë¤Ë¤Á¤ã¤ó¤¬¤¢¤Ã¤¿¤é¤·¤ê¡¼¤º #T35 ¤Ë£²¤Á¤ã¤ó¤¬¤¢¤Ã¤¿¤é¥·¥ê¡¼¥º
++¤Ë¤Ë¤Á¤ã¤ó¤¬¤¢¤Ã¤¿¤é¤·¤ê¤¤¤º #T35 ¤Ë£²¤Á¤ã¤ó¤¬¤¢¤Ã¤¿¤é¥·¥ê¡¼¥º
++¤Ë¤Ï¤ï¤é¤Ã¤¿ #CJ ¤Ë¤Ï¾Ð¤Ã¤¿¡ª
++¤Ë¤Û¤ó¤µ¤ó¤­¤ç¤¦¤À¤¤¤¬¤¯ #T35 ÆüËÜ£³µþÂç³Ø
++¤Ë¤Û¤ó¤»¤¤¤á¤¤ #KK ÆüËÜÀ¸Ì¿
++¤Ë¤Û¤ó¤Á¤ã¤ó #KK ¥Ë¥Û¥ó¤Á¤ã¤ó
++¤Ë¤Û¤ó¤Á¤ã¤ó #T35 ¥Ë¥Û¥ó¤Á¤ã¤ó
++¤Ë¤ã¤¦ #JN ¤Ë¤ã¤¦¡¡
++¤Ë¤ä¤Ë¤ä #CJ ¥Ë¥ä¥Ë¥ä
++¤Ë¤ä¤ê #CJ ¡Ê¡±¡¼¡±¡Ë¥Ë¥ä¥ê
++¤Ë¤ä¤ê #CJ ¥Ë¥ä¥ê
++¤Ë¤ä¤ê¤Ã #CJ ¡Ê¡±¡¼¡±¡Ë¥Ë¥ä¥ê¥Ã 
++¤Ë¤ä¤ê¤Ã #CJ ¡Ê¡±¡¼¡±¡ËÂŽÆÂŽÔÂŽØÂŽ¯ 
++¤Ë¤ä¤ê¤Ã #JN ¡Ê¡±¡¼¡±¡ËÂŽÆÂŽÔÂŽØÂŽ¯
++¤Ë¤ä¤ê¤Ã #JN ¥Ë¥ä¥ê¥Ã
++¤Ë¤ä¤ê¤Ã #JN ÂŽÆÂŽÔÂŽØÂŽ¯
++¤Ë¤å¡¼¤¹¤¹¤Æ¡¼¤·¤ç¤ó #KK ¥Ë¥å¡¼¥¹¥¹¥Æ¡¼¥·¥ç¥ó
++¤Ë¤å¤¦¤¹¤½¤¯¤Û¤¦¤×¤é¤¹ #T35 ¥Ë¥å¡¼¥¹Â®Êó+
++¤Ë¤å¤¦¤½¤¯¤×¤é¤¹¤­¤·¤ã #T35 ¥Ë¥å¡¼Â®+µ­¼Ô
++¤Ë¤ç #RT ¤Ë¤ç
++¤Ë¤ç¤¤¤¬¤¿ #T35 ¥Ë¥ç¥¤³ã
++¤Ë¤ç¤¤¤¬¤¿ #T35 ÂŽÆÂŽ®ÂŽ²³ã
++¤Ë¤ç¤¬¡¼¤ó #CJ (ŽߧÕÂŽß)ÂŽÆÂŽ®ÂŽ¶ÂŽÞÂŽ°ÂŽÝ
++¤Ë¤ç¤¬¡¼¤ó #CJ ¥Ë¥ç¥¬¡¼¥ó
++¤Ë¤ç¤¬¡¼¤ó #CJ ÂŽÆÂŽ®ÂŽ¶ÂŽÞÂŽ°ÂŽÝ
++¤Ë¤ç¤Á¤ó¤À¤ó #T35 ½÷ÄÁÃÄ
++¤Ë¤é¤¤¤à #JN ¥Ë¥é¥¤¥à
++¤Ë¤é¤Á¤ã¤¨¤ë¤»¤¤¤Ð¡¼ #JN ¥Ë¥é¥Á¥ã¥¨¥ë¥»¥¤¥Ð¡¼
++¤Ë¤é¤Á¤ã¤Å¤Þ #JN ¥Ë¥éÃãºÊ
++¤Ë¤é¤Á¤ã¤Í¤³ #JN ¥Ë¥éÃãÇ­
++¤Ë¤é¤Á¤ã¤à¤¹¤á #JN ¥Ë¥éÃã̼
++¤Ë¤é¤à¤· #JN ¥Ë¥éÃî
++¤Ë¤ë¤Ï¡¼¤Ë¤ã¤ó #JN ¤Ë¤ë¤Ï¡¼¤Ë¤ã¤ó
++¤Ë¤ï¤« #T35 ¥Ë¥ï¥«
++¤Ë¤ï¤«¤é¤·¤ê¡¼¤º #CN Äí¤«¤é¥·¥ê¡¼¥º
++¤Ë¤ï¤«¤é¤·¤ê¡¼¤º #T35 Äí¤«¤é¥·¥ê¡¼¥º
++¤Ë¤ï¤«¤é¤·¤ê¤¤¤º #T35 Äí¤«¤é¥·¥ê¡¼¥º
++¤Ë¤ó¤¤¤¿¤ó #JN Ǥ°Õ¤¿¤ó
++¤Ë¤ó¤·¤ó #KK Ç¥¿±
++¤Ë¤ó¤·¤ó #T35 Ç¥¿±
++¤Ë¤ó¤¸¤ã #JN ¥Ë¥ó¥¸¥ã
++¤Ë¤ó¤Æ¤ó¤É¤¦¤«¤¤¤°¤ó¤³¤¦¤¯¤¦¤¿¤¤ #T35 ǤŷƲ³¤·³¹Ò¶õÂâ
++¤Ë¤ó¤é¤¤¤ó #T35 Ǧ¥é¥¤¥ó
++¤Ì¡¼¤ë #T35 ¥Ì¡¼¥ë
++¤Ì¤¦¤¬¤¿ #CN ¤Ì¤¦¤¬¤¿
++¤Ì¤¦¤¬¤¿ #T35 ¤Ì¤¦¤¬¤¿
++¤Ì¤¦¤ë #T35 ¥Ì¡¼¥ë
++¤Ì¤­¤Ê¤ß #F04 ¤Ì¤­¤Ê¤ß
++¤Ì¤­¤Ê¤ß #T35 ¤Ì¤­¤Ê¤ß
++¤Ì¤Ã¤Ø¤Ã¤Û¡¼ #CJ ¥Ì¥Ã¥Ø¥Ã¥Û¡¼
++¤Ì¤Ã¤Ø¤Ã¤Û¡¼ #JN (ÂŽ¥¢ÏÂŽ¥¢ÏÂŽ¥)ÂŽÇÂŽ¯ÂŽÍÂŽ¯ÂŽÎÂŽ°
++¤Ì¤Ã¤Ø¤Ã¤Û¡¼ #JN ¤Ì¤Ã¤Ø¤Ã¤Û¡¼
++¤Ì¤Ã¤Ø¤Ã¤Û¡¼ #JN ¥Ì¥Ã¥Ø¥Ã¥Û¡¼
++¤Ì¤Ã¤Ø¤Ã¤Û¡¼ #JN ÂŽÇÂŽ¯ÂŽÍÂŽ¯ÂŽÎÂŽ°
++¤Ì¤Ã¤Ø¤Ã¤Û¡¼ #T35 (¡¦¢Ï¡¦¢Ï¡¦)¥Ì¥Ã¥Ø¥Ã¥Û¡¼
++¤Ì¤Ã¤Ø¤Ã¤Û¡¼ #T35 (ÂŽ¥¢ÏÂŽ¥¢ÏÂŽ¥)ÂŽÇÂŽ¯ÂŽÍÂŽ¯ÂŽÎÂŽ°
++¤Ì¤Ã¤Ý¤ó #T35 ¥Ì¥Ã¥Ý¥ó
++¤Ì¤Þ¤Ã¤­ #KK ¤Ì¤Þ¤Ã¤­
++¤Ì¤Þ¤Ã¤­ #T35 ¤Ì¤Þ¤Ã¤­
++¤Ì¤ê¤«¤Ù¤â¤Ê¡¼ #JN ¤Ì¤êÊÉ¥â¥Ê¡¼
++¤Ì¤ë #KY ¥Ì¥ë
++¤Ì¤ë¤Ý #T35 ¤Ì¤ë¤Ý
++¤Í #CJ ne¡ª
++¤Í¡¼¤Î #JN ¥Í¡¼¥Î
++¤Í¡¼¤è¤ª¤Ö¤Í¡¼¤è #JN ¥Í¡¼¥è¡¦¥ª¥Ö¡¦¥Í¡¼¥è
++¤Í¡¼¤è¤É¤¦¤á¤¤ #JN ¥Í¡¼¥èƱÌÁ
++¤Í¤¨ #JN ¤Í¤¨
++¤Í¤¨¤Í¤¨ #CJ ¤Í¤§¤Í¤§
++¤Í¤¨¤Ü¤¯¤¹¤´¤¤¤Ç¤·¤ç #JN ¤Í¤¨¤Ü¤¯¤¹¤´¤¤¤Ç¤·¤ç
++¤Í¤ª¤¦¤¦¤í¤ó¤Á¤ã #T35 ¥Í¥ª±¨Î¶Ãã
++¤Í¤ª¤¿¤¤¤Æ¤¤ #JN ¥Í¥ªÂçÄë
++¤Í¤ª¤à¤®¤Á¤ã #JN ¥Í¥ª¤à¤®Ãã
++¤Í¤ª¤à¤®¤Á¤ã #JN ¥Í¥ªÇþÃã
++¤Í¤«¤Þ #T30 ¥Í¥«¥Þ
++¤Í¤«¤Þ #T35 ¥Í¥«¥Þ
++¤Í¤® #CN ¤Í¤®
++¤Í¤® #CN ¥Í¥®
++¤Í¤® #T35 ¤Í¤®
++¤Í¤® #T35 ¥Í¥®
++¤Í¤¯¤í¤Þ¤é¤é¡¼ #JN ¥Í¥¯¥í¥Þ¥é¥é¡¼
++¤Í¤³¤À¤¤¤¹¤­ #CJ ¤Í¤³Âç¹¥¤­
++¤Í¤³¤ä¤·¤­ #CN Ç­²°Éß
++¤Í¤³¤ä¤·¤­ #T35 Ç­²°Éß
++¤Í¤¹ #JN ¥Í¥¹
++¤Í¤¹¤±¤·¤ó¤¸¤ã #T35 ¥Í¥¹¥±¿®¼Ô
++¤Í¤¹¤â¤Ê¡¼ #JN ¥Í¥¹¥â¥Ê¡¼
++¤Í¤º¤ß¤ª¤È¤³ #JN ¥Í¥º¥ßÃË
++¤Í¤º¤ß¤Ï¤é¤æ¤¦¤¶¤ó #JN Á͸¶Íº»°
++¤Í¤¿ #T35 ¥Í¥¿
++¤Í¤¿¤·¤ç¤¯¤Ë¤ó¤¹¤ì #T35 ¥Í¥¿¿¦¿Í¥¹¥ì
++¤Í¤¿¤¹¤ì #T35 ¥Í¥¿¥¹¥ì
++¤Í¤¿¤À¤í #CJ ¥Í¥¿¤À¤í¡©
++¤Í¤¿¤Ð¤é¤·¤Á¤å¤¦ #T35 ¥Í¥¿¤Ð¤é¤·¿ß
++¤Í¤Á¤±¤Ã¤È¤¸¤¤¤µ¤ó #JN ¥Í¥Á¥±¥Ã¥È¤¸¤¤¤µ¤ó¡¡
++¤Í¤Á¤º¤ó #T35 ¥Í¥Á¥º¥ó
++¤Í¤Á¤º¤ó #T35 ÙÔ¥Á¥º¥ó
++¤Í¤Á¤å¤¦ #T35 ¥Í¿ß
++¤Í¤Á¤ó #T35 ¥ÍÄÁ
++¤Í¤Ã¤È¤Á¤ó #T35 NetÄÁ
++¤Í¤Ã¤È¤×¤ì¤¤¤ä¤¢ #T35 ¥Í¥Ã¥È¥×¥ì¥¤¥ä¡¼
++¤Í¤Ã¤È¤é¤ó¤Ê¤¢ #KK ¥Í¥Ã¥È¥é¥ó¥Ê¡¼
++¤Í¤Ê¤Ù #T35 ¥Í¥Ê¥Ù
++¤Í¤Ë¤Á¤ê¡¼¤ó #JN ¡Ê¡¦¢Ï¡¦¡ËÂŽÈÂŽÆÂŽÁÂŽØÂŽ°ÂŽÝ
++¤Í¤Ë¤Á¤ê¡¼¤ó #JN ¥Í¥Ë¥Á¥ê¡¼¥ó
++¤Í¤Ë¤Á¤ê¡¼¤ó #T35 ¥Í¥Ë¥Á¥ê¡¼¥ó
++¤Í¤á¤ó¤Ê #CJ ¤Í¤á¤ó¤Ê
++¤Í¤é¤¢ #T35 ¥Í¥é¡¼
++¤Í¤é¤ó¤Á¤å¤¦ #T35 ¥Í¥é¥ó¿ß
++¤Í¤ì #CJ ¿²¤ì
++¤Í¤ó¤Á¤ã¤¯ #T35 Ç´Ãå
++¤Í¤ó¤Á¤ã¤¯¤¯¤ó #T35 Ç´Ãå·¯
++¤Í¤ó¤Ö¤Ä¤·¤å¤¦¤È¤¦¤ß¤«¤¤ #KK Ç°Ê©½¡Åϳ¤²ñ
++¤Í¤ó¤Ö¤Ä¤·¤å¤¦¤È¤¦¤ß¤«¤¤ #T35 Ç°Ê©½¡Åϳ¤²ñ
++¤Í¤ó¤ê¤ç¤¦ #T35 dzÎÁ
++¤Î¡¼¤Á¤ã¤ó #JN ¤Î¡¼¤Á¤ã¤ó
++¤Î¡¼¤Í #JN ¥Î¡¼¥Í
++¤Î¤¢¤ª¤¿ #T35 ¥Î¥¢¥ª¥¿
++¤Î¤¤¤Ã¤Ñ¤ó¤Æ¤­¤Ê¤È¤¯¤Á¤ç¤¦ #SUC ¤Î°ìÈÌŪ¤ÊÆÃħ
++¤Î¤¦¤« #JN ÇÀ²È
++¤Î¤¦¤­¤ç¤¦ #T35 ÇÀ¶¨
++¤Î¤¦¤Ê¤¤ #T35 ǾÆâ
++¤Î¤¦¤Ê¤¤¤¢¤Ü¡¼¤ó #T30 ǾÆ⤢¤Ü¡¼¤ó
++¤Î¤ª¤È¤ó¤»¤ó¤»¤¤ #T35 ¥Î¡¼¥È¥óÀèÀ¸
++¤Î¤ª¤È¤ó¤È¤é¤Ã¤× #T35 ¥Î¡¼¥È¥ó¥È¥é¥Ã¥×
++¤Î¤« #CJ ¤Î¤«
++¤Î¤« #SUC ¤Î¤«
++¤Î¤«¡¼ #JN ¥Î¥«¡¼
++¤Î¤°¤½ #T35 NGS
++¤Î¤¹¤¿¤ë¤Ï #T35 ¥Î¥¹¥¿¥ëÇÈ
++¤Î¤Î¤½¡¼¤ê #JN ¤Î¤ÎÁíÍý
++¤Î¤Î¤¿¤ó #JN ¤Î¤Î¤¿¤ó
++¤Î¤Î¤¿¤ó #T35 ¤Î¤Î¤¿¤ó
++¤Î¤Î¤¿¤ó #T35 ÄÔ
++¤Î¤Ó #KSr ¿­¤Ó
++¤Î¤Ó¤Î¤Ó¤·¤¿¤ä¤Ä #JN ¤Î¤Ó¤Î¤Ó¤·¤¿¥ä¥Ä
++¤Î¤Ó¤ç¤ß¤å¤¢¤¢¤à #JN ¥Î¥Ó¥ç¥ß¥å¥¢¥¡¥à
++¤Î¤Ó¤ç¤ß¤å¤¢¤¢¤à #JN ÂŽÉÂŽËÂŽÞÂŽ®ÂŽÐÂŽ­ÂŽ±ÂŽ§ÂŽÑ
++¤Î¤Ö¤ä¤Ü #T35 ¤Î¤Ö¤ä¤Ü
++¤Î¤è¤«¤ó #CJ ¤Îͽ´¶!!
++¤Î¤é¤Ê¤Ã¤Á #JN ÌîÎɤʤäÁ
++¤Î¤é¤Í¤³ #JN ÌîÎÉÇ­
++¤Î¤ê #T35 ³¤ÂÝ
++¤Î¤ê¤ò #T35 ¥Î¥ê¥ò
++¤Î¤í¤¤¤Þ¤¢¤¹ #CJ ¼ö¤Þ¡¼¤¹
++¤Î¤í¤¾¤¦ #T35 ¤Î¤í¤¾¤¦
++¤Î¤ó¤¹¤Æ #T35 ¥Î¥ó¥¹¥Æ
++¤Ï #KK ÍÕ
++¤Ï #T35 ÍÕ
++¤Ï¤¡ #CJ ¥Ï¥¡¡©
++¤Ï¤¡ #JN ¡Ê¡ë§¥¡ë)ÂŽÊÂŽ§¡©
++¤Ï¤¡ #JN ¥Ï¥¡?
++¤Ï¤¡¤Ï¤¡ #CJ (;¡­§¥¡®)¥Ï¥¡¥Ï¥¡ 
++¤Ï¤¡¤Ï¤¡ #CJ (;¡­§¥¡®)ÂŽÊÂŽ§ÂŽÊÂŽ§ 
++¤Ï¤¡¤Ï¤¡ #CJ ¥Ï¥¡¥Ï¥¡
++¤Ï¤¡¤Ï¤¡ #CJ ÂŽÊÂŽ§ÂŽÊÂŽ§
++¤Ï¤¡¤Ï¤¡ #JN (;¡­§¥¡®)ÂŽÊÂŽ§ÂŽÊÂŽ§
++¤Ï¤¡¤Ï¤¡ #JN ¥Ï¥¡¥Ï¥¡
++¤Ï¤¡¤Ï¤¡ #JN ÂŽÊÂŽ§ÂŽÊÂŽ§
++¤Ï¤¡¤Ï¤¡ #T30 ¥Ï¥¡¥Ï¥¡
++¤Ï¤¡¤Ï¤¡ #T30 ÂŽÊÂŽ§ÂŽÊÂŽ§
++¤Ï¤¡¤Ï¤¡¤Ê¤ó¤Æ¤Ç¤­¤Ê¤¤¤è #CJ ÂŽÊÂŽ§ÂŽÊÂŽ§¤Ê¤ó¤Æ½ÐÍè¤Ê¤¤¤è¡Ä
++¤Ï¤¡¤Ï¤¡¤Ê¤ó¤Æ¤Ç¤­¤Ê¤¤¤è #JN ¥Ï¥¡¥Ï¥¡¤Ê¤ó¤Æ½ÐÍè¤Ê¤¤¤è¡Ä
++¤Ï¤¡¤Ï¤¡¤Ê¤ó¤Æ¤Ç¤­¤Ê¤¤¤è #JN ÂŽÊÂŽ§ÂŽÊÂŽ§¤Ê¤ó¤Æ½ÐÍè¤Ê¤¤¤è¡Ä
++¤Ï¤¢ #CJ ¤Ï¤¡¡©
++¤Ï¤¢ #JN ¡Ê¡ë§¥¡ë)ÂŽÊÂŽ§¡©
++¤Ï¤¢¤Ï¤¢ #CJ ¥Ï¥¡¥Ï¥¡
++¤Ï¤¤¤­¤ç #CN ÇÑÔÒ
++¤Ï¤¤¤­¤ç #T35 ÇÑÔÒ
++¤Ï¤¤¤¹¤´¤¤¤¹¤´¤¤ #JN ¡³¡ÌŽߧ¥ÂŽß¡ÍШŽÊÂŽ²ÂŽ½ÂŽºÂŽÞÂŽ²ÂŽ½ÂŽºÂŽÞÂŽ²
++¤Ï¤¤¤¹¤´¤¤¤¹¤´¤¤ #JN ¥Ï¥¤¥¹¥´¥¤¥¹¥´¥¤
++¤Ï¤¤¤¹¤´¤¤¤¹¤´¤¤ #JN ÂŽÊÂŽ²ÂŽ½ÂŽºÂŽÞÂŽ²ÂŽ½ÂŽºÂŽÞÂŽ²
++¤Ï¤¤¤½¤Ê¤»¤ì¤Ö¤Ë¤Þ¤¿¤¤¤Ã¤Ý #CJ ¥Ï¥¤¥½¤Ê¥»¥ì¥Ö¤Ë¤Þ¤¿°ìÊâ¶á¤Å¤­¤Þ¤·¤¿¤Ç¤¹¡£
++¤Ï¤¤¤Ã¤¤¤½¤¦ #CJ Æþ¤Ã¤¤¤½¤¦
++¤Ï¤¤¤É #JN ¤Ï¤¤¤É
++¤Ï¤¤¤É #T35 ¤Ï¤¤¤É
++¤Ï¤¤¤à¤Ä #T35 ³¥¥à¥Ä
++¤Ï¤«¡¼ #T35 ¥Ï¥«¡¼
++¤Ï¤«¡¼ #T35 Ê衼
++¤Ï¤«¤¢ #T35 ¥Ï¥«¡¼
++¤Ï¤«¤¢ #T35 Ê衼
++¤Ï¤«¤® #KK ÍÕ¸°
++¤Ï¤«¤®¤¤¤¿ #CN ÍÕ¸°ÈÄ
++¤Ï¤«¤®¤¤¤¿ #T35 ÍÕ¸°ÈÄ
++¤Ï¤«¤®¤¤¤¿¤µ¤¤¤â¤¨¤ª¤È¤³¤È¡¼¤Ê¤á¤ó¤È #T35 ÍÕ¸°ÈĺÇdz¤¨Ã˥ȡ¼¥Ê¥á¥ó¥È
++¤Ï¤«¤®¤¤¤¿¤µ¤¤¤â¤¨¤È¡¼¤Ê¤á¤ó¤È #KK ÍÕ¸°ÈĺÇ˨¥È¡¼¥Ê¥á¥ó¥È
++¤Ï¤«¤®¤¤¤¿¤µ¤¤¤â¤¨¤È¡¼¤Ê¤á¤ó¤È #T35 ÍÕ¸°ÈĺÇ˨¥È¡¼¥Ê¥á¥ó¥È
++¤Ï¤«¤®¤»¤ó¤½¤¦ #T35 ÍÕ¸°ÀïÁè
++¤Ï¤«¤®¤Á¤å¤¦ #T35 ÍÕ¸°¿ß
++¤Ï¤«¤®¤Ã¤³ #T35 ÍÕ¸°¤Ã»Ò
++¤Ï¤­¤å¤¦¤ó #CJ HQN
++¤Ï¤®¤¤¤¿ #CN ÇëÈÄ
++¤Ï¤®¤¤¤¿ #T35 ÇëÈÄ
++¤Ï¤®¤ï¤é #CJ (Ç븶
++¤Ï¤®¤ï¤é #CJ Ç븶
++¤Ï¤¯ #T30 ¥Ï¥¯
++¤Ï¤¯¤½¤ê¡¼¤Ê¤Ø #JN ¤Ï¤¯¤½¥ê¡¼¥Ê¤Ø
++¤Ï¤¯¤À¤Ä¤Á¤å¤¦ #T35 ÇíÃ¥¿ß
++¤Ï¤¯¤Á #T35 ÇòÃÔ
++¤Ï¤°¤­ #JN »õ·Ô
++¤Ï¤°¤­ #T35 »õ·Ô
++¤Ï¤°¤ë¤Þ¤ª¤¦ #JN »õ¼Ö²¦
++¤Ï¤°¤ë¤Þ¤ï¤ó¤Á¤§¤ó #JN »õ¼Ö¥ï¥ó¥Á¥§¥ó
++¤Ï¤°¤ë¤Þ¤ï¤ó¤Á¤§¤ó #JN »õ¼Ö¥ï¥ó¥Á¥§¥ó¡Ê²¾¾Î¡Ë
++¤Ï¤°¤ì¤Ê¤Þ¤³ #T35 ¤Ï¤°¤ì¤Ê¤Þ¤³
++¤Ï¤±¡¼¤ó #T30 ¥Ï¥±¡¼¥ó
++¤Ï¤±¡¼¤ó #T30 ÂŽÊÂŽ¹ÂŽ°ÂŽÝ
++¤Ï¤² #T35 »³²¼
++¤Ï¤²¤·¤¯¤¯¤Î¤¤¤Á #JN ·ã¤·¤¯¤¯¥Î°ì
++¤Ï¤²¤·¤¯¤À¤ß¡¼ #JN ·ã¤·¤¯¥À¥ß¡¼
++¤Ï¤²¤·¤¯¤É¤¥¤¤¤¨ #CJ ·ã¤·¤¯¥É¥¥¥¤¥¨¡ª
++¤Ï¤²¤·¤¯¤É¤¦¤¤ #CJ ·ã¤·¤¯Æ±°Õ¡ª
++¤Ï¤²¤·¤¯¤É¤¦¤Ò #CJ ·ã¤·¤¯Æ±Èô¡ª
++¤Ï¤²¤·¤¯¤Ë¤ç¤¦¤¤ #CJ ·ã¤·¤¯Ç¢°Õ¡ª 
++¤Ï¤²¤·¤¯¤Ë¤ó¤¸¤ã #JN ·ã¤·¤¯Ç¦¼Ô
++¤Ï¤²¤·¤¯¤Ò¤ç¤¦¤¤ #CJ ·ã¤·¤¯Øá°Í¡ª
++¤Ï¤²¤É¤¦ #CJ ¤Ï¤²¤É¤¦
++¤Ï¤²¤É¤¦ #CJ ÆÅƱ
++¤Ï¤²¤É¤¦ #T30 ¤Ï¤²¤É¤¦
++¤Ï¤²¤É¤¦ #T30 ÆÅƱ
++¤Ï¤²¤â¤Ê¡¼ #JN hage¥â¥Ê¡¼
++¤Ï¤²¤ó¤ê¤·¤å¤® #T35 ÍÕ¸¶Íý¼çµÁ
++¤Ï¤³¤³¤Ç¤¹¤« #CJ ¤Ï¤³¤³¤Ç¤¹¤«¡©
++¤Ï¤³¤³¤Ç¤¹¤« #SUC ¤Ï¤³¤³¤Ç¤¹¤«¡©
++¤Ï¤·¤ë¤ó¤Ç¤¹ #T35 Áö¥ë¥ó¤Ç¤¹
++¤Ï¤¸¤Ã¤³ #T35 ÃѤûÒ
++¤Ï¤¸¤ë¤¹ #T35 ¤Ï¤¸¤ë¤¹
++¤Ï¤¹ #T35 Ï¡
++¤Ï¤¹¤³¤é #T35 Ï¡¥³¥é
++¤Ï¤º #T35 ¥Ï¥º
++¤Ï¤Á¤¤¤Á¤´¤¸¤±¤ó #T35 £¸£±£µ»ö·ï
++¤Ï¤Á¤¬¤Ä¤­¤­ #T35 £¸·î´íµ¡
++¤Ï¤Á¤¸¤ç¤¦¤¸¤Þ¤¸¤«¤ó¤«¤ó¤ê¤»¤ó¤¿¡¼ #JN Ȭ¾æÅç»þ´Ö´ÉÍý¥»¥ó¥¿¡¼
++¤Ï¤Á¤Á¤Á #T35 ¤Ï¤Á¤Á¤Á
++¤Ï¤Á¤È¤¦¤·¤ó¤Î #RT £¸Æ¬¿È¤Î¡¡
++¤Ï¤Á¤È¤¦¤·¤ó¤Î¤Þ¤ë¤Þ¤ë #JN £¸Æ¬¿È¤Î¡û¡û¡¡
++¤Ï¤Ã¤«¡¼ #T35 ¥Ï¥Ã¥«¡¼
++¤Ï¤Ã¤«¤¢ #T35 ¥Ï¥Ã¥«¡¼
++¤Ï¤Ã¤¯¤é¤¤¤¿ #CN ¥Ï¥Ã¥¯¥éÈÄ
++¤Ï¤Ã¤¯¤é¤¤¤¿ #T35 ¥Ï¥Ã¥¯¥éÈÄ
++¤Ï¤Ã¤·¤å #T35 ¥Ï¥Ã¥·¥å
++¤Ï¤Ã¤»¤ó¤Á¤å¤¦ #T35 8000¿ß
++¤Ï¤Ã¤Á¤ã¤±¤Æ¤°¤¥ #CJ ¤Ï¤Ã¤Á¤ã¤±¤Æ¥°¥¥
++¤Ï¤Ã¤Æ¤ó #T35 hatten
++¤Ï¤Ã¤Æ¤ó #T35 ¥Ï¥Ã¥Æ¥ó
++¤Ï¤Ã¤Æ¤ó¤¯¤ó #JN hatten·¯
++¤Ï¤Ã¤Æ¤ó¤·¤Í¡¼¤è #JN ȯŸ¥·¥Í¡¼¥è
++¤Ï¤Ã¤È¤¦¤·¤ó¤ª¤Ë¤®¤ê¤â¤Ê¡¼ #JN £¸Åù¿È¤ª¤Ë¤®¤ê¥â¥Ê¡¼
++¤Ï¤Ã¤È¤¦¤·¤ó¤®¤³ #JN ȬƬ¿È¥®¥³
++¤Ï¤Ã¤È¤¦¤·¤ó¤»¤ó¤è¤¦¤¬¤¯¤ä¤¦¤é¤³¤¿¤Ä #JN ȬƬ¿ÈÀìÍѳڲ°Î¢ßÙßý
++¤Ï¤Ã¤È¤¦¤·¤ó¤á¤ó¤É¤¯¤»¤§ #JN ȬƬ¿ÈÂŽÒÂŽÝÂŽÄÂŽÞÂŽ¸ÂŽ¾ÂŽª
++¤Ï¤Ã¤È¤¦¤·¤ó¤â¤Ê¡¼ #JN £¸Æ¬¿È¥â¥Ê¡¼
++¤Ï¤Ã¤È¤¦¤·¤ó¤â¤Ê¡¼¤¯¤ó #JN £¸¤È¤¦¤·¤ó¥â¥Ê¡½¤¯¤ó
++¤Ï¤Ã¤È¤¦¤·¤ó¤ò¤Û¤í¤Ü¤¹¤Ë¤»¤¤¤Á¤µ¤ó #JN £¸Æ¬¿È¤òÌǤܤ¹µ¶£±¤µ¤ó
++¤Ï¤Ã¤Ñ #T35 ÍÕ¤ÃÇÉ
++¤Ï¤Ã¤Ñ¤¿¤¤ #JN ¤Ï¤Ã¤ÑÂâ
++¤Ï¤Ã¤Ô¤¤¤Ä¤ê¤¤¤Õ¤ì¤ó¤º #T35 HappyTreeFriends
++¤Ï¤Ä¤·¤Ð¤ê¤Ã¤¯ #T35 ½é¼Ç¥ê¥Ã¥¯
++¤Ï¤Ä¤É¤¦ #T30 ȯư
++¤Ï¤Ä¤Ò¤Î¤Ç¤Á¤ó¤½¤¦ #T30 ½éÆü¤Î½Ð¡ùÄÁÁö
++¤Ï¤Ç¤¹¤á¤ó¤Ð¡¼ #KK ¥Ï¥Ç¥¹¥á¥ó¥Ð¡¼
++¤Ï¤Ç¤¹¤á¤ó¤Ð¡¼ #T35 ¥Ï¥Ç¥¹¥á¥ó¥Ð¡¼
++¤Ï¤Ç¤¹¤á¤ó¤Ð¤¢ #T35 ¥Ï¥Ç¥¹¥á¥ó¥Ð¡¼
++¤Ï¤È #JN È·
++¤Ï¤È #T35 È·
++¤Ï¤È¤¢¤Ë #JN È··»
++¤Ï¤È¤¢¤Ë #T35 È··»
++¤Ï¤È¤ª¤È¤¦¤È #JN È·Äï
++¤Ï¤È¤ª¤È¤¦¤È #T35 È·Äï
++¤Ï¤È¤ä¤Þ¤æ¤­¤ª #JN È·»³Í³µªÉ×
++¤Ï¤É¤¦¤Û¤¦ #JN ÇÈưˤ
++¤Ï¤Ê #T35 ²Ú
++¤Ï¤Ê¤² #JN É¡ÌÓ
++¤Ï¤Ê¤² #T35 É¡ÌÓ
++¤Ï¤Ê¤Ü¤¦¤· #JN ²Ö˹»Ò
++¤Ï¤Ë¤ã¤ó¤¾¤¦ #JN ¥Ï¥Ë¥ã¥ó¢
++¤Ï¤Í¤À #T35 Ä·¤Í¤À
++¤Ï¤Þ #T35 ¤Ï¤Þ
++¤Ï¤Þ #T35 ¥Ï¥Þ
++¤Ï¤Þ¤Þ¤Ä¤ê #T35 ¤Ï¤Þº×¤ê
++¤Ï¤à #KK ¸ø
++¤Ï¤à #T35 ¸ø
++¤Ï¤à¤³ #JNM ¥Ï¥à»Ò
++¤Ï¤à¤³ #T35 ¥Ï¥à»Ò
++¤Ï¤à¤¹¤¿¡¼ #JN ¡¡¡¡¡¡¡Ê,¡Ë¡¡¡¡¡¡¡¡¡Á("¡¦)
++¤Ï¤à¤¹¤¿¡¼ #JN ¥Ï¥à¥¹¥¿¡¼
++¤Ï¤à¤¿¤í¤¦ #JN ¥Ï¥àÂÀϺ
++¤Ï¤à¤Ê¤×¤È¤é #JN ¥Ï¥à¥Ê¥×¥È¥é
++¤Ï¤ä¤¯¤¢¤ä¤Þ¤ì¤è #CJ Á᤯¼Õ¤ì¤è
++¤Ï¤ä¤ß¤Þ¤¹¤ß #JN ®¿å¿¿À¡
++¤Ï¤é¤·¤Þ #T35 ¥Ï¥é¥·¥Þ
++¤Ï¤é¤·¤Þ¤ó #T35 ¥Ï¥é¥·¥Þ¥ó
++¤Ï¤ê¡¼¤Ý¤Ã¤¿¡¼¤È¤Ø¤É¤¦¤£¤° #JN ¥Ï¥ê¡¼¡¦¥Ý¥Ã¥¿¡¼¤È¥Ø¥É¥¦¥£¥°
++¤Ï¤ë¤¤¤Á¤Ð¤ó #JN ½Õ°ìÈÖ
++¤Ï¤ë¤¤¤Á¤Ð¤ó #T35 ½Õ°ìÈÖ
++¤Ï¤ë¤« #T35 ¥Ï¥ë¥«
++¤Ï¤ë¤Á¤å¤¦ #T35 ½Õ¿ß
++¤Ï¤ë¤ä¤Þ #JNS ½Õ»³
++¤Ï¤ï¤é¤Ã¤¿ #CJ ¤Ï¾Ð¤Ã¤¿¡ª
++¤Ï¤ï¤é¤Ã¤¿ #SUC ¤Ï¾Ð¤Ã¤¿¡ª
++¤Ï¤ó¤«¤¯ #T35 ¤Ï¤ó¤«¤¯
++¤Ï¤ó¤«¤¯¤«¤Ê #T35 Ⱦ³Ñ¥«¥Ê
++¤Ï¤ó¤«¤¯¤«¤Ê¤¤¤¿ #T35 Ⱦ³Ñ¤«¤ÊÈÄ
++¤Ï¤ó¤«¤¯¤Ë¤¸¤²¤ó¤¤¤¿ #T35 Ⱦ³ÑÆ󼡸µÈÄ
++¤Ï¤ó¤«¤¯¤â¤¸¤ì¤Ä #T35 Ⱦ³Ñʸ»úÎó
++¤Ï¤ó¤«¤¯¤â¤¸¤ì¤Ä¤¤¤¿ #CN Ⱦ³Ñʸ»úÎóÈÄ
++¤Ï¤ó¤«¤¯¤â¤¸¤ì¤Ä¤¤¤¿ #KK Ⱦ³Ñʸ»úÎóÈÄ
++¤Ï¤ó¤«¤¯¤â¤¸¤ì¤Ä¤¤¤¿ #T35 Ⱦ³Ñʸ»úÎóÈÄ
++¤Ï¤ó¤­¤å¤¦ #KK ȾµÙ
++¤Ï¤ó¤­¤å¤¦ #KK Ⱦµå
++¤Ï¤ó¤­¤å¤¦ #T35 ȾµÙ
++¤Ï¤ó¤­¤å¤¦ #T35 Ⱦµå
++¤Ï¤ó¤­¤å¤¦¤Ï¤º #T35 ÈȵçÂŽÊÂŽ½ÂŽÞ
++¤Ï¤ó¤°¤ë¤¤¤¿¤À¤¤¤¤¤Á¤Û¤¦¤½¤¯ #T35 ¥Ï¥ó¥°¥ëÈÄÂè°ìˡ§
++¤Ï¤ó¤³¤¦¤è¤³¤¯ #T30 ÈȹÔͽ¹ð
++¤Ï¤ó¤³¤¦¤è¤³¤¯¤¹¤ì #T35 ÈȹÔͽ¹ð¥¹¥ì
++¤Ï¤ó¤·¤ó¤À¤¤¤·¤ó¤µ¤¤¤Ï¤ï¤é¤¨¤¿ #CJ ºå¿ÀÂç¿ÌºÒ¤Ï¾Ð¤¨¤¿¡ª
++¤Ï¤ó¤¸¤ã¤¤¤·¤ã #T35 ÈȺá¼Ô
++¤Ï¤ó¤º¤Ü¤ó¤· #T35 Ⱦ¥º¥Ü¥ó»á
++¤Ï¤ó¤»¤¤¤·¤ë¤ª¤¸¤µ¤ó #JN È¿¾Ê¤·¤ë¤ª¤¸¤µ¤ó
++¤Ï¤ó¤»¤¤¤·¤ë¤ª¤¸¤µ¤ó #T35 È¿¾Ê¤·¤ë¤ª¤¸¤µ¤ó
++¤Ï¤ó¤½¤¦¤ª¡¼¤ë¤¹¤¿¡¼ #JN ÈÂÁ÷¥ª¡¼¥ë¥¹¥¿¡¼
++¤Ï¤ó¤Á¤ó #T35 ÈÈÄÁ
++¤Ï¤ó¤È¤¦ #T35 ȾÅç
++¤Ï¤ó¤É¤ë #T35 ¥Ï¥ó¥É¥ë
++¤Ï¤ó¤É¤ë¤Í¡¼¤à #T35 ¥Ï¥ó¥É¥ë¥Í¡¼¥à
++¤Ï¤ó¤É¤ë¤Í¤¨¤à #T35 ¥Ï¥ó¥É¥ë¥Í¡¼¥à
++¤Ï¤ó¤Ë¤ã #SUC È̼ã
++¤Ï¤ó¤Ë¤ã¤·¤ó¤®¤ç¤¦ #JN È̼㿴·Ð
++¤Ï¤ó¤Î¤¦ #T35 ȾǾ
++¤Ð¡¼ #JN BAR
++¤Ð¡¼ #T35 ¥Ð¡¼
++¤Ð¡¼¤¸¤ó¤­¤é¡¼¤¢¤Ù¤ë #JN ½è½÷¥­¥é¡¼¥¢¥Ù¥ë
++¤Ð¡¼¤¿¤ì #T35 ¥Ð¡¼¥¿¥ì
++¤Ð¡¼¤Á¤ã¤Í¤Ã¤È¤¢¤¤¤É¤ë¤Ë¤·¤à¤é¤Ò¤í¤³12¤µ¤¤ #JN ¥Ð¡¼¥Á¥ã¥ë¥Í¥Ã¥È¥¢¥¤¥É¥ëÀ¾Â¼Çî»Ò£±£²ºÐ
++¤Ð¡¼¤Á¤ã¤ë¤Í¤Ã¤È¤¢¤¤¤É¤ë¤¨¤ë¤¨¤ë¤¨¤ë #JN ¥Ð¡¼¥Á¥ã¥ë¥Í¥Ã¥È¥¢¥¤¥É¥ëLLL
++¤Ð¡¼¤Ü¤Ã¤È #JN ¥Ð¡¼¥Ü¥Ã¥È
++¤Ð¡¼¤ä #JN ¥Ð¡¼¥ä
++¤Ð¡¼¤ä #T35 ¥Ð¡¼¥ä
++¤Ð¤¢ #T35 ¥Ð¡¼
++¤Ð¤¢¤¿¤ì #T35 ¥Ð¡¼¥¿¥ì
++¤Ð¤¢¤ä #T35 ¥Ð¡¼¥ä
++¤Ð¤¤¤«¤¯¤â¤¸ #T35 ÇܳÑʸ»ú
++¤Ð¤¤¤¯¤ì¡¼¤¹ #T35 ¥Ð¥¤¥¯¥ì¡¼¥¹
++¤Ð¤¤¤Ð¤¤ #JN ÊÞ²ÊÞ²
++¤Ð¤¤¤Ð¤¤ #JN ÂŽÊÂŽÞÂŽ²ÂŽÊÂŽÞÂŽ²
++¤Ð¤¤¤í¤ó¤â¤ì¤Î #T35 ¥Ð¥¤¥í¥ó¡¦¥â¥ì¥Î
++¤Ð¤«¡¼ #JN ÂŽÊÂŽÞÂŽ¶ÂŽ°
++¤Ð¤«¡¼ #JN ÂŽÊÂŽÞÂŽ¶ÂŽ°¡´(ŽߧÕÂŽß)ÂŽÉ¡«
++¤Ð¤«¤¦¤è #JN ¥Ð¥«¥¦¥è
++¤Ð¤«¤®¤Ã¤³ #T35 ¥Ð¸°¤Ã»Ò
++¤Ð¤«¤À #T35 ¥Ð¥«ÅÄ
++¤Ð¤«¤Ë¤Ï¤³¤Ô¤Ú¤Ç¤­¤Ê¤¤ #CJ ¦Â¦Á¦Ê¦Á¤Ë¤Ï¥³¥Ô¥Ú¤Ç¤­¤Ê¤¤
++¤Ð¤«¤é¤í¤¦ #T35 ¥Ð¥«¥é¥í¥¦
++¤Ð¤«¤í¤ê¡¼¤¿ #T35 ¥Ð­Ê¥¿
++¤Ð¤«¤í¤ê¡¼¤¿ #T35 ÂŽÊÂŽÞ­ÊÂŽÀ
++¤Ð¤«¤í¤ê¡¼¤¿¤é¤ê¤Ã¤È¤ë #CJ ¥Ð­Ê¥¿¥é­È
++¤Ð¤«¤í¤ê¡¼¤¿¤é¤ê¤Ã¤È¤ë #CJ ÂŽÊÂŽÞ­ÊÂŽÀŽ׭È
++¤Ð¤«¤í¤ê¤¤¤¿ #T35 ÂŽÊÂŽÞ­ÊÂŽÀ(¥Ð¥«¥í¥ê¡¼¥¿)
++¤Ð¤«¤í¤ê¤¤¤¿¤é¤ê¤Ã¤È¤ë #CJ ÂŽÊÂŽÞ­ÊÂŽÀŽ׭È
++¤Ð¤«¤ó¤³¤¯ #CN ¥Ð´Ú¹ñ
++¤Ð¤«¤ó¤³¤¯ #T35 ¥Ð´Ú¹ñ
++¤Ð¤­¤å¡¼¤à¤«¡¼ #JN ¥Ð¥­¥å¡¼¥à¥«¡¼
++¤Ð¤¯¤²¤­ #T35 Çú·â
++¤Ð¤¯¤¸¤ã¤Ã¤¯¤¸¤±¤ó #KK ¥Ð¥¹¥¸¥ã¥Ã¥¯»ö·ï
++¤Ð¤¯¤À¤ó¤Í¤º¤ß #JN ÇúÃƥͥº¥ß
++¤Ð¤¯¤Á¤å¡¼¤â¤ó¤À¤¤ #JN Çú¥Á¥å¡¼ÌäÂê
++¤Ð¤° #JN ¥Ð¥°
++¤Ð¤µ¤í¤¹¤ì #T35 ¥Ð¥µ¥í¥¹¥ì
++¤Ð¤¹¤¸¤ã¤Ã¤¯ #T30 ¥Ð¥¹¥¸¥ã¥Ã¥¯
++¤Ð¤º¡¼¤«¤®¤³ #JN ¥Ð¥º¡¼¥«¥®¥³
++¤Ð¤Ã¤µ¤¤¤ä #JN ȲºÎ²°
++¤Ð¤Ä #JN ú¥
++¤Ð¤Ä¤Ð¤³ #T35 ¡ßÈ¢
++¤Ð¤Ä¤Ü¤Ã¤¯¤¹ #T35 ¡ß¥Ü¥Ã¥¯¥¹
++¤Ð¤È¤é¡¼ #JN ¥Ð¥È¥é¡¼
++¤Ð¤È¤í¤ï¤¹¤ì #JN ¥Ð¥È¥í¥ï¥¹¥ì
++¤Ð¤Ð¤¡ #JN ÇÌ¥¡
++¤Ð¤Ó #R5 ¥Ð¥Ó
++¤Ð¤Ó¤ê¤Æ¤£ #T35 ¥Ð¥Ó¥ê¥Æ¥£
++¤Ð¤Ó¤ë¤Ë¤» #KK ¥Ð¥Ó¥ëµ¶
++¤Ð¤Ó¤ë¤Ë¤» #T35 ¥Ð¥Ó¥ëµ¶
++¤Ð¤é¤³¤¦ #CN ¥Ð¥é¹â
++¤Ð¤é¤³¤¦ #T35 ¥Ð¥é¹â
++¤Ð¤é¤Á¤½ #T35 ¥Ð¥é¥Á¥½
++¤Ð¤é¤Á¤½ #T35 ÂŽÊÂŽÞÂŽ×ÂŽÁÂŽ¿
++¤Ð¤ë¤«¤ó¤ï¤Ã¤·¤ç¤¤ #JN ¥Ð¥ë¥«¥ó¡¦¥ï¥Ã¥·¥ç¥¤
++¤Ð¤ó #T35 ÈÇ
++¤Ð¤ó¤À¤¤ #T35 ÈÖÂæ
++¤Ð¤ó¤Á¤ç¤¦ #JN ÈÖĹ
++¤Ð¤ó¤Á¤ç¤¦ #T35 ÈÖĹ
++¤Ñ¤¤¤Ñ¤¤ #T35 ¦Ð¡¹
++¤Ñ¤¤¤Ñ¤ó¤­¤ç¤¦¤À¤¤ #JN ¥Ñ¥¤¥Ñ¥ó·»Äï
++¤Ñ¤¯¤ê #T35 ËÑÍû
++¤Ñ¤½¤³¤ó¤­¤å¤¦¤­¤å¤¦¤Ð¤¹¤¿¤¢¤º #T35 ¥Ñ¥½¥³¥óµßµÞ¥Ð¥¹¥¿¡¼¥º
++¤Ñ¤Ã¤È #T35 Pat
++¤Ñ¤Æ #KK ¥Ñ¥Æ
++¤Ñ¤Æ #T35 ¥Ñ¥Æ
++¤Ñ¤È #KS ¥Ñ¥È
++¤Ñ¤È #R5 ¥Ñ¥È
++¤Ñ¤È #T35 Pat
++¤Ñ¤Ô¤³ #T35 ¥Ñ¥Ô¥³
++¤Ñ¤Ú¤Ã¤È¤Þ¤Ú¤Ã¤È #JN ¥Ñ¥Ú¥Ã¥È¥Þ¥Ú¥Ã¥È
++¤Ñ¤ä¤ª #T35 ¥Ñ¥ä¥ª
++¤Ñ¤é¤µ¤¤¤È¤Ô¤è¤ß¡¼ #JN ¡¡(ÂŽßoŽߢ¿¡Á~~
++¤Ñ¤é¤µ¤¤¤È¤Ô¤è¤ß¡¼ #JN ¥Ñ¥é¥µ¥¤¥È¥Ô¥è¥ß¡¼
++¤Ñ¤é¤µ¤¤¤È¤Ô¤è¤ß¡¼ #JN ¥Ñ¥é¥µ¥¤¥È¥Ô¥è¥ß¡¼ 
++¤Ñ¤é¤À¤¤¤¹¤±¤¤¤¶¤¤ #T35 ¥Ñ¥é¥À¥¤¥¹·ÐºÑ
++¤Ñ¤é¤â¤ê¤Þ¤Ä¤ê #T35 ¥Ñ¥é¿¹º×¤ê
++¤Ñ¤ì¡¼¤É #JN ¥Ñ¥ì¡¼¥É
++¤Ñ¤í¤ß¤Î¤¯¤ó #JN ¥Ñ¥í¥ß¥Î·¯
++¤Ñ¤ó¤Æ¤£¤é #T35 ¥Ñ¥ó¥Æ¥£¥é
++¤Ñ¤ó¤Ñ¤« #T35 ¥Ñ¥ó¥Ñ¥«
++¤Ñ¤ó¤Ñ¤ó #T35 ¥Ñ¥ó¥Ñ¥ó¡ª
++¤Ò #T35 Èæ
++¤Ò¡¼¤Ë¤Ë¡¼¤Ë¤Ó¤Ã¤¯¤ê #JN ¥Ò¡¼¥Ë¥Ë¡¼¥Ë¡ª
++¤Ò¤¤¤«¤ê¤ã¤¯ #T35 ¤Ò¡Ê°Ê²¼Î¬¡Ë
++¤Ò¤«¤é¤Ó¤É¤ó #T35 ¤Ò¤«¤é¤ÓЧ
++¤Ò¤«¤ê¤Ä¤¦¤·¤ó #KK ¸÷ÄÌ¿®
++¤Ò¤«¤ë #T35 ¥Ò¥«¥ë
++¤Ò¤¬¤¯¤ó #T35 Èæ²Å·¯
++¤Ò¤¬¤· #JNS ´³²Û»Ò
++¤Ò¤¬¤· #T35 ´³²Û»Ò
++¤Ò¤¬¤·¤«¤¿¤â¤Ê¤¹¤± #JN ÅìÊý¥â¥Ê½õ
++¤Ò¤­¤³ #T35 ¥Ò¥­¥³
++¤Ò¤­¤³¡¼¤â¤ê #JN ¥Ò¥­¥³¡¼¥â¥ê
++¤Ò¤­¤³¤â #R5r ¤Ò¤­¤³¤â
++¤Ò¤­¤³¤â #R5r °ú¤­äƤâ
++¤Ò¤­¤³¤â¤é¤é¡¼ #JN ¥Ò¥­¥³¥â¥é¥é¡¼
++¤Ò¤­¤³¤â¤ê¤³¤Þ¤ë #JN ¥Ò¥­¥³¿¹¥³¥Þ¥ë
++¤Ò¤­¤ã¤¯ #T35 ÈôµÓ
++¤Ò¤¯¤½¤ó #JN ¥Ò¥¯¥½¥ó
++¤Ò¤² #JN ¥Ò¥²
++¤Ò¤² #JN ɦ
++¤Ò¤² #T35 ¥Ò¥²
++¤Ò¤²¤à¤· #T35 ¤Ò¤²¤à¤·
++¤Ò¤µ¤ó¤Ê1 #T35 Èá»´¤Ê£±
++¤Ò¤µ¤ó¤Ê¤¤¤Á #JN Èá»´¤Ê£±
++¤Ò¤µ¤ó¤Ê¤¤¤Á #T35 Èá»´¤Ê1
++¤Ò¤·¤À¤Ê #T35 Èé»é¤À¤Ê
++¤Ò¤·¤ç¤¦¤±¤¤¤É¤¦¤¸¤ó #KK ÈôæÆ·ÏƱ¿Í
++¤Ò¤·¤ç¤¦¤±¤¤¤É¤¦¤¸¤ó #T35 ÈôæÆ·ÏƱ¿Í
++¤Ò¤º¤ß #JN ÏÄ
++¤Ò¤½¤Ò¤ì #T35 ¤Ò¤½¤Ò¤ì
++¤Ò¤Ã¤­¡¼ #JN ¥Ò¥Ã¥­¡¼
++¤Ò¤Ã¤­¡¼ #JN ¥Ò¥Ã¥­¡¼ 
++¤Ò¤Ã¤­¡¼ #T35 ¤Ò¤Ã¤­¡¼
++¤Ò¤Ã¤­¡¼ #T35 ¥Ò¥Ã¥­¡¼
++¤Ò¤Ã¤­¤¤ #T35 ¥Ò¥Ã¥­¡¼
++¤Ò¤Ã¤·¤À¤Ê #CJ ɬ»à¤À¤Ê
++¤Ò¤Ã¤·¤À¤Ê #T35 ɬ»à¤À¤Ê
++¤Ò¤Ã¤¿¤ê #T35 ¤Ò¤Ã¤¿¤ê
++¤Ò¤Ä¤¸ #T35 ÍÓ
++¤Ò¤Ä¤è¤¦¤¢¤¯¤Î¤Ð¤«¤¹¤Æ¤Ð #T35 ɬÍ×°­¤ÎÇϼ¯¼Î¤Æ¾ì
++¤Ò¤Ç¤§¤ä #JN ¤Ò¤Ç¤§¤ä
++¤Ò¤Ç¤é¤ì #KS HIDE¤é¤ì
++¤Ò¤È¤ª¤ª¤¹¤® #T35 ¿ÍÂç¿ù
++¤Ò¤È¤¯¤¤¤ª¤ª¤ß¤ß #JN ¿Í¿©¤¤Â缪
++¤Ò¤È¤Ð¤·¤é #T35 ¿ÍÃì
++¤Ò¤È¤ß¤Á¤ã¤ó #JN Æ·¤Á¤ã¤ó
++¤Ò¤È¤ê¤è¤¦¤­¤ã¤Ã¤× #T35 ¤Ò¤È¤êÍÑ¥­¥ã¥Ã¥×
++¤Ò¤É¤¦¤É¤¦¤Æ¤¤ #T35 ÈóƻƸÄç
++¤Ò¤Ê¤ó¤¸¤ç #T35 ÈòÆñ½ê
++¤Ò¤Ê¤ó¤¸¤ç¤æ¤¦¤É¤¦¤®¤³ #JN ÈòÆñ½êͶƳ¥®¥³
++¤Ò¤Î¤Ç¤Á¤ç¤¦ #T35 Æü½ÐÄ®
++¤Ò¤Ï¤ó¤è¤¦¤Ü¤¦ #T35 ÈãȽÍ×˾
++¤Ò¤Ò¤Ò¤Ò #CJ ¥Ò¥Ò¥Ò¥Ò
++¤Ò¤Ò¤Ò¤Ò¤Ò #CJ ¥Ò¥Ò¥Ò¥Ò¥Ò
++¤Ò¤Õ¤ß¤¯¤À¤ó #T35 £±£²£³£¹ÃÊ
++¤Ò¤Ù #T35 hibe
++¤Ò¤Ù #T35 ¥Ò¥Ù
++¤Ò¤Þ¤Í¡¼¤è #JN ¥Ò¥Þ¥Í¡¼¥è
++¤Ò¤ã¤¯¤µ¤²¤Ï¤¤¤Á¤¢¤²¤Ë¤·¤«¤º #CJ É´¤µ¤²¤Ï°ì¤¢¤²¤Ë¤·¤«¤º
++¤Ò¤ã¤¯¤µ¤ó¤¸¤å¤¦¤Ë¤Ë¤ó¤á¤Î¤½¤¹¤¦¤µ¤ó #T35 132¿ÍÌܤÎÁÇ¿ô¤µ¤ó
++¤Ò¤ã¤¯¤·¤ç¤¦¤È¤· #T35 É´À«ÅÔ»Ô
++¤Ò¤ã¤¯¤¸¤å¤¦¤­¤å¤¦¤±¤¤¤Ç¤ó¤·¤ã #JN 119·ÏÅżÖ
++¤Ò¤ã¤¯¤Ë¤¸¤å¤¦¤Ï¤Ã¤È¤¦¤·¤ó¤â¤Ê¡¼ #JN 128Ƭ¿È¥â¥Ê¡¼
++¤Ò¤ã¤Ã¤Û¤¦ #CJ ¥Ò¥ã¥Ã¥Û¡¼
++¤Ò¤ã¤Ã¤Û¤¦ #CJ ÂŽËÂŽ¬ÂŽ¯ÂŽÎÂŽ°
++¤Ò¤è¤³ #JN ¥Ò¥è¥³
++¤Ò¤è¤·¤Á¤å¤¦ #T35 ÆüµÈ¿ß
++¤Ò¤é¤¬¤Ê #JN ¤Ò¤é¤¬¤Ê
++¤Ò¤é¤¬¤Ê #T35 ¤Ò¤é¤¬¤Ê
++¤Ò¤é¤¬¤Ê¤Ç¤å¡¼¤¯ #JN ¤º¤£¤³¤´¤¬¤§¤ª¤¬¤¸¤¢¤¯¤­¤®¤²¤ª¤¬¤¥¤³¤¹¡ã°Ê²¼Î¬¡ä 
++¤Ò¤é¤¬¤Ê¤Ç¤å¡¼¤¯ #JN ¤Ò¤é¤¬¤ÊDUKE
++¤Ò¤é¤ß¤ß¤â¤Ê¡¼ #JN Ê¿¼ª¥â¥Ê¡¼
++¤Ò¤é¤ß¤ß¤â¤é¤é¡¼ #JN Ê¿¼ª¥â¥é¥é¡¼
++¤Ò¤ê¤ã¤¯ #T35 ¤Ò¡Êά¡Ë
++¤Ò¤í¤·¤µ¤Þ #JNM ÇîÍÍ
++¤Ò¤í¤·¤µ¤Þ #T35 ÇîÍÍ
++¤Ò¤í¤Ò¤È #JN ¥Ò¥í¥Ò¥È
++¤Ò¤í¤Ò¤È #T35 ¥Ò¥í¥Ò¥È
++¤Ò¤í¤Ý¤ó #JN ¤Ò¤í¤Ý¤ó
++¤Ò¤í¤æ¤­ #JN ¤Ò¤í¤æ¤­
++¤Ò¤í¤æ¤­ #JNM ¤Ò¤í¤æ¤­
++¤Ò¤í¤æ¤­ #T35 ¤Ò¤í¤æ¤­
++¤Ò¤í¤æ¤­¤«¤ó¤Á¤ç¤¯¤Ë¤ó #JN ¤Ò¤í¤æ¤­¡÷´Éľ¿Í
++¤Ò¤í¤æ¤­¤«¤ó¤Á¤ç¤¯¤Ë¤ó #JN ¤Ò¤í¤æ¤­¡÷´Éľ¿Í 
++¤Ò¤í¤æ¤­¤«¤ó¤Ê¤ª¤È #JNM ¤Ò¤í¤æ¤­¡÷¿ûľ¿Í
++¤Ò¤í¤æ¤­¤³¤¦¤Ë¤ó¤Õ¤¡¤ó¤¯¤é¤Ö #KK ¤Ò¤í¤æ¤­¸øǧ¥Õ¥¡¥ó¥¯¥é¥Ö
++¤Ò¤í¤æ¤­¤Ã¤Ý¤¤¤Î #JN ¤Ò¤í¤æ¤­¤Ã¤Ý¤¤¤Î
++¤Ò¤í¤æ¤³¤«¤ó¤Ê¤ª¤È #JNM ¤Ò¤í¤æ»Ò¡÷¿ûľ¿Í
++¤Ò¤ó¤Ô¤ç¤¦¤«¤¤ #T30 ÉÊɾ²ñ
++¤Ò¤ó¤Ô¤ç¤¦¤«¤¤ #T35 ÉÊɾ²ñ
++¤Ó¡¼ #T35 £Â
++¤Ó¡¼¤°¤ë #JN ¥Ó¡¼¥°¥ë
++¤Ó¡¼¤°¤ë¤¢¤é¤· #JN ¥Ó¡¼¥°¥ë¹Ó¤é¤·
++¤Ó¡¼¤Á¤¯ #T35 BÃ϶è
++¤Ó¤£ #JN ¤Ó¤£
++¤Ó¤¤¤°¤ë¤¢¤é¤· #T35 ¥Ó¡¼¥°¥ë¹Ó¤é¤·
++¤Ó¤­¤ã¤¯ #JN ÈþµÓ 
++¤Ó¤·¤ç¤¦¤¸¤ç¤»¤ó¤·¤»¡¼¤é¡¼¤Õ¡¼¤ó #JN Èþ¾¯½÷Àï»Î¥»¡¼¥é¡¼¤Õ¡¼¤ó
++¤Ó¤·¤ç¤¦¤¸¤ç¤Ë¤ó¤Æ¤¤ #T30 Èþ¾¯½÷ǧÄê
++¤Ó¤¸ #T35 ¥Ó¥¸
++¤Ó¤¸¤Í¤¹¤Ë¤å¤¦¤¹¤×¤é¤¹ #T35 ¥Ó¥¸¥Í¥¹¥Ë¥å¡¼¥¹¡Ü
++¤Ó¤¹¤±¤¿¤ó #T35 ¥Ó¥¹¥±¤¿¤ó
++¤Ô¡¼¤³ #T30 ¥Ô¡¼¥³
++¤Ô¡¼¤³¤ä¤í¤¦ #T35 ¥Ô¡¼¥³ÌîϺ
++¤Ô¤¤ #T35 P
++¤Ô¤«¤Á¤å¡¼ #JN ¥Ô¥«¥Á¥å¡¼ 
++¤Ô¤«¤Á¤å¤¦ #JN ¥Ô¥«¥Á¥å¥¦
++¤Ô¤«¤Á¤å¤¦ #JN ¥Ô¥«¿ß
++¤Ô¤«¤Ä¡¼ #KK ¥Ô¥«¥Ä¡¼
++¤Ô¤¯¤ß¤½ #JN ¥Ô¥¯¥ß¥½
++¤Ô¤¯¤ß¤ó #JN ¥Ô¥¯¥ß¥ó
++¤Ô¤³ #T35 ¥Ô¥³
++¤Ô¤ç¤ó¤Ô¤ç¤ó #JN ¥Ô¥ç¥ó¥Ô¥ç¥ó
++¤Ô¤í #JN ¥Ô¥í¥³
++¤Ô¤í #T35 ¥Ô¥í
++¤Ô¤í #T35 ¥Ô¥í¥³
++¤Ô¤í¤³ #JN ¥Ô¥í
++¤Ô¤í¤³ #T35 ¥Ô¥í
++¤Ô¤í¤³ #T35 ¥Ô¥í¥³
++¤Ô¤ó¤­¡¼ #JN ¥Ô¥ó¥­¡¼
++¤Ô¤ó¤¯¤¿¤ï¤¢¤É¤Ã¤È¤³¤à #T35 pinktower.com
++¤Ô¤ó¤¯¤Á¤ã¤ó¤Í¤ë #T35 Pink¤Á¤ã¤ó¤Í¤ë
++¤Ô¤ó¤Ý¤ó¤À¤Ã¤·¤å #T30 ¥Ô¥ó¥Ý¥ó¥À¥Ã¥·¥å
++¤Õ¡¼¤ó #CJ ¤Õ¡¼¤ó
++¤Õ¡¼¤ó #JN ¤Õ¡¼¤ó¡¡
++¤Õ¡¼¤ó¤­¤ç¤¦¤À¤¤ #JN ¤Õ¡¼¤ó·»Äï
++¤Õ¤¡¡¼¤¹¤È¤®¤³¤¨¤â¤ó #JN ¥Õ¥¡¡¼¥¹¥È¡¦¥®¥³¥¨¥â¥ó
++¤Õ¤¡¡¼¤¹¤È¤®¤³¤ß #JN ¥Õ¥¡¡¼¥¹¥È¡¦¥®¥³¥ß
++¤Õ¤¡¤¤¤Ê¤ë¤¢¤ó¤µ¤¢ #CJ FA
++¤Õ¤¡¤¤¤Ê¤ë¤¢¤ó¤µ¤¢ #CJ FA?
++¤Õ¤¡¤¤¤Ê¤ë¤¢¤ó¤µ¤¢ #CJ ¥Õ¥¡¥¤¥Ê¥ë¥¢¥ó¥µ¡¼¡©
++¤Õ¤¡¤¤¤Ê¤ë¤¿¤Ö¤¦ #T35 ¥Õ¥¡¥¤¥Ê¥ë¥¿¥Ö¡¼
++¤Õ¤¡¤¤¤Ê¤ë¤Õ¤¡¤ó¤¿¤º¤£ #T35 FINAL¡¡FANTAZY
++¤Õ¤¡¤Ã¤¯¤æ¡¼ #JN ¥Õ¥¡¥Ã¥¯¥æ¡¼
++¤Õ¤¡¤Ã¤¯¤æ¤¦¤Ö¤Á¤³¤í¤¹¤¾ #CJ Fuch¡¡You¡¡¤Ö¤Á»¦¤¹¤¾
++¤Õ¤¡¤Ó¤ç #KS ¥Õ¥¡¥Ó¥ç
++¤Õ¤¡¤Ó¤ç¤ó #T35 ¥Õ¥¡¥Ó¥ç¥ó
++¤Õ¤¡¤é¤ª #JN ¥Õ¥¡¥é¥ª
++¤Õ¤¡¤ó¤¿¤¸¡¼ #T35 ¥Õ¥¡¥ó¥¿¥¸¡¼
++¤Õ¤¡¤ó¤¿¤¸¤¤ #T35 ¥Õ¥¡¥ó¥¿¥¸¡¼
++¤Õ¤£¡¼¤Í¤â¤¨ #JN ¥Õ¥£¡¼¥Í˨¤¨
++¤Õ¤£¤Ã¤·¤ã¡¼¤Þ¤ó #JN ¥Õ¥£¥Ã¥·¥ã¡¼¥Þ¥ó
++¤Õ¤£¤ë¤¿ #T30 ¥Õ¥£¥ë¥¿
++¤Õ¤£¤ë¤¿¡¼ #T35 ¥Õ¥£¥ë¥¿¡¼
++¤Õ¤¦¤­¤¤¤¤¤ó #T35 É÷µª°Ñ°÷
++¤Õ¤¦¤Ö¤Ä¤· #T35 ¤Õ¤¦¤Ö¤Ä¤·
++¤Õ¤¦¤ó #CJ ¥Õ¡¼¥ó
++¤Õ¤¦¤ó #CJ ÂŽÌÂŽ°ÂŽÝ
++¤Õ¤§¤é¡¼¤Á¤ç #JN ¥Õ¥§¥é¡¼¥Á¥ç
++¤Õ¤§¤é¡¼¤Á¤ç¤Õ¤¡¤ß¤ê¡¼ #JN ¥Õ¥§¥é¡¼¥Á¥ç¥Õ¥¡¥ß¥ê¡¼
++¤Õ¤§¤é¤Í¡¼¤è #JN ¥Õ¥§¥é¥Í¡¼¥è
++¤Õ¤©¤¦¤É #T35 4rd
++¤Õ¤©¤é¤Í¡¼¤è #JN ¥Õ¥©¥é¥Í¡¼¥è
++¤Õ¤«¤ß¤¨¤¤¤¤¤Á¤í¤¦ #JN ¿¼¿å±Ñ°ìϺ
++¤Õ¤«¤ï¤ê¤ç¤¦ #JN ¤Õ¤«¤ï¤ê¤ç¤¦
++¤Õ¤®¡¼ #JN ¥Õ¥®¡¼
++¤Õ¤®¤¤ #T35 ¥Õ¥®¡¼
++¤Õ¤¯¤·¤ç¤¦ #JN Éû¾­
++¤Õ¤¯¤·¤ç¤¦ #T35 Éû¾­
++¤Õ¤¯¤¹¤¦¤¹¤ì #T35 Ê£¿ô¥¹¥ì
++¤Õ¤¯¤¹¤¦¤¹¤ì¤Ã¤É #T35 Ê£¿ô¥¹¥ì¥Ã¥É
++¤Õ¤¯¤¹¤± #T35 £²£¹½õ
++¤Õ¤¯¤ì¤­ #T35 ʤÎò
++¤Õ¤° #T35 ²ÏÆÚ
++¤Õ¤°¤ê¤é¡¼ #JN ¥Õ¥°¥ê¥é¡¼
++¤Õ¤µ¤ª #JN ¥Õ¥µÉ×
++¤Õ¤µ¤ª #JNM ¤Õ¤µ¤ª
++¤Õ¤µ¤®¤³ #JN ¥Õ¥µ¥®¥³
++¤Õ¤µ¤®¤³¤³¤¦¤Ü¤ò¤Î¤ß¤¹¤®¤¿¤Õ¤µ¤®¤³ #JN ¥Õ¥µ¥®¥³¹ÚÊì¤ò°û¤ß²á¤®¤¿¥Õ¥µ¥®¥³
++¤Õ¤µ¤®¤³¤Þ¤ó¤À¤ó #JN ¥Õ¥µ¥®¥³Ì¡ÃÌ
++¤Õ¤·¤¢¤Ê¤µ¤ó #T30 fusianasan
++¤Õ¤·¤¢¤Ê¤µ¤ó¤È¤é¤Ã¤× #T35 fusianasan¥È¥é¥Ã¥×
++¤Õ¤¸¤ç¤¦ #T30 Éâ¾å
++¤Õ¤¸¤ç¤· #T35 Éå½÷»Ò
++¤Õ¤Á¤å¤¦¤±¤¤¤à¤·¤ç #JN ÉÜÃ淺̳½ê
++¤Õ¤Ã¤­¤ä #T35 Éüµ¢²°
++¤Õ¤Ã¤µ¡¼¤ë¤¿¤¤¤µ #JN ¥Õ¥Ã¥µ¡¼¥ëÂ纴
++¤Õ¤Ã¤µ¤ë¤È¤Ó¤Õ¤µ¤¹¤± #JN ¥Õ¥Ã±îÈô¥Õ¥µ½õ
++¤Õ¤Ã¤µ¤ë¤È¤Ó¤Õ¤µ¤¹¤± #JN ÂŽÌÂŽ¯±îÈôÂŽÌÂŽ»½õ
++¤Õ¤Ã¤µ¤ì #JN ÂŽÌÂŽ¯ÂŽ»ÂŽÚ
++¤Õ¤È¤¹¤± #JNM ÂÀÊå
++¤Õ¤È¤¹¤± #T35 ÂÀÊå
++¤Õ¤È¤Þ¤· #JN ¥Õ¥È¥Þ¥·
++¤Õ¤È¤Þ¤· #KY ÂÀ¤Þ¤·
++¤Õ¤È¤Þ¤·¤¤¤»¤¤¤È #JN ÂÀ¤Þ¤·¤¤À¸ÅÌ
++¤Õ¤È¤Þ¤·¤¤¤»¤¤¤È #JN ÂÀ¤Þ¤·¤¤À¸ÅÌ 
++¤Õ¤È¤Þ¤·¤¤¤Þ¤é¤é¡¼ #JN ÂÀ¤Þ¤·¤¤¥Þ¥é¥é¡¼
++¤Õ¤È¤Þ¤·¤¤¤â¤Ê¡¼ #JN ÂÀ¤Þ¤·¤¤¥â¥Ê¡¼
++¤Õ¤É¤¦¤ß¤Í #T35 ÉÔÆ°Êö
++¤Õ¤Ë¤¯ #T35 ÉåÆù
++¤Õ¤å¤¦¤¸¤ã¤Í¤¤¤¶¤ó #T35 ¥Õ¥å¡¼¥¸¥ã¥Í¥¤¥¶¥ó
++¤Õ¤å¤¦¤¸¤ã¤Í¤¤¤·¤ã¤ó #T35 ¥Õ¥å¡¼¥¸¥ã¥Í¥¤¥·¥ã¥ó
++¤Õ¤æ¤·¤Ð¤±¤ó #JN Å߼Ƹ¤
++¤Õ¤æ¤·¤Ð¤±¤ó #T35 Å߼Ƹ¤
++¤Õ¤æ¤Á¤å¤¦ #T35 Åß¿ß
++¤Õ¤é¤°¤¬¤¿ #T5 ¥Õ¥é¥°¤¬Î©
++¤Õ¤é¤Ã¤·¤å¤Þ¤ó #JN ¥Õ¥é¥Ã¥·¥å¥Þ¥ó
++¤Õ¤é¤Ã¤È¤¹¤ê¤£ #T35 ¥Õ¥é¥Ã¥È3
++¤Õ¤é¤ó¤¹¤Ñ¤ó #T35 ¥Õ¥é¥½¥¹¥Ñ¥ó
++¤Õ¤é¤ó¤¹¤Ñ¤ó #T35 ÂŽÌÂŽ×ÂŽ¿ÂŽ½ÂŽÊÂŽßÂŽÝ
++¤Õ¤ê¡¼¤Õ¤©¡¼¤ë #JN FREEFALL
++¤Õ¤ê¤«¤¨¤ê¤â¤Ê¤« #JN ¿¶¤êÊÖ¤ê¥â¥Ê¥«
++¤Õ¤ê¤ó¤Á¤ã¤ó #T35 ÉÔÎѤÁ¤ã¤ó
++¤Õ¤ë¤¦¡«¤§¤ó #JN ¥Õ¥ë¥ô¥§¥ó
++¤Õ¤ë¤¦¡«¤§¤ó #T35 ¥Õ¥ë¥ô¥§¥ó
++¤Õ¤ì¤Ã¤Ä¤í¤Ü #JN ¥Õ¥ì¥Ã¥Ä¥í¥Ü
++¤Ö¤¤ #JN  Éô°Ì
++¤Ö¤¤ #JN Éð°Ò
++¤Ö¤¤ #T35 Éð°Ò
++¤Ö¤¤ #T35 Éô°Ì
++¤Ö¤¯¤Þ¤¯ #T30 ¥Ö¥¯¥Þ¥¯
++¤Ö¤µ¤¤¤³ #T35 ¥Ö¥µ¥¤¥³
++¤Ö¤µ¤è¤¯ #JN ¥Ö¥µ¥è¥¯
++¤Ö¤µ¤è¤¯ #T35 ¥Ö¥µ¥è¥¯
++¤Ö¤¿ #JN ÆÚ
++¤Ö¤¿ #T35 ÆÚ
++¤Ö¤Á #T35 Þ¼
++¤Ö¤Á¤³ #JN ¤Ö¤Á¤³
++¤Ö¤Á¤³ #T35 ¤Ö¤Á¤³
++¤Ö¤Ã¤¯ #T35 ¥Ö¥Ã¥¯
++¤Ö¤Ã¤¯¤Þ¡¼¤¯ #T30 ¥Ö¥Ã¥¯¥Þ¡¼¥¯
++¤Ö¤Ã¤·¤Ä #T35 ʪ¼Á
++¤Ö¤Ã¤À #T35 ¥Ö¥Ã¥À
++¤Ö¤Ä¤À¤ó #T35 Ê©ÃÅ
++¤Ö¤É¤¦¤â¤Ê¡¼ #JN Éòƺ¥â¥Ê¡¼
++¤Ö¤Ì¤¹ #T35 ¥Ö¥Ì¥¹
++¤Ö¤Ó¤Á¤å¤¦ #T35 ¥Ö¥Ó¿ß
++¤Ö¤è¤¯ #T35 ¥Ö¥è¥¯
++¤Ö¤é #T35 ¥Ö¥é
++¤Ö¤é¤¦¤¶¤¯¤é¤Ã¤·¤ã #T35 ¥Ö¥é¥¦¥¶¡¼¥¯¥é¥Ã¥·¥ã
++¤Ö¤é¤¦¤¶¤¯¤é¤Ã¤·¤ã¡¼ #T35 ¥Ö¥é¥¦¥¶¡¼¥¯¥é¥Ã¥·¥ã¡¼
++¤Ö¤é¤¯¤é #T35 ¥Ö¥é¥¯¥é
++¤Ö¤é¤¯¤é #T35 ÉôÍî¤é
++¤Ö¤é¤¯¤é¤Á¤§¤Ã¤« #T35 ¥Ö¥é¥¯¥é¥Á¥§¥Ã¥«
++¤Ö¤é¤¯¤é¤Á¤§¤Ã¤«¡¼ #T35 ¥Ö¥é¥¯¥é¥Á¥§¥Ã¥«¡¼
++¤Ö¤é¤Ã¤¯¤Û¤ª¤ë #T35 ¥Ö¥é¥Ã¥¯¥Û¡¼¥ë
++¤Ö¤ë¤ª¤¿ #T35 ¥Ö¥ë¥ò¥¿
++¤Ö¤ë¤É¤Ã¤¯¤½¡¼¤¹ #KK ¥Ö¥ë¥É¥Ã¥¯¥½¡¼¥¹
++¤Ö¤ì¤¤¤º #T35 ̵Îé¿Þ
++¤Ö¤ì¤¤¤ó¤¬ #JN ¥Ö¥ì¥¤¥ó¥¬
++¤Ö¤í¡¼¤É¤Ð¤ó¤É¤ë¡¼¤¿ #T35 ¥Ö¥í¡¼¥É¥Ð¥ó¥É¥ë¡¼¥¿
++¤Ö¤í¡¼¤É¤Ð¤ó¤É¤ë¡¼¤¿¡¼ #T35 ¥Ö¥í¡¼¥É¥Ð¥ó¥É¥ë¡¼¥¿¡¼
++¤Ö¤í¤Ã¤¯¤¹ #T35 ¤Ö¤í¤Ã¤¯¤¹
++¤×¤¤¤¿ #CN ¥×ÈÄ
++¤×¤¤¤¿ #T35 ¥×ÈÄ
++¤×¤¹¤£¤³ #JN ¤×¤¹¤£»Ò
++¤×¤Ã #CJ ¤×¤Ã
++¤×¤Ã #CJ ¥×¥Ã
++¤×¤Ã #CJ ÂŽÌÂŽßÂŽ¯
++¤×¤Ã #JN ¡Ê¡­,_¡µ¡®¡ËÂŽÌÂŽßÂŽ¯
++¤×¤Ã #JN ÂŽÌÂŽßÂŽ¯
++¤×¤Ã¤×¤¯¤×¡¼ #JN ¤×¤Ã¤×¤¯¤×¡¼
++¤×¤Ë #T35 ¤×¤Ë
++¤×¤Ë #T35 ¥×¥Ë
++¤×¤Ë¤ë #T35 ¥×¥Ë¥ë
++¤×¤Ë¤ë¤Á¤å¤¦ #T35 ¥×¥Ë¥ë¿ß
++¤×¤é¤Ê¤ê¤¢ #JN ¥×¥é¥Ê¥ê¥¢
++¤×¤ê¤¦¤ó¤³ #T35 ¤×¤ê¤¦¤ó¤³
++¤×¤ê¤×¤ê¤Ñ¤Ã¤Ñ #JN ¥×¥ê¥×¥ê¥Ñ¥Ã¥Ñ
++¤×¤ê¤ë¤Ê¤é¤¤¤Þ¤Î¤¦¤Á #CJ ¥×¥ê¥ë¥Ê¥é¥¤¥Þ¥Î¥¦¥Á
++¤×¤ê¤ë¤Ê¤é¤¤¤Þ¤Î¤¦¤Á #CJ ÂŽÌÂŽßÂŽØÂŽÙÂŽÅÂŽ×ÂŽ²ÂŽÏÂŽÉÂŽ³ÂŽÁ
++¤×¤ê¤ë¤Ê¤é¤¤¤Þ¤Î¤¦¤Á #JN ¥×¥ê¥ë¥Ê¥é¥¤¥Þ¥Î¥¦¥Á
++¤×¤ê¤ë¤Ê¤é¤¤¤Þ¤Î¤¦¤Á #JN ÂŽÌÂŽßÂŽØÂŽÙÂŽÅÂŽ×ÂŽ²ÂŽÏÂŽÉÂŽ³ÂŽÁ
++¤×¤ê¤ó¤¢¤¿¤Þ #T35 ¥×¥ê¥óƬ
++¤×¤ë¤®¤³ #JN ¥×¥ë¥®¥³
++¤×¤ë¤â¤Ê #JN ¥×¥ë¥â¥Ê
++¤×¤í¤­¤·¤­¤»¤¤ #T35 £Ð£Ò£Ï£Ø£Ùµ¬À©
++¤×¤í¤¯¤· #T35 ¥×¥í¥¯¥·
++¤×¤í¤·¤ß¤ó #T35 ¥×¥í»Ô̱
++¤×¤í¤¸¤§¤¯¤È¤¨¤Ã¤¯¤¹ #KK ¥×¥í¥¸¥§¥¯¥È£Ø
++¤×¤í¤¸¤§¤¯¤È¤¨¤Ã¤¯¤¹ #T35 ¥×¥í¥¸¥§¥¯¥ÈX
++¤×¤í¤¸¤§¤¯¤È¤¨¤Ã¤¯¤¹ #T35 ¥×¥í¥¸¥§¥¯¥È£Ø
++¤×¤í¤¸¤§¤¯¤È¤±¡¼ #KK ¥×¥í¥¸¥§¥¯¥È£Ë
++¤×¤í¤¸¤§¤¯¤È¤±¡¼ #T35 ¥×¥í¥¸¥§¥¯¥È£Ë
++¤×¤í¤¸¤§¤¯¤È¤±¤¨ #T35 ¥×¥í¥¸¥§¥¯¥ÈK
++¤×¤í¤Ð¤¬¤ó¤À¤³¤¦ #T35 ¥×¥í¥Ñ¥¬¥ó¥À¹»
++¤×¤í¤Ñ¤¬¤ó¤À¤¿¤ï¤¢ #T35 ¥×¥í¥Ñ¥¬¥ó¥À¥¿¥ï¡¼
++¤Ø¡¼¤â¤Ê¡¼ #JN ¤Ø¡¼¥â¥Ê¡¼
++¤Ø¤¤¤¢¤ó #JN Ê¿°Â
++¤Ø¤¤¤¢¤ó #T35 Ê¿°Â
++¤Ø¤¤¤µ¤»¤Ä #T35 Êĺ¿Àâ
++¤Ø¤§¤¨ #CJ (¡­ÂŽ¥¢ÏÂŽ¥`)¤Ø¤§¡¼
++¤Ø¤§¤¨ #CJ ¤Ø¤§¡Á
++¤Ø¤¨¤¨¤­¤ß¤é¤¤¤À¤¢¤Ë¤Ê¤Ã¤¿¤Ð¤Ã¤«¤ê¤Ê¤ó¤À #CJ ¤Ø¤¨¡¼·¯¥é¥¤¥À¡¼¤Ë¤Ê¤Ã¤¿¤Ð¤Ã¤«¤ê¤Ê¤ó¤À
++¤Ø¤³ #T35 ±ú
++¤Ø¤Ä¤° #CJ >>¡û¡û¤Ø¹ð¤°
++¤Ø¤Ê¤® #JNS ¤Ø¤Ê¤®
++¤Ø¤Ê¤® #T35 ¤Ø¤Ê¤®
++¤Ø¤Î¤Ø¤Î¤â¤Ø¤¸ #JN ¤Ø¤Î¤Ø¤Î¤â¤Ø¤¸
++¤Ø¤Ü¤ó #T35 ¤Ø¤Ü¤ó
++¤Ø¤ó¤Ê¤¦¤¿ #T35 ÊѤʲÎ
++¤Ù¤Ã¤½¤¦ #T35 ÊÌÁñ
++¤Ù¤Ó¤·¤£ #JN ¥Ù¥Ó¤·¤£
++¤Ù¤ë¤À¤ó¤Ç¤£¡¼¤¢¤é¤· #JN ¥Ù¥ë¥À¥ó¥Ç¥£¡¼¹Ó¤é¤·
++¤Ù¤ì¤â¤é #JN ¥Ù¥ì¥â¥é
++¤Ù¤ó¤­ #T35 ÊØ´ï
++¤Ù¤ó¤¸¤ç¤Î¤é¤¯¤¬¤­ #T35 Êؽê¤ÎÍî½ñ¤­
++¤Ù¤ó¤¼¤ó¤«¤ó #JN ¥Ù¥ó¥¼¥ó´Ä
++¤Ú¡¼¤¸¤Ó¤å¡¼ #T35 ¥Ú¡¼¥¸¥Ó¥å¡¼
++¤Ú¤±¤Ð¤³ #T35 ¥Ú¥±È¢
++¤Ú¤±¤Ü¤Ã¤¯¤¹ #T35 ¥Ú¥±¥Ü¥Ã¥¯¥¹
++¤Ú¤³¤ê #CJ ¤Ú¤³¤ê
++¤Ú¤Ã #CJ ¤Ú¤Ã
++¤Ú¤Ã¤È #T35 ¥Ú¥Ã¥È
++¤Ú¤Ã¤È¤Ü¤È¤ë #T35 ¥Ú¥Ã¥È¥Ü¥È¥ë
++¤Ú¤É #T35 ¥Ú¥É
++¤Ú¤É¤Õ¤£¤ê¤¢ #T35 ¤Ú¤É¤Õ¤£¤ê¤¢
++¤Ú¤É¤Õ¤£¤ê¤¢ #T35 ¥Ú¥É¥Õ¥£¥ê¥¢
++¤Ú¤ä¤ó¤° #JN ¥Ú¥ä¥ó¥°
++¤Ú¤ä¤ó¤° #T35 ¥Ú¥ä¥ó¥°
++¤Ú¤ê¤« #T35 ¥Ú¥ê¥«
++¤Û¡¼¤¹¤¯¤é¤Ã¤·¤ã¡¼ #JN ¥Û¡¼¥¹¥¯¥é¥Ã¥·¥ã¡¼
++¤Û¡¼¤¹¤¯¤é¤Ã¤·¤ã¡¼ #T35 ¥Û¡¼¥¹¥¯¥é¥Ã¥·¥ã¡¼
++¤Û¤¥ #JN ¡ÊŽߢòÂŽß¡Ë
++¤Û¤¥ #JN ÂŽÎÂŽ©
++¤Û¤¦ #T35 ˤ
++¤Û¤¦¤¨¤¤¤Õ¤ó¤¨¤ó¤í¤¯ #T35 Êõ±ÊÊ®±ìϽ
++¤Û¤¦¤±¤¤ #CN Êñ·Ô
++¤Û¤¦¤±¤¤ #T35 Êñ·Ô
++¤Û¤¦¤¸¤ç¤¦¤â¤Ê¤ë #JN ËÌÛê¥â¥Ê¥ë
++¤Û¤¦¤¹¤¯¤é¤Ã¤·¤ã¤¢ #T35 ¥Û¡¼¥¹¥¯¥é¥Ã¥·¥ã¡¼
++¤Û¤¦¤½¤¯¤«¤¤¤Ò #T35 ˡ§²óÈò
++¤Û¤¦¤Á #T30 ÊüÃÖ
++¤Û¤¦¤Æ¤¤ #JN Ë¡Äî
++¤Û¤«¤ó #T30 ÊÝ´É
++¤Û¤¯¤È¤·¤ó¤±¤ó¤Ç¤ä¤é¤ì¤ë¤â¤Ê¡¼ #JN ËÌÅÍ¿À·ý¤Ç»¦¤é¤ì¤ë¥â¥Ê¡¼
++¤Û¤¯¤Û¤¯¤µ¤Ä¤µ¤Ä #CN ËÌËÌ»¥»¥
++¤Û¤¯¤Û¤¯¤µ¤Ä¤µ¤Ä #T35 ËÌËÌ»¥»¥
++¤Û¤°¤À¤¤ #T35 ¤Û¤°¤À¤¤
++¤Û¤· #T35 À±
++¤Û¤·¤¯¤ó #JN ¡ù¤¯¤ó
++¤Û¤·¤å #T30 Êݼé
++¤Û¤·¤å¤Ï¤¢¤é¤· #CJ Êݼé¤Ï¹Ó¤é¤·
++¤Û¤¹¤£ #CJ ¥Û¥¹¥£¡¦¡¦¡¦
++¤Û¤¹¤£ #CJ ÂŽÎÂŽ½ÂŽ¨ÂŽ¥ÂŽ¥ÂŽ¥
++¤Û¤¹¤£ #JN ¥Û¥¹¥£
++¤Û¤¼¤ó #T30 ÊÝÁ´
++¤Û¤Ã¤µ¤ï #T35 ʧÂô
++¤Û¤Ã¤È¤¾¤Ì #KK ¥Û¥Ã¥È¥¾¥Ì
++¤Û¤Ã¤È¤¾¤Ì #T35 ¥Û¥Ã¥È¥¾¥Ì
++¤Û¤Í #JN ¹ü¡¡
++¤Û¤Í¤ª¤¦ #T35 ¹ü²¦
++¤Û¤Î¤ª¤Î¤³¤Þ #T35 ±ê¤Î¥³¥Þ
++¤Û¤à¤¦¤é¤ó #T35 ¥Û¥à¡¼¥é¥ó
++¤Û¤à¤¦¤é¤ó¤¦¤¿¤ì¤Æ #CJ ¥Û¥à¡¼¥é¥óÂǤ¿¤ì¤Æ¡Ä
++¤Û¤á¤Ñ¤² #T35 ¥Û¥á¥Ñ¥²
++¤Û¤é¤è #CJ ¤Û¤é¤è
++¤Û¤ï¤¤¤È¤Ù¡¼¤¹¤«¤ó¤­¤ç¤¦ #JN ¥Û¥ï¥¤¥È¥Ù¡¼¥¹´Ï¶¶
++¤Û¤ó #T35 ËÜ
++¤Û¤ó¤±¤Ê¤° #JN ËܲȤʤ°
++¤Û¤ó¤·¤Ä #T35 ËܼÁ
++¤Û¤ó¤¹¤ì #T35 ËÜ¥¹¥ì
++¤Û¤ó¤¹¤ì¤µ¤ó¤­¤ç¤¦¤À¤¤ #JN ËÜ¥¹¥ì»°·»Äï
++¤Û¤ó¤¹¤ì¤Î¤Ï¤¿ #JN ËÜ¥¹¥ì¤Î´ú
++¤Ü¡¼¤É¤¤¤Á¤é¤ó #T35 ¥Ü¡¼¥É°ìÍ÷
++¤Ü¤¦ #T35 ˼
++¤Ü¤¦¤À #T35 ËÀÂÌ
++¤Ü¤¦¤á¤¤ #T35 Ë´Ì¿
++¤Ü¤ª¤ë¤º #JN ¥Ü¡¼¥ë¥º
++¤Ü¤­¤ó #T30 ¤Ü¤­¤ó
++¤Ü¤¯¤ª¤ó¤Ê #T35 Ëͽ÷
++¤Ü¤¯¤Á¤ó¤«¤ï¤¤¤Á¤å¤®¤À¤ï¤ó #JN ¤Ü¤¯¤Á¤ó¡¢¤«¤ï¤¤¤Á¤å¤®¤À¥ï¥ó¡ª
++¤Ü¤¯¤È¤¦ #JN ÌÚÅá
++¤Ü¤¯¤È¤¦ #T35 ÌÚÅá
++¤Ü¤¯¤Î¤¢¤Ä¤³¤¿¤ó #JN ËͤΤ¢¤Ä¤³¤¿¤ó¡ª
++¤Ü¤¯¤Î¤¢¤Ä¤³¤¿¤ó #JN ËͤΤ¢¤Ä¤³¤¿¤ó¡ª¡³(¡­¡¼`)ÂŽÉ
++¤Ü¤¯¤Î¤³¤¦¤â¤ó¤â¤Ø¤¤¤µ¤µ¤ì¤½¤¦¤Ç¤¹ #CJ ¥Ü¥¯¤ÎæêÌç¤âÊĺ¿¤µ¤ì¤½¤¦¤Ç¤¹
++¤Ü¤±¤§ #CJ ¥Ü¥±¥§
++¤Ü¤³ #R5 ±ú
++¤Ü¤À #T35 ÊèÂÌ
++¤Ü¤Ã¤­¤¢¤² #JN ¡³(`§¥¡­)¥Î¥Ü¥Ã¥­¥¢¥²
++¤Ü¤Ã¤­¤¢¤² #JN ¡³(`§¥¡­)ÂŽÉÂŽÎÂŽÞÂŽ¯ÂŽ·ÂŽ±ÂŽ¹ÂŽÞ
++¤Ü¤Ã¤­¤¢¤² #JN ¥Ü¥Ã¥­¥¢¥² 
++¤Ü¤Ã¤­¤¢¤² #JN ÂŽÎÂŽÞÂŽ¯ÂŽ·ÂŽ±ÂŽ¹ÂŽÞ 
++¤Ü¤Ã¤­¤¢¤² #T35 ¥Ü¥Ã¥­¥¢¥²
++¤Ü¤Ã¤­¤Æ¤ó¤· #T35 ËÖµ¯Å·»È
++¤Ü¤Ã¤­¤É¤é¤¨¤â¤ó #JN ¤Ü¤Ã¤­¥É¥é¤¨¤â¤ó¡¡
++¤Ü¤Ã¤·¤å¡¼¤È #JN ¥Ü¥Ã¥·¥å¡¼¥È
++¤Ü¤Ç¤£¤¤¤º¤Ó¤¤¤È #T35 ¥Ü¥Ç¥£¡¼¥º¥Ó¡¼¥È
++¤Ü¤Ü¤ó #T35 ¥ÜËß
++¤Ü¤Ü¤ó #T35 ËХܡ¼¥ó
++¤Ü¤Ü¤ó #T35 ËХܥó
++¤Ü¤Ü¤ó¤¹¤ì #T35 ¥Ü¥Ü¥ó¥¹¥ì
++¤Ü¤ß¤ç¤¦ #CJ ¤Ü¤ß¤ç¡¼
++¤Ü¤ß¤ç¤¦ #T35 ¤Ü¤ß¤ç¡¼
++¤Ü¤ë¤¸¤ç¤¢ #JN ¤Ü¤ë¤¸¤ç¤¢¢¡yBEncckFOU
++¤Ü¤ó¤¯¤é¤¹ #T35 ¥Ü¥ó¥¯¥é¥¹
++¤Ü¤ó¤µ¤¤ #T35 ËߺÏ
++¤Ü¤ó¤µ¤¤¤»¤ó¤»¤¤ #T35 ËߺÏÀèÀ¸
++¤Ü¤ó¤Á¤å¤¦ #T35 Ëß¿ß
++¤Ý #CJ ¤Ý
++¤Ý¡¼¤«¤ó #JN ¡Ê¡û¸ý¡û*¡ËÂŽÎÂŽßÂŽ°ÂŽ¶ÂŽÝ
++¤Ý¡¼¤«¤ó #JN ¥Ý¡¼¥«¥ó
++¤Ý¡¼¤ë¤Þ¤ó #JN ¥Ý¡¼¥ë¥Þ¥ó
++¤Ý¤¢ #T35 ¥Ý¥¢
++¤Ý¤¤¤º¤ó #T35 ¥Ý¥¤¥º¥ó
++¤Ý¤¤¤º¤ó¤¹¤ì #T35 ¥Ý¥¤¥º¥ó¥¹¥ì
++¤Ý¤¨¤¿¤ó #JN ¥Ý¥¨¤¿¤ó
++¤Ý¤¨¤¿¤ó #T35 ¥Ý¥¨¤¿¤ó
++¤Ý¤«¡¼¤ó #CJ (¡¬§Õ¡¬)¥Ý¥«¡¼¥ó
++¤Ý¤«¡¼¤ó #CJ (ŽߧÕÂŽß)ÂŽÎÂŽßÂŽ¶ÂŽ°ÂŽÝ
++¤Ý¤«¡¼¤ó #CJ ¥Ý¥«¡¼¥ó
++¤Ý¤«¡¼¤ó #CJ ÂŽÎÂŽßÂŽ¶ÂŽ°ÂŽÝ
++¤Ý¤«¡¼¤ó #JN (ŽߧÕÂŽß)ÂŽÎÂŽßÂŽ¶ÂŽ°ÂŽÝ
++¤Ý¤«¡¼¤ó #JN ¥Ý¥«¡¼¥ó
++¤Ý¤«¡¼¤ó #JN ÂŽÎÂŽßÂŽ¶ÂŽ°ÂŽÝ
++¤Ý¤³¡¼¤ê #CJ ¥Ý¥³¡¼¥ê
++¤Ý¤³¡¼¤ê #CJ ÂŽÎÂŽßÂŽºÂŽ°ÂŽØ
++¤Ý¤¹¤È¤µ¤ó #JN ¥Ý¥¹¥È¤µ¤ó
++¤Ý¤Ã¤Ý #JN ¤Ý¤Ã¤Ý
++¤Ý¤Ã¤Ý #JN ¥Ý¥Ã¥Ý
++¤Ý¤Ã¤Ý #T35 ¤Ý¤Ã¤Ý
++¤Ý¤Ã¤Ý #T35 ¥Ý¥Ã¥Ý
++¤Ý¤ê¤´¤ó¤â¤Ê¡¼ #JN ¡¡¡¡¡¡¥Ý¥ê¥´¥ó¥â¥Ê¡¼
++¤Ý¤ê¤´¤ó¤â¤Ê¡¼ #JN ¥Ý¥ê¥´¥ó¥â¥Ê¡¼
++¤Ý¤ë¤È¤¬¤ë¤´ #T35 Éòƺ²ç¸ì
++¤Ý¤ì #T35 ¥Ý¥ì
++¤Ý¤ó¤­¤ó¤«¤ó #CN ¥Ý¥ó¥­¥ó¥«¥ó
++¤Ý¤ó¤­¤ó¤«¤ó #T35 ¥Ý¥ó¥­¥ó¥«¥ó
++¤Ý¤ó¤À¤¤ #CN ¥Ý¥óÂç
++¤Ý¤ó¤À¤¤ #T35 ¥Ý¥óÂç
++¤Ý¤ó¤Ð¤· #CN ¥Ý¥ó¶¶
++¤Ý¤ó¤Ð¤· #T35 ¥Ý¥ó¶¶
++¤Þ #JN Ëâ
++¤Þ #T35 Ëâ
++¤Þ¡¼¤¬¤ì¤Ã¤È¤¢¤ó¤É¤Õ¤é¤ó¤½¤ï #JN ¥Þ¡¼¥¬¥ì¥Ã¥È¡õ¥Õ¥é¥ó¥½¥ï
++¤Þ¡¼¤·¡¼ #JN ¥Þ¡¼¥·¡¼
++¤Þ¡¼¤º¤ä #JN £Í£Á£Ò£Ó²°
++¤Þ¡¼¤Á #KK ¥Þ¡¼¥Á
++¤Þ¤¡¤¦¡«¤µ¤² #T35 ¡³(`§¥¡­)¥Î¥Þ¥¡¥ô¥µ¥²
++¤Þ¤¡¤¦¡«¤µ¤² #T35 ¡³(`§¥¡­)ÂŽÉÂŽÏÂŽ§ÂŽ³ÂŽÞÂŽ»ÂŽ¹ÂŽÞ
++¤Þ¤¢¤ª¤Á¤Ä¤± #CJ ¤Þ¤¢Íî¤ÁÃ失
++¤Þ¤¢¤ª¤ó¤¿¤¤¤À¤· #CJ ¤Þ¤¢¸æÂç¤À¤·
++¤Þ¤¢¤Á #T35 ¥Þ¡¼¥Á
++¤Þ¤¤¤¦¡¼ #T35 ¥Þ¥¤¥¦¡¼
++¤Þ¤¤¤®¤ç¤¯ #T35 £Í£ù¶Ì
++¤Þ¤¤¤¯¤½¤½¤Õ¤È #T35 ¥Þ¥¤Êµ¥½¥Õ¥È
++¤Þ¤¤¤¿ #CN ¥ÞÈÄ
++¤Þ¤¤¤¿ #T35 ¥ÞÈÄ
++¤Þ¤¤¤¿¤ó¤Ú¤ó¤®¤ó #JN ¤Þ¤¤¤¿¤ó¥Ú¥ó¥®¥ó
++¤Þ¤¤¤Ë¤Ã¤Á #JN ¥Þ¥¤¥Ë¥Ã¥Á¡¡
++¤Þ¤¤¤Ó¤¤¤à #T35 ¥Þ¥¤¥Ó¡¼¥à
++¤Þ¤¤¤ó¤É¤¯¤é¤Ã¤·¤ã¤¢ #T35 ¥Þ¥¤¥ó¥É¥¯¥é¥Ã¥·¥ã¡¼
++¤Þ¤¦ #JN ¥Þ¥¦
++¤Þ¤¦ #T35 ¥Þ¥¦
++¤Þ¤¦¤¹¤Ñ¤Ã¤È #T35 ¥Þ¥¦¥¹¥Ñ¥Ã¥È
++¤Þ¤¨¤¹¤ì #T35 Á°¥¹¥ì
++¤Þ¤¨¤À¤±¤¤¤¸ #JN Á°Åķļ¡
++¤Þ¤ª¡¼ #JN ¥Þ¥ª¡¼
++¤Þ¤ª¤¦¤â¤Ê¤Õ¤¡¡¼ #JN ËⲦ¥â¥Ê¥Õ¥¡¡¼
++¤Þ¤«¡¼ #T35 ¥Þ¥«¡¼
++¤Þ¤«¤¢ #T35 ¥Þ¥«¡¼
++¤Þ¤«¤¤ #T35 Ë⳦
++¤Þ¤«¤Ä #K5 ¤Þ¤«¤Ä
++¤Þ¤«¤Ä¤¯¤Ã¤Æ¤¤¤¦¤«¤­¤â¤¤ #CJ ¤Þ¤«¤Ä¤¯¤Ã¤Æ¤¤¤¦¤«¥­¥â¥¤
++¤Þ¤­¤³ #JNM ¥Þ¥­¥³
++¤Þ¤­¤³ #JNM Ëâµ´»Ò
++¤Þ¤­¤³ #T35 ¥Þ¥­¥³
++¤Þ¤­¤³ #T35 Ëâµ´»Ò
++¤Þ¤­¤Î¤ë¤­ #JN ËÒÌîαɱ
++¤Þ¤°¤Þ¤° #KK ¤Þ¤°¤Þ¤°
++¤Þ¤°¤í #T35 Ëî
++¤Þ¤±¤¤¤Ì #T35 É餱¸¤
++¤Þ¤³¤Ä #T35 Ëâ¹ü
++¤Þ¤³¤È #JN ¿¿
++¤Þ¤³¤Ô¡¼ #JN ¤Þ¤³¤Ô¡¼
++¤Þ¤³¤Ô¡¼ #T35 ¤Þ¤³¤Ô¡¼
++¤Þ¤³¤Ô¤¤ #T35 ¤Þ¤³¤Ô¡¼
++¤Þ¤³¤Ô¤¹¤È #T35 ¤Þ¤³¤Ô¤¹¤È
++¤Þ¤µ¤ª #JNM ¤Þ¤µ¤ª
++¤Þ¤µ¤ª #JNM ¥Þ¥µ¥ª
++¤Þ¤µ¤ª #JNM ÀµÃË
++¤Þ¤µ¤ª #T35 ¤Þ¤µ¤ª
++¤Þ¤µ¤ª #T35 ¥Þ¥µ¥ª
++¤Þ¤µ¤ª #T35 ÀµÃË
++¤Þ¤µ¤à¤Í¡¼¤è¤«¤Ã¤³¤¦¤£¤º¤Ê¤¨¤Ê¤¤¤ï¤È¤¸¤«¤Ã¤³ #JN ¥Þ¥µ¥à¥Í¡¼¥è¡Êwith¡¡¥Ê¥¨¥Ê¥¤¥ï¡Ë
++¤Þ¤µ¤ä #JNM ¥Þ¥µ¥ä
++¤Þ¤µ¤ä #T35 ¥Þ¥µ¥ä
++¤Þ¤µ¤è¤· #JNM ÀµµÁ
++¤Þ¤·¡¼¤Ö #T35 ¥Þ¥·¡¼¥Ö
++¤Þ¤·¤¤¤Ö #T35 ¥Þ¥·¡¼¥Ö
++¤Þ¤·¤ê¤È #JN ¥Þ¥·¥ê¥È
++¤Þ¤·¤ê¤È #T35 ¥Þ¥·¥ê¥È
++¤Þ¤·¤ó¤¤¤é¤Í¤¤¤À¡¼ #JN ¥Þ¥·¥ó¥¤¥é¥Í¥¤¥À¡¼
++¤Þ¤·¤ó¤µ¤ó #CJ ¤Þ¤·¤ó¤µ¤ó¡¦¡¦¡¦
++¤Þ¤¸¤á¤À¤Ê¡¼ #JN ¥Þ¥¸¥á¥À¥Ê¡¼
++¤Þ¤¸¤ì¤¹ #T30 ¥Þ¥¸¥ì¥¹
++¤Þ¤¸¤ì¤¹¤Þ¤ó #JN ¥Þ¥¸¥ì¥¹¥Þ¥ó
++¤Þ¤¸¤ò¤¿ #T35 ¥Þ¥¸¥ò¥¿
++¤Þ¤¹¤ª #JNM ¥Þ¥¹¥ª
++¤Þ¤¹¤ª #T35 ¥Þ¥¹¥ª
++¤Þ¤¹¤´¤ß #T35 ¥Þ¥¹¥´¥ß
++¤Þ¤¹¤¿ #SUC ¤Þ¤¹¤¿
++¤Þ¤¹¤¿¡¼¤¤¤Ä¤â¤Î¤¿¤Î¤à #CJ ¥Þ¥¹¥¿¡¼¡¢¤¤¤Ä¤â¤Î¤¿¤Î¤à
++¤Þ¤º¤¦ #CJ ¥Þ¥º¡¼
++¤Þ¤º¤¦ #CJ ÂŽÏÂŽ½ÂŽÞÂŽ°
++¤Þ¤º¤¸¤å¡¼ #T35 ¤Þ¤º¥¸¥å¡¼
++¤Þ¤½¤³ #T35 ¥Þ¥½¥³
++¤Þ¤¿ #CJ ¤Þ¤¿¡©
++¤Þ¤¿¡¼¤ê #T30 ¥Þ¥¿¡¼¥ê
++¤Þ¤¿¡¼¤ê #T30 ¥Þ¥¿¡Á¥ê
++¤Þ¤¿¡¼¤ê¤­¤ã¤é¤®¤ã¤¯¤µ¤Ä¤È¤¦ #KK ¥Þ¥¿¡¼¥ê¥­¥ã¥éµÔ»¦ÅÞ
++¤Þ¤¿¡¼¤ê¤­¤ã¤é¤®¤ã¤¯¤µ¤Ä¤È¤¦¤¢¤é¤· #JN ¥Þ¥¿¡¼¥ê¥­¥ã¥éµÔ»¦Å޹Ӥ餷
++¤Þ¤¿¡¼¤ê¤­¤ã¤é¤®¤ã¤¯¤µ¤Ä¤È¤¦¤½¤¦¤¹¤¤ #JN ¥Þ¥¿¡¼¥ê¥­¥ã¥éµÔ»¦ÅÞÁí¿ã
++¤Þ¤¿¡¼¤ê¤´¤¦ #JN MATAARI¹æ
++¤Þ¤¿¡¼¤ê¤Ê¤ä¤·¤ç¤¯¤ò¤Ä¤¯¤í¤¦ #JN ¥Þ¡¼¥¿¥ê¤ÊÌë¿©¤òºî¤í¤¦
++¤Þ¤¿¡¼¤ê¤á¤À¤ë #JN ¥Þ¥¿¡¼¥ê¥á¥À¥ë
++¤Þ¤¿¡¼¤ê¤á¤À¤ë #JN ÂŽÏÂŽÀÂŽ°ÂŽØÂŽÒÂŽÀÂŽÞÂŽÙ
++¤Þ¤¿¤¢¤ê¤¹¤ì #T35 ¥Þ¥¿¡¼¥ê¥¹¥ì
++¤Þ¤¿¤¢¤ê¤Á¤å¤¦ #T35 ¥Þ¥¿¡¼¥ê¿ß
++¤Þ¤¿¤ª¤ª¤µ¤«¤« #CJ ¤Þ¤¿Âçºå¤«
++¤Þ¤¿¤ª¤ª¤µ¤«¤ä #CJ ¤Þ¤¿Âçºå¤ä
++¤Þ¤¿¤Ê¤¬¤¿¤¹¤ì¤« #CJ ¤Þ¤¿±ÊÅÄ¥¹¥ì¤«
++¤Þ¤À¤à #JN ¥Þ¥À¥à
++¤Þ¤Á¤Ó¡¼¤Ó¡¼¤¨¤¹ #KK ¤Þ¤ÁBBS
++¤Þ¤Á¤Ó¤¤¤Ó¤¤¤¨¤¹ #T35 ¤Þ¤ÁBBS
++¤Þ¤Ã¤¿¤ê #T30  ¥Þ¥Ã¥¿¥ê
++¤Þ¤Ã¤¿¤ê #T30 ¤Þ¤Ã¤¿¤ê
++¤Þ¤Ã¤Á¤ç¤â¤Ê¡¼ #JN ¥Þ¥Ã¥Á¥ç¥â¥Ê¡¼
++¤Þ¤Ä¤¤ #T35 ¾¾°æ
++¤Þ¤Ä¤¿¤±¤³ #JN ¾¾¤¿¤±»Ò
++¤Þ¤Ä¤À¤¤¤é #T35 ¾¾Ê¿
++¤Þ¤Ä¤À¤¿¤«¤È #JN ¾¾ÅÄ·¼¿Í
++¤Þ¤Ä¤ê #T35 º×¤ê
++¤Þ¤Ä¤ê¤¢¤­¤¿ #JN º×¤êË°¤­¤¿
++¤Þ¤Ä¤ê¤À¤È¤Ä¤²¤­¤À #JN º×¤ê¤À¢öÆÍ·â¤À¡ª
++¤Þ¤Å #T35 ¥Þ¥Å
++¤Þ¤È¤Ð¤Õ¤ß¤ª #JN Ū¾ìʸÃË
++¤Þ¤É¤« #T35 ¥Þ¥É¥«
++¤Þ¤É¤Ä¤«¤¤ #T35 Áë»È¤¤
++¤Þ¤Ë¡¼ #JN ¥Þ¥Ë¡¼¡¡
++¤Þ¤Ë¡¼¤¯¤Þ¤Ã¤·¤å¤ë¡¼¤à #JN ¥Þ¥Ë¡¼¥¯¥Þ¥Ã¥·¥å¥ë¡¼¥à
++¤Þ¤Ë¡¼¤¯¤Þ¤Ã¤·¤å¤ë¡¼¤à #JN ¥Þ¥Ë¡¼¥¯¥Þ¥Ã¥·¥å¥ë¡¼¥à 
++¤Þ¤Ò¤£¤¢ #JN ¥Þ¥Ò¥£¥¢
++¤Þ¤Ò¤£¤¢ #JN ÂŽÏÂŽËÂŽ¨ÂŽ±
++¤Þ¤Ò¤£¤¢ #T35 ¥Þ¥Ò¥£¥¢
++¤Þ¤Ò¤£¤¢¤£¤ç¤¥ #JN ¥Þ¥Ò¥£¥¢¤£¤ç¤¥
++¤Þ¤Ò¤£¤¢¤£¤ç¤¥ #JN ÂŽÏÂŽËÂŽ¨ÂŽ±¤£¤ç¤¥
++¤Þ¤Û¤¦¤Ä¤«¤¤ #T35 ËâË¡»È¤¤
++¤Þ¤Ü¤ó #T35 Ëõ¥Ü¡¼¥ó
++¤Þ¤Ü¤ó #T35 Ëõ¥Ü¥ó
++¤Þ¤Ý¡¼¤é #CJ ¥Þ¥Ý¡¼¥é
++¤Þ¤Þ #CJ ¡Ê¡­§Õ¡®¡Ë¥Þ¥Þ¡¦¡¦¡¦
++¤Þ¤Þ #CJ ¡Ê¡­§Õ¡®¡ËÂŽÏÂŽÏ¡¦¡¦¡¦
++¤Þ¤Þ #JN ¡Ê¡­§Õ¡®¡Ë¥Þ¥Þ¡¦¡¦¡¦
++¤Þ¤Þ #JN ¡Ê¡­§Õ¡®¡ËÂŽÏÂŽÏ¡¦¡¦¡¦
++¤Þ¤Þ¤´¤ó #T35 ¥Þ¥Þ¥´¥ó
++¤Þ¤Þ¤â¤Ê¡¼¤»¤¤¤Á¤ç¤¦¤º #JN ¥Þ¥Þ¥â¥Ê¡¼À®Ä¹¿Þ
++¤Þ¤Þ¤ó #JN ¥Þ¥Þ¥ó
++¤Þ¤Þ¤ó #T35 ¥Þ¥Þ¥ó
++¤Þ¤à¤³ #T35 ¥Þ¥à¥³
++¤Þ¤á #T35 Ʀ
++¤Þ¤é¤¤¤¢¤ó #JN ¥Þ¥é¥¤¥¢¥ó
++¤Þ¤é¤¹¤¿¡¼ #JN ¥Þ¥é¡¦¥¹¥¿¡¼
++¤Þ¤é¤Í¡¼¤è #JN ¥Þ¥é¥Í¡¼¥è
++¤Þ¤é¤Ü¤¦ #JN ¥Þ¥éË·
++¤Þ¤é¤ß #JN ¥Þ¥éÈþ
++¤Þ¤é¤é¡¼ #JN ¥Þ¥é¥é¡¼
++¤Þ¤é¤é¡¼¤À¤ó¤µ¡¼¤º #JN ¥Þ¥é¥é¡¼¥À¥ó¥µ¡¼¥º
++¤Þ¤é¤é¤É¤Î #JN ¥Þ¥é¥éÅÂ
++¤Þ¤é¤ê¡¼¤Þ¤ó #JN ¥Þ¥é¥ê¡¼¥Þ¥ó
++¤Þ¤ê¤â #JN ÝÜÁô
++¤Þ¤ê¤â #T35 ¤Þ¤ê¤â
++¤Þ¤ë¤¤¤±¤¤ #T35 ´Ý°æ·Ï
++¤Þ¤ë¤¹¤ä #JN £Í£Á£Ò£Ó²°
++¤Þ¤ë¤Á #JN ¥Þ¥ë¥Á
++¤Þ¤ë¤Á #T35 ¥Þ¥ë¥Á
++¤Þ¤ë¤Á¤Ý¤¹¤È #T30 ¥Þ¥ë¥Á¥Ý¥¹¥È
++¤Þ¤ë¤ß #JN ±ßÈþ
++¤Þ¤ë¤ß¤ß¤â¤Ê¡¼ #JN ´Ý¼ª¥â¥Ê¡¼
++¤Þ¤í¤ó #T35 ¥Þ¥í¥ó
++¤Þ¤ï¤·¤®¤³ #JN ¤Þ¤ï¤·¥®¥³
++¤Þ¤ó #T35 Ëþ
++¤Þ¤ó¤¤¤ó¤Ç¤ó¤·¤ã #JN Ëþ°÷ÅżÖ
++¤Þ¤ó¤¬¤Í¤¿¤¹¤ì #T35 Ì¡²è¥Í¥¿¥¹¥ì
++¤Þ¤ó¤­¤ó¤¨¤°¤¼ #T35 ¥Þ¥ó¥­¥óEXE
++¤Þ¤ó¤®¤ã¤ë #T35 ¥Þ¥ó¥®¥ã¥ë
++¤Þ¤ó¤º¤ê #T35 ÒÄ¥º¥ê
++¤Þ¤ó¤»¡¼ #CJ ¥Þ¥ó¥»¡¼
++¤Þ¤ó¤»¡¼¤á¡¼¤¿¡¼ #T35 ¥Þ¥ó¥»¡¼¥á¡¼¥¿¡¼
++¤Þ¤ó¤»¤¨¤á¤¨¤¿¤¢ #T35 ¥Þ¥ó¥»¡¼¥á¡¼¥¿¡¼
++¤Þ¤ó¤É¤¯¤»¤¨ #CJ ¥Þ¥ó¥É¥¯¥»¡¼
++¤Þ¤ó¤Ü¤¦ #JN ¥Þ¥ó¥Ü¥¦
++¤ß¡¼¤È¤Ü¡¼¤ë #JN ¥ß¡¼¥È¥Ü¡¼¥ë
++¤ß¤¤¤Ë¤ã¤¢¤¿¤ó #T35 ¥ß¡¼Æó¥ã¡¼¤¿¤ó
++¤ß¤¦¤Ê #JN ¤ß¤¦¤Ê
++¤ß¤«¤« #KK ¤ß¤«¤«
++¤ß¤«¤« #T35 ¤ß¤«¤«
++¤ß¤«¤É¤¢¤ó #JN ¤ß¤«¤É°Ã
++¤ß¤«¤É¤¢¤ó¤Ê¤¤¤Ö #JN ¤ß¤«¤É°ÃÆâÉô
++¤ß¤­¡¼¤ª #JN ¥ß¥­¡¼¥ª
++¤ß¤®¤Æ¤Ç¤«¤­¤Þ¤·¤¿ #CJ ±¦¼ê¤Ç½ñ¤­¤Þ¤·¤¿
++¤ß¤®¤Ò¤² #T35 ±¦¤Ò¤²
++¤ß¤³¤ß¤³¤Ê¤¢¤¹ #KK Öà½÷¤ß¤³¥Ê¡¼¥¹
++¤ß¤µ¤«¤«¤ª¤ê #T35 Èþºä¹áΤ
++¤ß¤·¤ã¤â¤Ê¡¼ #JN Èþ¼Ó¥â¥Ê¡¼
++¤ß¤·¤ç¤¯¤¯¤ó #T35 ̤¿©·¯
++¤ß¤¹¤º¤â¤Ê¡¼ #JN ´ÑÎë¥â¥Ê¡¼
++¤ß¤¹¤¿¡¼¤Û¤¥ #JN Mr.ÂŽÎÂŽ©
++¤ß¤º¤´¤ê¤é #JN ¿å¥´¥ê¥é
++¤ß¤º¤´¤ê¤é #T35 ¿å¥´¥ê¥é
++¤ß¤¾¤Í¤º¤ß #JN ¹ÂÁÍ
++¤ß¤¾¤Í¤º¤ß #T35 ¹ÂÁÍ
++¤ß¤¿¤é¤¤¤Ò¤í¤­ #T35 ¸æ¼êÀöÊØ´ï
++¤ß¤Á¤å #JN (*'-'*)
++¤ß¤Á¤å #JN ¤ß¤Á¤å
++¤ß¤Ã¤·¡¼ #JN ¤ß¤Ã¤·¡¼
++¤ß¤Ã¤·¡¼ #T35 ¤ß¤Ã¤·¡¼
++¤ß¤Ã¤·¤¤ #T35 ¤ß¤Ã¤·¡¼
++¤ß¤Ã¤Õ¤£¡¼¤ª¤ä¤³ #JN ¥ß¥Ã¥Õ¥£¡¼¿Æ»Ò
++¤ß¤Ä¤´¤í #T35 £³£²£µ£¶
++¤ß¤Ä¤ß #T35 £³£²£³
++¤ß¤Ä¤ß¤â¤Ê¡¼ #JN £³£²£³¥â¥Ê¡¼
++¤ß¤É¤Í¤¨ #T35 ¥ß¥É°¹
++¤ß¤É¤ê¤¬¤¨¤ë #T35 Îг¿
++¤ß¤Ê¡¼ #JN ¥ß¥Ê¡¼
++¤ß¤Ê¤»¤Ê¤æ¤­ #JN ¿åÀ¥Ì¾Àã
++¤ß¤Ê¤»¤Ê¤æ¤­ #T35 ¿åÀ¥Ì¾Àã
++¤ß¤Ê¤Å¤­¤¸¤ç¤¦¤Û¤¦¤Ú¡¼¤¸ #KK ¿å̵·î¾ðÊó¥Ú¡¼¥¸
++¤ß¤Ê¤Ý¤ó #T35 ¤ß¤Ê¤Ý¤ó
++¤ß¤Ê¤ß¤Á¤ç¤ó #T35 Æî¥Á¥ç¥ó
++¤ß¤Ê¤ß¤â¤ê¤Þ¤Á #KK ÆĮ
++¤ß¤Ê¤ß¤â¤ê¤Þ¤Á #T35 ÆĮ
++¤ß¤Ê¤â¤È #T35 ¥ß¥Ê¤â¤È
++¤ß¤Ê¤â¤È¤µ¤ó #JN ¸»¤µ¤ó
++¤ß¤Ë¤®¤³ #JN ¥ß¥Ë¥®¥³
++¤ß¤Ë¤â¤é #JN ¥ß¥Ë¥â¥é
++¤ß¤Î¤ï #T35 ̧ÎØ
++¤ß¤ß¤º¤ä¤µ¤ó #T35 ¥ß¥ß¥º²°¤µ¤ó
++¤ß¤ß¤Ê¤·¤â¤Ê¡¼ #JN ¼ª¤Ê¤·¥â¥Ê¡¼
++¤ß¤à¤é #JNS »°Â¼
++¤ß¤à¤é #T35 »°Â¼
++¤ß¤ã¤¢¤À¤¤ #T35 ¤ß¤ã¡ÁÂç
++¤ß¤ã¤Ã¤¯ #JN ¥ß¥ã¥Ã¥¯
++¤ß¤ç¤¥ #JN ¤ß¤ç¤¥
++¤ß¤è¤¦ #JN ¤ß¤ç¤¥
++¤ß¤é¤¤¤Ë¤Ã¤­ #T35 ̤ÍèÆüµ­
++¤ß¤ë¤¯¤«¤Õ¤§ #T35 ¥ß¥ë¥¯¥«¥Õ¥§
++¤ß¤ó¤É #T35 ̱ÅÙ
++¤ß¤ó¤Ê¡¼¤ª¤Á¤±¤Ä¡¼ #JN ¤ß¤ó¤Ê¡¼¤ª¤Á¤±¤Ä¡¼
++¤ß¤ó¤Ê¤«¤é¤Î¤ª¤Í¤¬¤¤ #T35 ¤ß¤ó¤Ê¤«¤é¤Î¤ª¤Í¤¬¤¤
++¤à¤¤¤¿ #CN ¥àÈÄ
++¤à¤¥ #JN ¤à¤¥
++¤à¤«¡¼¤Ç #JN ¥à¥«¡¼¥Ç
++¤à¤«¤Ä¤¯¤Í¤ó #JN ¥à¥«¤Ä¤¯Ç°
++¤à¤®¤å¡¼ #JN ¥à¥®¥å¡¼
++¤à¤±¤é¡¼ #JN ¥à¥±¥é¡¼
++¤à¤·¤«¤´ #T35 ÃîäÆ
++¤à¤·¤Ð¡¼ #JN ¥à¥·¥Ð¡¼
++¤à¤·¤å¤¦ #T35 ̵½­
++¤à¤·¤ç¤¯ #T35 ̵¿¦
++¤à¤¸¤ë¤· #T35 ̵°õ
++¤à¤¹¡¼¤Ë¤ç #JN ¥à¥¹¡¼¥Ë¥ç
++¤à¤¹¤« #T35 ¥à¥¹¥«
++¤à¤Ã¤¯ #JN ¥à¥Ã¥¯
++¤à¤Í¤ª #JNM ¥à¥Í¥ª
++¤à¤Í¤ª #T35 ¥à¥Í¥ª
++¤à¤Í¤ª¤Ï¤¦¤¹ #T35 ¥à¥Í¥ª¥Ï¥¦¥¹
++¤à¤Í¤ò #JN ¥à¥Í¥ò
++¤à¤Í¤ò #JNM ¥à¥Í¥ò
++¤à¤Í¤ò #T35 ¥à¥Í¥ò
++¤à¤Ï¤¡ #JN ¡ÊŽߧ¥ÂŽß¡¡¡Ë¥à¥Ï¥¡
++¤à¤Ï¤¡ #JN ¥à¥Ï¥¡
++¤à¤é¤µ¤­ #JN »ç
++¤à¤é¤µ¤­ #T35 »ç
++¤à¤é¤µ¤­¤À #CJ »ç¤À
++¤à¤é¤Î¤·¤ó¤Ü¤ë #JN ¼¤Î¥·¥ó¥Ü¥ë
++¤à¤ê¤À¡¼¤è #JN ¥à¥ê¥À¡¼¥è
++¤à¤ê¤À¡¼¤è #JN ÂŽÑÂŽØÂŽÀÂŽÞÂŽ°ÂŽÖ
++¤á¡¼¤ë¤Ü¤à #T35 ¥á¡¼¥ë¥Ü¥à
++¤á¤¢¤ê¤£ #T35 ¥á¥¢¥ê¥£¡¢¡º¥¢¥ê¥£
++¤á¤¢¤ê¤£¤Î¤Í¤Ä¤¾¤¦¤ì¤¹ #T35 ¥á¥¢¥ê¥£¤ÎÙÔ¤¥ì¥¹¡¢¡º¥¢¥ê¥£¤ÎÙÔ¤¥ì¥¹
++¤á¤¤¤¸ #CN ÌÀ¼£
++¤á¤¤¤¸ #T35 ­í
++¤á¤¤¤¹¤ì #T35 ̾¥¹¥ì
++¤á¤¤¤¹¤ì¤Î¤ª¤«¤ó #CJ ̾¥¹¥ì¤Î°­´¨
++¤á¤¤¤¹¤ì¤Î¤è¤«¤ó #CJ ̾¥¹¥ì¤Îͽ´¶
++¤á¤¤¤Æ¤Ä #T35 ÌÂÅ´
++¤á¤¤¤Ì¤ì¤Î¤è¤«¤ó #CJ ³Æ¥Ì¥ì¤ÎÌ·´¶
++¤á¤¤¤×¤ë¤·¤í¤Ã¤× #T35 MapleSyrup
++¤á¤¤¤è¤Ø¤ó¤¸¤ç¤¦ #CJ ̾ÍÀÊÖ¾å
++¤á¤¤¤ë¤Ü¤à #T35 ¥á¡¼¥ë¥Ü¥à
++¤á¤¨¤Æ¤ë¤¹¤ì #T35 ¥á¡¼¥Æ¥ë¥¹¥ì
++¤á¤«¡¼ #JN ÂŽÒÂŽ¶ÂŽ°
++¤á¤«¤¤¤è¤¦ #JN ¥á¥«¤£¤ç¤¥
++¤á¤«¤¦¤Þ¡¼ #JN ÂŽÒÂŽ¶ÂŽ³ÂŽÏÂŽ°¡ÊÂŽÒÂŽ¶ÂŽ°¡Ë
++¤á¤«¤ª¤È¤¿¤± #JN ¥á¥«ZÉð
++¤á¤«¤ª¤Ë¤®¤ê #JN ¥á¥«¤ª¤Ë¤®¤ê
++¤á¤«¤«¤á¤â¤Ê¡¼ #JN ¥á¥«¥«¥á¥â¥Ê¡¼
++¤á¤«¤®¤³ #JN ¥á¥«¥®¥³
++¤á¤«¤²¤é¤é¡¼ #JN ¥á¥«¥²¥é¥é¡¼
++¤á¤«¤·¤é¤Í¡¼¤è #JN ¥á¥«¥·¥é¥Í¡¼¥è
++¤á¤«¤¸¤¨¤ó #JN [¡¦»®¡¦¡§]
++¤á¤«¤¸¤¨¤ó #JN ÂŽÒÂŽ¶ÂŽ¼ÂŽÞÂŽ´ÂŽÝ
++¤á¤«¤»¤¤¤È #JN ¥á¥«À¸ÅÌ
++¤á¤«¤½¤¦¤Ç¤â¤Ê¤¤¤è #JN ¥á¥«¤½¤¦¤Ç¤â¤Ê¤¤¤è
++¤á¤«¤½¤é¤Í¡¼¤è #JN ¥á¥«¥½¥é¥Í¡¼¥è
++¤á¤«¤¾¤Ì #JN ¥á¥«¤¾¤Ì
++¤á¤«¤È¤±¤Í¡¼¤è #JN [:ÂŽß/|ÂŽß:]ÂŽÄÂŽ¹ÂŽÈÂŽ°ÂŽÖ
++¤á¤«¤È¤±¤Í¡¼¤è #JN ¥á¥«¥È¥±¥Í¡¼¥è
++¤á¤«¤Õ¤§¤é¡¼¤Á¤ç #JN ¥á¥«¥Õ¥§¥é¡¼¥Á¥ç
++¤á¤«¤â¤¦¤³¤Í¤§¤è #JN ¥á¥«ÂŽÓÂŽ³ÂŽºÂŽÈÂŽªÂŽÖ!
++¤á¤«¤â¤Ê¡¼ #JN ¥á¥«¥â¥Ê¡¼
++¤á¤¬¤¨¤ë #JN ¥á¥¬¥¨¥ë
++¤á¤¬¤Ó #KK ¥á¥¬¥Ó
++¤á¤¬¤Ó #T35 ¥á¥¬¥Ó
++¤á¤¬¤ß #T35 ½÷¿À
++¤á¤®¤Î¤¬¤Ç #JN ¥á¡¦¥®¥Î¥¬¡¦¥Ç
++¤á¤± #T35 ¤á¤±
++¤á¤±¤Ã #T35 ¤á¤±¤Ã
++¤á¤±¤ò¤ß¤È¤á¤ë #CJ ¤á¤±¤òǧ¤á¤ë
++¤á¤·¤À¤¤ #T35 ¤á¤·Âç
++¤á¤¹¤Ö¤¿ #T35 »óÆÚ
++¤á¤½¤Ð¡¼ #T35 ¥á¥½¥Ð¡¼
++¤á¤½¤Ð¤¢ #T35 ¥á¥½¥Ð¡¼
++¤á¤¾¤·¤ã¡¼¤ê¡¼ #KK ¥á¥¾¥·¥ã¡¼¥ê¡¼
++¤á¤¾¤·¤ã¡¼¤ê¡¼ #T35 ¥á¥¾¥·¥ã¡¼¥ê¡¼
++¤á¤¾¤·¤ã¤¢¤ê¤¤ #T35 ¥á¥¾¥·¥ã¡¼¥ê¡¼
++¤á¤¿¤ê¤« #T35 ¥á¥¿¥ê¥«
++¤á¤¿¤ê¤Ã¤¯ #KK ¤á¤¿¤ê¤Ã¤¯
++¤á¤À¤Þ #T35 ÌܶÌ
++¤á¤Ç¤Æ¡¼¤è #JN ¥á¥Ç¥Æ¡¼¥è
++¤á¤Ê¤· #JN Ìܤʤ·
++¤á¤à¤Ð¡¼ #T35 ¥á¥à¥Ð¡¼
++¤á¤â¤é¡¼ #JN ¥á¥â¥é¡¼
++¤á¤ê¤±¤ó¤Æ¤ó¤·¤µ¤é #JN ¥á¥ê¥±¥óÅ·»È¡ù¥µ¥é¡ª
++¤á¤ê¤ë¤·¤£¤ë¤Ð¡¼¤Ð¡¼¤° #JN ¥á¥ê¥ë¡¦¤·¤£¥ë¥Ð¡¼¥Ð¡¼¥°
++¤á¤ë¤Ø¤ó #T35 ¥á¥ë¥Ø¥ó
++¤á¤ë¤Ø¤ó¤¤¤¿ #T35 ¥á¥ë¥Ø¥óÈÄ
++¤á¤ë¤Þ¤¬ #T35 ¥á¥ë¥Þ¥¬
++¤á¤í¤¹¤Ñ¡¼ #T35 ¥á¥í¥¹¥Ñ¡¼
++¤á¤í¤¹¤Ñ¤¢ #T35 ¥á¥í¥¹¥Ñ¡¼
++¤á¤í¤ó #T35 ¥á¥í¥ó
++¤á¤ó #T35 ÌÍ
++¤á¤ó¤¿¤ë¤Ø¤ë¤¹¤¤¤¿ #T35 ¥á¥ó¥¿¥ë¥Ø¥ë¥¹ÈÄ
++¤á¤ó¤Æ #T30 ¥á¥ó¥Æ
++¤á¤ó¤É¤¯¤»¤§ #JN ¥á¥ó¥É¥¯¥»¥§
++¤á¤ó¤É¤¯¤»¤§¤»¤¤¤È #JN ÂŽÒÂŽÝÂŽÄÂŽÞÂŽ¸ÂŽ¾ÂŽªÀ¸ÅÌ
++¤á¤ó¤Ð¡¼ #T35 ¥á¥ó¥Ð¡¼
++¤á¤ó¤Ð¤¢ #T35 ¥á¥ó¥Ð¡¼
++¤á¤ó¤Ø¤é¤¢ #T35 ¥á¥ó¥Ø¥é¡¼
++¤á¤ó¤Ø¤ë¤¤¤¿ #T35 ¥á¥ó¥Ø¥ëÈÄ
++¤á¤ó¤Ü¤¦ #T35 ¤á¤ó¤Ü¤¦
++¤â¡¼¤¤¤¿ #CN ¥â¡¼ÈÄ
++¤â¡¼¤¤¤¿ #T35 ¥â¡¼ÈÄ
++¤â¡¼¤³¡¼ #CN ¥â¡¼¥³¡¼
++¤â¡¼¤³¡¼ #T35 ¥â¡¼¥³¡¼
++¤â¡¼¤Ë¤ó¤°¤³¡¼¤Ò¡¼ #CN ¥â¡¼¥Ë¥ó¥°¥³¡¼¥Ò¡¼
++¤â¡¼¤Ë¤ó¤°¤³¡¼¤Ò¡¼ #KK ¥â¡¼¥Ë¥ó¥°¥³¡¼¥Ò¡¼
++¤â¡¼¤Ë¤ó¤°¤à¤¹¤á #JN ¥â¡¼¥Ë¥ó¥°Ì¼¡£
++¤â¡¼¤Ë¤ó¤°¤à¤¹¤á¤¤¤¿ #CN ¥â¡¼¥Ë¥ó¥°Ì¼¡£ÈÄ
++¤â¤¢¤ê #T35 ÁôÍ­
++¤â¤¤¤¿ #CN ¥âÈÄ
++¤â¤¤¤¿ #T35 ¥âÈÄ
++¤â¤¦¤¤¤¿ #T35 ¥â¡¼ÈÄ
++¤â¤¦¤ª¤³¤Ã¤¿¤¾¤¦ #JN ¤â¤¦Åܤä¿¥¾¥¦
++¤â¤¦¤²¤ó #T35 ÌѸÀ
++¤â¤¦¤³¤¦ #T35 ¥â¡¼¥³¡¼
++¤â¤¦¤³¤Í¤¨¤è  #JN ¡³(`§¥¡­)Žɤ⤦Íè¤Í¤¨¤è
++¤â¤¦¤³¤Í¤¨¤è #CJ ¡³(`§¥¡­)¥Î¤â¤¦Íè¤Í¤¨¤è¡ª
++¤â¤¦¤³¤Í¤¨¤è #CJ ¡³(`§¥¡­)¥Î¤â¤¦Íè¤Í¤¨¤è¡ª¥¦¥ï¥¡¥¡¥ó 
++¤â¤¦¤³¤Í¤¨¤è #CJ ¡³(`§¥¡­)Žɤ⤦Íè¤Í¤¨¤è¡ª
++¤â¤¦¤³¤Í¤¨¤è #CJ ¡³(`§¥¡­)Žɤ⤦Íè¤Í¤¨¤è¡ªÂŽ³ÂŽÜÂŽ§ÂŽ§ÂŽÝ 
++¤â¤¦¤³¤Í¤¨¤è #CJ ¤â¤¦Íè¤Í¤¨¤è¡ª
++¤â¤¦¤³¤Í¤¨¤è #JN ¡³(`§¥¡­)¥Î¤â¤¦Íè¤Í¤¨¤è¡ª¥¦¥ï¥¡¥¡¥ó 
++¤â¤¦¤³¤Í¤¨¤è #JN ¡³(`§¥¡­)Žɤ⤦Íè¤Í¤¨¤è¡ªÂŽ³ÂŽÜÂŽ§ÂŽ§ÂŽÝ 
++¤â¤¦¤³¤Í¤¨¤è #JN ¥â¥¦¥³¥Í¥¨¥è!!¥¦¥ï¥¡¥¡¥ó!¥â¥¦¥³¥Í¥¨¥è!!¥¦¥ï¥¡¥¡¥ó!¥â¥¦¥³¥Í¥¨¥è!!¥¦¥ï¥¡¥¡¥ó!
++¤â¤¦¤³¤Í¤¨¤è #JN ÂŽÓÂŽ³ÂŽºÂŽÈÂŽ´ÂŽÖ!!ÂŽ³ÂŽÜÂŽ§ÂŽ§ÂŽÝ!ÂŽÓÂŽ³ÂŽºÂŽÈÂŽ´ÂŽÖ!!ÂŽ³ÂŽÜÂŽ§ÂŽ§ÂŽÝ!ÂŽÓÂŽ³ÂŽºÂŽÈÂŽ´ÂŽÖ!!ÂŽ³ÂŽÜÂŽ§ÂŽ§ÂŽÝ!
++¤â¤¦¤³¤Í¤¨¤è¤¦¤ï¤¡¤¡¤ó  #JN ¡³(`§¥¡­)Žɤ⤦Íè¤Í¤¨¤è¡ªÂŽ³ÂŽÜÂŽ§ÂŽ§ÂŽÝ 
++¤â¤¦¤½¤¦¤½¤¦ #CJ ¤â¤¦¤½¤¦¤½¤¦
++¤â¤¦¤¿¤¢¤ª¤È¤³ #T35 ¥â¡¼¥¿¡¼ÃË
++¤â¤¦¤¿¤¢¤µ¤¤¤¯¤ë #T35 ¥â¡¼¥¿¡¼¥µ¥¤¥¯¥ë
++¤â¤¦¤¿¤Í¤Ý #CJ ¤â¤¦¤¿¤Í¤Ý
++¤â¤¦¤À¤á¤Ý #CJ ¤â¤¦¤À¤á¤Ý
++¤â¤¦¤À¤á¤Ý #T35 ¤â¤¦¤À¤á¤Ý
++¤â¤¦¤Ë¤ó¤°¤³¤¦¤Ò¤¤ #T35 ¥â¡¼¥Ë¥ó¥°¥³¡¼¥Ò¡¼
++¤â¤¦¤ß¤º¤Ý #CJ ¤â¤¦¤ß¤º¤Ý
++¤â¤¦¤ß¤º¤Ý #T35 ¤â¤¦¤ß¤º¤Ý
++¤â¤¦¤â¤¦ #CJ ¤â¡¼¤â¡¼
++¤â¤¨ #KS ˨¤¨
++¤â¤¨ #T35 ˨¤¨
++¤â¤ª¤Î¤­ #T35 ¥â¥ª¥Î¥­
++¤â¤«¡¼ #JN ¥â¥«¡¼
++¤â¤¬¤ì¤¿¤¯¤ó #JN ¥â¥¬¥ì¥¿·¯
++¤â¤¯¤²¤­¤É¤­¤å¤ó #KK ÌÜ·â¥É¥­¥å¥ó
++¤â¤±¤± #JN ¥â¥±¥±
++¤â¤±¤± #JN ÂŽÓÂŽ¹ÂŽ¹
++¤â¤³¤¿ #JN ¤â¤³ÂÀ
++¤â¤·¤½¤¦¤ê #JNS ¿¹ÁíÍý
++¤â¤·¤½¤¦¤ê #JNSUC ¿¹ÁíÍý
++¤â¤¸¤ì¤¹ #T35 ʸ»ú¥ì¥¹
++¤â¤¹¤é¡¼ #JN ¥â¥¹¥é¡¼
++¤â¤» #T35 ¤â¤»
++¤â¤»¤¢ #T35 ¤â¤»¤¢
++¤â¤¿¤ª #T35 ¥â¥¿ÃË
++¤â¤Ã¤³¤ê¡¼¤Ê #JN ¥â¥Ã¥³¥ê¡¼¥Ê
++¤â¤Ã¤Á¡¼ #JN ¥â¥Ã¥Á¡¼
++¤â¤Ã¤Á¡¼ #T35 ¥â¥Ã¥Á¡¼
++¤â¤Ã¤Á¤¤ #T35 ¤â¤Ã¤Á¡¼
++¤â¤Ã¤Á¤¤ #T35 ¥â¥Ã¥Á¡¼
++¤â¤Æ¤Í¡¼¤è #JN ¥â¥Æ¥Í¡¼¥è
++¤â¤È¤«¤¤¤¾¤¯¤Î¤Ä¤ê¤­¤Á¤µ¤«¡¼¤Ê #JN ¸µ³¤Â±¤ÎÄà¤ê´ðÃÏ¥µ¥«¡¼¥Ê
++¤â¤È¤«¤¤¤¾¤¯¤Î¤Ä¤ê¤­¤Á¤µ¤«¡¼¤Ê¤È¤½¤Î¤³¤Ö¤ó¤¿¤Á #JN ¸µ³¤Â±¤ÎÄà¤ê´ðÃÏ¥µ¥«¡¼¥Ê¤È¤½¤Î»Òʬ¤¿¤Á 
++¤â¤Ê¡¼ #JN ¥â¥Ê¡¼
++¤â¤Ê¡¼¤¦¡¼¤Þ¤ó #JN ¥â¥Ê¡¼¥¦¡¼¥Þ¥ó
++¤â¤Ê¡¼¤«¡¼¤É #JN ¥â¥Ê¡¼¥«¡¼¥É
++¤â¤Ê¡¼¤«¤ó¤³¤¦ #KK ¥â¥Ê¡¼´Ñ¸÷
++¤â¤Ê¡¼¤¯¤¨¤¹¤È #KK ¥â¥Ê¡¼¥¯¥¨¥¹¥È
++¤â¤Ê¡¼¤¯¤¨¤¹¤È #T35 ¥â¥Ê¡¼¥¯¥¨¥¹¥È
++¤â¤Ê¡¼¤¯¤Ã¤­¤ó¤° #JN ¥â¥Ê¡¼¥¯¥Ã¥­¥ó¥°
++¤â¤Ê¡¼¤±¤ó¤¹¤± #JN ¥â¥Ê¡¼·ò²ð
++¤â¤Ê¡¼¤±¤ó¤¹¤±¤¤ #JN ¥â¥Ê¡¼·ò¤¹·Ù
++¤â¤Ê¡¼¤·¤å¤Ö¤ó¤×¤º #JN ¥â¥Ê¡¼¼ïʬÉÛ¿Þ
++¤â¤Ê¡¼¤·¤å¤Ö¤ó¤×¤º¤â¤Ê¡¼¤â¤é¤é¡¼¤Ð¤ó #JN ¥â¥Ê¡¼¼ïʬÉÛ¿Þ¥â¥Ê¡¼¡¦¥â¥é¥é¡¼ÈÇ
++¤â¤Ê¡¼¤·¤å¤Ö¤ó¤ë¤¤¤º¤±¤Ã¤Æ¤¤¤Ð¤ó #JN ¥â¥Ê¡¼¼ïʬÎà¿Þ·èÄêÈÇ
++¤â¤Ê¡¼¤·¤å¤Ö¤ó¤ë¤¤¤º¤¾¤Ë¤Ã¤¯¤Ð¤ó #JN ¥â¥Ê¡¼¼ïʬÎà¿Þ¡¡¥¾¥Ë¥Ã¥¯ÈÇ
++¤â¤Ê¡¼¤·¤å¤Ö¤ó¤ë¤¤¤º¤¾¤Ë¤Ã¤¯¤Ð¤ó #JN ¥â¥Ê¡¼¼ïʬÎà¿Þ¥¾¥Ë¥Ã¥¯ÈÇ
++¤â¤Ê¡¼¤·¤ç¤¦¤á¤Ä #JN ¥â¥Ê¡¼¾ÃÌÇ
++¤â¤Ê¡¼¤¸¤¾¤¦ #JN ¥â¥Ê¡¼ÃÏ¢
++¤â¤Ê¡¼¤¸¤å¤¦¤è¤ó¤»¤¤ #JN ¥â¥Ê¡¼£±£´À¤
++¤â¤Ê¡¼¤¾¤¯¤­¤å¤¦¤­¤ç¤¯¤ª¤¦¤®¤â¤é¤é¡¼¤É¤é¤¤¤Ð¡¼ #JN ¥â¥Ê¡¼Â²¡¦µæ¶Ë±üµÁ¡¦¥â¥é¥é¡¼¥É¥é¥¤¥Ð¡¼
++¤â¤Ê¡¼¤¿¤ó¤¸¤ç¤¦¤Î¤Ò¤ß¤Ä #JN ¥â¥Ê¡¼ÃÂÀ¸¤ÎÈëÌ©
++¤â¤Ê¡¼¤Ç¤¤¤«¤ê¤ò¤Ö¤Ä¤±¤ë¤¹¤ì¤³¤¯¤µ¤¤¤¸¤ç¤¦¤ä¤¯¤¸¤å¤Ã¤«¤¸¤ç¤¦ #JN ¥â¥Ê¡¼¤ÇÅܤê¤ò¤Ö¤Ä¤±¤ë¥¹¥ì¹ñºÝ¾òÌó½½¥ö¾ò
++¤â¤Ê¡¼¤È¤®¤³¤Î¤²¡¼¤à¤·¤ç¤Ã¤× #JN ¥â¥Ê¡¼¤È¥®¥³¤Î¥²¡¼¥à¥·¥ç¥Ã¥×
++¤â¤Ê¡¼¤Î¤¤¤Á¤Ë¤Á #JN ¥â¥Ê¡¼¤Î°ìÆü
++¤â¤Ê¡¼¤Î¤«¤Î¤¸¤ç #JN ¥â¥Ê¡¼¤ÎÈà½÷
++¤â¤Ê¡¼¤Î¤«¤Î¤¸¤ç #JN ¥â¥Ê¡¼¤ÎÈà½÷¡Ê¸Î¿Í¡Ë 
++¤â¤Ê¡¼¤Î¤»¤ó¤¾ #JN ¥â¥Ê¡¼¤ÎÀèÁÄ
++¤â¤Ê¡¼¤Ï¤è¤¦¤Á¤·¤Í¤è #JN ¥â¥Ê¡¼¤ÏÍÄÃÕ¡£»à¤Í¤è
++¤â¤Ê¡¼¤Ð¤ó¤É #JN ¥â¥Ê¡¼¥Ð¥ó¥É
++¤â¤Ê¡¼¤Õ¤Ã¤«¤Ä #JN ¥â¥Ê¡¼Éü³è
++¤â¤Ê¡¼¤Þ¤ó #JN ¥â¥Ê¡¼¥Þ¥ó
++¤â¤Ê¡¼¤Þ¤ó #JN ÂŽÓÂŽÅÂŽ°ÂŽÏÂŽÝ
++¤â¤Ê¡¼¤à¡¼¤ó¤°¤ó #JN ¥â¥Ê¡¼¥à¡¼¥ó·³
++¤â¤Ê¡¼¤à¡¼¤ó¤°¤ó #JN ÂŽ·ÂŽÞÂŽºÂŽ½ÂŽÀÂŽ°·³
++¤â¤Ê¡¼¤à¡¼¤ó¤°¤ó #JN ÂŽÓÂŽÅÂŽ°ÂŽÑÂŽ°ÂŽÝ·³
++¤â¤Ê¡¼¤á¤¿¤ë¤Ð¤ó¤É #JN ¥â¥Ê¡¼¥á¥¿¥ë¥Ð¥ó¥É
++¤â¤Ê¡¼¤ê¤¶ #JN ¥â¥Ê¡¼¥ê¥¶
++¤â¤Ê¤¢ #T35 ¥â¥Ê¡¼
++¤â¤Ê¤¢¤«¤ó¤³¤¦ #T35 ¥â¥Ê¡¼´Ñ¸÷
++¤â¤Ê¤¢¤¯¤¨¤¹¤È #T35 ¥â¥Ê¡¼¥¯¥¨¥¹¥È
++¤â¤Ê¤¢¤¶¤é¤· #JN ¥â¥Ê¥¢¥¶¥é¥·¡¡
++¤â¤Ê¤¢¤é¤Ö #T35 ¥â¥Ê¡Á¤é¤Ö
++¤â¤Ê¤¤¤¢¤ó #JN ¥â¥Ê¥¤¥¢¥ó
++¤â¤Ê¤¨ #JN ¥â¥é»Þ
++¤â¤Ê¤¨¤À¤»¤ó¤»¤¤ #JN ¥â¥Ê»ÞÀèÀ¸
++¤â¤Ê¤¨¤â¤ó #JN ¥â¥Ê¤¨¤â¤ó
++¤â¤Ê¤ª¤¦ #JN ¥â¥Ê²¦
++¤â¤Ê¤« #JN ¥â¥Ê¥«
++¤â¤Ê¤« #JN ¥â¥Ê¥« 
++¤â¤Ê¤« #JNS ¥â¥Ê¥«
++¤â¤Ê¤« #T35 ¥â¥Ê¥«
++¤â¤Ê¤« #T35 ºÇÃæ
++¤â¤Ê¤«¤«¤ó¤Î¤ó #JN ¥â¥Ê¥«´Ñ²»
++¤â¤Ê¤«¤² #JN ¥â¥Ê±Æ
++¤â¤Ê¤«¤² #JN ÂŽÓŽűÆ
++¤â¤Ê¤«¤Á¤ã¤ó #JN ¥â¥Ê¤«¤Á¤ã¤ó
++¤â¤Ê¤«¤ó¤Î¤ó #JN ¥â¥Ê´Ñ²»
++¤â¤Ê¤«¤ó¤Î¤ó #JN ÌÐ̾´Ñ²»
++¤â¤Ê¤®¤³¤»¤­¤æ¤¬¤½¤ê¤ó¤¹¤¿¤ó¤É #JN ¥â¥Ê¥®¥³ÀÐÌý¥¬¥½¥ê¥ó¥¹¥¿¥ó¥É
++¤â¤Ê¤®¤³¤Õ¤£¤ë¤Ï¡¼¤â¤Ë¡¼¤«¤ó¤²¤ó¤¬¤¯¤À¤ó #JN ¥â¥Ê¥®¥³¥Õ¥£¥ë¥Ï¡¼¥â¥Ë¡¼´É¸¹³ÚÃÄ
++¤â¤Ê¤¯¤í¤×¤¹ #JN £Í£Ï£Î£Á£Ã£Ì£Ï£Ð£Ó
++¤â¤Ê¤¯¤í¤ó #JN ¥â¥Ê¥¯¥í¥ó
++¤â¤Ê¤°¤é¤¨¤ê  #JN ¥â¥Ê¢·ÃΤ
++¤â¤Ê¤°¤é¤¨¤ê #JN ¥â¥Ê¢·ÃΤ
++¤â¤Ê¤³ #JN ¥â¥Ê»Ò
++¤â¤Ê¤³¤ó #JN ¥â¥Ê¥³¥ó
++¤â¤Ê¤µ¤ó¤±¤¤¤Ê¡¼ #JN ¥â¥Ê¥µ¥ó¡¦¥±¥¤¥Ê¡¼
++¤â¤Ê¤¶¤¤¤³ #JN ¥â¥Ê¥¶¥¤»Ò
++¤â¤Ê¤¸¤¾¤¦ #JN ¥â¥ÊÃÏ¢
++¤â¤Ê¤¸¤é #KK ¥â¥Ê¥¸¥é
++¤â¤Ê¤¸¤é¡¼ #KK ¥â¥Ê¥¸¥é¡¼
++¤â¤Ê¤¸¤é¤¢¤¤¤Ç¤£¡¼ #T35 monazillaID
++¤â¤Ê¤¸¤é¤ª¤ë¤°¤ï¤é #T35 monazilla.org(w
++¤â¤Ê¤»¤ó¤Ë¤ó #JN ¥â¥ÊÀç¿Í
++¤â¤Ê¤½¤¦¤·¤­ #JN ¥â¥ÊÁò¼°
++¤â¤Ê¤È¤í¤Ð¤¸¡¼¤Ê¤¿¤¤¤¤ #JN ¥â¥Ê¥È¥í¡¦¥Ð¥¸¡¼¥ÊÂç°Ó
++¤â¤Ê¤Ë¡¼ #JN ¥â¥Ê¥Ë¡¼
++¤â¤Ê¤Î¤ê¤­¤å¤¦ #JN ¥â¥Ê¥Î¡¡ÍøµÙ
++¤â¤Ê¤Ú #KK ¥â¥Ê¥Ú
++¤â¤Ê¤Ú #T35 ¥â¥Ê¥Ú
++¤â¤Ê¤Û #JN ¥â¥Ê¥Û
++¤â¤Ê¤Ü¤ó #JN ¥â¥Ê¥Ü¥ó
++¤â¤Ê¤Ý¤ì¤ª¤ó¤â¤Ê¤Ñ¤ë¤É #JN ¥â¥Ê¥Ý¥ì¥ª¥ó¡á¥â¥Ê¥Ñ¥ë¥É
++¤â¤Ê¤Þ¤¸¤ó #JN ¥â¥ÊËâ¿À
++¤â¤Ê¤ß¤Ï¤ó¤¿¡¼ #JN ¥â¥Ê¥ß¡¦¥Ï¥ó¥¿¡¼
++¤â¤Ê¤à¤· #JN ¥â¥ÊÃî
++¤â¤Ê¤ê¤«¤º¤­ #JN ¥â¥Ê¤ê¤«¤º¤­
++¤â¤Ê¤ì¤¤ #JN ¥â¥ÊÎî
++¤â¤Ê¤ì¤¤ #JN ¥â¥ÊÎî 
++¤â¤Ë¡¼ #JN ¥â¥Ë¡¼
++¤â¤Ë¤« #JN ¥â¥Ë¥«¡¦±¦
++¤â¤Ë¤ã¡¼¤¯¤ó #JN ¥â¥Ë¥ã¡¼·¯
++¤â¤Ë¤ã¡¼¤¯¤ó #JN ¥â¥Ë¥ã¡¼·¯ 
++¤â¤Ë¤ç #R5 ¤â¤Ë¤ç
++¤â¤Í¡¼ #JN ¥â¥Í¡¼
++¤â¤Í¡¼¤ë #JN ¥â¥Í¡¼¥ë
++¤â¤Í¤¹ #JN ¥â¥Í¥¹
++¤â¤Î¤¯¤í¡¼¤à #JN ¥â¥Î¡¦¥¯¥í¡¼¥à
++¤â¤Î¤¹¤´¤¤¤¤¤­¤ª¤¤¤Ç #CJ ¤â¤Î¤¹¤´¤¤Àª¤¤¤Ç
++¤â¤Î¤Û¤·¤¶¤ª¤¦¤ê #JN ʪ´³¤·´ÈÇä¤ê
++¤â¤Ñ¤¢¤é #T35 ¥â¥Ñ¡¼¥é
++¤â¤Õ¤¡¤Ø¤Õ¤¡ #JN ¥â¥Õ¥¡¤Ø¥Õ¥¡
++¤â¤Þ¡¼ #JN ¥â¥Þ¡¼
++¤â¤ß¤ª¤« #T35 ¥â¥ß²¬
++¤â¤ß¤ª¤« #T35 Ù沬
++¤â¤â¤¤¤í¤µ¤ó¤Ç¡¼¤¯¤ê¡¼¤à¤¹¤Ú¤·¤ã¤ë #JN Åí¿§¥µ¥ó¥Ç¡¼¥¯¥ê¡¼¥àSP
++¤â¤â¤¦¤¤ #T35 ¥â¥â¡¼¥¤
++¤â¤â¤ª¤¤ #T35 ¥â¥â¡¼¥¤
++¤â¤â¤Á¤ã¤ó #JN Åí¤Á¤ã¤ó
++¤â¤â¤ó¤é¡¼ #JN ¥â¥â¥ó¥é¡¼
++¤â¤ä¤· #T35 ¥â¥ä¥·
++¤â¤é #JN ¤â¤é¢ö
++¤â¤é¡¼¤Þ¤ó #JN ¤â¤é¡¼¥Þ¥ó
++¤â¤é¤¨¤â¤ó #JN ¥â¥é¤¨¤â¤ó
++¤â¤é¤ª¤ó¤× #JN ¤â¤é¢ö
++¤â¤é¤³ #JN ¥â¥é»Ò
++¤â¤é¤¿¤¤¤· #JN ¥â¥éÂç»È
++¤â¤é¤Á¤ã¤¨¤ë #JN ¥â¥é¥Á¥ã¥¨¥ë
++¤â¤é¤Ò¤ã¤¯ #JN ¥â¥éÉ´
++¤â¤é¤Þ¤¸¤ó #JN ¥â¥éËâ¿À
++¤â¤é¤Þ¤ó #JN ¤â¤é¥Þ¥ó
++¤â¤é¤è¤·¤«¤² #JN ¥â¥éµÈ±Æ
++¤â¤é¤é #JN ¤â¤é¤é
++¤â¤é¤é¡¼ #JN ¥â¥é¥é¡¼
++¤â¤é¤é¡¼¤¢¤é¤· #JN ¥â¥é¥é¡¼¹Ó¤é¤·
++¤â¤é¤é¡¼¤«¤Á¤ç¤¦ #JN ¥â¥é¥é¡¼²ÝĹ
++¤â¤é¤é¡¼¤µ¤ó¤¸¤å¤¦¤· #JN ¥â¥é¥é¡¼»°½Æ»Î
++¤â¤é¤é¡¼¤Á¤ç¤¦¤«¤ó #JN ¥â¥é¥é¡¼Ä¹´±
++¤â¤é¤é¡¼¤Æ¤£¡¼¤À #JN ¥â¥é¥é¡¼¥Æ¥£¡¼¥À
++¤â¤é¤é¡¼¤Õ¤©¡¼ #JN ¥â¥é¥é¡¼4
++¤â¤é¤é¡¼¤Ö¤Á¤ç¤¦ #JN ¥â¥é¥é¡¼ÉôĹ
++¤â¤é¤é¡¼¤Þ¤Þ #JN ¥â¥é¥é¡¼¥Þ¥Þ
++¤â¤é¤é¤¨¤ë #JN ¥â¥é¥é¥¨¥ë
++¤â¤é¤é¤È¤Î #JN ¥â¥é¥éÅÂ
++¤â¤é¤é¤È¤Î #JN ÂŽÓÂŽ×ÂŽ×ÅÂ
++¤â¤é¤é¤È¤Î¤È¤â¤Ê¤«¤² #JN ÂŽÓÂŽ×ÂŽ×Å¡ʺ¸¡Ë¤ÈÂŽÓŽűơʱ¦¡Ë
++¤â¤é¤ê #JN ¥â¥é¥ê¡¦º¸
++¤â¤ê #T35 ¿¹
++¤â¤ê¤¢¤¬¤Ã¤Æ¤Þ¤¤¤ê¤Þ¤·¤¿ #CJ À¹¤ê¾å¤¬¤Ã¤Æ¤Þ¤¤¤ê¤Þ¤·¤¿
++¤â¤ê¤Á¤å¤¦ #T35 À¹¿ß
++¤â¤ë #JN ¥â¥ë
++¤â¤ë¤¡ #JN (ÂŽßÂŽÛÂŽß)ÂŽÓÂŽÙÂŽ§!!
++¤â¤ë¤¡ #JN ¥â¥ë¥¡
++¤â¤ì #T35 ϳ¤ì
++¤â¤ì¤¯¤· #T35 ϳ¤ì¶ú
++¤â¤í¤Ï¤Î¤Ä¤ë¤® #CJ ½ô¿Ï¤Î·õ¡£
++¤â¤ó¤­¤¤¤·¤å¤¬¤¢ #T35 ¥â¥ó¥­¡¼¥·¥å¥¬¡¼
++¤â¤ó¤¯¤¢¤ë #CJ ʸ¶ç¤¢¤ë¡©
++¤â¤ó¤ë¤¤ #T30 ÌåÎÞ
++¤ä #SUC ¤ä
++¤ä¤ª #T30 ¥ä¥ª
++¤ä¤ª¤¤ #T35 ¤ä¤ª¤¤
++¤ä¤ª¤­¤ó #KK ¥ä¥ª¥­¥ó
++¤ä¤ª¤­¤ó #T35 ¥ä¥ª¥­¥ó
++¤ä¤ª¤Ï¤² #T35 ¥ä¥ªÆŤ²
++¤ä¤ª¤Ð #T35 ²°¥ª¥Ð
++¤ä¤ª¤Õ¤¯ #KK ¥ä¥ª¥Õ¥¯
++¤ä¤­¤¤¤â #T35 ¤ä¤­¤¤¤â
++¤ä¤­¤Ä¤±¤Ð #T35 ¾ÆÉÕ¤±¿Ï
++¤ä¤­¤Ä¤±¤ä¤¤¤Ð #T35 ¾ÆÉÕ¤±¿Ï
++¤ä¤­¤È¤ê #KK ¾Æ¤­Ä»
++¤ä¤­¤È¤ê #T35 ¾Æ¤­Ä»
++¤ä¤­¤Ê¤ª¤»¤Ç¤ª¤Þ¤¨¤Î¤¢¤¿¤Þ¤â¤ä¤­¤Ê¤ª¤» #CJ ¾Æ¤­¤Ê¤ª¤»¡¢¤Ç¡¢¤ªÁ°¤ÎƬ¤â¾Æ¤­¤Ê¤ª¤»
++¤ä¤­¤ó #JN Ìë¶Ð
++¤ä¤­¤ó #JN Ìë¶Ð¡ú
++¤ä¤¯¤¶ #JN ¥ä¥¯¥¶
++¤ä¤¯¤ë¤Ä #T35 ¥ä¥¯¥ë¥Ä
++¤ä¤¯¤ë¤Ä¤·¤£ #JN ¥ä¥¯¥ë¥Ä¤·¤£
++¤ä¤°¤Ã¤Á¤ç¤ê¡¼¤Ê #JN ¥ä¥°¥Ã¥Á¥ç¥ê¡¼¥Ê
++¤ä¤µ¤·¤ß #JN Í¥¤·¤ß
++¤ä¤· #T35 ¹á¶ñ»Õ
++¤ä¤·¤¬¤Ë #T30 ¥ä¥·¥¬¥Ë
++¤ä¤·¤ã #T35 Ì뺵
++¤ä¤¸¤ë¤·¤Á¤å¤¦ #T35 Ìð°õ¿ß
++¤ä¤¹¤À¤¹¤ì¤Ã¤É #CN ÊÝÅÄ¥¹¥ì¥Ã¥É
++¤ä¤¹¤À¤¹¤ì¤Ã¤É #T35 ÊÝÅÄ¥¹¥ì¥Ã¥É
++¤ä¤¹¤ê #T35 ïÌ
++¤ä¤½¤Þ¡¼ #JN ¥ä¥½¥Þ¡¼
++¤ä¤½¤Þ¡¼¤í¤´¤¤¤ê #JN ¥ä¥½¥Þ¡¼(¥í¥´Æþ¤ê)
++¤ä¤À¤â¤ó #JN ¥ä¥À¥â¥ó
++¤ä¤Ã¤Û¡¼ #CN ¥ä¥Ã¥Û¡¼
++¤ä¤Ã¤Û¡¼ #KK ¥ä¥Ã¥Û¡¼
++¤ä¤Ã¤Û¡¼ #T35 ¥ä¥Ã¥Û¡¼
++¤ä¤Ã¤Û¤ª #T35 ¥ä¥Ã¥Û¡¼
++¤ä¤Ä #JN ¥ä¥Ä
++¤ä¤Ä #T35 ¥ä¥Ä
++¤ä¤Ê¤¬¤·¤ï #JNS ¤ä¤Ê¤¬¤·¤ï
++¤ä¤Ê¤¬¤·¤ï #T35 ¤ä¤Ê¤¬¤·¤ï
++¤ä¤Ê¤®¤µ¤ï¤â¤Ê¡¼ #JN ¥ä¥Ê¥®¥µ¥ï¥â¥Ê¡¼
++¤ä¤Õ #KK ¥ä¥Õ
++¤ä¤Õ¤¦ #CN ÌðÉ÷
++¤ä¤Õ¤¦ #T35 ÌðÉ÷
++¤ä¤Õ¤ª¤¯ #KK ¥ä¥Õ¥ª¥¯
++¤ä¤Õ¤ª¤¯ #T35 ¥ä¥Õ¥ª¥¯
++¤ä¤Ö¤Ë¤é¤ß¤â¤é¤é¡¼ #JN 鮤ˤé¤ß¥â¥é¥é¡¼
++¤ä¤Þ¤¶¤­¤È¤é¤Ã¤× #T35 »³ºê¥È¥é¥Ã¥×
++¤ä¤Þ¤¶¤­¤ï¤¿¤ë #T35 »³ºê¾Ä(^^)
++¤ä¤Þ¤À #JN »³ÅÄ
++¤ä¤á¤Æ¤¿¤â¤ì #CJ ¤ä¤á¤Æ¤¿¤â¤ì
++¤ä¤á¤ì #CJ ¤ä¤á¤ì
++¤ä¤é¤Ê¤¤¤« #CJ ¤ä¤é¤Ê¤¤¤«
++¤ä¤ê¤¹¤®¤¯¤ó #JN ¤ä¤ê¤¹¤®·¯
++¤ä¤ë¤­¤Ê¤· #T35 ¤ä¤ëµ¤¤Ê¤·¡ª
++¤ä¤ë¤¾ #JN ¤ä¤ë¤¾¡ª¡ª
++¤ä¤ë¤Ã¤Æ¤Ö¤· #CJ ¤ä¤ë¤Ã¤ÆÀá
++¤ä¤í¤ª¤¦¤è #CJ ¥ä¥í¡¼¥¦¥è
++¤ä¤í¤ª¤¦¤è #CJ ÂŽÔÂŽÛÂŽ°ÂŽ³ÂŽÖ
++¤ä¤ï¤é¤Á¤ã¤ó #JNM ¥ä¥ï¥é¤Á¤ã¤ó
++¤ä¤ó¤¸¤ã¤ó #KK ¥ä¥ó¥¸¥ã¥ó
++¤ä¤ó¤¸¤ã¤ó #T35 ¥ä¥ó¥¸¥ã¥ó
++¤ä¤ó¤ä¤ó #CJ ¤ä¤ó¤ä¤ó
++¤ä¤ó¤ä¤ó #T35 ¤ä¤ó¤ä¤ó
++¤æ¡¼¤¨¤¹¤Ó¡¼¤±¡¼¤Ö¤ë¤Ç¤¯¤Ó¤Ä¤Ã¤Æ¤·¤Í #CJ USB¥±¡¼¥Ö¥ë¤Ç¼óÄߤäƻá¤Í
++¤æ¡¼¤¸¡¼ #T35 £Õ£Ç
++¤æ¡¼¤æ¡¼ #JN ¥æ¡¼¥æ¡¼
++¤æ¤¦¤¤¤Á #JN Í´£±
++¤æ¤¦¤«¤ó #JN ͼ´©
++¤æ¤¦¤­¤¬¤Ê¤¯¤Æ¤ß¤ì¤Ê¤¤¤¬¤¾¤¦¤«¤¤¤»¤Ä¤¹¤ì #T35 ͦµ¤¤¬Ìµ¤¯¤Æ¸«¤ì¤Ê¤¤²èÁü²òÀ⥹¥ì 
++¤æ¤¦¤³ #T35 ¤æ¤¦¤³
++¤æ¤¦¤·¤ã #T35 ͦ¼Ô
++¤æ¤¦¤·¤ã¤â¤Ê¡¼ #JN ͦ¼Ô¥â¥Ê¡¼
++¤æ¤¦¤·¤ã¤â¤Ê¤¿ #JN ͦ¼Ô¥â¥ÊÂÀ
++¤æ¤¦¤Ç¤£¤¤¤×¤í¤¸¤§¤¯¤È #T35 UD¥×¥í¥¸¥§¥¯¥È
++¤æ¤¦¤É¤¦ #T30 ͶƳ
++¤æ¤¦¤Ê¤ó¤Þ¤Ä¤ê #T35 ¤æ¤¦¤Ê¤óº×¤ê
++¤æ¤¦¤Ï¤È¤¯¤Æ¤¤¤µ¤ì¤Þ¤¹¤¿ #CJ YOU¤ÏÆÃÄꤵ¤ì¤Þ¤¹¤¿
++¤æ¤¦¤Ó¤ó¤æ¤¦¤»¤¤¤¤¤¿ #CJ ͹ÊØ¡¦Í¹À¯ÈÄ
++¤æ¤¦¤Ó¤ó¤æ¤¦¤»¤¤¤¤¤¿ #CN ͹ÊØ¡¦Í¹À¯ÈÄ
++¤æ¤¦¤Ó¤ó¤æ¤¦¤»¤¤¤¤¤¿ #T35 ͹ÊØ¡¦Í¹À¯ÈÄ
++¤æ¤¦¤Ü¤¦ #JN m(-_-m)¡ÁÂŽ³ÂŽ×ÂŽÒÂŽ¼ÂŽÔÂŽ°
++¤æ¤¦¤Ü¤¦ #JN ¤æ¤¦Ë·
++¤æ¤¦¤á¤¤¤³¤Æ¤¤ #T35 ͭ̾¸ÇÄê
++¤æ¤¦¤ê¤ç¤¦¤« #T30 Í­ÎÁ²½
++¤æ¤¬¤ß #T35 ÏÄ
++¤æ¤­¤ª¤Ë¤®¤ê¤À¤ë¤Þ #JN À㤪¤Ë¤®¤ê¤À¤ë¤Þ
++¤æ¤­¤¸¤ë¤· #T35 À°õ
++¤æ¤­¤¸¤ë¤·¤®¤å¤¦¤Ë¤å¤¦ #JN À°õµíÆý
++¤æ¤Ã¤­¡¼ #JN ¥æ¥Ã¥­¡¼
++¤æ¤Ã¤­¡¼ #T35 ¥æ¥Ã¥­¡¼
++¤æ¤Ã¤­¤¤ #T35 ¥æ¥Ã¥­¡¼
++¤æ¤Ç¤À¤«¤é #T35 ¤æ¤Ç¤À¤«¤é¡¦¡¦¡¦
++¤æ¤Ë¤Ã¤¯¤¹¤Õ¤é¤Ã¤·¤å #T35 unix¥Õ¥é¥Ã¥·¥å
++¤æ¤Ö¤¿ #T35 ÌýÆÚ
++¤æ¤ó #JN ¤æ¤ó
++¤æ¤ó¤«¡¼¤¹ #JN ¥æ¥ó¥«¡¼¥¹
++¤æ¤ó¤«¡¼¤¹ #T35 ¥æ¥ó¥«¡¼¥¹
++¤æ¤ó¤«¤¢¤¹ #T35 ¥æ¥ó¥«¡¼¥¹
++¤æ¤ó¤æ¤ó #CJ ¤æ¤ó¤æ¤ó
++¤æ¤ó¤æ¤ó #T35 ¤æ¤ó¤æ¤ó
++¤è #CJ YO¡ª
++¤è #CJ yo¡ª
++¤è #CJ yp
++¤è¤¢¤Ë #T35 Â奢¥Ë
++¤è¤¤¡¼¤·¤ç¤â¤Ê¡¼ #JN ¥è¥¤¡¼¥·¥ç¥â¥Ê¡¼
++¤è¤¤¡¼¤·¤ç¤â¤Ê¡¼ #JN ÂŽÖÂŽ²ÂŽ°ÂŽ¼ÂŽ®ÂŽÓÂŽÅÂŽ°
++¤è¤¦¤¯¤· #T35 Íζú
++¤è¤¦¤·¤Ñ¤Ñ¤È¤¯¤â¤ê¤¿¤Î¤ó¤¸¤ã¤¦¤¾¤¦ #CJ ¤è¡¼¤·¥Ñ¥ÑÆÃÀ¹Íê¤ó¤¸¤ã¤¦¤¾¡¼
++¤è¤¦¤¸¤ç #T35 ¤ç¤¥¦ÉÂŽÞ¤ç
++¤è¤¦¤¸¤ç¤æ¤¦¤«¤¤ #JN ¤ç¤¥¦É¡«¤ç¤å¤¥¥õ¤£
++¤è¤¦¤»¤¤ #T35 ÍÅÀº
++¤è¤¦¤Á¤¨¤ó¤«¤é¤Ç¤Ê¤ª¤·¤Æ¤³¤¤ #T35 ÍÄ¡¡ÃÕ¡¡±à¡¡¤«¡¡¤é¡¡½Ð¡¡Ä¾¡¡¤·¡¡¤Æ¡¡¤³¡¡¤¤ 
++¤è¤¦¤Á¤ó¤À¤ó #T35 ÍÎÄÁÃÄ
++¤è¤© #CJ YO¡ª
++¤è¤© #CJ yo¡ª
++¤è¤© #CJ yp
++¤è¤©¡¼¤¼¤Õ #JN ¥è¥©¡¼¥¼¥Õ
++¤è¤©¡¼¤¼¤Õ¤«¤Ã¤³¤«¤·¤ç¤¦¤«¤Ã¤³¤È¤¸ #JN ¥è¥©¡¼¥¼¥Õ(²¾¾Î)
++¤è¤«¡¼¤ó #JN ¥è¥«¡¼¥ó
++¤è¤¯¤Ö¤«¤ª¤¦ #JN (¡­V¡®)¡Ö
++¤è¤¯¤Ö¤«¤ª¤¦ #JN Íß¿¼²¦
++¤è¤¯¤â #JN ¡Ê¦¨§Õ¦¨¡ËÂŽÖÂŽ¸ÂŽÓÂŽ¥ÂŽ¥ÂŽ¥
++¤è¤¯¤â #JN ¥è¥¯¥â¡¦¡¦¡¦
++¤è¤¯¤â #JN ÂŽÖÂŽ¸ÂŽÓÂŽ¥ÂŽ¥ÂŽ¥
++¤è¤³¤Ï¤á #CN ¥è¥³¥Ï¥á
++¤è¤³¤Ï¤á #T35 ¥è¥³¥Ï¥á
++¤è¤³¤ä¤Þ¤µ¤ó¤´¤¯¤· #T35 ²£»³»°¹ñ»Ö
++¤è¤´¤ì #T35 ¥è¥´¥ì
++¤è¤´¤ì #T35 ±ø¤ì
++¤è¤·¤À #JN Yoshida
++¤è¤·¤Î¤ä¤³¤Ô¤Ú #T35 µÈÌî²È¥³¥Ô¥Ú
++¤è¤·¤æ¤­ #T35 ¤è¤·¤æ¤­
++¤è¤·¤è¤· #JN ¡Ê¡¡¡¨§¥¡¨¡Ë¡³¡Ê¡­£ö¡®¡¡¡ËÂŽÖÂŽ¼ÂŽÖÂŽ¼
++¤è¤·¤è¤· #JN ¤è¤·¤è¤·
++¤è¤¼¤Ë #T35 Â奼¥Ë
++¤è¤½¤¦¤Î¤Ê¤Ê¤á¤¦¤¨ #T35 ͽÁۤμФá¾å
++¤è¤Á¤ì¤¹ #T35 ͽÃΥ쥹
++¤è¤Ã¤­¤å¤ó #JN ¤è¤Ã¤­¤å¤ó
++¤è¤Ã¤­¤å¤ó #T35 ¤è¤Ã¤­¤å¤ó
++¤è¤Ã¤¹¤£¤â¤Ê¡¼ #JN ¤è¤Ã¤¹¤£¥â¥Ê¡¼
++¤è¤Ê¡¼ #JN ¥è¥Ê¡¼
++¤è¤Í #T35 ¢¨
++¤è¤Í¡¼ #JN ¥è¥Í¡¼
++¤è¤ß¡¼¤ê #JN ¥è¥ß¡¼¥ê
++¤è¤á #CJ ²Ç
++¤è¤ë¤Î¤ª¤«¤º #T35 Ìë¤Î¤ª¤«¤º
++¤è¤ó #T35 >>4
++¤è¤ó¤È¤¦¤·¤ó¤Ë¤é¤¤¤à #JN »ÍƬ¿È¥Ë¥é¥¤¥à
++¤è¤ó¤Þ¤ë¤è¤ó #T35 404
++¤è¤ó¤è¤ó #CJ ¤è¤ó¤è¤ó
++¤è¤ó¤è¤ó #T35 ¤è¤ó¤è¤ó
++¤é¡¼ #T35 £Ò£Á£Ò
++¤é¡¼¤¸¤¨¤¤¤ê¤¦¤ï¤¡¤¡¤ó #JN ¥é-¥¸¥¨¥¤¥ê¥¦¥ï¥¡¥¡¥ó
++¤é¡¼¤¸¤¨¤¤¤ê¤¦¤ï¤¡¤¡¤ó #JN ÂŽ×-ÂŽ¼ÂŽÞÂŽ´ÂŽ²ÂŽØÂŽ³ÂŽÜÂŽ§ÂŽ§ÂŽÝ
++¤é¡¼¤á¤ó #T35 ¥é¡¼¥á¥ó
++¤é¡¼¤á¤ó¤®¤³ #JN ¥é¡¼¥á¥ó¥®¥³
++¤é¡¼¤á¤ó¤®¤³¤¢¤ó¤É¤â¤Ê¡¼ #JN ¥é¡¼¥á¥ó¥®¥³¡õ¥â¥Ê¡¼
++¤é¡¼¤á¤ó¤â¤Ê¡¼ #JN ¥é¡¼¥á¥ó¥â¥Ê¡¼
++¤é¤¢ #T35 RAR
++¤é¤¤¡¼¤è¡¼ #T35 (ÂŽ¥¢ÏÂŽ¥)ÂŽ×ÂŽ²ÂŽ°ÂŽÖÂŽ°!!
++¤é¤¤¡¼¤è¡¼ #T35 ¡Ê¡¦¢Ï¡¦¡Ë¥é¥¤¡¼¥è¡¼!!
++¤é¤¤¡¼¤è¡¼ #T35 ¡Ê¡¦¢Ï¡¦¡ËÂŽ×ÂŽ²ÂŽ°ÂŽÖÂŽ°!!
++¤é¤¤¤¢¤Ã¤È #KK ¥é¥¸¡÷
++¤é¤¤¤¿ #CN ¥éÈÄ
++¤é¤¤¤Á¤ç¤¦ #KK ÍëÄ»
++¤é¤¤¤Á¤ç¤¦ #T35 ÍëÄ»
++¤é¤¤¤Ì #T35 ¥é¥¤¥Ì
++¤é¤¤¤Ì #T35 ¥é¸¤
++¤é¤¤¤Ì #T35 Ž׸¤
++¤é¤¤¤Ì #T35 ÂŽ×ÂŽ²ÂŽÇ
++¤é¤¦¡¼¤¸ #T35 ¥é¥¦¡¼¥¸
++¤é¤¦¤á¤¹ #JN ¥é¥¦¥á¥¹
++¤é¤¦¤á¤¹ #T35 ¥é¥¦¥á¥¹
++¤é¤¦¤ó¤¸ #CN ¥é¥¦¥ó¥¸
++¤é¤¦¤ó¤¸ #T35 ¥é¥¦¥ó¥¸
++¤é¤¦¤ó¤¸¤ª¤Õ¤«¤¤ #T30 ¥é¥¦¥ó¥¸¥ª¥Õ²ñ
++¤é¤¦¤ó¤¸¤« #T30 ¥é¥¦¥ó¥¸²½
++¤é¤¦¤ó¤¸¤Ò¤Ê¤ó¤¸¤ç #T35 ¥é¥¦¥ó¥¸ÈòÆñ½ê
++¤é¤¦¤ó¤¸¤ã #T35 ¥é¥¦¥ó¥¸¥ã
++¤é¤¦¤ó¤¸¤ã¡¼ #T35 ¥é¥¦¥ó¥¸¥ã¡¼
++¤é¤¦¤ó¤¸¤ã¤¢ #T35 ¥é¥¦¥ó¥¸¥ã¡¼
++¤é¤¦¤ó¤¸¤ã¤¢¤Í¤® #T35 ¥é¥¦¥ó¥¸¥ã¡¼Ç¬
++¤é¤­¡¼¤Þ¤ó #JN ¥é¥­¡¼¥Þ¥ó
++¤é¤­¡¼¤Þ¤ó #JN ¥é¥­¡¼¥Þ¥ó 
++¤é¤¸¤¢¤Ã¤È #KK ¥é¥¸¡÷
++¤é¤¹¤Ü¤¹¤Ï¤¨¤¹¤È¤·¡¼¤â¤¢ #CJ ¥é¥¹¥Ü¥¹¤Ï¥¨¥¹¥È¥·¡¼¥â¥¢
++¤é¤Ã¤­¡¼¤Á¤ó¤Ð #T35 ¥é¥Ã¥­¡¼ÄÁÇÏ
++¤é¤Ã¤È¤­¤é¡¼ #JN ¥é¥Ã¥È¥­¥é¡¼
++¤é¤Æ¤ó¤¢¤Ò¤ã #JN ¥é¥Æ¥ó¥¢¥Ò¥ã
++¤é¤Ç¤£¤½ #T35 ¥é¥Ç¥£¥½
++¤é¤Ê¡¼ #JN ¥é¥Ê¡¼
++¤é¤ê¤é¤ê #T35 ¥é¥ê¥é¥ê
++¤é¤ê¤é¤ê #T35 ÂŽ×ÂŽØÂŽ×ÂŽØ
++¤é¤ë¤¯¤½ #JN ¥é¥ë¥¯¥½
++¤é¤ë¤¯¤½ #T35 ¥é¥ë¥¯¥½
++¤é¤í¡¼ #SUC ¤é¤í¡¼
++¤é¤í¤¦ #SUC ¤é¤í¡¼
++¤ê¡¼¤¼¤ó¤È #JN ¥ê¡¼Á°ÅÓ
++¤ê¡¼¤Õ¤È¤¦¤µ¤¯ #T35 ¥ê¡¼¥ÕÅðºî
++¤ê¡¼¤Þ¤ó #JN ¥ê¡¼¥Þ¥ó
++¤ê¡¼¤Þ¤ó #T30 ¥ê¡¼¥Þ¥ó
++¤ê¡¼¤ê¤Ã¤Ò #JN ­¡¥ê¡¼¥ê¥Ã¥Ò
++¤ê¡¼¤ê¤Ã¤Ò¤¸¤å¤Ë¤¢ #JN ­¢¥ê¡¼¥ê¥Ã¥Ò£Ê£ò
++¤ê¡¼¤ê¤Ã¤Ò¤Ë¤»¤¤ #JN ­£¥ê¡¼¥ê¥Ã¥ÒÆóÀ¤
++¤ê¤¢¤½¤·¤é¤Í¡¼¤è #JN ¥ê¥¢¥ë¥½¥é¥Í¡¼¥è
++¤ê¤¢¤Á¤å¤¦ #T35 ¥ê¥¢¿ß
++¤ê¤¢¤ë #T35 ¥ê¥¢¥ë
++¤ê¤¢¤ë¤¢¤½¤Ñ¤½¤Þ¤½ #JN ¥ê¥¢¥ë¥¢¥½¥Ñ¥½¥Þ¥½
++¤ê¤¢¤ë¤¢¤½¤Ñ¤½¤Þ¤½ #JN ¥ê¥¢¥ëÂŽ±ÂŽ¿ÂŽÊÂŽßÂŽ¿ÂŽÏÂŽ¿
++¤ê¤¢¤ë¤¢¤Ã¤½¡¼ #JN ¥ê¥¢¥ë¤¢¤Ã¤½¡¼
++¤ê¤¢¤ë¤£¤ç¤¥ #JN ¥ê¥¢¥ë¤£¤ç¤¥
++¤ê¤¢¤ë¤£¤ç¤¥¤â¤³¤â¤³¤Ð¡¼¤¸¤ç¤ó #JN ¥ê¥¢¥ë¤£¤ç¤¥¡Ê¤â¤³¤â¤³¥Ð¡¼¥¸¥ç¥ó¡Ë
++¤ê¤¢¤ë¤¤¤é¤Í¡¼¤è #JN ¥ê¥¢¥ë¥¤¥é¥Í¡¼¥è
++¤ê¤¢¤ë¤¦¤Ä #JN ¥ê¥¢¥ëݵ
++¤ê¤¢¤ë¤ª¤Þ¤¨¤¯¤Þ¡¼ #JN ¥ê¥¢¥ë¥ª¥Þ¥¨¥¯¥Þ¡¼
++¤ê¤¢¤ë¤ª¤Þ¤¨¤â¤Ê¡¼ #JN ¥ê¥¢¥ë¥ª¥Þ¥¨¥â¥Ê¡¼
++¤ê¤¢¤ë¤«¤µ¡¼¤ê #JN ¥ê¥¢¥ë¥«¥µ¡¼¥ê
++¤ê¤¢¤ë¤­¤¿¡¼¡¼ #JN ¥ê¥¢¥ë¥­¥¿¡¼
++¤ê¤¢¤ë¤­¤Á¤¬¤¤¤±¤¤¤Û¤¦ #JN ¥ê¥¢¥ë´ðÃϳ°·ÙÊó
++¤ê¤¢¤ë¤®¤³ #JN ¥ê¥¢¥ë¥®¥³
++¤ê¤¢¤ë¤´¤¿¤¤¤Õ¤Þ¤ó¤¾¤¯ #JN ¥ê¥¢¥ë¸ÞÂÎÉÔËþ­
++¤ê¤¢¤ë¤·¤£ #JN ¥ê¥¢¥ë¤·¤£
++¤ê¤¢¤ë¤·¤Í¤Ð¡¼ #JN ¥ê¥¢¥ë¥·¥Í¥Ð¡¼
++¤ê¤¢¤ë¤·¤ç¤¦¤Ü¤¦ #T35 ¥ê¥¢¥ë¾ÃËÉ
++¤ê¤¢¤ë¤·¤é¤Í¡¼¤è #JN ¥ê¥¢¥ë¥·¥é¥Í¡¼¥è
++¤ê¤¢¤ë¤·¤é¤Í¡¼¤è2 #JN ¥ê¥¢¥ë¥·¥é¥Í¡¼¥è£²
++¤ê¤¢¤ë¤¸¤µ¤¯¤¸¤¨¤ó #JN ¥ê¥¢¥ë¥¸¥µ¥¯¥¸¥¨¥ó
++¤ê¤¢¤ë¤¸¤µ¤¯¤¸¤¨¤ó #JN ¥ê¥¢¥ëÂŽ¼ÂŽÞÂŽ»ÂŽ¸ÂŽ¼ÂŽÞÂŽ´ÂŽÝ
++¤ê¤¢¤ë¤¸¤ã¤Ê¤¤¤«¤é¤¯¤½ #CJ ¥ê¥¢¥ë¤¸¤ã¤Ê¤¤¤«¤é¥¯¥½
++¤ê¤¢¤ë¤¸¤ç¤ó¤¸¤ç¤µ¤ó #JN ¥ê¥¢¥ë¥¸¥ç¥ó¥¸¥ç¤µ¤ó
++¤ê¤¢¤ë¤¹¤Ã¤É¤ì #JN ¥ê¥¢¥ëÂŽ½ÂŽ¯ÂŽÄÂŽÞÂŽÚ
++¤ê¤¢¤ë¤¹¤Õ¤£¤ó¤¯¤¹ #JN ¥ê¥¢¥ë¥¹¥Õ¥£¥ó¥¯¥¹
++¤ê¤¢¤ë¤½¤¦¤Ç¤â¤Ê¤¤¤è #JN ¥ê¥¢¥ë¤½¤¦¤Ç¤â¤Ê¤¤¤è
++¤ê¤¢¤ë¤½¤é¤Í¡¼¤è #JN ¥ê¥¢¥ë¥½¥é¥Í¡¼¥è
++¤ê¤¢¤ë¤½¤ì¤¬¤Ê¤Ë¤« #JN ¥ê¥¢¥ë¥½¥ì¥¬¥Ê¡á¥Ë¥«
++¤ê¤¢¤ë¤¿¤¤¤à #T35 ¥ê¥¢¥ë¥¿¥¤¥à
++¤ê¤¢¤ë¤Á¤å¤¦¤Ü¤¦ #T35 ¥ê¥¢¥ë¿ß˼
++¤ê¤¢¤ë¤Ê¤ª¤Ë¤®¤ê¤â¤Ê¡¼ #JN ¥ê¥¢¥ë¤Ê¤ª¤Ë¤®¤ê¥â¥Ê¡¼
++¤ê¤¢¤ë¤Ê¤ª¤Ë¤®¤ê¤â¤Ê¡¼¤¤¤Á #JN ¥ê¥¢¥ë¤Ê¤ª¤Ë¤®¤ê¥â¥Ê¡¼£±
++¤ê¤¢¤ë¤Ê¤ª¤Ë¤®¤ê¤â¤Ê¡¼¤Ë #JN ¥ê¥¢¥ë¤Ê¤ª¤Ë¤®¤ê¥â¥Ê¡¼£²
++¤ê¤¢¤ë¤Ê¤±¤ó #JN ¥ê¥¢¥ë¤Ê¥±¥ó
++¤ê¤¢¤ë¤Ê¤Ã¤Á #JN ¥ê¥¢¥ë¤Ê¤Ã¤Á
++¤ê¤¢¤ë¤Ê¤É¤»¤¤¤µ¤ó #JN ¥ê¥¢¥ë¤ÊÅÚÀ±¤µ¤ó
++¤ê¤¢¤ë¤Ê¤Í¤¹¤â¤Ê¡¼ #JN ¥ê¥¢¥ë¤Ê¥Í¥¹¥â¥Ê¡¼
++¤ê¤¢¤ë¤Ë¤À¡¼ #JN ¥ê¥¢¥ë¥Ë¥À¡¼
++¤ê¤¢¤ë¤Ï¤¡ #JN ¥ê¥¢¥ë¥Ï¥¡¡©
++¤ê¤¢¤ë¤Ò¤í¤æ¤­ #JN ¥ê¥¢¥ë¤Ò¤í¤æ¤­
++¤ê¤¢¤ë¤Õ¤§¤é¡¼¤Á¤ç #JN ¥ê¥¢¥ë¥Õ¥§¥é¡¼¥Á¥ç
++¤ê¤¢¤ë¤Û¤½¤á #JN ¥ê¥¢¥ëºÙÌÜ
++¤ê¤¢¤ë¤Þ¤À¡¼ #JN ¥ê¥¢¥ë¥Þ¥À¡¼
++¤ê¤¢¤ë¤Þ¤Ë¡¼ #JN ¥ê¥¢¥ë¥ÞÆó¡Ý
++¤ê¤¢¤ë¤à¤Ã¤¯ #JN ¥ê¥¢¥ë¥à¥Ã¥¯
++¤ê¤¢¤ë¤â¤¦¤³¤Í¤¨¤è #JN ¥ê¥¢¥ë¥â¥¦¥³¥Í¥¨¥è
++¤ê¤¢¤ë¤â¤Ê¡¼ #JN ¥ê¥¢¥ë¥â¥Ê¡¼
++¤ê¤¢¤ë¤ä¤À¤â¤ó #JN ¥ê¥¢¥ë¥ä¥À¥â¥ó
++¤ê¤¢¤ë¤è¤·¤Æ¤£¡¼ #JN ¥ê¥¢¥ë¤è¤·¥Æ¥£¡¼
++¤ê¤¢¤ë¤ê¤¢¤ê¤Æ¤£ #T35 ¥ê¥¢¥ë¥ê¥¢¥ê¥Æ¥£
++¤ê¤¢¤ë¤ì¤â¤Ê #JN ¥ê¥¢¥ë¥ì¥â¥Ê
++¤ê¤¤¤Á #T35 reach
++¤ê¤¤¤É¤·¤¤¤¸¤¤¤¢¤¤ #T35 read.cgi
++¤ê¤«¤Á¤ã¤ó #T35 Τ²Â¤Á¤ã¤ó
++¤ê¤­¤·¤ì¤Ç¤£ #T35 ¥ê¥­¥·¥ì¥Ç¥£
++¤ê¤­¤Ã¤É¤â¤é¡¼¤¯ #JN ¥ê¥­¥Ã¥É¡¦¥â¥é¡¼¥¯
++¤ê¤¯ #T35 Φ
++¤ê¤¸¤§¤ó¤ê¤ã #JN Íû·òÎÉ
++¤ê¤Ã¤Ä #T35 ¥ê¥Ã¥Ä
++¤ê¤Ã¤Ä¤¬¤¤¤ë¤µ #JN ¥ê¥Ã¥Ä¤¬¤¤¤ë¤µ
++¤ê¤Ã¤Ý¤¦¤¿¤¤ #JN ΩÊýÂÎ
++¤ê¤Æ¤Ê¤¢ #T35 ¥ê¥Æ¥Ê¡¼
++¤ê¤È¤ë¤¨¤¤¤ê¤¦¤ï¤¡¤¡¤ó #JN ¥ê¥È¥ë¥¨¥¤¥ê¥¦¥¡¥¡¥ó
++¤ê¤È¤ë¤¨¤¤¤ê¤¦¤ï¤¡¤¡¤ó #JN ÂŽØÂŽÄÂŽÙÂŽ´ÂŽ²ÂŽØÂŽ³ÂŽ§ÂŽ§ÂŽÝ
++¤ê¤Ü¤Ã¤È #T35 ¥ê¥Ü¥Ã¥È
++¤ê¤Ü¤ë¤Ð¡¼¤¹¤Þ¤ó¤«¤Ã¤¿ #JN ¥ê¥Ü¥ë¥Ð¡¼¡¦¥¹¥Þ¥ó¥«¥Ã¥¿
++¤ê¤Ü¤ë¤Ð¡¼¤¹¤Þ¤ó¤«¤Ã¤¿ #JN ¥ê¥Ü¥ë¥ô¥¡¡¼¡¦¥¹¥Þ¥ó¥«¥Ã¥¿
++¤ê¤Ü¤ó #T35 ¥ê¥Ü¥ó
++¤ê¤Ü¤ó¤×¤ì¤¤ #T30 ¥ê¥Ü¥ó¥×¥ì¥¤
++¤ê¤â¡¼¤È¤Û¤¹¤È #T35 ¥ê¥â¡¼¥È¥Û¥¹¥È
++¤ê¤â¤Û #T35 ¥ê¥â¥Û
++¤ê¤ã¤¯ #T35 (ry
++¤ê¤ã¤¯ #T35 ry
++¤ê¤ã¤¯ #T35 ¡Ê£ò£ù
++¤ê¤ã¤¯¤·¤­¤¸¤Á¤ó¤µ¤¤ #T35 ά¼°ÃÏÄú×
++¤ê¤ç¤¦¤¹¤ì¤ª¤È¤³ #JN ÎÉ¥¹¥ìÃË
++¤ê¤ç¤¦¤¹¤ì¤Î¤è¤«¤ó #CJ ÎÉ¥¹¥ì¤Îͽ´¶
++¤ê¤ç¤¦¤Î¤¦ #T35 ξǾ
++¤ê¤ë¤³ #JN ¥ê¥ë»Ò
++¤ê¤í¡¼¤É #T30 ¥ê¥í¡¼¥É
++¤ê¤í¤ª¤É¤¹¤ì¤Ã¤É #T35 ¥ê¥í¡¼¥É¥¹¥ì¥Ã¥É
++¤ê¤í¤¹¤ì #T35 ¥ê¥í¥¹¥ì
++¤ê¤ó¤´¤Ä¤«¤¤ #T35 ¥ê¥ó¥´»È¤¤
++¤ë¤¤ #T35 rui
++¤ë¤Ñ¤ó¤Õ¤é¤Ã¤·¤å #T35 ¥ë¥Ñ¥ó¥Õ¥é¥Ã¥·¥å
++¤ì¡¼ #JN ¥ì¡¼
++¤ì¤¤¤­¤å¤¦¤·¤ã #JN ÎîÛͼÖ
++¤ì¤¤¤¯ #JN ¥ì¥¤¥¯
++¤ì¤¤¤µ¤à #T35 Îä´¨
++¤ì¤¤¤¾¤¦¤³ #T35 Î䢸Ë
++¤ì¤°¤Í¤Ã¤»¤à #T35 Regnessem
++¤ì¤²¡¼ #T35 ¥ì¥²¡¼
++¤ì¤²¡¼¤¤¤¿ #CN ¥ì¥²¡¼ÈÄ
++¤ì¤²¡¼¤¤¤¿ #T35 ¥ì¥²¡¼ÈÄ
++¤ì¤¸ #T35 ¥ì¥¸
++¤ì¤¹ #T30 ¥ì¥¹
++¤ì¤¹¤µ¤¯¤¸¤ç #T30 ¥ì¥¹ºï½ü
++¤ì¤¹¤¹¤ì¤´¤Ð¤¯ #T30 ¥ì¥¹¥¹¥ì¸íÇú
++¤ì¤¹¤¿¤Æ¤´¤Ð¤¯ #T30 ¥ì¥¹Î©¤Æ¸íÇú
++¤ì¤¹¤Ð¤ó¤´¤¦ #T35 ¥ì¥¹ÈÖ¹æ
++¤ì¤Ã¤È¤¦ #KK ÎôƬ
++¤ì¤Ã¤É¤Ö¤Ã¤¯¤¤¤Ï¤ó #CJ ¥ì¥Ã¥É¥Ö¥Ã¥¯°ãÈ¿¡ª¡¢¥ì¥Ã¥É¥«¡¼¥É¡ª
++¤ì¤Ä¤®¤ç¤Ù¤¤¤Ù¡¼¤·¡¼¤Þ¤¤¤Ø¡¼ #CJ ¤ì¤Ä¤®¤ç¡ª¤Ù¤¤¤Ù¡¼¡¡¤·¡¼¤Þ¤¤¤Ø¡¼¢ö
++¤ì¤Ä¤®¤ç¤Ù¤¤¤Ù¡¼¤·¡¼¤Þ¤¤¤Ø¡¼ #T35 ¤ì¤Ä¤®¤ç¡ª¤Ù¤¤¤Ù¡¼¡¡¤·¡¼¤Þ¤¤¤Ø¡¼¢ö
++¤ì¤Ç¤£¤¤¤¹¤µ¤Þ #T35 ¥ì¥Ç¥£¡¼¥¹ÍÍ
++¤ì¤Ù¤ë¤Ò¤¯ #KY ¥ì¥Ù¥ëÄã
++¤ì¤â¤Ê #JN ¥ì¥â¥Ê
++¤ì¤â¤Ê #JN ¥ì¥â¥Ê 
++¤ì¤â¤Ê¤¹¤ì #CN ¥ì¥â¥Ê¥¹¥ì
++¤ì¤â¤Ê¤¹¤ì¤Î¤â¤é¤é¡¼ #JN ¥ì¥â¥Ê¥¹¥ì¤Î¥â¥é¥é¡¼
++¤ì¤â¤é¤â¡¼¤Ê #JN ¥ì¥â¥é¥â¡¼¥Ê
++¤ì¤ì¤Û #T35 ¥ì¥ì¥Û
++¤ì¤ó¤¬ #T35 ¥ì¥ó¥¬
++¤í #T35 ϧ
++¤í¡¼¤«¤ë¤ë¡¼¤ë #T35 ¥í¡¼¥«¥ë¥ë¡¼¥ë
++¤í¤¤¤â¤Ê¤Ù¤ë #JN ¥í¥¤¡¦¥â¥Ê¥Ù¥ë
++¤í¤° #T35 ¥í¥°
++¤í¤±¤Ã¤È¤Ç¤Ä¤­¤Ì¤±¤ë #CJ ¥í¥±¥Ã¥È¤ÇÆͤ­È´¤±¤ë
++¤í¤´ #T35 ¥í¥´
++¤í¤Ã¤¯¤·¤Æ¤£ #JN ¥í¥Ã¥¯¥·¥Æ¥£
++¤í¤Ã¤¯¤â¤Ê¡¼ #JN ¥í¥Ã¥¯¥â¥Ê¡¼
++¤í¤Ã¤Ý¤ó¤¾¡¼ #JN ¤í¤Ã¤Ý¤ó¤¾¡¼
++¤í¤Ã¤Ý¤ó¤¾¡¼ #T35 ¤í¤Ã¤Ý¤ó¤¾¡¼
++¤í¤Æ¤¨¤ó #T35 ¥í¥Æ¡¼¥ó
++¤í¤Æ¤¨¤ó #T35 ÂŽÛÂŽÃÂŽ°ÂŽÝ
++¤í¤Ó¤á¤¹ #JN ¥í¥Ó¥á¥¹
++¤í¤Ó¤á¤¹ #T35 ¥í¥Ó¥á¥¹
++¤í¤Ó¤é¡¼ #T35 ¥í¥Ó¥é¡¼
++¤í¤Õ¤È¤×¤é¤¹¤ï¤ó #CN ¥í¥Õ¥È¥×¥é¥¹¥ï¥ó
++¤í¤à #KS ROM
++¤í¤à #R5 £Ò£Ï£Í
++¤í¤à #T35 R@M
++¤í¤à #T35 ROM
++¤í¤à #T35 £Ò£Ï£Í
++¤í¤ê #T35 ¥í¥ê
++¤í¤ê¤³¤ó #T35 ¥í¥ê¥³¥ó
++¤í¤ê¤Ú¤É #T35 ¥í¥ê¥Ú¥É
++¤í¤ë #CJ (lol
++¤í¤ì #KK ¥í¥ì
++¤í¤í #JN ¥í¥í
++¤í¤í #T35 ¥í¥í
++¤í¤ó¤² #T35 ¥í¥óÌÓ
++¤ï¡¼¤â¤Ê¡¼ #JN ¤ï¡¼¤â¤Ê¡¼
++¤ï¤¤¤Ç¤¹¤è¤ó¤¸¤å¤¦ #JN ¥ï¥¤¥Æ¡«¥¹£´£°
++¤ï¤¤¤Ó¡¼¤Ó¡¼¤Û¤¦¤Á¤ß¤ó #T35 £Ù£Â£ÂÊüÃÖ̱
++¤ï¤«¤ª¤¯ #T35 ¤ï¤«¤ª¤¯
++¤ï¤«¤Î¤Ï¤Ê #T35 WAKANOHANA
++¤ï¤«¤á #T35 ¤ï¤«¤á
++¤ï¤±¤ï¤«¤é¤ó #JN ¥ï¥±¥ï¥«¥é¥ó
++¤ï¤µ¤Ó #T35 ¥ï¥µ¥Ó
++¤ï¤¸¤ª #CN ϱö
++¤ï¤¸¤ª #KK ϱö
++¤ï¤¸¤ª #T35 ϱö
++¤ï¤»¤À¤¨¤­ #JN Áá°ðÅıØ
++¤ï¤¿¤Ê¤Ù #T35 ÅÏÊÕ
++¤ï¤¿¤Ê¤Ù¤â¤Ê¡¼ #JN ¥ï¥¿¥Ê¥Ù¥â¥Ê¡¼
++¤ï¤¿¤Ê¤Ù¤â¤Ê¡¼ #JN ¥ï¥¿¥Ê¥Ù¥â¥Ê¡¼ 
++¤ï¤Ê #T35 æ«
++¤ï¤Ê¡¼ #JN ¥ï¥Ê¡¼
++¤ï¤é #CJ  (ÏÎ
++¤ï¤é #CJ (w
++¤ï¤é #CJ (£÷
++¤ï¤é #CJ (¥ï¥é
++¤ï¤é #CJ (Ü×
++¤ï¤é #CJ (ÂŽÜÂŽ×
++¤ï¤é #CJ w
++¤ï¤é #CJ ¤ï¤é 
++¤ï¤é #CJ ¥ï¥é
++¤ï¤é #CJ ÏÎ 
++¤ï¤é1 #JN ¥ï¥é1
++¤ï¤é1 #JN ÂŽÜÂŽ×1
++¤ï¤é¤£ #CJ ¥ï¥é¥£
++¤ï¤é¤¿ #CJ ¥ï¥é¥¿
++¤ï¤é¤¿ #CJ ÂŽÜÂŽ×ÂŽÀ
++¤ï¤é¤Ó #T35 ¡ÊÏÏ
++¤ï¤é¤ï¤»¤ë¤Ê #CJ ¥ï¥é¥ï¥»¥ë¥Ê
++¤ï¤é¤ï¤»¤ë¤Ê #CJ ÂŽÜÂŽ×ÂŽÜÂŽ¾ÂŽÙÂŽÅ
++¤ï¤ê¤ª #T35 ¥ï¥ê¥ª
++¤ï¤ë¤ì #R5 ¤ï¤ë¤ì
++¤ï¤ì¤¶¡¼ #T35 ¥ï¥ì¥¶¡¼
++¤ï¤ì¤¶¤Á¤å¤¦¤Ü¤¦ #T35 ¥ï¥ì¥¶¿ß˼
++¤ï¤ì¤º #T35 ¥ï¥ì¥º
++¤ï¤ì¤â¤Î #KK ¤ï¤ì¤â¤Î
++¤ï¤ì¤â¤Î #T35 ¤ï¤ì¤â¤Î
++¤ï¤ì¤â¤Î #T35 ³ä¤ìʪ
++¤ï¤í¤¿ #CJ ¥ï¥í¥¿
++¤ï¤ó¤À¡¼ #T35 WONDER
++¤ò¤«¤­¤³¤à¤¹¤ì¤À¤è #CJ ¤ò½ñ¤­¹þ¤à¥¹¥ì¤À¤è¡ª¡ª
++¤ò¤«¤­¤³¤à¤¹¤ì¤À¤è #JN ¡Ê¡¦¢Ï¡¦¡Ë
++¤ò¤¿ #JN ¥ò¥¿
++¤ò¤¿ #T35 ¥ò¥¿
++¤ò¤¿¤·¤Ë¤Ê¤Þ¤ë¤Þ¤ë #JN ÂŽ¦ÂŽÀ42700
++¤ò¤¿¤¿¤¿¤­ #T35 ¥ò¥¿Ã¡¤­
++¤ò¤¿¤¿¤¿¤­¤ò¤¿ #T35 ¥ò¥¿Ã¡¤­¥ò¥¿
++¤ò¤¿¤Á¤§¤Ã¤¯ #T30 ¥ò¥¿¥Á¥§¥Ã¥¯
++¤ò¤¿¤Á¤§¤Ã¤¯¤¢¤Ë¤ò¤¿¤Ø¤ó #JN ¥ò¥¿¥Á¥§¥Ã¥¯¡Ê¥¢¥Ë¥ò¥¿ÊÔ¡Ë
++¤ò¤¿¤é¡¼ #JN ¥ò¥¿¥é¡¼
++¤ò¤¿¤é¡¼ #JN ÂŽ¦ÂŽÀÂŽ×ÂŽ°
++¤ò¤Á #T30 ¥ò¥Á
++¤ò¤Á¤¤¤¿ #CN ¥ò¥ÁÈÄ
++¤ò¤Á¤¤¤¿ #T35 ¥ò¥ÁÈÄ
++¤ò¤Ã¤Á #T30 ¥ò¥Ã¥Á
++¤ò¤Ã¤Á¤¤¤¿ #CN ¥ò¥Ã¥ÁÈÄ
++¤ò¤Ã¤Á¤¤¤¿ #T35 ¥ò¥Ã¥ÁÈÄ
++¤ò¤ð #T35 ¤ò¤ð
++¤ó¡¼ #JN ¤ó¡Á¡ª¡©
++¤ó¤¬¤ó¤° #CJ ¤ó¤¬¤ó¤°
++¤ó¤¸¤ã #CJ ¤ó¤¸¤ã¡ª
++¤ó¤À¤è #JN ¥ó¥À¥è
++¤ó¤À¤ó¤À #CJ ¤ó¤À¤ó¤À
++¤ó¤Ç #JN ¤ó¤Ç¡¡
++¤ó¤Ê¤³¤¿¤¢¤Ê¤¤ #CJ ¤ó¤Ê¤³¤¿¡¼¤Ê¤¤
++¤ó¤Ê¤ï¤±¤Í¡¼¤è #JN ¤ó¤Ê¤ï¤±¥Í¡¼¥è
++¤ó¤Þ #JN (`¦Æ.¡­)¡ã¤ó¤Þ!
++¤ó¤Þ #JN ¤ó¤Þ¡ª
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/anthy/anthy/native-helpers.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/anthy/anthy/native-helpers.patch
new file mode 100644
index 0000000..291b66b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/anthy/anthy/native-helpers.patch
@@ -0,0 +1,50 @@
+upstream: not applicable
+author: pH5
+comment: Stage the native anthy helpers mkfiledic, mkdepgraph, mkworddic, 
+comment: calctrans and proccorpus.
+
+--- anthy-7811/mkanthydic/Makefile.am~	2006-05-13 18:28:35.000000000 +0900
++++ anthy-7811/mkanthydic/Makefile.am	2006-06-18 10:56:25.770000000 +0900
+@@ -3,7 +3,7 @@
+ CLEANFILES = anthy.dic
+ INCLUDES = -I$(top_srcdir)/include -DSRCDIR=\"$(srcdir)\"
+ 
+-noinst_PROGRAMS = mkfiledic
++bin_PROGRAMS = mkfiledic
+ mkfiledic_SOURCES = mkfiledic.c
+ mkfiledic_LDADD = ../src-diclib/libdiclib.la
+ 
+--- anthy-7811/depgraph/Makefile.am~	2006-06-02 00:20:54.000000000 +0900
++++ anthy-7811/depgraph/Makefile.am	2006-06-18 10:57:19.420000000 +0900
+@@ -9,7 +9,7 @@
+ EXTRA_DIST = indepword.txt $(DEPWORDS)
+ 
+ # Generate the dictionary
+-noinst_PROGRAMS = mkdepgraph
++bin_PROGRAMS = mkdepgraph
+ mkdepgraph_SOURCES = mkdepgraph.c
+ mkdepgraph_LDADD =  ../src-main/libanthy.la ../src-worddic/libanthydic.la
+ 
+--- anthy-7811/mkworddic/Makefile.am~	2006-05-13 18:29:07.000000000 +0900
++++ anthy-7811/mkworddic/Makefile.am	2006-06-18 11:21:56.300000000 +0900
+@@ -16,7 +16,8 @@
+  udict dict.args.in
+ 
+ # Generate the dictionary
+-noinst_PROGRAMS = mkworddic
++#noinst_PROGRAMS = mkworddic
++bin_PROGRAMS = mkworddic
+ mkworddic_SOURCES = mkdic.c writewords.c mkudic.c calcfreq.c mkdic.h
+ mkworddic_LDADD = ../src-worddic/libanthydic.la
+
+--- anthy-9100e.orig/calctrans/Makefile.am	2008-05-08 15:04:13.000000000 +0200
++++ anthy-9100e/calctrans/Makefile.am	2008-05-08 15:04:24.000000000 +0200
+@@ -3,7 +3,7 @@
+  corpus.3.txt corpus.4.txt corpus.5.txt\
+  corpus_info weak_words
+ 
+-noinst_PROGRAMS = calctrans proccorpus
++bin_PROGRAMS = calctrans proccorpus
+ INCLUDES = -I$(top_srcdir)/
+ 
+ calctrans_SOURCES = calctrans.c input_set.c input_set.h corpus.c
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/anthy/anthy/not_build_elc.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/anthy/anthy/not_build_elc.patch
new file mode 100644
index 0000000..bf748f3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/anthy/anthy/not_build_elc.patch
@@ -0,0 +1,16 @@
+upstream: not applicable
+source: stolen from debian
+
+diff -Naur anthy-7811/src-util.orig/Makefile.am anthy-7811/src-util/Makefile.am
+--- anthy-7811/src-util.orig/Makefile.am	2006-06-18 10:47:55.790000000 +0900
++++ anthy-7811/src-util/Makefile.am	2006-06-18 10:48:23.860000000 +0900
+@@ -6,7 +6,8 @@
+  anthy-isearch.el anthy-azik.el anthy-kyuri.el
+ EXTRA_DIST = $(ELISP_FILES) typetab dic-tool-usage.txt rcsize.rb
+ bin_PROGRAMS = anthy-dic-tool anthy-agent anthy-morphological-analyzer
+-ELCFILES = anthy.elc anthy-dic.elc anthy-azik.elc anthy-conf.elc anthy-isearch.elc anthy-kyuri.elc leim-list.elc
++#ELCFILES = anthy.elc anthy-dic.elc anthy-azik.elc anthy-conf.elc anthy-isearch.elc anthy-kyuri.elc leim-list.elc
++ELCFILES = 
+ if ELISP
+ lisp_LISP = $(ELISP_FILES)
+ endif
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/anthy/anthy/target-helpers.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/anthy/anthy/target-helpers.patch
new file mode 100644
index 0000000..d22c356
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/anthy/anthy/target-helpers.patch
@@ -0,0 +1,111 @@
+diff -Nurp anthy-9100h.org/calctrans/Makefile.am anthy-9100h/calctrans/Makefile.am
+--- anthy-9100h.org/calctrans/Makefile.am	2007-10-27 23:02:59.000000000 +0900
++++ anthy-9100h/calctrans/Makefile.am	2014-11-11 17:14:42.152999991 +0900
+@@ -15,31 +15,31 @@ dict_source_files = anthy.cand_info anth
+ 
+ update_params:
+ 	rm -f parsed_data2
+-	./proccorpus $(srcdir)/corpus.?.txt > parsed_data
+-	./calctrans parsed_data -o $(srcdir)/corpus_info
+-	./calctrans parsed_data -e -o $(srcdir)/weak_words
++	proccorpus $(srcdir)/corpus.?.txt > parsed_data
++	calctrans parsed_data -o $(srcdir)/corpus_info
++	calctrans parsed_data -e -o $(srcdir)/weak_words
+ 	make do_update_params
+ 
+ update_params0:
+ 	rm -f parsed_data2
+-	./proccorpus $(srcdir)/corpus.0.txt > parsed_data
+-	./calctrans parsed_data -o $(srcdir)/corpus_info
+-	./calctrans parsed_data -e -o $(srcdir)/weak_words
++	proccorpus $(srcdir)/corpus.0.txt > parsed_data
++	calctrans parsed_data -o $(srcdir)/corpus_info
++	calctrans parsed_data -e -o $(srcdir)/weak_words
+ 	make do_update_params
+ 
+ update_params2:
+-	./proccorpus $(srcdir)/corpus.?.txt >> parsed_data2
+-	./calctrans parsed_data parsed_data2 -o $(srcdir)/corpus_info
+-	./calctrans parsed_data parsed_data2 -e -o $(srcdir)/weak_words
++	proccorpus $(srcdir)/corpus.?.txt >> parsed_data2
++	calctrans parsed_data parsed_data2 -o $(srcdir)/corpus_info
++	calctrans parsed_data parsed_data2 -e -o $(srcdir)/weak_words
+ 	make do_update_params
+ 
+ do_update_params:
+-	./calctrans -c $(srcdir)/corpus_info
++	calctrans -c $(srcdir)/corpus_info
+ 	rm -f $(dict_source_files)
+ 	make $(dict_source_files)
+ 
+-$(dict_source_files): $(srcdir)/corpus_info $(srcdir)/weak_words calctrans
+-	./calctrans -c $(srcdir)/corpus_info $(srcdir)/weak_words
++$(dict_source_files): $(srcdir)/corpus_info $(srcdir)/weak_words
++	calctrans -c $(srcdir)/corpus_info $(srcdir)/weak_words
+ 
+ noinst_DATA = $(dict_source_files)
+ CLEANFILES = $(dict_source_files) parsed_data parsed_data2 anthy.feature_info
+diff -Nurp anthy-9100h.org/depgraph/Makefile.am anthy-9100h/depgraph/Makefile.am
+--- anthy-9100h.org/depgraph/Makefile.am	2008-11-29 21:46:14.000000000 +0900
++++ anthy-9100h/depgraph/Makefile.am	2014-11-11 17:12:03.813999991 +0900
+@@ -9,11 +9,11 @@ CLEANFILES = anthy.dep
+ EXTRA_DIST = indepword.txt $(DEPWORDS)
+ 
+ # Generate the dictionary
+-noinst_PROGRAMS = mkdepgraph
+-mkdepgraph_SOURCES = mkdepgraph.c
+-mkdepgraph_LDADD =  ../src-main/libanthy.la ../src-worddic/libanthydic.la
++#noinst_PROGRAMS = mkdepgraph
++#mkdepgraph_SOURCES = mkdepgraph.c
++#mkdepgraph_LDADD =  ../src-main/libanthy.la ../src-worddic/libanthydic.la
+ 
+-anthy.dep : mkdepgraph $(DEPWORDS)
+-	./mkdepgraph
++anthy.dep : $(DEPWORDS)
++	mkdepgraph
+ 
+ noinst_DATA = anthy.dep
+diff -Nurp anthy-9100h.org/mkanthydic/Makefile.am anthy-9100h/mkanthydic/Makefile.am
+--- anthy-9100h.org/mkanthydic/Makefile.am	2007-04-14 18:01:10.000000000 +0900
++++ anthy-9100h/mkanthydic/Makefile.am	2014-11-11 17:10:34.792999991 +0900
+@@ -3,12 +3,12 @@ noinst_SCRIPTS =
+ CLEANFILES = anthy.dic
+ INCLUDES = -I$(top_srcdir)/ -DSRCDIR=\"$(srcdir)\"
+ 
+-noinst_PROGRAMS = mkfiledic
+-mkfiledic_SOURCES = mkfiledic.c
+-mkfiledic_LDADD = ../src-diclib/libdiclib.la
++#noinst_PROGRAMS = mkfiledic
++#mkfiledic_SOURCES = mkfiledic.c
++#mkfiledic_LDADD = ../src-diclib/libdiclib.la
+ 
+-anthy.dic : mkfiledic ../mkworddic/anthy.wdic ../depgraph/anthy.dep ../calctrans/anthy.cand_info ../calctrans/anthy.trans_info ../calctrans/anthy.corpus_array ../calctrans/anthy.corpus_bucket
+-	./mkfiledic
++anthy.dic : ../mkworddic/anthy.wdic ../depgraph/anthy.dep ../calctrans/anthy.cand_info ../calctrans/anthy.trans_info ../calctrans/anthy.corpus_array ../calctrans/anthy.corpus_bucket
++	mkfiledic
+ 
+ 
+ # To install 
+diff -Nurp anthy-9100h.org/mkworddic/Makefile.am anthy-9100h/mkworddic/Makefile.am
+--- anthy-9100h.org/mkworddic/Makefile.am	2009-01-23 12:31:31.000000000 +0900
++++ anthy-9100h/mkworddic/Makefile.am	2014-11-11 17:13:31.946999992 +0900
+@@ -26,14 +26,14 @@ DIC_FILES = @top_srcdir@/alt-cannadic/gc
+ 	    @top_srcdir@/mkworddic/udict
+ 
+ # Generate the dictionary
+-noinst_PROGRAMS = mkworddic
+-mkworddic_SOURCES = mkdic.c writewords.c mkudic.c calcfreq.c mkdic.h
+-mkworddic_LDADD = ../src-worddic/libanthydic.la
++#noinst_PROGRAMS = mkworddic
++#mkworddic_SOURCES = mkdic.c writewords.c mkudic.c calcfreq.c mkdic.h
++#mkworddic_LDADD = ../src-worddic/libanthydic.la
+ 
+ noinst_DATA = anthy.wdic
+ 
+-anthy.wdic : mkworddic $(DIC_FILES)
+-	   ./mkworddic -f ./dict.args
++anthy.wdic : $(DIC_FILES)
++	   mkworddic -f ./dict.args
+ 
+ 
+ # To install
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/anthy/anthy_9100h.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/anthy/anthy_9100h.bb
new file mode 100644
index 0000000..e121b44
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/anthy/anthy_9100h.bb
@@ -0,0 +1,42 @@
+DESCRIPTION="Anthy is a system for Japanese input method. It converts Hiragana text to Kana Kanji mixed text."
+AUTHOR = "Anthy Developers <anthy-dev@lists.sourceforge.jp>"
+HOMEPAGE = "http://anthy.sourceforge.jp"
+
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=11f384074d8e93e263b5664ef08a411a"
+
+SRC_URI = "http://osdn.dl.sourceforge.jp/anthy/37536/anthy-9100h.tar.gz \
+           file://not_build_elc.patch \
+           file://2ch_t.patch \
+          "
+
+SRC_URI_append_class-target = "file://target-helpers.patch"
+SRC_URI_append_class-native = "file://native-helpers.patch"
+
+SRC_URI[md5sum] = "1f558ff7ed296787b55bb1c6cf131108"
+SRC_URI[sha256sum] = "d256f075f018b4a3cb0d165ed6151fda4ba7db1621727e0eb54569b6e2275547"
+
+DEPENDS_class-target = "anthy-native"
+RDEPENDS_${PN}_class-target = "libanthy0"
+
+inherit autotools pkgconfig
+
+PACKAGES += "${PN}-el libanthy0 libanthy-dev"
+
+FILES_${PN}-dbg += "${libdir}/.debug"
+FILES_libanthy0 = "${libdir}/libanthy.so.*  \
+		   ${libdir}/libanthydic.so.*   \
+		   ${libdir}/libanthyinput.so.*"
+
+FILES_libanthy-dev = "${libdir}/libanthy*.la \
+		      ${libdir}/libanthy*.a \
+		      ${libdir}/libanthy*.so \
+		      ${includedir}/anthy   \
+		      ${libdir}/pkgconfig/anthy.pc"
+
+FILES_${PN}-el = "${datadir}/emacs/*"
+FILES_${PN} = "${datadir}/* \
+	       ${bindir}/* \
+	       ${sysconfdir}/anthy-conf"
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/apcupsd/apcupsd_3.14.10.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/apcupsd/apcupsd_3.14.10.bb
new file mode 100644
index 0000000..35c891e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/apcupsd/apcupsd_3.14.10.bb
@@ -0,0 +1,42 @@
+SUMMARY = "Apcupsd a daemon for controlling APC UPSes"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c12853cc7fdf20d17b4fddefd26b7802"
+
+SRC_URI = "http://garr.dl.sourceforge.net/project/apcupsd/apcupsd%20-%20Stable/3.14.10/apcupsd-${PV}.tar.gz"
+SRC_URI[md5sum] = "5928822d855c5cf7ac29655e3e0b8c23"
+SRC_URI[sha256sum] = "0707b5ec9916fbde9e44eb8d18037c8d8f75dfd6aeef51aba5487e189eef2032"
+
+PNBLACKLIST[apcupsd] ?= "BROKEN: doesn't build with B!=S"
+
+inherit autotools
+
+LD = "${CXX}"
+
+EXTRA_OECONF = "--without-x \
+                --enable-usb \
+                --with-distname=${DISTRO}"
+
+do_configure() {
+    export topdir=${S}
+    cp -R --no-dereference --preserve=mode,links -v ${S}/autoconf/configure.in ${S}
+
+    if ! [ -d ${S}/platforms/${DISTRO} ] ; then
+        cp -R --no-dereference --preserve=mode,links -v ${S}/platforms/unknown ${S}/platforms/${DISTRO} 
+    fi
+
+    gnu-configize --force
+    # install --help says '-c' is an ignored option, but it turns out that the argument to -c isn't ignored, so drop the complete '-c path/to/strip' line
+    sed -i -e 's:$(INSTALL_PROGRAM) $(STRIP):$(INSTALL_PROGRAM):g' ${S}/autoconf/targets.mak
+    # Searching in host dirs triggers the QA checks
+    sed -i -e 's:-I/usr/local/include::g' -e 's:-L/usr/local/lib64::g' -e 's:-L/usr/local/lib::g' ${S}/configure
+
+    # m4 macros are missing, using autotools_do_configure leads to linking errors with gethostname_re
+    oe_runconf
+}
+
+do_install_append() {
+    rm ${D}${datadir}/hal -rf
+}
+
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/asio/asio.inc b/import-layers/meta-openembedded/meta-oe/recipes-support/asio/asio.inc
new file mode 100644
index 0000000..9cea824
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/asio/asio.inc
@@ -0,0 +1,15 @@
+DESCRIPTION = "Asio is a cross-platform C++ library for network and low-level \
+        I/O programming that provides developers with a consistent asynchronous \
+        model using a modern C++ approach."
+AUTHOR = "Christopher M. Kohlhoff (chris at kohlhoff dot com)"
+HOMEPAGE = "http://think-async.com/Asio"
+SECTION = "libs"
+LICENSE = "BSL-1.0"
+
+DEPENDS = "boost"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/asio/${BP}.tar.bz2"
+
+inherit autotools
+
+ALLOW_EMPTY_${PN} = "1"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/asio/asio_1.10.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/asio/asio_1.10.1.bb
new file mode 100644
index 0000000..fdfaaf6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/asio/asio_1.10.1.bb
@@ -0,0 +1,6 @@
+require asio.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=113f800aa522d9e38c3309c98ec53ade"
+
+SRC_URI[md5sum] = "4d508c9947404fee40945375b8a5fd32"
+SRC_URI[sha256sum] = "820a5dad3c56a4f3e937f2b9ae059ab2696c6058345d71b7a8b072a0f2fcbd99"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/atop/atop/fix-permissions.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/atop/atop/fix-permissions.patch
new file mode 100644
index 0000000..ee74199
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/atop/atop/fix-permissions.patch
@@ -0,0 +1,52 @@
+Update permissions of executable files that remove setuid bit and make everyone
+could read.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+diff --git a/Makefile b/Makefile
+index a65b9b6..21d9828 100644
+--- a/Makefile
++++ b/Makefile
+@@ -66,7 +66,7 @@ systemdinstall:	genericinstall
+ 		chmod 0644            $(DESTDIR)$(SYSDPATH)/atopacct.service
+ 		cp atop.cronsystemd   $(DESTDIR)$(CRNPATH)/atop
+ 		cp atop-pm.sh         $(DESTDIR)$(PMPATHD)
+-		chmod 0711            $(DESTDIR)$(PMPATHD)/atop-pm.sh
++		chmod 0755            $(DESTDIR)$(PMPATHD)/atop-pm.sh
+ 		#
+ 		# only when making on target system:
+ 		#
+@@ -91,11 +91,11 @@ sysvinstall:	genericinstall
+ 		#
+ 		if [   -d $(DESTDIR)$(PMPATH1) ]; 			\
+ 		then	cp 45atoppm $(DESTDIR)$(PMPATH1); 		\
+-			chmod 0711  $(DESTDIR)$(PMPATH1)/45atoppm;	\
++			chmod 0755  $(DESTDIR)$(PMPATH1)/45atoppm;	\
+ 		fi
+ 		if [ -d $(DESTDIR)$(PMPATH2) ]; 			\
+ 		then	cp 45atoppm $(DESTDIR)$(PMPATH2);		\
+-			chmod 0711  $(DESTDIR)$(PMPATH2)/45atoppm;	\
++			chmod 0755  $(DESTDIR)$(PMPATH2)/45atoppm;	\
+ 		fi
+ 		#
+ 		#
+@@ -139,7 +139,7 @@ genericinstall:	atop atopacctd
+ 		#
+ 		cp atop   		$(DESTDIR)$(BINPATH)/atop
+ 		chown root		$(DESTDIR)$(BINPATH)/atop
+-		chmod 04711 		$(DESTDIR)$(BINPATH)/atop
++		chmod 0755 		$(DESTDIR)$(BINPATH)/atop
+ 		ln -sf atop             $(DESTDIR)$(BINPATH)/atopsar
+ 		cp atopacctd  		$(DESTDIR)$(SBINPATH)/atopacctd
+ 		chown root		$(DESTDIR)$(SBINPATH)/atopacctd
+@@ -147,7 +147,7 @@ genericinstall:	atop atopacctd
+ 		cp atop   		$(DESTDIR)$(BINPATH)/atop-$(VERS)
+ 		ln -sf atop-$(VERS)     $(DESTDIR)$(BINPATH)/atopsar-$(VERS)
+ 		cp atop.daily    	$(DESTDIR)$(SCRPATH)
+-		chmod 0711 	 	$(DESTDIR)$(SCRPATH)/atop.daily
++		chmod 0755 	 	$(DESTDIR)$(SCRPATH)/atop.daily
+ 		cp man/atop.1    	$(DESTDIR)$(MAN1PATH)
+ 		cp man/atopsar.1 	$(DESTDIR)$(MAN1PATH)
+ 		cp man/atoprc.5  	$(DESTDIR)$(MAN5PATH)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/atop/atop/remove-bashisms.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/atop/atop/remove-bashisms.patch
new file mode 100644
index 0000000..f1fcbfe
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/atop/atop/remove-bashisms.patch
@@ -0,0 +1,33 @@
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+diff --git a/atop-pm.sh b/atop-pm.sh
+index 7f41a86..3ff4ab5 100755
+--- a/atop-pm.sh
++++ b/atop-pm.sh
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+ 
+ case "$1" in
+ 	pre)	/usr/bin/systemctl stop atop
+diff --git a/atop.daily b/atop.daily
+index 24d33bd..f29bd94 100755
+--- a/atop.daily
++++ b/atop.daily
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+ 
+ CURDAY=`date +%Y%m%d`
+ LOGPATH=/var/log/atop
+@@ -16,7 +16,7 @@ then
+ 
+ 	while ps -p `cat $PIDFILE` > /dev/null
+ 	do
+-		let CNT+=1
++		CNT=$((CNT+1))
+ 
+ 		if [ $CNT -gt 5 ]
+ 		then
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/atop/atop/sysvinit-implement-status.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/atop/atop/sysvinit-implement-status.patch
new file mode 100644
index 0000000..5994d3e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/atop/atop/sysvinit-implement-status.patch
@@ -0,0 +1,27 @@
+Implement the sub-command status.
+
+Upstream-Status: Pending
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+diff --git a/atop.init b/atop.init
+index 108bdc5..9f89fad 100755
+--- a/atop.init
++++ b/atop.init
+@@ -18,6 +18,8 @@
+ # Check existance of binaries 
+ [ -f /usr/bin/atop ] || exit 0
+ 
++[ -f /etc/init.d/functions ] && . /etc/init.d/functions
++
+ PIDFILE=/var/run/atop.pid
+ RETVAL=0
+ 
+@@ -63,6 +65,7 @@ case "$1" in
+ 	;;
+ 
+   status)
++	status atop
+ 	;;
+ 
+   reload)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/atop/atop/volatiles.99_atop b/import-layers/meta-openembedded/meta-oe/recipes-support/atop/atop/volatiles.99_atop
new file mode 100644
index 0000000..24ea3f2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/atop/atop/volatiles.99_atop
@@ -0,0 +1 @@
+d root root 0755 /var/volatile/log/atop none
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/atop/atop/volatiles.atop.conf b/import-layers/meta-openembedded/meta-oe/recipes-support/atop/atop/volatiles.atop.conf
new file mode 100644
index 0000000..2f23000
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/atop/atop/volatiles.atop.conf
@@ -0,0 +1 @@
+d               /var/volatile/log/atop               -       -       -       -
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/atop/atop_2.2.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/atop/atop_2.2.3.bb
new file mode 100644
index 0000000..21311e3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/atop/atop_2.2.3.bb
@@ -0,0 +1,62 @@
+SUMMARY = "Monitor for system resources and process activity"
+DESCRIPTION = "Atop is an ASCII full-screen performance monitor for Linux that \
+is capable of reporting the activity of all processes (even if processes have \
+finished during the interval), daily logging of system and process activity for \
+long-term analysis, highlighting overloaded system resources by using colors, \
+etc. At regular intervals, it shows system-level activity related to the CPU, \
+memory, swap, disks (including LVM) and network layers, and for every process \
+(and thread) it shows e.g. the CPU utilization, memory growth, disk \
+utilization, priority, username, state, and exit code."
+HOMEPAGE = "http://www.atoptool.nl"
+SECTION = "console/utils"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833"
+
+DEPENDS = "ncurses zlib"
+
+ATOP_VER = "${@'-'.join(d.getVar('PV', True).rsplit('.', 1))}"
+
+SRC_URI = " \
+    http://www.atoptool.nl/download/${BPN}-${ATOP_VER}.tar.gz \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'file://volatiles.atop.conf', 'file://volatiles.99_atop', d)} \
+    file://remove-bashisms.patch \
+    file://fix-permissions.patch \
+    file://sysvinit-implement-status.patch \
+"
+
+SRC_URI[md5sum] = "034dc1544f2ec4e4d2c739d320dc326d"
+SRC_URI[sha256sum] = "c785b8a2355be28b3de6b58a8ea4c4fcab8fadeaa57a99afeb03c66fac8e055d"
+
+S = "${WORKDIR}/${BPN}-${ATOP_VER}"
+
+do_compile() {
+    oe_runmake all
+}
+
+do_install() {
+    if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+        make DESTDIR=${D} VERS=${ATOP_VER} SYSDPATH=${systemd_system_unitdir} \
+            PMPATHD=${systemd_unitdir}/system-sleep systemdinstall
+        install -d ${D}${sysconfdir}/tmpfiles.d
+        install -m 644 ${WORKDIR}/volatiles.atop.conf ${D}${sysconfdir}/tmpfiles.d/atop.conf
+        rm -f ${D}${systemd_system_unitdir}/atopacct.service
+    else
+        make DESTDIR=${D} VERS=${ATOP_VER} sysvinstall
+        install -d ${D}${sysconfdir}/default/volatiles
+        install -m 644 ${WORKDIR}/volatiles.99_atop ${D}${sysconfdir}/default/volatiles/99_atop
+        rm -f ${D}${sysconfdir}/init.d/atopacct
+    fi
+
+    # remove atopacct related files
+    rm -rf ${D}${sbindir} ${D}${mandir}/man8
+}
+
+inherit systemd
+
+SYSTEMD_SERVICE_${PN} = "atop.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+FILES_${PN} += "${systemd_unitdir}/system-sleep"
+
+RDEPENDS_${PN} = "procps"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/frame_2.5.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/frame_2.5.0.bb
new file mode 100644
index 0000000..ecc9524
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/frame_2.5.0.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Frame handles simultaneous touches"
+
+HOMEPAGE = "https://launchpad.net/frame"
+
+LICENSE = "GPLv3 & LGPLv3"
+LIC_FILES_CHKSUM = " \
+    file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02 \
+    file://COPYING.GPL3;md5=d32239bcb673463ab874e80d47fae504 \
+"
+
+inherit autotools pkgconfig
+
+SRC_URI = "https://launchpad.net/${BPN}/trunk/v${PV}/+download/${BPN}-${PV}.tar.gz"
+SRC_URI[md5sum] = "02baa941091c5d198cd1623b3ad36e68"
+SRC_URI[sha256sum] = "cfb9ab52cdccd926f1822a457264d0014c7eb9f4600a72626063dd073b26256f"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}"
+PACKAGECONFIG[x11] = "--enable-x11, --disable-x11, libxi xext virtual/xserver"
+
+PACKAGE_BEFORE_PN += "${PN}-test"
+FILES_${PN}-test = "${bindir}/frame-test*"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/geis_2.2.17.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/geis_2.2.17.bb
new file mode 100644
index 0000000..bc88143
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/geis_2.2.17.bb
@@ -0,0 +1,54 @@
+SUMMARY = "An implementation of the GEIS interface"
+DESCRIPTION = "An implementation of the GEIS (Gesture Engine Interface and Support) \
+interface\
+GEIS is a library for applications and toolkit programmers which \
+provides a consistent platform independent interface for any \
+system-wide input gesture recognition mechanism."
+
+HOMEPAGE = "https://launchpad.net/geis"
+
+LICENSE = "GPLv3 & LGPLv3"
+LIC_FILES_CHKSUM = " \
+    file://COPYING;md5=6a6a8e020838b23406c81b19c1d46df6 \
+    file://COPYING.GPL;md5=f27defe1e96c2e1ecd4e0c9be8967949 \
+"
+
+inherit autotools pkgconfig python3native lib_package distro_features_check
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+DEPENDS += "grail dbus-glib python3 virtual/libx11 libxext libxi libxcb dbus frame"
+
+SRC_URI = "https://launchpad.net/${BPN}/trunk/${PV}/+download/${BPN}-${PV}.tar.xz"
+SRC_URI[md5sum] = "2ff9d76a3ea5794516bb02c9d1924faf"
+SRC_URI[sha256sum] = "8a60f5683852094038904e690d23cc5a90a980fc52da67f0f28890baa25c70eb"
+
+EXTRA_OECONF = "--disable-integration-tests"
+
+FILES_${PN}-bin = "${bindir}"
+RDEPENDS_${PN}-bin = " \
+    python3-compression \
+    python3-core \
+    python3-crypt \
+    python3-ctypes \
+    python3-fcntl \
+    python3-misc \
+    python3-pickle \
+    python3-shell \
+    python3-stringold \
+    python3-subprocess \
+    python3-textutils \
+    python3-threading \
+"
+
+FILES_${PN} += " \
+    ${datadir}/geisview \
+    ${libdir}/${PYTHON_DIR}/site-packages/geis* \
+    ${libdir}/${PYTHON_DIR}/site-packages/_*.so \
+"
+
+FILES_${PN}-dbg += "${libdir}/${PYTHON_DIR}/site-packages/.debug"
+
+FILES_${PN}-dev += "${libdir}/${PYTHON_DIR}/site-packages/_*.la"
+
+FILES_${PN}-staticdev += "${libdir}/${PYTHON_DIR}/site-packages/_*.a"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/grail_3.1.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/grail_3.1.0.bb
new file mode 100644
index 0000000..6ea10d6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/canonical-multitouch/grail_3.1.0.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Gesture Recognition And Instantiation Library"
+
+HOMEPAGE = "https://launchpad.net/grail"
+
+LICENSE = "GPLv3 & LGPLv3"
+LIC_FILES_CHKSUM = " \
+    file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02 \
+    file://COPYING.GPL3;md5=d32239bcb673463ab874e80d47fae504 \
+"
+
+inherit autotools pkgconfig
+
+DEPENDS = "frame"
+
+SRC_URI = "https://launchpad.net/${BPN}/trunk/${PV}/+download/${BPN}-${PV}.tar.bz2"
+SRC_URI[md5sum] = "2ac56af5f6f466b433c99ca12f34c34f"
+SRC_URI[sha256sum] = "c26dced1b3f4317ecf6af36db0e90294d87e43966d56aecc4e97b65368ab78b9"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}"
+PACKAGECONFIG[x11] = "--with-x11, --without-x11, libxi"
+
+PACKAGE_BEFORE_PN += "${PN}-test"
+FILES_${PN}-test = "${bindir}/grail-test*"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ccid/ccid/no-dep-on-libfl.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/ccid/ccid/no-dep-on-libfl.patch
new file mode 100644
index 0000000..477cc31
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/ccid/ccid/no-dep-on-libfl.patch
@@ -0,0 +1,18 @@
+No need to link with libfl.
+
+Upstream-Status: Pending
+Signed-off-by: Jacob Kroon <jacob.kroon@mikrodidakt.se>
+
+Index: ccid-1.4.8/src/Makefile.am
+===================================================================
+--- ccid-1.4.8.orig/src/Makefile.am
++++ ccid-1.4.8/src/Makefile.am
+@@ -53,7 +53,7 @@ PROVIDED_BY_PCSC = debug.c
+ endif
+ 
+ libccid_la_SOURCES = $(COMMON) $(USB) $(TOKEN_PARSER) $(PROVIDED_BY_PCSC) $(T1)
+-libccid_la_LIBADD = $(LEXLIB) $(LIBUSB_LIBS) $(PTHREAD_LIBS)
++libccid_la_LIBADD = $(LIBUSB_LIBS) $(PTHREAD_LIBS)
+ libccid_la_CFLAGS = $(PCSC_CFLAGS) $(LIBUSB_CFLAGS) $(PTHREAD_CFLAGS) \
+ 	$(SYMBOL_VISIBILITY) -D$(CCID_VERSION) -DSIMCLIST_NO_DUMPRESTORE
+ libccid_la_LDFLAGS = -avoid-version
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ccid/ccid_1.4.19.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/ccid/ccid_1.4.19.bb
new file mode 100644
index 0000000..f77e069
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/ccid/ccid_1.4.19.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Generic USB CCID smart card reader driver"
+HOMEPAGE = "http://pcsclite.alioth.debian.org/ccid.html"
+LICENSE = "LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
+
+DEPENDS = "virtual/libusb0 pcsc-lite"
+RDEPENDS_${PN} = "pcsc-lite"
+
+SRC_URI = "https://alioth.debian.org/frs/download.php/file/4132/ccid-${PV}.tar.bz2 \
+	   file://no-dep-on-libfl.patch "
+
+SRC_URI[md5sum] = "d1eed995ba9a2eb395a65a8a78090f52"
+SRC_URI[sha256sum] = "cccb2c2bb4e56689efe34559f713102d92f94735542e58d3e4334e1459e934e1"
+
+inherit autotools pkgconfig
+
+FILES_${PN} += "${libdir}/pcsc/"
+FILES_${PN}-dbg += "${libdir}/pcsc/drivers/*/*/*/.debug"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ckermit/ckermit_302.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/ckermit/ckermit_302.bb
new file mode 100644
index 0000000..187a57e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/ckermit/ckermit_302.bb
@@ -0,0 +1,60 @@
+DESCRIPTION = "C-Kermit is a combined serial and network communication \
+software package offering a consistent, medium-independent, \
+cross-platform approach to connection establishment, terminal \
+sessions, file transfer, character-set translation, and automation \
+of communication tasks."
+HOMEPAGE = "www.kermitproject.org/ck90.html"
+SECTION = "console/network"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING.TXT;md5=932ca542d6c6cb8a59a0bcd76ab67cc3"
+
+SRC_URI = "http://www.kermitproject.org/ftp/kermit/archives/cku${PV}.tar.gz;subdir=${BPN}-${PV}"
+SRC_URI[md5sum] = "eac4dbf18b45775e4cdee5a7c74762b0"
+SRC_URI[sha256sum] = "0d5f2cd12bdab9401b4c836854ebbf241675051875557783c332a6a40dac0711"
+
+
+export CC2 = "${CC}"
+export BINDIR = "${bindir}"
+export MANDIR = "${mandir}/man1"
+export INFODIR = "${infodir}"
+
+EXTRA_OEMAKE = "-e MAKEFLAGS="
+
+# Additional flags. For uclibc we add -DNOARROWKEYS which stops ckermit
+# trying to look inside the stdio headers.
+CKERMIT_ADDITIONAL = ""
+CKERMIT_ADDITIONAL_libc-uclibc = "-DNOARROWKEYS"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+do_compile () {
+    # The original makefile doesn't differentiate between CC and CC_FOR_BUILD,
+    # so we build wart manually. Note that you need a ckwart.o with the proper
+    # timestamp to make this hack work:
+    ${BUILD_CC} -c ckwart.c
+    ${BUILD_CC} -o wart ckwart.o
+    ./wart ckcpro.w ckcpro.c
+
+    # read ${S}/ckccfg.txt to understand this :-)
+    oe_runmake wermit CFLAGS="${CFLAGS} -DLINUX -DCK_POSIX_SIG \
+        -DNOTCPOPTS -DLINUXFSSTND -DNOCOTFMC -DPOSIX -DUSE_STRERROR \
+        -DNOSYSLOG -DHAVE_PTMX -DNO_DNS_SRV -DNOGFTIMER \
+        -DNOB_50 -DNOB_75 -DNOB_134 -DNOB_150 -DNOB_200 \
+        -DNOB_1800 -DNOB_3600 -DNOB_7200 -DNOB_76K -DNOB_230K \
+        -DNOB_460K -DNOB_921K \
+        -DNOCSETS -DNONET -DNOUNICODE -DNOHELP -DNODEBUG \
+        -DNOFRILLS -DNOFTP -DNODIAL -DNOPUSH -DNOIKSD -DNOHTTP -DNOFLOAT \
+        -DNOSERVER -DNOSEXP -DNORLOGIN -DNOOLDMODEMS -DNOSSH -DNOLISTEN \
+        -DNORESEND -DNOAUTODL -DNOSTREAMING -DNOHINTS -DNOCKXYZ -DNOLEARN \
+        -DNOMKDIR -DNOPERMS -DNOCKTIMERS -DNOCKREGEX -DNOREALPATH \
+        -DCK_SMALL -DNOLOGDIAL -DNORENAME -DNOWHATAMI \
+        ${CKERMIT_ADDITIONAL}"
+}
+
+do_install () {
+    install -d ${D}${BINDIR} ${D}${MANDIR} ${D}${INFODIR}
+    oe_runmake 'DESTDIR=${D}' install
+    # Fix up dangling symlink
+    rm ${D}${BINDIR}/kermit-sshsub
+    (cd ${D}${BINDIR} && ln -s ${BINDIR}/kermit kermit-sshusb)
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/cpufrequtils/cpufrequtils/0001-dont-unset-cflags.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/cpufrequtils/cpufrequtils/0001-dont-unset-cflags.patch
new file mode 100644
index 0000000..fb2f07f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/cpufrequtils/cpufrequtils/0001-dont-unset-cflags.patch
@@ -0,0 +1,30 @@
+--- git.old/Makefile	2012-04-17 13:29:46.280435340 +0200
++++ git/Makefile	2012-04-17 13:31:13.664433470 +0200
+@@ -77,17 +77,7 @@ INSTALL_PROGRAM = ${INSTALL}
+ INSTALL_DATA  = ${INSTALL} -m 644
+ INSTALL_SCRIPT = ${INSTALL_PROGRAM}
+ 
+-# If you are running a cross compiler, you may want to set this
+-# to something more interesting, like "arm-linux-".  If you want
+-# to compile vs uClibc, that can be done here as well.
+-CROSS = #/usr/i386-linux-uclibc/usr/bin/i386-uclibc-
+-CC = $(CROSS)gcc
+-LD = $(CROSS)gcc
+-AR = $(CROSS)ar
+-STRIP = $(CROSS)strip
+-RANLIB = $(CROSS)ranlib
+-HOSTCC = gcc
+-
++HOSTCC = $(BUILD_CC)
+ 
+ # Now we set up the build system
+ #
+@@ -95,7 +85,7 @@ HOSTCC = gcc
+ # set up PWD so that older versions of make will work with our build.
+ PWD = $(shell pwd)
+ 
+-export CROSS CC AR STRIP RANLIB CFLAGS LDFLAGS LIB_OBJS
++export CFLAGS LDFLAGS LIB_OBJS
+ 
+ # check if compiler option is supported
+ cc-supports = ${shell if $(CC) ${1} -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo "$(1)"; fi;}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/cpufrequtils/cpufrequtils_008.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/cpufrequtils/cpufrequtils_008.bb
new file mode 100644
index 0000000..88fcc02
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/cpufrequtils/cpufrequtils_008.bb
@@ -0,0 +1,37 @@
+DESCRIPTION = "To make access to the Linux kernel cpufreq subsystem easier for users and cpufreq userspace tools, a cpufrequtils package was created"
+
+inherit gettext
+
+DEPENDS = "libtool-cross"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+SRCREV = "a2f0c39d5f21596bb9f5223e895c0ff210b265d0"
+# SRC_URI = "git://git.kernel.org/pub/scm/utils/kernel/cpufreq/cpufrequtils.git
+
+SRC_URI = "git://github.com/emagii/cpufrequtils.git \
+           file://0001-dont-unset-cflags.patch \
+"
+
+EXTRA_OEMAKE_append = " ${@['', 'NLS=false']['${USE_NLS}' == 'no']} "
+
+PR = "r5"
+
+S = "${WORKDIR}/git"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+EXTRA_OEMAKE = "V=1 CROSS=${TARGET_PREFIX} LIBTOOL='${HOST_SYS}-libtool --tag cc' STRIPCMD=echo 'CP=cp'"
+
+do_compile() {
+    oe_runmake
+}
+
+do_install() {
+    oe_runmake -e install DESTDIR=${D}
+    rm -f ${D}${libdir}/libcpufreq.so.0 ${D}${libdir}/libcpufreq.so
+    ln -s libcpufreq.so.0.0.0 ${D}${libdir}/libcpufreq.so.0
+    ln -s libcpufreq.so.0.0.0 ${D}${libdir}/libcpufreq.so
+}
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/cryptsetup/cryptsetup_1.7.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/cryptsetup/cryptsetup_1.7.0.bb
new file mode 100644
index 0000000..16c21d3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/cryptsetup/cryptsetup_1.7.0.bb
@@ -0,0 +1,33 @@
+SUMMARY = "Manage plain dm-crypt and LUKS encrypted volumes"
+DESCRIPTION = "Cryptsetup is used to conveniently setup dm-crypt managed \
+device-mapper mappings. These include plain dm-crypt volumes and \
+LUKS volumes. The difference is that LUKS uses a metadata header \
+and can hence offer more features than plain dm-crypt. On the other \
+hand, the header is visible and vulnerable to damage."
+HOMEPAGE = "http://code.google.com/p/cryptsetup/"
+SECTION = "console"
+LICENSE = "GPL-2.0-with-OpenSSL-exception"
+LIC_FILES_CHKSUM = "file://COPYING;md5=32107dd283b1dfeb66c9b3e6be312326"
+
+DEPENDS = "util-linux lvm2 popt libgcrypt"
+
+SRC_URI = "${KERNELORG_MIRROR}/linux/utils/${BPN}/v1.7/${BP}.tar.xz"
+SRC_URI[md5sum] = "56c385fe87fc2b6873df4b7f89202d0f"
+SRC_URI[sha256sum] = "075524a7cc0db36d12119fa79116750accb1c6c8825d5faa2534b74b8ce3d148"
+
+inherit autotools gettext pkgconfig
+
+# Use openssl because libgcrypt drops root privileges
+# if libgcrypt is linked with libcap support
+PACKAGECONFIG ??= "openssl"
+PACKAGECONFIG[openssl] = "--with-crypto_backend=openssl,,openssl"
+PACKAGECONFIG[gcrypt] = "--with-crypto_backend=gcrypt,,libgcrypt"
+
+RRECOMMENDS_${PN} = "kernel-module-aes-generic \
+                     kernel-module-dm-crypt \
+                     kernel-module-md5 \
+                     kernel-module-cbc \
+                     kernel-module-sha256-generic \
+"
+
+EXTRA_OECONF = "--enable-static"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ctapi-common/ctapi-common_1.1-11.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/ctapi-common/ctapi-common_1.1-11.bb
new file mode 100644
index 0000000..a3b67f7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/ctapi-common/ctapi-common_1.1-11.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Common files and packaging infrastructure for CT-API modules"
+HOMEPAGE = "http://fedoraproject.org/"
+SECTION = "System Environment/Libraries"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://../ctapi-common.LICENSE;md5=8744cd52545ecb45befebd0da6f70f0a"
+
+SRC_URI = "http://ftp.riken.jp/Linux/fedora/releases/20/Fedora/source/SRPMS/c/${BPN}-${PV}.fc20.src.rpm;extract=ctapi-common.LICENSE \
+           http://ftp.riken.jp/Linux/fedora/releases/20/Fedora/source/SRPMS/c/${BPN}-${PV}.fc20.src.rpm;extract=ctapi-common.README"
+SRC_URI[md5sum] = "f02e67487c48319376800563a2659502"
+SRC_URI[sha256sum] = "32399819b0a1cac1abb2b8f0f180c572c93809faad36c46825dd536e4844c7cf"
+
+do_compile() {
+    install -pm 644 ${WORKDIR}/ctapi-common.LICENSE LICENSE
+    install -pm 644 ${WORKDIR}/ctapi-common.README README
+    echo ${libdir}/ctapi > ctapi.conf
+}
+
+do_install() {
+    install -Dpm 644 ctapi.conf ${D}${sysconfdir}/ld.so.conf.d/ctapi-${TARGET_ARCH}.conf
+    install -dm 755 ${D}${libdir}/ctapi
+}
+
+FILES_${PN} += "${libdir}/ctapi"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/daemonize/daemonize_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/daemonize/daemonize_git.bb
new file mode 100644
index 0000000..8b1591c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/daemonize/daemonize_git.bb
@@ -0,0 +1,14 @@
+SUMMARY = "A tool to run a command as a daemon"
+HOMEPAGE = "http://software.clapper.org/daemonize/"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=3cf9084faa88bc8554a9139d8d7dd35f"
+PV = "1.7.3+git${SRCPV}"
+
+inherit autotools
+
+SRCREV = "a4ac64a243af91dc434b7a3915f43482d528a2b1"
+SRC_URI = "git://github.com/bmc/daemonize.git"
+
+S = "${WORKDIR}/git"
+
+EXTRA_AUTORECONF += "--exclude=autoheader"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/0001-error.h-include-errno.h-instead-of-extern-int.diff b/import-layers/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/0001-error.h-include-errno.h-instead-of-extern-int.diff
new file mode 100644
index 0000000..ce19597
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/0001-error.h-include-errno.h-instead-of-extern-int.diff
@@ -0,0 +1,25 @@
+From d3e7651e2f2492dd1031d09a99713644b604cab5 Mon Sep 17 00:00:00 2001
+From: Gerrit Pape <pape@smarden.org>
+Date: Wed, 12 Dec 2007 13:44:15 +0000
+Subject: [PATCH] error.h: '#include <errno.h>' instead of 'extern int errno;'
+
+---
+ daemontools-0.76/src/error.h |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git daemontools-0.76.orig/src/error.h daemontools-0.76/src/error.h
+index 086fb55..f7e8273 100644
+--- daemontools-0.76.orig/src/error.h
++++ daemontools-0.76/src/error.h
+@@ -3,7 +3,7 @@
+ #ifndef ERROR_H
+ #define ERROR_H
+ 
+-extern int errno;
++#include <errno.h>
+ 
+ extern int error_intr;
+ extern int error_nomem;
+-- 
+1.5.4.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/0002-supervise.c-.-supervise-may-be-a-symlink-if-it-s-da.diff b/import-layers/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/0002-supervise.c-.-supervise-may-be-a-symlink-if-it-s-da.diff
new file mode 100644
index 0000000..73dce90
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/0002-supervise.c-.-supervise-may-be-a-symlink-if-it-s-da.diff
@@ -0,0 +1,47 @@
+From 7ee585cab1d5b68f804a5601a66ae87799c8a7c3 Mon Sep 17 00:00:00 2001
+From: Gerrit Pape <pape@smarden.org>
+Date: Sun, 24 Feb 2008 10:54:26 +0000
+Subject: [PATCH] supervise.c: ./supervise may be a symlink, if it's dangling, create link target
+
+---
+ daemontools-0.76/src/supervise.c |   17 ++++++++++++++++-
+ 1 files changed, 16 insertions(+), 1 deletions(-)
+
+diff --git daemontools-0.76.orig/src/supervise.c daemontools-0.76/src/supervise.c
+index 2482ad2..f43cabf 100644
+--- daemontools-0.76.orig/src/supervise.c
++++ daemontools-0.76/src/supervise.c
+@@ -208,6 +208,8 @@ void doit(void)
+ int main(int argc,char **argv)
+ {
+   struct stat st;
++  int r;
++  char buf[256];
+ 
+   dir = argv[1];
+   if (!dir || argv[2])
+@@ -232,7 +234,20 @@ int main(int argc,char **argv)
+     if (errno != error_noent)
+       strerr_die4sys(111,FATAL,"unable to stat ",dir,"/down: ");
+ 
+-  mkdir("supervise",0700);
++  if (mkdir("supervise",0700) == -1) {
++    if ((r = readlink("supervise", buf, 256)) != -1) {
++      if (r == 256) {
++        errno = EOVERFLOW;
++        strerr_die1sys(111,"unable to readlink ./supervise: ");
++      }
++      buf[r] = 0;
++      mkdir(buf, 0700);
++    }
++    else {
++      if ((errno != ENOENT) && (errno != EINVAL))
++        strerr_die1sys(111, "unable to readlink ./supervise: ");
++    }
++  }
+   fdlock = open_append("supervise/lock");
+   if ((fdlock == -1) || (lock_exnb(fdlock) == -1))
+     strerr_die4sys(111,FATAL,"unable to acquire ",dir,"/supervise/lock: ");
+-- 
+1.5.4.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/cross-compile.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/cross-compile.patch
new file mode 100644
index 0000000..f164c2d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools/cross-compile.patch
@@ -0,0 +1,45 @@
+make sure it can be compiled for cross target
+
+1. never try to compile target binary by native gcc
+2. target's chkshsgr doesn't work on native.
+3. it's wrong to do target tests on native.
+
+Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
+
+diff -Nurp daemontools-0.76.orig/src/conf-cc daemontools-0.76/src/conf-cc
+--- daemontools-0.76.orig/src/conf-cc	2001-07-13 00:49:49.000000000 +0800
++++ daemontools-0.76/src/conf-cc	2014-11-26 09:34:38.828812162 +0800
+@@ -1,3 +1,3 @@
+-gcc -O2 -Wimplicit -Wunused -Wcomment -Wchar-subscripts -Wuninitialized -Wshadow -Wcast-qual -Wcast-align -Wwrite-strings
++${CC} -O2 -Wimplicit -Wunused -Wcomment -Wchar-subscripts -Wuninitialized -Wshadow -Wcast-qual -Wcast-align -Wwrite-strings
+ 
+ This will be used to compile .c files.
+diff -Nurp daemontools-0.76.orig/src/conf-ld daemontools-0.76/src/conf-ld
+--- daemontools-0.76.orig/src/conf-ld	2001-07-13 00:49:49.000000000 +0800
++++ daemontools-0.76/src/conf-ld	2014-11-26 09:34:49.880811730 +0800
+@@ -1,3 +1,3 @@
+-gcc -s
++${CC}
+ 
+ This will be used to link .o files into an executable.
+diff -Nurp daemontools-0.76.orig/src/Makefile daemontools-0.76/src/Makefile
+--- daemontools-0.76.orig/src/Makefile	2001-07-13 00:49:49.000000000 +0800
++++ daemontools-0.76/src/Makefile	2014-11-26 09:38:47.120802459 +0800
+@@ -165,7 +165,7 @@ hassgprm.h: choose compile hassgprm.h1 h
+ 
+ hasshsgr.h: chkshsgr choose compile hasshsgr.h1 hasshsgr.h2 load \
+ tryshsgr.c warn-shsgr
+-	./chkshsgr || ( cat warn-shsgr; exit 1 )
++	chkshsgr || ( cat warn-shsgr; exit 1 )
+ 	./choose clr tryshsgr hasshsgr.h1 hasshsgr.h2 > hasshsgr.h
+ 
+ haswaitp.h: choose compile haswaitp.h1 haswaitp.h2 load trywaitp.c
+@@ -265,7 +265,7 @@ readproctitle.o: compile error.h readpro
+ rts: envdir envuidgid fghack matchtest multilog pgrphack \
+ readproctitle rts.tests setlock setuidgid softlimit supervise svc \
+ svok svscan svscanboot svstat tai64n tai64nlocal
+-	env - /bin/sh rts.tests 2>&1 | cat -v > rts
++	echo "Warning: We can not run test on cross target."
+ 
+ scan_ulong.o: compile scan.h scan_ulong.c
+ 	./compile scan_ulong.c
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools_0.76.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools_0.76.bb
new file mode 100644
index 0000000..161f92f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/daemontools/daemontools_0.76.bb
@@ -0,0 +1,47 @@
+SUMMARY = "DJB daemontools"
+DESCRIPTION = "supervise monitors a service. It starts the service and restarts the \
+service if it dies. The companion svc program stops, pauses, or restarts \
+the service on sysadmin request. The svstat program prints a one-line \
+status report. \
+multilog saves error messages to one or more logs.  It optionally timestamps \
+each line and, for each log, includes or excludes lines matching specified \
+patterns.  It automatically rotates logs to limit the amount of disk space \
+used.  If the disk fills up, it pauses and tries again, without losing any \
+data."
+
+SECTION = "System/Servers"
+
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/PD;md5=b3597d12946881e13cb3b548d1173851"
+LICENSE = "PD"
+
+SRC_URI = "http://cr.yp.to/daemontools/${BPN}-${PV}.tar.gz \
+           file://0001-error.h-include-errno.h-instead-of-extern-int.diff \
+           file://0002-supervise.c-.-supervise-may-be-a-symlink-if-it-s-da.diff "
+
+SRC_URI_append_class-target = "file://cross-compile.patch"
+
+SRC_URI[md5sum] = "1871af2453d6e464034968a0fbcb2bfc"
+SRC_URI[sha256sum] = "a55535012b2be7a52dcd9eccabb9a198b13be50d0384143bd3b32b8710df4c1f"
+
+S = "${WORKDIR}/admin/${BPN}-${PV}"
+
+DEPENDS += "daemontools-native"
+DEPENDS_class-native = ""
+
+do_compile() {
+    ./package/compile
+}
+
+do_install() {
+    install -d ${D}/${bindir}
+}
+
+do_install_append_class-native() {
+    install -m 755 ${S}/compile/chkshsgr ${D}/${bindir}
+}
+
+do_install_append_class-target() {
+    install -m755 ${S}/command/* ${D}/${bindir}
+}
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/devicekit/devicekit-power_014.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/devicekit/devicekit-power_014.bb
new file mode 100644
index 0000000..c2b7e66
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/devicekit/devicekit-power_014.bb
@@ -0,0 +1,30 @@
+SUMMARY = "Devicekit power"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=756cf97871f77233638937da21b025d3"
+
+DEPENDS = "libusb-compat libusb1 udev glib-2.0 dbus-glib polkit intltool-native libgudev"
+
+SRC_URI = "http://upower.freedesktop.org/releases/DeviceKit-power-${PV}.tar.gz;name=archive"
+SRC_URI[archive.md5sum] = "935d37f1e14b3c8a1d6dabcd9a38d3ca"
+SRC_URI[archive.sha256sum] = "ad3e9a8bd9525d66fadc7fa53ef99e0632aa8cca8fd5bc27483956261153b373"
+
+S = "${WORKDIR}/DeviceKit-power-${PV}"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = " --with-backend=linux"
+
+do_configure_prepend() {
+    sed -i -e s:-nonet:\:g ${S}/doc/man/Makefile.am
+    sed -i -e 's: doc : :g' ${S}/Makefile.am
+}    
+
+FILES_${PN} += "${datadir}/dbus-1/ \
+                ${datadir}/polkit-1/ \
+                ${base_libdir}/udev/* \
+"
+
+FILES_${PN}-dbg += "${base_libdir}/udev/.debug"
+
+
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/devmem2/devmem2.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/devmem2/devmem2.bb
new file mode 100644
index 0000000..e48cc92
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/devmem2/devmem2.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Simple program to read/write from/to any location in memory"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://devmem2.c;endline=28;md5=dd68f2b0a5184b3db3dc25c99e0bd0cd"
+PR = "r7"
+
+SRC_URI = "http://www.lartmaker.nl/lartware/port/devmem2.c \
+           file://devmem2-fixups-2.patch;apply=yes;striplevel=0"
+S = "${WORKDIR}"
+
+CFLAGS += "-DFORCE_STRICT_ALIGNMENT"
+
+do_compile() {
+    ${CC} -o devmem2 devmem2.c ${CFLAGS} ${LDFLAGS}
+}
+
+do_install() {
+    install -d ${D}${bindir}
+    install devmem2 ${D}${bindir}
+}
+
+SRC_URI[md5sum] = "be12c0132a1ae118cbf5e79d98427c1d"
+SRC_URI[sha256sum] = "ec382c90af3ef2f49695ff14a4d6521e58ac482c4e29d6c9ebca8768f699c191"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/devmem2/devmem2/devmem2-fixups-2.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/devmem2/devmem2/devmem2-fixups-2.patch
new file mode 100644
index 0000000..4517797
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/devmem2/devmem2/devmem2-fixups-2.patch
@@ -0,0 +1,91 @@
+--- devmem2.c	2004-08-05 01:55:25.000000000 +0200
++++ devmem2_modif.c	2011-01-13 15:48:37.798799784 +0100
+@@ -45,12 +45,16 @@
+ #define MAP_SIZE 4096UL
+ #define MAP_MASK (MAP_SIZE - 1)
+ 
++static inline void *fixup_addr(void *addr, size_t size);
++
+ int main(int argc, char **argv) {
+     int fd;
+     void *map_base, *virt_addr; 
+-	unsigned long read_result, writeval;
++	unsigned long read_result, write_val;
+ 	off_t target;
+ 	int access_type = 'w';
++	char fmt_str[128];
++	size_t data_size;
+ 	
+ 	if(argc < 2) {
+ 		fprintf(stderr, "\nUsage:\t%s { address } [ type [ data ] ]\n"
+@@ -79,38 +83,51 @@
+     virt_addr = map_base + (target & MAP_MASK);
+     switch(access_type) {
+ 		case 'b':
++			data_size = sizeof(unsigned char);
++			virt_addr = fixup_addr(virt_addr, data_size);
+ 			read_result = *((unsigned char *) virt_addr);
+ 			break;
+ 		case 'h':
++			data_size = sizeof(unsigned short);
++			virt_addr = fixup_addr(virt_addr, data_size);
+ 			read_result = *((unsigned short *) virt_addr);
+ 			break;
+ 		case 'w':
++			data_size = sizeof(unsigned long);
++			virt_addr = fixup_addr(virt_addr, data_size);
+ 			read_result = *((unsigned long *) virt_addr);
+ 			break;
+ 		default:
+ 			fprintf(stderr, "Illegal data type '%c'.\n", access_type);
+ 			exit(2);
+ 	}
+-    printf("Value at address 0x%X (%p): 0x%X\n", target, virt_addr, read_result); 
++	sprintf(fmt_str, "Read at address  0x%%08lX (%%p): 0x%%0%dlX\n", 2*data_size);
++    printf(fmt_str, (unsigned long)target, virt_addr, read_result);
+     fflush(stdout);
+ 
+ 	if(argc > 3) {
+-		writeval = strtoul(argv[3], 0, 0);
++		write_val = strtoul(argv[3], 0, 0);
+ 		switch(access_type) {
+ 			case 'b':
+-				*((unsigned char *) virt_addr) = writeval;
++				virt_addr = fixup_addr(virt_addr, sizeof(unsigned char));
++				*((unsigned char *) virt_addr) = write_val;
+ 				read_result = *((unsigned char *) virt_addr);
+ 				break;
+ 			case 'h':
+-				*((unsigned short *) virt_addr) = writeval;
++				virt_addr = fixup_addr(virt_addr, sizeof(unsigned short));
++				*((unsigned short *) virt_addr) = write_val;
+ 				read_result = *((unsigned short *) virt_addr);
+ 				break;
+ 			case 'w':
+-				*((unsigned long *) virt_addr) = writeval;
++				virt_addr = fixup_addr(virt_addr, sizeof(unsigned long));
++				*((unsigned long *) virt_addr) = write_val;
+ 				read_result = *((unsigned long *) virt_addr);
+ 				break;
+ 		}
+-		printf("Written 0x%X; readback 0x%X\n", writeval, read_result); 
++		sprintf(fmt_str, "Write at address 0x%%08lX (%%p): 0x%%0%dlX, "
++			"readback 0x%%0%dlX\n",	2*data_size, 2*data_size);
++		printf(fmt_str, (unsigned long)target, virt_addr,
++			write_val, read_result);
+ 		fflush(stdout);
+ 	}
+ 	
+@@ -119,3 +136,12 @@
+     return 0;
+ }
+ 
++static inline void *fixup_addr(void *addr, size_t size)
++{
++#ifdef FORCE_STRICT_ALIGNMENT
++	unsigned long aligned_addr = (unsigned long)addr;
++	aligned_addr &= ~(size - 1);
++	addr = (void *)aligned_addr;
++#endif
++	return addr;
++}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util-native_0.9.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util-native_0.9.bb
new file mode 100644
index 0000000..7a7a662
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util-native_0.9.bb
@@ -0,0 +1,16 @@
+require dfu-util_${PV}.bb
+
+inherit native deploy
+
+DEPENDS = "libusb1-native"
+
+SRC_URI += "file://0001-Revert-Makefile.am-Drop-static-dfu-util.patch"
+
+do_deploy[sstate-outputdirs] = "${DEPLOY_DIR_TOOLS}"
+do_deploy() {
+    install -d ${DEPLOY_DIR_TOOLS}
+    install -m 0755 src/dfu-util_static ${DEPLOY_DIR_TOOLS}/dfu-util-${PV}
+    rm -f ${DEPLOY_DIR_TOOLS}/dfu-util
+    ln -sf ./dfu-util-${PV} ${DEPLOY_DIR_TOOLS}/dfu-util
+}
+addtask deploy before do_package after do_install
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util/0001-Revert-Makefile.am-Drop-static-dfu-util.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util/0001-Revert-Makefile.am-Drop-static-dfu-util.patch
new file mode 100644
index 0000000..1c6ad08
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util/0001-Revert-Makefile.am-Drop-static-dfu-util.patch
@@ -0,0 +1,68 @@
+From c2aab3b9ae1febcb6b4c6561a59df1930a57b394 Mon Sep 17 00:00:00 2001
+From: Martin JaMa Jansa <Martin.Jansa@gmail.com>
+Date: Thu, 11 Aug 2011 11:19:52 +0200
+Subject: [PATCH] Revert "Makefile.am: Drop static dfu-util"
+
+This reverts commit fe0426ddc04f503d148c5e5f931f16b8f674f071.
+
+Signed-off-by: Martin JaMa Jansa <Martin.Jansa@gmail.com>
+---
+ configure.ac    |  2 +-
+ src/Makefile.am | 22 +++++++++++++++++++++-
+ 2 files changed, 22 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index f5a43b8..6a3757e 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -21,7 +21,7 @@ AS_IF([test x$native_libusb = xno], [
+         AC_MSG_ERROR([*** Required libusb-1.0 >= 1.0.0 not installed ***]))
+ ])
+ 
+-LIBS="$LIBS $USB_LIBS"
++LIBS="$LIBS $USB_LIBS -lpthread"
+ CFLAGS="$CFLAGS $USB_CFLAGS"
+ 
+ # Checks for header files.
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 70179c4..e8736ee 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -1,6 +1,6 @@
+ AM_CFLAGS = -Wall -Wextra
+ 
+-bin_PROGRAMS = dfu-util dfu-suffix dfu-prefix
++bin_PROGRAMS = dfu-util dfu-util_static dfu-suffix dfu-prefix
+ dfu_util_SOURCES = main.c \
+ 		portable.h \
+ 		dfu_load.c \
+@@ -19,6 +19,26 @@ dfu_util_SOURCES = main.c \
+ 		quirks.c \
+ 		quirks.h
+ 
++dfu_util_static_SOURCES = main.c \
++		portable.h \
++		dfu_load.c \
++		dfu_load.h \
++		dfu_util.c \
++		dfu_util.h \
++		dfuse.c \
++		dfuse.h \
++		dfuse_mem.c \
++		dfuse_mem.h \
++		dfu.c \
++		dfu.h \
++		usb_dfu.h \
++		dfu_file.c \
++		dfu_file.h \
++		quirks.c \
++		quirks.h
++
++dfu_util_static_LDFLAGS = -static
++
+ dfu_suffix_SOURCES = suffix.c \
+ 		dfu_file.h \
+ 		dfu_file.c
+-- 
+2.7.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util_0.9.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util_0.9.bb
new file mode 100644
index 0000000..01bca22
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util_0.9.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "USB Device Firmware Upgrade utility"
+SECTION = "devel"
+AUTHOR = "Harald Welte <laforge@openmoko.org>"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+SRC_URI = "http://dfu-util.gnumonks.org/releases/${BP}.tar.gz"
+
+inherit autotools pkgconfig
+
+DEPENDS = "libusb1"
+
+SRC_URI[md5sum] = "233bb1e08ef4b405062445d84e28fde6"
+SRC_URI[sha256sum] = "36428c6a6cb3088cad5a3592933385253da5f29f2effa61518ee5991ea38f833"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/digitemp/digitemp/makefile-fix.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/digitemp/digitemp/makefile-fix.patch
new file mode 100644
index 0000000..c0d552d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/digitemp/digitemp/makefile-fix.patch
@@ -0,0 +1,20 @@
+digitemp: allow override of CC and CFLAGS vars
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
+
+--- a/Makefile	2008-08-28 21:37:00.000000000 +0000
++++ b/Makefile	2011-11-24 22:22:39.882511272 +0000
+@@ -11,8 +11,9 @@
+ 
+ VERSION = 3.6.0
+ 
+-CC	= gcc
+-CFLAGS	= -I./src -I./userial -O2 -Wall # -g
++CC	?= gcc
++CFLAGS	?=  -O2 -Wall # -g
++CFLAGS += -I./src -I./userial
+ 
+ OBJS		=	src/digitemp.o src/device_name.o src/ds2438.o
+ HDRS		= 	src/digitemp.h src/device_name.h
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/digitemp/digitemp_3.6.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/digitemp/digitemp_3.6.0.bb
new file mode 100644
index 0000000..2582820
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/digitemp/digitemp_3.6.0.bb
@@ -0,0 +1,27 @@
+SUMMARY = "read temperature sensors in a 1-Wire net"
+SECTION = "util"
+DEPENDS = "libusb1"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=44fee82a1d2ed0676cf35478283e0aa0"
+
+PR = "r2"
+
+SRC_URI = "http://www.digitemp.com/software/linux/digitemp-${PV}.tar.gz \
+           file://makefile-fix.patch"
+SRC_URI[md5sum] = "9be2e48db37920f21925ae6e88f83b84"
+SRC_URI[sha256sum] = "14cfc584cd3714fe8c9a2cdc8388be49e08b5e395d95e6bcd11d4410e2505ca2"
+
+EXTRA_OEMAKE = "ds9097 ds9097u \
+                SYSTYPE='Linux' \
+"
+# Fix GNU_HASH QA errors
+TARGET_CC_ARCH += "${CFLAGS} ${LDFLAGS}"
+
+do_configure() {
+    rm -f digitemp_*
+}
+
+do_install() {
+    install -d ${D}${sbindir}
+    install digitemp_* ${D}${sbindir}
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/dstat/dstat_0.7.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/dstat/dstat_0.7.2.bb
new file mode 100644
index 0000000..63f1812
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/dstat/dstat_0.7.2.bb
@@ -0,0 +1,23 @@
+SUMMARY = "versatile resource statics tool"
+DESCRIPTION = "Dstat is a versatile replacement for vmstat, iostat, netstat and ifstat. \
+Dstat overcomes some of their limitations and adds some extra features, more counters \
+and flexibility. Dstat is handy for monitoring systems during performance tuning tests, \
+benchmarks or troubleshooting."
+HOMEPAGE = "http://dag.wiee.rs/home-made/dstat"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+SRC_URI = "git://github.com/dagwieers/dstat.git"
+SRC_URI[md5sum] = "798e050e2e024f08a272dd4b0e1eba41"
+SRC_URI[sha256sum] = "96d1e6ea2434e477fa97322d92778f68458d7e57bc55bc4f72e29467a52cffd1"
+
+SRCREV = "5251397eb8d3b284a90bfdfaec0c8e1210146e3f"
+
+S = "${WORKDIR}/git"
+
+do_compile_prepend() {
+    #undo the step "make docs"
+    sed -i -e 's/$(MAKE) -C docs docs/# $(MAKE) -C docs docs/;' ${S}/Makefile
+}
+do_install() {
+    oe_runmake 'DESTDIR=${D}' install
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/edac-utils/edac-utils_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/edac-utils/edac-utils_git.bb
new file mode 100644
index 0000000..c0ad665
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/edac-utils/edac-utils_git.bb
@@ -0,0 +1,34 @@
+SUMMARY = "Userspace helper for Linux kernel EDAC drivers"
+HOMEPAGE = "https://github.com/grondo/edac-utils"
+SECTION = "Applications/System"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+DEPENDS = " sysfsutils"
+
+SRCREV = "f9aa96205f610de39a79ff43c7478b7ef02e3138"
+PV = "0.18+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+SRC_URI = "git://github.com/grondo/edac-utils \
+    file://make-init-script-be-able-to-automatically-load-EDAC-.patch \
+    file://add-restart-to-initscript.patch \
+"
+
+inherit autotools-brokensep
+
+do_configure_prepend () {
+    touch ${S}/ChangeLog
+    ${S}/bootstrap
+}
+
+RDEPENDS_${PN}_x86 = "dmidecode"
+RDEPENDS_${PN}_x86-64 = "dmidecode"
+RDEPENDS_${PN}_arm = "dmidecode"
+RDEPENDS_${PN}_aarch64 = "dmidecode"
+RDEPENDS_${PN}_powerpc = "dmidecode"
+RDEPENDS_${PN}_powerpc64 = "dmidecode"
+RDEPENDS_${PN}_append = " \
+    perl-module-file-basename perl-module-file-find perl-module-getopt-long perl-module-posix \
+"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/edac-utils/files/add-restart-to-initscript.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/edac-utils/files/add-restart-to-initscript.patch
new file mode 100644
index 0000000..87051da
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/edac-utils/files/add-restart-to-initscript.patch
@@ -0,0 +1,33 @@
+From 3ade837f64de0cfe2aed5bc52f7919760f350531 Mon Sep 17 00:00:00 2001
+From: Wenzong Fan <wenzong.fan@windriver.com>
+Date: Fri, 7 Mar 2014 00:57:12 -0500
+Subject: [PATCH] edac: add restart to initscript
+
+Upstream-Status: Pending
+
+Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
+---
+ src/etc/edac.init.in |    6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/src/etc/edac.init.in b/src/etc/edac.init.in
+index adf76ee..007a519 100644
+--- a/src/etc/edac.init.in
++++ b/src/etc/edac.init.in
+@@ -155,8 +155,12 @@ case "$1" in
+   status)
+     service_status
+     ;;
++  restart)
++    service_stop
++    service_start
++    ;;
+   *)
+-    COMMANDS="start|stop|status"
++    COMMANDS="start|stop|status|restart"
+     echo "Usage: $0 {${COMMANDS}}"
+     exit 2
+     ;;
+-- 
+1.7.9.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/edac-utils/files/make-init-script-be-able-to-automatically-load-EDAC-.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/edac-utils/files/make-init-script-be-able-to-automatically-load-EDAC-.patch
new file mode 100644
index 0000000..fddc25f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/edac-utils/files/make-init-script-be-able-to-automatically-load-EDAC-.patch
@@ -0,0 +1,98 @@
+make init script be able to automatically load EDAC module.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Roy.Li <rongqing.li@windriver.com>
+---
+ src/etc/edac.init.in |   49 +++++++++++++++++++++++++++++++++++++++++++++++--
+ 1 file changed, 47 insertions(+), 2 deletions(-)
+
+diff --git a/src/etc/edac.init.in b/src/etc/edac.init.in
+index 7a51da9..5b568c4 100644
+--- a/src/etc/edac.init.in
++++ b/src/etc/edac.init.in
+@@ -42,7 +42,6 @@ for dir in "$sysconfdir/default" "$sysconfdir/sysconfig"; do
+   [ -f "$dir/$SERVICE" ] && . "$dir/$SERVICE"
+ done
+ 
+-
+ ###############################################################################
+ 
+ service_start ()
+@@ -52,6 +51,46 @@ service_start ()
+ # Assume that if EDAC_DRIVER is not set, then EDAC is configured
+ #  automatically, thus return successfully, but don't do anything.
+ #
++    if [ ! -f /etc/edac/edac-driver ]; then
++         [ -d /sys/bus/edac/devices/mc/mc0 ] && \
++         echo `lsmod | grep _edac | cut -d" " -f1` > /etc/edac/edac-driver
++    fi
++
++    [ -f /etc/edac/edac-driver ] && EDAC_DRIVER=`cat /etc/edac/edac-driver`
++
++    if [ -z "$EDAC_DRIVER" ]; then
++
++        DRIVER_PATH=/lib/modules/`uname -r`/kernel/drivers/edac
++        oldpath=`pwd`
++        if [ -d $DRIVER_PATH ]; then
++
++            cd $DRIVER_PATH
++
++            for i in $(/bin/ls | /usr/bin/cut -d. -f1) ; do
++                /sbin/modprobe $i 2>/dev/null
++                if [ -d /sys/bus/edac/devices/mc/mc0 ]; then
++                    echo $i> /etc/edac/edac-driver
++                    EDAC_DRIVER=$i
++                    break
++                fi
++                /sbin/modprobe -r $i 2>/dev/null
++            done
++
++            cd "$oldpath"
++
++
++            if [ -z "$EDAC_DRIVER" ]; then
++                echo "This board may not support EDAC, or EDAC module may not be compiled in"
++                exit
++            fi
++
++        else
++            echo "This board may not support EDAC, or EDAC module may not be compiled in"
++            exit
++        fi
++
++    fi
++
+   if [ -n "$EDAC_DRIVER" ]; then
+      echo -n "Starting ${SERVICE}: "
+      modprobe $EDAC_DRIVER
+@@ -76,12 +115,15 @@ service_start ()
+ service_stop ()
+ {
+   echo -n "Disabling ${SERVICE}: "
++
++  [ -f /etc/edac/edac-driver ] && EDAC_DRIVER=`cat /etc/edac/edac-driver`
++
+   if [ -n "$EDAC_DRIVER" ]; then
+     modprobe -r $EDAC_DRIVER
+     STATUS=$?
+     [ $STATUS -eq 0 ] && echo success || echo failure
+   else
+-    echo "Not supported for this configuration."
++    echo "Not supported for this configuration, or EDAC Module is not loaded."
+     STATUS=6
+   fi
+ }
+@@ -92,6 +134,9 @@ service_status ()
+ {
+ # Print the current status of the service.  Required by LSB.
+ #
++  [ -f /etc/edac/edac-driver ] && EDAC_DRIVER=`cat /etc/edac/edac-driver`
++  [ -z "$EDAC_DRIVER" ] && STATUS=1 && exit
++
+   edac-ctl --status
+   STATUS=0
+ }
+-- 
+1.7.10.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/eject/eject/eject-2.1.1-verbose.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/eject/eject/eject-2.1.1-verbose.patch
new file mode 100644
index 0000000..7403606
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/eject/eject/eject-2.1.1-verbose.patch
@@ -0,0 +1,19 @@
+Kept to help with debugging
+
+Upstream-Status: Pending
+
+Signed-off-by: Morgan Little <morgan.little@windriver.com>
+
+--- eject-2.1.1/eject.c.tn	2005-08-24 11:27:42.000000000 +0200
++++ eject-2.1.1/eject.c	2005-08-24 11:33:05.000000000 +0200
+@@ -638,7 +638,9 @@
+ 	unsigned char sense_buffer[32];
+ 
+ 	if ((ioctl(fd, SG_GET_VERSION_NUM, &k) < 0) || (k < 30000)) {
+-	  printf("not an sg device, or old sg driver\n");
++	  if (v_option) {
++		  printf(_("not an sg device, or old sg driver\n"));
++	  }
+ 	  return 0;
+ 	}
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/eject/eject/eject-2.1.5-error-return.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/eject/eject/eject-2.1.5-error-return.patch
new file mode 100644
index 0000000..5e13036
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/eject/eject/eject-2.1.5-error-return.patch
@@ -0,0 +1,12 @@
+Upstream-Status: Inappropriate [the upstream is no longer active]
+
+--- eject/eject.c.orig	2013-09-11 18:08:36.000000000 +0800
++++ eject/eject.c	2013-09-11 18:09:05.000000000 +0800
+@@ -207,7 +207,6 @@
+ "If omitted, name defaults to `%s'.\n"
+ "By default tries -r, -s, -f, and -q in order until success.\n"),
+ 			DEFAULTDEVICE);
+-  exit(1);
+ }
+ 
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/eject/eject/eject-2.1.5-spaces.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/eject/eject/eject-2.1.5-spaces.patch
new file mode 100644
index 0000000..a16c4b1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/eject/eject/eject-2.1.5-spaces.patch
@@ -0,0 +1,66 @@
+Kept to help with spaces in the mount path
+
+Upstream-Status: Backport
+
+Linux mangles spaces in mount points by changing them to an octal string
+of '\040'.  So lets scan the mount point and fix it up by replacing all
+occurrences off '\0##' with the ASCII value of 0##.  Requires a writable
+string as input as we mangle in place.  Some of this was taken from the
+util-linux package.
+
+Signed-off-by: Morgan Little <morgan.little@windriver.com>
+--- eject/eject.c.ori   2007-06-24 00:08:44 -0700
++++ eject/eject.c       2007-06-24 00:12:44 -0700
+@@ -370,6 +370,30 @@
+ 
+ 
+ /*
++ * Linux mangles spaces in mount points by changing them to an octal string
++ * of '\040'.  So lets scan the mount point and fix it up by replacing all
++ * occurrences off '\0##' with the ASCII value of 0##.  Requires a writable
++ * string as input as we mangle in place.  Some of this was taken from the
++ * util-linux package.
++ */
++#define octalify(a) ((a) & 7)
++#define tooctal(s) (64*octalify(s[1]) + 8*octalify(s[2]) + octalify(s[3]))
++#define isoctal(a) (((a) & ~7) == '0')
++static char *DeMangleMount(char *s)
++{
++	char *tmp = s;
++	while ((tmp = strchr(tmp, '\\')) != NULL) {
++		if (isoctal(tmp[1]) && isoctal(tmp[2]) && isoctal(tmp[3])) {
++			tmp[0] = tooctal(tmp);
++			memmove(tmp+1, tmp+4, strlen(tmp)-3);
++		}
++		++tmp;
++	}
++	return s;
++}
++
++
++/*
+  * Given name, such as foo, see if any of the following exist:
+  *
+  * foo (if foo starts with '.' or '/')
+@@ -884,8 +908,8 @@
+ 			if (((strcmp(s1, name) == 0) || (strcmp(s2, name) == 0)) ||
+ 				((maj != -1) && (maj == mtabmaj) && (min == mtabmin))) {
+ 				FCLOSE(fp);
+-				*deviceName = strdup(s1);
+-				*mountName = strdup(s2);
++				*deviceName = DeMangleMount(strdup(s1));
++				*mountName = DeMangleMount(strdup(s2));
+ 				return 1;
+ 			}
+ 		}
+@@ -928,8 +952,8 @@
+ 		rc = sscanf(line, "%1023s %1023s", s1, s2);
+ 		if (rc >= 2 && s1[0] != '#' && strcmp(s2, name) == 0) {
+ 			FCLOSE(fp);
+-			*deviceName = strdup(s1);
+-			*mountName = strdup(s2);
++			*deviceName = DeMangleMount(strdup(s1));
++			*mountName = DeMangleMount(strdup(s2));
+ 			return 1;
+ 		}
+ 	}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/eject/eject/eject-timeout.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/eject/eject/eject-timeout.patch
new file mode 100644
index 0000000..de8146f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/eject/eject/eject-timeout.patch
@@ -0,0 +1,17 @@
+allow a longer timeout
+
+Upstream-Status: Backport 
+
+Signed-off-by: Morgan Little <morgan.little@windriver.com>
+
+--- eject/eject.c.orig	2006-08-07 16:35:15.000000000 +0200
++++ eject/eject.c	2006-08-07 16:35:54.000000000 +0200
+@@ -723,7 +723,7 @@
+ 	io_hdr.dxfer_len = 0;
+ 	io_hdr.dxferp = inqBuff;
+ 	io_hdr.sbp = sense_buffer;
+-	io_hdr.timeout = 2000;
++	io_hdr.timeout = 10000;
+ 
+ 	io_hdr.cmdp = allowRmBlk;
+ 	status = ioctl(fd, SG_IO, (void *)&io_hdr);
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/eject/eject_2.1.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/eject/eject_2.1.5.bb
new file mode 100644
index 0000000..0440f0c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/eject/eject_2.1.5.bb
@@ -0,0 +1,35 @@
+DESCRIPTION = "Eject allows removable media (typically a CD-ROM, floppy disk, tape, or JAZ or ZIP disk) to be ejected under software control."
+HOMEPAGE = "http://eject.sourceforge.net/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
+
+inherit autotools gettext update-alternatives
+
+SRC_URI = "http://sources.openembedded.org/${BP}.tar.gz \
+           file://eject-2.1.5-error-return.patch \
+           file://eject-2.1.1-verbose.patch \
+           file://eject-2.1.5-spaces.patch \
+           file://eject-timeout.patch \
+"
+
+SRC_URI[md5sum] = "b96a6d4263122f1711db12701d79f738"
+SRC_URI[sha256sum] = "ef9f7906484cfde4ba223b2682a37058f9a3c7d3bb1adda7a34a67402e2ffe55"
+
+S = "${WORKDIR}/${BPN}"
+
+PR = "r1"
+
+do_compile_prepend() {
+    # PO subdir must be in build directory
+    if [ ! ${S} = ${B} ]; then
+        mkdir -p ${B}/po
+        cp -r ${S}/po/* ${B}/po/
+    fi
+}
+
+ALTERNATIVE_${PN} = "volname eject"
+ALTERNATIVE_LINK_NAME[volname] = "${bindir}/volname"
+ALTERNATIVE_LINK_NAME[eject] = "${bindir}/eject"
+ALTERNATIVE_PRIORITY[volname] = "100"
+ALTERNATIVE_PRIORITY[eject] = "100"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs-23.4/nostdlib-unwind.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs-23.4/nostdlib-unwind.patch
new file mode 100644
index 0000000..4200301
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs-23.4/nostdlib-unwind.patch
@@ -0,0 +1,16 @@
+Fix linking problem:
+undefined reference to `__aeabi_unwind_cpp_pr0'
+undefined reference to `__aeabi_unwind_cpp_pr1'
+Index: emacs/src/Makefile.in
+===================================================================
+--- emacs.orig/src/Makefile.in	2008-08-16 14:20:18.000000000 +0000
++++ emacs/src/Makefile.in	2008-08-16 14:51:25.000000000 +0000
+@@ -443,7 +443,7 @@
+    ask GCC explicitly where to find libgcc.a.  */
+ 
+ #ifndef LINKER
+-#define LINKER $(CC) -nostdlib
++#define LINKER $(CC) -nostdlib -lgcc_s
+ #endif
+ 
+ #ifndef LIB_GCC
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs-23.4/use-qemu.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs-23.4/use-qemu.patch
new file mode 100644
index 0000000..c15207a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs-23.4/use-qemu.patch
@@ -0,0 +1,104 @@
+Upstream-Status: Inappropriate [embedded specific]
+
+diff -uNr emacs-23.4/Makefile.in emacs-23.4.new/Makefile.in
+--- emacs-23.4/Makefile.in	2012-01-11 13:35:01.000000000 +0100
++++ emacs-23.4.new/Makefile.in	2012-07-31 00:54:07.223590866 +0200
+@@ -336,7 +336,7 @@
+ # all preloaded elisp files, and only then dump the actual src/emacs, which
+ # is not wrong, but is overkill in 99.99% of the cases.
+ src: Makefile FRC
+-	boot=bootstrap-emacs$(EXEEXT);                         \
++	boot=${QEMU} bootstrap-emacs$(EXEEXT);                         \
+ 	if [ ! -x "src/$$boot" ]; then                                     \
+ 	    cd $@; $(MAKE) all $(MFLAGS)                                   \
+ 	      CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}'         \
+diff -uNr emacs-23.4/leim/Makefile.in emacs-23.4.new/leim/Makefile.in
+--- emacs-23.4/leim/Makefile.in	2012-01-11 13:35:01.000000000 +0100
++++ emacs-23.4.new/leim/Makefile.in	2012-07-31 00:54:07.179590866 +0200
+@@ -51,7 +51,7 @@
+ 
+ # How to run Emacs.
+ RUN-EMACS = EMACSLOADPATH=$(buildlisppath) LC_ALL=C \
+-	${BUILT-EMACS} -batch --no-init-file --no-site-file --multibyte
++	${QEMU} ${BUILT-EMACS} -batch --no-init-file --no-site-file --multibyte
+ 
+ # Subdirectories to be made if ${srcdir} is different from the current
+ # directory.
+diff -uNr emacs-23.4/lib-src/Makefile.in emacs-23.4.new/lib-src/Makefile.in
+--- emacs-23.4/lib-src/Makefile.in	2012-01-11 13:35:01.000000000 +0100
++++ emacs-23.4.new/lib-src/Makefile.in	2012-07-31 00:54:07.180590866 +0200
+@@ -23,7 +23,7 @@
+ SHELL = /bin/sh
+ 
+ # Following ../lisp/Makefile.in.
+-EMACS = ../src/emacs
++EMACS = ${QEMU} ../src/emacs
+ EMACSOPT = -batch --no-site-file --multibyte
+ 
+ # ==================== Things `configure' will edit ====================
+@@ -372,7 +372,7 @@
+    clobbered too.  */
+ test-distrib${EXEEXT}: ${srcdir}/test-distrib.c
+ 	$(CC) ${ALL_CFLAGS} -o test-distrib ${srcdir}/test-distrib.c
+-	./test-distrib ${srcdir}/testfile
++	${QEMU} ./test-distrib ${srcdir}/testfile
+ 
+ /* We need the following in order to create a <getopt.h> when the system
+    does not have one that works with the given compiler.  */
+diff -uNr emacs-23.4/lisp/Makefile.in emacs-23.4.new/lisp/Makefile.in
+--- emacs-23.4/lisp/Makefile.in	2012-01-11 13:35:01.000000000 +0100
++++ emacs-23.4.new/lisp/Makefile.in	2012-07-31 00:54:07.195590866 +0200
+@@ -26,8 +26,7 @@
+ # You can specify a different executable on the make command line,
+ # e.g. "make EMACS=../src/emacs ...".
+ 
+-EMACS = ../src/emacs
+-
++EMACS = "${QEMU} ../src/emacs"
+ # Command line flags for Emacs.  This must include --multibyte,
+ # otherwise some files will not compile.
+ 
+diff -uNr emacs-23.4/src/Makefile.in emacs-23.4.new/src/Makefile.in
+--- emacs-23.4/src/Makefile.in	2012-01-12 11:27:54.000000000 +0100
++++ emacs-23.4.new/src/Makefile.in	2012-07-31 00:55:30.344593847 +0200
+@@ -482,7 +482,7 @@
+    this with the shell''s ``for'' construct.
+    Note that some people do not have '.'  in their paths, so we must
+    use ./prefix-args.  */
+-#define YMF_PASS_LDFLAGS(flags) `./prefix-args -Xlinker flags`
++#define YMF_PASS_LDFLAGS(flags) `${QEMU} ./prefix-args -Xlinker flags`
+ #else
+ #define YMF_PASS_LDFLAGS(flags) flags
+ #endif
+@@ -919,9 +919,9 @@
+    $(GNULIB_VAR) LIB_MATH LIB_STANDARD $(GNULIB_VAR)
+ 
+ #ifdef HAVE_SHM
+-RUN_TEMACS = `/bin/pwd`/temacs -nl
++RUN_TEMACS = ${QEMU} temacs -nl
+ #else
+-RUN_TEMACS = `/bin/pwd`/temacs
++RUN_TEMACS = ${QEMU} temacs
+ #endif
+ 
+ all: emacs${EXEEXT} $(OTHER_FILES)
+@@ -936,7 +936,7 @@
+ 	@: This new Emacs is as functional and more efficient then
+ 	@: bootstrap-emacs, so let us replace it.
+ 	-ln -f emacs${EXEEXT} bootstrap-emacs${EXEEXT}
+-	-./emacs -q -batch -f list-load-path-shadows
++	-${QEMU} ./emacs -q -batch -f list-load-path-shadows
+ #endif /* ! defined (CANNOT_DUMP) */
+ 
+ /* We run make-docfile twice because the command line may get too long
+@@ -954,8 +954,8 @@
+    only in order to reduce the command line length.  --Stef  */
+ ${etc}DOC: ${libsrc}make-docfile${EXEEXT} ${obj} ${lisp} ${SOME_MACHINE_LISP}
+ 	-rm -f ${etc}DOC
+-	${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC
+-	${libsrc}make-docfile -a ${etc}DOC -d ${srcdir} ${SOME_MACHINE_LISP} ${shortlisp}
++	${QEMU}${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC
++	${QEMU} ${libsrc}make-docfile -a ${etc}DOC -d ${srcdir} ${SOME_MACHINE_LISP} ${shortlisp}
+ 
+ ${libsrc}make-docfile${EXEEXT}:
+ 	cd ${libsrc}; ${MAKE} ${MFLAGS} make-docfile${EXEEXT}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs.inc b/import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs.inc
new file mode 100644
index 0000000..ffb5c50
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs.inc
@@ -0,0 +1,147 @@
+DESCRIPTION = "Emacs"
+HOMEPAGE = "http://www.gnu.org/software/emacs/"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+SECTION = "editor"
+# and it needs to run some generated binaries..
+DEPENDS += "qemu-native"
+
+DEPENDS +=" liblockfile"
+
+X11DEPENDS = " \
+    libice libsm atk cairo dbus expat libffi fontconfig freetype gconf giflib \
+    jpeg xz pixman libpng librsvg tiff libcroco \
+    libx11 libxau libxcomposite libxcursor libxdamage libxdmcp libxext libxfixes \
+    libxft libxpm libxrandr libxrender \
+    gdk-pixbuf glib-2.0 gtk+ pango libxcb harfbuzz icu \
+" 
+
+EXTRA_OECONF =  "--without-sound --with-crt-dir=${STAGING_LIBDIR} "
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}"
+PACKAGECONFIG[x11] = "--with-x-toolkit=gtk,--without-x --without-dbus,${X11DEPENDS}"
+
+
+inherit autotools
+
+PACKAGES =+ "${PN}-el"
+
+FILES_${PN}-el = "${datadir}/emacs/*/*/*.el.gz \
+                  ${datadir}/emacs/*/*/*/*.el.gz"
+
+FILES_${PN} += "${datadir}/emacs ${datadir}/icons"
+
+FILES_${PN}-dbg += "${libexecdir}/emacs/*/*/.debug ${datadir}/emacs/*/*/.debug"
+
+TREEDIR = "${WORKDIR}/qemu-treedir"
+
+QEMUARCH= "${TARGET_ARCH}"
+QEMUARCH_x86 = "i386"
+
+# Large stack is required at least on x86_64 host, otherwise random segfaults appear:
+QEMU = "qemu-${QEMUARCH} ${QEMU_OPTIONS} -s 1048576 -L ${TREEDIR} "
+
+export LOGNAME = "$(whoami)"
+
+do_compile_prepend() {
+    sed -i ':1;s:\(START.* \|LIB_STANDARD.* \|LIBES.* \)/usr/lib:\1${STAGING_LIBDIR}:;t1' ${S}/src/s/gnu-linux.h `find "${S}" -name Makefile`
+    export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${TOOLCHAIN_PATH}/${TARGET_SYS}/lib"
+# Ugly hack, see files/use-qemu.patch for more:
+    ln -sf ../src/emacs lisp/emacs
+    ln -sf ../src/emacs lib-src/emacs
+    ln -sf ../src/emacs leim/emacs
+#copy STAGING_DIR_TARGET and libgcc_s.so* to WORKDIR/qemu-treedir #copied code from glibc-package.bbclass
+    treedir=${TREEDIR}
+    if [ -e $treedir ];then
+        rm -rf $treedir
+    fi
+    
+    mkdir -p $treedir/${base_libdir}
+
+    if [ -f ${TOOLCHAIN_PATH}/${TARGET_SYS}/${base_libdir}/libgcc_s.so ]; then
+        cp -pPR ${TOOLCHAIN_PATH}/${TARGET_SYS}/${base_libdir}/libgcc_s.so $treedir/${base_libdir}
+    fi
+    if [ -f ${TOOLCHAIN_PATH}/${TARGET_SYS}/${base_libdir}/libgcc_s.so.* ]; then
+        cp -pPR ${TOOLCHAIN_PATH}/${TARGET_SYS}/${base_libdir}/libgcc_s.so.* $treedir/${base_libdir}
+    fi
+    # stupid hack, but without it, it tries to use /usr/lib/libc.so from host and fails
+    # temacs: error while loading shared libraries: /usr/lib/libc.so: ELF file version does not match current one
+    if [ ! -f $treedir/${base_libdir}/libc.so ]; then
+        ln -s libc.so.6 $treedir/${base_libdir}/libc.so
+    fi
+
+    # copy only as much stuff as we need
+    # before: 5.5G   ../../qemu-treedir/
+    # after:   17M   ../../qemu-treedir/
+    cp -pPR \
+    ${STAGING_DIR_TARGET}/${base_libdir}/ld-* \
+    ${STAGING_DIR_TARGET}/${base_libdir}/libc.* \
+    ${STAGING_DIR_TARGET}/${base_libdir}/libc-* \
+    ${STAGING_DIR_TARGET}/${base_libdir}/libm-* \
+    ${STAGING_DIR_TARGET}/${base_libdir}/libm.* \
+    ${STAGING_DIR_TARGET}/${base_libdir}/libtinfo.so.* \
+    ${STAGING_DIR_TARGET}/${base_libdir}/libresolv* \
+    ${STAGING_DIR_TARGET}/${base_libdir}/libdl* \
+    ${STAGING_DIR_TARGET}/${base_libdir}/librt* \
+    ${STAGING_DIR_TARGET}/${base_libdir}/libgcc_s.so.* \
+    ${STAGING_DIR_TARGET}/${base_libdir}/libpthread* $treedir/${base_libdir}/
+
+    if [ ! -z "${@bb.utils.contains('PACKAGECONFIG', 'x11', 'x11', '', d)}" ] ; then
+        echo "X11 build enabled"
+        # copy only as much stuff as we need
+        # before: 5.5G   ../../qemu-treedir/
+        # after:   86M   ../../qemu-treedir/
+        cp -pPR \
+        ${STAGING_DIR_TARGET}/${base_libdir}/libuuid.so.* \
+        ${STAGING_DIR_TARGET}/${base_libdir}/libz.so.* \
+        ${STAGING_DIR_TARGET}/${libdir}/libICE.so.* \
+        ${STAGING_DIR_TARGET}/${libdir}/libSM.so.* \
+        ${STAGING_DIR_TARGET}/${libdir}/libatk-1.0.so.* \
+        ${STAGING_DIR_TARGET}/${libdir}/libcairo.so.* \
+        ${STAGING_DIR_TARGET}/${libdir}/libdbus-1.so.* \
+        ${STAGING_DIR_TARGET}/${libdir}/libdbus-glib-1.so.* \
+        ${STAGING_DIR_TARGET}/${libdir}/libexpat.so.* \
+        ${STAGING_DIR_TARGET}/${libdir}/libffi.so.* \
+        ${STAGING_DIR_TARGET}/${libdir}/libfontconfig.so.* \
+        ${STAGING_DIR_TARGET}/${libdir}/libfreetype.so.* \
+        ${STAGING_DIR_TARGET}/${libdir}/libgconf-2.so.* \
+        ${STAGING_DIR_TARGET}/${libdir}/libgif.so.* \
+        ${STAGING_DIR_TARGET}/${libdir}/libjpeg.so.* \
+        ${STAGING_DIR_TARGET}/${libdir}/liblzma.so.* \
+        ${STAGING_DIR_TARGET}/${libdir}/libpixman-1.so.* \
+        ${STAGING_DIR_TARGET}/${libdir}/libpng1*.so.* \
+        ${STAGING_DIR_TARGET}/${libdir}/librsvg-2.so.* \
+        ${STAGING_DIR_TARGET}/${libdir}/libstdc++.so.* \
+        ${STAGING_DIR_TARGET}/${libdir}/libtiff.so.* \
+        ${STAGING_DIR_TARGET}/${libdir}/libxml2.so.* \
+        ${STAGING_DIR_TARGET}/${libdir}/libcroco-0.6.so.* \
+        ${STAGING_DIR_TARGET}/${libdir}/libharfbuzz.so.* \
+        ${STAGING_DIR_TARGET}/${libdir}/libicule.so.* \
+        ${STAGING_DIR_TARGET}/${libdir}/libicuuc.so.* \
+        ${STAGING_DIR_TARGET}/${libdir}/libicudata.so.* $treedir/${base_libdir}/
+
+        # X11 Xau Xcomposite Xcursor Xdamage Xdmcp Xext Xfixes Xft Xpm Xrandr Xrender
+        cp -pPR ${STAGING_DIR_TARGET}/${libdir}/libX*.so.* $treedir/${base_libdir}/
+
+        # gdk-x11 gdk_pixbuf gio glib gmodule gobject gthread gtk-x11
+        cp -pPR ${STAGING_DIR_TARGET}/${libdir}/libg*-2.0.so.* $treedir/${base_libdir}/
+
+        # pango pangocairo pangoft2
+        cp -pPR ${STAGING_DIR_TARGET}/${libdir}/libpango*-1.0.so.* $treedir/${base_libdir}/
+
+        # xcb-render xcb-shm xcb
+        cp -pPR ${STAGING_DIR_TARGET}/${libdir}/libxcb*.so.* $treedir/${base_libdir}/
+    fi
+}
+
+do_install_append() {
+    # freaks package.bbclass and whole bitbake call returns error code
+    # ERROR: runstrip: ''arm-oe-linux-gnueabi-strip'  '/var/lib/jenkins/jobs/shr-core-branches/workspace/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/emacs-23.4-r0/package/usr/share/emacs/23.4/etc/tutorials/TUTORIAL.ko'' strip command failed
+    mv ${D}${datadir}/${BPN}/${PV}/etc/tutorials/TUTORIAL.ko ${D}${datadir}/${BPN}/${PV}/etc/tutorials/TUTORIAL.KO
+    # Info dir listing isn't interesting at this point so remove it if it exists.
+    if [ -e "${D}${infodir}/dir" ]; then
+        rm -f ${D}${infodir}/dir
+    fi
+}
+
+EXTRA_OEMAKE += 'QEMU="${QEMU}"'
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs_23.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs_23.4.bb
new file mode 100644
index 0000000..a324828
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/emacs/emacs_23.4.bb
@@ -0,0 +1,12 @@
+require emacs.inc
+
+PR = "r4"
+
+PNBLACKLIST[emacs] ?= "qemu: uncaught target signal 11 (Segmentation fault) - core dumped"
+
+SRC_URI = "${GNU_MIRROR}/emacs/emacs-${PV}.tar.gz;name=tarball \
+           file://use-qemu.patch \
+           file://nostdlib-unwind.patch \
+"
+SRC_URI[tarball.md5sum] = "34405165fcd978fbc8b304cbd99ccf4f"
+SRC_URI[tarball.sha256sum] = "b9a2b8434052771f797d2032772eba862ff9aa143029efc72295170607289c18"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/enca/enca/configure-hack.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/enca/enca/configure-hack.patch
new file mode 100644
index 0000000..85abcdc
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/enca/enca/configure-hack.patch
@@ -0,0 +1,12 @@
+--- enca-1.9/configure.ac.orig	2006-02-15 00:57:39.000000000 -0800
++++ enca-1.9/configure.ac	2006-02-15 00:57:46.000000000 -0800
+@@ -92,9 +92,6 @@
+ dnl And for gtk-doc
+ gtk_CHECK_GTK_DOC
+ 
+-dnl Check for good random number sources
+-AC_CHECK_FILES(/dev/random /dev/urandom /dev/srandom /dev/arandom)
+-
+ dnl Dirty path hack.  Helps some people with badly set up search paths.
+ if test "$prefix" = "NONE"; then
+   LDFLAGS="$LDFLAGS -L$ac_default_prefix/lib"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/enca/enca/configure-remove-dumbness.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/enca/enca/configure-remove-dumbness.patch
new file mode 100644
index 0000000..6f6f3e3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/enca/enca/configure-remove-dumbness.patch
@@ -0,0 +1,26 @@
+--- enca-1.9/configure.ac.orig	2006-06-29 15:30:44.000000000 +0100
++++ enca-1.9/configure.ac	2006-06-29 15:31:41.000000000 +0100
+@@ -92,14 +92,15 @@
+ dnl And for gtk-doc
+ gtk_CHECK_GTK_DOC
+ 
+-dnl Dirty path hack.  Helps some people with badly set up search paths.
+-if test "$prefix" = "NONE"; then
+-  LDFLAGS="$LDFLAGS -L$ac_default_prefix/lib"
+-  CPPFLAGS="$CPPFLAGS -I$ac_default_prefix/include"
+-else
+-  LDFLAGS="$LDFLAGS -L$prefix/lib"
+-  CPPFLAGS="$CPPFLAGS -I$prefix/include"
+-fi
++# This is really dumb code
++#dnl Dirty path hack.  Helps some people with badly set up search paths.
++#if test "$prefix" = "NONE"; then
++#  LDFLAGS="$LDFLAGS -L$ac_default_prefix/lib"
++#  CPPFLAGS="$CPPFLAGS -I$ac_default_prefix/include"
++#else
++#  LDFLAGS="$LDFLAGS -L$prefix/lib"
++#  CPPFLAGS="$CPPFLAGS -I$prefix/include"
++#fi
+ 
+ dnl Checks for libraries.
+ ye_CHECK_LIBM
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/enca/enca/dont-run-tests.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/enca/enca/dont-run-tests.patch
new file mode 100644
index 0000000..321d1e6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/enca/enca/dont-run-tests.patch
@@ -0,0 +1,13 @@
+Index: enca-1.9/Makefile.am
+===================================================================
+--- enca-1.9.orig/Makefile.am	2005-11-24 11:21:32.000000000 +0100
++++ enca-1.9/Makefile.am	2006-04-11 11:14:21.832502904 +0200
+@@ -2,7 +2,7 @@
+ if MAINTAINER_MODE
+ SUBDIRS = tools data script lib src devel-docs test
+ else
+-SUBDIRS = tools script lib src devel-docs test
++SUBDIRS = tools script lib src devel-docs
+ endif
+ man_MANS = man/enca.1
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/enca/enca/libenca-003-iconv.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/enca/enca/libenca-003-iconv.patch
new file mode 100644
index 0000000..dbf0fb8
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/enca/enca/libenca-003-iconv.patch
@@ -0,0 +1,28 @@
+From 7e144495093187143a3d1589f74c2eac37e4d790 Mon Sep 17 00:00:00 2001
+From: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
+Date: Sun, 4 May 2014 15:49:28 +0200
+Subject: [PATCH] libiconv.m4: Fix AM_ICONV macro usage
+
+This patch come straight from the Buildroot source tree.
+
+Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
+Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
+---
+ m4/libiconv.m4 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/m4/libiconv.m4 b/m4/libiconv.m4
+index fc8c6f8..3a59549 100644
+--- a/m4/libiconv.m4
++++ b/m4/libiconv.m4
+@@ -17,7 +17,7 @@ AC_REQUIRE([AC_C_CONST])dnl
+ dnl
+ 
+ dnl Use standard iconv test
+-AM_ICONV
++m4_pattern_allow([AM_ICONV])
+ CONVERTOR_LIBS="$CONVERTOR_LIBS $LIBICONV"
+ 
+ dnl Compile iconvcap.c and run it to determine what encodings iconv actually
+-- 
+1.9.3
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/enca/enca/makefile-remove-tools.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/enca/enca/makefile-remove-tools.patch
new file mode 100644
index 0000000..accfbcc
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/enca/enca/makefile-remove-tools.patch
@@ -0,0 +1,13 @@
+--- enca-1.9/Makefile.am.orig	2006-06-29 15:34:55.000000000 +0100
++++ enca-1.9/Makefile.am	2006-06-29 15:35:20.000000000 +0100
+@@ -1,8 +1,8 @@
+ # @(#) $Id: Makefile.am,v 1.35 2005/11/24 10:21:32 yeti Exp $
+ if MAINTAINER_MODE
+-SUBDIRS = tools data script lib src devel-docs test
++SUBDIRS = data script lib src devel-docs test
+ else
+-SUBDIRS = tools script lib src devel-docs
++SUBDIRS = script lib src devel-docs
+ endif
+ man_MANS = man/enca.1
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/enca/enca_1.9.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/enca/enca_1.9.bb
new file mode 100644
index 0000000..bf19843
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/enca/enca_1.9.bb
@@ -0,0 +1,37 @@
+SUMMARY = "Enca is an Extremely Naive Charset Analyser"
+SECTION = "libs"
+HOMEPAGE = "http://trific.ath.cx/software/enca/"
+
+DEPENDS += "gettext-native"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=24b9569831c46d4818450b55282476b4"
+
+SRC_URI = "http://www.sourcefiles.org/Networking/Tools/Miscellanenous/enca-${PV}.tar.bz2 \
+    file://configure-hack.patch \
+    file://dont-run-tests.patch \
+    file://configure-remove-dumbness.patch \
+    file://makefile-remove-tools.patch \
+    file://libenca-003-iconv.patch "
+
+SRC_URI[md5sum] = "b3581e28d68d452286fb0bfe58bed3b3"
+SRC_URI[sha256sum] = "02acfef2b24a9c842612da49338138311f909f1cd33933520c07b8b26c410f4d"
+
+inherit autotools
+
+do_configure_prepend() {
+    # remove failing test which checks for something that isn't even used
+    sed -i -e '/ye_FUNC_SCANF_MODIF_SIZE_T/d' ${S}/configure.ac
+}
+
+do_configure_append() {
+    sed -i s:-I/usr/include::g ${B}/Makefile
+    sed -i s:-I/usr/include::g ${B}/*/Makefile
+}
+
+do_compile() {
+    cd ${S}/tools && ${BUILD_CC} -o make_hash make_hash.c
+    cd ${B}
+    oe_runmake
+}
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/engine-pkcs11/engine-pkcs11_0.2.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/engine-pkcs11/engine-pkcs11_0.2.0.bb
new file mode 100644
index 0000000..f2a2258
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/engine-pkcs11/engine-pkcs11_0.2.0.bb
@@ -0,0 +1,29 @@
+SUMMARY = "A PKCS"
+DESCRIPTION = "\
+Engine_pkcs11 is an implementation of an engine for OpenSSL. It can be \
+loaded using code, config file or command line and will pass any function \
+call by openssl to a PKCS cards and software for using smart cards in PKCS"
+HOMEPAGE = "https://github.com/OpenSC/engine_pkcs11"
+SECTION = "Development/Libraries"
+LICENSE = "LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://src/engine_pkcs11.h;startline=1;endline=26;md5=973a19f8a6105de047f2adfbbfc04c33"
+DEPENDS = "openssl libp11"
+
+SRC_URI = "git://github.com/OpenSC/engine_pkcs11.git;protocol=http"
+SRCREV = "6909d6761c8820e1750fa0bf4fa8532c82f34e35"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "\
+    --disable-static \
+    --libdir ${libdir}/openssl \
+"
+
+do_install_append () {
+    rm -f ${D}${libdir}/openssl/engines/libpkcs11.la
+}
+
+FILES_${PN} += "${libdir}/openssl/engines/libpkcs11.so*"
+FILES_${PN}-dbg += "${libdir}/openssl/engines/.debug/*"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/epeg/epeg_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/epeg/epeg_git.bb
new file mode 100644
index 0000000..8fe19b5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/epeg/epeg_git.bb
@@ -0,0 +1,13 @@
+SUMMARY = "Epeg is a small library for handling thumbnails"
+DESCRIPTION = "Insanely fast JPEG/ JPG thumbnail scaling with the minimum fuss and CPU overhead. It makes use of libjpeg features of being able to load an image by only decoding the DCT coefficients needed to reconstruct an image of the size desired."
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e7732a9290ea1e4b034fdc15cf49968d \
+                    file://COPYING-PLAIN;md5=f59cacc08235a546b0c34a5422133035"
+DEPENDS = "jpeg libexif"
+
+SRC_URI = "git://github.com/mattes/epeg.git"
+SRCREV = "d78becc558a682f1be0a78b1af90d1b4a08e5b4e"
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak-data_1.37.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak-data_1.37.bb
new file mode 100644
index 0000000..914bf36
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak-data_1.37.bb
@@ -0,0 +1,27 @@
+require espeak.inc
+
+inherit native
+
+PACKAGES = "${PN}"
+FILES_${PN} = "${layout_datadir}"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+TARGET_ARCH = "${MACHINE_ARCH}"
+
+do_compile() {
+    # Fixing byte order of phoneme data files
+    cd "${S}/platforms/big_endian"
+    sed -i '/^ *CC *=/d' Makefile
+    sed -i 's/\(.*BYTE_ORDER\)/#undef BYTE_ORDER\n#define BYTE_ORDER BIG_ENDIAN\n\1/' espeak-phoneme-data.c
+    oe_runmake
+    ./espeak-phoneme-data "${S}/espeak-data"
+    cp -f phondata phonindex phontab "${S}/espeak-data"
+}
+
+do_install() {
+    install -d ${D}${layout_datadir}/espeak-data
+    install -m 0644 ${S}/espeak-data/phon* ${D}${layout_datadir}/espeak-data
+}
+
+SRC_URI[md5sum] = "5c7b292d0537232868b4ac1317d76c02"
+SRC_URI[sha256sum] = "77f406c345362185ec4f362bf49f61d202e01ac9b9cd5c14f803195a544ce6d3"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak.inc b/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak.inc
new file mode 100644
index 0000000..98a1765
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak.inc
@@ -0,0 +1,10 @@
+DESCRIPTION = "eSpeak is a compact open source software speech synthesizer"
+SECTION = "base"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://License.txt;md5=cb7a20edb4c9f5f478de6523dcd7362c"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/espeak/espeak-${PV}-source.zip"
+
+S = "${WORKDIR}/espeak-${PV}-source"
+
+DEPENDS = "portaudio-v19"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak_1.37.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak_1.37.bb
new file mode 100644
index 0000000..273fe34
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/espeak/espeak_1.37.bb
@@ -0,0 +1,44 @@
+require espeak.inc
+inherit siteinfo
+
+EXTRA_PHONEMES = '${@bb.utils.contains("SITEINFO_ENDIANNESS", "be",  "espeak-data (= ${PV})", "", d)}'
+RDEPENDS_${PN} = "portaudio-v19 ${EXTRA_PHONEMES}"
+
+SRC_URI[md5sum] = "5c7b292d0537232868b4ac1317d76c02"
+SRC_URI[sha256sum] = "77f406c345362185ec4f362bf49f61d202e01ac9b9cd5c14f803195a544ce6d3"
+
+CXXFLAGS += "-DUSE_PORTAUDIO"
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+FILES_${PN} += "${datadir}/espeak-data"
+
+do_configure() {
+    #  "speak" binary, a TTS engine, uses portaudio in either APIs V18 or V19, use V19
+    cp "${S}/src/portaudio19.h" "${S}/src/portaudio.h"
+}
+
+do_compile() {
+    cd src
+    oe_runmake
+}
+
+do_install() {
+    install -d ${D}${bindir}
+    install -d ${D}${libdir}
+    install -d ${D}${includedir}/espeak
+    install -d ${D}${datadir}/espeak-data
+
+    # we do not ship "speak" binary though.
+    install -m 0755 ${S}/src/espeak ${D}${bindir}
+    install -m 0644 ${S}/src/speak_lib.h ${D}${includedir}/espeak/
+    ln -sf espeak/espeak.h ${D}${includedir}/
+    oe_libinstall -so -C src libespeak ${D}${libdir}
+
+    if [ "${SITEINFO_ENDIANNESS}" = "be" ] ; then
+        # the big-endian phon* files are provided by the package espeak-data
+        rm -f ${S}/espeak-data/phon*
+    fi
+
+    cp -prf ${S}/espeak-data/* ${D}${datadir}/espeak-data
+    chown -R root:root ${D}${datadir}/espeak-data
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/eventlog/eventlog_0.2.13.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/eventlog/eventlog_0.2.13.bb
new file mode 100644
index 0000000..349507d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/eventlog/eventlog_0.2.13.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Replacement syslog API"
+DESCRIPTION = "The EventLog library aims to be a replacement of the \
+              simple syslog() API provided on UNIX systems. The \
+              major difference between EventLog and syslog is that \
+              EventLog tries to add structure to messages. EventLog \
+              provides an interface to build, format and output an \
+              event record. The exact format and output method can \
+              be customized by the administrator via a configuration \
+              file. his package is the runtime part of the library. \
+"
+
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b8ba8e77bcda9a53fac0fe39fe957767"
+
+SRC_URI = "http://www.balabit.com/downloads/files/syslog-ng/open-source-edition/3.4.2/source/${BPN}_${PV}.tar.gz"
+
+inherit autotools pkgconfig
+
+SRC_URI[md5sum] = "68ec8d1ea3b98fa35002bb756227c315"
+SRC_URI[sha256sum] = "7cb4e6f316daede4fa54547371d5c986395177c12dbdec74a66298e684ac8b85"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/evtest/evtest_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/evtest/evtest_git.bb
new file mode 100644
index 0000000..96feab7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/evtest/evtest_git.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Simple tool for input event debugging"
+HOMEPAGE = "http://people.freedesktop.org/~whot/evtest/"
+AUTHOR = "Vojtech Pavlik <vojtech@suse.cz>"
+SECTION = "console/utils"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+DEPENDS = "libxml2"
+
+SRCREV = "b8343ec1124da18bdabcc04809a8731b9e39295d"
+SRC_URI = "git://anongit.freedesktop.org/evtest;protocol=git"
+
+PV = "1.32+${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/farsight/farsight2_0.0.22.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/farsight/farsight2_0.0.22.bb
new file mode 100644
index 0000000..2989850
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/farsight/farsight2_0.0.22.bb
@@ -0,0 +1,30 @@
+DESCRIPTION = "FarSight is an audio/video conferencing framework specifically designed for Instant Messengers."
+HOMEPAGE = "http://farsight.sf.net"
+SRC_URI = "http://farsight.freedesktop.org/releases/farsight2/${BP}.tar.gz"
+
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
+
+PR = "r3"
+
+DEPENDS = "libnice glib-2.0 libxml2 zlib dbus gstreamer gst-plugins-base"
+
+inherit autotools
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[gupnp] = "--enable-gupnp,--disable-gupnp,gupnp-igd"
+
+EXTRA_OECONF = " \
+    --disable-debug \
+    --disable-gtk-doc \
+    --disable-python \
+"
+
+FILES_${PN} += "${libdir}/*/*.so"
+FILES_${PN}-dev += "${libdir}/*/*.la"
+FILES_${PN}-staticdev += "${libdir}/*/*.a"
+FILES_${PN}-dbg += "${libdir}/*/.debug"
+
+
+SRC_URI[md5sum] = "e1f540cf3ebab06c3d7db1f46b44ac88"
+SRC_URI[sha256sum] = "3ae59aa61a8071c9fad111e5fd606aabc27961eb4192f8729987a27dae6b3974"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/farsight/libnice_0.0.13.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/farsight/libnice_0.0.13.bb
new file mode 100644
index 0000000..620ee1f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/farsight/libnice_0.0.13.bb
@@ -0,0 +1,40 @@
+SUMMARY = "Interactive Connectivity Establishment library"
+DESCRIPTION = "Libnice is an implementation of the IETF's draft Interactive Connectivity Establishment standard (ICE)."
+HOMEPAGE = "http://nice.freedesktop.org/wiki/"
+SRC_URI = "http://nice.freedesktop.org/releases/libnice-${PV}.tar.gz"
+
+LICENSE = "LGPLv2.1 & MPLv1.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=9c42325015702feda4f4d2f19a55b767 \
+                    file://COPYING.LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \
+                    file://COPYING.MPL;md5=3c617710e51cdbe0fc00716f056dfb1a \
+"
+
+PR = "r4"
+
+DEPENDS = "glib-2.0 gstreamer"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[gupnp] = "--enable-gupnp,--disable-gupnp,gupnp-igd"
+
+inherit autotools pkgconfig gtk-doc
+
+FILES_${PN} += "${libdir}/gstreamer-0.10/*.so"
+FILES_${PN}-dev += "${libdir}/gstreamer-0.10/*.la"
+FILES_${PN}-staticdev += "${libdir}/gstreamer-0.10/*.a"
+FILES_${PN}-dbg += "${libdir}/gstreamer-0.10/.debug"
+
+do_configure_prepend() {
+    mkdir ${S}/m4 || true
+}
+
+do_compile_append() {
+    for i in $(find ${B} -name "*.pc") ; do
+        sed -i -e s:${STAGING_DIR_TARGET}::g \
+               -e s:/${TARGET_SYS}::g \
+                  $i
+    done
+}
+
+
+SRC_URI[md5sum] = "e5b9f799a57cb939ea2658ec35253ab9"
+SRC_URI[sha256sum] = "d8dd260c486a470a6052a5323920878a084e44a19df09b15728b85c9e3d6edf0"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-2.1/fbset-2.1-fix-makefile-dep.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-2.1/fbset-2.1-fix-makefile-dep.patch
new file mode 100644
index 0000000..41ab8af
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-2.1/fbset-2.1-fix-makefile-dep.patch
@@ -0,0 +1,31 @@
+From 3db6782de1de7ca4f1bb9ee7652c4f2808e57539 Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Thu, 10 Jan 2013 12:24:33 +0800
+Subject: [PATCH] fbset 2.1 fix makefile dep modes.tab.c
+
+Upstream-Status: Inappropriate [no upstream]
+
+fix the error in parallel build:
+make: *** No rule to make target `modes.tab.h', needed by `lex.yy.o'.  Stop. 
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+---
+ Makefile |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 61536c1..09183e5 100644
+--- a/Makefile
++++ b/Makefile
+@@ -15,7 +15,7 @@ fbset:		fbset.o modes.tab.o lex.yy.o
+ 
+ fbset.o:	fbset.c fbset.h fb.h
+ modes.tab.o:	modes.tab.c fbset.h fb.h
+-lex.yy.o:	lex.yy.c fbset.h modes.tab.h
++lex.yy.o:	lex.yy.c fbset.h modes.tab.c
+ 
+ lex.yy.c:	modes.l
+ 		$(FLEX) modes.l
+-- 
+1.7.4.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-2.1/makefile.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-2.1/makefile.patch
new file mode 100644
index 0000000..82b1c61
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-2.1/makefile.patch
@@ -0,0 +1,11 @@
+--- fbset-2.1/Makefile.orig	2006-05-28 04:04:27.412095480 +0200
++++ fbset-2.1/Makefile	2006-05-28 04:14:05.379231120 +0200
+@@ -2,7 +2,7 @@
+ # Linux Frame Buffer Device Configuration
+ #
+ 
+-CC =		gcc -Wall -O2 -I.
++CFLAGS =	-Wall -O2 -I.
+ BISON =		bison -d
+ FLEX =		flex
+ INSTALL =	install
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes.bb
new file mode 100644
index 0000000..88f7a4f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Default display timings and resolutions for fbset"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+PV = "0.1.0"
+PR = "r6"
+
+SRC_URI = "file://fb.modes"
+S = "${WORKDIR}"
+
+do_install() {
+    install -d ${D}${sysconfdir}
+    install -m 0644 ${WORKDIR}/fb.modes ${D}${sysconfdir}
+}
+
+inherit allarch
+
+# fb.modes file is MACHINE_ARCH, base.bbclass correctly changes it to MACHINE_ARCH, but too late for allarch.bbclass
+# to disable "all" behavior (found when comparing qemuarm and qemux86 signatures)
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+CONFFILES_${PN} = "${sysconfdir}/fb.modes"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes/fb.modes b/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes/fb.modes
new file mode 100644
index 0000000..ba5e6ed
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes/fb.modes
@@ -0,0 +1,3 @@
+# By default there is nothing in this file just a reminder to define some
+# modes in OE
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes/om-gta01/fb.modes b/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes/om-gta01/fb.modes
new file mode 100644
index 0000000..446d23d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes/om-gta01/fb.modes
@@ -0,0 +1,29 @@
+# Timings for GTA01 VGA and QVGA mode
+
+mode "480x640"
+    # D: 26.000 MHz, H: 43.334 kHz, V: 65.657 Hz
+    geometry 480 640 480 640 16
+    timings 38461 104 8 2 16 8 2
+    accel false
+endmode
+
+mode "vga"
+    # D: 26.000 MHz, H: 43.334 kHz, V: 65.657 Hz
+    geometry 480 640 480 640 16
+    timings 38461 104 8 2 16 8 2
+    accel false
+endmode
+
+mode "240x320"
+    # D: 8.475 MHz, H: 24.635 kHz, V: 75.569 Hz
+    geometry 240 320 240 320 16
+    timings 118000 88 8 2 2 8 2
+    accel false
+endmode
+
+mode "qvga"
+    # D: 8.475 MHz, H: 24.635 kHz, V: 75.569 Hz
+    geometry 240 320 240 320 16
+    timings 118000 88 8 2 2 8 2
+    accel false
+endmode
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes/omap3-pandora/fb.modes b/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes/omap3-pandora/fb.modes
new file mode 100644
index 0000000..0c87401
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes/omap3-pandora/fb.modes
@@ -0,0 +1,6 @@
+mode "800x480-65"
+    # D: 36.001 MHz, H: 34.124 kHz, V: 64.998 Hz
+    geometry 800 480 800 480 16
+    timings 27777 40 214 10 34 1 1
+    rgba 5/11,6/5,5/0,0/0
+endmode
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes/qemuarm/fb.modes b/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes/qemuarm/fb.modes
new file mode 100644
index 0000000..1114564
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes/qemuarm/fb.modes
@@ -0,0 +1,17 @@
+# QEMU versatilepb machine, qemuarm in OE
+
+mode "vga" "640x480"
+    geometry 640 480 640 480 16
+endmode
+
+mode "vga-portrait" "480x640"
+    geometry 480 640 480 640 16
+endmode
+
+mode "qvga" "320x240"
+    geometry 320 240 320 240 16
+endmode
+
+mode "qvga-portrait" "240x320"
+    geometry 240 320 240 320 16
+endmode
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes/qemumips/fb.modes b/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes/qemumips/fb.modes
new file mode 100644
index 0000000..1114564
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset-modes/qemumips/fb.modes
@@ -0,0 +1,17 @@
+# QEMU versatilepb machine, qemuarm in OE
+
+mode "vga" "640x480"
+    geometry 640 480 640 480 16
+endmode
+
+mode "vga-portrait" "480x640"
+    geometry 480 640 480 640 16
+endmode
+
+mode "qvga" "320x240"
+    geometry 320 240 320 240 16
+endmode
+
+mode "qvga-portrait" "240x320"
+    geometry 240 320 240 320 16
+endmode
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset/0001-fbset-including-asm-types.h-is-needed-on-all-linux-s.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset/0001-fbset-including-asm-types.h-is-needed-on-all-linux-s.patch
new file mode 100644
index 0000000..7f45dbe
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset/0001-fbset-including-asm-types.h-is-needed-on-all-linux-s.patch
@@ -0,0 +1,34 @@
+From 06edd88833da93361d5408b880fbb890df332497 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 19 Jan 2016 01:55:47 +0000
+Subject: [PATCH] fbset: including asm/types.h is needed on all linux systems
+
+including asm/types.h is needed to get Linux typedef's like
+__s32 and so on which are independent of C library therefore this
+define should not be guarded by __GLIBC__ but by __linux__
+
+Helps to compile it on musl systems
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ fbset.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/fbset.h b/fbset.h
+index 9b1d2ac..0d8def8 100644
+--- a/fbset.h
++++ b/fbset.h
+@@ -15,7 +15,7 @@
+ #include <stdio.h>
+ #include <sys/types.h>
+ 
+-#ifdef __GLIBC__
++#ifdef __linux__
+ #include <asm/types.h>
+ #endif
+ 
+-- 
+2.7.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset_2.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset_2.1.bb
new file mode 100644
index 0000000..cbbe6ca
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/fbset/fbset_2.1.bb
@@ -0,0 +1,37 @@
+#
+# Copyright Matthias Hentges <devel@hentges.net> (c) 2006
+# License: MIT (see http://www.opensource.org/licenses/mit-license.php for a copy of the license)
+#
+# Filename: fbset_2.1.bb
+# Date: 28-May-06
+
+SUMMARY = "The fbset console tool"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://fbset.c;endline=19;md5=bf326f82cdfcac391af208f019c5603f"
+RRECOMMENDS_${PN} = "fbset-modes"
+DEPENDS = "bison-native flex-native"
+
+PR = "r4"
+
+SRC_URI = "http://ftp.debian.org/debian/pool/main/f/fbset/fbset_2.1.orig.tar.gz \
+           file://makefile.patch \
+           file://fbset-2.1-fix-makefile-dep.patch \
+           file://0001-fbset-including-asm-types.h-is-needed-on-all-linux-s.patch \
+"
+
+inherit update-alternatives
+
+do_install() {
+    install -d ${D}${sbindir} ${D}${datadir}/man/man8 ${D}${datadir}/man/man5
+    install -m 0755 ${B}/fbset ${D}${sbindir}/fbset.real
+    install -m 0644 ${B}/*.5 ${D}${datadir}/man/man5
+    install -m 0644 ${B}/*.8 ${D}${datadir}/man/man8
+}
+
+ALTERNATIVE_fbset = "fbset"
+ALTERNATIVE_LINK_NAME[fbset] = "${sbindir}/fbset"
+ALTERNATIVE_TARGET[fbset] = "${sbindir}/fbset.real"
+ALTERNATIVE_PRIORITY[fbset] = "55"
+
+SRC_URI[md5sum] = "40ed9608f46d787bfb65fd1269f7f459"
+SRC_URI[sha256sum] = "517fa062d7b2d367f931a1c6ebb2bef84907077f0ce3f0c899e34490bbea9338"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/fbtest/fb-test_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/fbtest/fb-test_git.bb
new file mode 100644
index 0000000..13f9e37
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/fbtest/fb-test_git.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Test suite for Linux framebuffer"
+
+PV = "1.1.0"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a"
+
+SRCREV = "063ec650960c2d79ac51f5c5f026cb05343a33e2"
+SRC_URI = "git://github.com/prpplague/fb-test-app.git"
+
+S = "${WORKDIR}/git"
+
+do_install() {
+	install -d ${D}${bindir}
+	install -m 0755 fb-test ${D}${bindir}
+	# avoid collisions with perf (perf) and mesa-demos (offset)
+	for prog in perf rect offset ; do
+		install -m 0755 $prog ${D}${bindir}/fb-$prog
+	done
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/fftw/benchfft_3.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/fftw/benchfft_3.1.bb
new file mode 100644
index 0000000..d859386
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/fftw/benchfft_3.1.bb
@@ -0,0 +1,21 @@
+SUMMARY = "FFTW benchmarks"
+SECTION = "libs"
+LICENSE = "GPLv2"
+
+# single precision fftw is called fftwf 
+DEPENDS = "virtual/fftw"
+
+SRC_URI = "http://www.fftw.org/benchfft/benchfft-${PV}.tar.gz"
+
+EXTRA_OECONF = "--disable-fortran --enable-single --enable-shared"
+
+inherit autotools pkgconfig
+
+do_compile_prepend() {
+    sed -i -e 's:all-recursive:$(RECURSIVE_TARGETS):g' ${S}/Makefile
+}
+
+SRC_URI[md5sum] = "9356e5e9dcb3f1481977009720a2ccf8"
+SRC_URI[sha256sum] = "1b4a5b5e48ad5e61a21586b7b59d5c0a88691a981e73e2c6dc5868197461791b"
+
+PNBLACKLIST[benchfft] ?= "does not build with distroless qemuarm as reported in 'State of bitbake world' thread, nobody volunteered to fix them"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/fftw/fftw.inc b/import-layers/meta-openembedded/meta-oe/recipes-support/fftw/fftw.inc
new file mode 100644
index 0000000..1522ea0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/fftw/fftw.inc
@@ -0,0 +1,25 @@
+DESCRIPTION = "FFTW"
+SECTION = "libs"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+PROVIDES = "virtual/fftw"
+
+RPROVIDES_${PN} += "libfftw3"
+
+SRC_URI = "http://www.fftw.org/fftw-${PV}.tar.gz"
+
+S = "${WORKDIR}/fftw-${PV}"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--disable-fortran --enable-shared --enable-threads"
+
+do_configure_prepend() {
+    echo 'AM_PROG_AS' >> ${S}/configure.ac 
+}
+
+PACKAGES =+ "lib${BPN}"
+FILES_lib${BPN} = "${libdir}/lib*.so.*"
+
+# rename binary in /bin and use u-a tpo choose between different precision implementations?
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.4.bb
new file mode 100644
index 0000000..990f01e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.4.bb
@@ -0,0 +1,6 @@
+require fftw.inc
+
+SRC_URI[md5sum] = "2edab8c06b24feeb3b82bbb3ebf3e7b3"
+SRC_URI[sha256sum] = "8f0cde90929bc05587c3368d2f15cd0530a60b8a9912a8e2979a72dbe5af0982"
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/fftw/fftwf_3.3.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/fftw/fftwf_3.3.4.bb
new file mode 100644
index 0000000..4a65986
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/fftw/fftwf_3.3.4.bb
@@ -0,0 +1,11 @@
+require fftw.inc
+
+# conflicts with fftw and fftwl
+EXCLUDE_FROM_WORLD = "1"
+
+EXTRA_OECONF += "--enable-single \
+    ${@bb.utils.contains('TUNE_FEATURES', 'neon', '--enable-neon', '', d)} \
+"
+
+SRC_URI[md5sum] = "2edab8c06b24feeb3b82bbb3ebf3e7b3"
+SRC_URI[sha256sum] = "8f0cde90929bc05587c3368d2f15cd0530a60b8a9912a8e2979a72dbe5af0982"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/fftw/fftwl_3.3.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/fftw/fftwl_3.3.4.bb
new file mode 100644
index 0000000..432ff12
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/fftw/fftwl_3.3.4.bb
@@ -0,0 +1,9 @@
+require fftw.inc
+
+# conflicts with fftw and fftwf
+EXCLUDE_FROM_WORLD = "1"
+
+EXTRA_OECONF += "--enable-long-double"
+
+SRC_URI[md5sum] = "2edab8c06b24feeb3b82bbb3ebf3e7b3"
+SRC_URI[sha256sum] = "8f0cde90929bc05587c3368d2f15cd0530a60b8a9912a8e2979a72dbe5af0982"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/flite/flite-alsa-1.3/flite-1.3-alsa_support-1.2.diff b/import-layers/meta-openembedded/meta-oe/recipes-support/flite/flite-alsa-1.3/flite-1.3-alsa_support-1.2.diff
new file mode 100644
index 0000000..b3e4b7a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/flite/flite-alsa-1.3/flite-1.3-alsa_support-1.2.diff
@@ -0,0 +1,6615 @@
+Index: lang/usenglish/Makefile
+===================================================================
+--- flite-1.3-release/lang/usenglish/Makefile	(.../flite-1.3-orig)	(revision 7)
++++ flite-1.3-release/lang/usenglish/Makefile	(.../release-1.2)	(revision 7)
+@@ -38,6 +38,7 @@
+ DIRNAME=lang/usenglish
+ BUILD_DIRS = 
+ ALL_DIRS= 
++include $(TOP)/config/config
+ H = usenglish.h us_int_accent_cart.h us_int_tone_cart.h us_durz_cart.h \
+     us_ffeatures.h us_phrasing_cart.h us_text.h us_f0.h us_nums_cart.h
+ SRCS = us_int_accent_cart.c us_int_tone_cart.c us_f0_model.c \
+@@ -45,7 +46,11 @@
+        us_phoneset.c us_ffeatures.c us_phrasing_cart.c \
+        us_gpos.c us_text.c us_expand.c us_postlex.c \
+        us_nums_cart.c us_aswd.c usenglish.c 
+-OBJS = $(SRCS:.c=.o)
++ifdef SHFLAGS
++OBJS := $(SRCS:.c=.os)
++else
++OBJS := $(SRCS:.c=.o)
++endif
+ SCM=
+ FILES = Makefile $(SCM) $(SRCS) $(H)
+ LIBNAME = flite_usenglish
+Index: lang/cmu_us_kal/Makefile
+===================================================================
+--- flite-1.3-release/lang/cmu_us_kal/Makefile	(.../flite-1.3-orig)	(revision 7)
++++ flite-1.3-release/lang/cmu_us_kal/Makefile	(.../release-1.2)	(revision 7)
+@@ -43,7 +43,12 @@
+        cmu_us_kal_lpc.c \
+        cmu_us_kal_res.c \
+        cmu_us_kal_residx.c
+-OBJS = $(SRCS:.c=.o)
++include $(TOP)/config/config
++ifdef SHFLAGS
++OBJS := $(SRCS:.c=.os)
++else
++OBJS := $(SRCS:.c=.o)
++endif
+ SCM=
+ FILES = Makefile $(SCM) $(SRCS) $(H)
+ LIBNAME = flite_cmu_us_kal
+Index: lang/cmu_us_kal16/Makefile
+===================================================================
+--- flite-1.3-release/lang/cmu_us_kal16/Makefile	(.../flite-1.3-orig)	(revision 7)
++++ flite-1.3-release/lang/cmu_us_kal16/Makefile	(.../release-1.2)	(revision 7)
+@@ -44,7 +44,12 @@
+        cmu_us_kal16_lpc.c \
+        cmu_us_kal16_res.c \
+        cmu_us_kal16_residx.c
+-OBJS = $(SRCS:.c=.o)
++include $(TOP)/config/config
++ifdef SHFLAGS
++OBJS := $(SRCS:.c=.os)
++else
++OBJS := $(SRCS:.c=.o)
++endif
+ SCM=
+ FILES = Makefile $(SCM) $(SRCS) $(H)
+ LIBNAME = flite_cmu_us_kal16
+Index: lang/cmu_time_awb/Makefile
+===================================================================
+--- flite-1.3-release/lang/cmu_time_awb/Makefile	(.../flite-1.3-orig)	(revision 7)
++++ flite-1.3-release/lang/cmu_time_awb/Makefile	(.../release-1.2)	(revision 7)
+@@ -45,7 +45,12 @@
+ 	cmu_time_awb_mcep.c \
+ 	cmu_time_awb_lpc.c \
+ 	cmu_time_awb_lex_entry.c
+-OBJS = $(SRCS:.c=.o)
++include $(TOP)/config/config
++ifdef SHFLAGS
++OBJS := $(SRCS:.c=.os)
++else
++OBJS := $(SRCS:.c=.o)
++endif
+ SCM=
+ FILES = Makefile $(SCM) $(SRCS) $(H)
+ LIBNAME = flite_cmu_time_awb
+Index: lang/cmulex/Makefile
+===================================================================
+--- flite-1.3-release/lang/cmulex/Makefile	(.../flite-1.3-orig)	(revision 7)
++++ flite-1.3-release/lang/cmulex/Makefile	(.../release-1.2)	(revision 7)
+@@ -38,13 +38,20 @@
+ DIRNAME=lang/cmulex
+ BUILD_DIRS = 
+ ALL_DIRS= 
++
+ H = cmu_lts_model.h cmulex.h
+ SRCS = cmu_lts_rules.c cmu_lts_model.c \
+        cmu_lex.c cmu_lex_entries.c cmu_lex_data.c
+ LEX_DATA_INCLUDES = cmu_lex_data_raw.c cmu_lex_num_bytes.c \
+      cmu_lex_phones_huff_table.c cmu_lex_entries_huff_table.c
+ 
+-OBJS = $(SRCS:.c=.o)
++include $(TOP)/config/config
++ifdef SHFLAGS
++OBJS := $(SRCS:.c=.os)
++else
++OBJS := $(SRCS:.c=.o)
++endif
++
+ SCRIPTS=make_cmulex  
+ 
+ SCM=
+Index: configure
+===================================================================
+--- flite-1.3-release/configure	(.../flite-1.3-orig)	(revision 7)
++++ flite-1.3-release/configure	(.../release-1.2)	(revision 7)
+@@ -1,324 +1,38 @@
+ #! /bin/sh
++
+ # Guess values for system-dependent variables and create Makefiles.
+-# Generated by GNU Autoconf 2.57.
++# Generated automatically using autoconf version 2.13 
++# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
+ #
+-# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
+-# Free Software Foundation, Inc.
+ # This configure script is free software; the Free Software Foundation
+ # gives unlimited permission to copy, distribute and modify it.
+-## --------------------- ##
+-## M4sh Initialization.  ##
+-## --------------------- ##
+ 
+-# Be Bourne compatible
+-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+-  emulate sh
+-  NULLCMD=:
+-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+-  # is contrary to our usage.  Disable this feature.
+-  alias -g '${1+"$@"}'='"$@"'
+-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+-  set -o posix
+-fi
+-
+-# Support unset when possible.
+-if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+-  as_unset=unset
+-else
+-  as_unset=false
+-fi
+-
+-
+-# Work around bugs in pre-3.0 UWIN ksh.
+-$as_unset ENV MAIL MAILPATH
+-PS1='$ '
+-PS2='> '
+-PS4='+ '
+-
+-# NLS nuisances.
+-for as_var in \
+-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+-  LC_TELEPHONE LC_TIME
+-do
+-  if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
+-    eval $as_var=C; export $as_var
+-  else
+-    $as_unset $as_var
+-  fi
+-done
+-
+-# Required to use basename.
+-if expr a : '\(a\)' >/dev/null 2>&1; then
+-  as_expr=expr
+-else
+-  as_expr=false
+-fi
+-
+-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+-  as_basename=basename
+-else
+-  as_basename=false
+-fi
+-
+-
+-# Name of the executable.
+-as_me=`$as_basename "$0" ||
+-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+-	 X"$0" : 'X\(//\)$' \| \
+-	 X"$0" : 'X\(/\)$' \| \
+-	 .     : '\(.\)' 2>/dev/null ||
+-echo X/"$0" |
+-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
+-  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
+-  	  /^X\/\(\/\).*/{ s//\1/; q; }
+-  	  s/.*/./; q'`
+-
+-
+-# PATH needs CR, and LINENO needs CR and PATH.
+-# Avoid depending upon Character Ranges.
+-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+-as_cr_digits='0123456789'
+-as_cr_alnum=$as_cr_Letters$as_cr_digits
+-
+-# The user is always right.
+-if test "${PATH_SEPARATOR+set}" != set; then
+-  echo "#! /bin/sh" >conf$$.sh
+-  echo  "exit 0"   >>conf$$.sh
+-  chmod +x conf$$.sh
+-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+-    PATH_SEPARATOR=';'
+-  else
+-    PATH_SEPARATOR=:
+-  fi
+-  rm -f conf$$.sh
+-fi
+-
+-
+-  as_lineno_1=$LINENO
+-  as_lineno_2=$LINENO
+-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+-  test "x$as_lineno_1" != "x$as_lineno_2" &&
+-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
+-  # Find who we are.  Look in the path if we contain no path at all
+-  # relative or not.
+-  case $0 in
+-    *[\\/]* ) as_myself=$0 ;;
+-    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+-done
+-
+-       ;;
+-  esac
+-  # We did not find ourselves, most probably we were run as `sh COMMAND'
+-  # in which case we are not to be found in the path.
+-  if test "x$as_myself" = x; then
+-    as_myself=$0
+-  fi
+-  if test ! -f "$as_myself"; then
+-    { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
+-   { (exit 1); exit 1; }; }
+-  fi
+-  case $CONFIG_SHELL in
+-  '')
+-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for as_base in sh bash ksh sh5; do
+-	 case $as_dir in
+-	 /*)
+-	   if ("$as_dir/$as_base" -c '
+-  as_lineno_1=$LINENO
+-  as_lineno_2=$LINENO
+-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+-  test "x$as_lineno_1" != "x$as_lineno_2" &&
+-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
+-	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+-	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
+-	     CONFIG_SHELL=$as_dir/$as_base
+-	     export CONFIG_SHELL
+-	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
+-	   fi;;
+-	 esac
+-       done
+-done
+-;;
+-  esac
+-
+-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+-  # uniformly replaced by the line number.  The first 'sed' inserts a
+-  # line-number line before each line; the second 'sed' does the real
+-  # work.  The second script uses 'N' to pair each line-number line
+-  # with the numbered line, and appends trailing '-' during
+-  # substitution so that $LINENO is not a special case at line end.
+-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
+-  sed '=' <$as_myself |
+-    sed '
+-      N
+-      s,$,-,
+-      : loop
+-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+-      t loop
+-      s,-$,,
+-      s,^['$as_cr_digits']*\n,,
+-    ' >$as_me.lineno &&
+-  chmod +x $as_me.lineno ||
+-    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+-   { (exit 1); exit 1; }; }
+-
+-  # Don't try to exec as it changes $[0], causing all sort of problems
+-  # (the dirname of $[0] is not the place where we might find the
+-  # original and so on.  Autoconf is especially sensible to this).
+-  . ./$as_me.lineno
+-  # Exit status is that of the last command.
+-  exit
+-}
+-
+-
+-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+-  *c*,-n*) ECHO_N= ECHO_C='
+-' ECHO_T='	' ;;
+-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
+-esac
+-
+-if expr a : '\(a\)' >/dev/null 2>&1; then
+-  as_expr=expr
+-else
+-  as_expr=false
+-fi
+-
+-rm -f conf$$ conf$$.exe conf$$.file
+-echo >conf$$.file
+-if ln -s conf$$.file conf$$ 2>/dev/null; then
+-  # We could just check for DJGPP; but this test a) works b) is more generic
+-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+-  if test -f conf$$.exe; then
+-    # Don't use ln at all; we don't have any links
+-    as_ln_s='cp -p'
+-  else
+-    as_ln_s='ln -s'
+-  fi
+-elif ln conf$$.file conf$$ 2>/dev/null; then
+-  as_ln_s=ln
+-else
+-  as_ln_s='cp -p'
+-fi
+-rm -f conf$$ conf$$.exe conf$$.file
+-
+-if mkdir -p . 2>/dev/null; then
+-  as_mkdir_p=:
+-else
+-  as_mkdir_p=false
+-fi
+-
+-as_executable_p="test -f"
+-
+-# Sed expression to map a string onto a valid CPP name.
+-as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
+-
+-# Sed expression to map a string onto a valid variable name.
+-as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
+-
+-
+-# IFS
+-# We need space, tab and new line, in precisely that order.
+-as_nl='
+-'
+-IFS=" 	$as_nl"
+-
+-# CDPATH.
+-$as_unset CDPATH
+-
+-
+-# Name of the host.
+-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+-# so uname gets run too.
+-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+-
+-exec 6>&1
+-
+-#
+-# Initializations.
+-#
++# Defaults:
++ac_help=
+ ac_default_prefix=/usr/local
+-ac_config_libobj_dir=.
+-cross_compiling=no
+-subdirs=
+-MFLAGS=
+-MAKEFLAGS=
+-SHELL=${CONFIG_SHELL-/bin/sh}
++# Any additions from configure.in:
++ac_help="$ac_help
++  --disable-shared     without shared library support"
++ac_help="$ac_help
++  --disable-sockets     without socket support"
++ac_help="$ac_help
++  --with-audio          with specific audio support (none linux freebsd etc) "
++ac_help="$ac_help
++  --with-lang           with language "
++ac_help="$ac_help
++  --with-vox            with vox "
++ac_help="$ac_help
++  --with-lex            with lexicon "
+ 
+-# Maximum number of lines to put in a shell here document.
+-# This variable seems obsolete.  It should probably be removed, and
+-# only ac_max_sed_lines should be used.
+-: ${ac_max_here_lines=38}
+-
+-# Identity of this package.
+-PACKAGE_NAME=
+-PACKAGE_TARNAME=
+-PACKAGE_VERSION=
+-PACKAGE_STRING=
+-PACKAGE_BUGREPORT=
+-
+-ac_unique_file="include/flite.h"
+-# Factoring default headers for most tests.
+-ac_includes_default="\
+-#include <stdio.h>
+-#if HAVE_SYS_TYPES_H
+-# include <sys/types.h>
+-#endif
+-#if HAVE_SYS_STAT_H
+-# include <sys/stat.h>
+-#endif
+-#if STDC_HEADERS
+-# include <stdlib.h>
+-# include <stddef.h>
+-#else
+-# if HAVE_STDLIB_H
+-#  include <stdlib.h>
+-# endif
+-#endif
+-#if HAVE_STRING_H
+-# if !STDC_HEADERS && HAVE_MEMORY_H
+-#  include <memory.h>
+-# endif
+-# include <string.h>
+-#endif
+-#if HAVE_STRINGS_H
+-# include <strings.h>
+-#endif
+-#if HAVE_INTTYPES_H
+-# include <inttypes.h>
+-#else
+-# if HAVE_STDINT_H
+-#  include <stdint.h>
+-# endif
+-#endif
+-#if HAVE_UNISTD_H
+-# include <unistd.h>
+-#endif"
+-
+-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT RANLIB ac_ct_RANLIB INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA AR ac_ct_AR TARGET_OS TARGET_CPU M68KCC LEXDEFS VOXDEFS HOST_OS HOST_CPU OTHERLIBS SHFLAGS MMAPTYPE STDIOTYPE CPP EGREP AUDIODRIVER AUDIODEFS AUDIOLIBS FL_LANG FL_VOX FL_LEX LIBOBJS LTLIBOBJS'
+-ac_subst_files=''
+-
+ # Initialize some variables set by options.
+-ac_init_help=
+-ac_init_version=false
+ # The variables have the same names as the options, with
+ # dashes changed to underlines.
+-cache_file=/dev/null
++build=NONE
++cache_file=./config.cache
+ exec_prefix=NONE
++host=NONE
+ no_create=
++nonopt=NONE
+ no_recursion=
+ prefix=NONE
+ program_prefix=NONE
+@@ -327,15 +41,10 @@
+ silent=
+ site=
+ srcdir=
++target=NONE
+ verbose=
+ x_includes=NONE
+ x_libraries=NONE
+-
+-# Installation directory options.
+-# These are left unexpanded so users can "make install exec_prefix=/foo"
+-# and all the variables that are supposed to be based on exec_prefix
+-# by default will actually change.
+-# Use braces instead of parens because sh, perl, etc. also accept them.
+ bindir='${exec_prefix}/bin'
+ sbindir='${exec_prefix}/sbin'
+ libexecdir='${exec_prefix}/libexec'
+@@ -349,9 +58,17 @@
+ infodir='${prefix}/info'
+ mandir='${prefix}/man'
+ 
++# Initialize some other variables.
++subdirs=
++MFLAGS= MAKEFLAGS=
++SHELL=${CONFIG_SHELL-/bin/sh}
++# Maximum number of lines to put in a shell here document.
++ac_max_here_lines=12
++
+ ac_prev=
+ for ac_option
+ do
++
+   # If the previous option needs an argument, assign it.
+   if test -n "$ac_prev"; then
+     eval "$ac_prev=\$ac_option"
+@@ -359,59 +76,59 @@
+     continue
+   fi
+ 
+-  ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
++  case "$ac_option" in
++  -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
++  *) ac_optarg= ;;
++  esac
+ 
+   # Accept the important Cygnus configure options, so we can diagnose typos.
+ 
+-  case $ac_option in
++  case "$ac_option" in
+ 
+   -bindir | --bindir | --bindi | --bind | --bin | --bi)
+     ac_prev=bindir ;;
+   -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+-    bindir=$ac_optarg ;;
++    bindir="$ac_optarg" ;;
+ 
+   -build | --build | --buil | --bui | --bu)
+-    ac_prev=build_alias ;;
++    ac_prev=build ;;
+   -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+-    build_alias=$ac_optarg ;;
++    build="$ac_optarg" ;;
+ 
+   -cache-file | --cache-file | --cache-fil | --cache-fi \
+   | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+     ac_prev=cache_file ;;
+   -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+   | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+-    cache_file=$ac_optarg ;;
++    cache_file="$ac_optarg" ;;
+ 
+-  --config-cache | -C)
+-    cache_file=config.cache ;;
+-
+   -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+     ac_prev=datadir ;;
+   -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+   | --da=*)
+-    datadir=$ac_optarg ;;
++    datadir="$ac_optarg" ;;
+ 
+   -disable-* | --disable-*)
+-    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
++    ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
+     # Reject names that are not valid shell variable names.
+-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+-   { (exit 1); exit 1; }; }
+-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+-    eval "enable_$ac_feature=no" ;;
++    if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
++      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
++    fi
++    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
++    eval "enable_${ac_feature}=no" ;;
+ 
+   -enable-* | --enable-*)
+-    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
++    ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
+     # Reject names that are not valid shell variable names.
+-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+-   { (exit 1); exit 1; }; }
+-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+-    case $ac_option in
+-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
++    if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
++      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
++    fi
++    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
++    case "$ac_option" in
++      *=*) ;;
+       *) ac_optarg=yes ;;
+     esac
+-    eval "enable_$ac_feature='$ac_optarg'" ;;
++    eval "enable_${ac_feature}='$ac_optarg'" ;;
+ 
+   -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+   | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+@@ -420,47 +137,95 @@
+   -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+   | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+   | --exec=* | --exe=* | --ex=*)
+-    exec_prefix=$ac_optarg ;;
++    exec_prefix="$ac_optarg" ;;
+ 
+   -gas | --gas | --ga | --g)
+     # Obsolete; use --with-gas.
+     with_gas=yes ;;
+ 
+-  -help | --help | --hel | --he | -h)
+-    ac_init_help=long ;;
+-  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+-    ac_init_help=recursive ;;
+-  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+-    ac_init_help=short ;;
++  -help | --help | --hel | --he)
++    # Omit some internal or obsolete options to make the list less imposing.
++    # This message is too long to be a string in the A/UX 3.1 sh.
++    cat << EOF
++Usage: configure [options] [host]
++Options: [defaults in brackets after descriptions]
++Configuration:
++  --cache-file=FILE       cache test results in FILE
++  --help                  print this message
++  --no-create             do not create output files
++  --quiet, --silent       do not print \`checking...' messages
++  --version               print the version of autoconf that created configure
++Directory and file names:
++  --prefix=PREFIX         install architecture-independent files in PREFIX
++                          [$ac_default_prefix]
++  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
++                          [same as prefix]
++  --bindir=DIR            user executables in DIR [EPREFIX/bin]
++  --sbindir=DIR           system admin executables in DIR [EPREFIX/sbin]
++  --libexecdir=DIR        program executables in DIR [EPREFIX/libexec]
++  --datadir=DIR           read-only architecture-independent data in DIR
++                          [PREFIX/share]
++  --sysconfdir=DIR        read-only single-machine data in DIR [PREFIX/etc]
++  --sharedstatedir=DIR    modifiable architecture-independent data in DIR
++                          [PREFIX/com]
++  --localstatedir=DIR     modifiable single-machine data in DIR [PREFIX/var]
++  --libdir=DIR            object code libraries in DIR [EPREFIX/lib]
++  --includedir=DIR        C header files in DIR [PREFIX/include]
++  --oldincludedir=DIR     C header files for non-gcc in DIR [/usr/include]
++  --infodir=DIR           info documentation in DIR [PREFIX/info]
++  --mandir=DIR            man documentation in DIR [PREFIX/man]
++  --srcdir=DIR            find the sources in DIR [configure dir or ..]
++  --program-prefix=PREFIX prepend PREFIX to installed program names
++  --program-suffix=SUFFIX append SUFFIX to installed program names
++  --program-transform-name=PROGRAM
++                          run sed PROGRAM on installed program names
++EOF
++    cat << EOF
++Host type:
++  --build=BUILD           configure for building on BUILD [BUILD=HOST]
++  --host=HOST             configure for HOST [guessed]
++  --target=TARGET         configure for TARGET [TARGET=HOST]
++Features and packages:
++  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
++  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
++  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
++  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
++  --x-includes=DIR        X include files are in DIR
++  --x-libraries=DIR       X library files are in DIR
++EOF
++    if test -n "$ac_help"; then
++      echo "--enable and --with options recognized:$ac_help"
++    fi
++    exit 0 ;;
+ 
+   -host | --host | --hos | --ho)
+-    ac_prev=host_alias ;;
++    ac_prev=host ;;
+   -host=* | --host=* | --hos=* | --ho=*)
+-    host_alias=$ac_optarg ;;
++    host="$ac_optarg" ;;
+ 
+   -includedir | --includedir | --includedi | --included | --include \
+   | --includ | --inclu | --incl | --inc)
+     ac_prev=includedir ;;
+   -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+   | --includ=* | --inclu=* | --incl=* | --inc=*)
+-    includedir=$ac_optarg ;;
++    includedir="$ac_optarg" ;;
+ 
+   -infodir | --infodir | --infodi | --infod | --info | --inf)
+     ac_prev=infodir ;;
+   -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+-    infodir=$ac_optarg ;;
++    infodir="$ac_optarg" ;;
+ 
+   -libdir | --libdir | --libdi | --libd)
+     ac_prev=libdir ;;
+   -libdir=* | --libdir=* | --libdi=* | --libd=*)
+-    libdir=$ac_optarg ;;
++    libdir="$ac_optarg" ;;
+ 
+   -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+   | --libexe | --libex | --libe)
+     ac_prev=libexecdir ;;
+   -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+   | --libexe=* | --libex=* | --libe=*)
+-    libexecdir=$ac_optarg ;;
++    libexecdir="$ac_optarg" ;;
+ 
+   -localstatedir | --localstatedir | --localstatedi | --localstated \
+   | --localstate | --localstat | --localsta | --localst \
+@@ -469,19 +234,19 @@
+   -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+   | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+   | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+-    localstatedir=$ac_optarg ;;
++    localstatedir="$ac_optarg" ;;
+ 
+   -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+     ac_prev=mandir ;;
+   -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+-    mandir=$ac_optarg ;;
++    mandir="$ac_optarg" ;;
+ 
+   -nfp | --nfp | --nf)
+     # Obsolete; use --without-fp.
+     with_fp=no ;;
+ 
+   -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+-  | --no-cr | --no-c | -n)
++  | --no-cr | --no-c)
+     no_create=yes ;;
+ 
+   -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+@@ -495,26 +260,26 @@
+   -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+   | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+   | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+-    oldincludedir=$ac_optarg ;;
++    oldincludedir="$ac_optarg" ;;
+ 
+   -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+     ac_prev=prefix ;;
+   -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+-    prefix=$ac_optarg ;;
++    prefix="$ac_optarg" ;;
+ 
+   -program-prefix | --program-prefix | --program-prefi | --program-pref \
+   | --program-pre | --program-pr | --program-p)
+     ac_prev=program_prefix ;;
+   -program-prefix=* | --program-prefix=* | --program-prefi=* \
+   | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+-    program_prefix=$ac_optarg ;;
++    program_prefix="$ac_optarg" ;;
+ 
+   -program-suffix | --program-suffix | --program-suffi | --program-suff \
+   | --program-suf | --program-su | --program-s)
+     ac_prev=program_suffix ;;
+   -program-suffix=* | --program-suffix=* | --program-suffi=* \
+   | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+-    program_suffix=$ac_optarg ;;
++    program_suffix="$ac_optarg" ;;
+ 
+   -program-transform-name | --program-transform-name \
+   | --program-transform-nam | --program-transform-na \
+@@ -531,7 +296,7 @@
+   | --program-transfo=* | --program-transf=* \
+   | --program-trans=* | --program-tran=* \
+   | --progr-tra=* | --program-tr=* | --program-t=*)
+-    program_transform_name=$ac_optarg ;;
++    program_transform_name="$ac_optarg" ;;
+ 
+   -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+   | -silent | --silent | --silen | --sile | --sil)
+@@ -541,7 +306,7 @@
+     ac_prev=sbindir ;;
+   -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+   | --sbi=* | --sb=*)
+-    sbindir=$ac_optarg ;;
++    sbindir="$ac_optarg" ;;
+ 
+   -sharedstatedir | --sharedstatedir | --sharedstatedi \
+   | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+@@ -552,57 +317,58 @@
+   | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+   | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+   | --sha=* | --sh=*)
+-    sharedstatedir=$ac_optarg ;;
++    sharedstatedir="$ac_optarg" ;;
+ 
+   -site | --site | --sit)
+     ac_prev=site ;;
+   -site=* | --site=* | --sit=*)
+-    site=$ac_optarg ;;
++    site="$ac_optarg" ;;
+ 
+   -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+     ac_prev=srcdir ;;
+   -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+-    srcdir=$ac_optarg ;;
++    srcdir="$ac_optarg" ;;
+ 
+   -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+   | --syscon | --sysco | --sysc | --sys | --sy)
+     ac_prev=sysconfdir ;;
+   -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+   | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+-    sysconfdir=$ac_optarg ;;
++    sysconfdir="$ac_optarg" ;;
+ 
+   -target | --target | --targe | --targ | --tar | --ta | --t)
+-    ac_prev=target_alias ;;
++    ac_prev=target ;;
+   -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+-    target_alias=$ac_optarg ;;
++    target="$ac_optarg" ;;
+ 
+   -v | -verbose | --verbose | --verbos | --verbo | --verb)
+     verbose=yes ;;
+ 
+-  -version | --version | --versio | --versi | --vers | -V)
+-    ac_init_version=: ;;
++  -version | --version | --versio | --versi | --vers)
++    echo "configure generated by autoconf version 2.13"
++    exit 0 ;;
+ 
+   -with-* | --with-*)
+-    ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
++    ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
+     # Reject names that are not valid shell variable names.
+-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+-      { echo "$as_me: error: invalid package name: $ac_package" >&2
+-   { (exit 1); exit 1; }; }
++    if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
++      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
++    fi
+     ac_package=`echo $ac_package| sed 's/-/_/g'`
+-    case $ac_option in
+-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
++    case "$ac_option" in
++      *=*) ;;
+       *) ac_optarg=yes ;;
+     esac
+-    eval "with_$ac_package='$ac_optarg'" ;;
++    eval "with_${ac_package}='$ac_optarg'" ;;
+ 
+   -without-* | --without-*)
+-    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
++    ac_package=`echo $ac_option|sed -e 's/-*without-//'`
+     # Reject names that are not valid shell variable names.
+-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+-      { echo "$as_me: error: invalid package name: $ac_package" >&2
+-   { (exit 1); exit 1; }; }
+-    ac_package=`echo $ac_package | sed 's/-/_/g'`
+-    eval "with_$ac_package=no" ;;
++    if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
++      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
++    fi
++    ac_package=`echo $ac_package| sed 's/-/_/g'`
++    eval "with_${ac_package}=no" ;;
+ 
+   --x)
+     # Obsolete; use --with-x.
+@@ -613,110 +379,99 @@
+     ac_prev=x_includes ;;
+   -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+   | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+-    x_includes=$ac_optarg ;;
++    x_includes="$ac_optarg" ;;
+ 
+   -x-libraries | --x-libraries | --x-librarie | --x-librari \
+   | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+     ac_prev=x_libraries ;;
+   -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+   | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+-    x_libraries=$ac_optarg ;;
++    x_libraries="$ac_optarg" ;;
+ 
+-  -*) { echo "$as_me: error: unrecognized option: $ac_option
+-Try \`$0 --help' for more information." >&2
+-   { (exit 1); exit 1; }; }
++  -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
+     ;;
+ 
+-  *=*)
+-    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+-    # Reject names that are not valid shell variable names.
+-    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
+-      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
+-   { (exit 1); exit 1; }; }
+-    ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
+-    eval "$ac_envvar='$ac_optarg'"
+-    export $ac_envvar ;;
+-
+   *)
+-    # FIXME: should be removed in autoconf 3.0.
+-    echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+-    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+-      echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+-    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
++    if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
++      echo "configure: warning: $ac_option: invalid host type" 1>&2
++    fi
++    if test "x$nonopt" != xNONE; then
++      { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
++    fi
++    nonopt="$ac_option"
+     ;;
+ 
+   esac
+ done
+ 
+ if test -n "$ac_prev"; then
+-  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+-  { echo "$as_me: error: missing argument to $ac_option" >&2
+-   { (exit 1); exit 1; }; }
++  { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
+ fi
+ 
+-# Be sure to have absolute paths.
+-for ac_var in exec_prefix prefix
+-do
+-  eval ac_val=$`echo $ac_var`
+-  case $ac_val in
+-    [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
+-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+-   { (exit 1); exit 1; }; };;
+-  esac
+-done
++trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+ 
+-# Be sure to have absolute paths.
+-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
+-              localstatedir libdir includedir oldincludedir infodir mandir
++# File descriptor usage:
++# 0 standard input
++# 1 file creation
++# 2 errors and warnings
++# 3 some systems may open it to /dev/tty
++# 4 used on the Kubota Titan
++# 6 checking for... messages and results
++# 5 compiler messages saved in config.log
++if test "$silent" = yes; then
++  exec 6>/dev/null
++else
++  exec 6>&1
++fi
++exec 5>./config.log
++
++echo "\
++This file contains any messages produced by compilers while
++running configure, to aid debugging if configure makes a mistake.
++" 1>&5
++
++# Strip out --no-create and --no-recursion so they do not pile up.
++# Also quote any args containing shell metacharacters.
++ac_configure_args=
++for ac_arg
+ do
+-  eval ac_val=$`echo $ac_var`
+-  case $ac_val in
+-    [\\/$]* | ?:[\\/]* ) ;;
+-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+-   { (exit 1); exit 1; }; };;
++  case "$ac_arg" in
++  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
++  | --no-cr | --no-c) ;;
++  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
++  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
++  *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
++  ac_configure_args="$ac_configure_args '$ac_arg'" ;;
++  *) ac_configure_args="$ac_configure_args $ac_arg" ;;
+   esac
+ done
+ 
+-# There might be people who depend on the old broken behavior: `$host'
+-# used to hold the argument of --host etc.
+-# FIXME: To remove some day.
+-build=$build_alias
+-host=$host_alias
+-target=$target_alias
++# NLS nuisances.
++# Only set these to C if already set.  These must not be set unconditionally
++# because not all systems understand e.g. LANG=C (notably SCO).
++# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
++# Non-C LC_CTYPE values break the ctype check.
++if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi
++if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
++if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
++if test "${LC_CTYPE+set}"    = set; then LC_CTYPE=C;    export LC_CTYPE;    fi
+ 
+-# FIXME: To remove some day.
+-if test "x$host_alias" != x; then
+-  if test "x$build_alias" = x; then
+-    cross_compiling=maybe
+-    echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+-    If a cross compiler is detected then cross compile mode will be used." >&2
+-  elif test "x$build_alias" != "x$host_alias"; then
+-    cross_compiling=yes
+-  fi
+-fi
++# confdefs.h avoids OS command line length limits that DEFS can exceed.
++rm -rf conftest* confdefs.h
++# AIX cpp loses on an empty file, so make sure it contains at least a newline.
++echo > confdefs.h
+ 
+-ac_tool_prefix=
+-test -n "$host_alias" && ac_tool_prefix=$host_alias-
++# A filename unique to this package, relative to the directory that
++# configure is in, which we can look for to find out if srcdir is correct.
++ac_unique_file=include/flite.h
+ 
+-test "$silent" = yes && exec 6>/dev/null
+-
+-
+ # Find the source files, if location was not specified.
+ if test -z "$srcdir"; then
+   ac_srcdir_defaulted=yes
+   # Try the directory containing this script, then its parent.
+-  ac_confdir=`(dirname "$0") 2>/dev/null ||
+-$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+-         X"$0" : 'X\(//\)[^/]' \| \
+-         X"$0" : 'X\(//\)$' \| \
+-         X"$0" : 'X\(/\)' \| \
+-         .     : '\(.\)' 2>/dev/null ||
+-echo X"$0" |
+-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+-  	  /^X\(\/\/\)$/{ s//\1/; q; }
+-  	  /^X\(\/\).*/{ s//\1/; q; }
+-  	  s/.*/./; q'`
++  ac_prog=$0
++  ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
++  test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
+   srcdir=$ac_confdir
+   if test ! -r $srcdir/$ac_unique_file; then
+     srcdir=..
+@@ -726,441 +481,13 @@
+ fi
+ if test ! -r $srcdir/$ac_unique_file; then
+   if test "$ac_srcdir_defaulted" = yes; then
+-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
+-   { (exit 1); exit 1; }; }
++    { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
+   else
+-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
+-   { (exit 1); exit 1; }; }
++    { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
+   fi
+ fi
+-(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
+-  { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
+-   { (exit 1); exit 1; }; }
+-srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
+-ac_env_build_alias_set=${build_alias+set}
+-ac_env_build_alias_value=$build_alias
+-ac_cv_env_build_alias_set=${build_alias+set}
+-ac_cv_env_build_alias_value=$build_alias
+-ac_env_host_alias_set=${host_alias+set}
+-ac_env_host_alias_value=$host_alias
+-ac_cv_env_host_alias_set=${host_alias+set}
+-ac_cv_env_host_alias_value=$host_alias
+-ac_env_target_alias_set=${target_alias+set}
+-ac_env_target_alias_value=$target_alias
+-ac_cv_env_target_alias_set=${target_alias+set}
+-ac_cv_env_target_alias_value=$target_alias
+-ac_env_CC_set=${CC+set}
+-ac_env_CC_value=$CC
+-ac_cv_env_CC_set=${CC+set}
+-ac_cv_env_CC_value=$CC
+-ac_env_CFLAGS_set=${CFLAGS+set}
+-ac_env_CFLAGS_value=$CFLAGS
+-ac_cv_env_CFLAGS_set=${CFLAGS+set}
+-ac_cv_env_CFLAGS_value=$CFLAGS
+-ac_env_LDFLAGS_set=${LDFLAGS+set}
+-ac_env_LDFLAGS_value=$LDFLAGS
+-ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
+-ac_cv_env_LDFLAGS_value=$LDFLAGS
+-ac_env_CPPFLAGS_set=${CPPFLAGS+set}
+-ac_env_CPPFLAGS_value=$CPPFLAGS
+-ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
+-ac_cv_env_CPPFLAGS_value=$CPPFLAGS
+-ac_env_CPP_set=${CPP+set}
+-ac_env_CPP_value=$CPP
+-ac_cv_env_CPP_set=${CPP+set}
+-ac_cv_env_CPP_value=$CPP
++srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
+ 
+-#
+-# Report the --help message.
+-#
+-if test "$ac_init_help" = "long"; then
+-  # Omit some internal or obsolete options to make the list less imposing.
+-  # This message is too long to be a string in the A/UX 3.1 sh.
+-  cat <<_ACEOF
+-\`configure' configures this package to adapt to many kinds of systems.
+-
+-Usage: $0 [OPTION]... [VAR=VALUE]...
+-
+-To assign environment variables (e.g., CC, CFLAGS...), specify them as
+-VAR=VALUE.  See below for descriptions of some of the useful variables.
+-
+-Defaults for the options are specified in brackets.
+-
+-Configuration:
+-  -h, --help              display this help and exit
+-      --help=short        display options specific to this package
+-      --help=recursive    display the short help of all the included packages
+-  -V, --version           display version information and exit
+-  -q, --quiet, --silent   do not print \`checking...' messages
+-      --cache-file=FILE   cache test results in FILE [disabled]
+-  -C, --config-cache      alias for \`--cache-file=config.cache'
+-  -n, --no-create         do not create output files
+-      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
+-
+-_ACEOF
+-
+-  cat <<_ACEOF
+-Installation directories:
+-  --prefix=PREFIX         install architecture-independent files in PREFIX
+-                          [$ac_default_prefix]
+-  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+-                          [PREFIX]
+-
+-By default, \`make install' will install all the files in
+-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
+-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+-for instance \`--prefix=\$HOME'.
+-
+-For better control, use the options below.
+-
+-Fine tuning of the installation directories:
+-  --bindir=DIR           user executables [EPREFIX/bin]
+-  --sbindir=DIR          system admin executables [EPREFIX/sbin]
+-  --libexecdir=DIR       program executables [EPREFIX/libexec]
+-  --datadir=DIR          read-only architecture-independent data [PREFIX/share]
+-  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
+-  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
+-  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
+-  --libdir=DIR           object code libraries [EPREFIX/lib]
+-  --includedir=DIR       C header files [PREFIX/include]
+-  --oldincludedir=DIR    C header files for non-gcc [/usr/include]
+-  --infodir=DIR          info documentation [PREFIX/info]
+-  --mandir=DIR           man documentation [PREFIX/man]
+-_ACEOF
+-
+-  cat <<\_ACEOF
+-
+-System types:
+-  --build=BUILD     configure for building on BUILD [guessed]
+-  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
+-  --target=TARGET   configure for building compilers for TARGET [HOST]
+-_ACEOF
+-fi
+-
+-if test -n "$ac_init_help"; then
+-
+-  cat <<\_ACEOF
+-
+-Optional Features:
+-  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+-  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+-  --disable-shared     without shared library support
+-  --disable-sockets     without socket support
+-
+-Optional Packages:
+-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+-  --with-audio          with specific audio support (none linux freebsd etc)
+-  --with-lang           with language
+-  --with-vox            with vox
+-  --with-lex            with lexicon
+-
+-Some influential environment variables:
+-  CC          C compiler command
+-  CFLAGS      C compiler flags
+-  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
+-              nonstandard directory <lib dir>
+-  CPPFLAGS    C/C++ preprocessor flags, e.g. -I<include dir> if you have
+-              headers in a nonstandard directory <include dir>
+-  CPP         C preprocessor
+-
+-Use these variables to override the choices made by `configure' or to help
+-it to find libraries and programs with nonstandard names/locations.
+-
+-_ACEOF
+-fi
+-
+-if test "$ac_init_help" = "recursive"; then
+-  # If there are subdirs, report their specific --help.
+-  ac_popdir=`pwd`
+-  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+-    test -d $ac_dir || continue
+-    ac_builddir=.
+-
+-if test "$ac_dir" != .; then
+-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+-  # A "../" for each directory in $ac_dir_suffix.
+-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+-else
+-  ac_dir_suffix= ac_top_builddir=
+-fi
+-
+-case $srcdir in
+-  .)  # No --srcdir option.  We are building in place.
+-    ac_srcdir=.
+-    if test -z "$ac_top_builddir"; then
+-       ac_top_srcdir=.
+-    else
+-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+-    fi ;;
+-  [\\/]* | ?:[\\/]* )  # Absolute path.
+-    ac_srcdir=$srcdir$ac_dir_suffix;
+-    ac_top_srcdir=$srcdir ;;
+-  *) # Relative path.
+-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+-esac
+-# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
+-# absolute.
+-ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
+-ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
+-ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
+-ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
+-
+-    cd $ac_dir
+-    # Check for guested configure; otherwise get Cygnus style configure.
+-    if test -f $ac_srcdir/configure.gnu; then
+-      echo
+-      $SHELL $ac_srcdir/configure.gnu  --help=recursive
+-    elif test -f $ac_srcdir/configure; then
+-      echo
+-      $SHELL $ac_srcdir/configure  --help=recursive
+-    elif test -f $ac_srcdir/configure.ac ||
+-           test -f $ac_srcdir/configure.in; then
+-      echo
+-      $ac_configure --help
+-    else
+-      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+-    fi
+-    cd $ac_popdir
+-  done
+-fi
+-
+-test -n "$ac_init_help" && exit 0
+-if $ac_init_version; then
+-  cat <<\_ACEOF
+-
+-Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
+-Free Software Foundation, Inc.
+-This configure script is free software; the Free Software Foundation
+-gives unlimited permission to copy, distribute and modify it.
+-_ACEOF
+-  exit 0
+-fi
+-exec 5>config.log
+-cat >&5 <<_ACEOF
+-This file contains any messages produced by compilers while
+-running configure, to aid debugging if configure makes a mistake.
+-
+-It was created by $as_me, which was
+-generated by GNU Autoconf 2.57.  Invocation command line was
+-
+-  $ $0 $@
+-
+-_ACEOF
+-{
+-cat <<_ASUNAME
+-## --------- ##
+-## Platform. ##
+-## --------- ##
+-
+-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+-uname -m = `(uname -m) 2>/dev/null || echo unknown`
+-uname -r = `(uname -r) 2>/dev/null || echo unknown`
+-uname -s = `(uname -s) 2>/dev/null || echo unknown`
+-uname -v = `(uname -v) 2>/dev/null || echo unknown`
+-
+-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
+-
+-/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
+-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
+-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+-hostinfo               = `(hostinfo) 2>/dev/null               || echo unknown`
+-/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
+-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
+-/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
+-
+-_ASUNAME
+-
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  echo "PATH: $as_dir"
+-done
+-
+-} >&5
+-
+-cat >&5 <<_ACEOF
+-
+-
+-## ----------- ##
+-## Core tests. ##
+-## ----------- ##
+-
+-_ACEOF
+-
+-
+-# Keep a trace of the command line.
+-# Strip out --no-create and --no-recursion so they do not pile up.
+-# Strip out --silent because we don't want to record it for future runs.
+-# Also quote any args containing shell meta-characters.
+-# Make two passes to allow for proper duplicate-argument suppression.
+-ac_configure_args=
+-ac_configure_args0=
+-ac_configure_args1=
+-ac_sep=
+-ac_must_keep_next=false
+-for ac_pass in 1 2
+-do
+-  for ac_arg
+-  do
+-    case $ac_arg in
+-    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+-    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+-    | -silent | --silent | --silen | --sile | --sil)
+-      continue ;;
+-    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+-      ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+-    esac
+-    case $ac_pass in
+-    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
+-    2)
+-      ac_configure_args1="$ac_configure_args1 '$ac_arg'"
+-      if test $ac_must_keep_next = true; then
+-        ac_must_keep_next=false # Got value, back to normal.
+-      else
+-        case $ac_arg in
+-          *=* | --config-cache | -C | -disable-* | --disable-* \
+-          | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+-          | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+-          | -with-* | --with-* | -without-* | --without-* | --x)
+-            case "$ac_configure_args0 " in
+-              "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+-            esac
+-            ;;
+-          -* ) ac_must_keep_next=true ;;
+-        esac
+-      fi
+-      ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
+-      # Get rid of the leading space.
+-      ac_sep=" "
+-      ;;
+-    esac
+-  done
+-done
+-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
+-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
+-
+-# When interrupted or exit'd, cleanup temporary files, and complete
+-# config.log.  We remove comments because anyway the quotes in there
+-# would cause problems or look ugly.
+-# WARNING: Be sure not to use single quotes in there, as some shells,
+-# such as our DU 5.0 friend, will then `close' the trap.
+-trap 'exit_status=$?
+-  # Save into config.log some information that might help in debugging.
+-  {
+-    echo
+-
+-    cat <<\_ASBOX
+-## ---------------- ##
+-## Cache variables. ##
+-## ---------------- ##
+-_ASBOX
+-    echo
+-    # The following way of writing the cache mishandles newlines in values,
+-{
+-  (set) 2>&1 |
+-    case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
+-    *ac_space=\ *)
+-      sed -n \
+-        "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
+-    	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
+-      ;;
+-    *)
+-      sed -n \
+-        "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+-      ;;
+-    esac;
+-}
+-    echo
+-
+-    cat <<\_ASBOX
+-## ----------------- ##
+-## Output variables. ##
+-## ----------------- ##
+-_ASBOX
+-    echo
+-    for ac_var in $ac_subst_vars
+-    do
+-      eval ac_val=$`echo $ac_var`
+-      echo "$ac_var='"'"'$ac_val'"'"'"
+-    done | sort
+-    echo
+-
+-    if test -n "$ac_subst_files"; then
+-      cat <<\_ASBOX
+-## ------------- ##
+-## Output files. ##
+-## ------------- ##
+-_ASBOX
+-      echo
+-      for ac_var in $ac_subst_files
+-      do
+-	eval ac_val=$`echo $ac_var`
+-        echo "$ac_var='"'"'$ac_val'"'"'"
+-      done | sort
+-      echo
+-    fi
+-
+-    if test -s confdefs.h; then
+-      cat <<\_ASBOX
+-## ----------- ##
+-## confdefs.h. ##
+-## ----------- ##
+-_ASBOX
+-      echo
+-      sed "/^$/d" confdefs.h | sort
+-      echo
+-    fi
+-    test "$ac_signal" != 0 &&
+-      echo "$as_me: caught signal $ac_signal"
+-    echo "$as_me: exit $exit_status"
+-  } >&5
+-  rm -f core core.* *.core &&
+-  rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
+-    exit $exit_status
+-     ' 0
+-for ac_signal in 1 2 13 15; do
+-  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
+-done
+-ac_signal=0
+-
+-# confdefs.h avoids OS command line length limits that DEFS can exceed.
+-rm -rf conftest* confdefs.h
+-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+-echo >confdefs.h
+-
+-# Predefined preprocessor variables.
+-
+-cat >>confdefs.h <<_ACEOF
+-#define PACKAGE_NAME "$PACKAGE_NAME"
+-_ACEOF
+-
+-
+-cat >>confdefs.h <<_ACEOF
+-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+-_ACEOF
+-
+-
+-cat >>confdefs.h <<_ACEOF
+-#define PACKAGE_VERSION "$PACKAGE_VERSION"
+-_ACEOF
+-
+-
+-cat >>confdefs.h <<_ACEOF
+-#define PACKAGE_STRING "$PACKAGE_STRING"
+-_ACEOF
+-
+-
+-cat >>confdefs.h <<_ACEOF
+-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+-_ACEOF
+-
+-
+-# Let the site file select an alternate cache file if it wants to.
+ # Prefer explicitly selected file to automatically selected ones.
+ if test -z "$CONFIG_SITE"; then
+   if test "x$prefix" != xNONE; then
+@@ -1171,106 +498,42 @@
+ fi
+ for ac_site_file in $CONFIG_SITE; do
+   if test -r "$ac_site_file"; then
+-    { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
+-echo "$as_me: loading site script $ac_site_file" >&6;}
+-    sed 's/^/| /' "$ac_site_file" >&5
++    echo "loading site script $ac_site_file"
+     . "$ac_site_file"
+   fi
+ done
+ 
+ if test -r "$cache_file"; then
+-  # Some versions of bash will fail to source /dev/null (special
+-  # files actually), so we avoid doing that.
+-  if test -f "$cache_file"; then
+-    { echo "$as_me:$LINENO: loading cache $cache_file" >&5
+-echo "$as_me: loading cache $cache_file" >&6;}
+-    case $cache_file in
+-      [\\/]* | ?:[\\/]* ) . $cache_file;;
+-      *)                      . ./$cache_file;;
+-    esac
+-  fi
++  echo "loading cache $cache_file"
++  . $cache_file
+ else
+-  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
+-echo "$as_me: creating cache $cache_file" >&6;}
+-  >$cache_file
++  echo "creating cache $cache_file"
++  > $cache_file
+ fi
+ 
+-# Check that the precious variables saved in the cache have kept the same
+-# value.
+-ac_cache_corrupted=false
+-for ac_var in `(set) 2>&1 |
+-               sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
+-  eval ac_old_set=\$ac_cv_env_${ac_var}_set
+-  eval ac_new_set=\$ac_env_${ac_var}_set
+-  eval ac_old_val="\$ac_cv_env_${ac_var}_value"
+-  eval ac_new_val="\$ac_env_${ac_var}_value"
+-  case $ac_old_set,$ac_new_set in
+-    set,)
+-      { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+-echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+-      ac_cache_corrupted=: ;;
+-    ,set)
+-      { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
+-echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+-      ac_cache_corrupted=: ;;
+-    ,);;
+-    *)
+-      if test "x$ac_old_val" != "x$ac_new_val"; then
+-        { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
+-echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+-        { echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
+-echo "$as_me:   former value:  $ac_old_val" >&2;}
+-        { echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
+-echo "$as_me:   current value: $ac_new_val" >&2;}
+-        ac_cache_corrupted=:
+-      fi;;
+-  esac
+-  # Pass precious variables to config.status.
+-  if test "$ac_new_set" = set; then
+-    case $ac_new_val in
+-    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+-      ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+-    *) ac_arg=$ac_var=$ac_new_val ;;
+-    esac
+-    case " $ac_configure_args " in
+-      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
+-      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+-    esac
+-  fi
+-done
+-if $ac_cache_corrupted; then
+-  { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
+-echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+-  { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+-echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-
+ ac_ext=c
++# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ ac_cpp='$CPP $CPPFLAGS'
+-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+-ac_compiler_gnu=$ac_cv_c_compiler_gnu
++ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
++ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
++cross_compiling=$ac_cv_prog_cc_cross
+ 
++ac_exeext=
++ac_objext=o
++if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
++  # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
++  if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
++    ac_n= ac_c='
++' ac_t='	'
++  else
++    ac_n=-n ac_c= ac_t=
++  fi
++else
++  ac_n= ac_c='\c' ac_t=
++fi
+ 
+ 
+ 
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+ ac_aux_dir=
+ for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
+   if test -f $ac_dir/install-sh; then
+@@ -1281,740 +544,312 @@
+     ac_aux_dir=$ac_dir
+     ac_install_sh="$ac_aux_dir/install.sh -c"
+     break
+-  elif test -f $ac_dir/shtool; then
+-    ac_aux_dir=$ac_dir
+-    ac_install_sh="$ac_aux_dir/shtool install -c"
+-    break
+   fi
+ done
+ if test -z "$ac_aux_dir"; then
+-  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
+-echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
+-   { (exit 1); exit 1; }; }
++  { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
+ fi
+-ac_config_guess="$SHELL $ac_aux_dir/config.guess"
+-ac_config_sub="$SHELL $ac_aux_dir/config.sub"
+-ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
++ac_config_guess=$ac_aux_dir/config.guess
++ac_config_sub=$ac_aux_dir/config.sub
++ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
+ 
+-# Make sure we can run config.sub.
+-$ac_config_sub sun4 >/dev/null 2>&1 ||
+-  { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
+-echo "$as_me: error: cannot run $ac_config_sub" >&2;}
+-   { (exit 1); exit 1; }; }
+ 
+-echo "$as_me:$LINENO: checking build system type" >&5
+-echo $ECHO_N "checking build system type... $ECHO_C" >&6
+-if test "${ac_cv_build+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  ac_cv_build_alias=$build_alias
+-test -z "$ac_cv_build_alias" &&
+-  ac_cv_build_alias=`$ac_config_guess`
+-test -z "$ac_cv_build_alias" &&
+-  { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
+-echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
+-   { (exit 1); exit 1; }; }
+-ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
+-  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
+-echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
+-   { (exit 1); exit 1; }; }
++# Do some error checking and defaulting for the host and target type.
++# The inputs are:
++#    configure --host=HOST --target=TARGET --build=BUILD NONOPT
++#
++# The rules are:
++# 1. You are not allowed to specify --host, --target, and nonopt at the
++#    same time.
++# 2. Host defaults to nonopt.
++# 3. If nonopt is not specified, then host defaults to the current host,
++#    as determined by config.guess.
++# 4. Target and build default to nonopt.
++# 5. If nonopt is not specified, then target and build default to host.
+ 
++# The aliases save the names the user supplied, while $host etc.
++# will get canonicalized.
++case $host---$target---$nonopt in
++NONE---*---* | *---NONE---* | *---*---NONE) ;;
++*) { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ;;
++esac
++
++
++# Make sure we can run config.sub.
++if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
++else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
+ fi
+-echo "$as_me:$LINENO: result: $ac_cv_build" >&5
+-echo "${ECHO_T}$ac_cv_build" >&6
+-build=$ac_cv_build
+-build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+-build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+-build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+ 
++echo $ac_n "checking host system type""... $ac_c" 1>&6
++echo "configure:585: checking host system type" >&5
+ 
+-echo "$as_me:$LINENO: checking host system type" >&5
+-echo $ECHO_N "checking host system type... $ECHO_C" >&6
+-if test "${ac_cv_host+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  ac_cv_host_alias=$host_alias
+-test -z "$ac_cv_host_alias" &&
+-  ac_cv_host_alias=$ac_cv_build_alias
+-ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
+-  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
+-echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
+-   { (exit 1); exit 1; }; }
++host_alias=$host
++case "$host_alias" in
++NONE)
++  case $nonopt in
++  NONE)
++    if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
++    else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
++    fi ;;
++  *) host_alias=$nonopt ;;
++  esac ;;
++esac
+ 
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_host" >&5
+-echo "${ECHO_T}$ac_cv_host" >&6
+-host=$ac_cv_host
+-host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+-host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+-host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
++host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
++host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
++host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
++host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
++echo "$ac_t""$host" 1>&6
+ 
++echo $ac_n "checking target system type""... $ac_c" 1>&6
++echo "configure:606: checking target system type" >&5
+ 
+-echo "$as_me:$LINENO: checking target system type" >&5
+-echo $ECHO_N "checking target system type... $ECHO_C" >&6
+-if test "${ac_cv_target+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  ac_cv_target_alias=$target_alias
+-test "x$ac_cv_target_alias" = "x" &&
+-  ac_cv_target_alias=$ac_cv_host_alias
+-ac_cv_target=`$ac_config_sub $ac_cv_target_alias` ||
+-  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_target_alias failed" >&5
+-echo "$as_me: error: $ac_config_sub $ac_cv_target_alias failed" >&2;}
+-   { (exit 1); exit 1; }; }
++target_alias=$target
++case "$target_alias" in
++NONE)
++  case $nonopt in
++  NONE) target_alias=$host_alias ;;
++  *) target_alias=$nonopt ;;
++  esac ;;
++esac
+ 
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_target" >&5
+-echo "${ECHO_T}$ac_cv_target" >&6
+-target=$ac_cv_target
+-target_cpu=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+-target_vendor=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+-target_os=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
++target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias`
++target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
++target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
++target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
++echo "$ac_t""$target" 1>&6
+ 
++echo $ac_n "checking build system type""... $ac_c" 1>&6
++echo "configure:624: checking build system type" >&5
+ 
+-# The aliases save the names the user supplied, while $host etc.
+-# will get canonicalized.
+-test -n "$target_alias" &&
++build_alias=$build
++case "$build_alias" in
++NONE)
++  case $nonopt in
++  NONE) build_alias=$host_alias ;;
++  *) build_alias=$nonopt ;;
++  esac ;;
++esac
++
++build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias`
++build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
++build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
++build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
++echo "$ac_t""$build" 1>&6
++
++test "$host_alias" != "$target_alias" &&
+   test "$program_prefix$program_suffix$program_transform_name" = \
+     NONENONEs,x,x, &&
+   program_prefix=${target_alias}-
+-ac_ext=c
+-ac_cpp='$CPP $CPPFLAGS'
+-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+-if test -n "$ac_tool_prefix"; then
+-  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+-set dummy ${ac_tool_prefix}gcc; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_CC+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -n "$CC"; then
+-  ac_cv_prog_CC="$CC" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_CC="${ac_tool_prefix}gcc"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+ 
+-fi
+-fi
+-CC=$ac_cv_prog_CC
+-if test -n "$CC"; then
+-  echo "$as_me:$LINENO: result: $CC" >&5
+-echo "${ECHO_T}$CC" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-fi
+-if test -z "$ac_cv_prog_CC"; then
+-  ac_ct_CC=$CC
+-  # Extract the first word of "gcc", so it can be a program name with args.
++# Extract the first word of "gcc", so it can be a program name with args.
+ set dummy gcc; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
++echo "configure:649: checking for $ac_word" >&5
++if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
++  echo $ac_n "(cached) $ac_c" 1>&6
+ else
+-  if test -n "$ac_ct_CC"; then
+-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_ac_ct_CC="gcc"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-fi
+-fi
+-ac_ct_CC=$ac_cv_prog_ac_ct_CC
+-if test -n "$ac_ct_CC"; then
+-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+-echo "${ECHO_T}$ac_ct_CC" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-  CC=$ac_ct_CC
+-else
+-  CC="$ac_cv_prog_CC"
+-fi
+-
+-if test -z "$CC"; then
+-  if test -n "$ac_tool_prefix"; then
+-  # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+-set dummy ${ac_tool_prefix}cc; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_CC+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+   if test -n "$CC"; then
+   ac_cv_prog_CC="$CC" # Let the user override the test.
+ else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_CC="${ac_tool_prefix}cc"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
++  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
++  ac_dummy="$PATH"
++  for ac_dir in $ac_dummy; do
++    test -z "$ac_dir" && ac_dir=.
++    if test -f $ac_dir/$ac_word; then
++      ac_cv_prog_CC="gcc"
++      break
++    fi
++  done
++  IFS="$ac_save_ifs"
+ fi
+ fi
+-CC=$ac_cv_prog_CC
++CC="$ac_cv_prog_CC"
+ if test -n "$CC"; then
+-  echo "$as_me:$LINENO: result: $CC" >&5
+-echo "${ECHO_T}$CC" >&6
++  echo "$ac_t""$CC" 1>&6
+ else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
++  echo "$ac_t""no" 1>&6
+ fi
+ 
+-fi
+-if test -z "$ac_cv_prog_CC"; then
+-  ac_ct_CC=$CC
+-  # Extract the first word of "cc", so it can be a program name with args.
+-set dummy cc; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -n "$ac_ct_CC"; then
+-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_ac_ct_CC="cc"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-fi
+-fi
+-ac_ct_CC=$ac_cv_prog_ac_ct_CC
+-if test -n "$ac_ct_CC"; then
+-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+-echo "${ECHO_T}$ac_ct_CC" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-  CC=$ac_ct_CC
+-else
+-  CC="$ac_cv_prog_CC"
+-fi
+-
+-fi
+ if test -z "$CC"; then
+   # Extract the first word of "cc", so it can be a program name with args.
+ set dummy cc; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_CC+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
++echo "configure:679: checking for $ac_word" >&5
++if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
++  echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   if test -n "$CC"; then
+   ac_cv_prog_CC="$CC" # Let the user override the test.
+ else
++  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+   ac_prog_rejected=no
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+-       ac_prog_rejected=yes
+-       continue
+-     fi
+-    ac_cv_prog_CC="cc"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
++  ac_dummy="$PATH"
++  for ac_dir in $ac_dummy; do
++    test -z "$ac_dir" && ac_dir=.
++    if test -f $ac_dir/$ac_word; then
++      if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
++        ac_prog_rejected=yes
++	continue
++      fi
++      ac_cv_prog_CC="cc"
++      break
++    fi
++  done
++  IFS="$ac_save_ifs"
+ if test $ac_prog_rejected = yes; then
+   # We found a bogon in the path, so make sure we never use it.
+   set dummy $ac_cv_prog_CC
+   shift
+-  if test $# != 0; then
++  if test $# -gt 0; then
+     # We chose a different compiler from the bogus one.
+     # However, it has the same basename, so the bogon will be chosen
+     # first if we set CC to just the basename; use the full file name.
+     shift
+-    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
++    set dummy "$ac_dir/$ac_word" "$@"
++    shift
++    ac_cv_prog_CC="$@"
+   fi
+ fi
+ fi
+ fi
+-CC=$ac_cv_prog_CC
++CC="$ac_cv_prog_CC"
+ if test -n "$CC"; then
+-  echo "$as_me:$LINENO: result: $CC" >&5
+-echo "${ECHO_T}$CC" >&6
++  echo "$ac_t""$CC" 1>&6
+ else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
++  echo "$ac_t""no" 1>&6
+ fi
+ 
+-fi
+-if test -z "$CC"; then
+-  if test -n "$ac_tool_prefix"; then
+-  for ac_prog in cl
+-  do
+-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_CC+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
++  if test -z "$CC"; then
++    case "`uname -s`" in
++    *win32* | *WIN32*)
++      # Extract the first word of "cl", so it can be a program name with args.
++set dummy cl; ac_word=$2
++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
++echo "configure:730: checking for $ac_word" >&5
++if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
++  echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   if test -n "$CC"; then
+   ac_cv_prog_CC="$CC" # Let the user override the test.
+ else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
++  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
++  ac_dummy="$PATH"
++  for ac_dir in $ac_dummy; do
++    test -z "$ac_dir" && ac_dir=.
++    if test -f $ac_dir/$ac_word; then
++      ac_cv_prog_CC="cl"
++      break
++    fi
++  done
++  IFS="$ac_save_ifs"
+ fi
+ fi
+-CC=$ac_cv_prog_CC
++CC="$ac_cv_prog_CC"
+ if test -n "$CC"; then
+-  echo "$as_me:$LINENO: result: $CC" >&5
+-echo "${ECHO_T}$CC" >&6
++  echo "$ac_t""$CC" 1>&6
+ else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
++  echo "$ac_t""no" 1>&6
+ fi
+-
+-    test -n "$CC" && break
+-  done
+-fi
+-if test -z "$CC"; then
+-  ac_ct_CC=$CC
+-  for ac_prog in cl
+-do
+-  # Extract the first word of "$ac_prog", so it can be a program name with args.
+-set dummy $ac_prog; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -n "$ac_ct_CC"; then
+-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_ac_ct_CC="$ac_prog"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
++ ;;
++    esac
+   fi
+-done
+-done
+-
++  test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
+ fi
+-fi
+-ac_ct_CC=$ac_cv_prog_ac_ct_CC
+-if test -n "$ac_ct_CC"; then
+-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+-echo "${ECHO_T}$ac_ct_CC" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+ 
+-  test -n "$ac_ct_CC" && break
+-done
++echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
++echo "configure:762: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+ 
+-  CC=$ac_ct_CC
+-fi
++ac_ext=c
++# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
++ac_cpp='$CPP $CPPFLAGS'
++ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
++ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
++cross_compiling=$ac_cv_prog_cc_cross
+ 
+-fi
++cat > conftest.$ac_ext << EOF
+ 
++#line 773 "configure"
++#include "confdefs.h"
+ 
+-test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
+-See \`config.log' for more details." >&5
+-echo "$as_me: error: no acceptable C compiler found in \$PATH
+-See \`config.log' for more details." >&2;}
+-   { (exit 1); exit 1; }; }
+-
+-# Provide some information about the compiler.
+-echo "$as_me:$LINENO:" \
+-     "checking for C compiler version" >&5
+-ac_compiler=`set X $ac_compile; echo $2`
+-{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
+-  (eval $ac_compiler --version </dev/null >&5) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }
+-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
+-  (eval $ac_compiler -v </dev/null >&5) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }
+-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
+-  (eval $ac_compiler -V </dev/null >&5) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }
+-
+-cat >conftest.$ac_ext <<_ACEOF
+-#line $LINENO "configure"
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-int
+-main ()
+-{
+-
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-ac_clean_files_save=$ac_clean_files
+-ac_clean_files="$ac_clean_files a.out a.exe b.out"
+-# Try to create an executable without -o first, disregard a.out.
+-# It will help us diagnose broken compilers, and finding out an intuition
+-# of exeext.
+-echo "$as_me:$LINENO: checking for C compiler default output" >&5
+-echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
+-ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+-if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
+-  (eval $ac_link_default) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; then
+-  # Find the output, starting from the most likely.  This scheme is
+-# not robust to junk in `.', hence go to wildcards (a.*) only as a last
+-# resort.
+-
+-# Be careful to initialize this variable, since it used to be cached.
+-# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
+-ac_cv_exeext=
+-# b.out is created by i960 compilers.
+-for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
+-do
+-  test -f "$ac_file" || continue
+-  case $ac_file in
+-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
+-        ;;
+-    conftest.$ac_ext )
+-        # This is the source file.
+-        ;;
+-    [ab].out )
+-        # We found the default executable, but exeext='' is most
+-        # certainly right.
+-        break;;
+-    *.* )
+-        ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+-        # FIXME: I believe we export ac_cv_exeext for Libtool,
+-        # but it would be cool to find out if it's true.  Does anybody
+-        # maintain Libtool? --akim.
+-        export ac_cv_exeext
+-        break;;
+-    * )
+-        break;;
+-  esac
+-done
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
+-See \`config.log' for more details." >&5
+-echo "$as_me: error: C compiler cannot create executables
+-See \`config.log' for more details." >&2;}
+-   { (exit 77); exit 77; }; }
+-fi
+-
+-ac_exeext=$ac_cv_exeext
+-echo "$as_me:$LINENO: result: $ac_file" >&5
+-echo "${ECHO_T}$ac_file" >&6
+-
+-# Check the compiler produces executables we can run.  If not, either
+-# the compiler is broken, or we cross compile.
+-echo "$as_me:$LINENO: checking whether the C compiler works" >&5
+-echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
+-# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
+-# If not cross compiling, check that we can run a simple program.
+-if test "$cross_compiling" != yes; then
+-  if { ac_try='./$ac_file'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-    cross_compiling=no
++main(){return(0);}
++EOF
++if { (eval echo configure:778: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++  ac_cv_prog_cc_works=yes
++  # If we can't run a trivial program, we are probably using a cross compiler.
++  if (./conftest; exit) 2>/dev/null; then
++    ac_cv_prog_cc_cross=no
+   else
+-    if test "$cross_compiling" = maybe; then
+-	cross_compiling=yes
+-    else
+-	{ { echo "$as_me:$LINENO: error: cannot run C compiled programs.
+-If you meant to cross compile, use \`--host'.
+-See \`config.log' for more details." >&5
+-echo "$as_me: error: cannot run C compiled programs.
+-If you meant to cross compile, use \`--host'.
+-See \`config.log' for more details." >&2;}
+-   { (exit 1); exit 1; }; }
+-    fi
++    ac_cv_prog_cc_cross=yes
+   fi
++else
++  echo "configure: failed program was:" >&5
++  cat conftest.$ac_ext >&5
++  ac_cv_prog_cc_works=no
+ fi
+-echo "$as_me:$LINENO: result: yes" >&5
+-echo "${ECHO_T}yes" >&6
++rm -fr conftest*
++ac_ext=c
++# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
++ac_cpp='$CPP $CPPFLAGS'
++ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
++ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
++cross_compiling=$ac_cv_prog_cc_cross
+ 
+-rm -f a.out a.exe conftest$ac_cv_exeext b.out
+-ac_clean_files=$ac_clean_files_save
+-# Check the compiler produces executables we can run.  If not, either
+-# the compiler is broken, or we cross compile.
+-echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
+-echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
+-echo "$as_me:$LINENO: result: $cross_compiling" >&5
+-echo "${ECHO_T}$cross_compiling" >&6
+-
+-echo "$as_me:$LINENO: checking for suffix of executables" >&5
+-echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
+-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+-  (eval $ac_link) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; then
+-  # If both `conftest.exe' and `conftest' are `present' (well, observable)
+-# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
+-# work properly (i.e., refer to `conftest.exe'), while it won't with
+-# `rm'.
+-for ac_file in conftest.exe conftest conftest.*; do
+-  test -f "$ac_file" || continue
+-  case $ac_file in
+-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
+-    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+-          export ac_cv_exeext
+-          break;;
+-    * ) break;;
+-  esac
+-done
+-else
+-  { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
+-See \`config.log' for more details." >&5
+-echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
+-See \`config.log' for more details." >&2;}
+-   { (exit 1); exit 1; }; }
++echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
++if test $ac_cv_prog_cc_works = no; then
++  { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
+ fi
++echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
++echo "configure:804: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
++echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
++cross_compiling=$ac_cv_prog_cc_cross
+ 
+-rm -f conftest$ac_cv_exeext
+-echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
+-echo "${ECHO_T}$ac_cv_exeext" >&6
+-
+-rm -f conftest.$ac_ext
+-EXEEXT=$ac_cv_exeext
+-ac_exeext=$EXEEXT
+-echo "$as_me:$LINENO: checking for suffix of object files" >&5
+-echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
+-if test "${ac_cv_objext+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
++echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
++echo "configure:809: checking whether we are using GNU C" >&5
++if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
++  echo $ac_n "(cached) $ac_c" 1>&6
+ else
+-  cat >conftest.$ac_ext <<_ACEOF
+-#line $LINENO "configure"
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-int
+-main ()
+-{
+-
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.o conftest.obj
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; then
+-  for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
+-  case $ac_file in
+-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
+-    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+-       break;;
+-  esac
+-done
++  cat > conftest.c <<EOF
++#ifdef __GNUC__
++  yes;
++#endif
++EOF
++if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:818: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
++  ac_cv_prog_gcc=yes
+ else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
+-See \`config.log' for more details." >&5
+-echo "$as_me: error: cannot compute suffix of object files: cannot compile
+-See \`config.log' for more details." >&2;}
+-   { (exit 1); exit 1; }; }
++  ac_cv_prog_gcc=no
+ fi
+-
+-rm -f conftest.$ac_cv_objext conftest.$ac_ext
+ fi
+-echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
+-echo "${ECHO_T}$ac_cv_objext" >&6
+-OBJEXT=$ac_cv_objext
+-ac_objext=$OBJEXT
+-echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+-echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
+-if test "${ac_cv_c_compiler_gnu+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat >conftest.$ac_ext <<_ACEOF
+-#line $LINENO "configure"
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+ 
+-int
+-main ()
+-{
+-#ifndef __GNUC__
+-       choke me
+-#endif
++echo "$ac_t""$ac_cv_prog_gcc" 1>&6
+ 
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-         { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  ac_compiler_gnu=yes
++if test $ac_cv_prog_gcc = yes; then
++  GCC=yes
+ else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-ac_compiler_gnu=no
++  GCC=
+ fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+-ac_cv_c_compiler_gnu=$ac_compiler_gnu
+ 
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+-echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
+-GCC=`test $ac_compiler_gnu = yes && echo yes`
+-ac_test_CFLAGS=${CFLAGS+set}
+-ac_save_CFLAGS=$CFLAGS
+-CFLAGS="-g"
+-echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+-echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
+-if test "${ac_cv_prog_cc_g+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
++ac_test_CFLAGS="${CFLAGS+set}"
++ac_save_CFLAGS="$CFLAGS"
++CFLAGS=
++echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
++echo "configure:837: checking whether ${CC-cc} accepts -g" >&5
++if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
++  echo $ac_n "(cached) $ac_c" 1>&6
+ else
+-  cat >conftest.$ac_ext <<_ACEOF
+-#line $LINENO "configure"
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-int
+-main ()
+-{
+-
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-         { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
++  echo 'void f(){}' > conftest.c
++if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
+   ac_cv_prog_cc_g=yes
+ else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
++  ac_cv_prog_cc_g=no
++fi
++rm -f conftest*
+ 
+-ac_cv_prog_cc_g=no
+ fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+-echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
++
++echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
+ if test "$ac_test_CFLAGS" = set; then
+-  CFLAGS=$ac_save_CFLAGS
++  CFLAGS="$ac_save_CFLAGS"
+ elif test $ac_cv_prog_cc_g = yes; then
+   if test "$GCC" = yes; then
+     CFLAGS="-g -O2"
+@@ -2028,304 +863,37 @@
+     CFLAGS=
+   fi
+ fi
+-echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
+-echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
+-if test "${ac_cv_prog_cc_stdc+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  ac_cv_prog_cc_stdc=no
+-ac_save_CC=$CC
+-cat >conftest.$ac_ext <<_ACEOF
+-#line $LINENO "configure"
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-#include <stdarg.h>
+-#include <stdio.h>
+-#include <sys/types.h>
+-#include <sys/stat.h>
+-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+-struct buf { int x; };
+-FILE * (*rcsopen) (struct buf *, struct stat *, int);
+-static char *e (p, i)
+-     char **p;
+-     int i;
+-{
+-  return p[i];
+-}
+-static char *f (char * (*g) (char **, int), char **p, ...)
+-{
+-  char *s;
+-  va_list v;
+-  va_start (v,p);
+-  s = g (p, va_arg (v,int));
+-  va_end (v);
+-  return s;
+-}
+-int test (int i, double x);
+-struct s1 {int (*f) (int a);};
+-struct s2 {int (*f) (double a);};
+-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+-int argc;
+-char **argv;
+-int
+-main ()
+-{
+-return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-# Don't try gcc -ansi; that turns off useful extensions and
+-# breaks some systems' header files.
+-# AIX			-qlanglvl=ansi
+-# Ultrix and OSF/1	-std1
+-# HP-UX 10.20 and later	-Ae
+-# HP-UX older versions	-Aa -D_HPUX_SOURCE
+-# SVR4			-Xc -D__EXTENSIONS__
+-for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+-do
+-  CC="$ac_save_CC $ac_arg"
+-  rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-         { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  ac_cv_prog_cc_stdc=$ac_arg
+-break
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+ 
+-fi
+-rm -f conftest.$ac_objext
+-done
+-rm -f conftest.$ac_ext conftest.$ac_objext
+-CC=$ac_save_CC
+-
+-fi
+-
+-case "x$ac_cv_prog_cc_stdc" in
+-  x|xno)
+-    echo "$as_me:$LINENO: result: none needed" >&5
+-echo "${ECHO_T}none needed" >&6 ;;
+-  *)
+-    echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
+-echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
+-    CC="$CC $ac_cv_prog_cc_stdc" ;;
+-esac
+-
+-# Some people use a C++ compiler to compile C.  Since we use `exit',
+-# in C++ we need to declare it.  In case someone uses the same compiler
+-# for both compiling C and C++ we need to have the C++ compiler decide
+-# the declaration of exit, since it's the most demanding environment.
+-cat >conftest.$ac_ext <<_ACEOF
+-#ifndef __cplusplus
+-  choke me
+-#endif
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-         { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  for ac_declaration in \
+-   ''\
+-   '#include <stdlib.h>' \
+-   'extern "C" void std::exit (int) throw (); using std::exit;' \
+-   'extern "C" void std::exit (int); using std::exit;' \
+-   'extern "C" void exit (int) throw ();' \
+-   'extern "C" void exit (int);' \
+-   'void exit (int);'
+-do
+-  cat >conftest.$ac_ext <<_ACEOF
+-#line $LINENO "configure"
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-#include <stdlib.h>
+-$ac_declaration
+-int
+-main ()
+-{
+-exit (42);
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-         { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  :
++# Extract the first word of "ranlib", so it can be a program name with args.
++set dummy ranlib; ac_word=$2
++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
++echo "configure:871: checking for $ac_word" >&5
++if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
++  echo $ac_n "(cached) $ac_c" 1>&6
+ else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-continue
+-fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+-  cat >conftest.$ac_ext <<_ACEOF
+-#line $LINENO "configure"
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-$ac_declaration
+-int
+-main ()
+-{
+-exit (42);
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-         { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  break
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+-done
+-rm -f conftest*
+-if test -n "$ac_declaration"; then
+-  echo '#ifdef __cplusplus' >>confdefs.h
+-  echo $ac_declaration      >>confdefs.h
+-  echo '#endif'             >>confdefs.h
+-fi
+-
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+-ac_ext=c
+-ac_cpp='$CPP $CPPFLAGS'
+-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+-
+-if test -n "$ac_tool_prefix"; then
+-  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_RANLIB+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+   if test -n "$RANLIB"; then
+   ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+ else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
++  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
++  ac_dummy="$PATH"
++  for ac_dir in $ac_dummy; do
++    test -z "$ac_dir" && ac_dir=.
++    if test -f $ac_dir/$ac_word; then
++      ac_cv_prog_RANLIB="ranlib"
++      break
++    fi
++  done
++  IFS="$ac_save_ifs"
++  test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
+ fi
+ fi
+-RANLIB=$ac_cv_prog_RANLIB
++RANLIB="$ac_cv_prog_RANLIB"
+ if test -n "$RANLIB"; then
+-  echo "$as_me:$LINENO: result: $RANLIB" >&5
+-echo "${ECHO_T}$RANLIB" >&6
++  echo "$ac_t""$RANLIB" 1>&6
+ else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
++  echo "$ac_t""no" 1>&6
+ fi
+ 
+-fi
+-if test -z "$ac_cv_prog_RANLIB"; then
+-  ac_ct_RANLIB=$RANLIB
+-  # Extract the first word of "ranlib", so it can be a program name with args.
+-set dummy ranlib; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -n "$ac_ct_RANLIB"; then
+-  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_ac_ct_RANLIB="ranlib"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-  test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
+-fi
+-fi
+-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+-if test -n "$ac_ct_RANLIB"; then
+-  echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
+-echo "${ECHO_T}$ac_ct_RANLIB" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-  RANLIB=$ac_ct_RANLIB
+-else
+-  RANLIB="$ac_cv_prog_RANLIB"
+-fi
+-
+ # Find a good install program.  We prefer a C program (faster),
+ # so one script is as good as another.  But avoid the broken or
+ # incompatible versions:
+@@ -2333,306 +901,158 @@
+ # SunOS /usr/etc/install
+ # IRIX /sbin/install
+ # AIX /bin/install
+-# AmigaOS /C/install, which installs bootblocks on floppy discs
+ # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+ # AFS /usr/afsws/bin/install, which mishandles nonexistent args
+ # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+ # ./install, which can be erroneously created by make from ./install.sh.
+-echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+-echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
++echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
++echo "configure:910: checking for a BSD compatible install" >&5
+ if test -z "$INSTALL"; then
+-if test "${ac_cv_path_install+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
++if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
++  echo $ac_n "(cached) $ac_c" 1>&6
+ else
+-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  # Account for people who put trailing slashes in PATH elements.
+-case $as_dir/ in
+-  ./ | .// | /cC/* | \
+-  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+-  /usr/ucb/* ) ;;
+-  *)
+-    # OSF1 and SCO ODT 3.0 have their own names for install.
+-    # Don't use installbsd from OSF since it installs stuff as root
+-    # by default.
+-    for ac_prog in ginstall scoinst install; do
+-      for ac_exec_ext in '' $ac_executable_extensions; do
+-        if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+-          if test $ac_prog = install &&
+-            grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+-            # AIX install.  It has an incompatible calling convention.
+-            :
+-          elif test $ac_prog = install &&
+-            grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+-            # program-specific install script used by HP pwplus--don't use.
+-            :
+-          else
+-            ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+-            break 3
+-          fi
+-        fi
++    IFS="${IFS= 	}"; ac_save_IFS="$IFS"; IFS=":"
++  for ac_dir in $PATH; do
++    # Account for people who put trailing slashes in PATH elements.
++    case "$ac_dir/" in
++    /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
++    *)
++      # OSF1 and SCO ODT 3.0 have their own names for install.
++      # Don't use installbsd from OSF since it installs stuff as root
++      # by default.
++      for ac_prog in ginstall scoinst install; do
++        if test -f $ac_dir/$ac_prog; then
++	  if test $ac_prog = install &&
++            grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
++	    # AIX install.  It has an incompatible calling convention.
++	    :
++	  else
++	    ac_cv_path_install="$ac_dir/$ac_prog -c"
++	    break 2
++	  fi
++	fi
+       done
+-    done
+-    ;;
+-esac
+-done
++      ;;
++    esac
++  done
++  IFS="$ac_save_IFS"
+ 
+-
+ fi
+   if test "${ac_cv_path_install+set}" = set; then
+-    INSTALL=$ac_cv_path_install
++    INSTALL="$ac_cv_path_install"
+   else
+     # As a last resort, use the slow shell script.  We don't cache a
+     # path for INSTALL within a source directory, because that will
+     # break other packages using the cache if that directory is
+     # removed, or if the path is relative.
+-    INSTALL=$ac_install_sh
++    INSTALL="$ac_install_sh"
+   fi
+ fi
+-echo "$as_me:$LINENO: result: $INSTALL" >&5
+-echo "${ECHO_T}$INSTALL" >&6
++echo "$ac_t""$INSTALL" 1>&6
+ 
+ # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+ # It thinks the first close brace ends the variable substitution.
+ test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+ 
+-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
++test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
+ 
+ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+ 
+-if test -n "$ac_tool_prefix"; then
+-  # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
++if test $host != $build; then
++  ac_tool_prefix=${host_alias}-
++else
++  ac_tool_prefix=
++fi
++
++# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ar; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_AR+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
++echo "configure:971: checking for $ac_word" >&5
++if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
++  echo $ac_n "(cached) $ac_c" 1>&6
+ else
+   if test -n "$AR"; then
+   ac_cv_prog_AR="$AR" # Let the user override the test.
+ else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_AR="${ac_tool_prefix}ar"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
++  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
++  ac_dummy="$PATH"
++  for ac_dir in $ac_dummy; do
++    test -z "$ac_dir" && ac_dir=.
++    if test -f $ac_dir/$ac_word; then
++      ac_cv_prog_AR="${ac_tool_prefix}ar"
++      break
++    fi
++  done
++  IFS="$ac_save_ifs"
++  test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar"
+ fi
+ fi
+-AR=$ac_cv_prog_AR
++AR="$ac_cv_prog_AR"
+ if test -n "$AR"; then
+-  echo "$as_me:$LINENO: result: $AR" >&5
+-echo "${ECHO_T}$AR" >&6
++  echo "$ac_t""$AR" 1>&6
+ else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
++  echo "$ac_t""no" 1>&6
+ fi
+ 
+-fi
+-if test -z "$ac_cv_prog_AR"; then
+-  ac_ct_AR=$AR
+-  # Extract the first word of "ar", so it can be a program name with args.
+-set dummy ar; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -n "$ac_ct_AR"; then
+-  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_ac_ct_AR="ar"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+ 
+-fi
+-fi
+-ac_ct_AR=$ac_cv_prog_ac_ct_AR
+-if test -n "$ac_ct_AR"; then
+-  echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
+-echo "${ECHO_T}$ac_ct_AR" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+ 
+-  AR=$ac_ct_AR
++echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6
++echo "configure:1001: checking whether byte ordering is bigendian" >&5
++if eval "test \"`echo '$''{'ac_cv_c_bigendian'+set}'`\" = set"; then
++  echo $ac_n "(cached) $ac_c" 1>&6
+ else
+-  AR="$ac_cv_prog_AR"
+-fi
+-
+-
+-echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5
+-echo $ECHO_N "checking whether byte ordering is bigendian... $ECHO_C" >&6
+-if test "${ac_cv_c_bigendian+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  # See if sys/param.h defines the BYTE_ORDER macro.
+-cat >conftest.$ac_ext <<_ACEOF
+-#line $LINENO "configure"
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
++  ac_cv_c_bigendian=unknown
++# See if sys/param.h defines the BYTE_ORDER macro.
++cat > conftest.$ac_ext <<EOF
++#line 1008 "configure"
++#include "confdefs.h"
+ #include <sys/types.h>
+ #include <sys/param.h>
++int main() {
+ 
+-int
+-main ()
+-{
+ #if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
+  bogus endian macros
+ #endif
+-
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-         { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
++; return 0; }
++EOF
++if { (eval echo configure:1019: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++  rm -rf conftest*
+   # It does; now see whether it defined to BIG_ENDIAN or not.
+-cat >conftest.$ac_ext <<_ACEOF
+-#line $LINENO "configure"
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
++cat > conftest.$ac_ext <<EOF
++#line 1023 "configure"
++#include "confdefs.h"
+ #include <sys/types.h>
+ #include <sys/param.h>
++int main() {
+ 
+-int
+-main ()
+-{
+ #if BYTE_ORDER != BIG_ENDIAN
+  not big endian
+ #endif
+-
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-         { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
++; return 0; }
++EOF
++if { (eval echo configure:1034: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++  rm -rf conftest*
+   ac_cv_c_bigendian=yes
+ else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-ac_cv_c_bigendian=no
++  echo "configure: failed program was:" >&5
++  cat conftest.$ac_ext >&5
++  rm -rf conftest*
++  ac_cv_c_bigendian=no
+ fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
++rm -f conftest*
+ else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-# It does not; compile a test program.
+-if test "$cross_compiling" = yes; then
+-  # try to guess the endianness by grepping values into an object file
+-  ac_cv_c_bigendian=unknown
+-  cat >conftest.$ac_ext <<_ACEOF
+-#line $LINENO "configure"
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-short ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
+-short ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
+-void _ascii () { char *s = (char *) ascii_mm; s = (char *) ascii_ii; }
+-short ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
+-short ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
+-void _ebcdic () { char *s = (char *) ebcdic_mm; s = (char *) ebcdic_ii; }
+-int
+-main ()
+-{
+- _ascii (); _ebcdic ();
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-         { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  if grep BIGenDianSyS conftest.$ac_objext >/dev/null ; then
+-  ac_cv_c_bigendian=yes
++  echo "configure: failed program was:" >&5
++  cat conftest.$ac_ext >&5
+ fi
+-if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
+-  if test "$ac_cv_c_bigendian" = unknown; then
+-    ac_cv_c_bigendian=no
+-  else
+-    # finding both strings is unlikely to happen, but who knows?
+-    ac_cv_c_bigendian=unknown
+-  fi
+-fi
++rm -f conftest*
++if test $ac_cv_c_bigendian = unknown; then
++if test "$cross_compiling" = yes; then
++    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
+ else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+-else
+-  cat >conftest.$ac_ext <<_ACEOF
+-#line $LINENO "configure"
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-int
+-main ()
+-{
++  cat > conftest.$ac_ext <<EOF
++#line 1054 "configure"
++#include "confdefs.h"
++main () {
+   /* Are we little or big endian?  From Harbison&Steele.  */
+   union
+   {
+@@ -2642,52 +1062,31 @@
+   u.l = 1;
+   exit (u.c[sizeof (long) - 1] == 1);
+ }
+-_ACEOF
+-rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+-  (eval $ac_link) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
++EOF
++if { (eval echo configure:1067: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
++then
+   ac_cv_c_bigendian=no
+ else
+-  echo "$as_me: program exited with status $ac_status" >&5
+-echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-( exit $ac_status )
+-ac_cv_c_bigendian=yes
++  echo "configure: failed program was:" >&5
++  cat conftest.$ac_ext >&5
++  rm -fr conftest*
++  ac_cv_c_bigendian=yes
+ fi
+-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
++rm -fr conftest*
+ fi
++
+ fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5
+-echo "${ECHO_T}$ac_cv_c_bigendian" >&6
+-case $ac_cv_c_bigendian in
+-  yes)
+ 
+-cat >>confdefs.h <<\_ACEOF
++echo "$ac_t""$ac_cv_c_bigendian" 1>&6
++if test $ac_cv_c_bigendian = yes; then
++  cat >> confdefs.h <<\EOF
+ #define WORDS_BIGENDIAN 1
+-_ACEOF
+- ;;
+-  no)
+-     ;;
+-  *)
+-    { { echo "$as_me:$LINENO: error: unknown endianness
+-presetting ac_cv_c_bigendian=no (or yes) will help" >&5
+-echo "$as_me: error: unknown endianness
+-presetting ac_cv_c_bigendian=no (or yes) will help" >&2;}
+-   { (exit 1); exit 1; }; } ;;
+-esac
++EOF
+ 
++fi
+ 
++
+ if test "x$GCC" = "xyes"; then
+ 	CFLAGS="$CFLAGS -Wall"
+ fi
+@@ -2697,14 +1096,13 @@
+   case "${enableval}" in
+                  yes) shared=true ;;
+                  no) shared=false ;;
+-                 *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for shared options" >&5
+-echo "$as_me: error: bad value ${enableval} for shared options" >&2;}
+-   { (exit 1); exit 1; }; } ;;
++                 *) { echo "configure: error: bad value ${enableval} for shared options" 1>&2; exit 1; } ;;
+                  esac
+ else
+   shared=false
+-fi;
++fi
+ 
++
+ case "$target_cpu" in
+      i386|i486|i586|i686)
+ 	TARGET_CPU=i386
+@@ -2712,7 +1110,7 @@
+      *)
+         TARGET_CPU=$target_cpu
+      ;;
+-esac
++esac     
+ TARGET_OS=$target_os
+ 
+ M68KCC=
+@@ -2726,7 +1124,7 @@
+ 		M68KCC=/usr/m68k-palmos/bin/gcc
+ 		# Generic build is ARM or M68K (probably ARM though)
+                 CC="/usr/$TARGET_CPU-palmos/bin/gcc"
+-		if test "$target_cpu" = "arm"
++		if test "$target_cpu" = "arm" 
+                 then
+                    CC="$CC -fPIC -march=armv4t"
+                 fi
+@@ -2762,7 +1160,7 @@
+      *)
+         HOST_CPU=$host_cpu
+      ;;
+-esac
++esac     
+ HOST_OS=$host_os
+ 
+ 
+@@ -2800,138 +1198,91 @@
+   case "${enableval}" in
+                  yes) sockets=true ;;
+                  no) sockets=false ;;
+-                 *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for sockets options" >&5
+-echo "$as_me: error: bad value ${enableval} for sockets options" >&2;}
+-   { (exit 1); exit 1; }; } ;;
++                 *) { echo "configure: error: bad value ${enableval} for sockets options" 1>&2; exit 1; } ;;
+                  esac
+ else
+   sockets=true
+-fi;
++fi
++
+ if test "$sockets" = false; then
+-   cat >>confdefs.h <<\_ACEOF
++   cat >> confdefs.h <<\EOF
+ #define CST_NO_SOCKETS 1
+-_ACEOF
++EOF
+ 
+ fi
+ 
+-cat >conftest.$ac_ext <<_ACEOF
+-#line $LINENO "configure"
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
++cat > conftest.$ac_ext <<EOF
++#line 1216 "configure"
++#include "confdefs.h"
+ #include <stdio.h>
+-int
+-main ()
+-{
++int main() {
+  struct a { union { float b; int c; } d; };
+-                 const struct a e = { .d={ .b=3.14 } };
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-         { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
++                 const struct a e = { .d={ .b=3.14 } }; 
++; return 0; }
++EOF
++if { (eval echo configure:1224: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++  rm -rf conftest*
+   unioninit=yes
+ else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-unioninit=no
++  echo "configure: failed program was:" >&5
++  cat conftest.$ac_ext >&5
++  rm -rf conftest*
++  unioninit=no
+ fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
++rm -f conftest*
+ if test "$unioninit" = no; then
+-   cat >>confdefs.h <<\_ACEOF
++   cat >> confdefs.h <<\EOF
+ #define NO_UNION_INITIALIZATION 1
+-_ACEOF
++EOF
+ 
+ fi
+ 
+-echo "$as_me:$LINENO: checking for mmap" >&5
+-echo $ECHO_N "checking for mmap... $ECHO_C" >&6
+-if test "${ac_cv_func_mmap+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
++echo $ac_n "checking for mmap""... $ac_c" 1>&6
++echo "configure:1242: checking for mmap" >&5
++if eval "test \"`echo '$''{'ac_cv_func_mmap'+set}'`\" = set"; then
++  echo $ac_n "(cached) $ac_c" 1>&6
+ else
+-  cat >conftest.$ac_ext <<_ACEOF
+-#line $LINENO "configure"
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
++  cat > conftest.$ac_ext <<EOF
++#line 1247 "configure"
++#include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+-    which can conflict with char mmap (); below.
+-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+-    <limits.h> exists even on freestanding compilers.  */
+-#ifdef __STDC__
+-# include <limits.h>
+-#else
+-# include <assert.h>
+-#endif
++    which can conflict with char mmap(); below.  */
++#include <assert.h>
+ /* Override any gcc2 internal prototype to avoid an error.  */
+-#ifdef __cplusplus
+-extern "C"
+-{
+-#endif
+ /* We use char because int might match the return type of a gcc2
+-   builtin and then its argument prototype would still apply.  */
+-char mmap ();
++    builtin and then its argument prototype would still apply.  */
++char mmap();
++
++int main() {
++
+ /* The GNU C library defines this for functions which it implements
+     to always fail with ENOSYS.  Some functions are actually named
+     something starting with __ and the normal name is an alias.  */
+ #if defined (__stub_mmap) || defined (__stub___mmap)
+ choke me
+ #else
+-char (*f) () = mmap;
++mmap();
+ #endif
+-#ifdef __cplusplus
+-}
+-#endif
+ 
+-int
+-main ()
+-{
+-return f != mmap;
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+-  (eval $ac_link) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-         { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  ac_cv_func_mmap=yes
++; return 0; }
++EOF
++if { (eval echo configure:1270: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++  rm -rf conftest*
++  eval "ac_cv_func_mmap=yes"
+ else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-ac_cv_func_mmap=no
++  echo "configure: failed program was:" >&5
++  cat conftest.$ac_ext >&5
++  rm -rf conftest*
++  eval "ac_cv_func_mmap=no"
+ fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++rm -f conftest*
+ fi
+-echo "$as_me:$LINENO: result: $ac_cv_func_mmap" >&5
+-echo "${ECHO_T}$ac_cv_func_mmap" >&6
+-if test $ac_cv_func_mmap = yes; then
++
++if eval "test \"`echo '$ac_cv_func_'mmap`\" = yes"; then
++  echo "$ac_t""yes" 1>&6
+   MMAPTYPE=posix
++else
++  echo "$ac_t""no" 1>&6
+ fi
+ 
+ 
+@@ -2956,1028 +1307,266 @@
+ 
+ 
+ AUDIODRIVER=none
+-ac_ext=c
+-ac_cpp='$CPP $CPPFLAGS'
+-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+-echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
+-echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
++echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
++echo "configure:1312: checking how to run the C preprocessor" >&5
+ # On Suns, sometimes $CPP names a directory.
+ if test -n "$CPP" && test -d "$CPP"; then
+   CPP=
+ fi
+ if test -z "$CPP"; then
+-  if test "${ac_cv_prog_CPP+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
++if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
++  echo $ac_n "(cached) $ac_c" 1>&6
+ else
+-      # Double quotes because CPP needs to be expanded
+-    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+-    do
+-      ac_preproc_ok=false
+-for ac_c_preproc_warn_flag in '' yes
+-do
+-  # Use a header file that comes with gcc, so configuring glibc
+-  # with a fresh cross-compiler works.
+-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+-  # <limits.h> exists even on freestanding compilers.
++    # This must be in double quotes, not single quotes, because CPP may get
++  # substituted into the Makefile and "${CC-cc}" will confuse make.
++  CPP="${CC-cc} -E"
+   # On the NeXT, cc -E runs the code through the compiler's parser,
+-  # not just through cpp. "Syntax error" is here to catch this case.
+-  cat >conftest.$ac_ext <<_ACEOF
+-#line $LINENO "configure"
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-#ifdef __STDC__
+-# include <limits.h>
+-#else
+-# include <assert.h>
+-#endif
+-                     Syntax error
+-_ACEOF
+-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } >/dev/null; then
+-  if test -s conftest.err; then
+-    ac_cpp_err=$ac_c_preproc_warn_flag
+-  else
+-    ac_cpp_err=
+-  fi
+-else
+-  ac_cpp_err=yes
+-fi
+-if test -z "$ac_cpp_err"; then
++  # not just through cpp.
++  cat > conftest.$ac_ext <<EOF
++#line 1327 "configure"
++#include "confdefs.h"
++#include <assert.h>
++Syntax Error
++EOF
++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
++{ (eval echo configure:1333: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
++if test -z "$ac_err"; then
+   :
+ else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-  # Broken: fails on valid input.
+-continue
+-fi
+-rm -f conftest.err conftest.$ac_ext
+-
+-  # OK, works on sane cases.  Now check whether non-existent headers
+-  # can be detected and how.
+-  cat >conftest.$ac_ext <<_ACEOF
+-#line $LINENO "configure"
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-#include <ac_nonexistent.h>
+-_ACEOF
+-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } >/dev/null; then
+-  if test -s conftest.err; then
+-    ac_cpp_err=$ac_c_preproc_warn_flag
+-  else
+-    ac_cpp_err=
+-  fi
+-else
+-  ac_cpp_err=yes
+-fi
+-if test -z "$ac_cpp_err"; then
+-  # Broken: success on invalid input.
+-continue
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-  # Passes both tests.
+-ac_preproc_ok=:
+-break
+-fi
+-rm -f conftest.err conftest.$ac_ext
+-
+-done
+-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+-rm -f conftest.err conftest.$ac_ext
+-if $ac_preproc_ok; then
+-  break
+-fi
+-
+-    done
+-    ac_cv_prog_CPP=$CPP
+-
+-fi
+-  CPP=$ac_cv_prog_CPP
+-else
+-  ac_cv_prog_CPP=$CPP
+-fi
+-echo "$as_me:$LINENO: result: $CPP" >&5
+-echo "${ECHO_T}$CPP" >&6
+-ac_preproc_ok=false
+-for ac_c_preproc_warn_flag in '' yes
+-do
+-  # Use a header file that comes with gcc, so configuring glibc
+-  # with a fresh cross-compiler works.
+-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+-  # <limits.h> exists even on freestanding compilers.
+-  # On the NeXT, cc -E runs the code through the compiler's parser,
+-  # not just through cpp. "Syntax error" is here to catch this case.
+-  cat >conftest.$ac_ext <<_ACEOF
+-#line $LINENO "configure"
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-#ifdef __STDC__
+-# include <limits.h>
+-#else
+-# include <assert.h>
+-#endif
+-                     Syntax error
+-_ACEOF
+-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } >/dev/null; then
+-  if test -s conftest.err; then
+-    ac_cpp_err=$ac_c_preproc_warn_flag
+-  else
+-    ac_cpp_err=
+-  fi
+-else
+-  ac_cpp_err=yes
+-fi
+-if test -z "$ac_cpp_err"; then
++  echo "$ac_err" >&5
++  echo "configure: failed program was:" >&5
++  cat conftest.$ac_ext >&5
++  rm -rf conftest*
++  CPP="${CC-cc} -E -traditional-cpp"
++  cat > conftest.$ac_ext <<EOF
++#line 1344 "configure"
++#include "confdefs.h"
++#include <assert.h>
++Syntax Error
++EOF
++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
++{ (eval echo configure:1350: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
++if test -z "$ac_err"; then
+   :
+ else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-  # Broken: fails on valid input.
+-continue
+-fi
+-rm -f conftest.err conftest.$ac_ext
+-
+-  # OK, works on sane cases.  Now check whether non-existent headers
+-  # can be detected and how.
+-  cat >conftest.$ac_ext <<_ACEOF
+-#line $LINENO "configure"
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-#include <ac_nonexistent.h>
+-_ACEOF
+-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } >/dev/null; then
+-  if test -s conftest.err; then
+-    ac_cpp_err=$ac_c_preproc_warn_flag
+-  else
+-    ac_cpp_err=
+-  fi
+-else
+-  ac_cpp_err=yes
+-fi
+-if test -z "$ac_cpp_err"; then
+-  # Broken: success on invalid input.
+-continue
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-  # Passes both tests.
+-ac_preproc_ok=:
+-break
+-fi
+-rm -f conftest.err conftest.$ac_ext
+-
+-done
+-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+-rm -f conftest.err conftest.$ac_ext
+-if $ac_preproc_ok; then
++  echo "$ac_err" >&5
++  echo "configure: failed program was:" >&5
++  cat conftest.$ac_ext >&5
++  rm -rf conftest*
++  CPP="${CC-cc} -nologo -E"
++  cat > conftest.$ac_ext <<EOF
++#line 1361 "configure"
++#include "confdefs.h"
++#include <assert.h>
++Syntax Error
++EOF
++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
++{ (eval echo configure:1367: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
++if test -z "$ac_err"; then
+   :
+ else
+-  { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
+-See \`config.log' for more details." >&5
+-echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
+-See \`config.log' for more details." >&2;}
+-   { (exit 1); exit 1; }; }
++  echo "$ac_err" >&5
++  echo "configure: failed program was:" >&5
++  cat conftest.$ac_ext >&5
++  rm -rf conftest*
++  CPP=/lib/cpp
+ fi
+-
+-ac_ext=c
+-ac_cpp='$CPP $CPPFLAGS'
+-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+-
+-
+-echo "$as_me:$LINENO: checking for egrep" >&5
+-echo $ECHO_N "checking for egrep... $ECHO_C" >&6
+-if test "${ac_cv_prog_egrep+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if echo a | (grep -E '(a|b)') >/dev/null 2>&1
+-    then ac_cv_prog_egrep='grep -E'
+-    else ac_cv_prog_egrep='egrep'
+-    fi
++rm -f conftest*
+ fi
+-echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
+-echo "${ECHO_T}$ac_cv_prog_egrep" >&6
+- EGREP=$ac_cv_prog_egrep
+-
+-
+-echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+-if test "${ac_cv_header_stdc+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat >conftest.$ac_ext <<_ACEOF
+-#line $LINENO "configure"
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-#include <stdlib.h>
+-#include <stdarg.h>
+-#include <string.h>
+-#include <float.h>
+-
+-int
+-main ()
+-{
+-
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-         { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  ac_cv_header_stdc=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-ac_cv_header_stdc=no
+-fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+-
+-if test $ac_cv_header_stdc = yes; then
+-  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+-  cat >conftest.$ac_ext <<_ACEOF
+-#line $LINENO "configure"
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-#include <string.h>
+-
+-_ACEOF
+-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+-  $EGREP "memchr" >/dev/null 2>&1; then
+-  :
+-else
+-  ac_cv_header_stdc=no
+-fi
+ rm -f conftest*
+-
+ fi
+-
+-if test $ac_cv_header_stdc = yes; then
+-  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+-  cat >conftest.$ac_ext <<_ACEOF
+-#line $LINENO "configure"
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-#include <stdlib.h>
+-
+-_ACEOF
+-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+-  $EGREP "free" >/dev/null 2>&1; then
+-  :
+-else
+-  ac_cv_header_stdc=no
+-fi
+ rm -f conftest*
+-
++  ac_cv_prog_CPP="$CPP"
+ fi
+-
+-if test $ac_cv_header_stdc = yes; then
+-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+-  if test "$cross_compiling" = yes; then
+-  :
++  CPP="$ac_cv_prog_CPP"
+ else
+-  cat >conftest.$ac_ext <<_ACEOF
+-#line $LINENO "configure"
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-#include <ctype.h>
+-#if ((' ' & 0x0FF) == 0x020)
+-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+-#else
+-# define ISLOWER(c) \
+-                   (('a' <= (c) && (c) <= 'i') \
+-                     || ('j' <= (c) && (c) <= 'r') \
+-                     || ('s' <= (c) && (c) <= 'z'))
+-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+-#endif
+-
+-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+-int
+-main ()
+-{
+-  int i;
+-  for (i = 0; i < 256; i++)
+-    if (XOR (islower (i), ISLOWER (i))
+-        || toupper (i) != TOUPPER (i))
+-      exit(2);
+-  exit (0);
+-}
+-_ACEOF
+-rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+-  (eval $ac_link) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  :
+-else
+-  echo "$as_me: program exited with status $ac_status" >&5
+-echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-( exit $ac_status )
+-ac_cv_header_stdc=no
++  ac_cv_prog_CPP="$CPP"
+ fi
+-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+-fi
+-fi
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+-echo "${ECHO_T}$ac_cv_header_stdc" >&6
+-if test $ac_cv_header_stdc = yes; then
++echo "$ac_t""$CPP" 1>&6
+ 
+-cat >>confdefs.h <<\_ACEOF
+-#define STDC_HEADERS 1
+-_ACEOF
+-
+-fi
+-
+-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+-                  inttypes.h stdint.h unistd.h
+-do
+-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:$LINENO: checking for $ac_header" >&5
+-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
++ac_safe=`echo "sys/soundcard.h" | sed 'y%./+-%__p_%'`
++echo $ac_n "checking for sys/soundcard.h""... $ac_c" 1>&6
++echo "configure:1393: checking for sys/soundcard.h" >&5
++if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
++  echo $ac_n "(cached) $ac_c" 1>&6
+ else
+-  cat >conftest.$ac_ext <<_ACEOF
+-#line $LINENO "configure"
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-$ac_includes_default
+-
+-#include <$ac_header>
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-         { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  eval "$as_ac_Header=yes"
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-eval "$as_ac_Header=no"
+-fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+-fi
+-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+-if test `eval echo '${'$as_ac_Header'}'` = yes; then
+-  cat >>confdefs.h <<_ACEOF
+-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+-_ACEOF
+-
+-fi
+-
+-done
+-
+-
+-if test "${ac_cv_header_sys_soundcard_h+set}" = set; then
+-  echo "$as_me:$LINENO: checking for sys/soundcard.h" >&5
+-echo $ECHO_N "checking for sys/soundcard.h... $ECHO_C" >&6
+-if test "${ac_cv_header_sys_soundcard_h+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_header_sys_soundcard_h" >&5
+-echo "${ECHO_T}$ac_cv_header_sys_soundcard_h" >&6
+-else
+-  # Is the header compilable?
+-echo "$as_me:$LINENO: checking sys/soundcard.h usability" >&5
+-echo $ECHO_N "checking sys/soundcard.h usability... $ECHO_C" >&6
+-cat >conftest.$ac_ext <<_ACEOF
+-#line $LINENO "configure"
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-$ac_includes_default
++  cat > conftest.$ac_ext <<EOF
++#line 1398 "configure"
++#include "confdefs.h"
+ #include <sys/soundcard.h>
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-         { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  ac_header_compiler=yes
++EOF
++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
++{ (eval echo configure:1403: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
++if test -z "$ac_err"; then
++  rm -rf conftest*
++  eval "ac_cv_header_$ac_safe=yes"
+ else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-ac_header_compiler=no
++  echo "$ac_err" >&5
++  echo "configure: failed program was:" >&5
++  cat conftest.$ac_ext >&5
++  rm -rf conftest*
++  eval "ac_cv_header_$ac_safe=no"
+ fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+-echo "${ECHO_T}$ac_header_compiler" >&6
+-
+-# Is the header present?
+-echo "$as_me:$LINENO: checking sys/soundcard.h presence" >&5
+-echo $ECHO_N "checking sys/soundcard.h presence... $ECHO_C" >&6
+-cat >conftest.$ac_ext <<_ACEOF
+-#line $LINENO "configure"
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-#include <sys/soundcard.h>
+-_ACEOF
+-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } >/dev/null; then
+-  if test -s conftest.err; then
+-    ac_cpp_err=$ac_c_preproc_warn_flag
+-  else
+-    ac_cpp_err=
+-  fi
+-else
+-  ac_cpp_err=yes
++rm -f conftest*
+ fi
+-if test -z "$ac_cpp_err"; then
+-  ac_header_preproc=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-  ac_header_preproc=no
+-fi
+-rm -f conftest.err conftest.$ac_ext
+-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+-echo "${ECHO_T}$ac_header_preproc" >&6
+-
+-# So?  What about this header?
+-case $ac_header_compiler:$ac_header_preproc in
+-  yes:no )
+-    { echo "$as_me:$LINENO: WARNING: sys/soundcard.h: accepted by the compiler, rejected by the preprocessor!" >&5
+-echo "$as_me: WARNING: sys/soundcard.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+-    { echo "$as_me:$LINENO: WARNING: sys/soundcard.h: proceeding with the preprocessor's result" >&5
+-echo "$as_me: WARNING: sys/soundcard.h: proceeding with the preprocessor's result" >&2;}
+-    (
+-      cat <<\_ASBOX
+-## ------------------------------------ ##
+-## Report this to bug-autoconf@gnu.org. ##
+-## ------------------------------------ ##
+-_ASBOX
+-    ) |
+-      sed "s/^/$as_me: WARNING:     /" >&2
+-    ;;
+-  no:yes )
+-    { echo "$as_me:$LINENO: WARNING: sys/soundcard.h: present but cannot be compiled" >&5
+-echo "$as_me: WARNING: sys/soundcard.h: present but cannot be compiled" >&2;}
+-    { echo "$as_me:$LINENO: WARNING: sys/soundcard.h: check for missing prerequisite headers?" >&5
+-echo "$as_me: WARNING: sys/soundcard.h: check for missing prerequisite headers?" >&2;}
+-    { echo "$as_me:$LINENO: WARNING: sys/soundcard.h: proceeding with the preprocessor's result" >&5
+-echo "$as_me: WARNING: sys/soundcard.h: proceeding with the preprocessor's result" >&2;}
+-    (
+-      cat <<\_ASBOX
+-## ------------------------------------ ##
+-## Report this to bug-autoconf@gnu.org. ##
+-## ------------------------------------ ##
+-_ASBOX
+-    ) |
+-      sed "s/^/$as_me: WARNING:     /" >&2
+-    ;;
+-esac
+-echo "$as_me:$LINENO: checking for sys/soundcard.h" >&5
+-echo $ECHO_N "checking for sys/soundcard.h... $ECHO_C" >&6
+-if test "${ac_cv_header_sys_soundcard_h+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  ac_cv_header_sys_soundcard_h=$ac_header_preproc
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_header_sys_soundcard_h" >&5
+-echo "${ECHO_T}$ac_cv_header_sys_soundcard_h" >&6
+-
+-fi
+-if test $ac_cv_header_sys_soundcard_h = yes; then
++if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
++  echo "$ac_t""yes" 1>&6
+   AUDIODRIVER="oss"
+                AUDIODEFS=-DCST_AUDIO_LINUX
++else
++  echo "$ac_t""no" 1>&6
+ fi
+ 
+-
+-if test "${ac_cv_header_machine_soundcard_h+set}" = set; then
+-  echo "$as_me:$LINENO: checking for machine/soundcard.h" >&5
+-echo $ECHO_N "checking for machine/soundcard.h... $ECHO_C" >&6
+-if test "${ac_cv_header_machine_soundcard_h+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_header_machine_soundcard_h" >&5
+-echo "${ECHO_T}$ac_cv_header_machine_soundcard_h" >&6
++ac_safe=`echo "machine/soundcard.h" | sed 'y%./+-%__p_%'`
++echo $ac_n "checking for machine/soundcard.h""... $ac_c" 1>&6
++echo "configure:1427: checking for machine/soundcard.h" >&5
++if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
++  echo $ac_n "(cached) $ac_c" 1>&6
+ else
+-  # Is the header compilable?
+-echo "$as_me:$LINENO: checking machine/soundcard.h usability" >&5
+-echo $ECHO_N "checking machine/soundcard.h usability... $ECHO_C" >&6
+-cat >conftest.$ac_ext <<_ACEOF
+-#line $LINENO "configure"
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-$ac_includes_default
++  cat > conftest.$ac_ext <<EOF
++#line 1432 "configure"
++#include "confdefs.h"
+ #include <machine/soundcard.h>
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-         { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  ac_header_compiler=yes
++EOF
++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
++{ (eval echo configure:1437: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
++if test -z "$ac_err"; then
++  rm -rf conftest*
++  eval "ac_cv_header_$ac_safe=yes"
+ else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-ac_header_compiler=no
++  echo "$ac_err" >&5
++  echo "configure: failed program was:" >&5
++  cat conftest.$ac_ext >&5
++  rm -rf conftest*
++  eval "ac_cv_header_$ac_safe=no"
+ fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+-echo "${ECHO_T}$ac_header_compiler" >&6
+-
+-# Is the header present?
+-echo "$as_me:$LINENO: checking machine/soundcard.h presence" >&5
+-echo $ECHO_N "checking machine/soundcard.h presence... $ECHO_C" >&6
+-cat >conftest.$ac_ext <<_ACEOF
+-#line $LINENO "configure"
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-#include <machine/soundcard.h>
+-_ACEOF
+-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } >/dev/null; then
+-  if test -s conftest.err; then
+-    ac_cpp_err=$ac_c_preproc_warn_flag
+-  else
+-    ac_cpp_err=
+-  fi
+-else
+-  ac_cpp_err=yes
++rm -f conftest*
+ fi
+-if test -z "$ac_cpp_err"; then
+-  ac_header_preproc=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-  ac_header_preproc=no
+-fi
+-rm -f conftest.err conftest.$ac_ext
+-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+-echo "${ECHO_T}$ac_header_preproc" >&6
+-
+-# So?  What about this header?
+-case $ac_header_compiler:$ac_header_preproc in
+-  yes:no )
+-    { echo "$as_me:$LINENO: WARNING: machine/soundcard.h: accepted by the compiler, rejected by the preprocessor!" >&5
+-echo "$as_me: WARNING: machine/soundcard.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+-    { echo "$as_me:$LINENO: WARNING: machine/soundcard.h: proceeding with the preprocessor's result" >&5
+-echo "$as_me: WARNING: machine/soundcard.h: proceeding with the preprocessor's result" >&2;}
+-    (
+-      cat <<\_ASBOX
+-## ------------------------------------ ##
+-## Report this to bug-autoconf@gnu.org. ##
+-## ------------------------------------ ##
+-_ASBOX
+-    ) |
+-      sed "s/^/$as_me: WARNING:     /" >&2
+-    ;;
+-  no:yes )
+-    { echo "$as_me:$LINENO: WARNING: machine/soundcard.h: present but cannot be compiled" >&5
+-echo "$as_me: WARNING: machine/soundcard.h: present but cannot be compiled" >&2;}
+-    { echo "$as_me:$LINENO: WARNING: machine/soundcard.h: check for missing prerequisite headers?" >&5
+-echo "$as_me: WARNING: machine/soundcard.h: check for missing prerequisite headers?" >&2;}
+-    { echo "$as_me:$LINENO: WARNING: machine/soundcard.h: proceeding with the preprocessor's result" >&5
+-echo "$as_me: WARNING: machine/soundcard.h: proceeding with the preprocessor's result" >&2;}
+-    (
+-      cat <<\_ASBOX
+-## ------------------------------------ ##
+-## Report this to bug-autoconf@gnu.org. ##
+-## ------------------------------------ ##
+-_ASBOX
+-    ) |
+-      sed "s/^/$as_me: WARNING:     /" >&2
+-    ;;
+-esac
+-echo "$as_me:$LINENO: checking for machine/soundcard.h" >&5
+-echo $ECHO_N "checking for machine/soundcard.h... $ECHO_C" >&6
+-if test "${ac_cv_header_machine_soundcard_h+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  ac_cv_header_machine_soundcard_h=$ac_header_preproc
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_header_machine_soundcard_h" >&5
+-echo "${ECHO_T}$ac_cv_header_machine_soundcard_h" >&6
+-
+-fi
+-if test $ac_cv_header_machine_soundcard_h = yes; then
++if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
++  echo "$ac_t""yes" 1>&6
+   AUDIODRIVER="oss"
+                AUDIODEFS=-DCST_AUDIO_FREEBSD
++else
++  echo "$ac_t""no" 1>&6
+ fi
+ 
+-
+-if test "${ac_cv_header_sys_audioio_h+set}" = set; then
+-  echo "$as_me:$LINENO: checking for sys/audioio.h" >&5
+-echo $ECHO_N "checking for sys/audioio.h... $ECHO_C" >&6
+-if test "${ac_cv_header_sys_audioio_h+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_header_sys_audioio_h" >&5
+-echo "${ECHO_T}$ac_cv_header_sys_audioio_h" >&6
++ac_safe=`echo "sys/audioio.h" | sed 'y%./+-%__p_%'`
++echo $ac_n "checking for sys/audioio.h""... $ac_c" 1>&6
++echo "configure:1461: checking for sys/audioio.h" >&5
++if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
++  echo $ac_n "(cached) $ac_c" 1>&6
+ else
+-  # Is the header compilable?
+-echo "$as_me:$LINENO: checking sys/audioio.h usability" >&5
+-echo $ECHO_N "checking sys/audioio.h usability... $ECHO_C" >&6
+-cat >conftest.$ac_ext <<_ACEOF
+-#line $LINENO "configure"
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-$ac_includes_default
++  cat > conftest.$ac_ext <<EOF
++#line 1466 "configure"
++#include "confdefs.h"
+ #include <sys/audioio.h>
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-         { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  ac_header_compiler=yes
++EOF
++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
++{ (eval echo configure:1471: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
++if test -z "$ac_err"; then
++  rm -rf conftest*
++  eval "ac_cv_header_$ac_safe=yes"
+ else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-ac_header_compiler=no
++  echo "$ac_err" >&5
++  echo "configure: failed program was:" >&5
++  cat conftest.$ac_ext >&5
++  rm -rf conftest*
++  eval "ac_cv_header_$ac_safe=no"
+ fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+-echo "${ECHO_T}$ac_header_compiler" >&6
+-
+-# Is the header present?
+-echo "$as_me:$LINENO: checking sys/audioio.h presence" >&5
+-echo $ECHO_N "checking sys/audioio.h presence... $ECHO_C" >&6
+-cat >conftest.$ac_ext <<_ACEOF
+-#line $LINENO "configure"
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-#include <sys/audioio.h>
+-_ACEOF
+-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } >/dev/null; then
+-  if test -s conftest.err; then
+-    ac_cpp_err=$ac_c_preproc_warn_flag
+-  else
+-    ac_cpp_err=
+-  fi
+-else
+-  ac_cpp_err=yes
++rm -f conftest*
+ fi
+-if test -z "$ac_cpp_err"; then
+-  ac_header_preproc=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-  ac_header_preproc=no
+-fi
+-rm -f conftest.err conftest.$ac_ext
+-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+-echo "${ECHO_T}$ac_header_preproc" >&6
+-
+-# So?  What about this header?
+-case $ac_header_compiler:$ac_header_preproc in
+-  yes:no )
+-    { echo "$as_me:$LINENO: WARNING: sys/audioio.h: accepted by the compiler, rejected by the preprocessor!" >&5
+-echo "$as_me: WARNING: sys/audioio.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+-    { echo "$as_me:$LINENO: WARNING: sys/audioio.h: proceeding with the preprocessor's result" >&5
+-echo "$as_me: WARNING: sys/audioio.h: proceeding with the preprocessor's result" >&2;}
+-    (
+-      cat <<\_ASBOX
+-## ------------------------------------ ##
+-## Report this to bug-autoconf@gnu.org. ##
+-## ------------------------------------ ##
+-_ASBOX
+-    ) |
+-      sed "s/^/$as_me: WARNING:     /" >&2
+-    ;;
+-  no:yes )
+-    { echo "$as_me:$LINENO: WARNING: sys/audioio.h: present but cannot be compiled" >&5
+-echo "$as_me: WARNING: sys/audioio.h: present but cannot be compiled" >&2;}
+-    { echo "$as_me:$LINENO: WARNING: sys/audioio.h: check for missing prerequisite headers?" >&5
+-echo "$as_me: WARNING: sys/audioio.h: check for missing prerequisite headers?" >&2;}
+-    { echo "$as_me:$LINENO: WARNING: sys/audioio.h: proceeding with the preprocessor's result" >&5
+-echo "$as_me: WARNING: sys/audioio.h: proceeding with the preprocessor's result" >&2;}
+-    (
+-      cat <<\_ASBOX
+-## ------------------------------------ ##
+-## Report this to bug-autoconf@gnu.org. ##
+-## ------------------------------------ ##
+-_ASBOX
+-    ) |
+-      sed "s/^/$as_me: WARNING:     /" >&2
+-    ;;
+-esac
+-echo "$as_me:$LINENO: checking for sys/audioio.h" >&5
+-echo $ECHO_N "checking for sys/audioio.h... $ECHO_C" >&6
+-if test "${ac_cv_header_sys_audioio_h+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  ac_cv_header_sys_audioio_h=$ac_header_preproc
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_header_sys_audioio_h" >&5
+-echo "${ECHO_T}$ac_cv_header_sys_audioio_h" >&6
+-
+-fi
+-if test $ac_cv_header_sys_audioio_h = yes; then
++if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
++  echo "$ac_t""yes" 1>&6
+   AUDIODRIVER="sun"
+                AUDIODEFS=-DCST_AUDIO_SUNOS
++else
++  echo "$ac_t""no" 1>&6
+ fi
+ 
+-
+-if test "${ac_cv_header_mmsystem_h+set}" = set; then
+-  echo "$as_me:$LINENO: checking for mmsystem.h" >&5
+-echo $ECHO_N "checking for mmsystem.h... $ECHO_C" >&6
+-if test "${ac_cv_header_mmsystem_h+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_header_mmsystem_h" >&5
+-echo "${ECHO_T}$ac_cv_header_mmsystem_h" >&6
++ ac_safe=`echo "alsa/asoundlib.h" | sed 'y%./+-%__p_%'`
++echo $ac_n "checking for alsa/asoundlib.h""... $ac_c" 1>&6
++echo "configure:1495: checking for alsa/asoundlib.h" >&5
++if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
++  echo $ac_n "(cached) $ac_c" 1>&6
+ else
+-  # Is the header compilable?
+-echo "$as_me:$LINENO: checking mmsystem.h usability" >&5
+-echo $ECHO_N "checking mmsystem.h usability... $ECHO_C" >&6
+-cat >conftest.$ac_ext <<_ACEOF
+-#line $LINENO "configure"
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-$ac_includes_default
+-#include <mmsystem.h>
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-         { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  ac_header_compiler=yes
++  cat > conftest.$ac_ext <<EOF
++#line 1500 "configure"
++#include "confdefs.h"
++#include <alsa/asoundlib.h>
++EOF
++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
++{ (eval echo configure:1505: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
++if test -z "$ac_err"; then
++  rm -rf conftest*
++  eval "ac_cv_header_$ac_safe=yes"
+ else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-ac_header_compiler=no
++  echo "$ac_err" >&5
++  echo "configure: failed program was:" >&5
++  cat conftest.$ac_ext >&5
++  rm -rf conftest*
++  eval "ac_cv_header_$ac_safe=no"
+ fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+-echo "${ECHO_T}$ac_header_compiler" >&6
+-
+-# Is the header present?
+-echo "$as_me:$LINENO: checking mmsystem.h presence" >&5
+-echo $ECHO_N "checking mmsystem.h presence... $ECHO_C" >&6
+-cat >conftest.$ac_ext <<_ACEOF
+-#line $LINENO "configure"
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-#include <mmsystem.h>
+-_ACEOF
+-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } >/dev/null; then
+-  if test -s conftest.err; then
+-    ac_cpp_err=$ac_c_preproc_warn_flag
+-  else
+-    ac_cpp_err=
+-  fi
+-else
+-  ac_cpp_err=yes
++rm -f conftest*
+ fi
+-if test -z "$ac_cpp_err"; then
+-  ac_header_preproc=yes
++if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
++  echo "$ac_t""yes" 1>&6
++  AUDIODRIVER="alsa"
++	       AUDIODEFS=-DCST_AUDIO_ALSA
++               AUDIOLIBS=-lasound
+ else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-  ac_header_preproc=no
++  echo "$ac_t""no" 1>&6
+ fi
+-rm -f conftest.err conftest.$ac_ext
+-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+-echo "${ECHO_T}$ac_header_preproc" >&6
+ 
+-# So?  What about this header?
+-case $ac_header_compiler:$ac_header_preproc in
+-  yes:no )
+-    { echo "$as_me:$LINENO: WARNING: mmsystem.h: accepted by the compiler, rejected by the preprocessor!" >&5
+-echo "$as_me: WARNING: mmsystem.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+-    { echo "$as_me:$LINENO: WARNING: mmsystem.h: proceeding with the preprocessor's result" >&5
+-echo "$as_me: WARNING: mmsystem.h: proceeding with the preprocessor's result" >&2;}
+-    (
+-      cat <<\_ASBOX
+-## ------------------------------------ ##
+-## Report this to bug-autoconf@gnu.org. ##
+-## ------------------------------------ ##
+-_ASBOX
+-    ) |
+-      sed "s/^/$as_me: WARNING:     /" >&2
+-    ;;
+-  no:yes )
+-    { echo "$as_me:$LINENO: WARNING: mmsystem.h: present but cannot be compiled" >&5
+-echo "$as_me: WARNING: mmsystem.h: present but cannot be compiled" >&2;}
+-    { echo "$as_me:$LINENO: WARNING: mmsystem.h: check for missing prerequisite headers?" >&5
+-echo "$as_me: WARNING: mmsystem.h: check for missing prerequisite headers?" >&2;}
+-    { echo "$as_me:$LINENO: WARNING: mmsystem.h: proceeding with the preprocessor's result" >&5
+-echo "$as_me: WARNING: mmsystem.h: proceeding with the preprocessor's result" >&2;}
+-    (
+-      cat <<\_ASBOX
+-## ------------------------------------ ##
+-## Report this to bug-autoconf@gnu.org. ##
+-## ------------------------------------ ##
+-_ASBOX
+-    ) |
+-      sed "s/^/$as_me: WARNING:     /" >&2
+-    ;;
+-esac
+-echo "$as_me:$LINENO: checking for mmsystem.h" >&5
+-echo $ECHO_N "checking for mmsystem.h... $ECHO_C" >&6
+-if test "${ac_cv_header_mmsystem_h+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
++ac_safe=`echo "mmsystem.h" | sed 'y%./+-%__p_%'`
++echo $ac_n "checking for mmsystem.h""... $ac_c" 1>&6
++echo "configure:1530: checking for mmsystem.h" >&5
++if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
++  echo $ac_n "(cached) $ac_c" 1>&6
+ else
+-  ac_cv_header_mmsystem_h=$ac_header_preproc
++  cat > conftest.$ac_ext <<EOF
++#line 1535 "configure"
++#include "confdefs.h"
++#include <mmsystem.h>
++EOF
++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
++{ (eval echo configure:1540: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
++if test -z "$ac_err"; then
++  rm -rf conftest*
++  eval "ac_cv_header_$ac_safe=yes"
++else
++  echo "$ac_err" >&5
++  echo "configure: failed program was:" >&5
++  cat conftest.$ac_ext >&5
++  rm -rf conftest*
++  eval "ac_cv_header_$ac_safe=no"
+ fi
+-echo "$as_me:$LINENO: result: $ac_cv_header_mmsystem_h" >&5
+-echo "${ECHO_T}$ac_cv_header_mmsystem_h" >&6
+-
++rm -f conftest*
+ fi
+-if test $ac_cv_header_mmsystem_h = yes; then
++if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
++  echo "$ac_t""yes" 1>&6
+   AUDIODRIVER="wince"
+ 	       AUDIODEFS=-DCST_AUDIO_WINCE
+ 	       AUDIOLIBS=-lwinmm
++else
++  echo "$ac_t""no" 1>&6
+ fi
+ 
+ 
+-
+-
+ # Check whether --with-audio or --without-audio was given.
+ if test "${with_audio+set}" = set; then
+   withval="$with_audio"
+-  AUDIODRIVER=$with_audio
+-fi;
++  AUDIODRIVER=$with_audio 
++fi
+ 
++
+ if test "x$AUDIODEFS" = x; then
+     case "$AUDIODRIVER" in
+ 	linux|oss)
+@@ -4006,34 +1595,34 @@
+ 
+ 
+ 
+-
+ # Check whether --with-lang or --without-lang was given.
+ if test "${with_lang+set}" = set; then
+   withval="$with_lang"
+-  FL_LANG=$with_lang
+-fi;
++  FL_LANG=$with_lang 
++fi
++
+ if test "x$with_lang" = "x"; then
+         FL_LANG="usenglish"
+ fi
+ 
+ 
+-
+ # Check whether --with-vox or --without-vox was given.
+ if test "${with_vox+set}" = set; then
+   withval="$with_vox"
+-  FL_VOX=$with_vox
+-fi;
++  FL_VOX=$with_vox 
++fi
++
+ if test "x$with_vox" = "x"; then
+         FL_VOX="cmu_us_kal"
+ fi
+ 
+ 
+-
+ # Check whether --with-lex or --without-lex was given.
+ if test "${with_lex+set}" = set; then
+   withval="$with_lex"
+-  FL_LEX=$with_lex
+-fi;
++  FL_LEX=$with_lex 
++fi
++
+ if test "x$with_lex" = "x"; then
+         FL_LEX="cmulex"
+ fi
+@@ -4041,921 +1630,300 @@
+ 
+ 
+ 
+-                    ac_config_files="$ac_config_files config/config config/system.mak"
+-cat >confcache <<\_ACEOF
++trap '' 1 2 15
++cat > confcache <<\EOF
+ # This file is a shell script that caches the results of configure
+ # tests run on this system so they can be shared between configure
+-# scripts and configure runs, see configure's option --config-cache.
+-# It is not useful on other systems.  If it contains results you don't
+-# want to keep, you may remove or edit it.
++# scripts and configure runs.  It is not useful on other systems.
++# If it contains results you don't want to keep, you may remove or edit it.
+ #
+-# config.status only pays attention to the cache file if you give it
+-# the --recheck option to rerun configure.
++# By default, configure uses ./config.cache as the cache file,
++# creating it if it does not exist already.  You can give configure
++# the --cache-file=FILE option to use a different cache file; that is
++# what configure does when it calls configure scripts in
++# subdirectories, so they share the cache.
++# Giving --cache-file=/dev/null disables caching, for debugging configure.
++# config.status only pays attention to the cache file if you give it the
++# --recheck option to rerun configure.
+ #
+-# `ac_cv_env_foo' variables (set or unset) will be overridden when
+-# loading this file, other *unset* `ac_cv_foo' will be assigned the
+-# following values.
+-
+-_ACEOF
+-
++EOF
+ # The following way of writing the cache mishandles newlines in values,
+ # but we know of no workaround that is simple, portable, and efficient.
+ # So, don't put newlines in cache variables' values.
+ # Ultrix sh set writes to stderr and can't be redirected directly,
+ # and sets the high bit in the cache file unless we assign to the vars.
+-{
+-  (set) 2>&1 |
+-    case `(ac_space=' '; set | grep ac_space) 2>&1` in
+-    *ac_space=\ *)
+-      # `set' does not quote correctly, so add quotes (double-quote
+-      # substitution turns \\\\ into \\, and sed turns \\ into \).
+-      sed -n \
+-        "s/'/'\\\\''/g;
+-    	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+-      ;;
+-    *)
+-      # `set' quotes correctly as required by POSIX, so do not add quotes.
+-      sed -n \
+-        "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+-      ;;
+-    esac;
+-} |
+-  sed '
+-     t clear
+-     : clear
+-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+-     t end
+-     /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+-     : end' >>confcache
+-if diff $cache_file confcache >/dev/null 2>&1; then :; else
++(set) 2>&1 |
++  case `(ac_space=' '; set | grep ac_space) 2>&1` in
++  *ac_space=\ *)
++    # `set' does not quote correctly, so add quotes (double-quote substitution
++    # turns \\\\ into \\, and sed turns \\ into \).
++    sed -n \
++      -e "s/'/'\\\\''/g" \
++      -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
++    ;;
++  *)
++    # `set' quotes correctly as required by POSIX, so do not add quotes.
++    sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
++    ;;
++  esac >> confcache
++if cmp -s $cache_file confcache; then
++  :
++else
+   if test -w $cache_file; then
+-    test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
+-    cat confcache >$cache_file
++    echo "updating cache $cache_file"
++    cat confcache > $cache_file
+   else
+     echo "not updating unwritable cache $cache_file"
+   fi
+ fi
+ rm -f confcache
+ 
++trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
++
+ test "x$prefix" = xNONE && prefix=$ac_default_prefix
+ # Let make expand exec_prefix.
+ test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+ 
+-# VPATH may cause trouble with some makes, so we remove $(srcdir),
+-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+-# trailing colons and then remove the whole line if VPATH becomes empty
+-# (actually we leave an empty line to preserve line numbers).
++# Any assignment to VPATH causes Sun make to only execute
++# the first set of double-colon rules, so remove it if not needed.
++# If there is a colon in the path, we need to keep it.
+ if test "x$srcdir" = x.; then
+-  ac_vpsub='/^[ 	]*VPATH[ 	]*=/{
+-s/:*\$(srcdir):*/:/;
+-s/:*\${srcdir}:*/:/;
+-s/:*@srcdir@:*/:/;
+-s/^\([^=]*=[ 	]*\):*/\1/;
+-s/:*$//;
+-s/^[^=]*=[ 	]*$//;
+-}'
++  ac_vpsub='/^[ 	]*VPATH[ 	]*=[^:]*$/d'
+ fi
+ 
++trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
++
+ # Transform confdefs.h into DEFS.
+ # Protect against shell expansion while executing Makefile rules.
+ # Protect against Makefile macro expansion.
+-#
+-# If the first sed substitution is executed (which looks for macros that
+-# take arguments), then we branch to the quote section.  Otherwise,
+-# look for a macro that doesn't take arguments.
+-cat >confdef2opt.sed <<\_ACEOF
+-t clear
+-: clear
+-s,^[ 	]*#[ 	]*define[ 	][ 	]*\([^ 	(][^ 	(]*([^)]*)\)[ 	]*\(.*\),-D\1=\2,g
+-t quote
+-s,^[ 	]*#[ 	]*define[ 	][ 	]*\([^ 	][^ 	]*\)[ 	]*\(.*\),-D\1=\2,g
+-t quote
+-d
+-: quote
+-s,[ 	`~#$^&*(){}\\|;'"<>?],\\&,g
+-s,\[,\\&,g
+-s,\],\\&,g
+-s,\$,$$,g
+-p
+-_ACEOF
+-# We use echo to avoid assuming a particular line-breaking character.
+-# The extra dot is to prevent the shell from consuming trailing
+-# line-breaks from the sub-command output.  A line-break within
+-# single-quotes doesn't work because, if this script is created in a
+-# platform that uses two characters for line-breaks (e.g., DOS), tr
+-# would break.
+-ac_LF_and_DOT=`echo; echo .`
+-DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'`
+-rm -f confdef2opt.sed
++cat > conftest.defs <<\EOF
++s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
++s%[ 	`~#$^&*(){}\\|;'"<>?]%\\&%g
++s%\[%\\&%g
++s%\]%\\&%g
++s%\$%$$%g
++EOF
++DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
++rm -f conftest.defs
+ 
+ 
+-ac_libobjs=
+-ac_ltlibobjs=
+-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+-  # 1. Remove the extension, and $U if already installed.
+-  ac_i=`echo "$ac_i" |
+-         sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
+-  # 2. Add them.
+-  ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
+-  ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
+-done
+-LIBOBJS=$ac_libobjs
+-
+-LTLIBOBJS=$ac_ltlibobjs
+-
+-
+-
++# Without the "./", some shells look in PATH for config.status.
+ : ${CONFIG_STATUS=./config.status}
+-ac_clean_files_save=$ac_clean_files
+-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+-{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
+-echo "$as_me: creating $CONFIG_STATUS" >&6;}
+-cat >$CONFIG_STATUS <<_ACEOF
+-#! $SHELL
+-# Generated by $as_me.
++
++echo creating $CONFIG_STATUS
++rm -f $CONFIG_STATUS
++cat > $CONFIG_STATUS <<EOF
++#! /bin/sh
++# Generated automatically by configure.
+ # Run this file to recreate the current configuration.
++# This directory was configured as follows,
++# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
++#
++# $0 $ac_configure_args
++#
+ # Compiler output produced by configure, useful for debugging
+-# configure, is in config.log if it exists.
++# configure, is in ./config.log if it exists.
+ 
+-debug=false
+-ac_cs_recheck=false
+-ac_cs_silent=false
+-SHELL=\${CONFIG_SHELL-$SHELL}
+-_ACEOF
+-
+-cat >>$CONFIG_STATUS <<\_ACEOF
+-## --------------------- ##
+-## M4sh Initialization.  ##
+-## --------------------- ##
+-
+-# Be Bourne compatible
+-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+-  emulate sh
+-  NULLCMD=:
+-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+-  # is contrary to our usage.  Disable this feature.
+-  alias -g '${1+"$@"}'='"$@"'
+-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+-  set -o posix
+-fi
+-
+-# Support unset when possible.
+-if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+-  as_unset=unset
+-else
+-  as_unset=false
+-fi
+-
+-
+-# Work around bugs in pre-3.0 UWIN ksh.
+-$as_unset ENV MAIL MAILPATH
+-PS1='$ '
+-PS2='> '
+-PS4='+ '
+-
+-# NLS nuisances.
+-for as_var in \
+-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+-  LC_TELEPHONE LC_TIME
++ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
++for ac_option
+ do
+-  if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
+-    eval $as_var=C; export $as_var
+-  else
+-    $as_unset $as_var
+-  fi
++  case "\$ac_option" in
++  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
++    echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
++    exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
++  -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
++    echo "$CONFIG_STATUS generated by autoconf version 2.13"
++    exit 0 ;;
++  -help | --help | --hel | --he | --h)
++    echo "\$ac_cs_usage"; exit 0 ;;
++  *) echo "\$ac_cs_usage"; exit 1 ;;
++  esac
+ done
+ 
+-# Required to use basename.
+-if expr a : '\(a\)' >/dev/null 2>&1; then
+-  as_expr=expr
+-else
+-  as_expr=false
+-fi
++ac_given_srcdir=$srcdir
++ac_given_INSTALL="$INSTALL"
+ 
+-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+-  as_basename=basename
+-else
+-  as_basename=false
+-fi
++trap 'rm -fr `echo "config/config config/system.mak" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
++EOF
++cat >> $CONFIG_STATUS <<EOF
+ 
++# Protect against being on the right side of a sed subst in config.status.
++sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
++ s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
++$ac_vpsub
++$extrasub
++s%@SHELL@%$SHELL%g
++s%@CFLAGS@%$CFLAGS%g
++s%@CPPFLAGS@%$CPPFLAGS%g
++s%@CXXFLAGS@%$CXXFLAGS%g
++s%@FFLAGS@%$FFLAGS%g
++s%@DEFS@%$DEFS%g
++s%@LDFLAGS@%$LDFLAGS%g
++s%@LIBS@%$LIBS%g
++s%@exec_prefix@%$exec_prefix%g
++s%@prefix@%$prefix%g
++s%@program_transform_name@%$program_transform_name%g
++s%@bindir@%$bindir%g
++s%@sbindir@%$sbindir%g
++s%@libexecdir@%$libexecdir%g
++s%@datadir@%$datadir%g
++s%@sysconfdir@%$sysconfdir%g
++s%@sharedstatedir@%$sharedstatedir%g
++s%@localstatedir@%$localstatedir%g
++s%@libdir@%$libdir%g
++s%@includedir@%$includedir%g
++s%@oldincludedir@%$oldincludedir%g
++s%@infodir@%$infodir%g
++s%@mandir@%$mandir%g
++s%@host@%$host%g
++s%@host_alias@%$host_alias%g
++s%@host_cpu@%$host_cpu%g
++s%@host_vendor@%$host_vendor%g
++s%@host_os@%$host_os%g
++s%@target@%$target%g
++s%@target_alias@%$target_alias%g
++s%@target_cpu@%$target_cpu%g
++s%@target_vendor@%$target_vendor%g
++s%@target_os@%$target_os%g
++s%@build@%$build%g
++s%@build_alias@%$build_alias%g
++s%@build_cpu@%$build_cpu%g
++s%@build_vendor@%$build_vendor%g
++s%@build_os@%$build_os%g
++s%@CC@%$CC%g
++s%@RANLIB@%$RANLIB%g
++s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
++s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
++s%@INSTALL_DATA@%$INSTALL_DATA%g
++s%@AR@%$AR%g
++s%@TARGET_OS@%$TARGET_OS%g
++s%@TARGET_CPU@%$TARGET_CPU%g
++s%@M68KCC@%$M68KCC%g
++s%@LEXDEFS@%$LEXDEFS%g
++s%@VOXDEFS@%$VOXDEFS%g
++s%@HOST_OS@%$HOST_OS%g
++s%@HOST_CPU@%$HOST_CPU%g
++s%@OTHERLIBS@%$OTHERLIBS%g
++s%@SHFLAGS@%$SHFLAGS%g
++s%@MMAPTYPE@%$MMAPTYPE%g
++s%@STDIOTYPE@%$STDIOTYPE%g
++s%@CPP@%$CPP%g
++s%@AUDIODRIVER@%$AUDIODRIVER%g
++s%@AUDIODEFS@%$AUDIODEFS%g
++s%@AUDIOLIBS@%$AUDIOLIBS%g
++s%@FL_LANG@%$FL_LANG%g
++s%@FL_VOX@%$FL_VOX%g
++s%@FL_LEX@%$FL_LEX%g
++s%@EXEEXT@%$EXEEXT%g
+ 
+-# Name of the executable.
+-as_me=`$as_basename "$0" ||
+-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+-	 X"$0" : 'X\(//\)$' \| \
+-	 X"$0" : 'X\(/\)$' \| \
+-	 .     : '\(.\)' 2>/dev/null ||
+-echo X/"$0" |
+-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
+-  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
+-  	  /^X\/\(\/\).*/{ s//\1/; q; }
+-  	  s/.*/./; q'`
++CEOF
++EOF
+ 
++cat >> $CONFIG_STATUS <<\EOF
+ 
+-# PATH needs CR, and LINENO needs CR and PATH.
+-# Avoid depending upon Character Ranges.
+-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+-as_cr_digits='0123456789'
+-as_cr_alnum=$as_cr_Letters$as_cr_digits
+-
+-# The user is always right.
+-if test "${PATH_SEPARATOR+set}" != set; then
+-  echo "#! /bin/sh" >conf$$.sh
+-  echo  "exit 0"   >>conf$$.sh
+-  chmod +x conf$$.sh
+-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+-    PATH_SEPARATOR=';'
++# Split the substitutions into bite-sized pieces for seds with
++# small command number limits, like on Digital OSF/1 and HP-UX.
++ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
++ac_file=1 # Number of current file.
++ac_beg=1 # First line for current file.
++ac_end=$ac_max_sed_cmds # Line after last line for current file.
++ac_more_lines=:
++ac_sed_cmds=""
++while $ac_more_lines; do
++  if test $ac_beg -gt 1; then
++    sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
+   else
+-    PATH_SEPARATOR=:
++    sed "${ac_end}q" conftest.subs > conftest.s$ac_file
+   fi
+-  rm -f conf$$.sh
+-fi
+-
+-
+-  as_lineno_1=$LINENO
+-  as_lineno_2=$LINENO
+-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+-  test "x$as_lineno_1" != "x$as_lineno_2" &&
+-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
+-  # Find who we are.  Look in the path if we contain no path at all
+-  # relative or not.
+-  case $0 in
+-    *[\\/]* ) as_myself=$0 ;;
+-    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+-done
+-
+-       ;;
+-  esac
+-  # We did not find ourselves, most probably we were run as `sh COMMAND'
+-  # in which case we are not to be found in the path.
+-  if test "x$as_myself" = x; then
+-    as_myself=$0
+-  fi
+-  if test ! -f "$as_myself"; then
+-    { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
+-echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
+-   { (exit 1); exit 1; }; }
+-  fi
+-  case $CONFIG_SHELL in
+-  '')
+-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for as_base in sh bash ksh sh5; do
+-	 case $as_dir in
+-	 /*)
+-	   if ("$as_dir/$as_base" -c '
+-  as_lineno_1=$LINENO
+-  as_lineno_2=$LINENO
+-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+-  test "x$as_lineno_1" != "x$as_lineno_2" &&
+-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
+-	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+-	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
+-	     CONFIG_SHELL=$as_dir/$as_base
+-	     export CONFIG_SHELL
+-	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
+-	   fi;;
+-	 esac
+-       done
+-done
+-;;
+-  esac
+-
+-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+-  # uniformly replaced by the line number.  The first 'sed' inserts a
+-  # line-number line before each line; the second 'sed' does the real
+-  # work.  The second script uses 'N' to pair each line-number line
+-  # with the numbered line, and appends trailing '-' during
+-  # substitution so that $LINENO is not a special case at line end.
+-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
+-  sed '=' <$as_myself |
+-    sed '
+-      N
+-      s,$,-,
+-      : loop
+-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+-      t loop
+-      s,-$,,
+-      s,^['$as_cr_digits']*\n,,
+-    ' >$as_me.lineno &&
+-  chmod +x $as_me.lineno ||
+-    { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
+-echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
+-   { (exit 1); exit 1; }; }
+-
+-  # Don't try to exec as it changes $[0], causing all sort of problems
+-  # (the dirname of $[0] is not the place where we might find the
+-  # original and so on.  Autoconf is especially sensible to this).
+-  . ./$as_me.lineno
+-  # Exit status is that of the last command.
+-  exit
+-}
+-
+-
+-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+-  *c*,-n*) ECHO_N= ECHO_C='
+-' ECHO_T='	' ;;
+-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
+-esac
+-
+-if expr a : '\(a\)' >/dev/null 2>&1; then
+-  as_expr=expr
+-else
+-  as_expr=false
+-fi
+-
+-rm -f conf$$ conf$$.exe conf$$.file
+-echo >conf$$.file
+-if ln -s conf$$.file conf$$ 2>/dev/null; then
+-  # We could just check for DJGPP; but this test a) works b) is more generic
+-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+-  if test -f conf$$.exe; then
+-    # Don't use ln at all; we don't have any links
+-    as_ln_s='cp -p'
++  if test ! -s conftest.s$ac_file; then
++    ac_more_lines=false
++    rm -f conftest.s$ac_file
+   else
+-    as_ln_s='ln -s'
++    if test -z "$ac_sed_cmds"; then
++      ac_sed_cmds="sed -f conftest.s$ac_file"
++    else
++      ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
++    fi
++    ac_file=`expr $ac_file + 1`
++    ac_beg=$ac_end
++    ac_end=`expr $ac_end + $ac_max_sed_cmds`
+   fi
+-elif ln conf$$.file conf$$ 2>/dev/null; then
+-  as_ln_s=ln
+-else
+-  as_ln_s='cp -p'
+-fi
+-rm -f conf$$ conf$$.exe conf$$.file
+-
+-if mkdir -p . 2>/dev/null; then
+-  as_mkdir_p=:
+-else
+-  as_mkdir_p=false
+-fi
+-
+-as_executable_p="test -f"
+-
+-# Sed expression to map a string onto a valid CPP name.
+-as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
+-
+-# Sed expression to map a string onto a valid variable name.
+-as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
+-
+-
+-# IFS
+-# We need space, tab and new line, in precisely that order.
+-as_nl='
+-'
+-IFS=" 	$as_nl"
+-
+-# CDPATH.
+-$as_unset CDPATH
+-
+-exec 6>&1
+-
+-# Open the log real soon, to keep \$[0] and so on meaningful, and to
+-# report actual input values of CONFIG_FILES etc. instead of their
+-# values after options handling.  Logging --version etc. is OK.
+-exec 5>>config.log
+-{
+-  echo
+-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+-## Running $as_me. ##
+-_ASBOX
+-} >&5
+-cat >&5 <<_CSEOF
+-
+-This file was extended by $as_me, which was
+-generated by GNU Autoconf 2.57.  Invocation command line was
+-
+-  CONFIG_FILES    = $CONFIG_FILES
+-  CONFIG_HEADERS  = $CONFIG_HEADERS
+-  CONFIG_LINKS    = $CONFIG_LINKS
+-  CONFIG_COMMANDS = $CONFIG_COMMANDS
+-  $ $0 $@
+-
+-_CSEOF
+-echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
+-echo >&5
+-_ACEOF
+-
+-# Files that config.status was made for.
+-if test -n "$ac_config_files"; then
+-  echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
+-fi
+-
+-if test -n "$ac_config_headers"; then
+-  echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
+-fi
+-
+-if test -n "$ac_config_links"; then
+-  echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
+-fi
+-
+-if test -n "$ac_config_commands"; then
+-  echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
+-fi
+-
+-cat >>$CONFIG_STATUS <<\_ACEOF
+-
+-ac_cs_usage="\
+-\`$as_me' instantiates files from templates according to the
+-current configuration.
+-
+-Usage: $0 [OPTIONS] [FILE]...
+-
+-  -h, --help       print this help, then exit
+-  -V, --version    print version number, then exit
+-  -q, --quiet      do not print progress messages
+-  -d, --debug      don't remove temporary files
+-      --recheck    update $as_me by reconfiguring in the same conditions
+-  --file=FILE[:TEMPLATE]
+-                   instantiate the configuration file FILE
+-
+-Configuration files:
+-$config_files
+-
+-Report bugs to <bug-autoconf@gnu.org>."
+-_ACEOF
+-
+-cat >>$CONFIG_STATUS <<_ACEOF
+-ac_cs_version="\\
+-config.status
+-configured by $0, generated by GNU Autoconf 2.57,
+-  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
+-
+-Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
+-Free Software Foundation, Inc.
+-This config.status script is free software; the Free Software Foundation
+-gives unlimited permission to copy, distribute and modify it."
+-srcdir=$srcdir
+-INSTALL="$INSTALL"
+-_ACEOF
+-
+-cat >>$CONFIG_STATUS <<\_ACEOF
+-# If no file are specified by the user, then we need to provide default
+-# value.  By we need to know if files were specified by the user.
+-ac_need_defaults=:
+-while test $# != 0
+-do
+-  case $1 in
+-  --*=*)
+-    ac_option=`expr "x$1" : 'x\([^=]*\)='`
+-    ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
+-    ac_shift=:
+-    ;;
+-  -*)
+-    ac_option=$1
+-    ac_optarg=$2
+-    ac_shift=shift
+-    ;;
+-  *) # This is not an option, so the user has probably given explicit
+-     # arguments.
+-     ac_option=$1
+-     ac_need_defaults=false;;
+-  esac
+-
+-  case $ac_option in
+-  # Handling of the options.
+-_ACEOF
+-cat >>$CONFIG_STATUS <<\_ACEOF
+-  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+-    ac_cs_recheck=: ;;
+-  --version | --vers* | -V )
+-    echo "$ac_cs_version"; exit 0 ;;
+-  --he | --h)
+-    # Conflict between --help and --header
+-    { { echo "$as_me:$LINENO: error: ambiguous option: $1
+-Try \`$0 --help' for more information." >&5
+-echo "$as_me: error: ambiguous option: $1
+-Try \`$0 --help' for more information." >&2;}
+-   { (exit 1); exit 1; }; };;
+-  --help | --hel | -h )
+-    echo "$ac_cs_usage"; exit 0 ;;
+-  --debug | --d* | -d )
+-    debug=: ;;
+-  --file | --fil | --fi | --f )
+-    $ac_shift
+-    CONFIG_FILES="$CONFIG_FILES $ac_optarg"
+-    ac_need_defaults=false;;
+-  --header | --heade | --head | --hea )
+-    $ac_shift
+-    CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
+-    ac_need_defaults=false;;
+-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+-  | -silent | --silent | --silen | --sile | --sil | --si | --s)
+-    ac_cs_silent=: ;;
+-
+-  # This is an error.
+-  -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
+-Try \`$0 --help' for more information." >&5
+-echo "$as_me: error: unrecognized option: $1
+-Try \`$0 --help' for more information." >&2;}
+-   { (exit 1); exit 1; }; } ;;
+-
+-  *) ac_config_targets="$ac_config_targets $1" ;;
+-
+-  esac
+-  shift
+ done
+-
+-ac_configure_extra_args=
+-
+-if $ac_cs_silent; then
+-  exec 6>/dev/null
+-  ac_configure_extra_args="$ac_configure_extra_args --silent"
++if test -z "$ac_sed_cmds"; then
++  ac_sed_cmds=cat
+ fi
++EOF
+ 
+-_ACEOF
+-cat >>$CONFIG_STATUS <<_ACEOF
+-if \$ac_cs_recheck; then
+-  echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
+-  exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+-fi
++cat >> $CONFIG_STATUS <<EOF
+ 
+-_ACEOF
+-
+-
+-
+-
+-
+-cat >>$CONFIG_STATUS <<\_ACEOF
+-for ac_config_target in $ac_config_targets
+-do
+-  case "$ac_config_target" in
+-  # Handling of arguments.
+-  "config/config" ) CONFIG_FILES="$CONFIG_FILES config/config" ;;
+-  "config/system.mak" ) CONFIG_FILES="$CONFIG_FILES config/system.mak" ;;
+-  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
+-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+-   { (exit 1); exit 1; }; };;
++CONFIG_FILES=\${CONFIG_FILES-"config/config config/system.mak"}
++EOF
++cat >> $CONFIG_STATUS <<\EOF
++for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
++  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
++  case "$ac_file" in
++  *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
++       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
++  *) ac_file_in="${ac_file}.in" ;;
+   esac
+-done
+ 
+-# If the user did not use the arguments to specify the items to instantiate,
+-# then the envvar interface is used.  Set only those that are not.
+-# We use the long form for the default assignment because of an extremely
+-# bizarre bug on SunOS 4.1.3.
+-if $ac_need_defaults; then
+-  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+-fi
++  # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
+ 
+-# Have a temporary directory for convenience.  Make it in the build tree
+-# simply because there is no reason to put it here, and in addition,
+-# creating and moving files from /tmp can sometimes cause problems.
+-# Create a temporary directory, and hook for its removal unless debugging.
+-$debug ||
+-{
+-  trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
+-  trap '{ (exit 1); exit 1; }' 1 2 13 15
+-}
+-
+-# Create a (secure) tmp directory for tmp files.
+-
+-{
+-  tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
+-  test -n "$tmp" && test -d "$tmp"
+-}  ||
+-{
+-  tmp=./confstat$$-$RANDOM
+-  (umask 077 && mkdir $tmp)
+-} ||
+-{
+-   echo "$me: cannot create a temporary directory in ." >&2
+-   { (exit 1); exit 1; }
+-}
+-
+-_ACEOF
+-
+-cat >>$CONFIG_STATUS <<_ACEOF
+-
+-#
+-# CONFIG_FILES section.
+-#
+-
+-# No need to generate the scripts if there are no CONFIG_FILES.
+-# This happens for instance when ./config.status config.h
+-if test -n "\$CONFIG_FILES"; then
+-  # Protect against being on the right side of a sed subst in config.status.
+-  sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
+-   s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
+-s,@SHELL@,$SHELL,;t t
+-s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
+-s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
+-s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
+-s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
+-s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
+-s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
+-s,@exec_prefix@,$exec_prefix,;t t
+-s,@prefix@,$prefix,;t t
+-s,@program_transform_name@,$program_transform_name,;t t
+-s,@bindir@,$bindir,;t t
+-s,@sbindir@,$sbindir,;t t
+-s,@libexecdir@,$libexecdir,;t t
+-s,@datadir@,$datadir,;t t
+-s,@sysconfdir@,$sysconfdir,;t t
+-s,@sharedstatedir@,$sharedstatedir,;t t
+-s,@localstatedir@,$localstatedir,;t t
+-s,@libdir@,$libdir,;t t
+-s,@includedir@,$includedir,;t t
+-s,@oldincludedir@,$oldincludedir,;t t
+-s,@infodir@,$infodir,;t t
+-s,@mandir@,$mandir,;t t
+-s,@build_alias@,$build_alias,;t t
+-s,@host_alias@,$host_alias,;t t
+-s,@target_alias@,$target_alias,;t t
+-s,@DEFS@,$DEFS,;t t
+-s,@ECHO_C@,$ECHO_C,;t t
+-s,@ECHO_N@,$ECHO_N,;t t
+-s,@ECHO_T@,$ECHO_T,;t t
+-s,@LIBS@,$LIBS,;t t
+-s,@build@,$build,;t t
+-s,@build_cpu@,$build_cpu,;t t
+-s,@build_vendor@,$build_vendor,;t t
+-s,@build_os@,$build_os,;t t
+-s,@host@,$host,;t t
+-s,@host_cpu@,$host_cpu,;t t
+-s,@host_vendor@,$host_vendor,;t t
+-s,@host_os@,$host_os,;t t
+-s,@target@,$target,;t t
+-s,@target_cpu@,$target_cpu,;t t
+-s,@target_vendor@,$target_vendor,;t t
+-s,@target_os@,$target_os,;t t
+-s,@CC@,$CC,;t t
+-s,@CFLAGS@,$CFLAGS,;t t
+-s,@LDFLAGS@,$LDFLAGS,;t t
+-s,@CPPFLAGS@,$CPPFLAGS,;t t
+-s,@ac_ct_CC@,$ac_ct_CC,;t t
+-s,@EXEEXT@,$EXEEXT,;t t
+-s,@OBJEXT@,$OBJEXT,;t t
+-s,@RANLIB@,$RANLIB,;t t
+-s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
+-s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
+-s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
+-s,@INSTALL_DATA@,$INSTALL_DATA,;t t
+-s,@AR@,$AR,;t t
+-s,@ac_ct_AR@,$ac_ct_AR,;t t
+-s,@TARGET_OS@,$TARGET_OS,;t t
+-s,@TARGET_CPU@,$TARGET_CPU,;t t
+-s,@M68KCC@,$M68KCC,;t t
+-s,@LEXDEFS@,$LEXDEFS,;t t
+-s,@VOXDEFS@,$VOXDEFS,;t t
+-s,@HOST_OS@,$HOST_OS,;t t
+-s,@HOST_CPU@,$HOST_CPU,;t t
+-s,@OTHERLIBS@,$OTHERLIBS,;t t
+-s,@SHFLAGS@,$SHFLAGS,;t t
+-s,@MMAPTYPE@,$MMAPTYPE,;t t
+-s,@STDIOTYPE@,$STDIOTYPE,;t t
+-s,@CPP@,$CPP,;t t
+-s,@EGREP@,$EGREP,;t t
+-s,@AUDIODRIVER@,$AUDIODRIVER,;t t
+-s,@AUDIODEFS@,$AUDIODEFS,;t t
+-s,@AUDIOLIBS@,$AUDIOLIBS,;t t
+-s,@FL_LANG@,$FL_LANG,;t t
+-s,@FL_VOX@,$FL_VOX,;t t
+-s,@FL_LEX@,$FL_LEX,;t t
+-s,@LIBOBJS@,$LIBOBJS,;t t
+-s,@LTLIBOBJS@,$LTLIBOBJS,;t t
+-CEOF
+-
+-_ACEOF
+-
+-  cat >>$CONFIG_STATUS <<\_ACEOF
+-  # Split the substitutions into bite-sized pieces for seds with
+-  # small command number limits, like on Digital OSF/1 and HP-UX.
+-  ac_max_sed_lines=48
+-  ac_sed_frag=1 # Number of current file.
+-  ac_beg=1 # First line for current file.
+-  ac_end=$ac_max_sed_lines # Line after last line for current file.
+-  ac_more_lines=:
+-  ac_sed_cmds=
+-  while $ac_more_lines; do
+-    if test $ac_beg -gt 1; then
+-      sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+-    else
+-      sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+-    fi
+-    if test ! -s $tmp/subs.frag; then
+-      ac_more_lines=false
+-    else
+-      # The purpose of the label and of the branching condition is to
+-      # speed up the sed processing (if there are no `@' at all, there
+-      # is no need to browse any of the substitutions).
+-      # These are the two extra sed commands mentioned above.
+-      (echo ':t
+-  /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
+-      if test -z "$ac_sed_cmds"; then
+-  	ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
+-      else
+-  	ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
+-      fi
+-      ac_sed_frag=`expr $ac_sed_frag + 1`
+-      ac_beg=$ac_end
+-      ac_end=`expr $ac_end + $ac_max_sed_lines`
+-    fi
+-  done
+-  if test -z "$ac_sed_cmds"; then
+-    ac_sed_cmds=cat
++  # Remove last slash and all that follows it.  Not all systems have dirname.
++  ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
++  if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
++    # The file is in a subdirectory.
++    test ! -d "$ac_dir" && mkdir "$ac_dir"
++    ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
++    # A "../" for each directory in $ac_dir_suffix.
++    ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
++  else
++    ac_dir_suffix= ac_dots=
+   fi
+-fi # test -n "$CONFIG_FILES"
+ 
+-_ACEOF
+-cat >>$CONFIG_STATUS <<\_ACEOF
+-for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
+-  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+-  case $ac_file in
+-  - | *:- | *:-:* ) # input from stdin
+-        cat >$tmp/stdin
+-        ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+-        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+-  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+-        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+-  * )   ac_file_in=$ac_file.in ;;
++  case "$ac_given_srcdir" in
++  .)  srcdir=.
++      if test -z "$ac_dots"; then top_srcdir=.
++      else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
++  /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
++  *) # Relative path.
++    srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
++    top_srcdir="$ac_dots$ac_given_srcdir" ;;
+   esac
+ 
+-  # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
+-  ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+-         X"$ac_file" : 'X\(//\)[^/]' \| \
+-         X"$ac_file" : 'X\(//\)$' \| \
+-         X"$ac_file" : 'X\(/\)' \| \
+-         .     : '\(.\)' 2>/dev/null ||
+-echo X"$ac_file" |
+-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+-  	  /^X\(\/\/\)$/{ s//\1/; q; }
+-  	  /^X\(\/\).*/{ s//\1/; q; }
+-  	  s/.*/./; q'`
+-  { if $as_mkdir_p; then
+-    mkdir -p "$ac_dir"
+-  else
+-    as_dir="$ac_dir"
+-    as_dirs=
+-    while test ! -d "$as_dir"; do
+-      as_dirs="$as_dir $as_dirs"
+-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+-         X"$as_dir" : 'X\(//\)[^/]' \| \
+-         X"$as_dir" : 'X\(//\)$' \| \
+-         X"$as_dir" : 'X\(/\)' \| \
+-         .     : '\(.\)' 2>/dev/null ||
+-echo X"$as_dir" |
+-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+-  	  /^X\(\/\/\)$/{ s//\1/; q; }
+-  	  /^X\(\/\).*/{ s//\1/; q; }
+-  	  s/.*/./; q'`
+-    done
+-    test ! -n "$as_dirs" || mkdir $as_dirs
+-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+-   { (exit 1); exit 1; }; }; }
++  case "$ac_given_INSTALL" in
++  [/$]*) INSTALL="$ac_given_INSTALL" ;;
++  *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
++  esac
+ 
+-  ac_builddir=.
+-
+-if test "$ac_dir" != .; then
+-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+-  # A "../" for each directory in $ac_dir_suffix.
+-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+-else
+-  ac_dir_suffix= ac_top_builddir=
+-fi
+-
+-case $srcdir in
+-  .)  # No --srcdir option.  We are building in place.
+-    ac_srcdir=.
+-    if test -z "$ac_top_builddir"; then
+-       ac_top_srcdir=.
+-    else
+-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+-    fi ;;
+-  [\\/]* | ?:[\\/]* )  # Absolute path.
+-    ac_srcdir=$srcdir$ac_dir_suffix;
+-    ac_top_srcdir=$srcdir ;;
+-  *) # Relative path.
+-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+-esac
+-# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
+-# absolute.
+-ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
+-ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
+-ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
+-ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
+-
+-
+-  case $INSTALL in
+-  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+-  *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
++  echo creating "$ac_file"
++  rm -f "$ac_file"
++  configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
++  case "$ac_file" in
++  *Makefile*) ac_comsub="1i\\
++# $configure_input" ;;
++  *) ac_comsub= ;;
+   esac
+ 
+-  if test x"$ac_file" != x-; then
+-    { echo "$as_me:$LINENO: creating $ac_file" >&5
+-echo "$as_me: creating $ac_file" >&6;}
+-    rm -f "$ac_file"
+-  fi
+-  # Let's still pretend it is `configure' which instantiates (i.e., don't
+-  # use $as_me), people would be surprised to read:
+-  #    /* config.h.  Generated by config.status.  */
+-  if test x"$ac_file" = x-; then
+-    configure_input=
+-  else
+-    configure_input="$ac_file.  "
+-  fi
+-  configure_input=$configure_input"Generated from `echo $ac_file_in |
+-                                     sed 's,.*/,,'` by configure."
++  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
++  sed -e "$ac_comsub
++s%@configure_input@%$configure_input%g
++s%@srcdir@%$srcdir%g
++s%@top_srcdir@%$top_srcdir%g
++s%@INSTALL@%$INSTALL%g
++" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
++fi; done
++rm -f conftest.s*
+ 
+-  # First look for the input files in the build tree, otherwise in the
+-  # src tree.
+-  ac_file_inputs=`IFS=:
+-    for f in $ac_file_in; do
+-      case $f in
+-      -) echo $tmp/stdin ;;
+-      [\\/$]*)
+-         # Absolute (can't be DOS-style, as IFS=:)
+-         test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+-echo "$as_me: error: cannot find input file: $f" >&2;}
+-   { (exit 1); exit 1; }; }
+-         echo $f;;
+-      *) # Relative
+-         if test -f "$f"; then
+-           # Build tree
+-           echo $f
+-         elif test -f "$srcdir/$f"; then
+-           # Source tree
+-           echo $srcdir/$f
+-         else
+-           # /dev/null tree
+-           { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+-echo "$as_me: error: cannot find input file: $f" >&2;}
+-   { (exit 1); exit 1; }; }
+-         fi;;
+-      esac
+-    done` || { (exit 1); exit 1; }
+-_ACEOF
+-cat >>$CONFIG_STATUS <<_ACEOF
+-  sed "$ac_vpsub
+-$extrasub
+-_ACEOF
+-cat >>$CONFIG_STATUS <<\_ACEOF
+-:t
+-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+-s,@configure_input@,$configure_input,;t t
+-s,@srcdir@,$ac_srcdir,;t t
+-s,@abs_srcdir@,$ac_abs_srcdir,;t t
+-s,@top_srcdir@,$ac_top_srcdir,;t t
+-s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
+-s,@builddir@,$ac_builddir,;t t
+-s,@abs_builddir@,$ac_abs_builddir,;t t
+-s,@top_builddir@,$ac_top_builddir,;t t
+-s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
+-s,@INSTALL@,$ac_INSTALL,;t t
+-" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
+-  rm -f $tmp/stdin
+-  if test x"$ac_file" != x-; then
+-    mv $tmp/out $ac_file
+-  else
+-    cat $tmp/out
+-    rm -f $tmp/out
+-  fi
++EOF
++cat >> $CONFIG_STATUS <<EOF
+ 
+-done
+-_ACEOF
++EOF
++cat >> $CONFIG_STATUS <<\EOF
+ 
+-cat >>$CONFIG_STATUS <<\_ACEOF
+-
+-{ (exit 0); exit 0; }
+-_ACEOF
++exit 0
++EOF
+ chmod +x $CONFIG_STATUS
+-ac_clean_files=$ac_clean_files_save
++rm -fr confdefs* $ac_clean_files
++test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
+ 
+-
+-# configure is writing to config.log, and then calls config.status.
+-# config.status does its own redirection, appending to config.log.
+-# Unfortunately, on DOS this fails, as config.log is still kept open
+-# by configure, so config.status won't be able to write to it; its
+-# output is simply discarded.  So we exec the FD to /dev/null,
+-# effectively closing config.log, so it can be properly (re)opened and
+-# appended to by config.status.  When coming back to configure, we
+-# need to make the FD available again.
+-if test "$no_create" != yes; then
+-  ac_cs_success=:
+-  ac_config_status_args=
+-  test "$silent" = yes &&
+-    ac_config_status_args="$ac_config_status_args --quiet"
+-  exec 5>/dev/null
+-  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+-  exec 5>>config.log
+-  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+-  # would make configure fail if this is the last instruction.
+-  $ac_cs_success || { (exit 1); exit 1; }
+-fi
+-
+Index: configure.in
+===================================================================
+--- flite-1.3-release/configure.in	(.../flite-1.3-orig)	(revision 7)
++++ flite-1.3-release/configure.in	(.../release-1.2)	(revision 7)
+@@ -206,10 +206,10 @@
+ AC_CHECK_HEADER(sys/audioio.h,
+               [AUDIODRIVER="sun"
+                AUDIODEFS=-DCST_AUDIO_SUNOS])
+-dnl AC_CHECK_HEADER(sys/asoundlib.h,
+-dnl              [AUDIODRIVER="alsa"
+-dnl	       AUDIODEFS=-DCST_AUDIO_ALSA
+-dnl               AUDIOLIBS=-lasound])
++ AC_CHECK_HEADER(alsa/asoundlib.h,
++              [AUDIODRIVER="alsa"
++	       AUDIODEFS=-DCST_AUDIO_ALSA
++               AUDIOLIBS=-lasound])
+ AC_CHECK_HEADER(mmsystem.h,
+ 	      [AUDIODRIVER="wince"
+ 	       AUDIODEFS=-DCST_AUDIO_WINCE
+Index: src/hrg/Makefile
+===================================================================
+--- flite-1.3-release/src/hrg/Makefile	(.../flite-1.3-orig)	(revision 7)
++++ flite-1.3-release/src/hrg/Makefile	(.../release-1.2)	(revision 7)
+@@ -39,9 +39,14 @@
+ BUILD_DIRS = 
+ ALL_DIRS= 
+ H = 
++include $(TOP)/config/config
+ SRCS = cst_utterance.c cst_relation.c cst_item.c cst_ffeature.c \
+        cst_rel_io.c
+-OBJS = $(SRCS:.c=.o)
++ifdef SHFLAGS
++OBJS := $(SRCS:.c=.os)
++else
++OBJS := $(SRCS:.c=.o)
++endif
+ FILES = Makefile $(H) $(SRCS)
+ LIBNAME = flite
+ 
+Index: src/utils/Makefile
+===================================================================
+--- flite-1.3-release/src/utils/Makefile	(.../flite-1.3-orig)	(revision 7)
++++ flite-1.3-release/src/utils/Makefile	(.../release-1.2)	(revision 7)
+@@ -44,8 +44,13 @@
+        cst_tokenstream.c cst_val.c cst_features.c \
+        cst_endian.c cst_socket.c cst_val_const.c \
+        cst_val_user.c cst_args.c 
++ifdef SHFLAGS
++OBJS := $(SRCS:.c=.os) $(MMAPTYPE:%=cst_mmap_%.os) \
++        $(STDIOTYPE:%=cst_file_%.os)
++else
+ OBJS := $(SRCS:.c=.o) $(MMAPTYPE:%=cst_mmap_%.o) \
+         $(STDIOTYPE:%=cst_file_%.o)
++endif
+ FILES = Makefile $(H) $(SRCS) \
+ 	cst_mmap_posix.c cst_mmap_win32.c cst_mmap_none.c \
+ 	cst_file_stdio.c cst_file_wince.c cst_file_palmos.c
+Index: src/audio/au_alsa.c
+===================================================================
+--- flite-1.3-release/src/audio/au_alsa.c	(.../flite-1.3-orig)	(revision 0)
++++ flite-1.3-release/src/audio/au_alsa.c	(.../release-1.2)	(revision 7)
+@@ -0,0 +1,311 @@
++/*************************************************************************/
++/*                                                                       */
++/*                  Language Technologies Institute                      */
++/*                     Carnegie Mellon University                        */
++/*                        Copyright (c) 2000                             */
++/*                        All Rights Reserved.                           */
++/*                                                                       */
++/*  Permission is hereby granted, free of charge, to use and distribute  */
++/*  this software and its documentation without restriction, including   */
++/*  without limitation the rights to use, copy, modify, merge, publish,  */
++/*  distribute, sublicense, and/or sell copies of this work, and to      */
++/*  permit persons to whom this work is furnished to do so, subject to   */
++/*  the following conditions:                                            */
++/*   1. The code must retain the above copyright notice, this list of    */
++/*      conditions and the following disclaimer.                         */
++/*   2. Any modifications must be clearly marked as such.                */
++/*   3. Original authors' names are not deleted.                         */
++/*   4. The authors' names are not used to endorse or promote products   */
++/*      derived from this software without specific prior written        */
++/*      permission.                                                      */
++/*                                                                       */
++/*  CARNEGIE MELLON UNIVERSITY AND THE CONTRIBUTORS TO THIS WORK         */
++/*  DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING      */
++/*  ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT   */
++/*  SHALL CARNEGIE MELLON UNIVERSITY NOR THE CONTRIBUTORS BE LIABLE      */
++/*  FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES    */
++/*  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN   */
++/*  AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,          */
++/*  ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF       */
++/*  THIS SOFTWARE.                                                       */
++/*                                                                       */
++/*********************************************************************** */
++/*             Author:  Lukas Loehrer (                                  */
++/*               Date:  January 2005                                     */
++/*************************************************************************/
++/*                                                                       */
++/*  Native access to alsa audio devices on Linux                         */
++/*  Tested with libasound version 1.0.10                                 */
++/*************************************************************************/
++
++#include <stdlib.h>
++#include <unistd.h>
++#include <sys/types.h>
++#include <assert.h>
++#include <errno.h>
++
++#include "cst_string.h"
++#include "cst_wave.h"
++#include "cst_audio.h"
++
++#include <alsa/asoundlib.h>
++
++
++/*static char *pcm_dev_name = "hw:0,0"; */
++static char *pcm_dev_name ="default";
++
++static inline void print_pcm_state(snd_pcm_t *handle, char *msg)
++{
++  fprintf(stderr, "PCM state at %s = %s\n", msg,
++		  snd_pcm_state_name(snd_pcm_state(handle)));
++}
++
++cst_audiodev *audio_open_alsa(int sps, int channels, cst_audiofmt fmt)
++{
++  cst_audiodev *ad;
++  unsigned 	int real_rate;
++  int err;
++
++  /* alsa specific stuff */
++  snd_pcm_t *pcm_handle;          
++  snd_pcm_stream_t stream = SND_PCM_STREAM_PLAYBACK;
++  snd_pcm_hw_params_t *hwparams;
++  snd_pcm_format_t format;
++  snd_pcm_access_t access = SND_PCM_ACCESS_RW_INTERLEAVED;
++
++  /* Allocate the snd_pcm_hw_params_t structure on the stack. */
++  snd_pcm_hw_params_alloca(&hwparams);
++
++  /* Open pcm device */
++  err = snd_pcm_open(&pcm_handle, pcm_dev_name, stream, 0);
++  if (err < 0) 
++  {
++	cst_errmsg("audio_open_alsa: failed to open audio device %s. %s\n",
++			   pcm_dev_name, snd_strerror(err));
++	return NULL;
++  }
++
++  /* Init hwparams with full configuration space */
++  err = snd_pcm_hw_params_any(pcm_handle, hwparams);
++  if (err < 0) 
++  {
++	snd_pcm_close(pcm_handle);
++	cst_errmsg("audio_open_alsa: failed to get hardware parameters from audio device. %s\n", snd_strerror(err));
++	return NULL;
++  }
++
++  /* Set access mode */
++  err = snd_pcm_hw_params_set_access(pcm_handle, hwparams, access);
++  if (err < 0) 
++  {
++	snd_pcm_close(pcm_handle);
++	cst_errmsg("audio_open_alsa: failed to set access mode. %s.\n", snd_strerror(err));
++	return NULL;
++  }
++
++  /* Determine matching alsa sample format */
++  /* This could be implemented in a more */
++  /* flexible way (byte order conversion). */
++  switch (fmt)
++  {
++  case CST_AUDIO_LINEAR16:
++	if (CST_LITTLE_ENDIAN)
++	  format = SND_PCM_FORMAT_S16_LE;
++	else
++	  format = SND_PCM_FORMAT_S16_BE;
++	break;
++  case CST_AUDIO_LINEAR8:
++	format = SND_PCM_FORMAT_U8;
++	break;
++  case CST_AUDIO_MULAW:
++	format = SND_PCM_FORMAT_MU_LAW;
++	break;
++  default:
++	snd_pcm_close(pcm_handle);
++	cst_errmsg("audio_open_alsa: failed to find suitable format.\n");
++	return NULL;
++	break;
++  }
++
++  /* Set samble format */
++  err = snd_pcm_hw_params_set_format(pcm_handle, hwparams, format);
++  if (err <0) 
++  {
++	snd_pcm_close(pcm_handle);
++	cst_errmsg("audio_open_alsa: failed to set format. %s.\n", snd_strerror(err));
++	return NULL;
++  }
++
++  /* Set sample rate near the disired rate */
++  real_rate = sps;
++  err = snd_pcm_hw_params_set_rate_near(pcm_handle, hwparams, &real_rate, 0);
++  if (err < 0)   
++  {
++	snd_pcm_close(pcm_handle);
++	cst_errmsg("audio_open_alsa: failed to set sample rate near %d. %s.\n", sps, snd_strerror(err));
++	return NULL;
++  }
++  /*FIXME:  This is probably too strict */
++  assert(sps == real_rate);
++
++  /* Set number of channels */
++  assert(channels >0);
++  err = snd_pcm_hw_params_set_channels(pcm_handle, hwparams, channels);
++  if (err < 0) 
++  {
++	snd_pcm_close(pcm_handle);
++	cst_errmsg("audio_open_alsa: failed to set number of channels to %d. %s.\n", channels, snd_strerror(err));
++	return NULL;
++  }
++
++  /* Commit hardware parameters */
++  err = snd_pcm_hw_params(pcm_handle, hwparams);
++  if (err < 0) 
++  {
++	snd_pcm_close(pcm_handle);
++	cst_errmsg("audio_open_alsa: failed to set hw parameters. %s.\n", snd_strerror(err));
++	return NULL;
++  }
++
++  /* Make sure the device is ready to accept data */
++  assert(snd_pcm_state(pcm_handle) == SND_PCM_STATE_PREPARED);
++
++  /* Write hardware parameters to flite audio device data structure */
++  ad = cst_alloc(cst_audiodev, 1);
++  assert(ad != NULL);
++  ad->real_sps = ad->sps = sps;
++  ad->real_channels = ad->channels = channels;
++  ad->real_fmt = ad->fmt = fmt;
++  ad->platform_data = (void *) pcm_handle;
++
++  return ad;
++}
++
++int audio_close_alsa(cst_audiodev *ad)
++{
++  int result;
++  snd_pcm_t *pcm_handle;
++
++  if (ad == NULL)
++	return 0;
++
++  pcm_handle = (snd_pcm_t *) ad->platform_data;
++  result = snd_pcm_close(pcm_handle);
++  if (result < 0)
++  {
++	cst_errmsg("audio_close_alsa: Error: %s.\n", snd_strerror(result));
++  }
++  cst_free(ad);
++  return result;
++}
++
++/* Returns zero if recovery was successful. */
++static int recover_from_error(snd_pcm_t *pcm_handle, ssize_t res)
++{
++  if (res == -EPIPE) /* xrun */
++  {
++	res = snd_pcm_prepare(pcm_handle);
++	if (res < 0) 
++	{
++	  /* Failed to recover from xrun */
++	  cst_errmsg("recover_from_write_error: failed to recover from xrun. %s\n.", snd_strerror(res));
++	  return res;
++	}
++  } 
++  else if (res == -ESTRPIPE) /* Suspend */
++  {
++	while ((res = snd_pcm_resume(pcm_handle)) == -EAGAIN) 
++	{
++	  snd_pcm_wait(pcm_handle, 1000);
++	}
++	if (res < 0) 
++	{
++	  res = snd_pcm_prepare(pcm_handle);
++	  if (res <0) 
++	  {
++		/* Resume failed */
++		cst_errmsg("audio_recover_from_write_error: failed to resume after suspend. %s\n.", snd_strerror(res));
++		return res;
++	  }
++	}
++  } 
++  else if (res < 0) 
++  {
++	/* Unknown failure */
++	cst_errmsg("audio_recover_from_write_error: %s.\n", snd_strerror(res));
++	return res;
++  }
++  return 0;
++}
++
++int audio_write_alsa(cst_audiodev *ad, void *samples, int num_bytes)
++{
++  size_t frame_size;
++  ssize_t num_frames, res;
++  snd_pcm_t *pcm_handle;
++  char *buf = (char *) samples;
++
++  /* Determine frame size in bytes */
++  frame_size  = audio_bps(ad->real_fmt) * ad->real_channels;
++  /* Require that only complete frames are handed in */
++  assert((num_bytes % frame_size) == 0);
++  num_frames = num_bytes / frame_size;
++  pcm_handle = (snd_pcm_t *) ad->platform_data;
++
++  while (num_frames > 0) 
++  {
++	res = snd_pcm_writei(pcm_handle, buf, num_frames);
++	if (res != num_frames) 
++	{
++	  if (res == -EAGAIN || (res > 0 && res < num_frames)) 
++	  {
++		snd_pcm_wait(pcm_handle, 100);
++	  }
++	  else if (recover_from_error(pcm_handle, res) < 0) 
++	  {
++		return -1;
++	  }
++	}
++
++	if (res >0) 
++	{
++	  num_frames -= res;
++	  buf += res * frame_size;
++	}
++  }
++  return num_bytes;
++}
++
++int audio_flush_alsa(cst_audiodev *ad)
++{
++  int result;
++  result = snd_pcm_drain((snd_pcm_t *) ad->platform_data);
++  if (result < 0)
++  {
++	cst_errmsg("audio_flush_alsa: Error: %s.\n", snd_strerror(result));
++  }
++	/* Prepare device for more data */
++  result = snd_pcm_prepare((snd_pcm_t *) ad->platform_data);
++if (result < 0)
++  {
++	cst_errmsg("audio_flush_alsa: Error: %s.\n", snd_strerror(result));
++  }
++  return result;
++}
++
++int audio_drain_alsa(cst_audiodev *ad)
++{
++  int result;
++  result = snd_pcm_drop((snd_pcm_t *) ad->platform_data);
++  if (result < 0)
++  {
++	cst_errmsg("audio_drain_alsa: Error: %s.\n", snd_strerror(result));
++  }
++/* Prepare device for more data */
++  result = snd_pcm_prepare((snd_pcm_t *) ad->platform_data);
++if (result < 0)
++  {
++	cst_errmsg("audio_drain_alsa: Error: %s.\n", snd_strerror(result));
++  }
++  return result;
++}
+Index: src/audio/Makefile
+===================================================================
+--- flite-1.3-release/src/audio/Makefile	(.../flite-1.3-orig)	(revision 7)
++++ flite-1.3-release/src/audio/Makefile	(.../release-1.2)	(revision 7)
+@@ -43,9 +43,13 @@
+ 
+ BASESRCS = auclient.c auserver.c audio.c 
+ SRCS = $(BASESRCS) $(AUDIODRIVER:%=au_%.c)
+-OBJS = $(SRCS:.c=.o)
++ifdef SHFLAGS
++OBJS := $(SRCS:.c=.os)
++else
++OBJS := $(SRCS:.c=.o)
++endif
+ FILES = Makefile $(H) $(BASESRCS) au_command.c au_none.c \
+-	au_oss.c au_sun.c au_wince.c au_palmos.c
++	au_oss.c au_sun.c au_wince.c au_palmos.c au_alsa.c
+ LIBNAME = flite
+ 
+ LOCAL_INCLUDES = -I. $(AUDIODEFS)
+Index: src/lexicon/Makefile
+===================================================================
+--- flite-1.3-release/src/lexicon/Makefile	(.../flite-1.3-orig)	(revision 7)
++++ flite-1.3-release/src/lexicon/Makefile	(.../release-1.2)	(revision 7)
+@@ -38,8 +38,13 @@
+ DIRNAME=src/lexicon
+ BUILD_DIRS = 
+ ALL_DIRS= 
++include $(TOP)/config/config
+ SRCS = cst_lexicon.c cst_lts.c cst_lts_rewrites.c
+-OBJS = $(SRCS:.c=.o)
++ifdef SHFLAGS
++OBJS := $(SRCS:.c=.os)
++else
++OBJS := $(SRCS:.c=.o)
++endif
+ FILES = Makefile $(SRCS)
+ LIBNAME = flite
+ 
+Index: src/synth/Makefile
+===================================================================
+--- flite-1.3-release/src/synth/Makefile	(.../flite-1.3-orig)	(revision 7)
++++ flite-1.3-release/src/synth/Makefile	(.../release-1.2)	(revision 7)
+@@ -38,9 +38,14 @@
+ DIRNAME=src/synth
+ BUILD_DIRS = 
+ ALL_DIRS= 
++include $(TOP)/config/config
+ SRCS = cst_synth.c cst_utt_utils.c cst_voice.c cst_phoneset.c \
+        flite.c 
+-OBJS = $(SRCS:.c=.o)
++ifdef SHFLAGS
++OBJS := $(SRCS:.c=.os)
++else
++OBJS := $(SRCS:.c=.o)
++endif
+ FILES = Makefile $(SRCS)
+ LIBNAME = flite
+ 
+Index: src/speech/Makefile
+===================================================================
+--- flite-1.3-release/src/speech/Makefile	(.../flite-1.3-orig)	(revision 7)
++++ flite-1.3-release/src/speech/Makefile	(.../release-1.2)	(revision 7)
+@@ -39,9 +39,14 @@
+ BUILD_DIRS = 
+ ALL_DIRS= 
+ H = 
++include $(TOP)/config/config
+ SRCS = cst_wave.c cst_wave_io.c cst_track.c cst_track_io.c \
+        cst_wave_utils.c cst_lpcres.c rateconv.c
+-OBJS = $(SRCS:.c=.o)
++ifdef SHFLAGS
++OBJS := $(SRCS:.c=.os)
++else
++OBJS := $(SRCS:.c=.o)
++endif
+ FILES = Makefile $(H) $(SRCS)
+ LIBNAME = flite
+ 
+Index: src/wavesynth/Makefile
+===================================================================
+--- flite-1.3-release/src/wavesynth/Makefile	(.../flite-1.3-orig)	(revision 7)
++++ flite-1.3-release/src/wavesynth/Makefile	(.../release-1.2)	(revision 7)
+@@ -38,9 +38,14 @@
+ DIRNAME=src/wavesynth
+ BUILD_DIRS = 
+ ALL_DIRS=
++include $(TOP)/config/config
+ SRCS = cst_units.c cst_sigpr.c cst_clunits.c cst_diphone.c \
+        cst_sigprFP.c cst_sts.c cst_reflpc.c
+-OBJS = $(SRCS:.c=.o)
++ifdef SHFLAGS
++OBJS := $(SRCS:.c=.os)
++else
++OBJS := $(SRCS:.c=.o)
++endif
+ LIBNAME = flite
+ FILES = Makefile $(SRCS)
+ 
+Index: src/regex/Makefile
+===================================================================
+--- flite-1.3-release/src/regex/Makefile	(.../flite-1.3-orig)	(revision 7)
++++ flite-1.3-release/src/regex/Makefile	(.../release-1.2)	(revision 7)
+@@ -42,8 +42,13 @@
+ DIRNAME=src/regex
+ BUILD_DIRS = 
+ ALL_DIRS= 
++include $(TOP)/config/config
+ SRCS = cst_regex.c regexp.c regsub.c
+-OBJS = $(SRCS:.c=.o)
++ifdef SHFLAGS
++OBJS := $(SRCS:.c=.os)
++else
++OBJS := $(SRCS:.c=.o)
++endif
+ FILES = Makefile $(H) $(SRCS)
+ LIBNAME = flite
+ 
+Index: src/stats/Makefile
+===================================================================
+--- flite-1.3-release/src/stats/Makefile	(.../flite-1.3-orig)	(revision 7)
++++ flite-1.3-release/src/stats/Makefile	(.../release-1.2)	(revision 7)
+@@ -39,8 +39,13 @@
+ BUILD_DIRS = 
+ ALL_DIRS= 
+ H = 
++include $(TOP)/config/config
+ SRCS = cst_cart.c cst_viterbi.c cst_ss.c
+-OBJS = $(SRCS:.c=.o)
++ifdef SHFLAGS
++OBJS := $(SRCS:.c=.os)
++else
++OBJS := $(SRCS:.c=.o)
++endif
+ FILES = Makefile $(H) $(SRCS)
+ LIBNAME = flite
+ 
+Index: config/common_make_rules
+===================================================================
+--- flite-1.3-release/config/common_make_rules	(.../flite-1.3-orig)	(revision 7)
++++ flite-1.3-release/config/common_make_rules	(.../release-1.2)	(revision 7)
+@@ -73,12 +73,13 @@
+ ifdef SHFLAGS
+ SOOBJS = $(OBJS:.o=.os)
+ FULLSHOBJS = $(SOOBJS:%=$(OBJDIR)/%)
+-ifdef LIBNAME
+-ALL += $(OBJDIR)/.build_so
++#ifdef LIBNAME
++#ALL += $(OBJDIR)/.build_so
++#endif
+ endif
+-endif
+ ifdef LIBNAME
+ ALL += $(OBJDIR)/.build_lib
++ALL += $(OBJDIR)/.build_so
+ endif
+ # Only do some directories when you are not cross compiling
+ ifeq ($(HOST_PLATFORM),$(TARGET_PLATFORM))
+@@ -117,14 +118,17 @@
+ 	@ touch $(OBJDIR)/.build_so
+ 
+ # Used in the lib/ directory and in building new voices
+-$(OBJDIR)/%.so: %.shared.a
++#$(OBJDIR)/%.so: %.shared.a
++%.so: %.shared.a
+ 	@ echo making $@
+ 	@ rm -rf shared_os && mkdir shared_os
+ 	@ rm -f $@ $(LIBDIR)/$@.${PROJECT_VERSION} $(LIBDIR)/$@.${PROJECT_SHLIB_VERSION} 
+ 	@ (cd shared_os && ar x ../$<)
+ 	@ (cd shared_os && $(CC) -shared -Wl,-soname,$@.${PROJECT_SHLIB_VERSION} -o ../$@.${PROJECT_VERSION} *.os)
+-	@ ln -s $(LIBDIR)/$@.${PROJECT_VERSION} $(LIBDIR)/$@.${PROJECT_SHLIB_VERSION}
+-	@ ln -s $(LIBDIR)/$@.${PROJECT_SHLIB_VERSION} $(LIBDIR)/$@
++	#@ ln -s $(LIBDIR)/$@.${PROJECT_VERSION} $(LIBDIR)/$@.${PROJECT_SHLIB_VERSION}
++	#@ ln -s $(LIBDIR)/$@.${PROJECT_SHLIB_VERSION} $(LIBDIR)/$@
++	@ ln -s $@.${PROJECT_VERSION} $@.${PROJECT_SHLIB_VERSION}
++	@ ln -s $@.${PROJECT_SHLIB_VERSION} $@
+ 	@ rm -rf shared_os
+ 
+ $(OBJDIR)/.make_build_dirs:
+Index: lib/Makefile
+===================================================================
+--- flite-1.3-release/lib/Makefile	(.../flite-1.3-orig)	(revision 0)
++++ flite-1.3-release/lib/Makefile	(.../release-1.2)	(revision 7)
+@@ -0,0 +1,70 @@
++###########################################################################
++##                                                                       ##
++##                  Language Technologies Institute                      ##
++##                     Carnegie Mellon University                        ##
++##                        Copyright (c) 1999                             ##
++##                        All Rights Reserved.                           ##
++##                                                                       ##
++##  Permission is hereby granted, free of charge, to use and distribute  ##
++##  this software and its documentation without restriction, including   ##
++##  without limitation the rights to use, copy, modify, merge, publish,  ##
++##  distribute, sublicense, and/or sell copies of this work, and to      ##
++##  permit persons to whom this work is furnished to do so, subject to   ##
++##  the following conditions:                                            ##
++##   1. The code must retain the above copyright notice, this list of    ##
++##      conditions and the following disclaimer.                         ##
++##   2. Any modifications must be clearly marked as such.                ##
++##   3. Original authors' names are not deleted.                         ##
++##   4. The authors' names are not used to endorse or promote products   ##
++##      derived from this software without specific prior written        ##
++##      permission.                                                      ##
++##                                                                       ##
++##  CARNEGIE MELLON UNIVERSITY AND THE CONTRIBUTORS TO THIS WORK         ##
++##  DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING      ##
++##  ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT   ##
++##  SHALL CARNEGIE MELLON UNIVERSITY NOR THE CONTRIBUTORS BE LIABLE      ##
++##  FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES    ##
++##  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN   ##
++##  AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,          ##
++##  ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF       ##
++##  THIS SOFTWARE.                                                       ##
++##                                                                       ##
++###########################################################################
++##                                                                       ##
++##    FLITE libraries                                                    ##
++##                                                                       ##
++###########################################################################
++TOP=..
++DIRNAME=lib
++BUILD_DIRS = 
++ALL_DIRS=
++FILES = Makefile
++LIBNAMES = flite flite_cmulex flite_usenglish \
++           flite_cmu_us_kal flite_cmu_us_kal16 flite_cmu_time_awb
++
++STATICLIBS= $(LIBNAMES:%=lib%.a)
++SHAREDARLIBS= $(LIBNAMES:%=lib%.shared.a)
++#SHAREDLIBS = $(LIBNAMES:%=lib%.so)
++SHAREDLIBS = $(SHAREDARLIBS:%.shared.a=%.so)
++VERSIONSHAREDLIBS = $(SHAREDLIBS:%=%.${PROJECT_VERSION}) \
++                    $(SHAREDLIBS:%=%.${PROJECT_SHLIB_VERSION})
++ALL_LIBS = $(STATICLIBS) $(SHAREDLIBS) $(VERSIONSHAREDLIBS)
++
++ALL = shared_libs
++
++LOCAL_CLEAN=*.a *.so *.so.${PROJECT_VERSION} *.so.${PROJECT_SHLIB_VERSION}
++
++include $(TOP)/config/common_make_rules
++
++ifdef SHFLAGS
++shared_libs: $(SHAREDLIBS)
++else
++shared_libs: nothing
++endif
++
++install:
++	@ cp -vf $(LIBDIR)/* .
++	@ $(MAKE) shared_libs
++	@ echo ARLIBS: $(SHAREDARLIBS)
++	@ echo SHARLIBS: $(SHAREDLIBS)
++	@ tar cvf - $(ALL_LIBS) | ( cd $(INSTALLLIBDIR) && tar xf -)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/flite/flite-alsa-1.3/flite-alsa-1.3-configure-with-audio.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/flite/flite-alsa-1.3/flite-alsa-1.3-configure-with-audio.patch
new file mode 100644
index 0000000..e1e7aed
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/flite/flite-alsa-1.3/flite-alsa-1.3-configure-with-audio.patch
@@ -0,0 +1,12 @@
+--- flite-1.3-release/configure.in.old	2008-01-06 02:17:47.000000000 -0600
++++ flite-1.3-release/configure.in	2008-01-06 02:19:56.000000000 -0600
+@@ -220,7 +220,8 @@ dnl allow the user to override the one d
+ dnl
+ AC_ARG_WITH( audio,
+ 	[  --with-audio          with specific audio support (none linux freebsd etc) ],
+-        AUDIODRIVER=$with_audio )
++        [AUDIODRIVER=$with_audio
++         AUDIODEFS=])
+ 
+ if test "x$AUDIODEFS" = x; then
+     case "$AUDIODRIVER" in
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/flite/flite-alsa_1.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/flite/flite-alsa_1.3.bb
new file mode 100644
index 0000000..51012e6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/flite/flite-alsa_1.3.bb
@@ -0,0 +1,12 @@
+require flite.inc
+
+PR = "r1"
+
+EXTRA_OECONF = "--with-audio=alsa --enable-shared"
+
+SRC_URI = "http://www.speech.cs.cmu.edu/flite/packed/flite-${PV}/flite-${PV}-release.tar.gz \
+           file://flite-1.3-alsa_support-1.2.diff \
+           file://flite-alsa-1.3-configure-with-audio.patch"
+
+SRC_URI[md5sum] = "ae0aca1cb7b4801f4372f3a75a9e52b5"
+SRC_URI[sha256sum] = "922225f7001e57a0fbace8833b0a48790a68f6c7b491f2d47c78ad537ab78a8b"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/flite/flite.inc b/import-layers/meta-openembedded/meta-oe/recipes-support/flite/flite.inc
new file mode 100644
index 0000000..0ef82c0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/flite/flite.inc
@@ -0,0 +1,33 @@
+DESCRIPTION = "flite - the festival light speech synthesizer"
+HOMEPAGE = "http://www.speech.cs.cmu.edu/flite/"
+SECTION = "console/utils"
+LICENSE = "flite"
+LIC_FILES_CHKSUM = "file://COPYING;md5=68a16b1ee49c96c36f232ccdcd287650"
+DEPENDS = "alsa-oss"
+
+PARALLEL_MAKE = ""
+
+S = "${WORKDIR}/flite-${PV}-release"
+
+CFLAGS += " -lasound "
+
+inherit autotools-brokensep
+
+PACKAGES += "lib${PN} lib${PN}-vox8 lib${PN}-vox16"
+
+FILES_${PN} = "${bindir}"
+
+FILES_lib${PN} ="${libdir}/libflite.so.* \
+    ${libdir}/libflite_cmu_time_awb.so.* \
+    ${libdir}/libflite_cmulex.so.* \
+    ${libdir}/libflite_usenglish.so.*"
+
+FILES_lib${PN}-vox8 = "${libdir}/libflite_cmu_us_kal.so.*"
+
+FILES_lib${PN}-vox16 = "${libdir}/libflite_cmu_us_kal16.so.*"
+
+LEAD_SONAME = "libflite.so"
+
+do_install() {
+    oe_runmake INSTALLBINDIR="${D}${bindir}" INSTALLLIBDIR="${D}${libdir}" INSTALLINCDIR="${D}${includedir}" install
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/fltk/fltk/disable_test.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/fltk/fltk/disable_test.patch
new file mode 100644
index 0000000..1f5fd25
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/fltk/fltk/disable_test.patch
@@ -0,0 +1,11 @@
+--- a/Makefile.orig	2015-11-26 15:35:31.485357862 +0800
++++ b/Makefile	2015-11-26 15:35:37.037357764 +0800
+@@ -18,7 +18,7 @@
+ 
+ include makeinclude
+ 
+-DIRS = $(IMAGEDIRS) src $(CAIRODIR) fluid test documentation
++DIRS = $(IMAGEDIRS) src $(CAIRODIR) fluid documentation
+ 
+ all: makeinclude fltk-config
+ 	for dir in $(DIRS); do\
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/fltk/fltk/fix-boolean-issue-with-jpeg9.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/fltk/fltk/fix-boolean-issue-with-jpeg9.patch
new file mode 100644
index 0000000..014184d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/fltk/fltk/fix-boolean-issue-with-jpeg9.patch
@@ -0,0 +1,40 @@
+From 14c22398f8370e33a798360ed0dad513af8f1470 Mon Sep 17 00:00:00 2001
+From: AlbrechtS <AlbrechtS@ea41ed52-d2ee-0310-a9c1-e6b18d33e121>
+Date: Sun, 15 Mar 2015 19:32:33 +0000
+Subject: [PATCH] Fix 'boolean' issue with jpeg-9 library compatibility (STR
+ #2920).
+
+According to comments in STR #2920 and my own tests this is also
+compatible with older jpeg libraries (at least jpeg-8).
+
+Upstream-Status: Backport
+
+---
+ src/Fl_JPEG_Image.cxx |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/Fl_JPEG_Image.cxx b/src/Fl_JPEG_Image.cxx
+index 47120a7..6cebe88 100644
+--- a/src/Fl_JPEG_Image.cxx
++++ b/src/Fl_JPEG_Image.cxx
+@@ -155,7 +155,7 @@ Fl_JPEG_Image::Fl_JPEG_Image(const char *filename)	// I - File to load
+   
+   jpeg_create_decompress(&dinfo);
+   jpeg_stdio_src(&dinfo, fp);
+-  jpeg_read_header(&dinfo, 1);
++  jpeg_read_header(&dinfo, TRUE);
+   
+   dinfo.quantize_colors      = (boolean)FALSE;
+   dinfo.out_color_space      = JCS_RGB;
+@@ -337,7 +337,7 @@ Fl_JPEG_Image::Fl_JPEG_Image(const char *name, const unsigned char *data)
+   
+   jpeg_create_decompress(&dinfo);
+   jpeg_mem_src(&dinfo, data);
+-  jpeg_read_header(&dinfo, 1);
++  jpeg_read_header(&dinfo, TRUE);
+   
+   dinfo.quantize_colors      = (boolean)FALSE;
+   dinfo.out_color_space      = JCS_RGB;
+-- 
+1.7.9.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/fltk/fltk/fltk-no-freetype-config.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/fltk/fltk/fltk-no-freetype-config.patch
new file mode 100644
index 0000000..4d13ffc
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/fltk/fltk/fltk-no-freetype-config.patch
@@ -0,0 +1,20 @@
+--- a/configure.in.orig	2015-11-26 14:30:17.893426966 +0800
++++ b/configure.in	2015-11-26 14:33:00.285424099 +0800
+@@ -969,12 +969,12 @@ case $host_os_gui in
+         AC_ARG_ENABLE(xft, [  --enable-xft            turn on Xft support [[default=yes]]])
+ 
+ 	if test x$enable_xft != xno; then
+-            AC_PATH_PROG(FTCONFIG,freetype-config)
++            AC_PATH_PROG(PKGCONFIG,pkg-config)
+ 
+-	    if test "x$FTCONFIG" != x; then
+-	        CPPFLAGS="`$FTCONFIG --cflags` $CPPFLAGS"
+-	        CFLAGS="`$FTCONFIG --cflags` $CFLAGS"
+-	        CXXFLAGS="`$FTCONFIG --cflags` $CXXFLAGS"
++	    if test "x$PKGCONFIG" != x; then
++	        CPPFLAGS="`$PKGCONFIG --cflags xft` $CPPFLAGS"
++	        CFLAGS="`$PKGCONFIG --cflags xft` $CFLAGS"
++	        CXXFLAGS="`$PKGCONFIG --cflags xft` $CXXFLAGS"
+ 
+ 	        AC_CHECK_LIB(fontconfig, FcPatternCreate)
+ 		AC_CHECK_HEADER(X11/Xft/Xft.h,
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/fltk/fltk_1.3.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/fltk/fltk_1.3.3.bb
new file mode 100644
index 0000000..117ecc3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/fltk/fltk_1.3.3.bb
@@ -0,0 +1,49 @@
+SUMMARY = "FLTK is a cross-platform C++ GUI toolkit"
+HOMEPAGE = "http://www.fltk.org"
+SECTION = "libs"
+LICENSE = "LGPLv2 & FLTK"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f6b26344a24a941a01a5b0826e80b5ca"
+
+DEPENDS = "alsa-lib zlib jpeg libpng libxext libxft"
+
+SRC_URI = "http://fltk.org/pub/fltk/${PV}/${BP}-source.tar.gz \
+           file://disable_test.patch \
+           file://fltk-no-freetype-config.patch \
+           file://fix-boolean-issue-with-jpeg9.patch \
+"
+
+SRC_URI[md5sum] = "9ccdb0d19dc104b87179bd9fd10822e3"
+SRC_URI[sha256sum] = "f8398d98d7221d40e77bc7b19e761adaf2f1ef8bb0c30eceb7beb4f2273d0d97"
+
+inherit autotools-brokensep binconfig pkgconfig lib_package
+
+TARGET_CC_ARCH += "${LDFLAGS} -DXFT_MAJOR=2"
+
+EXTRA_OECONF = "--enable-shared \
+                --enable-threads \
+                --enable-xdbe \
+                --enable-xft \
+"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'opengl', '', d)}"
+
+PACKAGECONFIG[opengl] = "--enable-gl,--disable-gl,virtual/libgl"
+PACKAGECONFIG[xinerama] = "--enable-xinerama,--disable-xinerama,libxinerama"
+PACKAGECONFIG[xfixes] = "--enable-xfixes,--disable-xfixes,libxfixes"
+PACKAGECONFIG[xcursor] = "--enable-xcursor,--disable-xcursor,libxcursor"
+
+do_configure() {
+    oe_runconf
+}
+
+do_install_append_class-target() {
+    sed -i -e 's,${STAGING_DIR_HOST},,g' ${D}${bindir}/fltk-config
+}
+
+python populate_packages_prepend () {
+    if (d.getVar('DEBIAN_NAMES', 1)):
+        d.setVar('PKG_${BPN}', 'libfltk${PV}')
+}
+
+LEAD_SONAME = "libfltk.so"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/0001-FindGStreamer_1_0-fix-build-failure-for-new-gstreame.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/0001-FindGStreamer_1_0-fix-build-failure-for-new-gstreame.patch
new file mode 100644
index 0000000..d5f6485
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/0001-FindGStreamer_1_0-fix-build-failure-for-new-gstreame.patch
@@ -0,0 +1,71 @@
+From bea27fd919b64ee8d97996409e279e1e83d13594 Mon Sep 17 00:00:00 2001
+From: Jean-Louis Dupond <jean-louis@dupond.be>
+Date: Sun, 4 Oct 2015 18:17:33 +0200
+Subject: [PATCH] FindGStreamer_1_0: fix build failure for new gstreamer
+ versions
+
+---
+ cmake/FindGStreamer_1_0.cmake | 30 +++++++++++++++---------------
+ 1 file changed, 15 insertions(+), 15 deletions(-)
+
+diff --git a/cmake/FindGStreamer_1_0.cmake b/cmake/FindGStreamer_1_0.cmake
+index f7bf990..3aa8fc6 100644
+--- a/cmake/FindGStreamer_1_0.cmake
++++ b/cmake/FindGStreamer_1_0.cmake
+@@ -53,17 +53,17 @@ set(GSTREAMER_1_0_MINIMUM_VERSION 1.0.5)
+ # Helper macro to find a Gstreamer plugin (or Gstreamer itself)
+ #   _component_prefix is prepended to the _INCLUDE_DIRS and _LIBRARIES variables (eg. "GSTREAMER_1_0_AUDIO")
+ #   _pkgconfig_name is the component's pkg-config name (eg. "gstreamer-1.0", or "gstreamer-video-1.0").
+-#   _header is the component's header, relative to the gstreamer-1.0 directory (eg. "gst/gst.h").
+ #   _library is the component's library name (eg. "gstreamer-1.0" or "gstvideo-1.0")
+-macro(FIND_GSTREAMER_COMPONENT _component_prefix _pkgconfig_name _header _library)
++macro(FIND_GSTREAMER_COMPONENT _component_prefix _pkgconfig_name _library)
+     # FIXME: The QUIET keyword can be used once we require CMake 2.8.2.
+-    pkg_check_modules(PC_${_component_prefix} ${_pkgconfig_name})
+ 
+-    find_path(${_component_prefix}_INCLUDE_DIRS
+-        NAMES ${_header}
+-        HINTS ${PC_${_component_prefix}_INCLUDE_DIRS} ${PC_${_component_prefix}_INCLUDEDIR}
+-        PATH_SUFFIXES gstreamer-1.0
+-    )
++    string(REGEX MATCH "(.*)>=(.*)" _dummy "${_pkgconfig_name}")
++    if ("${CMAKE_MATCH_2}" STREQUAL "")
++        pkg_check_modules(PC_${_component_prefix} "${_pkgconfig_name} >= ${GStreamer_FIND_VERSION}")
++    else ()
++        pkg_check_modules(PC_${_component_prefix} ${_pkgconfig_name})
++    endif ()
++    set(${_component_prefix}_INCLUDE_DIRS ${PC_${_component_prefix}_INCLUDE_DIRS})
+ 
+     find_library(${_component_prefix}_LIBRARIES
+         NAMES ${_library} gstreamer_android
+@@ -78,8 +78,8 @@ endmacro()
+ # 1.1. Find headers and libraries
+ set(GLIB_ROOT_DIR ${GSTREAMER_1_0_ROOT_DIR})
+ find_package(Glib REQUIRED)
+-FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0 gstreamer-1.0 gst/gst.h gstreamer-1.0)
+-FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0_BASE gstreamer-base-1.0 gst/gst.h gstbase-1.0)
++FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0 gstreamer-1.0 gstreamer-1.0)
++FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0_BASE gstreamer-base-1.0 gstbase-1.0)
+ 
+ # 1.2. Check Gstreamer version
+ if (GSTREAMER_1_0_INCLUDE_DIRS)
+@@ -110,11 +110,11 @@ endif ()
+ # 2. Find Gstreamer plugins
+ # -------------------------
+ 
+-FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0_APP gstreamer-app-1.0 gst/app/gstappsink.h gstapp-1.0)
+-FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0_AUDIO gstreamer-audio-1.0 gst/audio/audio.h gstaudio-1.0)
+-FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0_FFT gstreamer-fft-1.0 gst/fft/gstfft.h gstfft-1.0)
+-FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0_PBUTILS gstreamer-pbutils-1.0 gst/pbutils/pbutils.h gstpbutils-1.0)
+-FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0_VIDEO gstreamer-video-1.0 gst/video/video.h gstvideo-1.0)
++FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0_APP gstreamer-app-1.0 gstapp-1.0)
++FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0_AUDIO gstreamer-audio-1.0 gstaudio-1.0)
++FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0_FFT gstreamer-fft-1.0 gstfft-1.0)
++FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0_PBUTILS gstreamer-pbutils-1.0 gstpbutils-1.0)
++FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0_VIDEO gstreamer-video-1.0 gstvideo-1.0)
+ 
+ # ------------------------------------------------
+ # 3. Process the COMPONENTS passed to FIND_PACKAGE
+-- 
+2.6.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/winpr-makecert-Build-with-install-RPATH.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/winpr-makecert-Build-with-install-RPATH.patch
new file mode 100644
index 0000000..d279d6d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/winpr-makecert-Build-with-install-RPATH.patch
@@ -0,0 +1,31 @@
+From 253eafc8c8da83fc2b1a99a9e43824efc6105c7a Mon Sep 17 00:00:00 2001
+From: Manuel Bachmann <manuel.bachmann@iot.bzh>
+Date: Sun, 4 Oct 2015 10:44:49 +0200
+Subject: [PATCH] winpr-makecert: Build with install RPATH
+
+As we are installing "winpr-makecert" manually, we do want
+to refer to the library in DESTDIR, not the one resting in
+the build tree.
+
+Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
+---
+ winpr/tools/makecert/cli/CMakeLists.txt | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/winpr/tools/makecert/cli/CMakeLists.txt b/winpr/tools/makecert/cli/CMakeLists.txt
+index 17954c4..90c446b 100644
+--- a/winpr/tools/makecert/cli/CMakeLists.txt
++++ b/winpr/tools/makecert/cli/CMakeLists.txt
+@@ -45,5 +45,9 @@ set(${MODULE_PREFIX}_LIBS winpr-makecert-tool)
+ 
+ target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
+ 
++set_target_properties(${MODULE_NAME} PROPERTIES 
++	BUILD_WITH_INSTALL_RPATH 1)
++
+ set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "WinPR/Tools")
+ 
++
+-- 
+1.8.3.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_git.bb
new file mode 100644
index 0000000..339a053
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_git.bb
@@ -0,0 +1,90 @@
+# Copyright (C) 2010-2012 O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license
+
+DESCRIPTION = "FreeRDP RDP client & server library"
+HOMEPAGE = "http://www.freerdp.com"
+DEPENDS = "openssl alsa-lib pcsc-lite"
+SECTION = "net"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+inherit pkgconfig cmake gitpkgv
+
+PV = "1.2.5+gitr${SRCPV}"
+PKGV = "${GITPKGVTAG}"
+
+SRCREV = "62da9d28c674814c81c245c1c7882eb0da7be76b"
+SRC_URI = "git://github.com/FreeRDP/FreeRDP.git \
+    file://winpr-makecert-Build-with-install-RPATH.patch \
+    file://0001-FindGStreamer_1_0-fix-build-failure-for-new-gstreame.patch \
+"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECMAKE += " \
+    -DWITH_ALSA=ON \
+    -DWITH_PCSC=ON \
+    -DWITH_FFMPEG=OFF \
+    -DWITH_CUNIT=OFF \
+    -DWITH_NEON=OFF \
+    -DBUILD_STATIC_LIBS=OFF \
+    -DCMAKE_POSITION_INDEPENDANT_CODE=ON \
+    -DWITH_MANPAGES=OFF \
+"
+
+PACKAGECONFIG ??= "  \
+                ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}\
+                ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)}\
+                ${@bb.utils.contains('DISTRO_FEATURES', 'directfb', 'directfb', '', d)}\
+                ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}\
+                ${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)}\
+                gstreamer cups \
+                "
+
+X11_DEPS = "virtual/libx11 libxinerama libxext libxcursor libxv libxi libxrender libxfixes libxdamage libxrandr libxkbfile"
+PACKAGECONFIG[x11] = "-DWITH_X11=ON -DWITH_XINERAMA=ON -DWITH_XEXT=ON -DWITH_XCURSOR=ON -DWITH_XV=ON -DWITH_XI=ON -DWITH_XRENDER=ON -DWITH_XFIXES=ON -DWITH_XDAMAGE=ON -DWITH_XRANDR=ON -DWITH_XKBFILE=ON,-DWITH_X11=OFF,${X11_DEPS}"
+PACKAGECONFIG[wayland] = "-DWITH_WAYLAND=ON,-DWITH_WAYLAND=OFF,wayland"
+PACKAGECONFIG[directfb] = "-DWITH_DIRECTFB=ON,-DWITH_DIRECTFB=OFF,directfb"
+PACKAGECONFIG[pam] = "-DWITH_PAM=ON,-DWITH_PAM=OFF,libpam"
+PACKAGECONFIG[pulseaudio] = "-DWITH_PULSEAUDIO=ON,-DWITH_PULSEAUDIO=OFF,pulseaudio"
+PACKAGECONFIG[gstreamer] = "-DWITH_GSTREAMER_1_0=ON,-DWITH_GSTREAMER_1_0=OFF,gstreamer1.0 gstreamer1.0-plugins-base"
+PACKAGECONFIG[cups] = "-DWITH_CUPS=ON,-DWITH_CUPS=OFF,cups"
+
+PACKAGES =+ "libfreerdp"
+
+LEAD_SONAME = "libfreerdp.so"
+FILES_libfreerdp = "${libdir}/lib*${SOLIBS}"
+
+PACKAGES_DYNAMIC += "^libfreerdp-plugin-.*"
+
+# we will need winpr-makecert to generate TLS certificates
+do_install_append () {
+    install -d ${D}${bindir}
+    install -m755 winpr/tools/makecert/cli/winpr-makecert ${D}${bindir}
+    rm -rf ${D}${libdir}/cmake
+    rm -rf ${D}${libdir}/freerdp
+}
+
+python populate_packages_prepend () {
+    freerdp_root = d.expand('${libdir}/freerdp')
+
+    do_split_packages(d, freerdp_root, '^(audin_.*)\.so$',
+        output_pattern='libfreerdp-plugin-%s',
+        description='FreeRDP plugin %s',
+        prepend=True, extra_depends='libfreerdp-plugin-audin')
+
+    do_split_packages(d, freerdp_root, '^(rdpsnd_.*)\.so$',
+        output_pattern='libfreerdp-plugin-%s',
+        description='FreeRDP plugin %s',
+        prepend=True, extra_depends='libfreerdp-plugin-rdpsnd')
+
+    do_split_packages(d, freerdp_root, '^(tsmf_.*)\.so$',
+        output_pattern='libfreerdp-plugin-%s',
+        description='FreeRDP plugin %s',
+        prepend=True, extra_depends='libfreerdp-plugin-tsmf')
+
+    do_split_packages(d, freerdp_root, '^([^-]*)\.so$',
+        output_pattern='libfreerdp-plugin-%s',
+        description='FreeRDP plugin %s',
+        prepend=True, extra_depends='')
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd_2.1.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd_2.1.1.bb
new file mode 100644
index 0000000..85c7e6a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gd/gd_2.1.1.bb
@@ -0,0 +1,47 @@
+SUMMARY = "gd is a library used to create PNG, JPEG, or WBMP images"
+DESCRIPTION = "The gd graphics library allows your code to quickly draw images \
+complete with lines, arcs, text, multiple colors, cut and paste from other \
+images, and flood fills, and to write out the result as a PNG or JPEG file. \
+This is particularly useful in Web applications, where PNG and JPEG are two \
+of the formats accepted for inline images by most browsers. Note that gd is not \
+a paint program."
+HOMEPAGE = "http://libgd.bitbucket.org/"
+
+SECTION = "libs"
+LICENSE = "GD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c97638cafd3581eb87abd37332137669"
+DEPENDS = "freetype libpng jpeg zlib tiff"
+
+SRC_URI = "https://bitbucket.org/libgd/gd-libgd/downloads/libgd-${PV}.tar.bz2 \
+"
+SRC_URI[md5sum] = "d3f1a992ac9c550ebc6da89c147f89af"
+SRC_URI[sha256sum] = "895ea9c6fcab187b0a908ae3e9e6b06423756f8a643d362349b0caab4014bd0d"
+
+S = "${WORKDIR}/libgd-${PV}"
+
+inherit autotools binconfig gettext pkgconfig
+
+EXTRA_OECONF += " --disable-rpath \
+                  --with-jpeg=${STAGING_LIBDIR}/.. \
+                  --with-freetype=yes \
+                  --without-fontconfig \
+                  --without-xpm \
+                  --without-x \
+                  --without-vpx \
+                "
+
+EXTRA_OEMAKE = 'LDFLAGS="${LDFLAGS}"'
+
+do_install_append() {
+	# cleanup buildpaths from gdlib.pc
+	sed -i -e 's#${STAGING_DIR_HOST}##g' ${D}${libdir}/pkgconfig/gdlib.pc
+}
+
+PACKAGES += "${PN}-tools"
+
+FILES_${PN} = "${libdir}/lib*${SOLIBS}"
+FILES_${PN}-tools = "${bindir}/*"
+
+PROVIDES += "${PN}-tools"
+RPROVIDES_${PN}-tools = "${PN}-tools"
+RDEPENDS_${PN}-tools = "perl perl-module-strict"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/glog/glog.inc b/import-layers/meta-openembedded/meta-oe/recipes-support/glog/glog.inc
new file mode 100644
index 0000000..8a1fb42
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/glog/glog.inc
@@ -0,0 +1,11 @@
+DESCRIPTION = "The glog library implements application-level logging. This \
+library provides logging APIs based on C++-style streams and various helper \
+macros."
+HOMEPAGE = "https://code.google.com/p/google-glog/"
+
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=dc9db360e0bbd4e46672f3fd91dd6c4b"
+
+DEPENDS = "libunwind"
+
+inherit autotools pkgconfig
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/glog/glog_0.3.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/glog/glog_0.3.3.bb
new file mode 100644
index 0000000..de3f076
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/glog/glog_0.3.3.bb
@@ -0,0 +1,6 @@
+require glog.inc
+
+SRC_URI = "http://google-glog.googlecode.com/files/glog-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "a6fd2c22f8996846e34c763422717c18"
+SRC_URI[sha256sum] = "fbf90c2285ba0561db7a40f8a4eefb9aa963e7d399bd450363e959929fe849d0"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_git.bb
new file mode 100644
index 0000000..766e41a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_git.bb
@@ -0,0 +1,34 @@
+SUMMARY = "The GNU portability library"
+DESCRIPTION = "A collection of software subroutines which are designed to \
+be usable on many operating systems. The goal of the project \
+is to make it easy for free software authors to make their \
+software run on many operating systems. Since source is designed \
+to be copied from gnulib, it is not a library per-se, as much \
+as a collection of portable idioms to be used in other projects."
+
+HOMEPAGE = "http://www.gnu.org/software/gnulib/"
+SECTION = "devel"
+LICENSE = "LGPLv2+"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=e4cf3810f33a067ea7ccd2cd889fed21"
+SRCREV = "24379a9217fa4bd62685795aaaa010fd90ced9e3"
+SRC_URI = "git://git.sv.gnu.org/gnulib;protocol=git \
+"
+S = "${WORKDIR}/git"
+
+do_install () {
+    cd ${S}
+    git checkout master
+    git clone ${S} ${D}/${datadir}/gnulib
+}
+
+do_patch[noexec] = "1"
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
+do_package[noexec] = "1"
+do_packagedata[noexec] = "1"
+do_package_write_ipk[noexec] = "1"
+do_package_write_deb[noexec] = "1"
+do_package_write_rpm[noexec] = "1"
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.4.bb
new file mode 100644
index 0000000..3d8e2a9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.4.bb
@@ -0,0 +1,12 @@
+SUMMARY = "Fast, multi-threaded malloc() and nifty performance analysis tools"
+HOMEPAGE = "http://code.google.com/p/gperftools/"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=762732742c73dc6c7fbe8632f06c059a"
+DEPENDS = "libunwind"
+
+SRC_URI = "http://pkgs.fedoraproject.org/repo/pkgs/gperftools/gperftools-2.4.tar.gz/2171cea3bbe053036fb5d5d25176a160/gperftools-2.4.tar.gz"
+
+SRC_URI[md5sum] = "2171cea3bbe053036fb5d5d25176a160"
+SRC_URI[sha256sum] = "982a37226eb42f40714e26b8076815d5ea677a422fb52ff8bfca3704d9c30a2d"
+
+inherit autotools
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gpm/gpm-1.99.7/eglibc-2.17.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/gpm/gpm-1.99.7/eglibc-2.17.patch
new file mode 100644
index 0000000..e43bdcb
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gpm/gpm-1.99.7/eglibc-2.17.patch
@@ -0,0 +1,12 @@
+Upstream-Status: pending
+
+--- gpm-1.99.7.orig/src/daemon/open_console.c	2008-07-24 12:33:05.000000000 +0200
++++ gpm-1.99.7/src/daemon/open_console.c	2013-01-10 12:39:47.975461947 +0100
+@@ -23,6 +23,7 @@
+ #include <fcntl.h>              /* open and co.  */
+ #include <sys/stat.h>           /* stat() */
+ #include <sys/ioctl.h>          /* ioctl() */
++#include <sys/types.h>          /* major() */
+ 
+ /* Linux specific (to be outsourced in gpm2 */
+ #include <linux/serial.h>       /* for serial console check */
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gpm/gpm-1.99.7/init b/import-layers/meta-openembedded/meta-oe/recipes-support/gpm/gpm-1.99.7/init
new file mode 100644
index 0000000..2dcf9ab
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gpm/gpm-1.99.7/init
@@ -0,0 +1,32 @@
+#! /bin/sh  
+
+# Grab the common functions
+#. /etc/init.d/functions
+
+# FIXME: 
+# Add a configuration file for GPM here
+
+test -x /usr/sbin/gpm || exit 0
+
+case "$1" in
+  start)
+    if [ ! -p /dev/gpmdata ]; then
+        mkfifo /dev/gpmdata
+    fi
+
+    echo "Starting GPM:" 
+    start-stop-daemon -S -x /usr/sbin/gpm -- -R -m /dev/psaux -t ps2
+    ;;
+  stop)
+    echo "Stopping GPM:" 
+    start-stop-daemon -K -x /usr/sbin/gpm
+    ;;
+  restart|force-reload) 
+    $0 stop
+    $0 start
+    ;;
+  *)
+    usage /etc/init.d/gpm
+esac
+
+exit 0
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gpm/gpm-1.99.7/no-docs.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/gpm/gpm-1.99.7/no-docs.patch
new file mode 100644
index 0000000..f10217a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gpm/gpm-1.99.7/no-docs.patch
@@ -0,0 +1,18 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+Index: gpm-1.99.7/Makefile.in
+===================================================================
+--- gpm-1.99.7.orig/Makefile.in	2008-07-24 03:36:35.000000000 -0700
++++ gpm-1.99.7/Makefile.in	2010-06-22 18:28:45.269507001 -0700
+@@ -19,7 +19,7 @@
+ # user-overridable flags, but it's also all the implicit rule looks at.
+ # missing ?
+ 
+-SUBDIRS = src doc contrib gpm2
++SUBDIRS = src
+ 
+ 
+ ### simple, but effective rules
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gpm/gpm-1.99.7/processcreds.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/gpm/gpm-1.99.7/processcreds.patch
new file mode 100644
index 0000000..d647eca
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gpm/gpm-1.99.7/processcreds.patch
@@ -0,0 +1,12 @@
+Index: gpm-1.99.7/src/daemon/processconn.c
+===================================================================
+--- gpm-1.99.7.orig/src/daemon/processconn.c	2010-09-29 17:36:18.571782951 +0400
++++ gpm-1.99.7/src/daemon/processconn.c	2010-09-29 17:42:44.659991758 +0400
+@@ -20,6 +20,7 @@
+  *
+  ********/
+ 
++#define _GNU_SOURCE
+ #include <sys/socket.h>         /* accept */
+ #include <stdlib.h>             /* malloc */
+ #include <unistd.h>             /* close */
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gpm/gpm_1.99.7.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/gpm/gpm_1.99.7.bb
new file mode 100644
index 0000000..7022057
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gpm/gpm_1.99.7.bb
@@ -0,0 +1,52 @@
+DESCRIPTION = "GPM (General Purpose Mouse) is a mouse server \
+for the console and xterm, with sample clients included \
+(emacs, etc)."
+SECTION = "console/utils"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://gpm2/core/main.c;endline=19;md5=66d3c205c4e7ee5704b2ee351dfed72f"
+
+PR = "r2"
+
+DEPENDS = "ncurses"
+
+SRC_URI = "ftp://arcana.linux.it/pub/gpm/gpm-${PV}.tar.bz2 \
+           file://no-docs.patch \
+           file://processcreds.patch \
+           file://eglibc-2.17.patch \
+           file://init"
+
+inherit autotools-brokensep update-rc.d
+
+INITSCRIPT_NAME = "gpm"
+INITSCRIPT_PARAMS = "defaults"
+
+#export LIBS = "-lm"
+
+# all fields are /* FIXME: gpm 1.99.13 */
+# gpm-1.99.7/src/lib/libhigh.c:171:43: error: parameter 'clientdata' set but not used [-Werror=unused-but-set-parameter]
+# gpm-1.99.7/src/lib/report-lib.c:28:21: error: parameter 'line' set but not used [-Werror=unused-but-set-parameter]
+# gpm-1.99.7/src/lib/report-lib.c:28:33: error: parameter 'file' set but not used [-Werror=unused-but-set-parameter]
+# gpm-1.99.7/src/drivers/empty/i.c:26:23: error: parameter 'fd' set but not used [-Werror=unused-but-set-parameter]
+# gpm-1.99.7/src/drivers/empty/i.c:26:42: error: parameter 'flags' set but not used [-Werror=unused-but-set-parameter]
+# gpm-1.99.7/src/drivers/etouch/i.c:34:43: error: parameter 'flags' set but not used [-Werror=unused-but-set-parameter]
+# gpm-1.99.7/src/drivers/msc/r.c:32:12: error: variable 'dy' set but not used [-Werror=unused-but-set-variable]
+# gpm-1.99.7/src/drivers/msc/r.c:32:8: error: variable 'dx' set but not used [-Werror=unused-but-set-variable]
+# cc1: all warnings being treated as errors
+CFLAGS += "-Wno-extra -Wno-error=unused-but-set-parameter -Wno-error=unused-but-set-variable"
+
+# twiddler is WIP in 1.99.7 and probably not worth fixing (a lot of changes in gpm-2-dev after 1.99.7
+# gpm-1.99.7/src/drivers/twid/twiddler.c:503:14: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
+# /gpm-1.99.7/src/mice.c:221:5: error: (near initialization for 'mice[32].init') [-Werror]
+CFLAGS += "-Wno-error=int-to-pointer-cast -Wno-error"
+
+do_install () {
+    oe_runmake 'DESTDIR=${D}' install
+    install -m 0644 src/headers/gpm.h ${D}${includedir}
+    install -d ${D}/${sysconfdir}/init.d
+    install -m 0755 ${WORKDIR}/init ${D}/${sysconfdir}/init.d/gpm
+    cd ${D}${libdir} && ln -sf libgpm.so.1.19.0 libgpm.so.1
+}
+SRC_URI[md5sum] = "9fdddf5f53cb11d40bb2bb671d3ac544"
+SRC_URI[sha256sum] = "6071378b24494e36ca3ef6377606e7e565040413c86704753a162d2180af32ee"
+
+FILES_${PN} += "${datadir}/emacs"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gradm/gradm/0001-Makefile-remove-strip.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/gradm/gradm/0001-Makefile-remove-strip.patch
new file mode 100644
index 0000000..f0c697c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gradm/gradm/0001-Makefile-remove-strip.patch
@@ -0,0 +1,61 @@
+From fbf7b9e5a8e2978acd5b0a7a8311912a080ee9b9 Mon Sep 17 00:00:00 2001
+From: Qian Lei <qianl.fnst@cn.fujitsu.com>
+Date: Thu, 18 Dec 2014 11:09:01 +0800
+Subject: [PATCH] Makefile: remove strip
+
+Avoid QA error by removing strip from Makefile
+
+[...]
+ERROR: QA Issue: File '/sbin/gradm' from gradm was already stripped,
+this will prevent future debugging! [already-stripped]
+ERROR: QA Issue: File '/sbin/grlearn' from gradm was already stripped,
+this will prevent future debugging! [already-stripped]
+[...]
+
+Upstream-Status: Pending
+
+Signed-off-by: Qian Lei <qianl.fnst@cn.fujitsu.com>
+
+---
+ Makefile | 7 ++-----
+ 1 file changed, 2 insertions(+), 5 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 6c33fee..3570a4e 100644
+--- a/Makefile
++++ b/Makefile
+@@ -24,7 +24,6 @@ MKNOD=/bin/mknod
+ #CC=/usr/bin/diet /usr/bin/gcc
+ CC=/usr/bin/gcc
+ FIND=/usr/bin/find
+-STRIP=/usr/bin/strip
+ LIBS := $(shell if [ "`uname -m`" != "sparc64" -a "`uname -m`" != "x86_64" ]; then echo "-lfl" ; else echo "" ; fi)
+ OPT_FLAGS := -O2
+ # for older versions of grsecurity, comment the above line and uncomment the below:
+@@ -140,15 +139,12 @@ install: $(GRADM_BIN) gradm.8 policy grlearn
+ 	@mkdir -p $(DESTDIR)/sbin
+ 	@echo "Installing gradm..."
+ 	@$(INSTALL) -m 0755 $(GRADM_BIN) $(DESTDIR)/sbin
+-	@$(STRIP) $(DESTDIR)/sbin/$(GRADM_BIN)
+ 	@if [ -f $(GRADM_PAM) ] ; then \
+ 		echo "Installing gradm_pam..." ; \
+		$(INSTALL) -m 4755 $(GRADM_PAM) $(DESTDIR)/sbin ; \
+-		$(STRIP) $(DESTDIR)/sbin/$(GRADM_PAM) ; \
+ 	fi
+ 	@echo "Installing grlearn..."
+ 	@$(INSTALL) -m 0700 grlearn $(DESTDIR)/sbin
+-	@$(STRIP) $(DESTDIR)/sbin/grlearn
+ 	@mkdir -p -m 700 $(DESTDIR)$(GRSEC_DIR)
+ 	@if [ ! -f $(DESTDIR)$(GRSEC_DIR)/policy ] ; then \
+ 		if [ -f $(DESTDIR)$(GRSEC_DIR)/acl ] ; then \
+@@ -168,6 +164,7 @@ install: $(GRADM_BIN) gradm.8 policy grlearn
+ 			$(MKNOD) -m 0622 $(DESTDIR)/dev/grsec c 1 13 ; \
+ 		fi \
+ 	fi
++	@mkdir -p $(DESTDIR)/etc/udev/rules.d
+ 	@if [ -d $(DESTDIR)/etc/udev/rules.d ] ; then \
+ 		echo "ACTION!=\"add|change\", GOTO=\"permissions_end\"" > $(DESTDIR)/etc/udev/rules.d/80-grsec.rules ; \
+ 		echo "KERNEL==\"grsec\",          MODE=\"0622\"" >> $(DESTDIR)/etc/udev/rules.d/80-grsec.rules ; \
+-- 
+1.8.3.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gradm/gradm_3.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/gradm/gradm_3.1.bb
new file mode 100644
index 0000000..252b19d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gradm/gradm_3.1.bb
@@ -0,0 +1,50 @@
+SUMMARY = "Administration program for the grsecurity RBAC syste"
+DESCRIPTION = "\
+gradm is the userspace RBAC parsing and authentication program for \
+grsecurity grsecurity aims to be a complete security system. gradm \
+performs several tasks for the RBAC system including authenticated \
+via a password to the kernel and parsing rules to be passed to the \
+kernel"
+HOMEPAGE = "http://grsecurity.net/index.php"
+SECTION = "admin"
+LICENSE = "GPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4641e94ec96f98fabc56ff9cc48be14b"
+DEPENDS = "flex-native bison-native ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
+
+SRC_URI = "http://grsecurity.net/stable/${BP}-201507191652.tar.gz \
+           file://0001-Makefile-remove-strip.patch"
+SRC_URI[md5sum] = "ecec72d3a9b6d84c00eda97957b707b6"
+SRC_URI[sha256sum] = "2f14c357bf0459e502a4e108b76c3f6240aa484762d07bb1687796b9b9297a50"
+
+S = "${WORKDIR}/gradm"
+
+inherit autotools-brokensep
+
+do_compile() {
+    oe_runmake 'CC=${CC}'                               \
+               'OPT_FLAGS=${CFLAGS}'                    \
+               'LLEX=${STAGING_BINDIR_NATIVE}/lex'      \
+               'FLEX=${STAGING_BINDIR_NATIVE}/flex'     \
+               'BISON=${STAGING_BINDIR_NATIVE}/bison'   \
+               ${@bb.utils.contains('DISTRO_FEATURES', 'pam', ' ', 'nopam', d)}
+}
+
+do_install() {
+    oe_runmake 'CC=${CC}'                               \
+               'DESTDIR=${D}'                           \
+               'LLEX=${STAGING_BINDIR_NATIVE}/lex'      \
+               'FLEX=${STAGING_BINDIR_NATIVE}/flex'     \
+               'BISON=${STAGING_BINDIR_NATIVE}/bison'   \
+               install
+
+    # The device nodes are generated by postinstall or udev
+    rm -rf ${D}/dev
+}
+
+pkg_postinst_${PN}() {
+    # make sure running on the target
+    if [ x"$D" != "x" ]; then
+        exit 1
+    fi
+    /bin/mknod -m 0622 /dev/grsec c 1 13
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gsl/gsl.inc b/import-layers/meta-openembedded/meta-oe/recipes-support/gsl/gsl.inc
new file mode 100644
index 0000000..4061393
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gsl/gsl.inc
@@ -0,0 +1,9 @@
+DESCRIPTION = "GNU Scientific Library"
+HOMEPAGE = "http://www.gnu.org/software/gsl/"
+SECTION = "libs"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+inherit autotools pkgconfig binconfig
+
+LEAD_SONAME = "libgsl.so"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gsl/gsl_1.15.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/gsl/gsl_1.15.bb
new file mode 100644
index 0000000..620e780
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gsl/gsl_1.15.bb
@@ -0,0 +1,7 @@
+include gsl.inc
+
+SRC_URI = "${GNU_MIRROR}/gsl/gsl-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "494ffefd90eef4ada678c306bab4030b"
+SRC_URI[sha256sum] = "85b907e57902e2b7606ef3aef960302ffdd13bd9dc5b8fcbfa75e4f0bf340ea3"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.12.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.12.bb
new file mode 100644
index 0000000..6da08ac
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.12.bb
@@ -0,0 +1,42 @@
+DESCRIPTION = "The gSOAP toolkit provides a unique SOAP-to-C/C++ language binding \
+for the development of SOAP Web Services and clients."
+SECTION = "devel"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b338b08b1b61e028e0f399a4de25e58f"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}2/${BPN}_${PV}.zip"
+SRC_URI[md5sum] = "5700d26fc6fe3073d038349e19c3640d"
+SRC_URI[sha256sum] = "51eef118544fa846f4d2dea2eedf91c84c46a1abeafc5eee3dcff783f4015a00"
+
+inherit autotools
+
+BBCLASSEXTEND = "native"
+
+PR = "r1"
+
+S = "${WORKDIR}/${BPN}-2.8"
+
+PARALLEL_MAKE = ""
+
+EXTRA_OEMAKE_class-target = "SOAP=${STAGING_BINDIR_NATIVE}/soapcpp2"
+
+DEPENDS = "openssl zlib flex bison"
+DEPENDS_append_class-target = " gsoap-native"
+
+do_install_append() {
+    install -d ${D}${libdir}
+    for lib in libgsoapssl libgsoapssl++ libgsoap libgsoapck++ libgsoap++ libgsoapck
+    do
+        oe_libinstall -C gsoap $lib ${D}${libdir}
+    done
+}
+
+do_install_class-native() {
+    oe_runmake DESTDIR=${D} BINDIR=${D}${bindir} install
+}
+
+FILES_${PN} = "${bindir}/wsdl2h ${bindir}/soapcpp2"
+FILES_${PN} += "${datadir}"
+FILES_${PN}-staticdev = "${libdir}"
+FILES_${PN}-dev = "${includedir}"
+RRECOMMENDS_${PN}-dev = "${PN}-staticdev"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp-0.3-beta15-autodetect-717479.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp-0.3-beta15-autodetect-717479.patch
new file mode 100644
index 0000000..19f8380
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp-0.3-beta15-autodetect-717479.patch
@@ -0,0 +1,90 @@
+Auto-detect disks if none specified
+
+Refer to:
+https://bugzilla.redhat.com/show_bug.cgi?id=717479
+
+diff -up hddtemp-0.3-beta15/doc/hddtemp.8~ hddtemp-0.3-beta15/doc/hddtemp.8
+--- hddtemp-0.3-beta15/doc/hddtemp.8~	2011-08-18 00:36:05.689001470 +0300
++++ hddtemp-0.3-beta15/doc/hddtemp.8	2011-08-18 00:44:46.753006253 +0300
+@@ -19,7 +19,7 @@
+ hddtemp \- Utility to monitor hard drive temperature
+ .SH SYNOPSIS
+ .B hddtemp
+-.RI [ options ] " [type:]disk" ...
++.RI [ options ] " [[type:]disk]" ...
+ .SH "DESCRIPTION"
+ .PP
+ .B hddtemp 
+@@ -35,7 +35,8 @@ You can specify one or more device drive
+ with a
+ .B type
+ like PATA, SATA or SCSI to force hddtemp too use one of these type
+-(because detection can fail).
++(because detection can fail). If no paths are specified, autodetection of
++installed drives is attempted.
+ 
+ 
+ .SH "OPTIONS"
+diff -up hddtemp-0.3-beta15/src/hddtemp.c~ hddtemp-0.3-beta15/src/hddtemp.c
+--- hddtemp-0.3-beta15/src/hddtemp.c~	2011-08-18 00:36:05.638996861 +0300
++++ hddtemp-0.3-beta15/src/hddtemp.c	2011-08-18 00:35:55.485060798 +0300
+@@ -54,6 +54,7 @@
+ #include <linux/hdreg.h>
+ #include <ctype.h>
+ #include <assert.h>
++#include <glob.h>
+ 
+ // Application specific includes
+ #include "ata.h"
+@@ -255,6 +256,7 @@ int main(int argc, char* argv[]) {
+   int 		ret = 0;
+   int           show_db;
+   struct        disk * ldisks;
++  glob_t        diskglob;
+ 
+   backtrace_sigsegv();
+   backtrace_sigill();
+@@ -419,11 +421,6 @@ int main(int argc, char* argv[]) {
+      exit(0);
+   }
+   
+-  if(argc - optind <= 0) {
+-    fprintf(stderr, _("Too few arguments: you must specify one drive, at least.\n"));
+-    exit(1);
+-  }
+-
+   if(debug) {
+     /*    argc = optind + 1;*/
+     quiet = 1;
+@@ -434,6 +431,23 @@ int main(int argc, char* argv[]) {
+     exit(1);
+   }
+ 
++  memset(&diskglob, 0, sizeof(glob_t));
++  if(argc - optind <= 0) {
++    if(glob("/dev/[hs]d[a-z]", 0, NULL, &diskglob) == 0) {
++      argc = diskglob.gl_pathc;
++      argv = diskglob.gl_pathv;
++      optind = 0;
++    } else {
++      argc = 0;
++    }
++  }
++
++  if(argc - optind <= 0) {
++    globfree(&diskglob);
++    fprintf(stderr, _("Too few arguments: you must specify one drive, at least.\n"));
++    exit(1);
++  }
++
+   init_bus_types();
+ 
+   /* collect disks informations */
+@@ -527,6 +541,7 @@ int main(int argc, char* argv[]) {
+   else {
+     do_direct_mode(ldisks);
+   }
++  globfree(&diskglob);
+ 
+   return ret;
+ }
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp-no-nls-support.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp-no-nls-support.patch
new file mode 100644
index 0000000..8f6b9c3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp-no-nls-support.patch
@@ -0,0 +1,66 @@
+diff -ru hddtemp-0.3-beta15.orig/configure.in hddtemp-0.3-beta15/configure.in
+--- hddtemp-0.3-beta15.orig/configure.in	2005-10-17 20:14:19.000000000 +0100
++++ hddtemp-0.3-beta15/configure.in	2008-06-27 00:00:46.000000000 +0100
+@@ -17,6 +17,7 @@
+ # append the host alias to the tools for cross compiling
+ AC_HEADER_STDC
+ AC_CHECK_HEADERS(fcntl.h)
++AC_CHECK_HEADERS(iconv.h)
+ AC_CHECK_HEADERS(netinet/in.h)
+ AC_CHECK_TYPE(in_addr_t, ,[AC_DEFINE_UNQUOTED([in_addr_t], [uint32_t], [Define to 'uint32_t' if <netinet/in.h> does not define.])], [#include <netinet/in.h>])
+ 
+@@ -29,6 +30,8 @@
+ AM_GNU_GETTEXT
+ #AM_GNU_GETTEXT([external])
+ 
++AC_CHECK_FUNCS([bindtextdomain textdomain iconv])
++
+ dnl reasonable guesses for where stuff is installed
+ dnl if we don't do that now, the config.h will use ${prefix}
+ dnl for DEFAULT_DATABASE_PATH.
+diff -ru hddtemp-0.3-beta15.orig/src/hddtemp.c hddtemp-0.3-beta15/src/hddtemp.c
+--- hddtemp-0.3-beta15.orig/src/hddtemp.c	2006-04-19 03:37:35.000000000 +0100
++++ hddtemp-0.3-beta15/src/hddtemp.c	2008-06-26 23:59:40.000000000 +0100
+@@ -276,8 +276,12 @@
+   backtrace_sigbus();
+ 
+   setlocale (LC_ALL, "");
++#ifdef HAVE_BINDTEXTDOMAIN
+   bindtextdomain (PACKAGE, LOCALEDIR);
++#endif
++#ifdef HAVE_TEXTDOMAIN
+   textdomain (PACKAGE);
++#endif
+   
+   show_db = debug = numeric = quiet = wakeup = af_hint = syslog_interval = 0;
+   unit = DEFAULT;
+diff -ru hddtemp-0.3-beta15.orig/src/utf8.c hddtemp-0.3-beta15/src/utf8.c
+--- hddtemp-0.3-beta15.orig/src/utf8.c	2006-04-19 03:37:02.000000000 +0100
++++ hddtemp-0.3-beta15/src/utf8.c	2008-06-27 00:02:15.000000000 +0100
+@@ -23,7 +23,9 @@
+ 
+ // Standard includes
+ #include <stdlib.h>
++#ifdef HAVE_ICONV_H
+ #include <iconv.h>
++#endif
+ #include <langinfo.h>
+ #include <locale.h>
+ #include <string.h>
+@@ -34,6 +36,7 @@
+ 
+ static char *iconv_from_utf8_to_locale(const char *string, const char* fallback_string)
+ {
++#ifdef HAVE_ICONV
+   const size_t buffer_inc = 80;	// Increment buffer size in 80 bytes step
+   const char *charset;
+   iconv_t cd;
+@@ -93,6 +96,8 @@
+   if (dest_buffer != NULL)
+     free(dest_buffer);  		// free buffer
+   free(src_buffer);			// free string
++#endif
++
+   return strdup(fallback_string); 	// and return fallback string
+ }
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp.db b/import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp.db
new file mode 100644
index 0000000..7b0cbd9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp.db
@@ -0,0 +1,531 @@
+#
+# Insert a regular expression for support of the model or the serie of your hard drive.
+# If you don't know what to put in the second field, put the number
+# that appears most often for your brand :o)
+# A value of zero meens that we know that the drive doesn't have
+# a temperature sensor (you can set the unit to C or F).
+#
+############################################################################
+# The following list was found at (http://www.almico.com/forumharddisks.php)
+# If your drive is in the list send me a mail.
+#
+# Manufacturer	 Model	 Size	Notes
+# FUJITSU FUJITSU MPF3102AH 10.0GB
+# FUJITSU FUJITSU MPG3204AH E 20.0GB
+# FUJITSU FUJITSU MPG3307AT 30.0GB
+# FUJITSU FUJITSU MPG3409AH 40.0GB
+# FUJITSU FUJITSU MPG3409AH EF 40.0GB
+# HITACHI HITACHI_DK23CA-10 9.8GB
+# HITACHI HITACHI_DK23CA-15 14.7GB
+# SAMSUNG SAMSUNG SV3012H 29.4GB
+# SEAGATE ST310210A 10.0GB
+# SEAGATE ST310211A 9.8GB
+# SEAGATE ST310215A 10.0GB
+# SEAGATE ST315320A 14.9GB
+# SEAGATE ST320410A 19.6GB
+# SEAGATE ST320413A 19.6GB
+# SEAGATE ST320420A 19.9GB
+# SEAGATE ST330610A 29.3GB
+# SEAGATE ST330620A 29.3GB
+# SEAGATE ST330621A 29.3GB
+# SEAGATE ST330630A 29.9GB
+# SEAGATE ST340016A 39.1GB
+# SEAGATE ST340810ACE 39.1GB
+# SEAGATE ST380020ACE 78.2GB
+# WESTERN DIGITAL WDC AC210200D 10.0GB
+# WESTERN DIGITAL WDC AC29100D 8.9GB
+# WESTERN DIGITAL WDC AC420400D 19.9GB
+# WESTERN DIGITAL WDC WD102AA 10.0GB
+#
+#################################################
+
+########################################
+############# ExcelStor drives
+########################################
+# "ExcelStor Technology CT215"	  ??? ? "ExcelStor CT215"
+"ExcelStor Technology J3.0" 194 C "ExcelStor Technology 3xy (xy GB)"
+"ExcelStor Technology J6.0" 194 C "ExcelStor Technology 6xy (xy GB)"
+"ExcelStor Technology J680" 194 C "ExcelStor Technology J680 (80 GB)"
+"ExcelStor Technology J860" 194 C "ExcelStor Technology J860 (60 GB)"
+"ExcelStor Technology J880" 194 C "ExcelStor Technology J880 (80 GB)"
+
+
+
+########################################
+############# Fujitsu drives
+########################################
+"FUJITSU MHM2100AT"		0    C	"Fujitsu MHM2100AT"
+
+"FUJITSU MHN2150AT"		194  C	"Fujitsu MHN2150AT"
+"FUJITSU MHN2200AT"		194  C	"Fujitsu MHN2200AT"
+"FUJITSU MHN2300AT"		194  C	"Fujitsu MHN2300AT"
+
+"FUJITSU MHR2020AT"		194  C	"Fujitsu MHR2020AT"
+"FUJITSU MHR2030AT"		194  C	"Fujitsu MHR2030AT"
+
+"FUJITSU MHS2030AT"		194  C	"Fujitsu MHS2030AT"
+"FUJITSU MHS2040AT"		194  C	"Fujitsu MHS2040AT"
+"FUJITSU MHS2060AT"		194  C	"Fujitsu MHS2060AT (Apple PowerBook G4)"
+
+"FUJITSU MHT2030AC"		194  C	"Fujitsu Mobile 30GB, 2MB, 4200RPM (automotive)"
+
+"FUJITSU MHT2030AT"		194  C	"Fujitsu MHT2030AT"
+"FUJITSU MHT2040AH"		194  C	"Fujitsu MHT2040AH"
+"FUJITSU MHT2040AT"		194  C	"Fujitsu MHT2040AT"
+"FUJITSU MHT2060AH"		194  C	"Fujitsu MHT2060AH"
+"FUJITSU MHT2060AT"		194  C	"Fujitsu MHT2060AT"
+"FUJITSU MHT2080AH"		194  C	"Fujitsu MHT2080AH"
+
+"FUJITSU MHU2100AT"		194  C	"Fujitsu MHU2100AT 100GB, 8MB (4200RPM)"
+
+"FUJITSU MHV2100AH"		194  C	"FUJITSU MHV2100AH" 
+"FUJITSU MHV2100AT"		194  C	"FUJITSU MHV2100AT" 
+"FUJITSU MHV2100BH"		194  C  "FUJITSU MHV2100BH" 
+"FUJITSU MHV2060AH"		194  C  "FUJITSU MHV2060AH"
+"FUJITSU MHV2080[AB]H"		194  C	"FUJITSU MHV2080AH"
+
+"FUJITSU MPF3204AH"		194  C	"Fujitsu MPF3204AH"
+
+"FUJITSU MPG3204AT.*"		194  C	"Fujitsu MPG3204AT"
+"FUJITSU MPG3307AT"		194  C	"Fujitsu MPG3307AT"
+"FUJITSU MPG3409AT.*"		194  C	"Fujitsu MPG3409AT E"
+"FUJITSU MPG3409AH.*"		194  C	"Fujitsu MPG3409AH E"
+"FUJITSU MPG3204AH"		194  C	"Fujitsu MPG3204AH"
+"FUJITSU MPG3102AT E"		194  C	"FUJITSU MPG3102AT E"
+
+
+
+########################################
+############# Hitachi drives
+########################################
+"HITACHI_DK13FA-40B"			194  C	"Hitachi DK13FA-40B"
+"HITACHI_DK228A-65"			0    C	"Hitachi DK228A-65"
+"HITACHI_DK23CA-(15|20|30|30B|75)"	194  C	"Hitachi DK23CA series"
+"HITACHI_DK23DA-[234]0"			194  C	"Hitachi DK23DA series"
+"HITACHI_DK23EA-[2346]0"		194  C	"Hitachi DK23EA series"
+"HITACHI_DK23EB-40"			194  C	"Hitachi DK23EB series"
+"HITACHI_DK23FA-[468]0"			194  C	"Hitachi DK23FA series"
+"HITACHI_DK23FB-[46]0"			194  C	"Hitachi DK23FB series"
+
+"HDS722516VLAT[28]0"		194  C	"Hitachi Deskstar 7K250 160GB 2/8MB cache"
+"HDS722525VLAT80"		194  C	"Hitachi Deskstar 7K250 200/250GB, 7200RPM, 8MB, Parallel-ATA"
+"HDS722512VLAT80"		194  C	"Hitachi Deskstar 7K250 80GB"
+"HDS722540VLAT20"		194  C	"Hitachi Deskstar 7K250, 40GB, 7200RPM, 2MB cache"
+"HDS722580VLAT20"		194  C	"Deskstar 7K250 60GB"
+"HDS724040KLSA80"		194  C	"Hitachi Deskstar 7K250 400GB, 7200RPM, 8MB, Serial-ATA"
+"HDS728080PLAT20"		194  C	"Hitachi Deskstar 7K80 80GB"
+
+"HDS722525VLSA80"		194  C	"Hitachi Deskstar 7K250 250GB, 7200RPM, 8MB, SATA"
+"HDS722516VLSA80"               194  C  "Hitachi Deskstar 7K250 160GB 8Mo cache SATA"
+"HDS722580VLSA80"		194  C	"Hitachi Deskstar 7K250 80GB SATA"
+"HDS728040PLAT20"		194  C	"Hitachi Deskstar 7K80 40GB"
+
+"HDS724040KLAT80"               194  C  "Hitachi Deskstar 7K400  400GB 8Mo cache PATA"
+
+"HDT7225(16|25)DLAT80"		194  C	"Hitachi Deskstar T7K250 series, 7200RPM, 8MB, PATA"
+"HDT722516DLA380 V43O"		194  C	"Hitachi T7K250 SATA"
+"HDT722525DLA380"               194  C  "Hitachi Deskstar T7K250 250GB 8Mo cache SATAII"
+"HDT725050VLA360"               194  C  "Hitachi Deskstar T7K500 500GB, 7200RPM, 16MB, SATA II"
+
+"HTE721010G9AT00"		194  C	"Hitachi Travelstar 100GB (7200RPM)"
+"HTE726060M9AT00"		194  C	"Hitachi Travelstar 60GB (7200RPM)"
+"HTS424030M9AT00"		194  C	"Hitachi Travelstar 30GB (4200RPM)"
+"HTS424040M9AT00"		194  C	"Hitachi Travelstar 4K40 40GB 2MB cache (4200RPM)"
+"HTS541010G9SA00"		194  C  "Hitachi Travelstar 100GB SATA"
+"HTS541040G9AT00"		194  C	"Hitachi Travelstar 40GB (5400RPM)"
+"HTS541080G9AT00"		194  C	"Hitachi Travelstar 80GB (5400RPM)"
+"HTS548020M9AT00"		194  C	"Hitachi Travelstar 20GB (5400RPM)"
+"HTS548030M9AT00"		194  C	"Hitachi Travelstar 30GB (5400RPM)"
+"HTS548040M9AT00"		194  C	"Hitachi Travelstar 40GB (5400RPM)"
+"HTS548060M9AT00"		194  C	"Hitachi Travelstar 60GB (5400RPM)"
+"HTS548080M9AT00"		194  C	"Hitachi Travelstar 80GB (5400RPM)"
+"HTS721080G9AT00"		194  C	"Hitachi Travelstar 7K100 80GB (7200RPM)"
+"HTS726060M9AT00"		194  C	"Hitachi Travelstar 60GB"
+
+
+########################################
+############# IBM drives
+########################################
+
+# DJSA serie is using F0h command to report temperature and also have
+# SMART capabilties but it was reported not to work.
+# "DJSA-2(30|32|10|20|05)"	0    C	"IBM Travelstar 20GN, 32GH, 30GT series"
+
+"IBM-DARA-212000"		0    C	"IBM Travelstar 12GN"
+"IBM-DTTA-35*"			0    C	"IBM Deskstar 16GP serie"
+
+# according to specifications they do not seems to have sensor
+# but I prefer waiting for a report
+#"IBM-DTTA-37*"			0    C	"IBM Deskstar 14GXP serie"
+
+"IBM-DJNA-35.*"			231  C	"IBM Deskstar 25 GP serie"
+"IBM-DJNA-37.*"			231  C	"IBM Deskstar 22 GXP serie"
+"IBM-DHEA-(34330|36480)"	0    C	"IBM Deskstar 5 serie"
+"IBM-DHEA-(34331|36481|38451)"	0    C	"IBM Deskstar 8 serie"
+"IBM-DPTA-37.*"			231  C	"IBM Deskstar 34GXP serie"
+"IBM-DPTA-35.*"			231  C	"IBM Deskstar 37GP serie"
+"IBM-DTLA-30[57]0[123467][05]"	194  C	"IBM Deskstar 40GV & 75GXP series"
+"IC25N0[1234]0ATCS04-0"		194  C	"IBM Travelstar 40GN serie"
+"IC25N0[24]0ATC[SX]05-0"	194  C	"IBM Travelstar 40GNX serie"
+"IC25N0(10|15|20|30)ATDA04-0"	194  C	"IBM Travelstar 30GN serie"
+"IC25N0[23468]0ATMR04*"		194  C	"Hitachi Travelstar 80GN"
+"IC25T048ATDA05-0"		194  C	"IBM Travelstar 48GH serie"
+"IC25T060ATC[SX]05-0"		194  C	"IBM Travelstar 60GH serie"
+"IC35L0[12346]0AVER07"		194  C	"IBM Deskstar 60GXP serie"
+"IC35L[01][02468]0AVV[AN]07*"	194  C	"IBM Deskstar 120GXP serie"  
+"IC35L[01][23689]0AVV207*"	194  C	"IBM Deskstar 180GXP serie"
+
+########################################
+############# Maxtor drives
+########################################
+#"Maxtor 2B0[012][04568]H1"				???  C	"Maxtor Fireball 541DX"
+"Maxtor 2F0[234]0[LJ]0"					194  C	"Maxtor Fireball 3" 
+# which one must I trust ?
+#"Maxtor 4D040H2"					9    C	"Maxtor DiamondMax D540X-4D"
+#"Maxtor 4D040H2"					0    C	"Maxtor 4D040H2"
+#"Maxtor 4D080H4"					12   C	"Maxtor DiamondMax D540X-4D"
+#"Maxtor 4D060H3"					12   C	"Maxtor DiamondMax D540X-4D"
+#"Maxtor 4D080H4"					9    C	"Maxtor DiamondMax D540X-4D"
+"MAXTOR 4K0[468]0H[234]"				194  C	"Maxtor DiamondMax D540X serie"
+"MAXTOR 4K020H1"					194  C	"Maxtor 4K020H1"
+"Maxtor 4A300J0"                                        194  C  "Maxtor MaxLine II 300GB 5400RPM"
+"Maxtor 4[RA](25|16|12|08|06)0[LJ]0"			194  C	"Maxtor DiamondMax 16"
+"Maxtor 5(1024|1369|2049|2732|3073|4098)U(2|3|4|6|8)"	0    C	"Maxtor DiamondMax Plus 40"
+"Maxtor 5A250J0"					194  C	"Maxtor MaXline II 250GB 5400RPM"
+"Maxtor 5A300J0"					194  C	"Maxtor 5A300J0"
+"Maxtor 5T0[24]0H[24]"					0    C	"Maxtor DiamondMax Plus 60"
+"Maxtor 6E0[234]0L0"					194  C	"Maxtor DiamondMax Plus 8"
+"MAXTOR 6L0[2468]0[LJ][1234]"				194  C	"Maxtor DiamondMax Plus D740X family"
+"Maxtor 6V320F0"					194  C  "Maxtor Diamond Max 10 SATA II 320 GB"
+"Maxtor 6Y(06|08|12|16|20|25)0[LPM]0"			194  C	"Maxtor DiamondMax Plus 9" 
+"Maxtor 7L300[RS]0"					194  C  "Maxtor 7L300R0 MaxLine+III 300GB 7200rpm"
+"Maxtor 7Y250[PM]0"					194  C	"Maxtor MaXLine Plus II 250GB 7200RPM"
+"Maxtor 94098U8"					11   C	"Maxtor DiamondMax 40 94098U8"
+
+#"Maxtor 6(B|L)(08|12|16|20|25|30)0[RSPM]0"		194  C	"Maxtor DiamondMax Plus 10"
+"Maxtor 6B080M0"					194  C  "Maxtor DiamondMax 10 80GB 8MB SATA"
+"Maxtor 6B120M0"					194  C  "Maxtor DiamondMax 10 120GB 8MB SATA"
+"Maxtor 6B160M0"					194  C  "Maxtor DiamondMax 10 160GB 8MB SATA"
+"Maxtor 6B160P0"					194  C  "Maxtor DiamondMax 10 160GB 8MB ATA/133"
+"Maxtor 6B200M0"					194  C  "Maxtor DiamondMax 10 200GB 8MB SATA"
+"Maxtor 6B200P0"					194  C  "Maxtor DiamondMax 10 200GB 8MB ATA/133"
+"Maxtor 6B250R0"					194  C  "Maxtor DiamondMax 10 250GB 16MB ATA/133"
+"Maxtor 6B250S0"					194  C  "Maxtor DiamondMax 10 250GB 16MB SATA"
+"Maxtor 6B300R0"					194  C  "Maxtor DiamondMax 10 300GB 16MB ATA/133"
+"Maxtor 6B300S0"					194  C  "Maxtor DiamondMax 10 300GB 16MB SATA"
+"Maxtor 6L080L0"					194  C  "Maxtor DiamondMax 10 80GB 2MB ATA/133 RoHS"
+"Maxtor 6L080M0"					194  C  "Maxtor DiamondMax 10 80GB 8MB SATA RoHS"
+"Maxtor 6L080P0"					194  C  "Maxtor DiamondMax 10 80GB 8MB ATA/133 RoHS"
+"Maxtor 6L120M0"					194  C  "Maxtor DiamondMax 10 120GB 8MB SATA RoHS"
+"Maxtor 6L120P0"					194  C  "Maxtor DiamondMax 10 120GB 8MB ATA/133 RoHS"
+"Maxtor 6L160M0"					194  C  "Maxtor DiamondMax 10 160GB 8MB SATA RoHS"
+"Maxtor 6L160P0"					194  C  "Maxtor DiamondMax 10 160GB 8MB ATA/133 RoHS"
+"Maxtor 6L200M0"					194  C  "Maxtor DiamondMax 10 200GB 8MB SATA RoHS"
+"Maxtor 6L200P0"					194  C  "Maxtor DiamondMax 10 200GB 8MB ATA/133 RoHS"
+"Maxtor 6L250R0"					194  C  "Maxtor DiamondMax 10 250GB 16MB ATA/133 RoHS"
+"Maxtor 6L250S0"					194  C  "Maxtor DiamondMax 10 250GB 16MB SATA RoHS"
+"Maxtor 6L300R0"					194  C  "Maxtor DiamondMax 10 300GB 16MB ATA/133 RoHS"
+"Maxtor 6L300S0"					194  C  "Maxtor DiamondMax 10 300GB 16MB SATA RoHS"
+"Maxtor 6V080E0"					194  C  "Maxtor DiamondMax 10 80GB 8MB SATAII RoHS"
+"Maxtor 6V160E0"					194  C  "Maxtor DiamondMax 10 160GB 8MB SATAII RoHS"
+"Maxtor 6V200E0"					194  C  "Maxtor DiamondMax 10 200GB 8MB SATAII RoHS"
+"Maxtor 6V250F0"					194  C  "Maxtor DiamondMax 10 250GB 16MB SATAII RoHS"
+"Maxtor 6V300F0"					194  C  "Maxtor DiamondMax 10 300GB 16MB SATAII RoHS"
+
+
+
+########################################
+############# Quantum drives
+########################################
+"QUANTUM FIREBALLP AS40.0"		0  C  "Quantum Fireball AS40"
+"QUANTUM FIREBALL CX10.2A"		0  C  "Quantum Fireball CX10.2A"
+#"QUANTUM FIREBALLlct10 20"		4  C  "Quantum Fireball CT10 20GB"
+# I suspect the QUANTUM FIREBALL_TM2110A to have a sensor in field 9...
+# "QUANTUM FIREBALL_TM2110A"		9  C  "Quantum Fireball TM2110A"
+
+
+
+########################################
+############# Samsung drives
+########################################
+# somenone reported a problem with the SP8004H which reports a temperature
+# 10°C below the ambient temperature
+"SAMSUNG HA(200|250)JC"					194  C	"Samsung SpinPoint V120CE series"
+"SAMSUNG HD160JJ"                                       194  C  "Samsung 160GB, 7200RPM, 8MB cache, SATA" 
+"SAMSUNG HD160JJ/P"					194  C	"Samsung SpinPoint P80 SD 160GB (7200RPM, 8MB cache)"
+"SAMSUNG HD[30|32|40][01]L[DJ]"                         194  C  "Samsung SpinPoint T133 series (300-400MB)"
+"SAMSUNG HD250KD"                                       194  C  "Samsung SpinPoint T133 series (250 MB PATA)"
+"SAMSUNG HD321KJ"					194  C  "Samsung Spinpoint T166 (7200RPM, 16MB cache) - SATA"
+"SAMSUNG HD501LJ"					194  C  "Samsung HD501LJ"
+"SAMSUNG MP0(302|402|603|804)H"				194  C	"Samsung SpinPoint M40 2.5inch"
+"SAMSUNG SW0434A"					0    C	"Samsung SW0434A"
+"SAMSUNG SP(2001|4002|6003|8004|40A2)H"			194  C	"Samsung SpinPoint P40 serie"
+"SAMSUNG SP(0612|0802|1203|1604|0812|1213|1614)N"	194  C	"Samsung SpinPoint P80 serie"
+"SAMSUNG SP(0612|0802|1203|1604|0812|1213|1614)C"	194  C	"Samsung SpinPoint P80 series - SATA"
+"SAMSUNG SP0411N"					194  C	"Samsung SpinPoint PL40 serie"
+"SAMSUNG SP0822N"					194  C	"Samsung SP0822N"
+"SAMSUNG SP(0812|1213|1614)C"				194  C	"Samsung Spinpoint 160G SATA"
+"SAMSUNG SP2[05]14N"					194  C	"Samsung SpinPoint P120 series (7200RPM, 8MB cache)"
+"SAMSUNG SP2[05]04C"					194  C	"Samsung SpinPoint P120 series - SATA"
+"SAMSUNG SV0432A"					0    C	"Samsung SV0432A"
+"SAMSUNG SV3002H"					0    C	"Samsung SpinPoint V30 serie"
+"SAMSUNG SV(2001|4002|4012|6003|8004)H"			194  C	"Samsung SpinPoint V40 serie"
+#"SAMSUNG SV(0221|0602|0813|1204)H"			9    C	"Samsung SpinPoint V60 serie"
+#"SAMSUNG SV1204H"					194  C	"Samsung 120G"
+"SAMSUNG SV(0401|0802|1203|1604)N"			194  C	"Samsung SpinPoint V80 serie"
+"SAMSUNG SV4012H"					194  C	"Samsung 40GB, 5400RPM, 2MB cache"
+
+########################################
+############# Seagate drives
+########################################
+"Seagate Technology 1275MB - ST31276A"	0    C	"Seagate ST31276A"
+"ST3412A"				0    C	"Seagate ST3412A"
+"ST38641A"				0    C	"Seagate ST38641A"
+"ST310014A"				194  C	"Seagate ST310014A"
+"ST310210A"				0    C	"Seagate ST310210A"
+"ST310211A"				194  C	"Seagate ST310211A"
+"ST310220A"				0    C	"Seagate ST310220A"
+# SEAGATE ST313021A 13.0GB
+"ST313021A"				0    C	"Seagate U8 ST313021A"
+"ST310240A"				0    C	"Seagate Medalist 10240 Ultra ATA-3"
+"ST315320A"				194  C	"Seagate ST315320A"
+"ST320423A"				0    C	"Seagate U10 20423, Ultra ATA/66"
+"ST320011A"				194  C	"Seagate ST320011A"
+"ST320014A"				194  C	"Seagate ST320014A (5400 rpm, 20Gb)"
+"ST320410A"				194  C	"Seagate ST320410A"
+"ST320413A"				194  C	"Seagate ST320413A"
+"ST320414A"				194  C	"Seagate ST320414A"
+"ST320420A"				194  C	"Seagate Barracuda II ST320420A"
+"ST330013A"				194  C	"Seagate ST330013A Barracuda ATA V 30GB, 7200 rpm"
+"ST330620A"				194  C	"Seagate ST330620A"
+"ST330621A"				194  C	"Seagate ST330621A"
+"ST330630A"				194  C	"Seagate Barracuda ST330630A"
+"ST340014A"				194  C	"Seagate Barracuda 7200.7 40Gb"
+"ST340015A"				194  C	"Seagate Barracuda 5400.1 40GB" 
+"ST340016A"				194  C	"Seagate ST340016A"
+"ST340810A"				194  C	"Seagate U Series 40810 (40Gb, Ultra ATA/100, 5400 rpm)"
+"ST340823A"				194  C	"Seagate U Series 5 40823"
+"ST340824A"				194  C	"Seagate Barracuda III"
+"ST360015A"				194  C	"Seagate Barracuda V ST360015A"
+"ST360020A"				194  C	"Seagate U Series 60020"
+"ST360021A"				194  C	"Seagate Barracuda IV ST360021A"
+"ST380011A"				194  C	"Seagate Barracuda 7200.7 80GB"
+"ST380012A"				194  C	"Seagate ST380012A 80GB"
+"ST380013A"				194  C	"Seagate Barracuda 7200.7 80GB" 
+"ST380013AS"				194  C	"Seagate Barracuda 7200.7 80GB (Serial ATA)"
+"ST380020A"				194  C	"Seagate U Series 80020 (80Gb, Ultra ATA/100, 5400 rpm)"
+"ST380021A"				194  C	"Seagate Barracuda IV ST380021A"
+"ST380022A"				194  C	"Seagate Barracuda U7 80022, Ultra ATA/100"
+"ST380023A"				194  C	"Seagate Barracuda V ST380023A"
+"ST380817AS"				194  C	"Seagate Barracuda 7200.7 80GB - SATA"
+"ST39111A"				194  C	"Seagate ST39111A (from Sun Ultra)"
+"ST3120020A"				194  C	"Seagate ST3120020A"
+"ST3120022A"				194  C	"Seagate Baraccuda 7200.7 120GB"
+"ST3120023A"				194  C	"Seagate Barracuda V ST3120023A"
+"ST3120024A"				194  C	"Seagate Barracuda V ST3120024A"
+"ST3120025ACE"				194  C	"Seagate Barracuda V ST3120025ACE"
+"ST3120026A"				194  C	"Seagate Barracuda V ST3120026A"
+"ST3160021A"				194  C	"Seagate Barracuda 7200.7 - ST3160021A"
+"ST3160023(A|AS)"			194  C	"Seagate Barracuda V ST3160023A and AS (160Gb, ATA100 or Serial ATA)"
+"ST316081[12](A|AS)"			194  C  "Seagate Barracuda 7200.9 160GB" 
+"ST3160827AS"				194  C	"Seagate Barracuda 7200.7 160GB (Serial ATA)" 
+"ST3200021A"				194  C	"Seagate Barracuda 7200.7 Plus 200GB"
+"ST3200822(A|AS)"			194  C	"Seagate Barracuda 7200.7 Plus 200GB (PATA or SATA)"
+"ST3200826A"				194  C	"Seagate Barracuda 7200.8 200GB"
+"ST3250623A"				194  C	"Seagate Barracuda 7200.16 250GB"
+"ST3250624AS"				194  C  "Seagate Barracuda 7200.9 250GB SATA"
+"ST3250624NS"				194  C  "Seagate NL35 SATA (RAID-Edition) 7200 250GB"
+"ST3250823A"				194  C	"Seagate Barracuda 7200.8 250GB"
+"ST3250823A"				194  C	"Seagate Barracuda 7200.7 Plus 250GB"
+"ST3250823NS"				194  C	"Seagate NL35 SATA (RAID-Edition) 7200 250GB"
+"ST3300831A"				194  C	"Seagate 300GB ST3300831A"
+"ST3400832A"				194  C	"Seagate Barracuda 7200.8 Plus 400GB"
+"ST3400633(A|AS)"                       194  C  "Seagate Barracuda 7200.7 400 GB"
+"ST3500630NS"				194  C  "Seagate"
+"ST3400632NS"				194  C	"Seagate"
+"ST380[28]110(A|AS)"				194  C	"Seagate Barracuda 7200.9 80 GB"
+"ST910021A"				194  C	"Seagate Momentus 7200.1 100GB" 
+"ST910082[35]A"				194  C	"Seagate Momentus 5400.2 100GB"
+"ST9120821A"				194  C	"Seagate Momentus 5400.2 120GB"
+"ST94019A"				194  C	"Seagate ST94019A"
+"ST94813A"				194  C	"Seagate Momentus 5400.2 40GB"
+"ST94[08]11A"				194  C	"Seagate ST94011A"
+"ST960821A"				194  C	"Seagate ST960821A"
+"ST960822A"				194  C	"Seagate Momentus 5400.2 60GB"
+"ST96812AS"				194  C	"Seagate Momentus 5400.2 60GB SATA"
+"ST9808211A"				194  C	"Seagate Momentus 5400.2 80GB"
+"ST98823AS"				194  C  "Seagate Momentus 5400.2 80GB SATA"
+
+########################################
+############# TOSHIBA Laptops
+########################################
+"MK4313MAT"				220  C	"Toshiba MK4313MAT"
+"TOSHIBA MK1032GAX"			194  C	"Toshiba MK1032GAX"
+"TOSHIBA MK1032GSX"			194  C  "Toshiba MK1032GSX"
+"TOSHIBA MK1517GAP"			0    C	"Toshiba MK1517GAP"
+"TOSHIBA MK2018GAS"			226  F	"Toshiba MK2018GAS"
+"TOSHIBA MK2023GAS"			194  C	"Toshiba MK2023GAS"
+
+"TOSHIBA MK3017GAP"			0    C	"Toshiba MK3017GAP"
+"TOSHIBA MK3021GAS"			194  C	"Toshiba MK3021GAS"
+"TOSHIBA MK3025GAS"			194  C	"Toshiba MK3025GAS" 
+
+#"TOSHIBA MK4019GAX"			222  C	"Toshiba MK4019GAX"
+"TOSHIBA MK4021GAS"			194  C	"Toshiba MK4021GAS"
+"TOSHIBA MK4025GAS"			194  C	"Toshiba MK4025GAS 40 Go"
+"TOSHIBA MK4026GAS"			194  C	"Toshiba MK4026GAS 40 Go"
+"TOSHIBA MK4032GAX"			194  C	"Toshiba MK4032GAX" 
+
+"TOSHIBA MK6021GAS"			194  C	"Toshiba MK6021GAS"
+"TOSHIBA MK6022GAX"			194  C	"Toshiba MK6022GAX"
+"TOSHIBA MK6025GAS"			194  C	"Toshiba MK6025GAS"
+"TOSHIBA MK6026GAX"			194  C	"Toshiba MK6026GAX" 
+"TOSHIBA MK8025GAS"			194  C	"Toshiba MK8025GAS"
+"TOSHIBA MK8026GAX"			194  C	"Toshiba MK8026GAX" 
+"TOSHIBA MK8032GSX"			194  C  "Toshiba MK8032GSX" 
+
+"MK4025GAS"				194  C	"Toshiba MK4025GAS"
+
+
+########################################
+############# Western Digital drives
+########################################
+# WDC AC310100B and WDC AC2850F are reported not working
+# no more informations were given
+"WDC AC22000L"							  0 C "Western Digital Caviar AC22000"
+"WDC AC420400D"							231 C "Western Digital Caviar AC420400D"
+"WDC AC418000D"							231 C "Western Digital AC418000D"
+"WDC WD135BA"							231 C "Western Digital WD135BA"
+
+"WDC WD100EB-00BHF0"						  0 C "Western Digital 100EB-00BHF0"
+"WDC WD200BB-00AUA1"						  0 C "Western Digital Caviar WD200BB"
+#"WDC WD200BB-60DGA0"						  0 C "Western Digital Caviar WD200BB"
+"WDC WD300BB-00CAA0"						  0 C "Western Digital WD300BB"
+"WDC WD360GD-00FNA0"						194 C "Western Digital SATA Raptor 36.7GB"
+"WDC WD400BB-00CAA0"						  0 C "Western Digital 400BB-00CAA0"
+"WDC WD400BB-00[DJ][KH]A0"					194 C "Western Digital Caviar WD400BB"
+"WDC WD400BB-23JHC0"						194 C "Western Digital 23JHC0"
+#"WDC WD400BB-00GFA0"						  0 C ""
+"WDC WD400BB-55HEA0"						194 C "Western Digital Caviar WD400BB"
+"WDC WD400BB-(18CA|00DE)A0"					  0 C "Western Digital Caviar WD400BB"
+"WDC WD400BB-75FJA1"						194 C "Western Digital Caviar WD400BB"
+"WDC WD400EB-00CPF0"						  0 C "Western Digital 400EB-00CPF0"
+"WDC WD400JB-00(JJ|FM|FS)A0"					194 C "Western Digital Caviar 40GB Special Edition 8MB"
+"WDC WD400JB-00ETA0"						194 C "Western Digital 400JB-00ETA0"
+"WDC WD400JB-00JJC0"						194 C "Western Digital 400JB-00JJC0 40GB"
+"WDC WD400LB-00DNA0"						194 C "Western Digital 400LB-00DNA0"
+"WDC WD400UE-22HCT0"						194 C "Western Digital 40GB Notebook HDD"
+"WDC WD400VE-75HDT1"						194 C "Western Digital Scorpio 40GB"
+"WDC WD600BB-32BSA0"						  0 C "Western Digital 600BB-32BSA0"
+"WDC WD600JB-00ETA0"						194 C "Western Digital 600JB-00ETA0"
+"WDC WD600LB-00DNA0"						194 C "Western Digital 60GB"
+"WDC WD600VE-75HDT0"						194 C "Western Digital 600VE-75HDT0"
+"WDC WD600VE-00HDT0"						194 C "Western Digital 600VE-00HDT0"
+"WDC WD740GD-00FL21.0"						194 C "Western Digital SATA Raptor"
+"WDC WD740GD-([05]0FL[AC][01]|75FLA1)"				194 C "Western Digital SATA Raptor 74GB 8MB"
+"WDC WD800BB-00CAA1"						  0 C "Western Digital WD800BB-00CAA1"
+"WDC WD800BB-(00|22)DKA0"					194 C "Western Digital WD800BB 80 Go"
+"WDC WD800BB-32CCB0"						194 C "Western Digital 800BB-32CCB0"
+"WDC WD800BB-55HEA0"						194 C "Western Digital 800BB-55HEA0"
+"WDC WD800BB-00JHA0"						194 C "Western Digital 800BB-00JHA0" 
+"WDC WD800BB-00JKA0"						194 C "Western Digital 800BB-00JKA0" 
+"WDC WD800BB-55JKA0"						194 C "Western Digital 800BB-55JKA0" 
+"WDC WD800BB-75FRA0"						194 C "Western Digital Caviar WD800BB"				
+"WDC WD800JB-00CRA1"						  0 C "Western Digital Caviar WD800JB"
+"WDC WD800JB-00(ET|FM|FS)A0"					194 C "Western Digital Caviar 80GB Special Edition 8MB"
+"WDC WD800JB-00JJ[AC]0"						194 C "Western Digital WD800JB"
+"WDC WD800JD-(00|55|75)(HK|JR|JN)[AC]0"				194 C "Western Digital SATA 80GB, 8MB Cache"
+"WDC WD800LB-(00|55)DNA0"					194 C "Western Digital Caviar WD800LB 80 Go ATA-100"
+"WDC WD800VE-07HDT0"						194 C "Western Digital 800VE-07HDT0"
+"WDC WD1200BB-00(FTA|GUA)0"					194 C "Western Digital Caviar EIDE 2MB Cache"
+"WDC WD1200JB-00(EV|FU|GV|RE)A0"				194 C "Western Digital Caviar 120GB Special Edition 8MB" 
+"WDC WD1200JB-22GVA0"						194 C "Western Digital Caviar 120GB"
+"WDC WD1200JD-00(FYB|GBB|HBC)0"					194 C "Western Digital WD1200JD"
+"WDC WD1200LB-55EDA0"						194 C "Western Digital WD1220LB"
+"WDC WD1200SB-01KB[AC]0"					194 C "Western Digital Caviar RE (Raid Edition) 120 GB"
+"WDC WD1600BB-00DWA0"						194 C "Western Digital Caviar WD1600BB"
+"WDC WD1600JB-(00EV|00FU|00GV|22GV|75GV)A0"			194 C "Western Digital Caviar 160GB Special Edition 8MB"
+"WDC WD2000BB-00FTA0"						194 C "Western Digital WD2000BB"
+"WDC WD2000JB-(00EV|32EV|34EV|00FU|00GV|55GV|98GV|00KF)A0"	194 C "Western Digital Caviar 200GB Special Edition 8MB"
+"WDC WD2000JB-00GVC0"						194 C "Western Digital WD2000JB"
+"WDC WD2000JD-00FYB0"						194 C "Western Digital WD2000JD"
+"WDC WD2000JS-00MHB1"						194 C "Western Digital SATA 200GB"
+"WDC WD2500JB-(00RE|00EV|00FU|32FU|00GV|55GV)A0"		194 C "Western Digital Caviar 250GB Special Edition 8MB"
+"WDC WD2500JB-00GVC0"						194 C "Western Digital 250GB"
+"WDC WD2500JD-(00G|32H|75H)BB0"					194 C "Western Digital SATA Caviar 250GB Special Edition 8MB"
+"WDC WD2500JD-40HBC0"						194 C "Western Digital WD2500JD-40HBC0" 
+"WDC WD2500PB-98FBA0"						194 C "Western Digital Caviar 250GB Special Edition 8MB"
+"WDC WD2500PD-00FZB1"						194 C "Western Digital WD2500PD-00FZB1" 
+"WDC WD2500SD-01KCB0"						194 C "Western Digital Caviar RE 250GB 8MB"
+"WDC WD3000JB-00KFA0"						194 C "Western Digital WD3000JB"
+"WDC WD3200JB-00KFA0"						194 C "Western Digital Caviar 320GB 8MB"
+"WDC WD4000KD-00NAB0"						194 C "Western Digital Caviar SE16 400GB 16MB"
+"WDC WD4000YR-01PLB0"						194 C "Western Digital Caviar RE2 400GB 16MB"
+"WD4000YS-01MPB0"						194  C  "Western Digital RE2 7200 SATA II 400 GB"
+
+# not sure for next
+# "WDC WD1200JB-00CRA1"		9   C "Western Digital 1200JB-00CRA1"
+# "WDC WD273BA"			9   C "Western Digital WD273BA"
+
+
+
+
+########################################################################################################################
+########################################################################################################################
+########################################################################################################################
+########################################################################################################################
+########################################################################################################################
+########################################################################################################################
+########################################################################################################################
+########################################################################################################################
+########################################################################################################################
+########################################################################################################################
+########################################################################################################################
+########################################################################################################################
+########################################################################################################################
+########################################################################################################################
+
+"ST3750640AS"                           194    C  "Seagate Barracuda 7200.10 SATA 750GB"
+"ST3750840AS"                           194    C  "Seagate Barracuda 7200.10 SATA 750GB"
+"ST3500630AS"                           194    C  "Seagate Barracuda 7200.10 SATA 500GB"
+"ST3500830AS"                           194    C  "Seagate Barracuda 7200.10 SATA 500GB"
+"ST3400620AS"                           194    C  "Seagate Barracuda 7200.10 SATA 400GB"
+"ST3400620A"                            194    C  "Seagate Barracuda 7200.10 400GB"
+"ST3400820AS"                           194    C  "Seagate Barracuda 7200.10 SATA 400GB"
+"ST3320620AS"                           194    C  "Seagate Barracuda 7200.10 SATA 320GB"
+"ST3320820AS"                           194    C  "Seagate Barracuda 7200.10 SATA 320GB"
+"ST3300620AS"                           194    C  "Seagate Barracuda 7200.10 SATA 300GB"
+"ST3300820AS"                           194    C  "Seagate Barracuda 7200.10 SATA 300GB"
+"ST3250620AS"                           194    C  "Seagate Barracuda 7200.10 SATA 250GB"
+"ST3250820AS"                           194    C  "Seagate Barracuda 7200.10 SATA 250GB"
+"ST3250410AS"                           194    C  "Seagate Barracuda 7200.10 SATA 250GB"
+"ST3250310AS"                           194    C  "Seagate Barracuda 7200.10 SATA 250GB"
+"ST3200820AS"                           194    C  "Seagate Barracuda 7200.10 SATA 200GB"
+"ST3160815AS"                           194    C  "Seagate Barracuda 7200.10 SATA 160GB"
+"ST3160215AS"                           194    C  "Seagate Barracuda 7200.10 SATA 160GB"
+"ST3120815AS"                           194    C  "Seagate Barracuda 7200.10 SATA 120GB"
+"ST3120215AS"                           194    C  "Seagate Barracuda 7200.10 SATA 120GB"
+"ST380815AS"                            194    C  "Seagate Barracuda 7200.10 SATA 80GB"
+"ST380215AS"                            194    C  "Seagate Barracuda 7200.10 SATA 80GB"
+"ST340815AS"                            194    C  "Seagate Barracuda 7200.10 SATA 40GB"
+"ST340215AS"                            194    C  "Seagate Barracuda 7200.10 SATA 40GB"
+"ST3300622AS"				194  C  "Seagate Barracuda 7200.9 SATA2.5 300GB"
+"ST3300831A"				194  C	"Seagate Barracuda 7200.8 PATA 300GB"
+
+"Maxtor 7(L|V)250(F|R|S)0"		194 C "Maxtor MaXLine III 250GB 7200rpm"
+"Maxtor 7(L|V)300(F|R|S)0"		194 C "Maxtor MaXLine III 300GB 7200rpm"
+"MAXTOR STM3320620AS"			194 C ""
+
+"WDC WD1500ADFD-00NLR[01]"                                         194 C "Western Digital Raptor 150GB"
+"WDC WD1600JS-00NCB1"						194 C "Western Digital Caviar 1600JS 160GB Sata"
+"WDC WD1600SD-01KCC0"						194 C "Western Digital Caviar RE Serial ATA series"
+"WDC WD2500JD-57HBC0"                                           194 C "Western Digital Caviar SE (Serial ATA) 250 GB"
+"WDC WD2500JS"							194 C "Western Digital WD2500JS"
+"WDC WD2500JS-41MVB1"						194 C "Western Digital SATAII Caviar 250GB Special Edition 8MB"
+"WDC WD2500JD-00HBB0"						194 C   "Western Digital SATA 250GB" 
+"WDC WD2500KS-00MJB0"						194 C "Western Digital SATA-II Caviar 250GB Special Edition 16MB"
+"WDC WD2500YD-01NVB1"						194 C "Western Digital Caviar RE 250GB 16MB"
+"WDC WD3000JS-00PDB0"						194 C "Western Digital WD3000JS"
+"WDC WD3200KS-00PFB0"						194 C "Western Digital Caviar 320GB 16MB"
+"WDC WD3200JD-22KLB0"                                           194 C "Western Digital Caviar SE 320GB 8MB" 
+"WDC WD3200SD-01KNB0"						194 C "Western Digital Caviar RE 320GB SATA 8MB"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp_0.3-beta15-52.diff b/import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp_0.3-beta15-52.diff
new file mode 100644
index 0000000..f61c164
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp_0.3-beta15-52.diff
@@ -0,0 +1,2256 @@
+Megapatch from debian
+
+Original URL: http://ftp.debian.org/debian/pool/main/h/hddtemp/hddtemp_0.3-beta15-52.diff.gz
+
+Filtered with:
+  filterdiff -p1 -x README -x 'debian/*'
+
+
+Upstream-Status: unmaintained
+
+--- hddtemp-0.3-beta15.orig/doc/hddtemp.8
++++ hddtemp-0.3-beta15/doc/hddtemp.8
+@@ -58,6 +58,10 @@
+ .B \-f, \-\-file=\fIfile\fI
+ Specify the database file to use.
+ .TP
++.B \-F, \-\-foreground
++Don't fork into the background even in daemon mode.  This is useful
++when running under a process supervisor.
++.TP
+ .B \-l, \-\-listen=\fIaddr\fR
+ Listen on a specific address.  \fIaddr\fR is a string containing a
+ host name or a numeric host address string.  The numeric host address
+@@ -80,6 +84,9 @@
+ .B \-q, \-\-quiet
+ Don't check if the drive is supported.
+ .TP
++.B \-u, \-\-unit=\fIC|F\fR
++Force output temperature either in Celsius or Fahrenheit.
++.TP
+ .B \-v, \-\-version
+ Display hddtemp version number.
+ .TP
+@@ -96,7 +103,7 @@
+ .SH "DRIVE DATABASE"
+ If you know your drive has a temperature sensor but it is being
+ reported unsupported, tell me which model and which manufacturer it
+-is, and/or just add a new entry in /usr/share/misc/hddtemp.db.  Each
++is, and/or just add a new entry in /etc/hddtemp.db.  Each
+ line of hddtemp.db is either a comment, a blank line or a line
+ containing:
+ .TP
+@@ -112,7 +119,7 @@
+ Feedback is welcome (see the REPORT section below).
+ 
+ .SH "TCP/IP DAEMON MODE"
+-Exemple of type forcing:
++Example of type forcing:
+ .PP
+ # hddtemp SATA:/dev/sda PATA:/dev/hda
+ .PP
+@@ -120,7 +127,7 @@
+ .B hddtemp
+ in daemon mode, start it like this:
+ .PP
+-# hddtemp -d /dev/hd[abcd]
++# hddtemp \-d /dev/hd[abcd]
+ .PP
+ .PP
+ and use
+@@ -165,8 +172,8 @@
+ investigation they do not.  But fields 194 (which is the standard
+ field for temperature) and 231 are good candidates.
+ .PP
+-Then, you can send me a report with outputs from `hddtemp --debug ...',
+-`smartctl' or `hdparm -i ...', and/or add an entry in hddtemp.db
++Then, you can send me a report with outputs from `hddtemp \-\-debug ...',
++`smartctl' or `hdparm \-i ...', and/or add an entry in hddtemp.db
+ yourself.
+ 
+ .SH "BUGS"
+@@ -183,5 +190,5 @@
+ .PP
+ Emmanuel Varagnat (hddtemp@guzu.net).
+ .PP
+-This manual page was originaly written by Aurelien Jarno <aurel32@debian.org>,
++This manual page was originally written by Aurelien Jarno <aurel32@debian.org>,
+ for the Debian GNU/Linux system (but may be used by others).
+--- hddtemp-0.3-beta15.orig/po/fr.po
++++ hddtemp-0.3-beta15/po/fr.po
+@@ -7,9 +7,9 @@
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: fr\n"
+-"Report-Msgid-Bugs-To: hddtemp@guzu.net\n"
+-"POT-Creation-Date: 2005-02-25 22:43+0100\n"
+-"PO-Revision-Date: 2003-06-03 00:58GMT+1\n"
++"Report-Msgid-Bugs-To: \n"
++"POT-Creation-Date: 2006-06-29 16:24+0200\n"
++"PO-Revision-Date: 2011-08-30 16:38+0200\n"
+ "Last-Translator: Aurelien Jarno <aurelien@aurel32.net>\n"
+ "Language-Team: FRANCAIS <fr@li.org>\n"
+ "MIME-Version: 1.0\n"
+@@ -17,23 +17,7 @@
+ "Content-Transfer-Encoding: 8bit\n"
+ "X-Generator: KBabel 1.0.1\n"
+ 
+-#: src/hddtemp.c:112
+-#, c-format
+-msgid ""
+-"\n"
+-"Regexp%s| Value | Description\n"
+-"------%s---------------------\n"
+-msgstr ""
+-"\n"
+-"Regexp%s| Valeur | Description\n"
+-"------%s----------------------\n"
+-
+-#: src/hddtemp.c:118
+-#, c-format
+-msgid "%s%s| %5d | %s\n"
+-msgstr "%s%s|  %5d | %s\n"
+-
+-#: src/hddtemp.c:161
++#: src/hddtemp.c:156
+ #, c-format
+ msgid ""
+ "\n"
+@@ -46,7 +30,7 @@
+ "Modèle: %s\n"
+ "\n"
+ 
+-#: src/hddtemp.c:188
++#: src/hddtemp.c:189
+ #, c-format
+ msgid ""
+ "WARNING: Drive %s doesn't seem to have a temperature sensor.\n"
+@@ -60,75 +44,60 @@
+ "net).\n"
+ "ATTENTION : Voir les options --help, --debug et --drivebase.\n"
+ 
+-#: src/hddtemp.c:192
++#: src/hddtemp.c:197
+ #, c-format
+ msgid "%s: %s:  no sensor\n"
+ msgstr "%s: %s :  pas de capteur\n"
+ 
+-#: src/hddtemp.c:197
+-#, c-format
+-msgid ""
+-"WARNING: Drive %s doesn't appear in the database of supported drives\n"
+-"WARNING: But using a common value, it reports something.\n"
+-"WARNING: Note that the temperature shown could be wrong.\n"
+-"WARNING: See --help, --debug and --drivebase options.\n"
+-"WARNING: And don't forget you can add your drive to hddtemp.db\n"
+-msgstr ""
+-"ATTENTION : Le lecteur %s n'apparait pas dans la base de données des "
+-"lecteurs supportés\n"
+-"ATTENTION : Mais en utilisant une valeur courante, il renvoie quelque "
+-"chose.\n"
+-"ATTENTION : Notez que la température renvoyée peut être erronée.\n"
+-"ATTENTION : Voir les options --help, --debug et --drivebase.\n"
+-"ATTENTION : Et n'oubliez pas d'ajouter votre lecteur au fichier hddtemp.db\n"
+-
+-#: src/hddtemp.c:202
++#: src/hddtemp.c:211
+ #, c-format
+ msgid "%s: %s:  %d%sC or %sF\n"
+ msgstr "%s: %s :  %d%sC ou %sF\n"
+ 
+-#: src/hddtemp.c:214
++#: src/hddtemp.c:235
+ #, c-format
+ msgid "%s: %s: drive is sleeping\n"
+ msgstr "%s: %s : le lecteur est en veille\n"
+ 
+-#: src/hddtemp.c:217
++#: src/hddtemp.c:242
+ #, c-format
+-msgid "%s: %s:  known drive, but it doesn't have a temperature sensor.\n"
++msgid "%s: %s:  drive supported, but it doesn't have a temperature sensor.\n"
+ msgstr ""
+ "%s: %s:  lecteur connu, mais il ne possède pas de capteur de température.\n"
+ 
+-#: src/hddtemp.c:220
++#: src/hddtemp.c:246
+ #, c-format
+ msgid "ERROR: %s: %s: unknown returned status\n"
+ msgstr "ERREUR : %s : %s : status inconnu\n"
+ 
+-#: src/hddtemp.c:235
++#: src/hddtemp.c:261
+ #, c-format
+ msgid ""
+ "\n"
+ "If one of the field value seems to match the temperature, be sure to read\n"
+-"the hddtemp man page before sending me a report (section REPORT). Thanks.\n"
++"the hddtemp man page before sending a report (section REPORT). Thanks.\n"
+ msgstr ""
+ 
+-#: src/hddtemp.c:308
++#: src/hddtemp.c:338
+ #, c-format
+ msgid "ERROR: invalid separator.\n"
+ msgstr "ERREUR : séparateur invalide.\n"
+ 
+-#: src/hddtemp.c:319
++#: src/hddtemp.c:349
+ #, c-format
+ msgid "ERROR: invalid port number.\n"
+ msgstr "ERREUR : numéro de port invalide.\n"
+ 
+-#: src/hddtemp.c:329
+-#, fuzzy, c-format
++#: src/hddtemp.c:371
++#, c-format
+ msgid ""
+-" Usage: hddtemp [OPTIONS] DISK1 [DISK2]...\n"
++" Usage: hddtemp [OPTIONS] [TYPE:]DISK1 [[TYPE:]DISK2]...\n"
+ "\n"
+ "   hddtemp displays the temperature of drives supplied in argument.\n"
+ "   Drives must support S.M.A.R.T.\n"
+ "\n"
++"  TYPE could be SATA, PATA or SCSI. If omitted hddtemp will try to guess.\n"
++"\n"
+ "  -b   --drivebase   :  display database file content that allow hddtemp to\n"
+ "                        recognize supported drives.\n"
+ "  -D   --debug       :  display various S.M.A.R.T. fields and their values.\n"
+@@ -138,6 +107,7 @@
+ "  -d   --daemon      :  run hddtemp in TCP/IP daemon mode (port %d by "
+ "default.)\n"
+ "  -f   --file=FILE   :  specify database file to use.\n"
++"  -F   --foreground  :  don't daemonize, stay in foreground.\n"
+ "  -l   --listen=addr :  listen on a specific interface (in TCP/IP daemon "
+ "mode).\n"
+ "  -n   --numeric     :  print only the temperature.\n"
+@@ -145,6 +115,8 @@
+ "  -s   --separator=C :  separator to use between fields (in TCP/IP daemon "
+ "mode).\n"
+ "  -S   --syslog=s    :  log temperature to syslog every s seconds.\n"
++"  -u   --unit=[C|F]  :  force output temperature either in Celsius or "
++"Fahrenheit.\n"
+ "  -q   --quiet       :  do not check if the drive is supported.\n"
+ "  -v   --version     :  display hddtemp version number.\n"
+ "  -w   --wake-up     :  wake-up the drive if need.\n"
+@@ -153,11 +125,14 @@
+ "\n"
+ "Report bugs or new drives to <hddtemp@guzu.net>.\n"
+ msgstr ""
+-" Utilisation: hddtemp [OPTIONS] DISQUE1 [DISQUE2]...\n"
++" Utilisation: hddtemp [OPTIONS] [TYPE:]DISQUE1 [[TYPE:]DISQUE2]...\n"
+ "\n"
+ "   hddtemp affiche la température des lecteurs passés en argument.\n"
+ "   Les lecteurs doivent avoir le support S.M.A.R.T.\n"
+ "\n"
++"  TYPE peut être SATA, PATA ou SCSI. Si le type est omis, hddtemp essaiera\n"
++"  de le deviner.\n"
++"\n"
+ "  -b   --drivebase   :  affiche le contenu du fichier de base de donnée "
+ "qui \n"
+ "                        permet à hddtemp de reconnaître les lecteurs "
+@@ -172,6 +147,7 @@
+ "défaut).\n"
+ "  -f   --file=FILE   :  specifie le fichier à utiliser comme base de "
+ "données.\n"
++"  -F   --foreground  :  ne pas démoniser, rester au premier plan.\n"
+ "  -l   --listen=addr :  écoute sur une interface spécifique (en mode démon "
+ "TCP/IP).\n"
+ "  -n   --numeric     :  affiche seulement la température.\n"
+@@ -180,6 +156,8 @@
+ "démon TCP/IP).\n"
+ "  -S   --syslog=s    :  enregistre la température dans syslog tous les s "
+ "secondes.\n"
++"  -u   --unit=[C|F]  :  affiche la température en degrés Celsius ou "
++"Fahrenheit.\n"
+ "  -q   --quiet       :  ne vérifie pas si le lecteur est supporté.\n"
+ "  -v   --version     :  affiche la version de hddtemp.\n"
+ "  -w   --wake-up     :  réveiller le lecteur si nécessaire.\n"
+@@ -188,62 +166,95 @@
+ "\n"
+ "Report bugs or new drives to <hddtemp@guzu.net>.\n"
+ 
+-#: src/hddtemp.c:522
++#: src/hddtemp.c:402
+ #, c-format
+ msgid "hddtemp version %s\n"
+ msgstr "hddtemp version %s\n"
+ 
+-#: src/hddtemp.c:547
++#: src/hddtemp.c:418
+ #, c-format
+ msgid "ERROR: invalid interval.\n"
+ msgstr "ERREUR : intervalle invalide.\n"
+ 
+-#: src/hddtemp.c:547
++#: src/hddtemp.c:438
++#, c-format
+ msgid "Too few arguments: you must specify one drive, at least.\n"
+ msgstr "Trop peu d'arguments : vous devez spécifier au moins un lecteur.\n"
+ 
+-#: src/hddtemp.c:557
++#: src/hddtemp.c:448
++#, c-format
+ msgid "ERROR: can't use --debug and --daemon or --syslog options together.\n"
+ msgstr ""
+ "ERREUR: impossible d'utiliser les options --debug et --daemon ou --syslog en "
+ "même temps.\n"
+ 
+-#: src/hddtemp.c:583
++#: src/hddtemp.c:505
+ #, c-format
+ msgid "ERROR: %s: can't determine bus type (or this bus type is unknown)\n"
+ msgstr ""
+ "ERREUR: %s: impossible de déterminer le type de bus (ou ce type de bus est "
+ "inconnu)\n"
+ 
+-#: src/ata.c:66 src/scsi.c:68
++#: src/ata.c:66 src/scsi.c:64
+ msgid "unknown"
+ msgstr "inconnu"
+ 
+-#: src/ata.c:98
++#: src/ata.c:85 src/ata.c:104 src/scsi.c:91
+ #, c-format
+-msgid "field(%d)\t = %d\n"
+-msgstr "champ(%d)\t = %d\n"
+-
+-#: src/ata.c:167
+ msgid "S.M.A.R.T. not available"
+ msgstr "S.M.A.R.T. non disponible"
+ 
+-#: src/db.c:180
++#: src/db.c:115
++#, c-format
++msgid ""
++"\n"
++"Regexp%s| Value | Description\n"
++"------%s---------------------\n"
++msgstr ""
++"\n"
++"Regexp%s| Valeur | Description\n"
++"------%s----------------------\n"
++
++#: src/db.c:121
++#, c-format
++msgid "%s%s| %5d | %s\n"
++msgstr "%s%s|  %5d | %s\n"
++
++#: src/db.c:236
+ #, c-format
+ msgid "hddtemp: can't open %1$s: %2$s\n"
+ msgstr "hddtemp: ne peut ouvrir %1$s: %2$s\n"
+ 
+-#: src/db.c:194
++#: src/db.c:250
+ #, c-format
+ msgid "ERROR: syntax error at line %1$d in %2$s\n"
+ msgstr "ERREUR: erreur de syntaxe à la ligne %1$d: %2$s\n"
+ 
+-#: src/db.c:201
++#: src/db.c:257
+ #, c-format
+ msgid "  ERROR: line exceed %1$d characters in %2$s.\n"
+ msgstr "  ERREUR: ligne exécdant %1$d caractères dans %2$s.\n"
+ 
+-#: src/scsi.c:112 src/scsi.c:130
++#: src/scsi.c:111 src/scsi.c:129
+ #, c-format
+ msgid "log sense failed : %s"
+ msgstr "echec de 'log sense' : %s "
++
++#~ msgid ""
++#~ "WARNING: Drive %s doesn't appear in the database of supported drives\n"
++#~ "WARNING: But using a common value, it reports something.\n"
++#~ "WARNING: Note that the temperature shown could be wrong.\n"
++#~ "WARNING: See --help, --debug and --drivebase options.\n"
++#~ "WARNING: And don't forget you can add your drive to hddtemp.db\n"
++#~ msgstr ""
++#~ "ATTENTION : Le lecteur %s n'apparait pas dans la base de données des "
++#~ "lecteurs supportés\n"
++#~ "ATTENTION : Mais en utilisant une valeur courante, il renvoie quelque "
++#~ "chose.\n"
++#~ "ATTENTION : Notez que la température renvoyée peut être erronée.\n"
++#~ "ATTENTION : Voir les options --help, --debug et --drivebase.\n"
++#~ "ATTENTION : Et n'oubliez pas d'ajouter votre lecteur au fichier hddtemp."
++#~ "db\n"
++
++#~ msgid "field(%d)\t = %d\n"
++#~ msgstr "champ(%d)\t = %d\n"
+--- hddtemp-0.3-beta15.orig/po/ru.po
++++ hddtemp-0.3-beta15/po/ru.po
+@@ -6,8 +6,8 @@
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: hddtemp 0.3-beta3\n"
+-"Report-Msgid-Bugs-To: hddtemp@guzu.net\n"
+-"POT-Creation-Date: 2005-02-25 22:43+0100\n"
++"Report-Msgid-Bugs-To: \n"
++"POT-Creation-Date: 2006-06-29 16:24+0200\n"
+ "PO-Revision-Date: 2003-03-08 16:42+0300\n"
+ "Last-Translator: Michael Shigorin <mike@altlinux.ru>\n"
+ "Language-Team: Russian <ru@li.org>\n"
+@@ -15,23 +15,7 @@
+ "Content-Type: text/plain; charset=koi8-r\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ 
+-#: src/hddtemp.c:112
+-#, c-format
+-msgid ""
+-"\n"
+-"Regexp%s| Value | Description\n"
+-"------%s---------------------\n"
+-msgstr ""
+-"\n"
+-"òÅÇÜËÓ%s| úÎÁÞ. | ïÐÉÓÁÎÉÅ   \n"
+-"------%s---------------------\n"
+-
+-#: src/hddtemp.c:118
+-#, c-format
+-msgid "%s%s| %5d | %s\n"
+-msgstr ""
+-
+-#: src/hddtemp.c:161
++#: src/hddtemp.c:156
+ #, c-format
+ msgid ""
+ "\n"
+@@ -40,7 +24,7 @@
+ "\n"
+ msgstr ""
+ 
+-#: src/hddtemp.c:188
++#: src/hddtemp.c:189
+ #, c-format
+ msgid ""
+ "WARNING: Drive %s doesn't seem to have a temperature sensor.\n"
+@@ -53,72 +37,59 @@
+ "÷îéíáîéå: åÓÌÉ ×Ù ÔÏÞÎÏ ÚÎÁÅÔÅ, ÞÔÏ ÄÁÔÞÉË ÅÓÔØ, ÎÁÐÉÛÉÔÅ hddtemp@guzu.net\n"
+ "÷îéíáîéå: (ÓÍ. ÏÐÃÉÉ --help, --debug É --drivebase).\n"
+ 
+-#: src/hddtemp.c:192
++#: src/hddtemp.c:197
+ #, c-format
+ msgid "%s: %s:  no sensor\n"
+ msgstr "%s: %s:  ÎÅÔ ÄÁÔÞÉËÁ\n"
+ 
+-#: src/hddtemp.c:197
+-#, c-format
+-msgid ""
+-"WARNING: Drive %s doesn't appear in the database of supported drives\n"
+-"WARNING: But using a common value, it reports something.\n"
+-"WARNING: Note that the temperature shown could be wrong.\n"
+-"WARNING: See --help, --debug and --drivebase options.\n"
+-"WARNING: And don't forget you can add your drive to hddtemp.db\n"
+-msgstr ""
+-"÷îéíáîéå: äÉÓË %s ÎÅ ×ËÌÀÞÅÎ × ÂÁÚÕ ÄÁÎÎÙÈ ÐÏÄÄÅÒÖÉ×ÁÅÍÙÈ ÐÒÉ×ÏÄÏ×.\n"
+-"÷îéíáîéå: îÏ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÒÁÓÐÒÏÓÔÒÁÎÅÎÎÙÈ ÐÁÒÁÍÅÔÒÏ× ÏÎ ÞÔÏ-ÔÏ ×ÙÄÁÅÔ.\n"
+-"÷îéíáîéå: úÁÍÅÔØÔÅ, ÞÔÏ ÐÏËÁÚÁÎÎÁÑ ÔÅÍÐÅÒÁÔÕÒÁ ÍÏÖÅÔ ÔÁËÏ×ÏÊ ÎÅ Ñ×ÌÑÔØÓÑ.\n"
+-"÷îéíáîéå: óÍ. ÏÐÃÉÉ --help, --debug É --drivebase.\n"
+-"÷îéíáîéå: é ÎÅ ÚÁÂÕÄØÔÅ, ÞÔÏ ÍÏÖÎÏ ÄÏÂÁ×ÉÔØ ÐÒÉ×ÏÄ × hddtemp.db\n"
+-
+-#: src/hddtemp.c:202
++#: src/hddtemp.c:211
+ #, c-format
+ msgid "%s: %s:  %d%sC or %sF\n"
+ msgstr "%s: %s:  %d%sC ÉÌÉ %sF\n"
+ 
+-#: src/hddtemp.c:214
++#: src/hddtemp.c:235
+ #, c-format
+ msgid "%s: %s: drive is sleeping\n"
+ msgstr "%s: %s:  ÎÅÔ ÄÁÔÞÉËÁ\n"
+ 
+-#: src/hddtemp.c:217
+-#, c-format
+-msgid "%s: %s:  known drive, but it doesn't have a temperature sensor.\n"
++#: src/hddtemp.c:242
++#, fuzzy, c-format
++msgid "%s: %s:  drive supported, but it doesn't have a temperature sensor.\n"
+ msgstr "%s: %s:  ÉÚ×ÅÓÔÎÙÊ ÄÉÓË, ÎÅ ÓÏÄÅÒÖÁÝÉÊ ÄÁÔÞÉËÁ ÔÅÍÐÅÒÁÔÕÒÙ.\n"
+ 
+-#: src/hddtemp.c:220
++#: src/hddtemp.c:246
+ #, c-format
+ msgid "ERROR: %s: %s: unknown returned status\n"
+ msgstr "ïûéâëá: %s: %s: ÎÅÉÚ×ÅÓÔÎÙÊ ÓÔÁÔÕÓ ×ÏÚ×ÒÁÔÁ\n"
+ 
+-#: src/hddtemp.c:235
++#: src/hddtemp.c:261
+ #, c-format
+ msgid ""
+ "\n"
+ "If one of the field value seems to match the temperature, be sure to read\n"
+-"the hddtemp man page before sending me a report (section REPORT). Thanks.\n"
++"the hddtemp man page before sending a report (section REPORT). Thanks.\n"
+ msgstr ""
+ 
+-#: src/hddtemp.c:308
++#: src/hddtemp.c:338
+ #, c-format
+ msgid "ERROR: invalid separator.\n"
+ msgstr "ïûéâëá: ÎÅ×ÅÒÎÙÊ ÒÁÚÄÅÌÉÔÅÌØ.\n"
+ 
+-#: src/hddtemp.c:319
++#: src/hddtemp.c:349
+ #, c-format
+ msgid "ERROR: invalid port number.\n"
+ msgstr "ïýéâëá: ÎÅ×ÅÒÎÙÊ ÎÏÍÅÒ ÐÏÒÔÁ.\n"
+ 
+-#: src/hddtemp.c:329
++#: src/hddtemp.c:371
+ #, fuzzy, c-format
+ msgid ""
+-" Usage: hddtemp [OPTIONS] DISK1 [DISK2]...\n"
++" Usage: hddtemp [OPTIONS] [TYPE:]DISK1 [[TYPE:]DISK2]...\n"
+ "\n"
+ "   hddtemp displays the temperature of drives supplied in argument.\n"
+ "   Drives must support S.M.A.R.T.\n"
+ "\n"
++"  TYPE could be SATA, PATA or SCSI. If omitted hddtemp will try to guess.\n"
++"\n"
+ "  -b   --drivebase   :  display database file content that allow hddtemp to\n"
+ "                        recognize supported drives.\n"
+ "  -D   --debug       :  display various S.M.A.R.T. fields and their values.\n"
+@@ -128,6 +99,7 @@
+ "  -d   --daemon      :  run hddtemp in TCP/IP daemon mode (port %d by "
+ "default.)\n"
+ "  -f   --file=FILE   :  specify database file to use.\n"
++"  -F   --foreground  :  don't daemonize, stay in foreground.\n"
+ "  -l   --listen=addr :  listen on a specific interface (in TCP/IP daemon "
+ "mode).\n"
+ "  -n   --numeric     :  print only the temperature.\n"
+@@ -135,6 +107,8 @@
+ "  -s   --separator=C :  separator to use between fields (in TCP/IP daemon "
+ "mode).\n"
+ "  -S   --syslog=s    :  log temperature to syslog every s seconds.\n"
++"  -u   --unit=[C|F]  :  force output temperature either in Celsius or "
++"Fahrenheit.\n"
+ "  -q   --quiet       :  do not check if the drive is supported.\n"
+ "  -v   --version     :  display hddtemp version number.\n"
+ "  -w   --wake-up     :  wake-up the drive if need.\n"
+@@ -168,59 +142,90 @@
+ "\n"
+ "óÏÏÂÝÅÎÉÑ Ï ÏÛÉÂËÁÈ É ÄÁÎÎÙÅ ÄÌÑ ÄÉÓËÏ× ÏÔÐÒÁ×ÌÑÊÔÅ ÎÁ <hddtemp@guzu.net>.\n"
+ 
+-#: src/hddtemp.c:522
++#: src/hddtemp.c:402
+ #, c-format
+ msgid "hddtemp version %s\n"
+ msgstr "÷ÅÒÓÉÑ hddtemp: %s\n"
+ 
+-#: src/hddtemp.c:547
++#: src/hddtemp.c:418
+ #, fuzzy, c-format
+ msgid "ERROR: invalid interval.\n"
+ msgstr "ïûéâëá: ÎÅ×ÅÒÎÙÊ ÒÁÚÄÅÌÉÔÅÌØ.\n"
+ 
+-#: src/hddtemp.c:547
++#: src/hddtemp.c:438
++#, c-format
+ msgid "Too few arguments: you must specify one drive, at least.\n"
+ msgstr ""
+ 
+-#: src/hddtemp.c:557
+-#, fuzzy
++#: src/hddtemp.c:448
++#, fuzzy, c-format
+ msgid "ERROR: can't use --debug and --daemon or --syslog options together.\n"
+ msgstr "ïûéâëá: ÏÄÎÏ×ÒÅÍÅÎÎÏÅ ÉÓÐÏÌØÚÏ×ÁÎÉÅ --debug É --daemon ÎÅÄÏÐÕÓÔÉÍÏ.\n"
+ 
+-#: src/hddtemp.c:583
++#: src/hddtemp.c:505
+ #, c-format
+ msgid "ERROR: %s: can't determine bus type (or this bus type is unknown)\n"
+ msgstr "ïûéâëá: %s: ÎÅ×ÏÚÍÏÖÎÏ ÏÐÒÅÄÅÌÉÔØ ÔÉÐ ÛÉÎÙ\n"
+ 
+-#: src/ata.c:66 src/scsi.c:68
++#: src/ata.c:66 src/scsi.c:64
+ msgid "unknown"
+ msgstr "ÎÅÉÚ×."
+ 
+-#: src/ata.c:98
++#: src/ata.c:85 src/ata.c:104 src/scsi.c:91
+ #, c-format
+-msgid "field(%d)\t = %d\n"
+-msgstr "ÐÏÌÅ(%d)\t = %d\n"
+-
+-#: src/ata.c:167
+ msgid "S.M.A.R.T. not available"
+ msgstr "S.M.A.R.T. ÎÅÄÏÓÔÕÐÅÎ"
+ 
+-#: src/db.c:180
++#: src/db.c:115
++#, c-format
++msgid ""
++"\n"
++"Regexp%s| Value | Description\n"
++"------%s---------------------\n"
++msgstr ""
++"\n"
++"òÅÇÜËÓ%s| úÎÁÞ. | ïÐÉÓÁÎÉÅ   \n"
++"------%s---------------------\n"
++
++#: src/db.c:121
++#, c-format
++msgid "%s%s| %5d | %s\n"
++msgstr ""
++
++#: src/db.c:236
+ #, c-format
+ msgid "hddtemp: can't open %1$s: %2$s\n"
+ msgstr "hddtemp: ÎÅ ÍÏÇÕ ÏÔËÒÙÔØ %1$s: %2$s\n"
+ 
+-#: src/db.c:194
++#: src/db.c:250
+ #, c-format
+ msgid "ERROR: syntax error at line %1$d in %2$s\n"
+ msgstr "óÉÎÔÁËÓÉÞÅÓËÁÑ ïûéâëá × ÓÔÒÏËÅ %1$d ÆÁÊÌÁ %2$s\n"
+ 
+-#: src/db.c:201
++#: src/db.c:257
+ #, c-format
+ msgid "  ERROR: line exceed %1$d characters in %2$s.\n"
+ msgstr "ïûéâëá: ÓÔÒÏËÁ ÄÌÉÎÎÅÅ %1$d ÓÉÍ×ÏÌÏ× × %2$s.\n"
+ 
+-#: src/scsi.c:112 src/scsi.c:130
++#: src/scsi.c:111 src/scsi.c:129
+ #, c-format
+ msgid "log sense failed : %s"
+ msgstr ""
++
++#~ msgid ""
++#~ "WARNING: Drive %s doesn't appear in the database of supported drives\n"
++#~ "WARNING: But using a common value, it reports something.\n"
++#~ "WARNING: Note that the temperature shown could be wrong.\n"
++#~ "WARNING: See --help, --debug and --drivebase options.\n"
++#~ "WARNING: And don't forget you can add your drive to hddtemp.db\n"
++#~ msgstr ""
++#~ "÷îéíáîéå: äÉÓË %s ÎÅ ×ËÌÀÞÅÎ × ÂÁÚÕ ÄÁÎÎÙÈ ÐÏÄÄÅÒÖÉ×ÁÅÍÙÈ ÐÒÉ×ÏÄÏ×.\n"
++#~ "÷îéíáîéå: îÏ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÒÁÓÐÒÏÓÔÒÁÎÅÎÎÙÈ ÐÁÒÁÍÅÔÒÏ× ÏÎ ÞÔÏ-ÔÏ "
++#~ "×ÙÄÁÅÔ.\n"
++#~ "÷îéíáîéå: úÁÍÅÔØÔÅ, ÞÔÏ ÐÏËÁÚÁÎÎÁÑ ÔÅÍÐÅÒÁÔÕÒÁ ÍÏÖÅÔ ÔÁËÏ×ÏÊ ÎÅ "
++#~ "Ñ×ÌÑÔØÓÑ.\n"
++#~ "÷îéíáîéå: óÍ. ÏÐÃÉÉ --help, --debug É --drivebase.\n"
++#~ "÷îéíáîéå: é ÎÅ ÚÁÂÕÄØÔÅ, ÞÔÏ ÍÏÖÎÏ ÄÏÂÁ×ÉÔØ ÐÒÉ×ÏÄ × hddtemp.db\n"
++
++#~ msgid "field(%d)\t = %d\n"
++#~ msgstr "ÐÏÌÅ(%d)\t = %d\n"
+--- hddtemp-0.3-beta15.orig/po/sv.po
++++ hddtemp-0.3-beta15/po/sv.po
+@@ -6,8 +6,8 @@
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: hddtemp 0.3-beta14-4\n"
+-"Report-Msgid-Bugs-To: hddtemp@guzu.net\n"
+-"POT-Creation-Date: 2005-02-25 22:43+0100\n"
++"Report-Msgid-Bugs-To: \n"
++"POT-Creation-Date: 2006-06-29 16:24+0200\n"
+ "PO-Revision-Date: 2005-11-02 19:03+0100\n"
+ "Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
+ "Language-Team: Swedish <sv@li.org>\n"
+@@ -17,23 +17,7 @@
+ "X-Poedit-Language: swe\n"
+ "X-Poedit-Country: swe\n"
+ 
+-#: src/hddtemp.c:112
+-#, c-format
+-msgid ""
+-"\n"
+-"Regexp%s| Value | Description\n"
+-"------%s---------------------\n"
+-msgstr ""
+-"\n"
+-"Regexp%s| Värde | Beskrivning\n"
+-"------%s---------------------\n"
+-
+-#: src/hddtemp.c:118
+-#, c-format
+-msgid "%s%s| %5d | %s\n"
+-msgstr "%s%s| %5d | %s\n"
+-
+-#: src/hddtemp.c:161
++#: src/hddtemp.c:156
+ #, c-format
+ msgid ""
+ "\n"
+@@ -46,7 +30,7 @@
+ "Modell: %s\n"
+ "\n"
+ 
+-#: src/hddtemp.c:188
++#: src/hddtemp.c:189
+ #, c-format
+ msgid ""
+ "WARNING: Drive %s doesn't seem to have a temperature sensor.\n"
+@@ -60,76 +44,63 @@
+ "net).\n"
+ "VARNING: Se --help, --debug och --drivebase flaggorna.\n"
+ 
+-#: src/hddtemp.c:192
++#: src/hddtemp.c:197
+ #, c-format
+ msgid "%s: %s:  no sensor\n"
+ msgstr "%s: %s:  ingen sensor\n"
+ 
+-#: src/hddtemp.c:197
+-#, c-format
+-msgid ""
+-"WARNING: Drive %s doesn't appear in the database of supported drives\n"
+-"WARNING: But using a common value, it reports something.\n"
+-"WARNING: Note that the temperature shown could be wrong.\n"
+-"WARNING: See --help, --debug and --drivebase options.\n"
+-"WARNING: And don't forget you can add your drive to hddtemp.db\n"
+-msgstr ""
+-"VARNING: Disken %s verkar inte finnas i databasen över diskar som stöds\n"
+-"VARNING: Men använder man ett vanligt värde rapporterar den något.\n"
+-"VARNING: Notera att temperaturen som visas kan vara felaktig.\n"
+-"VARNING: Se --help, --debug och --drivebase flaggorna.\n"
+-"VARNING: Och glöm inte att du kan lägga till din disk till hddtemp.db\n"
+-
+-#: src/hddtemp.c:202
++#: src/hddtemp.c:211
+ #, c-format
+ msgid "%s: %s:  %d%sC or %sF\n"
+ msgstr "%s: %s:  %d%sC eller %sF\n"
+ 
+-#: src/hddtemp.c:214
++#: src/hddtemp.c:235
+ #, c-format
+ msgid "%s: %s: drive is sleeping\n"
+ msgstr "%s: %s: disken sover\n"
+ 
+-#: src/hddtemp.c:217
+-#, c-format
+-msgid "%s: %s:  known drive, but it doesn't have a temperature sensor.\n"
++#: src/hddtemp.c:242
++#, fuzzy, c-format
++msgid "%s: %s:  drive supported, but it doesn't have a temperature sensor.\n"
+ msgstr "%s: %s:  känd disk men den har ingen temperatursensor.\n"
+ 
+-#: src/hddtemp.c:220
++#: src/hddtemp.c:246
+ #, c-format
+ msgid "ERROR: %s: %s: unknown returned status\n"
+ msgstr "FEL: %s: %s: okänd returnerad status\n"
+ 
+-#: src/hddtemp.c:235
+-#, c-format
++#: src/hddtemp.c:261
++#, fuzzy, c-format
+ msgid ""
+ "\n"
+ "If one of the field value seems to match the temperature, be sure to read\n"
+-"the hddtemp man page before sending me a report (section REPORT). Thanks.\n"
++"the hddtemp man page before sending a report (section REPORT). Thanks.\n"
+ msgstr ""
+ "\n"
+ "Om ett av fältvärdena verkar matcha temperaturen, var säker på att du\n"
+ "läst manualsidan för hddtemp före du skickar en rapport till mig (sektionen\n"
+ "REPORT). Tack.\n"
+ 
+-#: src/hddtemp.c:308
++#: src/hddtemp.c:338
+ #, c-format
+ msgid "ERROR: invalid separator.\n"
+ msgstr "FEL: ogiltig separator.\n"
+ 
+-#: src/hddtemp.c:319
++#: src/hddtemp.c:349
+ #, c-format
+ msgid "ERROR: invalid port number.\n"
+ msgstr "FEL: ogiltigt portnummer.\n"
+ 
+-#: src/hddtemp.c:329
+-#, c-format
++#: src/hddtemp.c:371
++#, fuzzy, c-format
+ msgid ""
+-" Usage: hddtemp [OPTIONS] DISK1 [DISK2]...\n"
++" Usage: hddtemp [OPTIONS] [TYPE:]DISK1 [[TYPE:]DISK2]...\n"
+ "\n"
+ "   hddtemp displays the temperature of drives supplied in argument.\n"
+ "   Drives must support S.M.A.R.T.\n"
+ "\n"
++"  TYPE could be SATA, PATA or SCSI. If omitted hddtemp will try to guess.\n"
++"\n"
+ "  -b   --drivebase   :  display database file content that allow hddtemp to\n"
+ "                        recognize supported drives.\n"
+ "  -D   --debug       :  display various S.M.A.R.T. fields and their values.\n"
+@@ -139,6 +110,7 @@
+ "  -d   --daemon      :  run hddtemp in TCP/IP daemon mode (port %d by "
+ "default.)\n"
+ "  -f   --file=FILE   :  specify database file to use.\n"
++"  -F   --foreground  :  don't daemonize, stay in foreground.\n"
+ "  -l   --listen=addr :  listen on a specific interface (in TCP/IP daemon "
+ "mode).\n"
+ "  -n   --numeric     :  print only the temperature.\n"
+@@ -146,6 +118,8 @@
+ "  -s   --separator=C :  separator to use between fields (in TCP/IP daemon "
+ "mode).\n"
+ "  -S   --syslog=s    :  log temperature to syslog every s seconds.\n"
++"  -u   --unit=[C|F]  :  force output temperature either in Celsius or "
++"Fahrenheit.\n"
+ "  -q   --quiet       :  do not check if the drive is supported.\n"
+ "  -v   --version     :  display hddtemp version number.\n"
+ "  -w   --wake-up     :  wake-up the drive if need.\n"
+@@ -184,61 +158,91 @@
+ "\n"
+ "Rapportera buggar eller nya hårddiskar till <hddtemp@guzu.net>.\n"
+ 
+-#: src/hddtemp.c:522
++#: src/hddtemp.c:402
+ #, c-format
+ msgid "hddtemp version %s\n"
+ msgstr "hddtemp version %s\n"
+ 
+-#: src/hddtemp.c:547
++#: src/hddtemp.c:418
+ #, c-format
+ msgid "ERROR: invalid interval.\n"
+ msgstr "FEL: ogiltigt intervall.\n"
+ 
+-#: src/hddtemp.c:547
++#: src/hddtemp.c:438
++#, c-format
+ msgid "Too few arguments: you must specify one drive, at least.\n"
+ msgstr "För få argument: du måste specificera åtminstone en disk.\n"
+ 
+-#: src/hddtemp.c:557
++#: src/hddtemp.c:448
++#, c-format
+ msgid "ERROR: can't use --debug and --daemon or --syslog options together.\n"
+ msgstr ""
+ "FEL: kan inte använda --debug och --daemon eller --syslog flaggorna "
+ "tillsammans.\n"
+ 
+-#: src/hddtemp.c:583
++#: src/hddtemp.c:505
+ #, c-format
+ msgid "ERROR: %s: can't determine bus type (or this bus type is unknown)\n"
+ msgstr ""
+ "FEL: %s: kan inte fastställa busstyp (eller så är denna busstyp okänd)\n"
+ 
+-#: src/ata.c:66 src/scsi.c:68
++#: src/ata.c:66 src/scsi.c:64
+ msgid "unknown"
+ msgstr "okänd"
+ 
+-#: src/ata.c:98
++#: src/ata.c:85 src/ata.c:104 src/scsi.c:91
+ #, c-format
+-msgid "field(%d)\t = %d\n"
+-msgstr "fält(%d)\t = %d\n"
+-
+-#: src/ata.c:167
+ msgid "S.M.A.R.T. not available"
+ msgstr "S.M.A.R.T. är inte tillgänglig"
+ 
+-#: src/db.c:180
++#: src/db.c:115
++#, c-format
++msgid ""
++"\n"
++"Regexp%s| Value | Description\n"
++"------%s---------------------\n"
++msgstr ""
++"\n"
++"Regexp%s| Värde | Beskrivning\n"
++"------%s---------------------\n"
++
++#: src/db.c:121
++#, c-format
++msgid "%s%s| %5d | %s\n"
++msgstr "%s%s| %5d | %s\n"
++
++#: src/db.c:236
+ #, c-format
+ msgid "hddtemp: can't open %1$s: %2$s\n"
+ msgstr "hddtemp: kan inte öppna %1$s: %2$s\n"
+ 
+-#: src/db.c:194
++#: src/db.c:250
+ #, c-format
+ msgid "ERROR: syntax error at line %1$d in %2$s\n"
+ msgstr "FEL: syntaxfel på rad %1$d i %2$s\n"
+ 
+-#: src/db.c:201
++#: src/db.c:257
+ #, c-format
+ msgid "  ERROR: line exceed %1$d characters in %2$s.\n"
+ msgstr " FEL: raden överstiger %1$d tecken i %2$s.\n"
+ 
+-#: src/scsi.c:112 src/scsi.c:130
++#: src/scsi.c:111 src/scsi.c:129
+ #, c-format
+ msgid "log sense failed : %s"
+ msgstr "igenkänning av logg misslyckades : %s"
++
++#~ msgid ""
++#~ "WARNING: Drive %s doesn't appear in the database of supported drives\n"
++#~ "WARNING: But using a common value, it reports something.\n"
++#~ "WARNING: Note that the temperature shown could be wrong.\n"
++#~ "WARNING: See --help, --debug and --drivebase options.\n"
++#~ "WARNING: And don't forget you can add your drive to hddtemp.db\n"
++#~ msgstr ""
++#~ "VARNING: Disken %s verkar inte finnas i databasen över diskar som stöds\n"
++#~ "VARNING: Men använder man ett vanligt värde rapporterar den något.\n"
++#~ "VARNING: Notera att temperaturen som visas kan vara felaktig.\n"
++#~ "VARNING: Se --help, --debug och --drivebase flaggorna.\n"
++#~ "VARNING: Och glöm inte att du kan lägga till din disk till hddtemp.db\n"
++
++#~ msgid "field(%d)\t = %d\n"
++#~ msgstr "fält(%d)\t = %d\n"
+--- hddtemp-0.3-beta15.orig/po/pt.po
++++ hddtemp-0.3-beta15/po/pt.po
+@@ -7,7 +7,7 @@
+ msgstr ""
+ "Project-Id-Version: hddtemp 0.3-beta14\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2005-02-25 22:43+0100\n"
++"POT-Creation-Date: 2006-06-29 16:24+0200\n"
+ "PO-Revision-Date: 2006-03-29 23:22+0000\n"
+ "Last-Translator: Miguel Figueiredo <elmig@debianp.org>\n"
+ "Language-Team: Portuguese <traduz@debianpt.org>\n"
+@@ -15,23 +15,7 @@
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ 
+-#: src/hddtemp.c:112
+-#, c-format
+-msgid ""
+-"\n"
+-"Regexp%s| Value | Description\n"
+-"------%s---------------------\n"
+-msgstr ""
+-"\n"
+-"Regexp%s| Valor | Descrição\n"
+-"------%s-------------------\n"
+-
+-#: src/hddtemp.c:118
+-#, c-format
+-msgid "%s%s| %5d | %s\n"
+-msgstr "%s%s| %5d | %s\n"
+-
+-#: src/hddtemp.c:161
++#: src/hddtemp.c:156
+ #, c-format
+ msgid ""
+ "\n"
+@@ -44,7 +28,7 @@
+ "Modelo: %s\n"
+ "\n"
+ 
+-#: src/hddtemp.c:188
++#: src/hddtemp.c:189
+ #, c-format
+ msgid ""
+ "WARNING: Drive %s doesn't seem to have a temperature sensor.\n"
+@@ -54,79 +38,68 @@
+ msgstr ""
+ "AVISO: O disco %s não parece ter um sensor de temperatura.\n"
+ "AVISO: Isto não significa que não tem nenhum.\n"
+-"AVISO: Se tem a certeza que tem um, por favor contacte-me (hddtemp@guzu.net).\n"
++"AVISO: Se tem a certeza que tem um, por favor contacte-me (hddtemp@guzu."
++"net).\n"
+ "AVISO: Veja as opções --help, --debug e --drivebase.\n"
+ 
+-#: src/hddtemp.c:192
++#: src/hddtemp.c:197
+ #, c-format
+ msgid "%s: %s:  no sensor\n"
+ msgstr "%s: %s: sem sensor\n"
+ 
+-#: src/hddtemp.c:197
+-#, c-format
+-msgid ""
+-"WARNING: Drive %s doesn't appear in the database of supported drives\n"
+-"WARNING: But using a common value, it reports something.\n"
+-"WARNING: Note that the temperature shown could be wrong.\n"
+-"WARNING: See --help, --debug and --drivebase options.\n"
+-"WARNING: And don't forget you can add your drive to hddtemp.db\n"
+-msgstr ""
+-"AVISO: O disco %s não parece estar na base de dados de discos suportados\n"
+-"AVISO: Mas ao utilizar um valor usual, relata alguma coisa.\n"
+-"AVISO: Note que a temperatura mostrada pode estar errada.\n"
+-"AVISO: Veja as opções --help, --debug e --frivebase.\n"
+-"AVISO: E não se esqueça de adicionar o seu disco a hddtemp.db\n"
+-
+-#: src/hddtemp.c:202
++#: src/hddtemp.c:211
+ #, c-format
+ msgid "%s: %s:  %d%sC or %sF\n"
+ msgstr "%s: %s: %d%sC ou %sF\n"
+ 
+-#: src/hddtemp.c:214
++#: src/hddtemp.c:235
+ #, c-format
+ msgid "%s: %s: drive is sleeping\n"
+ msgstr "%s: %s: o disco está adormecido\n"
+ 
+-#: src/hddtemp.c:217
+-#, c-format
+-msgid "%s: %s:  known drive, but it doesn't have a temperature sensor.\n"
++#: src/hddtemp.c:242
++#, fuzzy, c-format
++msgid "%s: %s:  drive supported, but it doesn't have a temperature sensor.\n"
+ msgstr "%s: %s: disco conhecido, mas não tem um sensor de temperatura.\n"
+ 
+-#: src/hddtemp.c:220
++#: src/hddtemp.c:246
+ #, c-format
+ msgid "ERROR: %s: %s: unknown returned status\n"
+ msgstr "ERRO: %s: %s: estado devolvido desconhecido\n"
+ 
+-#: src/hddtemp.c:235
+-#, c-format
++#: src/hddtemp.c:261
++#, fuzzy, c-format
+ msgid ""
+ "\n"
+ "If one of the field value seems to match the temperature, be sure to read\n"
+-"the hddtemp man page before sending me a report (section REPORT). Thanks.\n"
++"the hddtemp man page before sending a report (section REPORT). Thanks.\n"
+ msgstr ""
+ "\n"
+-"Se um dos campos de valores parecer coincidir com a temperatura, assegure-se\n"
++"Se um dos campos de valores parecer coincidir com a temperatura, assegure-"
++"se\n"
+ "que lê a página do manual hddtemp antes de me enviar um relatório (secção\n"
+ "REPORT). Obrigado.\n"
+ 
+-#: src/hddtemp.c:308
++#: src/hddtemp.c:338
+ #, c-format
+ msgid "ERROR: invalid separator.\n"
+ msgstr "ERRO: separador inválido.\n"
+ 
+-#: src/hddtemp.c:319
++#: src/hddtemp.c:349
+ #, c-format
+ msgid "ERROR: invalid port number.\n"
+ msgstr "ERRO: número de port inválido\n"
+ 
+-#: src/hddtemp.c:329
+-#, c-format
++#: src/hddtemp.c:371
++#, fuzzy, c-format
+ msgid ""
+-" Usage: hddtemp [OPTIONS] DISK1 [DISK2]...\n"
++" Usage: hddtemp [OPTIONS] [TYPE:]DISK1 [[TYPE:]DISK2]...\n"
+ "\n"
+ "   hddtemp displays the temperature of drives supplied in argument.\n"
+ "   Drives must support S.M.A.R.T.\n"
+ "\n"
++"  TYPE could be SATA, PATA or SCSI. If omitted hddtemp will try to guess.\n"
++"\n"
+ "  -b   --drivebase   :  display database file content that allow hddtemp to\n"
+ "                        recognize supported drives.\n"
+ "  -D   --debug       :  display various S.M.A.R.T. fields and their values.\n"
+@@ -136,6 +109,7 @@
+ "  -d   --daemon      :  run hddtemp in TCP/IP daemon mode (port %d by "
+ "default.)\n"
+ "  -f   --file=FILE   :  specify database file to use.\n"
++"  -F   --foreground  :  don't daemonize, stay in foreground.\n"
+ "  -l   --listen=addr :  listen on a specific interface (in TCP/IP daemon "
+ "mode).\n"
+ "  -n   --numeric     :  print only the temperature.\n"
+@@ -143,6 +117,8 @@
+ "  -s   --separator=C :  separator to use between fields (in TCP/IP daemon "
+ "mode).\n"
+ "  -S   --syslog=s    :  log temperature to syslog every s seconds.\n"
++"  -u   --unit=[C|F]  :  force output temperature either in Celsius or "
++"Fahrenheit.\n"
+ "  -q   --quiet       :  do not check if the drive is supported.\n"
+ "  -v   --version     :  display hddtemp version number.\n"
+ "  -w   --wake-up     :  wake-up the drive if need.\n"
+@@ -156,19 +132,23 @@
+ "   hddtemp mostra a temperatura dos discos indicados no argumento.\n"
+ "   Os discos têm de suportar S.M.A.R.T.\n"
+ "\n"
+-"  -b	 --drivebase   :  mostrar o conteúdo do ficheiro de base de dados que\n"
++"  -b\t --drivebase   :  mostrar o conteúdo do ficheiro de base de dados que\n"
+ "                        permite ao hddtemp reconhecer os discos suportados.\n"
+-"  -D	 --debug       :  mostrar vários campos S.M.A.R.T. e os seus valores.\n"
+-"                        Útil para encontrar um valor que pareça coincidir com "
+-"                        a temperatura e/ou para me enviar um relatório.\n"
++"  -D\t --debug       :  mostrar vários campos S.M.A.R.T. e os seus valores.\n"
++"                        Útil para encontrar um valor que pareça coincidir "
++"com                         a temperatura e/ou para me enviar um relatório.\n"
+ "                        (feito para cada disco indicado).\n"
+-"  -d   --daemon      :  correr o hddtemp no modo daemon TCP/IP\n (porto %d por omissão.)\n"
++"  -d   --daemon      :  correr o hddtemp no modo daemon TCP/IP\n"
++" (porto %d por omissão.)\n"
+ "  -f   --file=FILE   :  especificar o ficheiro de base de dados a utilizar.\n"
+-"  -l   --listen=addr :  escutar um interface específico (no modo daemon TCP/IP).\n"
++"  -l   --listen=addr :  escutar um interface específico (no modo daemon TCP/"
++"IP).\n"
+ "  -n   --numeric     :  escrever apenas a temperatura.\n"
+ "  -p   --port=#      :  port para escutar (no modo daemon TCP/IP).\n"
+-"  -s   --separator=C :  separador a utilizar entre campos (no modo daemon TCP/IP).\n"
+-"  -S   --syslog=s    :  registar a temperatura para o syslog a cada s segundos.\n"
++"  -s   --separator=C :  separador a utilizar entre campos (no modo daemon "
++"TCP/IP).\n"
++"  -S   --syslog=s    :  registar a temperatura para o syslog a cada s "
++"segundos.\n"
+ "  -q   --quiet       :  não verificar se o disco é suportado.\n"
+ "  -v   --version     :  mostrar o número da versão do hddtemp.\n"
+ "  -w   --wake-up     :  acordar o disco se necessário.\n"
+@@ -177,58 +157,93 @@
+ "\n"
+ "Relatar bugs ou novos discos para <hddtemp@guzu.net>.\n"
+ 
+-#: src/hddtemp.c:522
++#: src/hddtemp.c:402
+ #, c-format
+ msgid "hddtemp version %s\n"
+ msgstr "hddtemp versão %s\n"
+ 
+-#: src/hddtemp.c:547
++#: src/hddtemp.c:418
+ #, c-format
+ msgid "ERROR: invalid interval.\n"
+ msgstr "ERRO: intervalo inválido.\n"
+ 
+-#: src/hddtemp.c:547
++#: src/hddtemp.c:438
++#, c-format
+ msgid "Too few arguments: you must specify one drive, at least.\n"
+-msgstr "Número de argumentos insuficiente: tem de especificar pelo menos um disco.\n"
++msgstr ""
++"Número de argumentos insuficiente: tem de especificar pelo menos um disco.\n"
+ 
+-#: src/hddtemp.c:557
++#: src/hddtemp.c:448
++#, c-format
+ msgid "ERROR: can't use --debug and --daemon or --syslog options together.\n"
+-msgstr "ERRO: não pode utilizar em conjunto as opções --debug e --daemon ou --syslog.\n"
++msgstr ""
++"ERRO: não pode utilizar em conjunto as opções --debug e --daemon ou --"
++"syslog.\n"
+ 
+-#: src/hddtemp.c:583
++#: src/hddtemp.c:505
+ #, c-format
+ msgid "ERROR: %s: can't determine bus type (or this bus type is unknown)\n"
+-msgstr "ERRO: %s: não é possível determinar o tipo do bus (ou este tipo de bus é desconhecido)\n"
++msgstr ""
++"ERRO: %s: não é possível determinar o tipo do bus (ou este tipo de bus é "
++"desconhecido)\n"
+ 
+-#: src/ata.c:66 src/scsi.c:68
++#: src/ata.c:66 src/scsi.c:64
+ msgid "unknown"
+ msgstr "desconhecido"
+ 
+-#: src/ata.c:98
++#: src/ata.c:85 src/ata.c:104 src/scsi.c:91
+ #, c-format
+-msgid "field(%d)\t = %d\n"
+-msgstr "campo(%d)\t = %d\n"
+-
+-#: src/ata.c:167
+ msgid "S.M.A.R.T. not available"
+ msgstr "S.M.A.R.T. não está disponível"
+ 
+-#: src/db.c:180
++#: src/db.c:115
++#, c-format
++msgid ""
++"\n"
++"Regexp%s| Value | Description\n"
++"------%s---------------------\n"
++msgstr ""
++"\n"
++"Regexp%s| Valor | Descrição\n"
++"------%s-------------------\n"
++
++#: src/db.c:121
++#, c-format
++msgid "%s%s| %5d | %s\n"
++msgstr "%s%s| %5d | %s\n"
++
++#: src/db.c:236
+ #, c-format
+ msgid "hddtemp: can't open %1$s: %2$s\n"
+ msgstr "hddtemp: não pode abrir %1$s: %2$s\n"
+ 
+-#: src/db.c:194
++#: src/db.c:250
+ #, c-format
+ msgid "ERROR: syntax error at line %1$d in %2$s\n"
+ msgstr "ERRO: erro de sintaxe na linha %1$d em %2$s\n"
+ 
+-#: src/db.c:201
++#: src/db.c:257
+ #, c-format
+ msgid "  ERROR: line exceed %1$d characters in %2$s.\n"
+ msgstr "  ERRO: a linha execedeu %1$d caracteres em %2$s.\n"
+ 
+-#: src/scsi.c:112 src/scsi.c:130
++#: src/scsi.c:111 src/scsi.c:129
+ #, c-format
+ msgid "log sense failed : %s"
+ msgstr "detecção de log falhou: %s"
++
++#~ msgid ""
++#~ "WARNING: Drive %s doesn't appear in the database of supported drives\n"
++#~ "WARNING: But using a common value, it reports something.\n"
++#~ "WARNING: Note that the temperature shown could be wrong.\n"
++#~ "WARNING: See --help, --debug and --drivebase options.\n"
++#~ "WARNING: And don't forget you can add your drive to hddtemp.db\n"
++#~ msgstr ""
++#~ "AVISO: O disco %s não parece estar na base de dados de discos suportados\n"
++#~ "AVISO: Mas ao utilizar um valor usual, relata alguma coisa.\n"
++#~ "AVISO: Note que a temperatura mostrada pode estar errada.\n"
++#~ "AVISO: Veja as opções --help, --debug e --frivebase.\n"
++#~ "AVISO: E não se esqueça de adicionar o seu disco a hddtemp.db\n"
++
++#~ msgid "field(%d)\t = %d\n"
++#~ msgstr "campo(%d)\t = %d\n"
+--- hddtemp-0.3-beta15.orig/po/de.po
++++ hddtemp-0.3-beta15/po/de.po
+@@ -0,0 +1,250 @@
++# German translation of hddtemp.
++# Copyright (C) 2008 Free Software Foundation, Inc.
++# This file is distributed under the same license as the hddtemp package.
++# Vinzenz Vietzke <vinz@v1nz.org>, 2008.
++# ,
++#
++#
++msgid ""
++msgstr ""
++"Project-Id-Version: hddtemp 0.3-beta15-44\n"
++"Report-Msgid-Bugs-To: hddtemp@packages.debian.org\n"
++"POT-Creation-Date: 2006-06-29 16:24+0200\n"
++"PO-Revision-Date: 2011-08-30 16:40+0200\n"
++"Last-Translator: Vinzenz Vietzke <vinz@v1nz.org>\n"
++"Language-Team: <debian-l10n-german@lists.debian.org>\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=UTF-8\n"
++"Content-Transfer-Encoding: 8bit"
++
++#: src/hddtemp.c:156
++#, c-format
++msgid ""
++"\n"
++"================= hddtemp %s ==================\n"
++"Model: %s\n"
++"\n"
++msgstr ""
++"\n"
++"================= hddtemp %s ==================\n"
++"Modell: %s\n"
++"\n"
++
++#: src/hddtemp.c:189
++#, c-format
++msgid ""
++"WARNING: Drive %s doesn't seem to have a temperature sensor.\n"
++"WARNING: This doesn't mean it hasn't got one.\n"
++"WARNING: If you are sure it has one, please contact me (hddtemp@guzu."
++"net).\n"
++"WARNING: See --help, --debug and --drivebase options.\n"
++msgstr ""
++"WARNUNG: Laufwerk %s scheint keinen Temperatur-Sensor zu haben.\n"
++"WARNUNG: Das bedeutet nicht, dass es keinen besitzt.\n"
++"WARNUNG: Falls Sie sicher sind, dass es einen besitzt, kontaktieren Sie "
++"mich bitte (hddtemp@guzu.net).\n"
++"WARNUNG: Siehe Optionen --help, --debug und --drivebase.\n"
++
++#: src/hddtemp.c:197
++#, c-format
++msgid "%s: %s:  no sensor\n"
++msgstr "%s: %s: kein Sensor\n"
++
++#: src/hddtemp.c:211
++#, c-format
++msgid "%s: %s:  %d%sC or %sF\n"
++msgstr "%s: %s:  %d%s°C oder %s°F\n"
++
++#: src/hddtemp.c:235
++#, c-format
++msgid "%s: %s: drive is sleeping\n"
++msgstr "%s: %s: Laufwerk schläft\n"
++
++#: src/hddtemp.c:242
++#, c-format
++msgid "%s: %s:  drive supported, but it doesn't have a temperature sensor.\n"
++msgstr ""
++"%s: %s:  Laufwerk unterstützt, aber es hat keinen Temperatur-Sensor.\n"
++
++#: src/hddtemp.c:246
++#, c-format
++msgid "ERROR: %s: %s: unknown returned status\n"
++msgstr "FEHLER: %s: %s: zurückgegebener Status unbekannt\n"
++
++#: src/hddtemp.c:261
++#, c-format
++msgid ""
++"\n"
++"If one of the field value seems to match the temperature, be sure to read\n"
++"the hddtemp man page before sending a report (section REPORT). Thanks.\n"
++msgstr ""
++"\n"
++"Falls einer der Feldwerte der Temperatur zu entsprechen scheint, stellen "
++"Sie\n"
++"sicher, die hddtemp-Handbuchseite gelesen zu haben, bevor Sie einen "
++"Bericht\n"
++"senden (Abschnitt BERICHT). Danke.\n"
++
++#: src/hddtemp.c:338
++#, c-format
++msgid "ERROR: invalid separator.\n"
++msgstr "FEHLER: ungültiges Trennzeichen.\n"
++
++#: src/hddtemp.c:349
++#, c-format
++msgid "ERROR: invalid port number.\n"
++msgstr "FEHLER: ungültige Portnummer.\n"
++
++#: src/hddtemp.c:371
++#, c-format
++msgid ""
++" Usage: hddtemp [OPTIONS] [TYPE:]DISK1 [[TYPE:]DISK2]...\n"
++"\n"
++"   hddtemp displays the temperature of drives supplied in argument.\n"
++"   Drives must support S.M.A.R.T.\n"
++"\n"
++"  TYPE could be SATA, PATA or SCSI. If omitted hddtemp will try to guess.\n"
++"\n"
++"  -b   --drivebase   :  display database file content that allow hddtemp "
++"to\n"
++"                        recognize supported drives.\n"
++"  -D   --debug       :  display various S.M.A.R.T. fields and their "
++"values.\n"
++"                        Useful to find a value that seems to match the\n"
++"                        temperature and/or to send me a report.\n"
++"                        (done for every drive supplied).\n"
++"  -d   --daemon      :  run hddtemp in TCP/IP daemon mode (port %d by "
++"default.)\n"
++"  -f   --file=FILE   :  specify database file to use.\n"
++"  -F   --foreground  :  don't daemonize, stay in foreground.\n"
++"  -l   --listen=addr :  listen on a specific interface (in TCP/IP daemon "
++"mode).\n"
++"  -n   --numeric     :  print only the temperature.\n"
++"  -p   --port=#      :  port to listen to (in TCP/IP daemon mode).\n"
++"  -s   --separator=C :  separator to use between fields (in TCP/IP daemon "
++"mode).\n"
++"  -S   --syslog=s    :  log temperature to syslog every s seconds.\n"
++"  -u   --unit=[C|F]  :  force output temperature either in Celsius or "
++"Fahrenheit.\n"
++"  -q   --quiet       :  do not check if the drive is supported.\n"
++"  -v   --version     :  display hddtemp version number.\n"
++"  -w   --wake-up     :  wake-up the drive if need.\n"
++"  -4                 :  listen on IPv4 sockets only.\n"
++"  -6                 :  listen on IPv6 sockets only.\n"
++"\n"
++"Report bugs or new drives to <hddtemp@guzu.net>.\n"
++msgstr ""
++" Verwendung: hddtemp [OPTIONEN] [TYP:]LAUFWERK1 [[TYP:]LAUFWERK2]...\n"
++"\n"
++"  hddtemp zeigt die Temperatur der via Argument angegeben Laufwerke.\n"
++"  Laufwerke müssen S.M.A.R.T. unterstützen.\n"
++"\n"
++"  TYP kann SATA, PATA oder SCSI sein. Falls ausgelassen, wird hddtemp \n"
++"  versuchen, diesen zu erraten.\n"
++"\n"
++"  -b   --drivebase   :  Datenbank-Datei-Inhalt anzeigen, der hddtemp "
++"erlaubt\n"
++"                        unterstützte Laufwerke zu erkennen.\n"
++"  -D   --debug       :  verschiedene S.M.A.R.T.-Felder und deren Werte "
++"anzeigen.\n"
++"                       Nützlich, um Werte zu finden, die der Temperatur "
++"entsprechen\n"
++"                       und/oder um mir einen Bericht zu senden.\n"
++"                       (bereits erledigt für jedes bereitgestellte "
++"Laufwerk).\n"
++"  -d   --daemon      :  hddtemp im TCP/IP-Daemon-Modus ausführen "
++"(Standardmäßig Port %d)\n"
++"  -f   --file=DATEI  :  zu verwendende Datenbank-Datei festlegen.\n"
++"  -F   --foreground  :  nicht daemonisieren, im Vordergrund bleiben.\n"
++"  -l   --listen=addr :  auf einer bestimmten Schnittstelle auf Anfragen "
++"warten (im TCP/IP-Daemon-Modus).\n"
++"  -n   --numeric     :  nur die Temperatur ausgeben.\n"
++"  -p   --port=#      :  Port, auf dem auf Anfragen gewartet werden soll "
++"(im TCP/IP-Daemon-Modus).\n"
++"  -s   --separator=C :  Trennzeichen zur Verwendung zwischen Feldern (im "
++"TCP/IP-Daemon-Modus).\n"
++"  -S   --syslog=s    :  Temperatur alle s Sekunden in das syslog "
++"eintragen.\n"
++"  -u   --unit=[C|F]  :  Ausgabe der Temperatur entweder in Celsius oder "
++"Fahrenheit erzwingen.\n"
++"  -q   --quiet       :  nicht prüfen, ob das Laufwerk unterstützt wird.\n"
++"  -v   --version     :  Versionsnummer von hddtemp anzeigen.\n"
++"  -w   --wake-up     :  Laufwerk bei Bedarf aufwecken.\n"
++"  -4                 :  nur auf IPv4-Sockets auf Anfragen warten.\n"
++"  -6                 :  nur auf IPv6-Sockets auf Anfragen warten.\n"
++"\n"
++"Fehler oder neue Laufwerke an <hddtemp@guzu.net> melden.\n"
++
++#: src/hddtemp.c:402
++#, c-format
++msgid "hddtemp version %s\n"
++msgstr "hddtemp Version %s\n"
++
++#: src/hddtemp.c:418
++#, c-format
++msgid "ERROR: invalid interval.\n"
++msgstr "FEHLER: ungültiges Intervall.\n"
++
++#: src/hddtemp.c:438
++#, c-format
++msgid "Too few arguments: you must specify one drive, at least.\n"
++msgstr "Zu wenige Argumente: Sie müssen mindestens ein Laufwerk angeben.\n"
++
++#: src/hddtemp.c:448
++#, c-format
++msgid "ERROR: can't use --debug and --daemon or --syslog options together.\n"
++msgstr ""
++"FEHLER: kann Optionen --debug und --daemon oder --syslog nicht zusammen "
++"verwenden.\n"
++
++#: src/hddtemp.c:505
++#, c-format
++msgid "ERROR: %s: can't determine bus type (or this bus type is unknown)\n"
++msgstr ""
++"FEHLER: %s: kann Bus-Typ nicht ermitteln (oder dieser Bus-Typ ist "
++"unbekannt)\n"
++
++#: src/ata.c:66 src/scsi.c:64
++msgid "unknown"
++msgstr "unbekannt"
++
++#: src/ata.c:85 src/ata.c:104 src/scsi.c:91
++#, c-format
++msgid "S.M.A.R.T. not available"
++msgstr "S.M.A.R.T. nicht verfügbar"
++
++#: src/db.c:115
++#, c-format
++msgid ""
++"\n"
++"Regexp%s| Value | Description\n"
++"------%s---------------------\n"
++msgstr ""
++"\n"
++"Regexp%s| Wert | Beschreibung\n"
++"------%s---------------------\n"
++
++#: src/db.c:121
++#, c-format
++msgid "%s%s| %5d | %s\n"
++msgstr "%s%s| %5d | %s\n"
++
++#: src/db.c:236
++#, c-format
++msgid "hddtemp: can't open %1$s: %2$s\n"
++msgstr "hddtemp: kann %1$s nicht öffnen: %2$s\n"
++
++#: src/db.c:250
++#, c-format
++msgid "ERROR: syntax error at line %1$d in %2$s\n"
++msgstr "FEHLER: Syntaxfehler in Zeile %1$d in %2$s\n"
++
++#: src/db.c:257
++#, c-format
++msgid "  ERROR: line exceed %1$d characters in %2$s.\n"
++msgstr "  FEHLER: Zeile überschreitet %1$d Zeichen in %2$s.\n"
++
++#: src/scsi.c:111 src/scsi.c:129
++#, c-format
++msgid "log sense failed : %s"
++msgstr "Protokoll-Erkennung fehlgeschlagen : %s"
+--- hddtemp-0.3-beta15.orig/po/LINGUAS
++++ hddtemp-0.3-beta15/po/LINGUAS
+@@ -1,2 +1,2 @@
+ # Set of available languages.
+-fr pt ru sv 
++de fr pt ru sv 
+--- hddtemp-0.3-beta15.orig/po/hddtemp.pot
++++ hddtemp-0.3-beta15/po/hddtemp.pot
+@@ -1,35 +1,22 @@
+-
+-# Copyright (C) 2006 Free Software Foundation, Inc.
+-# This file is distributed under the same license as the 'hddtemp' package.
+-# Emmanuel VARAGNAT <hddtemp@guzu.net>, 2006.
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR Free Software Foundation, Inc.
++# This file is distributed under the same license as the PACKAGE package.
++# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+ #
+ #, fuzzy
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+-"Report-Msgid-Bugs-To: hddtemp@guzu.net\n"
+-"POT-Creation-Date: 2005-02-25 22:43+0100\n"
++"Report-Msgid-Bugs-To: \n"
++"POT-Creation-Date: 2006-06-29 16:24+0200\n"
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+-"Last-Translator: Emmanuel Varagnat <hddtemp@guzu.net>\n"
++"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+ "Language-Team: LANGUAGE <LL@li.org>\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=CHARSET\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ 
+-#: src/hddtemp.c:112
+-#, c-format
+-msgid ""
+-"\n"
+-"Regexp%s| Value | Description\n"
+-"------%s---------------------\n"
+-msgstr ""
+-
+-#: src/hddtemp.c:118
+-#, c-format
+-msgid "%s%s| %5d | %s\n"
+-msgstr ""
+-
+-#: src/hddtemp.c:161
++#: src/hddtemp.c:156
+ #, c-format
+ msgid ""
+ "\n"
+@@ -38,7 +25,7 @@
+ "\n"
+ msgstr ""
+ 
+-#: src/hddtemp.c:188
++#: src/hddtemp.c:189
+ #, c-format
+ msgid ""
+ "WARNING: Drive %s doesn't seem to have a temperature sensor.\n"
+@@ -47,67 +34,59 @@
+ "WARNING: See --help, --debug and --drivebase options.\n"
+ msgstr ""
+ 
+-#: src/hddtemp.c:192
+-#, c-format
+-msgid "%s: %s:  no sensor\n"
+-msgstr ""
+-
+ #: src/hddtemp.c:197
+ #, c-format
+-msgid ""
+-"WARNING: Drive %s doesn't appear in the database of supported drives\n"
+-"WARNING: But using a common value, it reports something.\n"
+-"WARNING: Note that the temperature shown could be wrong.\n"
+-"WARNING: See --help, --debug and --drivebase options.\n"
+-"WARNING: And don't forget you can add your drive to hddtemp.db\n"
++msgid "%s: %s:  no sensor\n"
+ msgstr ""
+ 
+-#: src/hddtemp.c:202
++#: src/hddtemp.c:211
+ #, c-format
+ msgid "%s: %s:  %d%sC or %sF\n"
+ msgstr ""
+ 
+-#: src/hddtemp.c:214
++#: src/hddtemp.c:235
+ #, c-format
+ msgid "%s: %s: drive is sleeping\n"
+ msgstr ""
+ 
+-#: src/hddtemp.c:217
++#: src/hddtemp.c:242
+ #, c-format
+-msgid "%s: %s:  known drive, but it doesn't have a temperature sensor.\n"
++msgid "%s: %s:  drive supported, but it doesn't have a temperature sensor.\n"
+ msgstr ""
+ 
+-#: src/hddtemp.c:220
++#: src/hddtemp.c:246
+ #, c-format
+ msgid "ERROR: %s: %s: unknown returned status\n"
+ msgstr ""
+ 
+-#: src/hddtemp.c:235
++#: src/hddtemp.c:261
+ #, c-format
+ msgid ""
+ "\n"
+ "If one of the field value seems to match the temperature, be sure to read\n"
+-"the hddtemp man page before sending me a report (section REPORT). Thanks.\n"
++"the hddtemp man page before sending a report (section REPORT). Thanks.\n"
+ msgstr ""
+ 
+-#: src/hddtemp.c:308
++#: src/hddtemp.c:338
+ #, c-format
+ msgid "ERROR: invalid separator.\n"
+ msgstr ""
+ 
+-#: src/hddtemp.c:319
++#: src/hddtemp.c:349
+ #, c-format
+ msgid "ERROR: invalid port number.\n"
+ msgstr ""
+ 
+-#: src/hddtemp.c:329
++#: src/hddtemp.c:371
+ #, c-format
+ msgid ""
+-" Usage: hddtemp [OPTIONS] DISK1 [DISK2]...\n"
++" Usage: hddtemp [OPTIONS] [TYPE:]DISK1 [[TYPE:]DISK2]...\n"
+ "\n"
+ "   hddtemp displays the temperature of drives supplied in argument.\n"
+ "   Drives must support S.M.A.R.T.\n"
+ "\n"
++"  TYPE could be SATA, PATA or SCSI. If omitted hddtemp will try to guess.\n"
++"\n"
+ "  -b   --drivebase   :  display database file content that allow hddtemp to\n"
+ "                        recognize supported drives.\n"
+ "  -D   --debug       :  display various S.M.A.R.T. fields and their values.\n"
+@@ -117,6 +96,7 @@
+ "  -d   --daemon      :  run hddtemp in TCP/IP daemon mode (port %d by "
+ "default.)\n"
+ "  -f   --file=FILE   :  specify database file to use.\n"
++"  -F   --foreground  :  don't daemonize, stay in foreground.\n"
+ "  -l   --listen=addr :  listen on a specific interface (in TCP/IP daemon "
+ "mode).\n"
+ "  -n   --numeric     :  print only the temperature.\n"
+@@ -124,6 +104,8 @@
+ "  -s   --separator=C :  separator to use between fields (in TCP/IP daemon "
+ "mode).\n"
+ "  -S   --syslog=s    :  log temperature to syslog every s seconds.\n"
++"  -u   --unit=[C|F]  :  force output temperature either in Celsius or "
++"Fahrenheit.\n"
+ "  -q   --quiet       :  do not check if the drive is supported.\n"
+ "  -v   --version     :  display hddtemp version number.\n"
+ "  -w   --wake-up     :  wake-up the drive if need.\n"
+@@ -133,58 +115,69 @@
+ "Report bugs or new drives to <hddtemp@guzu.net>.\n"
+ msgstr ""
+ 
+-#: src/hddtemp.c:522
++#: src/hddtemp.c:402
+ #, c-format
+ msgid "hddtemp version %s\n"
+ msgstr ""
+ 
+-#: src/hddtemp.c:547
++#: src/hddtemp.c:418
+ #, c-format
+ msgid "ERROR: invalid interval.\n"
+ msgstr ""
+ 
+-#: src/hddtemp.c:547
++#: src/hddtemp.c:438
++#, c-format
+ msgid "Too few arguments: you must specify one drive, at least.\n"
+ msgstr ""
+ 
+-#: src/hddtemp.c:557
++#: src/hddtemp.c:448
++#, c-format
+ msgid "ERROR: can't use --debug and --daemon or --syslog options together.\n"
+ msgstr ""
+ 
+-#: src/hddtemp.c:583
++#: src/hddtemp.c:505
+ #, c-format
+ msgid "ERROR: %s: can't determine bus type (or this bus type is unknown)\n"
+ msgstr ""
+ 
+-#: src/ata.c:66 src/scsi.c:68
++#: src/ata.c:66 src/scsi.c:64
+ msgid "unknown"
+ msgstr ""
+ 
+-#: src/ata.c:98
++#: src/ata.c:85 src/ata.c:104 src/scsi.c:91
+ #, c-format
+-msgid "field(%d)\t = %d\n"
++msgid "S.M.A.R.T. not available"
+ msgstr ""
+ 
+-#: src/ata.c:167
+-msgid "S.M.A.R.T. not available"
++#: src/db.c:115
++#, c-format
++msgid ""
++"\n"
++"Regexp%s| Value | Description\n"
++"------%s---------------------\n"
++msgstr ""
++
++#: src/db.c:121
++#, c-format
++msgid "%s%s| %5d | %s\n"
+ msgstr ""
+ 
+-#: src/db.c:180
++#: src/db.c:236
+ #, c-format
+ msgid "hddtemp: can't open %1$s: %2$s\n"
+ msgstr ""
+ 
+-#: src/db.c:194
++#: src/db.c:250
+ #, c-format
+ msgid "ERROR: syntax error at line %1$d in %2$s\n"
+ msgstr ""
+ 
+-#: src/db.c:201
++#: src/db.c:257
+ #, c-format
+ msgid "  ERROR: line exceed %1$d characters in %2$s.\n"
+ msgstr ""
+ 
+-#: src/scsi.c:112 src/scsi.c:130
++#: src/scsi.c:111 src/scsi.c:129
+ #, c-format
+ msgid "log sense failed : %s"
+ msgstr ""
+--- hddtemp-0.3-beta15.orig/src/sata.c
++++ hddtemp-0.3-beta15/src/sata.c
+@@ -118,11 +118,22 @@
+   int              i;
+   u16 *            p;
+ 
+-  if(dsk->db_entry && dsk->db_entry->attribute_id == 0) {
++  if(dsk->db_entry->attribute_id == 0) {
+     close(dsk->fd);
+     dsk->fd = -1;
+     return GETTEMP_NOSENSOR;
+   }
++
++  switch(ata_get_powermode(dsk->fd)) {
++  case PWM_STANDBY:
++  case PWM_SLEEPING:
++    if (!wakeup)
++      return GETTEMP_DRIVE_SLEEP;
++  case PWM_UNKNOWN:
++  case PWM_ACTIVE: /* active or idle */
++  default:
++    break;
++  }
+   
+   /* get SMART values */
+   if(sata_enable_smart(dsk->fd) != 0) {
+@@ -154,24 +165,15 @@
+   }
+ 
+   /* temperature */
+-  if(dsk->db_entry && dsk->db_entry->attribute_id > 0)
+-    field = sata_search_temperature(values, dsk->db_entry->attribute_id);
+-  else
+-    field = sata_search_temperature(values, DEFAULT_ATTRIBUTE_ID);
++  field = sata_search_temperature(values, dsk->db_entry->attribute_id);
+ 
+   if(field)
+     dsk->value = *(field+3);
+ 
+   if(dsk->db_entry && dsk->value != -1)
+     return GETTEMP_KNOWN;
+-  else {
+-    if(dsk->value != -1) {
+-      return GETTEMP_GUESS;
+-    }
+-    else {
+-      return GETTEMP_UNKNOWN;
+-    }
+-  }
++  else
++    return GETTEMP_UNKNOWN;
+ 
+   /* never reached */
+ }
+--- hddtemp-0.3-beta15.orig/src/satacmds.c
++++ hddtemp-0.3-beta15/src/satacmds.c
+@@ -39,7 +39,7 @@
+ #include <sys/ioctl.h>
+ #include <scsi/sg.h>
+ #include <linux/hdreg.h>
+-#include <netinet/in.h>
++#include <byteswap.h>
+ 
+ // Application specific includes
+ #include "satacmds.h"
+@@ -80,8 +80,8 @@
+ 
+   ret = scsi_SG_IO(device, cdb, sizeof(cdb), buffer, cmd[3] * 512, sense, sizeof(sense), dxfer_direction);
+  
+-  /* Verify SATA magics */
+-  if (sense[0] != 0x72 || sense[7] != 0x0e || sense[9] != 0x0e || sense[10] != 0x00)
++  /* Verify SATA magic */
++  if (sense[0] != 0x72)
+     return 1;		  
+   else 
+     return ret;
+@@ -95,10 +95,10 @@
+   p = s;
+   end = &s[bytecount & ~1]; /* bytecount must be even */
+ 
+-  /* convert from big-endian to host byte order */
++  /* convert from big-endian to string order */
+   for (p = end ; p != s;) {
+     unsigned short *pp = (unsigned short *) (p -= 2);
+-    *pp = ntohs(*pp);
++    *pp = bswap_16(*pp);
+   }
+ 
+   /* strip leading blanks */
+--- hddtemp-0.3-beta15.orig/src/backtrace.c
++++ hddtemp-0.3-beta15/src/backtrace.c
+@@ -16,9 +16,10 @@
+  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+  */
+ 
++#define _GNU_SOURCE
+ #include <features.h>
+ 
+-#if defined(__i386__) && defined(__GLIBC__)
++#if (defined(__i386__) || defined(__x86_64__)) && defined(__GLIBC__)
+ 
+ #include <execinfo.h>
+ 
+@@ -31,8 +32,12 @@
+ #include <bits/sigcontext.h>
+ #include <sys/param.h>
+ 
+-#define __USE_GNU
+ #include <ucontext.h>
++#if defined(__i386__)
++#  define REG_IP REG_EIP
++#elif defined(__x86_64__)
++#  define REG_IP REG_RIP
++#endif
+ 
+ #define MAX_BTSIZE 64
+ 
+@@ -42,7 +47,6 @@
+   static char **messages = NULL;
+   static size_t btsize = 0;
+   static size_t i;
+-  static unsigned int old_eip, old_ebp;
+   static char *strerr = "???";
+   static FILE *fstrm;
+ 
+@@ -61,10 +65,10 @@
+       SIC_CASE(SEGV_MAPERR);
+       SIC_CASE(SEGV_ACCERR);
+     }
+-    fprintf(fstrm, "=== SEGFAULT (%s) : invalid access to %p, in 0x%08x\n",
++    fprintf(fstrm, "=== SEGFAULT (%s) : invalid access to %p, in %p\n",
+ 	    strerr,
+ 	    ist->si_addr,
+-	    puc->uc_mcontext.gregs[REG_EIP]);
++	    (void*)puc->uc_mcontext.gregs[REG_IP]);
+     break;
+   case SIGILL:
+     switch(ist->si_code) {
+@@ -77,10 +81,10 @@
+       SIC_CASE(ILL_COPROC);
+       SIC_CASE(ILL_BADSTK);
+     }
+-    fprintf(fstrm, "=== ILLEGAL INSTR (%s) : invalid access to %p, in 0x%08x\n",
++    fprintf(fstrm, "=== ILLEGAL INSTR (%s) : invalid access to %p, in %p\n",
+ 	    strerr,
+ 	    ist->si_addr,
+-	    puc->uc_mcontext.gregs[REG_EIP]);
++	    (void*)puc->uc_mcontext.gregs[REG_IP]);
+     break;
+   case SIGBUS:
+     switch(ist->si_code) {
+@@ -88,10 +92,10 @@
+       SIC_CASE(BUS_ADRERR);
+       SIC_CASE(BUS_OBJERR);
+     }
+-    fprintf(fstrm, "=== BUS ERROR (%p) : invalid access to %p, in 0x%08x\n",
++    fprintf(fstrm, "=== BUS ERROR (%p) : invalid access to %p, in %p\n",
+ 	    strerr,
+ 	    ist->si_addr,
+-	    puc->uc_mcontext.gregs[REG_EIP]);
++	    (void*)puc->uc_mcontext.gregs[REG_IP]);
+     break;
+   }
+   fflush(fstrm);
+@@ -101,7 +105,7 @@
+   /*
+     old_eip = *(unsigned int*)((void*)&n-4);
+     old_ebp = *(unsigned int*)((void*)&n-8);
+-    *(unsigned int*)((void*)&n-4) = puc->uc_mcontext.gregs[REG_EIP];
++    *(unsigned int*)((void*)&n-4) = puc->uc_mcontext.gregs[REG_IP];
+     *(unsigned int*)((void*)&n-8) = puc->uc_mcontext.gregs[REG_EBP];    
+     
+     btsize = backtrace(btinfo, MAX_BTSIZE);
+@@ -111,14 +115,14 @@
+   */
+   
+   btsize = backtrace(btinfo, MAX_BTSIZE);
+-  btinfo[1] = (void*) puc->uc_mcontext.gregs[REG_EIP];
++  btinfo[1] = (void*) puc->uc_mcontext.gregs[REG_IP];
+ 
+   messages = backtrace_symbols(btinfo, btsize);
+ 
+   for(i = 1;
+       i < btsize;
+       i++)
+-    fprintf(fstrm, "[%d] #%d: %s\n", getpid(), i, messages[i]);
++    fprintf(fstrm, "[%d] #%zu: %s\n", getpid(), i, messages[i]);
+   fflush(fstrm);
+   fclose(fstrm);
+ 
+--- hddtemp-0.3-beta15.orig/src/daemon.c
++++ hddtemp-0.3-beta15/src/daemon.c
+@@ -163,19 +163,16 @@
+ 
+     switch(dsk->ret) {
+     case GETTEMP_NOT_APPLICABLE:
+-      n = snprintf(msg, sizeof(msg), "%s%c%s%c%s%c%c",
++      n = snprintf(msg, sizeof(msg), "%s%c%s%cNA%c*",
+                    dsk->drive, separator,
+                    dsk->model, separator,
+-                   "NA",       separator,
+-                   '*');
++                   separator);
+       break;
+-    case GETTEMP_GUESS:
+     case GETTEMP_UNKNOWN:
+-      n = snprintf(msg, sizeof(msg), "%s%c%s%c%s%c%c",
++      n = snprintf(msg, sizeof(msg), "%s%c%s%cUNK%c*",
+                    dsk->drive, separator,
+-                   dsk->model, separator,
+-                   "UNK",     separator,
+-                   '*');
++                   dsk->model, separator, 
++		   separator);
+       break;
+     case GETTEMP_KNOWN:
+       n = snprintf(msg, sizeof(msg), "%s%c%s%c%d%c%c",
+@@ -185,26 +182,23 @@
+                    get_unit(dsk));
+       break;
+     case GETTEMP_NOSENSOR:
+-      n = snprintf(msg, sizeof(msg), "%s%c%s%c%s%c%c",
++      n = snprintf(msg, sizeof(msg), "%s%c%s%cNOS%c*",
+                    dsk->drive, separator,
+                    dsk->model, separator,
+-                   "NOS",      separator,
+-                   '*');
++                   separator);
+       break;
+     case GETTEMP_DRIVE_SLEEP:
+-      n = snprintf(msg, sizeof(msg), "%s%c%s%c%s%c%c",
++      n = snprintf(msg, sizeof(msg), "%s%c%s%cSLP%c*",
+                    dsk->drive, separator,
+                    dsk->model, separator,
+-                   "SLP",      separator,
+-                   '*');
++                   separator);
+       break;
+     case GETTEMP_ERROR:
+     default:
+-      n = snprintf(msg, sizeof(msg), "%s%c%s%c%s%c%c",
++      n = snprintf(msg, sizeof(msg), "%s%c%s%cERR%c*",
+                    dsk->drive,                        separator,
+                    (dsk->model) ? dsk->model : "???", separator,
+-                   "ERR",                             separator,
+-                   '*');
++                   separator);
+       break;
+     }
+     write(cfd,&separator, 1);
+@@ -222,14 +216,11 @@
+   for(dsk = ldisks; dsk; dsk = dsk->next) {
+     switch(dsk->ret) {
+     case GETTEMP_KNOWN:
+-    case GETTEMP_GUESS:
+-      value_to_unit(dsk);
+-
+       syslog(LOG_INFO, "%s: %s: %d %c", 
+              dsk->drive,
+ 	     dsk->model,
+-	     dsk->value,
+-	     dsk->db_entry->unit);
++	     value_to_unit(dsk),
++	     get_unit(dsk));
+       break;
+     case GETTEMP_DRIVE_SLEEP:
+       syslog(LOG_WARNING, _("%s: %s: drive is sleeping"), 
+@@ -270,28 +261,30 @@
+   fd_set             deffds;
+   time_t             next_time;
+ 
+-  switch(fork()) {
+-  case -1:
+-    perror("fork");
+-    exit(2);
+-    break;
+-  case 0:
+-    break;
+-  default:
+-    exit(0);
+-  }
+-  
+-  setsid();
+-  
+-  switch(fork()) {
+-  case -1:
+-    perror("fork");
+-    exit(2);
+-    break;
+-  case 0:
+-    break;
+-  default:
+-    exit(0);
++if (!foreground) {
++    switch(fork()) {
++    case -1:
++      perror("fork");
++      exit(2);
++      break;
++    case 0:
++      break;
++    default:
++      exit(0);
++    }
++
++    setsid();
++
++    switch(fork()) {
++    case -1:
++      perror("fork");
++      exit(2);
++      break;
++    case 0:
++      break;
++    default:
++      exit(0);
++    }
+   }
+   chdir("/");
+   umask(0);
+--- hddtemp-0.3-beta15.orig/src/hddtemp.c
++++ hddtemp-0.3-beta15/src/hddtemp.c
+@@ -75,7 +75,7 @@
+ char               separator = SEPARATOR;
+ 
+ struct bustype *   bus[BUS_TYPE_MAX];
+-int                tcp_daemon, debug, quiet, numeric, wakeup, af_hint;
++int                tcp_daemon, debug, quiet, numeric, wakeup, foreground, af_hint;
+ 
+ static enum { DEFAULT, CELSIUS, FAHRENHEIT } unit;
+ 
+@@ -194,23 +194,7 @@
+     if (numeric && quiet)
+       printf("0\n");      
+     else
+-      printf(_("%s: %s:  no sensor\n"), dsk->drive, dsk->model);
+-
+-    break;
+-  case GETTEMP_GUESS:
+-
+-    if(!quiet)
+-      fprintf(stderr,
+-	      _("WARNING: Drive %s doesn't appear in the database of supported drives\n"
+-		"WARNING: But using a common value, it reports something.\n"
+-		"WARNING: Note that the temperature shown could be wrong.\n"
+-		"WARNING: See --help, --debug and --drivebase options.\n"
+-		"WARNING: And don't forget you can add your drive to hddtemp.db\n"), dsk->drive);
+-
+-    if (! numeric)
+-      printf(_("%s: %s:  %d%sC or %sF\n"), dsk->drive, dsk->model, dsk->value, degree, degree);
+-    else
+-      printf("%d\n", value_to_unit(dsk));
++      fprintf(stderr, _("%s: %s:  no sensor\n"), dsk->drive, dsk->model);
+ 
+     break;
+   case GETTEMP_KNOWN:
+@@ -232,14 +216,14 @@
+     if (numeric && quiet)
+       printf("0\n");      
+     else
+-      printf(_("%s: %s: drive is sleeping\n"), dsk->drive, dsk->model);
++      fprintf(stderr, _("%s: %s: drive is sleeping\n"), dsk->drive, dsk->model);
+ 
+     break;
+   case GETTEMP_NOSENSOR:
+     if (numeric && quiet)
+       printf("0\n");      
+     else
+-      printf(_("%s: %s:  drive supported, but it doesn't have a temperature sensor.\n"), dsk->drive, dsk->model);
++      fprintf(stderr, _("%s: %s:  drive supported, but it doesn't have a temperature sensor.\n"), dsk->drive, dsk->model);
+       
+     break;
+   default:
+@@ -268,8 +252,9 @@
+ 
+ int main(int argc, char* argv[]) {
+   int           i, c, lindex = 0, db_loaded = 0;
++  int 		ret = 0;
+   int           show_db;
+-  struct disk * ldisks;
++  struct        disk * ldisks;
+ 
+   backtrace_sigsegv();
+   backtrace_sigill();
+@@ -279,7 +264,7 @@
+   bindtextdomain (PACKAGE, LOCALEDIR);
+   textdomain (PACKAGE);
+   
+-  show_db = debug = numeric = quiet = wakeup = af_hint = syslog_interval = 0;
++  show_db = debug = numeric = quiet = wakeup = af_hint = syslog_interval = foreground = 0;
+   unit = DEFAULT;
+   portnum = PORT_NUMBER;
+   listen_addr = NULL;
+@@ -294,6 +279,7 @@
+       {"drivebase",  0, NULL, 'b'},
+       {"debug",      0, NULL, 'D'},
+       {"file",       1, NULL, 'f'},
++      {"foreground", 0, NULL, 'F'},
+       {"listen",     1, NULL, 'l'},
+       {"version",    0, NULL, 'v'},
+       {"port",       1, NULL, 'p'},
+@@ -305,7 +291,7 @@
+       {0, 0, 0, 0}
+     };
+  
+-    c = getopt_long (argc, argv, "bDdf:l:hp:qs:u:vnw46S:", long_options, &lindex);
++    c = getopt_long (argc, argv, "bDdf:l:hp:qs:u:vnw46FS:", long_options, &lindex);
+     if (c == -1)
+       break;
+     
+@@ -382,12 +368,13 @@
+ 		 "                        (done for every drive supplied).\n"
+ 		 "  -d   --daemon      :  run hddtemp in TCP/IP daemon mode (port %d by default.)\n"
+ 		 "  -f   --file=FILE   :  specify database file to use.\n"
++		 "  -F   --foreground  :  don't daemonize, stay in foreground.\n"
+ 		 "  -l   --listen=addr :  listen on a specific interface (in TCP/IP daemon mode).\n"
+                  "  -n   --numeric     :  print only the temperature.\n"
+ 		 "  -p   --port=#      :  port to listen to (in TCP/IP daemon mode).\n"
+ 		 "  -s   --separator=C :  separator to use between fields (in TCP/IP daemon mode).\n"
+ 		 "  -S   --syslog=s    :  log temperature to syslog every s seconds.\n"
+-                 "  -u   --unit=[C|F]  :  force output temperature either in Celius or Fahrenheit.\n"
++                 "  -u   --unit=[C|F]  :  force output temperature either in Celsius or Fahrenheit.\n"
+ 		 "  -q   --quiet       :  do not check if the drive is supported.\n"
+ 		 "  -v   --version     :  display hddtemp version number.\n"
+ 		 "  -w   --wake-up     :  wake-up the drive if need.\n"
+@@ -418,6 +405,9 @@
+ 	  }
+         }
+ 	break;
++      case 'F':
++        foreground = 1;
++	break;
+       default:
+ 	exit(1);
+       }
+@@ -489,6 +479,7 @@
+     if( (dsk->fd = open(dsk->drive, O_RDONLY | O_NONBLOCK)) < 0) {
+       snprintf(dsk->errormsg, MAX_ERRORMSG_SIZE, "open: %s\n", strerror(errno));
+       dsk->type = ERROR;
++      ret = 1;
+       continue;
+     }
+ 
+@@ -501,6 +492,7 @@
+ 
+       ldisks = dsk->next;
+       free(dsk);
++      ret = 1;
+       continue;
+     }
+ 
+@@ -514,11 +506,17 @@
+ 	db_loaded = 1;
+       }      
+ 
++      dsk->db_entry = (struct harddrive_entry *)malloc(sizeof(struct harddrive_entry));
+       dbe = is_a_supported_drive(dsk->model);
+-      if(dbe) {
+-	dsk->db_entry = (struct harddrive_entry *)malloc(sizeof(struct harddrive_entry));
++      if(dbe)
+ 	memcpy(dsk->db_entry, dbe, sizeof(struct harddrive_entry));
+-      }	
++      else {
++        dsk->db_entry->regexp       = "";
++        dsk->db_entry->description  = "";
++        dsk->db_entry->attribute_id = DEFAULT_ATTRIBUTE_ID;
++        dsk->db_entry->unit         = 'C';
++        dsk->db_entry->next         = NULL;
++      }
+     }
+   }
+ 
+@@ -530,5 +528,5 @@
+     do_direct_mode(ldisks);
+   }
+ 
+-  return 0;
++  return ret;
+ }
+--- hddtemp-0.3-beta15.orig/src/ata.c
++++ hddtemp-0.3-beta15/src/ata.c
+@@ -75,7 +75,7 @@
+   int              i;
+   u16 *            p;
+ 
+-  if(dsk->db_entry && dsk->db_entry->attribute_id == 0) {
++  if(dsk->db_entry->attribute_id == 0) {
+     close(dsk->fd);
+     dsk->fd = -1;
+     return GETTEMP_NOSENSOR;
+@@ -140,24 +140,15 @@
+   */
+ 
+   /* temperature */
+-  if(dsk->db_entry && dsk->db_entry->attribute_id > 0)
+-    field = ata_search_temperature(values, dsk->db_entry->attribute_id);
+-  else
+-    field = ata_search_temperature(values, DEFAULT_ATTRIBUTE_ID);
++  field = ata_search_temperature(values, dsk->db_entry->attribute_id);
+ 
+   if(field)
+     dsk->value = *(field+3);
+ 
+-  if(dsk->db_entry && dsk->value != -1)
++  if(dsk->value != -1)
+     return GETTEMP_KNOWN;
+-  else {
+-    if(dsk->value != -1) {
+-      return GETTEMP_GUESS;
+-    }
+-    else {
+-      return GETTEMP_UNKNOWN;
+-    }
+-  }
++  else
++    return GETTEMP_UNKNOWN;
+ 
+   /* never reached */
+ }
+--- hddtemp-0.3-beta15.orig/src/hddtemp.h
++++ hddtemp-0.3-beta15/src/hddtemp.h
+@@ -39,8 +39,6 @@
+   GETTEMP_ERROR,            /* Error */
+   GETTEMP_NOT_APPLICABLE,   /* */
+   GETTEMP_UNKNOWN,          /* Drive is not in database */
+-  GETTEMP_GUESS,            /* Not in database, but something was guessed, user must
+-			       check that the temperature returned is correct */
+   GETTEMP_KNOWN,            /* Drive appear in database */
+   GETTEMP_NOSENSOR,         /* Drive appear in database but is known to have no sensor */
+   GETTEMP_DRIVE_SLEEP       /* Drive is sleeping */
+@@ -78,7 +76,7 @@
+ 
+ extern struct bustype *   bus[BUS_TYPE_MAX];
+ extern char               errormsg[MAX_ERRORMSG_SIZE];
+-extern int                tcp_daemon, debug, quiet, wakeup, af_hint;
++extern int                tcp_daemon, debug, quiet, wakeup, af_hint, foreground;
+ extern char               separator;
+ extern long               portnum, syslog_interval;
+ extern char *             listen_addr;
+--- hddtemp-0.3-beta15.orig/src/scsicmds.c
++++ hddtemp-0.3-beta15/src/scsicmds.c
+@@ -147,6 +147,7 @@
+     return 1;
+   else {
+     scsi_fixstring(buffer + 8, 24);
++    buffer[32] = 0;
+     return 0;
+   }
+ }
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/init b/import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/init
new file mode 100644
index 0000000..0df8f67
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp/init
@@ -0,0 +1,100 @@
+#!/bin/sh
+#
+# skeleton        example file to build /etc/init.d/ scripts.
+#                This file should be used to construct scripts for /etc/init.d.
+#
+#                Written by Miquel van Smoorenburg <miquels@cistron.nl>.
+#                Modified for Debian GNU/Linux
+#                by Ian Murdock <imurdock@gnu.ai.mit.edu>.
+#
+# Version:        @(#)skeleton  1.8  03-Mar-1998  miquels@cistron.nl
+#
+
+### BEGIN INIT INFO
+# Provides:          hddtemp
+# Required-Start:    $remote_fs $syslog $network
+# Required-Stop:     $remote_fs $syslog $network
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+# Short-Description: disk temperature monitoring daemon
+# Description:       hddtemp is a disk temperature monitoring daemon
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+NAME=hddtemp
+DAEMON=/usr/sbin/$NAME
+DESC="disk temperature monitoring daemon"
+
+DISKS="/dev/hd[a-z] /dev/hd[a-z][a-z]"
+DISKS="$DISKS /dev/sd[a-z] /dev/sd[a-z][a-z]"
+DISKS="$DISKS /dev/sr[a-z] /dev/sr[a-z][a-z]"
+INTERFACE="0.0.0.0"
+PORT="7634"
+SEPARATOR="|"
+RUN_SYSLOG="0"
+
+# Reads config file (will override defaults above)
+[ -r /etc/default/hddtemp ] && . /etc/default/hddtemp
+
+if [ -n "$RUN_SYSLOG" ] && [ "$RUN_SYSLOG" != "0" ] ; then
+  SYSLOG_ARG="-S $RUN_SYSLOG"
+fi
+
+if [ "$RUN_DAEMON" = "true" ] || [ "$RUN_DAEMON" = "yes" ] ; then
+  DAEMON_ARG="-d -l $INTERFACE -p $PORT -s $SEPARATOR"
+fi
+
+[ -x "$DAEMON" ] || exit 0
+
+. /lib/lsb/init-functions
+
+case "$1" in
+  start)
+    # master switch
+    if [ -n "$DAEMON_ARG" ] || [ -n "$SYSLOG_ARG" ] ; then
+      log_daemon_msg "Starting $DESC" "$NAME:"
+      CDROMS_LIST=$(sed -ne 's/^drive name:\t\+\(.*\)$/ \/dev\/\1/p' /proc/sys/dev/cdrom/info 2>/dev/null) || :
+      CDROMS_LIST="$CDROMS_LIST $(grep -sl '^ide-scsi ' /proc/ide/hd*/driver | awk -F / '{ print "/dev/"$4 }')"
+      for disk in $DISKS ; do
+        echo $CDROMS_LIST | grep -wq $disk && continue
+        echo $DISKS_NOPROBE | grep -wq $disk && continue
+        if $DAEMON -wn $OPTIONS $disk 2>/dev/null | grep -q '^[0-9]\+$' ; then
+          DISKS_LIST="$DISKS_LIST $disk";
+        fi
+      done
+      if [ -n "$DISKS_LIST" ] || [ -n "$DISKS_NOPROBE" ] ; then
+        start-stop-daemon --start --quiet --exec $DAEMON -- $DAEMON_ARG $SYSLOG_ARG $OPTIONS $DISKS_NOPROBE $DISKS_LIST
+        ret=$?
+        log_progress_msg "$DISKS_NOPROBE$DISKS_LIST"
+        log_end_msg $ret
+      else
+        log_progress_msg "no disks with monitoring capability were found."
+        log_end_msg 0
+      fi
+    fi
+    ;;
+  stop)
+    # master switch
+    if [ "$RUN_DAEMON" = "true" ] || [ "$RUN_DAEMON" = "yes" ] || [ "$RUN_SYSLOG" != "0" ] ; then
+      log_daemon_msg "Stopping $DESC" "$NAME"
+      start-stop-daemon --stop --oknodo --exec $DAEMON --retry 30
+      log_end_msg $?
+    fi
+    ;;
+  force-reload|reload)
+    exit 3
+    ;;
+  restart)
+    $0 stop && $0 start
+    ;;
+  status)
+    status_of_proc $DAEMON $NAME
+    exit $?
+    ;;
+  *)
+    echo "Usage: /etc/init.d/$NAME {start|stop|restart|status}" >&2
+    exit 1
+    ;;
+esac
+
+exit 0
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp_0.3-beta15.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp_0.3-beta15.bb
new file mode 100644
index 0000000..601b7b1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/hddtemp/hddtemp_0.3-beta15.bb
@@ -0,0 +1,32 @@
+SUMMARY = "Hard disk temperature monitor daemon"
+SECTION = "console/network"
+LICENSE = "GPLv2+"
+
+PR = "r1"
+
+SRC_URI = "${SAVANNAH_NONGNU_MIRROR}/hddtemp/hddtemp-0.3-beta15.tar.bz2 \
+           file://hddtemp-no-nls-support.patch \
+           file://hddtemp_0.3-beta15-52.diff \
+           file://hddtemp-0.3-beta15-autodetect-717479.patch \
+           file://hddtemp.db \
+           file://init \
+"
+
+SRC_URI[md5sum] = "8b829339e1ae9df701684ec239021bb8"
+SRC_URI[sha256sum] = "618541584054093d53be8a2d9e81c97174f30f00af91cb8700a97e442d79ef5b"
+
+LIC_FILES_CHKSUM = "file://GPL-2;md5=eb723b61539feef013de476e68b5c50a"
+
+inherit autotools gettext update-rc.d
+
+FILES_${PN} += "/usr/share/misc/hddtemp.db"
+
+do_install_append() {
+    install -d ${D}/usr/share/misc/
+    install -m 0644 ${WORKDIR}/hddtemp.db ${D}/usr/share/misc/hddtemp.db
+    install -d ${D}${sysconfdir}/init.d
+    install -m 0644 ${WORKDIR}/init ${D}${sysconfdir}/init.d/hddtemp
+}
+
+INITSCRIPT_NAME = "hddtemp"
+INITSCRIPT_PARAMS = "start 99 2 3 4 5 . stop 20 0 1 6 ."
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/hidapi/hidapi_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/hidapi/hidapi_git.bb
new file mode 100644
index 0000000..a34797f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/hidapi/hidapi_git.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Multi-platform library to interface with USB and Bluetooth HID-Class devices"
+AUTHOR = "Alan Ott"
+HOMEPAGE = "http://www.signal11.us/oss/hidapi/"
+SECTION = "libs"
+LICENSE = "BSD-3-Clause | GPLv3"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=7c3949a631240cb6c31c50f3eb696077"
+DEPENDS = "libusb udev"
+PV = "0.7.99+0.8.0-rc1+git${SRCPV}"
+
+SRCREV = "d17db57b9d4354752e0af42f5f33007a42ef2906"
+SRC_URI = "git://github.com/signal11/hidapi.git"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/htop/htop_1.0.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/htop/htop_1.0.3.bb
new file mode 100644
index 0000000..4e445c8
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/htop/htop_1.0.3.bb
@@ -0,0 +1,22 @@
+SUMMARY = "htop process monitor"
+HOMEPAGE = "http://htop.sf.net"
+SECTION = "console/utils"
+LICENSE = "GPLv2"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=c312653532e8e669f30e5ec8bdc23be3"
+
+DEPENDS = "ncurses"
+RDEPENDS_${PN} = "ncurses-terminfo"
+
+SRC_URI = "http://hisham.hm/htop/releases/${PV}/htop-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "e768b9b55c033d9c1dffda72db3a6ac7"
+SRC_URI[sha256sum] = "055c57927f75847fdc222b5258b079a9542811a9dcf5421c615c7e17f55d1829"
+
+LDFLAGS_append_libc-uclibc = " -lubacktrace"
+
+do_configure_prepend () {
+	rm -rf ${S}/config.h
+}
+
+inherit autotools
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/hunspell/hunspell_1.3.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/hunspell/hunspell_1.3.3.bb
new file mode 100644
index 0000000..9e6f774
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/hunspell/hunspell_1.3.3.bb
@@ -0,0 +1,18 @@
+SUMMARY = "A spell checker and morphological analyzer library"
+HOMEPAGE = "http://hunspell.sourceforge.net/"
+LICENSE = "LGPLv2.1 | GPLv2 | MPLv1.1"
+LIC_FILES_CHKSUM = " \
+    file://COPYING;md5=ed3a37b3ba6d6be3e08ab45987cf1b88 \
+    file://COPYING.LGPL;md5=d8045f3b8f929c1cb29a1e3fd737b499 \
+    file://COPYING.MPL;md5=bfe1f75d606912a4111c90743d6c7325 \
+"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/Hunspell/${PV}/${BPN}-${PV}.tar.gz"
+SRC_URI[md5sum] = "4967da60b23413604c9e563beacc63b4"
+SRC_URI[sha256sum] = "a7b2c0de0e2ce17426821dc1ac8eb115029959b3ada9d80a81739fa19373246c"
+
+inherit autotools pkgconfig gettext
+
+RDEPENDS_${PN} = "perl"
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_0.288.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_0.288.bb
new file mode 100644
index 0000000..67199e9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_0.288.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "Hardware identification and configuration data"
+HOMEPAGE = "http://git.fedorahosted.org/git/hwdata.git"
+SECTION = "System/Base"
+
+LICENSE = "GPL-2.0+"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1556547711e8246992b999edd9445a57"
+SRC_URI = "https://git.fedorahosted.org/cgit/${BPN}.git/snapshot/${BP}.tar.gz"
+
+SRC_URI[md5sum] = "f3fa1c5edb66ce5b376d95e772b2d303"
+SRC_URI[sha256sum] = "56fc26275b102e538fcfcf9c1093a09f476a1ea8d4e0c733d3c578442923693d"
+
+do_configure() {
+    ${S}/configure --datadir=${datadir} --libdir=${libdir}
+}
+
+do_install() {
+    oe_runmake install DESTDIR=${D}
+}
+
+FILES_${PN} = "${libdir}/* \
+               ${datadir}/* "
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel-1.4/r25.diff b/import-layers/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel-1.4/r25.diff
new file mode 100644
index 0000000..e666ce0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel-1.4/r25.diff
@@ -0,0 +1,32 @@
+Taken from upstream subversion repository:
+
+http://code.google.com/p/iksemel/source/detail?r=25
+
+===================================================================
+---
+ configure.ac |   10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+--- iksemel-1.4.orig/configure.ac
++++ iksemel-1.4/configure.ac
+@@ -43,11 +43,19 @@ AM_CONDITIONAL(DO_POSIX, test "x$defio"
+ dnl Checks for library functions
+ AC_SEARCH_LIBS(recv,socket)
+ AC_CHECK_FUNCS(getopt_long)
+ AC_CHECK_FUNCS(getaddrinfo)
+ 
+-AM_PATH_LIBGNUTLS(,AC_DEFINE(HAVE_GNUTLS,,"Use libgnutls"))
++dnl Check GNU TLS
++PKG_CHECK_MODULES(GNUTLS, gnutls >= 2.0.0, have_gnutls=yes, have_gnutls=no)
++if test "x$have_gnutls" = "xyes"; then
++  LIBGNUTLS_CFLAGS="$GNUTLS_CFLAGS"
++  LIBGNUTLS_LIBS="$GNUTLS_LIBS"
++  AC_SUBST(LIBGNUTLS_CFLAGS)
++  AC_SUBST(LIBGNUTLS_LIBS)
++  AC_DEFINE(HAVE_GNUTLS, 1, [whether to use GnuTSL support.])
++fi
+ 
+ dnl Check -Wall flag of GCC
+ if test "x$GCC" = "xyes"; then
+   if test -z "`echo "$CFLAGS" | grep "\-Wall" 2> /dev/null`" ; then
+     CFLAGS="$CFLAGS -Wall"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel_1.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel_1.4.bb
new file mode 100644
index 0000000..f1276f9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/iksemel/iksemel_1.4.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Fast and portable XML parser and Jabber protocol library"
+AUTHOR = "Gurer Ozen <meduketto at gmail.com>"
+HOMEPAGE = "http://iksemel.googlecode.com"
+SECTION = "libs"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499"
+DEPENDS = "gnutls"
+
+PR = "r1"
+
+# http://errors.yoctoproject.org/Errors/Details/25825/
+PNBLACKLIST[iksemel] ?= "Not compatible with gnutls version 3.4 currently in oe-core"
+
+SRC_URI = "http://iksemel.googlecode.com/files/${BP}.tar.gz;name=archive \
+           file://r25.diff"
+SRC_URI[archive.md5sum] = "532e77181694f87ad5eb59435d11c1ca"
+SRC_URI[archive.sha256sum] = "458c1b8fb3349076a6cecf26c29db1d561315d84e16bfcfba419f327f502e244"
+
+inherit autotools pkgconfig
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_6.9.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_6.9.2.bb
new file mode 100644
index 0000000..a9f0134
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_6.9.2.bb
@@ -0,0 +1,89 @@
+SUMMARY = "ImageMagick is an image convertion tools"
+SECTION = "console/utils"
+LICENSE = "ImageMagick"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=0887b670be7ef0c3cb37092b64d57514"
+# FIXME: There are many more checked libraries. All should be added or explicitly disabled to get consistent results.
+DEPENDS = "lcms bzip2 jpeg libpng librsvg tiff zlib virtual/fftw freetype"
+
+# Important note: tarballs for all patchsets within a version are deleted when
+# a new pachset is created. To avoid multiple patches for each patchset, try to
+# update to the last pachset of a version
+PATCHSET = "0"
+SRC_URI = "http://www.imagemagick.org/download/releases/ImageMagick-${PV}-${PATCHSET}.tar.xz \
+"
+SRC_URI[md5sum] = "99471c8c3f38c9264faf5c4ca7a31287"
+SRC_URI[sha256sum] = "07a2de28f7f9ab888ef47c02eb7e10cc3e0dd0e9797c5d71d6e71d19f842399e"
+
+S = "${WORKDIR}/ImageMagick-${PV}-${PATCHSET}"
+
+inherit autotools pkgconfig update-alternatives
+
+# xml disabled because it's using xml2-config --prefix to determine prefix which returns just /usr with our libxml2
+# if someone needs xml support then fix it first
+EXTRA_OECONF = "--program-prefix= --program-suffix=.im6 --without-perl --disable-openmp --without-xml --disable-opencl"
+
+CACHED_CONFIGUREVARS = "ac_cv_sys_file_offset_bits=yes"
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}"
+PACKAGECONFIG[jp2] = "--with-jp2,,jasper"
+PACKAGECONFIG[lzma] = "--with-lzma,--without-lzma,xz"
+PACKAGECONFIG[openjpeg] = "--with-openjp2,--without-openjp2,openjpeg"
+PACKAGECONFIG[pango] = "--with-pango,--without-pango,pango cairo"
+PACKAGECONFIG[webp] = "--with-webp,--without-webp,libwebp"
+PACKAGECONFIG[wmf] = "--with-wmf,--without-wmf,libwmf"
+PACKAGECONFIG[x11] = "--with-x,--without-x,virtual/libx11 libxext libxt"
+
+FILES_${PN} += "${libdir}/ImageMagick-${PV}/modules-Q16/*/*.so \
+                ${libdir}/ImageMagick-${PV}/modules-Q16/*/*.la \
+                ${libdir}/ImageMagick-${PV}/modules-Q16/filters \
+                ${libdir}/ImageMagick-${PV}/modules-Q16/coders \
+                ${libdir}/ImageMagick-${PV}/config-Q16 \
+                ${datadir}/ImageMagick-6 "
+
+FILES_${PN}-dev += "${libdir}/ImageMagick-${PV}/modules-Q16/*/*.a"
+
+FILES_${PN}-dbg += "${libdir}/ImageMagick-${PV}/modules-Q16/*/.debug/*"
+
+BBCLASSEXTEND = "native"
+
+ALTERNATIVE_PRIORITY = "100"
+
+ALTERNATIVE_${PN} = "animate compare composite conjure convert display \
+    identify import mogrify montage stream"
+
+ALTERNATIVE_TARGET[animate] = "${bindir}/animate.im6"
+ALTERNATIVE_TARGET[compare] = "${bindir}/compare.im6"
+ALTERNATIVE_TARGET[composite] = "${bindir}/composite.im6"
+ALTERNATIVE_TARGET[conjure] = "${bindir}/conjure.im6"
+ALTERNATIVE_TARGET[convert] = "${bindir}/convert.im6"
+ALTERNATIVE_TARGET[display] = "${bindir}/display.im6"
+ALTERNATIVE_TARGET[identify] = "${bindir}/identify.im6"
+ALTERNATIVE_TARGET[import] = "${bindir}/import.im6"
+ALTERNATIVE_TARGET[mogrify] = "${bindir}/mogrify.im6"
+ALTERNATIVE_TARGET[montage] = "${bindir}/montage.im6"
+ALTERNATIVE_TARGET[stream] = "${bindir}/stream.im6"
+
+ALTERNATIVE_${PN}-doc = "animate.1 compare.1 composite.1 conjure.1 \
+    convert.1 display.1 identify.1 import.1 mogrify.1 montage.1 stream.1"
+
+ALTERNATIVE_LINK_NAME[animate.1] = "${mandir}/man1/animate.1"
+ALTERNATIVE_TARGET[animate.1] = "${mandir}/man1/animate.im6.1"
+ALTERNATIVE_LINK_NAME[compare.1] = "${mandir}/man1/compare.1"
+ALTERNATIVE_TARGET[compare.1] = "${mandir}/man1/compare.im6.1"
+ALTERNATIVE_LINK_NAME[composite.1] = "${mandir}/man1/composite.1"
+ALTERNATIVE_TARGET[composite.1] = "${mandir}/man1/composite.im6.1"
+ALTERNATIVE_LINK_NAME[conjure.1] = "${mandir}/man1/conjure.1"
+ALTERNATIVE_TARGET[conjure.1] = "${mandir}/man1/conjure.im6.1"
+ALTERNATIVE_LINK_NAME[convert.1] = "${mandir}/man1/convert.1"
+ALTERNATIVE_TARGET[convert.1] = "${mandir}/man1/convert.im6.1"
+ALTERNATIVE_LINK_NAME[display.1] = "${mandir}/man1/display.1"
+ALTERNATIVE_TARGET[display.1] = "${mandir}/man1/display.im6.1"
+ALTERNATIVE_LINK_NAME[identify.1] = "${mandir}/man1/identify.1"
+ALTERNATIVE_TARGET[identify.1] = "${mandir}/man1/identify.im6.1"
+ALTERNATIVE_LINK_NAME[import.1] = "${mandir}/man1/import.1"
+ALTERNATIVE_TARGET[import.1] = "${mandir}/man1/import.im6.1"
+ALTERNATIVE_LINK_NAME[mogrify.1] = "${mandir}/man1/mogrify.1"
+ALTERNATIVE_TARGET[mogrify.1] = "${mandir}/man1/mogrify.im6.1"
+ALTERNATIVE_LINK_NAME[montage.1] = "${mandir}/man1/montage.1"
+ALTERNATIVE_TARGET[montage.1] = "${mandir}/man1/montage.im6.1"
+ALTERNATIVE_LINK_NAME[stream.1] = "${mandir}/man1/stream.1"
+ALTERNATIVE_TARGET[stream.1] = "${mandir}/man1/stream.im6.1"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/inih/libinih_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/inih/libinih_git.bb
new file mode 100644
index 0000000..5030c78
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/inih/libinih_git.bb
@@ -0,0 +1,19 @@
+SUMMARY = "C and C++ INI Library"
+HOMEPAGE = "http://code.google.com/p/inih/"
+PV = "0.0+gitr${SRCPV}"
+PKGV = "${GITPKGVTAG}"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=dae28cbf28207425e0d0b3eb835f4bde"
+
+PR = "r3"
+
+# The github repository provides a cmake and pkg-config integration
+SRCREV = "25078f7156eb8647b3b35dd25f9ae6f8c4ee0589"
+SRC_URI = "git://github.com/OSSystems/inih.git"
+
+S = "${WORKDIR}/git"
+
+inherit gitpkgv cmake
+
+# We don't have libinih since we only have static libraries
+ALLOW_EMPTY_${PN} = "1"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ipmiutil/ipmiutil/fix_systemd_path.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/ipmiutil/ipmiutil/fix_systemd_path.patch
new file mode 100644
index 0000000..2fa7c68
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/ipmiutil/ipmiutil/fix_systemd_path.patch
@@ -0,0 +1,318 @@
+allow systemd path to be defined by configure option.
+
+The configure probes the host for systemd path information.
+
+Upstream Status: Inappropriate [Embedded]
+
+Signed-off-By: Armin Kuster <akuster@mvista.com>
+
+Index: ipmiutil-2.9.6/configure
+===================================================================
+--- ipmiutil-2.9.6.orig/configure
++++ ipmiutil-2.9.6/configure
+@@ -792,7 +792,6 @@ LTLIBOBJS
+ LIBOBJS
+ pkgconfigdir
+ SHR_LINK
+-SYSTEMD_DIR
+ CROSS_LFLAGS
+ CROSS_CFLAGS
+ SUBDIR_S
+@@ -999,7 +998,7 @@ psdir='${docdir}'
+ libdir='${exec_prefix}/lib'
+ localedir='${datarootdir}/locale'
+ mandir='${datarootdir}/man'
+-
++systemddir='${datarootdir}/ipmiutil'
+ ac_prev=
+ ac_dashdash=
+ for ac_option
+@@ -1594,7 +1593,10 @@ Optional Features:
+   --enable-standalone    build standalone, with no GPL or LanPlus libs.
+   --enable-libsensors	 build libipmiutil with sensor modules [default=no]
+   --enable-gpl           build with some GPL code [default=no]
+-  --enable-systemd       enable systemd service type=notify support and %_unitdir [default=disabled]
++  --enable-systemd[=systemddir]      install systemd unit file.  If 'yes'
++                probe the system for unit directory.
++                If a path is specified, assume that
++                is a valid install path.  [default=disabled]
+ 
+ Optional Packages:
+   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+@@ -12980,7 +12982,6 @@ CROSS_LFLAGS=""
+ CROSS_CFLAGS=""
+ LIBSENSORS=""
+ SAM2OBJ="isensor2.o ievents2.o"
+-SYSTEMD_DIR=/usr/share/ipmiutil
+ 
+ # Check whether --enable-useflags was given.
+ if test "${enable_useflags+set}" = set; then
+@@ -13032,31 +13033,43 @@ if test "${enable_gpl+set}" = set; then
+     fi
+ 
+ fi
+-
++#
++# Check for systemd unit files direectory exists if unit file installation
++# is requested
++#
+ 
+ # Check whether --enable-systemd was given.
+-if test "${enable_systemd+set}" = set; then
+-  enableval=$enable_systemd;
+-fi
+-
+-if test "x$enable_systemd" = "xyes"; then
+-   GPL_CFLAGS="$GPL_CFLAGS -DENABLE_SYSTEMD"
+-   # if systemd enabled, install service scripts in unitdir
+-   SYSTEMD_DIR=`rpm --eval "%{_unitdir}"`
+-else
+-   # otherwise install the systemd service scripts in the data dir
+-  if test  "x$sysname" = "xDarwin" ; then
+-    # MacOS 'which' command returns 0 always
+-    SYSTEMD_DIR=/usr/share/ipmiutil
+-  else
++if test "${enable_systemd+set}" = set; then :
++  withval=$enable_systemd; if test "$withval" = yes; then
++  GPL_CFLAGS="$GPL_CFLAGS -DENABLE_SYSTEMD"
++  if test -z "$systemddir"; then
++    { $as_echo "$as_me:${as_lineno-$LINENO}: checking location of the systemd unit files directory" >&5
++$as_echo_n "checking location of the systemd unit files directory... " >&6; }
++    _rpmdir = ""
+     which rpm >/dev/null 2>&1
+     if test  $? -eq 0 ; then
+-       datad=`rpm --eval "%{_datadir}"`
+-       SYSTEMD_DIR=${datad}/ipmiutil
+-    else
+-       SYSTEMD_DIR=/usr/share/ipmiutil
++      _rpmdir = `rpm --eval "%{_unitdir}"`
+     fi
++    for systemd_d in ${datadir}/usr/share/ipmiutil ${_rpmdir} /usr/share/ipmiutil; do
++      if test -z "$systemddir"; then
++        if test -d "$systemd_d"; then
++          systemddir="$systemd_d"
++        fi
++      fi
++    done
+   fi
++  if test -n "$systemddir"; then
++    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $systemddir" >&5
++$as_echo "$systemddir" >&6; }
++  else
++    { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
++$as_echo "not found" >&6; }
++ fi
++else
++ if test "$withval" != no; then
++  systemddir=$withval
++ fi
++fi
+ fi
+ 
+ case "$archm" in
+Index: ipmiutil-2.9.6/configure.ac
+===================================================================
+--- ipmiutil-2.9.6.orig/configure.ac
++++ ipmiutil-2.9.6/configure.ac
+@@ -140,7 +140,6 @@ CROSS_LFLAGS=""
+ CROSS_CFLAGS=""
+ LIBSENSORS=""
+ SAM2OBJ="isensor2.o ievents2.o"
+-SYSTEMD_DIR=/usr/share/ipmiutil
+ 
+ AC_ARG_ENABLE([useflags],
+     [  --enable-useflags    include environment CFLAGS and LDFLAGS.],
+@@ -191,25 +190,42 @@ AC_ARG_ENABLE([gpl],
+ 
+ dnl Does this Linux have systemd enabled?  Otherwise use sysv init.
+ AC_ARG_ENABLE([systemd],
+-    [  --enable-systemd       enable systemd service type=notify support and %_unitdir [[default=disabled]]],)
+-if test "x$enable_systemd" = "xyes"; then
+-   GPL_CFLAGS="$GPL_CFLAGS -DENABLE_SYSTEMD"
+-   # if systemd enabled, install service scripts in unitdir
+-   SYSTEMD_DIR=`rpm --eval "%{_unitdir}"`
++    [  --enable-systemd[=systemddir]      install systemd unit file.  If 'yes'
++        probe the system for unit directory.
++        If a path is specified, assume that
++        is a valid install path. [[default=disabled]]],)
++# Check whether --enable-systemd was given.
++if test "${enable_systemd+set}" = set; then :
++	withval=$enable_systemd; if test "$withval" = yes; then
++	GPL_CFLAGS="$GPL_CFLAGS -DENABLE_SYSTEMD"
++	if test -z "$systemddir"; then
++		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking location of the systemd unit files directory" >&5
++		$as_echo_n "checking location of the systemd unit files directory... " >&6; }
++		_rpmdir = ""
++		which rpm >/dev/null 2>&1
++		if test  $? -eq 0 ; then
++			_rpmdir = `rpm --eval "%{_unitdir}"`
++		fi
++		for systemd_d in ${datadir}/usr/share/ipmiutil ${_rpmdir} /usr/share/ipmiutil; do
++			if test -z "$systemddir"; then
++				if test -d "$systemd_d"; then
++					systemddir="$systemd_d"
++				fi
++			fi
++		done
++	fi
++	if test -n "$systemddir"; then
++		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $systemddir" >&5
++		$as_echo "$systemddir" >&6; }
++	else
++		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
++		$as_echo "not found" >&6; }
++	fi
+ else
+-   # otherwise install the systemd service scripts in the data dir
+-  if test  "x$sysname" = "xDarwin" ; then
+-    # MacOS 'which' command returns 0 always
+-    SYSTEMD_DIR=/usr/share/ipmiutil
+-  else
+-    which rpm >/dev/null 2>&1
+-    if test  $? -eq 0 ; then
+-       datad=`rpm --eval "%{_datadir}"`
+-       SYSTEMD_DIR=${datad}/ipmiutil
+-    else
+-       SYSTEMD_DIR=/usr/share/ipmiutil
+-    fi
+-  fi
++	if test "$withval" != no; then
++		systemddir=$withval
++	fi
++fi
+ fi
+ 
+ dnl start main logic
+@@ -481,7 +497,7 @@ AC_SUBST(INS_LIB)
+ AC_SUBST(SUBDIR_S)
+ AC_SUBST(CROSS_CFLAGS)
+ AC_SUBST(CROSS_LFLAGS)
+-AC_SUBST(SYSTEMD_DIR)
++AC_SUBST(systemddir)
+ AC_SUBST(SHR_LINK)
+ AC_SUBST(pkgconfigdir)
+ 
+Index: ipmiutil-2.9.6/Makefile.in
+===================================================================
+--- ipmiutil-2.9.6.orig/Makefile.in
++++ ipmiutil-2.9.6/Makefile.in
+@@ -182,7 +182,7 @@ SHELL = @SHELL@
+ SHR_LINK = @SHR_LINK@
+ STRIP = @STRIP@
+ SUBDIR_S = @SUBDIR_S@
+-SYSTEMD_DIR = @SYSTEMD_DIR@
++SYSTEMD_DIR = @systemddir@
+ VERSION = @VERSION@
+ abs_builddir = @abs_builddir@
+ abs_srcdir = @abs_srcdir@
+@@ -233,6 +233,7 @@ sbindir = @sbindir@
+ sharedstatedir = @sharedstatedir@
+ srcdir = @srcdir@
+ sysconfdir = @sysconfdir@
++systemddir = @systemddir@
+ target_alias = @target_alias@
+ top_build_prefix = @top_build_prefix@
+ top_builddir = @top_builddir@
+Index: ipmiutil-2.9.6/scripts/Makefile.in
+===================================================================
+--- ipmiutil-2.9.6.orig/scripts/Makefile.in
++++ ipmiutil-2.9.6/scripts/Makefile.in
+@@ -126,7 +126,7 @@ SHELL = @SHELL@
+ SHR_LINK = @SHR_LINK@
+ STRIP = @STRIP@
+ SUBDIR_S = @SUBDIR_S@
+-SYSTEMD_DIR = @SYSTEMD_DIR@
++SYSTEMD_DIR = @systemddir@
+ VERSION = @VERSION@
+ abs_builddir = @abs_builddir@
+ abs_srcdir = @abs_srcdir@
+@@ -195,7 +195,8 @@ cronto = ${DESTDIR}${etcdir}/cron.daily
+ sbinto = ${DESTDIR}${sbindir}
+ varto = ${DESTDIR}/var/lib/ipmiutil
+ initto = ${DESTDIR}@INIT_DIR@
+-sysdto = ${DESTDIR}@SYSTEMD_DIR@
++sysdto = ${DESTDIR}@systemddir@
++systemddir = @systemddir@
+ sysvinit = ${datato}
+ sbinfls = ialarms ihealth ifru igetevent ireset icmd isol ilan isensor isel iserial iwdt iconfig ipicmg ifirewall ifwum ihpm
+ all: all-am
+@@ -398,11 +399,14 @@ install:
+ 	${INSTALL_SCRIPT_SH} evt.sh       ${datato}
+ 	if [ -f /etc/debian_version ]; then \
+ 	   sysvinit=${initto}; fi
+-	${INSTALL_SCRIPT_SH} ipmiutil_wdt ${sysvinit}/ipmiutil_wdt
+-	${INSTALL_SCRIPT_SH} ipmiutil_asy ${sysvinit}/ipmiutil_asy
+-	${INSTALL_SCRIPT_SH} ipmiutil_evt ${sysvinit}/ipmiutil_evt
+-	${INSTALL_SCRIPT_SH} ipmi_port.sh ${sysvinit}/ipmi_port
+-	${INSTALL_SCRIPT_SH} ipmi_info    ${sysvinit}/ipmi_info
++	if [ ! -z "${systemddir}" ]; then \
++		$(MKDIR) ${sysdto}; \
++		${INSTALL_SCRIPT_SH} ipmiutil_wdt ${sysvinit}/ipmiutil_wdt; \
++		${INSTALL_SCRIPT_SH} ipmiutil_asy ${sysvinit}/ipmiutil_asy; \
++		${INSTALL_SCRIPT_SH} ipmiutil_evt ${sysvinit}/ipmiutil_evt; \
++		${INSTALL_SCRIPT_SH} ipmi_port.sh ${sysvinit}/ipmi_port; \
++		${INSTALL_SCRIPT_SH} ipmi_info    ${sysvinit}/ipmi_info; \
++	fi
+ 	${INSTALL_SCRIPT_SH} checksel     ${datato}
+ 	${INSTALL_DATA_SH} ipmiutil_wdt.service ${sysdto}
+ 	${INSTALL_DATA_SH} ipmiutil_asy.service ${sysdto}
+Index: ipmiutil-2.9.6/scripts/Makefile.am
+===================================================================
+--- ipmiutil-2.9.6.orig/scripts/Makefile.am
++++ ipmiutil-2.9.6/scripts/Makefile.am
+@@ -17,7 +17,8 @@ cronto = ${DESTDIR}${etcdir}/cron.daily
+ sbinto = ${DESTDIR}${sbindir}
+ varto  = ${DESTDIR}/var/lib/ipmiutil
+ initto = ${DESTDIR}@INIT_DIR@
+-sysdto = ${DESTDIR}@SYSTEMD_DIR@
++sysdto = ${DESTDIR}@systemddir@
++systemddir = @systemddir@
+ sysvinit = ${datato}
+ sbinfls = ialarms ihealth ifru igetevent ireset icmd isol ilan isensor isel iserial iwdt iconfig ipicmg ifirewall ifwum ihpm
+ 
+@@ -47,10 +48,14 @@ install:
+ 	${INSTALL_SCRIPT_SH} ipmi_port.sh ${sysvinit}/ipmi_port
+ 	${INSTALL_SCRIPT_SH} ipmi_info    ${sysvinit}/ipmi_info
+ 	${INSTALL_SCRIPT_SH} checksel     ${datato}
+-	${INSTALL_DATA_SH} ipmiutil_wdt.service ${sysdto}
+-	${INSTALL_DATA_SH} ipmiutil_asy.service ${sysdto}
+-	${INSTALL_DATA_SH} ipmiutil_evt.service ${sysdto}
+-	${INSTALL_DATA_SH} ipmi_port.service    ${sysdto}
++	
++	if [ ! -z "${systemddir}" ]; then \
++		$(MKDIR) ${sysdto}; \
++		${INSTALL_DATA_SH} ipmiutil_wdt.service ${sysdto}; \
++		${INSTALL_DATA_SH} ipmiutil_asy.service ${sysdto}; \
++		${INSTALL_DATA_SH} ipmiutil_evt.service ${sysdto}; \
++		${INSTALL_DATA_SH} ipmi_port.service    ${sysdto}; \
++	fi
+ 	${INSTALL_SCRIPT_SH} ipmiutil.env     ${datato}
+ 	${INSTALL_SCRIPT_SH} ipmiutil.pre     ${datato}
+ 	${INSTALL_SCRIPT_SH} ipmiutil.setup   ${datato}
+Index: ipmiutil-2.9.6/lib/Makefile.in
+===================================================================
+--- ipmiutil-2.9.6.orig/lib/Makefile.in
++++ ipmiutil-2.9.6/lib/Makefile.in
+@@ -128,7 +128,7 @@ SHELL = @SHELL@
+ SHR_LINK = @SHR_LINK@
+ STRIP = @STRIP@
+ SUBDIR_S = @SUBDIR_S@
+-SYSTEMD_DIR = @SYSTEMD_DIR@
++SYSTEMD_DIR = @systemddir@
+ VERSION = @VERSION@
+ abs_builddir = @abs_builddir@
+ abs_srcdir = @abs_srcdir@
+Index: ipmiutil-2.9.6/lib/lanplus/Makefile.in
+===================================================================
+--- ipmiutil-2.9.6.orig/lib/lanplus/Makefile.in
++++ ipmiutil-2.9.6/lib/lanplus/Makefile.in
+@@ -177,7 +177,8 @@ SHELL = @SHELL@
+ SHR_LINK = @SHR_LINK@
+ STRIP = @STRIP@
+ SUBDIR_S = @SUBDIR_S@
+-SYSTEMD_DIR = @SYSTEMD_DIR@
++SYSTEMD_DIR = @systemddir@
++systemddir = @systemddir@
+ VERSION = @VERSION@
+ abs_builddir = @abs_builddir@
+ abs_srcdir = @abs_srcdir@
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ipmiutil/ipmiutil_2.9.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/ipmiutil/ipmiutil_2.9.6.bb
new file mode 100644
index 0000000..a4273fb
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/ipmiutil/ipmiutil_2.9.6.bb
@@ -0,0 +1,60 @@
+SUMMARY = "ipmiutil is an easy-to-use set of IPMI server management utilities.\
+It can get/set sensor thresholds, automate SEL management, do SOL console, etc."
+
+DESCRIPTION = "The IPMI Management Utilities currently work with platforms that \
+support the IPMI 1.5 or 2.0 specification.   IPMI servers can be managed\
+locally, or remotely via IPMI LAN, even when the OS or main CPU is not\
+functional.\n \
+The ipmiutil utilities will use an IPMI Driver, either the Intel IPMI package \
+(ipmidrvr, /dev/imb), MontaVista OpenIPMI (/dev/ipmi0), the valinux IPMI \
+Driver (/dev/ipmikcs), or the LANDesk ldipmi daemon.  The ipmiutil utilities \
+can also use direct user-space I/Os in Linux or FreeBSD if no IPMI driver \
+is detected."
+
+HOMEPAGE = "http://ipmiutil.sourceforge.net"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=5f9372493401f309e6149dd2ce0a044b"
+
+#PARALLEL_MAKE = ""
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/ipmiutil/ipmiutil-${PV}.tar.gz \
+    file://fix_systemd_path.patch "
+
+SRC_URI[md5sum] = "462087995f05fa9e692ed7f55c840f71"
+SRC_URI[sha256sum] = "884c1f3d8bfb0b33c303973d286c3166f5a537976451a0312e3524af54771519"
+
+inherit autotools-brokensep pkgconfig systemd
+
+PACKAGECONFIG ?= "lanplus gpl"
+PACKAGECONFIG += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}"
+PACKAGECONFIG[systemd] = "--enable-systemd=${datadir}/${BPN}, --enable-systemd=no"
+PACKAGECONFIG[sha256] = "--enable-sha256, --enable-sha256=no, openssl-native, openssl"
+PACKAGECONFIG[lanplus] = "--enable-lanplus, --enable-lanplus=no, openssl-native, openssl"
+PACKAGECONFIG[landesk] = "--enable-landesk, --enable-landesk=no"
+PACKAGECONFIG[sensors] = "--enable-libsensors, --enable-libsensors=no" 
+
+#build with some GPL code
+PACKAGECONFIG[gpl] = "--enable-gpl, --enable-gpl=no"
+#no GPL or LanPlus libs
+PACKAGECONFIG[standalone] = "--enable-standalone, --enable-standalone=no"
+
+CFLAGS += "-I${STAGING_INCDIR}"
+LDFLAGS += "-L${STAGING_LIBDIR}"
+
+do_configure () {
+    aclocal
+    libtoolize --automake --copy --force
+    autoheader
+    automake --foreign --add-missing --copy
+
+    aclocal
+    autoconf
+    automake --foreign
+    ./configure ${CONFIGUREOPTS} ${EXTRA_OECONF}
+}
+
+do_install () {
+    oe_runmake install DESTDIR=${D}
+}
+
+COMPATIBLE_HOST = '(x86_64|i.86).*-linux'
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/joe/joe_3.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/joe/joe_3.1.bb
new file mode 100644
index 0000000..fb9a9fb
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/joe/joe_3.1.bb
@@ -0,0 +1,15 @@
+SECTION = "console/utils"
+SUMMARY = "Console text editor with good functionality, good choice for vi-haters"
+HOMEPAGE = "http://joe-editor.sourceforge.net/"
+LICENSE = "GPLv1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=da10ed7cf8038981c580e11c1d3e8fb6"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/joe-editor/joe-${PV}.tar.gz"
+
+PACKAGECONFIG ??= "curses"
+PACKAGECONFIG[curses] = "--enable-curses,--disable-curses,ncurses,ncurses-terminfo"
+
+inherit autotools
+
+SRC_URI[md5sum] = "2a6ef018870fca9b7df85401994fb0e0"
+SRC_URI[sha256sum] = "252390e4bc687957f09f334095904c8cc53b39c7b663ed47861ae1d11aef5946"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lcms/lcms_2.7.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/lcms/lcms_2.7.bb
new file mode 100644
index 0000000..12ccb20
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/lcms/lcms_2.7.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Little cms is a small-footprint, speed optimized color management engine"
+SECTION = "libs"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6c786c3b7a4afbd3c990f1b81261d516"
+SRC_URI = "${SOURCEFORGE_MIRROR}/lcms/lcms2-${PV}.tar.gz"
+SRC_URI[md5sum] = "06c1626f625424a811fb4b5eb070839d"
+SRC_URI[sha256sum] = "4524234ae7de185e6b6da5d31d6875085b2198bc63b1211f7dde6e2d197d6a53"
+
+DEPENDS = "tiff"
+
+BBCLASSEXTEND = "native"
+
+S = "${WORKDIR}/lcms2-${PV}"
+
+inherit autotools
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.11.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.11.bb
new file mode 100644
index 0000000..5f3b889
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.11.bb
@@ -0,0 +1,28 @@
+SUMMARY = "A graphical front-end for gcov"
+HOMEPAGE = "http://ltp.sourceforge.net/coverage/lcov.php"
+DESCRIPTION = "LCOV is a graphical front-end for GCC's coverage testing \
+tool gcov. It collects gcov data for multiple source files and creates \
+HTML pages containing the source code annotated with coverage information. \
+It also adds overview pages for easy navigation within the file structure. \
+LCOV supports statement, function and branch coverage measurement." 
+LICENSE = "GPL-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+RDEPENDS_${PN} += " \
+    gcov \
+    perl \
+    perl-module-filehandle \
+    perl-module-getopt-std \
+    perl-module-digest-sha \
+"
+
+SRC_URI = "http://downloads.sourceforge.net/ltp/${BP}.tar.gz"
+
+SRC_URI[md5sum] = "e79b799ae3ce149aa924c7520e993024"
+SRC_URI[sha256sum] = "c282de8d678ecbfda32ce4b5c85fc02f77c2a39a062f068bd8e774d29ddc9bf8"
+
+do_install() {
+    oe_runmake install PREFIX=${D}
+    sed -i -e '1s,#!.*perl,#! ${USRBINPATH}/env perl,' ${D}${bindir}/*
+}
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libatasmart/libatasmart_0.19.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libatasmart/libatasmart_0.19.bb
new file mode 100644
index 0000000..16657b4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libatasmart/libatasmart_0.19.bb
@@ -0,0 +1,19 @@
+SUMMARY = "ATA S.M.A.R.T. Reading and Parsing Library"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1"
+
+DEPENDS = "udev"
+
+SRCREV = "de6258940960443038b4c1651dfda3620075e870"
+SRC_URI = "git://git.0pointer.de/libatasmart.git"
+
+S = "${WORKDIR}/git"
+
+inherit autotools lib_package pkgconfig
+
+do_install_append() {
+    sed -i -e s://:/:g -e 's:=${libdir}/libudev.la:-ludev:g' ${D}${libdir}/libatasmart.la
+}
+
+PACKAGES =+ "${PN}-dev-vala"
+FILES_${PN}-dev-vala = "${datadir}/vala"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libcanberra/files/0001-build-gtk-and-gtk3-version-for-canberra_gtk_play.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/libcanberra/files/0001-build-gtk-and-gtk3-version-for-canberra_gtk_play.patch
new file mode 100644
index 0000000..4e0984f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libcanberra/files/0001-build-gtk-and-gtk3-version-for-canberra_gtk_play.patch
@@ -0,0 +1,92 @@
+From 4a89ddffbb14d747adbe3365ace4db87de52ba39 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Mon, 16 Sep 2013 16:08:28 +0200
+Subject: [PATCH] build gtk- and gtk3-version for canberra_gtk_play
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+---
+ src/Makefile.am |   25 +++++++++++++++----------
+ 1 files changed, 15 insertions(+), 10 deletions(-)
+
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 56ed96d..fc72e1f 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -319,9 +319,6 @@ endif
+ 
+ if HAVE_GTK_ANY
+ 
+-bin_PROGRAMS += \
+-	canberra-gtk-play
+-
+ include_HEADERS += \
+ 	canberra-gtk.h
+ 
+@@ -329,6 +326,9 @@ endif
+ 
+ if HAVE_GTK3
+ 
++bin_PROGRAMS += \
++	canberra-gtk3-play
++
+ lib_LTLIBRARIES += \
+ 	libcanberra-gtk3.la
+ 
+@@ -367,6 +367,9 @@ endif
+ 
+ if HAVE_GTK
+ 
++bin_PROGRAMS += \
++	canberra-gtk-play
++
+ lib_LTLIBRARIES += \
+ 	libcanberra-gtk.la
+ 
+@@ -399,14 +402,17 @@ endif
+ 
+ if HAVE_GTK3
+ 
+-canberra_gtk_play_LDADD = \
++canberra_gtk3_play_LDADD = \
+ 	$(GTK3_LIBS) \
+ 	libcanberra.la \
+ 	libcanberra-gtk3.la
+-canberra_gtk_play_CFLAGS = \
++canberra_gtk3_play_CFLAGS = \
+ 	$(GTK3_CFLAGS)
+ 
+-else
++canberra_gtk3_play_SOURCES = \
++	canberra-gtk-play.c
++
++endif
+ if HAVE_GTK
+ 
+ canberra_gtk_play_LDADD = \
+@@ -416,7 +422,9 @@ canberra_gtk_play_LDADD = \
+ canberra_gtk_play_CFLAGS = \
+ 	$(GTK_CFLAGS)
+ 
+-endif
++canberra_gtk_play_SOURCES = \
++	canberra-gtk-play.c
++
+ endif
+ 
+ if HAVE_GTK_ANY
+@@ -424,9 +432,6 @@ if HAVE_GTK_ANY
+ dist_gsdgtkmodules_DATA = \
+ 	canberra-gtk-module.desktop
+ 
+-canberra_gtk_play_SOURCES = \
+-	canberra-gtk-play.c
+-
+ EXTRA_DIST += \
+ 	libcanberra-login-sound.desktop.in \
+ 	libcanberra-ready-sound.desktop.in \
+-- 
+1.7.6.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libcanberra/libcanberra_0.30.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libcanberra/libcanberra_0.30.bb
new file mode 100644
index 0000000..f473775
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libcanberra/libcanberra_0.30.bb
@@ -0,0 +1,63 @@
+SUMMARY = "Implementation of XDG Sound Theme and Name Specifications"
+DESCRIPTION = "Libcanberra is an implementation of the XDG Sound Theme and Name Specifications, for generating event sounds on free desktops."
+LICENSE = "LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \
+                    file://src/canberra.h;beginline=7;endline=24;md5=c616c687cf8da540a14f917e0d23ab03"
+
+DEPENDS = "libtool libvorbis"
+
+inherit autotools gtk-doc
+
+SRC_URI = " \
+    http://0pointer.de/lennart/projects/${BPN}/${BPN}-${PV}.tar.xz \
+    file://0001-build-gtk-and-gtk3-version-for-canberra_gtk_play.patch \
+"
+SRC_URI[md5sum] = "34cb7e4430afaf6f447c4ebdb9b42072"
+SRC_URI[sha256sum] = "c2b671e67e0c288a69fc33dc1b6f1b534d07882c2aceed37004bf48c601afa72"
+
+EXTRA_OECONF = "\
+    --enable-null \
+    --disable-oss \
+    --disable-tdb \
+    --disable-lynx \
+"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES','alsa','alsa','',d)} \
+                   ${@bb.utils.contains('DISTRO_FEATURES','pulseaudio','pulseaudio','',d)} \
+                   ${@bb.utils.contains('DISTRO_FEATURES','x11','gtk gtk3','',d)} \
+"
+PACKAGECONFIG[alsa] = "--enable-alsa, --disable-alsa, alsa-lib"
+PACKAGECONFIG[pulseaudio] = "--enable-pulse, --disable-pulse, pulseaudio"
+PACKAGECONFIG[gstreamer] = "--enable-gstreamer, --disable-gstreamer, gstreamer1.0"
+PACKAGECONFIG[gtk] = "--enable-gtk, --disable-gtk, gtk+"
+PACKAGECONFIG[gtk3] = "--enable-gtk3, --disable-gtk3, gtk+3"
+
+python populate_packages_prepend() {
+    plugindir = d.expand('${libdir}/${BPN}-${PV}/')
+    do_split_packages(d, plugindir, '^libcanberra-(.*)\.so$', 'libcanberra-%s', '%s support library', extra_depends='' )
+    do_split_packages(d, plugindir, '^libcanberra-(.*)\.la$', 'libcanberra-%s', '%s support library', extra_depends='' )
+}
+
+PACKAGES =+ "${PN}-gnome ${PN}-gtk2 ${PN}-gtk3 ${PN}-systemd"
+PACKAGES_DYNAMIC += "^libcanberra-.*"
+
+FILES_${PN} = "${bindir}/ ${libdir}/${BPN}.so.*"
+
+FILES_${PN}-dev += "${datadir}/vala/vapi ${libdir}/*/modules/*.la ${libdir}/*/*.la"
+
+FILES_${PN}-dbg += "${libdir}/${BPN}-${PV}/.debug ${libdir}/gtk-*/modules/.debug"
+
+FILES_${PN}-gtk2 = "${libdir}/${BPN}-gtk.so.* \
+                    ${libdir}/gtk-2.0/modules/*.so \
+                    ${bindir}/canberra-gtk-play"
+
+# -gtk3 ships a symlink to a .so
+INSANE_SKIP_${PN}-gtk3 = "dev-so"
+FILES_${PN}-gtk3 = "${libdir}/${BPN}-gtk3.so.* \
+                    ${libdir}/gtk-3.0/modules/*.so \
+                    ${bindir}/canberra-gtk3-play"
+
+FILES_${PN}-gnome = "${libdir}/gnome-settings-daemon-3.0/ \
+                     ${datadir}/gdm/ ${datadir}/gnome/"
+
+FILES_${PN}-systemd = "${systemd_unitdir}/system/*.service"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libdbi/libdbi-drivers.inc b/import-layers/meta-openembedded/meta-oe/recipes-support/libdbi/libdbi-drivers.inc
new file mode 100644
index 0000000..b509532
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libdbi/libdbi-drivers.inc
@@ -0,0 +1,51 @@
+# libdbi-drivers OE build file
+# Copyright (C) 2005, Koninklijke Philips Electronics NV.  All Rights Reserved
+# Released under the MIT license (see packages/COPYING)
+
+DESCRIPTION = "Database Drivers for libdbi"
+HOMEPAGE = "http://libdbi-drivers.sourceforge.net/"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499"
+SECTION = "libs"
+
+PROVIDES = "libdbd-sqlite"
+DEPENDS = "libdbi sqlite sqlite3 mysql5 postgresql"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/libdbi-drivers/libdbi-drivers-${PV}.tar.gz"
+
+inherit autotools
+
+PACKAGES += "libdbd-sqlite3 libdbd-sqlite libdbd-pgsql libdbd-mysql"
+
+EXTRA_OECONF = "--with-dbi-incdir=${STAGING_INCDIR} \
+                --with-dbi-libdir=${STAGING_LIBDIR} \
+                --with-sqlite \
+                --with-sqlite3 \
+                --with-pgsql \
+                --with-mysql \
+                --with-sqlite-libdir=${STAGING_LIBDIR} \
+                --with-sqlite-incdir=${STAGING_INCDIR} \
+                --with-sqlite3-incdir=${STAGING_INCDIR} \
+                --with-sqlite3-libdir=${STAGING_LIBDIR} \
+                --with-mysql-incdir=${STAGING_INCDIR} \
+                --with-mysql-libdir=${STAGING_LIBDIR} \
+                --with-pgsql-incdir=${STAGING_INCDIR} \
+                --with-pgsql-libdir=${STAGING_LIBDIR} \
+                --disable-docs"
+
+FILES_${PN}-dbg += " ${libdir}/dbd/.debug/*.so"
+FILES_${PN}-dev += " ${libdir}/dbd/*.la"
+FILES_${PN}-staticdev += " ${libdir}/dbd/*.a"
+
+DESCRIPTION_libdbd-sqlite = "SQLite database driver for libdbi"
+FILES_libdbd-sqlite = "${libdir}/dbd/libdbdsqlite.so"
+
+DESCRIPTION_libdbd-sqlite3 =  "SQLite3 database driver for libdbi"
+FILES_libdbd-sqlite3 = "${libdir}/dbd/libdbdsqlite3.so"
+
+DESCRIPTION_libdbd-mysql = "MySQL4 database driver for libdbi"
+FILES_libdbd-mysql = "${libdir}/dbd/libdbdmysql.so"
+
+DESCRIPTION_libdbd-psql = "Postgres SQL database driver for libdbi"
+FILES_libdbd-pgsql = "${libdir}/dbd/libdbdpgsql.so"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libdbi/libdbi-drivers_0.8.3-1.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libdbi/libdbi-drivers_0.8.3-1.bb
new file mode 100644
index 0000000..ec869c4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libdbi/libdbi-drivers_0.8.3-1.bb
@@ -0,0 +1,8 @@
+require ${PN}.inc
+
+
+SRC_URI[md5sum] = "4de79b323162a5a7652b65b608eca6cd"
+SRC_URI[sha256sum] = "4ab9944398ce769c0deeb64d2f73555c67bc25ccd2ade1ccf552226c7b2acf72"
+
+# libdbi-drivers-0.8.3-1/drivers/mysql/dbd_mysql.c:232:5: error: conflicting types for 'dbd_goto_row'
+PNBLACKLIST[libdbi-drivers] ?= "BROKEN: fails to build with gcc-5"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libdbi/libdbi.inc b/import-layers/meta-openembedded/meta-oe/recipes-support/libdbi/libdbi.inc
new file mode 100644
index 0000000..cea2838
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libdbi/libdbi.inc
@@ -0,0 +1,17 @@
+# libdbi OE build file
+# Copyright (C) 2005, Koninklijke Philips Electronics NV.  All Rights Reserved
+# Released under the MIT license (see packages/COPYING)
+
+DESCRIPTION = "Database Independent Abstraction Layer for C"
+HOMEPAGE = "http://libdbi.sourceforge.net/"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499"
+SECTION = "libs"
+
+INC_PR = "r0"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/libdbi/libdbi-${PV}.tar.gz"
+
+inherit autotools
+
+EXTRA_OECONF = "--disable-docs"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libdbi/libdbi_0.9.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libdbi/libdbi_0.9.0.bb
new file mode 100644
index 0000000..24eae28
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libdbi/libdbi_0.9.0.bb
@@ -0,0 +1,6 @@
+require ${PN}.inc
+
+PR = "${INC_PR}.0"
+
+SRC_URI[md5sum] = "05e2ceeac4bc85fbe40de8b4b22d9ab3"
+SRC_URI[sha256sum] = "dafb6cdca524c628df832b6dd0bf8fabceb103248edb21762c02d3068fca4503"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libee/libee.inc b/import-layers/meta-openembedded/meta-oe/recipes-support/libee/libee.inc
new file mode 100644
index 0000000..256fa05
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libee/libee.inc
@@ -0,0 +1,39 @@
+SUMMARY = "An Event Expression Library inspired by CEE"
+DESCRIPTION = "The core idea of libee is to provide a small \
+but hopefully convenient API layer above the CEE standard."
+
+HOMEPAGE = "http://www.libee.org"
+SECTION = "base"
+
+LICENSE = "LGPL-2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1c2687de35e36ba3b999136236a66cd6"
+
+SRC_URI = "http://www.libee.org/download/files/download/${BPN}-${PV}.tar.gz\
+           file://libee-parallel-make.patch \
+           file://run-ptest \
+           file://ezapi1.sh \
+"
+
+inherit autotools ptest pkgconfig
+
+DEPENDS += "libestr"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'testbench', '', d)}"
+
+PACKAGECONFIG[debug] = "--enable-debug,--disable-debug,,"
+PACKAGECONFIG[testbench] = "--enable-testbench,--disable-testbench,,"
+
+TESTDIR = "tests"
+
+# We presume the tests we are going to install so just build them directly.
+#
+do_compile_ptest() {
+	oe_runmake -C ${TESTDIR} genfile ezapi1
+}
+
+do_install_ptest() {
+	install -d ${D}${PTEST_PATH}
+	install -m 0755 ${B}/${TESTDIR}/genfile ${D}${PTEST_PATH}
+	install -m 0755 ${B}/${TESTDIR}/.libs/ezapi1 ${D}${PTEST_PATH}
+	install -m 0755 ${WORKDIR}/ezapi1.sh ${D}${PTEST_PATH}
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libee/libee/ezapi1.sh b/import-layers/meta-openembedded/meta-oe/recipes-support/libee/libee/ezapi1.sh
new file mode 100755
index 0000000..e9db5e6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libee/libee/ezapi1.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+#
+echo ---------------------------------------------------------------------------
+echo A very basic test for the event class
+echo ---------------------------------------------------------------------------
+rm -f infile
+./genfile 100 > infile
+./ezapi1 -iinfile
+if [ $? -ne 0 ] ; then
+   echo "FAIL: $0"
+   exit 1
+fi
+echo "PASS: $0"
+rm -f infile
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libee/libee/libee-parallel-make.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/libee/libee/libee-parallel-make.patch
new file mode 100644
index 0000000..25e5c6a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libee/libee/libee-parallel-make.patch
@@ -0,0 +1,20 @@
+fix parallel compiling problem
+
+without specifying libee_convert_DEPENDENCIES = libee.la, libee_convert
+can't find libee.la when linking as libee is not generated yet.
+ 
+Upstream-Status: pending
+
+Signed-off-by: Yao Zhao <yao.zhao@windriver.com>
+---
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 08aaa9e..f0c78f7 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -46,5 +46,6 @@ libee_la_LDFLAGS = -version-info 0:0:0
+ libee_convert_SOURCES = convert.c
+ libee_convert_CPPFLAGS =  -I$(top_srcdir) $(LIBEE_CFLAGS) $(LIBESTR_CFLAGS) $(LIBXML2_CFLAGS)
+ libee_convert_LDADD = $(LIBEE_LIBS) $(LIBXML2_LIBS) $(LIBESTR_LIBS)
++libee_convert_DEPENDENCIES = libee.la
+ 
+ include_HEADERS = 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libee/libee/run-ptest b/import-layers/meta-openembedded/meta-oe/recipes-support/libee/libee/run-ptest
new file mode 100755
index 0000000..3cb6607
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libee/libee/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+#
+./ezapi1.sh
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libee/libee_0.4.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libee/libee_0.4.1.bb
new file mode 100644
index 0000000..ef2c20d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libee/libee_0.4.1.bb
@@ -0,0 +1,4 @@
+require ${BPN}.inc
+
+SRC_URI[md5sum] = "7bbf4160876c12db6193c06e2badedb2"
+SRC_URI[sha256sum] = "c0dac01938593deee06c3d161e4eda4ecc0fd7317e1321bd96e301aceb7fb027"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen/0001-CMakeLists.txt-install-FindEigen3.cmake-script.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen/0001-CMakeLists.txt-install-FindEigen3.cmake-script.patch
new file mode 100644
index 0000000..761dadb
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen/0001-CMakeLists.txt-install-FindEigen3.cmake-script.patch
@@ -0,0 +1,28 @@
+From fd8bc66efac1059c1068f804746b01b90177c333 Mon Sep 17 00:00:00 2001
+From: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
+Date: Sun, 18 Oct 2015 16:52:25 +0200
+Subject: [PATCH] CMakeLists.txt: install FindEigen3.cmake script
+
+Upstream-Status: Pending
+
+Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
+---
+ CMakeLists.txt | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 76a11b9..ec6c6ea 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -342,6 +342,8 @@ if(EIGEN_BUILD_PKGCONFIG)
+         )
+ endif(EIGEN_BUILD_PKGCONFIG)
+ 
++install(FILES "${PROJECT_SOURCE_DIR}/cmake/FindEigen3.cmake" DESTINATION "${CMAKE_INSTALL_PREFIX}/share/cmake/Modules")
++
+ add_subdirectory(Eigen)
+ 
+ add_subdirectory(doc EXCLUDE_FROM_ALL)
+-- 
+1.9.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.2.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.2.6.bb
new file mode 100644
index 0000000..89a25a9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.2.6.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms."
+AUTHOR = "Benoît Jacob and Gaël Guennebaud and others"
+HOMEPAGE = "http://eigen.tuxfamily.org/"
+LICENSE = "MPL-2.0"
+LIC_FILES_CHKSUM = "file://COPYING.MPL2;md5=815ca599c9df247a0c7f619bab123dad"
+
+SRC_URI = "http://bitbucket.org/eigen/eigen/get/${PV}.tar.bz2 \
+           file://0001-CMakeLists.txt-install-FindEigen3.cmake-script.patch"
+SRC_URI[md5sum] = "87274966745d2d3e7964fcc654d0a24b"
+SRC_URI[sha256sum] = "8a3352f9a5361fe90e451a7305fb1896fc7f771dc16cc0edd8e6b157f52c343e"
+
+S = "${WORKDIR}/eigen-eigen-c58038c56923"
+
+inherit cmake
+
+EXTRA_OECMAKE += "-Dpkg_config_libdir=${libdir}"
+
+FILES_${PN} = "${includedir} ${libdir}"
+FILES_${PN}-dev = "${datadir}/cmake/Modules"
+
+# ${PN} is empty so we need to tweak -dev and -dbg package dependencies
+RDEPENDS_${PN}-dev = ""
+RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libestr/libestr_0.1.10.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libestr/libestr_0.1.10.bb
new file mode 100644
index 0000000..9bff4f3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libestr/libestr_0.1.10.bb
@@ -0,0 +1,11 @@
+SUMMARY = "some essentials for string handling (and a bit more)"
+HOMEPAGE = "http://libestr.adiscon.com/"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=9d6c993486c18262afba4ca5bcb894d0"
+
+SRC_URI = "http://libestr.adiscon.com/files/download/${BP}.tar.gz"
+
+SRC_URI[md5sum] = "f4c9165a23587e77f7efe65d676d5e8e"
+SRC_URI[sha256sum] = "bd655e126e750edd18544b88eb1568d200a424a0c23f665eb14bbece07ac703c"
+
+inherit autotools
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan-0.57/libetpan-autoreconf.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan-0.57/libetpan-autoreconf.patch
new file mode 100644
index 0000000..d05967d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan-0.57/libetpan-autoreconf.patch
@@ -0,0 +1,12 @@
+Index: libetpan-0.57/configure.ac
+===================================================================
+--- libetpan-0.57.orig/configure.ac	2008-10-08 19:54:20.000000000 +0000
++++ libetpan-0.57/configure.ac	2008-11-11 16:34:33.000000000 +0000
+@@ -106,6 +106,7 @@
+ 
+ # Check the C compiler.
+ AC_PROG_CC
++AC_PROG_CXX
+ 
+ # Compiler flags.
+ AC_ARG_ENABLE(debug,   [  --enable-debug          setup flags (gcc) for debugging (default=no)],
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan-0.57/libetpan-ldflags.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan-0.57/libetpan-ldflags.patch
new file mode 100644
index 0000000..438f44f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan-0.57/libetpan-ldflags.patch
@@ -0,0 +1,11 @@
+--- libetpan-0.57/configure.ac~	2009-09-21 23:31:42.000000000 +0200
++++ libetpan-0.57/configure.ac	2009-09-21 23:31:42.000000000 +0200
+@@ -457,7 +457,7 @@
+       LDFLAGS="-$flag $LDFLAGS"
+       AC_TRY_LINK([], [pthread_create();], 
+                       [pthflag=yes; checkpthread=no], 
+-                      [pthflag=no; LDFLAGS="$OLDCFLAGS"])
++                      [pthflag=no; LDFLAGS="$OLDFLAGS"])
+       AC_MSG_RESULT($pthflag)
+     fi
+   done
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan-0.57/sepbuild.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan-0.57/sepbuild.patch
new file mode 100644
index 0000000..4f01617
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan-0.57/sepbuild.patch
@@ -0,0 +1,16 @@
+Index: libetpan-0.57/rules.mk
+===================================================================
+--- libetpan-0.57.orig/rules.mk
++++ libetpan-0.57/rules.mk
+@@ -134,9 +134,9 @@ prepare-am: prepare-local
+ 	         if test -e ../../$(subdir)/$${hdr}; then \
+ 	           echo "$(LN_S) -f ../../$(subdir)/$${hdr} ."; \
+ 	           $(LN_S) -f ../../$(subdir)/$${hdr} .; \
+              else \
+-	           echo "$(LN_S) -f ../../$(subdir)/$(srcdir)/$${hdr} ."; \
+-	           $(LN_S) -f ../../$(subdir)/$(srcdir)/$${hdr} .; \
++	           echo "$(LN_S) -f $(srcdir)/$${hdr} ."; \
++	           $(LN_S) -f $(srcdir)/$${hdr} .; \
+              fi; \
+            fi; \
+ 	     done; \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan_0.57.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan_0.57.bb
new file mode 100644
index 0000000..1091bb0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libetpan/libetpan_0.57.bb
@@ -0,0 +1,30 @@
+DESCRIPTION = "libetpan is a library for communicating with mail and news servers. \
+It supports the protocols SMTP, POP3, IMAP and NNTP."
+HOMEPAGE = "http://www.etpan.org"
+SECTION = "libs"
+DEPENDS = "gnutls liblockfile curl"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=f18ebe7e452708c26f83954f81062ba7"
+
+PR = "r1"
+
+# http://errors.yoctoproject.org/Errors/Details/25823/
+PNBLACKLIST[libetpan] ?= "Not compatible with gnutls version 3.4 currently in oe-core"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/libetpan/libetpan-${PV}.tar.gz \
+           file://libetpan-autoreconf.patch \
+           file://libetpan-ldflags.patch \
+           file://sepbuild.patch"
+
+inherit autotools pkgconfig gettext binconfig
+
+EXTRA_OECONF = "--without-openssl --without-sasl --with-gnutls --disable-db"
+
+PARALLEL_MAKE = ""
+
+FILES_${PN} = "${libdir}/lib*.so.*"
+FILES_${PN}-dev = "${bindir} ${includedir} ${libdir}/lib*.so ${libdir}/*.la ${libdir}/*.a ${libdir}/pkgconfig"
+
+
+SRC_URI[md5sum] = "8ce8c6c071e81884a475b12b7f9a9cc0"
+SRC_URI[sha256sum] = "1f3fda5c9e2961d1a6298dc8aadae321493d37727d8db45bc2e8d58f20547011"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.2.bb
new file mode 100644
index 0000000..9b290fb
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.2.bb
@@ -0,0 +1,31 @@
+DESCRIPTION = "libftdi is a library to talk to FTDI chips.\
+FT232BM/245BM, FT2232C/D and FT232/245R using libusb,\
+including the popular bitbang mode."
+HOMEPAGE = "http://www.intra2net.com/en/developer/libftdi/"
+SECTION = "libs"
+
+LICENSE = "LGPLv2.1 & GPLv2"
+LIC_FILES_CHKSUM= "\
+    file://COPYING.GPL;md5=751419260aa954499f7abaabaa882bbe \
+    file://COPYING.LIB;md5=db979804f025cf55aabec7129cb671ed \
+"
+
+DEPENDS = "libusb1"
+
+SRC_URI = "http://www.intra2net.com/en/developer/${BPN}/download/${BPN}1-${PV}.tar.bz2"
+
+SRC_URI[md5sum] = "89dff802d89c4c0d55d8b4665fd52d0b"
+SRC_URI[sha256sum] = "a6ea795c829219015eb372b03008351cee3fb39f684bff3bf8a4620b558488d6"
+
+S = "${WORKDIR}/${BPN}1-${PV}"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[cpp-wrapper] = "-DFTDI_BUILD_CPP=on -DFTDIPP=on,-DFTDI_BUILD_CPP=off -DFTDIPP=off,boost"
+
+inherit cmake binconfig pkgconfig
+
+EXTRA_OECMAKE = "-DLIB_SUFFIX=${@d.getVar('baselib', True).replace('lib', '')}"
+
+FILES_${PN}-dev += "${libdir}/cmake"
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libjs/libjs-jquery_1.7.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libjs/libjs-jquery_1.7.2.bb
new file mode 100644
index 0000000..ec8f360
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libjs/libjs-jquery_1.7.2.bb
@@ -0,0 +1,24 @@
+SUMMARY = "JavaScript library for dynamic web applications"
+LICENSE = "MIT | BSD | GPL-2"
+LIC_FILES_CHKSUM = "file://usr/share/doc/libjs-jquery/copyright;md5=5d1ec6f95e0a91d38e2f71de93ddb00e"
+
+SRC_URI = "http://kr.archive.ubuntu.com/ubuntu/pool/main/j/jquery/${BPN}_${PV}+debian-1ubuntu1~ubuntu12.04.1_all.deb;subdir=${BP}"
+SRC_URI[md5sum] = "fa511ab67f6e960c5b6d39a4d665e47f"
+SRC_URI[sha256sum] = "190ca18a71e35c8ab2ba73fe5be3c7cc601fe20b45709d801110818f1b602cc1"
+
+JQUERYDIR = "${datadir}/javascript/jquery"
+JQUERYDOCDIR = "${docdir}/libjs-jquery"
+
+do_install() {
+    install -d -m 0755 ${D}${JQUERYDIR}
+    install -m 0644 ${S}${JQUERYDIR}/jquery.js ${D}${JQUERYDIR}/
+    install -m 0644 ${S}${JQUERYDIR}/jquery.min.js ${D}${JQUERYDIR}/
+
+    ln -sf jquery.min.js ${D}${JQUERYDIR}/jquery.lite.js
+    ln -sf jquery.min.js ${D}${JQUERYDIR}/jquery.pack.js
+
+    install -d -m 0644 ${D}${JQUERYDOCDIR}
+    install -m 0644 ${S}${JQUERYDOCDIR}/copyright ${D}${JQUERYDOCDIR}/
+}
+
+FILES_${PN} = "/usr/share/javascript/jquery"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libjs/libjs-sizzle_1.10.18.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libjs/libjs-sizzle_1.10.18.bb
new file mode 100644
index 0000000..92ab31f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libjs/libjs-sizzle_1.10.18.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Pure-JavaScript CSS selector engine"
+LICENSE = "GPL-2.0 & MIT & AFL-2.1"
+LIC_FILES_CHKSUM = "file://MIT-LICENSE.txt;md5=e43aa437a6a1ba421653bd5034333bf9"
+
+SRC_URI = "http://kr.archive.ubuntu.com/ubuntu/pool/universe/s/sizzle/sizzle_1.10.18.orig.tar.gz"
+SRC_URI[md5sum] = "91477c1edeef9f8100ffd6c4d31725b5"
+SRC_URI[sha256sum] = "8e04ab84bb74b2e338dffc63cd2e52b007f1d8af01b3d25da4d2e07f2b5890f8"
+
+S = "${WORKDIR}/sizzle-${PV}"
+
+SIZZLEDIR = "${S}/dist"
+
+do_install() {
+    install -d -m 0755 ${D}/${datadir}/javascript/sizzle/
+    install -m 0644 ${SIZZLEDIR}/*.js ${D}/${datadir}/javascript/sizzle/
+}
+
+FILES_${PN} = "${datadir}/javascript/sizzle/"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/liblinebreak/liblinebreak_1.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/liblinebreak/liblinebreak_1.2.bb
new file mode 100644
index 0000000..d0463a6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/liblinebreak/liblinebreak_1.2.bb
@@ -0,0 +1,11 @@
+DESCRIPTION = "Liblinebreak is an implementation of the line breaking algorithm as described in Unicode 5.1.0 Standard Annex 14, Revision 22"
+HOMEPAGE = "http://vimgadgets.sourceforge.net/liblinebreak/"
+SECTION = "libs"
+LICENSE = "Zlib"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=3715191da62bafb5cfc4ff36195b2ec3"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/project/vimgadgets/liblinebreak/${PV}/liblinebreak-${PV}.tar.gz"
+SRC_URI[md5sum] = "d18039259001ccb24b5dd4648c49c5ad"
+SRC_URI[sha256sum] = "9efcb0cb1afc75ad1e92d2b2dbf4d9c77b072d6656c5f1a150af8b718d0c7b76"
+
+inherit autotools
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libmcrypt/libmcrypt_2.5.8.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libmcrypt/libmcrypt_2.5.8.bb
new file mode 100644
index 0000000..2a133c6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libmcrypt/libmcrypt_2.5.8.bb
@@ -0,0 +1,12 @@
+SUMMARY = "Replacement for the old crypt() package and crypt(1) command, with extensions"
+HOMEPAGE = "http://mcrypt.sourceforge.net/"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=bbb461211a33b134d42ed5ee802b37ff"
+DEPENDS = "libtool"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/project/mcrypt/Libmcrypt/${PV}/libmcrypt-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "0821830d930a86a5c69110837c55b7da"
+SRC_URI[sha256sum] = "e4eb6c074bbab168ac47b947c195ff8cef9d51a211cdd18ca9c9ef34d27a373e"
+
+inherit autotools-brokensep gettext binconfig
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.34.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.34.bb
new file mode 100644
index 0000000..a4a0f38
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.34.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "A small C library that is supposed to make it easy to run an HTTP server as part of another application"
+HOMEPAGE = "http://www.gnu.org/software/libmicrohttpd/"
+LICENSE = "LGPL-2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=9331186f4f80db7da0e724bdd6554ee5"
+SECTION = "net"
+DEPENDS = "libgcrypt gnutls file"
+
+SRC_URI = "http://ftp.gnu.org/gnu/libmicrohttpd/${BPN}-${PV}.tar.gz"
+SRC_URI[md5sum] = "2947eee13c2c8affb95023a0cb6fda0c"
+SRC_URI[sha256sum] = "29a2bfd4fd2ddf60c756b8c283291a134898e3cc143843be421a040be1b25a88"
+
+inherit autotools lib_package
+
+# disable spdy, because it depends on openssl
+EXTRA_OECONF += "--disable-static --with-gnutls=${STAGING_LIBDIR}/../ --disable-spdy"
+
+PACKAGECONFIG ?= "curl"
+PACKAGECONFIG_append_class-target = "\
+        ${@bb.utils.contains('DISTRO_FEATURES', 'largefile', 'largefile', '', d)} \
+"
+PACKAGECONFIG[largefile] = "--enable-largefile,--disable-largefile,,"
+PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl,"
+
+do_compile_append() {
+	sed -i s:-L${STAGING_LIBDIR}::g libmicrohttpd.pc
+}
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/liboauth/liboauth_1.0.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/liboauth/liboauth_1.0.3.bb
new file mode 100644
index 0000000..3311da5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/liboauth/liboauth_1.0.3.bb
@@ -0,0 +1,16 @@
+# Copyright (C) 2014 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+DESCRIPTION = "C library implementing OAuth Core RFC 5849"
+HOMEPAGE = "http://liboauth.sourceforge.net"
+LICENSE = "MIT|GPL-2.0"
+LIC_FILES_CHKSUM = "file://COPYING.MIT;md5=6266718a5241c045c8099d9be48817df \
+                    file://COPYING.GPL;md5=0636e73ff0215e8d672dc4c32c317bb3"
+SECTION = "libs"
+DEPENDS = "curl openssl"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BP}.tar.gz"
+SRC_URI[md5sum] = "689b46c2b3ab1a39735ac33f714c4f7f"
+SRC_URI[sha256sum] = "0df60157b052f0e774ade8a8bac59d6e8d4b464058cc55f9208d72e41156811f"
+
+inherit autotools pkgconfig
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libol/libol/configure.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/libol/libol/configure.patch
new file mode 100644
index 0000000..87695fb
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libol/libol/configure.patch
@@ -0,0 +1,14 @@
+Index: libol-0.3.18/configure.in
+===================================================================
+--- libol-0.3.18.orig/configure.in	2006-03-27 14:44:52.000000000 +0000
++++ libol-0.3.18/configure.in	2014-07-18 07:05:56.029481372 +0000
+@@ -1,7 +1,7 @@
+ dnl Process this file with autoconf to produce a configure script.
+-AC_INIT(src/abstract_io.c)
++AC_INIT(libol, "0.3.18")
+ 
+-AM_INIT_AUTOMAKE(libol, "0.3.18", 1)
++AM_INIT_AUTOMAKE([foreign])
+ if test -n "$SNAPSHOT_VERSION"; then
+         VERSION=$VERSION+$SNAPSHOT_VERSION
+ fi
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libol/libol_0.3.18.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libol/libol_0.3.18.bb
new file mode 100644
index 0000000..c31f483
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libol/libol_0.3.18.bb
@@ -0,0 +1,19 @@
+SUMMARY = "A tiny C support library"
+SECTION = "libs"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b"
+
+SRC_URI = "http://www.balabit.com/downloads/files/libol/0.3/${BP}.tar.gz \
+           file://configure.patch"
+SRC_URI[md5sum] = "cbadf4b7ea276dfa85acc38a1cc5ff17"
+SRC_URI[sha256sum] = "9de3bf13297ff882e02a1e6e5f6bf760a544aff92a9d8a1cf4328a32005cefe7"
+
+inherit autotools binconfig
+
+do_compile_prepend() {
+    install ${S}/utils/make_class.in ${B}/utils
+}
+
+do_install_append() {
+    rm -fr ${D}${bindir}
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.3.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.3.0.bb
new file mode 100644
index 0000000..d97bfc6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.3.0.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Library for using PKCS"
+DESCRIPTION = "\
+Libp11 is a library implementing a small layer on top of PKCS \
+make using PKCS"
+HOMEPAGE = "http://www.opensc-project.org/libp11"
+SECTION = "Development/Libraries"
+LICENSE = "LGPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fad9b3332be894bab9bc501572864b29"
+DEPENDS = "libtool openssl"
+
+SRC_URI = "git://github.com/OpenSC/libp11.git;protocol=http"
+SRCREV = "6f71240991aa831f6fc2cc5431faf6ebec627ed2"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--disable-static"
+
+do_install_append () {
+    rm -rf ${D}${libdir}/*.la
+    rm -rf ${D}${docdir}/${BPN}
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libraw1394/libraw1394_2.1.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libraw1394/libraw1394_2.1.0.bb
new file mode 100644
index 0000000..811829e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libraw1394/libraw1394_2.1.0.bb
@@ -0,0 +1,11 @@
+SUMMARY = "base library for low-level IEEE 1394 accesses"
+HOMEPAGE = "https://ieee1394.wiki.kernel.org/index.php/Libraries#libraw1394"
+SECTION = "libs"
+LICENSE = "LGPL-2.1"
+LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=d8045f3b8f929c1cb29a1e3fd737b499"
+
+SRC_URI = "https://www.kernel.org/pub/linux/libs/ieee1394/${BPN}-${PV}.tar.gz"
+SRC_URI[md5sum] = "d06cccb776b240b6ab5efdee33b87af2"
+SRC_URI[sha256sum] = "a83cff16fb8885831bc29d7d17f3c570dc39251d89e20795c08e87720de0ba70"
+
+inherit autotools
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/files/use.pkg-config.for.freetype2.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/files/use.pkg-config.for.freetype2.patch
new file mode 100644
index 0000000..8a11f66
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/files/use.pkg-config.for.freetype2.patch
@@ -0,0 +1,57 @@
+freetype-config was removed from oe-core in
+
+commit 5870bd272b0b077d0826fb900b251884c1c05061
+Author: Richard Purdie <richard.purdie@linuxfoundation.org>
+Date:   Thu May 22 10:59:33 2014 +0100
+
+    binconfig-disabled: Add class and use
+
+diff --git a/configure.in b/configure.in
+index 408e8d6..5f9e730 100644
+--- a/configure.in
++++ b/configure.in
+@@ -86,39 +86,11 @@ case "$host" in
+ esac
+ AM_CONDITIONAL(USE_VERSION_RC, test x$use_version_rc = xtrue)
+ 
+-dnl Check for the FreeType 2 library
+-dnl
+-dnl Get the cflags and libraries from the freetype-config script
+-dnl
+-AC_ARG_WITH(freetype-prefix,[  --with-freetype-prefix=PFX   Prefix where FREETYPE is 
+-installed (optional)],
+-            freetype_prefix="$withval", freetype_prefix="")
+-AC_ARG_WITH(freetype-exec-prefix,[  --with-freetype-exec-prefix=PFX Exec prefix 
+-where FREETYPE is installed (optional)],
+-            freetype_exec_prefix="$withval", freetype_exec_prefix="")
+-
+-if test x$freetype_exec_prefix != x ; then
+-     freetype_args="$freetype_args --exec-prefix=$freetype_exec_prefix"
+-     if test x${FREETYPE_CONFIG+set} != xset ; then
+-        FREETYPE_CONFIG=$freetype_exec_prefix/bin/freetype-config
+-     fi
+-fi
+-if test x$freetype_prefix != x ; then
+-     freetype_args="$freetype_args --prefix=$freetype_prefix"
+-     if test x${FREETYPE_CONFIG+set} != xset ; then
+-        FREETYPE_CONFIG=$freetype_prefix/bin/freetype-config
+-     fi
+-fi
+-AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)
+-no_freetype=""
+-if test "$FREETYPE_CONFIG" = "no" ; then
+-    AC_MSG_ERROR([
+-*** Unable to find FreeType2 library (http://www.freetype.org/)
+-])
+-else
+-    CFLAGS="$CFLAGS `$FREETYPE_CONFIG $freetypeconf_args --cflags`"
+-    LIBS="$LIBS `$FREETYPE_CONFIG $freetypeconf_args --libs`"
+-fi
++PKG_CHECK_MODULES(FREETYPE2, freetype2, 
++    CFLAGS="$CFLAGS $FREETYPE2_CFLAGS"
++    LIBS="$LIBS $FREETYPE2_LIBS",
++    AC_MSG_ERROR([*** Unable to find FreeType2 library (http://www.freetype.org/)])
++)
+ 
+ dnl Check for SDL
+ SDL_VERSION=2.0.0
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf_2.0.11.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf_2.0.11.bb
new file mode 100644
index 0000000..0249abe
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf_2.0.11.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Simple DirectMedia Layer truetype font library"
+SECTION = "libs"
+DEPENDS = "virtual/libsdl freetype"
+LICENSE = "Zlib"
+LIC_FILES_CHKSUM = "file://COPYING;md5=22800d1b3701377aae0b61ee36f5c303"
+
+SRC_URI = "http://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-${PV}.tar.gz \
+           file://use.pkg-config.for.freetype2.patch \
+"
+SRC_URI[md5sum] = "61e29bd9da8d245bc2471d1b2ce591aa"
+SRC_URI[sha256sum] = "724cd895ecf4da319a3ef164892b72078bd92632a5d812111261cde248ebcdb7"
+
+S = "${WORKDIR}/SDL_ttf-${PV}"
+
+inherit autotools
+
+do_configure_prepend() {
+    # make autoreconf happy
+    touch ${S}/NEWS ${S}/AUTHORS ${S}/ChangeLog
+
+    # Removing these files fixes a libtool version mismatch.
+    MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4"
+
+    for i in ${MACROS}; do
+        rm -f ${S}/acinclude/$i
+    done
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf_2.0.14.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf_2.0.14.bb
new file mode 100644
index 0000000..af5a55c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf_2.0.14.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Simple DirectMedia Layer truetype font library"
+SECTION = "libs"
+DEPENDS = "virtual/libsdl2 freetype"
+LICENSE = "Zlib"
+LIC_FILES_CHKSUM = "file://COPYING.txt;md5=cb33e7c4df9fbde389f149ad6bc93ce5"
+
+SRC_URI = " \
+    http://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-${PV}.tar.gz \
+    file://use.pkg-config.for.freetype2.patch \
+"
+SRC_URI[md5sum] = "e53c05e1e7f1382c316afd6c763388b1"
+SRC_URI[sha256sum] = "34db5e20bcf64e7071fe9ae25acaa7d72bdc4f11ab3ce59acc768ab62fe39276"
+
+S = "${WORKDIR}/SDL2_ttf-${PV}"
+
+inherit autotools
+
+do_configure_prepend() {
+    touch ${S}/NEWS ${S}/README ${S}/AUTHORS ${S}/ChangeLog
+
+    # Removing these files fixes a libtool version mismatch.
+    MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4"
+
+    for i in ${MACROS}; do
+        rm -f ${S}/acinclude/$i
+    done
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libsmi/libsmi/libsmi-fix-the-test-dump-files.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/libsmi/libsmi/libsmi-fix-the-test-dump-files.patch
new file mode 100644
index 0000000..134a8bb
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libsmi/libsmi/libsmi-fix-the-test-dump-files.patch
@@ -0,0 +1,277 @@
+From 460d3a5ef450c30b34a663a073ee53329441ef6e Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Tue, 23 Feb 2016 16:34:38 +0800
+Subject: [PATCH] libsmi: fix the test dump files
+
+These test dump files were generated by smidump 0.4.5
+which would not match with the ones generated by 0.4.8,
+so update them with the ones for 0.4.8.
+
+Upstream-Status: Pending
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+---
+ test/dumps/cm/MAU-MIB       |  8 ++++----
+ test/dumps/cm/RMON2-MIB     |  6 +++---
+ test/dumps/sming/IF-MIB     | 22 +++++++++++++---------
+ test/dumps/sming/MAU-MIB    | 19 +++++++++++--------
+ test/dumps/sming/RMON2-MIB  | 40 ++++++++++++++++++++++++----------------
+ test/dumps/sming/SNMPv2-MIB | 11 +++++++----
+ 6 files changed, 62 insertions(+), 44 deletions(-)
+
+diff --git a/test/dumps/cm/MAU-MIB b/test/dumps/cm/MAU-MIB
+index 0d97284..0cfd4e1 100644
+--- a/test/dumps/cm/MAU-MIB
++++ b/test/dumps/cm/MAU-MIB
+@@ -53,7 +53,7 @@
+   <attribute name="text">
+     <composite type="text">
+       <attribute name="string">
+-        <string>#Conceptual model of MAU-MIB - generated by smidump 0.4.5#</string>
++        <string>#Conceptual model of MAU-MIB - generated by smidump 0.4.8#</string>
+       </attribute>
+       <attribute name="font">
+         <font name="Courier"/>
+@@ -1294,7 +1294,7 @@
+         <point val="29.52,49.18"/>
+      </attribute>
+       <attribute name="obj_bb">
+-       <rectangle val="28.67,32.93;30.37,34.63"/>
++       <rectangle val="28.67,32.93;30.37,34.62"/>
+      </attribute>
+      <attribute name="orth_points">
+        <point val="29.52,49.18"/>
+@@ -1678,7 +1678,7 @@
+         <point val="37.68,49.18"/>
+      </attribute>
+       <attribute name="obj_bb">
+-       <rectangle val="28.67,32.93;30.37,34.63"/>
++       <rectangle val="28.67,32.93;30.37,34.62"/>
+      </attribute>
+      <attribute name="orth_points">
+        <point val="37.68,49.18"/>
+@@ -1737,7 +1737,7 @@
+         <point val="29.52,35.78"/>
+      </attribute>
+       <attribute name="obj_bb">
+-       <rectangle val="28.67,32.93;30.37,34.63"/>
++       <rectangle val="28.67,32.93;30.37,34.62"/>
+      </attribute>
+      <attribute name="orth_points">
+        <point val="29.52,35.78"/>
+diff --git a/test/dumps/cm/RMON2-MIB b/test/dumps/cm/RMON2-MIB
+index 30ae8dd..1b9d268 100644
+--- a/test/dumps/cm/RMON2-MIB
++++ b/test/dumps/cm/RMON2-MIB
+@@ -53,7 +53,7 @@
+   <attribute name="text">
+     <composite type="text">
+       <attribute name="string">
+-        <string>#Conceptual model of RMON2-MIB - generated by smidump 0.4.5#</string>
++        <string>#Conceptual model of RMON2-MIB - generated by smidump 0.4.8#</string>
+       </attribute>
+       <attribute name="font">
+         <font name="Courier"/>
+@@ -2841,8 +2841,8 @@
+      </attribute>
+      <attribute name="orth_points">
+        <point val="18.80,55.45"/>
+-       <point val="18.80,68.63"/>
+-       <point val="22.80,68.63"/>
++       <point val="18.80,68.62"/>
++       <point val="22.80,68.62"/>
+        <point val="22.80,81.80"/>
+      </attribute>
+       <attribute name="orth_orient">
+diff --git a/test/dumps/sming/IF-MIB b/test/dumps/sming/IF-MIB
+index 21432cb..c2ffc06 100644
+--- a/test/dumps/sming/IF-MIB
++++ b/test/dumps/sming/IF-MIB
+@@ -1,16 +1,18 @@
+ //
+-// This module has been generated by smidump 0.4.5. Do not edit.
++// This module has been generated by smidump 0.4.8. Do not edit.
+ //
+ module IF-MIB {
+ 
+-  import IANAifType-MIB       (IANAifType);
+-  import IRTF-NMRG-SMING      (Counter32, Counter64, 
+-                               DisplayString255, Gauge32, 
+-                               PhysAddress, TimeStamp, TimeTicks, 
+-                               TruthValue);
+-  import IRTF-NMRG-SMING-SNMP (AutonomousType, RowStatus, 
+-                               TestAndIncr, mib-2);
+-  import SNMPv2-MIB           (snmpTraps);
++  import SNMPv2-SMI     (MODULE-IDENTITY, OBJECT-TYPE, Counter32, 
++                         Gauge32, Counter64, Integer32, TimeTicks, 
++                         mib-2, NOTIFICATION-TYPE);
++  import SNMPv2-TC      (TEXTUAL-CONVENTION, DisplayString, 
++                         PhysAddress, TruthValue, RowStatus, 
++                         TimeStamp, AutonomousType, TestAndIncr);
++  import SNMPv2-CONF    (MODULE-COMPLIANCE, OBJECT-GROUP, 
++                         NOTIFICATION-GROUP);
++  import SNMPv2-MIB     (snmpTraps);
++  import IANAifType-MIB (IANAifType);
+ 
+ //
+ // MODULE META INFORMATION
+@@ -79,6 +81,7 @@ module IF-MIB {
+   typedef InterfaceIndex {
+     type            Integer32 (1..2147483647);
+     format          "d";
++    status          current;
+     description     
+        "A unique value, greater than zero, for each interface or
+         interface sub-layer in the managed system.  It is
+@@ -91,6 +94,7 @@ module IF-MIB {
+   typedef InterfaceIndexOrZero {
+     type            Integer32 (0..2147483647);
+     format          "d";
++    status          current;
+     description     
+        "This textual convention is an extension of the
+         InterfaceIndex convention.  The latter defines a greater
+diff --git a/test/dumps/sming/MAU-MIB b/test/dumps/sming/MAU-MIB
+index 2cffd99..64cf714 100644
+--- a/test/dumps/sming/MAU-MIB
++++ b/test/dumps/sming/MAU-MIB
+@@ -1,15 +1,18 @@
+ //
+-// This module has been generated by smidump 0.4.5. Do not edit.
++// This module has been generated by smidump 0.4.8. Do not edit.
+ //
+ module MAU-MIB {
+ 
+-  import IANA-MAU-MIB         (IANAifJackType, 
+-                               IANAifMauAutoNegCapBits, 
+-                               IANAifMauMediaAvailable, 
+-                               IANAifMauTypeListBits);
+-  import IF-MIB               (InterfaceIndex);
+-  import IRTF-NMRG-SMING      (Counter32, Counter64, TruthValue);
+-  import IRTF-NMRG-SMING-SNMP (AutonomousType, mib-2);
++  import SNMPv2-SMI   (Counter32, Integer32, Counter64, OBJECT-TYPE, 
++                       MODULE-IDENTITY, NOTIFICATION-TYPE, mib-2);
++  import SNMPv2-TC    (TruthValue, AutonomousType, 
++                       TEXTUAL-CONVENTION);
++  import SNMPv2-CONF  (OBJECT-GROUP, MODULE-COMPLIANCE, 
++                       NOTIFICATION-GROUP);
++  import IF-MIB       (InterfaceIndex);
++  import IANA-MAU-MIB (IANAifMauTypeListBits, 
++                       IANAifMauMediaAvailable, 
++                       IANAifMauAutoNegCapBits, IANAifJackType);
+ 
+ //
+ // MODULE META INFORMATION
+diff --git a/test/dumps/sming/RMON2-MIB b/test/dumps/sming/RMON2-MIB
+index 423b9bc..04763e5 100644
+--- a/test/dumps/sming/RMON2-MIB
++++ b/test/dumps/sming/RMON2-MIB
+@@ -1,23 +1,26 @@
+ //
+-// This module has been generated by smidump 0.4.5. Do not edit.
++// This module has been generated by smidump 0.4.8. Do not edit.
+ //
+ module RMON2-MIB {
+ 
+-  import IF-MIB               (ifIndex);
+-  import IRTF-NMRG-SMING      (Counter32, DisplayString255, 
+-                               Gauge32, IpAddress, TimeStamp, 
+-                               TimeTicks);
+-  import IRTF-NMRG-SMING-SNMP (RowStatus, mib-2);
+-  import RMON-MIB             (OwnerString, channelEntry, 
+-                               etherStatsEntry, filter, 
+-                               filterEntry, history, 
+-                               historyControlEntry, 
+-                               hostControlEntry, hosts, matrix, 
+-                               matrixControlEntry, statistics);
+-  import TOKEN-RING-RMON-MIB  (ringStationControlEntry, 
+-                               sourceRoutingStatsEntry, 
+-                               tokenRing, tokenRingMLStatsEntry, 
+-                               tokenRingPStatsEntry);
++  import SNMPv2-SMI          (MODULE-IDENTITY, OBJECT-TYPE, 
++                              Counter32, Integer32, Gauge32, 
++                              IpAddress, TimeTicks, mib-2);
++  import SNMPv2-TC           (TEXTUAL-CONVENTION, RowStatus, 
++                              DisplayString, TimeStamp);
++  import SNMPv2-CONF         (MODULE-COMPLIANCE, OBJECT-GROUP);
++  import IF-MIB              (ifIndex);
++  import RMON-MIB            (OwnerString, statistics, history, 
++                              hosts, matrix, filter, 
++                              etherStatsEntry, 
++                              historyControlEntry, 
++                              hostControlEntry, 
++                              matrixControlEntry, filterEntry, 
++                              channelEntry);
++  import TOKEN-RING-RMON-MIB (tokenRing, tokenRingMLStatsEntry, 
++                              tokenRingPStatsEntry, 
++                              ringStationControlEntry, 
++                              sourceRoutingStatsEntry);
+ 
+ //
+ // MODULE META INFORMATION
+@@ -167,6 +170,7 @@ module RMON2-MIB {
+ 
+   typedef ZeroBasedCounter32 {
+     type            Gauge32;
++    status          current;
+     description     
+        "This TC describes an object that counts events with the
+         following semantics: objects of this type will be set to
+@@ -188,6 +192,7 @@ module RMON2-MIB {
+ 
+   typedef LastCreateTime {
+     type            TimeTicks;
++    status          current;
+     description     
+        "This TC describes an object that stores the value of the
+         sysUpTime object at the last time its entry was created.
+@@ -208,6 +213,7 @@ module RMON2-MIB {
+ 
+   typedef TimeFilter {
+     type            TimeTicks;
++    status          current;
+     description     
+        "To be used for the index to a table.  Allows an application
+         to download only those rows changed since a particular time.
+@@ -424,6 +430,7 @@ module RMON2-MIB {
+ 
+   typedef DataSource {
+     type            ObjectIdentifier;
++    status          current;
+     description     
+        "Identifies the source of the data that the associated
+         function is configured to analyze.  This source can be any
+@@ -439,6 +446,7 @@ module RMON2-MIB {
+ 
+   typedef ControlString {
+     type            OctetString (0..255);
++    status          current;
+     description     
+        "This data type is used to communicate with a modem or a
+         
+diff --git a/test/dumps/sming/SNMPv2-MIB b/test/dumps/sming/SNMPv2-MIB
+index ca355c8..0c88939 100644
+--- a/test/dumps/sming/SNMPv2-MIB
++++ b/test/dumps/sming/SNMPv2-MIB
+@@ -1,11 +1,14 @@
+ //
+-// This module has been generated by smidump 0.4.5. Do not edit.
++// This module has been generated by smidump 0.4.8. Do not edit.
+ //
+ module SNMPv2-MIB {
+ 
+-  import IRTF-NMRG-SMING      (Counter32, DisplayString255, 
+-                               TimeStamp, TimeTicks, snmpModules);
+-  import IRTF-NMRG-SMING-SNMP (TestAndIncr, mib-2);
++  import SNMPv2-SMI  (MODULE-IDENTITY, OBJECT-TYPE, 
++                      NOTIFICATION-TYPE, TimeTicks, Counter32, 
++                      snmpModules, mib-2);
++  import SNMPv2-TC   (DisplayString, TestAndIncr, TimeStamp);
++  import SNMPv2-CONF (MODULE-COMPLIANCE, OBJECT-GROUP, 
++                      NOTIFICATION-GROUP);
+ 
+ //
+ // MODULE META INFORMATION
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libsmi/libsmi/smi.conf b/import-layers/meta-openembedded/meta-oe/recipes-support/libsmi/libsmi/smi.conf
new file mode 100644
index 0000000..7e4da86
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libsmi/libsmi/smi.conf
@@ -0,0 +1,48 @@
+#
+# smi.conf - Global/User SMI configuration file. (EXAMPLE)
+#
+# Copyright (c) 2000 Frank Strauss, Technical University of Braunschweig.
+#
+# See the file "COPYING" for information on usage and redistribution
+# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+#
+# @(#) $Id: smi.conf-example 1134 2001-06-11 09:59:13Z strauss $
+#
+#
+# See smi_config(3) for detailed information on configuration files.
+#
+
+# Extend (note the semicolon) the libsmi default module search path.
+path :/usr/share/mibs/iana
+path :/usr/share/mibs/ietf
+path :/usr/share/mibs/irtf
+path :/usr/share/mibs/tubs
+
+# EXPERIMENTAL: Add a caching method (works only on UNIX systems).
+# NOTE: the cache directory must exist and permissions must be
+# handled appropriately. A simple but insecure way is to apply
+# a tmp flag to the directory (chmod 1777 /usr/local/share/mibs/cache).
+#cache /usr/local/share/mibs/cache /usr/local/bin/smicache -d /usr/local/share/mibs/cache -p http://www.ibr.cs.tu-bs.de/projects/libsmi/smicache/
+
+# Don't show any errors by default.
+level 0
+
+# Preload some basic SMIv2 modules.
+load SNMPv2-SMI
+load SNMPv2-TC
+load SNMPv2-CONF
+
+# Make smilint shout loud to report all errors and warnings.
+smilint: level 9
+
+# But please don't claim about any names longer than 32 chars.
+# (note: this is the prefix of errors `namelength-32-module,
+#  -type, -object, -enumeration, and -bit)
+smilint: hide namelength-32
+
+# Preloading some more modules for special applications.
+tcpdump: load DISMAN-SCRIPT-MIB
+tcpdump: load IF-MIB
+
+smiquery: load IF-MIB
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libsmi/libsmi_0.5.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libsmi/libsmi_0.5.0.bb
new file mode 100644
index 0000000..b049067
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libsmi/libsmi_0.5.0.bb
@@ -0,0 +1,30 @@
+SUMMARY = "A Library to Access SMI MIB Information"
+HOMEPAGE = "https://www.ibr.cs.tu-bs.de/projects/libsmi"
+
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=3ad3076f9332343a21636cfd351f05b7"
+
+SRC_URI = "https://www.ibr.cs.tu-bs.de/projects/${BPN}/download/${BP}.tar.gz \
+           file://smi.conf \
+           file://libsmi-fix-the-test-dump-files.patch \
+          "
+
+SRC_URI[md5sum] = "4bf47483c06c9f07d1b10fbc74eddf11"
+SRC_URI[sha256sum] = "f21accdadb1bb328ea3f8a13fc34d715baac6e2db66065898346322c725754d3"
+
+inherit autotools
+
+EXTRA_OECONF = "ac_cv_path_SH=${base_bindir}/sh"
+
+do_install_append () {
+    install -d ${D}${sysconfdir}
+    install -m 0644 ${WORKDIR}/smi.conf ${D}${sysconfdir}/smi.conf
+}
+
+PACKAGES += "${PN}-mibs ${PN}-pibs ${PN}-yang"
+
+FILES_${PN}-mibs += "${datadir}/mibs"
+FILES_${PN}-pibs += "${datadir}/pibs"
+FILES_${PN}-yang += "${datadir}/yang"
+
+RRECOMMENDS_${PN} = "${BPN}-mibs"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libsoc/libsoc_0.7.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libsoc/libsoc_0.7.1.bb
new file mode 100644
index 0000000..911e0ba
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libsoc/libsoc_0.7.1.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Library for interfacing with common SoC peripherals"
+DESCRIPTION = "libsoc is a C library to interface with common peripherals (gpio, i2c, spi, pwm) \
+               found in SoC (System on Chips) through generic Linux Kernel interfaces."
+
+HOMEPAGE = "https://github.com/jackmitch/libsoc"
+
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e0bfebea12a718922225ba987b2126a5"
+
+inherit autotools
+
+SRCREV = "2919c35e706fe7c311f83f9343865420fa4b37fe"
+SRC_URI = "git://github.com/jackmitch/libsoc.git"
+
+S = "${WORKDIR}/git"
+
+RDEPENDS_${PN} = "libgcc"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libsodium/libsodium_1.0.8.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libsodium/libsodium_1.0.8.bb
new file mode 100644
index 0000000..a2eef4b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libsodium/libsodium_1.0.8.bb
@@ -0,0 +1,11 @@
+SUMMARY = "The Sodium crypto library"
+HOMEPAGE = "http://libsodium.org/"
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=092a09b78c3be486fac807435bf17b7a"
+
+SRC_URI = "https://download.libsodium.org/libsodium/releases/${BPN}-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "0a66b86fd3aab3fe4c858edcd2772760"
+SRC_URI[sha256sum] = "c0f191d2527852641e0a996b7b106d2e04cbc76ea50731b2d0babd3409301926"
+
+inherit autotools
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libssh/libssh_0.7.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libssh/libssh_0.7.1.bb
new file mode 100644
index 0000000..371e1ab
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libssh/libssh_0.7.1.bb
@@ -0,0 +1,33 @@
+SUMMARY = "Multiplatform C library implementing the SSHv2 and SSHv1 protocol"
+HOMEPAGE = "http://www.libssh.org"
+SECTION = "libs"
+
+DEPENDS = "zlib openssl libgcrypt"
+
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=388a4fb1dea8ceae0be78ba9b01fc139"
+
+SRC_URI = "git://git.libssh.org/projects/libssh.git;branch=v0-7"
+SRCREV = "053f72c671a83b32238dc01b56a66752fb15b7ec"
+S = "${WORKDIR}/git"
+
+EXTRA_OECMAKE = " \
+    -DWITH_GCRYPT=1 \
+    -DWITH_PCAP=1 \
+    -DWITH_SFTP=1 \
+    -DWITH_ZLIB=1 \
+    -DLIB_SUFFIX=${@d.getVar('baselib', True).replace('lib', '')} \
+    "
+
+PACKAGECONFIG ??=""
+PACKAGECONFIG[gssapi] = "-DWITH_GSSAPI=1, -DWITH_GSSAPI=0, krb5, "
+
+inherit cmake
+
+do_configure_prepend () {
+    # Disable building of examples
+    sed -i -e '/add_subdirectory(examples)/s/^/#DONOTWANT/' ${S}/CMakeLists.txt \
+        || bbfatal "Failed to disable examples"
+}
+
+FILES_${PN}-dev += "${libdir}/cmake"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libssh2/libssh2_1.6.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libssh2/libssh2_1.6.0.bb
new file mode 100644
index 0000000..c43164e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libssh2/libssh2_1.6.0.bb
@@ -0,0 +1,24 @@
+SUMMARY = "A client-side C library implementing the SSH2 protocol"
+HOMEPAGE = "http://www.libssh2.org/"
+SECTION = "libs"
+
+DEPENDS = "zlib"
+
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c5cf34fc0acb44b082ef50ef5e4354ca"
+
+SRC_URI = "http://www.libssh2.org/download/${BP}.tar.gz"
+SRC_URI[md5sum] = "00aabd6e714a5f42a4fb82ace20db1dd"
+SRC_URI[sha256sum] = "5a202943a34a1d82a1c31f74094f2453c207bf9936093867f41414968c8e8215"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF += "\
+                 --with-libz \
+                 --with-libz-prefix=${STAGING_LIBDIR} \
+                "
+
+# only one of openssl and gcrypt could be set
+PACKAGECONFIG ??= "openssl"
+PACKAGECONFIG[openssl] = "--with-openssl --with-libssl-prefix=${STAGING_LIBDIR},--without-openssl,openssl"
+PACKAGECONFIG[gcrypt] = "--with-libgcrypt --with-libgcrypt-prefix=${STAGING_EXECPREFIXDIR},--without-libgcrypt,libgcrypt"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libtinyxml/libtinyxml/enforce-use-stl.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/libtinyxml/libtinyxml/enforce-use-stl.patch
new file mode 100644
index 0000000..88c962b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libtinyxml/libtinyxml/enforce-use-stl.patch
@@ -0,0 +1,20 @@
+Description: TinyXml is built with TIXML_USE_STL, so we have to
+ enforce it when the library is used.
+Author: Felix Geyer <debfx-pkg@fobos.de>
+
+Upstream-Status: Pending
+
+diff -Nur tinyxml-2.5.3/tinyxml.h tinyxml-2.5.3.patch/tinyxml.h
+--- tinyxml-2.5.3/tinyxml.h	2007-05-07 00:41:23.000000000 +0200
++++ tinyxml-2.5.3.patch/tinyxml.h	2009-07-08 22:32:03.000000000 +0200
+@@ -26,6 +26,10 @@
+ #ifndef TINYXML_INCLUDED
+ #define TINYXML_INCLUDED
+ 
++#ifndef TIXML_USE_STL
++	#define TIXML_USE_STL
++#endif
++
+ #ifdef _MSC_VER
+ #pragma warning( push )
+ #pragma warning( disable : 4530 )
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libtinyxml/libtinyxml/entity-encoding.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/libtinyxml/libtinyxml/entity-encoding.patch
new file mode 100644
index 0000000..b801506
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libtinyxml/libtinyxml/entity-encoding.patch
@@ -0,0 +1,62 @@
+Description: TinyXML incorrectly encodes text element containing
+ an ampersand followed by either x or #.
+
+Origin: http://sourceforge.net/tracker/index.php?func=detail&aid=3031828&group_id=13559&atid=313559
+
+Upstream-Status: Pending
+
+diff -u -r1.105 tinyxml.cpp
+--- a/tinyxml.cpp
++++ b/tinyxml.cpp
+@@ -57,30 +57,7 @@
+ 	{
+ 		unsigned char c = (unsigned char) str[i];
+ 
+-		if (    c == '&' 
+-		     && i < ( (int)str.length() - 2 )
+-			 && str[i+1] == '#'
+-			 && str[i+2] == 'x' )
+-		{
+-			// Hexadecimal character reference.
+-			// Pass through unchanged.
+-			// &#xA9;	-- copyright symbol, for example.
+-			//
+-			// The -1 is a bug fix from Rob Laveaux. It keeps
+-			// an overflow from happening if there is no ';'.
+-			// There are actually 2 ways to exit this loop -
+-			// while fails (error case) and break (semicolon found).
+-			// However, there is no mechanism (currently) for
+-			// this function to return an error.
+-			while ( i<(int)str.length()-1 )
+-			{
+-				outString->append( str.c_str() + i, 1 );
+-				++i;
+-				if ( str[i] == ';' )
+-					break;
+-			}
+-		}
+-		else if ( c == '&' )
++		if ( c == '&' )
+ 		{
+ 			outString->append( entity[0].str, entity[0].strLength );
+ 			++i;
+diff -u -r1.89 xmltest.cpp
+--- a/xmltest.cpp
++++ b/xmltest.cpp
+@@ -1340,6 +1340,16 @@
+ 		}*/
+ 	}
+ 
++	#ifdef TIXML_USE_STL
++	{
++		TiXmlDocument xml;
++		xml.Parse("<foo>foo&amp;#xa+bar</foo>");
++		std::string str;
++		str << xml;
++		XmlTest( "Entity escaping", "<foo>foo&amp;#xa+bar</foo>", str.c_str() );
++	}
++	#endif
++
+ 	/*  1417717 experiment
+ 	{
+ 		TiXmlDocument xml;
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libtinyxml/libtinyxml_2.6.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libtinyxml/libtinyxml_2.6.2.bb
new file mode 100644
index 0000000..e09a539
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libtinyxml/libtinyxml_2.6.2.bb
@@ -0,0 +1,45 @@
+# (c) Copyright 2012  Hewlett-Packard Development Company, L.P. 
+
+SUMMARY = "a simple, small, minimal, C++ XML parser"
+HOMEPAGE = "http://www.sourceforge.net/projects/tinyxml"
+LICENSE = "Zlib"
+LIC_FILES_CHKSUM = "file://readme.txt;md5=f8f366f3370dda889f60faa7db162cf4"
+SECTION = "libs"
+
+PR = "r5"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/tinyxml/tinyxml_${@'${PV}'.replace('.', '_')}.tar.gz \
+           file://enforce-use-stl.patch \
+           file://entity-encoding.patch"
+SRC_URI[md5sum] = "c1b864c96804a10526540c664ade67f0"
+SRC_URI[sha256sum] = "15bdfdcec58a7da30adc87ac2b078e4417dbe5392f3afb719f9ba6d062645593"
+
+S = "${WORKDIR}/tinyxml"
+
+EXTRA_CXXFLAGS = "-I. -fPIC"
+
+do_compile() {
+    ${CXX} ${CXXFLAGS} ${EXTRA_CXXFLAGS} -c -o tinyxml.o tinyxml.cpp
+    ${CXX} ${CXXFLAGS} ${EXTRA_CXXFLAGS} -c -o tinyxmlerror.o tinyxmlerror.cpp
+    ${CXX} ${CXXFLAGS} ${EXTRA_CXXFLAGS} -c -o tinyxmlparser.o tinyxmlparser.cpp
+    ${CXX} ${CXXFLAGS} \
+            -shared \
+            -Wl,-soname,libtinyxml.so.${PV} \
+            -o libtinyxml.so.${PV} \
+            ${LDFLAGS} \
+            tinyxml.o \
+            tinyxmlparser.o \
+            tinyxmlerror.o
+
+}
+
+do_install() {
+    install -d ${D}${libdir}
+    install -m 0755 ${S}/libtinyxml.so.${PV} ${D}${libdir}
+    ln -sf libtinyxml.so.${PV} ${D}${libdir}/libtinyxml.so
+
+    install -d ${D}${includedir}
+    install -m 0644 ${S}/tinyxml.h ${D}${includedir}
+}
+
+BBCLASSEXTEND += "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_3.0.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_3.0.0.bb
new file mode 100644
index 0000000..af0b785
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_3.0.0.bb
@@ -0,0 +1,15 @@
+SUMMARY = "TinyXML-2 is a simple, small, efficient, C++ XML parser that can be easily integrating into other programs"
+HOMEPAGE = "http://www.grinninglizard.com/tinyxml2/"
+SECTION = "libs"
+LICENSE = "Zlib"
+LIC_FILES_CHKSUM = "file://tinyxml2.cpp;endline=22;md5=c19221dbd8a66ad3090462af4c5de5e7"
+
+SRC_URI = "git://github.com/leethomason/tinyxml2.git"
+
+SRCREV = "1977a7258cc66fd4da7f1e9da05a4933646a7803"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libusbg/libusbg/0001-Fix-out-of-tree-builds.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/libusbg/libusbg/0001-Fix-out-of-tree-builds.patch
new file mode 100644
index 0000000..6be49fb
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libusbg/libusbg/0001-Fix-out-of-tree-builds.patch
@@ -0,0 +1,39 @@
+From 6118c6ec1291a5c731aa8d4f0c1eb8cce43d47ad Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Mon, 4 Aug 2014 09:04:08 +0200
+Subject: [PATCH] Fix out-of-tree builds
+
+The include flag should point to the source directory, not the build
+directory.
+
+Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
+Upstream-status: Submitted [https://github.com/libusbg/libusbg/pull/9]
+---
+ examples/Makefile.am | 2 +-
+ src/Makefile.am      | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/examples/Makefile.am b/examples/Makefile.am
+index f9f9407..ef4f81e 100644
+--- a/examples/Makefile.am
++++ b/examples/Makefile.am
+@@ -1,5 +1,5 @@
+ bin_PROGRAMS = show-gadgets gadget-acm-ecm 
+ gadget_acm_ecm_SOURCES = gadget-acm-ecm.c
+ show_gadgets_SOURCES = show-gadgets.c
+-AM_CPPFLAGS=-I../include/
++AM_CPPFLAGS=-I$(top_srcdir)/include/
+ AM_LDFLAGS=-L../src/ -lusbg
+diff --git a/src/Makefile.am b/src/Makefile.am
+index d955a4c..2f71366 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -1,4 +1,4 @@
+ lib_LTLIBRARIES = libusbg.la
+ libusbg_la_SOURCES = usbg.c
+ libusbg_la_LDFLAGS = -version-info 0:1:0
+-AM_CPPFLAGS=-I../include/
++AM_CPPFLAGS=-I$(top_srcdir)/include/
+-- 
+1.9.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libusbg/libusbg_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libusbg/libusbg_git.bb
new file mode 100644
index 0000000..97d60a6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libusbg/libusbg_git.bb
@@ -0,0 +1,16 @@
+SUMMARY = "USB Gadget Configfs Library"
+
+LICENSE = "GPLv2 & LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+                    file://COPYING.LGPL;md5=4fbd65380cdd255951079008b364516c"
+
+inherit autotools
+
+PV = "0.1.0"
+SRCREV = "a826d136e0e8fa53815f1ba05893e6dd74208c15"
+SRC_URI = "git://github.com/libusbg/libusbg.git \
+           file://0001-Fix-out-of-tree-builds.patch \
+          "
+
+S = "${WORKDIR}/git"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libutempter/libutempter.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/libutempter/libutempter.bb
new file mode 100644
index 0000000..0282ba5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libutempter/libutempter.bb
@@ -0,0 +1,39 @@
+SUMMARY = "A privileged helper for utmp/wtmp updates"
+DESCRIPTION = "\
+This library provides interface for terminal emulators such as \
+screen and xterm to record user sessions to utmp and wtmp files."
+HOMEPAGE = "ftp://ftp.altlinux.org/pub/people/ldv/utempter"
+SECTION = "System Environment/Libraries"
+LICENSE = "GPLv2 & GPLv2+ & LGPLv2 & MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
+
+SRCREV = "3ef74fff310f09e2601e241b9f042cd39d591018"
+PV = "1.1.6-alt2+git${SRCPV}"
+
+SRC_URI = "git://git.altlinux.org/people/ldv/packages/libutempter.git \
+    file://0001-Fix-macro-error.patch"
+
+S = "${WORKDIR}/git/${BPN}"
+
+CFLAGS += "-DLIBEXECDIR=${libexecdir}"
+
+do_compile() {
+    oe_runmake                      \
+        libdir=${libdir}            \
+        libexecdir=${libexecdir}
+}
+
+do_install() {
+    oe_runmake install              \
+        DESTDIR=${D}                \
+        libdir="${libdir}"          \
+        libexecdir="${libexecdir}"  \
+        includedir=${includedir}    \
+        mandir=${mandir}
+
+    rm -f ${D}${libdir}/*.a
+}
+
+FILES_${PN} = "${libdir}/*.so.*"
+FILES_${PN} += "${libexecdir}/utempter/utempter"
+FILES_${PN}-dbg += "${libexecdir}/utempter/.debug/utempter"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/libutempter/libutempter/0001-Fix-macro-error.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/libutempter/libutempter/0001-Fix-macro-error.patch
new file mode 100644
index 0000000..8140ea3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/libutempter/libutempter/0001-Fix-macro-error.patch
@@ -0,0 +1,36 @@
+From fc2bd592ad17d1c2a2a989750e69dfaedc28c633 Mon Sep 17 00:00:00 2001
+From: Qian Lei <qianl.fnst@cn.fujitsu.com>
+Date: Fri, 9 Jan 2015 10:40:29 +0800
+Subject: [PATCH] Fix macro error
+
+compile error when build on almost all architectures.
+
+Upstream-Status: Pending
+Signed-off-by: Qian Lei <qianl.fnst@cn.fujitsu.com>
+---
+ iface.c | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/iface.c b/iface.c
+index 5951d81..27793f0 100644
+--- a/iface.c
++++ b/iface.c
+@@ -43,7 +43,14 @@
+        __result; }))
+ #endif
+ 
+-#define	UTEMPTER_DEFAULT_PATHNAME	LIBEXECDIR "/utempter/utempter"
++#ifdef  LIBEXECDIR
++#  define CAT_PATH(DIR1,DIR2)           DIR1##DIR2
++#  define RAW_UTEMPTER_PATH             CAT_PATH(LIBEXECDIR,/utempter/utempter)
++#else
++#  define RAW_UTEMPTER_PATH             /usr/lib/libtempter/utempter/utempter
++#endif
++#define STR_PATH(RAW_STR)               #RAW_STR
++#define UTEMPTER_DEFAULT_PATHNAME       STR_PATH(RAW_UTEMPTER_PATH)
+ 
+ static const char *utempter_pathname;
+ static int saved_fd = -1;
+-- 
+1.8.3.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/links/files/ac-prog-cxx.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/links/files/ac-prog-cxx.patch
new file mode 100644
index 0000000..41c3826
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/links/files/ac-prog-cxx.patch
@@ -0,0 +1,11 @@
+--- links-2.1pre20/configure.in.orig	2005-12-21 15:23:49.000000000 +0000
++++ links-2.1pre20/configure.in	2005-12-21 15:23:59.000000000 +0000
+@@ -18,7 +18,7 @@
+ dnl Checks for programs.
+ AC_PROG_CC
+ 
+-#AC_PROG_CXX
++AC_PROG_CXX
+ #AC_PROG_AWK
+ #AM_PROG_LEX
+ #AC_PROG_YACC
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/links/files/links2.desktop b/import-layers/meta-openembedded/meta-oe/recipes-support/links/files/links2.desktop
new file mode 100644
index 0000000..a05bce1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/links/files/links2.desktop
@@ -0,0 +1,14 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=Links
+Comment=Links is a browser very similar to lynx
+Comment[es]=El links es un browser para modo texto, similar a lynx
+Comment[pl]=Links jest przeglÄ…darkÄ… podobnÄ… do lynksa
+Comment[pt]=O links é um browser para modo texto, similar ao lynx
+Comment[pt_BR]=O links é um browser para modo texto, similar ao lynx
+Exec=links -g
+Terminal=true
+Icon=links2
+Type=Application
+Categories=Application;ConsoleOnly;Network;WebBrowser;
+# vi: encoding=utf-8
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/links/links-x11_2.7.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/links/links-x11_2.7.bb
new file mode 100644
index 0000000..2ae11ac
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/links/links-x11_2.7.bb
@@ -0,0 +1,31 @@
+require links.inc
+
+DEPENDS += "virtual/libx11"
+RCONFLICTS_${PN} = "links"
+
+inherit distro_features_check
+# depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI += " file://links2.desktop \
+             http://www.xora.org.uk/oe/links2.png;name=icon"
+
+S = "${WORKDIR}/links-${PV}"
+
+EXTRA_OECONF = "--enable-graphics \
+                --with-ssl=${STAGING_LIBDIR}/.. --with-libjpeg \
+                --without-libtiff --without-svgalib --without-fb \
+                --without-directfb --without-pmshell --without-atheos \
+                --with-x --without-gpm"
+
+do_install_append() {
+    install -d ${D}/${datadir}/applications
+    install -m 0644 ${WORKDIR}/links2.desktop ${D}/${datadir}/applications
+    install -d ${D}/${datadir}/pixmaps
+    install -m 0644 ${WORKDIR}/links2.png ${D}/${datadir}/pixmaps
+}
+
+SRC_URI[md5sum] = "d06aa6e14b2172d73188871a5357185a"
+SRC_URI[sha256sum] = "0c182b1cbcdfd5cdcd2f75a6032d1a4b660d07c1225c1e07757cec81d3302130"
+SRC_URI[icon.md5sum] = "477e8787927c634614bac01b44355a33"
+SRC_URI[icon.sha256sum] = "eddcd8b8c8698aa621d1a453943892d77b72ed492e0d14e0dbac5c6a57e52f47"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/links/links.inc b/import-layers/meta-openembedded/meta-oe/recipes-support/links/links.inc
new file mode 100644
index 0000000..e072408
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/links/links.inc
@@ -0,0 +1,17 @@
+DESCRIPTION = "Links is graphics and text mode WWW \
+browser, similar to Lynx."
+HOMEPAGE = "http://links.twibright.com/"
+SECTION = "console/network"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=65e735be2e05d5943803344148f57603"
+DEPENDS = "jpeg libpng flex openssl zlib"
+
+SRC_URI = "http://links.twibright.com/download/links-${PV}.tar.bz2 \
+           file://ac-prog-cxx.patch \
+"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[bzip2] = "--with-bzip2,--without-bzip2,bzip2"
+PACKAGECONFIG[lzma] = "--with-lzma,--without-lzma,xz"
+
+inherit autotools pkgconfig
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/links/links_2.7.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/links/links_2.7.bb
new file mode 100644
index 0000000..e80dd7b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/links/links_2.7.bb
@@ -0,0 +1,13 @@
+require links.inc
+
+DEPENDS += "gpm"
+RCONFLICTS_${PN} = "links-x11"
+
+EXTRA_OECONF = "--enable-graphics \
+                --with-ssl=${STAGING_LIBDIR}/.. --with-libjpeg \
+                --without-libtiff --without-svgalib --with-fb \
+                --without-directfb --without-pmshell --without-atheos \
+                --without-x"
+
+SRC_URI[md5sum] = "d06aa6e14b2172d73188871a5357185a"
+SRC_URI[sha256sum] = "0c182b1cbcdfd5cdcd2f75a6032d1a4b660d07c1225c1e07757cec81d3302130"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb
new file mode 100644
index 0000000..35ba161
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb
@@ -0,0 +1,60 @@
+SUMMARY = "lio-utils"
+DESCRIPTION = "a simple low-level configuration tool set for the Target+iSCSI (LIO)"
+HOMEPAGE = "http://linux-iscsi.org/index.php/Lio-utils"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://debian/copyright;md5=c3ea231a32635cbb5debedf3e88aa3df"
+
+PV = "4.1+git${SRCPV}"
+
+SRC_URI = "git://risingtidesystems.com/lio-utils.git"
+SRCREV = "28bd928655bdc7bd3cf380f0196630690c51e05f"
+S = "${WORKDIR}/git"
+
+inherit distutils
+
+EXTRA_OEMAKE += "DESTDIR=${D}"
+
+do_compile() {
+    cd ${S}/tcm-py
+    distutils_do_compile
+
+    cd ${S}/lio-py
+    distutils_do_compile
+
+    if test -d ${S}/tools; then
+        oe_runmake -C ${S}/tools
+    fi
+}
+
+do_install() {
+    cd ${S}/tcm-py
+    distutils_do_install
+
+    cd ${S}/lio-py
+    distutils_do_install
+
+    SITE_PACKAGES=${D}/${PYTHON_SITEPACKAGES_DIR}
+    install -d ${D}/${sbindir}
+    for var in tcm_node tcm_dump tcm_loop tcm_fabric lio_dump lio_node; do
+        if [ ! -h ${D}/${sbindir}/${var} ];then
+            chmod a+x ${SITE_PACKAGES}/${var}.py
+            ln -s ${PYTHON_SITEPACKAGES_DIR}/${var}.py ${D}/${sbindir}/${var}
+        fi
+    done
+
+    if test -d ${S}/tools; then
+        oe_runmake -C ${S}/tools install
+    fi
+
+    install -d ${D}/etc/target/
+    install -d ${D}/etc/init.d/
+    install -m 755 ${S}/scripts/rc.target ${D}/etc/init.d/
+    install -m 755 ${S}/conf/tcm_start.default ${D}/etc/target/tcm_start.sh
+    install -m 755 ${S}/conf/lio_start.default ${D}/etc/target/lio_start.sh
+}
+
+RDEPENDS_${PN} += "python-stringold python-subprocess python-shell \
+    python-datetime python-textutils python-crypt python-netclient python-email \
+    bash"
+
+FILES_${PN} += "${sbindir}/* /etc/init.d/* /etc/target/*"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors-config/fancontrol b/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors-config/fancontrol
new file mode 100644
index 0000000..1f03a2b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors-config/fancontrol
@@ -0,0 +1,2 @@
+# fancontrol configuration file.
+# Place your device specific configuration in this file.
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors-config/sensord b/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors-config/sensord
new file mode 100644
index 0000000..a58362e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors-config/sensord
@@ -0,0 +1,16 @@
+# configuration for hardware sensors monitoring daemon
+# in intervals use suffix "m" for minutes, "s" for seconds, "h" for hours
+# 0 means turning facility off
+
+# interval between scanning alarms
+INTERVAL=1m
+
+# interval between logging
+LOG_INTERVAL=20m
+
+# interval between RRD logging
+# RRD_INTERVAL=1m
+
+# RRD db location
+# RRD_LOGFILE=/var/log/sensors.rrd
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors-config/sensord.cgi b/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors-config/sensord.cgi
new file mode 100644
index 0000000..b1aad05
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors-config/sensord.cgi
@@ -0,0 +1,10 @@
+#!/usr/bin/rrdcgi
+
+<html>
+<head>
+<title>sensord</title>
+</head>
+<body>
+Generate a valid sensord.cgi script and install it in your BSP.
+</body>
+</html>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors-config/sensord.conf b/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors-config/sensord.conf
new file mode 100644
index 0000000..6b48cf6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors-config/sensord.conf
@@ -0,0 +1,16 @@
+# Default sensord configuration file
+# Syntax: sensord {options} {chips}
+# -i, --interval <time>     -- interval between scanning alarms (default 60s)
+# -l, --log-interval <time> -- interval between logging sensors (default 30m)
+# -t, --rrd-interval <time> -- interval between updating RRD file (default 5m)
+# -T, --rrd-no-average      -- switch RRD in non-average mode
+# -r, --rrd-file <file>     -- RRD file (default <none>)
+# -c, --config-file <file>  -- configuration file
+# -p, --pid-file <file>     -- PID file (default /var/run/sensord.pid)
+# -f, --syslog-facility <f> -- syslog facility to use (default local4)
+# -g, --rrd-cgi <img-dir>   -- output an RRD CGI script and exit
+# -a, --load-average        -- include load average in RRD file
+# -d, --debug               -- display some debug information
+# -v, --version             -- display version and exit
+# -h, --help                -- display help and exit
+SENSORD_ARGS="-i60s -l30m -t1m -r/var/lib/sensord.rrd -a"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors-config/sensors.conf b/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors-config/sensors.conf
new file mode 100644
index 0000000..bb8c93d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors-config/sensors.conf
@@ -0,0 +1,2 @@
+# sensors configuration file.
+# Place your device specific configuration in this file.
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors-config_1.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors-config_1.0.bb
new file mode 100644
index 0000000..3638019
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors-config_1.0.bb
@@ -0,0 +1,63 @@
+SUMMARY = "lm_sensors configuration files"
+DESCRIPTION = "Hardware health monitoring configuration files"
+HOMEPAGE = "http://www.lm-sensors.org/"
+LICENSE = "MIT-X"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+SRC_URI = "file://fancontrol \
+           file://sensord.cgi \
+           file://sensord.conf \
+           file://sensors.conf \
+           file://sensord \
+"
+S = "${WORKDIR}"
+
+RDEPENDS_${PN}-dev = ""
+
+do_install() {
+    # Install fancontrol configuration file
+    install -d ${D}${sysconfdir}/sysconfig
+    install -m 0644 ${WORKDIR}/fancontrol ${D}${sysconfdir}
+    install -m 0644 ${WORKDIR}/sensord ${D}${sysconfdir}/sysconfig
+    # Install libsensors configuration file
+    install -d ${D}${sysconfdir}/sensors.d
+    install -m 0644 ${WORKDIR}/sensors.conf ${D}${sysconfdir}/sensors.d
+
+    # Install sensord configuration file
+    install -m 0644 ${WORKDIR}/sensord.conf ${D}${sysconfdir}
+
+    # Install sensord.cgi script and create world-writable
+    # web-accessible sensord directory
+    install -d ${D}/www/pages/cgi-bin
+    install -m 0755 ${WORKDIR}/sensord.cgi ${D}/www/pages/cgi-bin
+    install -d -m a=rwxs ${D}/www/pages/sensord
+}
+
+# libsensors configuration
+PACKAGES =+ "${PN}-libsensors"
+
+# sensord logging daemon configuration
+PACKAGES =+ "${PN}-sensord"
+
+# fancontrol script configuration
+PACKAGES =+ "${PN}-fancontrol"
+
+# sensord web cgi support
+PACKAGES =+ "${PN}-cgi"
+RRECOMMENDS_${PN}-cgi = "lighttpd lighttpd-module-cgi"
+RDEPENDS_${PN}-cgi = "${PN}-sensord rrdtool"
+FILES_${PN}-cgi = "/www/*" 
+
+# libsensors configuration file
+FILES_${PN}-libsensors = "${sysconfdir}/sensors.d/sensors.conf"
+
+# sensord logging daemon configuration files
+FILES_${PN}-sensord = "\
+    ${sysconfdir}/sensord.conf \
+    ${sysconfdir}/sysconfig/sensord \
+"
+
+# fancontrol script configuration file
+FILES_${PN}-fancontrol = "${sysconfdir}/fancontrol"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors/fancontrol.init b/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors/fancontrol.init
new file mode 100644
index 0000000..4433020
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors/fancontrol.init
@@ -0,0 +1,47 @@
+#!/bin/sh
+### BEGIN INIT INFO
+# Provides:          fancontrol
+# Required-Start:    $local_fs
+# Should-Start:
+# Required-Stop:     $local_fs
+# Should-Stop:
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+# Short-Description: fancontrol initscript
+# Description:       Starts and controls the fancontrol daemon
+### END INIT INFO
+
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+
+DESC="fan control daemon"
+NAME="fancontrol"
+FANCONTROL=`which $NAME`
+PIDFILE="/var/run/fancontrol.pid"
+
+# Exit if the package is not installed
+[ -x "$FANCONTROL" ] || exit 0
+
+case "$1" in
+    start)
+        echo -n "Starting $DESC: $NAME... "
+        start-stop-daemon -S -p $PIDFILE -b -x $FANCONTROL
+        echo "done."
+        ;;
+    stop)
+        echo -n "Stopping $DESC: $NAME... "
+        start-stop-daemon -K -p $PIDFILE
+        echo "done."
+        ;;
+    restart)
+        echo "Restarting $DESC: $NAME... "
+        $0 stop
+        $0 start
+        echo "done."
+        ;;
+    *)
+        echo "Usage: $0 {start|stop|restart}"
+        exit 1
+        ;;
+esac
+
+exit 0
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors/sensord.init b/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors/sensord.init
new file mode 100644
index 0000000..5a09cd3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors/sensord.init
@@ -0,0 +1,49 @@
+#! /bin/sh
+### BEGIN INIT INFO
+# Provides:          sensord
+# Required-Start:    $local_fs
+# Should-Start:
+# Required-Stop:     $local_fs
+# Should-Stop:
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+# Short-Description: sensord initscript
+# Description:       Starts the sensord logging daemon
+### END INIT INFO
+
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+
+DESC="sensors logging daemon"
+NAME="sensord"
+SENSORD=`which $NAME`
+
+. /etc/init.d/functions || exit 1
+. /etc/sensord.conf || exit 1
+
+# Exit if the package is not installed
+[ -x "$SENSORD" ] || exit 0
+
+case "$1" in
+    start)
+        echo -n "Starting $DESC: $NAME... "
+        start-stop-daemon -S -x $SENSORD -- $SENSORD_ARGS
+        echo "done."
+        ;;
+    stop)
+        echo -n "Stopping $DESC: $NAME... "
+        start-stop-daemon -K -x $SENSORD
+        echo "done."
+        ;;
+    restart)
+        echo "Restarting $DESC: $NAME... "
+        $0 stop
+        $0 start
+        echo "done."
+        ;;
+    *)
+        echo "Usage: $0 {start|stop|restart}"
+        exit 1
+        ;;
+esac
+
+exit 0
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors_3.4.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors_3.4.0.bb
new file mode 100644
index 0000000..857a57b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/lm_sensors/lmsensors_3.4.0.bb
@@ -0,0 +1,133 @@
+SUMMARY = "lm_sensors"
+DESCRIPTION = "Hardware health monitoring applications"
+HOMEPAGE = "http://www.lm-sensors.org/"
+LICENSE = "GPLv2+ & LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
+                    file://COPYING.LGPL;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = "sysfsutils virtual/libiconv bison-native flex-native rrdtool"
+
+SRC_URI = "http://dl.lm-sensors.org/lm-sensors/releases/lm_sensors-${PV}.tar.bz2 \
+           file://fancontrol.init \
+           file://sensord.init \
+"
+SRC_URI[md5sum] = "c03675ae9d43d60322110c679416901a"
+SRC_URI[sha256sum] = "e0579016081a262dd23eafe1d22b41ebde78921e73a1dcef71e05e424340061f"
+
+inherit update-rc.d systemd
+
+RDEPENDS_${PN}-dev = ""
+
+INITSCRIPT_PACKAGES = "${PN}-fancontrol ${PN}-sensord"
+INITSCRIPT_NAME_${PN}-fancontrol = "fancontrol"
+INITSCRIPT_NAME_${PN}-sensord = "sensord"
+INITSCRIPT_PARAMS_${PN}-fancontrol = "defaults 66"
+INITSCRIPT_PARAMS_${PN}-sensord = "defaults 67"
+
+SYSTEMD_PACKAGES = "${PN}-sensord"
+SYSTEMD_SERVICE_${PN}-sensord = "sensord.service lm_sensors.service fancontrol.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+S = "${WORKDIR}/lm_sensors-${PV}"
+
+EXTRA_OEMAKE = 'EXLDFLAGS="${LDFLAGS}" \
+        MACHINE=${TARGET_ARCH} PREFIX=${prefix} MANDIR=${mandir} \
+        LIBDIR=${libdir} \
+        CC="${CC}" AR="${AR}"'
+
+do_compile() {
+    oe_runmake user PROG_EXTRA="sensors sensord"
+}
+
+do_install() {
+    oe_runmake user_install DESTDIR=${D}
+    install -m 0755 ${S}/prog/sensord/sensord ${D}${sbindir}
+    install -m 0644 ${S}/prog/sensord/sensord.8 ${D}${mandir}/man8
+
+    # Install directory
+    install -d ${D}${sysconfdir}/init.d
+
+    # Install fancontrol init script
+    install -m 0755 ${WORKDIR}/fancontrol.init \
+        ${D}${sysconfdir}/init.d/fancontrol
+
+    # Install sensord init script
+    install -m 0755 ${WORKDIR}/sensord.init ${D}${sysconfdir}/init.d/sensord
+
+    # Insall sensord service script
+    if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+        install -d ${D}${systemd_unitdir}/system
+        install -m 0644 ${S}/prog/init/*.service ${D}${systemd_unitdir}/system
+    fi
+}
+
+# libsensors packages
+PACKAGES =+ "${PN}-libsensors ${PN}-libsensors-dbg ${PN}-libsensors-dev ${PN}-libsensors-staticdev ${PN}-libsensors-doc"
+
+# sensors command packages
+PACKAGES =+ "${PN}-sensors ${PN}-sensors-dbg ${PN}-sensors-doc"
+
+# sensord logging daemon
+PACKAGES =+ "${PN}-sensord ${PN}-sensord-dbg ${PN}-sensord-doc"
+
+# fancontrol script
+PACKAGES =+ "${PN}-fancontrol ${PN}-fancontrol-doc"
+
+# sensors-detect script
+PACKAGES =+ "${PN}-sensorsdetect ${PN}-sensorsdetect-doc"
+
+# sensors-conf-convert script
+PACKAGES =+ "${PN}-sensorsconfconvert ${PN}-sensorsconfconvert-doc"
+
+# pwmconfig script
+PACKAGES =+ "${PN}-pwmconfig ${PN}-pwmconfig-doc"
+
+# isadump and isaset helper program
+PACKAGES =+ "${PN}-isatools ${PN}-isatools-dbg ${PN}-isatools-doc"
+
+# libsensors files
+FILES_${PN}-libsensors = "${libdir}/libsensors.so.* ${sysconfdir}/sensors3.conf ${sysconfdir}/sensors.d"
+FILES_${PN}-libsensors-dbg = "${libdir}/.debug ${prefix}/src/debug"
+FILES_${PN}-libsensors-dev = "${libdir}/libsensors.so ${includedir}"
+FILES_${PN}-libsensors-staticdev = "${libdir}/libsensors.a"
+FILES_${PN}-libsensors-doc = "${mandir}/man3"
+RRECOMMENDS_${PN}-libsensors = "lmsensors-config-libsensors"
+
+# sensors command files
+FILES_${PN}-sensors = "${bindir}/sensors"
+FILES_${PN}-sensors-dbg = "${bindir}/.debug/sensors"
+FILES_${PN}-sensors-doc = "${mandir}/man1 ${mandir}/man5"
+RDEPENDS_${PN}-sensors = "${PN}-libsensors"
+
+# sensord logging daemon
+FILES_${PN}-sensord = "${sbindir}/sensord ${sysconfdir}/init.d/sensord ${systemd_unitdir}/system/sensord.service"
+FILES_${PN}-sensord-dbg = "${bindir}/.debug/sensord"
+FILES_${PN}-sensord-doc = "${mandir}/man8/sensord.8"
+RDEPENDS_${PN}-sensord = "${PN}-sensors rrdtool"
+RRECOMMENDS_${PN}-sensord = "lmsensors-config-sensord"
+
+# fancontrol script files
+FILES_${PN}-fancontrol = "${sbindir}/fancontrol ${sysconfdir}/init.d/fancontrol"
+FILES_${PN}-fancontrol-doc = "${mandir}/man8/fancontrol.8"
+RDEPENDS_${PN}-fancontrol = "bash"
+RRECOMMENDS_${PN}-fancontrol = "lmsensors-config-fancontrol"
+
+# sensors-detect script files
+FILES_${PN}-sensorsdetect = "${sbindir}/sensors-detect"
+FILES_${PN}-sensorsdetect-doc = "${mandir}/man8/sensors-detect.8"
+RDEPENDS_${PN}-sensorsdetect = "${PN}-sensors perl perl-modules"
+
+# sensors-conf-convert script files
+FILES_${PN}-sensorsconfconvert = "${bindir}/sensors-conf-convert"
+FILES_${PN}-sensorsconfconvert-doc = "${mandir}/man8/sensors-conf-convert.8"
+RDEPENDS_${PN}-sensorsconfconvert = "${PN}-sensors perl perl-modules"
+
+# pwmconfig script files
+FILES_${PN}-pwmconfig = "${sbindir}/pwmconfig"
+FILES_${PN}-pwmconfig-doc = "${mandir}/man8/pwmconfig.8"
+RDEPENDS_${PN}-pwmconfig = "${PN}-fancontrol"
+
+# isadump and isaset helper program files
+FILES_${PN}-isatools = "${sbindir}/isa*"
+FILES_${PN}-isatools-dbg = "${sbindir}/.debug/isa*"
+FILES_${PN}-isatools-doc = "${mandir}/man8/isa*"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev_git.bb
new file mode 100644
index 0000000..023b9a7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev_git.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Locking devices library"
+SECTION = "libs"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM="file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+PV = "1.0.3+git${SRCPV}"
+
+SRCREV = "16b899645d32012cc94cc9232f64d4ddaaf0b795"
+SRC_URI = "git://anonscm.debian.org/lockdev/lockdev.git"
+
+S = "${WORKDIR}/git"
+
+inherit lib_package autotools-brokensep
+
+do_configure_prepend () {
+    ./scripts/git-version > VERSION
+
+    # Make automake happy
+    touch ChangeLog
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/log4c/log4c/fix_configure_with-expat.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/log4c/log4c/fix_configure_with-expat.patch
new file mode 100644
index 0000000..4872eb4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/log4c/log4c/fix_configure_with-expat.patch
@@ -0,0 +1,21 @@
+The original use of AC_ARG_WITH is buggy and causes expat support
+to be *disabled* if "--with-expat" is passed to configure.
+
+Upstream status: pending
+
+Index: log4c-1.2.4/configure.in
+===================================================================
+--- log4c-1.2.4.orig/configure.in
++++ log4c-1.2.4/configure.in
+@@ -217,9 +217,9 @@ AC_ARG_WITH(expat,
+                     have any effect and Log4C uses some bundled yacc/lex code
+                     for parsing it's configuration file.
+                     ]),
+-                    with_expat=no,
++                    [],
+                     with_expat=yes)
+-if test x$with_expat = xyes ; then
++if test x$with_expat != xno ; then
+  use_expat=yes
+  AM_PATH_EXPAT(1.95.1)
+ fi
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/log4c/log4c_1.2.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/log4c/log4c_1.2.4.bb
new file mode 100644
index 0000000..3286b08
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/log4c/log4c_1.2.4.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Log4c is a C library for flexible logging to files, syslog and other destinations"
+HOMEPAGE = "http://log4c.sourceforge.net"
+LICENSE = "LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz \
+           file://fix_configure_with-expat.patch"
+
+SRC_URI[md5sum] = "0d94919136e1d16b68427562e74cb3dd"
+SRC_URI[sha256sum] = "5991020192f52cc40fa852fbf6bbf5bd5db5d5d00aa9905c67f6f0eadeed48ea"
+
+PACKAGECONFIG ??= "expat"
+PACKAGECONFIG[expat] = "--with-expat,--without-expat,expat"
+
+BINCONFIG = "${bindir}/log4c-config"
+
+inherit autotools binconfig-disabled
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/log4cpp/files/fix-pc.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/log4cpp/files/fix-pc.patch
new file mode 100644
index 0000000..b8fb42e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/log4cpp/files/fix-pc.patch
@@ -0,0 +1,20 @@
+diff -Nurd ./log4cpp.orig/configure.in ./log4cpp/configure.in
+--- ./log4cpp.orig/configure.in	2009-09-07 16:57:46.000000000 -0400
++++ ./log4cpp/configure.in	2016-02-23 12:57:11.567240018 -0500
+@@ -130,7 +130,6 @@
+ # ----------------------------------------------------------------------------
+ 
+ AC_CONFIG_LIBCONFIG_IN([log4cpp])
+-AC_CONFIG_PKGCONFIG_IN([log4cpp], [C++ library for flexible logging, modeled after Log4j])
+ 
+ AC_CONFIG_FILES([
+ Makefile
+diff -Nurd ./log4cpp.orig/log4cpp.pc.in ./log4cpp/log4cpp.pc.in
+--- ./log4cpp.orig/log4cpp.pc.in	2004-01-27 05:24:25.000000000 -0500
++++ ./log4cpp/log4cpp.pc.in	2016-02-22 15:06:55.769327491 -0500
+@@ -7,4 +7,4 @@
+ Description: C++ library for flexible logging, modeled after Log4j
+ Version: @VERSION@
+ Libs: -L${libdir} @log4cpp_libs@
+-Cflags: -I${includedir} @log4cpp_cflags@
++Cflags: -I${includedir}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/log4cpp/log4cpp_1.1.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/log4cpp/log4cpp_1.1.1.bb
new file mode 100644
index 0000000..c7bf288
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/log4cpp/log4cpp_1.1.1.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "A library of C++ classes for flexible logging to files, syslog, IDSA and other destinations."
+HOMEPAGE = "http://sourceforge.net/projects/log4cpp/"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
+
+SRC_URI[md5sum] = "1e173df8ee97205f412ff84aa93b8fbe"
+SRC_URI[sha256sum] = "35abf332630a6809c969276b1d60b90c81a95daf24c86cfd7866ffef72f9bed0"
+
+SRC_URI = "http://downloads.sourceforge.net/${BPN}/${BP}.tar.gz \
+           file://fix-pc.patch;striplevel=2 \
+          "
+
+S = "${WORKDIR}/${BPN}"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "\
+    --enable-doxygen=no \
+    --enable-dot=no \
+    --enable-html-docs=no \
+    --enable-latex-docs=no \
+    LDFLAGS=-pthread \
+"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc
new file mode 100644
index 0000000..3a5e1c4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc
@@ -0,0 +1,68 @@
+SECTION = "utils"
+DESCRIPTION = "LVM2 is a set of utilities to manage logical volumes in Linux."
+DEPENDS = "udev"
+LICENSE = "GPLv2 & LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+                    file://COPYING.LIB;md5=fbc093901857fcd118f065f900982c24"
+
+SRC_URI = "ftp://sources.redhat.com/pub/lvm2/old/LVM2.${PV}.tgz \
+           file://lvm.conf \
+           file://0001-implement-libc-specific-_reopen_stream.patch \
+           file://0002-use-PTHREAD_MUTEX_RECURSIVE-instead-of-PTHREAD_MUTEX.patch \
+           file://0003-Guard-use-of-mallinfo-with-__GLIBC__.patch \
+           file://0004-include-fcntl.h-for-O_-defines-and-fcntl-signature.patch \
+           "
+
+S = "${WORKDIR}/LVM2.${PV}"
+
+inherit autotools-brokensep pkgconfig systemd
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'selinux', '', d)}"
+
+PACKAGECONFIG[readline] = "--enable-readline,--disable-readline,readline"
+PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux"
+
+# Unset user/group to unbreak install.
+EXTRA_OECONF = "--with-user= \
+                --with-group= \
+                --disable-o_direct \
+                --enable-realtime \
+                --enable-applib \
+                --enable-cmdlib \
+                --enable-udev_sync \
+                --enable-udev_rules \
+                --enable-pkgconfig \
+                --enable-dmeventd \
+                --enable-lvmetad \
+                --with-udev-prefix= \
+                --with-usrlibdir=${libdir} \
+                --with-systemdsystemunitdir=${systemd_system_unitdir} \
+"
+
+do_install_append() {
+    # Install machine specific configuration file
+    install -m 0644 ${WORKDIR}/lvm.conf ${D}${sysconfdir}/lvm/lvm.conf
+    sed -i -e 's:@libdir@:${libdir}:g' ${D}${sysconfdir}/lvm/lvm.conf
+    if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+        oe_runmake 'DESTDIR=${D}' install install_systemd_units
+        sed -i -e 's:/usr/bin/true:${base_bindir}/true:g' ${D}${systemd_system_unitdir}/blk-availability.service
+    else
+        oe_runmake 'DESTDIR=${D}' install install_initscripts
+        mv ${D}${sysconfdir}/rc.d/init.d ${D}${sysconfdir}/init.d
+        rm -rf ${D}${sysconfdir}/rc.d
+    fi
+}
+
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE_${PN} = "lvm2-monitor.service dm-event.socket dm-event.service lvm2-lvmetad.socket \
+                         lvm2-pvscan@.service blk-availability.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+FILES_${PN} += "${libdir}/device-mapper/*.so ${base_libdir}/udev"
+FILES_${PN}-dbg += "${libdir}/device-mapper/.debug"
+
+RDEPENDS_${PN} = "bash"
+
+CONFFILES_${PN} += "${sysconfdir}/lvm/lvm.conf"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-implement-libc-specific-_reopen_stream.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-implement-libc-specific-_reopen_stream.patch
new file mode 100644
index 0000000..f0b4e71
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-implement-libc-specific-_reopen_stream.patch
@@ -0,0 +1,139 @@
+From 089c9c701a1b68b721f479dfc0c58c35b9dd4175 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 20 Jan 2016 04:39:53 +0000
+Subject: [PATCH 1/4] implement libc specific _reopen_stream
+
+musl defines stdin/stdio/stderr as constant types which means
+we can not assign to them as we are doing here but works ok with glibc
+therefore abstract out the _reopen_stream definition depending upon if
+we are using glibc or otherwise
+
+Origin:
+http://git.alpinelinux.org/cgit/aports/tree/main/lvm2/fix-stdio-usage.patch
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ lib/commands/toolcontext.c | 22 +++++++++++-----------
+ tools/lvmcmdline.c         |  6 +++---
+ 2 files changed, 14 insertions(+), 14 deletions(-)
+
+diff --git a/lib/commands/toolcontext.c b/lib/commands/toolcontext.c
+index a2f21b8..7f796e4 100644
+--- a/lib/commands/toolcontext.c
++++ b/lib/commands/toolcontext.c
+@@ -1637,7 +1637,10 @@ static void _init_globals(struct cmd_context *cmd)
+ /*
+  * Close and reopen stream on file descriptor fd.
+  */
+-static int _reopen_stream(FILE *stream, int fd, const char *mode, const char *name, FILE **new_stream)
++#ifdef __GLIBC__
++#define _reopen_stream(stream, fd, mode, name) __reopen_stream(stream, fd, mode, name, &stream)
++
++static int __reopen_stream(FILE *stream, int fd, const char *mode, const char *name, FILE **new_stream)
+ {
+ 	int fd_copy, new_fd;
+ 
+@@ -1664,6 +1667,9 @@ static int _reopen_stream(FILE *stream, int fd, const char *mode, const char *na
+ 
+ 	return 1;
+ }
++#else
++#define _reopen_stream(stream, fd, mode, name) (freopen(NULL, mode, stream) != NULL)
++#endif
+ 
+ static int _init_lvmetad(struct cmd_context *cmd)
+ {
+@@ -1741,7 +1747,6 @@ struct cmd_context *create_toolcontext(unsigned is_long_lived,
+ 				       unsigned set_filters)
+ {
+ 	struct cmd_context *cmd;
+-	FILE *new_stream;
+ 	int flags;
+ 
+ #ifdef M_MMAP_MAX
+@@ -1791,9 +1796,8 @@ struct cmd_context *create_toolcontext(unsigned is_long_lived,
+ 		if (is_valid_fd(STDIN_FILENO) &&
+ 		    ((flags = fcntl(STDIN_FILENO, F_GETFL)) > 0) &&
+ 		    (flags & O_ACCMODE) != O_WRONLY) {
+-			if (!_reopen_stream(stdin, STDIN_FILENO, "r", "stdin", &new_stream))
++			if (!_reopen_stream(stdin, STDIN_FILENO, "r", "stdin"))
+ 				goto_out;
+-			stdin = new_stream;
+ 			if (setvbuf(stdin, cmd->linebuffer, _IOLBF, linebuffer_size)) {
+ 				log_sys_error("setvbuf", "");
+ 				goto out;
+@@ -1803,9 +1807,8 @@ struct cmd_context *create_toolcontext(unsigned is_long_lived,
+ 		if (is_valid_fd(STDOUT_FILENO) &&
+ 		    ((flags = fcntl(STDOUT_FILENO, F_GETFL)) > 0) &&
+ 		    (flags & O_ACCMODE) != O_RDONLY) {
+-			if (!_reopen_stream(stdout, STDOUT_FILENO, "w", "stdout", &new_stream))
++			if (!_reopen_stream(stdout, STDOUT_FILENO, "w", "stdout"))
+ 				goto_out;
+-			stdout = new_stream;
+ 			if (setvbuf(stdout, cmd->linebuffer + linebuffer_size,
+ 				     _IOLBF, linebuffer_size)) {
+ 				log_sys_error("setvbuf", "");
+@@ -2131,7 +2134,6 @@ int refresh_toolcontext(struct cmd_context *cmd)
+ void destroy_toolcontext(struct cmd_context *cmd)
+ {
+ 	struct dm_config_tree *cft_cmdline;
+-	FILE *new_stream;
+ 	int flags;
+ 
+ 	if (cmd->dump_filter && cmd->filter && cmd->filter->dump &&
+@@ -2167,8 +2169,7 @@ void destroy_toolcontext(struct cmd_context *cmd)
+ 		if (is_valid_fd(STDIN_FILENO) &&
+ 		    ((flags = fcntl(STDIN_FILENO, F_GETFL)) > 0) &&
+ 		    (flags & O_ACCMODE) != O_WRONLY) {
+-			if (_reopen_stream(stdin, STDIN_FILENO, "r", "stdin", &new_stream)) {
+-				stdin = new_stream;
++			if (_reopen_stream(stdin, STDIN_FILENO, "r", "stdin")) {
+ 				setlinebuf(stdin);
+ 			} else
+ 				cmd->linebuffer = NULL;	/* Leave buffer in place (deliberate leak) */
+@@ -2177,8 +2178,7 @@ void destroy_toolcontext(struct cmd_context *cmd)
+ 		if (is_valid_fd(STDOUT_FILENO) &&
+ 		    ((flags = fcntl(STDOUT_FILENO, F_GETFL)) > 0) &&
+ 		    (flags & O_ACCMODE) != O_RDONLY) {
+-			if (_reopen_stream(stdout, STDOUT_FILENO, "w", "stdout", &new_stream)) {
+-				stdout = new_stream;
++			if (_reopen_stream(stdout, STDOUT_FILENO, "w", "stdout")) {
+ 				setlinebuf(stdout);
+ 			} else
+ 				cmd->linebuffer = NULL;	/* Leave buffer in place (deliberate leak) */
+diff --git a/tools/lvmcmdline.c b/tools/lvmcmdline.c
+index 6577977..a33258a 100644
+--- a/tools/lvmcmdline.c
++++ b/tools/lvmcmdline.c
+@@ -1744,7 +1744,7 @@ static int _check_standard_fds(void)
+ 	int err = is_valid_fd(STDERR_FILENO);
+ 
+ 	if (!is_valid_fd(STDIN_FILENO) &&
+-	    !(stdin = fopen(_PATH_DEVNULL, "r"))) {
++	    !freopen(_PATH_DEVNULL, "r", stdin)) {
+ 		if (err)
+ 			perror("stdin stream open");
+ 		else
+@@ -1754,7 +1754,7 @@ static int _check_standard_fds(void)
+ 	}
+ 
+ 	if (!is_valid_fd(STDOUT_FILENO) &&
+-	    !(stdout = fopen(_PATH_DEVNULL, "w"))) {
++	    !freopen(_PATH_DEVNULL, "w", stdout)) {
+ 		if (err)
+ 			perror("stdout stream open");
+ 		/* else no stdout */
+@@ -1762,7 +1762,7 @@ static int _check_standard_fds(void)
+ 	}
+ 
+ 	if (!is_valid_fd(STDERR_FILENO) &&
+-	    !(stderr = fopen(_PATH_DEVNULL, "w"))) {
++	    !freopen(_PATH_DEVNULL, "w", stderr)) {
+ 		printf("stderr stream open: %s\n",
+ 		       strerror(errno));
+ 		return 0;
+-- 
+2.7.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0002-use-PTHREAD_MUTEX_RECURSIVE-instead-of-PTHREAD_MUTEX.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0002-use-PTHREAD_MUTEX_RECURSIVE-instead-of-PTHREAD_MUTEX.patch
new file mode 100644
index 0000000..969a152
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0002-use-PTHREAD_MUTEX_RECURSIVE-instead-of-PTHREAD_MUTEX.patch
@@ -0,0 +1,44 @@
+From c8a1b669cbff3eee367fd4db3389e337bc4c98ba Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 20 Jan 2016 04:46:26 +0000
+Subject: [PATCH 2/4] use PTHREAD_MUTEX_RECURSIVE instead of
+ PTHREAD_MUTEX_RECURSIVE_NP
+
+PTHREAD_MUTEX_RECURSIVE_NP was used for compatibility with old glibc.
+Although due to the_GNU_SOURCES define the portable,
+PTHREAD_MUTEX_RECURSIVE will be available for Linuxes since at least
+1998. Simplify things giving us compatibility with musl which
+apparently does not provide the non-portable define.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ daemons/lvmetad/lvmetad-core.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/daemons/lvmetad/lvmetad-core.c b/daemons/lvmetad/lvmetad-core.c
+index 7af9bde..63707c2 100644
+--- a/daemons/lvmetad/lvmetad-core.c
++++ b/daemons/lvmetad/lvmetad-core.c
+@@ -300,7 +300,7 @@ static struct dm_config_tree *lock_vg(lvmetad_state *s, const char *id) {
+ 	if (!(vg = dm_hash_lookup(s->lock.vg, id))) {
+ 		if (!(vg = malloc(sizeof(pthread_mutex_t))) ||
+ 		    pthread_mutexattr_init(&rec) ||
+-		    pthread_mutexattr_settype(&rec, PTHREAD_MUTEX_RECURSIVE_NP) ||
++		    pthread_mutexattr_settype(&rec, PTHREAD_MUTEX_RECURSIVE) ||
+ 		    pthread_mutex_init(vg, &rec))
+ 			goto bad;
+ 		if (!dm_hash_insert(s->lock.vg, id, vg)) {
+@@ -2890,7 +2890,7 @@ static int init(daemon_state *s)
+ 	ls->log = s->log;
+ 
+ 	pthread_mutexattr_init(&rec);
+-	pthread_mutexattr_settype(&rec, PTHREAD_MUTEX_RECURSIVE_NP);
++	pthread_mutexattr_settype(&rec, PTHREAD_MUTEX_RECURSIVE);
+ 	pthread_mutex_init(&ls->lock.pvid_to_pvmeta, &rec);
+ 	pthread_mutex_init(&ls->lock.vgid_to_metadata, &rec);
+ 	pthread_mutex_init(&ls->lock.pvid_to_vgid, NULL);
+-- 
+2.7.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0003-Guard-use-of-mallinfo-with-__GLIBC__.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0003-Guard-use-of-mallinfo-with-__GLIBC__.patch
new file mode 100644
index 0000000..3d71767
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0003-Guard-use-of-mallinfo-with-__GLIBC__.patch
@@ -0,0 +1,30 @@
+From e018d055603389b22cbc3bd68b1525f3048ebee7 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 20 Jan 2016 04:50:26 +0000
+Subject: [PATCH 3/4] Guard use of mallinfo() with __GLIBC__
+
+This API is glibc-only
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ lib/mm/memlock.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/mm/memlock.c b/lib/mm/memlock.c
+index 969f1d7..405a7c0 100644
+--- a/lib/mm/memlock.c
++++ b/lib/mm/memlock.c
+@@ -145,7 +145,7 @@ static void _touch_memory(void *mem, size_t size)
+ 
+ static void _allocate_memory(void)
+ {
+-#ifndef VALGRIND_POOL
++#if !defined(VALGRIND_POOL) && defined(__GLIBC__)
+ 	void *stack_mem;
+ 	struct rlimit limit;
+ 	int i, area = 0, missing = _size_malloc_tmp, max_areas = 32, hblks;
+-- 
+2.7.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0004-include-fcntl.h-for-O_-defines-and-fcntl-signature.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0004-include-fcntl.h-for-O_-defines-and-fcntl-signature.patch
new file mode 100644
index 0000000..2a3b843
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0004-include-fcntl.h-for-O_-defines-and-fcntl-signature.patch
@@ -0,0 +1,29 @@
+From 9b793d5b4adc5d8b3684e7f66943e236eae7c2db Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 20 Jan 2016 04:52:59 +0000
+Subject: [PATCH 4/4] include fcntl.h for O_* defines and fcntl() signature
+
+On glibc _somehow_ this header gets pulled in indirectly
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ libdaemon/server/daemon-server.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/libdaemon/server/daemon-server.c b/libdaemon/server/daemon-server.c
+index d9d60d1..433d100 100644
+--- a/libdaemon/server/daemon-server.c
++++ b/libdaemon/server/daemon-server.c
+@@ -18,6 +18,7 @@
+ #include "daemon-server.h"
+ #include "daemon-log.h"
+ 
++#include <fcntl.h>
+ #include <dlfcn.h>
+ #include <errno.h>
+ #include <pthread.h>
+-- 
+2.7.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/lvm.conf b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/lvm.conf
new file mode 100644
index 0000000..9e3b5fe
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/lvm.conf
@@ -0,0 +1,326 @@
+# This is an example configuration file for the LVM2 system.
+# It contains the default settings that would be used if there was no
+# /etc/lvm/lvm.conf file.
+#
+# Refer to 'man lvm.conf' for further information including the file layout.
+#
+# To put this file in a different directory and override /etc/lvm set
+# the environment variable LVM_SYSTEM_DIR before running the tools.
+
+
+# This section allows you to configure which block devices should
+# be used by the LVM system.
+devices {
+
+    # Where do you want your volume groups to appear ?
+    dir = "/dev"
+
+    # An array of directories that contain the device nodes you wish
+    # to use with LVM2.
+    scan = [ "/dev" ]
+
+    # A filter that tells LVM2 to only use a restricted set of devices.
+    # The filter consists of an array of regular expressions.  These
+    # expressions can be delimited by a character of your choice, and
+    # prefixed with either an 'a' (for accept) or 'r' (for reject).
+    # The first expression found to match a device name determines if
+    # the device will be accepted or rejected (ignored).  Devices that
+    # don't match any patterns are accepted.
+
+    # Be careful if there there are symbolic links or multiple filesystem 
+    # entries for the same device as each name is checked separately against
+    # the list of patterns.  The effect is that if any name matches any 'a'
+    # pattern, the device is accepted; otherwise if any name matches any 'r'
+    # pattern it is rejected; otherwise it is accepted.
+
+    # Don't have more than one filter line active at once: only one gets used.
+
+    # Run vgscan after you change this parameter to ensure that
+    # the cache file gets regenerated (see below).
+    # If it doesn't do what you expect, check the output of 'vgscan -vvvv'.
+
+
+    # By default we accept every block device:
+    filter = [ "a/.*/" ]
+
+    # Exclude the cdrom drive
+    # filter = [ "r|/dev/cdrom|" ]
+
+    # When testing I like to work with just loopback devices:
+    # filter = [ "a/loop/", "r/.*/" ]
+
+    # Or maybe all loops and ide drives except hdc:
+    # filter =[ "a|loop|", "r|/dev/hdc|", "a|/dev/ide|", "r|.*|" ]
+
+    # Use anchors if you want to be really specific
+    # filter = [ "a|^/dev/hda8$|", "r/.*/" ]
+
+    # The results of the filtering are cached on disk to avoid
+    # rescanning dud devices (which can take a very long time).  By
+    # default this cache file is hidden in the /etc/lvm directory.
+    # It is safe to delete this file: the tools regenerate it.
+    cache = "/etc/lvm/.cache"
+
+    # You can turn off writing this cache file by setting this to 0.
+    write_cache_state = 1
+
+    # Advanced settings.
+
+    # List of pairs of additional acceptable block device types found 
+    # in /proc/devices with maximum (non-zero) number of partitions.
+    # types = [ "fd", 16 ]
+
+    # If sysfs is mounted (2.6 kernels) restrict device scanning to 
+    # the block devices it believes are valid.
+    # 1 enables; 0 disables.
+    sysfs_scan = 1	
+
+    # By default, LVM2 will ignore devices used as components of
+    # software RAID (md) devices by looking for md superblocks.
+    # 1 enables; 0 disables.
+    md_component_detection = 1
+}
+
+# This section that allows you to configure the nature of the
+# information that LVM2 reports.
+log {
+
+    # Controls the messages sent to stdout or stderr.
+    # There are three levels of verbosity, 3 being the most verbose.
+    verbose = 0
+
+    # Should we send log messages through syslog?
+    # 1 is yes; 0 is no.
+    syslog = 1
+
+    # Should we log error and debug messages to a file?
+    # By default there is no log file.
+    #file = "/var/log/lvm2.log"
+
+    # Should we overwrite the log file each time the program is run?
+    # By default we append.
+    overwrite = 0
+
+    # What level of log messages should we send to the log file and/or syslog?
+    # There are 6 syslog-like log levels currently in use - 2 to 7 inclusive.
+    # 7 is the most verbose (LOG_DEBUG).
+    level = 0
+    
+    # Format of output messages
+    # Whether or not (1 or 0) to indent messages according to their severity
+    indent = 1
+
+    # Whether or not (1 or 0) to display the command name on each line output
+    command_names = 0
+
+    # A prefix to use before the message text (but after the command name,
+    # if selected).  Default is two spaces, so you can see/grep the severity
+    # of each message.
+    prefix = "  "
+
+    # To make the messages look similar to the original LVM tools use:
+    #   indent = 0
+    #   command_names = 1
+    #   prefix = " -- "
+
+    # Set this if you want log messages during activation.
+    # Don't use this in low memory situations (can deadlock).
+    # activation = 0
+}
+
+# Configuration of metadata backups and archiving.  In LVM2 when we
+# talk about a 'backup' we mean making a copy of the metadata for the
+# *current* system.  The 'archive' contains old metadata configurations.
+# Backups are stored in a human readeable text format.
+backup {
+
+    # Should we maintain a backup of the current metadata configuration ?
+    # Use 1 for Yes; 0 for No.
+    # Think very hard before turning this off!
+    backup = 1
+
+    # Where shall we keep it ?
+    # Remember to back up this directory regularly!
+    backup_dir = "/etc/lvm/backup"
+
+    # Should we maintain an archive of old metadata configurations.
+    # Use 1 for Yes; 0 for No.
+    # On by default.  Think very hard before turning this off.
+    archive = 1
+
+    # Where should archived files go ?
+    # Remember to back up this directory regularly!
+    archive_dir = "/etc/lvm/archive"
+    
+    # What is the minimum number of archive files you wish to keep ?
+    retain_min = 10
+
+    # What is the minimum time you wish to keep an archive file for ?
+    retain_days = 30
+}
+
+# Settings for the running LVM2 in shell (readline) mode.
+shell {
+
+    # Number of lines of history to store in ~/.lvm_history
+    history_size = 100
+}
+
+
+# Miscellaneous global LVM2 settings
+global {
+    
+    # The file creation mask for any files and directories created.
+    # Interpreted as octal if the first digit is zero.
+    umask = 077
+
+    # Allow other users to read the files
+    #umask = 022
+
+    # Enabling test mode means that no changes to the on disk metadata
+    # will be made.  Equivalent to having the -t option on every
+    # command.  Defaults to off.
+    test = 0
+
+    # Whether or not to communicate with the kernel device-mapper.
+    # Set to 0 if you want to use the tools to manipulate LVM metadata 
+    # without activating any logical volumes.
+    # If the device-mapper kernel driver is not present in your kernel
+    # setting this to 0 should suppress the error messages.
+    activation = 1
+
+    # If we can't communicate with device-mapper, should we try running 
+    # the LVM1 tools?
+    # This option only applies to 2.4 kernels and is provided to help you
+    # switch between device-mapper kernels and LVM1 kernels.
+    # The LVM1 tools need to be installed with .lvm1 suffices
+    # e.g. vgscan.lvm1 and they will stop working after you start using
+    # the new lvm2 on-disk metadata format.
+    # The default value is set when the tools are built.
+    # fallback_to_lvm1 = 0
+
+    # The default metadata format that commands should use - "lvm1" or "lvm2".
+    # The command line override is -M1 or -M2.
+    # Defaults to "lvm1" if compiled in, else "lvm2".
+    # format = "lvm1"
+
+    # Location of proc filesystem
+    proc = "/proc"
+
+    # Type of locking to use. Defaults to file-based locking (1).
+    # Turn locking off by setting to 0 (dangerous: risks metadata corruption
+    # if LVM2 commands get run concurrently).
+    locking_type = 1
+
+    # Local non-LV directory that holds file-based locks while commands are
+    # in progress.  A directory like /tmp that may get wiped on reboot is OK.
+    locking_dir = "/var/lock/lvm"
+
+    # Other entries can go here to allow you to load shared libraries
+    # e.g. if support for LVM1 metadata was compiled as a shared library use
+    #   format_libraries = "liblvm2format1.so" 
+    # Full pathnames can be given.
+
+    # Search this directory first for shared libraries.
+    #   library_dir = "/lib"
+}
+
+activation {
+    # Device used in place of missing stripes if activating incomplete volume.
+    # For now, you need to set this up yourself first (e.g. with 'dmsetup')
+    # For example, you could make it return I/O errors using the 'error' 
+    # target or make it return zeros.
+    missing_stripe_filler = "/dev/ioerror"
+
+    # Size (in KB) of each copy operation when mirroring
+    mirror_region_size = 512
+
+    # How much stack (in KB) to reserve for use while devices suspended
+    reserved_stack = 256
+
+    # How much memory (in KB) to reserve for use while devices suspended
+    reserved_memory = 8192
+
+    # Nice value used while devices suspended
+    process_priority = -18
+
+    # If volume_list is defined, each LV is only activated if there is a
+    # match against the list.
+    #   "vgname" and "vgname/lvname" are matched exactly.
+    #   "@tag" matches any tag set in the LV or VG.
+    #   "@*" matches if any tag defined on the host is also set in the LV or VG
+    #
+    # volume_list = [ "vg1", "vg2/lvol1", "@tag1", "@*" ]
+}
+
+
+####################
+# Advanced section #
+####################
+
+# Metadata settings
+#
+# metadata {
+    # Default number of copies of metadata to hold on each PV.  0, 1 or 2.
+    # You might want to override it from the command line with 0 
+    # when running pvcreate on new PVs which are to be added to large VGs.
+
+    # pvmetadatacopies = 1
+
+    # Approximate default size of on-disk metadata areas in sectors.
+    # You should increase this if you have large volume groups or
+    # you want to retain a large on-disk history of your metadata changes.
+
+    # pvmetadatasize = 255
+
+    # List of directories holding live copies of text format metadata.
+    # These directories must not be on logical volumes!
+    # It's possible to use LVM2 with a couple of directories here,
+    # preferably on different (non-LV) filesystems, and with no other 
+    # on-disk metadata (pvmetadatacopies = 0). Or this can be in
+    # addition to on-disk metadata areas.
+    # The feature was originally added to simplify testing and is not
+    # supported under low memory situations - the machine could lock up.
+    #
+    # Never edit any files in these directories by hand unless you
+    # you are absolutely sure you know what you are doing! Use
+    # the supplied toolset to make changes (e.g. vgcfgrestore).
+
+    # dirs = [ "/etc/lvm/metadata", "/mnt/disk2/lvm/metadata2" ]
+#}
+
+# Event daemon
+#
+dmeventd {
+    # mirror_library is the library used when monitoring a mirror device.
+    #
+    # "libdevmapper-event-lvm2mirror.so" attempts to recover from
+    # failures.  It removes failed devices from a volume group and
+    # reconfigures a mirror as necessary. If no mirror library is
+    # provided, mirrors are not monitored through dmeventd.
+
+    mirror_library = "@libdir@/device-mapper/libdevmapper-event-lvm2mirror.so"
+
+    # snapshot_library is the library used when monitoring a snapshot device.
+    #
+    # "libdevmapper-event-lvm2snapshot.so" monitors the filling of
+    # snapshots and emits a warning through syslog when the use of
+    # the snapshot exceeds 80%. The warning is repeated when 85%, 90% and
+    # 95% of the snapshot is filled.
+
+    snapshot_library = "@libdir@/device-mapper/libdevmapper-event-lvm2snapshot.so"
+
+    # thin_library is the library used when monitoring a thin device.
+    #
+    # "libdevmapper-event-lvm2thin.so" monitors the filling of
+    # pool and emits a warning through syslog when the use of
+    # the pool exceeds 80%. The warning is repeated when 85%, 90% and
+    # 95% of the pool is filled.
+
+    thin_library = "@libdir@/device-mapper/libdevmapper-event-lvm2thin.so"
+
+    # Full path of the dmeventd binary.
+    #
+    # executable = "@DMEVENTD_PATH@"
+}
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.02.138.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.02.138.bb
new file mode 100644
index 0000000..13a866e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.02.138.bb
@@ -0,0 +1,4 @@
+require lvm2.inc
+
+SRC_URI[md5sum] = "c660e02ad4586a1d297b6befbe85556d"
+SRC_URI[sha256sum] = "93878a4ba4f70d9f2d0d919eb85bc51652a58776b5428ec8e7e32769d332f596"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/lzip/lzip_1.16.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/lzip/lzip_1.16.bb
new file mode 100644
index 0000000..af0b6ae
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/lzip/lzip_1.16.bb
@@ -0,0 +1,41 @@
+SUMMARY = "Lossless data compressor based on the LZMA algorithm"
+HOMEPAGE = "http://lzip.nongnu.org/lzip.html"
+SECTION = "console/utils"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=76d6e300ffd8fb9d18bd9b136a9bba13 \
+                    file://decoder.cc;endline=16;md5=0809128ac32163252846e09a70c8b80b"
+
+SRC_URI = "${SAVANNAH_GNU_MIRROR}/lzip/lzip-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "716a9876dc595ec52d4f3bda81e42471"
+SRC_URI[sha256sum] = "128cc25baf92c8b69700831e6f984d954016318cc78edca87870d0c033112751"
+
+CONFIGUREOPTS = "\
+    '--srcdir=${S}' \
+    '--prefix=${prefix}' \
+    '--exec-prefix=${exec_prefix}' \
+    '--bindir=${bindir}' \
+    '--datadir=${datadir}' \
+    '--infodir=${infodir}' \
+    '--sysconfdir=${sysconfdir}' \
+    'CXX=${CXX}' \
+    'CPPFLAGS=${CPPFLAGS}' \
+    'CXXFLAGS=${CXXFLAGS}' \
+    'LDFLAGS=${LDFLAGS}' \
+"
+EXTRA_OEMAKE = ""
+
+B = "${S}/obj"
+do_configure () {
+    ${S}/configure ${CONFIGUREOPTS}
+}
+
+do_install () {
+    oe_runmake 'DESTDIR=${D}' install
+    # Info dir listing isn't interesting at this point so remove it if it exists.
+    if [ -e "${D}${infodir}/dir" ]; then
+        rm -f ${D}${infodir}/dir
+    fi
+}
+
+BBCLASSEXTEND += "native nativesdk"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mailcap/mailcap_2.1.45.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/mailcap/mailcap_2.1.45.bb
new file mode 100644
index 0000000..911360f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mailcap/mailcap_2.1.45.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Helper application and MIME type associations for file types"
+DESCRIPTION = "The mailcap file is used by the metamail program. Metamail reads the \
+mailcap file to determine how it should display non-text or multimedia \
+material. Basically, mailcap associates a particular type of file \
+with a particular program that a mail agent or other program can call \
+in order to handle the file. Mailcap should be installed to allow \
+certain programs to be able to handle non-text files. \
+\
+Also included in this package is the mime.types file which contains a \
+list of MIME types and their filename extension associations, used  \
+by several applications e.g. to determine MIME types for filenames."
+
+SECTION = "System Environment/Base"
+
+SRC_URI = "https://git.fedorahosted.org/cgit/${BPN}.git/snapshot/${BPN}-r2-1-45.tar.gz"
+SRC_URI[md5sum] = "2320a77b2fc82078c9d6a59b29234bc8"
+SRC_URI[sha256sum] = "a73e2f93625475014066f414873cb9f0a4b1189942d94fade9a03e59be3745b7"
+LICENSE = "PD & MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=100fcfb84512ccc03ffc7d89ac391305"
+S = "${WORKDIR}/${BPN}-r2-1-45"
+do_install() {
+    oe_runmake install DESTDIR=${D} sysconfdir=${sysconfdir} mandir=${mandir}
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mbuffer/mbuffer_20140310.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/mbuffer/mbuffer_20140310.bb
new file mode 100644
index 0000000..3467d28
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mbuffer/mbuffer_20140310.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "mbuffer is a tool for buffering data streams with a large set of unique features."
+HOMEPAGE = "http://www.maier-komor.de/mbuffer.html"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d32239bcb673463ab874e80d47fae504"
+SECTION = "console/network"
+
+SRC_URI = " \
+    http://www.maier-komor.de/software/mbuffer/mbuffer-20140310.tgz \
+"
+
+SRC_URI[md5sum] = "9937d7f666c19a2e6b2499b04dbecc44"
+SRC_URI[sha256sum] = "ab90b6fdce16db2bf08bcda0bc5d2bfb053a9a163d2a24f95fbf246460549b99"
+
+inherit autotools
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[md5] = "--enable-md5,--disable-md5,openssl"
+
+do_configure() {
+    ( cd ${S}; gnu-configize )
+    oe_runconf
+}
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mcelog/mce-inject_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/mcelog/mce-inject_git.bb
new file mode 100644
index 0000000..f876144
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mcelog/mce-inject_git.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Linux machine check injector tool"
+DESCRIPTION = "mce-inject allows to inject machine check errors on the \
+software level into a running Linux kernel. This is intended for \
+validation of the kernel machine check handler."
+SECTION = "System Environment/Base"
+
+SRC_URI = "git://git.kernel.org/pub/scm/utils/cpu/mce/mce-inject.git"
+
+SRCREV = "4cbe46321b4a81365ff3aafafe63967264dbfec5"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://README;beginline=30;md5=94c18755082a2da9c9cf97cba3ad47d6"
+
+S = "${WORKDIR}/git"
+
+COMPATIBLE_HOST = '(x86_64.*|i.86.*)-linux'
+
+inherit autotools-brokensep
+
+EXTRA_OEMAKE = "destdir=${D}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog/mcelog-debash.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog/mcelog-debash.patch
new file mode 100644
index 0000000..bea2f62
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog/mcelog-debash.patch
@@ -0,0 +1,36 @@
+From 8f57d35747a3b3fabc33466563077373090f869c Mon Sep 17 00:00:00 2001
+From: Robert Yang <liezhi.yang@windriver.com>
+Date: Tue, 2 Sep 2014 07:05:15 -0700
+Subject: [PATCH] cache-error-trigger: remove bashism
+
+Use "$(cat $F)" to instead of "$(< $F)" to debash.
+
+Upstream-Status: Pending
+
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+---
+ triggers/cache-error-trigger |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/triggers/cache-error-trigger b/triggers/cache-error-trigger
+index e32bfd6..785526f 100755
+--- a/triggers/cache-error-trigger
++++ b/triggers/cache-error-trigger
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+ # cache error trigger. This shell script is executed by mcelog in daemon mode
+ # when a CPU reports excessive corrected cache errors. This could be a indication
+ # for future uncorrected errors.
+@@ -28,7 +28,7 @@ for i in $AFFECTED_CPUS ; do
+ 	logger -s -p daemon.crit -t mcelog "Offlining CPU $i due to cache error threshold"
+ 	F=$(printf "/sys/devices/system/cpu/cpu%d/online" $i)
+ 	echo 0 > $F
+-	if [ "$(< $F)" != "0" ] ; then
++	if [ "$(cat $F)" != "0" ] ; then
+ 		logger -s -p daemon.warn -t mcelog "Offlining CPU $i failed"
+ 		EXIT=1
+ 	fi
+-- 
+1.7.9.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog/run-ptest b/import-layers/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog/run-ptest
new file mode 100644
index 0000000..ba7a2c7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+make -C tests test
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_1.09.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_1.09.bb
new file mode 100644
index 0000000..542b2ba
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog_1.09.bb
@@ -0,0 +1,36 @@
+SUMMARY = "mcelog daemon accounts memory and some other errors in various ways."
+DESCRIPTION = "mcelog is required by both 32bit x86 Linux kernels (since 2.6.30) \
+and 64bit Linux kernels (since early 2.6 kernel releases) to log machine checks \
+and should run on all Linux systems that need error handling."
+HOMEPAGE = "http://mcelog.org/"
+SECTION = "System Environment/Base"
+
+SRC_URI = "git://git.kernel.org/pub/scm/utils/cpu/mce/mcelog.git \
+    file://mcelog-debash.patch \
+    file://run-ptest \
+"
+
+SRCREV = "0fc9f702232cb2d9969916f899c67c3e64deedda"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://README;md5=3eb76ca64fa07ad53ebb0ebb5b4c8ede"
+
+S = "${WORKDIR}/git"
+
+inherit autotools-brokensep ptest
+
+COMPATIBLE_HOST = '(x86_64.*|i.86.*)-linux'
+
+do_install_append() {
+    install -d ${D}${sysconfdir}/cron.hourly
+    install -m 0755 ${S}/mcelog.cron ${D}${sysconfdir}/cron.hourly/
+    sed -i 's/bash/sh/' ${D}${sysconfdir}/cron.hourly/mcelog.cron
+}
+
+do_install_ptest() {
+    install -d ${D}${PTEST_PATH}
+    cp -r ${S}/tests ${S}/input ${D}${PTEST_PATH}
+    sed -i 's#../../mcelog#mcelog#' ${D}${PTEST_PATH}/tests/test
+}
+
+RDEPENDS_${PN}-ptest += "${PN} make bash mce-inject"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mg/files/remove_ncurses_check.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/mg/files/remove_ncurses_check.patch
new file mode 100644
index 0000000..16137da
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mg/files/remove_ncurses_check.patch
@@ -0,0 +1,36 @@
+diff -uwr mg-20110905/configure mg-20110905-changed/configure
+--- mg-20110905/configure	2011-09-05 13:36:16.000000000 -0500
++++ mg-20110905-changed/configure	2014-08-14 10:46:14.168715425 -0500
+@@ -163,32 +163,6 @@
+     echo 'Fails.'
+ fi
+ 
+-
+-if [ ! -r /usr/include/term.h ]; then
+-    note 'term.h'
+-    if [ -r /usr/include/ncurses/term.h ]; then
+-	echo "Found in /usr/include/ncurses"
+-	extraflags="$extraflags -I/usr/include/ncurses"
+-    else
+-	for i in pkg local; do
+-	    if [ -r /usr/$i/include/term.h ]; then
+-		echo "Found in /usr/$i/include"
+-		extralibs="$extralibs -L/usr/$i/lib"
+-		extraflags="$extraflags -I/usr/$i/include"
+-		break
+-	    else
+-		false
+-	    fi
+-	done ||
+-	{
+-	    echo 'Not found!' >&2
+-	    echo 'Do you have the ncurses devel package installed?' >&2
+-	    echo 'If you know where term.h is, please email the author!' >&2
+-	    exit 1
+-	}
+-    fi
+-fi
+-
+ note 'base and dirname'
+ if gcc_defines "__GLIBC__" || gcc_defines "__CYGWIN__" ; then
+     echo 'Not present, adding.'
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mg/mg_20110905.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/mg/mg_20110905.bb
new file mode 100644
index 0000000..e924bbd
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mg/mg_20110905.bb
@@ -0,0 +1,23 @@
+SUMMARY = "A portable version of the mg maintained by the OpenBSD team"
+HOMEPAGE = "http://homepage.boetes.org/software/mg/"
+LICENSE = "PD"
+LIC_FILES_CHKSUM = "file://version.c;md5=811e1b67a5cd60c12b218a2b7c1adbf2"
+DEPENDS = "ncurses"
+SECTION = "console/editors"
+
+SRC_URI = "http://homepage.boetes.org/software/mg/mg-${PV}.tar.gz \
+           file://remove_ncurses_check.patch"
+
+SRC_URI[md5sum] = "2de35316fa8ebafe6003efaae70b723e"
+SRC_URI[sha256sum] = "1cd37d7e6a3eecc890a5718c38b8f38495057ba93856762a756ccee2f9618229"
+
+EXTRA_OEMAKE = "-e MAKEFLAGS="
+
+do_configure () {
+    sed -i Makefile.in -e 's,^prefix=.*,prefix=${prefix},'
+    ./configure
+}
+
+do_install () {
+    oe_runmake install DESTDIR=${D}
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mime-support/mime-support_3.48.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/mime-support/mime-support_3.48.bb
new file mode 100644
index 0000000..d617b66
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mime-support/mime-support_3.48.bb
@@ -0,0 +1,58 @@
+SECTION = "base"
+SUMMARY = "MIME files 'mime.types' & 'mailcap', and support programs"
+LICENSE = "PD"
+LIC_FILES_CHKSUM = "file://debian/README;md5=36bbe2ace0a05c3fb684b73208fbf30b"
+
+DEPENDS = "file"
+RDEPENDS_${PN} = "perl"
+RRECOMMENDS_${PN} = "file"
+
+SRC_URI = "${DEBIAN_MIRROR}/main/m/mime-support/mime-support_${PV}-1.tar.gz"
+S = "${WORKDIR}/${BPN}"
+
+FILES_${PN} += " ${libdir}/mime"
+
+docdir_append = "/${BPN}"
+
+do_install () {
+    install -d ${D}${sysconfdir}
+    install -d ${D}${libdir}/mime/packages
+    install -d ${D}${docdir}
+    install -d ${D}${sbindir}
+    install -d ${D}${bindir}
+    install -d ${D}${mandir}/man1
+    install -d ${D}${mandir}/man5
+    install -d ${D}${mandir}/man8
+    install -m 644 mime.types         ${D}${sysconfdir}/
+    install -m 644 mailcap            ${D}${libdir}/mime/
+    install -m 644 mailcap.order           ${D}${sysconfdir}/
+    install -m 644 mailcap.man        ${D}${mandir}/man5/mailcap.5
+    install -m 644 mailcap.order.man    ${D}${mandir}/man5/mailcap.order.5
+#    install -m 755 install-mime        ${D}${sbindir}/
+#    install -m 644 install-mime.man        ${D}${mandir}/man8/install-mime.8
+    install -m 755 update-mime        ${D}${sbindir}/
+    install -m 644 update-mime.man        ${D}${mandir}/man8/update-mime.8
+    install -m 755 run-mailcap        ${D}${bindir}/
+    install -m 644 run-mailcap.man        ${D}${mandir}/man1/run-mailcap.1
+#    install -m 644 rfcs/*            ${D}${docdir}/
+    install -m 644 debian/changelog        ${D}${docdir}/changelog.Debian
+    install -m 644 debian/README        ${D}${docdir}/copyright
+    install -m 755 debian-view        ${D}${libdir}/mime/
+    install -m 755 playaudio        ${D}${libdir}/mime/
+    install -m 755 playdsp            ${D}${libdir}/mime/
+    install -m 644 mailcap.entries        ${D}${libdir}/mime/packages/mime-support
+    cd ${D}${mandir}; gzip -9fv */*
+    cd ${D}${docdir}; gzip -9v *
+    cd ${D}${docdir}; gunzip copyright.gz
+    cd ${D}${bindir}; ln -s run-mailcap see
+    cd ${D}${bindir}; ln -s run-mailcap edit
+    cd ${D}${bindir}; ln -s run-mailcap compose
+    cd ${D}${bindir}; ln -s run-mailcap print
+    cd ${D}${mandir}/man1; ln -s run-mailcap.1.gz see.1.gz
+    cd ${D}${mandir}/man1; ln -s run-mailcap.1.gz edit.1.gz
+    cd ${D}${mandir}/man1; ln -s run-mailcap.1.gz compose.1.gz
+    cd ${D}${mandir}/man1; ln -s run-mailcap.1.gz print.1.gz
+}
+
+SRC_URI[md5sum] = "d6e5d715e331147352c50c158dbdec6d"
+SRC_URI[sha256sum] = "a529c7892cb786f514af71f4ca5a4c3ebc58b538a49ff959c0d97592d38f040a"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mini-iconv/mini-iconv.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/mini-iconv/mini-iconv.bb
new file mode 100644
index 0000000..0f1548a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mini-iconv/mini-iconv.bb
@@ -0,0 +1,20 @@
+# Copyright (C) 2012 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "A minimal iconv implementation w/ support for UTF-8, ASCII, ISO-8859-1"
+HOMEPAGE = "http://tinderbox.dev.gentoo.org/portage/local/misc/mini-iconv/"
+LICENSE = "MPL-1.1"
+SECTION = "libs"
+DEPENDS = ""
+PROVIDES = "virtual/libiconv"
+LIC_FILES_CHKSUM = "file://iconv.c;beginline=1;endline=6;md5=35af9d9924327fe8a0a1fe3a2cb454c8"
+SRC_URI = "http://mirror.meleeweb.net/pub/linux/gentoo/distfiles/mini-iconv.tar.bz2"
+SRC_URI[md5sum] = "84412221e26505a2b3855d4a1cdcd0e0"
+SRC_URI[sha256sum] = "3552262bf1bcf8e859a2a3a7adfb0367af8593383e730c492e981477aac0a0d4"
+
+
+S = "${WORKDIR}/${PN}"
+
+do_install() {
+    oe_runmake install DESTDIR=${D} PREFIX=${prefix} LIB=${base_libdir}
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/minini/minini_1.2.b.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/minini/minini_1.2.b.bb
new file mode 100644
index 0000000..6607dd8
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/minini/minini_1.2.b.bb
@@ -0,0 +1,39 @@
+SUMMARY = "A minimal INI file parser"
+DESCRIPTION = "minIni is a programmer's library to read and write INI files in \
+embedded systems. minIni takes little resources, has a deterministic memory \
+footprint and can be configured for various kinds of file I/O libraries. minIni \
+provides functionality for reading, writing and deleting keys from an INI file, \
+all in 830 lines of (commented) source code (version 1.2) in C (the code also \
+compiles in C++ and comes with a wrapper class)."
+HOMEPAGE = "https://code.google.com/p/minini/"
+
+# License is Apache 2.0 with an exception to allow object code built from
+# unmodified original sources to be distributed more freely. See LICENSE
+# file for details.
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=eb21481ad45c5578ae8c8d37b8c8d76d"
+
+SRC_URI = "http://minini.googlecode.com/files/minIni_12b.zip;subdir=${BP}"
+
+SRC_URI[md5sum] = "32740621098e3f0a321c7c23f4bcbc5d"
+SRC_URI[sha256sum] = "b08839af74acb36061fb76e1123bf56711bc5cf7a08b32e189b0ad78a2e888e2"
+
+do_configure[noexec] = "1"
+
+do_compile() {
+    ${CC} ${CFLAGS} -fPIC -c minIni.c -o minIni.o
+    ${CC} ${LDFLAGS} -shared -Wl,-soname,libminini.so.0 minIni.o -o libminini.so.0.0
+}
+
+do_install () {
+
+    install -d ${D}${libdir}
+    install -m 0644 libminini.so.0.0 ${D}${libdir}/
+    ln -s libminini.so.0.0 ${D}${libdir}/libminini.so
+    ln -s libminini.so.0.0 ${D}${libdir}/libminini.so.0
+
+    install -d ${D}${includedir}/minini
+    install -m 0644 minIni.h ${D}${includedir}/minini/
+    install -m 0644 minGlue-stdio.h ${D}${includedir}/minini/minGlue.h
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch
new file mode 100644
index 0000000..09d49d2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch
@@ -0,0 +1,67 @@
+From 53368d3f4adc09dd84234a9af31771bcd8ca2757 Mon Sep 17 00:00:00 2001
+From: Sven Ebenfeld <sven.ebenfeld@gmail.com>
+Date: Fri, 15 Jan 2016 22:41:28 +0100
+Subject: [PATCH] Tell scons to use build settings from environment variables
+
+Signed-off-by: Sven Ebenfeld <sven.ebenfeld@gmail.com>
+---
+ SConstruct                | 8 ++++++--
+ src/mongo/util/SConscript | 2 ++
+ 2 files changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/SConstruct b/SConstruct
+index 5082a4b..3370f70 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -507,6 +507,7 @@ def variable_arch_converter(val):
+         'amd64':  'x86_64',
+         'emt64':   'x86_64',
+         'x86':    'i386',
++        'aarch64': 'arm64',
+     }
+     val = val.lower()
+ 
+@@ -568,7 +569,8 @@ env_vars.Add('ARFLAGS',
+     converter=variable_shlex_converter)
+ 
+ env_vars.Add('CC',
+-    help='Select the C compiler to use')
++    help='Select the C compiler to use',
++    default=os.getenv('CC'))
+ 
+ env_vars.Add('CCFLAGS',
+     help='Sets flags for the C and C++ compiler',
+@@ -588,7 +590,8 @@ env_vars.Add('CPPPATH',
+     converter=variable_shlex_converter)
+ 
+ env_vars.Add('CXX',
+-    help='Select the C++ compiler to use')
++    help='Select the C++ compiler to use',
++    default=os.getenv('CXX'))
+ 
+ env_vars.Add('CXXFLAGS',
+     help='Sets flags for the C++ compiler',
+@@ -818,6 +821,7 @@ envDict = dict(BUILD_ROOT=buildDir,
+                )
+ 
+ env = Environment(variables=env_vars, **envDict)
++env.PrependENVPath('PATH', os.getenv('PATH'))
+ del envDict
+ 
+ env.AddMethod(env_os_is_wrapper, 'TargetOSIs')
+diff --git a/src/mongo/util/SConscript b/src/mongo/util/SConscript
+index 6add602..8d05a62 100644
+--- a/src/mongo/util/SConscript
++++ b/src/mongo/util/SConscript
+@@ -251,6 +251,8 @@ if get_option('allocator') == 'tcmalloc':
+                 'MONGO_HAVE_GPERFTOOLS_GET_THREAD_CACHE_SIZE'
+             ]
+         )
++    if not use_system_version_of_library('valgrind'):
++        tcmspEnv.InjectThirdPartyIncludePaths('valgrind')
+ 
+     tcmspEnv.Library(
+         target='tcmalloc_set_parameter',
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb_git.bb
new file mode 100644
index 0000000..6522a67
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mongodb/mongodb_git.bb
@@ -0,0 +1,57 @@
+SUMMARY = "mongodb"
+LICENSE = "AGPL-3.0 & Apache-2.0"
+LIC_FILES_CHKSUM = "file://GNU-AGPL-3.0.txt;md5=73f1eb20517c55bf9493b7dd6e480788 \
+                    file://APACHE-2.0.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+DEPENDS = "openssl libpcre libpcap zlib"
+
+inherit scons
+
+PV = "3.3.0+git${SRCPV}"
+SRCREV = "aacd231be0626a204cb40908afdf62c4b67bb0ad"
+SRC_URI = "git://github.com/mongodb/mongo.git;branch=master \
+           file://0001-Tell-scons-to-use-build-settings-from-environment-va.patch \
+           "
+
+S = "${WORKDIR}/git"
+
+# Wiredtiger supports only 64-bit platforms
+PACKAGECONFIG_x86-64 ??= "tcmalloc wiredtiger"
+PACKAGECONFIG_aarch64 ??= "tcmalloc wiredtiger"
+PACKAGECONFIG ??= "tcmalloc"
+# gperftools compilation fails for arm below v7 because of missing support of
+# dmb operation. So we use system-allocator instead of tcmalloc
+PACKAGECONFIG_remove_armv6 = "tcmalloc"
+
+#std::current_exception is undefined for arm < v6
+COMPATIBLE_MACHINE_armv4 = "(!.*armv4).*"
+COMPATIBLE_MACHINE_armv5 = "(!.*armv5).*"
+COMPATIBLE_MACHINE_mips64 = "(!.*mips64).*"
+
+PACKAGECONFIG[tcmalloc] = "--use-system-tcmalloc,--allocator=system,gperftools,"
+PACKAGECONFIG[wiredtiger] = "--wiredtiger=on,--wiredtiger=off,,"
+
+EXTRA_OESCONS = "--prefix=${D}${prefix} \
+                 LIBPATH=${STAGING_LIBDIR} \
+                 LINKFLAGS='${LDFLAGS}' \
+                 CXXFLAGS='${CXXFLAGS}' \
+                 TARGET_ARCH=${TARGET_ARCH} \
+                 --ssl \
+                 --disable-warnings-as-errors \
+                 --use-system-pcre \
+                 --use-system-zlib \
+                 --js-engine=none \
+                 --nostrip \
+                 ${EXTRA_OECONF} \
+                 mongod mongos"
+DISABLE_STATIC = ""
+
+scons_do_compile() {
+        ${STAGING_BINDIR_NATIVE}/scons ${PARALLEL_MAKE} ${EXTRA_OESCONS} || \
+        die "scons build execution failed."
+}
+
+scons_do_install() {
+        ${STAGING_BINDIR_NATIVE}/scons install ${EXTRA_OESCONS}|| \
+        die "scons install execution failed."
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-multipathd.service-Error-fix.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-multipathd.service-Error-fix.patch
new file mode 100644
index 0000000..1e48e1c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-multipathd.service-Error-fix.patch
@@ -0,0 +1,36 @@
+From 74ff5e1cf8ef83dabcf6e6b92f87d6761f7f4d51 Mon Sep 17 00:00:00 2001
+From: Li xin <lixin.fnst@cn.fujitsu.com>
+Date: Tue, 7 Jul 2015 11:34:36 +0900
+Subject: [PATCH] multipathd.service: Error fix
+
+Failed to start Device-Mapper Multipath Device Controller.
+
+Upstream-Status: pending
+
+Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
+---
+ multipathd/multipathd.service | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/multipathd/multipathd.service b/multipathd/multipathd.service
+index be3ba3f..b8d3ecd 100644
+--- a/multipathd/multipathd.service
++++ b/multipathd/multipathd.service
+@@ -6,11 +6,12 @@ DefaultDependencies=no
+ Conflicts=shutdown.target
+ 
+ [Service]
+-Type=notify
++Type=forking
+ NotifyAccess=main
+ LimitCORE=infinity
++PIDFile=/var/run/multipathd.pid
+ ExecStartPre=/sbin/modprobe dm-multipath
+-ExecStart=/sbin/multipathd -d -s
++ExecStart=/sbin/multipathd
+ ExecReload=/sbin/multipathd reconfigure
+ 
+ [Install]
+-- 
+1.8.4.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/always-use-libdevmapper-kpartx.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/always-use-libdevmapper-kpartx.patch
new file mode 100644
index 0000000..a16a854
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/always-use-libdevmapper-kpartx.patch
@@ -0,0 +1,29 @@
+Always use devmapper for kpartx
+
+Do not try to compute the LIBDM_API_COOKIE make variable
+from host information when cross-compiling.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Aws Ismail <aws.ismail@windriver.com>
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
+
+diff --git a/kpartx/Makefile b/kpartx/Makefile
+index 2a07334..24bdabc 100644
+--- a/kpartx/Makefile
++++ b/kpartx/Makefile
+@@ -4,13 +4,7 @@
+ #
+ include ../Makefile.inc
+ 
+-CFLAGS += -I. -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
+-
+-LIBDM_API_COOKIE = $(shell grep -Ecs '^[a-z]*[[:space:]]+dm_task_set_cookie' /usr/include/libdevmapper.h)
+-
+-ifneq ($(strip $(LIBDM_API_COOKIE)),0)
+-	CFLAGS += -DLIBDM_API_COOKIE
+-endif
++CFLAGS += -I. -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DLIBDM_API_COOKIE
+ 
+ LDFLAGS = -ldevmapper
+ OBJS = bsd.o dos.o kpartx.o solaris.o unixware.o dasd.o sun.o \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/always-use-libdevmapper.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/always-use-libdevmapper.patch
new file mode 100644
index 0000000..89d2352
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/always-use-libdevmapper.patch
@@ -0,0 +1,44 @@
+Always use devmapper
+
+Do not try to compute several _API_ make variables
+from host information when cross-compiling.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Aws Ismail <aws.ismail@windriver.com>
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
+
+diff --git a/libmultipath/Makefile b/libmultipath/Makefile
+index e5b06b3..efd6cf6 100644
+--- a/libmultipath/Makefile
++++ b/libmultipath/Makefile
+@@ -17,23 +17,18 @@ OBJS = memory.o parser.o vector.o devmapper.o \
+        log.o configure.o structs_vec.o sysfs.o prio.o checkers.o \
+        lock.o waiter.o file.o wwids.o
+ 
+-LIBDM_API_FLUSH = $(shell grep -Ecs '^[a-z]*[[:space:]]+dm_task_no_flush' /usr/include/libdevmapper.h)
+ 
+-ifneq ($(strip $(LIBDM_API_FLUSH)),0)
++#ifneq ($(strip $(LIBDM_API_FLUSH)),0)
+ 	CFLAGS += -DLIBDM_API_FLUSH -D_GNU_SOURCE
+-endif
++#endif
+ 
+-LIBDM_API_COOKIE = $(shell grep -Ecs '^[a-z]*[[:space:]]+dm_task_set_cookie' /usr/include/libdevmapper.h)
+-
+-ifneq ($(strip $(LIBDM_API_COOKIE)),0)
++#ifneq ($(strip $(LIBDM_API_COOKIE)),0)
+ 	CFLAGS += -DLIBDM_API_COOKIE
+-endif
+-
+-LIBUDEV_API_RECVBUF = $(shell grep -Ecs '^[a-z]*[[:space:]]+udev_monitor_set_resolve_buffer_size' /usr/include/libudev.h)
++#endif
+ 
+-ifneq ($(strip $(LIBUDEV_API_RECVBUF)),0)
++#ifneq ($(strip $(LIBUDEV_API_RECVBUF)),0)
+ 	CFLAGS += -DLIBUDEV_API_RECVBUF
+-endif
++#endif
+ 
+ 
+ all: $(LIBS)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/do-not-link-libmpathpersist-to-TMPDIR.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/do-not-link-libmpathpersist-to-TMPDIR.patch
new file mode 100644
index 0000000..86d5e0e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/do-not-link-libmpathpersist-to-TMPDIR.patch
@@ -0,0 +1,30 @@
+From fe65ac8face3c88d9d4e12811f44e63ad72c59ae Mon Sep 17 00:00:00 2001
+From: Bian Naimeng <biannm@cn.fujitsu.com>
+Date: Thu, 18 Jun 2015 12:25:25 +0900
+Subject: [PATCH] fix build warning
+
+  NOTE: Executing RunQueue Tasks
+  WARNING: QA Issue: Symlink /lib/libmpathpersist.so in multipath-tools-dev points to TMPDIR [symlink-to-sysroot]
+  NOTE: Tasks Summary: Attempted 1604 tasks of which 1591 didn't need to be rerun and all succeeded.
+
+Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
+---
+ libmpathpersist/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libmpathpersist/Makefile b/libmpathpersist/Makefile
+index c4ec1c5..62022eb 100644
+--- a/libmpathpersist/Makefile
++++ b/libmpathpersist/Makefile
+@@ -32,7 +32,7 @@ install: $(LIBS)
+ 	$(INSTALL_PROGRAM) -m 755 -d $(DESTDIR)$(man3dir)
+ 	$(INSTALL_PROGRAM) -m 755 -d $(DESTDIR)/usr/include/
+ 	$(INSTALL_PROGRAM) -m 755 -d $(DESTDIR)/usr/share/doc/mpathpersist/
+-	ln -sf $(DESTDIR)$(syslibdir)/$(LIBS) $(DESTDIR)$(syslibdir)/$(DEVLIB)
++	ln -sf $(syslibdir)/$(LIBS) $(DESTDIR)$(syslibdir)/$(DEVLIB)
+ 	install -m 644 mpath_persistent_reserve_in.3.gz $(DESTDIR)$(man3dir)	
+ 	install -m 644 mpath_persistent_reserve_out.3.gz $(DESTDIR)$(man3dir)	
+ 	install -m 644 mpath_persist.h $(DESTDIR)/usr/include/
+-- 
+1.8.4.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/makefile_inc.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/makefile_inc.patch
new file mode 100644
index 0000000..71963e0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/makefile_inc.patch
@@ -0,0 +1,39 @@
+multipath-tools: modify Makefile.inc for cross-compilation
+
+Do not look for systemd info on the host, and allow us to pass in CFLAGS
+using the OPTFLAGS variable.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
+
+Update for version 0.5.0-144-g770e6d0
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+--- a/Makefile.inc
++++ b/Makefile.inc
+@@ -21,12 +21,6 @@ ifndef LIB
+ 	endif
+ endif
+ 
+-ifndef SYSTEMD
+-	ifeq ($(shell systemctl --version > /dev/null 2>&1 && echo 1), 1)
+-		SYSTEMD = $(shell systemctl --version 2> /dev/null |  sed -n 's/systemd \([0-9]*\)/\1/p')
+-	endif
+-endif
+-
+ ifndef SYSTEMDPATH
+ 	SYSTEMDPATH=usr/lib
+ endif
+@@ -53,7 +47,10 @@ ifndef RPM_OPT_FLAGS
+ 	RPM_OPT_FLAGS = -O2 -g -pipe -Wformat-security -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4
+ endif
+ 
++ifndef OPTFLAGS
+ OPTFLAGS     = $(RPM_OPT_FLAGS) -Wunused -Wstrict-prototypes
++endif
++
+ CFLAGS	     = $(OPTFLAGS) -fPIC -DLIB_STRING=\"${LIB}\"
+ SHARED_FLAGS = -shared
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/multipathd.oe b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/multipathd.oe
new file mode 100755
index 0000000..3bdf875
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/multipathd.oe
@@ -0,0 +1,146 @@
+#!/bin/bash
+#
+# multipathd	Starts the multipath daemon
+#
+# chkconfig: - 06 87
+# description: Manages device-mapper multipath devices
+
+### BEGIN INIT INFO
+# Provides: multipathd
+# Required-Start:
+# Required-Stop:
+# Default-Start:
+# Default-Stop:
+# Short-Description: Control multipathd
+# Description: This service monitors and manages
+#              device-mapper multipath devices
+### END INIT INFO
+
+DAEMON=/sbin/multipathd
+prog=`basename $DAEMON`
+initdir=/etc/init.d
+lockdir=/var/lock/subsys
+sysconfig=/etc/sysconfig
+syspath=/sys/block
+
+RETVAL=0
+
+teardown_slaves()
+{
+pushd $1 > /dev/null
+if [ -d "slaves" ]; then
+for slave in slaves/*;
+do
+	if [ "$slave" = "slaves/*" ]; then
+		read dev <  $1/dev
+		tablename=`dmsetup table --target multipath | sed -n "s/\(.*\): .* $dev .*/\1/p"`
+		if ! [ -z $tablename ]; then
+			echo "Root is on a multipathed device, multipathd can not be stopped"
+			exit 1
+		fi
+	else
+		local_slave=`readlink -f $slave`;
+		teardown_slaves $local_slave;
+	fi
+	done
+
+else
+		read dev <  $1/dev
+		tablename=`dmsetup table --target multipath | sed -n "s/\(.*\): .* $dev .*/\1/p"`
+		if ! [ -z $tablename ]; then
+			echo "Root is on a multipathed device, multipathd can not be stopped"
+			exit 1
+		fi
+fi
+popd > /dev/null
+}
+
+#
+# See how we were called.
+#
+
+start() {
+	test -x $DAEMON || exit 5
+	echo -n $"Starting $prog daemon: "
+	start-stop-daemon --start --quiet --exec $DAEMON
+	RETVAL=$?
+	[ $RETVAL -eq 0 ] && touch $lockdir/$prog
+	echo
+}
+
+force_stop() {
+	echo -n $"Stopping $prog daemon: "
+	killall $DAEMON
+	RETVAL=$?
+	[ $RETVAL -eq 0 ] && rm -f $lockdir/$prog
+	echo
+}
+
+stop() {
+        root_dev=$(awk '{ if ($1 !~ /^[ \t]*#/ && $2 == "/") { print $1; }}' /etc/mtab)
+	dm_num=`dmsetup info -c --noheadings -o minor $root_dev 2> /dev/null`
+	if [ $? -eq 0 ]; then
+		root_dm_device="dm-$dm_num"
+		[ -d $syspath/$root_dm_device ] && teardown_slaves $syspath/$root_dm_device
+	fi
+
+	force_stop
+}
+
+restart() {
+	stop
+	start
+}
+
+force_restart() {
+	force_stop
+	start
+}
+
+reload() {
+	echo -n "Reloading $prog: "
+	trap "" SIGHUP
+	killall $DAEMON -s SIGHUP -v
+	RETVAL=$?
+	echo
+}	
+
+case "$1" in
+start)
+	start
+	;;
+stop)
+	stop
+	;;
+force-stop)
+	force_stop
+	;;
+force-reload|reload)
+	reload
+	;;
+restart)
+	restart
+	;;
+force-restart)
+	force_restart
+	;;
+condrestart|try-restart)
+	if [ -f $lockdir/$prog ]; then
+	    restart
+	fi
+	;;
+status)
+    if pidof -o %PPID $DAEMON > /dev/null; then
+        echo "Running"
+        RETVAL=0
+    else
+        echo "Not running"
+        RETVAL=1
+    fi
+	;;
+*)
+	echo $"Usage: $0 {start|stop|force-stop|status|restart|force-restart|condrestart|reload}"
+	RETVAL=2
+esac
+
+exit $RETVAL
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_git.bb
new file mode 100644
index 0000000..37b5fef
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_git.bb
@@ -0,0 +1,76 @@
+SUMMARY = "The upstream project used to drive the Device Mapper multipathing driver"
+
+DEPENDS = "lvm2 libaio readline udev"
+
+LICENSE = "LGPLv2"
+
+SRC_URI = "git://git.opensvc.com/multipath-tools/.git;protocol=http \
+           file://multipathd.oe \
+           file://makefile_inc.patch \
+           file://always-use-libdevmapper.patch \
+           file://always-use-libdevmapper-kpartx.patch \
+           file://do-not-link-libmpathpersist-to-TMPDIR.patch \
+           file://0001-multipathd.service-Error-fix.patch \
+           "
+# 0.5.0
+#
+#SRCREV = "82f391e787dc02e9d9294aa391137ab424bb83c4"
+#LIC_FILES_CHKSUM = "file://COPYING;md5=7be2873b6270e45abacc503abbe2aa3d"
+
+# 0.5.0 + commits thru 7/18/2014
+#
+#SRCREV = "0d72f46c12207a6b7b89f5ef4f5ab5f87ed8bc90"
+#LIC_FILES_CHKSUM = "file://COPYING;md5=b06690e7a95c166eefe0199b39118eb1"
+
+# 0.5.0 + commits thru 9/12/2014
+#
+#    includes important systemd related structure size fix
+#
+#SRCREV = "aec68ab217fd2956443b27ceeb97dd6475267789"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b06690e7a95c166eefe0199b39118eb1"
+
+# 0.5.0 + commits thru 2/16/2015
+SRCREV = "770e6d0da035deaced82885939161c2b69225e10"
+
+inherit systemd
+
+
+S = "${WORKDIR}/git"
+
+PV = "0.5.0+git${@'${SRCPV}'.split('+')[-1]}"
+
+# The exact version of SYSTEMD does not matter but should be greater than 209.
+#
+EXTRA_OEMAKE = 'MULTIPATH_VERSION=${PV} DESTDIR=${D} syslibdir=${base_libdir} \
+                OPTFLAGS="${CFLAGS}" \
+                LIB=${base_libdir} libdir=${base_libdir}/multipath \
+                unitdir=/lib/systemd/system \
+                ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "SYSTEMD=216", "", d)} \
+               '
+
+do_install() {
+    oe_runmake install
+
+    # Copy a sample conf file, but do not rename it multipath.conf.
+    #
+    cp multipath.conf.defaults ${D}${sysconfdir}
+
+    # We copy an initscript, but do not start multipathd at init time.
+    #
+    cp ${WORKDIR}/multipathd.oe ${D}${sysconfdir}/init.d/multipathd
+
+}
+
+FILES_${PN}-dbg += "${base_libdir}/multipath/.debug"
+
+# systemd and udev stuff always goes under /lib!
+#
+FILES_${PN} += "${base_libdir}/multipath \
+                /lib/systemd"
+
+PACKAGES =+ "kpartx"
+FILES_kpartx = "${base_sbindir}/kpartx \
+                /usr/lib/udev/kpartx_id \
+               "
+
+RDEPENDS_${PN} += "kpartx"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb-native_5.5.46.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb-native_5.5.46.bb
new file mode 100644
index 0000000..4ce960d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb-native_5.5.46.bb
@@ -0,0 +1,19 @@
+require mariadb.inc
+inherit native
+
+PROVIDES += "mysql5-native"
+DEPENDS = "ncurses-native zlib-native bison-native"
+
+RDEPENDS_${PN} = ""
+PACKAGES = ""
+EXTRA_OEMAKE = ""
+
+do_install() {
+    oe_runmake 'DESTDIR=${D}' install
+
+    install -d ${D}${bindir}
+    install -m 0755 sql/gen_lex_hash ${D}${bindir}/
+    install -m 0755 extra/comp_err ${D}${bindir}/
+    install -m 0755 scripts/comp_sql ${D}${bindir}/
+}
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb.inc b/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb.inc
new file mode 100644
index 0000000..4801ffe
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb.inc
@@ -0,0 +1,286 @@
+SUMMARY = "A robust, scalable, and reliable SQL server"
+HOMEPAGE = "http://mariadb.org"
+SECTION = "libs"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+SRC_URI = "http://archive.mariadb.org/mariadb-${PV}/source/mariadb-${PV}.tar.gz \
+           file://fix-cmake-module-path.patch \
+           file://remove-bad-path.patch \
+           file://fix-mysqlclient-r-version.patch \
+           file://my.cnf \
+           file://mysqld.service \
+           file://install_db.service \
+           file://install_db \
+           file://mysql-systemd-start \
+           file://configure.cmake-fix-valgrind.patch \
+           file://fix-a-building-failure.patch \
+          "
+
+SRC_URI[md5sum] = "92f682b00eb137af01e59ea93f7e31f7"
+SRC_URI[sha256sum] = "45b66b7adc87cad32e553df1d5211e5b6426b78a3bc318a5ccde088bf93e6e10"
+
+S = "${WORKDIR}/mariadb-${PV}"
+
+BINCONFIG_GLOB = "mysql_config"
+
+inherit cmake gettext binconfig update-rc.d useradd systemd
+
+INITSCRIPT_PACKAGES = "${PN}-server ${PN}-setupdb"
+INITSCRIPT_NAME_${PN}-server = "mysqld"
+INITSCRIPT_PARAMS_${PN}-server ?= "start 45 5 . stop 45 0 6 1 ."
+
+USERADD_PACKAGES = "${PN}-server"
+USERADD_PARAM_${PN}-server = "--system --home-dir /var/mysql -g mysql --shell /bin/false mysql"
+GROUPADD_PARAM_${PN}-server = "--system mysql"
+
+INITSCRIPT_NAME_${PN}-setupdb = "install_db"
+INITSCRIPT_PARAMS_${PN}-setupdb ?= "defaults 44 44"
+
+SYSTEMD_PACKAGES = "${PN}-server ${PN}-setupdb"
+SYSTEMD_SERVICE_${PN}-server = "mysqld.service"
+SYSTEMD_AUTO_ENABLE_${PN}-server ?= "disable"
+
+SYSTEMD_SERVICE_${PN}-setupdb = "install_db.service"
+SYSTEMD_AUTO_ENABLE_${PN}-setupdb ?= "enable"
+ALLOW_EMPTY_${PN}-setupdb ?= "1"
+FILES_${PN}-setupdb = "${sysconfdir}/init.d/install_db"
+
+EXTRA_OEMAKE = "'GEN_LEX_HASH=${STAGING_BINDIR_NATIVE}/gen_lex_hash'"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)} setupdb"
+PACKAGECONFIG_class-native = ""
+PACKAGECONFIG[pam] = ",-DWITHOUT_AUTH_PAM=TRUE,libpam"
+PACKAGECONFIG[valgrind] = "-DWITH_VALGRIND=TRUE,-DWITH_VALGRIND=FALSE,valgrind"
+PACKAGECONFIG[libedit] = "-DLIBEDIT_INTERFACE=TRUE,-DLIBEDIT_INTERFACE=FALSE,libedit"
+PACKAGECONFIG[krb5] = ", ,krb5"
+PACKAGECONFIG[setupdb] = ", ,,${PN}-setupdb"
+
+# MariaDB doesn't link properly with gold
+# https://mariadb.atlassian.net/browse/MDEV-5982
+TARGET_CFLAGS += "-fuse-ld=bfd"
+
+BUILD_CFLAGS += "-fuse-ld=bfd"
+BUILD_CXXFLAGS += "-fuse-ld=bfd"
+
+EXTRA_OECMAKE = "-DWITH_EMBEDDED_SERVER=ON \
+                 -DWITH_JEMALLOC=no \
+                 -DWITHOUT_TOKUDB=TRUE \
+                 -DCMAKE_DISABLE_FIND_PACKAGE_Boost=TRUE \
+                 -DGROFF=FALSE \
+                 -DNROFF=FALSE \
+                 -DENABLE_DTRACE=FALSE \
+                 -DWITH_PIC=ON \
+                 -DINSTALL_LAYOUT=RPM \
+                 -DINSTALL_DOCDIR:PATH=${datadir}/doc/${BPN} \
+                 -DINSTALL_LIBDIR:PATH=${baselib} \
+                 -DINSTALL_PLUGINDIR:PATH=${baselib}/plugin \
+                 -DINSTALL_SYSCONFDIR:PATH=${sysconfdir} \
+                 -DMYSQL_DATADIR:PATH=/var/mysql \
+                 -DCAT_EXECUTABLE=`which cat` \
+                 -DCMAKE_AR:FILEPATH=${AR}"
+
+do_configure_append() {
+    # handle distros with different values of ${libexecdir}
+    libexecdir2=`echo ${libexecdir} | sed -e 's+/usr/++g'`
+    sed -i -e "s:/libexec:/$libexecdir2:g" ${S}/scripts/mysql_install_db.sh
+    sed -i -e "s:mysqld libexec:mysqld $libexecdir2:g" ${S}/scripts/mysql_install_db.sh
+    sed -i -e "s:/libexec:/$libexecdir2:g" ${S}/scripts/mysqld_safe.sh
+}
+
+do_generate_toolchain_file_append_class-native () {
+    # If these are set cmake will assume we're cross-compiling, which will
+    # result in certain things we want being disabled
+    sed -i "/set( CMAKE_SYSTEM_NAME/d" ${WORKDIR}/toolchain.cmake
+    sed -i "/set( CMAKE_SYSTEM_PROCESSOR/d" ${WORKDIR}/toolchain.cmake
+}
+
+do_compile_prepend_class-target () {
+    # These need to be in-tree or make will think they need to be built,
+    # and since we're cross-compiling that is disabled
+    cp ${STAGING_BINDIR_NATIVE}/comp_err ${S}/extra
+    cp ${STAGING_BINDIR_NATIVE}/comp_sql ${S}/scripts
+
+    if [ "${@bb.utils.contains('PACKAGECONFIG', 'krb5', 'yes', 'no', d)}" = "no" ]; then
+        if ! [ -e ${B}/include/openssl/kssl.h ] ; then
+            mkdir -p ${B}/include/openssl
+            echo "#ifndef KSSL_H" >${B}/include/openssl/kssl.h
+            echo "#define KSSL_H" >>${B}/include/openssl/kssl.h
+            echo "#include <openssl/opensslconf.h>">>${B}/include/openssl/kssl.h
+            echo "#endif" >>${B}/include/openssl/kssl.h
+        fi
+    fi
+}
+
+SYSROOT_PREPROCESS_FUNCS += "mariadb_sysroot_preprocess"
+
+# We need to append this so it runs *after* binconfig's preprocess function
+#
+# We really don't care exactly what the directories were set to originally.
+# plugindir is not fixed, but we don't create any plugins.
+#
+mariadb_sysroot_preprocess () {
+    sed -i -es,^pkgincludedir=.*,pkgincludedir=\'${STAGING_INCDIR}/mysql\', ${SYSROOT_DESTDIR}${bindir_crossscripts}/mysql_config
+    sed -i -es,^pkglibdir=.*,pkglibdir=\'${STAGING_LIBDIR}\', ${SYSROOT_DESTDIR}${bindir_crossscripts}/mysql_config
+}
+
+do_install() {
+    oe_runmake 'DESTDIR=${D}' install
+
+    install -d ${D}/${sysconfdir}/init.d
+    install -m 0644 ${WORKDIR}/my.cnf ${D}/${sysconfdir}/
+    install -m 0755 ${WORKDIR}/install_db ${D}/${sysconfdir}/init.d/
+    mv ${D}/${sysconfdir}/init.d/mysql ${D}/${sysconfdir}/init.d/mysqld
+
+    install -d ${D}${systemd_unitdir}/system
+    install -m 0644 ${WORKDIR}/mysqld.service ${D}${systemd_unitdir}/system
+    install -m 0644 ${WORKDIR}/install_db.service ${D}${systemd_unitdir}/system
+    sed -i -e 's,@BINDIR@,${bindir},g' -e 's,@PREFIX@,${prefix},g' ${D}${systemd_unitdir}/system/mysqld.service \
+                                                                   ${D}${systemd_unitdir}/system/install_db.service
+
+    if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+	install -d ${D}${sysconfdir}/tmpfiles.d
+	echo "f /var/log/mysqld.err 0640 mysql mysql -" \
+            > ${D}${sysconfdir}/tmpfiles.d/99-mysqld.conf
+    fi
+    install -d ${D}${bindir}
+    install -m 755 ${WORKDIR}/mysql-systemd-start ${D}${bindir}
+    install -d ${D}${datadir}/doc/${PN}
+    if [ -f ${D}${datadir}/doc/README ]; then
+        mv ${D}${datadir}/doc/README ${D}${datadir}/doc/${PN}/
+    fi
+}
+
+PACKAGES = "${PN}-dbg ${PN} \
+    libmysqlclient-r libmysqlclient-r-dev libmysqlclient-r-staticdev libmysqlclient-r-dbg \
+    libmysqlclient libmysqlclient-dev libmysqlclient-staticdev libmysqlclient-dbg \
+    libmysqld libmysqld-dev ${PN}-client ${PN}-server ${PN}-setupdb ${PN}-leftovers"
+CONFFILES_${PN}-server += "${sysconfdir}/my.cnf ${sysconfdir}/my.cnf.d/server.cnf"
+CONFFILES_${PN}-client += "${sysconfdir}/my.cnf.d/mysql-clients.cnf"
+CONFFILES_libmysqlclient += "${sysconfdir}/my.cnf.d/client.cnf"
+
+FILES_${PN} = " "
+RDEPENDS_${PN} = "${PN}-client ${PN}-server"
+ALLOW_EMPTY_${PN} = "1"
+
+RDEPENDS_${PN}-client = "perl perl-module-getopt-long perl-module-file-temp \
+    perl-module-fcntl perl-module-sys-hostname perl-module-ipc-open3 \
+    perl-module-exporter"
+RDEPENDS_${PN}-server = "perl perl-module-getopt-long perl-module-data-dumper \
+    perl-module-file-basename perl-module-file-path perl-module-sys-hostname \
+    perl-module-file-copy perl-module-file-temp perl-module-posix \
+    ${PN}-client"
+RDEPENDS_${PN}-leftovers = "perl perl-module-cwd perl-module-benchmark perl-module-getopt-long \
+    perl-module-posix perl-module-data-dumper perl-module-sigtrap perl-module-threads \
+    perl-module-threads-shared perl-module-io-socket perl-module-sys-hostname perl-module-file-copy \
+    perl-module-file-spec perl-module-file-find perl-module-file-basename perl-module-file-path \
+    perl-module-constant perl-module-lib perl-module-file-temp perl-module-file-spec-functions \
+    perl-module-io-socket-inet perl-module-io-select"
+
+# Allow old code to link to the backward compatible library
+RDEPENDS_libmysqlclient-dev = "libmysqlclient-r-dev"
+
+FILES_libmysqlclient = "\
+    ${libdir}/libmysqlclient.so.* \
+    ${sysconfdir}/my.cnf.d/client.cnf"
+FILES_libmysqlclient-dev = " \
+    ${includedir}/mysql/ \
+    ${libdir}/libmysqlclient.so \
+    ${sysconfdir}/aclocal \
+    ${bindir}/mysql_config"
+FILES_libmysqlclient-staticdev = "\
+    ${libdir}/*.a"
+FILES_libmysqlclient-dbg = "${libdir}/plugin/.debug/ \
+    ${datadir}/mysql-test/lib/My/SafeProcess/.debug/my_safe_process"
+
+# Avoid warnings about ha_xtradb.so.0.0.0 and ha_innodb_plugin.so.0.0.0
+# which are intentionally non-PIC on 32-bit x86 (see e.g.
+# storage/xtradb/plug.in in the source)
+INSANE_SKIP_libmysqlclient_append_x86 = " textrel"
+
+FILES_libmysqlclient-r = "${libdir}/libmysqlclient_r.so.*"
+FILES_libmysqlclient-r-dev = "\
+    ${libdir}/libmysqlclient_r.so"
+FILES_libmysqlclient-r-staticdev = "${libdir}/libmysqlclient_r.a"
+FILES_libmysqlclient-r-dbg = "${libdir}/plugin/.debuglibmysqlclient_r.so.*"
+
+FILES_libmysqld = "\
+    ${libdir}/libmysqld.so.*"
+FILES_libmysqld-dev = "\
+    ${libdir}/libmysqld.so"
+
+FILES_${PN}-client = "\
+    ${bindir}/myisam_ftdump \
+    ${bindir}/mysql \
+    ${bindir}/mysql_client_test \
+    ${bindir}/mysql_client_test_embedded \
+    ${bindir}/mysql_find_rows \
+    ${bindir}/mysql_fix_extensions \
+    ${bindir}/mysql_waitpid \
+    ${bindir}/mysqlaccess \
+    ${bindir}/mysqladmin \
+    ${bindir}/mysqlbug \
+    ${bindir}/mysqlcheck \
+    ${bindir}/mysqldump \
+    ${bindir}/mysqldumpslow \
+    ${bindir}/mysqlimport \
+    ${bindir}/mysqlshow \
+    ${bindir}/mysqlslap \
+    ${bindir}/mysqltest_embedded \
+    ${libexecdir}/mysqlmanager \
+    ${sysconfdir}/my.cnf.d/mysql-clients.cnf"
+
+FILES_${PN}-server = "\
+    ${bindir}/comp_err \
+    ${bindir}/isamchk \
+    ${bindir}/isamlog \
+    ${bindir}/msql2mysql \
+    ${bindir}/my_print_defaults \
+    ${bindir}/myisamchk \
+    ${bindir}/myisamlog \
+    ${bindir}/myisampack \
+    ${bindir}/mysql_convert_table_format \
+    ${bindir}/mysql_fix_privilege_tables \
+    ${bindir}/mysql_install_db \
+    ${bindir}/mysql_secure_installation \
+    ${bindir}/mysql_setpermission \
+    ${bindir}/mysql-systemd-start \
+    ${bindir}/mysql_tzinfo_to_sql \
+    ${bindir}/mysql_upgrade \
+    ${bindir}/mysql_plugin \
+    ${bindir}/mysql_zap \
+    ${bindir}/mysqlbinlog \
+    ${bindir}/mysqld_multi \
+    ${bindir}/mysqld_safe \
+    ${bindir}/mysqlhotcopy \
+    ${bindir}/mysqltest \
+    ${bindir}/ndb_delete_all \
+    ${bindir}/ndb_desc \
+    ${bindir}/ndb_drop_index \
+    ${bindir}/ndb_drop_table \
+    ${bindir}/ndb_mgm \
+    ${bindir}/ndb_restore \
+    ${bindir}/ndb_select_all \
+    ${bindir}/ndb_select_count \
+    ${bindir}/ndb_show_tables \
+    ${bindir}/ndb_waiter \
+    ${bindir}/pack_isam \
+    ${bindir}/perror \
+    ${bindir}/replace \
+    ${bindir}/resolve_stack_dump \
+    ${bindir}/resolveip \
+    ${libexecdir}/mysqld \
+    ${sbindir}/mysqld \
+    ${sbindir}/ndb_cpcd \
+    ${sbindir}/ndbd \
+    ${sbindir}/ndb_mgmd \
+    ${libdir}/plugin/*.so \
+    ${datadir}/mysql/ \
+    ${localstatedir}/mysql/ \
+    ${sysconfdir}/init.d/mysqld \
+    ${sysconfdir}/my.cnf \
+    ${sysconfdir}/my.cnf.d/server.cnf \
+    ${sysconfdir}/tmpfiles.d"
+
+DESCRIPTION_${PN}-leftovers = "unpackaged and probably unneeded files for ${PN}"
+FILES_${PN}-leftovers = "/"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/configure.cmake-fix-valgrind.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/configure.cmake-fix-valgrind.patch
new file mode 100644
index 0000000..e97def6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/configure.cmake-fix-valgrind.patch
@@ -0,0 +1,41 @@
+From 5effba0d7d47071a3f1bca56823190d5a95bb1a6 Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Wed, 12 Nov 2014 03:09:10 -0500
+Subject: [PATCH] configure.cmake: fix valgrind
+
+Check valgrind headers only if WITH_VALGRIND is set.
+
+mariadb uses two macros for valgrind compilations:
+HAVE_valgrind - valgrind is installed and can be set by configure option -DWITH_VALGRIND
+HAVE_VALGRIND - valgrind debug libraries is installed, set by auto check
+
+We would like to set them both by the configure option so that we can use
+PACKAGECONFIG to decide if valgrind is needed or not.
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+---
+ configure.cmake | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.cmake b/configure.cmake
+index 0bd7bbe..51a098f 100644
+--- a/configure.cmake
++++ b/configure.cmake
+@@ -1047,10 +1047,10 @@ MARK_AS_ADVANCED(WITH_ATOMIC_LOCKS MY_ATOMIC_MODE_RWLOCK MY_ATOMIC_MODE_DUMMY)
+ 
+ IF(WITH_VALGRIND)
+   SET(HAVE_valgrind 1)
++  CHECK_INCLUDE_FILES("valgrind/memcheck.h;valgrind/valgrind.h"
++  HAVE_VALGRIND)
+ ENDIF()
+ 
+-CHECK_INCLUDE_FILES("valgrind/memcheck.h;valgrind/valgrind.h" 
+-  HAVE_VALGRIND)
+ 
+ #--------------------------------------------------------------------
+ # Check for IPv6 support
+-- 
+2.0.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/fix-a-building-failure.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/fix-a-building-failure.patch
new file mode 100644
index 0000000..0c4e102
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/fix-a-building-failure.patch
@@ -0,0 +1,31 @@
+[PATCH] fix a building failure
+
+Upstream-Status: Inappropriate [configuration]
+
+building failed since native does not generate import_executables.cmake
+In fact, our building system will export the needed commands
+
+Signed-off-by: Roy Li <rongqing.li@windriver.com>
+---
+ CMakeLists.txt | 5 -----
+ 1 file changed, 5 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index c1ce1c5..83b3a7e 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -350,11 +350,6 @@ MYSQL_CHECK_READLINE()
+ 
+ CHECK_JEMALLOC()
+ 
+-IF(CMAKE_CROSSCOMPILING)
+-  SET(IMPORT_EXECUTABLES "IMPORTFILE-NOTFOUND" CACHE FILEPATH "Path to import_executables.cmake from a native build")
+-  INCLUDE(${IMPORT_EXECUTABLES})
+-ENDIF()
+-
+ #
+ # Setup maintainer mode options by the end. Platform checks are
+ # not run with the warning options as to not perturb fragile checks
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/fix-cmake-module-path.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/fix-cmake-module-path.patch
new file mode 100644
index 0000000..8d9f558
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/fix-cmake-module-path.patch
@@ -0,0 +1,29 @@
+Avoid CMAKE_MODULE_PATH being overwritten
+
+OE-Core's setting of CMAKE_MODULE_PATH stomps on MariaDB's value unless
+we set it after setting the project name.
+
+Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
+
+Upstream-Status: Inappropriate [working around OE-Core bug]
+
+--- mariadb/CMakeLists.txt	2014-07-17 11:01:07.676353047 +0100
++++ mariadb/CMakeLists.txt	2014-07-17 11:01:31.299353107 +0100
+@@ -28,8 +28,6 @@
+ 
+ MESSAGE(STATUS "Running cmake version ${CMAKE_VERSION}")
+ 
+-SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake)
+-
+ # Distinguish between community and non-community builds, with the
+ # default being a community build. This does not impact the feature
+ # set that will be compiled in; it's merely provided as a hint to
+@@ -77,6 +75,8 @@
+ ENDIF()
+ PROJECT(${MYSQL_PROJECT_NAME})
+ 
++SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake)
++
+ IF(BUILD_CONFIG)
+   INCLUDE(
+   ${CMAKE_SOURCE_DIR}/cmake/build_configurations/${BUILD_CONFIG}.cmake)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/fix-mysqlclient-r-version.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/fix-mysqlclient-r-version.patch
new file mode 100644
index 0000000..7516619
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/fix-mysqlclient-r-version.patch
@@ -0,0 +1,161 @@
+From 6db2a606196fb38a6d106dc409eee1cb9a40a440 Mon Sep 17 00:00:00 2001
+From: Tor Didriksen <tor.didriksen@oracle.com>
+Date: Mon, 24 Jun 2013 17:15:35 +0200
+Subject: [PATCH] Bug#16809055 MYSQL 5.6 AND 5.7 STILL USE LIBMYSQLCLIENT.SO.18
+
+With this patch, the libmysql/ directory contains:
+libmysqlclient.a
+libmysqlclient_r.a -> libmysqlclient.a
+libmysqlclient_r.so -> libmysqlclient.so*
+libmysqlclient_r.so.18 -> libmysqlclient.so.18*
+libmysqlclient_r.so.18.1.0 -> libmysqlclient.so.18.1.0*
+libmysqlclient.so -> libmysqlclient.so.18*
+libmysqlclient.so.18 -> libmysqlclient.so.18.1.0*
+libmysqlclient.so.18.1.0*
+
+This fixes libmysqlclient_r symlinks pointing to the unversioned
+libmysqlclient.so symlink (leading to package QA errors since the
+libmysqlclient-r package ends up depending on libmysqlclient-dev).
+
+Borrowed from MySQL 5.6 tree at https://github.com/percona/mysql/
+
+Upstream-Status: Pending
+
+Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
+
+---
+ cmake/install_macros.cmake | 25 +++++++++++++++----------
+ cmake/mysql_version.cmake  |  3 ++-
+ libmysql/CMakeLists.txt    | 36 ++++++++++++++++++++++++++++--------
+ 3 files changed, 45 insertions(+), 19 deletions(-)
+
+diff --git a/cmake/install_macros.cmake b/cmake/install_macros.cmake
+index b8efdf8..a0d0e68 100644
+--- a/cmake/install_macros.cmake
++++ b/cmake/install_macros.cmake
+@@ -1,4 +1,4 @@
+-# Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
++# Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
+ # 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+@@ -111,28 +111,33 @@ FUNCTION(INSTALL_SCRIPT)
+ ENDFUNCTION()
+ 
+ # Install symbolic link to CMake target. 
+-# the link is created in the same directory as target
+-# and extension will be the same as for target file.
+-MACRO(INSTALL_SYMLINK linkname target destination component)
++# We do 'cd path; ln -s target_name link_name'
++# We also add an INSTALL target for "${path}/${link_name}"
++MACRO(INSTALL_SYMLINK target target_name link_name destination component)
+ IF(UNIX)
+   GET_TARGET_PROPERTY(location ${target} LOCATION)
+   GET_FILENAME_COMPONENT(path ${location} PATH)
+-  GET_FILENAME_COMPONENT(name ${location} NAME)
+-  SET(output ${path}/${linkname})
++  MESSAGE(STATUS "target ${target}")
++  MESSAGE(STATUS "link_name ${link_name}")
++  MESSAGE(STATUS "target_name ${target_name}")
++  MESSAGE(STATUS "path ${path}")
++  MESSAGE(STATUS "")
++
++  SET(output ${path}/${link_name})
+   ADD_CUSTOM_COMMAND(
+     OUTPUT ${output}
+     COMMAND ${CMAKE_COMMAND} ARGS -E remove -f ${output}
+     COMMAND ${CMAKE_COMMAND} ARGS -E create_symlink 
+-      ${name} 
+-      ${linkname}
++      ${target_name} 
++      ${link_name}
+     WORKING_DIRECTORY ${path}
+     DEPENDS ${target}
+     )
+   
+-  ADD_CUSTOM_TARGET(symlink_${linkname}
++  ADD_CUSTOM_TARGET(symlink_${link_name}
+     ALL
+     DEPENDS ${output})
+-  SET_TARGET_PROPERTIES(symlink_${linkname} PROPERTIES CLEAN_DIRECT_OUTPUT 1)
++  SET_TARGET_PROPERTIES(symlink_${link_name} PROPERTIES CLEAN_DIRECT_OUTPUT 1)
+   IF(CMAKE_GENERATOR MATCHES "Xcode")
+     # For Xcode, replace project config with install config
+     STRING(REPLACE "${CMAKE_CFG_INTDIR}" 
+diff --git a/libmysql/CMakeLists.txt b/libmysql/CMakeLists.txt
+index be5760f..96286ff 100644
+--- a/libmysql/CMakeLists.txt
++++ b/libmysql/CMakeLists.txt
+@@ -180,6 +180,12 @@ IF(MSVC)
+  INSTALL_DEBUG_TARGET(mysqlclient DESTINATION ${INSTALL_LIBDIR}/debug)
+ ENDIF()
+ 
++MACRO(GET_TARGET_NAME target out_name)
++  GET_TARGET_PROPERTY(location ${target} LOCATION)
++  GET_FILENAME_COMPONENT(name ${location} NAME)
++  SET(${out_name} ${name})
++ENDMACRO()
++
+ IF(UNIX)
+   MACRO(GET_VERSIONED_LIBNAME LIBNAME EXTENSION VERSION OUTNAME)
+     SET(DOT_VERSION ".${VERSION}")
+@@ -192,7 +198,13 @@ IF(UNIX)
+       SET(${OUTNAME} ${LIBNAME}${EXTENSION}${DOT_VERSION})
+     ENDIF() 
+   ENDMACRO()
+-  INSTALL_SYMLINK(${CMAKE_STATIC_LIBRARY_PREFIX}mysqlclient_r.a mysqlclient ${INSTALL_LIBDIR} Development)
++ENDIF()
++
++IF(UNIX)
++  GET_TARGET_NAME(mysqlclient lib_name)
++  INSTALL_SYMLINK(mysqlclient
++    ${lib_name} ${CMAKE_STATIC_LIBRARY_PREFIX}mysqlclient_r.a
++    ${INSTALL_LIBDIR} Development)
+ ENDIF()
+ 
+ IF(NOT DISABLE_SHARED)
+@@ -205,10 +217,9 @@ IF(NOT DISABLE_SHARED)
+     # libtool compatability
+     IF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD" OR APPLE)
+       SET(OS_SHARED_LIB_VERSION "${SHARED_LIB_MAJOR_VERSION}")
+-    ELSEIF(CMAKE_SYSTEM_NAME MATCHES "HP-UX")
+-      SET(OS_SHARED_LIB_VERSION "${SHARED_LIB_MAJOR_VERSION}.0")
+     ELSE()
+-      SET(OS_SHARED_LIB_VERSION "${SHARED_LIB_MAJOR_VERSION}.0.0")
++      SET(OS_SHARED_LIB_VERSION
++        "${SHARED_LIB_MAJOR_VERSION}.${SHARED_LIB_MINOR_VERSION}.0")
+     ENDIF()
+     # Name of shared library is mysqlclient on Unix
+     SET_TARGET_PROPERTIES(libmysql PROPERTIES 
+@@ -239,8 +250,13 @@ IF(NOT DISABLE_SHARED)
+       "${CMAKE_SHARED_LIBRARY_SUFFIX}"
+       ""
+       linkname)
+-    INSTALL_SYMLINK(${linkname} libmysql ${INSTALL_LIBDIR} SharedLibraries)
+-    SET(OS_SHARED_LIB_SYMLINKS "${SHARED_LIB_MAJOR_VERSION}" "${OS_SHARED_LIB_VERSION}")
++    GET_TARGET_NAME(libmysql lib_name)
++    GET_FILENAME_COMPONENT(lib_name_we ${lib_name} NAME_WE)
++    INSTALL_SYMLINK(libmysql
++      ${lib_name} ${linkname}
++      ${INSTALL_LIBDIR} SharedLibraries)
++    SET(OS_SHARED_LIB_SYMLINKS
++      "${SHARED_LIB_MAJOR_VERSION}" "${OS_SHARED_LIB_VERSION}")
+     LIST(REMOVE_DUPLICATES OS_SHARED_LIB_SYMLINKS)
+     FOREACH(ver ${OS_SHARED_LIB_SYMLINKS})
+       GET_VERSIONED_LIBNAME(
+@@ -248,7 +264,11 @@ IF(NOT DISABLE_SHARED)
+         "${CMAKE_SHARED_LIBRARY_SUFFIX}"
+         "${ver}"
+         linkname)
+-      INSTALL_SYMLINK(${linkname} libmysql ${INSTALL_LIBDIR} SharedLibraries)
++      GET_VERSIONED_LIBNAME(
++        ${lib_name_we} "${CMAKE_SHARED_LIBRARY_SUFFIX}" "${ver}" lib_name_ver)
++      INSTALL_SYMLINK(libmysql
++        ${lib_name_ver} ${linkname}
++        ${INSTALL_LIBDIR} SharedLibraries)
+     ENDFOREACH()
+   ENDIF()
+ ENDIF()
+-- 
+2.0.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/install_db b/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/install_db
new file mode 100755
index 0000000..512a7da
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/install_db
@@ -0,0 +1,13 @@
+#! /bin/sh
+case "$1" in
+  start)
+	echo "Starting to install database for mariadb"
+	/usr/bin/mysql-systemd-start pre
+        echo "done."
+	;;
+  *)
+	echo "Usage: /etc/init.d/install_db start"
+	exit 1
+esac
+
+exit 0
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/install_db.service b/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/install_db.service
new file mode 100644
index 0000000..c8369f5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/install_db.service
@@ -0,0 +1,17 @@
+#
+# Simple install MySQL database service file
+# It shoulb be done before mysqld.service
+
+[Unit]
+Description=Install MySQL Community Server Database
+After=network.target
+After=syslog.target
+Before=mysqld.service
+
+[Install]
+WantedBy=multi-user.target
+
+[Service]
+Type=oneshot
+ExecStart=@BINDIR@/mysql-systemd-start pre
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/my.cnf b/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/my.cnf
new file mode 100644
index 0000000..dc4c172
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/my.cnf
@@ -0,0 +1,25 @@
+[client]
+#password					= password
+port						= 3306
+socket						= /var/lib/mysql/mysql.sock
+
+[mysqld_safe]
+
+[mysqld]
+user 						= mysql
+port 						= 3306
+socket 						= /var/lib/mysql/mysql.sock
+pid-file 					= /var/lib/mysql/mysqld.pid
+log-error 					= /var/log/mysqld.err
+basedir 					= /usr
+datadir 					= /var/lib/mysql
+skip-external-locking
+skip-networking
+ignore-builtin-innodb
+default-storage-engine				= myisam
+bind-address					= localhost
+
+#
+# include all files from the config directory
+#
+!includedir /etc/my.cnf.d
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/mysql-systemd-start b/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/mysql-systemd-start
new file mode 100644
index 0000000..189c020
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/mysql-systemd-start
@@ -0,0 +1,66 @@
+#! /bin/sh
+#
+# Needed argument: pre | post
+#
+# pre mode  :  try to run mysql_install_db and fix perms and SELinux contexts
+# post mode :  ping server until answer is received
+#
+
+get_option () {
+    local section=$1
+    local option=$2
+    local default=$3
+    ret=$(/usr/bin/my_print_defaults $section | grep '^--'${option}'=' | cut -d= -f2-)
+    [ -z $ret ] && ret=$default
+    echo $ret
+}
+
+install_db () {
+    # Note: something different than datadir=/var/lib/mysql requires SELinux policy changes (in enforcing mode)
+    datadir=$(get_option mysqld datadir "/var/lib/mysql")
+
+    # Restore log, dir, perms and SELinux contexts
+    [ -d "$datadir" ] || install -d -m 0755 -omysql -gmysql "$datadir" || exit 1
+    log=/var/log/mysqld.log
+    [ -e $log ] || touch $log
+    chmod 0640 $log
+    chown mysql:mysql $log || exit 1
+    if [ -x /usr/sbin/restorecon ]; then
+        /usr/sbin/restorecon "$datadir"
+        /usr/sbin/restorecon $log
+    fi
+
+    # If special mysql dir is in place, skip db install
+    [ -d "$datadir/mysql" ] && exit 0
+
+    # Create initial db
+    /usr/bin/mysql_install_db --rpm --datadir="$datadir" --user=mysql
+    exit 0
+}
+
+pinger () {
+    # Wait for ping to answer to signal startup completed,
+    # might take a while in case of e.g. crash recovery
+    # MySQL systemd service will timeout script if no answer
+    datadir=$(get_option mysqld datadir "/var/lib/mysql")
+    socket=$(get_option  mysqld socket "$datadir/mysql.sock")
+    case $socket in
+        /*) adminsocket="$socket" ;;
+        *) adminsocket="$datadir/$socket" ;;
+    esac
+
+    while /bin/true ; do
+        sleep 1
+        mysqladmin --no-defaults --socket="$adminsocket" --user=UNKNOWN_MYSQL_USER ping >/dev/null 2>&1 && break
+    done
+    exit 0
+}
+
+# main
+case $1 in
+    "pre") install_db ;;
+    "post") pinger ;;
+esac
+
+exit 0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/mysqld.service b/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/mysqld.service
new file mode 100644
index 0000000..d883617
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/mysqld.service
@@ -0,0 +1,25 @@
+[Unit]
+Description=MariaDB database server
+After=syslog.target
+After=network.target
+
+[Service]
+PIDFile=/var/lib/mysql/mysqld.pid
+Type=simple
+User=mysql
+Group=mysql
+
+# Execute post scripts as root
+PermissionsStartOnly=true
+
+# Start main service
+ExecStart=@BINDIR@/mysqld_safe --basedir=@PREFIX@
+
+# Don't signal startup success before a ping works
+ExecStartPost=@BINDIR@/mysql-systemd-start post
+
+TimeoutSec=300
+PrivateTmp=true
+
+[Install]
+WantedBy=multi-user.target
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/remove-bad-path.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/remove-bad-path.patch
new file mode 100644
index 0000000..ff26b0b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb/remove-bad-path.patch
@@ -0,0 +1,18 @@
+Remove host path from include directories
+
+Naturally this breaks cross-compilation if present.
+
+Upstream-Status: Pending
+
+Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
+
+--- mariadb-5.5.38/storage/tokudb/ft-index/CMakeLists.txt	2014-07-17 14:37:04.529327998 +0100
++++ mariadb-5.5.38/storage/tokudb/ft-index/CMakeLists.txt	2014-07-17 14:43:56.991337895 +0100
+@@ -39,7 +39,6 @@
+ 
+ ## default includes and libraries
+ include_directories(SYSTEM
+-  /usr/local/include
+   ${ZLIB_INCLUDE_DIRS}
+   )
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb_5.5.46.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb_5.5.46.bb
new file mode 100644
index 0000000..8f998a3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mariadb_5.5.46.bb
@@ -0,0 +1,27 @@
+require mariadb.inc
+
+EXTRA_OECMAKE += "-DSTACK_DIRECTION=-1"
+
+DEPENDS += "mariadb-native ncurses zlib readline libaio libevent"
+
+PROVIDES += "mysql5"
+
+RPROVIDES_${PN} += "mysql5"
+RREPLACES_${PN} += "mysql5"
+RCONFLICTS_${PN} += "mysql5"
+
+RPROVIDES_${PN}-dbg += "mysql5-dbg"
+RREPLACES_${PN}-dbg += "mysql5-dbg"
+RCONFLICTS_${PN}-dbg += "mysql5-dbg"
+
+RPROVIDES_${PN}-leftovers += "mysql5-leftovers"
+RREPLACES_${PN}-leftovers += "mysql5-leftovers"
+RCONFLICTS_${PN}-leftovers += "mysql5-leftovers"
+
+RPROVIDES_${PN}-client += "mysql5-client"
+RREPLACES_${PN}-client += "mysql5-client"
+RCONFLICTS_${PN}-client += "mysql5-client"
+
+RPROVIDES_${PN}-server += "mysql5-server"
+RREPLACES_${PN}-server += "mysql5-server"
+RCONFLICTS_${PN}-server += "mysql5-server"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mysql-python_1.2.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mysql-python_1.2.5.bb
new file mode 100644
index 0000000..ac0df4f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/mysql/mysql-python_1.2.5.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Python interface to MySQL"
+HOMEPAGE = "https://github.com/farcepest/MySQLdb1"
+SECTION = "devel/python"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://GPL-2.0;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = "mysql5"
+
+SRCNAME = "MySQL-python"
+
+SRC_URI = "https://pypi.python.org/packages/source/M/${SRCNAME}/${SRCNAME}-${PV}.zip"
+SRC_URI[md5sum] = "654f75b302db6ed8dc5a898c625e030c"
+SRC_URI[sha256sum] = "811040b647e5d5686f84db415efd697e6250008b112b6909ba77ac059e140c74"
+
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit setuptools
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/nano/nano-2.2.5/ncursesw.includedir.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/nano/nano-2.2.5/ncursesw.includedir.patch
new file mode 100644
index 0000000..0f224be
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/nano/nano-2.2.5/ncursesw.includedir.patch
@@ -0,0 +1,12 @@
+diff -uNr nano-2.2.5.orig//configure.ac nano-2.2.5/configure.ac
+--- nano-2.2.5.orig//configure.ac	2010-08-06 03:00:51.000000000 +0200
++++ nano-2.2.5/configure.ac	2010-08-10 14:11:52.000000000 +0200
+@@ -442,7 +442,7 @@
+     AC_CHECK_HEADERS(ncurses.h)
+ 
+     if test x$enable_utf8 != xno; then
+-	AC_CHECK_LIB(ncursesw, get_wch, [CURSES_LIB="-lncursesw" CPPFLAGS="-I/usr/include/ncursesw $CPPFLAGS" CURSES_LIB_NAME=ncursesw CURSES_LIB_WIDE=yes])
++	AC_CHECK_LIB(ncursesw, get_wch, [CURSES_LIB="-lncursesw" CURSES_LIB_NAME=ncursesw CURSES_LIB_WIDE=yes])
+     fi
+ 
+     if eval "test x$CURSES_LIB_NAME = x"; then
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/nano/nano.inc b/import-layers/meta-openembedded/meta-oe/recipes-support/nano/nano.inc
new file mode 100644
index 0000000..bdefe9b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/nano/nano.inc
@@ -0,0 +1,19 @@
+DESCRIPTION = "GNU nano (Nano's ANOther editor, or \
+Not ANOther editor) is an enhanced clone of the \
+Pico text editor."
+HOMEPAGE = "http://www.nano-editor.org/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949"
+SECTION = "console/utils"
+DEPENDS = "ncurses"
+RDEPENDS_${PN} = "ncurses-terminfo"
+
+INC_PR = "r3"
+
+PV_MAJOR = "${@d.getVar('PV',1).split('.')[0]}.${@d.getVar('PV',1).split('.')[1]}"
+
+SRC_URI = "ftp://nano-editor.org/pub/nano/v${PV_MAJOR}/nano-${PV}.tar.gz"
+
+inherit autotools gettext
+
+PACKAGECONFIG[tiny] = "--enable-tiny,--enable-all,"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/nano/nano_2.2.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/nano/nano_2.2.5.bb
new file mode 100644
index 0000000..e656f46
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/nano/nano_2.2.5.bb
@@ -0,0 +1,8 @@
+include nano.inc
+
+PR = "${INC_PR}.0"
+
+SRC_URI += "file://ncursesw.includedir.patch"
+
+SRC_URI[md5sum] = "77a10a49589f975ce98350a4527a2ebf"
+SRC_URI[sha256sum] = "9015945d1badabbada203b37c4779d3dd1066234235c714deb439989c5cd7d9e"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ne10/ne10_1.2.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/ne10/ne10_1.2.1.bb
new file mode 100644
index 0000000..de97982
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/ne10/ne10_1.2.1.bb
@@ -0,0 +1,42 @@
+DESCRIPTION = "Library containing NEON-optimized implementations for a common set of functions"
+HOMEPAGE = "http://projectne10.github.io/Ne10/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=463ac0a7d64edc2b787c4206635ca2b1"
+SECTION = "libs"
+
+SRC_URI = "git://github.com/projectNe10/Ne10.git"
+SRCREV = "a08b29d88e3c94d32b5b8f827e7fcf0bc2b34ac2"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+NE10_TARGET_ARCH = ""
+EXTRA_OECMAKE = '-DGNULINUX_PLATFORM=ON -DNE10_BUILD_SHARED=ON -DNE10_LINUX_TARGET_ARCH="${NE10_TARGET_ARCH}"'
+
+COMPATIBLE_MACHINE_aarch64 = "(.*)"
+COMPATIBLE_MACHINE_armv7a = "(.*)"
+
+python () {
+    if any(t.startswith('armv7') for t in d.getVar('TUNE_FEATURES', True).split()):
+        d.setVar('NE10_TARGET_ARCH', 'armv7')
+        bb.debug(2, 'Building Ne10 for armv7')
+    elif any(t.startswith('aarch64') for t in d.getVar('TUNE_FEATURES', True).split()):
+        d.setVar('NE10_TARGET_ARCH', 'aarch64')
+        bb.debug(2, 'Building Ne10 for aarch64')
+    else:
+        raise bb.parse.SkipPackage("Incompatible with archs other than armv7 and aarch64")
+}
+
+do_install() {
+    install -d ${D}${libdir}
+    install -d ${D}${includedir}
+    install -m 0644 ${S}/inc/NE10*.h ${D}${includedir}/
+    install -m 0644 ${B}/modules/libNE10.a ${D}${libdir}/
+    install -m 0755 ${B}/modules/libNE10.so.* ${D}${libdir}/
+    cp -a ${B}/modules/libNE10.so ${D}${libdir}/
+}
+
+# ERROR: QA Issue: ELF binary 'ne10/1.2.1-r0/packages-split/ne10/usr/lib/libNE10.so.10' has relocations in .text [textrel]
+# ERROR: QA Issue: ELF binary 'ne10/1.2.1-r0/packages-split/ne10/usr/lib/libNE10.so.10' has relocations in .text [textrel]
+INSANE_SKIP_${PN} += "textrel"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/nmon/nmon_13g.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/nmon/nmon_13g.bb
new file mode 100644
index 0000000..1f75189
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/nmon/nmon_13g.bb
@@ -0,0 +1,29 @@
+SUMMARY = "nmon performance monitor"
+HOMEPAGE = "http://nmon.sf.net"
+SECTION = "console/utils"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://${WORKDIR}/Documentation.txt;md5=dbb13658cf55d687c4f2ff771a696d4a"
+DEPENDS = "ncurses"
+PR = "r2"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/nmon/lmon13g.c;name=lmon \
+           ${SOURCEFORGE_MIRROR}/nmon/Documentation.txt;name=doc \
+"
+
+SRC_URI[lmon.md5sum] = "b1b8e6c0123ad232394991f2d4f40494"
+SRC_URI[lmon.sha256sum] = "456ab2a342b31d1a352d0d940af5962fa65a12ae8757ff73e6e73210832ae8b5"
+SRC_URI[doc.md5sum] = "dbb13658cf55d687c4f2ff771a696d4a"
+SRC_URI[doc.sha256sum] = "1f7f83afe62a7210be5e83cd24157adb854c14599efe0b377a7ecca933869278"
+
+CFLAGS += "-D JFS -D GETUSER -Wall -D LARGEMEM"
+LDFLAGS += "-ltinfo -lncursesw"
+ASNEEDED_pn-nmon = ""
+
+do_compile() {
+    ${CC} ${CFLAGS} ${LDFLAGS} ${WORKDIR}/lmon13g.c -o nmon
+}
+
+do_install() {
+    install -d ${D}${bindir}
+    install -m 0755 nmon ${D}${bindir}
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/numactl/numactl/0001-define-run-test-target.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/numactl/numactl/0001-define-run-test-target.patch
new file mode 100644
index 0000000..78ffb22
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/numactl/numactl/0001-define-run-test-target.patch
@@ -0,0 +1,32 @@
+rename test target as run-test
+
+Upstream-Statue: Pending
+
+test target not only compile the test files, but also run them, which is
+not suitable for cross-compile environment, so rename it as run-test.
+
+and define test target to compile the test files.
+
+Signed-off-by: Roy Li <rongqing.li@windriver.com>
+---
+ Makefile.am | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index b6db339..de176c4 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -124,7 +124,9 @@ regress2: $(check_PROGRAMS)
+ test_numademo: numademo
+ 	./numademo -t -e 10M
+ 
+-test: all $(check_PROGRAMS) regress1 regress2 test_numademo
++test: all $(check_PROGRAMS)
++
++run-test: all $(check_PROGRAMS) regress1 regress2 test_numademo
+ 
+ TESTS_ENVIRONMENT = builddir='$(builddir)'; export builddir;
+ 
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/numactl/numactl/Fix-the-test-output-format.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/numactl/numactl/Fix-the-test-output-format.patch
new file mode 100644
index 0000000..9812ecc
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/numactl/numactl/Fix-the-test-output-format.patch
@@ -0,0 +1,64 @@
+From 59fd750a84bbe5874dec936d2bee9ef11a1b6505 Mon Sep 17 00:00:00 2001
+From: Li xin <lixin.fnst@cn.fujitsu.com>
+Date: Tue, 21 Jul 2015 02:01:22 +0900
+Subject: [PATCH] Fix the test output format
+
+Upstream-Status: Pending
+
+Signed-off-by: Roy Li <rongqing.li@windriver.com>
+Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
+---
+ test/regress  |  6 +++---
+ test/regress2 | 11 +++++------
+ 2 files changed, 8 insertions(+), 9 deletions(-)
+
+diff --git a/test/regress b/test/regress
+index 2ce1705..d086a47 100755
+--- a/test/regress
++++ b/test/regress
+@@ -74,6 +74,7 @@ probe_hardware()
+ 	if [ $numnodes -lt 2 ] ; then
+ 	    echo "need at least two nodes with at least $NEEDPAGES each of"
+ 	    echo "free memory for mempolicy regression tests"
++	    echo "FAIL: numa regress"
+	    exit 77  # Skip test
+ 	fi
+ }
+@@ -207,10 +208,9 @@ main()
+ 	rm A B
+ 
+ 	if [ "$EXIT" = 0 ] ; then
+-		echo '========SUCCESS'
++		echo 'PASS: numactl regress'
+ 	else
+-		echo '========FAILURE'
+-		exit 1
++		echo 'FAIL: numactl regress'
+ 	fi
+ }
+ 
+diff --git a/test/regress2 b/test/regress2
+index aa6ea41..450c510 100755
+--- a/test/regress2
++++ b/test/regress2
+@@ -9,12 +9,11 @@ testdir=`dirname "$0"`
+ export PATH=${builddir}:$PATH
+ 
+ T() {
+-       echo "$@" 
+-       if ! $VALGRIND "$@" ;  then
+-	  echo	$1 FAILED!!!!
+-	  exit 1
+-       fi
+-       echo
++	if ! $VALGRIND "$@" 2>&1 1>/dev/null;  then
++	   echo  "FAIL: $1"
++	else
++	   echo "PASS: $1"
++	fi
+ }
+ 
+ # still broken
+-- 
+1.8.4.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/numactl/numactl/Makefile b/import-layers/meta-openembedded/meta-oe/recipes-support/numactl/numactl/Makefile
new file mode 100644
index 0000000..9a5134c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/numactl/numactl/Makefile
@@ -0,0 +1,7 @@
+.PHONY: regress1 regress2
+
+regress1:
+	cd test ; ./regress
+
+regress2:
+	cd test ; ./regress2
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/numactl/numactl/fix-null-pointer.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/numactl/numactl/fix-null-pointer.patch
new file mode 100644
index 0000000..53952ae
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/numactl/numactl/fix-null-pointer.patch
@@ -0,0 +1,28 @@
+[PATCH] return 0 if distance_table is NULL
+
+Upstream-Status: Pending
+
+read_distance_table() maybe return 0, but distance_table is not set,
+if distance_table is used, and will lead to SEGFAULT
+
+Signed-off-by: Roy Li <rongqing.li@windriver.com>
+---
+ distance.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/distance.c b/distance.c
+index 4a26972..c6ca021 100755
+--- a/distance.c
++++ b/distance.c
+@@ -113,6 +113,8 @@ int numa_distance(int a, int b)
+ 		int err = read_distance_table();
+ 		if (err < 0)
+ 			return 0;
++		if (!distance_table)
++			return 0;
+ 	}
+ 	return distance_table[a * distance_numnodes + b];
+ }
+-- 
+1.7.10.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/numactl/numactl/run-ptest b/import-layers/meta-openembedded/meta-oe/recipes-support/numactl/numactl/run-ptest
new file mode 100755
index 0000000..215f7c2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/numactl/numactl/run-ptest
@@ -0,0 +1,9 @@
+#!/bin/sh
+make regress1
+make regress2
+if  numademo -t -e 10M; then
+	echo "PASS: numademo"
+else
+	echo "FAIL: numademo"
+fi
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/numactl/numactl_2.0.11.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/numactl/numactl_2.0.11.bb
new file mode 100644
index 0000000..199726f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/numactl/numactl_2.0.11.bb
@@ -0,0 +1,57 @@
+SUMMARY = "Development package for building Applications that use numa"
+DESCRIPTION = "Simple NUMA policy support. It consists of a numactl program \
+to run other programs with a specific NUMA policy and a libnuma to do \
+allocations with NUMA policy in applications."
+LICENSE = "GPL-2.0 & LGPL-2.1"
+SECTION = "apps"
+RDEPENDS_${PN} = "perl"
+
+inherit autotools-brokensep ptest
+
+LIC_FILES_CHKSUM = "file://README;beginline=19;endline=32;md5=5644cc3851cb2499f6c48e52fe198bd9"
+
+SRC_URI = "ftp://oss.sgi.com/www/projects/libnuma/download/${BPN}-${PV}.tar.gz \
+	   file://fix-null-pointer.patch \
+	   file://Fix-the-test-output-format.patch \
+	   file://Makefile \
+	   file://run-ptest \
+	   file://0001-define-run-test-target.patch \
+          "
+SRC_URI[md5sum] = "d3bc88b7ddb9f06d60898f4816ae9127"
+SRC_URI[sha256sum] = "450c091235f891ee874a8651b179c30f57a1391ca5c4673354740ba65e527861"
+
+# ARM does not currently support NUMA
+COMPATIBLE_HOST = "^((?!arm).*)$"
+
+do_install() {
+        oe_runmake DESTDIR=${D} prefix=${D}/usr install
+	#remove the empty man2 directory
+	rm -r ${D}${mandir}/man2
+}
+
+do_compile_ptest() {
+	oe_runmake test
+}
+
+do_install_ptest() {
+	#install tests binaries
+        local test_binaries="distance ftok mbind_mig_pages migrate_pages move_pages \
+		mynode	nodemap node-parse pagesize prefered randmap realloc_test \
+		tbitmap tshared"
+
+	[ ! -d ${D}/${PTEST_PATH}/test ] && mkdir -p ${D}/${PTEST_PATH}/test
+	for i in $test_binaries; do
+		install -m 0755 ${B}/test/.libs/$i ${D}${PTEST_PATH}/test
+	done
+
+	local test_scripts="checktopology checkaffinity printcpu regress regress2 \
+			shmtest  runltp bind_range"
+	for i in $test_scripts; do
+		install -m 0755 ${B}/test/$i ${D}${PTEST_PATH}/test
+	done
+
+	install -m 0755 ${WORKDIR}/Makefile ${D}${PTEST_PATH}/
+	install -m 0755 ${B}/.libs/numactl ${D}${PTEST_PATH}/
+}
+
+RDEPENDS_${PN}-ptest = "bash"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ode/ode/configure.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/ode/ode/configure.patch
new file mode 100644
index 0000000..246b2e2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/ode/ode/configure.patch
@@ -0,0 +1,13 @@
+Index: ode-0.13/libccd/configure.ac
+===================================================================
+--- ode-0.13.orig/libccd/configure.ac	2013-08-19 17:48:03.000000000 +0000
++++ ode-0.13/libccd/configure.ac	2014-07-17 22:04:16.580595690 +0000
+@@ -5,7 +5,7 @@
+ AC_INIT([libccd], [1.0], [danfis@danfis.cz])
+ AC_CONFIG_SRCDIR([src/ccd.c])
+ AC_CONFIG_HEADERS([src/config.h])
+-AM_INIT_AUTOMAKE
++AM_INIT_AUTOMAKE([foreign])
+ 
+ # Checks for programs.
+ AC_PROG_CXX
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ode/ode/install.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/ode/ode/install.patch
new file mode 100644
index 0000000..2f6cdb0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/ode/ode/install.patch
@@ -0,0 +1,23 @@
+--- ode-0.9.orig/Makefile.am	2007-02-21 15:54:54.000000000 +0100
++++ ode-0.9/Makefile.am	2010-08-21 16:15:55.000000000 +0200
+@@ -25,13 +25,13 @@
+ 
+ if USE_SONAME
+ install-exec-hook:
+-	ln -s $(libdir)/@ODE_SONAME@.@ODE_REVISION@.@ODE_AGE@ \
+-	$(libdir)/libode.so
+-	ln -s $(libdir)/@ODE_SONAME@.@ODE_REVISION@.@ODE_AGE@ \
+-	$(libdir)/@ODE_SONAME@
+-	ln -s $(libdir)/@ODE_SONAME@.@ODE_REVISION@.@ODE_AGE@ \
+-	$(libdir)/@ODE_SONAME@.@ODE_REVISION@
+-	/sbin/ldconfig
++	ln -s @ODE_SONAME@.@ODE_REVISION@.@ODE_AGE@ \
++	$(DESTDIR)/$(libdir)/libode.so
++	ln -s @ODE_SONAME@.@ODE_REVISION@.@ODE_AGE@ \
++	$(DESTDIR)/$(libdir)/@ODE_SONAME@
++	ln -s @ODE_SONAME@.@ODE_REVISION@.@ODE_AGE@ \
++	$(DESTDIR)/$(libdir)/@ODE_SONAME@.@ODE_REVISION@
++	echo /sbin/ldconfig
+ else
+ install-exec-hook:
+ endif
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/ode/ode_0.13.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/ode/ode_0.13.bb
new file mode 100644
index 0000000..2dc82a8
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/ode/ode_0.13.bb
@@ -0,0 +1,28 @@
+SUMMARY = "ODE is an Open Source Physics Engine"
+SECTION = "libs"
+HOMEPAGE = "http://www.ode.org"
+LICENSE = "LGPLv2.1 & BSD"
+LIC_FILES_CHKSUM = " \
+    file://COPYING;md5=1de906ee96808d9776dd72a5f9a79a22 \
+    file://LICENSE.TXT;md5=771782cb6245c7fbbe74bc0ec059beff \
+"
+# LICENSE-BSD.TXT is missing in 0.13 tarball, but COPYING still says it's dual licensed
+# and svn repo still contains LICENSE-BSD.TXT so maybe it will return in next tarball
+# file://LICENSE-BSD.TXT;md5=c74e6304a772117e059458fb9763a928
+
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/opende/ode-${PV}.tar.bz2 \
+           file://configure.patch"
+SRC_URI[md5sum] = "04b32c9645c147e18caff7a597a19f84"
+SRC_URI[sha256sum] = "34ce3e236e313bf109a0cb5546d2fca462aed99f29a42e62bc1463b803c31ef9"
+
+inherit autotools binconfig
+
+EXTRA_OECONF = "--disable-demos --enable-soname"
+
+FILES_${PN} = "${libdir}/lib*${SOLIBS}"
+
+PACKAGECONFIG ?= ""
+# if it isn't explicitly selected and "$build_os" == "$target_os", then configure will run
+# series of AC_TRY_RUN which won't work for cross-compilation and configure fails
+PACKAGECONFIG[double-precision] = "--enable-double-precision,--disable-double-precision"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/onig/files/configure.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/onig/files/configure.patch
new file mode 100644
index 0000000..5fa700f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/onig/files/configure.patch
@@ -0,0 +1,13 @@
+Index: onig-5.9.3/configure.in
+===================================================================
+--- onig-5.9.3.orig/configure.in	2012-10-26 07:06:14.000000000 +0000
++++ onig-5.9.3/configure.in	2014-07-18 08:02:52.701574484 +0000
+@@ -3,7 +3,7 @@
+ 
+ AC_CONFIG_MACRO_DIR([m4])
+ 
+-AM_INIT_AUTOMAKE
++AM_INIT_AUTOMAKE([foreign])
+ AC_CONFIG_HEADER(config.h)
+ 
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/onig/files/do-not-use-system-headers.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/onig/files/do-not-use-system-headers.patch
new file mode 100644
index 0000000..b93602a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/onig/files/do-not-use-system-headers.patch
@@ -0,0 +1,44 @@
+Author: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
+
+When build on host with older eglibc (Ubuntu 12.04) build fails with:
+
+/tmp/OE/build/tmp-eglibc/sysroots/genericarmv8/usr/include/bits/predefs.h:23:3: error: #error "Never use <bits/predefs.h> directly; include <stdc-predef.h> instead."
+
+Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
+
+Upstream-Status: Inappropriate [embedded specific]
+
+---
+ Makefile.am        |    2 +-
+ sample/Makefile.am |    2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+--- onig-5.9.3.orig/Makefile.am
++++ onig-5.9.3/Makefile.am
+@@ -4,11 +4,11 @@ sampledir = $(top_srcdir)/sample
+ libname = libonig.la
+
+ ACLOCAL_AMFLAGS = -I m4
+ #AM_CFLAGS = -DNOT_RUBY
+ AM_CFLAGS =
+-INCLUDES  = -I$(top_srcdir) -I$(includedir)
++INCLUDES  = -I$(top_srcdir)
+
+ SUBDIRS = . sample
+
+ include_HEADERS = oniguruma.h oniggnu.h onigposix.h
+ lib_LTLIBRARIES = $(libname)
+--- onig-5.9.3.orig/sample/Makefile.am
++++ onig-5.9.3/sample/Makefile.am
+@@ -1,10 +1,10 @@
+ noinst_PROGRAMS = encode listcap names posix simple sql syntax crnl
+
+ libname = $(top_builddir)/libonig.la
+ LDADD   = $(libname)
+-INCLUDES  = -I$(top_srcdir) -I$(includedir)
++INCLUDES  = -I$(top_srcdir)
+
+ encode_SOURCES  = encode.c
+ listcap_SOURCES = listcap.c
+ names_SOURCES   = names.c
+ posix_SOURCES   = posix.c
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/onig/onig_5.9.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/onig/onig_5.9.3.bb
new file mode 100644
index 0000000..22db78a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/onig/onig_5.9.3.bb
@@ -0,0 +1,17 @@
+DESCRIPTION = "Regular expressions library. The characteristics of this \
+library is that different character encoding for every regular expression \
+object can be specified."
+HOMEPAGE = "http://www.geocities.jp/kosako3/oniguruma/"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0d4861b5bc0c392a5aa90d9d76ebd86f"
+
+SRC_URI = "http://www.geocities.jp/kosako3/oniguruma/archive/onig-${PV}.tar.gz \
+           file://do-not-use-system-headers.patch \
+           file://configure.patch"
+
+SRC_URI[md5sum] = "0d4eda2066d3c92970842a6790ce897a"
+SRC_URI[sha256sum] = "c3bba66b2a84760e6582c40881db97c839d94f327870009724bb8b4d0c051f2a"
+
+DEPENDS = "libevent"
+
+inherit autotools binconfig
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/open-vcdiff/open-vcdiff_0.8.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vcdiff/open-vcdiff_0.8.4.bb
new file mode 100644
index 0000000..e6942d0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/open-vcdiff/open-vcdiff_0.8.4.bb
@@ -0,0 +1,18 @@
+SUMMARY = "An encoder/decoder for the VCDIFF (RFC3284) format"
+DESCRIPTION = "A library with a simple API is included, as well as a \
+               command-line executable that can apply the encoder and \
+               decoder to source, target, and delta files. \
+               A slight variation from the draft standard is defined \
+               to allow chunk-by-chunk decoding when only a partial \
+               delta file window is available."
+HOMEPAGE = "http://code.google.com/p/open-vcdiff/"
+SECTION = "console/utils"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ff820d4ddc1ba05b6fd37b41a21506f9"
+
+SRC_URI = "https://drive.google.com/uc?id=0B5WpIi2fQU1aNGJwVE9hUjU5clU&export=download;downloadfilename=${BP}.tar.gz"
+SRC_URI[md5sum] = "5c0d378d907bebc38b51c3d7e4117011"
+SRC_URI[sha256sum] = "2b142b1027fb0a62c41347600e01a53fa274dad15445a7da48083c830c3138b3"
+
+inherit autotools
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openct/openct/etc-openct.udev.in-disablePROGRAM.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/openct/openct/etc-openct.udev.in-disablePROGRAM.patch
new file mode 100644
index 0000000..745f923
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/openct/openct/etc-openct.udev.in-disablePROGRAM.patch
@@ -0,0 +1,31 @@
+From e0d3e0bb1e38ff851696a7d8826e651d364ad8ce Mon Sep 17 00:00:00 2001
+From: Li xin <lixin.fnst@cn.fujitsu.com>
+Date: Fri, 5 Dec 2014 02:00:57 +0900
+Subject: [PATCH 1/2] etc/openct.udev.in: disablePROGRAM
+
+Bug fix: https://bugzilla.redhat.com/show_bug.cgi?id=287871
+
+Upstream-status: Pending
+
+Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
+---
+ etc/openct.udev.in | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/etc/openct.udev.in b/etc/openct.udev.in
+index d11d0e1..48083c9 100644
+--- a/etc/openct.udev.in
++++ b/etc/openct.udev.in
+@@ -22,7 +22,8 @@ ACTION!="add", GOTO="openct_usb_rules_end"
+ # 2010-01-06 removed, as latest udev doesn't know WAIT_FOR_ATTR any more.
+ 
+ # sleep for 100ms - the wait_for_sysfs might not be enough
+-PROGRAM="/bin/sleep 0.1"
++# Disabled in this package - see https://bugzilla.redhat.com/287871
++# PROGRAM="/bin/sleep 0.1"
+ 
+ # ccid
+ ATTR{bInterfaceClass}=="0b", ATTR{bInterfaceSubClass}=="00", ATTR{bInterfaceProtocol}=="00", ATTRS{idVendor}=="?*"  RUN+="@udevdir@/openct_usb /dev/$parent"
+-- 
+1.8.4.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openct/openct/etc-openct_usb.in-modify-UDEVINFO.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/openct/openct/etc-openct_usb.in-modify-UDEVINFO.patch
new file mode 100644
index 0000000..d5e3fe5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/openct/openct/etc-openct_usb.in-modify-UDEVINFO.patch
@@ -0,0 +1,35 @@
+From d93985a137b553b2723235d03bda341dab14064f Mon Sep 17 00:00:00 2001
+From: Li xin <lixin.fnst@cn.fujitsu.com>
+Date: Fri, 5 Dec 2014 02:04:03 +0900
+Subject: [PATCH 2/2] etc/openct_usb.in: modify UDEVINFO
+
+this patch is from Fedora
+
+Upstream-status: Pending
+
+Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
+---
+ etc/openct_usb.in | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/etc/openct_usb.in b/etc/openct_usb.in
+index 32f91aa..917467d 100644
+--- a/etc/openct_usb.in
++++ b/etc/openct_usb.in
+@@ -15,10 +15,10 @@ if [ -z "$DEVNAME" ]; then
+ 	# Guess udev info interface.
+ 	# Newer udev uses udevadm
+ 	#
+-	if which udevinfo > /dev/null 2>&1; then
+-		UDEVINFO="udevinfo"
+-	else
++	if which udevadm > /dev/null 2>&1; then
+ 		UDEVINFO="udevadm info"
++	else
++		UDEVINFO="udevinfo"
+ 	fi
+ 	DEVNAME=/dev/$($UDEVINFO --query=name --path=$(dirname $DEVPATH))
+ fi
+-- 
+1.8.4.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openct/openct/openct.init b/import-layers/meta-openembedded/meta-oe/recipes-support/openct/openct/openct.init
new file mode 100644
index 0000000..c689609
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/openct/openct/openct.init
@@ -0,0 +1,89 @@
+#!/bin/sh
+#
+# openct       This shell script takes care of starting and stopping OpenCT.
+#
+# chkconfig:   2345 24 89
+# description: OpenCT is a middleware framework for smart card terminals.
+#
+# processname: ifdhandler
+# config:      /etc/openct.conf
+
+### BEGIN INIT INFO
+# Provides: openct
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Should-Start: $syslog $network
+# Should-Stop: $syslog $network
+# Short-Description: Middleware framework for smart card terminals
+# Description: This starts/stops the OpenCT middleware framework support
+#              for smart card terminals.
+### END INIT INFO
+
+. /etc/init.d/functions
+
+exec="/usr/sbin/openct-control"
+prog=openct
+proc=ifdhandler
+
+OPENCT_OPTIONS=
+[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
+
+lockfile=/var/lock/subsys/$prog
+
+start() {
+    retval=0
+    if ! status $proc >/dev/null 2>&1 ; then
+        action $"Initializing OpenCT smart card terminals: " \
+            $exec $OPENCT_OPTIONS init
+        retval=$?
+        [ $retval -eq 0 ] && touch $lockfile
+    fi
+    return $retval
+}
+
+stop() {
+    if status $proc >/dev/null 2>&1 ; then
+        action $"Stopping OpenCT smart card terminals: " \
+            $exec $OPENCT_OPTIONS shutdown
+    fi
+    retval=$?
+    if [ $retval -eq 0 ] ; then
+        rm -f /var/run/openct/status
+        rm -f $lockfile
+    fi
+    return $retval
+}
+
+restart() {
+    stop
+    start
+}
+
+oct_status() {
+    status $proc
+    retval=$?
+    if [ -e /var/run/openct/status ] ; then
+        $exec $OPENCT_OPTIONS status
+        [ -e /var/run/openct/status ] && \
+            echo $"Waiting for reader attach/detach events..."
+    fi
+    return $retval
+}
+
+case "$1" in
+    start|stop|restart)
+        $1
+        ;;
+    reload|force-reload)
+        restart
+        ;;
+    status)
+        oct_status
+        ;;
+    try-restart|condrestart)
+  	[ ! -f $lockfile ] || restart
+	;;
+    *)
+        echo $"Usage: $0 {start|stop|status|restart|try-restart|reload|force-reload}"
+        exit 2
+esac
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openct/openct/openct.service b/import-layers/meta-openembedded/meta-oe/recipes-support/openct/openct/openct.service
new file mode 100644
index 0000000..c9ec497
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/openct/openct/openct.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Openct Middleware framework for smart card terminals
+After=syslog.target network.target
+
+[Service]
+EnvironmentFile=-/etc/sysconfig/openct
+ExecStart=/usr/sbin/openct-control $OPENCT_OPTIONS init 
+ExecStop=/usr/sbin/openct-control $OPENCT_OPTIONS shutdown
+RemainAfterExit=yes
+KillMode=none
+
+[Install]
+WantedBy=multi-user.target
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openct/openct/openct.sysconfig b/import-layers/meta-openembedded/meta-oe/recipes-support/openct/openct/openct.sysconfig
new file mode 100644
index 0000000..ffc2707
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/openct/openct/openct.sysconfig
@@ -0,0 +1,5 @@
+#                                                                    -*- sh -*-
+# Extra options to pass to openct-control.
+# Consult "/usr/sbin/openct-control -h" for available options.
+#
+OPENCT_OPTIONS=""
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb
new file mode 100644
index 0000000..bf1ff57
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb
@@ -0,0 +1,92 @@
+Summanry = "Middleware framework for smart card terminals"
+DESCRIPTION = " \
+OpenCT implements drivers for several smart card readers. \
+It comes as driver in ifdhandler format for PC/SC-Lite, \
+as CT-API driver, or as a small and lean middleware, \
+so applications can use it with minimal overhead. \
+OpenCT also has a primitive mechanism to export smart card \
+readers to remote machines via TCP/IP."
+
+DEPENDS += "libtool pcsc-lite libusb-compat"
+
+SRC_URI = " \
+    ${DEBIAN_MIRROR}/main/o/${BPN}/${BPN}_${PV}.orig.tar.gz \
+    file://etc-openct.udev.in-disablePROGRAM.patch \
+    file://etc-openct_usb.in-modify-UDEVINFO.patch \
+    file://openct.init \
+    file://openct.sysconfig \
+    file://openct.service \
+"
+
+SRC_URI[md5sum] = "a1da3358ab798f1cb9232f1dbababc21"
+SRC_URI[sha256sum] = "6cd3e2933d29eb1f875c838ee58b8071fd61f0ec8ed5922a86c01c805d181a68"
+
+LICENSE = "LGPLv2+"
+LIC_FILES_CHKSUM = "file://LGPL-2.1;md5=2d5025d4aa3495befef8f17206a5b0a1"
+
+inherit ${@bb.utils.contains('VIRTUAL-RUNTIME_init_manager','systemd','systemd','', d)}
+SYSTEMD_SERVICE_${PN} += "openct.service "
+SYSTEMD_AUTO_ENABLE = "enable"
+
+EXTRA_OECONF=" \
+    --disable-static \
+    --enable-usb \
+    --enable-pcsc \
+    --enable-doc \
+    --enable-api-doc \
+    --with-udev=/lib/udev \
+    --with-bundle=${libdir}/pcsc/drivers \
+"
+
+inherit autotools pkgconfig
+
+FILES_${PN} += " \
+    ${libdir}/ctapi \
+    /lib/udev \
+    ${libdir}/openct-ifd.so \
+    ${libdir}/pcsc \
+    /run/openct/status \
+"
+
+FILES_${PN}-dbg += " \
+    ${libdir}/ctapi/.debug \
+    ${libdir}/pcsc/drivers/openct-ifd.bundle/Contents/Linux/.debug \
+"
+
+INSANE_SKIP_${PN} += "dev-deps"
+
+
+do_install () {
+    rm -rf ${D}
+    install -d ${D}/etc
+    install -dm 755 ${D}/lib/udev
+    # fix up hardcoded paths
+    sed -i -e 's,/etc/,${sysconfdir}/,' -e 's,/usr/sbin/,${sbindir}/,' \
+        ${WORKDIR}/openct.service ${WORKDIR}/openct.init
+
+    oe_runmake install DESTDIR=${D}
+    install -dm 755 ${D}${libdir}/ctapi/
+    mv ${D}${libdir}/libopenctapi.so ${D}${libdir}/ctapi/
+    install -Dpm 644 etc/openct.udev ${D}/etc/udev/rules.d/60-openct.rules
+    install -pm 644 etc/openct.conf ${D}/etc/openct.conf
+
+    install -Dpm 755 ${WORKDIR}/openct.init ${D}/etc/init.d/openct
+    install -Dpm 644 ${WORKDIR}/openct.sysconfig ${D}/etc/sysconfig/openct
+
+    if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+        install -d ${D}/${systemd_unitdir}/system
+        install -m 644 ${WORKDIR}/openct.service ${D}/${systemd_unitdir}/system
+    fi
+
+    so=$(find ${D} -name \*.so | sed "s|^${D}||")
+    sed -i -e 's|\\(LIBPATH\\s*\\).*|\\1$so|' etc/reader.conf
+    install -Dpm 644 etc/reader.conf ${D}/etc/reader.conf.d/openct.conf
+
+    install -dm 755 ${D}${localstatedir}/run/openct
+    touch ${D}${localstatedir}/run/openct/status
+    chmod 644 ${D}${localstatedir}/run/openct/status
+}
+
+pkg_postinst_${PN} () {
+    ln -sf ctapi/libopenctapi.so ${libdir}/libopenctapi.so
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv-samples_2.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv-samples_2.4.bb
new file mode 100644
index 0000000..ecaae4c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv-samples_2.4.bb
@@ -0,0 +1,41 @@
+SUMMARY = "Opencv : The Open Computer Vision Library"
+HOMEPAGE = "http://opencv.willowgarage.com/wiki/"
+SECTION = "libs"
+LICENSE = "BSD"
+
+DEPENDS = "opencv"
+
+LIC_FILES_CHKSUM = "file://include/opencv2/opencv.hpp;endline=41;md5=6d690d8488a6fca7a2c192932466bb14 \
+"
+SRCREV = "6fae07ba8867b8fd2c53344a774aab669afa7c5e"
+SRC_URI = "git://github.com/Itseez/opencv.git;branch=2.4 \
+          "
+PV = "2.4.3+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+do_install() {
+    cd samples/c
+    install -d ${D}/${bindir}
+    install -d ${D}/${datadir}/opencv/samples
+
+    cp * ${D}/${datadir}/opencv/samples || true
+
+    for i in *.c; do
+        echo "compiling $i"
+        ${CXX} ${CFLAGS} ${LDFLAGS} -ggdb `pkg-config --cflags opencv` -o `basename $i .c` $i `pkg-config --libs opencv` || true
+        install -m 0755 `basename $i .c` ${D}/${bindir} || true
+        rm ${D}/${datadir}/opencv/samples/`basename $i .c` || true
+    done
+    for i in *.cpp; do
+        echo "compiling $i"
+        ${CXX} ${CFLAGS} ${LDFLAGS} -ggdb `pkg-config --cflags opencv` -o `basename $i .cpp` $i `pkg-config --libs opencv` || true
+        install -m 0755 `basename $i .cpp` ${D}/${bindir} || true
+        rm ${D}/${datadir}/opencv/samples/`basename $i .cpp` || true
+    done
+}
+
+FILES_${PN}-dev += "${datadir}/opencv/samples/*.c* ${datadir}/opencv/samples/*.vcp* ${datadir}/opencv/samples/build*" 
+FILES_${PN} += "${bindir} ${datadir}/opencv"
+
+PNBLACKLIST[opencv-samples] ?= "Depends on blacklisted opencv"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch
new file mode 100644
index 0000000..d568018
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch
@@ -0,0 +1,28 @@
+From 049f931207631aa54af55a2917318d032b2ef3fa Mon Sep 17 00:00:00 2001
+From: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
+Date: Thu, 31 Mar 2016 00:20:15 +0200
+Subject: [PATCH] 3rdparty/ippicv: Use pre-downloaded ipp
+
+Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
+---
+ 3rdparty/ippicv/downloader.cmake | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/3rdparty/ippicv/downloader.cmake b/3rdparty/ippicv/downloader.cmake
+index a6016dbe10bc..af4062c8e95e 100644
+--- a/3rdparty/ippicv/downloader.cmake
++++ b/3rdparty/ippicv/downloader.cmake
+@@ -31,8 +31,10 @@ function(_icv_downloader)
+     return() # Not supported
+   endif()
+ 
++  if(NOT DEFINED OPENCV_ICV_PATH)
+   set(OPENCV_ICV_UNPACK_PATH "${CMAKE_CURRENT_LIST_DIR}/unpack")
+   set(OPENCV_ICV_PATH "${OPENCV_ICV_UNPACK_PATH}${OPENCV_ICV_PACKAGE_SUBDIR}")
++  endif()
+ 
+   if(DEFINED OPENCV_ICV_PACKAGE_DOWNLOADED
+        AND OPENCV_ICV_PACKAGE_DOWNLOADED STREQUAL OPENCV_ICV_PACKAGE_HASH
+-- 
+2.8.0.rc3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Use-__vector-instead-of-vector-as-suggests-Eigen.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Use-__vector-instead-of-vector-as-suggests-Eigen.patch
new file mode 100644
index 0000000..7f809bc
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Use-__vector-instead-of-vector-as-suggests-Eigen.patch
@@ -0,0 +1,49 @@
+From 711f07a34ceb504e8f75e978692201efa58268ca Mon Sep 17 00:00:00 2001
+From: Dinar Valeev <dvaleev@suse.com>
+Date: Thu, 16 Jan 2014 21:53:49 +0100
+Subject: [PATCH] Use __vector instead of vector as suggests Eigen
+
+This fixes build on PowerPC where Eigen unsets vector, bool and pixel
+
+Signed-off-by: Dinar Valeev <dvaleev@suse.com>
+
+This patch is already part of OpenCV v3.0. The patch can be obtained
+from:
+
+  https://github.com/Itseez/opencv/commit/711f07a34ceb504e8f75e978692201efa58268ca.patch
+
+Upstream-Status: Backport [commit 711f07a34c, part of version 3.0]
+
+Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
+---
+ 3rdparty/include/opencl/1.2/CL/cl_platform.h | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/3rdparty/include/opencl/1.2/CL/cl_platform.h b/3rdparty/include/opencl/1.2/CL/cl_platform.h
+index e94949a..42c35d5 100644
+--- a/3rdparty/include/opencl/1.2/CL/cl_platform.h
++++ b/3rdparty/include/opencl/1.2/CL/cl_platform.h
+@@ -332,13 +332,13 @@ typedef unsigned int cl_GLenum;
+ /* Define basic vector types */
+ #if defined( __VEC__ )
+    #include <altivec.h>   /* may be omitted depending on compiler. AltiVec spec provides no way to detect whether the header is required. */
+-   typedef vector unsigned char     __cl_uchar16;
+-   typedef vector signed char       __cl_char16;
+-   typedef vector unsigned short    __cl_ushort8;
+-   typedef vector signed short      __cl_short8;
+-   typedef vector unsigned int      __cl_uint4;
+-   typedef vector signed int        __cl_int4;
+-   typedef vector float             __cl_float4;
++   typedef __vector unsigned char     __cl_uchar16;
++   typedef __vector signed char       __cl_char16;
++   typedef __vector unsigned short    __cl_ushort8;
++   typedef __vector signed short      __cl_short8;
++   typedef __vector unsigned int      __cl_uint4;
++   typedef __vector signed int        __cl_int4;
++   typedef __vector float             __cl_float4;
+    #define  __CL_UCHAR16__  1
+    #define  __CL_CHAR16__   1
+    #define  __CL_USHORT8__  1
+-- 
+1.9.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/fixpkgconfig.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/fixpkgconfig.patch
new file mode 100644
index 0000000..3aeda7d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv/fixpkgconfig.patch
@@ -0,0 +1,29 @@
+diff --git a/cmake/OpenCVGenPkgconfig.cmake b/cmake/OpenCVGenPkgconfig.cmake
+index b8cb8777c06b..75281ee964fd 100644
+--- a/cmake/OpenCVGenPkgconfig.cmake
++++ b/cmake/OpenCVGenPkgconfig.cmake
+@@ -27,7 +27,7 @@ macro(fix_prefix lst isown)
+       get_filename_component(libdir "${item}" PATH)
+       get_filename_component(libname "${item}" NAME_WE)
+       string(REGEX REPLACE "^lib(.*)" "\\1" libname "${libname}")
+-      list(APPEND _lst "-L${libdir}" "-l${libname}")
++      list(APPEND _lst "-l${libname}")
+     else()
+       list(APPEND _lst "-l${item}")
+     endif()
+@@ -66,10 +66,14 @@ ocv_list_unique(_3rdparty)
+ 
+ set(OPENCV_PC_LIBS
+   "-L\${exec_prefix}/${OPENCV_LIB_INSTALL_PATH}"
++  "-L\${exec_prefix}/${OPENCV_3P_LIB_INSTALL_PATH}"
+   "${_modules}"
+ )
+ if (BUILD_SHARED_LIBS)
+-  set(OPENCV_PC_LIBS_PRIVATE "${_extra}")
++  set(OPENCV_PC_LIBS_PRIVATE
++    "-L\${exec_prefix}/${OPENCV_LIB_INSTALL_PATH}"
++    "${_extra}"
++  )
+ else()
+   set(OPENCV_PC_LIBS_PRIVATE
+     "-L\${exec_prefix}/${OPENCV_3P_LIB_INSTALL_PATH}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv_2.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv_2.4.bb
new file mode 100644
index 0000000..eb38a5a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv_2.4.bb
@@ -0,0 +1,108 @@
+SUMMARY = "Opencv : The Open Computer Vision Library"
+HOMEPAGE = "http://opencv.org/"
+SECTION = "libs"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://include/opencv2/opencv.hpp;endline=41;md5=6d690d8488a6fca7a2c192932466bb14"
+
+ARM_INSTRUCTION_SET_armv4 = "arm"
+ARM_INSTRUCTION_SET_armv5 = "arm"
+
+DEPENDS = "python-numpy libtool swig swig-native python bzip2 zlib glib-2.0"
+
+SRCREV = "2c9547e3147779001811d01936aed38f560929fc"
+SRC_URI = "git://github.com/Itseez/opencv.git;branch=2.4 \
+  file://0001-Use-__vector-instead-of-vector-as-suggests-Eigen.patch"
+
+PV = "2.4.11+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+# Do an out-of-tree build
+OECMAKE_SOURCEPATH = "${S}"
+OECMAKE_BUILDPATH = "${WORKDIR}/build-${TARGET_ARCH}"
+
+EXTRA_OECMAKE = "-DPYTHON_NUMPY_INCLUDE_DIR:PATH=${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages/numpy/core/include \
+                 -DBUILD_PYTHON_SUPPORT=ON \
+                 -DWITH_GSTREAMER=OFF \
+                 -DWITH_1394=OFF \
+                 -DCMAKE_SKIP_RPATH=ON \
+                 ${@bb.utils.contains("TARGET_CC_ARCH", "-msse3", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1", "", d)} \
+                 ${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.1", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1", "", d)} \
+                 ${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.2", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1 -DENABLE_SSE42=1", "", d)} \
+                 ${@base_conditional("libdir", "/usr/lib64", "-DLIB_SUFFIX=64", "", d)} \
+                 ${@base_conditional("libdir", "/usr/lib32", "-DLIB_SUFFIX=32", "", d)} \
+"
+
+PACKAGECONFIG ??= "eigen jpeg png tiff v4l libv4l \
+                   ${@bb.utils.contains("DISTRO_FEATURES", "x11", "gtk", "", d)} \
+                   ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "libav", "", d)}"
+
+PACKAGECONFIG[eigen] = "-DWITH_EIGEN=ON,-DWITH_EIGEN=OFF,libeigen,"
+PACKAGECONFIG[gtk] = "-DWITH_GTK=ON,-DWITH_GTK=OFF,gtk+,"
+PACKAGECONFIG[jasper] = "-DWITH_JASPER=ON,-DWITH_JASPER=OFF,jasper,"
+PACKAGECONFIG[jpeg] = "-DWITH_JPEG=ON,-DWITH_JPEG=OFF,jpeg,"
+PACKAGECONFIG[libav] = "-DWITH_FFMPEG=ON,-DWITH_FFMPEG=OFF,libav,"
+PACKAGECONFIG[libv4l] = "-DWITH_LIBV4L=ON,-DWITH_LIBV4L=OFF,v4l-utils,"
+PACKAGECONFIG[png] = "-DWITH_PNG=ON,-DWITH_PNG=OFF,libpng,"
+PACKAGECONFIG[tiff] = "-DWITH_TIFF=ON,-DWITH_TIFF=OFF,tiff,"
+PACKAGECONFIG[v4l] = "-DWITH_V4L=ON,-DWITH_V4L=OFF,v4l-utils,"
+
+inherit distutils-base pkgconfig cmake
+
+export BUILD_SYS
+export HOST_SYS
+export PYTHON_CSPEC="-I${STAGING_INCDIR}/${PYTHON_DIR}"
+export PYTHON="${STAGING_BINDIR_NATIVE}/python"
+
+TARGET_CC_ARCH += "-I${S}/include "
+
+PACKAGES += "${PN}-apps python-opencv"
+
+python populate_packages_prepend () {
+    cv_libdir = d.expand('${libdir}')
+    cv_libdir_dbg = d.expand('${libdir}/.debug')
+    do_split_packages(d, cv_libdir, '^lib(.*)\.so$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev', allow_links=True)
+    do_split_packages(d, cv_libdir, '^lib(.*)\.la$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev')
+    do_split_packages(d, cv_libdir, '^lib(.*)\.a$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev')
+    do_split_packages(d, cv_libdir, '^lib(.*)\.so\.*', 'lib%s', 'OpenCV %s library', extra_depends='', allow_links=True)
+
+    pn = d.getVar('PN', 1)
+    metapkg =  pn + '-dev'
+    d.setVar('ALLOW_EMPTY_' + metapkg, "1")
+    blacklist = [ metapkg ]
+    metapkg_rdepends = [ ] 
+    packages = d.getVar('PACKAGES', 1).split()
+    for pkg in packages[1:]:
+        if not pkg in blacklist and not pkg in metapkg_rdepends and pkg.endswith('-dev'):
+            metapkg_rdepends.append(pkg)
+    d.setVar('RRECOMMENDS_' + metapkg, ' '.join(metapkg_rdepends))
+}
+
+PACKAGES_DYNAMIC += "^libopencv-.*"
+
+FILES_${PN} = ""
+FILES_${PN}-apps = "${bindir}/* ${datadir}/OpenCV"
+FILES_${PN}-dbg += "${libdir}/.debug"
+FILES_${PN}-dev = "${includedir} ${libdir}/pkgconfig"
+FILES_${PN}-doc = "${datadir}/OpenCV/doc"
+
+ALLOW_EMPTY_${PN} = "1"
+
+SUMMARY_python-opencv = "Python bindings to opencv"
+FILES_python-opencv = "${PYTHON_SITEPACKAGES_DIR}/*"
+RDEPENDS_python-opencv = "python-core python-numpy"
+
+do_install_append() {
+    cp ${S}/include/opencv/*.h ${D}${includedir}/opencv/
+    sed -i '/blobtrack/d' ${D}${includedir}/opencv/cvaux.h
+
+    # Move Python files into correct library folder (for multilib build)
+    if [ "$libdir" != "/usr/lib" ]; then
+        mv ${D}/usr/lib/* ${D}/${libdir}/
+        rm -rf ${D}/usr/lib
+    fi
+}
+
+# http://errors.yoctoproject.org/Errors/Details/40660/
+PNBLACKLIST[opencv] ?= "Not compatible with currently used ffmpeg 3"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.1.bb
new file mode 100644
index 0000000..789512f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.1.bb
@@ -0,0 +1,149 @@
+SUMMARY = "Opencv : The Open Computer Vision Library"
+HOMEPAGE = "http://opencv.org/"
+SECTION = "libs"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=0ea90d28b4de883d7af5e6711f14f7bf"
+
+ARM_INSTRUCTION_SET_armv4 = "arm"
+ARM_INSTRUCTION_SET_armv5 = "arm"
+
+DEFAULT_PREFERENCE = "-1"
+
+DEPENDS = "python-numpy libtool swig swig-native python bzip2 zlib glib-2.0 libwebp libgphoto2 protobuf protobuf-native"
+
+SRCREV_opencv = "92387b1ef8fad15196dd5f7fb4931444a68bc93a"
+SRCREV_contrib = "5409d5ad560523c85c6796cc5a009347072d883c"
+SRCREV_party3 = "81a676001ca8075ada498583e4166079e5744668"
+IPP_MD5 = "808b791a6eac9ed78d32a7666804320e"
+
+SRCREV_FORMAT = "opencv"
+SRC_URI = "git://github.com/Itseez/opencv.git;name=opencv \
+            git://github.com/Itseez/opencv_contrib.git;destsuffix=contrib;name=contrib \
+            git://github.com/Itseez/opencv_3rdparty.git;branch=ippicv/master_20151201;destsuffix=party3;name=party3 \
+            file://0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch \
+            file://fixpkgconfig.patch"
+
+PV = "3.1+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+do_unpack_extra() {
+    tar xzf ${WORKDIR}/party3/ippicv/ippicv_linux_20151201.tgz -C ${WORKDIR}
+}
+addtask unpack_extra after do_unpack before do_patch
+
+EXTRA_OECMAKE = "-DPYTHON2_NUMPY_INCLUDE_DIRS:PATH=${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages/numpy/core/include \
+		 -DOPENCV_EXTRA_MODULES_PATH=${WORKDIR}/contrib/modules \
+                 -DWITH_1394=OFF \
+                 -DCMAKE_SKIP_RPATH=ON \
+                 -DOPENCV_ICV_PACKAGE_DOWNLOADED=${IPP_MD5} \
+                 -DOPENCV_ICV_PATH=${WORKDIR}/ippicv_lnx \
+                 ${@bb.utils.contains("TARGET_CC_ARCH", "-msse3", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1", "", d)} \
+                 ${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.1", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1", "", d)} \
+                 ${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.2", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1 -DENABLE_SSE42=1", "", d)} \
+                 ${@base_conditional("libdir", "/usr/lib64", "-DLIB_SUFFIX=64", "", d)} \
+                 ${@base_conditional("libdir", "/usr/lib32", "-DLIB_SUFFIX=32", "", d)} \
+"
+EXTRA_OECMAKE_append_x86 = " -DX86=ON"
+
+PACKAGECONFIG ??= "eigen jpeg png tiff v4l libv4l gstreamer samples tbb \
+                   ${@bb.utils.contains("DISTRO_FEATURES", "x11", "gtk", "", d)} \
+		   ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "libav", "", d)}"
+
+PACKAGECONFIG[amdblas] = "-DWITH_OPENCLAMDBLAS=ON,-DWITH_OPENCLAMDBLAS=OFF,libclamdblas,"
+PACKAGECONFIG[amdfft] = "-DWITH_OPENCLAMDFFT=ON,-DWITH_OPENCLAMDFFT=OFF,libclamdfft,"
+PACKAGECONFIG[eigen] = "-DWITH_EIGEN=ON,-DWITH_EIGEN=OFF,libeigen,"
+PACKAGECONFIG[gstreamer] = "-DWITH_GSTREAMER=ON,-DWITH_GSTREAMER=OFF,gstreamer1.0 gstreamer1.0-plugins-base,"
+PACKAGECONFIG[gtk] = "-DWITH_GTK=ON,-DWITH_GTK=OFF,gtk+3,"
+PACKAGECONFIG[jasper] = "-DWITH_JASPER=ON,-DWITH_JASPER=OFF,jasper,"
+PACKAGECONFIG[jpeg] = "-DWITH_JPEG=ON,-DWITH_JPEG=OFF,jpeg,"
+PACKAGECONFIG[libav] = "-DWITH_FFMPEG=ON,-DWITH_FFMPEG=OFF,libav,"
+PACKAGECONFIG[libv4l] = "-DWITH_LIBV4L=ON,-DWITH_LIBV4L=OFF,v4l-utils,"
+PACKAGECONFIG[opencl] = "-DWITH_OPENCL=ON,-DWITH_OPENCL=OFF,opencl-headers,"
+PACKAGECONFIG[oracle-java] = "-DJAVA_INCLUDE_PATH=${JAVA_HOME}/include -DJAVA_INCLUDE_PATH2=${JAVA_HOME}/include/linux -DJAVA_AWT_INCLUDE_PATH=${JAVA_HOME}/include -DJAVA_AWT_LIBRARY=${JAVA_HOME}/lib/amd64/libjawt.so -DJAVA_JVM_LIBRARY=${JAVA_HOME}/lib/amd64/server/libjvm.so,,ant-native oracle-jse-jdk oracle-jse-jdk-native,"
+PACKAGECONFIG[png] = "-DWITH_PNG=ON,-DWITH_PNG=OFF,libpng,"
+PACKAGECONFIG[samples] = "-DBUILD_EXAMPLES=ON -DINSTALL_PYTHON_EXAMPLES=ON,-DBUILD_EXAMPLES=OFF,,"
+PACKAGECONFIG[tbb] = "-DWITH_TBB=ON,-DWITH_TBB=OFF,tbb,"
+PACKAGECONFIG[tiff] = "-DWITH_TIFF=ON,-DWITH_TIFF=OFF,tiff,"
+PACKAGECONFIG[v4l] = "-DWITH_V4L=ON,-DWITH_V4L=OFF,v4l-utils,"
+
+inherit distutils-base pkgconfig cmake
+
+export BUILD_SYS
+export HOST_SYS
+export PYTHON_CSPEC="-I${STAGING_INCDIR}/${PYTHON_DIR}"
+export PYTHON="${STAGING_BINDIR_NATIVE}/python"
+export JAVA_HOME="${STAGING_DIR_NATIVE}/usr/bin/java"
+export ANT_DIR="${STAGING_DIR_NATIVE}/usr/share/ant/"
+
+TARGET_CC_ARCH += "-I${S}/include "
+
+PACKAGES += "${PN}-samples-dbg ${PN}-samples ${PN}-apps python-opencv \
+             ${@bb.utils.contains('PACKAGECONFIG', 'oracle-java', '${PN}-java-dbg ${PN}-java', '', d)}"
+
+python populate_packages_prepend () {
+    cv_libdir = d.expand('${libdir}')
+    cv_libdir_dbg = d.expand('${libdir}/.debug')
+    do_split_packages(d, cv_libdir, '^lib(.*)\.so$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev', allow_links=True)
+    do_split_packages(d, cv_libdir, '^lib(.*)\.la$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev')
+    do_split_packages(d, cv_libdir, '^lib(.*)\.a$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev')
+    do_split_packages(d, cv_libdir, '^lib(.*)\.so\.*', 'lib%s', 'OpenCV %s library', extra_depends='', allow_links=True)
+
+    pn = d.getVar('PN', 1)
+    metapkg =  pn + '-dev'
+    d.setVar('ALLOW_EMPTY_' + metapkg, "1")
+    blacklist = [ metapkg ]
+    metapkg_rdepends = [ ]
+    packages = d.getVar('PACKAGES', 1).split()
+    for pkg in packages[1:]:
+        if not pkg in blacklist and not pkg in metapkg_rdepends and pkg.endswith('-dev'):
+            metapkg_rdepends.append(pkg)
+    d.setVar('RRECOMMENDS_' + metapkg, ' '.join(metapkg_rdepends))
+
+    metapkg =  pn
+    blacklist = [ metapkg ]
+    metapkg_rdepends = [ ]
+    for pkg in packages[1:]:
+        if not pkg in blacklist and not pkg in metapkg_rdepends and not pkg.endswith('-dev') and not pkg.endswith('-dbg') and not pkg.endswith('-doc') and not pkg.endswith('-locale'):
+            metapkg_rdepends.append(pkg)
+    bb.data.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends), d)
+
+}
+
+PACKAGES_DYNAMIC += "^libopencv-.*"
+
+FILES_${PN} = ""
+FILES_${PN}-apps = "${bindir}/* ${datadir}/OpenCV"
+FILES_${PN}-dbg += "${libdir}/.debug"
+FILES_${PN}-dev = "${includedir} ${libdir}/pkgconfig"
+FILES_${PN}-doc = "${datadir}/OpenCV/doc"
+FILES_${PN}-java = "${datadir}/OpenCV/java"
+FILES_${PN}-java-dbg = "${datadir}/OpenCV/java/.debug/"
+FILES_${PN}-samples = "${datadir}/OpenCV/samples/"
+FILES_${PN}-samples-dbg = "${datadir}/OpenCV/samples/bin/.debug"
+
+INSANE_SKIP_${PN}-apps = "staticdev"
+INSANE_SKIP_${PN}-java = "libdir"
+INSANE_SKIP_${PN}-java-dbg = "libdir"
+
+ALLOW_EMPTY_${PN} = "1"
+
+SUMMARY_python-opencv = "Python bindings to opencv"
+FILES_python-opencv = "${PYTHON_SITEPACKAGES_DIR}/*"
+RDEPENDS_python-opencv = "python-core python-numpy"
+
+do_install_append() {
+    cp ${S}/include/opencv/*.h ${D}${includedir}/opencv/
+    sed -i '/blobtrack/d' ${D}${includedir}/opencv/cvaux.h
+
+    # Move Python files into correct library folder (for multilib build)
+    if [ "$libdir" != "/usr/lib" ]; then
+        mv ${D}/usr/lib/* ${D}/${libdir}/
+        rm -rf ${D}/usr/lib
+    fi
+
+    install -d ${D}${datadir}/OpenCV/samples/bin/
+    cp -f bin/*-tutorial-* bin/*-example-* ${D}${datadir}/OpenCV/samples/bin/
+}
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap/initscript b/import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap/initscript
new file mode 100644
index 0000000..08d1067
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap/initscript
@@ -0,0 +1,35 @@
+#! /bin/sh
+#
+# This is an init script for openembedded
+# Copy it to /etc/init.d/openldap and type
+# > update-rc.d openldap defaults 60
+#
+
+# Source function library.
+. /etc/init.d/functions
+
+slapd=/usr/sbin/slapd
+test -x "$slapd" || exit 0
+
+
+case "$1" in
+  start)
+    echo -n "Starting OpenLDAP: "
+    start-stop-daemon --start --quiet --exec $slapd
+    echo "."
+    ;;
+  stop)
+    echo -n "Stopping OpenLDAP: "
+    start-stop-daemon --stop --quiet --pidfile /var/run/slapd.pid
+    echo "."
+    ;;
+  status)
+    status $slapd;
+    exit $?
+    ;;
+  *)
+    echo "Usage: /etc/init.d/openldap {start|stop|status}"
+    exit 1
+esac
+
+exit 0
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap/install-strip.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap/install-strip.patch
new file mode 100644
index 0000000..2992b70
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap/install-strip.patch
@@ -0,0 +1,14 @@
+# This patch ensures that the install operations which strip
+# programs and libraries (LTINSTALL) work in a cross build
+# environment.
+--- openldap-2.2.24/.pc/install-strip.patch/build/top.mk	2005-01-20 09:00:55.000000000 -0800
++++ openldap-2.2.24/build/top.mk	2005-04-16 13:48:20.536710376 -0700
+@@ -116,7 +116,7 @@
+ LTLINK_MOD = $(LIBTOOL) $(LTONLY_MOD) --mode=link \
+ 	$(CC) $(LT_CFLAGS) $(LDFLAGS) $(LTFLAGS_MOD)
+ 
+-LTINSTALL = $(LIBTOOL) --mode=install $(INSTALL) 
++LTINSTALL = STRIPPROG="" $(LIBTOOL) --mode=install $(top_srcdir)/contrib/ldapc++/install-sh -c
+ LTFINISH = $(LIBTOOL) --mode=finish
+ 
+ # Misc UNIX commands used in build environment
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap/kill-icu.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap/kill-icu.patch
new file mode 100644
index 0000000..dcf5411
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap/kill-icu.patch
@@ -0,0 +1,30 @@
+From: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
+
+slapd depends on ICU if it was built first.
+
+Upstream-status: inappropiate [embedded specific]
+---
+ configure.in |    8 --------
+ 1 file changed, 8 deletions(-)
+
+--- openldap-2.4.23.orig/configure.in
++++ openldap-2.4.23/configure.in
+@@ -2045,18 +2045,10 @@ if test $ol_enable_ndb != no ; then
+ 		SLAPD_LIBS="$SLAPD_LIBS \$(SLAPD_NDB_LIBS)"
+ 	fi
+ fi
+ 
+ dnl ----------------------------------------------------------------
+-dnl International Components for Unicode
+-OL_ICU
+-if test "$ol_icu" = no ; then
+-	AC_MSG_WARN([ICU not available])
+-else
+-	ICU_LIBS="$ol_icu"
+-fi
+-dnl ----------------------------------------------------------------
+ dnl
+ dnl Check for Cyrus SASL
+ dnl
+ WITH_SASL=no
+ ol_link_sasl=no
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-2.4.28-gnutls-gcrypt.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-2.4.28-gnutls-gcrypt.patch
new file mode 100644
index 0000000..c7b1552
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-2.4.28-gnutls-gcrypt.patch
@@ -0,0 +1,17 @@
+From http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/net-nds/openldap/files/
+
+Upstream-status: Unknown
+
+--
+
+--- openldap-2.4.28/configure.in.orig	2012-02-11 22:40:36.004360795 +0000
++++ openldap-2.4.28/configure.in	2012-02-11 22:40:13.410986851 +0000
+@@ -1214,7 +1214,7 @@
+ 				ol_with_tls=gnutls
+ 				ol_link_tls=yes
+ 
+-				TLS_LIBS="-lgnutls"
++				TLS_LIBS="-lgnutls -lgcrypt"
+ 
+ 				AC_DEFINE(HAVE_GNUTLS, 1, 
+ 					[define if you have GNUtls])
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-m4-pthread.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-m4-pthread.patch
new file mode 100644
index 0000000..b669b72
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap/openldap-m4-pthread.patch
@@ -0,0 +1,20 @@
+--- openldap-2.3.11/build/openldap.m4.orig	2005-11-11 00:11:18.604322590 -0800
++++ openldap-2.3.11/build/openldap.m4	2005-11-11 00:26:21.621145856 -0800
+@@ -788,7 +788,7 @@ AC_DEFUN([OL_PTHREAD_TEST_FUNCTION],[[
+ ]])
+ 
+ AC_DEFUN([OL_PTHREAD_TEST_PROGRAM],
+-AC_LANG_SOURCE([OL_PTHREAD_TEST_INCLUDES
++[AC_LANG_SOURCE([[OL_PTHREAD_TEST_INCLUDES
+ 
+ int main(argc, argv)
+ 	int argc;
+@@ -796,7 +796,7 @@ int main(argc, argv)
+ {
+ OL_PTHREAD_TEST_FUNCTION
+ }
+-]))
++]])])
+ dnl --------------------------------------------------------------------
+ AC_DEFUN([OL_PTHREAD_TRY], [# Pthread try link: $1 ($2)
+ if test "$ol_link_threads" = no ; then
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap/slapd.service b/import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap/slapd.service
new file mode 100644
index 0000000..f5f83fd
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap/slapd.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Standalone LDAP Daemon
+After=syslog.target network.target
+
+[Service]
+Type=forking
+ExecStart=@SBINDIR@/slapd
+
+[Install]
+WantedBy=multi-user.target
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap/thread_stub.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap/thread_stub.patch
new file mode 100644
index 0000000..540ba4a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap/thread_stub.patch
@@ -0,0 +1,20 @@
+openldap: set pointer
+
+When the function ldap_pvt_thread_pool_getkey() succeeds, it
+must set the value of *data since the caller may try to use it.
+
+Upstream-Status: pending
+
+Signed-off-by: Joe Slater <jslater@windriver.com>
+
+
+--- a/libraries/libldap_r/thr_stub.c
++++ b/libraries/libldap_r/thr_stub.c
+@@ -217,6 +217,7 @@ ldap_pvt_thread_pool_unidle ( ldap_pvt_t
+ int ldap_pvt_thread_pool_getkey (
+ 	void *ctx, void *key, void **data, ldap_pvt_thread_pool_keyfree_t **kfree )
+ {
++	if (data) *data = NULL;  /* avoid problems with uninitialized *data */
+ 	return(0);
+ }
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap/use-urandom.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap/use-urandom.patch
new file mode 100644
index 0000000..e7b988f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap/use-urandom.patch
@@ -0,0 +1,38 @@
+openldap: assume /dev/urandom exists
+
+When we are cross-compiling, we want to assume
+that /dev/urandom exists.  We could change the source
+code to look for it, but this is the easy way out.
+
+Upstream-Status: pending
+
+Signed-off-by: Joe Slater <jslater@windriver.com>
+
+
+--- a/configure.in
++++ b/configure.in
+@@ -2142,8 +2142,8 @@ fi
+ 
+ dnl ----------------------------------------------------------------
+ dnl Check for entropy sources
++dev=no
+ if test $cross_compiling != yes && test "$ac_cv_mingw32" != yes ; then
+-	dev=no
+ 	if test -r /dev/urandom ; then
+ 		dev="/dev/urandom";
+ 	elif test -r /idev/urandom ; then
+@@ -2156,9 +2156,11 @@ if test $cross_compiling != yes && test 
+ 		dev="/idev/random";
+ 	fi
+ 
+-	if test $dev != no ; then
+-		AC_DEFINE_UNQUOTED(URANDOM_DEVICE,"$dev",[set to urandom device])
+-	fi
++elif test $cross_compiling == yes ; then
++	dev="/dev/urandom";
++fi
++if test $dev != no ; then
++	AC_DEFINE_UNQUOTED(URANDOM_DEVICE,"$dev",[set to urandom device])
+ fi
+ 
+ dnl ----------------------------------------------------------------
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.43.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.43.bb
new file mode 100644
index 0000000..8618365
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.43.bb
@@ -0,0 +1,254 @@
+# OpenLDAP, a license free (see http://www.OpenLDAP.org/license.html)
+#
+SUMMARY = "OpenLDAP Directory Service"
+DESCRIPTION = "OpenLDAP Software is an open source implementation of the Lightweight Directory Access Protocol."
+HOMEPAGE = "http://www.OpenLDAP.org/license.html"
+# The OpenLDAP Public License - see the HOMEPAGE - defines
+# the license.  www.openldap.org claims this is Open Source
+# (see http://www.openldap.org), the license appears to be
+# basically BSD.  opensource.org does not record this license
+# at present (so it is apparently not OSI certified).
+LICENSE = "OpenLDAP"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=9d845a25aef97da753144f1dacbf680c \
+                    file://LICENSE;md5=153d07ef052c4a37a8fac23bc6031972 \
+"
+SECTION = "libs"
+
+LDAP_VER = "${@'.'.join(d.getVar('PV',1).split('.')[0:2])}"
+
+SRC_URI = "ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/${BP}.tgz \
+    file://openldap-m4-pthread.patch \
+    file://kill-icu.patch \
+    file://openldap-2.4.28-gnutls-gcrypt.patch \
+    file://use-urandom.patch \
+    file://initscript \
+    file://slapd.service \
+    file://thread_stub.patch \
+"
+
+SRC_URI[md5sum] = "49ca65e27891fcf977d78c10f073c705"
+SRC_URI[sha256sum] = "34d78e5598a2b0360d26a9050fcdbbe198c65493b013bb607839d5598b6978c8"
+
+DEPENDS = "util-linux groff-native"
+
+# The original top.mk used INSTALL, not INSTALL_STRIP_PROGRAM when
+# installing .so and executables, this fails in cross compilation
+# environments
+SRC_URI += "file://install-strip.patch"
+
+inherit autotools-brokensep update-rc.d systemd
+
+# CV SETTINGS
+# Required to work round AC_FUNC_MEMCMP which gets the wrong answer
+# when cross compiling (should be in site?)
+EXTRA_OECONF += "ac_cv_func_memcmp_working=yes"
+
+# CONFIG DEFINITIONS
+# The following is necessary because it cannot be determined for a
+# cross compile automagically.  Select should yield fine on all OE
+# systems...
+EXTRA_OECONF += "--with-yielding-select=yes"
+# Shared libraries are nice...
+EXTRA_OECONF += "--enable-dynamic"
+
+PACKAGECONFIG ??= "gnutls modules \
+                   ldap meta monitor null passwd shell proxycache dnssrv \
+                   ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)} \
+"
+#--with-tls              with TLS/SSL support auto|openssl|gnutls [auto]
+PACKAGECONFIG[gnutls] = "--with-tls=gnutls,,gnutls libgcrypt"
+PACKAGECONFIG[openssl] = "--with-tls=openssl,,openssl"
+
+PACKAGECONFIG[sasl] = "--with-cyrus-sasl,--without-cyrus-sasl,cyrus-sasl"
+PACKAGECONFIG[modules] = "lt_cv_dlopen_self=yes --enable-modules,--disable-modules,libtool"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6"
+
+# SLAPD options
+#
+# UNIX crypt(3) passwd support:
+EXTRA_OECONF += "--enable-crypt"
+
+# SLAPD BACKEND
+#
+# The backend must be set by the configuration.  This controls the
+# required database. 
+#
+# Backends="bdb dnssrv hdb ldap mdb meta monitor ndb null passwd perl relay shell sock sql"
+#
+# Note that multiple backends can be built.  The ldbm backend requires a
+# build-time choice of database API.  The bdb backend forces this to be
+# DB4.  To use the gdbm (or other) API the Berkely database module must
+# be removed from the build.
+md = "${libexecdir}/openldap"
+#
+#--enable-bdb          enable Berkeley DB backend no|yes|mod yes
+# The Berkely DB is the standard choice.  This version of OpenLDAP requires
+# the version 4 implementation or better.
+PACKAGECONFIG[bdb] = "--enable-bdb=yes,--enable-bdb=no,db"
+
+#--enable-dnssrv       enable dnssrv backend no|yes|mod no
+PACKAGECONFIG[dnssrv] = "--enable-dnssrv=mod,--enable-dnssrv=no"
+
+#--enable-hdb          enable Hierarchical DB backend no|yes|mod no
+PACKAGECONFIG[hdb] = "--enable-hdb=yes,--enable-hdb=no,db"
+
+#--enable-ldap         enable ldap backend no|yes|mod no
+PACKAGECONFIG[ldap] = "--enable-ldap=mod,--enable-ldap=no,"
+
+#--enable-mdb          enable mdb database backend no|yes|mod [yes]
+PACKAGECONFIG[mdb] = "--enable-mdb=mod,--enable-mdb=no,"
+
+#--enable-meta         enable metadirectory backend no|yes|mod no
+PACKAGECONFIG[meta] = "--enable-meta=mod,--enable-meta=no,"
+
+#--enable-monitor      enable monitor backend no|yes|mod yes
+PACKAGECONFIG[monitor] = "--enable-monitor=mod,--enable-monitor=no,"
+
+#--enable-ndb          enable MySQL NDB Cluster backend no|yes|mod [no]
+PACKAGECONFIG[ndb] = "--enable-ndb=mod,--enable-ndb=no,"
+
+#--enable-null         enable null backend no|yes|mod no
+PACKAGECONFIG[null] = "--enable-null=mod,--enable-null=no,"
+
+#--enable-passwd       enable passwd backend no|yes|mod no
+PACKAGECONFIG[passwd] = "--enable-passwd=mod,--enable-passwd=no,"
+
+#--enable-perl         enable perl backend no|yes|mod no
+#  This requires a loadable perl dynamic library, if enabled without
+#  doing something appropriate (building perl?) the build will pick
+#  up the build machine perl - not good (inherit perlnative?)
+PACKAGECONFIG[perl] = "--enable-perl=mod,--enable-perl=no,perl"
+
+#--enable-relay        enable relay backend no|yes|mod [yes]
+PACKAGECONFIG[relay] = "--enable-relay=mod,--enable-relay=no,"
+
+#--enable-shell        enable shell backend no|yes|mod no
+# configure: WARNING: Use of --without-threads is recommended with back-shell
+PACKAGECONFIG[shell] = "--enable-shell=mod --without-threads,--enable-shell=no,"
+
+#--enable-sock         enable sock backend no|yes|mod [no]
+PACKAGECONFIG[sock] = "--enable-sock=mod,--enable-sock=no,"
+
+#--enable-sql          enable sql backend no|yes|mod no
+# sql requires some sql backend which provides sql.h, sqlite* provides
+# sqlite.h (which may be compatible but hasn't been tried.)
+PACKAGECONFIG[sql] = "--enable-sql=mod,--enable-sql=no,sqlite3"
+
+#--enable-dyngroup     Dynamic Group overlay no|yes|mod no
+#  This is a demo, Proxy Cache defines init_module which conflicts with the
+#  same symbol in dyngroup
+PACKAGECONFIG[dyngroup] = "--enable-dyngroup=mod,--enable-dyngroup=no,"
+
+#--enable-proxycache   Proxy Cache overlay no|yes|mod no
+PACKAGECONFIG[proxycache] = "--enable-proxycache=mod,--enable-proxycache=no,"
+FILES_${PN}-overlay-proxycache = "${md}/pcache-*.so.*"
+PACKAGES += "${PN}-overlay-proxycache"
+
+# Append URANDOM_DEVICE='/dev/urandom' to CPPFLAGS:
+# This allows tls to obtain random bits from /dev/urandom, by default
+# it was disabled for cross-compiling.
+CPPFLAGS_append = " -D_GNU_SOURCE -DURANDOM_DEVICE=\'/dev/urandom\'"
+
+LDFLAGS += "-pthread"
+
+do_configure() {
+    cp ${STAGING_DATADIR_NATIVE}/libtool/build-aux/ltmain.sh ${S}/build
+    rm -f ${S}/libtool
+    aclocal
+    libtoolize --force --copy
+    gnu-configize
+    autoconf
+    oe_runconf
+}
+
+LEAD_SONAME = "libldap-${LDAP_VER}.so.*"
+
+# The executables go in a separate package.  This allows the
+# installation of the libraries with no daemon support.
+# Each module also has its own package - see above.
+PACKAGES += "${PN}-slapd ${PN}-slurpd ${PN}-bin"
+
+# Package contents - shift most standard contents to -bin
+FILES_${PN} = "${libdir}/lib*.so.* ${sysconfdir}/openldap/ldap.* ${localstatedir}/${BPN}/data"
+FILES_${PN}-slapd = "${sysconfdir}/init.d ${libexecdir}/slapd ${sbindir} ${localstatedir}/run ${localstatedir}/volatile/run \
+    ${sysconfdir}/openldap/slapd.* ${sysconfdir}/openldap/schema \
+    ${sysconfdir}/openldap/DB_CONFIG.example ${systemd_unitdir}/system/*"
+FILES_${PN}-slurpd = "${libexecdir}/slurpd ${localstatedir}/openldap-slurp ${localstatedir}/run ${localstatedir}/volatile/run"
+FILES_${PN}-bin = "${bindir}"
+FILES_${PN}-dev = "${includedir} ${libdir}/lib*.so ${libdir}/*.la ${libdir}/*.a ${libexecdir}/openldap/*.a ${libexecdir}/openldap/*.la ${libexecdir}/openldap/*.so"
+FILES_${PN}-dbg += "${libexecdir}/openldap/.debug"
+
+do_install_append() {
+    install -d ${D}${sysconfdir}/init.d
+    cat ${WORKDIR}/initscript > ${D}${sysconfdir}/init.d/openldap
+    chmod 755 ${D}${sysconfdir}/init.d/openldap
+    # This is duplicated in /etc/openldap and is for slapd
+    rm -f ${D}${localstatedir}/openldap-data/DB_CONFIG.example
+
+    # Installing slapd under ${sbin} is more FHS and LSB compliance
+    mv ${D}${libexecdir}/slapd ${D}/${sbindir}/slapd
+    SLAPTOOLS="slapadd slapcat slapdn slapindex slappasswd slaptest slapauth slapacl slapschema"
+    cd ${D}/${sbindir}/
+    rm -f ${SLAPTOOLS}
+    for i in ${SLAPTOOLS}; do ln -sf slapd $i; done
+
+    rmdir "${D}${localstatedir}/run"
+    rmdir --ignore-fail-on-non-empty "${D}${localstatedir}"
+
+    install -d ${D}${systemd_unitdir}/system/
+    install -m 0644 ${WORKDIR}/slapd.service ${D}${systemd_unitdir}/system/
+    sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/*.service
+
+    # Uses mdm as the database
+    #  and localstatedir as data directory ...
+    sed -e 's/# modulepath/modulepath/' \
+        -e 's/# moduleload\s*back_bdb.*/moduleload    back_mdb/' \
+        -e 's/database\s*bdb/database        mdb/' \
+        -e 's%^directory\s*.*%directory   ${localstatedir}/${BPN}/data/%' \
+        -i ${D}${sysconfdir}/openldap/slapd.conf
+
+    mkdir -p ${D}${localstatedir}/${BPN}/data
+
+
+}
+
+INITSCRIPT_PACKAGES = "${PN}-slapd"
+INITSCRIPT_NAME_${PN}-slapd = "openldap"
+INITSCRIPT_PARAMS_${PN}-slapd = "defaults"
+SYSTEMD_SERVICE_${PN}-slapd = "hostapd.service"
+SYSTEMD_AUTO_ENABLE_${PN}-slapd ?= "disable"
+
+
+PACKAGES_DYNAMIC += "^${PN}-backends.* ^${PN}-backend-.*"
+
+# The modules require their .so to be dynamicaly loaded
+INSANE_SKIP_${PN}-backend-dnssrv  += "dev-so"
+INSANE_SKIP_${PN}-backend-ldap    += "dev-so"
+INSANE_SKIP_${PN}-backend-meta    += "dev-so"
+INSANE_SKIP_${PN}-backend-mdb     += "dev-so"
+INSANE_SKIP_${PN}-backend-monitor += "dev-so"
+INSANE_SKIP_${PN}-backend-null    += "dev-so"
+INSANE_SKIP_${PN}-backend-passwd  += "dev-so"
+INSANE_SKIP_${PN}-backend-shell   += "dev-so"
+
+
+python populate_packages_prepend () {
+    backend_dir    = d.expand('${libexecdir}/openldap')
+    do_split_packages(d, backend_dir, 'back_([a-z]*)\.so$', 'openldap-backend-%s', 'OpenLDAP %s backend', prepend=True, extra_depends='', allow_links=True)
+    do_split_packages(d, backend_dir, 'back_([a-z]*)\-.*\.so\..*$', 'openldap-backend-%s', 'OpenLDAP %s backend', extra_depends='', allow_links=True)
+
+    metapkg = "${PN}-backends"
+    d.setVar('ALLOW_EMPTY_' + metapkg, "1")
+    d.setVar('FILES_' + metapkg, "")
+    metapkg_rdepends = []
+    packages = d.getVar('PACKAGES', 1).split()
+    for pkg in packages[1:]:
+        if pkg.count("openldap-backend-") and not pkg in metapkg_rdepends and not pkg.count("-dev") and not pkg.count("-dbg") and not pkg.count("static") and not pkg.count("locale"):
+            metapkg_rdepends.append(pkg)
+    d.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends))
+    d.setVar('DESCRIPTION_' + metapkg, 'OpenLDAP backends meta package')
+    packages.append(metapkg)
+    d.setVar('PACKAGES', ' '.join(packages))
+}
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openmotif/openmotif/configure.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/openmotif/openmotif/configure.patch
new file mode 100644
index 0000000..8868e80
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/openmotif/openmotif/configure.patch
@@ -0,0 +1,15 @@
+--- a/configure.ac~	2009-10-27 14:10:23.000000000 -0200
++++ b/configure.ac	2011-05-31 10:51:00.207232036 -0300
+@@ -3,12 +3,6 @@
+ AC_CONFIG_SRCDIR([lib/Xm/Form.c])
+ AC_PREREQ(2.52)
+ AC_CONFIG_AUX_DIR(.)
+-AC_CHECK_FILE(/usr/X/include/X11/X.h,
+-  AC_PREFIX_DEFAULT(/usr/X),
+-  AC_PREFIX_DEFAULT(/usr))
+-AC_CHECK_FILE(/usr/X11R6/include/X11/X.h,
+-  AC_PREFIX_DEFAULT(/usr/X11R6),
+-  AC_PREFIX_DEFAULT(/usr))
+ 
+ dnl AM_MAINTAINER_MODE
+ AC_CANONICAL_TARGET
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openmotif/openmotif_2.3.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/openmotif/openmotif_2.3.3.bb
new file mode 100644
index 0000000..2baeda0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/openmotif/openmotif_2.3.3.bb
@@ -0,0 +1,48 @@
+SECTION = "libs"
+SUMMARY = "OSM/Motif implementation"
+LICENSE = "OGPL"
+DEPENDS = "xbitmaps virtual/libx11 libxt libxft xproto"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=14f692c82491db3d52419929d2f3b343"
+
+PR = "r3"
+
+PNBLACKLIST[openmotif] ?= "BROKEN: doesn't build with B!=S"
+
+SRC_URI = "http://motif.ics.com/sites/default/files/openmotif-2.3.3.tar.gz \
+           file://configure.patch;patch=1"
+
+SRC_URI[md5sum] = "fd27cd3369d6c7d5ef79eccba524f7be"
+SRC_URI[sha256sum] = "c85f5545e218fa0c59a3789192132d472fc5a33e914a221a568eee4fc10cd103"
+
+inherit autotools
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg"
+PACKAGECONFIG[png] = "--enable-png,--disable-png,libpng"
+
+EXTRA_OECONF = "X_CFLAGS=-I${STAGING_INCDIR} --disable-printing"
+
+PACKAGES += "${PN}-bin"
+
+FILES_${PN}-bin = "${bindir}"
+
+do_compile() {
+    (
+        # HACK: build a native binaries need during the build
+        unset CC LD CXX CCLD CFLAGS
+        oe_runmake -C config/util CC="${BUILD_CC}" LD="${BUILD_LD}" CXX="${BUILD_CXX}" LIBS="" makestrs
+    )
+    if [ "$?" != "0" ]; then
+        exit 1
+    fi
+    oe_runmake -C lib
+    oe_runmake -C include
+}
+
+do_install() {
+    oe_runmake DESTDIR=${D} -C lib install
+    oe_runmake DESTDIR=${D} -C include install
+}
+
+LEAD_SONAME = "libXm.so.4"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.15.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.15.0.bb
new file mode 100644
index 0000000..a11b3d8
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.15.0.bb
@@ -0,0 +1,45 @@
+SUMMARY = "Smart card library and applications"
+DESCRIPTION = "OpenSC is a tool for accessing smart card devices. Basic\
+functionality (e.g. SELECT FILE, READ BINARY) should work on any ISO\
+7816-4 compatible smart card. Encryption and decryption using private\
+keys on the smart card is possible with PKCS\
+such as the FINEID (Finnish Electronic IDentity) card. Swedish Posten\
+eID cards have also been confirmed to work."
+
+HOMEPAGE = "http://www.opensc-project.org/opensc/"
+SECTION = "System Environment/Libraries"
+
+SRC_URI = "${DEBIAN_MIRROR}/main/o/${BPN}/${BPN}_${PV}.orig.tar.gz"
+
+SRC_URI[md5sum] = "f266024e5a9630821ffa0ac14f72e369"
+SRC_URI[sha256sum] = "8f8f8cf52e0252334e4dfdccca829b876a3de6340deb772aa0bfe0c0cc10eaf5"
+
+S = "${WORKDIR}/OpenSC-${PV}"
+DEPENDS = "openct pcsc-lite virtual/libiconv openssl"
+
+LICENSE = "LGPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = " \
+    --disable-static \
+    --enable-openct \
+    --disable-pcsc \
+    --disable-ctapi \
+    --disable-doc \
+"
+EXTRA_OEMAKE = "DESTDIR=${D}"
+
+RDEPENDS_${PN} = "readline"
+
+FILES_${PN} += "\
+    ${libdir}/opensc-pkcs11.so \
+    ${libdir}/onepin-opensc-pkcs11.so \
+    ${libdir}/pkcs11-spy.so \
+"
+FILES_${PN}-dev += "\
+    ${libdir}/pkcs11/opensc-pkcs11.so \
+    ${libdir}/pkcs11/onepin-opensc-pkcs11.so \
+    ${libdir}/pkcs11/pkcs11-spy.so \
+"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opensync/libsyncml_0.5.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/opensync/libsyncml_0.5.4.bb
new file mode 100644
index 0000000..ebf65c7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/opensync/libsyncml_0.5.4.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Libsyncml is an implementation of the SyncML protocol"
+HOMEPAGE = "https://libsyncml.opensync.org/"
+SECTION = "libs"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fad9b3332be894bab9bc501572864b29"
+
+DEPENDS = "libxml2 glib-2.0 libsoup-2.4 openobex wbxml2"
+
+# Depends on openobex
+PNBLACKLIST[libsyncml] ?= "${@bb.utils.contains('DISTRO_FEATURES', 'bluez5', 'bluez5 conflicts with bluez4 and bluez5 is selected in DISTRO_FEATURES', '', d)}"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/libsyncml/libsyncml-${PV}.tar.gz"
+SRC_URI[md5sum] = "84879ed7cb94618530fbcb801a1a4f95"
+SRC_URI[sha256sum] = "05d6513637adb1300a3a58b6e29d53ab6373c8f370807d0d925bae72b2920e53"
+
+inherit cmake pkgconfig
+
+PACKAGES += "${PN}-tools"
+
+FILES_${PN}-tools = "${bindir}"
+FILES_${PN} = "${libdir}/*.so.*"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/opensync/wbxml2_0.10.8.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/opensync/wbxml2_0.10.8.bb
new file mode 100644
index 0000000..bd15bba
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/opensync/wbxml2_0.10.8.bb
@@ -0,0 +1,23 @@
+SUMMARY = "WBXML parsing and encoding library"
+HOMEPAGE = "http://libwbxml.opensync.org/"
+SECTION = "libs"
+LICENSE = "LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c1128ee5341ccd5927d8bafe4b6266e1"
+
+DEPENDS = "expat"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/libwbxml/libwbxml-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "f5031e9f730ffd9dc6a2d1ded585e1d1"
+SRC_URI[sha256sum] = "a057daa098f12838eb4e635bb28413027f1b73819872c3fbf64e3207790a3f7d"
+
+S = "${WORKDIR}/libwbxml-${PV}"
+
+inherit cmake pkgconfig
+
+EXTRA_OECMAKE = "-DLIB_SUFFIX=${@d.getVar('baselib', True).replace('lib', '')}"
+
+PACKAGES += "${PN}-tools"
+
+FILES_${PN}-tools = "${bindir}"
+FILES_${PN} = "${libdir}/*.so.*"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/checkserverkey b/import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/checkserverkey
new file mode 100644
index 0000000..bcfa361
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/checkserverkey
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+if [ ! -f "/etc/openwbem/serverkey.pem" ]; then
+	if [ -f "/etc/ssl/servercerts/servercert.pem" \
+	     -a -f "/etc/ssl/servercerts/serverkey.pem" ]; then
+		echo "Using common server certificate /etc/ssl/servercerts/servercert.pem"
+		ln -s /etc/ssl/servercerts/server{cert,key}.pem /etc/openwbem/
+	else
+		echo "FAILED: Starting OpenWBEM server"
+		echo "There is no ssl server key available for OpenWBEM server to use."
+		echo -e "Please generate one with the following script and start the OpenWBEM service again:\n"
+		echo "##################################"
+		echo "/etc/openwbem/owgencert"
+		echo "================================="
+
+		echo "NOTE: The script uses /dev/random device for generating some random bits while generating the server key."
+		echo "      If this takes too long, you can replace the value of \"RANDFILE\" in /etc/openwsman/ssleay.cnf with /dev/urandom. Please understand the implications"
+		exit 1
+	fi
+fi
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/loadmof.sh b/import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/loadmof.sh
new file mode 100644
index 0000000..dd87811
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/loadmof.sh
@@ -0,0 +1,118 @@
+#!/bin/sh
+# 
+# options:
+# loadmof.sh <MOF_PATH> <NAMESPACE> <FILES>
+#
+# - or -
+#
+# options:
+# loadmof.sh -n <NAMESPACE> <FILES> [...]
+#
+# The former is preserved for compatibility with Pegasus and 
+# sblim providers.  The latter is preferred.  If $1 is "-n",
+# the latter code path is executed.  Otherwise the former is 
+# executed.
+
+if [ "x$1" != "x-n" -a "x$1" != "x-v" ]; then
+# OLD STYLE
+if [ -f "/etc/init.d/owcimomd" ]; then
+    /etc/init.d/owcimomd status 1>&2 > /dev/null
+    if [ $? = "0" ]; then
+        CIMOM_RUNNING="true"
+    else
+        CIMOM_RUNNING="false"
+    fi
+else
+    exit 1
+fi
+if [ "$YAST_IS_RUNNING" = "instsys" ]; then
+  CIMOM_RUNNING="false"
+fi
+
+CIMOM=$1
+shift
+case "$CIMOM" in
+    pegasus)
+        exit 0
+    ;;
+esac
+MOF_PATH=$1
+shift
+NS=$1
+shift
+
+REPOSITORY="/var/lib/openwbem"
+#tmp_dir=`mktemp -d -p /tmp openwbem.XXXXXX`
+case "$CIMOM_RUNNING" in 
+    true|false)
+    while [ "$#" -gt 0 ]
+    do
+        echo "Loading $MOF_PATH/$1"
+        #sed "s/cmpi:/cmpi::/g" $MOF_PATH/$1 > $tmp_dir/$1
+        /usr/bin/owmofc -c -n  $NS -d $REPOSITORY $MOF_PATH/$1 > /dev/null 2>&1
+        shift
+    done
+    ;;
+esac
+#rm -rf $tmp_dir
+# END OLD STYLE
+
+else
+# NEW STYLE
+if [ "x$3" = "x" ]; then
+    echo "Usage: $0 -n <NAMESPACE> <FILES> [...]"
+    exit 1
+fi
+
+if [ "x$1" = "x-v" ]; then
+  VERBOSE=1
+  shift
+fi
+
+# get rid of "-n" arg
+shift 
+
+NS="$1"
+
+shift 
+
+DBDIR=/var/lib/openwbem
+LOGFILE=$DBDIR/loadmof.log
+CIMOM_INIT=/etc/init.d/owcimomd
+if [ "$YAST_IS_RUNNING" != "instsys" ] ; then
+    $CIMOM_INIT status > /dev/null 2>&1
+    CIMOM_RUNNING=$?
+fi
+if [ "x$CIMOM_RUNNING" = "x0"  ]; then
+  $CIMOM_INIT stop > /dev/null 2>&1
+fi
+bkpdir=$DBDIR/backup-$$
+mkdir $bkpdir
+cp -a $DBDIR/*.{dat,ndx,lock} $bkpdir/
+rm -f $LOGFILE.9
+for i in 8 7 6 5 4 3 2 1 0; do
+  let newI=$i+1
+  if [ -f $LOGFILE.$i ]; then
+    mv $LOGFILE.$i $LOGFILE.$newI
+  fi
+done
+if [ -f $LOGFILE ]; then
+  mv $LOGFILE $LOGFILE.0
+fi
+if [ "x$VERBOSE" = "x1" ]; then
+  /usr/bin/owmofc -c -n $NS -d $DBDIR -s /usr/share/mof/cim-current "$@" 2>&1 | tee $LOGFILE
+else
+  /usr/bin/owmofc -c -n $NS -d $DBDIR -s /usr/share/mof/cim-current "$@" > $LOGFILE 2>&1
+fi
+RVAL=$?
+if [ "x$RVAL" != "x0" ]; then
+  echo "MOF import failed!  Check $LOGFILE for details."
+  mv $bkpdir/* $DBDIR/
+fi
+rm -rf $bkpdir
+if [ "x$CIMOM_RUNNING" = "x0"  ]; then
+  $CIMOM_INIT start > /dev/null 2>&1
+fi
+exit $RVAL
+fi
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/novell-openwbem-root-acl.mof b/import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/novell-openwbem-root-acl.mof
new file mode 100644
index 0000000..c9970c7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/novell-openwbem-root-acl.mof
@@ -0,0 +1,21 @@
+#pragma namespace("root/security")
+
+instance of OpenWBEM_NamespaceACL
+{
+	nspace = "root";
+	capability = "";
+};
+
+instance of OpenWBEM_NamespaceACL
+{
+	nspace = "root/cimv2";
+	capability = "";
+};
+
+instance of OpenWBEM_UserACL
+{
+	nspace = "root/cimv2";
+	username = "root";
+	capability = "rw";
+};
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/openwbem-etc_pam.d_openwbem b/import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/openwbem-etc_pam.d_openwbem
new file mode 100644
index 0000000..b3785aa
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/openwbem-etc_pam.d_openwbem
@@ -0,0 +1,7 @@
+#%PAM-1.0
+auth       required	pam_unix2.so	nullok
+auth       required	pam_nologin.so
+account    required	pam_unix2.so
+password   required	pam_pwcheck.so	nullok
+password   required	pam_unix2.so	nullok use_first_pass use_authtok
+session    required	pam_unix2.so	none
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/openwbem-owcimomd.init b/import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/openwbem-owcimomd.init
new file mode 100644
index 0000000..47fa8a7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/openwbem-owcimomd.init
@@ -0,0 +1,131 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: owcimomd
+# Required-Start: $network
+# Required-Stop: $network
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6 
+# Short-Description: OpenWBEM CIMOM Daemon
+# Description: owcimomd
+#       Start/Stop the OpenWBEM CIMOM Daemon
+### END INIT INFO
+#
+#
+# chkconfig: 2345 36 64
+# description: OpenWBEM CIMOM Daemon
+# processname: owcimomd
+
+NAME=owcimomd
+DAEMON=/usr/sbin/$NAME
+OPTIONS=
+PIDFILE=/var/run/$NAME.pid
+
+if [ $EUID != 0 ]; then
+ echo "This script must be run as root."
+ exit 1;
+fi
+
+if [ "$DESCRIPTIVE" = "" ]; then
+ DESCRIPTIVE="OpenWBEM CIMOM Daemon"
+fi
+
+lockfile=${SVIlock:-/var/lock/subsys/$NAME}
+
+[ -x $DAEMON ] || exit 0
+
+# See how we were called.
+. /etc/init.d/functions
+
+start() {
+    if [ ! -f "/etc/openwbem/serverkey.pem" ]; then
+        if [ -f "/etc/ssl/servercerts/servercert.pem" \
+                -a -f "/etc/ssl/servercerts/serverkey.pem" ]; then
+            echo "Using common server certificate /etc/ssl/servercerts/servercert.pem"
+            ln -s /etc/ssl/servercerts/server{cert,key}.pem /etc/openwbem/
+        else
+            echo "Generating OpenWBEM server public certificate and private key"
+            FQDN=`hostname --fqdn`
+            if [ "x${FQDN}" = "x" ]; then
+                FQDN=localhost.localdomain
+            fi
+cat << EOF | sh /etc/openwbem/owgencert > /dev/null 2>&1
+--
+SomeState
+SomeCity
+SomeOrganization
+SomeOrganizationalUnit
+${FQDN}
+root@${FQDN}
+EOF
+        fi
+    fi
+
+    # Start daemons.
+    echo -n "Starting the $DESCRIPTIVE"
+    daemon $DAEMON $OPTIONS > /dev/null 2>&1 
+    RETVAL=$?
+
+    if [ $RETVAL -eq 0 ]; then
+        touch $lockfile
+        success
+    fi
+
+    echo
+    return $RETVAL
+}
+
+stop() {
+    # Stop daemons.
+    echo -n "Shutting down $DESCRIPTIVE"
+    killproc $DAEMON
+    RETVAL=$?
+
+    if [ $RETVAL -eq 0 ]; then
+        rm -f $lockfile
+        success
+    else
+        failure
+    fi
+    echo
+    return $RETVAL
+}
+
+restart() {
+    stop
+    start
+}
+
+case "$1" in
+    start)
+    start
+    ;;
+
+    stop)
+    stop
+    ;;
+
+    restart|force-reload)
+    restart
+    ;;
+
+    reload)
+    echo -n "Reload service $DESCRIPTIVE"
+    killproc -p $PIDFILE  -HUP $DAEMON
+    RETVAL=$?
+    echo
+    exit $RETVAL
+    ;;
+
+    status)
+    echo -n "Checking for service $DESCRIPTIVE"
+    status $DAEMON
+    RETVAL=$?
+    exit $RETVAL
+    ;;
+
+    *)
+    echo "Usage: $0 {restart|start|stop|reload|force-reload|status}"
+esac
+
+exit $RETVAL
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/openwbem-rpmlintrc b/import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/openwbem-rpmlintrc
new file mode 100644
index 0000000..785e32a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/openwbem-rpmlintrc
@@ -0,0 +1,2 @@
+addFilter("devel-file-in-non-devel-package .*/lib.*\.so")
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/owcimomd.service b/import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/owcimomd.service
new file mode 100644
index 0000000..c6694b7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/owcimomd.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Web Based Enterprise Management (WBEM) Implementation
+After=syslog.target
+
+[Service]
+Type=forking
+ExecStart=/usr/sbin/owcimomd
+ExecStartPre=/etc/openwbem/checkserverkey
+PIDFile=/var/run/owcimomd.pid
+
+[Install]
+WantedBy=multi-user.target
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/rmmof.sh b/import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/rmmof.sh
new file mode 100644
index 0000000..a495415
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem/rmmof.sh
@@ -0,0 +1,53 @@
+#!/bin/sh
+# 
+# options:
+# rmmof.sh <MOF_PATH> <NAMESPACE> <FILES>
+#
+# - or -
+#
+# options:
+# loadmof.sh -n <NAMESPACE> <FILES> [...]
+#
+# The former is preserved for compatibility with Pegasus and 
+# sblim providers.  The latter is preferred.  If $1 is "-n",
+# the latter code path is executed.  Otherwise the former is 
+# executed.
+
+if [ "x$3" = "x" ]; then
+    echo "Usage: $0 -n <NAMESPACE> <FILES> [...]"
+    exit 1
+fi
+
+# get rid of "-n" arg
+shift 
+
+NS="$1"
+
+shift 
+
+DBDIR=/var/lib/openwbem
+CIMOM_INIT=/etc/init.d/owcimomd
+if [ "$YAST_IS_RUNNING" != "instsys" ] ; then
+    $CIMOM_INIT status
+    CIMOM_RUNNING=$?
+fi
+if [ "x$CIMOM_RUNNING" = "x0"  ]; then
+  $CIMOM_INIT stop
+fi
+bkpdir=/tmp/owrep.bkp-$$
+mkdir $bkpdir
+cp -a $DBDIR $bkpdir/
+echo "Compiling MOF files"
+/usr/bin/owmofc -r -n $NS -d $DBDIR "$@" > /dev/null 2>&1
+RVAL=$?
+if [ "x$RVAL" != "x0" ]; then
+  echo "MOF import failed!"
+  rm -rf $DBDIR
+  mv $bkpdir/openwbem $DBDIR
+fi
+rm -rf $bkpdir
+if [ "x$CIMOM_RUNNING" = "x0"  ]; then
+  $CIMOM_INIT start
+fi
+exit $RVAL
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem_3.2.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem_3.2.3.bb
new file mode 100644
index 0000000..ed8ef26
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/openwbem/openwbem_3.2.3.bb
@@ -0,0 +1,112 @@
+SUMMARY = "Web Based Enterprise Management (WBEM) Implementation"
+DESCRIPTION = "OpenWBEM is a set of software components that help facilitate \
+deployment of the Common Information Model (CIM) and Web-Based \
+Enterprise Management (WBEM) technologies of the Distributed Management \
+Task Force (DMTF). \
+ \
+Web-Based Enterprise Management (WBEM) is a set of management and \
+Internet standard technologies developed to unify the management of \
+distributed computing environments. WBEM provides the ability for the \
+industry to deliver a well-integrated set of standards-based management \
+tools, facilitating the exchange of data across otherwise disparate \
+technologies and platforms. \
+ \
+For more information about DMTF and its technologies, visit \
+http://www.dmtf.org/standards. "
+SECTION = "System/Management"
+HOMEPAGE = "http://openwbem.sourceforge.net/"
+
+inherit autotools-brokensep pkgconfig
+
+SOURCE1="novell-openwbem-root-acl.mof"
+SOURCE2="loadmof.sh"
+SOURCE3="rmmof.sh"
+SOURCE4="openwbem-owcimomd.init"
+SOURCE5="openwbem-etc_pam.d_openwbem"
+SOURCE6="openwbem-rpmlintrc"
+
+SRC_URI = " \
+   git://github.com/kkaempf/openwbem.git \
+   file://${SOURCE1} \
+   file://${SOURCE2} \
+   file://${SOURCE3} \
+   file://${SOURCE4} \
+   file://${SOURCE5} \
+   file://${SOURCE6} \
+   file://checkserverkey \
+   file://owcimomd.service \
+"
+SRCREV = "5c688eefc1f8e35a4b1c58529aae5f114c25c2a8"
+S = "${WORKDIR}/git"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM += "file://COPYING;md5=0504a2eb85e01aa92c9efd4125a34660"
+INSANE_SKIP_${PN} = "dev-so"
+DEPENDS += "openssl libpam bash"
+RDEPENDS_${PN} += "bash"
+EXTRA_OECONF = " \
+    --prefix=/usr \
+    --sysconfdir=/etc \
+    --libdir=${libdir} \
+    --localstatedir=/var/lib \
+    --libexecdir=${libdir}/openwbem/bin \
+    --mandir=/usr/share/man \
+    --enable-threads-run-as-user \
+"
+do_configure_prepend() {
+    autoreconf --force --install
+}
+
+do_install() {
+    oe_runmake DESTDIR=${D} install
+    install -d ${D}/etc/openwbem/openwbem.conf.d
+    install -d ${D}/var/adm/fillup-templates
+    install -m 644 etc/sysconfig/daemons/owcimomd ${D}/var/adm/fillup-templates/sysconfig.owcimomd
+    
+    # fix up hardcoded paths
+    sed -i -e 's,/usr/sbin/,${sbindir}/,' ${WORKDIR}/owcimomd.service
+    if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+        install -d ${D}/${systemd_unitdir}/system
+        install -m 644 ${WORKDIR}/owcimomd.service ${D}/${systemd_unitdir}/system
+        install -m 755 ${WORKDIR}/checkserverkey ${D}${sysconfdir}/openwbem/
+    fi
+
+    install -d ${D}/etc/init.d
+    ln -sf ../../etc/init.d/owcimomd ${D}/usr/sbin/rcowcimomd
+    install -m 755 ${WORKDIR}/${SOURCE4} ${D}/etc/init.d/owcimomd
+    install -d ${D}${sbindir}
+    install -d ${D}/usr/bin
+    install -d ${D}/etc/pam.d
+    install -d ${D}/${libdir}/openwbem/cmpiproviders
+    install -m 644 etc/pam.d/openwbem ${D}/etc/pam.d
+    install -d ${D}/${libdir}/openwbem/c++providers
+    install -d ${D}/var/lib/openwbem
+    install -m 755 ${WORKDIR}/${SOURCE2} ${D}/usr/bin/ow-loadmof.sh
+    install -m 755 ${WORKDIR}/${SOURCE3} ${D}/usr/bin/ow-rmmof.sh
+    install -m 644 ${WORKDIR}/${SOURCE5} ${D}/etc/pam.d/openwbem
+
+    MOFPATH=${D}/usr/share/mof/openwbem
+    install -d $MOFPATH
+    mv ${D}/usr/share/openwbem/* $MOFPATH/
+    rmdir ${D}/usr/share/openwbem
+    install -m 644 ${WORKDIR}/${SOURCE1} $MOFPATH/
+
+    touch ${D}/var/lib/openwbem/{classassociation,instances,instassociation,namespaces,schema}.{dat,ndx,lock}
+}
+
+inherit ${@bb.utils.contains('VIRTUAL-RUNTIME_init_manager','systemd','systemd','', d)}
+SYSTEMD_SERVICE_${PN} = "owcimomd.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+FILES_${PN} += " \
+    ${libdir} \
+    ${datadir}/mof \
+    ${systemd_unitdir} \
+"
+FILES_${PN}-dbg += " \
+    ${libdir}/openwbem/c++providers/.debug \
+    ${libdir}/openwbem/provifcs/.debug \
+    ${libdir}/openwbem/bin/openwbem/.debug \
+"
+FILES_${PN}-dev = " \
+    ${includedir} \
+    ${datadir}/aclocal/openwbem.m4 \
+"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/p910nd/p910nd/fix-var-lock.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/p910nd/p910nd/fix-var-lock.patch
new file mode 100644
index 0000000..aa84e18
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/p910nd/p910nd/fix-var-lock.patch
@@ -0,0 +1,30 @@
+Use /var/lock instead of /var/lock/subsys
+
+Upstream-Status: Inappropriate [configuration]
+
+Index: p910nd/p910nd.8
+===================================================================
+--- p910nd.orig/p910nd.8	2011-11-14 22:41:41.904615879 +0100
++++ p910nd/p910nd.8	2011-11-14 22:49:52.299047607 +0100
+@@ -83,7 +83,7 @@
+ .SH "SEE ALSO"
+ printcap(5), hosts_access(5)
+ .SH FILES
+-/var/run/p9100d.pid, /var/lock/subsys/p9100d, /etc/hosts.allow, /etc/hosts.deny
++/var/run/p9100d.pid, /var/lock/p9100d, /etc/hosts.allow, /etc/hosts.deny
+ .SH COPYRIGHT
+ .I p910nd
+ is under the GNU Public License Version 2
+Index: p910nd/p910nd.c
+===================================================================
+--- p910nd.orig/p910nd.c	2011-11-14 22:47:41.986401420 +0100
++++ p910nd/p910nd.c	2011-11-14 22:49:27.274923524 +0100
+@@ -122,7 +122,7 @@
+ #ifdef		LOCKFILE_DIR
+ #define		LOCKFILE	LOCKFILE_DIR "/p910%cd"
+ #else
+-#define		LOCKFILE	"/var/lock/subsys/p910%cd"
++#define		LOCKFILE	"/var/lock/p910%cd"
+ #endif
+ #ifndef		PRINTERFILE
+ #define         PRINTERFILE     "/dev/lp%c"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/p910nd/p910nd_0.95.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/p910nd/p910nd_0.95.bb
new file mode 100644
index 0000000..5ebbb29
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/p910nd/p910nd_0.95.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "A small network printer daemon for embedded situations that passes the job directly to the printer"
+HOMEPAGE = "http://p910nd.sourceforge.net/"
+SECTION = "console/utils"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
+
+PR = "r2"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/p910nd/p910nd-${PV}.tar.bz2 \
+           file://fix-var-lock.patch"
+
+SRC_URI[md5sum] = "c7ac6afdf7730ac8387a8e87198d4491"
+SRC_URI[sha256sum] = "7d78642c86dc247fbdef1ff85c56629dcdc6b2a457c786420299e284fffcb029"
+
+do_compile () {
+    ${CC} ${LDFLAGS} -o p910nd p910nd.c
+}
+
+do_install () {
+    install -D -m 0755 ${S}/p910nd ${D}${sbindir}/p910nd
+    install -D -m 0644 ${S}/p910nd.conf ${D}${sysconfdir}/p910nd.conf
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pam-passwdqc/files/1000patch-219201.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/pam-passwdqc/files/1000patch-219201.patch
new file mode 100644
index 0000000..366d461
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pam-passwdqc/files/1000patch-219201.patch
@@ -0,0 +1,156 @@
+diff -urNp pam_passwdqc-1.0.5-orig/pam_passwdqc.c pam_passwdqc-1.0.5/pam_passwdqc.c
+--- pam_passwdqc-1.0.5-orig/pam_passwdqc.c	2008-02-12 15:11:13.000000000 -0500
++++ pam_passwdqc-1.0.5/pam_passwdqc.c	2009-09-28 12:10:32.171696694 -0400
+@@ -70,6 +70,8 @@ typedef struct {
+ 	passwdqc_params_t qc;
+ 	int flags;
+ 	int retry;
++	char oldpass_prompt_file[FILE_LEN+1];
++	char newpass_prompt_file[FILE_LEN+1];
+ } params_t;
+ 
+ static params_t defaults = {
+@@ -79,10 +81,13 @@ static params_t defaults = {
+ 		3,				/* passphrase_words */
+ 		4,				/* match_length */
+ 		1,				/* similar_deny */
+-		42				/* random_bits */
++		42,				/* random_bits */
++		1				/* firstupper_lastdigit_check */
+ 	},
+ 	F_ENFORCE_EVERYONE,			/* flags */
+-	3					/* retry */
++	3,					/* retry */
++	"",					/* oldpass_prompt_file */
++	""					/* newpass_prompt_file */
+ };
+ 
+ #define PROMPT_OLDPASS \
+@@ -361,6 +366,37 @@ static int parse(params_t *params, pam_h
+ 		if (!strcmp(*argv, "use_authtok")) {
+ 			params->flags |= F_USE_AUTHTOK;
+ 		} else
++		if (!strcmp(*argv, "disable_firstupper_lastdigit_check")) {
++			params->qc.firstupper_lastdigit_check = 0;
++		} else
++		if (!strncmp(*argv, "oldpass_prompt_file=", 20)) {
++			int n;
++			FILE *fp = fopen(*argv + 20, "r");
++			if (fp) {
++				n=fread(params->oldpass_prompt_file, sizeof(char), FILE_LEN, fp);
++				if (0==n || ferror(fp)!=0 ) {
++					memset(params->oldpass_prompt_file, '\0', FILE_LEN+1);
++				}
++				else {
++					feof(fp)? (params->oldpass_prompt_file[n-1]='\0'): (params->oldpass_prompt_file[n]='\0');
++				}
++				fclose(fp);
++			}
++		} else
++		if (!strncmp(*argv, "newpass_prompt_file=", 20)) {
++			int n;
++			FILE *fp = fopen(*argv + 20, "r");
++			if (fp) {
++				n=fread(params->newpass_prompt_file, sizeof(char), FILE_LEN, fp);
++				if (0==n || ferror(fp)!=0 ) {
++					memset(params->newpass_prompt_file, '\0', FILE_LEN+1);
++				}
++				else {
++                                        feof(fp)? (params->newpass_prompt_file[n-1]='\0'): (params->newpass_prompt_file[n]='\0');
++				}
++				fclose(fp);
++			}
++		} else
+ 			break;
+ 		argc--; argv++;
+ 	}
+@@ -406,7 +442,7 @@ PAM_EXTERN int pam_sm_chauthtok(pam_hand
+ 
+ 	if (ask_oldauthtok && !am_root(pamh)) {
+ 		status = converse(pamh, PAM_PROMPT_ECHO_OFF,
+-		    PROMPT_OLDPASS, &resp);
++		    strlen(params.oldpass_prompt_file) ? params.oldpass_prompt_file : PROMPT_OLDPASS, &resp);
+ 
+ 		if (status == PAM_SUCCESS) {
+ 			if (resp && resp->resp) {
+@@ -540,8 +576,7 @@ retry:
+ 		    MESSAGE_RANDOMFAILED : MESSAGE_MISCONFIGURED);
+ 		return PAM_AUTHTOK_ERR;
+ 	}
+-
+-	status = converse(pamh, PAM_PROMPT_ECHO_OFF, PROMPT_NEWPASS1, &resp);
++	status = converse(pamh, PAM_PROMPT_ECHO_OFF, strlen(params.newpass_prompt_file) ? params.newpass_prompt_file : PROMPT_NEWPASS1, &resp);
+ 	if (status == PAM_SUCCESS && (!resp || !resp->resp))
+ 		status = PAM_AUTHTOK_ERR;
+ 
+diff -urNp pam_passwdqc-1.0.5-orig/passwdqc_check.c pam_passwdqc-1.0.5/passwdqc_check.c
+--- pam_passwdqc-1.0.5-orig/passwdqc_check.c	2008-02-12 14:31:52.000000000 -0500
++++ pam_passwdqc-1.0.5/passwdqc_check.c	2009-09-25 22:45:16.080842425 -0400
+@@ -90,10 +90,12 @@ static int is_simple(passwdqc_params_t *
+ 
+ /* Upper case characters and digits used in common ways don't increase the
+  * strength of a password */
+-	c = (unsigned char)newpass[0];
+-	if (uppers && isascii(c) && isupper(c)) uppers--;
+-	c = (unsigned char)newpass[length - 1];
+-	if (digits && isascii(c) && isdigit(c)) digits--;
++	if (params->firstupper_lastdigit_check) {
++		c = (unsigned char)newpass[0];
++		if (uppers && isascii(c) && isupper(c)) uppers--;
++		c = (unsigned char)newpass[length - 1];
++		if (digits && isascii(c) && isdigit(c)) digits--;
++	}
+ 
+ /* Count the number of different character classes we've seen.  We assume
+  * that there are no non-ASCII characters for digits. */
+diff -urNp pam_passwdqc-1.0.5-orig/passwdqc.h pam_passwdqc-1.0.5/passwdqc.h
+--- pam_passwdqc-1.0.5-orig/passwdqc.h	2008-02-12 14:30:00.000000000 -0500
++++ pam_passwdqc-1.0.5/passwdqc.h	2009-09-25 14:08:56.214695858 -0400
+@@ -7,12 +7,15 @@
+ 
+ #include <pwd.h>
+ 
++#define FILE_LEN		4096	/* Max file len = 4096 */
++
+ typedef struct {
+ 	int min[5], max;
+ 	int passphrase_words;
+ 	int match_length;
+ 	int similar_deny;
+ 	int random_bits;
++	int firstupper_lastdigit_check;
+ } passwdqc_params_t;
+ 
+ extern char _passwdqc_wordset_4k[0x1000][6];
+diff -urNp pam_passwdqc-1.0.5-orig/README pam_passwdqc-1.0.5/README
+--- pam_passwdqc-1.0.5-orig/README	2008-02-12 14:43:33.000000000 -0500
++++ pam_passwdqc-1.0.5/README	2009-09-28 12:12:40.251016423 -0400
+@@ -41,9 +41,12 @@ words (see the "passphrase" option below
+ N3 and N4 are used for passwords consisting of characters from three
+ and four character classes, respectively.
+ 
++	disable_firstupper_lastdigit_check	[]
++
+ When calculating the number of character classes, upper-case letters
+ used as the first character and digits used as the last character of a
+-password are not counted.
++password are not counted. To disable this, you can specify 
++"disable_firstupper_lastdigit_check".
+ 
+ In addition to being sufficiently long, passwords are required to
+ contain enough different characters for the character classes and
+@@ -142,6 +145,14 @@ This disables user interaction within pa
+ the only difference between "use_first_pass" and "use_authtok" is that
+ the former is incompatible with "ask_oldauthtok".
+ 
++	oldpass_prompt_file=absolute-file-path	[]
++	newpass_prompt_file=abosulte-file-path	[]
++
++The options "oldpass_prompt_file" and "newpass_prompt_file" can be used
++to override prompts while requesting old password and new password, 
++respectively. The maximum size of the prompt files can be 4096 
++characters at present. If the file size is more than 4096 characters, the
++output will be truncated to 4096 characters.
+ -- 
+ Solar Designer <solar at openwall.com>
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pam-passwdqc/files/7000Makefile-fix-CC.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/pam-passwdqc/files/7000Makefile-fix-CC.patch
new file mode 100644
index 0000000..536fba1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pam-passwdqc/files/7000Makefile-fix-CC.patch
@@ -0,0 +1,11 @@
+--- pam_passwdqc-1.0.5/Makefile.orig	2012-10-02 20:53:55.443592886 +0900
++++ pam_passwdqc-1.0.5/Makefile	2012-10-02 20:54:19.076108001 +0900
+@@ -2,7 +2,7 @@
+ # Copyright (c) 2000-2003,2005 by Solar Designer.  See LICENSE.
+ #
+ 
+-CC = gcc
++#CC = gcc
+ LD = $(CC)
+ RM = rm -f
+ MKDIR = mkdir -p
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pam-passwdqc/pam-passwdqc_1.0.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/pam-passwdqc/pam-passwdqc_1.0.5.bb
new file mode 100644
index 0000000..4e8b7d8
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pam-passwdqc/pam-passwdqc_1.0.5.bb
@@ -0,0 +1,35 @@
+SUMMARY = "Pluggable password quality-control module."
+DESCRIPTION = "pam_passwdqc is a simple password strength checking module for \
+PAM-aware password changing programs, such as passwd(1). In addition \
+to checking regular passwords, it offers support for passphrases and \
+can provide randomly generated passwords. All features are optional \
+and can be (re-)configured without rebuilding."
+
+HOMEPAGE = "http://www.openwall.com/passwdqc/"
+SECTION = "System Environment/Base"
+
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e284d013ef08e66d4737f446c5890550"
+
+SRC_URI = "http://www.openwall.com/pam/modules/pam_passwdqc/pam_passwdqc-1.0.5.tar.gz \
+           file://1000patch-219201.patch \
+           file://7000Makefile-fix-CC.patch \
+          "
+SRC_URI[md5sum] = "cd9c014f736158b1a60384a8e2bdc28a"
+SRC_URI[sha256sum] = "32528ddf7d8219c788b6e7702361611ff16c6340b6dc0f418ff164aadc4a4a88"
+
+
+S = "${WORKDIR}/pam_passwdqc-${PV}"
+
+DEPENDS = "libpam"
+
+EXTRA_OEMAKE = "CFLAGS="${CFLAGS} -Wall -fPIC -DHAVE_SHADOW" \
+                SECUREDIR=${base_libdir}/security"
+
+do_install() {
+	oe_runmake install DESTDIR=${D}
+}
+
+FILES_${PN} += "${base_libdir}/security/pam_passwdqc.so"
+FILES_${PN}-dbg += "${base_libdir}/security/.debug"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.13.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.13.bb
new file mode 100644
index 0000000..cc72549
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.13.bb
@@ -0,0 +1,33 @@
+SUMMARY = "PC/SC Lite smart card framework and applications"
+HOMEPAGE = "http://pcsclite.alioth.debian.org/"
+LICENSE = "BSD & GPLv3+"
+LICENSE_${PN}-dev = "GPLv3+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=bcfbd85230ac3c586fb294c8b627cf32"
+DEPENDS = "udev"
+
+SRC_URI = "https://alioth.debian.org/frs/download.php/file/4126/pcsc-lite-${PV}.tar.bz2"
+SRC_URI[md5sum] = "4dcd22d20a6df8810fac5480cc320b6d"
+SRC_URI[sha256sum] = "f315047e808d63a3262c4a040f77548af2e04d1fd707e0c2759369b926fbbc3b"
+
+
+inherit autotools systemd pkgconfig
+
+EXTRA_OECONF = " \
+    --disable-libusb \
+    --enable-libudev \
+    --enable-usbdropdir=${libdir}/pcsc/drivers \
+"
+
+S = "${WORKDIR}/pcsc-lite-${PV}"
+
+PACKAGES =+ "${PN}-lib"
+
+RRECOMMENDS_${PN} = "ccid"
+
+FILES_${PN}-lib = "${libdir}/lib*${SOLIBS}"
+
+RPROVIDES_${PN} += "${PN}-systemd"
+RREPLACES_${PN} += "${PN}-systemd"
+RCONFLICTS_${PN} += "${PN}-systemd"
+SYSTEMD_SERVICE_${PN} = "pcscd.socket"
+RDEPENDS_${PN} +="python"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/picocom/picocom_1.7.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/picocom/picocom_1.7.bb
new file mode 100644
index 0000000..dbee656
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/picocom/picocom_1.7.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Lightweight and minimal (~20K) dumb-terminal emulation program"
+SECTION = "console/utils"
+LICENSE = "GPLv2+"
+HOMEPAGE = "http://code.google.com/p/picocom/"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=393a5ca445f6965873eca0259a17f833"
+
+SRC_URI = "http://picocom.googlecode.com/files/picocom-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "8eaba1d31407e8408674d6e57af447ef"
+SRC_URI[sha256sum] = "d0f31c8f7a215a76922d30c81a52b9a2348c89e02a84935517002b3bc2c1129e"
+
+CPPFLAGS_append = '-DVERSION_STR=\\"${PV}\\" -DUUCP_LOCK_DIR=\\"/var/lock\\" -DHIGH_BAUD'
+
+do_install () {
+    install -d ${D}${bindir}
+    install -m 0755 ${BPN} pcasc pcxm pcym pczm ${D}${bindir}/
+}
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr/fix_qa-issue_include.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr/fix_qa-issue_include.patch
new file mode 100644
index 0000000..b786633
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr/fix_qa-issue_include.patch
@@ -0,0 +1,18 @@
+libotr: Fix QA-issue where also files from buildhost would be included
+
+Warning was:
+cc1: warning: include location "/usr/include" is unsafe for
+cross-compilation [-Wpoison-system-directories]
+
+Upstream-Status: Pending
+
+Signed-off-by: Jakob Drexel <jake42@rommel.stw.uni-erlangen.de>
+
+--- a/toolkit/Makefile.am	2012-05-03 15:52:22.000000000 +0200
++++ b/toolkit/Makefile.am	2014-01-13 12:12:26.030369357 +0100
+@@ -1,4 +1,4 @@
+-INCLUDES = -I$(includedir) -I../src @LIBGCRYPT_CFLAGS@
++INCLUDES = -I../src @LIBGCRYPT_CFLAGS@
+ 
+ noinst_HEADERS = aes.h ctrmode.h parse.h sesskeys.h readotr.h sha1hmac.h
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr/sepbuild.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr/sepbuild.patch
new file mode 100644
index 0000000..f66e528
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr/sepbuild.patch
@@ -0,0 +1,16 @@
+Fix builds with ${B} != ${S}
+
+Upstream-Status: Pending
+
+RP 2014/7/17
+
+Index: libotr-4.0.0/toolkit/Makefile.am
+===================================================================
+--- libotr-4.0.0.orig/toolkit/Makefile.am	2014-07-16 18:09:59.777858022 +0000
++++ libotr-4.0.0/toolkit/Makefile.am	2014-07-17 06:28:51.359066155 +0000
+@@ -1,4 +1,4 @@
+-INCLUDES = -I../src @LIBGCRYPT_CFLAGS@
++INCLUDES = -I$(top_srcdir)/src @LIBGCRYPT_CFLAGS@
+ 
+ noinst_HEADERS = aes.h ctrmode.h parse.h sesskeys.h readotr.h sha1hmac.h
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr_4.0.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr_4.0.0.bb
new file mode 100644
index 0000000..dd9eeab
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/libotr_4.0.0.bb
@@ -0,0 +1,15 @@
+SUMMARY = "(OTR) Messaging allows you to have private conversations over instant messaging"
+HOMEPAGE = "http://www.cypherpunks.ca/otr/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=92fe174bad6da3763f6e9e9eaff6df24"
+DEPENDS = "libgcrypt libgpg-error"
+
+SRC_URI = "http://www.cypherpunks.ca/otr/${BP}.tar.gz \
+           file://fix_qa-issue_include.patch \
+           file://sepbuild.patch \
+"
+
+SRC_URI[md5sum] = "00979dca82d70383fcd1b01f3974363c"
+SRC_URI[sha256sum] = "3f911994409898e74527730745ef35ed75c352c695a1822a677a34b2cf0293b4"
+
+inherit autotools pkgconfig
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr/ignore_extra-portability_warnings.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr/ignore_extra-portability_warnings.patch
new file mode 100644
index 0000000..db0ad87
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr/ignore_extra-portability_warnings.patch
@@ -0,0 +1,19 @@
+pidgin-otr: Silence no-extra-portability warnings
+
+Make it build with OE, was not building with warning turned on
+
+Upstream-Status: Pending
+
+Signed-off-by: Jakob Drexel <jake42@rommel.stw.uni-erlangen.de>
+
+--- a/configure.ac	2012-09-01 17:03:19.000000000 +0200
++++ b/configure.ac	2014-01-12 21:59:24.920300215 +0100
+@@ -4,7 +4,7 @@
+ 
+ AM_CONFIG_HEADER(config.h)
+ 
+-AM_INIT_AUTOMAKE([-Wall -Werror])
++AM_INIT_AUTOMAKE([-Wall -Werror -Wno-extra-portability])
+ 
+ AC_PROG_CC
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr_4.0.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr_4.0.0.bb
new file mode 100644
index 0000000..b884b5a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-otr_4.0.0.bb
@@ -0,0 +1,21 @@
+SUMMARY = "(OTR) Messaging allows you to have private conversations over instant messaging"
+HOMEPAGE = "http://www.cypherpunks.ca/otr/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=92fe174bad6da3763f6e9e9eaff6df24"
+DEPENDS = "libgcrypt libotr pidgin intltool-native"
+
+PNBLACKLIST[pidgin-otr] ?= "depends on blacklisted pidgin"
+
+SRC_URI = "http://www.cypherpunks.ca/otr/${BP}.tar.gz \
+           file://ignore_extra-portability_warnings.patch \
+"
+
+SRC_URI[md5sum] = "eadb953376acc474e56041d4c12aa2c8"
+SRC_URI[sha256sum] = "d56b3f092dbe9ee6597641c7d2dd294884dc04ba47aaf4ec571cd54977df4691"
+
+
+FILES_${PN} = "${libdir}/pidgin/*"
+FILES_${PN}-dbg = "${libdir}/pidgin/.debug"
+FILES_${PN}-dbg += "${libdir}/pidgin/.debug/pidgin-otr.so"
+FILES_${PN}-dbg += "/usr/src/debug/pidgin-otr/${PV}-${PR}/${P}/*"
+inherit autotools pkgconfig
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/pidgin-cross-python-265.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/pidgin-cross-python-265.patch
new file mode 100644
index 0000000..72bf4ed
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/pidgin-cross-python-265.patch
@@ -0,0 +1,34 @@
+Use pkg-config instead of ${PYTHON}-config to find python
+
+diff -uNr pidgin-2.10.12.orig/configure.ac pidgin-2.10.12/configure.ac
+--- pidgin-2.10.12.orig/configure.ac	2016-01-01 00:19:40.000000000 +0100
++++ pidgin-2.10.12/configure.ac	2016-05-05 16:55:13.258945925 +0200
+@@ -1585,20 +1585,15 @@
+ dnl Check for Python headers (currently useful only for libgnt)
+ dnl (Thanks to XChat)
+ if test "x$enable_consoleui" = "xyes" -a ! -z "$PYTHON" -a x"$PYTHON" != x"no" ; then
+-	AC_MSG_CHECKING(for Python compile flags)
+-	if test -f ${PYTHON}-config; then
+-		PY_CFLAGS=`${PYTHON}-config --includes`
+-		PY_LIBS=`${PYTHON}-config --libs`
+-		AC_DEFINE(USE_PYTHON, [1], [Define if python headers are available.])
+-		AC_MSG_RESULT(ok)
+-	else
+-		AC_MSG_RESULT([Cannot find ${PYTHON}-config])
+-		PY_CFLAGS=""
+-		PY_LIBS=""
+-	fi
++        AC_MSG_CHECKING(for Python compile flags)
++        PKG_CHECK_MODULES(PY, python, [
++                AC_SUBST(PY_CFLAGS)
++                AC_SUBST(PY_LIBS)
++        ], [
++                AC_MSG_RESULT(no)
++                AC_MSG_ERROR([Can't find python])
++        ])
+ fi
+-AC_SUBST(PY_CFLAGS)
+-AC_SUBST(PY_LIBS)
+ 
+ dnl #######################################################################
+ dnl # Check for Mono support
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/purple-OE-branding-25.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/purple-OE-branding-25.patch
new file mode 100644
index 0000000..293ef70
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/purple-OE-branding-25.patch
@@ -0,0 +1,16 @@
+Index: pidgin-2.5.0/libpurple/protocols/irc/irc.h
+===================================================================
+--- pidgin-2.5.0.orig/libpurple/protocols/irc/irc.h	2008-08-19 01:53:38.000000000 +0000
++++ pidgin-2.5.0/libpurple/protocols/irc/irc.h	2008-08-27 11:15:58.000000000 +0000
+@@ -36,9 +36,9 @@
+ 
+ #define IRC_DEFAULT_CHARSET "UTF-8"
+ #define IRC_DEFAULT_AUTODETECT FALSE
+-#define IRC_DEFAULT_ALIAS "purple"
++#define IRC_DEFAULT_ALIAS "OE-user"
+ 
+-#define IRC_DEFAULT_QUIT "Leaving."
++#define IRC_DEFAULT_QUIT "Powered by OE: www.openembedded.org"
+ 
+ #define IRC_INITIAL_BUFSIZE 1024
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/sanitize-configure.ac.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/sanitize-configure.ac.patch
new file mode 100644
index 0000000..a77d64f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin/sanitize-configure.ac.patch
@@ -0,0 +1,33 @@
+--- /tmp/configure.ac	2007-05-08 17:29:02.000000000 +0200
++++ pidgin-2.0.0/configure.ac	2007-05-08 17:30:30.325251000 +0200
+@@ -472,7 +472,7 @@
+ 	if test "x$enable_consoleui" = "xyes"; then
+ 		dnl # Some distros put the headers in ncursesw/, some don't
+ 		found_ncurses_h=no
+-		for location in $ac_ncurses_includes $NCURSES_HEADERS /usr/include/ncursesw /usr/include
++		for location in $ac_ncurses_includes $NCURSES_HEADERS 
+ 		do
+ 			f="$location/ncurses.h"
+ 			AC_CHECK_HEADER($f,[
+@@ -1860,10 +1860,6 @@
+ 			KRB4_CFLAGS="$KRB4_CFLAGS -I${kerberos}/include/kerberosIV"
+ 		fi
+ 		KRB4_LDFLAGS="-L${kerberos}/lib"
+-	elif test -d /usr/local/include/kerberosIV ; then
+-		KRB4_CFLAGS="-I/usr/local/include/kerberosIV"
+-	elif test -d /usr/include/kerberosIV ; then
+-		KRB4_CFLAGS="-I/usr/include/kerberosIV"
+ 	fi
+ 	AC_DEFINE(ZEPHYR_USES_KERBEROS, 1, [Define if kerberos should be used in Zephyr.])
+ 
+@@ -1896,10 +1892,6 @@
+ 		ZEPHYR_LDFLAGS="-L${zephyr}/lib"
+ 	elif test -d /usr/athena/include/zephyr ; then
+ 		ZEPHYR_CFLAGS="-I/usr/athena/include"
+-	elif test -d /usr/include/zephyr ; then
+-		ZEPHYR_CFLAGS="-I/usr/include"
+-	elif test -d /usr/local/include/zephyr ; then
+-		ZEPHYR_CFLAGS="-I/usr/local/include"
+ 	fi
+ 	AC_DEFINE(LIBZEPHYR_EXT, 1 , [Define if external libzephyr should be used.])
+ 	AM_CONDITIONAL(EXTERNAL_LIBZEPHYR, test "x$zephyr" != "xno")
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.10.12.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.10.12.bb
new file mode 100644
index 0000000..cd46140
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.10.12.bb
@@ -0,0 +1,120 @@
+DESCRIPTION = "multi-protocol instant messaging client"
+SECTION = "x11/network"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+DEPENDS = "python virtual/libintl intltool-native libxml2 gconf"
+
+inherit autotools gettext pkgconfig gconf perlnative
+
+SRC_URI = "\
+    ${SOURCEFORGE_MIRROR}/pidgin/pidgin-${PV}.tar.bz2 \
+    file://sanitize-configure.ac.patch \
+    file://purple-OE-branding-25.patch \
+    file://pidgin-cross-python-265.patch \
+"
+
+SRC_URI[md5sum] = "14e0f5cfb2ed065e4dc80391a806ac76"
+SRC_URI[sha256sum] = "2c7523f0fefe89749c03b2b738ab9f7bd186da435be4762f1487eee31e77ffdd"
+
+PACKAGECONFIG ??= "gnutls consoleui avahi dbus idn \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 gtk startup-notification', '', d)} \
+"
+PACKAGECONFIG[farsight2] = "--enable-farstream,--disable-farstream,farsight2"
+#  --disable-gstreamer     compile without GStreamer audio support
+#  --disable-gstreamer-video
+#                          compile without GStreamer 1.0 Video Overlay support
+#  --disable-gstreamer-interfaces
+#                          compile without GStreamer 0.10 interface support
+#  --with-gstreamer=<version>
+#                          compile with GStreamer 0.10 or 1.0 interface
+PACKAGECONFIG[gstreamer] = "--enable-gstreamer,--disable-gstreamer,gstreamer"
+PACKAGECONFIG[vv] = "--enable-vv,--disable-vv,gstreamer"
+PACKAGECONFIG[idn] = "--enable-idn,--disable-idn,libidn"
+PACKAGECONFIG[gtk] = "--enable-gtkui,--disable-gtkui,gtk+"
+PACKAGECONFIG[x11] = "--with-x=yes --x-includes=${STAGING_INCDIR} --x-libraries=${STAGING_LIBDIR},--with-x=no,virtual/libx11"
+PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-startup-notification,startup-notification"
+PACKAGECONFIG[consoleui] = "--enable-consoleui --with-ncurses-headers=${STAGING_INCDIR},--disable-consoleui,ncurses"
+PACKAGECONFIG[gnutls] = "--enable-gnutls --with-gnutls-includes=${STAGING_INCDIR} --with-gnutls-libs=${STAGING_LIBDIR},--disable-gnutls,gnutls"
+PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus dbus-glib"
+PACKAGECONFIG[avahi] = "--enable-avahi,--disable-avahi,avahi"
+
+EXTRA_OECONF = " \
+    --disable-perl \
+    --disable-tcl \
+    --disable-gevolution \
+    --disable-schemas-install \
+    --disable-gtkspell \
+    --disable-meanwhile \
+    --disable-nm \
+    --disable-screensaver \
+    --enable-nss=no \
+"
+
+do_configure_prepend() {
+    touch ${S}/po/Makefile
+    sed -i "s#PY_VERSION=`$PYTHON -c 'import sys ; print sys.version[0:3]'`#PY_VERSION=${PYTHON_BASEVERSION}#g" ${S}/configure.ac
+}
+
+OE_LT_RPATH_ALLOW=":${libdir}/purple-2:"
+OE_LT_RPATH_ALLOW[export]="1"
+
+PACKAGES =+ "libpurple-dbg libpurple-dev libpurple libgnt-dbg libgnt libgnt-dev finch-dbg finch finch-dev ${PN}-data"
+
+LEAD_SONAME = "libpurple.so.0"
+FILES_libpurple     = "${libdir}/libpurple*.so.* ${libdir}/purple-2 ${bindir}/purple-* ${sysconfdir}/gconf/schemas/purple* ${datadir}/purple/ca-certs"
+FILES_libpurple-dev = "${libdir}/libpurple*.la \
+                       ${libdir}/libpurple*.so \
+                       ${libdir}/purple-2/*.la \
+                       ${libdir}/purple-2/libjabber.so \
+                       ${libdir}/purple-2/liboscar.so \
+                       ${libdir}/purple-2/libymsg.so \
+                       ${datadir}/aclocal"
+FILES_libpurple-dbg += "${libdir}/.debug/libpurple* \
+                        ${libdir}/purple-2/.debug"
+FILES_libgnt         = "${libdir}/libgnt.so.* ${libdir}/gnt/*.so" 
+FILES_libgnt-dev     = "${libdir}/gnt/*.la" 
+FILES_libgnt-dbg     = "${libdir}/gnt/.debug"
+FILES_finch          = "${bindir}/finch"
+FILES_finch-dev      = "${libdir}/finch/*.la"
+FILES_finch-dbg      = "${bindir}/.debug/finch \
+                        ${libdir}/finch/.debug"
+
+FILES_${PN} = "${bindir} ${datadir}/${PN} ${libdir}/${PN}/*.so \
+           ${datadir}/applications"
+RRECOMMENDS_${PN} = "${PN}-data libpurple-plugin-ssl-gnutls libpurple-protocol-irc libpurple-protocol-xmpp"
+
+FILES_${PN}-data = "${datadir}/pixmaps ${datadir}/sounds ${datadir}/icons ${datadir}/appdata"
+FILES_${PN}-dev += "${libdir}/${PN}/*.la"
+
+PACKAGES_DYNAMIC += "^libpurple-protocol-.* ^libpurple-plugin-.* ^pidgin-plugin-.* ^finch-plugin-.*"
+
+python populate_packages_prepend () {
+    pidgroot = d.expand('${libdir}/pidgin')
+    purple   = d.expand('${libdir}/purple-2')
+    finch    = d.expand('${libdir}/finch')
+
+    do_split_packages(d, pidgroot, '^([^l][^i][^b].*)\.so$',
+        output_pattern='pidgin-plugin-%s',
+        description='Pidgin plugin %s',
+        prepend=True, extra_depends='')
+
+    do_split_packages(d, purple, '^lib(.*)\.so$',
+        output_pattern='libpurple-protocol-%s',
+        description='Libpurple protocol plugin for %s',
+        prepend=True, extra_depends='')
+
+    do_split_packages(d, purple, '^(ssl-.*)\.so$',
+        output_pattern='libpurple-plugin-%s',
+        description='libpurple plugin %s',
+        prepend=True, extra_depends='libpurple-plugin-ssl')
+
+    do_split_packages(d, purple, '^([^l][^i][^b].*)\.so$',
+        output_pattern='libpurple-plugin-%s',
+        description='libpurple plugin %s',
+        prepend=True, extra_depends='')
+
+    do_split_packages(d, finch, '^([^l][^i][^b].*)\.so$',
+        output_pattern='finch-plugin-%s',
+        description='Finch plugin %s',
+        prepend=True, extra_depends='')
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pkcs11-helper/pkcs11-helper_1.11.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/pkcs11-helper/pkcs11-helper_1.11.bb
new file mode 100644
index 0000000..db71bd0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pkcs11-helper/pkcs11-helper_1.11.bb
@@ -0,0 +1,29 @@
+SUMMARY = "A library for using PKCS"
+DESCRIPTION = "pkcs11-helper is a library that simplifies the interaction with PKCS \
+providers for end-user applications using a simple API and optional OpenSSL \
+engine. The library allows using multiple PKCS enumerating available token \
+certificates, or selecting a certificate directly by serialized id, handling \
+card removal and card insert events, handling card ie-insert to a different \
+slot, supporting session expiration and much more all using a simple API."
+
+HOMEPAGE = "http://www.opensc-project.org/pkcs11-helper/"
+SECTION = "Development/Libraries"
+
+LICENSE = "GPLv2 & BSD"
+LIC_FILES_CHKSUM = " \
+    file://COPYING;md5=4948810631bcac142af53d32df5b6ee1 \
+    file://COPYING.GPL;md5=8a71d0475d08eee76d8b6d0c6dbec543 \
+    file://COPYING.BSD;md5=f79f90ea7a106796af80b5d05f1f8da1 \
+"
+SRC_URI = "git://github.com/OpenSC/${BPN}.git"
+SRC_URI[md5sum] = "9f62af9f475901b89355266141306673"
+SRC_URI[sha256sum] = "494ec59c93e7c56c528f335d9353849e2e7c94a6b1b41c89604694e738113386"
+
+S = "${WORKDIR}/git"
+SRCREV = "e7adf8f35be232a4f04c53b4ac409be52792093e"
+
+DEPENDS = "zlib nettle gnutls gmp openssl nss nspr"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--disable-static"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pngcheck/pngcheck_2.3.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/pngcheck/pngcheck_2.3.0.bb
new file mode 100644
index 0000000..d523b7a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pngcheck/pngcheck_2.3.0.bb
@@ -0,0 +1,23 @@
+SUMMARY = "pngcheck verifies the integrity of PNG, JNG and MNG files"
+HOMEPAGE = "http://www.libpng.org/pub/png/apps/pngcheck.html"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://gpl/COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+DEPENDS = "zlib libpng"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/project/png-mng/${BPN}/${PV}/${BPN}-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "980bd6d9a3830fdce746d7fe3c9166ee"
+SRC_URI[sha256sum] = "77f0a039ac64df55fbd06af6f872fdbad4f639d009bbb5cd5cbe4db25690f35f"
+
+EXTRA_OEMAKE = "-e MAKEFLAGS="
+
+do_compile() {
+    oe_runmake -f Makefile.unx INCS=-I${STAGING_DIR_HOST}${incdir} LIBS=${STAGING_DIR_HOST}${libdir}/libz.a
+}
+
+do_install() {
+    install -d ${D}${bindir}
+    install pngcheck ${D}${bindir}
+    install png-fix-IDAT-windowsize ${D}${bindir}
+    install pngsplit ${D}${bindir}
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/poco/poco/run-ptest b/import-layers/meta-openembedded/meta-oe/recipes-support/poco/poco/run-ptest
new file mode 100644
index 0000000..c479f7a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/poco/poco/run-ptest
@@ -0,0 +1,9 @@
+#!/bin/sh
+while read runner; do
+  pushd . >/dev/null
+  cd bin
+  echo Testing $runner
+  ./$runner-testrunner -all
+  popd >/dev/null
+done < testrunners
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/poco/poco_1.7.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/poco/poco_1.7.1.bb
new file mode 100644
index 0000000..135d2aa
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/poco/poco_1.7.1.bb
@@ -0,0 +1,107 @@
+SUMMARY = "Modern, powerful open source cross-platform C++ class libraries"
+DESCRIPTION = "Modern, powerful open source C++ class libraries and frameworks for building network- and internet-based applications that run on desktop, server, mobile and embedded systems."
+SECTION = "libs"
+HOMEPAGE = "http://pocoproject.org/"
+LICENSE = "BSL-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4267f48fc738f50380cbeeb76f95cebc"
+
+# These dependencies are required by Foundation
+DEPENDS = "libpcre zlib"
+
+inherit cmake ptest
+
+BBCLASSEXTEND = "native"
+
+SRC_URI = " \
+    https://github.com/pocoproject/poco/archive/poco-${PV}-release.tar.gz \
+    file://run-ptest \
+   "
+
+SRC_URI[md5sum] = "a4b755d47303b20a0e2586f281d05a36"
+SRC_URI[sha256sum] = "6dbbc2018912ad9af6af96f605933ed91354a1e7423e5dbd04d8e9a2b2d15c05"
+
+S = "${WORKDIR}/poco-poco-${PV}-release"
+
+EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=RelWithDebInfo -DPOCO_UNBUNDLED=ON \
+                 ${@bb.utils.contains('PTEST_ENABLED', '1', '-DENABLE_TESTS=ON ', '', d)}"
+
+# For the native build we want to use the bundled version
+EXTRA_OECMAKE_append_class-native = " -DPOCO_UNBUNDLED=OFF"
+
+# do not use rpath
+EXTRA_OECMAKE_append = " -DCMAKE_SKIP_RPATH=ON"
+
+# By default the most commonly used poco components are built
+# Foundation is built anyway and doesn't need to be listed explicitly
+# these don't have dependencies outside oe-core
+PACKAGECONFIG ??= "XML JSON MongoDB PDF Util Net NetSSL Crypto Data DataSQLite Zip"
+
+PACKAGECONFIG[XML] = "-DENABLE_XML=ON,-DENABLE_XML=OFF,expat"
+PACKAGECONFIG[JSON] = "-DENABLE_JSON=ON,-DENABLE_JSON=OFF"
+PACKAGECONFIG[MongoDB] = "-DENABLE_MONGODB=ON,-DENABLE_MONGODB=OFF"
+PACKAGECONFIG[PDF] = "-DENABLE_PDF=ON,-DENABLE_PDF=OFF,zlib"
+PACKAGECONFIG[Util] = "-DENABLE_UTIL=ON,-DENABLE_UTIL=OFF"
+PACKAGECONFIG[Net] = "-DENABLE_NET=ON,-DENABLE_NET=OFF"
+PACKAGECONFIG[NetSSL] = "-DENABLE_NETSSL=ON,-DENABLE_NETSSL=OFF,openssl"
+PACKAGECONFIG[Crypto] = "-DENABLE_CRYPTO=ON,-DENABLE_CRYPTO=OFF,openssl"
+PACKAGECONFIG[Data] = "-DENABLE_DATA=ON,-DENABLE_DATA=OFF"
+PACKAGECONFIG[DataSQLite] = "-DENABLE_DATA_SQLITE=ON,-DENABLE_DATA_SQLITE=OFF,sqlite3"
+PACKAGECONFIG[Zip] = "-DENABLE_ZIP=ON,-DENABLE_ZIP=OFF"
+
+# Additional components not build by default,
+# they might have dependencies not included in oe-core
+# or they don't work on all architectures
+PACKAGECONFIG[mod_poco] = "-DENABLE_APACHECONNECTOR=ON,-DENABLE_APACHECONNECTOR=OFF,apr apache2"
+PACKAGECONFIG[CppParser] = "-DENABLE_CPPPARSER=ON,-DENABLE_CPPPARSER=OFF"
+PACKAGECONFIG[DataMySQL] = "-DENABLE_DATA_MYSQL=ON,-DENABLE_DATA_MYSQL=OFF,mariadb"
+PACKAGECONFIG[DataODBC] = "-DENABLE_DATA_ODBC=ON,-DENABLE_DATA_ODBC=OFF,libiodbc"
+PACKAGECONFIG[PageCompiler] = "-DENABLE_PAGECOMPILER=ON,-DENABLE_PAGECOMPILER=OFF"
+PACKAGECONFIG[PageCompilerFile2Page] = "-DENABLE_PAGECOMPILER_FILE2PAGE=ON,-DENABLE_PAGECOMPILER_FILE2PAGE=OFF"
+PACKAGECONFIG[SevenZip] = "-DENABLE_SEVENZIP=ON,-DENABLE_SEVENZIP=OFF"
+
+# Make a package for each library
+PACKAGES = "${PN}-dbg ${POCO_PACKAGES}"
+python __anonymous () {
+    packages = []
+    testrunners = []
+    components = d.getVar("PACKAGECONFIG", True).split()
+    components.append("Foundation")
+    for lib in components:
+        pkg = ("poco-%s" % lib.lower()).replace("_","")
+        packages.append(pkg)
+        if not d.getVar("FILES_%s" % pkg, True):
+            d.setVar("FILES_%s" % pkg, "${libdir}/libPoco%s.so.*" % lib)
+        testrunners.append("%s" % lib)
+
+    d.setVar("POCO_PACKAGES", " ".join(packages))
+    d.setVar("POCO_TESTRUNNERS", "\n".join(testrunners))
+}
+
+# "poco" is a metapackage which pulls in all Poco components
+PACKAGES += "${PN}"
+RRECOMMENDS_${PN} += "${POCO_PACKAGES}"
+RRECOMMENDS_${PN}_class-native = ""
+ALLOW_EMPTY_${PN} = "1"
+
+# -dev last to pick up the remaining stuff
+PACKAGES += "${PN}-dev ${PN}-staticdev"
+FILES_${PN}-dev = "${includedir} ${libdir}/libPoco*.so ${libdir}/cmake"
+FILES_${PN}-staticdev = "${libdir}/libPoco*.a"
+
+# ptest support
+FILES_${PN}-dbg += "${PTEST_PATH}/bin/.debug"
+
+# cppunit is only built if tests are enabled
+PACKAGES += "${PN}-cppunit"
+FILES_${PN}-cppunit += "${libdir}/libCppUnit.so*"
+ALLOW_EMPTY_${PN}-cppunit = "1"
+
+RDEPENDS_${PN}-ptest += "${PN}-cppunit"
+
+do_install_ptest () {
+       cp -rf ${B}/bin/ ${D}${PTEST_PATH}
+       cp -f ${B}/lib/libCppUnit.so* ${D}${libdir}
+       cp -rf ${B}/*/testsuite/data ${D}${PTEST_PATH}/bin/
+       find "${D}${PTEST_PATH}" -executable -exec chrpath -d {} \;
+       echo "${POCO_TESTRUNNERS}" > "${D}${PTEST_PATH}/testrunners"
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler-data_0.4.7.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler-data_0.4.7.bb
new file mode 100644
index 0000000..e530a48
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler-data_0.4.7.bb
@@ -0,0 +1,36 @@
+SUMMARY = "Encoding files for Poppler"
+DESCRIPTION = "Encoding files for use with poppler that enable poppler to \
+               correctly render CJK and Cyrrilic."
+LICENSE = "BSD & GPLv2 & GPLv3+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4870b98343f0bbb25fa43b9d2ba59448 \
+                    file://COPYING.adobe;md5=63c6a8a9df204c00461fa5f163d8a663 \
+                    file://COPYING.gpl2;md5=751419260aa954499f7abaabaa882bbe \
+"
+
+inherit allarch
+
+INHIBIT_DEFAULT_DEPS = "1"
+
+CMAP_RESOURCES_BASE = "https://github.com/adobe-type-tools/cmap-resources/raw/0561ebca035813ed04c3485bca636a0aa7abdc1d/cmapresources_identity-0/CMap"
+
+SRC_URI = "http://poppler.freedesktop.org/${BP}.tar.gz \
+           ${CMAP_RESOURCES_BASE}/Identity-H;name=idh \
+           ${CMAP_RESOURCES_BASE}/Identity-V;name=idv"
+
+SRC_URI[md5sum] = "636a8f2b9f6df9e7ced8ec0946961eaf"
+SRC_URI[sha256sum] = "e752b0d88a7aba54574152143e7bf76436a7ef51977c55d6bd9a48dccde3a7de"
+SRC_URI[idh.md5sum] = "009c93cf0141ab7bd6acb7eea14306cc"
+SRC_URI[idh.sha256sum] = "ae702c203a82ea124e9b96590f821db6fbf8754e2c4547a9dba0e82f94739e95"
+SRC_URI[idv.md5sum] = "2f32a45d43d001c26eeac6b878855fbf"
+SRC_URI[idv.sha256sum] = "89a85daf7031e93c883e76b9168a226dfd585bf5506e9e1956772163f15cb082"
+
+do_compile() {
+}
+
+do_install() {
+    oe_runmake install DESTDIR=${D} prefix=${prefix} datadir=${datadir}
+    install -d ${D}${datadir}/poppler/cMap
+    install -m644 ${WORKDIR}/Identity-* ${D}${datadir}/poppler/cMap/
+}
+
+FILES_${PN} += "${datadir}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-Compile-with-C-11-compilers-that-don-t-define-isinfi.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-Compile-with-C-11-compilers-that-don-t-define-isinfi.patch
new file mode 100644
index 0000000..d5c34a6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-Compile-with-C-11-compilers-that-don-t-define-isinfi.patch
@@ -0,0 +1,39 @@
+From a8e3399487258e53df0fd4a79c570c8d71188bed Mon Sep 17 00:00:00 2001
+From: Takahiro Hashimoto <kenya888.en@gmail.com>
+Date: Wed, 27 Apr 2016 00:16:52 +0200
+Subject: [PATCH] Compile with C++11 compilers that don't define isinfinite
+
+Bug #94761
+---
+ poppler/SplashOutputDev.cc | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/poppler/SplashOutputDev.cc b/poppler/SplashOutputDev.cc
+index 13d090c..0e50702 100644
+--- a/poppler/SplashOutputDev.cc
++++ b/poppler/SplashOutputDev.cc
+@@ -36,6 +36,7 @@
+ // Copyright (C) 2014 Richard PALO <richard@netbsd.org>
+ // Copyright (C) 2015 Tamas Szekeres <szekerest@gmail.com>
+ // Copyright (C) 2015 Kenji Uno <ku@digitaldolphins.jp>
++// Copyright (C) 2016 Takahiro Hashimoto <kenya888.en@gmail.com>
+ //
+ // To see a description of the changes please see the Changelog file that
+ // came with your tarball or type make ChangeLog if you are building from git
+@@ -94,6 +95,13 @@ extern "C" int unlink(char *filename);
+ #endif
+ #endif
+ 
++#if __cplusplus > 199711L
++#include <cmath>
++#ifndef isfinite
++#define isfinite(x) std::isfinite(x)
++#endif
++#endif
++
+ static inline void convertGfxColor(SplashColorPtr dest,
+                                    SplashColorMode colorMode,
+                                    GfxColorSpace *colorSpace,
+-- 
+2.8.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-add-manadatory-options-to-find-qt4-qt5-moc.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-add-manadatory-options-to-find-qt4-qt5-moc.patch
new file mode 100644
index 0000000..560b073
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-add-manadatory-options-to-find-qt4-qt5-moc.patch
@@ -0,0 +1,91 @@
+From 91b6275f0e91c25beb040b4ef9484053ae305d86 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Tue, 26 May 2015 12:45:47 +0200
+Subject: [PATCH] add manadatory options to find qt4/qt5 moc
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+---
+ configure.ac | 55 ++++++++-----------------------------------------------
+ 1 file changed, 8 insertions(+), 47 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 67599c0..40fa596 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -622,25 +622,10 @@ AC_SUBST(POPPLER_QT4_LIBS)
+ AC_SUBST(POPPLER_QT4_TEST_LIBS)
+ 
+ if test x$enable_poppler_qt4 = xyes; then
+-  AC_CHECK_TOOL(MOCQT4, moc)
+-  AC_MSG_CHECKING([for Qt4 moc])
+-  mocversion=`$MOCQT4 -v 2>&1`
+-  mocversiongrep=`echo $mocversion | grep "Qt 4"`
+-  if test x"$mocversiongrep" != x"$mocversion"; then
+-    AC_MSG_RESULT([no])
+-    # moc was not the qt4 one, try with moc-qt4
+-    AC_CHECK_TOOL(MOCQT42, moc-qt4)
+-    AC_MSG_CHECKING([for Qt4 moc-qt4])
+-    mocversion=`$MOCQT42 -v 2>&1`
+-    mocversiongrep=`echo $mocversion | grep "Qt 4"`
+-    if test x"$mocversiongrep" != x"$mocversion"; then
+-      # no valid moc found
+-      enable_poppler_qt4=no;
+-      MOCQT4="not found"
+-    else
+-      MOCQT4=$MOCQT42
+-    fi
+-  fi
++  AC_ARG_WITH([moc-qt4],
++              AS_HELP_STRING([--with-moc-qt4], [Set location of qt4 moc]),
++              [MOCQT4=$withval]
++  )
+   AC_SUBST(MOCQT4)
+   AC_MSG_RESULT([$MOCQT4])
+ fi
+@@ -679,34 +664,10 @@ AC_SUBST(POPPLER_QT5_LIBS)
+ AC_SUBST(POPPLER_QT5_TEST_LIBS)
+ 
+ if test x$enable_poppler_qt5 = xyes; then
+-  AC_CHECK_TOOL(MOCQT5, moc)
+-  AC_MSG_CHECKING([for Qt5 moc])
+-  mocversion=`$MOCQT5 -v 2>&1`
+-  mocversiongrep=`echo $mocversion | grep "Qt 5\|moc 5"`
+-  if test x"$mocversiongrep" != x"$mocversion"; then
+-    AC_MSG_RESULT([no])
+-    # moc was not the qt5 one, try with moc-qt5
+-    AC_CHECK_TOOL(MOCQT52, moc-qt5)
+-    AC_MSG_CHECKING([for Qt5 moc-qt5])
+-    mocversion=`$MOCQT52 -v 2>&1`
+-    mocversiongrep=`echo $mocversion | grep "Qt 5\|moc-qt5 5\|moc 5"`
+-    if test x"$mocversiongrep" != x"$mocversion"; then
+-      AC_CHECK_TOOL(QTCHOOSER, qtchooser)
+-      AC_MSG_CHECKING([for qtchooser])
+-      qt5tooldir=`QT_SELECT=qt5 qtchooser -print-env | grep QTTOOLDIR | cut -d '=' -f 2 | cut -d \" -f 2`
+-      mocversion=`$qt5tooldir/moc -v 2>&1`
+-      mocversiongrep=`echo $mocversion | grep "Qt 5\|moc 5"`
+-      if test x"$mocversiongrep" != x"$mocversion"; then
+-        # no valid moc found
+-        enable_poppler_qt5=no;
+-        MOCQT5="not found"
+-      else
+-        MOCQT5=$qt5tooldir/moc
+-      fi
+-    else
+-      MOCQT5=$MOCQT52
+-    fi
+-  fi
++  AC_ARG_WITH([moc-qt5],
++              AS_HELP_STRING([--with-moc-qt5], [Set location of qt5 moc]),
++              [MOCQT5=$withval]
++  )
+   AC_SUBST(MOCQT5)
+   AC_MSG_RESULT([$MOCQT5])
+ fi
+-- 
+1.9.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.41.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.41.0.bb
new file mode 100644
index 0000000..f7cc076
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.41.0.bb
@@ -0,0 +1,55 @@
+SUMMARY = "Poppler is a PDF rendering library based on the xpdf-3.0 code base"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+SRC_URI = " \
+    http://poppler.freedesktop.org/${BP}.tar.xz \
+    file://0001-add-manadatory-options-to-find-qt4-qt5-moc.patch \
+    file://0001-Compile-with-C-11-compilers-that-don-t-define-isinfi.patch \
+"
+SRC_URI[md5sum] = "849a8bd6af5794efb961b70418414e5a"
+SRC_URI[sha256sum] = "420abaab63caed9e1ee28964a0ba216d1979506726164bc99ad5ade289192a1b"
+
+DEPENDS = "fontconfig zlib cairo lcms"
+
+inherit autotools pkgconfig gtk-doc gobject-introspection
+
+PACKAGECONFIG ??= "jpeg openjpeg png tiff ${@bb.utils.contains('BBFILE_COLLECTIONS', 'qt5-layer', 'qt5', '', d)}"
+PACKAGECONFIG[jpeg] = "--enable-libjpeg,--disable-libjpeg,jpeg"
+PACKAGECONFIG[png] = "--enable-libpng,--disable-libpng,libpng"
+PACKAGECONFIG[tiff] = "--enable-libtiff,--disable-libtiff,tiff"
+PACKAGECONFIG[curl] = "--enable-libcurl,--disable-libcurl,curl"
+PACKAGECONFIG[openjpeg] = "--enable-libopenjpeg=openjpeg2,--disable-libopenjpeg,openjpeg"
+PACKAGECONFIG[qt5] = "--enable-poppler-qt5 --with-moc-qt5=${STAGING_BINDIR_NATIVE}/qt5/moc,--disable-poppler-qt5,qtbase"
+PACKAGECONFIG[qt4e] = "--enable-poppler-qt4 --with-moc-qt4=${STAGING_BINDIR_NATIVE}/moc4,--disable-poppler-qt4,qt4-embedded"
+
+# Needed for qt5
+CXXFLAGS += "--std=c++11"
+
+EXTRA_OECONF = "\
+    --enable-xpdf-headers \
+    --disable-gtk-test \
+    --enable-zlib \
+"
+
+do_compile_prepend() {
+        export GIR_EXTRA_LIBS_PATH="${B}/poppler/.libs"
+}
+
+# Adjust library names when building for QT4e
+QT4E_PATCHES = "${@bb.utils.contains('PACKAGECONFIG', 'qt4e', 'file://fix-qt4e-library-dependencies.patch', '', d)}"
+SRC_URI_append = "${QT4E_PATCHES}"
+
+# check for TARGET_FPU=soft and inform configure of the result so it can disable some floating points
+def get_poppler_fpu_setting(bb, d):
+    if d.getVar('TARGET_FPU', 1) in [ 'soft' ]:
+        return "--enable-fixedpoint"
+    return ""
+
+EXTRA_OECONF += "${@get_poppler_fpu_setting(bb, d)}"
+
+PACKAGES =+ "libpoppler libpoppler-glib"
+FILES_libpoppler = "${libdir}/libpoppler.so.*"
+FILES_libpoppler-glib = "${libdir}/libpoppler-glib.so.*"
+
+RDEPENDS_libpoppler = "poppler-data"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/portaudio/portaudio-v19_svn.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/portaudio/portaudio-v19_svn.bb
new file mode 100644
index 0000000..c8d7378
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/portaudio/portaudio-v19_svn.bb
@@ -0,0 +1,32 @@
+SUMMARY = "A portable audio library"
+SECTION = "libs/multimedia"
+LICENSE = "PortAudio"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=26107732c2ab637c5710446fcfaf02df"
+
+PV = "v19+svnr${SRCPV}"
+
+SRCREV = "1387"
+SRC_URI = "svn://subversion.assembla.com/svn/portaudio/portaudio;module=trunk;protocol=http"
+S = "${WORKDIR}/trunk"
+
+inherit autotools pkgconfig
+
+PACKAGECONFIG ??= "alsa jack"
+PACKAGECONFIG[alsa] = "--with-alsa, --without-alsa, alsa-lib,"
+PACKAGECONFIG[jack] = "--with-jack, --without-jack, jack,"
+
+EXTRA_OECONF = "--without-oss"
+
+TESTS = "  pa_devs patest1      patest_hang patest_many                   patest_prime patest_sine patest_stop     patest_write_sine        \
+pa_fuzz    patest_buffer        patest_in_overflow  patest_maxsines       patest_read_record  patest_sine8         patest_sync              \
+pa_minlat  patest_callbackstop  patest_latency      patest_multi_sine     patest_record       patest_sine_formats  patest_toomanysines      \
+paqa_devs  patest_clip          patest_leftright    patest_out_underflow  patest_ringmix      patest_sine_time     patest_underflow         \
+paqa_errs  patest_dither        patest_longsine     patest_pink           patest_saw          patest_start_stop    patest_wire"
+
+# DEFINES = PA_USE_OSS=1 HAVE_LIBPTHREAD=1
+# DEFINES += PA_LITTLE_ENDIAN
+
+# INCLUDEPATH = ../pa_common
+
+PACKAGES += "portaudio-examples"
+FILES_portaudio-examples = "${bindir}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/0001-Use-pkg-config-for-libxml2-detection.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/0001-Use-pkg-config-for-libxml2-detection.patch
new file mode 100644
index 0000000..d08ec6a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/0001-Use-pkg-config-for-libxml2-detection.patch
@@ -0,0 +1,43 @@
+From d52e330be895bb8c5f0fb3e2884766acbd942a85 Mon Sep 17 00:00:00 2001
+From: Philip Balister <philip@balister.org>
+Date: Tue, 1 Jul 2014 09:40:44 -0400
+Subject: [PATCH] Use pkg-config for libxml2 detection.
+
+Upstream-Status: Inappropriate [configuration]
+
+xml2-config does not work. Use pkgconfig to set CPPFLAGS and LIBS.
+
+Signed-off-by: Philip Balister <philip@balister.org>
+---
+ configure.in | 15 ++-------------
+ 1 file changed, 2 insertions(+), 13 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index f8bf466..1f4fabf 100644
+--- a/configure.in
++++ b/configure.in
+@@ -734,19 +734,8 @@ PGAC_ARG_BOOL(with, libxml, no, [build with XML support],
+               [AC_DEFINE([USE_LIBXML], 1, [Define to 1 to build with XML support. (--with-libxml)])])
+ 
+ if test "$with_libxml" = yes ; then
+-  AC_CHECK_PROGS(XML2_CONFIG, xml2-config)
+-  if test -n "$XML2_CONFIG"; then
+-    for pgac_option in `$XML2_CONFIG --cflags`; do
+-      case $pgac_option in
+-        -I*|-D*) CPPFLAGS="$CPPFLAGS $pgac_option";;
+-      esac
+-    done
+-    for pgac_option in `$XML2_CONFIG --libs`; do
+-      case $pgac_option in
+-        -L*) LDFLAGS="$LDFLAGS $pgac_option";;
+-      esac
+-    done
+-  fi
++  CPPFLAGS="$CPPFLAGS `pkg-config --short-errors --print-errors --cflags "libxml-2.0" 2>&1`"
++  LIBS="`pkg-config --short-errors --print-errors --libs "libxml-2.0" 2>&1` $LIBS"
+ fi
+ 
+ AC_SUBST(with_libxml)
+-- 
+1.8.3.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/not-check-libperl.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/not-check-libperl.patch
new file mode 100644
index 0000000..e199f39
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/not-check-libperl.patch
@@ -0,0 +1,31 @@
+[PATCH] not check libperl under cross compiling
+
+Upstream-Status: Inappropriate [configuration]
+
+libperl ldflags returned by PGAC_CHECK_PERL_EMBED_LDFLAGS are native,
+can not be used to check target library.
+
+postpresql has the dependency on perl, so not need to check libperl
+again, like in postgresql-9.2.4 
+
+Signed-off-by: Roy Li <rongqing.li@windriver.com>
+---
+ configure.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.in b/configure.in
+index ae1a5a0..9a0970d 100644
+--- a/configure.in
++++ b/configure.in
+@@ -1877,7 +1877,7 @@ if test "$with_tcl" = yes; then
+ fi
+ 
+ # check for <perl.h>
+-if test "$with_perl" = yes; then
++if test "$with_perl" = yes && test "$cross_compiling" = no; then
+   ac_save_CPPFLAGS=$CPPFLAGS
+   CPPFLAGS="$CPPFLAGS -I$perl_archlibexp/CORE"
+   AC_CHECK_HEADER(perl.h, [], [AC_MSG_ERROR([header file <perl.h> is required for Perl])],
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/postgresql-CVE-2016-0766.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/postgresql-CVE-2016-0766.patch
new file mode 100644
index 0000000..df89eb0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/postgresql-CVE-2016-0766.patch
@@ -0,0 +1,35 @@
+From f4aa3a18a20d51575562520754aa376b3b08b2d0 Mon Sep 17 00:00:00 2001
+From: Noah Misch <noah@leadboat.com>
+Date: Fri, 5 Feb 2016 20:22:51 -0500
+Subject: [PATCH] Force certain "pljava" custom GUCs to be PGC_SUSET.
+
+Future PL/Java versions will close CVE-2016-0766 by making these GUCs
+PGC_SUSET.  This PostgreSQL change independently mitigates that PL/Java
+vulnerability, helping sites that update PostgreSQL more frequently than
+PL/Java.  Back-patch to 9.1 (all supported versions).
+
+Upstream-Status: Backport
+
+Signed-off-by: Noah Misch <noah@leadboat.com>
+Index: postgresql-9.4.4/src/backend/utils/misc/guc.c
+===================================================================
+--- postgresql-9.4.4.orig/src/backend/utils/misc/guc.c	2015-06-10 03:29:38.000000000 +0800
++++ postgresql-9.4.4/src/backend/utils/misc/guc.c	2016-03-04 15:58:26.459266951 +0800
+@@ -7072,6 +7072,17 @@
+ 		!process_shared_preload_libraries_in_progress)
+ 		elog(FATAL, "cannot create PGC_POSTMASTER variables after startup");
+ 
++	/*
++	 * Before pljava commit 398f3b876ed402bdaec8bc804f29e2be95c75139
++	 * (2015-12-15), two of that module's PGC_USERSET variables facilitated
++	 * trivial escalation to superuser privileges.  Restrict the variables to
++	 * protect sites that have yet to upgrade pljava.
++	 */
++	if (context == PGC_USERSET &&
++		(strcmp(name, "pljava.classpath") == 0 ||
++		 strcmp(name, "pljava.vmoptions") == 0))
++		context = PGC_SUSET;
++
+ 	gen = (struct config_generic *) guc_malloc(ERROR, sz);
+ 	memset(gen, 0, sz);
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/postgresql-CVE-2016-0773.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/postgresql-CVE-2016-0773.patch
new file mode 100644
index 0000000..0fc9082
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/postgresql-CVE-2016-0773.patch
@@ -0,0 +1,222 @@
+From 3bb3f42f3749d40b8d4de65871e8d828b18d4a45 Mon Sep 17 00:00:00 2001
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Date: Mon, 8 Feb 2016 10:25:40 -0500
+Subject: [PATCH] Fix some regex issues with out-of-range characters and large
+ char ranges.
+
+Previously, our regex code defined CHR_MAX as 0xfffffffe, which is a
+bad choice because it is outside the range of type "celt" (int32).
+Characters approaching that limit could lead to infinite loops in logic
+such as "for (c = a; c <= b; c++)" where c is of type celt but the
+range bounds are chr.  Such loops will work safely only if CHR_MAX+1
+is representable in celt, since c must advance to beyond b before the
+loop will exit.
+
+Fortunately, there seems no reason not to restrict CHR_MAX to 0x7ffffffe.
+It's highly unlikely that Unicode will ever assign codes that high, and
+none of our other backend encodings need characters beyond that either.
+
+In addition to modifying the macro, we have to explicitly enforce character
+range restrictions on the values of \u, \U, and \x escape sequences, else
+the limit is trivially bypassed.
+
+Also, the code for expanding case-independent character ranges in bracket
+expressions had a potential integer overflow in its calculation of the
+number of characters it could generate, which could lead to allocating too
+small a character vector and then overwriting memory.  An attacker with the
+ability to supply arbitrary regex patterns could easily cause transient DOS
+via server crashes, and the possibility for privilege escalation has not
+been ruled out.
+
+Quite aside from the integer-overflow problem, the range expansion code was
+unnecessarily inefficient in that it always produced a result consisting of
+individual characters, abandoning the knowledge that we had a range to
+start with.  If the input range is large, this requires excessive memory.
+Change it so that the original range is reported as-is, and then we add on
+any case-equivalent characters that are outside that range.  With this
+approach, we can bound the number of individual characters allowed without
+sacrificing much.  This patch allows at most 100000 individual characters,
+which I believe to be more than the number of case pairs existing in
+Unicode, so that the restriction will never be hit in practice.
+
+It's still possible for range() to take awhile given a large character code
+range, so also add statement-cancel detection to its loop.  The downstream
+function dovec() also lacked cancel detection, and could take a long time
+given a large output from range().
+
+Per fuzz testing by Greg Stark.  Back-patch to all supported branches.
+
+Security: CVE-2016-0773
+
+Upstream-Status: Backport
+
+Signed-off-by: Tom Lane <tgl@sss.pgh.pa.us>
+Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
+
+Index: postgresql-9.4.5/src/backend/regex/regc_lex.c
+===================================================================
+--- postgresql-9.4.5.orig/src/backend/regex/regc_lex.c	2015-10-06 03:12:06.000000000 +0800
++++ postgresql-9.4.5/src/backend/regex/regc_lex.c	2016-03-10 10:29:57.045784317 +0800
+@@ -792,13 +792,13 @@
+ 			break;
+ 		case CHR('u'):
+ 			c = lexdigits(v, 16, 4, 4);
+-			if (ISERR())
++			if (ISERR() || c < CHR_MIN || c > CHR_MAX)
+ 				FAILW(REG_EESCAPE);
+ 			RETV(PLAIN, c);
+ 			break;
+ 		case CHR('U'):
+ 			c = lexdigits(v, 16, 8, 8);
+-			if (ISERR())
++			if (ISERR() || c < CHR_MIN || c > CHR_MAX)
+ 				FAILW(REG_EESCAPE);
+ 			RETV(PLAIN, c);
+ 			break;
+@@ -816,7 +816,7 @@
+ 		case CHR('x'):
+ 			NOTE(REG_UUNPORT);
+ 			c = lexdigits(v, 16, 1, 255);		/* REs >255 long outside spec */
+-			if (ISERR())
++			if (ISERR() || c < CHR_MIN || c > CHR_MAX)
+ 				FAILW(REG_EESCAPE);
+ 			RETV(PLAIN, c);
+ 			break;
+@@ -872,6 +872,9 @@
+ 
+ /*
+  * lexdigits - slurp up digits and return chr value
++ *
++ * This does not account for overflow; callers should range-check the result
++ * if maxlen is large enough to make that possible.
+  */
+ static chr						/* chr value; errors signalled via ERR */
+ lexdigits(struct vars * v,
+Index: postgresql-9.4.5/src/backend/regex/regc_locale.c
+===================================================================
+--- postgresql-9.4.5.orig/src/backend/regex/regc_locale.c	2015-10-06 03:12:06.000000000 +0800
++++ postgresql-9.4.5/src/backend/regex/regc_locale.c	2016-03-10 10:34:28.757781726 +0800
+@@ -408,8 +408,7 @@
+ 	int			nchrs;
+ 	struct cvec *cv;
+ 	celt		c,
+-				lc,
+-				uc;
++				cc;
+ 
+ 	if (a != b && !before(a, b))
+ 	{
+@@ -427,24 +426,48 @@
+ 
+ 	/*
+ 	 * When case-independent, it's hard to decide when cvec ranges are usable,
+-	 * so for now at least, we won't try.  We allocate enough space for two
+-	 * case variants plus a little extra for the two title case variants.
++	 * so for now at least, we won't try.  We use a range for the originally
++	 * specified chrs and then add on any case-equivalents that are outside
++	 * that range as individual chrs.
++	 *
++	 * To ensure sane behavior if someone specifies a very large range, limit
++	 * the allocation size to 100000 chrs (arbitrary) and check for overrun
++	 * inside the loop below.
+ 	 */
+ 
+-	nchrs = (b - a + 1) * 2 + 4;
+-
+-	cv = getcvec(v, nchrs, 0);
++	cv = getcvec(v, nchrs, 1);
+ 	NOERRN();
++	addrange(cv, a, b);
+ 
+ 	for (c = a; c <= b; c++)
+ 	{
+-		addchr(cv, c);
+-		lc = pg_wc_tolower((chr) c);
+-		if (c != lc)
+-			addchr(cv, lc);
+-		uc = pg_wc_toupper((chr) c);
+-		if (c != uc)
+-			addchr(cv, uc);
++		cc = pg_wc_tolower((chr) c);
++		if (cc != c &&
++			(before(cc, a) || before(b, cc)))
++		{
++			if (cv->nchrs >= cv->chrspace)
++			{
++				ERR(REG_ETOOBIG);
++				return NULL;
++			}
++			addchr(cv, cc);
++		}
++		cc = pg_wc_toupper((chr) c);
++		if (cc != c &&
++			(before(cc, a) || before(b, cc)))
++		{
++			if (cv->nchrs >= cv->chrspace)
++			{
++				ERR(REG_ETOOBIG);
++				return NULL;
++			}
++			addchr(cv, cc);
++		}
++		if (CANCEL_REQUESTED(v->re))
++		{
++			ERR(REG_CANCEL);
++			return NULL;
++		}
+ 	}
+ 
+ 	return cv;
+Index: postgresql-9.4.5/src/backend/regex/regcomp.c
+===================================================================
+--- postgresql-9.4.5.orig/src/backend/regex/regcomp.c	2015-10-06 03:12:06.000000000 +0800
++++ postgresql-9.4.5/src/backend/regex/regcomp.c	2016-03-10 10:35:25.397781185 +0800
+@@ -1569,6 +1569,7 @@
+ 	{
+ 		ch = *p;
+ 		newarc(v->nfa, PLAIN, subcolor(v->cm, ch), lp, rp);
++		NOERR();
+ 	}
+ 
+ 	/* and the ranges */
+@@ -1578,6 +1579,7 @@
+ 		to = *(p + 1);
+ 		if (from <= to)
+ 			subrange(v, from, to, lp, rp);
++		NOERR();
+ 	}
+ }
+ 
+Index: postgresql-9.4.5/src/include/regex/regcustom.h
+===================================================================
+--- postgresql-9.4.5.orig/src/include/regex/regcustom.h	2015-10-06 03:12:06.000000000 +0800
++++ postgresql-9.4.5/src/include/regex/regcustom.h	2016-03-10 10:37:09.989780188 +0800
+@@ -65,7 +65,8 @@
+ #define DIGITVAL(c) ((c)-'0')	/* turn chr digit into its value */
+ #define CHRBITS 32				/* bits in a chr; must not use sizeof */
+ #define CHR_MIN 0x00000000		/* smallest and largest chr; the value */
+-#define CHR_MAX 0xfffffffe		/* CHR_MAX-CHR_MIN+1 should fit in uchr */
++#define CHR_MAX 0x7ffffffe		/* CHR_MAX-CHR_MIN+1 must fit in an int, and
++								 * CHR_MAX+1 must fit in both chr and celt */
+ 
+ /* functions operating on chr */
+ #define iscalnum(x) pg_wc_isalnum(x)
+Index: postgresql-9.4.5/src/test/regress/expected/regex.out
+===================================================================
+--- postgresql-9.4.5.orig/src/test/regress/expected/regex.out	2015-10-06 03:12:06.000000000 +0800
++++ postgresql-9.4.5/src/test/regress/expected/regex.out	2016-03-10 10:38:28.821779436 +0800
+@@ -222,3 +222,5 @@
+  t
+ (1 row)
+ 
++select 'a' ~ '\x7fffffff';  -- invalid chr code
++ERROR:  invalid regular expression: invalid escape \ sequence
+Index: postgresql-9.4.5/src/test/regress/sql/regex.sql
+===================================================================
+--- postgresql-9.4.5.orig/src/test/regress/sql/regex.sql	2015-10-06 03:12:06.000000000 +0800
++++ postgresql-9.4.5/src/test/regress/sql/regex.sql	2016-03-10 10:38:57.845779159 +0800
+@@ -57,3 +57,4 @@
+ select 'a' ~ '.. ()|\1';
+ select 'a' ~ '()*\1';
+ select 'a' ~ '()+\1';
++select 'a' ~ '\x7fffffff';  -- invalid chr code
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/postgresql-bashprofile b/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/postgresql-bashprofile
new file mode 100644
index 0000000..1c931f37
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/postgresql-bashprofile
@@ -0,0 +1,4 @@
+[ -f /etc/profile ] && source /etc/profile
+
+PGDATA=/var/lib/postgresql/data
+export PGDATA
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/postgresql-setup b/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/postgresql-setup
new file mode 100644
index 0000000..75bb01e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/postgresql-setup
@@ -0,0 +1,73 @@
+#!/bin/sh
+#
+# postgresql-setup      Initialization operation for PostgreSQL
+
+# For SELinux we need to use 'runuser' not 'su'
+if [ -x /sbin/runuser ]
+then
+    SU=runuser
+else
+    SU=su
+fi
+
+PGENGINE=/usr/bin
+PGDATA=/var/lib/postgresql/data
+PGLOG=/var/lib/postgresql/pgstartup.log
+script_result=0
+
+initdb(){
+    if [ -f "$PGDATA/PG_VERSION" ]
+    then
+	echo -n "Data directory is not empty!"
+	echo -n " [FAILED] "
+	echo
+	script_result=1
+    else
+	echo -n "Initializing database: "
+	if [ ! -e "$PGDATA" -a ! -h "$PGDATA" ]
+	then
+		mkdir -p "$PGDATA" || exit 1
+		chown postgres:postgres "$PGDATA"
+		chmod go-rwx "$PGDATA"
+	fi
+	# Clean up SELinux tagging for PGDATA
+	[ -x /sbin/restorecon ] && /sbin/restorecon "$PGDATA"
+
+	# Make sure the startup-time log file is OK, too
+	if [ ! -e "$PGLOG" -a ! -h "$PGLOG" ]
+	then
+		touch "$PGLOG" || exit 1
+		chown postgres:postgres "$PGLOG"
+		chmod go-rwx "$PGLOG"
+		[ -x /sbin/restorecon ] && /sbin/restorecon "$PGLOG"
+	fi
+
+	# Initialize the database
+	$SU -l postgres -c "$PGENGINE/initdb --pgdata='$PGDATA' --auth='ident'" >> "$PGLOG" 2>&1 < /dev/null
+
+	# Create directory for postmaster log
+	mkdir "$PGDATA/pg_log"
+	chown postgres:postgres "$PGDATA/pg_log"
+	chmod go-rwx "$PGDATA/pg_log"
+
+	if [ -f "$PGDATA/PG_VERSION" ]
+	then
+	    echo -n " [ OK ] "
+	else
+	    echo -n " [FAILED] "
+	    script_result=1
+	fi
+	echo
+    fi
+}
+
+case "$1" in
+  initdb)
+	initdb
+	;;
+  *)
+	echo "Usage: $0 initdb"
+	exit 2
+esac
+
+exit $script_result
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/postgresql.init b/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/postgresql.init
new file mode 100644
index 0000000..4a4f0cd
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/postgresql.init
@@ -0,0 +1,193 @@
+#!/bin/sh
+#
+# postgresql	This is the init script for starting up the PostgreSQL
+#		server.
+#
+# chkconfig: - 64 36
+# description: PostgreSQL database server.
+# processname: postmaster
+# pidfile: /var/run/postmaster.PORT.pid
+
+# This script is slightly unusual in that the name of the daemon (postmaster)
+# is not the same as the name of the subsystem (postgresql)
+
+# PGVERSION is the full package version, e.g., 8.4.0
+# Note: the specfile inserts the correct value during package build
+PGVERSION=9.2.4
+# PGMAJORVERSION is major version, e.g., 8.4 (this should match PG_VERSION)
+PGMAJORVERSION=`echo "$PGVERSION" | sed 's/^\([0-9]*\.[0-9]*\).*$/\1/'`
+
+# Source function library.
+. /etc/init.d/functions
+
+# Find the name of the script
+NAME=`basename $0`
+if [ ${NAME:0:1} = "S" -o ${NAME:0:1} = "K" ]
+then
+	NAME=${NAME:3}
+fi
+
+# For SELinux we need to use 'runuser' not 'su'
+if [ -x /sbin/runuser ]
+then
+    SU=runuser
+else
+    SU=su
+fi
+
+
+# Set defaults for configuration variables
+PGENGINE=/usr/bin
+PGPORT=5432
+PGDATA=/var/lib/postgresql/data
+PGLOG=/var/lib/postgresql/pgstartup.log
+# Value to set as postmaster process's oom_adj
+PG_OOM_ADJ=-17
+
+# Override defaults from /etc/sysconfig/postgresql if file is present
+[ -f /etc/default/postgresql/${NAME} ] && . /etc/default/postgresql/${NAME}
+
+export PGDATA
+export PGPORT
+
+lockfile="/var/lock/subsys/${NAME}"
+pidfile="/var/run/postmaster.${PGPORT}.pid"
+
+script_result=0
+
+start(){
+	[ -x "$PGENGINE/postmaster" ] || exit 5
+
+	PSQL_START=$"Starting ${NAME} service: "
+
+	# Make sure startup-time log file is valid
+	if [ ! -e "$PGLOG" -a ! -h "$PGLOG" ]
+	then
+		touch "$PGLOG" || exit 4
+		chown postgres:postgres "$PGLOG"
+		chmod go-rwx "$PGLOG"
+		[ -x /sbin/restorecon ] && /sbin/restorecon "$PGLOG"
+	fi
+
+	# Check for the PGDATA structure
+	if [ -f "$PGDATA/PG_VERSION" ] && [ -d "$PGDATA/base" ]
+	then
+		# Check version of existing PGDATA
+		if [ x`cat "$PGDATA/PG_VERSION"` != x"$PGMAJORVERSION" ]
+		then
+			SYSDOCDIR="(Your System's documentation directory)"
+			if [ -d "/usr/doc/postgresql-$PGVERSION" ]
+			then
+				SYSDOCDIR=/usr/doc
+			fi
+			if [ -d "/usr/share/doc/postgresql-$PGVERSION" ]
+			then
+				SYSDOCDIR=/usr/share/doc
+			fi
+			if [ -d "/usr/doc/packages/postgresql-$PGVERSION" ]
+			then
+				SYSDOCDIR=/usr/doc/packages
+			fi
+			if [ -d "/usr/share/doc/packages/postgresql-$PGVERSION" ]
+			then
+				SYSDOCDIR=/usr/share/doc/packages
+			fi
+			echo
+			echo $"An old version of the database format was found."
+			echo $"You need to upgrade the data format before using PostgreSQL."
+			echo $"See $SYSDOCDIR/postgresql-$PGVERSION/README.rpm-dist for more information."
+			exit 1
+		fi
+	else
+		# No existing PGDATA! Warn the user to initdb it.
+		echo
+                echo "$PGDATA is missing. Use \"postgresql-setup initdb\" to initialize the cluster first."
+		echo -n " [FAILED] "
+		echo
+		exit 1
+	fi
+
+	echo -n "$PSQL_START"
+	test x"$PG_OOM_ADJ" != x && echo "$PG_OOM_ADJ" > /proc/self/oom_score_adj
+	$SU -l postgres -c "$PGENGINE/postmaster -p '$PGPORT' -D '$PGDATA' ${PGOPTS} &" >> "$PGLOG" 2>&1 < /dev/null
+	sleep 2
+	pid=`head -n 1 "$PGDATA/postmaster.pid" 2>/dev/null`
+	if [ "x$pid" != x ]
+	then
+		echo -n " [ OK ]"
+		touch "$lockfile"
+		echo $pid > "$pidfile"
+		echo
+	else
+		echo -n  " [FAILED]"
+		echo
+		script_result=1
+	fi
+}
+
+stop(){
+	echo -n $"Stopping ${NAME} service: "
+	if [ -e "$lockfile" ]
+	then
+	    $SU -l postgres -c "$PGENGINE/pg_ctl stop -D '$PGDATA' -s -m fast" > /dev/null 2>&1 < /dev/null
+	    ret=$?
+	    if [ $ret -eq 0 ]
+	    then
+		echo -n " [ OK ] "
+		rm -f "$pidfile"
+		rm -f "$lockfile"
+	    else
+		echo -n " [FAILED] "
+		script_result=1
+	    fi
+	else
+	    # not running; per LSB standards this is "ok"
+	    echo -n " [ OK ] "
+	fi
+	echo
+}
+
+restart(){
+    stop
+    start
+}
+
+condrestart(){
+    [ -e "$lockfile" ] && restart || :
+}
+
+reload(){
+    $SU -l postgres -c "$PGENGINE/pg_ctl reload -D '$PGDATA' -s" > /dev/null 2>&1 < /dev/null
+}
+
+
+# See how we were called.
+case "$1" in
+  start)
+	start
+	;;
+  stop)
+	stop
+	;;
+  status)
+	status postmaster
+	script_result=$?
+	;;
+  restart)
+	restart
+	;;
+  condrestart|try-restart)
+	condrestart
+	;;
+  reload)
+	reload
+	;;
+  force-reload)
+	restart
+	;;
+  *)
+	echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
+	exit 2
+esac
+
+exit $script_result
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/postgresql.pam b/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/postgresql.pam
new file mode 100644
index 0000000..0b6fdc5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/postgresql.pam
@@ -0,0 +1,4 @@
+#%PAM-1.0
+auth            include         common-auth
+account         include         common-account
+password        include         common-password
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/postgresql.service b/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/postgresql.service
new file mode 100644
index 0000000..4ec959e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/postgresql.service
@@ -0,0 +1,27 @@
+[Unit]
+Description=PostgreSQL database server
+After=network.target
+
+[Service]
+Type=forking
+User=postgres
+Group=postgres
+
+# Port number for server to listen on
+Environment=PGPORT=5432
+
+# Location of database directory
+Environment=PGDATA=/var/lib/postgresql/data
+
+# Disable OOM kill on the postmaster
+OOMScoreAdjust=-17
+
+ExecStart=@BINDIR@/pg_ctl start -D ${PGDATA} -s -o "-p ${PGPORT}" -w -t 300
+ExecStop=@BINDIR@/pg_ctl stop -D ${PGDATA} -s -m fast
+ExecReload=@BINDIR@/pg_ctl reload -D ${PGDATA} -s
+
+# Give a reasonable amount of time for the server to start up/shut down
+TimeoutSec=300
+
+[Install]
+WantedBy=multi-user.target
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/remove.autoconf.version.check.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/remove.autoconf.version.check.patch
new file mode 100644
index 0000000..be23fd4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/files/remove.autoconf.version.check.patch
@@ -0,0 +1,16 @@
+Index: postgresql-9.2.4/configure.in
+===================================================================
+--- postgresql-9.2.4.orig/configure.in
++++ postgresql-9.2.4/configure.in
+@@ -19,10 +19,6 @@ m4_pattern_forbid(^PGAC_)dnl to catch un
+ 
+ AC_INIT([PostgreSQL], [9.4.2], [pgsql-bugs@postgresql.org])
+ 
+-m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.69], [], [m4_fatal([Autoconf version 2.69 is required.
+-Untested combinations of 'autoconf' and PostgreSQL versions are not
+-recommended.  You can remove the check from 'configure.in' but it is then
+-your responsibility whether the result works or not.])])
+ AC_COPYRIGHT([Copyright (c) 1996-2014, PostgreSQL Global Development Group])
+ AC_CONFIG_SRCDIR([src/backend/access/common/heaptuple.c])
+ AC_CONFIG_AUX_DIR(config)
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/postgresql.inc b/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/postgresql.inc
new file mode 100644
index 0000000..288a2d1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/postgresql.inc
@@ -0,0 +1,391 @@
+SUMMARY = "PostgreSQL is a powerful, open source relational database system."
+DESCRIPTION = "\
+    PostgreSQL is an advanced Object-Relational database management system \
+    (DBMS) that supports almost all SQL constructs (including \
+    transactions, subselects and user-defined types and functions). The \
+    postgresql package includes the client programs and libraries that \
+    you'll need to access a PostgreSQL DBMS server.  These PostgreSQL \
+    client programs are programs that directly manipulate the internal \
+    structure of PostgreSQL databases on a PostgreSQL server. These client \
+    programs can be located on the same machine with the PostgreSQL \
+    server, or may be on a remote machine which accesses a PostgreSQL \
+    server over a network connection. This package contains the docs \
+    in HTML for the whole package, as well as command-line utilities for \
+    managing PostgreSQL databases on a PostgreSQL server. \
+    \
+    If you want to manipulate a PostgreSQL database on a local or remote \
+    PostgreSQL server, you need this package. You also need to install \
+    this package if you're installing the postgresql-server package. \
+"
+HOMEPAGE = "http://www.postgresql.com"
+LICENSE = "BSD"
+DEPENDS = "zlib readline tzcode-native"
+INC_PR = "r0"
+
+ARM_INSTRUCTION_SET = "arm"
+
+SRC_URI = "http://ftp.postgresql.org/pub/source/v${PV}/${BP}.tar.bz2 \
+    file://postgresql.init \
+    file://postgresql-bashprofile \
+    file://postgresql.pam \
+    file://postgresql-setup \
+    file://postgresql.service \
+    file://0001-Use-pkg-config-for-libxml2-detection.patch \
+    file://postgresql-CVE-2016-0766.patch \
+    file://postgresql-CVE-2016-0773.patch \
+"
+
+LEAD_SONAME = "libpq.so"
+
+# LDFLAGS for shared libraries
+export LDFLAGS_SL = "${LDFLAGS}"
+
+inherit autotools pkgconfig perlnative pythonnative useradd update-rc.d systemd
+
+SYSTEMD_SERVICE_${PN} = "postgresql.service"
+SYSTEMD_AUTO_ENABLE_${PN} = "disable"
+
+DEPENDS_append = " ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd-systemctl-native', '', d)}"
+pkg_postinst_${PN} () {
+    if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd sysvinit', 'true', 'false', d)}; then
+        if [ -n "$D" ]; then
+            OPTS="--root=$D"
+        fi
+        systemctl $OPTS mask postgresql-server.service
+    fi
+}
+
+enable_pam = "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}"
+PACKAGECONFIG ??= "${enable_pam} openssl python uuid libxml tcl nls libxml perl"
+PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam,"
+PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl,"
+PACKAGECONFIG[python] = "--with-python,--without-python,python,python"
+PACKAGECONFIG[uuid] = "--with-ossp-uuid,--without-ossp-uuid,ossp-uuid,"
+# when tcl native package  is fixed change WORKDIR to STAGING_BINDIR_CROSS
+PACKAGECONFIG[tcl] = "--with-tcl --with-tclconfig=${STAGING_BINDIR_CROSS},--without-tcl,tcl,"
+PACKAGECONFIG[nls] = "--enable-nls,--disable-nls,,"
+PACKAGECONFIG[libxml] = "--with-libxml,--without-libxml,libxml2,libxml2"
+PACKAGECONFIG[perl] = "--with-perl,--without-perl,perl,perl"
+
+EXTRA_OECONF += "--enable-thread-safety --disable-rpath \
+    --datadir=${datadir}/${BPN} \
+    --sysconfdir=${sysconfdir}/${BPN} \
+"
+EXTRA_OECONF_sh4 += "--disable-spinlocks"
+EXTRA_OECONF_aarch64 += "--disable-spinlocks"
+
+PACKAGES_DYNAMIC += "^${PN}-plperl ^${PN}-plperl-dbg \
+    ^${PN}-pltcl ^${PN}-pltcl-dbg \
+    ^${PN}-plpython ^${PN}-plpython-dbg \
+"
+
+python populate_packages_prepend() {
+
+    def fill_more(name, dbg=True):
+        if name is None or name.strip() == "":
+            return
+
+        fpack=d.getVar('PACKAGES', False) or ""
+        fpack="${PN}-" + name + " " + fpack
+        if dbg:
+            fpack="${PN}-" + name + "-dbg" + " " + fpack
+        d.setVar('PACKAGES', fpack)
+
+    conf=(d.getVar('PACKAGECONFIG', True) or "").split()
+    pack=d.getVar('PACKAGES', False) or ""
+    bb.debug(1, "PACKAGECONFIG=%s" % conf)
+    bb.debug(1, "PACKAGES1=%s" % pack )
+
+    if "perl" in conf :
+        fill_more("plperl")
+
+    if "tcl" in conf:
+        fill_more("pltcl")
+
+    if "python" in conf:
+        fill_more("plpython")
+
+    pack=d.getVar('PACKAGES', True) or ""
+    bb.debug(1, "PACKAGES2=%s" % pack)
+
+}
+
+do_configure() {
+    # do_configure_prepend
+    # make sure configure finds python includdirs with these envs
+    export BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
+           STAGING_INCDIR=${STAGING_INCDIR} \
+           STAGING_LIBDIR=${STAGING_LIBDIR}
+
+    # do_configure
+    autotools_do_configure
+
+    # do_configure_append
+    # workaround perl package related bugs
+    sed -i -e "s:-L/usr/local/lib:-L=/usr/local/lib:g" \
+        ${B}/src/Makefile.global
+    LIBPNA="\${STAGING_LIBDIR_NATIVE}/perl-native"
+    LIBNA="\${STAGING_LIBDIR_NATIVE}"
+    BLIBNA="\${STAGING_BASE_LIBDIR_NATIVE}"
+    sed -i -e "/^perl_archlibexp/s:${LIBPNA}:${STAGING_LIBDIR}:g" \
+        ${B}/src/Makefile.global
+    sed -i -e "/^perl_privlibexp/s:${LIBPNA}:${STAGING_LIBDIR}:g" \
+        ${B}/src/Makefile.global
+    # remove the rpath, replace with correct lib path
+    sed -i \
+        -e "/^perl_embed_ldflags/s:-Wl,-rpath,${LIBNA}::g" \
+        -e "/^perl_embed_ldflags/s:-Wl,-rpath,${BLIBNA}::g" \
+        -e "/^perl_embed_ldflags/s:-Wl,-rpath-link,${LIBNA}::g" \
+        -e "/^perl_embed_ldflags/s:-Wl,-rpath-link,${BLIBNA}::g" \
+        -e "/^perl_embed_ldflags/s:${LIBPNA}:${STAGING_LIBDIR}:g" \
+        -e "/^perl_embed_ldflags/s:${LIBNA}:${STAGING_LIBDIR}:g"  \
+        -e "/^perl_embed_ldflags/s:${BLIBNA}:${STAGING_BASELIBDIR}:g" \
+        -e "/^TCLSH/s:=.*:= ${bindir}/tclsh:g" \
+    ${B}/src/Makefile.global
+
+    if ${@bb.utils.contains('PACKAGECONFIG', 'perl', 'true', 'false', d)}; then
+        # workaround perl package's libperl.so problem
+        # we are using perlnative so this perl should have same version
+        perl_version=`perl -v 2>/dev/null | \
+            sed -n 's/This is perl.*v[a-z ]*\([0-9]\.[0-9][0-9.]*\).*$/\1/p'`
+        if [ ! -h "${STAGING_LIBDIR}/perl/$perl_version/CORE/libperl.so" -a \
+             ! -h "${STAGING_LIBDIR}/libperl.so" ]; then
+            ln -sf ../../../libperl.so.5 \
+                ${STAGING_LIBDIR}/perl/$perl_version/CORE/libperl.so
+        fi
+    fi
+}
+
+do_compile_append() {
+    oe_runmake -C contrib all
+}
+
+# server needs to configure user and group
+usernum = "28"
+groupnum = "28"
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM_${PN} = "-M -g postgres -o -r -d ${localstatedir}/lib/${BPN} \
+    -s /bin/bash -c 'PostgreSQL Server' -u ${usernum} postgres"
+GROUPADD_PARAM_${PN} = "-g ${groupnum} -o -r postgres"
+
+INITSCRIPT_PACKAGES = "${PN}"
+INITSCRIPT_NAME = "${BPN}-server"
+INITSCRIPT_PARAMS = "start 64 . stop 36 0 1 2 3 4 5 6 ."
+
+do_install_append() {
+    # install contrib
+    oe_runmake DESTDIR=${D} -C contrib install
+    # install tutorial
+    install -d -m 0755 ${D}${libdir}/${BPN}/tutorial
+    install ${B}/src/tutorial/* ${D}${libdir}/${BPN}/tutorial
+
+    # install COPYRIGHT README HISTORY
+    install -d -m 0755 ${D}${docdir}/${BPN}
+    for i in ${B}/{COPYRIGHT,README,HISTORY} ${B}/doc/{KNOWN_BUGS,MISSING_FEATURES,README*,bug.template}; do
+        [ -f $i ] && install $i ${D}${docdir}/${BPN}
+    done
+
+    # install dirs and server init
+    install -d ${D}${sysconfdir}/init.d
+    install -m 0755 ${WORKDIR}/${BPN}.init ${D}${sysconfdir}/init.d/${BPN}-server
+    sed -i -e "s/^PGVERSION=.*$/PGVERSION=${PV}/g" ${D}${sysconfdir}/init.d/${BPN}-server
+    install -m 0755 ${WORKDIR}/${BPN}-setup ${D}${bindir}/${BPN}-setup
+    install -d -m 700 ${D}${localstatedir}/lib/${BPN}/data
+    install -d -m 700 ${D}${localstatedir}/lib/${BPN}/backups
+    install -m 644 ${WORKDIR}/${BPN}-bashprofile ${D}${localstatedir}/lib/${BPN}/.bash_profile
+    chown -R postgres:postgres ${D}${localstatedir}/lib/${BPN}
+    # multiple server config directory
+    install -d -m 700 ${D}${sysconfdir}/default/${BPN}
+
+    if [ "${@d.getVar('enable_pam', True)}" = "pam" ]; then
+        install -d ${D}${sysconfdir}/pam.d
+        install -m 644 ${WORKDIR}/postgresql.pam ${D}${sysconfdir}/pam.d/postgresql
+    fi
+
+    # Install systemd unit files
+    install -d ${D}${systemd_unitdir}/system
+    install -m 0644 ${WORKDIR}/postgresql.service ${D}${systemd_unitdir}/system
+    sed -i -e 's,@BINDIR@,${bindir},g' \
+        ${D}${systemd_unitdir}/system/postgresql.service
+}
+
+SSTATE_SCAN_FILES += "Makefile.global"
+
+PACKAGES =+ "${PN}-client ${PN}-server-dev ${PN}-timezone \
+    libecpg-compat-dbg libecpg-compat libecpg-compat-dev \
+    libecpg-dbg libecpg libecpg-dev libecpg-staticdev libecpg-doc \
+    libpq-dbg libpq libpq-dev libpq-staticdev \
+    libpgtypes-dbg libpgtypes libpgtypes-staticdev libpgtypes-dev \
+    ${PN}-contrib ${PN}-contrib-dbg \
+"
+
+FILES_${PN} += "${sysconfdir}/init.d/${BPN}-server \
+    ${localstatedir}/lib/${BPN}/data ${localstatedir}/lib/${BPN}/backups \
+    ${localstatedir}/lib/${BPN}/.bash_profile ${sysconfdir}/default/${BPN} \
+    ${libdir}/${BPN}/dict_snowball.so ${libdir}/${BPN}/plpgsql.so \
+    ${libdir}/${BPN}/euc2004_sjis2004.so \
+    ${libdir}/${BPN}/libpqwalreceiver.so \
+    ${libdir}/${BPN}/*_and_*.so \
+    ${@'${sysconfdir}/pam.d/postgresql' \
+       if 'pam' == d.getVar('enable_pam', True) \
+       else ''} \
+"
+
+FILES_${PN}-dbg += " ${libdir}/${BPN}/.debug/dict_snowball.so \
+    ${libdir}/${BPN}/.debug/plpgsql.so \
+    ${libdir}/${BPN}/.debug/euc2004_sjis2004.so \
+    ${libdir}/${BPN}/.debug/libpqwalreceiver.so \
+    ${libdir}/${BPN}/.debug/*_and_*.so \
+"
+
+FILES_${PN}-client = "${bindir}/clusterdb \
+    ${bindir}/createdb \
+    ${bindir}/createlang \
+    ${bindir}/createuser \
+    ${bindir}/dropdb \
+    ${bindir}/droplang \
+    ${bindir}/dropuser \
+    ${bindir}/pg_dump \
+    ${bindir}/pg_dumpall \
+    ${bindir}/pg_restore \
+    ${bindir}/psql \
+    ${bindir}/reindexdb \
+    ${bindir}/vacuumdb \
+    ${bindir}/vacuumlo \
+    ${datadir}/${BPN}/psqlrc.sample \
+"
+FILES_${PN}-client-doc = "${mandir}/man1/clusterdb.* \
+    ${mandir}/man1/createdb.*   ${mandir}/man1/createlang.* \
+    ${mandir}/man1/createuser.* ${mandir}/man1/dropdb.* \
+    ${mandir}/man1/droplang.*   ${mandir}/man1/dropuser.* \
+    ${mandir}/man1/pg_dump.*    ${mandir}/man1/pg_dumpall.* \
+    ${mandir}/man1/pg_restore.* ${mandir}/man1/psql.* \
+    ${mandir}/man1/reindexdb.*  ${mandir}/man1/vacuumdb.* \
+    ${mandir}/man7/* \
+"
+FILES_${PN}-doc += "${docdir}/${BPN}/html ${libdir}/${BPN}/tutorial/ \
+    ${mandir}/man1/initdb.* ${mandir}/man1/pg_controldata.* \
+    ${mandir}/man1/pg_ctl.* ${mandir}/man1/pg_resetxlog.* \
+    ${mandir}/man1/postgres.* ${mandir}/man1/postmaster.* \
+"
+FILES_${PN}-timezone = "${datadir}/${BPN}/timezone \
+    ${datadir}/${BPN}/timezonesets \
+"
+RDEPENDS_${PN} += "${PN}-timezone"
+FILES_${PN}-server-dev = "${includedir}/${BPN}/server"
+
+FILES_libecpg = "${libdir}/libecpg*${SOLIBS}"
+FILES_libecpg-dbg = "${libdir}/.debug/libecpg*"
+FILES_libecpg-dev = "${libdir}/libecpg*${SOLIBSDEV} \
+    ${libdir}/libpgtypes*${SOLIBSDEV} \
+    ${includedir}/ecpg*.h ${includedir}/${BPN}/ecpg*.h \
+    ${includedir}/pgtypes*.h ${includedir}/${BPN}/informix \
+    ${includedir}/sql3types.h ${includedir}/sqlca.h \
+"
+FILES_libecpg-doc = "${mandir}/man1/ecpg.*"
+FILES_libecpg-staticdev = "${libdir}/libecpg*.a"
+SECTION_libecpg-staticdev = "devel"
+RDEPENDS_libecpg-staticdev = "libecpg-dev (= ${EXTENDPKGV})"
+
+FILES_libpq = "${libdir}/libpq*${SOLIBS}"
+FILES_libpq-dbg = "${libdir}/.debug/libpq* ${libdir}/${BPN}/pgxs/src/test/regress/.debug/*"
+FILES_libpq-dev = "${libdir}/libpq*${SOLIBSDEV} \
+    ${includedir} \
+"
+FILES_libpq-staticdev = "${libdir}/libpq*.a ${libdir}/libpgport.a"
+SECTION_libpq-staticdev = "devel"
+RDEPENDS_libpq-staticdev = "libpq-dev (= ${EXTENDPKGV})"
+
+FILES_libecpg-compat = "${libdir}/libecpg_compat*${SOLIBS}"
+FILES_libecpg-compat-dbg = "${libdir}/.debug/libecpg_compat*"
+FILES_libecpg-compat-dev = "${libdir}/libecpg_compat*${SOLIBS}"
+FILES_libpgtypes = "${libdir}/libpgtypes*${SOLIBS}"
+FILES_libpgtypes-dbg = "${libdir}/.debug/libpgtypes*"
+FILES_libpgtypes-staticdev = "${libdir}/libpgtypes*.a"
+FILES_libpgtypes-dev = "${libdir}/libpgtypes*${SOLIBS} ${includedir}/pgtypes*.h"
+
+FILES_${PN}-contrib = " ${bindir}/oid2name ${bindir}/pg_standby \
+    ${bindir}/pgbench ${bindir}/vacuumlo \
+    ${S}/contrib/spi/*.example \
+    ${libdir}/${BPN}/_int.so ${libdir}/${BPN}/adminpack.so \
+    ${libdir}/${BPN}/autoinc.so ${libdir}/${BPN}/auto_explain.so \
+    ${libdir}/${BPN}/auth_delay.so ${libdir}/${BPN}/btree_gin.so \
+    ${libdir}/${BPN}/btree_gist.so ${libdir}/${BPN}/.so \
+    ${libdir}/${BPN}/chkpass.so ${libdir}/${BPN}/citext.so \
+    ${libdir}/${BPN}/cube.so ${libdir}/${BPN}/dblink.so \
+    ${libdir}/${BPN}/dict_int.so ${libdir}/${BPN}/dict_xsyn.so \
+    ${libdir}/${BPN}/dummy_seclabel.so ${libdir}/${BPN}/earthdistance.so \
+    ${libdir}/${BPN}/file_fdw.so ${libdir}/${BPN}/fuzzystrmatch.so \
+    ${libdir}/${BPN}/hstore.so ${libdir}/${BPN}/insert_username.so \
+    ${libdir}/${BPN}/isn.so ${libdir}/${BPN}/lo.so \
+    ${libdir}/${BPN}/ltree.so ${libdir}/${BPN}/moddatetime.so \
+    ${libdir}/${BPN}/pageinspect.so ${libdir}/${BPN}/pg_buffercache.so \
+    ${libdir}/${BPN}/pg_freespacemap.so ${libdir}/${BPN}/pg_trgm.so \
+    ${libdir}/${BPN}/pgcrypto.so ${libdir}/${BPN}/pgrowlocks.so \
+    ${libdir}/${BPN}/pgstattuple.so ${libdir}/${BPN}/pg_stat_statements.so \
+    ${libdir}/${BPN}/refint.so ${libdir}/${BPN}/seg.so \
+    ${libdir}/${BPN}/sslinfo.so \
+    ${libdir}/${BPN}/tablefunc.so \
+    ${libdir}/${BPN}/test_parser.so ${libdir}/${BPN}/timetravel.so \
+    ${libdir}/${BPN}/tsearch2.so ${libdir}/${BPN}/uuid-ossp.so \
+    ${libdir}/${BPN}/pgxml.so ${libdir}/${BPN}/passwordcheck.so \
+    ${libdir}/${BPN}/pg_upgrade_support.so ${libdir}/${BPN}/.so \
+    ${libdir}/${BPN}/unaccent.so \
+"
+FILES_${PN}-contrib-dbg = " \
+    ${libdir}/${BPN}/.debug/_int.so ${libdir}/${BPN}/.debug/adminpack.so \
+    ${libdir}/${BPN}/.debug/autoinc.so ${libdir}/${BPN}/.debug/auto_explain.so \
+    ${libdir}/${BPN}/.debug/auth_delay.so ${libdir}/${BPN}/.debug/btree_gin.so \
+    ${libdir}/${BPN}/.debug/btree_gist.so ${libdir}/${BPN}/.debug/.so \
+    ${libdir}/${BPN}/.debug/chkpass.so ${libdir}/${BPN}/.debug/citext.so \
+    ${libdir}/${BPN}/.debug/cube.so ${libdir}/${BPN}/.debug/dblink.so \
+    ${libdir}/${BPN}/.debug/dict_int.so ${libdir}/${BPN}/.debug/dict_xsyn.so \
+    ${libdir}/${BPN}/.debug/dummy_seclabel.so \
+    ${libdir}/${BPN}/.debug/earthdistance.so \
+    ${libdir}/${BPN}/.debug/file_fdw.so ${libdir}/${BPN}/.debug/fuzzystrmatch.so \
+    ${libdir}/${BPN}/.debug/hstore.so ${libdir}/${BPN}/.debug/insert_username.so \
+    ${libdir}/${BPN}/.debug/isn.so ${libdir}/${BPN}/.debug/lo.so \
+    ${libdir}/${BPN}/.debug/ltree.so ${libdir}/${BPN}/.debug/moddatetime.so \
+    ${libdir}/${BPN}/.debug/pageinspect.so \
+    ${libdir}/${BPN}/.debug/pg_buffercache.so \
+    ${libdir}/${BPN}/.debug/pg_freespacemap.so \
+    ${libdir}/${BPN}/.debug/pg_trgm.so \
+    ${libdir}/${BPN}/.debug/pgcrypto.so ${libdir}/${BPN}/.debug/pgrowlocks.so \
+    ${libdir}/${BPN}/.debug/pgstattuple.so \
+    ${libdir}/${BPN}/.debug/pg_stat_statements.so \
+    ${libdir}/${BPN}/.debug/refint.so ${libdir}/${BPN}/.debug/seg.so \
+    ${libdir}/${BPN}/.debug/sslinfo.so \
+    ${libdir}/${BPN}/.debug/tablefunc.so \
+    ${libdir}/${BPN}/.debug/test_parser.so ${libdir}/${BPN}/.debug/timetravel.so \
+    ${libdir}/${BPN}/.debug/tsearch2.so ${libdir}/${BPN}/.debug/uuid-ossp.so \
+    ${libdir}/${BPN}/.debug/pgxml.so ${libdir}/${BPN}/.debug/passwordcheck.so \
+    ${libdir}/${BPN}/.debug/pg_upgrade_support.so \
+    ${libdir}/${BPN}/.debug/unaccent.so \
+"
+DESCRIPTION_${PN}-contrib = "The postgresql-contrib package contains \
+    contributed packages that are included in the PostgreSQL distribution."
+
+FILES_${PN}-pltcl = "${libdir}/${BPN}/pltcl.so ${bindir}/pltcl_delmod \
+    ${binddir}/pltcl_listmod ${bindir}/pltcl_loadmod  \
+    ${datadir}/${BPN}/unknown.pltcl"
+FILES_${PN}-pltcl-dbg = "${libdir}/${BPN}/.debug/pltcl.so"
+SUMMARY_${PN}-pltcl = "The Tcl procedural language for PostgreSQL"
+DESCRIPTION_${PN}-pltcl = "PostgreSQL is an advanced Object-Relational \
+    database management system.  The postgresql-pltcl package contains the PL/Tcl \
+    procedural language for the backend."
+
+FILES_${PN}-plperl = "${libdir}/${BPN}/plperl.so"
+FILES_${PN}-plperl-dbg = "${libdir}/${BPN}/.debug/plperl.so"
+SUMMARY_${PN}-plperl = "The Perl procedural language for PostgreSQL"
+DESCRIPTION_${PN}-plperl = "PostgreSQL is an advanced Object-Relational \
+    database management system.  The postgresql-plperl package contains the \
+    PL/Perl procedural language for the backend."
+
+# In version 8, it will be plpython.so
+# In version 9, it might be plpython{2,3}.so depending on python2 or 3
+FILES_${PN}-plpython = "${libdir}/${BPN}/plpython*.so"
+FILES_${PN}-plpython-dbg = "${libdir}/${BPN}/.debug/plpython*.so"
+SUMMARY_${PN}-plpython = "The Python procedural language for PostgreSQL"
+DESCRIPTION_${PN}-plpython = "PostgreSQL is an advanced Object-Relational \
+    database management system.  The postgresql-plpython package contains \
+    the PL/Python procedural language for the backend."
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/postgresql_9.4.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/postgresql_9.4.5.bb
new file mode 100644
index 0000000..54b660e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/postgresql/postgresql_9.4.5.bb
@@ -0,0 +1,14 @@
+require postgresql.inc
+
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=7d847a9b446ddfe187acfac664189672"
+
+PR = "${INC_PR}.0"
+
+SRC_URI += "\
+    file://remove.autoconf.version.check.patch \
+    file://not-check-libperl.patch \
+"
+
+SRC_URI[md5sum] = "8b2e3472a8dc786649b4d02d02e039a0"
+SRC_URI[sha256sum] = "b87c50c66b6ea42a9712b5f6284794fabad0616e6ae420cf0f10523be6d94a39"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pps-tools/pps-tools_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/pps-tools/pps-tools_git.bb
new file mode 100644
index 0000000..73c46ee
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pps-tools/pps-tools_git.bb
@@ -0,0 +1,16 @@
+SUMMARY = "User-space tools for LinuxPPS"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+PV = "0.0.0+git${SRCPV}"
+SRCREV = "0deb9c7e135e9380a6d09e9d2e938a146bb698c8"
+SRC_URI = "git://github.com/ago/pps-tools.git"
+
+S = "${WORKDIR}/git"
+
+do_install() {
+        install -d ${D}${bindir} ${D}${includedir} \
+                   ${D}${includedir}/sys
+        oe_runmake 'DESTDIR=${D}' install
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/procmail/procmail/from-debian-to-fix-compile-errors.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/procmail/procmail/from-debian-to-fix-compile-errors.patch
new file mode 100644
index 0000000..8341a8e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/procmail/procmail/from-debian-to-fix-compile-errors.patch
@@ -0,0 +1,606 @@
+From 898e9514bc889b4a540f667efed95a5af101c824 Mon Sep 17 00:00:00 2001
+From: Li xin <lixin.fnst@cn.fujitsu.com>
+Date: Tue, 2 Dec 2014 07:00:36 +0900
+Subject: [PATCH 1/3] From debian to fix compile errors
+
+Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
+---
+ src/Makefile.0  |  7 +++----
+ src/autoconf    | 64 +++++++++++++-------------------------------------------
+ src/comsat.c    | 65 +++++++++++++++++++--------------------------------------
+ src/fields.c    |  6 +++---
+ src/foldinfo.h  |  2 +-
+ src/formail.c   |  6 +++---
+ src/formisc.c   |  2 +-
+ src/formisc.h   |  2 +-
+ src/mailfold.c  | 14 ++++++++++---
+ src/manconf.c   |  2 +-
+ src/memblk.c    | 24 ++++++++++-----------
+ src/memblk.h    |  2 +-
+ src/network.h   | 10 ++-------
+ src/pipes.c     | 10 ++++-----
+ src/procmail.c  |  3 +--
+ src/recommend.c |  2 +-
+ 16 files changed, 81 insertions(+), 140 deletions(-)
+
+diff --git a/src/Makefile.0 b/src/Makefile.0
+index 6eb5b51..15a2039 100644
+--- a/src/Makefile.0
++++ b/src/Makefile.0
+@@ -40,7 +40,7 @@ multigram: multigram.$(O) $(MG_OBJ) setid
+ 	@cd ..; $(MAKE) config.check
+ 
+ _autotst: _autotst.$(O) sublib.c sublib.h
+-	$(CC) $(CFLAGS) $@.$(O) -o $@ $(LDFLAGS)
++	gcc $@.$(O) -o $@ $(LDFLAGS)
+ 
+ ../autoconf.h: autoconf Makefile ../patchlevel.h
+ 	@echo No this was not make -n >make_n
+@@ -175,17 +175,16 @@ recommend: recommend.$(O) sublib.$(O)
+ 
+ ../man/man.sed: manconf.c ../autoconf.h ../config.h includes.h procmail.h
+ ../man/man.sed: ../patchlevel.h
+-	@$(CC) $(CFLAGS) "-DBINDIR=\"$(VISIBLE_BINDIR)\"" -o _autotst \
++	gcc "-DBINDIR=\"$(VISIBLE_BINDIR)\"" -o _autotst \
+  manconf.c $(LDFLAGS)
+ 	@./_autotst $@
+ 	@echo Housekeeping file >$@
+-	@$(RM) _autotst
+ 
+ clean:
+ 	$(RM) -r _locktest
+ 	$(RM) procmail.$(O) $(PM_OBJ) lockfile.$(O) $(LF_OBJ) formail.$O \
+  $(FM_OBJ) multigram.$(O) $(MG_OBJ) $(BINSS) multigram ../autoconf.h \
+- _autotst* lookfor _locktst* grepfor recommend recommend.$(O) manconf \
++  lookfor _locktst* grepfor recommend recommend.$(O) manconf \
+  _Makefile lock.log *core* targetdir.h setid setid.$(O) gethome \
+  gethome.$(O) make_n realloc.log
+ 
+diff --git a/src/autoconf b/src/autoconf
+index 1cb4c42..ff78048 100755
+--- a/src/autoconf
++++ b/src/autoconf
+@@ -68,8 +68,6 @@
+ #	#define NOfsync
+ #Ok	#define endpwent()
+ #Ok	#define endgrent()
+-#Ok	#define endhostent()
+-#Ok	#define endservent()
+ #Ok	#define endprotoent()
+ #	#define h_0addr_list h_addr
+ #Ok	#define NOpw_passwd
+@@ -896,7 +894,7 @@ int main(){int i=0;
+  {uid_t vuid_t;i+=vuid_t=1;}
+  {gid_t vgid_t;i+=vgid_t=1;}
+ #ifndef NO_COMSAT
+- {struct hostent vhostent;i+=!(vhostent.h_addr_list=0);}
++ {struct addrinfo res; i+=!(res.ai_socktype=0);}
+ #endif
+ #ifndef NOuname
+  {struct utsname vutsname;i+=!(*vutsname.nodename='\0');}
+@@ -917,8 +915,6 @@ do
+   test -z "$i3" && grepfor mode_t 'typedef int mode_t;' && i3=I
+   test -z "$i4" && grepfor uid_t 'typedef int uid_t;' && i4=I
+   test -z "$i5" && grepfor gid_t 'typedef int gid_t;' && i5=I
+-  test -z "$i6" && grepfor h_addr_list '#define h_0addr_list h_addr' && i6=I
+-  test -z "$i6" && grepfor hostent '#define h_0addr_list h_addr' && i6=I
+   test -z "$i6" && grepfor member '#define h_0addr_list h_addr' && i6=I
+   test -z "$i7" && grepfor utsname "#define NOuname			      \
+ /* <sys/utsname.h> is there, but empty */" && i7=I
+@@ -1048,8 +1044,12 @@ int main(){char a[2];
+  {struct utsname b;uname(&b);}
+ #endif
+ #ifndef NO_COMSAT
+- gethostbyname("0");getprotobyname(COMSATprotocol);endhostent();endservent();
+- endprotoent();
++ {
++ struct addrinfo *res, hints;
++ memset(&hints, '\0', sizeof(hints));
++ if(getaddrinfo(COMSAThost,BIFF_serviceport,&hints,&res))
++ 	freeaddrinfo(res);
++ }
+ #endif
+  _exit(0);
+  return 0;}
+@@ -1103,14 +1103,9 @@ grepfor uname "\
+ /* <sys/utsname.h> defines it, the libraries don't */"
+ grepfor endpwent '#define endpwent()'
+ grepfor endgrent '#define endgrent()'
+-if grepfor gethostbyname '#define NO_COMSAT'
++if grepfor getaddrinfo '#define NO_COMSAT'
+ then
+ :
+-else
+-  grepfor getprotobyname '#define UDP_protocolno 17'
+-  grepfor endhostent '#define endhostent()'
+-  grepfor endservent '#define endservent()'
+-  grepfor endprotoent '#define endprotoent()'
+ fi
+ grepfor strstr '#define SLOWstrstr' ||
+  grepfor clock '#define SLOWstrstr'
+@@ -1239,39 +1234,9 @@ int main(argc,argv)int argc;const char*argv[];
+ 	printf("/* Insufficient memory to perform the benchmark! */\n");
+ #endif /* SLOWstrstr */
+ #ifndef NO_COMSAT
+-#ifndef UDP_protocolno
+-     ;{ const struct protoent*p;
+-	if(p=getprotobyname(COMSATprotocol))
+-	 { printf("#define UDP_protocolno %d\n",p->p_proto);
+-#else
+-     ;{ if(1)
+-	 {
+-#endif
+-	   ;{ const struct servent*serv;
+-	      if(serv=getservbyname(COMSATservice,COMSATprotocol))
+-		 printf("#define BIFF_serviceport \"%d\"\n",
+-		  ntohs(serv->s_port));
+-	    }
+-#ifdef AF_INET
+-	   ;{ const struct hostent*host;
+-	      if(!strcmp("localhost",COMSAThost)&&
+-	       (host=gethostbyname(COMSAThost))&&
+-	       host->h_0addr_list&&host->h_addrtype==AF_INET&&
+-	       host->h_length)
+-	       { int j=host->h_length;
+-		 const unsigned char*ad=(void*)host->h_0addr_list;
+-		 printf("#define IP_localhost {");
+-		 printf("%d",*ad++);
+-		 while(--j)
+-		    printf(",%d",*ad++);
+-		 puts("}");
+-	       }
+-	    }
++#ifndef AF_INET
++	puts("#define NO_COMSAT");
+ #endif /* AF_INET */
+-	 }
+-	else
+-	   puts("#define NO_COMSAT");
+-      }
+ #endif /* NO_COMSAT */
+      ;{ unsigned long s=(size_t)~0;int bits;
+ 	for(bits=1;s>>=1;bits++);
+@@ -1470,15 +1435,14 @@ cat /usr/lib/sendmail.cf /etc/sendmail.cf /etc/mail/sendmail.cf 2>$DEVNULL |
+  grep 'Mlocal.*procmail' >$DEVNULL ||
+  echo '#define CF_no_procmail_yet' >>$ACONF
+ 
+-cat /usr/lib/sendmail.cf /etc/sendmail.cf /etc/mail/sendmail.cf 2>$DEVNULL |
+- grep '^V' >$DEVNULL ||
+- echo '#define buggy_SENDMAIL' >>$ACONF
++# cat /usr/lib/sendmail.cf /etc/sendmail.cf /etc/mail/sendmail.cf 2>$DEVNULL |
++#  grep '^V' >$DEVNULL ||
++#  echo '#define buggy_SENDMAIL' >>$ACONF
+ 
+ lpath='/bin'
+ bins="/bin"
+ 
+-for newd in /usr/bin /usr/ucb /usr/5bin $BINDIR /local/bin /usr/local/bin \
+- /global/bin /usr/bin/X11 /usr/X*/bin
++for newd in /usr/bin $BINDIR /usr/bin/X11 /usr/X*/bin
+ do
+   if test -d $newd
+   then
+diff --git a/src/comsat.c b/src/comsat.c
+index 77dba34..5082b16 100644
+--- a/src/comsat.c
++++ b/src/comsat.c
+@@ -27,7 +27,8 @@ static /*const*/char rcsid[]=
+ #include "comsat.h"
+ 
+ static int csvalid;		     /* is it turned on with a good address? */
+-static struct sockaddr_in csaddr;
++static struct addrinfo cai;
++static struct sockaddr *csaddr;
+ static char*cslastf,*cslgname;
+ 
+ void setlfcs(folder)const char*folder;		/* set lastfolder for comsat */
+@@ -62,56 +63,32 @@ void setlgcs(name)const char*name;		   /* set logname for comsat */
+ }
+ 
+ int setcomsat(chp)const char*chp;
+-{ char*chad;int newvalid; struct sockaddr_in newaddr;
++{ char*chad;int newvalid; struct addrinfo *res, hints;
+   chad=strchr(chp,SERV_ADDRsep);			     /* @ separator? */
+   if(!chad&&!renvint(-1L,chp))
+      return csvalid=0;					/* turned off comsat */
+   newvalid=1;
+   if(chad)
+      *chad++='\0';				      /* split the specifier */
++  if(!chad||!*chp)					       /* no service */
++     chp=BIFF_serviceport;				/* new balls please! */
+   if(!chad||!*chad)						  /* no host */
+-#ifndef IP_localhost			      /* Is "localhost" preresolved? */
+      chad=COMSAThost;					/* nope, use default */
+-#else /* IP_localhost */
+-   { static const unsigned char ip_localhost[]=IP_localhost;
+-     newaddr.sin_family=AF_INET;
+-     tmemmove(&newaddr.sin_addr,ip_localhost,sizeof ip_localhost);
+-   }
+-  else
+-#endif /* IP_localhost */
+-   { const struct hostent*host;		      /* what host?  paranoid checks */
+-     if(!(host=gethostbyname(chad))||!host->h_0addr_list)
+-      { bbzero(&newaddr.sin_addr,sizeof newaddr.sin_addr);
+-	newvalid=0;			     /* host can't be found, too bad */
+-      }
+-     else
+-      { newaddr.sin_family=host->h_addrtype;	     /* address number found */
+-	tmemmove(&newaddr.sin_addr,host->h_0addr_list,host->h_length);
+-      }
+-     endhostent();
+-   }
+-  if(newvalid)						  /* so far, so good */
+-   { int s;
+-     if(!*chp)						       /* no service */
+-	chp=BIFF_serviceport;				/* new balls please! */
+-     s=strtol(chp,&chad,10);
+-     if(chp!=chad)			       /* the service is not numeric */
+-	newaddr.sin_port=htons((short)s);		    /* network order */
+-     else
+-      { const struct servent*serv;
+-	serv=getservbyname(chp,COMSATprotocol);		   /* so get its no. */
+-	if(serv)
+-	   newaddr.sin_port=serv->s_port;
+-	else
+-	 { newaddr.sin_port=htons((short)0);		  /* no such service */
+-	   newvalid=0;
+-	 }
+-	endservent();
+-      }
+-   }
++  bzero(&hints,sizeof(hints));
++  hints.ai_socktype=SOCK_DGRAM;
++  hints.ai_flags=AI_ADDRCONFIG;
++  if(getaddrinfo(chad,chp,&hints,&res))
++     newvalid=0;
++  
+   onguard();				    /* update the address atomically */
+   if(csvalid=newvalid)
+-     tmemmove(&csaddr,&newaddr,sizeof(newaddr));
++   { if(csaddr)
++        free(csaddr);
++     csaddr=malloc(res->ai_addrlen);
++     tmemmove(csaddr,res->ai_addr,res->ai_addrlen);
++     tmemmove(&cai,res,sizeof(cai));
++     freeaddrinfo(res);
++   }
+   offguard();
+   return newvalid;
+ }
+@@ -120,7 +97,7 @@ void sendcomsat(folder)const char*folder;
+ { int s;const char*p;
+   if(!csvalid||!buf)		  /* is comat on and set to a valid address? */
+      return;
+-  if(!*cslgname||strlen(cslgname)+2>linebuf)	       /* is $LOGNAME bogus? */
++  if(!cslgname||!*cslgname||strlen(cslgname)+2>linebuf)/* is $LOGNAME bogus? */
+      return;
+   if(!(p=folder?folder:cslastf))		     /* do we have a folder? */
+      return;
+@@ -132,8 +109,8 @@ void sendcomsat(folder)const char*folder;
+    }
+   strlcat(buf,COMSATxtrsep,linebuf);			 /* custom seperator */
+   strlcat(buf,p,linebuf);			  /* where was it delivered? */
+-  if((s=socket(AF_INET,SOCK_DGRAM,UDP_protocolno))>=0)
+-   { sendto(s,buf,strlen(buf),0,(struct sockaddr*)&csaddr,sizeof(csaddr));
++  if((s=socket(cai.ai_family,cai.ai_socktype,cai.ai_protocol))>=0)
++   { sendto(s,buf,strlen(buf),0,csaddr,cai.ai_addrlen);
+      rclose(s);
+      yell("Notified comsat:",buf);
+    }
+diff --git a/src/fields.c b/src/fields.c
+index a2bd77f..37ed154 100644
+--- a/src/fields.c
++++ b/src/fields.c
+@@ -110,16 +110,16 @@ void dispfield(p)register const struct field*p;
+ 		    /* try and append one valid field to rdheader from stdin */
+ int readhead P((void))
+ { int idlen;
+-  getline();
++  get_line();
+   if((idlen=breakfield(buf,buffilled))<=0) /* not the start of a valid field */
+      return 0;
+   if(idlen==STRLEN(FROM)&&eqFrom_(buf))			/* it's a From_ line */
+    { if(rdheader)
+ 	return 0;			       /* the From_ line was a fake! */
+-     for(;buflast=='>';getline());	    /* gather continued >From_ lines */
++     for(;buflast=='>';get_line());	    /* gather continued >From_ lines */
+    }
+   else
+-     for(;;getline())		      /* get the rest of the continued field */
++     for(;;get_line())		      /* get the rest of the continued field */
+       { switch(buflast)			     /* will this line be continued? */
+ 	 { case ' ':case '\t':				  /* yep, it sure is */
+ 	      continue;
+diff --git a/src/foldinfo.h b/src/foldinfo.h
+index 9e4ebb6..797f9be 100644
+--- a/src/foldinfo.h
++++ b/src/foldinfo.h
+@@ -10,7 +10,7 @@
+ 
+ #define ft_lock(type)	   ((type)>ft_MAILDIR)		   /* kernel lock fd */
+ #define ft_atime(type)	   ((type)==ft_FILE)	      /* force atime < mtime */
+-#define ft_dotlock(type)   ((type)==ft_FILE)		 /* dotlock $DEFAULT */
++#define ft_dotlock(type)   ((type)>ft_MAILDIR)		 /* dotlock $DEFAULT */
+ #define ft_delim(type)	   ((type)==ft_FILE)		   /* add MMDF delim */
+ #define ft_checkcloser(type) ((type)>ft_MH)
+ #define ft_forceblank(type) ((type)!=ft_MAILDIR)  /* force blank line at end */
+diff --git a/src/formail.c b/src/formail.c
+index fe5e6be..1f5c9dd 100644
+--- a/src/formail.c
++++ b/src/formail.c
+@@ -758,9 +758,9 @@ startover:
+ 	lputssn(buf,buffilled),ctlength-=buffilled,buffilled=lnl=0;
+      ;{ int tbl=buflast,lwr='\n';
+ 	while(--ctlength>=0&&tbl!=EOF)	       /* skip Content-Length: bytes */
+-	   lnl=lwr==tbl&&lwr=='\n',putcs(lwr=tbl),tbl=getchar();
++	   lnl=lwr==tbl&&lwr=='\n',lputcs(lwr=tbl),tbl=getchar();
+ 	if((buflast=tbl)=='\n'&&lwr!=tbl)	/* just before a line break? */
+-	   putcs('\n'),buflast=getchar();		/* wrap up loose end */
++	   lputcs('\n'),buflast=getchar();		/* wrap up loose end */
+       }
+      if(!quiet&&ctlength>0)
+       { charNUM(num,ctlength);
+@@ -819,7 +819,7 @@ splitit:       { if(!lnl)   /* did the previous mail end with an empty line? */
+       { if(split)		       /* gobble up the next start separator */
+ 	 { buffilled=0;
+ #ifdef sMAILBOX_SEPARATOR
+-	   getline();buffilled=0;		 /* but only if it's defined */
++	   get_line();buffilled=0;		 /* but only if it's defined */
+ #endif
+ 	   if(buflast!=EOF)					   /* if any */
+ 	      goto splitit;
+diff --git a/src/formisc.c b/src/formisc.c
+index d6cab90..338733b 100644
+--- a/src/formisc.c
++++ b/src/formisc.c
+@@ -115,7 +115,7 @@ void loadchar(c)const int c;		      /* append one character to buf */
+   buf[buffilled++]=c;
+ }
+ 
+-int getline P((void))			   /* read a newline-terminated line */
++int get_line P((void))			   /* read a newline-terminated line */
+ { if(buflast==EOF)			 /* at the end of our Latin already? */
+    { loadchar('\n');					  /* fake empty line */
+      return EOF;					  /* spread the word */
+diff --git a/src/formisc.h b/src/formisc.h
+index 1c4ca20..f25211c 100644
+--- a/src/formisc.h
++++ b/src/formisc.h
+@@ -17,4 +17,4 @@ void
+ char*
+  skipwords P((char*start));
+ int
+- getline P((void));
++ get_line P((void));
+diff --git a/src/mailfold.c b/src/mailfold.c
+index 917b502..6c8bcf4 100644
+--- a/src/mailfold.c
++++ b/src/mailfold.c
+@@ -30,6 +30,7 @@ static /*const*/char rcsid[]=
+ 
+ int logopened,rawnonl;
+ off_t lasttell;
++static int trunced;
+ static long lastdump;
+ static volatile int mailread;	/* if the mail is completely read in already */
+ static struct dyna_array confield;		  /* escapes, concatenations */
+@@ -81,6 +82,7 @@ long dump(s,type,source,len)const int s,type;const char*source;
+  long len;
+ { int i;long part;
+   lasttell=i= -1;SETerrno(EBADF);
++  trunced=0;
+   if(s>=0)
+    { if(ft_lock(type)&&(lseek(s,(off_t)0,SEEK_END),fdlock(s)))
+ 	nlog("Kernel-lock failed\n");
+@@ -120,13 +122,18 @@ jin:	while(part&&(i=rwrite(s,source,BLKSIZ<part?BLKSIZ:(int)part)))
+       }
+ writefin:
+      i=type!=ft_PIPE&&fsync(s)&&errno!=EINVAL;	  /* EINVAL => wasn't a file */
++     if ((i||len)&&lasttell>=0)
++      { int serrno=errno;
++	if(!ftruncate(s,lasttell)) trunced=1;
++	SETerrno(serrno);
++      }
+      if(ft_lock(type))
+       { int serrno=errno;		       /* save any error information */
+ 	if(fdunlock())
+ 	   nlog("Kernel-unlock failed\n");
+ 	SETerrno(serrno);
+       }
+-     i=rclose(s)||i;
++     i=rclose(s)||i; /* if this fails, we should truncate, but it's too late */
+    }			   /* return an error even if nothing was to be sent */
+   return i&&!len?-1:len;
+ }
+@@ -237,7 +244,7 @@ dumpf:	 { switch(errno)
+ #endif
+ 	      default:writeerr(buf);
+ 	    }
+-	   if(lasttell>=0&&!truncate(boxname,lasttell)&&(logopened||verbose))
++	   if(lasttell>=0&&trunced&&(logopened||verbose))
+ 	      nlog("Truncated file to former size\n");	    /* undo garbage */
+ ret0:	   return 0;
+ 	 }
+@@ -378,7 +385,8 @@ void readmail(rhead,tobesent)const long tobesent;
+ 	dfilled=mailread=0;
+      else if(rhead)				/* only read in a new header */
+       { memblk new;
+-	dfilled=mailread=0;makeblock(&new,0);readdyn(&new,&dfilled,0);
++	dfilled=mailread=0;makeblock(&new,0);
++	readdyn(&new,&dfilled,thebody-themail.p);
+ 	if(tobesent>dfilled&&isprivate)		     /* put it in place here */
+ 	 { tmemmove(themail.p+dfilled,thebody,filled-=tobesent);
+ 	   tmemmove(themail.p,new.p,dfilled);
+diff --git a/src/manconf.c b/src/manconf.c
+index a9e9f1c..5c8ec36 100644
+--- a/src/manconf.c
++++ b/src/manconf.c
+@@ -233,7 +233,7 @@ a security violation was found (e.g. \1.B \2-@PRESERVOPT@\1or variable\
+  \2-@PRESERVOPT@\1and\1.BR \2-@FROMWHOPT@ .\1");
+   pc("LMTPOPT",LMTPOPT);
+ #else
+-  ps("LMTPOPTdesc","");ps("LMTPusage","");
++  ps("LMTPOPTdesc","");ps("LMTPusage","\1");
+ #endif
+   pname("INIT_UMASK",0);printf("0%lo/g\n",(unsigned long)INIT_UMASK);lines--;
+   pn("DEFlinebuf",DEFlinebuf);
+diff --git a/src/memblk.c b/src/memblk.c
+index e2f13f0..97e02d3 100644
+--- a/src/memblk.c
++++ b/src/memblk.c
+@@ -51,11 +51,11 @@ void lockblock(mb)memblk*const mb;
+ {
+ #ifdef USE_MMAP
+   if(mb->fd>=0)
+-   { long len=mb->len+1;
+-     if(munmap(mb->p,len))
+-	mmapfailed(len);		      /* don't want to continue here */
+-     if((mb->p=mmap(0,len,PROT_READ,MAP_PRIVATE,mb->fd,(off_t)0))==MAP_FAILED)
+-	mmapfailed(len);
++   { long mlen=mb->len+1;
++     if(munmap(mb->p,mlen))
++	mmapfailed(mlen);		      /* don't want to continue here */
++     if((mb->p=mmap(0,mlen,PROT_READ,MAP_PRIVATE,mb->fd,(off_t)0))==MAP_FAILED)
++	mmapfailed(mlen);
+      close(mb->fd);
+      mb->fd=ropen(devnull,O_RDWR,0);		/* XXX Perhaps -1 is better? */
+    }
+@@ -77,8 +77,8 @@ int resizeblock(mb,len,nonfatal)memblk*const mb;const long len;
+      strcpy(filename,MMAP_DIR);
+      if(unique(filename,strchr(filename,'\0'),MMAP_FILE_LEN,MMAP_PERM,0,0)&&
+ 	(mb->fd=ropen(filename,O_RDWR,MMAP_PERM),unlink(filename),mb->fd>=0))
+-      { mb->filelen=len;
+-	if(lseek(mb->fd,mb->filelen-1,SEEK_SET)<0||1!=rwrite(mb->fd,empty,1))
++      { mb->filelen=len+1;
++	if(lseek(mb->fd,len,SEEK_SET)<0||1!=rwrite(mb->fd,empty,1))
+ dropf:	 { close(mb->fd);mb->fd= -1;
+ 	   if(verbose)nlog("Unable to extend or use tempfile");
+ 	 }
+@@ -98,9 +98,9 @@ dropf:	 { close(mb->fd);mb->fd= -1;
+       }
+    }
+   if(mb->fd>=0)
+-   { if(len>mb->filelen)				  /* need to extend? */
+-      { mb->filelen=len;
+-	if(lseek(mb->fd,mb->filelen-1,SEEK_SET)<0||1!=rwrite(mb->fd,empty,1))
++   { if(len>=mb->filelen)				  /* need to extend? */
++      { mb->filelen=len+1;
++	if(lseek(mb->fd,len,SEEK_SET)<0||1!=rwrite(mb->fd,empty,1))
+ 	 { char*p=malloc(len+1);	   /* can't extend, switch to malloc */
+ 	   tmemmove(p,mb->p,mb->len);
+ 	   munmap(mb->p,mb->len+1);
+@@ -124,9 +124,9 @@ mmap:	if((mb->p=mmap(0,len+1,P_RW,MAP_SHARED,mb->fd,(off_t)0))==MAP_FAILED)
+    }
+   else
+      mb->p=realloc(mb->p,len+1);
+-  mb->len=len+1;
+-  mb->p[len]='\0';
++  mb->len=len;
+ ret1:
++  mb->p[len]='\0';
+   return 1;
+ }
+ 
+diff --git a/src/memblk.h b/src/memblk.h
+index 6fd1d1d..b57f369 100644
+--- a/src/memblk.h
++++ b/src/memblk.h
+@@ -1,6 +1,6 @@
+ typedef struct memblk {
+     char*p;						  /* where it starts */
+-    long len;					 /* currently allocated size */
++    long len;			 /* current size, not including trailing NUL */
+ #ifdef USE_MMAP
+     off_t filelen;				     /* how long is the file */
+     int fd;					   /* file which is mmap()ed */
+diff --git a/src/network.h b/src/network.h
+index d7d08f2..b09b6c4 100644
+--- a/src/network.h
++++ b/src/network.h
+@@ -1,19 +1,13 @@
+ /*$Id: network.h,v 1.7 1997/04/02 03:15:41 srb Exp $*/
+ 
+-#include <sys/socket.h>			/* socket() sendto() AF_INET
++#include <sys/socket.h>			/* socket() sendto() */
+ 					/* SOCK_DGRAM */
+-#include <netdb.h>			/* gethostbyname() getservbyname()
+-					/* getprotobyname() */
+-#include <netinet/in.h>			/* htons() struct sockaddr_in */
++#include <netdb.h>			/* getaddrinfo() */
+ 
+ #ifndef BIFF_serviceport
+ #define BIFF_serviceport	COMSATservice
+ #endif
+ 
+-#ifndef h_0addr_list
+-#define h_0addr_list	h_addr_list[0]		      /* POSIX struct member */
+-#endif
+-
+ #ifndef NO_const      /* since network.h is outside the autoconf const check */
+ #ifdef const		    /* loop, we need this backcheck for some systems */
+ #undef const
+diff --git a/src/pipes.c b/src/pipes.c
+index 1fdb9e6..7754300 100644
+--- a/src/pipes.c
++++ b/src/pipes.c
+@@ -145,7 +145,9 @@ int pipthrough(line,source,len)char*line,*source;const long len;
+   if(Stdout)
+    { *(eq=strchr(Stdout,'\0')-1)='\0';			     /* chop the '=' */
+      if(!(backblock=getenv(Stdout)))			/* no current value? */
+-	PRDB=PWRB= -1;
++      { PRDB=PWRB= -1;
++	backlen=0;
++      }
+      else
+       { backlen=strlen(backblock);
+ 	goto pip;
+@@ -155,9 +157,7 @@ int pipthrough(line,source,len)char*line,*source;const long len;
+ pip: rpipe(pbackfd);
+   rpipe(pinfd);						 /* main pipes setup */
+   if(!(pidchild=sfork()))			/* create a sending procmail */
+-   { if(Stdout&&backblock)
+-	backlen=strlen(backblock);
+-     else
++   { if(!Stdout)
+ 	backblock=source,backlen=len;
+      childsetup();rclose(PRDI);rclose(PRDB);
+      rpipe(poutfd);rclose(STDOUT);
+@@ -194,7 +194,7 @@ perr:	      progerr(line,excode,pwait==4);  /* I'm going to tell my mommy! */
+      makeblock(&temp,Stdfilled);
+      tmemmove(temp.p,Stdout,Stdfilled);
+      readdyn(&temp,&Stdfilled,Stdfilled+backlen+1);
+-     Stdout=realloc(Stdout,&Stdfilled+1);
++     Stdout=realloc(Stdout,Stdfilled+1);
+      tmemmove(Stdout,temp.p,Stdfilled+1);
+      freeblock(&temp);
+      retStdout(Stdout,pwait&&pipw,!backblock);
+diff --git a/src/procmail.c b/src/procmail.c
+index 4a232f2..2bb449b 100644
+--- a/src/procmail.c
++++ b/src/procmail.c
+@@ -652,8 +652,7 @@ commint:do skipspace();					  /* skip whitespace */
+ 	      nrcond= -1;
+ 	   if(tolock)		 /* clear temporary buffer for lockfile name */
+ 	      free(tolock);
+-	   for(i=maxindex(flags);i;i--)			  /* clear the flags */
+-	      flags[i]=0;
++	   bbzero(flags,sizeof(flags));		  /* clear the flags */
+ 	   for(tolock=0,locknext=0;;)
+ 	    { chp=skpspace(chp);
+ 	      switch(i= *chp++)
+diff --git a/src/recommend.c b/src/recommend.c
+index 5d41e01..9002268 100644
+--- a/src/recommend.c
++++ b/src/recommend.c
+@@ -47,7 +47,7 @@ int main(argc,argv)const int argc;const char*const argv[];
+      printf("chmod %lo %s\n",(unsigned long)(sgid|PERMIS),argv[2]);
+   else if(chmdir==1)
+      goto nogchmod;
+-  if(chmdir)
++  if(0)
+      printf("chmod %c+w %s/.\n",chmdir==1?'g':'a',mailspooldir);
+ nogchmod:
+   return EXIT_SUCCESS;
+-- 
+1.8.4.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/procmail/procmail/from-debian-to-fix-man-file.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/procmail/procmail/from-debian-to-fix-man-file.patch
new file mode 100644
index 0000000..7b3c643
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/procmail/procmail/from-debian-to-fix-man-file.patch
@@ -0,0 +1,83 @@
+From 3cbc5e6e624235f9ba40cfd5a2b18c11be371399 Mon Sep 17 00:00:00 2001
+From: Li xin <lixin.fnst@cn.fujitsu.com>
+Date: Tue, 2 Dec 2014 07:02:01 +0900
+Subject: [PATCH 2/3] From debian to fix man file
+
+Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
+---
+ man/procmail.man   | 24 +++++++++++++++++-------
+ man/procmailrc.man |  2 +-
+ 2 files changed, 18 insertions(+), 8 deletions(-)
+
+diff --git a/man/procmail.man b/man/procmail.man
+index 175043a..1274ce8 100644
+--- a/man/procmail.man
++++ b/man/procmail.man
+@@ -44,11 +44,11 @@ at the end.
+ should be invoked automatically over the
+ .B @DOT_FORWARD@
+ file mechanism as soon as mail arrives.  Alternatively, when installed by
+-a system administrator, it can be invoked from within the mailer immediately.
+-When invoked, it first sets some environment variables to default values,
+-reads the mail message from stdin until an EOF, separates the body from the
+-header, and then, if no command line arguments are present, it starts to look
+-for a file named
++a system administrator (and in the standard Red Hat Linux configuration), it
++can be invoked from within the mailer immediately.  When invoked, it
++first sets some environment variables to default values, reads the mail message from
++stdin until an EOF, separates the body from the header, and then, if no command line
++arguments are present, it starts to look for a file named
+ .BR @PROCMAILRC@ .
+ According to the processing recipes in this file,
+ the mail message that just arrived gets distributed into the right folder
+@@ -166,7 +166,8 @@ must be specified on the command line.  After the rcfile, procmail will
+ accept an unlimited number of arguments.@ETCRCS_desc@
+ For some advanced usage of this option you should look in the
+ .B EXAMPLES
+-section below.@LMTPOPTdesc@.SH ARGUMENTS
++section below.@LMTPOPTdesc@
++.SH ARGUMENTS
+ Any arguments containing an '=' are considered to be environment variable
+ assignments, they will
+ .I all
+@@ -723,6 +724,15 @@ path.@FW_comment@
+ .fi
+ .ad
+ .PP
++Some mailers (notably exim) do not currently accept the above syntax.
++In such case use this instead:
++.PP
++.na
++.nf
++|/usr/bin/procmail
++.fi
++.ad
++.PP
+ Procmail can also be invoked to postprocess an already filled system
+ mailbox.  This can be useful if you don't want to or can't use a
+ $HOME/@DOT_FORWARD@ file (in which case the following script could
+@@ -754,7 +764,7 @@ exit 0
+ .SS "A sample small @PROCMAILRC@:"
+ .na
+ .nf
+-PATH=/bin:/usr/bin:@BINDIR@
++PATH=/usr/local/bin:/usr/bin:/bin
+ MAILDIR=$HOME/Mail      #you'd better make sure it exists
+ DEFAULT=$MAILDIR/mbox   #completely optional
+ LOGFILE=$MAILDIR/from   #recommended
+diff --git a/man/procmailrc.man b/man/procmailrc.man
+index 472035f..7bf08dd 100644
+--- a/man/procmailrc.man
++++ b/man/procmailrc.man
+@@ -779,7 +779,7 @@ one trailing newline will be stripped.
+ .PP
+ Some non-optimal and non-obvious regexps set MATCH to an incorrect
+ value.  The regexp can be made to work by removing one or more unneeded
+-'*', '+', or '?' operator on the left-hand side of the \e/ token.
++\&'*', '+', or '?' operator on the left-hand side of the \e/ token.
+ .SH MISCELLANEOUS
+ If the regular expression contains `\fB@TO_key@\fP' it will be substituted by
+ .na
+-- 
+1.8.4.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/procmail/procmail/from-debian-to-modify-parameters.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/procmail/procmail/from-debian-to-modify-parameters.patch
new file mode 100644
index 0000000..a94e436
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/procmail/procmail/from-debian-to-modify-parameters.patch
@@ -0,0 +1,127 @@
+From 95c742242769721f963c50702e1445fb70c6a45a Mon Sep 17 00:00:00 2001
+From: Li xin <lixin.fnst@cn.fujitsu.com>
+Date: Tue, 2 Dec 2014 07:07:33 +0900
+Subject: [PATCH 3/3] From debian to modify parameters
+
+Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
+---
+ Makefile | 16 ++++++++--------
+ config.h | 13 +++++++------
+ 2 files changed, 15 insertions(+), 14 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 1e9568c..9e48201 100644
+--- a/Makefile
++++ b/Makefile
+@@ -23,7 +23,7 @@ MAN5DIR		= $(MANDIR)/man$(MAN5SUFFIX)
+ 
+ # Uncomment to install compressed man pages (possibly add extra suffix
+ # to the definitions of MAN?DIR and/or MAN?SUFFIX by hand)
+-#MANCOMPRESS = compress
++# MANCOMPRESS = compress
+ 
+ ############################*#
+ # Things that can be made are:
+@@ -55,7 +55,7 @@ MAN5DIR		= $(MANDIR)/man$(MAN5SUFFIX)
+ 
+ LOCKINGTEST=__defaults__
+ 
+-#LOCKINGTEST=/tmp .	# Uncomment and add any directories you see fit.
++LOCKINGTEST=/tmp .	# Uncomment and add any directories you see fit.
+ #			If LOCKINGTEST is defined, autoconf will NOT
+ #			prompt you to enter additional directories.
+ #			See INSTALL for more information about the
+@@ -65,7 +65,7 @@ LOCKINGTEST=__defaults__
+ # Only edit below this line if you *think* you know what you are doing #
+ ########################################################################
+ 
+-#LOCKINGTEST=100	# Uncomment (and change) if you think you know
++LOCKINGTEST=100	# Uncomment (and change) if you think you know
+ #			it better than the autoconf lockingtests.
+ #			This will cause the lockingtests to be hotwired.
+ #			100	to enable fcntl()
+@@ -74,20 +74,20 @@ LOCKINGTEST=__defaults__
+ #			Or them together to get the desired combination.
+ 
+ # Optional system libraries we search for
+-SEARCHLIBS = -lm -ldir -lx -lsocket -lnet -linet -lnsl_s -lnsl_i -lnsl -lsun \
+- -lgen -lsockdns -ldl
++SEARCHLIBS = -lm -ldir -lx -lsocket -lnet -linet -lnsl_s -lnsl_i -lsun \
++ -lgen -lsockdns
+ #			-lresolv	# not really needed, is it?
+ 
+ # Informal list of directories where we look for the libraries in SEARCHLIBS
+-LIBPATHS=/lib /usr/lib /usr/local/lib
++LIBPATHS=/lib /usr/lib
+ 
+ GCC_WARNINGS = -O2 -pedantic -Wreturn-type -Wunused -Wformat -Wtraditional \
+  -Wpointer-arith -Wconversion -Waggregate-return \
+  #-Wimplicit -Wshadow -Wid-clash-6 #-Wuninitialized
+ 
+ # The place to put your favourite extra cc flag
+-CFLAGS0 = -O #$(GCC_WARNINGS)
+-LDFLAGS0= -s
++CFLAGS0 = $(RPM_OPT_FLAGS) #$(GCC_WARNINGS)
++LDFLAGS0= 
+ # Read my libs :-)
+ LIBS=
+ 
+diff --git a/config.h b/config.h
+index c4135a9..a07453f 100644
+--- a/config.h
++++ b/config.h
+@@ -35,7 +35,8 @@
+  */
+ /*#define DEFSPATH	"PATH=/bin:/usr/bin"			/* */
+ /*#define DEFPATH	"PATH=$HOME/bin:/bin:/usr/bin"		/* */
+-
++#define DEFPATH	"PATH=$HOME/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin"		/* */
++ 
+ /* every environment variable appearing in PRESTENV will be set or wiped
+  * out of the environment (variables without an '=' sign will be thrown
+  * out), e.g. you could define PRESTENV as follows:
+@@ -46,13 +47,13 @@
+  */
+ #define PRESTENV	{"IFS","ENV","PWD",0}
+ 
+-/*#define GROUP_PER_USER			/* uncomment this if each
++#define GROUP_PER_USER			/* uncomment this if each
+ 						   user has his or her own
+ 	group and procmail can therefore trust a $HOME/.procmailrc that
+ 	is group writable or contained in a group writable home directory
+ 	if the group involved is the user's default group. */
+ 
+-/*#define LMTP					/* uncomment this if you
++#define LMTP					/* uncomment this if you
+ 						   want to use procmail
+ 	as an LMTP (rfc2033) server, presumably for invocation by an MTA.
+ 	The file examples/local_procmail_lmtp.m4 contains info on how to
+@@ -79,7 +80,7 @@
+ 
+ /*#define NO_fcntl_LOCK		/* uncomment any of these three if you	     */
+ /*#define NO_lockf_LOCK		/* definitely do not want procmail to make   */
+-/*#define NO_flock_LOCK		/* use of those kernel-locking methods	     */
++#define NO_flock_LOCK		/* use of those kernel-locking methods	     */
+ 				/* If you set LOCKINGTEST to a binary number
+ 	than there's no need to set these.  These #defines are only useful
+ 	if you want to disable particular locking styles but are unsure which
+@@ -91,14 +92,14 @@
+ 	restriction does not apply to the /etc/procmailrc and
+ 	/etc/procmailrcs files) */
+ 
+-/*#define NO_NFS_ATIME_HACK	/* uncomment if you're definitely not using
++#define NO_NFS_ATIME_HACK	/* uncomment if you're definitely not using
+ 				   NFS mounted filesystems and can't afford
+ 	procmail to sleep for 1 sec. before writing to an empty regular
+ 	mailbox.  This lets programs correctly judge whether there is unread
+ 	mail present.  procmail automatically suppresses this when it isn't
+ 	needed or under heavy load. */
+ 
+-/*#define DEFsendmail	"/usr/sbin/sendmail"	/* uncomment and/or change if
++#define DEFsendmail	"/usr/sbin/sendmail"	/* uncomment and/or change if
+ 						   the autoconfigured default
+ 	SENDMAIL is not suitable.  This program should quack like a sendmail:
+ 	it should accept the -oi flag (to tell it to _not_ treat a line
+-- 
+1.8.4.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/procmail/procmail/man-file-mailstat.1-from-debian.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/procmail/procmail/man-file-mailstat.1-from-debian.patch
new file mode 100644
index 0000000..46d973e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/procmail/procmail/man-file-mailstat.1-from-debian.patch
@@ -0,0 +1,60 @@
+From 8ac56108e5f0a72d1bec0fb4f1fa4763a2479331 Mon Sep 17 00:00:00 2001
+From: Li xin <lixin.fnst@cn.fujitsu.com>
+Date: Tue, 2 Dec 2014 06:56:14 +0900
+Subject: [PATCH] man file mailstat.1 from debian
+
+Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
+---
+ debian/mailstat.1 | 40 ++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 40 insertions(+)
+ create mode 100644 debian/mailstat.1
+
+diff --git a/debian/mailstat.1 b/debian/mailstat.1
+new file mode 100644
+index 0000000..f13265a
+--- /dev/null
++++ b/debian/mailstat.1
+@@ -0,0 +1,40 @@
++.TH MAILSTAT 1
++.SH NAME
++mailstat \- shows mail-arrival statistics
++.SH SYNOPSIS
++.B mailstat
++[\-klmots] [logfile]
++.SH DESCRIPTION
++.B mailstat
++parses a procmail-generated $LOGFILE and displays
++a summary about the messages delivered to all folders
++(total size, average size, nr of messages).
++The $LOGFILE is truncated to zero length, unless the
++.B -k
++option is used.
++Exit code 0 if mail arrived, 1 if no mail arrived.
++.SH OPTIONS
++.TP
++.I \-k
++keep logfile intact
++.TP
++.I \-l
++long display format
++.TP
++.I \-m
++merge any errors into one line
++.TP
++.I \-o
++use the old logfile
++.TP
++.I \-t
++terse display format
++.TP
++.I \-s
++silent in case of no mail
++.SH NOTES
++Customise to your heart's content, this program is only provided as a
++guideline.
++.SH AUTHOR
++This manual page was written by Santiago Vila <sanvila@debian.org>
++for the Debian GNU/Linux distribution (but may be used by others).
+-- 
+1.8.4.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/procmail/procmail_3.22.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/procmail/procmail_3.22.bb
new file mode 100644
index 0000000..1063654
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/procmail/procmail_3.22.bb
@@ -0,0 +1,44 @@
+SUMMARY = "Mail processing program"
+DESCRIPTION = "Procmail can be used to create mail-servers, mailing lists, sort your\
+incoming mail into separate folders/files (real convenient when subscribing\
+to one or more mailing lists or for prioritising your mail), preprocess\
+your mail, start any programs upon mail arrival (e.g. to generate different\
+chimes on your workstation for different types of mail) or selectively\
+forward certain incoming mail automatically to someone."
+HOMEPAGE = "http://www.procmail.org/"
+SECTION = "Applications/System"
+
+SRC_URI = "http://www.ring.gr.jp/archives/net/mail/${BPN}/${BP}.tar.gz \
+    file://from-debian-to-fix-compile-errors.patch \
+    file://from-debian-to-modify-parameters.patch \
+    file://from-debian-to-fix-man-file.patch \
+    file://man-file-mailstat.1-from-debian.patch"
+SRC_URI[md5sum] = "1678ea99b973eb77eda4ecf6acae53f1"
+SRC_URI[sha256sum] = "087c75b34dd33d8b9df5afe9e42801c9395f4bf373a784d9bc97153b0062e117"
+
+LICENSE = "GPL-2.0 & Artistic-1.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a71e50e197a992c862379e576e669757 \
+    file://Artistic;md5=505e00d03c3428cde21b17b2a386590e"
+
+DEPENDS = "libnet"
+inherit autotools-brokensep
+do_configure() {
+    find examples -type f | xargs chmod 644
+    export CC="${BUILD_CC}"
+    export LD="${BUILD_LD}"
+    export CFLAGS="${BUILD_CFLAGS}"
+    export AR="${BUILD_AR}"
+    export AS="${BUILD_AS}"
+    make TARGET_CFLAGS="$TARGET_CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" autoconf.h
+}
+
+do_compile() {
+    oe_runmake -i TARGET_CFLAGS="$TARGET_CFLAGS -Wno-comments -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
+}
+
+do_install() {
+    install -d ${D}${bindir}
+    install -d ${D}${mandir}/man{1,5}
+    oe_runmake -i BASENAME=${D}/usr MANDIR=${D}${mandir} install
+    install -m 0644 debian/mailstat.1 ${D}${mandir}/man1
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pv/pv_1.5.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/pv/pv_1.5.3.bb
new file mode 100644
index 0000000..5e3dd67
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pv/pv_1.5.3.bb
@@ -0,0 +1,11 @@
+SUMMARY = "Terminal-based tool for monitoring the progress of data through a pipeline"
+
+LICENSE = "Artistic-2.0"
+LIC_FILES_CHKSUM = "file://doc/COPYING;md5=9c50db2589ee3ef10a9b7b2e50ce1d02"
+
+SRC_URI = "http://www.ivarch.com/programs/sources/pv-${PV}.tar.bz2"
+SRC_URI[md5sum] = "efe8e9e4cad5f3264a32258a63bf2c8e"
+SRC_URI[sha256sum] = "76f3999b1c3b3027163dce6ef667cdf8dafb75218ee25e54a03bfe590478f90e"
+
+inherit autotools
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/Makefile b/import-layers/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/Makefile
new file mode 100644
index 0000000..00b7d52
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/Makefile
@@ -0,0 +1,3 @@
+
+
+all: pxaregs
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/i2c.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/i2c.patch
new file mode 100644
index 0000000..36983ec
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/i2c.patch
@@ -0,0 +1,15 @@
+Index: pxaregs-1.14/pxaregs.c
+===================================================================
+--- pxaregs-1.14.orig/pxaregs.c
++++ pxaregs-1.14/pxaregs.c
+@@ -21,10 +21,6 @@
+ #include <fcntl.h>
+ #include <ctype.h>
+ 
+-#include <linux/i2c.h>
+-#include <linux/i2c-dev.h>
+-
+-
+ // fd for /dev/mem
+ static int fd = -1;
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/munmap.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/munmap.patch
new file mode 100644
index 0000000..a9c4b95
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/munmap.patch
@@ -0,0 +1,22 @@
+Index: pxaregs-1.14/pxaregs.c
+===================================================================
+--- pxaregs-1.14.orig/pxaregs.c
++++ pxaregs-1.14/pxaregs.c
+@@ -1794,7 +1794,7 @@ static int getmem(u32 addr)
+    regaddr = map + (addr & MAP_MASK);
+ 
+    val = *(u32*) regaddr;
+-   munmap(0,MAP_SIZE);
++   munmap(map,MAP_SIZE);
+ 
+    return val;
+ }
+@@ -1829,7 +1829,7 @@ static void putmem(u32 addr, u32 val)
+    regaddr = map + (addr & MAP_MASK);
+ 
+    *(u32*) regaddr = val;
+-   munmap(0,MAP_SIZE);
++   munmap(map,MAP_SIZE);
+ }
+ 
+ static u32 lastaddr = 0;
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/pxaregs.c b/import-layers/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/pxaregs.c
new file mode 100644
index 0000000..062e758
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/pxaregs.c
@@ -0,0 +1,1975 @@
+/*
+ * pxaregs - tool to display and modify PXA250's registers at runtime
+ *
+ * (c) Copyright 2002 by M&N Logistik-Lösungen Online GmbH
+ * set under the GPLv2
+ *
+ * $Id: pxaregs.c,v 1.14 2003/11/12 13:14:43 schurig Exp $
+ *
+ * Please send patches to h.schurig, working at mn-logistik.de
+ * - added fix from Bernhard Nemec
+ * - i2c registers from Stefan Eletzhofer
+*/
+
+#include <stdio.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/mman.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <ctype.h>
+
+#include <linux/i2c.h>
+#include <linux/i2c-dev.h>
+
+
+// fd for /dev/mem
+static int fd = -1;
+
+typedef unsigned int u32;
+
+struct reg_info {
+   char *name;
+   u32 addr;
+   int shift;
+   u32 mask;
+   char type;
+   char *desc;
+};
+
+
+static struct reg_info regs[] = {
+{ "IBMR",      0x40301680,  0, 0xffffffff, 'x', "I2C Bus Monitor Register" },
+{ "IBMR_SDAS", 0x40301680,  0, 0x00000001, 'x', "SDA Status" },
+{ "IBMR_SCLS", 0x40301680,  1, 0x00000001, 'x', "SDA Status" },
+
+{ "IDBR",      0x40301688,  0, 0xffffffff, 'x', "I2C Data Buffer Register" },
+{ "IDBR_IDB",  0x40301688,  0, 0x000000ff, 'x', "I2C Data Buffer" },
+
+{ "ICR",       0x40301690,  0, 0xffffffff, 'x', "I2C Control Register" },
+{ "ICR_START", 0x40301690,  0,	1, 'x',  " start bit " },
+{ "ICR_STOP",  0x40301690,  1,	1, 'x',  " stop bit " },
+{ "ICR_ACKNAK",0x40301690,  2,	1, 'x',  " send ACK(0) or NAK(1)" },
+{ "ICR_TB",    0x40301690,  3,	1, 'x',  " transfer byte bit " },
+{ "ICR_MA",    0x40301690,  4,	1, 'x',  " master abort " },
+{ "ICR_SCLE",  0x40301690,  5,	1, 'x',  " master clock enable " },
+{ "ICR_IUE",   0x40301690,  6,	1, 'x',  " unit enable " },
+{ "ICR_GCD",   0x40301690,  7,	1, 'x',  " general call disable " },
+{ "ICR_ITEIE", 0x40301690,  8,	1, 'x',  " enable tx interrupts " },
+{ "ICR_IRFIE", 0x40301690,  9,	1, 'x',  " enable rx interrupts " },
+{ "ICR_BEIE",  0x40301690,  10,	1, 'x',  " enable bus error ints " },
+{ "ICR_SSDIE", 0x40301690,  11,	1, 'x',  " slave STOP detected int enable " },
+{ "ICR_ALDIE", 0x40301690,  12,	1, 'x',  " enable arbitration interrupt " },
+{ "ICR_SADIE", 0x40301690,  13,	1, 'x',  " slave address detected int enable " },
+{ "ICR_UR",    0x40301690,  14, 1, 'x',  " unit reset " },
+{ "ICR_FM",    0x40301690,  15, 1, 'x',  " fast mode " },
+
+{ "ISR",       0x40301698, 0, 0xffffffff, 'x', "I2C Status Register" },
+{ "ISR_RWM",   0x40301698, 0, 1, 'x', " read/write mode " },
+{ "ISR_ACKNAK",0x40301698, 1, 1, 'x', " ack/nak status " },
+{ "ISR_UB",    0x40301698, 2, 1, 'x', " unit busy " },
+{ "ISR_IBB",   0x40301698, 3, 1, 'x', " bus busy " },
+{ "ISR_SSD",   0x40301698, 4, 1, 'x', " slave stop detected " },
+{ "ISR_ALD",   0x40301698, 5, 1, 'x', " arbitration loss detected " },
+{ "ISR_ITE",   0x40301698, 6, 1, 'x', " tx buffer empty " },
+{ "ISR_IRF",   0x40301698, 7, 1, 'x', " rx buffer full " },
+{ "ISR_GCAD",  0x40301698, 8, 1, 'x', " general call address detected " },
+{ "ISR_SAD",   0x40301698, 9, 1, 'x', " slave address detected " },
+{ "ISR_BED",   0x40301698, 10, 1, 'x', " bus error no ACK/NAK " },
+
+{ "ISAR",      0x403016A0,  0, 0xffffffff, 'x', "I2C Slave Address Register" },
+{ "ISAR_SA",   0x403016A0,  0, 0x0000007f, 'x', "I2C Slave Address" },
+
+{ "PMCR",      0x40F00000,  0, 0xffffffff, 'x', "Power Manager Control Register (3-23)" },
+{ "PMCR_IDAE", 0x40F00000,  0, 0x00000001, 'd', "PM imprecise data abort abort signal" },
+
+{ "PSSR",      0x40F00004,  0, 0xffffffff, 'x', "Power Manager Sleep Status Register (3-29)" },
+{ "PSSR_SSS",  0x40F00004,  0, 0x00000001, 'd', "PM chip was in sleep by setting sleep mode bit" },
+{ "PSSR_BFS",  0x40F00004,  1, 0x00000001, 'd', "PM nBATT_FAULT has been asserted" },
+{ "PSSR_VFS",  0x40F00004,  2, 0x00000001, 'd', "PM nVDD_FAULT was asserted while in Run or Idle" },
+{ "PSSR_PH",   0x40F00004,  4, 0x00000001, 'd', "PM GPIO pins are held in their sleep state" },
+{ "PSSR_RDH",  0x40F00004,  5, 0x00000001, 'd', "PM receivers of all input GPIO are disabled" },
+
+{ "PSPR",      0x40F00008,  0, 0xffffffff, 'x', "Power Manager Scratch Pad Register (3-30)" },
+
+{ "PWER",      0x40F0000C,  0, 0xffffffff, 'x', "Power Manager Wake-Up Enable Register (3-25)" },
+{ "PWER_WE0",  0x40F0000C,  0, 0x00000001, 'd', "PM wake up due to GPIO 0 edge detect enabled" },
+{ "PWER_WE1",  0x40F0000C,  1, 0x00000001, 'd', "PM wake up due to GPIO 1 edge detect enabled" },
+{ "PWER_WE2",  0x40F0000C,  2, 0x00000001, 'd', "PM wake up due to GPIO 2 edge detect enabled" },
+{ "PWER_WE3",  0x40F0000C,  3, 0x00000001, 'd', "PM wake up due to GPIO 3 edge detect enabled" },
+{ "PWER_WE4",  0x40F0000C,  4, 0x00000001, 'd', "PM wake up due to GPIO 4 edge detect enabled" },
+{ "PWER_WE5",  0x40F0000C,  5, 0x00000001, 'd', "PM wake up due to GPIO 5 edge detect enabled" },
+{ "PWER_WE6",  0x40F0000C,  6, 0x00000001, 'd', "PM wake up due to GPIO 6 edge detect enabled" },
+{ "PWER_WE7",  0x40F0000C,  7, 0x00000001, 'd', "PM wake up due to GPIO 7 edge detect enabled" },
+{ "PWER_WE8",  0x40F0000C,  8, 0x00000001, 'd', "PM wake up due to GPIO 8 edge detect enabled" },
+{ "PWER_WE9",  0x40F0000C,  9, 0x00000001, 'd', "PM wake up due to GPIO 9 edge detect enabled" },
+{ "PWER_WE10", 0x40F0000C, 10, 0x00000001, 'd', "PM wake up due to GPIO10 edge detect enabled" },
+{ "PWER_WE11", 0x40F0000C, 11, 0x00000001, 'd', "PM wake up due to GPIO11 edge detect enabled" },
+{ "PWER_WE12", 0x40F0000C, 12, 0x00000001, 'd', "PM wake up due to GPIO12 edge detect enabled" },
+{ "PWER_WE13", 0x40F0000C, 13, 0x00000001, 'd', "PM wake up due to GPIO13 edge detect enabled" },
+{ "PWER_WE14", 0x40F0000C, 14, 0x00000001, 'd', "PM wake up due to GPIO14 edge detect enabled" },
+{ "PWER_WE15", 0x40F0000C, 15, 0x00000001, 'd', "PM wake up due to GPIO15 edge detect enabled" },
+{ "PWER_WERTC",0x40F0000C, 31, 0x00000001, 'd', "PM wake up due to RTC alarm enabled" },
+
+{ "PRER",      0x40F00010,  0, 0xffffffff, 'x', "Power Manager Rising Edge Detect Enable Register (3-26)" },
+{ "PRER_RE0",  0x40F00010,  0, 0x00000001, 'd', "PM wake up due to GPIO 0 rising edge detect enabled" },
+{ "PRER_RE1",  0x40F00010,  1, 0x00000001, 'd', "PM wake up due to GPIO 1 rising edge detect enabled" },
+{ "PRER_RE2",  0x40F00010,  2, 0x00000001, 'd', "PM wake up due to GPIO 2 rising edge detect enabled" },
+{ "PRER_RE3",  0x40F00010,  3, 0x00000001, 'd', "PM wake up due to GPIO 3 rising edge detect enabled" },
+{ "PRER_RE4",  0x40F00010,  4, 0x00000001, 'd', "PM wake up due to GPIO 4 rising edge detect enabled" },
+{ "PRER_RE5",  0x40F00010,  5, 0x00000001, 'd', "PM wake up due to GPIO 5 rising edge detect enabled" },
+{ "PRER_RE6",  0x40F00010,  6, 0x00000001, 'd', "PM wake up due to GPIO 6 rising edge detect enabled" },
+{ "PRER_RE7",  0x40F00010,  7, 0x00000001, 'd', "PM wake up due to GPIO 7 rising edge detect enabled" },
+{ "PRER_RE8",  0x40F00010,  8, 0x00000001, 'd', "PM wake up due to GPIO 8 rising edge detect enabled" },
+{ "PRER_RE9",  0x40F00010,  9, 0x00000001, 'd', "PM wake up due to GPIO 9 rising edge detect enabled" },
+{ "PRER_RE10", 0x40F00010, 10, 0x00000001, 'd', "PM wake up due to GPIO10 rising edge detect enabled" },
+{ "PRER_RE11", 0x40F00010, 11, 0x00000001, 'd', "PM wake up due to GPIO11 rising edge detect enabled" },
+{ "PRER_RE12", 0x40F00010, 12, 0x00000001, 'd', "PM wake up due to GPIO12 rising edge detect enabled" },
+{ "PRER_RE13", 0x40F00010, 13, 0x00000001, 'd', "PM wake up due to GPIO13 rising edge detect enabled" },
+{ "PRER_RE14", 0x40F00010, 14, 0x00000001, 'd', "PM wake up due to GPIO14 rising edge detect enabled" },
+{ "PRER_RE15", 0x40F00010, 15, 0x00000001, 'd', "PM wake up due to GPIO15 rising edge detect enabled" },
+
+{ "PFER",      0x40F00014,  0, 0xffffffff, 'x', "Power Manager Falling Detect Enable Register (3-27)" },
+{ "PFER_FE0",  0x40F00014,  0, 0x00000001, 'd', "PM wake up due to GPIO 0 falling edge detect enabled" },
+{ "PFER_FE1",  0x40F00014,  1, 0x00000001, 'd', "PM wake up due to GPIO 1 falling edge detect enabled" },
+{ "PFER_FE2",  0x40F00014,  2, 0x00000001, 'd', "PM wake up due to GPIO 2 falling edge detect enabled" },
+{ "PFER_FE3",  0x40F00014,  3, 0x00000001, 'd', "PM wake up due to GPIO 3 falling edge detect enabled" },
+{ "PFER_FE4",  0x40F00014,  4, 0x00000001, 'd', "PM wake up due to GPIO 4 falling edge detect enabled" },
+{ "PFER_FE5",  0x40F00014,  5, 0x00000001, 'd', "PM wake up due to GPIO 5 falling edge detect enabled" },
+{ "PFER_FE6",  0x40F00014,  6, 0x00000001, 'd', "PM wake up due to GPIO 6 falling edge detect enabled" },
+{ "PFER_FE7",  0x40F00014,  7, 0x00000001, 'd', "PM wake up due to GPIO 7 falling edge detect enabled" },
+{ "PFER_FE8",  0x40F00014,  8, 0x00000001, 'd', "PM wake up due to GPIO 8 falling edge detect enabled" },
+{ "PFER_FE9",  0x40F00014,  9, 0x00000001, 'd', "PM wake up due to GPIO 9 falling edge detect enabled" },
+{ "PFER_FE10", 0x40F00014, 10, 0x00000001, 'd', "PM wake up due to GPIO10 falling edge detect enabled" },
+{ "PFER_FE11", 0x40F00014, 11, 0x00000001, 'd', "PM wake up due to GPIO11 falling edge detect enabled" },
+{ "PFER_FE12", 0x40F00014, 12, 0x00000001, 'd', "PM wake up due to GPIO12 falling edge detect enabled" },
+{ "PFER_FE13", 0x40F00014, 13, 0x00000001, 'd', "PM wake up due to GPIO13 falling edge detect enabled" },
+{ "PFER_FE14", 0x40F00014, 14, 0x00000001, 'd', "PM wake up due to GPIO14 falling edge detect enabled" },
+{ "PFER_FE15", 0x40F00014, 15, 0x00000001, 'd', "PM wake up due to GPIO15 falling edge detect enabled" },
+
+{ "PEDR",      0x40F00018,  0, 0xffffffff, 'x', "Power Manager Edge Detect Status Register (3-28)" },
+{ "PEDR_ED0",  0x40F00018,  0, 0x00000001, 'd', "PM wake up due to edge on GPIO 0 detected" },
+{ "PEDR_ED1",  0x40F00018,  1, 0x00000001, 'd', "PM wake up due to edge on GPIO 1 detected" },
+{ "PEDR_ED2",  0x40F00018,  2, 0x00000001, 'd', "PM wake up due to edge on GPIO 2 detected" },
+{ "PEDR_ED3",  0x40F00018,  3, 0x00000001, 'd', "PM wake up due to edge on GPIO 3 detected" },
+{ "PEDR_ED4",  0x40F00018,  4, 0x00000001, 'd', "PM wake up due to edge on GPIO 4 detected" },
+{ "PEDR_ED5",  0x40F00018,  5, 0x00000001, 'd', "PM wake up due to edge on GPIO 5 detected" },
+{ "PEDR_ED6",  0x40F00018,  6, 0x00000001, 'd', "PM wake up due to edge on GPIO 6 detected" },
+{ "PEDR_ED7",  0x40F00018,  7, 0x00000001, 'd', "PM wake up due to edge on GPIO 7 detected" },
+{ "PEDR_ED8",  0x40F00018,  8, 0x00000001, 'd', "PM wake up due to edge on GPIO 8 detected" },
+{ "PEDR_ED9",  0x40F00018,  9, 0x00000001, 'd', "PM wake up due to edge on GPIO 9 detected" },
+{ "PEDR_ED10", 0x40F00018, 10, 0x00000001, 'd', "PM wake up due to edge on GPIO10 detected" },
+{ "PEDR_ED11", 0x40F00018, 11, 0x00000001, 'd', "PM wake up due to edge on GPIO11 detected" },
+{ "PEDR_ED12", 0x40F00018, 12, 0x00000001, 'd', "PM wake up due to edge on GPIO12 detected" },
+{ "PEDR_ED13", 0x40F00018, 13, 0x00000001, 'd', "PM wake up due to edge on GPIO13 detected" },
+{ "PEDR_ED14", 0x40F00018, 14, 0x00000001, 'd', "PM wake up due to edge on GPIO14 detected" },
+{ "PEDR_ED15", 0x40F00018, 15, 0x00000001, 'd', "PM wake up due to edge on GPIO15 detected" },
+
+{ "PCFR",      0x40F0001C,  0, 0xffffffff, 'x', "Power Manager General Configuration Register (3-24)" },
+{ "PCFR_OPDE", 0x40F0001C,  0, 0x00000001, 'd', "PM stop 3.6864 MHz oscillator during sleep" },
+{ "PCFR_FP",   0x40F0001C,  1, 0x00000001, 'd', "PM PCMCIA signals float during sleep" },
+{ "PCFR_FS",   0x40F0001C,  2, 0x00000001, 'd', "PM static chip select signals float during sleep" },
+
+{ "PGSR0",     0x40F00020,  0, 0xffffffff, 'x', "Power Manager GPIO Sleep State Register 0 (3-32)" },
+{ "PGSR_SS0",  0x40F00020,  0, 0x00000001, 'd', "PM GPIO pin 0 is driven to 1 during sleep" },
+{ "PGSR_SS1",  0x40F00020,  1, 0x00000001, 'd', "PM GPIO pin 1 is driven to 1 during sleep" },
+{ "PGSR_SS2",  0x40F00020,  2, 0x00000001, 'd', "PM GPIO pin 2 is driven to 1 during sleep" },
+{ "PGSR_SS3",  0x40F00020,  3, 0x00000001, 'd', "PM GPIO pin 3 is driven to 1 during sleep" },
+{ "PGSR_SS4",  0x40F00020,  4, 0x00000001, 'd', "PM GPIO pin 4 is driven to 1 during sleep" },
+{ "PGSR_SS5",  0x40F00020,  5, 0x00000001, 'd', "PM GPIO pin 5 is driven to 1 during sleep" },
+{ "PGSR_SS6",  0x40F00020,  6, 0x00000001, 'd', "PM GPIO pin 6 is driven to 1 during sleep" },
+{ "PGSR_SS7",  0x40F00020,  7, 0x00000001, 'd', "PM GPIO pin 7 is driven to 1 during sleep" },
+{ "PGSR_SS8",  0x40F00020,  8, 0x00000001, 'd', "PM GPIO pin 8 is driven to 1 during sleep" },
+{ "PGSR_SS9",  0x40F00020,  9, 0x00000001, 'd', "PM GPIO pin 9 is driven to 1 during sleep" },
+{ "PGSR_SS10", 0x40F00020, 10, 0x00000001, 'd', "PM GPIO pin 10 is driven to 1 during sleep" },
+{ "PGSR_SS11", 0x40F00020, 11, 0x00000001, 'd', "PM GPIO pin 11 is driven to 1 during sleep" },
+{ "PGSR_SS12", 0x40F00020, 12, 0x00000001, 'd', "PM GPIO pin 12 is driven to 1 during sleep" },
+{ "PGSR_SS13", 0x40F00020, 13, 0x00000001, 'd', "PM GPIO pin 13 is driven to 1 during sleep" },
+{ "PGSR_SS14", 0x40F00020, 14, 0x00000001, 'd', "PM GPIO pin 14 is driven to 1 during sleep" },
+{ "PGSR_SS15", 0x40F00020, 15, 0x00000001, 'd', "PM GPIO pin 15 is driven to 1 during sleep" },
+{ "PGSR_SS16", 0x40F00020, 16, 0x00000001, 'd', "PM GPIO pin 16 is driven to 1 during sleep" },
+{ "PGSR_SS17", 0x40F00020, 17, 0x00000001, 'd', "PM GPIO pin 17 is driven to 1 during sleep" },
+{ "PGSR_SS18", 0x40F00020, 18, 0x00000001, 'd', "PM GPIO pin 18 is driven to 1 during sleep" },
+{ "PGSR_SS19", 0x40F00020, 19, 0x00000001, 'd', "PM GPIO pin 19 is driven to 1 during sleep" },
+{ "PGSR_SS20", 0x40F00020, 20, 0x00000001, 'd', "PM GPIO pin 20 is driven to 1 during sleep" },
+{ "PGSR_SS21", 0x40F00020, 21, 0x00000001, 'd', "PM GPIO pin 21 is driven to 1 during sleep" },
+{ "PGSR_SS22", 0x40F00020, 22, 0x00000001, 'd', "PM GPIO pin 22 is driven to 1 during sleep" },
+{ "PGSR_SS23", 0x40F00020, 23, 0x00000001, 'd', "PM GPIO pin 23 is driven to 1 during sleep" },
+{ "PGSR_SS24", 0x40F00020, 24, 0x00000001, 'd', "PM GPIO pin 24 is driven to 1 during sleep" },
+{ "PGSR_SS25", 0x40F00020, 25, 0x00000001, 'd', "PM GPIO pin 25 is driven to 1 during sleep" },
+{ "PGSR_SS26", 0x40F00020, 26, 0x00000001, 'd', "PM GPIO pin 26 is driven to 1 during sleep" },
+{ "PGSR_SS27", 0x40F00020, 27, 0x00000001, 'd', "PM GPIO pin 27 is driven to 1 during sleep" },
+{ "PGSR_SS28", 0x40F00020, 28, 0x00000001, 'd', "PM GPIO pin 28 is driven to 1 during sleep" },
+{ "PGSR_SS29", 0x40F00020, 29, 0x00000001, 'd', "PM GPIO pin 29 is driven to 1 during sleep" },
+{ "PGSR_SS30", 0x40F00020, 30, 0x00000001, 'd', "PM GPIO pin 30 is driven to 1 during sleep" },
+{ "PGSR_SS31", 0x40F00020, 31, 0x00000001, 'd', "PM GPIO pin 31 is driven to 1 during sleep" },
+
+{ "PGSR1",     0x40F00024,  0, 0xffffffff, 'x', "Power Manager GPIO Sleep State Register 1 (3-32)" },
+{ "PGSR_SS32", 0x40F00024,  0, 0x00000001, 'd', "PM GPIO pin 32 is driven to 1 during sleep" },
+{ "PGSR_SS33", 0x40F00024,  1, 0x00000001, 'd', "PM GPIO pin 33 is driven to 1 during sleep" },
+{ "PGSR_SS34", 0x40F00024,  2, 0x00000001, 'd', "PM GPIO pin 34 is driven to 1 during sleep" },
+{ "PGSR_SS35", 0x40F00024,  3, 0x00000001, 'd', "PM GPIO pin 35 is driven to 1 during sleep" },
+{ "PGSR_SS36", 0x40F00024,  4, 0x00000001, 'd', "PM GPIO pin 36 is driven to 1 during sleep" },
+{ "PGSR_SS37", 0x40F00024,  5, 0x00000001, 'd', "PM GPIO pin 37 is driven to 1 during sleep" },
+{ "PGSR_SS38", 0x40F00024,  6, 0x00000001, 'd', "PM GPIO pin 38 is driven to 1 during sleep" },
+{ "PGSR_SS39", 0x40F00024,  7, 0x00000001, 'd', "PM GPIO pin 39 is driven to 1 during sleep" },
+{ "PGSR_SS40", 0x40F00024,  8, 0x00000001, 'd', "PM GPIO pin 40 is driven to 1 during sleep" },
+{ "PGSR_SS41", 0x40F00024,  9, 0x00000001, 'd', "PM GPIO pin 41 is driven to 1 during sleep" },
+{ "PGSR_SS42", 0x40F00024, 10, 0x00000001, 'd', "PM GPIO pin 42 is driven to 1 during sleep" },
+{ "PGSR_SS43", 0x40F00024, 11, 0x00000001, 'd', "PM GPIO pin 43 is driven to 1 during sleep" },
+{ "PGSR_SS44", 0x40F00024, 12, 0x00000001, 'd', "PM GPIO pin 44 is driven to 1 during sleep" },
+{ "PGSR_SS45", 0x40F00024, 13, 0x00000001, 'd', "PM GPIO pin 45 is driven to 1 during sleep" },
+{ "PGSR_SS46", 0x40F00024, 14, 0x00000001, 'd', "PM GPIO pin 46 is driven to 1 during sleep" },
+{ "PGSR_SS47", 0x40F00024, 15, 0x00000001, 'd', "PM GPIO pin 47 is driven to 1 during sleep" },
+{ "PGSR_SS48", 0x40F00024, 16, 0x00000001, 'd', "PM GPIO pin 48 is driven to 1 during sleep" },
+{ "PGSR_SS49", 0x40F00024, 17, 0x00000001, 'd', "PM GPIO pin 49 is driven to 1 during sleep" },
+{ "PGSR_SS50", 0x40F00024, 18, 0x00000001, 'd', "PM GPIO pin 50 is driven to 1 during sleep" },
+{ "PGSR_SS51", 0x40F00024, 19, 0x00000001, 'd', "PM GPIO pin 51 is driven to 1 during sleep" },
+{ "PGSR_SS52", 0x40F00024, 20, 0x00000001, 'd', "PM GPIO pin 52 is driven to 1 during sleep" },
+{ "PGSR_SS53", 0x40F00024, 21, 0x00000001, 'd', "PM GPIO pin 53 is driven to 1 during sleep" },
+{ "PGSR_SS54", 0x40F00024, 22, 0x00000001, 'd', "PM GPIO pin 54 is driven to 1 during sleep" },
+{ "PGSR_SS55", 0x40F00024, 23, 0x00000001, 'd', "PM GPIO pin 55 is driven to 1 during sleep" },
+{ "PGSR_SS56", 0x40F00024, 24, 0x00000001, 'd', "PM GPIO pin 56 is driven to 1 during sleep" },
+{ "PGSR_SS57", 0x40F00024, 25, 0x00000001, 'd', "PM GPIO pin 57 is driven to 1 during sleep" },
+{ "PGSR_SS58", 0x40F00024, 26, 0x00000001, 'd', "PM GPIO pin 58 is driven to 1 during sleep" },
+{ "PGSR_SS59", 0x40F00024, 27, 0x00000001, 'd', "PM GPIO pin 59 is driven to 1 during sleep" },
+{ "PGSR_SS60", 0x40F00024, 28, 0x00000001, 'd', "PM GPIO pin 60 is driven to 1 during sleep" },
+{ "PGSR_SS61", 0x40F00024, 29, 0x00000001, 'd', "PM GPIO pin 61 is driven to 1 during sleep" },
+{ "PGSR_SS62", 0x40F00024, 30, 0x00000001, 'd', "PM GPIO pin 62 is driven to 1 during sleep" },
+{ "PGSR_SS63", 0x40F00024, 31, 0x00000001, 'd', "PM GPIO pin 63 is driven to 1 during sleep" },
+
+{ "PGSR2",     0x40F00028,  0, 0xffffffff, 'x', "Power Manager GPIO Sleep State Register 2 (3-33)" },
+{ "PGSR_SS64", 0x40F00028,  0, 0x00000001, 'd', "PM GPIO pin 64 is driven to 1 during sleep" },
+{ "PGSR_SS65", 0x40F00028,  1, 0x00000001, 'd', "PM GPIO pin 65 is driven to 1 during sleep" },
+{ "PGSR_SS66", 0x40F00028,  2, 0x00000001, 'd', "PM GPIO pin 66 is driven to 1 during sleep" },
+{ "PGSR_SS67", 0x40F00028,  3, 0x00000001, 'd', "PM GPIO pin 67 is driven to 1 during sleep" },
+{ "PGSR_SS68", 0x40F00028,  4, 0x00000001, 'd', "PM GPIO pin 68 is driven to 1 during sleep" },
+{ "PGSR_SS69", 0x40F00028,  5, 0x00000001, 'd', "PM GPIO pin 69 is driven to 1 during sleep" },
+{ "PGSR_SS70", 0x40F00028,  6, 0x00000001, 'd', "PM GPIO pin 70 is driven to 1 during sleep" },
+{ "PGSR_SS71", 0x40F00028,  7, 0x00000001, 'd', "PM GPIO pin 71 is driven to 1 during sleep" },
+{ "PGSR_SS72", 0x40F00028,  8, 0x00000001, 'd', "PM GPIO pin 72 is driven to 1 during sleep" },
+{ "PGSR_SS73", 0x40F00028,  9, 0x00000001, 'd', "PM GPIO pin 73 is driven to 1 during sleep" },
+{ "PGSR_SS74", 0x40F00028, 10, 0x00000001, 'd', "PM GPIO pin 74 is driven to 1 during sleep" },
+{ "PGSR_SS75", 0x40F00028, 11, 0x00000001, 'd', "PM GPIO pin 75 is driven to 1 during sleep" },
+{ "PGSR_SS76", 0x40F00028, 12, 0x00000001, 'd', "PM GPIO pin 76 is driven to 1 during sleep" },
+{ "PGSR_SS77", 0x40F00028, 13, 0x00000001, 'd', "PM GPIO pin 77 is driven to 1 during sleep" },
+{ "PGSR_SS78", 0x40F00028, 14, 0x00000001, 'd', "PM GPIO pin 78 is driven to 1 during sleep" },
+{ "PGSR_SS79", 0x40F00028, 15, 0x00000001, 'd', "PM GPIO pin 79 is driven to 1 during sleep" },
+{ "PGSR_SS80", 0x40F00028, 16, 0x00000001, 'd', "PM GPIO pin 80 is driven to 1 during sleep" },
+
+{ "RCSR",      0x40F00030,  0, 0xffffffff, 'x', "Power Manager Reset Controller Status Register (3-34)" },
+{ "RCSR_HWR",  0x40F00030,  0, 0x00000001, 'd', "PM hardware reset occurred" },
+{ "RCSR_WDR",  0x40F00030,  1, 0x00000001, 'd', "PM watchdog reset occurred" },
+{ "RCSR_SMR",  0x40F00030,  2, 0x00000001, 'd', "PM sleep mode occurred" },
+{ "RCSR_GFR",  0x40F00030,  3, 0x00000001, 'd', "PM GPIO reset  occurred" },
+
+// PXA255
+{ "PMFW",      0x40F00034,  0, 0xffffffff, 'x', "Power Manager Fast Sleep Wakeup Register (3-31)" },
+{ "PMFW_FWAKE",0x40F00034,  1, 0x00000001, 'x', "Fast Wakeup Enable" },
+
+{ "CCCR",      0x41300000,  0, 0xffffffff, 'x', "Core Clock Configuration Register (3-35)" },
+{ "CCCR_L",    0x41300000,  0, 0x0000001f, 'x', "CM crystal freq to memory freq multiplier" },
+{ "CCCR_M",    0x41300000,  5, 0x00000003, 'x', "CM memory freq to run mode freq multiplier" },
+{ "CCCR_N",    0x41300000,  7, 0x00000007, 'x', "CM run mode freq to turbo freq multiplier" },
+
+{ "CKEN",      0x41300004,  0, 0xffffffff, 'x', "Clock Enable Register (3-36)" },
+{ "CKEN_0",    0x41300004,  0, 0x00000001, 'd', "CM PWM0 clock enabled" },
+{ "CKEN_1",    0x41300004,  1, 0x00000001, 'd', "CM PWM1 clock enabled" },
+{ "CKEN_2",    0x41300004,  2, 0x00000001, 'd', "CM AC97 clock enabled" },
+{ "CKEN_3",    0x41300004,  3, 0x00000001, 'd', "CM SSP clock enabled" },
+{ "CKEN_5",    0x41300004,  5, 0x00000001, 'd', "CM STUART clock enabled" },
+{ "CKEN_6",    0x41300004,  6, 0x00000001, 'd', "CM FFUART clock enabled" },
+{ "CKEN_7",    0x41300004,  7, 0x00000001, 'd', "CM BTUART clock enabled" },
+{ "CKEN_8",    0x41300004,  8, 0x00000001, 'd', "CM I2S clock enabled" },
+{ "CKEN_11",   0x41300004, 11, 0x00000001, 'd', "CM USB clock enabled" },
+{ "CKEN_12",   0x41300004, 12, 0x00000001, 'd', "CM MMC clock enabled" },
+{ "CKEN_13",   0x41300004, 13, 0x00000001, 'd', "CM FIPC clock enabled" },
+{ "CKEN_14",   0x41300004, 14, 0x00000001, 'd', "CM I2C clock enabled" },
+{ "CKEN_16",   0x41300004, 16, 0x00000001, 'd', "CM LCD clock enabled" },
+
+{ "OSCC",      0x41300008,  0, 0xffffffff, 'x', "Oscillator Configuration Register (3-38)" },
+{ "OSCC_OOK",  0x41300008,  0, 0x00000001, 'd', "CM 32.768 kHz oscillator enabled and stabilized" },
+{ "OSCC_OON",  0x41300008,  1, 0x00000001, 'd', "CM 32.768 kHz oscillator enabled" },
+
+// TODO: CP14-Registers (3-37)
+
+{ "GPLR0",    0x40E00000,  0, 0xffffffff, 'x', "GPIO Pin Level Register 0 (4-7)" },
+#if defined(CONFIG_ARCH_RAMSES)
+{ "GPLR0_0",  0x40E00000,  0, 0x00000001, 'd', "GPIO 0 (nc) level" },
+{ "GPLR0_1",  0x40E00000,  1, 0x00000001, 'd', "GPIO 1 (nPFI) level" },
+{ "GPLR0_2",  0x40E00000,  2, 0x00000001, 'd', "GPIO 2 (BAT_DATA) level" },
+{ "GPLR0_3",  0x40E00000,  3, 0x00000001, 'd', "GPIO 3 (IRQ_KEY) level" },
+{ "GPLR0_4",  0x40E00000,  4, 0x00000001, 'd', "GPIO 4 (IRQ_ETH) level" },
+{ "GPLR0_5",  0x40E00000,  5, 0x00000001, 'd', "GPIO 5 (nc) level" },
+{ "GPLR0_6",  0x40E00000,  6, 0x00000001, 'd', "GPIO 6 (MMC_CLK) level" },
+{ "GPLR0_7",  0x40E00000,  7, 0x00000001, 'd', "GPIO 7 (IRQ_GSM) level" },
+{ "GPLR0_8",  0x40E00000,  8, 0x00000001, 'd', "GPIO 8 (nPCC_S1_CD) level" },
+{ "GPLR0_9",  0x40E00000,  9, 0x00000001, 'd', "GPIO 9 (MMC_CD) level" },
+{ "GPLR0_10", 0x40E00000, 10, 0x00000001, 'd', "GPIO 10 (IRQ_RTC) level" },
+{ "GPLR0_11", 0x40E00000, 11, 0x00000001, 'd', "GPIO 11 (nc 3M6) level" },
+{ "GPLR0_12", 0x40E00000, 12, 0x00000001, 'd', "GPIO 12 (nc) level" },
+{ "GPLR0_13", 0x40E00000, 13, 0x00000001, 'd', "GPIO 13 (IRQ_DOCK) level" },
+{ "GPLR0_14", 0x40E00000, 14, 0x00000001, 'd', "GPIO 14 (nc) level" },
+{ "GPLR0_15", 0x40E00000, 15, 0x00000001, 'd', "GPIO 15 (nCS1) level" },
+{ "GPLR0_16", 0x40E00000, 16, 0x00000001, 'd', "GPIO 16 (PWM0) level" },
+{ "GPLR0_17", 0x40E00000, 17, 0x00000001, 'd', "GPIO 17 (PWM1) level" },
+{ "GPLR0_18", 0x40E00000, 18, 0x00000001, 'd', "GPIO 18 (RDY) level" },
+{ "GPLR0_19", 0x40E00000, 19, 0x00000001, 'd', "GPIO 19 (nc nPCC_S0_IRQ) level" },
+{ "GPLR0_20", 0x40E00000, 20, 0x00000001, 'd', "GPIO 20 (nc) level" },
+{ "GPLR0_21", 0x40E00000, 21, 0x00000001, 'd', "GPIO 21 (AC97_IRQ) level" },
+{ "GPLR0_22", 0x40E00000, 22, 0x00000001, 'd', "GPIO 22 (nPCC_S1_IRQ) level" },
+{ "GPLR0_23", 0x40E00000, 23, 0x00000001, 'd', "GPIO 23 (UART_INTA) level" },
+{ "GPLR0_24", 0x40E00000, 24, 0x00000001, 'd', "GPIO 24 (UART_INTB) level" },
+{ "GPLR0_25", 0x40E00000, 25, 0x00000001, 'd', "GPIO 25 (UART_INTC) level" },
+{ "GPLR0_26", 0x40E00000, 26, 0x00000001, 'd', "GPIO 26 (UART_INTD) level" },
+{ "GPLR0_27", 0x40E00000, 27, 0x00000001, 'd', "GPIO 27 (nc CPLD_FREE) level" },
+{ "GPLR0_28", 0x40E00000, 28, 0x00000001, 'd', "GPIO 28 (AUD_BITCLK) level" },
+{ "GPLR0_29", 0x40E00000, 29, 0x00000001, 'd', "GPIO 29 (AUD_SDIN0) level" },
+{ "GPLR0_30", 0x40E00000, 30, 0x00000001, 'd', "GPIO 30 (AUD_SDOUT) level" },
+{ "GPLR0_31", 0x40E00000, 31, 0x00000001, 'd', "GPIO 31 (AUD_SYNC) level" },
+#else
+{ "GPLR0_0",  0x40E00000,  0, 0x00000001, 'd', "GPIO 0 level" },
+{ "GPLR0_1",  0x40E00000,  1, 0x00000001, 'd', "GPIO 1 level" },
+{ "GPLR0_2",  0x40E00000,  2, 0x00000001, 'd', "GPIO 2 level" },
+{ "GPLR0_3",  0x40E00000,  3, 0x00000001, 'd', "GPIO 3 level" },
+{ "GPLR0_4",  0x40E00000,  4, 0x00000001, 'd', "GPIO 4 level" },
+{ "GPLR0_5",  0x40E00000,  5, 0x00000001, 'd', "GPIO 5 level" },
+{ "GPLR0_6",  0x40E00000,  6, 0x00000001, 'd', "GPIO 6 level" },
+{ "GPLR0_7",  0x40E00000,  7, 0x00000001, 'd', "GPIO 7 level" },
+{ "GPLR0_8",  0x40E00000,  8, 0x00000001, 'd', "GPIO 8 level" },
+{ "GPLR0_9",  0x40E00000,  9, 0x00000001, 'd', "GPIO 9 level" },
+{ "GPLR0_10", 0x40E00000, 10, 0x00000001, 'd', "GPIO 10 level" },
+{ "GPLR0_11", 0x40E00000, 11, 0x00000001, 'd', "GPIO 11 level" },
+{ "GPLR0_12", 0x40E00000, 12, 0x00000001, 'd', "GPIO 12 level" },
+{ "GPLR0_13", 0x40E00000, 13, 0x00000001, 'd', "GPIO 13 level" },
+{ "GPLR0_14", 0x40E00000, 14, 0x00000001, 'd', "GPIO 14 level" },
+{ "GPLR0_15", 0x40E00000, 15, 0x00000001, 'd', "GPIO 15 level" },
+{ "GPLR0_16", 0x40E00000, 16, 0x00000001, 'd', "GPIO 16 level" },
+{ "GPLR0_17", 0x40E00000, 17, 0x00000001, 'd', "GPIO 17 level" },
+{ "GPLR0_18", 0x40E00000, 18, 0x00000001, 'd', "GPIO 18 level" },
+{ "GPLR0_19", 0x40E00000, 19, 0x00000001, 'd', "GPIO 19 level" },
+{ "GPLR0_20", 0x40E00000, 20, 0x00000001, 'd', "GPIO 20 level" },
+{ "GPLR0_21", 0x40E00000, 21, 0x00000001, 'd', "GPIO 21 level" },
+{ "GPLR0_22", 0x40E00000, 22, 0x00000001, 'd', "GPIO 22 level" },
+{ "GPLR0_23", 0x40E00000, 23, 0x00000001, 'd', "GPIO 23 level" },
+{ "GPLR0_24", 0x40E00000, 24, 0x00000001, 'd', "GPIO 24 level" },
+{ "GPLR0_25", 0x40E00000, 25, 0x00000001, 'd', "GPIO 25 level" },
+{ "GPLR0_26", 0x40E00000, 26, 0x00000001, 'd', "GPIO 26 level" },
+{ "GPLR0_27", 0x40E00000, 27, 0x00000001, 'd', "GPIO 27 level" },
+{ "GPLR0_28", 0x40E00000, 28, 0x00000001, 'd', "GPIO 28 level" },
+{ "GPLR0_29", 0x40E00000, 29, 0x00000001, 'd', "GPIO 29 level" },
+{ "GPLR0_30", 0x40E00000, 30, 0x00000001, 'd', "GPIO 30 level" },
+{ "GPLR0_31", 0x40E00000, 31, 0x00000001, 'd', "GPIO 31 level" },
+#endif
+
+{ "GPLR1",    0x40E00004,  0, 0xffffffff, 'x', "GPIO Level Register 1 (4-8)" },
+#if defined(CONFIG_ARCH_RAMSES)
+{ "GPLR1_32", 0x40E00004,  0, 0x00000001, 'd', "GPIO 32 (AUD_SDIN1) level" },
+{ "GPLR1_33", 0x40E00004,  1, 0x00000001, 'd', "GPIO 33 (nCS5) level" },
+{ "GPLR1_34", 0x40E00004,  2, 0x00000001, 'd', "GPIO 34 (FF_RXD) level" },
+{ "GPLR1_35", 0x40E00004,  3, 0x00000001, 'd', "GPIO 35 (FF_CTS) level" },
+{ "GPLR1_36", 0x40E00004,  4, 0x00000001, 'd', "GPIO 36 (FF_DCD) level" },
+{ "GPLR1_37", 0x40E00004,  5, 0x00000001, 'd', "GPIO 37 (FF_DSR) level" },
+{ "GPLR1_38", 0x40E00004,  6, 0x00000001, 'd', "GPIO 38 (FF_RI) level" },
+{ "GPLR1_39", 0x40E00004,  7, 0x00000001, 'd', "GPIO 39 (FF_TXD) level" },
+{ "GPLR1_40", 0x40E00004,  8, 0x00000001, 'd', "GPIO 40 (FF_DTR) level" },
+{ "GPLR1_41", 0x40E00004,  9, 0x00000001, 'd', "GPIO 41 (FF_RTS) level" },
+{ "GPLR1_42", 0x40E00004, 10, 0x00000001, 'd', "GPIO 42 (BT_RXD) level" },
+{ "GPLR1_43", 0x40E00004, 11, 0x00000001, 'd', "GPIO 43 (BT_TXD) level" },
+{ "GPLR1_44", 0x40E00004, 12, 0x00000001, 'd', "GPIO 44 (BT_CTS) level" },
+{ "GPLR1_45", 0x40E00004, 13, 0x00000001, 'd', "GPIO 45 (BT_RTS) level" },
+{ "GPLR1_46", 0x40E00004, 14, 0x00000001, 'd', "GPIO 46 (IR_RXD) level" },
+{ "GPLR1_47", 0x40E00004, 15, 0x00000001, 'd', "GPIO 47 (IR_TXD) level" },
+{ "GPLR1_48", 0x40E00004, 16, 0x00000001, 'd', "GPIO 48 (nPOE) level" },
+{ "GPLR1_49", 0x40E00004, 17, 0x00000001, 'd', "GPIO 49 (nPWE) level" },
+{ "GPLR1_50", 0x40E00004, 18, 0x00000001, 'd', "GPIO 50 (nPIOR) level" },
+{ "GPLR1_51", 0x40E00004, 19, 0x00000001, 'd', "GPIO 51 (nPIOW) level" },
+{ "GPLR1_52", 0x40E00004, 20, 0x00000001, 'd', "GPIO 52 (nPCE1) level" },
+{ "GPLR1_53", 0x40E00004, 21, 0x00000001, 'd', "GPIO 53 (nPCE2) level" },
+{ "GPLR1_54", 0x40E00004, 22, 0x00000001, 'd', "GPIO 54 (nPKTSEL) level" },
+{ "GPLR1_55", 0x40E00004, 23, 0x00000001, 'd', "GPIO 55 (nPREG) level" },
+{ "GPLR1_56", 0x40E00004, 24, 0x00000001, 'd', "GPIO 56 (nPWAIT) level" },
+{ "GPLR1_57", 0x40E00004, 25, 0x00000001, 'd', "GPIO 57 (nIOIS16) level" },
+{ "GPLR1_58", 0x40E00004, 26, 0x00000001, 'd', "GPIO 58 (LDD0) level" },
+{ "GPLR1_59", 0x40E00004, 27, 0x00000001, 'd', "GPIO 59 (LDD1) level" },
+{ "GPLR1_60", 0x40E00004, 28, 0x00000001, 'd', "GPIO 60 (LDD2) level" },
+{ "GPLR1_61", 0x40E00004, 29, 0x00000001, 'd', "GPIO 61 (LDD3) level" },
+{ "GPLR1_62", 0x40E00004, 30, 0x00000001, 'd', "GPIO 62 (LDD4) level" },
+{ "GPLR1_63", 0x40E00004, 31, 0x00000001, 'd', "GPIO 63 (LDD5) level" },
+#else
+{ "GPLR1_32", 0x40E00004,  0, 0x00000001, 'd', "GPIO 32 level" },
+{ "GPLR1_33", 0x40E00004,  1, 0x00000001, 'd', "GPIO 33 level" },
+{ "GPLR1_34", 0x40E00004,  2, 0x00000001, 'd', "GPIO 34 level" },
+{ "GPLR1_35", 0x40E00004,  3, 0x00000001, 'd', "GPIO 35 level" },
+{ "GPLR1_36", 0x40E00004,  4, 0x00000001, 'd', "GPIO 36 level" },
+{ "GPLR1_37", 0x40E00004,  5, 0x00000001, 'd', "GPIO 37 level" },
+{ "GPLR1_38", 0x40E00004,  6, 0x00000001, 'd', "GPIO 38 level" },
+{ "GPLR1_39", 0x40E00004,  7, 0x00000001, 'd', "GPIO 39 level" },
+{ "GPLR1_40", 0x40E00004,  8, 0x00000001, 'd', "GPIO 40 level" },
+{ "GPLR1_41", 0x40E00004,  9, 0x00000001, 'd', "GPIO 41 level" },
+{ "GPLR1_42", 0x40E00004, 10, 0x00000001, 'd', "GPIO 42 level" },
+{ "GPLR1_43", 0x40E00004, 11, 0x00000001, 'd', "GPIO 43 level" },
+{ "GPLR1_44", 0x40E00004, 12, 0x00000001, 'd', "GPIO 44 level" },
+{ "GPLR1_45", 0x40E00004, 13, 0x00000001, 'd', "GPIO 45 level" },
+{ "GPLR1_46", 0x40E00004, 14, 0x00000001, 'd', "GPIO 46 level" },
+{ "GPLR1_47", 0x40E00004, 15, 0x00000001, 'd', "GPIO 47 level" },
+{ "GPLR1_48", 0x40E00004, 16, 0x00000001, 'd', "GPIO 48 level" },
+{ "GPLR1_49", 0x40E00004, 17, 0x00000001, 'd', "GPIO 49 level" },
+{ "GPLR1_50", 0x40E00004, 18, 0x00000001, 'd', "GPIO 50 level" },
+{ "GPLR1_51", 0x40E00004, 19, 0x00000001, 'd', "GPIO 51 level" },
+{ "GPLR1_52", 0x40E00004, 20, 0x00000001, 'd', "GPIO 52 level" },
+{ "GPLR1_53", 0x40E00004, 21, 0x00000001, 'd', "GPIO 53 level" },
+{ "GPLR1_54", 0x40E00004, 22, 0x00000001, 'd', "GPIO 54 level" },
+{ "GPLR1_55", 0x40E00004, 23, 0x00000001, 'd', "GPIO 55 level" },
+{ "GPLR1_56", 0x40E00004, 24, 0x00000001, 'd', "GPIO 56 level" },
+{ "GPLR1_57", 0x40E00004, 25, 0x00000001, 'd', "GPIO 57 level" },
+{ "GPLR1_58", 0x40E00004, 26, 0x00000001, 'd', "GPIO 58 level" },
+{ "GPLR1_59", 0x40E00004, 27, 0x00000001, 'd', "GPIO 59 level" },
+{ "GPLR1_60", 0x40E00004, 28, 0x00000001, 'd', "GPIO 60 level" },
+{ "GPLR1_61", 0x40E00004, 29, 0x00000001, 'd', "GPIO 61 level" },
+{ "GPLR1_62", 0x40E00004, 30, 0x00000001, 'd', "GPIO 62 level" },
+{ "GPLR1_63", 0x40E00004, 31, 0x00000001, 'd', "GPIO 63 level" },
+#endif
+
+{ "GPLR2",    0x40E00008,  0, 0xffffffff, 'x', "GPIO Level Register 2 (4-8)" },
+#if defined(CONFIG_ARCH_RAMSES)
+{ "GPLR2_64", 0x40E00008,  0, 0x00000001, 'd', "GPIO 64 (LDD6) level" },
+{ "GPLR2_65", 0x40E00008,  1, 0x00000001, 'd', "GPIO 65 (LDD7) level" },
+{ "GPLR2_66", 0x40E00008,  2, 0x00000001, 'd', "GPIO 66 (nc) level" },
+{ "GPLR2_67", 0x40E00008,  3, 0x00000001, 'd', "GPIO 67 (nc) level" },
+{ "GPLR2_68", 0x40E00008,  4, 0x00000001, 'd', "GPIO 68 (nc) level" },
+{ "GPLR2_69", 0x40E00008,  5, 0x00000001, 'd', "GPIO 69 (nc) level" },
+{ "GPLR2_70", 0x40E00008,  6, 0x00000001, 'd', "GPIO 70 (nc) level" },
+{ "GPLR2_71", 0x40E00008,  7, 0x00000001, 'd', "GPIO 71 (nc) level" },
+{ "GPLR2_72", 0x40E00008,  8, 0x00000001, 'd', "GPIO 72 (nc) level" },
+{ "GPLR2_73", 0x40E00008,  9, 0x00000001, 'd', "GPIO 73 (nc) level" },
+{ "GPLR2_74", 0x40E00008, 10, 0x00000001, 'd', "GPIO 74 (FCLK) level" },
+{ "GPLR2_75", 0x40E00008, 11, 0x00000001, 'd', "GPIO 75 (LCLK) level" },
+{ "GPLR2_76", 0x40E00008, 12, 0x00000001, 'd', "GPIO 76 (PCLK) level" },
+{ "GPLR2_77", 0x40E00008, 13, 0x00000001, 'd', "GPIO 77 (BIAS) level" },
+{ "GPLR2_78", 0x40E00008, 14, 0x00000001, 'd', "GPIO 78 (nCS2) level" },
+{ "GPLR2_79", 0x40E00008, 15, 0x00000001, 'd', "GPIO 79 (nCS3) level" },
+{ "GPLR2_80", 0x40E00008, 16, 0x00000001, 'd', "GPIO 80 (nCS4) level" },
+{ "GPLR2_81", 0x40E00008, 17, 0x00000001, 'd', "GPIO 81 (nc) level" },
+{ "GPLR2_82", 0x40E00008, 18, 0x00000001, 'd', "GPIO 82 (nc) level" },
+{ "GPLR2_83", 0x40E00008, 19, 0x00000001, 'd', "GPIO 83 (nc) level" },
+{ "GPLR2_84", 0x40E00008, 20, 0x00000001, 'd', "GPIO 84 (nc) level" },
+#else
+{ "GPLR2_64", 0x40E00008,  0, 0x00000001, 'd', "GPIO 64 level" },
+{ "GPLR2_65", 0x40E00008,  1, 0x00000001, 'd', "GPIO 65 level" },
+{ "GPLR2_66", 0x40E00008,  2, 0x00000001, 'd', "GPIO 66 level" },
+{ "GPLR2_67", 0x40E00008,  3, 0x00000001, 'd', "GPIO 67 level" },
+{ "GPLR2_68", 0x40E00008,  4, 0x00000001, 'd', "GPIO 68 level" },
+{ "GPLR2_69", 0x40E00008,  5, 0x00000001, 'd', "GPIO 69 level" },
+{ "GPLR2_70", 0x40E00008,  6, 0x00000001, 'd', "GPIO 70 level" },
+{ "GPLR2_71", 0x40E00008,  7, 0x00000001, 'd', "GPIO 71 level" },
+{ "GPLR2_72", 0x40E00008,  8, 0x00000001, 'd', "GPIO 72 level" },
+{ "GPLR2_73", 0x40E00008,  9, 0x00000001, 'd', "GPIO 73 level" },
+{ "GPLR2_74", 0x40E00008, 10, 0x00000001, 'd', "GPIO 74 level" },
+{ "GPLR2_75", 0x40E00008, 11, 0x00000001, 'd', "GPIO 75 level" },
+{ "GPLR2_76", 0x40E00008, 12, 0x00000001, 'd', "GPIO 76 level" },
+{ "GPLR2_77", 0x40E00008, 13, 0x00000001, 'd', "GPIO 77 level" },
+{ "GPLR2_78", 0x40E00008, 14, 0x00000001, 'd', "GPIO 78 level" },
+{ "GPLR2_79", 0x40E00008, 15, 0x00000001, 'd', "GPIO 79 level" },
+{ "GPLR2_80", 0x40E00008, 16, 0x00000001, 'd', "GPIO 80 level" },
+{ "GPLR2_81", 0x40E00008, 17, 0x00000001, 'd', "GPIO 81 level" },
+{ "GPLR2_82", 0x40E00008, 18, 0x00000001, 'd', "GPIO 82 level" },
+{ "GPLR2_83", 0x40E00008, 19, 0x00000001, 'd', "GPIO 83 level" },
+{ "GPLR2_84", 0x40E00008, 20, 0x00000001, 'd', "GPIO 84 level" },
+#endif
+
+{ "GPDR0",    0x40E0000C,  0, 0xffffffff, 'x', "GPIO Direction Register 0 (4-9)" },
+{ "GPDR0_0",  0x40E0000C,  0, 0x00000001, 'd', "GPIO 0 i/o direction (1=output)" },
+{ "GPDR0_1",  0x40E0000C,  1, 0x00000001, 'd', "GPIO 1 i/o direction (1=output)" },
+{ "GPDR0_2",  0x40E0000C,  2, 0x00000001, 'd', "GPIO 2 i/o direction (1=output)" },
+{ "GPDR0_3",  0x40E0000C,  3, 0x00000001, 'd', "GPIO 3 i/o direction (1=output)" },
+{ "GPDR0_4",  0x40E0000C,  4, 0x00000001, 'd', "GPIO 4 i/o direction (1=output)" },
+{ "GPDR0_5",  0x40E0000C,  5, 0x00000001, 'd', "GPIO 5 i/o direction (1=output)" },
+{ "GPDR0_6",  0x40E0000C,  6, 0x00000001, 'd', "GPIO 6 i/o direction (1=output)" },
+{ "GPDR0_7",  0x40E0000C,  7, 0x00000001, 'd', "GPIO 7 i/o direction (1=output)" },
+{ "GPDR0_8",  0x40E0000C,  8, 0x00000001, 'd', "GPIO 8 i/o direction (1=output)" },
+{ "GPDR0_9",  0x40E0000C,  9, 0x00000001, 'd', "GPIO 9 i/o direction (1=output)" },
+{ "GPDR0_10", 0x40E0000C, 10, 0x00000001, 'd', "GPIO 10 i/o direction (1=output)" },
+{ "GPDR0_11", 0x40E0000C, 11, 0x00000001, 'd', "GPIO 11 i/o direction (1=output)" },
+{ "GPDR0_12", 0x40E0000C, 12, 0x00000001, 'd', "GPIO 12 i/o direction (1=output)" },
+{ "GPDR0_13", 0x40E0000C, 13, 0x00000001, 'd', "GPIO 13 i/o direction (1=output)" },
+{ "GPDR0_14", 0x40E0000C, 14, 0x00000001, 'd', "GPIO 14 i/o direction (1=output)" },
+{ "GPDR0_15", 0x40E0000C, 15, 0x00000001, 'd', "GPIO 15 i/o direction (1=output)" },
+{ "GPDR0_16", 0x40E0000C, 16, 0x00000001, 'd', "GPIO 16 i/o direction (1=output)" },
+{ "GPDR0_17", 0x40E0000C, 17, 0x00000001, 'd', "GPIO 17 i/o direction (1=output)" },
+{ "GPDR0_18", 0x40E0000C, 18, 0x00000001, 'd', "GPIO 18 i/o direction (1=output)" },
+{ "GPDR0_19", 0x40E0000C, 19, 0x00000001, 'd', "GPIO 19 i/o direction (1=output)" },
+{ "GPDR0_20", 0x40E0000C, 20, 0x00000001, 'd', "GPIO 20 i/o direction (1=output)" },
+{ "GPDR0_21", 0x40E0000C, 21, 0x00000001, 'd', "GPIO 21 i/o direction (1=output)" },
+{ "GPDR0_22", 0x40E0000C, 22, 0x00000001, 'd', "GPIO 22 i/o direction (1=output)" },
+{ "GPDR0_23", 0x40E0000C, 23, 0x00000001, 'd', "GPIO 23 i/o direction (1=output)" },
+{ "GPDR0_24", 0x40E0000C, 24, 0x00000001, 'd', "GPIO 24 i/o direction (1=output)" },
+{ "GPDR0_25", 0x40E0000C, 25, 0x00000001, 'd', "GPIO 25 i/o direction (1=output)" },
+{ "GPDR0_26", 0x40E0000C, 26, 0x00000001, 'd', "GPIO 26 i/o direction (1=output)" },
+{ "GPDR0_27", 0x40E0000C, 27, 0x00000001, 'd', "GPIO 27 i/o direction (1=output)" },
+{ "GPDR0_28", 0x40E0000C, 28, 0x00000001, 'd', "GPIO 28 i/o direction (1=output)" },
+{ "GPDR0_29", 0x40E0000C, 29, 0x00000001, 'd', "GPIO 29 i/o direction (1=output)" },
+{ "GPDR0_30", 0x40E0000C, 30, 0x00000001, 'd', "GPIO 30 i/o direction (1=output)" },
+{ "GPDR0_31", 0x40E0000C, 31, 0x00000001, 'd', "GPIO 31 i/o direction (1=output)" },
+
+{ "GPDR1",    0x40E00010,  0, 0xffffffff, 'x', "GPIO Direction Register 1 (4-9)" },
+{ "GPDR1_32", 0x40E00010,  0, 0x00000001, 'd', "GPIO 32 i/o direction (1=output)" },
+{ "GPDR1_33", 0x40E00010,  1, 0x00000001, 'd', "GPIO 33 i/o direction (1=output)" },
+{ "GPDR1_34", 0x40E00010,  2, 0x00000001, 'd', "GPIO 34 i/o direction (1=output)" },
+{ "GPDR1_35", 0x40E00010,  3, 0x00000001, 'd', "GPIO 35 i/o direction (1=output)" },
+{ "GPDR1_36", 0x40E00010,  4, 0x00000001, 'd', "GPIO 36 i/o direction (1=output)" },
+{ "GPDR1_37", 0x40E00010,  5, 0x00000001, 'd', "GPIO 37 i/o direction (1=output)" },
+{ "GPDR1_38", 0x40E00010,  6, 0x00000001, 'd', "GPIO 38 i/o direction (1=output)" },
+{ "GPDR1_39", 0x40E00010,  7, 0x00000001, 'd', "GPIO 39 i/o direction (1=output)" },
+{ "GPDR1_40", 0x40E00010,  8, 0x00000001, 'd', "GPIO 40 i/o direction (1=output)" },
+{ "GPDR1_41", 0x40E00010,  9, 0x00000001, 'd', "GPIO 41 i/o direction (1=output)" },
+{ "GPDR1_42", 0x40E00010, 10, 0x00000001, 'd', "GPIO 42 i/o direction (1=output)" },
+{ "GPDR1_43", 0x40E00010, 11, 0x00000001, 'd', "GPIO 43 i/o direction (1=output)" },
+{ "GPDR1_44", 0x40E00010, 12, 0x00000001, 'd', "GPIO 44 i/o direction (1=output)" },
+{ "GPDR1_45", 0x40E00010, 13, 0x00000001, 'd', "GPIO 45 i/o direction (1=output)" },
+{ "GPDR1_46", 0x40E00010, 14, 0x00000001, 'd', "GPIO 46 i/o direction (1=output)" },
+{ "GPDR1_47", 0x40E00010, 15, 0x00000001, 'd', "GPIO 47 i/o direction (1=output)" },
+{ "GPDR1_48", 0x40E00010, 16, 0x00000001, 'd', "GPIO 48 i/o direction (1=output)" },
+{ "GPDR1_49", 0x40E00010, 17, 0x00000001, 'd', "GPIO 49 i/o direction (1=output)" },
+{ "GPDR1_50", 0x40E00010, 18, 0x00000001, 'd', "GPIO 50 i/o direction (1=output)" },
+{ "GPDR1_51", 0x40E00010, 19, 0x00000001, 'd', "GPIO 51 i/o direction (1=output)" },
+{ "GPDR1_52", 0x40E00010, 20, 0x00000001, 'd', "GPIO 52 i/o direction (1=output)" },
+{ "GPDR1_53", 0x40E00010, 21, 0x00000001, 'd', "GPIO 53 i/o direction (1=output)" },
+{ "GPDR1_54", 0x40E00010, 22, 0x00000001, 'd', "GPIO 54 i/o direction (1=output)" },
+{ "GPDR1_55", 0x40E00010, 23, 0x00000001, 'd', "GPIO 55 i/o direction (1=output)" },
+{ "GPDR1_56", 0x40E00010, 24, 0x00000001, 'd', "GPIO 56 i/o direction (1=output)" },
+{ "GPDR1_57", 0x40E00010, 25, 0x00000001, 'd', "GPIO 57 i/o direction (1=output)" },
+{ "GPDR1_58", 0x40E00010, 26, 0x00000001, 'd', "GPIO 58 i/o direction (1=output)" },
+{ "GPDR1_59", 0x40E00010, 27, 0x00000001, 'd', "GPIO 59 i/o direction (1=output)" },
+{ "GPDR1_60", 0x40E00010, 28, 0x00000001, 'd', "GPIO 60 i/o direction (1=output)" },
+{ "GPDR1_61", 0x40E00010, 29, 0x00000001, 'd', "GPIO 61 i/o direction (1=output)" },
+{ "GPDR1_62", 0x40E00010, 30, 0x00000001, 'd', "GPIO 62 i/o direction (1=output)" },
+{ "GPDR1_63", 0x40E00010, 31, 0x00000001, 'd', "GPIO 63 i/o direction (1=output)" },
+
+{ "GPDR2",    0x40E00014,  0, 0xffffffff, 'x', "GPIO Direction Register 2 (4-9)" },
+{ "GPDR2_64", 0x40E00014,  0, 0x00000001, 'd', "GPIO 64 i/o direction (1=output)" },
+{ "GPDR2_65", 0x40E00014,  1, 0x00000001, 'd', "GPIO 65 i/o direction (1=output)" },
+{ "GPDR2_66", 0x40E00014,  2, 0x00000001, 'd', "GPIO 66 i/o direction (1=output)" },
+{ "GPDR2_67", 0x40E00014,  3, 0x00000001, 'd', "GPIO 67 i/o direction (1=output)" },
+{ "GPDR2_68", 0x40E00014,  4, 0x00000001, 'd', "GPIO 68 i/o direction (1=output)" },
+{ "GPDR2_69", 0x40E00014,  5, 0x00000001, 'd', "GPIO 69 i/o direction (1=output)" },
+{ "GPDR2_70", 0x40E00014,  6, 0x00000001, 'd', "GPIO 70 i/o direction (1=output)" },
+{ "GPDR2_71", 0x40E00014,  7, 0x00000001, 'd', "GPIO 71 i/o direction (1=output)" },
+{ "GPDR2_72", 0x40E00014,  8, 0x00000001, 'd', "GPIO 72 i/o direction (1=output)" },
+{ "GPDR2_73", 0x40E00014,  9, 0x00000001, 'd', "GPIO 73 i/o direction (1=output)" },
+{ "GPDR2_74", 0x40E00014, 10, 0x00000001, 'd', "GPIO 74 i/o direction (1=output)" },
+{ "GPDR2_75", 0x40E00014, 11, 0x00000001, 'd', "GPIO 75 i/o direction (1=output)" },
+{ "GPDR2_76", 0x40E00014, 12, 0x00000001, 'd', "GPIO 76 i/o direction (1=output)" },
+{ "GPDR2_77", 0x40E00014, 13, 0x00000001, 'd', "GPIO 77 i/o direction (1=output)" },
+{ "GPDR2_78", 0x40E00014, 14, 0x00000001, 'd', "GPIO 78 i/o direction (1=output)" },
+{ "GPDR2_79", 0x40E00014, 15, 0x00000001, 'd', "GPIO 79 i/o direction (1=output)" },
+{ "GPDR2_80", 0x40E00014, 16, 0x00000001, 'd', "GPIO 80 i/o direction (1=output)" },
+{ "GPDR2_81", 0x40E00014, 17, 0x00000001, 'd', "GPIO 81 i/o direction (1=output)" },
+{ "GPDR2_82", 0x40E00014, 18, 0x00000001, 'd', "GPIO 82 i/o direction (1=output)" },
+{ "GPDR2_83", 0x40E00014, 19, 0x00000001, 'd', "GPIO 83 i/o direction (1=output)" },
+{ "GPDR2_84", 0x40E00014, 20, 0x00000001, 'd', "GPIO 84 i/o direction (1=output)" },
+
+{ "GPSR0",    0x40E00018,  0, 0xffffffff, 'x', "GPIO Set Register 0 (4-10)" },
+{ "GPSR0_0",  0x40E00018,  0, 0x00000001, 'd', "GPIO 0 set" },
+{ "GPSR0_1",  0x40E00018,  1, 0x00000001, 'd', "GPIO 1 set" },
+{ "GPSR0_2",  0x40E00018,  2, 0x00000001, 'd', "GPIO 2 set" },
+{ "GPSR0_3",  0x40E00018,  3, 0x00000001, 'd', "GPIO 3 set" },
+{ "GPSR0_4",  0x40E00018,  4, 0x00000001, 'd', "GPIO 4 set" },
+{ "GPSR0_5",  0x40E00018,  5, 0x00000001, 'd', "GPIO 5 set" },
+{ "GPSR0_6",  0x40E00018,  6, 0x00000001, 'd', "GPIO 6 set" },
+{ "GPSR0_7",  0x40E00018,  7, 0x00000001, 'd', "GPIO 7 set" },
+{ "GPSR0_8",  0x40E00018,  8, 0x00000001, 'd', "GPIO 8 set" },
+{ "GPSR0_9",  0x40E00018,  9, 0x00000001, 'd', "GPIO 9 set" },
+{ "GPSR0_10", 0x40E00018, 10, 0x00000001, 'd', "GPIO 10 set" },
+{ "GPSR0_11", 0x40E00018, 11, 0x00000001, 'd', "GPIO 11 set" },
+{ "GPSR0_12", 0x40E00018, 12, 0x00000001, 'd', "GPIO 12 set" },
+{ "GPSR0_13", 0x40E00018, 13, 0x00000001, 'd', "GPIO 13 set" },
+{ "GPSR0_14", 0x40E00018, 14, 0x00000001, 'd', "GPIO 14 set" },
+{ "GPSR0_15", 0x40E00018, 15, 0x00000001, 'd', "GPIO 15 set" },
+{ "GPSR0_16", 0x40E00018, 16, 0x00000001, 'd', "GPIO 16 set" },
+{ "GPSR0_17", 0x40E00018, 17, 0x00000001, 'd', "GPIO 17 set" },
+{ "GPSR0_18", 0x40E00018, 18, 0x00000001, 'd', "GPIO 18 set" },
+{ "GPSR0_19", 0x40E00018, 19, 0x00000001, 'd', "GPIO 19 set" },
+{ "GPSR0_20", 0x40E00018, 20, 0x00000001, 'd', "GPIO 20 set" },
+{ "GPSR0_21", 0x40E00018, 21, 0x00000001, 'd', "GPIO 21 set" },
+{ "GPSR0_22", 0x40E00018, 22, 0x00000001, 'd', "GPIO 22 set" },
+{ "GPSR0_23", 0x40E00018, 23, 0x00000001, 'd', "GPIO 23 set" },
+{ "GPSR0_24", 0x40E00018, 24, 0x00000001, 'd', "GPIO 24 set" },
+{ "GPSR0_25", 0x40E00018, 25, 0x00000001, 'd', "GPIO 25 set" },
+{ "GPSR0_26", 0x40E00018, 26, 0x00000001, 'd', "GPIO 26 set" },
+{ "GPSR0_27", 0x40E00018, 27, 0x00000001, 'd', "GPIO 27 set" },
+{ "GPSR0_28", 0x40E00018, 28, 0x00000001, 'd', "GPIO 28 set" },
+{ "GPSR0_29", 0x40E00018, 29, 0x00000001, 'd', "GPIO 29 set" },
+{ "GPSR0_30", 0x40E00018, 30, 0x00000001, 'd', "GPIO 30 set" },
+{ "GPSR0_31", 0x40E00018, 31, 0x00000001, 'd', "GPIO 31 set" },
+
+{ "GPSR1",    0x40E0001C,  0, 0xffffffff, 'x', "GPIO Set Register 1 (4-10)" },
+{ "GPSR1_32", 0x40E0001C,  0, 0x00000001, 'd', "GPIO 32 set" },
+{ "GPSR1_33", 0x40E0001C,  1, 0x00000001, 'd', "GPIO 33 set" },
+{ "GPSR1_34", 0x40E0001C,  2, 0x00000001, 'd', "GPIO 34 set" },
+{ "GPSR1_35", 0x40E0001C,  3, 0x00000001, 'd', "GPIO 35 set" },
+{ "GPSR1_36", 0x40E0001C,  4, 0x00000001, 'd', "GPIO 36 set" },
+{ "GPSR1_37", 0x40E0001C,  5, 0x00000001, 'd', "GPIO 37 set" },
+{ "GPSR1_38", 0x40E0001C,  6, 0x00000001, 'd', "GPIO 38 set" },
+{ "GPSR1_39", 0x40E0001C,  7, 0x00000001, 'd', "GPIO 39 set" },
+{ "GPSR1_40", 0x40E0001C,  8, 0x00000001, 'd', "GPIO 40 set" },
+{ "GPSR1_41", 0x40E0001C,  9, 0x00000001, 'd', "GPIO 41 set" },
+{ "GPSR1_42", 0x40E0001C, 10, 0x00000001, 'd', "GPIO 42 set" },
+{ "GPSR1_43", 0x40E0001C, 11, 0x00000001, 'd', "GPIO 43 set" },
+{ "GPSR1_44", 0x40E0001C, 12, 0x00000001, 'd', "GPIO 44 set" },
+{ "GPSR1_45", 0x40E0001C, 13, 0x00000001, 'd', "GPIO 45 set" },
+{ "GPSR1_46", 0x40E0001C, 14, 0x00000001, 'd', "GPIO 46 set" },
+{ "GPSR1_47", 0x40E0001C, 15, 0x00000001, 'd', "GPIO 47 set" },
+{ "GPSR1_48", 0x40E0001C, 16, 0x00000001, 'd', "GPIO 48 set" },
+{ "GPSR1_49", 0x40E0001C, 17, 0x00000001, 'd', "GPIO 49 set" },
+{ "GPSR1_50", 0x40E0001C, 18, 0x00000001, 'd', "GPIO 50 set" },
+{ "GPSR1_51", 0x40E0001C, 19, 0x00000001, 'd', "GPIO 51 set" },
+{ "GPSR1_52", 0x40E0001C, 20, 0x00000001, 'd', "GPIO 52 set" },
+{ "GPSR1_53", 0x40E0001C, 21, 0x00000001, 'd', "GPIO 53 set" },
+{ "GPSR1_54", 0x40E0001C, 22, 0x00000001, 'd', "GPIO 54 set" },
+{ "GPSR1_55", 0x40E0001C, 23, 0x00000001, 'd', "GPIO 55 set" },
+{ "GPSR1_56", 0x40E0001C, 24, 0x00000001, 'd', "GPIO 56 set" },
+{ "GPSR1_57", 0x40E0001C, 25, 0x00000001, 'd', "GPIO 57 set" },
+{ "GPSR1_58", 0x40E0001C, 26, 0x00000001, 'd', "GPIO 58 set" },
+{ "GPSR1_59", 0x40E0001C, 27, 0x00000001, 'd', "GPIO 59 set" },
+{ "GPSR1_60", 0x40E0001C, 28, 0x00000001, 'd', "GPIO 60 set" },
+{ "GPSR1_61", 0x40E0001C, 29, 0x00000001, 'd', "GPIO 61 set" },
+{ "GPSR1_62", 0x40E0001C, 30, 0x00000001, 'd', "GPIO 62 set" },
+{ "GPSR1_63", 0x40E0001C, 31, 0x00000001, 'd', "GPIO 63 set" },
+
+{ "GPSR2",    0x40E00020,  0, 0xffffffff, 'x', "GPIO Set Register 2 (4-11)" },
+{ "GPSR2_64", 0x40E00020,  0, 0x00000001, 'd', "GPIO 64 set" },
+{ "GPSR2_65", 0x40E00020,  1, 0x00000001, 'd', "GPIO 65 set" },
+{ "GPSR2_66", 0x40E00020,  2, 0x00000001, 'd', "GPIO 66 set" },
+{ "GPSR2_67", 0x40E00020,  3, 0x00000001, 'd', "GPIO 67 set" },
+{ "GPSR2_68", 0x40E00020,  4, 0x00000001, 'd', "GPIO 68 set" },
+{ "GPSR2_69", 0x40E00020,  5, 0x00000001, 'd', "GPIO 69 set" },
+{ "GPSR2_70", 0x40E00020,  6, 0x00000001, 'd', "GPIO 70 set" },
+{ "GPSR2_71", 0x40E00020,  7, 0x00000001, 'd', "GPIO 71 set" },
+{ "GPSR2_72", 0x40E00020,  8, 0x00000001, 'd', "GPIO 72 set" },
+{ "GPSR2_73", 0x40E00020,  9, 0x00000001, 'd', "GPIO 73 set" },
+{ "GPSR2_74", 0x40E00020, 10, 0x00000001, 'd', "GPIO 74 set" },
+{ "GPSR2_75", 0x40E00020, 11, 0x00000001, 'd', "GPIO 75 set" },
+{ "GPSR2_76", 0x40E00020, 12, 0x00000001, 'd', "GPIO 76 set" },
+{ "GPSR2_77", 0x40E00020, 13, 0x00000001, 'd', "GPIO 77 set" },
+{ "GPSR2_78", 0x40E00020, 14, 0x00000001, 'd', "GPIO 78 set" },
+{ "GPSR2_79", 0x40E00020, 15, 0x00000001, 'd', "GPIO 79 set" },
+{ "GPSR2_80", 0x40E00020, 16, 0x00000001, 'd', "GPIO 80 set" },
+{ "GPSR2_81", 0x40E00020, 17, 0x00000001, 'd', "GPIO 81 set" },
+{ "GPSR2_82", 0x40E00020, 18, 0x00000001, 'd', "GPIO 82 set" },
+{ "GPSR2_83", 0x40E00020, 19, 0x00000001, 'd', "GPIO 83 set" },
+{ "GPSR2_84", 0x40E00020, 20, 0x00000001, 'd', "GPIO 84 set" },
+
+{ "GPCR0",    0x40E00024,  0, 0xffffffff, 'x', "GPIO Clear Register 0 (4-11)" },
+{ "GPCR0_0",  0x40E00024,  0, 0x00000001, 'd', "GPIO 0 clear" },
+{ "GPCR0_1",  0x40E00024,  1, 0x00000001, 'd', "GPIO 1 clear" },
+{ "GPCR0_2",  0x40E00024,  2, 0x00000001, 'd', "GPIO 2 clear" },
+{ "GPCR0_3",  0x40E00024,  3, 0x00000001, 'd', "GPIO 3 clear" },
+{ "GPCR0_4",  0x40E00024,  4, 0x00000001, 'd', "GPIO 4 clear" },
+{ "GPCR0_5",  0x40E00024,  5, 0x00000001, 'd', "GPIO 5 clear" },
+{ "GPCR0_6",  0x40E00024,  6, 0x00000001, 'd', "GPIO 6 clear" },
+{ "GPCR0_7",  0x40E00024,  7, 0x00000001, 'd', "GPIO 7 clear" },
+{ "GPCR0_8",  0x40E00024,  8, 0x00000001, 'd', "GPIO 8 clear" },
+{ "GPCR0_9",  0x40E00024,  9, 0x00000001, 'd', "GPIO 9 clear" },
+{ "GPCR0_10", 0x40E00024, 10, 0x00000001, 'd', "GPIO 10 clear" },
+{ "GPCR0_11", 0x40E00024, 11, 0x00000001, 'd', "GPIO 11 clear" },
+{ "GPCR0_12", 0x40E00024, 12, 0x00000001, 'd', "GPIO 12 clear" },
+{ "GPCR0_13", 0x40E00024, 13, 0x00000001, 'd', "GPIO 13 clear" },
+{ "GPCR0_14", 0x40E00024, 14, 0x00000001, 'd', "GPIO 14 clear" },
+{ "GPCR0_15", 0x40E00024, 15, 0x00000001, 'd', "GPIO 15 clear" },
+{ "GPCR0_16", 0x40E00024, 16, 0x00000001, 'd', "GPIO 16 clear" },
+{ "GPCR0_17", 0x40E00024, 17, 0x00000001, 'd', "GPIO 17 clear" },
+{ "GPCR0_18", 0x40E00024, 18, 0x00000001, 'd', "GPIO 18 clear" },
+{ "GPCR0_19", 0x40E00024, 19, 0x00000001, 'd', "GPIO 19 clear" },
+{ "GPCR0_20", 0x40E00024, 20, 0x00000001, 'd', "GPIO 20 clear" },
+{ "GPCR0_21", 0x40E00024, 21, 0x00000001, 'd', "GPIO 21 clear" },
+{ "GPCR0_22", 0x40E00024, 22, 0x00000001, 'd', "GPIO 22 clear" },
+{ "GPCR0_23", 0x40E00024, 23, 0x00000001, 'd', "GPIO 23 clear" },
+{ "GPCR0_24", 0x40E00024, 24, 0x00000001, 'd', "GPIO 24 clear" },
+{ "GPCR0_25", 0x40E00024, 25, 0x00000001, 'd', "GPIO 25 clear" },
+{ "GPCR0_26", 0x40E00024, 26, 0x00000001, 'd', "GPIO 26 clear" },
+{ "GPCR0_27", 0x40E00024, 27, 0x00000001, 'd', "GPIO 27 clear" },
+{ "GPCR0_28", 0x40E00024, 28, 0x00000001, 'd', "GPIO 28 clear" },
+{ "GPCR0_29", 0x40E00024, 29, 0x00000001, 'd', "GPIO 29 clear" },
+{ "GPCR0_30", 0x40E00024, 30, 0x00000001, 'd', "GPIO 30 clear" },
+{ "GPCR0_31", 0x40E00024, 31, 0x00000001, 'd', "GPIO 31 clear" },
+
+{ "GPCR1",    0x40E00028,  0, 0xffffffff, 'x', "GPIO Clear Register 1 (4-11)" },
+{ "GPCR1_32", 0x40E00028,  0, 0x00000001, 'd', "GPIO 32 clear" },
+{ "GPCR1_33", 0x40E00028,  1, 0x00000001, 'd', "GPIO 33 clear" },
+{ "GPCR1_34", 0x40E00028,  2, 0x00000001, 'd', "GPIO 34 clear" },
+{ "GPCR1_35", 0x40E00028,  3, 0x00000001, 'd', "GPIO 35 clear" },
+{ "GPCR1_36", 0x40E00028,  4, 0x00000001, 'd', "GPIO 36 clear" },
+{ "GPCR1_37", 0x40E00028,  5, 0x00000001, 'd', "GPIO 37 clear" },
+{ "GPCR1_38", 0x40E00028,  6, 0x00000001, 'd', "GPIO 38 clear" },
+{ "GPCR1_39", 0x40E00028,  7, 0x00000001, 'd', "GPIO 39 clear" },
+{ "GPCR1_40", 0x40E00028,  8, 0x00000001, 'd', "GPIO 40 clear" },
+{ "GPCR1_41", 0x40E00028,  9, 0x00000001, 'd', "GPIO 41 clear" },
+{ "GPCR1_42", 0x40E00028, 10, 0x00000001, 'd', "GPIO 42 clear" },
+{ "GPCR1_43", 0x40E00028, 11, 0x00000001, 'd', "GPIO 43 clear" },
+{ "GPCR1_44", 0x40E00028, 12, 0x00000001, 'd', "GPIO 44 clear" },
+{ "GPCR1_45", 0x40E00028, 13, 0x00000001, 'd', "GPIO 45 clear" },
+{ "GPCR1_46", 0x40E00028, 14, 0x00000001, 'd', "GPIO 46 clear" },
+{ "GPCR1_47", 0x40E00028, 15, 0x00000001, 'd', "GPIO 47 clear" },
+{ "GPCR1_48", 0x40E00028, 16, 0x00000001, 'd', "GPIO 48 clear" },
+{ "GPCR1_49", 0x40E00028, 17, 0x00000001, 'd', "GPIO 49 clear" },
+{ "GPCR1_50", 0x40E00028, 18, 0x00000001, 'd', "GPIO 50 clear" },
+{ "GPCR1_51", 0x40E00028, 19, 0x00000001, 'd', "GPIO 51 clear" },
+{ "GPCR1_52", 0x40E00028, 20, 0x00000001, 'd', "GPIO 52 clear" },
+{ "GPCR1_53", 0x40E00028, 21, 0x00000001, 'd', "GPIO 53 clear" },
+{ "GPCR1_54", 0x40E00028, 22, 0x00000001, 'd', "GPIO 54 clear" },
+{ "GPCR1_55", 0x40E00028, 23, 0x00000001, 'd', "GPIO 55 clear" },
+{ "GPCR1_56", 0x40E00028, 24, 0x00000001, 'd', "GPIO 56 clear" },
+{ "GPCR1_57", 0x40E00028, 25, 0x00000001, 'd', "GPIO 57 clear" },
+{ "GPCR1_58", 0x40E00028, 26, 0x00000001, 'd', "GPIO 58 clear" },
+{ "GPCR1_59", 0x40E00028, 27, 0x00000001, 'd', "GPIO 59 clear" },
+{ "GPCR1_60", 0x40E00028, 28, 0x00000001, 'd', "GPIO 60 clear" },
+{ "GPCR1_61", 0x40E00028, 29, 0x00000001, 'd', "GPIO 61 clear" },
+{ "GPCR1_62", 0x40E00028, 30, 0x00000001, 'd', "GPIO 62 clear" },
+{ "GPCR1_63", 0x40E00028, 31, 0x00000001, 'd', "GPIO 63 clear" },
+
+{ "GPCR2",    0x40E0002C,  0, 0xffffffff, 'x', "GPIO Clear Register 2 (4-12)" },
+{ "GPCR2_64", 0x40E0002C,  0, 0x00000001, 'd', "GPIO 64 clear" },
+{ "GPCR2_65", 0x40E0002C,  1, 0x00000001, 'd', "GPIO 65 clear" },
+{ "GPCR2_66", 0x40E0002C,  2, 0x00000001, 'd', "GPIO 66 clear" },
+{ "GPCR2_67", 0x40E0002C,  3, 0x00000001, 'd', "GPIO 67 clear" },
+{ "GPCR2_68", 0x40E0002C,  4, 0x00000001, 'd', "GPIO 68 clear" },
+{ "GPCR2_69", 0x40E0002C,  5, 0x00000001, 'd', "GPIO 69 clear" },
+{ "GPCR2_70", 0x40E0002C,  6, 0x00000001, 'd', "GPIO 70 clear" },
+{ "GPCR2_71", 0x40E0002C,  7, 0x00000001, 'd', "GPIO 71 clear" },
+{ "GPCR2_72", 0x40E0002C,  8, 0x00000001, 'd', "GPIO 72 clear" },
+{ "GPCR2_73", 0x40E0002C,  9, 0x00000001, 'd', "GPIO 73 clear" },
+{ "GPCR2_74", 0x40E0002C, 10, 0x00000001, 'd', "GPIO 74 clear" },
+{ "GPCR2_75", 0x40E0002C, 11, 0x00000001, 'd', "GPIO 75 clear" },
+{ "GPCR2_76", 0x40E0002C, 12, 0x00000001, 'd', "GPIO 76 clear" },
+{ "GPCR2_77", 0x40E0002C, 13, 0x00000001, 'd', "GPIO 77 clear" },
+{ "GPCR2_78", 0x40E0002C, 14, 0x00000001, 'd', "GPIO 78 clear" },
+{ "GPCR2_79", 0x40E0002C, 15, 0x00000001, 'd', "GPIO 79 clear" },
+{ "GPCR2_80", 0x40E0002C, 16, 0x00000001, 'd', "GPIO 80 clear" },
+{ "GPCR2_81", 0x40E0002C, 17, 0x00000001, 'd', "GPIO 81 clear" },
+{ "GPCR2_82", 0x40E0002C, 18, 0x00000001, 'd', "GPIO 82 clear" },
+{ "GPCR2_83", 0x40E0002C, 19, 0x00000001, 'd', "GPIO 83 clear" },
+{ "GPCR2_84", 0x40E0002C, 20, 0x00000001, 'd', "GPIO 84 clear" },
+
+{ "GRER0",    0x40E00030,  0, 0xffffffff, 'x', "GPIO Raising Edge Detect Enable Register 0 (4-13)" },
+{ "GRER0_0",  0x40E00030,  0, 0x00000001, 'd', "GPIO 0 raising edge detect enabled" },
+{ "GRER0_1",  0x40E00030,  1, 0x00000001, 'd', "GPIO 1 raising edge detect enabled" },
+{ "GRER0_2",  0x40E00030,  2, 0x00000001, 'd', "GPIO 2 raising edge detect enabled" },
+{ "GRER0_3",  0x40E00030,  3, 0x00000001, 'd', "GPIO 3 raising edge detect enabled" },
+{ "GRER0_4",  0x40E00030,  4, 0x00000001, 'd', "GPIO 4 raising edge detect enabled" },
+{ "GRER0_5",  0x40E00030,  5, 0x00000001, 'd', "GPIO 5 raising edge detect enabled" },
+{ "GRER0_6",  0x40E00030,  6, 0x00000001, 'd', "GPIO 6 raising edge detect enabled" },
+{ "GRER0_7",  0x40E00030,  7, 0x00000001, 'd', "GPIO 7 raising edge detect enabled" },
+{ "GRER0_8",  0x40E00030,  8, 0x00000001, 'd', "GPIO 8 raising edge detect enabled" },
+{ "GRER0_9",  0x40E00030,  9, 0x00000001, 'd', "GPIO 9 raising edge detect enabled" },
+{ "GRER0_10", 0x40E00030, 10, 0x00000001, 'd', "GPIO 10 raising edge detect enabled" },
+{ "GRER0_11", 0x40E00030, 11, 0x00000001, 'd', "GPIO 11 raising edge detect enabled" },
+{ "GRER0_12", 0x40E00030, 12, 0x00000001, 'd', "GPIO 12 raising edge detect enabled" },
+{ "GRER0_13", 0x40E00030, 13, 0x00000001, 'd', "GPIO 13 raising edge detect enabled" },
+{ "GRER0_14", 0x40E00030, 14, 0x00000001, 'd', "GPIO 14 raising edge detect enabled" },
+{ "GRER0_15", 0x40E00030, 15, 0x00000001, 'd', "GPIO 15 raising edge detect enabled" },
+{ "GRER0_16", 0x40E00030, 16, 0x00000001, 'd', "GPIO 16 raising edge detect enabled" },
+{ "GRER0_17", 0x40E00030, 17, 0x00000001, 'd', "GPIO 17 raising edge detect enabled" },
+{ "GRER0_18", 0x40E00030, 18, 0x00000001, 'd', "GPIO 18 raising edge detect enabled" },
+{ "GRER0_19", 0x40E00030, 19, 0x00000001, 'd', "GPIO 19 raising edge detect enabled" },
+{ "GRER0_20", 0x40E00030, 20, 0x00000001, 'd', "GPIO 20 raising edge detect enabled" },
+{ "GRER0_21", 0x40E00030, 21, 0x00000001, 'd', "GPIO 21 raising edge detect enabled" },
+{ "GRER0_22", 0x40E00030, 22, 0x00000001, 'd', "GPIO 22 raising edge detect enabled" },
+{ "GRER0_23", 0x40E00030, 23, 0x00000001, 'd', "GPIO 23 raising edge detect enabled" },
+{ "GRER0_24", 0x40E00030, 24, 0x00000001, 'd', "GPIO 24 raising edge detect enabled" },
+{ "GRER0_25", 0x40E00030, 25, 0x00000001, 'd', "GPIO 25 raising edge detect enabled" },
+{ "GRER0_26", 0x40E00030, 26, 0x00000001, 'd', "GPIO 26 raising edge detect enabled" },
+{ "GRER0_27", 0x40E00030, 27, 0x00000001, 'd', "GPIO 27 raising edge detect enabled" },
+{ "GRER0_28", 0x40E00030, 28, 0x00000001, 'd', "GPIO 28 raising edge detect enabled" },
+{ "GRER0_29", 0x40E00030, 29, 0x00000001, 'd', "GPIO 29 raising edge detect enabled" },
+{ "GRER0_30", 0x40E00030, 30, 0x00000001, 'd', "GPIO 30 raising edge detect enabled" },
+{ "GRER0_31", 0x40E00030, 31, 0x00000001, 'd', "GPIO 31 raising edge detect enabled" },
+
+{ "GRER1",    0x40E00034,  0, 0xffffffff, 'x', "GPIO Raising Edge Detect Enable Register 1 (4-13)" },
+{ "GRER1_32", 0x40E00034,  0, 0x00000001, 'd', "GPIO 32 raising edge detect enabled" },
+{ "GRER1_33", 0x40E00034,  1, 0x00000001, 'd', "GPIO 33 raising edge detect enabled" },
+{ "GRER1_34", 0x40E00034,  2, 0x00000001, 'd', "GPIO 34 raising edge detect enabled" },
+{ "GRER1_35", 0x40E00034,  3, 0x00000001, 'd', "GPIO 35 raising edge detect enabled" },
+{ "GRER1_36", 0x40E00034,  4, 0x00000001, 'd', "GPIO 36 raising edge detect enabled" },
+{ "GRER1_37", 0x40E00034,  5, 0x00000001, 'd', "GPIO 37 raising edge detect enabled" },
+{ "GRER1_38", 0x40E00034,  6, 0x00000001, 'd', "GPIO 38 raising edge detect enabled" },
+{ "GRER1_39", 0x40E00034,  7, 0x00000001, 'd', "GPIO 39 raising edge detect enabled" },
+{ "GRER1_40", 0x40E00034,  8, 0x00000001, 'd', "GPIO 40 raising edge detect enabled" },
+{ "GRER1_41", 0x40E00034,  9, 0x00000001, 'd', "GPIO 41 raising edge detect enabled" },
+{ "GRER1_42", 0x40E00034, 10, 0x00000001, 'd', "GPIO 42 raising edge detect enabled" },
+{ "GRER1_43", 0x40E00034, 11, 0x00000001, 'd', "GPIO 43 raising edge detect enabled" },
+{ "GRER1_44", 0x40E00034, 12, 0x00000001, 'd', "GPIO 44 raising edge detect enabled" },
+{ "GRER1_45", 0x40E00034, 13, 0x00000001, 'd', "GPIO 45 raising edge detect enabled" },
+{ "GRER1_46", 0x40E00034, 14, 0x00000001, 'd', "GPIO 46 raising edge detect enabled" },
+{ "GRER1_47", 0x40E00034, 15, 0x00000001, 'd', "GPIO 47 raising edge detect enabled" },
+{ "GRER1_48", 0x40E00034, 16, 0x00000001, 'd', "GPIO 48 raising edge detect enabled" },
+{ "GRER1_49", 0x40E00034, 17, 0x00000001, 'd', "GPIO 49 raising edge detect enabled" },
+{ "GRER1_50", 0x40E00034, 18, 0x00000001, 'd', "GPIO 50 raising edge detect enabled" },
+{ "GRER1_51", 0x40E00034, 19, 0x00000001, 'd', "GPIO 51 raising edge detect enabled" },
+{ "GRER1_52", 0x40E00034, 20, 0x00000001, 'd', "GPIO 52 raising edge detect enabled" },
+{ "GRER1_53", 0x40E00034, 21, 0x00000001, 'd', "GPIO 53 raising edge detect enabled" },
+{ "GRER1_54", 0x40E00034, 22, 0x00000001, 'd', "GPIO 54 raising edge detect enabled" },
+{ "GRER1_55", 0x40E00034, 23, 0x00000001, 'd', "GPIO 55 raising edge detect enabled" },
+{ "GRER1_56", 0x40E00034, 24, 0x00000001, 'd', "GPIO 56 raising edge detect enabled" },
+{ "GRER1_57", 0x40E00034, 25, 0x00000001, 'd', "GPIO 57 raising edge detect enabled" },
+{ "GRER1_58", 0x40E00034, 26, 0x00000001, 'd', "GPIO 58 raising edge detect enabled" },
+{ "GRER1_59", 0x40E00034, 27, 0x00000001, 'd', "GPIO 59 raising edge detect enabled" },
+{ "GRER1_60", 0x40E00034, 28, 0x00000001, 'd', "GPIO 60 raising edge detect enabled" },
+{ "GRER1_61", 0x40E00034, 29, 0x00000001, 'd', "GPIO 61 raising edge detect enabled" },
+{ "GRER1_62", 0x40E00034, 30, 0x00000001, 'd', "GPIO 62 raising edge detect enabled" },
+{ "GRER1_63", 0x40E00034, 31, 0x00000001, 'd', "GPIO 63 raising edge detect enabled" },
+
+{ "GRER2",    0x40E00038,  0, 0xffffffff, 'x', "GPIO Raising Edge Detect Enable Register 2 (4-13)" },
+{ "GRER2_64", 0x40E00038,  0, 0x00000001, 'd', "GPIO 64 raising edge detect enabled" },
+{ "GRER2_65", 0x40E00038,  1, 0x00000001, 'd', "GPIO 65 raising edge detect enabled" },
+{ "GRER2_66", 0x40E00038,  2, 0x00000001, 'd', "GPIO 66 raising edge detect enabled" },
+{ "GRER2_67", 0x40E00038,  3, 0x00000001, 'd', "GPIO 67 raising edge detect enabled" },
+{ "GRER2_68", 0x40E00038,  4, 0x00000001, 'd', "GPIO 68 raising edge detect enabled" },
+{ "GRER2_69", 0x40E00038,  5, 0x00000001, 'd', "GPIO 69 raising edge detect enabled" },
+{ "GRER2_70", 0x40E00038,  6, 0x00000001, 'd', "GPIO 70 raising edge detect enabled" },
+{ "GRER2_71", 0x40E00038,  7, 0x00000001, 'd', "GPIO 71 raising edge detect enabled" },
+{ "GRER2_72", 0x40E00038,  8, 0x00000001, 'd', "GPIO 72 raising edge detect enabled" },
+{ "GRER2_73", 0x40E00038,  9, 0x00000001, 'd', "GPIO 73 raising edge detect enabled" },
+{ "GRER2_74", 0x40E00038, 10, 0x00000001, 'd', "GPIO 74 raising edge detect enabled" },
+{ "GRER2_75", 0x40E00038, 11, 0x00000001, 'd', "GPIO 75 raising edge detect enabled" },
+{ "GRER2_76", 0x40E00038, 12, 0x00000001, 'd', "GPIO 76 raising edge detect enabled" },
+{ "GRER2_77", 0x40E00038, 13, 0x00000001, 'd', "GPIO 77 raising edge detect enabled" },
+{ "GRER2_78", 0x40E00038, 14, 0x00000001, 'd', "GPIO 78 raising edge detect enabled" },
+{ "GRER2_79", 0x40E00038, 15, 0x00000001, 'd', "GPIO 79 raising edge detect enabled" },
+{ "GRER2_80", 0x40E00038, 16, 0x00000001, 'd', "GPIO 80 raising edge detect enabled" },
+{ "GRER2_81", 0x40E00038, 17, 0x00000001, 'd', "GPIO 81 raising edge detect enabled" },
+{ "GRER2_82", 0x40E00038, 18, 0x00000001, 'd', "GPIO 82 raising edge detect enabled" },
+{ "GRER2_83", 0x40E00038, 19, 0x00000001, 'd', "GPIO 83 raising edge detect enabled" },
+{ "GRER2_84", 0x40E00038, 20, 0x00000001, 'd', "GPIO 84 raising edge detect enabled" },
+
+{ "GFER0",    0x40E0003C,  0, 0xffffffff, 'x', "GPIO Falling Edge Detect Enable Register 0 (4-14)" },
+{ "GFER0_0",  0x40E0003C,  0, 0x00000001, 'd', "GPIO 0 falling edge detect enabled" },
+{ "GFER0_1",  0x40E0003C,  1, 0x00000001, 'd', "GPIO 1 falling edge detect enabled" },
+{ "GFER0_2",  0x40E0003C,  2, 0x00000001, 'd', "GPIO 2 falling edge detect enabled" },
+{ "GFER0_3",  0x40E0003C,  3, 0x00000001, 'd', "GPIO 3 falling edge detect enabled" },
+{ "GFER0_4",  0x40E0003C,  4, 0x00000001, 'd', "GPIO 4 falling edge detect enabled" },
+{ "GFER0_5",  0x40E0003C,  5, 0x00000001, 'd', "GPIO 5 falling edge detect enabled" },
+{ "GFER0_6",  0x40E0003C,  6, 0x00000001, 'd', "GPIO 6 falling edge detect enabled" },
+{ "GFER0_7",  0x40E0003C,  7, 0x00000001, 'd', "GPIO 7 falling edge detect enabled" },
+{ "GFER0_8",  0x40E0003C,  8, 0x00000001, 'd', "GPIO 8 falling edge detect enabled" },
+{ "GFER0_9",  0x40E0003C,  9, 0x00000001, 'd', "GPIO 9 falling edge detect enabled" },
+{ "GFER0_10", 0x40E0003C, 10, 0x00000001, 'd', "GPIO 10 falling edge detect enabled" },
+{ "GFER0_11", 0x40E0003C, 11, 0x00000001, 'd', "GPIO 11 falling edge detect enabled" },
+{ "GFER0_12", 0x40E0003C, 12, 0x00000001, 'd', "GPIO 12 falling edge detect enabled" },
+{ "GFER0_13", 0x40E0003C, 13, 0x00000001, 'd', "GPIO 13 falling edge detect enabled" },
+{ "GFER0_14", 0x40E0003C, 14, 0x00000001, 'd', "GPIO 14 falling edge detect enabled" },
+{ "GFER0_15", 0x40E0003C, 15, 0x00000001, 'd', "GPIO 15 falling edge detect enabled" },
+{ "GFER0_16", 0x40E0003C, 16, 0x00000001, 'd', "GPIO 16 falling edge detect enabled" },
+{ "GFER0_17", 0x40E0003C, 17, 0x00000001, 'd', "GPIO 17 falling edge detect enabled" },
+{ "GFER0_18", 0x40E0003C, 18, 0x00000001, 'd', "GPIO 18 falling edge detect enabled" },
+{ "GFER0_19", 0x40E0003C, 19, 0x00000001, 'd', "GPIO 19 falling edge detect enabled" },
+{ "GFER0_20", 0x40E0003C, 20, 0x00000001, 'd', "GPIO 20 falling edge detect enabled" },
+{ "GFER0_21", 0x40E0003C, 21, 0x00000001, 'd', "GPIO 21 falling edge detect enabled" },
+{ "GFER0_22", 0x40E0003C, 22, 0x00000001, 'd', "GPIO 22 falling edge detect enabled" },
+{ "GFER0_23", 0x40E0003C, 23, 0x00000001, 'd', "GPIO 23 falling edge detect enabled" },
+{ "GFER0_24", 0x40E0003C, 24, 0x00000001, 'd', "GPIO 24 falling edge detect enabled" },
+{ "GFER0_25", 0x40E0003C, 25, 0x00000001, 'd', "GPIO 25 falling edge detect enabled" },
+{ "GFER0_26", 0x40E0003C, 26, 0x00000001, 'd', "GPIO 26 falling edge detect enabled" },
+{ "GFER0_27", 0x40E0003C, 27, 0x00000001, 'd', "GPIO 27 falling edge detect enabled" },
+{ "GFER0_28", 0x40E0003C, 28, 0x00000001, 'd', "GPIO 28 falling edge detect enabled" },
+{ "GFER0_29", 0x40E0003C, 29, 0x00000001, 'd', "GPIO 29 falling edge detect enabled" },
+{ "GFER0_30", 0x40E0003C, 30, 0x00000001, 'd', "GPIO 30 falling edge detect enabled" },
+{ "GFER0_31", 0x40E0003C, 31, 0x00000001, 'd', "GPIO 31 falling edge detect enabled" },
+
+{ "GFER1",    0x40E00040,  0, 0xffffffff, 'x', "GPIO Falling Edge Detect Enable Register 1 (4-14)" },
+{ "GFER1_32", 0x40E00040,  0, 0x00000001, 'd', "GPIO 32 falling edge detect enabled" },
+{ "GFER1_33", 0x40E00040,  1, 0x00000001, 'd', "GPIO 33 falling edge detect enabled" },
+{ "GFER1_34", 0x40E00040,  2, 0x00000001, 'd', "GPIO 34 falling edge detect enabled" },
+{ "GFER1_35", 0x40E00040,  3, 0x00000001, 'd', "GPIO 35 falling edge detect enabled" },
+{ "GFER1_36", 0x40E00040,  4, 0x00000001, 'd', "GPIO 36 falling edge detect enabled" },
+{ "GFER1_37", 0x40E00040,  5, 0x00000001, 'd', "GPIO 37 falling edge detect enabled" },
+{ "GFER1_38", 0x40E00040,  6, 0x00000001, 'd', "GPIO 38 falling edge detect enabled" },
+{ "GFER1_39", 0x40E00040,  7, 0x00000001, 'd', "GPIO 39 falling edge detect enabled" },
+{ "GFER1_40", 0x40E00040,  8, 0x00000001, 'd', "GPIO 40 falling edge detect enabled" },
+{ "GFER1_41", 0x40E00040,  9, 0x00000001, 'd', "GPIO 41 falling edge detect enabled" },
+{ "GFER1_42", 0x40E00040, 10, 0x00000001, 'd', "GPIO 42 falling edge detect enabled" },
+{ "GFER1_43", 0x40E00040, 11, 0x00000001, 'd', "GPIO 43 falling edge detect enabled" },
+{ "GFER1_44", 0x40E00040, 12, 0x00000001, 'd', "GPIO 44 falling edge detect enabled" },
+{ "GFER1_45", 0x40E00040, 13, 0x00000001, 'd', "GPIO 45 falling edge detect enabled" },
+{ "GFER1_46", 0x40E00040, 14, 0x00000001, 'd', "GPIO 46 falling edge detect enabled" },
+{ "GFER1_47", 0x40E00040, 15, 0x00000001, 'd', "GPIO 47 falling edge detect enabled" },
+{ "GFER1_48", 0x40E00040, 16, 0x00000001, 'd', "GPIO 48 falling edge detect enabled" },
+{ "GFER1_49", 0x40E00040, 17, 0x00000001, 'd', "GPIO 49 falling edge detect enabled" },
+{ "GFER1_50", 0x40E00040, 18, 0x00000001, 'd', "GPIO 50 falling edge detect enabled" },
+{ "GFER1_51", 0x40E00040, 19, 0x00000001, 'd', "GPIO 51 falling edge detect enabled" },
+{ "GFER1_52", 0x40E00040, 20, 0x00000001, 'd', "GPIO 52 falling edge detect enabled" },
+{ "GFER1_53", 0x40E00040, 21, 0x00000001, 'd', "GPIO 53 falling edge detect enabled" },
+{ "GFER1_54", 0x40E00040, 22, 0x00000001, 'd', "GPIO 54 falling edge detect enabled" },
+{ "GFER1_55", 0x40E00040, 23, 0x00000001, 'd', "GPIO 55 falling edge detect enabled" },
+{ "GFER1_56", 0x40E00040, 24, 0x00000001, 'd', "GPIO 56 falling edge detect enabled" },
+{ "GFER1_57", 0x40E00040, 25, 0x00000001, 'd', "GPIO 57 falling edge detect enabled" },
+{ "GFER1_58", 0x40E00040, 26, 0x00000001, 'd', "GPIO 58 falling edge detect enabled" },
+{ "GFER1_59", 0x40E00040, 27, 0x00000001, 'd', "GPIO 59 falling edge detect enabled" },
+{ "GFER1_60", 0x40E00040, 28, 0x00000001, 'd', "GPIO 60 falling edge detect enabled" },
+{ "GFER1_61", 0x40E00040, 29, 0x00000001, 'd', "GPIO 61 falling edge detect enabled" },
+{ "GFER1_62", 0x40E00040, 30, 0x00000001, 'd', "GPIO 62 falling edge detect enabled" },
+{ "GFER1_63", 0x40E00040, 31, 0x00000001, 'd', "GPIO 63 falling edge detect enabled" },
+
+{ "GFER2",    0x40E00044,  0, 0xffffffff, 'x', "GPIO Falling Edge Detect Enable Register 2 (4-14)" },
+{ "GFER2_64", 0x40E00044,  0, 0x00000001, 'd', "GPIO 64 falling edge detect enabled" },
+{ "GFER2_65", 0x40E00044,  1, 0x00000001, 'd', "GPIO 65 falling edge detect enabled" },
+{ "GFER2_66", 0x40E00044,  2, 0x00000001, 'd', "GPIO 66 falling edge detect enabled" },
+{ "GFER2_67", 0x40E00044,  3, 0x00000001, 'd', "GPIO 67 falling edge detect enabled" },
+{ "GFER2_68", 0x40E00044,  4, 0x00000001, 'd', "GPIO 68 falling edge detect enabled" },
+{ "GFER2_69", 0x40E00044,  5, 0x00000001, 'd', "GPIO 69 falling edge detect enabled" },
+{ "GFER2_70", 0x40E00044,  6, 0x00000001, 'd', "GPIO 70 falling edge detect enabled" },
+{ "GFER2_71", 0x40E00044,  7, 0x00000001, 'd', "GPIO 71 falling edge detect enabled" },
+{ "GFER2_72", 0x40E00044,  8, 0x00000001, 'd', "GPIO 72 falling edge detect enabled" },
+{ "GFER2_73", 0x40E00044,  9, 0x00000001, 'd', "GPIO 73 falling edge detect enabled" },
+{ "GFER2_74", 0x40E00044, 10, 0x00000001, 'd', "GPIO 74 falling edge detect enabled" },
+{ "GFER2_75", 0x40E00044, 11, 0x00000001, 'd', "GPIO 75 falling edge detect enabled" },
+{ "GFER2_76", 0x40E00044, 12, 0x00000001, 'd', "GPIO 76 falling edge detect enabled" },
+{ "GFER2_77", 0x40E00044, 13, 0x00000001, 'd', "GPIO 77 falling edge detect enabled" },
+{ "GFER2_78", 0x40E00044, 14, 0x00000001, 'd', "GPIO 78 falling edge detect enabled" },
+{ "GFER2_79", 0x40E00044, 15, 0x00000001, 'd', "GPIO 79 falling edge detect enabled" },
+{ "GFER2_80", 0x40E00044, 16, 0x00000001, 'd', "GPIO 80 falling edge detect enabled" },
+{ "GFER2_81", 0x40E00044, 17, 0x00000001, 'd', "GPIO 81 falling edge detect enabled" },
+{ "GFER2_82", 0x40E00044, 18, 0x00000001, 'd', "GPIO 82 falling edge detect enabled" },
+{ "GFER2_83", 0x40E00044, 19, 0x00000001, 'd', "GPIO 83 falling edge detect enabled" },
+{ "GFER2_84", 0x40E00044, 20, 0x00000001, 'd', "GPIO 84 falling edge detect enabled" },
+
+{ "GEDR0",    0x40E00048,  0, 0xffffffff, 'x', "GPIO Edge Detect Register 0 (4-15)" },
+{ "GEDR0_0",  0x40E00048,  0, 0x00000001, 'd', "GPIO 0 edge detected" },
+{ "GEDR0_1",  0x40E00048,  1, 0x00000001, 'd', "GPIO 1 edge detected" },
+{ "GEDR0_2",  0x40E00048,  2, 0x00000001, 'd', "GPIO 2 edge detected" },
+{ "GEDR0_3",  0x40E00048,  3, 0x00000001, 'd', "GPIO 3 edge detected" },
+{ "GEDR0_4",  0x40E00048,  4, 0x00000001, 'd', "GPIO 4 edge detected" },
+{ "GEDR0_5",  0x40E00048,  5, 0x00000001, 'd', "GPIO 5 edge detected" },
+{ "GEDR0_6",  0x40E00048,  6, 0x00000001, 'd', "GPIO 6 edge detected" },
+{ "GEDR0_7",  0x40E00048,  7, 0x00000001, 'd', "GPIO 7 edge detected" },
+{ "GEDR0_8",  0x40E00048,  8, 0x00000001, 'd', "GPIO 8 edge detected" },
+{ "GEDR0_9",  0x40E00048,  9, 0x00000001, 'd', "GPIO 9 edge detected" },
+{ "GEDR0_10", 0x40E00048, 10, 0x00000001, 'd', "GPIO 10 edge detected" },
+{ "GEDR0_11", 0x40E00048, 11, 0x00000001, 'd', "GPIO 11 edge detected" },
+{ "GEDR0_12", 0x40E00048, 12, 0x00000001, 'd', "GPIO 12 edge detected" },
+{ "GEDR0_13", 0x40E00048, 13, 0x00000001, 'd', "GPIO 13 edge detected" },
+{ "GEDR0_14", 0x40E00048, 14, 0x00000001, 'd', "GPIO 14 edge detected" },
+{ "GEDR0_15", 0x40E00048, 15, 0x00000001, 'd', "GPIO 15 edge detected" },
+{ "GEDR0_16", 0x40E00048, 16, 0x00000001, 'd', "GPIO 16 edge detected" },
+{ "GEDR0_17", 0x40E00048, 17, 0x00000001, 'd', "GPIO 17 edge detected" },
+{ "GEDR0_18", 0x40E00048, 18, 0x00000001, 'd', "GPIO 18 edge detected" },
+{ "GEDR0_19", 0x40E00048, 19, 0x00000001, 'd', "GPIO 19 edge detected" },
+{ "GEDR0_20", 0x40E00048, 20, 0x00000001, 'd', "GPIO 20 edge detected" },
+{ "GEDR0_21", 0x40E00048, 21, 0x00000001, 'd', "GPIO 21 edge detected" },
+{ "GEDR0_22", 0x40E00048, 22, 0x00000001, 'd', "GPIO 22 edge detected" },
+{ "GEDR0_23", 0x40E00048, 23, 0x00000001, 'd', "GPIO 23 edge detected" },
+{ "GEDR0_24", 0x40E00048, 24, 0x00000001, 'd', "GPIO 24 edge detected" },
+{ "GEDR0_25", 0x40E00048, 25, 0x00000001, 'd', "GPIO 25 edge detected" },
+{ "GEDR0_26", 0x40E00048, 26, 0x00000001, 'd', "GPIO 26 edge detected" },
+{ "GEDR0_27", 0x40E00048, 27, 0x00000001, 'd', "GPIO 27 edge detected" },
+{ "GEDR0_28", 0x40E00048, 28, 0x00000001, 'd', "GPIO 28 edge detected" },
+{ "GEDR0_29", 0x40E00048, 29, 0x00000001, 'd', "GPIO 29 edge detected" },
+{ "GEDR0_30", 0x40E00048, 30, 0x00000001, 'd', "GPIO 30 edge detected" },
+{ "GEDR0_31", 0x40E00048, 31, 0x00000001, 'd', "GPIO 31 edge detected" },
+
+{ "GEDR1",    0x40E0004C,  0, 0xffffffff, 'x', "GPIO Edge Detect Register 1 (4-16)" },
+{ "GEDR1_32", 0x40E0004C,  0, 0x00000001, 'd', "GPIO 32 edge detected" },
+{ "GEDR1_33", 0x40E0004C,  1, 0x00000001, 'd', "GPIO 33 edge detected" },
+{ "GEDR1_34", 0x40E0004C,  2, 0x00000001, 'd', "GPIO 34 edge detected" },
+{ "GEDR1_35", 0x40E0004C,  3, 0x00000001, 'd', "GPIO 35 edge detected" },
+{ "GEDR1_36", 0x40E0004C,  4, 0x00000001, 'd', "GPIO 36 edge detected" },
+{ "GEDR1_37", 0x40E0004C,  5, 0x00000001, 'd', "GPIO 37 edge detected" },
+{ "GEDR1_38", 0x40E0004C,  6, 0x00000001, 'd', "GPIO 38 edge detected" },
+{ "GEDR1_39", 0x40E0004C,  7, 0x00000001, 'd', "GPIO 39 edge detected" },
+{ "GEDR1_40", 0x40E0004C,  8, 0x00000001, 'd', "GPIO 40 edge detected" },
+{ "GEDR1_41", 0x40E0004C,  9, 0x00000001, 'd', "GPIO 41 edge detected" },
+{ "GEDR1_42", 0x40E0004C, 10, 0x00000001, 'd', "GPIO 42 edge detected" },
+{ "GEDR1_43", 0x40E0004C, 11, 0x00000001, 'd', "GPIO 43 edge detected" },
+{ "GEDR1_44", 0x40E0004C, 12, 0x00000001, 'd', "GPIO 44 edge detected" },
+{ "GEDR1_45", 0x40E0004C, 13, 0x00000001, 'd', "GPIO 45 edge detected" },
+{ "GEDR1_46", 0x40E0004C, 14, 0x00000001, 'd', "GPIO 46 edge detected" },
+{ "GEDR1_47", 0x40E0004C, 15, 0x00000001, 'd', "GPIO 47 edge detected" },
+{ "GEDR1_48", 0x40E0004C, 16, 0x00000001, 'd', "GPIO 48 edge detected" },
+{ "GEDR1_49", 0x40E0004C, 17, 0x00000001, 'd', "GPIO 49 edge detected" },
+{ "GEDR1_50", 0x40E0004C, 18, 0x00000001, 'd', "GPIO 50 edge detected" },
+{ "GEDR1_51", 0x40E0004C, 19, 0x00000001, 'd', "GPIO 51 edge detected" },
+{ "GEDR1_52", 0x40E0004C, 20, 0x00000001, 'd', "GPIO 52 edge detected" },
+{ "GEDR1_53", 0x40E0004C, 21, 0x00000001, 'd', "GPIO 53 edge detected" },
+{ "GEDR1_54", 0x40E0004C, 22, 0x00000001, 'd', "GPIO 54 edge detected" },
+{ "GEDR1_55", 0x40E0004C, 23, 0x00000001, 'd', "GPIO 55 edge detected" },
+{ "GEDR1_56", 0x40E0004C, 24, 0x00000001, 'd', "GPIO 56 edge detected" },
+{ "GEDR1_57", 0x40E0004C, 25, 0x00000001, 'd', "GPIO 57 edge detected" },
+{ "GEDR1_58", 0x40E0004C, 26, 0x00000001, 'd', "GPIO 58 edge detected" },
+{ "GEDR1_59", 0x40E0004C, 27, 0x00000001, 'd', "GPIO 59 edge detected" },
+{ "GEDR1_60", 0x40E0004C, 28, 0x00000001, 'd', "GPIO 60 edge detected" },
+{ "GEDR1_61", 0x40E0004C, 29, 0x00000001, 'd', "GPIO 61 edge detected" },
+{ "GEDR1_62", 0x40E0004C, 30, 0x00000001, 'd', "GPIO 62 edge detected" },
+{ "GEDR1_63", 0x40E0004C, 31, 0x00000001, 'd', "GPIO 63 edge detected" },
+
+{ "GEDR2",    0x40E00050,  0, 0xffffffff, 'x', "GPIO Edge Detect Register 2 (4-16)" },
+{ "GEDR2_64", 0x40E00050,  0, 0x00000001, 'd', "GPIO 64 edge detected" },
+{ "GEDR2_65", 0x40E00050,  1, 0x00000001, 'd', "GPIO 65 edge detected" },
+{ "GEDR2_66", 0x40E00050,  2, 0x00000001, 'd', "GPIO 66 edge detected" },
+{ "GEDR2_67", 0x40E00050,  3, 0x00000001, 'd', "GPIO 67 edge detected" },
+{ "GEDR2_68", 0x40E00050,  4, 0x00000001, 'd', "GPIO 68 edge detected" },
+{ "GEDR2_69", 0x40E00050,  5, 0x00000001, 'd', "GPIO 69 edge detected" },
+{ "GEDR2_70", 0x40E00050,  6, 0x00000001, 'd', "GPIO 70 edge detected" },
+{ "GEDR2_71", 0x40E00050,  7, 0x00000001, 'd', "GPIO 71 edge detected" },
+{ "GEDR2_72", 0x40E00050,  8, 0x00000001, 'd', "GPIO 72 edge detected" },
+{ "GEDR2_73", 0x40E00050,  9, 0x00000001, 'd', "GPIO 73 edge detected" },
+{ "GEDR2_74", 0x40E00050, 10, 0x00000001, 'd', "GPIO 74 edge detected" },
+{ "GEDR2_75", 0x40E00050, 11, 0x00000001, 'd', "GPIO 75 edge detected" },
+{ "GEDR2_76", 0x40E00050, 12, 0x00000001, 'd', "GPIO 76 edge detected" },
+{ "GEDR2_77", 0x40E00050, 13, 0x00000001, 'd', "GPIO 77 edge detected" },
+{ "GEDR2_78", 0x40E00050, 14, 0x00000001, 'd', "GPIO 78 edge detected" },
+{ "GEDR2_79", 0x40E00050, 15, 0x00000001, 'd', "GPIO 79 edge detected" },
+{ "GEDR2_80", 0x40E00050, 16, 0x00000001, 'd', "GPIO 80 edge detected" },
+{ "GEDR2_81", 0x40E00050, 17, 0x00000001, 'd', "GPIO 81 edge detected" },
+{ "GEDR2_82", 0x40E00050, 18, 0x00000001, 'd', "GPIO 82 edge detected" },
+{ "GEDR2_83", 0x40E00050, 19, 0x00000001, 'd', "GPIO 83 edge detected" },
+{ "GEDR2_84", 0x40E00050, 20, 0x00000001, 'd', "GPIO 84 edge detected" },
+
+{ "GAFR0L",    0x40E00054,  0, 0xffffffff, 'x', "GPIO Alternate Function Register 0 Lower (4-17)" },
+{ "GAFR0L_0",  0x40E00054,  0, 0x00000003, 'x', "GPIO 0 alternate function select" },
+{ "GAFR0L_1",  0x40E00054,  2, 0x00000003, 'x', "GPIO 1 alternate function select" },
+{ "GAFR0L_2",  0x40E00054,  4, 0x00000003, 'x', "GPIO 2 alternate function select" },
+{ "GAFR0L_3",  0x40E00054,  6, 0x00000003, 'x', "GPIO 3 alternate function select" },
+{ "GAFR0L_4",  0x40E00054,  8, 0x00000003, 'x', "GPIO 4 alternate function select" },
+{ "GAFR0L_5",  0x40E00054, 10, 0x00000003, 'x', "GPIO 5 alternate function select" },
+{ "GAFR0L_6",  0x40E00054, 12, 0x00000003, 'x', "GPIO 6 alternate function select" },
+{ "GAFR0L_7",  0x40E00054, 14, 0x00000003, 'x', "GPIO 7 alternate function select" },
+{ "GAFR0L_8",  0x40E00054, 16, 0x00000003, 'x', "GPIO 8 alternate function select" },
+{ "GAFR0L_9",  0x40E00054, 18, 0x00000003, 'x', "GPIO 9 alternate function select" },
+{ "GAFR0L_10", 0x40E00054, 20, 0x00000003, 'x', "GPIO 10 alternate function select" },
+{ "GAFR0L_11", 0x40E00054, 22, 0x00000003, 'x', "GPIO 11 alternate function select" },
+{ "GAFR0L_12", 0x40E00054, 24, 0x00000003, 'x', "GPIO 12 alternate function select" },
+{ "GAFR0L_13", 0x40E00054, 26, 0x00000003, 'x', "GPIO 13 alternate function select" },
+{ "GAFR0L_14", 0x40E00054, 28, 0x00000003, 'x', "GPIO 14 alternate function select" },
+{ "GAFR0L_15", 0x40E00054, 30, 0x00000003, 'x', "GPIO 15 alternate function select" },
+
+{ "GAFR0U",    0x40E00058,  0, 0xffffffff, 'x', "GPIO Alternate Function Register 0 Upper (4-18)" },
+{ "GAFR0U_16", 0x40E00058,  0, 0x00000003, 'x', "GPIO 16 alternate function select" },
+{ "GAFR0U_17", 0x40E00058,  2, 0x00000003, 'x', "GPIO 17 alternate function select" },
+{ "GAFR0U_18", 0x40E00058,  4, 0x00000003, 'x', "GPIO 18 alternate function select" },
+{ "GAFR0U_19", 0x40E00058,  6, 0x00000003, 'x', "GPIO 19 alternate function select" },
+{ "GAFR0U_20", 0x40E00058,  8, 0x00000003, 'x', "GPIO 20 alternate function select" },
+{ "GAFR0U_21", 0x40E00058, 10, 0x00000003, 'x', "GPIO 21 alternate function select" },
+{ "GAFR0U_22", 0x40E00058, 12, 0x00000003, 'x', "GPIO 22 alternate function select" },
+{ "GAFR0U_23", 0x40E00058, 14, 0x00000003, 'x', "GPIO 23 alternate function select" },
+{ "GAFR0U_24", 0x40E00058, 16, 0x00000003, 'x', "GPIO 24 alternate function select" },
+{ "GAFR0U_25", 0x40E00058, 18, 0x00000003, 'x', "GPIO 25 alternate function select" },
+{ "GAFR0U_26", 0x40E00058, 20, 0x00000003, 'x', "GPIO 26 alternate function select" },
+{ "GAFR0U_27", 0x40E00058, 22, 0x00000003, 'x', "GPIO 27 alternate function select" },
+{ "GAFR0U_28", 0x40E00058, 24, 0x00000003, 'x', "GPIO 28 alternate function select" },
+{ "GAFR0U_29", 0x40E00058, 26, 0x00000003, 'x', "GPIO 29 alternate function select" },
+{ "GAFR0U_30", 0x40E00058, 28, 0x00000003, 'x', "GPIO 30 alternate function select" },
+{ "GAFR0U_31", 0x40E00058, 30, 0x00000003, 'x', "GPIO 31 alternate function select" },
+
+{ "GAFR1L",    0x40E0005C,  0, 0xffffffff, 'x', "GPIO Alternate Function Register 1 Lower (4-18)" },
+{ "GAFR1L_32", 0x40E0005C,  0, 0x00000003, 'x', "GPIO 32 alternate function select" },
+{ "GAFR1L_33", 0x40E0005C,  2, 0x00000003, 'x', "GPIO 33 alternate function select" },
+{ "GAFR1L_34", 0x40E0005C,  4, 0x00000003, 'x', "GPIO 34 alternate function select" },
+{ "GAFR1L_35", 0x40E0005C,  6, 0x00000003, 'x', "GPIO 35 alternate function select" },
+{ "GAFR1L_36", 0x40E0005C,  8, 0x00000003, 'x', "GPIO 36 alternate function select" },
+{ "GAFR1L_37", 0x40E0005C, 10, 0x00000003, 'x', "GPIO 37 alternate function select" },
+{ "GAFR1L_38", 0x40E0005C, 12, 0x00000003, 'x', "GPIO 38 alternate function select" },
+{ "GAFR1L_39", 0x40E0005C, 14, 0x00000003, 'x', "GPIO 39 alternate function select" },
+{ "GAFR1L_40", 0x40E0005C, 16, 0x00000003, 'x', "GPIO 40 alternate function select" },
+{ "GAFR1L_41", 0x40E0005C, 18, 0x00000003, 'x', "GPIO 41 alternate function select" },
+{ "GAFR1L_42", 0x40E0005C, 20, 0x00000003, 'x', "GPIO 42 alternate function select" },
+{ "GAFR1L_43", 0x40E0005C, 22, 0x00000003, 'x', "GPIO 43 alternate function select" },
+{ "GAFR1L_44", 0x40E0005C, 24, 0x00000003, 'x', "GPIO 44 alternate function select" },
+{ "GAFR1L_45", 0x40E0005C, 26, 0x00000003, 'x', "GPIO 45 alternate function select" },
+{ "GAFR1L_46", 0x40E0005C, 28, 0x00000003, 'x', "GPIO 46 alternate function select" },
+{ "GAFR1L_47", 0x40E0005C, 30, 0x00000003, 'x', "GPIO 47 alternate function select" },
+
+{ "GAFR1U",    0x40E00060,  0, 0xffffffff, 'x', "GPIO Alternate Function Register 1 Upper (4-19)" },
+{ "GAFR1U_48", 0x40E00060,  0, 0x00000003, 'x', "GPIO 48 alternate function select" },
+{ "GAFR1U_49", 0x40E00060,  2, 0x00000003, 'x', "GPIO 49 alternate function select" },
+{ "GAFR1U_50", 0x40E00060,  4, 0x00000003, 'x', "GPIO 50 alternate function select" },
+{ "GAFR1U_51", 0x40E00060,  6, 0x00000003, 'x', "GPIO 51 alternate function select" },
+{ "GAFR1U_52", 0x40E00060,  8, 0x00000003, 'x', "GPIO 52 alternate function select" },
+{ "GAFR1U_53", 0x40E00060, 10, 0x00000003, 'x', "GPIO 53 alternate function select" },
+{ "GAFR1U_54", 0x40E00060, 12, 0x00000003, 'x', "GPIO 54 alternate function select" },
+{ "GAFR1U_55", 0x40E00060, 14, 0x00000003, 'x', "GPIO 55 alternate function select" },
+{ "GAFR1U_56", 0x40E00060, 16, 0x00000003, 'x', "GPIO 56 alternate function select" },
+{ "GAFR1U_57", 0x40E00060, 18, 0x00000003, 'x', "GPIO 57 alternate function select" },
+{ "GAFR1U_58", 0x40E00060, 20, 0x00000003, 'x', "GPIO 58 alternate function select" },
+{ "GAFR1U_59", 0x40E00060, 22, 0x00000003, 'x', "GPIO 59 alternate function select" },
+{ "GAFR1U_60", 0x40E00060, 24, 0x00000003, 'x', "GPIO 60 alternate function select" },
+{ "GAFR1U_61", 0x40E00060, 26, 0x00000003, 'x', "GPIO 61 alternate function select" },
+{ "GAFR1U_62", 0x40E00060, 28, 0x00000003, 'x', "GPIO 62 alternate function select" },
+{ "GAFR1U_63", 0x40E00060, 30, 0x00000003, 'x', "GPIO 63 alternate function select" },
+
+{ "GAFR2L",    0x40E00064,  0, 0xffffffff, 'x', "GPIO Alternate Function Register 2 Lower (4-19)" },
+{ "GAFR2L_64", 0x40E00064,  0, 0x00000003, 'x', "GPIO 64 alternate function select" },
+{ "GAFR2L_65", 0x40E00064,  2, 0x00000003, 'x', "GPIO 65 alternate function select" },
+{ "GAFR2L_66", 0x40E00064,  4, 0x00000003, 'x', "GPIO 66 alternate function select" },
+{ "GAFR2L_67", 0x40E00064,  6, 0x00000003, 'x', "GPIO 67 alternate function select" },
+{ "GAFR2L_68", 0x40E00064,  8, 0x00000003, 'x', "GPIO 68 alternate function select" },
+{ "GAFR2L_69", 0x40E00064, 10, 0x00000003, 'x', "GPIO 69 alternate function select" },
+{ "GAFR2L_70", 0x40E00064, 12, 0x00000003, 'x', "GPIO 70 alternate function select" },
+{ "GAFR2L_71", 0x40E00064, 14, 0x00000003, 'x', "GPIO 71 alternate function select" },
+{ "GAFR2L_72", 0x40E00064, 16, 0x00000003, 'x', "GPIO 72 alternate function select" },
+{ "GAFR2L_73", 0x40E00064, 18, 0x00000003, 'x', "GPIO 73 alternate function select" },
+{ "GAFR2L_74", 0x40E00064, 20, 0x00000003, 'x', "GPIO 74 alternate function select" },
+{ "GAFR2L_75", 0x40E00064, 22, 0x00000003, 'x', "GPIO 75 alternate function select" },
+{ "GAFR2L_76", 0x40E00064, 24, 0x00000003, 'x', "GPIO 76 alternate function select" },
+{ "GAFR2L_77", 0x40E00064, 26, 0x00000003, 'x', "GPIO 77 alternate function select" },
+{ "GAFR2L_78", 0x40E00064, 28, 0x00000003, 'x', "GPIO 78 alternate function select" },
+{ "GAFR2L_79", 0x40E00064, 30, 0x00000003, 'x', "GPIO 79 alternate function select" },
+
+{ "GAFR2U",    0x40E00068,  0, 0xffffffff, 'x', "GPIO Alternate Function Register 2 Upper (4-19)" },
+{ "GAFR2U_80", 0x40E00068,  0, 0x00000003, 'x', "GPIO 80 alternate function select" },
+{ "GAFR2U_81", 0x40E00068,  2, 0x00000003, 'x', "GPIO 81 alternate function select" },
+{ "GAFR2U_82", 0x40E00068,  4, 0x00000003, 'x', "GPIO 82 alternate function select" },
+{ "GAFR2U_83", 0x40E00068,  6, 0x00000003, 'x', "GPIO 83 alternate function select" },
+{ "GAFR2U_84", 0x40E00068,  8, 0x00000003, 'x', "GPIO 84 alternate function select" },
+
+{ "ICMR",      0x40D00004,  0, 0xffffffff, 'x', "Interrupt Controller Mask Register (4-22)" },
+{ "ICMR_IM7",  0x40D00004,  7, 0x00000001, 'x', "Pending IRQ 7 (HWUART) unmasked?" },
+{ "ICMR_IM8",  0x40D00004,  8, 0x00000001, 'x', "Pending IRQ 8 (GPIO0) unmasked" },
+{ "ICMR_IM9",  0x40D00004,  9, 0x00000001, 'x', "Pending IRQ 9 (GPIO1) unmasked" },
+{ "ICMR_IM10", 0x40D00004, 10, 0x00000001, 'x', "Pending IRQ 10 (GPIO2_80) unmasked" },
+{ "ICMR_IM11", 0x40D00004, 11, 0x00000001, 'x', "Pending IRQ 11 (USB) unmasked" },
+{ "ICMR_IM12", 0x40D00004, 12, 0x00000001, 'x', "Pending IRQ 12 (PMU) unmasked" },
+{ "ICMR_IM13", 0x40D00004, 13, 0x00000001, 'x', "Pending IRQ 13 (I2S) unmasked" },
+{ "ICMR_IM14", 0x40D00004, 14, 0x00000001, 'x', "Pending IRQ 14 (AC97) unmasked" },
+{ "ICMR_IM17", 0x40D00004, 17, 0x00000001, 'x', "Pending IRQ 17 (LCD) unmasked" },
+{ "ICMR_IM18", 0x40D00004, 18, 0x00000001, 'x', "Pending IRQ 18 (I2C) unmasked" },
+{ "ICMR_IM19", 0x40D00004, 19, 0x00000001, 'x', "Pending IRQ 19 (ICP) unmasked" },
+{ "ICMR_IM20", 0x40D00004, 20, 0x00000001, 'x', "Pending IRQ 20 (STUART) unmasked" },
+{ "ICMR_IM21", 0x40D00004, 21, 0x00000001, 'x', "Pending IRQ 21 (BTUART) unmasked" },
+{ "ICMR_IM22", 0x40D00004, 22, 0x00000001, 'x', "Pending IRQ 22 (FFUART) unmasked" },
+{ "ICMR_IM23", 0x40D00004, 23, 0x00000001, 'x', "Pending IRQ 23 (MMC) unmasked" },
+{ "ICMR_IM24", 0x40D00004, 24, 0x00000001, 'x', "Pending IRQ 24 (SSP) unmasked" },
+{ "ICMR_IM25", 0x40D00004, 25, 0x00000001, 'x', "Pending IRQ 25 (DMA) unmasked" },
+{ "ICMR_IM26", 0x40D00004, 26, 0x00000001, 'x', "Pending IRQ 26 (OSMR0) unmasked" },
+{ "ICMR_IM27", 0x40D00004, 27, 0x00000001, 'x', "Pending IRQ 27 (OSMR1) unmasked" },
+{ "ICMR_IM28", 0x40D00004, 28, 0x00000001, 'x', "Pending IRQ 28 (OSMR2) unmasked" },
+{ "ICMR_IM29", 0x40D00004, 29, 0x00000001, 'x', "Pending IRQ 29 (OSMR3) unmasked" },
+{ "ICMR_IM30", 0x40D00004, 30, 0x00000001, 'x', "Pending IRQ 30 (RTCCLK) unmasked" },
+{ "ICMR_IM31", 0x40D00004, 31, 0x00000001, 'x', "Pending IRQ 31 (RTCALM) unmasked" },
+
+{ "ICLR",      0x40D00008,  0, 0xffffffff, 'x', "Interrupt Controller Level Register (4-23)" },
+{ "ICLR_IL7",  0x40D00008,  7, 0x00000001, 'x', "IRQ 8 (HWUART) generates FIQ?" },
+{ "ICLR_IL8",  0x40D00008,  8, 0x00000001, 'x', "IRQ 8 (GPIO0) generates FIQ" },
+{ "ICLR_IL9",  0x40D00008,  9, 0x00000001, 'x', "IRQ 9 (GPIO1) generates FIQ" },
+{ "ICLR_IL10", 0x40D00008, 10, 0x00000001, 'x', "IRQ 10 (GPIO2_80) generates FIQ" },
+{ "ICLR_IL11", 0x40D00008, 11, 0x00000001, 'x', "IRQ 11 (USB) generates FIQ" },
+{ "ICLR_IL12", 0x40D00008, 12, 0x00000001, 'x', "IRQ 12 (PMU) generates FIQ" },
+{ "ICLR_IL13", 0x40D00008, 13, 0x00000001, 'x', "IRQ 13 (I2S) generates FIQ" },
+{ "ICLR_IL14", 0x40D00008, 14, 0x00000001, 'x', "IRQ 14 (AC97) generates FIQ" },
+{ "ICLR_IL17", 0x40D00008, 17, 0x00000001, 'x', "IRQ 17 (LCD) generates FIQ" },
+{ "ICLR_IL18", 0x40D00008, 18, 0x00000001, 'x', "IRQ 18 (I2C) generates FIQ" },
+{ "ICLR_IL19", 0x40D00008, 19, 0x00000001, 'x', "IRQ 19 (ICP) generates FIQ" },
+{ "ICLR_IL20", 0x40D00008, 20, 0x00000001, 'x', "IRQ 10 (STUART) generates FIQ" },
+{ "ICLR_IL21", 0x40D00008, 21, 0x00000001, 'x', "IRQ 21 (BTUART) generates FIQ" },
+{ "ICLR_IL22", 0x40D00008, 22, 0x00000001, 'x', "IRQ 22 (FFUART) generates FIQ" },
+{ "ICLR_IL23", 0x40D00008, 23, 0x00000001, 'x', "IRQ 23 (MMC) generates FIQ" },
+{ "ICLR_IL24", 0x40D00008, 24, 0x00000001, 'x', "IRQ 24 (SSP) generates FIQ" },
+{ "ICLR_IL25", 0x40D00008, 25, 0x00000001, 'x', "IRQ 25 (DMA) generates FIQ" },
+{ "ICLR_IL26", 0x40D00008, 26, 0x00000001, 'x', "IRQ 26 (OSMR0) generates FIQ" },
+{ "ICLR_IL27", 0x40D00008, 27, 0x00000001, 'x', "IRQ 27 (OSMR1) generates FIQ" },
+{ "ICLR_IL28", 0x40D00008, 28, 0x00000001, 'x', "IRQ 28 (OSMR2) generates FIQ" },
+{ "ICLR_IL29", 0x40D00008, 29, 0x00000001, 'x', "IRQ 29 (OSMR3) generates FIQ" },
+{ "ICLR_IL30", 0x40D00008, 30, 0x00000001, 'x', "IRQ 30 (RTCCLK) generates FIQ" },
+{ "ICLR_IL31", 0x40D00008, 31, 0x00000001, 'x', "IRQ 31 (RTCALM) generates FIQ" },
+
+{ "ICCR",      0x40D00014,  0, 0xffffffff, 'x', "Interrupt Controller Control Register (4-23)" },
+{ "ICCR_DIM",  0x40D00014,  8, 0x00000001, 'x', "ONLY enabled and unmasked IRQ bring CPU from idle to run" },
+
+{ "ICIP",      0x40D00000,  0, 0xffffffff, 'x', "Interrupt Controller IRQ Pending Register (4-24)" },
+
+{ "ICFP",      0x40D0000C,  0, 0xffffffff, 'x', "Interrupt Controller FIQ Pending Register (4-24)" },
+
+{ "ICPR",      0x40D00010,  0, 0xffffffff, 'x', "Interrupt Controller Pending Register (4-25)" },
+{ "ICPR_IS7",  0x40D00010,  7, 0x00000001, 'x', "IRQ 7 (HWUART) pending" },
+{ "ICPR_IS8",  0x40D00010,  8, 0x00000001, 'x', "IRQ 8 (GPIO0) pending" },
+{ "ICPR_IS9",  0x40D00010,  9, 0x00000001, 'x', "IRQ 9 (GPIO1) pending" },
+{ "ICPR_IS10", 0x40D00010, 10, 0x00000001, 'x', "IRQ 10 (GPIO2_80) pending" },
+{ "ICPR_IS11", 0x40D00010, 11, 0x00000001, 'x', "IRQ 11 (USB) pending" },
+{ "ICPR_IS12", 0x40D00010, 12, 0x00000001, 'x', "IRQ 12 (PMU) pending" },
+{ "ICPR_IS13", 0x40D00010, 13, 0x00000001, 'x', "IRQ 13 (I2S) pending" },
+{ "ICPR_IS14", 0x40D00010, 14, 0x00000001, 'x', "IRQ 14 (AC97) pending" },
+{ "ICPR_IS17", 0x40D00010, 17, 0x00000001, 'x', "IRQ 17 (LCD) pending" },
+{ "ICPR_IS18", 0x40D00010, 18, 0x00000001, 'x', "IRQ 18 (I2C) pending" },
+{ "ICPR_IS19", 0x40D00010, 19, 0x00000001, 'x', "IRQ 19 (ICP) pending" },
+{ "ICPR_IS20", 0x40D00010, 20, 0x00000001, 'x', "IRQ 10 (STUART) pending" },
+{ "ICPR_IS21", 0x40D00010, 21, 0x00000001, 'x', "IRQ 21 (BTUART) pending" },
+{ "ICPR_IS22", 0x40D00010, 22, 0x00000001, 'x', "IRQ 22 (FFUART) pending" },
+{ "ICPR_IS23", 0x40D00010, 23, 0x00000001, 'x', "IRQ 23 (MMC) pending" },
+{ "ICPR_IS24", 0x40D00010, 24, 0x00000001, 'x', "IRQ 24 (SSP) pending" },
+{ "ICPR_IS25", 0x40D00010, 25, 0x00000001, 'x', "IRQ 25 (DMA) pending" },
+{ "ICPR_IS26", 0x40D00010, 26, 0x00000001, 'x', "IRQ 26 (OSMR0) pending" },
+{ "ICPR_IS27", 0x40D00010, 27, 0x00000001, 'x', "IRQ 27 (OSMR1) pending" },
+{ "ICPR_IS28", 0x40D00010, 28, 0x00000001, 'x', "IRQ 28 (OSMR2) pending" },
+{ "ICPR_IS29", 0x40D00010, 29, 0x00000001, 'x', "IRQ 29 (OSMR3) pending" },
+{ "ICPR_IS30", 0x40D00010, 30, 0x00000001, 'x', "IRQ 30 (RTCCLK) pending" },
+{ "ICPR_IS31", 0x40D00010, 31, 0x00000001, 'x', "IRQ 31 (RTCALM) pending" },
+
+{ "RTTR",        0x4090000C,  0, 0xffffffff, 'x', "RTC Trim Register (4-30)" },
+{ "RTTR_CK_DIV", 0x4090000C,  0, 0x0000ffff, 'x', "RTC Clock Divider Count" },
+{ "RTTR_DEL",    0x4090000C, 16, 0x000003ff, 'x', "RTC Trim delete Count" },
+{ "RTTR_LCK",    0x4090000C, 31, 0x00000001, 'x', "RTC Locking for RTTR" },
+
+{ "RTAR",        0x40900010,  0, 0xffffffff, 'x', "RTC Alarm Register (4-30)" },
+{ "RTAR_RTMV",   0x40900010,  0, 0xffffffff, 'x', "RTC Target Match Value" },
+
+{ "RCNR",        0x40900000,  0, 0xffffffff, 'x', "RTC Counter Register (4-31)" },
+{ "RCNR_RCV",    0x40900000,  0, 0xffffffff, 'x', "RTC Count Value" },
+
+{ "RTSR",        0x40900008,  0, 0xffffffff, 'x', "RTC Status Register (4-32)" },
+{ "RTSR_AL",     0x40900008,  0, 0x00000001, 'x', "RTC Alarm Interrupt detected" },
+{ "RTSR_HZ",     0x40900008,  1, 0x00000001, 'x', "RTC Hz Interrupt detected" },
+{ "RTSR_ALE",    0x40900008,  2, 0x00000001, 'x', "RTC Alarm Interrupt Enable" },
+{ "RTSR_HZE",    0x40900008,  3, 0x00000001, 'x', "RTC Hz Interrupt Enable" },
+
+{ "OSMR0",       0x40A00000,  0, 0xffffffff, 'x', "OS Timer Match Register 0 (4-36)" },
+{ "OSMR1",       0x40A00004,  0, 0xffffffff, 'x', "OS Timer Match Register 1 (4-36)" },
+{ "OSMR2",       0x40A00008,  0, 0xffffffff, 'x', "OS Timer Match Register 2 (4-36)" },
+{ "OSMR3",       0x40A0000C,  0, 0xffffffff, 'x', "OS Timer Match Register 3 (4-36)" },
+
+{ "OIER",        0x40A0001C,  0, 0xffffffff, 'x', "OS Timer Interrupt Enable Register (4-36)" },
+{ "OIER_E0",     0x40A0001C,  0, 0x00000001, 'x', "OS Interrupt for OSMR0 enabled" },
+{ "OIER_E1",     0x40A0001C,  1, 0x00000001, 'x', "OS Interrupt for OSMR1 enabled" },
+{ "OIER_E2",     0x40A0001C,  2, 0x00000001, 'x', "OS Interrupt for OSMR2 enabled" },
+{ "OIER_E3",     0x40A0001C,  3, 0x00000001, 'x', "OS Interrupt for OSMR3 enabled" },
+
+{ "OWER",        0x40A00018,  0, 0xffffffff, 'x', "OS Timer Watchdog Match Enable Register (4-37)" },
+{ "OWER_WME",    0x40A00018,  0, 0x00000001, 'x', "OSMR3 match causes a reset" },
+
+{ "OSCR",        0x40A00010,  0, 0xffffffff, 'x', "OS Timer Count Register (4-37)" },
+{ "OSCR_OSCV",   0x40A00010,  0, 0xffffffff, 'x', "OS Timer Count Value" },
+
+{ "OSSR",        0x40A00014,  0, 0xffffffff, 'x', "OS Timer Status Register (4-38)" },
+{ "OSSR_M0",     0x40A00014,  0, 0x00000001, 'x', "OS OSMR0 matched OSCR0" },
+{ "OSSR_M1",     0x40A00014,  1, 0x00000001, 'x', "OS OSMR1 matched OSCR1" },
+{ "OSSR_M2",     0x40A00014,  2, 0x00000001, 'x', "OS OSMR2 matched OSCR2" },
+{ "OSSR_M3",     0x40A00014,  3, 0x00000001, 'x', "OS OSMR3 matched OSCR3" },
+
+{ "PWMCTL0",             0x40B00000,  0, 0xffffffff, 'x', "PWM Control Register 0 (4-41)" },
+{ "PWMCTL0_PRESCALE",    0x40B00000,  0, 0x0000003f, 'd', "PWM0 Prescale Divisor" },
+{ "PWMCTL0_SD",          0x40B00000,  5, 0x00000001, 'x', "PWM0 abrupt shutdown" },
+
+{ "PWMDUTY0",            0x40B00004,  0, 0xffffffff, 'x', "PWM Duty Cycle Register 0 (4-42)" },
+{ "PWMDUTY0_DCYCLE",     0x40B00004,  0, 0x000003ff, 'd', "PWM0 Duty Cycle" },
+{ "PWMDUTY0_FDCYCLE",    0x40B00004, 10, 0x00000001, 'x', "PWM_OUT0 is set high and does not toggle" },
+
+{ "PWMPERVAL0",          0x40B00008,  0, 0xffffffff, 'x', "PWM Period Control Register 0 (4-43)" },
+{ "PWMPERVAL0_PV",       0x40B00008,  0, 0x000003ff, 'd', "PWM0 Period Cycle Length" },
+
+{ "PWMCTL1",             0x40C00000,  0, 0xffffffff, 'x', "PWM Control Register 1 (4-41)" },
+{ "PWMCTL1_PRESCALE",    0x40C00000,  0, 0x0000003f, 'd', "PWM1 Prescale Divisor" },
+{ "PWMCTL1_SD",          0x40C00000,  5, 0x00000001, 'x', "PWM1 abrupt shutdown" },
+
+{ "PWMDUTY1",            0x40C00004,  0, 0xffffffff, 'x', "PWM Duty Cycle Register 1 (4-42)" },
+{ "PWMDUTY1_DCYCLE",     0x40C00004,  0, 0x000003ff, 'd', "PWM1 Duty Cycle" },
+{ "PWMDUTY1_FDCYCLE",    0x40C00004, 10, 0x00000001, 'x', "PWM_OUT1 is set high and does not toggle" },
+
+{ "PWMPERVAL1",          0x40C00008,  0, 0xffffffff, 'x', "PWM Period Control Register 1 (4-43)" },
+{ "PWMPERVAL1_PV",       0x40C00008,  0, 0x000003ff, 'd', "PWM1 Period Cycle Length" },
+
+
+{ "LCCR0",     0x44000000,  0, 0xffffffff, 'x', "LCD Controller Control Register 0 (7-23)" },
+{ "LCCR0_ENB", 0x44000000,  0, 0x00000001, 'd', "LCD controller enable" },
+{ "LCCR0_CMS", 0x44000000,  1, 0x00000001, 'd', "LCD monochrome operation enable" },
+{ "LCCR0_SDS", 0x44000000,  2, 0x00000001, 'd', "LCD dual panel display enable" },
+{ "LCCR0_LDM", 0x44000000,  3, 0x00000001, 'd', "LCD disable done IRQ disable" },
+{ "LCCR0_SFM", 0x44000000,  4, 0x00000001, 'd', "LCD start of frame IRQ disable" },
+{ "LCCR0_IUM", 0x44000000,  5, 0x00000001, 'd', "LCD fifo underrun error IRQ disable" },
+{ "LCCR0_EFM", 0x44000000,  6, 0x00000001, 'd', "LCD end of frame IRQ disable" },
+{ "LCCR0_PAS", 0x44000000,  7, 0x00000001, 'd', "LCD active display enable" },
+{ "LCCR0_DPD", 0x44000000,  9, 0x00000001, 'd', "LCD send 8 pixel on L_DD[7:0] at each clock" },
+{ "LCCR0_DIS", 0x44000000, 10, 0x00000001, 'd', "LCD controller disable" },
+{ "LCCR0_QDM", 0x44000000, 11, 0x00000001, 'd', "LCD quick disable IRQ disable" },
+{ "LCCR0_PDD", 0x44000000, 12, 0x000000FF, 'd', "LCD palette DMA request delay" },
+{ "LCCR0_BM",  0x44000000, 20, 0x00000001, 'd', "LCD branch start IRQ disable" },
+{ "LCCR0_OUM", 0x44000000, 21, 0x00000001, 'd', "LCD fifo underrun IRQ disable" },
+
+{ "LCCR1",     0x44000004,  0, 0xffffffff, 'x', "LCD Controller Control Register 1 (7-26)" },
+{ "LCCR1_PPL", 0x44000004,  0, 0x000003ff, 'd', "LCD pixels per line (+1)" },
+{ "LCCR1_HSW", 0x44000004, 10, 0x0000003f, 'd', "LCD horizontal sync pulse width (+1)" },
+{ "LCCR1_ELW", 0x44000004, 16, 0x000000ff, 'd', "LCD end of line pixel clock wait count (+1)" },
+{ "LCCR1_BLW", 0x44000004, 24, 0x000000ff, 'd', "LCD beginning of line pixel clock wait count (+1)" },
+
+{ "LCCR2",     0x44000008,  0, 0xffffffff, 'x', "LCD Controller Control Register 2 (7-28)" },
+{ "LCCR2_LPP", 0x44000008,  0, 0x000003ff, 'd', "LCD lines per panel (+1)" },
+{ "LCCR2_VSW", 0x44000008, 10, 0x0000003f, 'd', "LCD vertical sync pulse width (+1)" },
+{ "LCCR2_EFW", 0x44000008, 16, 0x000000ff, 'd', "LCD end of frame line clock wait count (+1)" },
+{ "LCCR2_BFW", 0x44000008, 24, 0x000000ff, 'd', "LCD beginning of frame line clock wait count (+1)" },
+
+{ "LCCR3",     0x4400000C,  0, 0xffffffff, 'x', "LCD Controller Control Register 3 (7-31)" },
+{ "LCCR3_PCD", 0x4400000C,  0, 0x000000ff, 'd', "LCD pixel clock divisor (+1)" },
+{ "LCCR3_ACB", 0x4400000C,  8, 0x000000ff, 'd', "LCD AC bias pin frequency (+1)" },
+{ "LCCR3_API", 0x4400000C, 16, 0x0000000f, 'd', "LCD AC bias pin transitions per interrupt" },
+{ "LCCR3_VSP", 0x4400000C, 20, 0x00000001, 'd', "LCD L_FCLK vertical sync polarity active low" },
+{ "LCCR3_HSP", 0x4400000C, 21, 0x00000001, 'd', "LCD L_LCLK horizontal sync polarity active low" },
+{ "LCCR3_PCP", 0x4400000C, 22, 0x00000001, 'd', "LCD data sampled on falling edge of L_PCLK" },
+{ "LCCR3_OEP", 0x4400000C, 23, 0x00000001, 'd', "LCD L_BIAS output enable active low" },
+{ "LCCR3_BPP", 0x4400000C, 24, 0x00000007, '<', "LCD bits per pixel" },
+{ "LCCR3_DPC", 0x4400000C, 27, 0x00000007, 'd', "LCD double pixel clock rate at L_PCLK" },
+
+
+{ "FBR0",      0x44000020,  0, 0xffffffff, 'x', "FBR0" },
+{ "FBR1",      0x44000020,  0, 0xffffffff, 'x', "FBR1" },
+{ "LCSR",      0x44000038,  0, 0xffffffff, 'x', "LCD Controller Status Register (7-40)" },
+{ "LIIDR",     0x4400003C,  0, 0xffffffff, 'x', "LCD Controller Interrupt ID Register (7-41)" },
+// TODO
+
+{ "TRGBBR",    0x44000040,  0, 0xffffffff, 'x', "TMED RBG Seed Register (7-42)" },
+{ "TRGBBR_TRS",0x44000040,  0, 0x000000ff, 'x', "Red Seed" },
+{ "TRGBBR_TGS",0x44000040,  8, 0x000000ff, 'x', "Green Seed" },
+{ "TRGBBR_TBS",0x44000040, 16, 0x000000ff, 'x', "Blue Seed" },
+
+{ "TCR",       0x44000044,  0, 0xffffffff, 'x', "TMED Control Register (7-44)" },
+{ "TCR_COAM",  0x44000044,  0, 0x00000001, 'x', "Color Offset Adjuster Matrix" },
+{ "TCR_FNAM",  0x44000044,  1, 0x00000001, 'x', "Frame Number Adjuster Matrix" },
+{ "TCR_COAE",  0x44000044,  2, 0x00000001, 'x', "Color Offset Adjuster Enable" },
+{ "TCR_FNAME", 0x44000044,  3, 0x00000001, 'x', "Frame Number Adjuster Enable" },
+{ "TCR_TVBS",  0x44000044,  4, 0x0000000f, 'd', "Vertical Beat Suppression" },
+{ "TCR_THBS",  0x44000044,  8, 0x0000000f, 'd', "Horizontal Beat Suppression" },
+{ "TCR_TED",   0x44000044, 14, 0x00000001, 'x', "Energy Distribution Matrix Select" },
+
+{ "FDADR0",    0x44000200,  0, 0xffffffff, 'x', "FDADR0" },
+{ "FSADR0",    0x44000204,  0, 0xffffffff, 'x', "FSADR0" },
+{ "FIDR0",     0x44000208,  0, 0xffffffff, 'x', "FODR0" },
+{ "LDCMD0",    0x4400020C,  0, 0xffffffff, 'x', "LDCMD0" },
+{ "FDADR1",    0x44000210,  0, 0xffffffff, 'x', "FDADR1" },
+{ "FSADR1",    0x44000214,  0, 0xffffffff, 'x', "FSADR1" },
+{ "FIDR1",     0x44000218,  0, 0xffffffff, 'x', "FIDR1" },
+{ "LDCMD1",    0x4400021C,  0, 0xffffffff, 'x', "LDCMD1" },
+// TODO
+
+
+
+
+{ "MDCNFG",         0x48000000, 0, 0xffffffff, 'x', "SDRAM Configuration Register (6-9)" },
+{ "MDCNFG_DE0",     0x48000000, 0, 0x00000001, 'd', "SDRAM enable for partition 0" },
+{ "MDCNFG_DE1",     0x48000000, 1, 0x00000001, 'd', "SDRAM enable for partition 1" },
+{ "MDCNFG_DWID0",   0x48000000, 2, 0x00000001, 'd', "SDRAM data width (0=32, 1=16)" },
+{ "MDCNFG_DCAC0",   0x48000000, 3, 0x00000003, 'd', "Column address bits for partition pair 0/1" },
+{ "MDCNFG_DRAC0",   0x48000000, 5, 0x00000003, 'd', "Row address bits for partition pair 0/1" },
+{ "MDCNFG_DNB0",    0x48000000, 7, 0x00000001, 'd', "Banks in partition pair 0/1 (0=2, 1=4)" },
+{ "MDCNFG_DTC0",    0x48000000, 8, 0x00000003, 'd', "Timing Category for partition pair 0/1" },
+{ "MDCNFG_DADDR0",  0x48000000,10, 0x00000001, 'd', "Use alternate addressing for partition pair 0/1" },
+{ "MDCNFG_DLATCH0", 0x48000000,11, 0x00000001, 'd', "Return data latching scheme for partition pair 0/1" },
+{ "MDCNFG_DSA11110",0x48000000,12, 0x00000001, 'd', "use SA1111 address muxing for partition pair 0/1" },
+{ "MDCNFG_DE2",     0x48000000,16, 0x00000001, 'd', "SDRAM enable for partition 2" },
+{ "MDCNFG_DE3",     0x48000000,17, 0x00000001, 'd', "SDRAM enable for partition 3" },
+{ "MDCNFG_DWID2",   0x48000000,18, 0x00000001, 'd', "SDRAM data width (0=32, 1=16)" },
+{ "MDCNFG_DCAC2",   0x48000000,19, 0x00000003, 'd', "Column address bits for partition pair 2/3" },
+{ "MDCNFG_DRAC2",   0x48000000,21, 0x00000003, 'd', "Row address bits for partition pair 2/3" },
+{ "MDCNFG_DNB2",    0x48000000,23, 0x00000001, 'd', "Banks in partition pair 2/3 (0=2, 1=4)" },
+{ "MDCNFG_DTC2",    0x48000000,24, 0x00000003, 'd', "Timing Category for partition pair 2/3" },
+{ "MDCNFG_DADDR2",  0x48000000,26, 0x00000001, 'd', "Use alternate addressing for partition pair 2/3" },
+{ "MDCNFG_DLATCH2", 0x48000000,27, 0x00000001, 'd', "Return data latching scheme for partition pair 2/3" },
+{ "MDCNFG_DSA11112",0x48000000,28, 0x00000001, 'd', "use SA1111 address muxing for partition pair 2/3" },
+
+{ "MDREFR",         0x48000004, 0, 0xffffffff, 'x', "SDRAM Refresh Configuration Register (6-15)" },
+{ "MDREFR_DRI",     0x48000004, 0, 0x00000fff, 'x', "SDRAM Refresh intervall, all paritions" },
+{ "MDREFR_E0PIN",   0x48000004,12, 0x00000001, 'x', "SDRAM Clock Enable Pin 0 Level" },
+{ "MDREFR_K0RUN",   0x48000004,13, 0x00000001, 'x', "SDRAM Clock Run Pin 0" },
+{ "MDREFR_K0DB2",   0x48000004,14, 0x00000001, 'x', "SDRAM Clock Pin 0 Divide/2" },
+{ "MDREFR_E1PIN",   0x48000004,15, 0x00000001, 'x', "SDRAM Clock Enable Pin 1 Level" },
+{ "MDREFR_K1RUN",   0x48000004,16, 0x00000001, 'x', "SDRAM Clock Run Pin 1" },
+{ "MDREFR_K1DB2",   0x48000004,17, 0x00000001, 'x', "SDRAM Clock Pin 1 Divide/2" },
+{ "MDREFR_K2RUN",   0x48000004,18, 0x00000001, 'x', "SDRAM Clock Run Pin 2" },
+{ "MDREFR_K2DB2",   0x48000004,19, 0x00000001, 'x', "SDRAM Clock Pin 2 Divide/2" },
+{ "MDREFR_APD",     0x48000004,20, 0x00000001, 'x', "SDRAM Auto Power Down enable" },
+{ "MDREFR_SLFRSH",  0x48000004,22, 0x00000001, 'x', "SDRAM Self-Refresh" },
+{ "MDREFR_K0FREE",  0x48000004,23, 0x00000001, 'x', "SDRAM Free Running Control for SDCLK0" },
+{ "MDREFR_K1FREE",  0x48000004,24, 0x00000001, 'x', "SDRAM Free Running Control for SDCLK1" },
+{ "MDREFR_K2FREE",  0x48000004,25, 0x00000001, 'x', "SDRAM Free Running Control for SDCLK2" },
+
+{ "MSC0",           0x48000008, 0, 0xffffffff, 'x', "Asynchronous Static Memory Control Register 0 (6-45)" },
+{ "MSC0_RT0",       0x48000008, 0, 0x00000007, 'd', "nCS[0] ROM Type" },
+{ "MSC0_RBW0",      0x48000008, 3, 0x00000001, 'd', "nCS[0] ROM Bus Width (1=16bit)" },
+{ "MSC0_RDF0",      0x48000008, 4, 0x0000000f, 'd', "nCS[0] ROM Delay First Access" },
+{ "MSC0_RDN0",      0x48000008, 8, 0x0000000f, 'd', "nCS[0] ROM Delay Next Access" },
+{ "MSC0_RRR0",      0x48000008,12, 0x00000007, 'd', "nCS[0] ROM/SRAM Recovery Time" },
+{ "MSC0_RBUFF0",    0x48000008,15, 0x00000001, 'd', "nCS[0] Return Buffer Behavior (1=streaming)" },
+{ "MSC0_RT1",       0x48000008,16, 0x00000007, 'd', "nCS[1] ROM Type" },
+{ "MSC0_RBW1",      0x48000008,19, 0x00000001, 'd', "nCS[1] ROM Bus Width (1=16bit)" },
+{ "MSC0_RDF1",      0x48000008,20, 0x0000000f, 'd', "nCS[1] ROM Delay First Access" },
+{ "MSC0_RDN1",      0x48000008,24, 0x0000000f, 'd', "nCS[1] ROM Delay Next Access" },
+{ "MSC0_RRR1",      0x48000008,28, 0x00000007, 'd', "nCS[1] ROM/SRAM Recovery Time" },
+{ "MSC0_RBUFF1",    0x48000008,31, 0x00000001, 'd', "nCS[1] Return Buffer Behavior (1=streaming)" },
+
+{ "MSC1",           0x4800000C, 0, 0xffffffff, 'x', "Asynchronous Static Memory Control Register 1 (6-45)" },
+{ "MSC1_RT2",       0x4800000C, 0, 0x00000007, 'd', "nCS[2] ROM Type" },
+{ "MSC1_RBW2",      0x4800000C, 3, 0x00000001, 'd', "nCS[2] ROM Bus Width (1=16bit)" },
+{ "MSC1_RDF2",      0x4800000C, 4, 0x0000000f, 'd', "nCS[2] ROM Delay First Access" },
+{ "MSC1_RDN2",      0x4800000C, 8, 0x0000000f, 'd', "nCS[2] ROM Delay Next Access" },
+{ "MSC1_RRR2",      0x4800000C,12, 0x00000007, 'd', "nCS[2] ROM/SRAM Recovery Time" },
+{ "MSC1_RBUFF2",    0x4800000C,15, 0x00000001, 'd', "nCS[2] Return Buffer Behavior (1=streaming)" },
+{ "MSC1_RT3",       0x4800000C,16, 0x00000007, 'd', "nCS[3] ROM Type" },
+{ "MSC1_RBW3",      0x4800000C,19, 0x00000001, 'd', "nCS[3] ROM Bus Width (1=16bit)" },
+{ "MSC1_RDF3",      0x4800000C,20, 0x0000000f, 'd', "nCS[3] ROM Delay First Access" },
+{ "MSC1_RDN3",      0x4800000C,24, 0x0000000f, 'd', "nCS[3] ROM Delay Next Access" },
+{ "MSC1_RRR3",      0x4800000C,28, 0x00000007, 'd', "nCS[3] ROM/SRAM Recovery Time" },
+{ "MSC1_RBUFF3",    0x4800000C,31, 0x00000001, 'd', "nCS[3] Return Buffer Behavior (1=streaming)" },
+
+{ "MSC2",           0x48000010, 0, 0xffffffff, 'x', "Asynchronous Static Memory Control Register 2 (6-45)" },
+{ "MSC2_RT4",       0x48000010, 0, 0x00000007, 'd', "nCS[4] ROM Type" },
+{ "MSC2_RBW4",      0x48000010, 3, 0x00000001, 'd', "nCS[4] ROM Bus Width (1=16bit)" },
+{ "MSC2_RDF4",      0x48000010, 4, 0x0000000f, 'd', "nCS[4] ROM Delay First Access" },
+{ "MSC2_RDN4",      0x48000010, 8, 0x0000000f, 'd', "nCS[4] ROM Delay Next Access" },
+{ "MSC2_RRR4",      0x48000010,12, 0x00000007, 'd', "nCS[4] ROM/SRAM Recovery Time" },
+{ "MSC2_RBUFF4",    0x48000010,15, 0x00000001, 'd', "nCS[4] Return Buffer Behavior (1=streaming)" },
+{ "MSC2_RT5",       0x48000010,16, 0x00000007, 'd', "nCS[5] ROM Type" },
+{ "MSC2_RBW5",      0x48000010,19, 0x00000001, 'd', "nCS[5] ROM Bus Width (1=16bit)" },
+{ "MSC2_RDF5",      0x48000010,20, 0x0000000f, 'd', "nCS[5] ROM Delay First Access" },
+{ "MSC2_RDN5",      0x48000010,24, 0x0000000f, 'd', "nCS[5] ROM Delay Next Access" },
+{ "MSC2_RRR5",      0x48000010,28, 0x00000007, 'd', "nCS[5] ROM/SRAM Recovery Time" },
+{ "MSC2_RBUFF5",    0x48000010,31, 0x00000001, 'd', "nCS[5] Return Buffer Behavior (1=streaming)" },
+
+{ "MECR",           0x48000014, 0, 0xffffffff, 'x', "Expansion Memory Configuration Register (6-61)" },
+{ "MECR_NOS",       0x48000014, 0, 0x00000001, 'x', "Number of Sockets (1=2 Sockets)" },
+{ "MECR_CIT",       0x48000014, 1, 0x00000001, 'x', "Card inserted" },
+
+{ "SXCNFG",         0x4800001C, 0, 0xffffffff, 'x', "Synchronous Static Memory Configuration Register (6-33)" },
+{ "SXCNFG_SXEN0",   0x4800001C, 0, 0x00000001, 'x', "Partition 0 enabled as SX memory" },
+{ "SXCNFG_SXEN1",   0x4800001C, 1, 0x00000001, 'x', "Partition 1 enabled as SX memory" },
+{ "SXCNFG_SXCL0",   0x4800001C, 2, 0x00000007, 'x', "Partition 0/1 CAS Latency" },
+{ "SXCNFG_SXRL0",   0x4800001C, 5, 0x00000007, 'x', "Partition 0/1 RAS Latency" },
+{ "SXCNFG_SXRA0",   0x4800001C, 8, 0x00000003, 'x', "Partition 0/1 row address bit count" },
+{ "SXCNFG_SXCA0",   0x4800001C,10, 0x00000003, 'x', "Partition 0/1 column address bit count" },
+{ "SXCNFG_SXTP0",   0x4800001C,12, 0x00000003, 'x', "Partition 0/1 memory type" },
+{ "SXCNFG_SXLATCH0",0x4800001C,14, 0x00000001, 'x', "Partition 0/1 return data with return clock" },
+{ "SXCNFG_SXEN2",   0x4800001C,16, 0x00000001, 'x', "Partition 2 enabled as SX memory" },
+{ "SXCNFG_SXEN3",   0x4800001C,17, 0x00000001, 'x', "Partition 3 enabled as SX memory" },
+{ "SXCNFG_SXCL2",   0x4800001C,18, 0x00000007, 'x', "Partition 2/3 CAS Latency" },
+{ "SXCNFG_SXRL2",   0x4800001C,21, 0x00000007, 'x', "Partition 2/3 RAS Latency" },
+{ "SXCNFG_SXRA2",   0x4800001C,24, 0x00000003, 'x', "Partition 2/3 row address bit count" },
+{ "SXCNFG_SXCA2",   0x4800001C,26, 0x00000003, 'x', "Partition 2/3 column address bit count" },
+{ "SXCNFG_SXTP2",   0x4800001C,28, 0x00000003, 'x', "Partition 2/3 memory type" },
+{ "SXCNFG_SXLATCH2",0x4800001C,30, 0x00000001, 'x', "Partition 2/3 return data with return clock" },
+
+{ "SXMRS",          0x48000024, 0, 0xffffffff, 'x', "MRS value to be written to SX Memory (6-38)" },
+
+{ "MCMEM0",         0x48000028, 0, 0xffffffff, 'x', "MEM Control for PCMCIA Socket 0 (6-58)" },
+{ "MCMEM0_SET",     0x48000028, 0, 0x0000007f, 'd', "Address set time" },
+{ "MCMEM0_ASST",    0x48000028, 7, 0x0000001f, 'd', "Command assertion time" },
+{ "MCMEM0_HOLD",    0x48000028,14, 0x0000003f, 'd', "Address hold time" },
+
+{ "MCMEM1",         0x4800002C, 0, 0xffffffff, 'x', "MEM Control for PCMCIA Socket 1 (6-58)" },
+{ "MCMEM1_SET",     0x4800002C, 0, 0x0000007f, 'd', "Address set time" },
+{ "MCMEM1_ASST",    0x4800002C, 7, 0x0000001f, 'd', "Command assertion time" },
+{ "MCMEM1_HOLD",    0x4800002C,14, 0x0000003f, 'd', "Address hold time" },
+
+{ "MCATT0",         0x48000030, 0, 0xffffffff, 'x', "ATT Control for PCMCIA Socket 0 (6-59)" },
+{ "MCATT0_SET",     0x48000030, 0, 0x0000007f, 'd', "Address set time" },
+{ "MCATT0_ASST",    0x48000030, 7, 0x0000001f, 'd', "Command assertion time" },
+{ "MCATT0_HOLD",    0x48000030,14, 0x0000003f, 'd', "Address hold time" },
+
+{ "MCATT1",         0x48000034, 0, 0xffffffff, 'x', "ATT Control for PCMCIA Socket 1 (6-59)" },
+{ "MCATT1_SET",     0x48000034, 0, 0x0000007f, 'd', "Address set time" },
+{ "MCATT1_ASST",    0x48000034, 7, 0x0000001f, 'd', "Command assertion time" },
+{ "MCATT1_HOLD",    0x48000034,14, 0x0000003f, 'd', "Address hold time" },
+
+{ "MCIO0",          0x48000038, 0, 0xffffffff, 'x', "I/O Control for PCMCIA Socket 0 (6-59)" },
+{ "MCIO0_SET",      0x48000038, 0, 0x0000007f, 'd', "Address set time" },
+{ "MCIO0_ASST",     0x48000038, 7, 0x0000001f, 'd', "Command assertion time" },
+{ "MCIO0_HOLD",     0x48000038,14, 0x0000003f, 'd', "Address hold time" },
+
+{ "MCIO1",          0x4800003C, 0, 0xffffffff, 'x', "I/O Control for PCMCIA Socket 1 (6-59)" },
+{ "MCIO1_SET",      0x4800003C, 0, 0x0000007f, 'd', "Address set time" },
+{ "MCIO1_ASST",     0x4800003C, 7, 0x0000001f, 'd', "Command assertion time" },
+{ "MCIO1_HOLD",     0x4800003C,14, 0x0000003f, 'd', "Address hold time" },
+
+{ "MDMRS",          0x48000040, 0, 0xffffffff, 'x', "SDRAM Mode Register Set Configuration Register (6-12)" },
+{ "MDMRS_MDBL0",    0x48000040, 0, 0x00000007, 'x', "SDRAM Partition 0/1 burst length" },
+{ "MDMRS_MDADD0",   0x48000040, 3, 0x00000001, 'x', "SDRAM Partition 0/1 burst type" },
+{ "MDMRS_MDCL0",    0x48000040, 4, 0x00000007, 'x', "SDRAM Partition 0/1 CAS latency" },
+{ "MDMRS_MDMRS0",   0x48000040, 7, 0x000000ff, 'x', "MRS value to be written to SDRAM Partition 0/1" },
+{ "MDMRS_MDBL2",    0x48000040,16, 0x00000007, 'x', "SDRAM Partition 2/3 burst length" },
+{ "MDMRS_MDADD2",   0x48000040,19, 0x00000001, 'x', "SDRAM Partition 2/3 burst type" },
+{ "MDMRS_MDCL2",    0x48000040,20, 0x00000007, 'x', "SDRAM Partition 2/3 CAS latency" },
+{ "MDMRS_MDMRS2",   0x48000040,23, 0x000000ff, 'x', "MRS value to be written to SDRAM Partition 2/3" },
+
+{ "BOOTDEF",        0x48000044, 0, 0xffffffff, 'x', "Boot Time Defaults (6-73)" },
+{ "BOOTDEF_BOOTSEL",0x48000044, 0, 0x00000007, 'x', "Boot Configuration at BOOT_SEL pins" },
+{ "BOOTDEF_PKGTYPE",0x48000044, 3, 0x00000001, 'x', "Processor type, 1 for PXA250" },
+
+{ "MDMRSLP",        0x48000058, 0, 0xffffffff, 'x', "Low-Power SDRAM Mode Register Set Configuration Register (6-14)" },
+// TODO
+
+
+
+{ "MMC_STRPCL",			0x41100000, 0, 0xffffffff, 'x', "MMC Start/Stop Clock (15-23)" },
+
+{ "MMC_STAT",			0x41100004, 0, 0xffffffff, 'x', "MMC Status Register (15-24)" },
+{ "MMC_STAT_READ_TIME_OUT",	0x41100004, 0, 0x00000001, 'x', "Read Time Out" },
+{ "MMC_STAT_TIME_OUT_RESP",	0x41100004, 1, 0x00000001, 'x', "Time Out Response" },
+{ "MMC_STAT_CRC_WRITE_ERROR",	0x41100004, 2, 0x00000001, 'x', "CRC Write Error" },
+{ "MMC_STAT_CRC_READ_ERR",	0x41100004, 3, 0x00000001, 'x', "CRC Read Error" },
+{ "MMC_STAT_SPI_READ_ERR_TKN",	0x41100004, 4, 0x00000001, 'x', "SPI Read Error Token" },
+{ "MMC_STAT_RES_CRC_ERR",	0x41100004, 5, 0x00000001, 'x', "Response CRC Error" },
+{ "MMC_STAT_XMIT_FIFO_EMPTY",	0x41100004, 6, 0x00000001, 'x', "Transmit FIFO Empty" },
+{ "MMC_STAT_RECV_FIFO_EMPTY",	0x41100004, 7, 0x00000001, 'x', "Receive FIFO Empty" },
+{ "MMC_STAT_CLK_EN",		0x41100004, 8, 0x00000001, 'x', "Clock Enabled" },
+{ "MMC_STAT_DATA_TRAN_DONE",	0x41100004,11, 0x00000001, 'x', "Data Transmission Done" },
+{ "MMC_STAT_PRG_DONE",		0x41100004,12, 0x00000001, 'x', "Program Done" },
+{ "MMC_STAT_END_CMD_RES",	0x41100004,13, 0x00000001, 'x', "End Command Response" },
+
+{ "MMC_CLKRT",			0x41100008, 0, 0xffffffff, 'x', "MMC Clock Read Timeout Register (15-26)" },
+{ "MMC_CLK_RATE",		0x41100008, 0, 0x00000007, 'x', "Read Time Out bitmask" },
+
+{ "MMC_SPI",			0x4110000c, 0, 0xffffffff, 'x', "MMC SPI mode (15-27)" },
+{ "MMC_SPI_EN",			0x4110000c, 0, 0x00000001, 'x', "SPI mode enabled" },
+{ "MMC_SPI_CRC_ON",		0x4110000c, 1, 0x00000001, 'x', "CRC generation enabled" },
+{ "MMC_SPI_CS_EN",		0x4110000c, 2, 0x00000001, 'x', "SPI chip select enabled" },
+{ "MMC_SPI_CS_ADDRESS",		0x4110000c, 3, 0x00000001, 'x', "CS0 enabled" },
+
+{ "MMC_CMDAT",			0x41100010, 0, 0xffffffff, 'x', "MMC Command Data (15-28)" },
+{ "MMC_CMDAT_RF",		0x41100010, 0, 0x00000003, 'x', "response format" },
+{ "MMC_CMDAT_DATA_EN",		0x41100010, 2, 0x00000001, 'x', "current cmd includes data transfer" },
+{ "MMC_CMDAT_WRITE",		0x41100010, 3, 0x00000001, 'x', "data transfer is a write" },
+{ "MMC_CMDAT_STREAM",		0x41100010, 4, 0x00000001, 'x', "data transfer is in stream mode" },
+{ "MMC_CMDAT_BUSY",		0x41100010, 5, 0x00000001, 'x', "busy signal is expected after data transfer" },
+{ "MMC_CMDAT_INIT",		0x41100010, 6, 0x00000001, 'x', "precede cmd with 80 clocks" },
+{ "MMC_CMDAT_DMA_EN",		0x41100010, 7, 0x00000001, 'x', "enable DMA mode" },
+
+{ "MMC_RESTO",			0x41100014, 0, 0xffffffff, 'x', "MMC Response Time Out (15-29)" },
+{ "MMC_RESTO_TO",		0x41100014, 0, 0x0000007f, 'd', "clocks before a response time out" },
+
+{ "MMC_RDTO",			0x41100018, 0, 0xffffffff, 'x', "MMC Read Time Out (15-29)" },
+{ "MMC_RDTO_TO",		0x41100018, 0, 0x0000ffff, 'd', "time until read time out" },
+
+{ "MMC_BLKLEN",			0x4110001C, 0, 0xffffffff, 'x', "MMC Block Len Register (15-30)" },
+{ "MMC_BLKLEN_LEN",		0x4110001C, 0, 0x000003ff, 'd', "Number of bytes in the block" },
+
+{ "MMC_NOB",			0x41100020, 0, 0xffffffff, 'x', "MMC Block Number Register (15-30)" },
+{ "MMC_NOB_N",			0x41100020, 0, 0x0000ffff, 'd', "number of blocks" },
+
+{ "MMC_PRTBUF",			0x41100024, 0, 0xffffffff, 'x', "MMC Partial Buffer Register (15-31)" },
+{ "MMC_PRTBUF_FULL",		0x41100024, 0, 0x00000001, 'x', "Buffer is partially full" },
+
+{ "MMC_IMASK",			0x41100028, 0, 0xffffffff, 'x', "MMC Interrupt Mask Register (15-31)" },
+{ "MMC_IMASK_DATATRAN",		0x41100028, 0, 0x00000001, 'x', "Data Transfer Done masked" },
+{ "MMC_IMASK_PRGDONE",		0x41100028, 1, 0x00000001, 'x', "Programming Done masked" },
+{ "MMC_IMASK_ENDCMD",		0x41100028, 2, 0x00000001, 'x', "End Command Response masked" },
+{ "MMC_IMASK_STOPCMD",		0x41100028, 3, 0x00000001, 'x', "Ready for Stop Transaction Command masked" },
+{ "MMC_IMASK_CLOCKOFF",		0x41100028, 4, 0x00000001, 'x', "Clock Is Off masked" },
+{ "MMC_IMASK_RXFIFO",		0x41100028, 5, 0x00000001, 'x', "Receive FIFO Read Request masked" },
+{ "MMC_IMASK_TXFIFO",		0x41100028, 6, 0x00000001, 'x', "Transmit FIFO Write Request masked" },
+
+{ "MMC_IREG",			0x4110002c, 0, 0xffffffff, 'x', "MMC Interrupt Register (15-33)" },
+{ "MMC_IREG_DATATRAN",		0x4110002c, 0, 0x00000001, 'x', "Data Transfer Done or Read TimeOut occured" },
+{ "MMC_IREG_PRGDONE",		0x4110002c, 1, 0x00000001, 'x', "Card has finished programming" },
+{ "MMC_IREG_ENDCMD",		0x4110002c, 2, 0x00000001, 'x', "MMC has received response or Response TimeOut" },
+{ "MMC_IREG_STOPCMD",		0x4110002c, 3, 0x00000001, 'x', "MMC is ready for the Stop Transaction Command" },
+{ "MMC_IREG_CLOCKOFF",		0x4110002c, 4, 0x00000001, 'x', "MMC clock has been turned off" },
+{ "MMC_IREG_RXFIFO",		0x4110002c, 5, 0x00000001, 'x', "Request for data read from receive FIFO" },
+{ "MMC_IREG_TXFIFO",		0x4110002c, 6, 0x00000001, 'x', "Request to data write to transmit FIFO" },
+
+{ "MMC_CMD",			0x41100030, 0, 0xffffffff, 'x', "MMC Command Register (15-34)" },
+{ "MMC_CMD_INDEX",		0x41100030, 0, 0x0000003f, 'x', "command index" },
+
+{ "MMC_ARGH",			0x41100034, 0, 0xffffffff, 'x', "MMC Higher Argument Register (15-36)" },
+{ "MMC_ARGH_ARG",		0x41100034, 0, 0x0000ffff, 'x', "upper 16 bits of command argument" },
+
+{ "MMC_ARGL",			0x41100038, 0, 0xffffffff, 'x', "MMC Lower Argument Register (15-36)" },
+{ "MMC_ARGL_ARG",		0x41100038, 0, 0x0000ffff, 'x', "upper 16 bits of command argument" },
+
+
+#if defined(CONFIG_ARCH_PXA_IDP) || defined(CONFIG_ARCH_RAMSES)
+// CS5+0x03C00000  CPLD		0x14000000
+// CS1             Alt-Flash	0x04000000
+// CS0             Flash	0x00000000
+
+{ "CPLD_PWR",			0x17C00004, 0, 0x000000ff, 'x', "CPLD_PERIPH_PWR" },
+{ "CPLD_PWR_CORE",		0x17C00004, 0, 0x00000001, 'd', "Variable core enable - latch value in first" },
+#ifdef CONFIG_ARCH_PXA_IDP
+{ "CPLD_PWR_MQ",		0x17C00004, 2, 0x00000001, 'd', "MQ1132 power switch" },
+#else
+{ "CPLD_PWR_SL811HS",		0x17C00004, 2, 0x00000001, 'd', "SL811HS power switch" },
+#endif
+{ "CPLD_PWR_PER",		0x17C00004, 3, 0x00000001, 'd', "peripheral power enable" },
+{ "CPLD_PWR_RST",		0x17C00004, 4, 0x00000001, 'd', "peripheral reset" },
+
+{ "CPLD_LED",			0x17C00008, 0, 0x000000ff, 'x', "CPLD_LED_CONTROL" },
+{ "CPLD_LED_CIR",		0x17C00008, 0, 0x00000001, 'd', "CIR" },
+{ "CPLD_LED_HB",		0x17C00008, 5, 0x00000001, 'd', "red LED (0=on)" },
+{ "CPLD_LED_BUSY",		0x17C00008, 6, 0x00000001, 'd', "green LED (0=on)" },
+{ "CPLD_LED_FLASH",		0x17C00008, 7, 0x00000001, 'd', "red LED flash enable" },
+
+{ "CPLD_KBD_COL_HIGH",		0x17C0000C, 0, 0x000000ff, 'x', "CPLD" },
+
+{ "CPLD_KBD_COL_LOW",		0x17C00010, 0, 0x000000ff, 'x', "CPLD" },
+
+{ "CPLD_PCCARD_EN",		0x17C00014, 0, 0x000000ff, 'x', "CPLD PC-Card Enable" },
+{ "CPLD_PCC0_ENABLE",		0x17C00014, 0, 0x00000001, 'd', "PC-Card 0 enable" },
+{ "CPLD_PCC1_ENABLE",		0x17C00014, 1, 0x00000001, 'd', "PC-Card 1 enable" },
+{ "CPLD_PCC0_RESET",		0x17C00014, 6, 0x00000001, 'd', "PC-Card 0 reset" },
+{ "CPLD_PCC1_RESET",		0x17C00014, 7, 0x00000001, 'd', "PC-Card 1 reset" },
+
+/*
+{ "CPLD_GPIOH_DIR",		0x17C00018, 0, 0xffffffff, 'x', "CPLD" },
+{ "CPLD_GPIOH_VALUE",		0x17C0001C, 0, 0xffffffff, 'x', "CPLD" },
+{ "CPLD_GPIOL_DIR",		0x17C00020, 0, 0xffffffff, 'x', "CPLD" },
+{ "CPLD_GPIOL_VALUE",		0x17C00024, 0, 0xffffffff, 'x', "CPLD" },
+
+      WHEN "00110" =>
+        data(7) <= l3_data_out;         -- L3 IIS control bus - direction of data bit
+        data(6) <= '0';
+        data(5) <= '0';
+        data(4) <= '0';
+        data(3) <= '0';
+        data(2) <= '0';
+        data(1) <= gpslow_out(1);       -- direction of pld_gpio_09
+        data(0) <= gpslow_out(0);       -- direction of pld_gpio_08
+
+      WHEN "00111" =>                   -- gpio on async bus
+        data(7) <= l3_data_io;          -- L3 IIS control bus - always reads pin
+        data(6) <= l3_clk;              -- L3 IIS control bus - read back clock
+        data(5) <= l3_mode;             -- L3 IIS control bus - read back mode
+        data(4) <= '0';
+        data(3) <= '0';
+        data(2) <= '0';
+        data(1) <= gpslow_io(1);        -- gpio on async bus
+        data(0) <= gpslow_io(0);        -- gpio on async bus
+
+      WHEN "01000" =>
+        data <= gp_out;                 -- direction of pld_gpio_07 through 00
+
+      WHEN "01001" =>                   -- gpio on high speed bus
+        data <= gp_io;
+*/
+
+{ "CPLD_PCCARD_PWR",		0x17C00028, 0, 0x000000ff, 'x', "CPLD PC-Card Power" },
+{ "CPLD_PCC0_PWR0",		0x17C00028, 0, 0x00000001, 'd', "PC-Card 0 Pwr 0" },
+{ "CPLD_PCC0_PWR1",		0x17C00028, 1, 0x00000001, 'd', "PC-Card 0 Pwr 1" },
+{ "CPLD_PCC0_PWR2",		0x17C00028, 2, 0x00000001, 'd', "PC-Card 0 Pwr 2" },
+{ "CPLD_PCC0_PWR3",		0x17C00028, 3, 0x00000001, 'd', "PC-Card 0 Pwr 3" },
+{ "CPLD_PCC1_PWR0",		0x17C00028, 4, 0x00000001, 'd', "PC-Card 1 Pwr 0" },
+{ "CPLD_PCC1_PWR1",		0x17C00028, 5, 0x00000001, 'd', "PC-Card 1 Pwr 1" },
+{ "CPLD_PCC1_PWR2",		0x17C00028, 6, 0x00000001, 'd', "PC-Card 1 Pwr 2" },
+{ "CPLD_PCC1_PWR3",		0x17C00028, 7, 0x00000001, 'd', "PC-Card 1 Pwr 3" },
+
+{ "CPLD_MISC",			0x17C0002C, 0, 0x000000ff, 'x', "CPLD_MISC_CTRL" },
+{ "CPLD_MISC_SER1EN",		0x17C0002C, 0, 0x00000001, 'd', "RS-232 on FF UART enable" },
+{ "CPLD_MISC_SER2EN",		0x17C0002C, 1, 0x00000001, 'd', "RS-232 on BT UART enable" },
+{ "CPLD_MISC_SER3EN",		0x17C0002C, 2, 0x00000001, 'd', "RS-232 on ST UART enable" },
+{ "CPLD_MISC_IRDAFIR",		0x17C0002C, 3, 0x00000001, 'd', "IrDA FIR enable" },
+{ "CPLD_MISC_IRDAMD0",		0x17C0002C, 4, 0x00000001, 'd', "IrDA mode 0" },
+{ "CPLD_MISC_IRDAMD1",		0x17C0002C, 5, 0x00000001, 'd', "IrDA mode 1" },
+#ifdef CONFIG_ARCH_PXA_IDP
+{ "CPLD_MISC_I2SPWR",		0x17C0002C, 7, 0x00000001, 'd', "UDA1341 power switch" },
+#endif
+
+{ "CPLD_LCD",			0x17C00030, 0, 0x000000ff, 'x', "CPLD LCD Control", },
+#ifdef CONFIG_ARCH_PXA_IDP
+{ "CPLD_LCD_PWR",		0x17C00030, 0, 0x00000001, 'd', "LCD Power" },
+{ "CPLD_LCD_BACKLIGHT",		0x17C00030, 1, 0x00000001, 'd', "LCD Backlight" },
+{ "CPLD_LCD_VLCD",		0x17C00030, 2, 0x00000001, 'd', "LCD VLCD" },
+#else
+{ "CPLD_LCD_VCC",		0x17C00030, 0, 0x00000001, 'd', "LCD VCC" },
+{ "CPLD_LCD_DISPOFF",		0x17C00030, 2, 0x00000001, 'd', "LCD nDISPOFF" },
+#endif
+
+{ "CPLD_FLASH",			0x17C00034, 0, 0x000000ff, 'x', "CPLD Flash Control" },
+{ "CPLD_FLASH_WE",		0x17C00034, 0, 0x00000001, 'd', "CPLD StrataFlash Write Enable" },
+#ifdef CONFIG_ARCH_PXA_IDP
+{ "CPLD_FLASH_MWE",		0x17C00034, 1, 0x00000001, 'd', "CPLD MPlus Write Enable" },
+{ "CPLD_FLASH_MOE",		0x17C00034, 2, 0x00000001, 'd', "CPLD MPlus Output Enable" },
+
+{ "CPLD_CS",			0x17C00038, 0, 0x000000ff, 'x', "CPLD Chip Select Register" },
+{ "CPLD_CS_CS0EN",		0x17C00038, 0, 0x00000001, 'd', "CPLD Chip Select 0 Enable" },
+{ "CPLD_CS_CS1EN",		0x17C00038, 1, 0x00000001, 'd', "CPLD Chip Select 1 Enable" },
+{ "CPLD_CS_CS2EN",		0x17C00038, 2, 0x00000001, 'd', "CPLD Chip Select 2 Enable" },
+{ "CPLD_CS_CS3EN",		0x17C00038, 3, 0x00000001, 'd', "CPLD Chip Select 3 Enable" },
+{ "CPLD_CS_CS4EN",		0x17C00038, 4, 0x00000001, 'd', "CPLD Chip Select 4 Enable" },
+//{ "CPLD_CS_CS5EN",		0x17C00038, 4, 0x00000001, 'd', "CPLD Chip Select 5 Enable" },
+#endif
+
+{ "CPLD_KB_ROW",		0x17C00050, 0, 0x000000ff, 'x', "CPLD" },
+
+{ "CPLD_PCCARD0_STATUS",	0x17C00054, 0, 0x000000ff, 'x', "CPLD PC-Card 0 Status" },
+{ "CPLD_PCC0_VS1",              0x17C00054, 0, 0x00000001, 'd', "PC-Card 0 VS1" },
+{ "CPLD_PCC0_VS2",              0x17C00054, 1, 0x00000001, 'd', "PC-Card 0 VS2" },
+{ "CPLD_PCC0_BVD1",             0x17C00054, 2, 0x00000001, 'd', "PC-Card 0 BVD1" },
+{ "CPLD_PCC0_BVD2",             0x17C00054, 3, 0x00000001, 'd', "PC-Card 0 BVD2" },
+{ "CPLD_PCC0_INPACK",           0x17C00054, 4, 0x00000001, 'd', "PC-Card 0 INPACK" },
+{ "CPLD_PCC0_IRQ",              0x17C00054, 5, 0x00000001, 'd', "PC-Card 0 IRQ" },
+{ "CPLD_PCC0_STRESET",          0x17C00054, 6, 0x00000001, 'd', "PC-Card 0 RESET" },
+{ "CPLD_PCC0_WRPROT",           0x17C00054, 7, 0x00000001, 'd', "PC-Card 0 WRPROT" },
+
+{ "CPLD_PCCARD1_STATUS",	0x17C00058, 0, 0x000000ff, 'x', "CPLD PC-Card 1 Status" },
+{ "CPLD_PCC1_VS1",              0x17C00058, 0, 0x00000001, 'd', "PC-Card 1 VS1" },
+{ "CPLD_PCC1_VS2",              0x17C00058, 1, 0x00000001, 'd', "PC-Card 1 VS2" },
+{ "CPLD_PCC1_BVD1",             0x17C00058, 2, 0x00000001, 'd', "PC-Card 1 BVD1" },
+{ "CPLD_PCC1_BVD2",             0x17C00058, 3, 0x00000001, 'd', "PC-Card 1 BVD2" },
+{ "CPLD_PCC1_INPACK",           0x17C00058, 4, 0x00000001, 'd', "PC-Card 1 INPACK" },
+{ "CPLD_PCC1_IRQ",              0x17C00058, 5, 0x00000001, 'd', "PC-Card 1 IRQ" },
+{ "CPLD_PCC1_STRESET",          0x17C00058, 6, 0x00000001, 'd', "PC-Card 1 RESET" },
+{ "CPLD_PCC1_WRPROT",           0x17C00058, 7, 0x00000001, 'd', "PC-Card 1 WRPROT" },
+
+{ "CPLD_MISC_STATUS",		0x17C0005C, 0, 0x000000ff, 'x', "CPLD Misc Status" },
+{ "CPLD_MISC_USB_D_CON",        0x17C0005C, 0, 0x00000001, 'd', "Charge status" },
+{ "CPLD_MISC_WALL_IN",          0x17C0005C, 1, 0x00000001, 'd', "Charge status" },
+{ "CPLD_MISC_CHG_STS",          0x17C0005C, 2, 0x00000001, 'd', "Charge status" },
+{ "CPLD_MISC_MMC_WPROT",        0x17C0005C, 7, 0x00000001, 'd', "MMC write protect" },
+
+{ "CPLD_VER_YEAR",		0x17C00060, 0, 0x000000ff, 'x', "CPLD Year" },
+{ "CPLD_VER_MONTH",		0x17C00064, 0, 0x000000ff, 'x', "CPLD Month" },
+{ "CPLD_VER_DAY",		0x17C00068, 0, 0x000000ff, 'x', "CPLD Day" },
+{ "CPLD_VER_REV",		0x17C0006C, 0, 0x000000ff, 'x', "CPLD Revision" },
+
+{ "CPLD_VSTAT",			0x17C0007C, 0, 0x000000ff, 'x', "CPLD Voltage Status" },
+#ifdef CONFIG_ARCH_PXA_IDP
+{ "CPLD_BSTAT_V3GOOD",		0x17C0007C, 0, 0x00000001, 'x', "v3good" },
+#endif
+{ "CPLD_BSTAT_BWE",		0x17C0007C, 1, 0x00000001, 'x', "bwe" },
+
+#endif
+
+#if defined(CONFIG_ARCH_RAMSES)
+{ "UARTA_RHR",			0x0C002E00, 0, 0xffffffff, 'x', "UART A RHR/THR" },
+{ "UARTA_IER",			0x0C002E04, 0, 0xffffffff, 'x', "UART A IER" },
+{ "UARTA_FCR",			0x0C002E08, 0, 0xffffffff, 'x', "UART A FCR/IIR" },
+{ "UARTA_LCR",			0x0C002E0C, 0, 0xffffffff, 'x', "UART A LCR" },
+{ "UARTA_MCR",			0x0C002E10, 0, 0xffffffff, 'x', "UART A MCR" },
+{ "UARTA_LSR",			0x0C002E14, 0, 0xffffffff, 'x', "UART A LSR" },
+{ "UARTA_MSR",			0x0C002E18, 0, 0xffffffff, 'x', "UART A MSR" },
+{ "UARTA_SPR",			0x0C002E1C, 0, 0xffffffff, 'x', "UART A SPR" },
+
+{ "UARTB_RHR",			0x0C002D00, 0, 0xffffffff, 'x', "UART B RHR/THR" },
+{ "UARTB_IER",			0x0C002D04, 0, 0xffffffff, 'x', "UART B IER" },
+{ "UARTB_FCR",			0x0C002D08, 0, 0xffffffff, 'x', "UART B FCR/IIR" },
+{ "UARTB_LCR",			0x0C002D0C, 0, 0xffffffff, 'x', "UART B LCR" },
+{ "UARTB_MCR",			0x0C002D10, 0, 0xffffffff, 'x', "UART B MCR" },
+{ "UARTB_LSR",			0x0C002D14, 0, 0xffffffff, 'x', "UART B LSR" },
+{ "UARTB_MSR",			0x0C002D18, 0, 0xffffffff, 'x', "UART B MSR" },
+{ "UARTB_SPR",			0x0C002D1C, 0, 0xffffffff, 'x', "UART B SPR" },
+
+{ "UARTD_RHR",			0x0C002B00, 0, 0xffffffff, 'x', "UART C RHR/THR" },
+{ "UARTD_IER",			0x0C002B04, 0, 0xffffffff, 'x', "UART C IER" },
+{ "UARTD_FCR",			0x0C002B08, 0, 0xffffffff, 'x', "UART C FCR/IIR" },
+{ "UARTD_LCR",			0x0C002B0C, 0, 0xffffffff, 'x', "UART C LCR" },
+{ "UARTD_MCR",			0x0C002B10, 0, 0xffffffff, 'x', "UART C MCR" },
+{ "UARTD_LSR",			0x0C002B14, 0, 0xffffffff, 'x', "UART C LSR" },
+{ "UARTD_MSR",			0x0C002B18, 0, 0xffffffff, 'x', "UART C MSR" },
+{ "UARTD_SPR",			0x0C002B1C, 0, 0xffffffff, 'x', "UART C SPR" },
+
+{ "UARTD_RHR",			0x0C002700, 0, 0xffffffff, 'x', "UART D RHR/THR" },
+{ "UARTD_IER",			0x0C002704, 0, 0xffffffff, 'x', "UART D IER" },
+{ "UARTD_FCR",			0x0C002708, 0, 0xffffffff, 'x', "UART D FCR/IIR" },
+{ "UARTD_LCR",			0x0C00270C, 0, 0xffffffff, 'x', "UART D LCR" },
+{ "UARTD_MCR",			0x0C002710, 0, 0xffffffff, 'x', "UART D MCR" },
+{ "UARTD_LSR",			0x0C002714, 0, 0xffffffff, 'x', "UART D LSR" },
+{ "UARTD_MSR",			0x0C002718, 0, 0xffffffff, 'x', "UART D MSR" },
+{ "UARTD_SPR",			0x0C00271C, 0, 0xffffffff, 'x', "UART D SPR" },
+
+#endif
+
+};
+
+
+
+#define MAP_SIZE 4096
+#define MAP_MASK ( MAP_SIZE - 1 )
+
+static int getmem(u32 addr)
+{
+   void *map, *regaddr;
+   u32 val;
+
+   //printf("getmem(0x%08x)\n", addr);
+
+   if (fd == -1) {
+      fd = open("/dev/mem", O_RDWR | O_SYNC);
+      if (fd<0) {
+          perror("open(\"/dev/mem\")");
+          exit(1);
+      }
+   }
+
+   map = mmap(0,
+              MAP_SIZE,
+              PROT_READ | PROT_WRITE,
+              MAP_SHARED,
+              fd,
+              addr & ~MAP_MASK
+             );
+   if (map == (void*)-1 ) {
+       perror("mmap()");
+       exit(1);
+   }
+
+   regaddr = map + (addr & MAP_MASK);
+
+   val = *(u32*) regaddr;
+   munmap(0,MAP_SIZE);
+
+   return val;
+}
+
+static void putmem(u32 addr, u32 val)
+{
+   void *map, *regaddr;
+   static int fd = -1;
+
+   //printf("putmem(0x%08x, 0x%08x)\n", addr, val);
+
+   if (fd == -1) {
+      fd = open("/dev/mem", O_RDWR | O_SYNC);
+      if (fd<0) {
+          perror("open(\"/dev/mem\")");
+          exit(1);
+      }
+   }
+
+   map = mmap(0,
+              MAP_SIZE,
+              PROT_READ | PROT_WRITE,
+              MAP_SHARED,
+              fd,
+              addr & ~MAP_MASK
+             );
+   if (map == (void*)-1 ) {
+       perror("mmap()");
+       exit(1);
+   }
+
+   regaddr = map + (addr & MAP_MASK);
+
+   *(u32*) regaddr = val;
+   munmap(0,MAP_SIZE);
+}
+
+static u32 lastaddr = 0;
+static u32 newaddr = 1;
+static u32 data = 0;
+static u32 shiftdata;
+
+
+static void dumpentry(int i)
+{
+   int j;
+
+   if (regs[i].addr != lastaddr) newaddr = 1;
+   if (newaddr) {
+       newaddr = 0;
+       lastaddr = regs[i].addr;
+       data = getmem(lastaddr);
+       printf("\n%s\n", regs[i].desc);
+       printf("%-24s 0x%08x  ", regs[i].name, data);
+       shiftdata = data;
+       for (j=32; j>0; j--) {
+           printf("%c", shiftdata & 0x80000000 ? '1' : '0');
+           shiftdata = shiftdata << 1;
+           if (j==9 || j==17 || j==25) printf(" ");
+       }
+
+       printf("\n");
+   }
+
+   if (regs[i].shift != 0  ||  regs[i].mask != 0xffffffff) {
+       shiftdata = (data >> regs[i].shift) & regs[i].mask;
+       printf("%-25s  ", regs[i].name);
+       switch (regs[i].type) {
+          case 'x': printf("%8x", shiftdata);
+                    break;
+          case '<': printf("%8u", 1 << shiftdata);
+                    break;
+          default:
+                    printf("%8u", shiftdata);
+       }
+       printf("  %s\n", regs[i].desc);
+   }
+}
+
+
+static void dumpall(void)
+{
+   int i;
+   int n=sizeof(regs)/sizeof(struct reg_info);
+
+   for (i=0; i<n; i++) {
+      dumpentry(i);
+   }
+}
+
+
+static void dumpmatching(char *name)
+{
+   int i;
+   int n=sizeof(regs)/sizeof(struct reg_info);
+
+
+   for (i=0; i<n; i++) {
+      if (strstr(regs[i].name, name))
+         dumpentry(i);
+   }
+}
+
+
+static void setreg(char *name, u32 val)
+{
+   int i;
+   u32 mem;
+   int found=0;
+   int count=0;
+   int n=sizeof(regs)/sizeof(struct reg_info);
+
+
+   for (i=0; i<n; i++) {
+      if (strcmp(regs[i].name, name)==0) {
+         found = i;
+         //printf("Matched %s with %s, count=%d\n", regs[i].name, name, count);
+         count++;
+      }
+   }
+   if (count!=1) {
+      printf("No or more than one matching register found\n");
+      exit(1);
+   }
+
+   mem = getmem(regs[found].addr);
+   //printf("Old contents: 0x%08x\n", mem);
+   mem &= ~(regs[found].mask << regs[found].shift);
+   //printf("Unmasked contents: 0x%08x\n", mem);
+   val &= regs[found].mask;
+   //printf("mask: 0x%08x\n", regs[found].mask);
+   //printf("masked val: 0x%08x\n", val);
+   mem |= val << regs[found].shift;
+   //printf("Embedded value: 0x%08x\n", mem);
+   putmem(regs[found].addr, mem);
+}
+
+
+int main(int argc, char *argv[])
+{
+    char *p;
+    u32 val;
+
+    if (argc == 1) {
+       dumpall();
+       return 0;
+    }
+
+    // Uppercase first argument
+    if (argc >= 2) {
+        p = argv[1];
+        while (*p) {
+           *p = toupper(*p);
+           p++;
+        }
+    }
+
+    if (argc == 2) {
+       dumpmatching(argv[1]);
+       return 0;
+    }
+
+    if (argc == 3) {
+	sscanf(argv[2],"%i",&val);
+	setreg(argv[1], val);
+	return 0;
+    }
+
+    printf("Usage: %s                - to dump all known registers\n"
+           "       %s <name>         - to dump named register\n"
+           "       %s <name> <value> - to set named register\n",
+           argv[0], argv[0], argv[0]);
+    return 1;
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/serial.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/serial.patch
new file mode 100644
index 0000000..0685385
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/serial.patch
@@ -0,0 +1,14 @@
+Index: pxaregs-1.14/pxaregs.c
+===================================================================
+--- pxaregs-1.14.orig/pxaregs.c
++++ pxaregs-1.14/pxaregs.c
+@@ -78,6 +78,9 @@ static struct reg_info regs[] = {
+ { "ISAR",      0x403016A0,  0, 0xffffffff, 'x', "I2C Slave Address Register" },
+ { "ISAR_SA",   0x403016A0,  0, 0x0000007f, 'x', "I2C Slave Address" },
+ 
++{ "HW_MCR",    0x41600010,  0, 0xffffffff, 'x', "HWUART Modem Control Register" },
++{ "HW_MSR",    0x41600018,  0, 0xffffffff, 'x', "HWUART Modem Status Register" },
++
+ { "PMCR",      0x40F00000,  0, 0xffffffff, 'x', "Power Manager Control Register (3-23)" },
+ { "PMCR_IDAE", 0x40F00000,  0, 0x00000001, 'd', "PM imprecise data abort abort signal" },
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/usb.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/usb.patch
new file mode 100644
index 0000000..59f21fe
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs-1.14/usb.patch
@@ -0,0 +1,17 @@
+Index: pxaregs-1.14/pxaregs.c
+===================================================================
+--- pxaregs-1.14.orig/pxaregs.c
++++ pxaregs-1.14/pxaregs.c
+@@ -78,6 +78,12 @@ static struct reg_info regs[] = {
+ { "ISAR",      0x403016A0,  0, 0xffffffff, 'x', "I2C Slave Address Register" },
+ { "ISAR_SA",   0x403016A0,  0, 0x0000007f, 'x', "I2C Slave Address" },
+ 
++{ "UP2OCR",    0x40600020,  0, 0xffffffff, 'x', "USB Port 2 Output Control Register" },
++{ "UP2OCR_SEOS", 0x40600020, 24, 7, 'x', "USB Port 2 Single-Ended Output Select" },
++{ "UP2OCR_HXOE", 0x40600020, 17, 1, 'x', "USB Port 2 Tranceiver OE" },
++{ "UP2OCR_HXS",  0x40600020, 16, 1, 'x', "USB Port 2 Tranceiver Output Select" },
++{ "UP2OCR_IDON", 0x40600020, 10, 1, 'x', "OTG ID Read Enable" },
++
+ { "HW_MCR",    0x41600010,  0, 0xffffffff, 'x', "HWUART Modem Control Register" },
+ { "HW_MSR",    0x41600018,  0, 0xffffffff, 'x', "HWUART Modem Status Register" },
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs_1.14.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs_1.14.bb
new file mode 100644
index 0000000..30c41ff
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs_1.14.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Tool to display and modify PXA registers at runtime"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://pxaregs.c;endline=12;md5=668d061b7637acc68cb8071c9be372e6"
+AUTHOR = "Holger Schurig <hs4233@mail.mn-solutions.de>"
+HOMEPAGE = "http://www.mn-logistik.de/unsupported/pxa250/"
+
+SRC_URI = "file://pxaregs.c \
+           file://i2c.patch \
+           file://munmap.patch \
+           file://serial.patch \
+           file://usb.patch "
+
+S = "${WORKDIR}"
+
+do_compile() {
+    ${CC} pxaregs.c -o pxaregs ${CFLAGS} ${LDFLAGS}
+}
+
+do_install() {
+    install -d ${D}${sbindir}/
+    install -m 0755 pxaregs ${D}${sbindir}/
+}
+
+SRC_URI[md5sum] = "a43baa88842cd5926dbffb6fb87624f6"
+SRC_URI[sha256sum] = "f339b91cd8ab348052c36b36d20033e4bffc3666bc836ff72d5704f025e1c057"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/re2c/re2c/configure.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/re2c/re2c/configure.patch
new file mode 100644
index 0000000..8ca0969
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/re2c/re2c/configure.patch
@@ -0,0 +1,18 @@
+Modernise configure to work with modern automake.
+
+RP 2014/7/14
+
+Upstream-Status: Pending
+
+Index: re2c-0.13.5/configure.in
+===================================================================
+--- re2c-0.13.5.orig/configure.in	2008-05-25 14:42:34.000000000 +0000
++++ re2c-0.13.5/configure.in	2014-07-17 14:10:40.595821292 +0000
+@@ -1,6 +1,6 @@
+ AC_PREREQ([2.57])
+ AC_INIT(re2c, 0.13.5, re2c-general@lists.sourceforge.net)
+-AM_INIT_AUTOMAKE(re2c, $PACKAGE_VERSION)
++AM_INIT_AUTOMAKE([foreign])
+ AC_CONFIG_SRCDIR(actions.cc)
+ AM_CONFIG_HEADER(config.h)
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/re2c/re2c_0.13.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/re2c/re2c_0.13.5.bb
new file mode 100644
index 0000000..dcac940
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/re2c/re2c_0.13.5.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Tool for writing very fast and very flexible scanners"
+HOMEPAGE = "http://re2c.sourceforge.net/"
+AUTHOR = "Marcus Börger <helly@users.sourceforge.net>"
+SECTION = "devel"
+LICENSE = "PD"
+LIC_FILES_CHKSUM = "file://README;beginline=180;md5=822830a2204aef353f2c489f62e02089"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \
+           file://configure.patch"
+SRC_URI[md5sum] = "4a97d8f77ed6d2c76c8bd840a43f5633"
+SRC_URI[sha256sum] = "f3a995139af475e80a30207d02728b1e0065b0caade7375e974cb1b14861668c"
+
+BBCLASSEXTEND = "native"
+
+inherit autotools
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/read-edid/read-edid/0001-configure-remove-check-for-x86.h-we-don-t-build-get-.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/read-edid/read-edid/0001-configure-remove-check-for-x86.h-we-don-t-build-get-.patch
new file mode 100644
index 0000000..4408002
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/read-edid/read-edid/0001-configure-remove-check-for-x86.h-we-don-t-build-get-.patch
@@ -0,0 +1,28 @@
+From eb7590cc2cdd5c35403af4567d8524e017010f1c Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Sat, 11 May 2013 07:58:17 +0200
+Subject: [PATCH] configure: remove check for x86.h, we don't build get-edid
+
+Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
+
+Upstream-status: Inappropriate [OE specific]
+---
+ configure.in | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index ac85a21..f53e904 100644
+--- a/configure.in
++++ b/configure.in
+@@ -8,8 +8,6 @@ dnl Checks for programs
+ 
+ AC_PROG_CC
+ 
+-AC_CHECK_HEADER([libx86.h], [], [AC_MSG_ERROR([libx86.h not found])])
+-
+ dnl Simple, huh?
+ 
+ AC_OUTPUT([Makefile])
+-- 
+1.8.1.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/read-edid/read-edid_2.0.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/read-edid/read-edid_2.0.0.bb
new file mode 100644
index 0000000..b002906
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/read-edid/read-edid_2.0.0.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "read-edid elucidates various very useful informations from a conforming PnP monitor"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d0bf70fa1ef81fe4741ec0e6231dadfd"
+
+SRC_URI = "http://polypux.org/projects/read-edid/read-edid-${PV}.tar.gz \
+           file://0001-configure-remove-check-for-x86.h-we-don-t-build-get-.patch"
+
+SRC_URI[md5sum] = "586e7fa1167773b27f4e505edc93274b"
+SRC_URI[sha256sum] = "246ec14ec509e09ac26fe6862b120481b2cc881e2f142ba40886d6eec15e77e8"
+
+inherit autotools
+
+do_compile() {
+    oe_runmake parse-edid
+}
+
+do_install() {
+    install -d ${D}${bindir}
+    install -m 0755 parse-edid ${D}${bindir}
+}
+
+PACKAGES =+ "parse-edid"
+FILES_parse-edid = "${bindir}/parse-edid"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/rsnapshot/rsnapshot/configure-fix-cmd_rsync.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/rsnapshot/rsnapshot/configure-fix-cmd_rsync.patch
new file mode 100644
index 0000000..6466df4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/rsnapshot/rsnapshot/configure-fix-cmd_rsync.patch
@@ -0,0 +1,44 @@
+From 26ad431e19788898fb4ed19ff91392e8b20f1bab Mon Sep 17 00:00:00 2001
+From: Wenzong Fan <wenzong.fan@windriver.com>
+Date: Thu, 16 Oct 2014 04:06:55 -0400
+Subject: [PATCH] fix cmd_rsync
+
+Don't break configure if rsync is not installed on host.
+
+rsync is a runtime dependency and this change is only used for
+generating rsnapshot.conf.default. It allows cmd_rsync to use
+default path if options --without-rsync is specfied.
+
+Upstream-Status: Pending
+
+Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
+---
+ configure.ac |    5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index bc9df9e..2a33d29 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -55,7 +55,7 @@ AC_ARG_WITH(rsync,
+ 				AC_MSG_ERROR(rsync not found)
+ 			fi
+ 		else
+-			AC_MSG_ERROR(rsync is required)
++			RSYNC=no
+ 		fi
+ 	]
+ )
+@@ -67,7 +67,8 @@ if test "$RSYNC" = ""; then
+ fi
+ dnl bail out if we can't find it
+ if test "$RSYNC" = "no"; then
+-	AC_MSG_ERROR(rsync is required)
++	RSYNC=${bindir}/rsync
++	AC_SUBST(CMD_RSYNC, "cmd_rsync  $RSYNC")
+ fi
+ 
+ 
+-- 
+1.7.9.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/rsnapshot/rsnapshot_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/rsnapshot/rsnapshot_git.bb
new file mode 100644
index 0000000..d680511
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/rsnapshot/rsnapshot_git.bb
@@ -0,0 +1,43 @@
+SUMMARY = "A filesystem snapshot utility based on rsync"
+HOMEPAGE = "http://www.rsnapshot.org"
+BUGTRACKER = "https://sourceforge.net/projects/rsnapshot/"
+SECTION = "console/network"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=892f569a555ba9c07a568a7c0c4fa63a"
+
+RDEPENDS_${PN} = "rsync \
+                  perl \
+                  perl-module-dirhandle \
+                  perl-module-cwd \
+                  perl-module-getopt-std \
+                  perl-module-file-path \
+                  perl-module-file-stat \
+                  perl-module-posix \
+                  perl-module-fcntl \
+                  perl-module-io-file \
+                  perl-module-constant \
+                  perl-module-overloading \
+                 "
+
+SRCREV = "1047cbb57937c29233388e2fcd847fecd3babe74"
+PV = "1.3.1+git${SRCPV}"
+
+SRC_URI = "git://github.com/DrHyde/${BPN};branch=master;protocol=git \
+           file://configure-fix-cmd_rsync.patch \
+          "
+
+S = "${WORKDIR}/git"
+
+inherit autotools
+
+# Fix rsnapshot.conf.default:
+# don't inject the host path into target configs.
+EXTRA_OECONF += "--without-cp \
+                 --without-rm \
+                 --without-du \
+                 --without-ssh \
+                 --without-logger \
+                 --without-rsync \
+                 ac_cv_path_PERL=${bindir}/perl \
+                "
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_svn.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_svn.bb
new file mode 100644
index 0000000..082dc00
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_svn.bb
@@ -0,0 +1,22 @@
+SUMMARY = "A user-space tool to show and modify the state of GPIOs on the S3c24xx platform"
+SECTION = "console/utils"
+AUTHOR = "Werner Almesberger <werner@openmoko.org>"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://gpio.c;endline=12;md5=cfb91c686857b2e60852b4925d90a3e1"
+SRCREV = "4949"
+PV = "1.0+svnr${SRCPV}"
+PR = "r2"
+
+SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=gpio;protocol=http"
+S = "${WORKDIR}/gpio"
+
+CLEANBROKEN = "1"
+
+do_compile() {
+    ${CC} ${CFLAGS} ${LDFLAGS} -static -o ${PN} gpio.c
+}
+
+do_install() {
+    install -d ${D}${sbindir}
+    install -m 0755 ${PN} ${D}${sbindir}
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_svn.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_svn.bb
new file mode 100644
index 0000000..bed0555
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_svn.bb
@@ -0,0 +1,21 @@
+SUMMARY = "A user-space tool to show and modify the state of GPIOs on the S3c64xx platform"
+SECTION = "console/utils"
+AUTHOR = "Werner Almesberger <werner@openmoko.org>"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://gpio-s3c6410.c;endline=12;md5=060cda1be945ad9194593f11d56d55c7"
+SRCREV = "4949"
+PV = "1.0+svnr${SRCPV}"
+
+SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=gpio;protocol=http"
+S = "${WORKDIR}/gpio"
+
+CLEANBROKEN = "1"
+
+do_compile() {
+    ${CC} ${CFLAGS} ${LDFLAGS} -static -o ${PN} gpio-s3c6410.c
+}
+
+do_install() {
+    install -d ${D}${sbindir}
+    install -m 0755 ${PN} ${D}${sbindir}
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_svn.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_svn.bb
new file mode 100644
index 0000000..2d5935d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_svn.bb
@@ -0,0 +1,32 @@
+SUMMARY = "JTAG utility to interface w/ a S3C2410 device"
+SECTION = "devel"
+AUTHOR = "Harald Welte <laforge@openmoko.org>"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://parport.c;endline=19;md5=b5681091b0fd8c5f7068835c441bf0c8"
+SRCREV = "4268"
+PV = "0.1+svnr${SRCPV}"
+PR = "r1"
+
+SRC_URI = "svn://svn.openmoko.org/trunk/src/host/;module=sjf2410-linux;protocol=http"
+S = "${WORKDIR}/sjf2410-linux"
+
+inherit native deploy
+do_deploy[sstate-outputdirs] = "${DEPLOY_DIR_TOOLS}"
+
+CFLAGS += "-DLINUX_PPDEV"
+
+do_compile() {
+    oe_runmake
+}
+
+do_install() {
+    install -d ${D}/${bindir}
+    install -m 0755 sjf2410 ${D}/${bindir}
+}
+
+do_deploy() {
+    install -d ${DEPLOY_DIR_TOOLS}
+    install -m 0755 sjf2410 ${DEPLOY_DIR_TOOLS}/sjf2410-${PV}
+}
+
+addtask deploy before do_build after do_install
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/sdparm/files/make-sysroot-work.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/sdparm/files/make-sysroot-work.patch
new file mode 100644
index 0000000..5405ed8
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/sdparm/files/make-sysroot-work.patch
@@ -0,0 +1,27 @@
+[PATCH] make sysroot work
+
+Upstream-Status: Pending
+
+Add = before the included dir to make sysroot work
+
+Signed-off-by: Roy.Li <rongqing.li@windriver.com>
+---
+ src/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/Makefile.am b/src/Makefile.am
+index c83788c..9f62115 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -32,7 +32,7 @@ sglib_SOURCES =		../lib/sg_lib.c \
+ 			../lib/sg_pt_common.c
+ 
+ if HAVE_SGUTILS
+-INCLUDES = -I/usr/include/scsi
++INCLUDES = -I=@includedir@/scsi
+ sdparm_LDADD = @GETOPT_O_FILES@ @os_libs@ @SGUTILS_LIBS@
+ sdparm_DEPENDENCIES = @GETOPT_O_FILES@
+ else
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.09.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.09.bb
new file mode 100644
index 0000000..ca11ca4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/sdparm/sdparm_1.09.bb
@@ -0,0 +1,23 @@
+SUMMARY = "fetch and change SCSI mode pages"
+DESCRIPTION = "The sdparm utility accesses and optionally modifies \
+SCSI devices' mode page and inquiry data."
+HOMEPAGE = "http://sg.danny.cz/sg/sdparm.html"
+SECTION = "console/utils"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ecab6c36b7ba82c675581dd0afde36f7 \
+                    file://lib/BSD_LICENSE;md5=1d52f4a66f1e0ed96776bf354ab7a2ed"
+DEPENDS="sg3-utils"
+SRC_URI = "http://sg.danny.cz/sg/p/${BPN}-${PV}.tgz \
+           file://make-sysroot-work.patch \
+           "
+
+PACKAGES =+ "${PN}-scripts"
+RDEPENDS_${PN}-scripts += "bash ${PN}"
+
+SRC_URI[md5sum] = "e51b1fd41c3e4c9d1274a2e4f046eebf"
+SRC_URI[sha256sum] = "7294f44173ac0946f1de8af02b1bdb0bd648079245396589397a2b0d3abc42d3"
+
+inherit autotools
+
+# Put the bash scripts to ${PN}-scripts
+FILES_${PN}-scripts = "${bindir}/sas_disk_blink ${bindir}/scsi_ch_swp"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/serial-utils/pty-forward-native.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/serial-utils/pty-forward-native.bb
new file mode 100644
index 0000000..7f59b3e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/serial-utils/pty-forward-native.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Receive a forwarded serial from serial-forward and provide a PTY"
+AUTHOR = "Holger 'Zecke' Freyther"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ebb5c50ab7cab4baeffba14977030c07"
+SECTION = "console/network"
+SRCREV = "00dbec2636ae0385ad028587e20e446272ff97ec"
+PV = "1.1+gitr${SRCPV}"
+
+SRC_URI = "git://github.com/freesmartphone/cornucopia.git;protocol=https"
+S = "${WORKDIR}/git/tools/serial_forward"
+
+inherit autotools native
+
+do_deploy[sstate-outputdirs] = "${DEPLOY_DIR_IMAGE}"
+do_deploy() {
+    install -d ${DEPLOY_DIR_IMAGE}
+    install -m 0755 ${B}/src/pty_forward ${DEPLOY_DIR_IMAGE}/pty-forward
+}
+
+addtask deploy before do_package after do_install
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/serial-utils/serial-forward_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/serial-utils/serial-forward_git.bb
new file mode 100644
index 0000000..6494de9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/serial-utils/serial-forward_git.bb
@@ -0,0 +1,12 @@
+SUMMARY = "Forward a serial using TCP/IP"
+AUTHOR = "Holger 'Zecke' Freyther'"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ebb5c50ab7cab4baeffba14977030c07"
+SECTION = "console/devel"
+SRCREV = "00dbec2636ae0385ad028587e20e446272ff97ec"
+PV = "1.1+gitr${SRCPV}"
+
+SRC_URI = "git://github.com/freesmartphone/cornucopia.git"
+S = "${WORKDIR}/git/tools/serial_forward"
+
+inherit autotools
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.41.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.41.bb
new file mode 100644
index 0000000..61250fa
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.41.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Utilities for working with generic SCSI devices"
+
+DESCRIPTION = "This package contains low level utilities for devices that use the SCSI command set"
+
+HOMEPAGE = "http://sg.danny.cz/sg/sg3_utils.html"
+SECTION = "console/admin"
+
+LICENSE = "GPLv2+ & BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f90da7fc52172599dbf082d7620f18ca"
+
+SRC_URI = "http://sg.danny.cz/sg/p/sg3_utils-${PV}.tgz"
+
+SRC_URI[md5sum] = "86ebe3881535ee5c48f81be5be44b362"
+SRC_URI[sha256sum] = "c4e2893c36df1ee5b07840ab7c22129544f5dc8a55f7cc8815c9cd8e44ec31c0"
+
+inherit autotools-brokensep
+
+S = "${WORKDIR}/sg3_utils-${PV}"
+
+RDEPENDS_${PN} += "bash"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils-4.14/fix-for-cross-compiling.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils-4.14/fix-for-cross-compiling.patch
new file mode 100644
index 0000000..86a7da6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils-4.14/fix-for-cross-compiling.patch
@@ -0,0 +1,29 @@
+From 990234af84a5399017d1c4fe03c5c756a8e51e23 Mon Sep 17 00:00:00 2001
+From: Hongjun Yang <Hongjun.Yang@windriver.com>
+Date: Tue, 20 Aug 2013 09:41:43 +0800
+Subject: [PATCH] fix cross compiling issue
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongjun.Yang <hongjun.yang@windriver.com>
+
+---
+ configure | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure b/configure
+index 6ee98e0..8067f54 100755
+--- a/configure
++++ b/configure
+@@ -26965,7 +26965,7 @@ fi
+ if test "$cross_compiling" = yes; then :
+   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+-as_fn_error $? "cannot run test program while cross compiling
++$as_echo "cannot run test program while cross compiling
+ See \`config.log' for more details" "$LINENO" 5; }
+ else
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+-- 
+1.8.1.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils_4.14.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils_4.14.bb
new file mode 100644
index 0000000..49981e7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils_4.14.bb
@@ -0,0 +1,18 @@
+SUMMARY = "This is the set of GNU shar utilities."
+HOMEPAGE = "http://www.gnu.org/software/sharutils/"
+SECTION = "console/utils"
+LICENSE="GPLv3+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+inherit gettext autotools-brokensep
+
+SRC_URI = "ftp://ftp.gnu.org/gnu/sharutils/sharutils-4.14.tar.gz \
+	   file://fix-for-cross-compiling.patch \
+	  "
+
+SRC_URI[md5sum] = "5686c11131b4c4c0841f8f3ef34d136a"
+SRC_URI[sha256sum] = "90f5107c167cfd1b299bb211828d2586471087863dbed698f53109cd5f717208"
+
+do_configure () {
+	oe_runconf
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/smem/smem_1.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/smem/smem_1.4.bb
new file mode 100644
index 0000000..519020f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/smem/smem_1.4.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Report application memory usage in a meaningful way"
+DESCRIPTION = "smem is a tool that can give numerous reports on memory usage on Linux \
+systems. Unlike existing tools, smem can report proportional set size (PSS), \
+which is a more meaningful representation of the amount of memory used by \
+libraries and applications in a virtual memory system."
+HOMEPAGE = "http://www.selenic.com/smem/"
+SECTION = "Applications/System"
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "http://www.selenic.com/${BPN}/download/${BP}.tar.gz"
+SRC_URI[md5sum] = "fe79435c3930389bfdb560255c802162"
+SRC_URI[sha256sum] = "2ea9f878f4cf3c276774c3f7e2a41977a1f2d64f98d2dcb6a15f1f3d84df61ec"
+
+do_compile() {
+        ${CC} ${CFLAGS} ${LDFLAGS} smemcap.c -o smemcap
+}
+
+do_install() {
+        install -d ${D}/${bindir}/
+        install -d ${D}/${mandir}/man8
+        install -m 0755 ${S}/smem ${D}${bindir}/
+        install -m 0755 ${S}/smemcap ${D}${bindir}/
+        install -m 0644 ${S}/smem.8 ${D}/${mandir}/man8/
+}
+RDEPENDS_${PN} += "python-textutils python-compression python-shell python-codecs"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/soci/soci/soci_libdir.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/soci/soci/soci_libdir.patch
new file mode 100644
index 0000000..00a1a5c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/soci/soci/soci_libdir.patch
@@ -0,0 +1,28 @@
+Define SOCI_LIBDIR only if its not passed via environemnt. In OE we
+want to set it per our choice since we use 'lib' for 64bit unless we
+are using multilib
+
+-Khem
+
+Index: soci-3.2.2/CMakeLists.txt
+===================================================================
+--- soci-3.2.2.orig/CMakeLists.txt
++++ soci-3.2.2/CMakeLists.txt
+@@ -69,11 +69,12 @@ include(SociDependencies)
+ ###############################################################################
+ # Installation
+ ###############################################################################
+-
+-if(APPLE OR CMAKE_SIZEOF_VOID_P EQUAL 4)
+-  set(SOCI_LIBDIR "lib")
+-else()
+-  set(SOCI_LIBDIR "lib64")
++if(NOT DEFINED SOCI_LIBDIR)
++  if(APPLE OR CMAKE_SIZEOF_VOID_P EQUAL 4)
++    set(SOCI_LIBDIR "lib")
++  else()
++    set(SOCI_LIBDIR "lib")
++  endif()
+ endif()
+ 
+ set(BINDIR "bin" CACHE PATH "The directory to install binaries into.")
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/soci/soci_3.2.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/soci/soci_3.2.2.bb
new file mode 100644
index 0000000..1f5a485
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/soci/soci_3.2.2.bb
@@ -0,0 +1,49 @@
+# Copyright (C) 2015 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+DESCRIPTION = "The C++ Database Access Library"
+HOMEPAGE = "http://soci.sourceforge.net"
+LICENSE = "BSL-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE_1_0.txt;md5=e4224ccaecb14d942c71d31bef20d78c"
+SECTION = "libs"
+DEPENDS = "boost"
+
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${BP}/${BP}.tar.gz \
+           file://soci_libdir.patch \
+          "
+SRC_URI[md5sum] = "bc3c35f6cd3f80a1be19fe30b3c111bf"
+SRC_URI[sha256sum] = "30ea2f4d26639ef5b5cdc24fb300b3896746243dbb77b743582de2ff443ccb1c"
+
+TESTCONFIG = '-DSOCI_TEST_EMPTY_CONNSTR="dummy" -DSOCI_TEST_SQLITE3_CONNSTR="test.db" \
+              -DSOCI_TEST_POSTGRESQL_CONNSTR:STRING="dbname=soci_test" \
+              -DSOCI_TEST_MYSQL_CONNSTR:STRING="db=soci_test user=oe password=oe"'
+
+OBASEDIR ?= "/opt/oracle"
+OINCDIR = "rdbms/public"
+OLIBDIR = "lib"
+
+PACKAGECONFIG[sqlite3] = "-DSOCI_SQLITE3=ON,-DSOCI_SQLITE3=OFF,sqlite3,"
+PACKAGECONFIG[mysql] = "-DSOCI_MYSQL=ON,-DSOCI_MYSQL=OFF,mariadb,"
+PACKAGECONFIG[postgresql] = "-DSOCI_POSTGRESQL=ON,-DSOCI_POSTGRESQL=OFF,postgresql,"
+PACKAGECONFIG[odbc] = "-DSOCI_ODBC=ON,-DSOCI_ODBC=OFF,,"
+PACKAGECONFIG[empty] = "-DSOCI_EMPTY=ON,-DSOCI_EMPTY=OFF,,"
+PACKAGECONFIG[oracle] = "-DWITH_ORACLE=ON --with-oracle-include=${OINCDIR} --with-oracle-lib=${OLIBDIR},-DWITH_ORACLE=OFF,,"
+PACKAGECONFIG[ptest] = "${TESTCONFIG},,,"
+
+# enable your backend by default we enable 'empty'
+PACKAGECONFIG ??= "empty"
+
+# Take the flags added by PACKAGECONFIG and pass them to cmake.
+EXTRA_OECMAKE = "${EXTRA_OECONF} -DSOCI_LIBDIR=${libdir}"
+DISABLE_STATIC = ""
+
+inherit cmake
+
+PACKAGES += "${PN}-sqlite3 ${PN}-mysql ${PN}-postgresql ${PN}-odbc ${PN}-oracle"
+
+FILES_${PN}-sqlite3 = "${libdir}/lib${BPN}_sqlite3.so.*"
+FILES_${PN}-mysql = "${libdir}/lib${BPN}_mysql.so.*"
+FILES_${PN}-postgresql = "${libdir}/lib${BPN}_postgresql.so.*"
+FILES_${PN}-odbc = "${libdir}/lib${BPN}_odbc.so.*"
+FILES_${PN}-oracle = "${libdir}/lib${BPN}_oracle.so.*"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/spitools/spitools_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/spitools/spitools_git.bb
new file mode 100644
index 0000000..adb67cd
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/spitools/spitools_git.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "This package contains some simple command line tools to help using Linux spidev devices"
+HOMEPAGE = "https://github.com/cpb-/spi-tools"
+AUTHOR = "Christophe BLAESS"
+LICENSE="GPLv2"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8c16666ae6c159876a0ba63099614381"
+
+S = "${WORKDIR}/git"
+
+SRC_URI = "git://github.com/cpb-/spi-tools.git;protocol=git"
+
+SRCREV = "cc6a41fdcec60610703ba6db488c621c64952898"
+
+inherit autotools
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/sqlite/sqlite-2.8.17/mainmk_build_dynamic.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/sqlite/sqlite-2.8.17/mainmk_build_dynamic.patch
new file mode 100644
index 0000000..914422f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/sqlite/sqlite-2.8.17/mainmk_build_dynamic.patch
@@ -0,0 +1,32 @@
+diff -urN sqlite-2.8.17.orig/main.mk sqlite-2.8.17/main.mk
+--- sqlite-2.8.17.orig/main.mk	2005-04-23 22:43:23.000000000 +0000
++++ sqlite-2.8.17/main.mk	2009-04-02 20:10:36.000000000 +0000
+@@ -139,7 +139,7 @@
+ # This is the default Makefile target.  The objects listed here
+ # are what get build when you type just "make" with no arguments.
+ #
+-all:	sqlite.h config.h libsqlite.a sqlite$(EXE)
++all:   sqlite.h config.h libsqlite.so sqlite$(EXE)
+ 
+ # Generate the file "last_change" which contains the date of change
+ # of the most recently modified source code file
+@@ -148,13 +148,12 @@
+ 	cat $(SRC) | grep '$$Id: ' | sort +4 | tail -1 \
+           | awk '{print $$5,$$6}' >last_change
+ 
+-libsqlite.a:	$(LIBOBJ)
+-	$(AR) libsqlite.a $(LIBOBJ)
+-	$(RANLIB) libsqlite.a
+-
+-sqlite$(EXE):	$(TOP)/src/shell.c libsqlite.a sqlite.h
+-	$(TCCX) $(READLINE_FLAGS) -o sqlite$(EXE) $(TOP)/src/shell.c \
+-		libsqlite.a $(LIBREADLINE) $(THREADLIB)
++libsqlite.so:	$(LIBOBJ)
++	$(CC) $(LDFLAGS) -shared -o libsqlite.so -Wl,-soname,libsqlite.so.0 $(LIBOBJ)
++
++sqlite$(EXE):	$(TOP)/src/shell.c libsqlite.so sqlite.h
++	$(TCCX) $(LDFLAGS) $(READLINE_FLAGS) -o sqlite$(EXE) $(TOP)/src/shell.c \
++		-lsqlite $(LIBREADLINE) $(THREADLIB)
+ 
+ sqlite_analyzer$(EXE):	$(TOP)/src/tclsqlite.c libsqlite.a $(TESTSRC) \
+ 			$(TOP)/tool/spaceanal.tcl
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/sqlite/sqlite-2.8.17/mainmk_no_tcl.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/sqlite/sqlite-2.8.17/mainmk_no_tcl.patch
new file mode 100644
index 0000000..b84b648
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/sqlite/sqlite-2.8.17/mainmk_no_tcl.patch
@@ -0,0 +1,20 @@
+diff -bur sqlite-2.8.17~orig/main.mk sqlite-2.8.17/main.mk
+--- sqlite-2.8.17~orig/main.mk	2006-02-13 04:09:33.000000000 -0600
++++ sqlite-2.8.17/main.mk	2006-02-13 04:15:42.000000000 -0600
+@@ -58,7 +58,7 @@
+          expr.o func.o hash.o insert.o \
+          main.o opcodes.o os.o pager.o parse.o pragma.o printf.o random.o \
+          select.o table.o tokenize.o trigger.o update.o util.o \
+-         vacuum.o vdbe.o vdbeaux.o where.o tclsqlite.o
++         vacuum.o vdbe.o vdbeaux.o where.o
+ 
+ # All of the source code files.
+ #
+@@ -91,7 +91,6 @@
+   $(TOP)/src/sqlite.h.in \
+   $(TOP)/src/sqliteInt.h \
+   $(TOP)/src/table.c \
+-  $(TOP)/src/tclsqlite.c \
+   $(TOP)/src/tokenize.c \
+   $(TOP)/src/trigger.c \
+   $(TOP)/src/update.c \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/sqlite/sqlite-2.8.17/sqlite.pc b/import-layers/meta-openembedded/meta-oe/recipes-support/sqlite/sqlite-2.8.17/sqlite.pc
new file mode 100644
index 0000000..6bc742e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/sqlite/sqlite-2.8.17/sqlite.pc
@@ -0,0 +1,12 @@
+# Package Information for pkg-config
+
+prefix=/usr
+exec_prefix=${prefix}
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include
+
+Name: SQLite
+Description: SQL database engine
+Version: 2.8.17
+Libs: -L${libdir} -lsqlite
+Cflags: -I${includedir}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/sqlite/sqlite_2.8.17.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/sqlite/sqlite_2.8.17.bb
new file mode 100644
index 0000000..e6e14c2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/sqlite/sqlite_2.8.17.bb
@@ -0,0 +1,59 @@
+SUMMARY = "An Embeddable SQL Database Engine"
+HOMEPAGE = "http://www.sqlite.org/"
+SECTION = "libs"
+DEPENDS = "readline ncurses"
+LICENSE = "PD"
+LIC_FILES_CHKSUM = "file://src/main.c;beginline=1;endline=10;md5=e98469a8efa024a38ad5b2e4b92f4a96"
+
+PR = "r7"
+
+SRC_URI = "http://www.hwaci.com/sw/sqlite/sqlite-${PV}.tar.gz \
+    file://mainmk_build_dynamic.patch \
+    file://mainmk_no_tcl.patch \
+    file://sqlite.pc"
+
+SOURCES = "attach.o auth.o btree.o btree_rb.o build.o copy.o date.o delete.o \
+           expr.o func.o hash.o insert.o main.o opcodes.o os.o pager.o \
+           parse.o pragma.o printf.o random.o select.o table.o tokenize.o \
+           trigger.o update.o util.o vacuum.o vdbe.o vdbeaux.o where.o"
+
+inherit autotools pkgconfig
+
+do_configure() {
+    echo "main.mk is patched, no need to configure"
+    # make pkgconfig.bbclass pick this up
+    cp ${WORKDIR}/sqlite.pc ${S}
+}
+
+do_compile() {
+    oe_runmake -f ${S}/Makefile.linux-gcc \
+             TOP="${S}" \
+             BCC="${BUILD_CC}" \
+             TCC="${CC}" \
+             OPTS="-fPIC -D'INTPTR_TYPE=int'" \
+             TCL_FLAGS= LIBTCL= \
+             READLINE_FLAGS="-DHAVE_READLINE=1 -I${STAGING_INCDIR}" \
+             LIBREADLINE="-L. -L${STAGING_LIBDIR} -lreadline -lncurses"
+}
+
+do_install() {
+    install -d ${D}${libdir} ${D}${bindir}
+    install sqlite ${D}${bindir}
+    install -m 0755 libsqlite.so ${D}${libdir}/libsqlite.so.0.8.6
+    ln -sf libsqlite.so.0.8.6 ${D}${libdir}/libsqlite.so
+    ln -sf libsqlite.so.0.8.6 ${D}${libdir}/libsqlite.so.0
+    ln -sf libsqlite.so.0.8.6 ${D}${libdir}/libsqlite.so.0.8
+    install -d ${D}${includedir}
+    install -m 0644 sqlite.h ${D}${includedir}/sqlite.h
+    install -d ${D}${libdir}/pkgconfig
+    install -m 0644 ${S}/sqlite.pc ${D}${libdir}/pkgconfig/sqlite.pc
+}
+
+PACKAGES += "${PN}-bin"
+FILES_${PN}-bin = "${bindir}/*"
+FILES_${PN} = "${libdir}/*.so.*"
+
+SRC_URI[md5sum] = "838dbac20b56d2c4292e98848505a05b"
+SRC_URI[sha256sum] = "3f35ebfb67867fb5b583a03e480f900206af637efe7179b32294a6a0cf806f37"
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0001-dpkg-start-stop-daemon-Accept-SIG-prefixed-signal-na.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0001-dpkg-start-stop-daemon-Accept-SIG-prefixed-signal-na.patch
new file mode 100644
index 0000000..e988efd
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0001-dpkg-start-stop-daemon-Accept-SIG-prefixed-signal-na.patch
@@ -0,0 +1,39 @@
+From 685645a20e39cf2ab7db8d1f5e3666a4228abca8 Mon Sep 17 00:00:00 2001
+From: Ioan-Adrian Ratiu <adrian.ratiu@ni.com>
+Date: Wed, 8 Jul 2015 09:44:57 +0300
+Subject: [PATCH 1/1] dpkg start-stop-daemon: Accept SIG prefixed signal names
+
+---
+ utils/start-stop-daemon.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/utils/start-stop-daemon.c b/utils/start-stop-daemon.c
+index 6aebe9b..e805082 100644
+--- a/utils/start-stop-daemon.c
++++ b/utils/start-stop-daemon.c
+@@ -18,6 +18,9 @@
+  *                 and Andreas Schuldei <andreas@schuldei.org>
+  *
+  * Changes by Ian Jackson: added --retry (and associated rearrangements).
++ *
++ * Changes by Haris Okanovic <haris.okanovic@ni.com> to support 'SIG'
++ *     prefixed signal names placed in public domain as well.
+  */
+ 
+ #include <config.h>
+@@ -661,6 +664,12 @@ parse_signal(const char *sig_str, int *sig_num)
+ 	if (parse_unsigned(sig_str, 10, sig_num) == 0)
+ 		return 0;
+ 
++        /* Skip over optional "SIG" prefix */
++        if (strncmp(sig_str, "SIG", 3) == 0) {
++                warning("Using deprecated signal name %s. Drop the 'SIG' prefix.\n", sig_str);
++                sig_str += 3;
++        }
++
+ 	for (i = 0; i < array_count(siglist); i++) {
+ 		if (strcmp(sig_str, siglist[i].name) == 0) {
+ 			*sig_num = siglist[i].signal;
+-- 
+2.1.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.17.25.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.17.25.bb
new file mode 100644
index 0000000..5ee4472
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.17.25.bb
@@ -0,0 +1,36 @@
+SUMMARY = "Debian's start-stop-daemon utility extracted from the dpkg \
+package"
+LICENSE = "PD"
+LIC_FILES_CHKSUM = "file://utils/start-stop-daemon.c;endline=21;md5=8fbd0497a7d0b01e99820bffcb58e9ad"
+# start-stop-daemon is usually shipped by dpkg
+DEPENDS = "ncurses"
+RCONFLICTS_${PN} = "dpkg"
+
+SRC_URI = " \
+    ${DEBIAN_MIRROR}/main/d/dpkg/dpkg_${PV}.tar.xz \
+    file://0001-dpkg-start-stop-daemon-Accept-SIG-prefixed-signal-na.patch \
+"
+
+SRC_URI[md5sum] = "e48fcfdb2162e77d72c2a83432d537ca"
+SRC_URI[sha256sum] = "07019d38ae98fb107c79dbb3690cfadff877f153b8c4970e3a30d2e59aa66baa"
+
+inherit autotools gettext pkgconfig
+
+S = "${WORKDIR}/dpkg-${PV}"
+
+EXTRA_OECONF = " \
+    --without-bz2 \
+    --without-selinux \
+"
+
+do_install_append () {
+    # remove everything that is not related to start-stop-daemon, since there
+    # is no explicit rule for only installing ssd
+    find ${D} -type f -not -name "*start-stop-daemon*" -exec rm {} \;
+    find ${D} -depth -type d -empty -exec rmdir {} \;
+
+    # support for buggy init.d scripts that refer to an alternative
+    # explicit path to start-stop-daemon
+    mkdir -p ${D}/sbin/
+    ln -sf /usr/sbin/start-stop-daemon ${D}/sbin/start-stop-daemon
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/synergy/synergy_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/synergy/synergy_git.bb
new file mode 100644
index 0000000..e6057f4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/synergy/synergy_git.bb
@@ -0,0 +1,34 @@
+SUMMARY = "Synergy - control multiple computers with one keyboard and mouse"
+HOMEPAGE = "http://synergy-project.org"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=0f366945b209c5523e39889f636af00a"
+LICENSE = "GPL-2.0"
+SECTION = "x11/utils"
+
+DEPENDS = "virtual/libx11 libxtst libxinerama unzip-native curl openssl"
+
+# depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI = "git://github.com/synergy/synergy.git;protocol=http"
+
+# Version 1.7.4-rc8
+SRCREV ?= "588fb4b805dd452556d05dbc03fe29ea5b4e43c0"
+PV = "1.7.3+1.7.4-rc8+${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+inherit cmake distro_features_check
+
+do_unpack_extra() {
+    cd ${S}/ext
+    for file in *.zip; do
+        fname="${file##*/}"
+        unzip $file -d ${fname%.*}
+    done
+}
+addtask unpack_extra after do_unpack before do_patch
+
+do_install() {
+    install -d ${D}/usr/bin
+    install -m 0755 ${S}/bin/synergy* ${D}/usr/bin/
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/Fix-the-memory-leak-problem-for-mutex.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/Fix-the-memory-leak-problem-for-mutex.patch
new file mode 100644
index 0000000..89022aa
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/Fix-the-memory-leak-problem-for-mutex.patch
@@ -0,0 +1,58 @@
+Fix the memory leak problem for mutex
+
+Upstream-Status: Pending
+
+Signed-off-by: Xufeng Zhang <xufeng.zhang@windriver.com>
+---
+ lib/logqueue.c               |    1 +
+ modules/affile/affile-dest.c |    2 ++
+ modules/dbparser/dbparser.c  |    1 +
+ 3 files changed, 4 insertions(+), 0 deletions(-)
+
+diff --git a/lib/logqueue.c b/lib/logqueue.c
+index 337a3c1..10edcf0 100644
+--- a/lib/logqueue.c
++++ b/lib/logqueue.c
+@@ -188,6 +188,7 @@ log_queue_init_instance(LogQueue *self, const gchar *persist_name)
+ void
+ log_queue_free_method(LogQueue *self)
+ {
++  g_static_mutex_free(&self->lock);
+   g_free(self->persist_name);
+   g_free(self);
+ }
+diff --git a/modules/affile/affile-dest.c b/modules/affile/affile-dest.c
+index a2bcdad..ce79f6f 100644
+--- a/modules/affile/affile-dest.c
++++ b/modules/affile/affile-dest.c
+@@ -305,6 +305,7 @@ affile_dw_free(LogPipe *s)
+ {
+   AFFileDestWriter *self = (AFFileDestWriter *) s;
+   
++  g_static_mutex_free(&self->lock);
+   log_pipe_unref((LogPipe *) self->writer);
+   self->writer = NULL;
+   g_free(self->filename);
+@@ -687,6 +688,7 @@ affile_dd_free(LogPipe *s)
+   /* NOTE: this must be NULL as deinit has freed it, otherwise we'd have circular references */
+   g_assert(self->single_writer == NULL && self->writer_hash == NULL);
+ 
++  g_static_mutex_free(&self->lock);
+   log_template_unref(self->filename_template);
+   log_writer_options_destroy(&self->writer_options);
+   log_dest_driver_free(s);
+diff --git a/modules/dbparser/dbparser.c b/modules/dbparser/dbparser.c
+index f1248b5..9775701 100644
+--- a/modules/dbparser/dbparser.c
++++ b/modules/dbparser/dbparser.c
+@@ -284,6 +284,7 @@ log_db_parser_free(LogPipe *s)
+ {
+   LogDBParser *self = (LogDBParser *) s;
+ 
++  g_static_mutex_free(&self->lock);
+   if (self->db)
+     pattern_db_free(self->db);
+ 
+-- 
+1.7.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/Fix-the-memory-leak-problem-when-HAVE_ENVIRON-defined.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/Fix-the-memory-leak-problem-when-HAVE_ENVIRON-defined.patch
new file mode 100644
index 0000000..2ac9c0b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/Fix-the-memory-leak-problem-when-HAVE_ENVIRON-defined.patch
@@ -0,0 +1,27 @@
+Fix the memory leak problem when HAVE_ENVIRON is defined
+
+Upstream-Status: Pending
+
+Signed-off-by: Xufeng Zhang <xufeng.zhang@windriver.com>
+---
+--- a/lib/gprocess.c
++++ b/lib/gprocess.c
+@@ -1421,6 +1421,18 @@
+ void
+ g_process_finish(void)
+ {
++#ifdef HAVE_ENVIRON
++  int i = 0;
++
++  while (environ[i]) {
++    g_free(environ[i]);
++    ++i;
++  }
++  if (environ)
++    g_free(environ);
++  if (process_opts.argv_orig)
++    free(process_opts.argv_orig);
++#endif
+   g_process_remove_pidfile();
+ }
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/afsql-afsql_dd_insert_db-refactor.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/afsql-afsql_dd_insert_db-refactor.patch
new file mode 100644
index 0000000..42e181b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/afsql-afsql_dd_insert_db-refactor.patch
@@ -0,0 +1,494 @@
+From 23e80b75508187baaa823a68ea019b72e0b2305c Mon Sep 17 00:00:00 2001
+From: Budai Laszlo <lbudai@balabit.hu>
+Date: Tue, 12 Nov 2013 13:19:04 +0100
+Subject: [PATCH] afsql: afsql_dd_insert_db() refactor
+
+Upstream-Status: Backport
+
+A lot of the code that was previously in afsql_dd_insert_db() have been
+extracted to smaller functions, and afsql_dd_insert_db() was rebuilt on
+top of these. At the same time, memory leaks were plugged, and in case
+of a transaction error, backlog rewinding has been fixed too, to not
+loose messages since the last BEGIN command.
+
+Signed-off-by: Juhasz Viktor <jviktor@balabit.hu>
+Signed-off-by: Laszlo Budai <lbudai@balabit.hu>
+---
+ modules/afsql/afsql.c | 301 ++++++++++++++++++++++++++++++++------------------
+ 1 file changed, 192 insertions(+), 109 deletions(-)
+
+diff --git a/modules/afsql/afsql.c b/modules/afsql/afsql.c
+index 12f6aab..a6a8190 100644
+--- a/modules/afsql/afsql.c
++++ b/modules/afsql/afsql.c
+@@ -456,24 +456,21 @@ afsql_dd_create_index(AFSqlDestDriver *s
+  *
+  * NOTE: This function can only be called from the database thread.
+  **/
+-static GString *
+-afsql_dd_validate_table(AFSqlDestDriver *self, LogMessage *msg)
++static gboolean
++afsql_dd_validate_table(AFSqlDestDriver *self, GString *table)
+ {
+-  GString *query_string, *table;
++  GString *query_string;
+   dbi_result db_res;
+   gboolean success = FALSE;
+   gint i;
+ 
+-  table = g_string_sized_new(32);
+-  log_template_format(self->table, msg, &self->template_options, LTZ_LOCAL, 0, NULL, table);
+-
+   if (self->flags & AFSQL_DDF_DONT_CREATE_TABLES)
+-    return table;
++    return TRUE;
+ 
+   afsql_dd_check_sql_identifier(table->str, TRUE);
+ 
+   if (g_hash_table_lookup(self->validated_tables, table->str))
+-    return table;
++    return TRUE;
+ 
+   query_string = g_string_sized_new(32);
+   g_string_printf(query_string, "SELECT * FROM %s WHERE 0=1", table->str);
+@@ -544,14 +541,9 @@ afsql_dd_validate_table(AFSqlDestDriver 
+       /* we have successfully created/altered the destination table, record this information */
+       g_hash_table_insert(self->validated_tables, g_strdup(table->str), GUINT_TO_POINTER(TRUE));
+     }
+-  else
+-    {
+-      g_string_free(table, TRUE);
+-      table = NULL;
+-    }
+   g_string_free(query_string, TRUE);
+ 
+-  return table;
++  return success;
+ }
+ 
+ /**
+@@ -581,6 +573,20 @@ afsql_dd_begin_txn(AFSqlDestDriver *self
+ }
+ 
+ /**
++ * afsql_dd_handle_transaction_error:
++ *
++ * Handle errors inside during a SQL transaction (e.g. INSERT or COMMIT failures).
++ *
++ * NOTE: This function can only be called from the database thread.
++ **/
++static void
++afsql_dd_handle_transaction_error(AFSqlDestDriver *self)
++{
++  log_queue_rewind_backlog(self->queue);
++  self->flush_lines_queued = 0;
++}
++
++/**
+  * afsql_dd_begin_txn:
+  *
+  * Commit SQL transaction.
+@@ -596,14 +602,14 @@ afsql_dd_commit_txn(AFSqlDestDriver *sel
+   if (success)
+     {
+       log_queue_ack_backlog(self->queue, self->flush_lines_queued);
++      self->flush_lines_queued = 0;
+     }
+   else
+     {
+-      msg_notice("SQL transaction commit failed, rewinding backlog and starting again",
+-                 NULL);
+-      log_queue_rewind_backlog(self->queue);
++      msg_error("SQL transaction commit failed, rewinding backlog and starting again",
++                NULL);
++      afsql_dd_handle_transaction_error(self);
+     }
+-  self->flush_lines_queued = 0;
+   return success;
+ }
+ 
+@@ -644,12 +650,13 @@ afsql_dd_set_dbd_opt_numeric(gpointer ke
+ }
+ 
+ static gboolean
+-afsql_dd_connect(AFSqlDestDriver *self)
++afsql_dd_ensure_initialized_connection(AFSqlDestDriver *self)
+ {
+   if (self->dbi_ctx)
+     return TRUE;
+ 
+   self->dbi_ctx = dbi_conn_new(self->type);
++
+   if (!self->dbi_ctx)
+     {
+       msg_error("No such DBI driver",
+@@ -659,10 +666,12 @@ afsql_dd_connect(AFSqlDestDriver *self)
+     }
+ 
+   dbi_conn_set_option(self->dbi_ctx, "host", self->host);
++
+   if (strcmp(self->type, "mysql"))
+     dbi_conn_set_option(self->dbi_ctx, "port", self->port);
+   else
+     dbi_conn_set_option_numeric(self->dbi_ctx, "port", atoi(self->port));
++
+   dbi_conn_set_option(self->dbi_ctx, "username", self->user);
+   dbi_conn_set_option(self->dbi_ctx, "password", self->password);
+   dbi_conn_set_option(self->dbi_ctx, "dbname", self->database);
+@@ -691,6 +700,7 @@ afsql_dd_connect(AFSqlDestDriver *self)
+                 evt_tag_str("database", self->database),
+                 evt_tag_str("error", dbi_error),
+                 NULL);
++
+       return FALSE;
+     }
+ 
+@@ -713,104 +723,145 @@ afsql_dd_connect(AFSqlDestDriver *self)
+   return TRUE;
+ }
+ 
+-static gboolean
+-afsql_dd_insert_fail_handler(AFSqlDestDriver *self, LogMessage *msg,
+-                             LogPathOptions *path_options)
++static GString *
++afsql_dd_ensure_accessible_database_table(AFSqlDestDriver *self, LogMessage *msg)
+ {
+-  if (self->failed_message_counter < self->num_retries - 1)
+-    {
+-      log_queue_push_head(self->queue, msg, path_options);
+-
+-      /* database connection status sanity check after failed query */
+-      if (dbi_conn_ping(self->dbi_ctx) != 1)
+-        {
+-          const gchar *dbi_error;
+-
+-          dbi_conn_error(self->dbi_ctx, &dbi_error);
+-          msg_error("Error, no SQL connection after failed query attempt",
+-                    evt_tag_str("type", self->type),
+-                    evt_tag_str("host", self->host),
+-                    evt_tag_str("port", self->port),
+-                    evt_tag_str("username", self->user),
+-                    evt_tag_str("database", self->database),
+-                    evt_tag_str("error", dbi_error),
+-                    NULL);
+-          return FALSE;
+-        }
++  GString *table = g_string_sized_new(32);
++  log_template_format(self->table, msg, &self->template_options, LTZ_LOCAL, 0, NULL, table);
+ 
+-      self->failed_message_counter++;
+-      return FALSE;
++  if (!afsql_dd_validate_table(self, table))
++    {
++      /* If validate table is FALSE then close the connection and wait time_reopen time (next call) */
++      msg_error("Error checking table, disconnecting from database, trying again shortly",
++                evt_tag_int("time_reopen", self->time_reopen),
++                NULL);
++      g_string_free(table, TRUE);
++      return NULL;
+     }
+ 
+-  msg_error("Multiple failures while inserting this record into the database, message dropped",
+-            evt_tag_int("attempts", self->num_retries),
+-            NULL);
+-  stats_counter_inc(self->dropped_messages);
+-  log_msg_drop(msg, path_options);
+-  self->failed_message_counter = 0;
+-  return TRUE;
++  return table;
+ }
+ 
+ static GString *
+-afsql_dd_construct_query(AFSqlDestDriver *self, GString *table,
+-                         LogMessage *msg)
++afsql_dd_build_insert_command(AFSqlDestDriver *self, LogMessage *msg, GString *table)
+ {
+-  GString *value;
+-  GString *query_string;
+-  gint i;
++  GString *insert_command = g_string_sized_new(256);
++  GString *value = g_string_sized_new(512);
++  gint i, j;
+ 
+-  value = g_string_sized_new(256);
+-  query_string = g_string_sized_new(512);
++  g_string_printf(insert_command, "INSERT INTO %s (", table->str);
+ 
+-  g_string_printf(query_string, "INSERT INTO %s (", table->str);
+   for (i = 0; i < self->fields_len; i++)
+     {
+-      g_string_append(query_string, self->fields[i].name);
+-      if (i != self->fields_len - 1)
+-        g_string_append(query_string, ", ");
++      if ((self->fields[i].flags & AFSQL_FF_DEFAULT) == 0 && self->fields[i].value != NULL)
++        {
++           g_string_append(insert_command, self->fields[i].name);
++
++           j = i + 1;
++           while (j < self->fields_len && (self->fields[j].flags & AFSQL_FF_DEFAULT) == AFSQL_FF_DEFAULT)
++             j++;
++
++           if (j < self->fields_len)
++             g_string_append(insert_command, ", ");
++        }
+     }
+-  g_string_append(query_string, ") VALUES (");
++
++  g_string_append(insert_command, ") VALUES (");
+ 
+   for (i = 0; i < self->fields_len; i++)
+     {
+       gchar *quoted;
+ 
+-      if (self->fields[i].value == NULL)
+-        {
+-          /* the config used the 'default' value for this column -> the fields[i].value is NULL, use SQL default */
+-          g_string_append(query_string, "DEFAULT");
+-        }
+-      else
++      if ((self->fields[i].flags & AFSQL_FF_DEFAULT) == 0 && self->fields[i].value != NULL)
+         {
+           log_template_format(self->fields[i].value, msg, &self->template_options, LTZ_SEND, self->seq_num, NULL, value);
+-
+           if (self->null_value && strcmp(self->null_value, value->str) == 0)
+             {
+-              g_string_append(query_string, "NULL");
++              g_string_append(insert_command, "NULL");
+             }
+           else
+             {
+               dbi_conn_quote_string_copy(self->dbi_ctx, value->str, &quoted);
+               if (quoted)
+                 {
+-                  g_string_append(query_string, quoted);
++                  g_string_append(insert_command, quoted);
+                   free(quoted);
+                 }
+               else
+                 {
+-                  g_string_append(query_string, "''");
++                 g_string_append(insert_command, "''");
+                 }
+             }
+-        }
+ 
+-      if (i != self->fields_len - 1)
+-        g_string_append(query_string, ", ");
++          j = i + 1;
++          while (j < self->fields_len && (self->fields[j].flags & AFSQL_FF_DEFAULT) == AFSQL_FF_DEFAULT)
++            j++;
++          if (j < self->fields_len)
++            g_string_append(insert_command, ", ");
++        }
+     }
+-  g_string_append(query_string, ")");
++
++  g_string_append(insert_command, ")");
+ 
+   g_string_free(value, TRUE);
+ 
+-  return query_string;
++  return insert_command;
++}
++
++static inline gboolean
++afsql_dd_is_transaction_handling_enabled(const AFSqlDestDriver *self)
++{
++  return self->flush_lines_queued != -1;
++}
++
++static inline gboolean
++afsql_dd_should_start_new_transaction(const AFSqlDestDriver *self)
++{
++  return self->flush_lines_queued == 0;
++}
++
++static inline gboolean
++afsql_dd_should_commit_transaction(const AFSqlDestDriver *self)
++{
++  return afsql_dd_is_transaction_handling_enabled(self) && self->flush_lines_queued == self->flush_lines;
++}
++
++static inline gboolean
++afsql_dd_handle_insert_row_error_depending_on_connection_availability(AFSqlDestDriver *self,
++                                                                      LogMessage *msg,
++                                                                      LogPathOptions *path_options)
++{
++  const gchar *dbi_error, *error_message;
++
++  if (dbi_conn_ping(self->dbi_ctx) == 1)
++    {
++      log_queue_push_head(self->queue, msg, path_options);
++      return TRUE;
++    }
++
++  if (afsql_dd_is_transaction_handling_enabled(self))
++    {
++      error_message = "SQL connection lost in the middle of a transaction,"
++                      " rewinding backlog and starting again";
++      afsql_dd_handle_transaction_error(self);
++    }
++  else
++    {
++      error_message = "Error, no SQL connection after failed query attempt";
++      log_queue_push_head(self->queue, msg, path_options);
++    }
++
++  dbi_conn_error(self->dbi_ctx, &dbi_error);
++  msg_error(error_message,
++            evt_tag_str("type", self->type),
++            evt_tag_str("host", self->host),
++            evt_tag_str("port", self->port),
++            evt_tag_str("username", self->user),
++            evt_tag_str("database", self->database),
++            evt_tag_str("error", dbi_error),
++            NULL);
++
++  return FALSE;
+ }
+ 
+ /**
+@@ -824,61 +875,93 @@ afsql_dd_construct_query(AFSqlDestDriver
+ static gboolean
+ afsql_dd_insert_db(AFSqlDestDriver *self)
+ {
+-  GString *table, *query_string;
++  GString *table = NULL;
++  GString *insert_command = NULL;
+   LogMessage *msg;
+   gboolean success;
+   LogPathOptions path_options = LOG_PATH_OPTIONS_INIT;
+ 
+-  afsql_dd_connect(self);
++  if (!afsql_dd_ensure_initialized_connection(self))
++    return FALSE;
+ 
+-  success = log_queue_pop_head(self->queue, &msg, &path_options, (self->flags & AFSQL_DDF_EXPLICIT_COMMITS), FALSE);
++  /* connection established, try to insert a message */
++  success = log_queue_pop_head(self->queue, &msg, &path_options, FALSE, self->flags & AFSQL_DDF_EXPLICIT_COMMITS);
+   if (!success)
+     return TRUE;
+ 
+   msg_set_context(msg);
+ 
+-  table = afsql_dd_validate_table(self, msg);
++  table = afsql_dd_ensure_accessible_database_table(self, msg);
++
+   if (!table)
+     {
+-      /* If validate table is FALSE then close the connection and wait time_reopen time (next call) */
+-      msg_error("Error checking table, disconnecting from database, trying again shortly",
+-                evt_tag_int("time_reopen", self->time_reopen),
+-                NULL);
+-      msg_set_context(NULL);
+-      g_string_free(table, TRUE);
+-      return afsql_dd_insert_fail_handler(self, msg, &path_options);
++      success = FALSE;
++      goto out;
+     }
+ 
+-  query_string = afsql_dd_construct_query(self, table, msg);
++  if (afsql_dd_should_start_new_transaction(self) && !afsql_dd_begin_txn(self))
++    {
++      success = FALSE;
++      goto out;
++    }
+ 
+-  if (self->flush_lines_queued == 0 && !afsql_dd_begin_txn(self))
+-    return FALSE;
++  insert_command = afsql_dd_build_insert_command(self, msg, table);
++  success = afsql_dd_run_query(self, insert_command->str, FALSE, NULL);
+ 
+-  success = afsql_dd_run_query(self, query_string->str, FALSE, NULL);
+   if (success && self->flush_lines_queued != -1)
+     {
+       self->flush_lines_queued++;
+ 
+-      if (self->flush_lines && self->flush_lines_queued == self->flush_lines && !afsql_dd_commit_txn(self))
+-        return FALSE;
++      if (afsql_dd_should_commit_transaction(self) && !afsql_dd_commit_txn(self))
++        {
++          /* Assuming that in case of error, the queue is rewound by afsql_dd_commit_txn() */
++
++          g_string_free(insert_command, TRUE);
++          msg_set_context(NULL);
++
++          return FALSE;
++        }
+     }
+ 
+-  g_string_free(table, TRUE);
+-  g_string_free(query_string, TRUE);
++ out:
++
++  if (table != NULL)
++    g_string_free(table, TRUE);
++
++  if (insert_command != NULL)
++    g_string_free(insert_command, TRUE);
+ 
+   msg_set_context(NULL);
+ 
+-  if (!success)
+-    return afsql_dd_insert_fail_handler(self, msg, &path_options);
++  if (success)
++    {
++      log_msg_ack(msg, &path_options);
++      log_msg_unref(msg);
++      step_sequence_number(&self->seq_num);
++      self->failed_message_counter = 0;
++    }
++  else
++    {
++      if (self->failed_message_counter < self->num_retries - 1)
++        {
++          if (!afsql_dd_handle_insert_row_error_depending_on_connection_availability(self, msg, &path_options))
++            return FALSE;
+ 
+-  /* we only ACK if each INSERT is a separate transaction */
+-  if ((self->flags & AFSQL_DDF_EXPLICIT_COMMITS) == 0)
+-    log_msg_ack(msg, &path_options);
+-  log_msg_unref(msg);
+-  step_sequence_number(&self->seq_num);
+-  self->failed_message_counter = 0;
++          self->failed_message_counter++;
++        }
++      else
++        {
++          msg_error("Multiple failures while inserting this record into the database, message dropped",
++                    evt_tag_int("attempts", self->num_retries),
++                    NULL);
++          stats_counter_inc(self->dropped_messages);
++          log_msg_drop(msg, &path_options);
++          self->failed_message_counter = 0;
++          success = TRUE;
++        }
++    }
+ 
+-  return TRUE;
++  return success;
+ }
+ 
+ static void
+@@ -895,7 +978,7 @@ afsql_dd_message_became_available_in_the
+ static void
+ afsql_dd_wait_for_suspension_wakeup(AFSqlDestDriver *self)
+ {
+-  /* we got suspended, probably because of a connection error,  
++  /* we got suspended, probably because of a connection error,
+    * during this time we only get wakeups if we need to be
+    * terminated. */
+   if (!self->db_thread_terminate)
+@@ -974,8 +1057,7 @@ afsql_dd_database_thread(gpointer arg)
+ 
+       afsql_dd_commit_txn(self);
+     }
+-
+- exit:
++exit:
+   afsql_dd_disconnect(self);
+ 
+   msg_verbose("Database thread finished",
+-- 
+1.8.4.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/configure.ac-add-option-enable-thread-tls-to-manage-.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/configure.ac-add-option-enable-thread-tls-to-manage-.patch
new file mode 100644
index 0000000..cc8d110
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/configure.ac-add-option-enable-thread-tls-to-manage-.patch
@@ -0,0 +1,50 @@
+configure.ac: add option --enable-thread-tls to manage thread ssl support
+
+Add option --enable-thread-tls to manage the including of thread
+local storage, so we could explicitly disable it.
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ configure.ac | 17 +++++++++++------
+ 1 file changed, 11 insertions(+), 6 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 474e094..cedca54 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -120,6 +120,9 @@ AC_ARG_ENABLE(memtrace,
+ AC_ARG_ENABLE(ssl,
+               [  --enable-ssl        Enable SSL support.],,enable_ssl="auto")
+ 
++AC_ARG_ENABLE(thread-tls,
++              [  --enable-thread-tls        Enable Thread Transport Layer Security support.],,enable_thread_tls="no")
++
+ AC_ARG_ENABLE(dynamic-linking,
+               [  --enable-dynamic-linking        Link everything dynamically.],,enable_dynamic_linking="auto")
+ 
+@@ -381,12 +384,14 @@ dnl ***************************************************************************
+ dnl Is the __thread keyword available?
+ dnl ***************************************************************************
+ 
+-AC_LINK_IFELSE([AC_LANG_PROGRAM(
+-[[#include <pthread.h>
+-__thread int a;
+-]],
+-[a=0;])],
+-[ac_cv_have_tls=yes; AC_DEFINE_UNQUOTED(HAVE_THREAD_KEYWORD, 1, "Whether Transport Layer Security is supported by the system")])
++if test "x$enable_thread_tls" != "xno"; then
++    AC_LINK_IFELSE([AC_LANG_PROGRAM(
++    [[#include <pthread.h>
++    __thread int a;
++    ]],
++    [a=0;])],
++    [ac_cv_have_tls=yes; AC_DEFINE_UNQUOTED(HAVE_THREAD_KEYWORD, 1, "Whether Transport Layer Security is supported by the system")])
++fi
+ 
+ dnl ***************************************************************************
+ dnl How to do static linking?
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/configure.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/configure.patch
new file mode 100644
index 0000000..109f58c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/configure.patch
@@ -0,0 +1,23 @@
+Index: syslog-ng-3.5.4.1/configure.ac
+===================================================================
+--- syslog-ng-3.5.4.1.orig/configure.ac	2014-07-18 13:49:36.794141441 +0000
++++ syslog-ng-3.5.4.1/configure.ac	2014-07-18 14:23:57.738197606 +0000
+@@ -8,7 +8,8 @@ dnl SNAPSHOT_VERSION   - snapshot version to add to version number
+ dnl BINARY_BRANCH      - the value is added to all source/binary packages
+ dnl SOURCE_REVISION    - Revision of the source-tree, will added to the version string
+ dnl
+-AC_INIT(syslog-ng/main.c)
++AC_INIT(syslog-ng, 3.5.4.1)
++AC_CONFIG_SRCDIR(syslog-ng/main.c)
+ AC_CONFIG_MACRO_DIR([m4])
+ m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
+ 
+@@ -53,7 +54,7 @@ else
+         CURRDATE=`date +"%a, %d %b %Y %H:%M:%S %Z"`
+ fi
+ 
+-AM_INIT_AUTOMAKE($PACKAGE, $VERSION, [foreign no-define subdir-objects])
++AM_INIT_AUTOMAKE([foreign no-define subdir-objects])
+ _AM_PROG_TAR([ustar])
+ if test -n "$SNAPSHOT_VERSION"; then
+ 	VERSION=$VERSION+$SNAPSHOT_VERSION
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/dbifix.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/dbifix.patch
new file mode 100644
index 0000000..15dfb68
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/dbifix.patch
@@ -0,0 +1,20 @@
+Index: syslog-ng-3.5.4.1/configure.ac
+===================================================================
+--- syslog-ng-3.5.4.1.orig/configure.ac	2014-07-18 14:35:03.134215740 +0000
++++ syslog-ng-3.5.4.1/configure.ac	2014-07-18 15:31:52.510308653 +0000
+@@ -576,13 +576,14 @@
+ dnl ***************************************************************************
+ 
+ AC_CHECK_LIB(dl, dlsym, DL_LIBS="-ldl")
++if test "x$enable_sql" != "xno"; then
+ PKG_CHECK_MODULES(LIBDBI, dbi >= $LIBDBI_MIN_VERSION, libdbi_pkgconfig_not_found="0", libdbi_pkgconfig_not_found="1")
+ 
+ if test "$libdbi_pkgconfig_not_found" -eq 1; then
+ 	dnl if libdbi has no .pc file, try it without one
+ 	AC_CHECK_LIB(dbi, dbi_initialize, LIBDBI_LIBS="-ldbi"; LIBDBI_CFLAGS="-I/usr/include")
+ fi
+-
++fi
+ if test "x$enable_sql" = "xauto"; then
+ 	AC_MSG_CHECKING(whether to enable SQL support)
+ 	if test "x$LIBDBI_LIBS" != "x"; then
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/deinit-the-new-config-when-reverting-to-the.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/deinit-the-new-config-when-reverting-to-the.patch
new file mode 100644
index 0000000..484af7e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/deinit-the-new-config-when-reverting-to-the.patch
@@ -0,0 +1,36 @@
+From 86842df8bff5c97e44fc55d2fb7fc6c10f56ab84 Mon Sep 17 00:00:00 2001
+From: Gergely Nagy <algernon@balabit.hu>
+Date: Fri, 13 Dec 2013 13:46:15 +0100
+Subject: [PATCH] mainloop: Deinit the new config when reverting to the old one
+
+Upstream-Status: Backport
+
+When reloading, and the new config fails, deinit it before initializing
+the old config. This is so that conflicting things do not remain held by
+the half-initialized new config, while the old tries to take it
+over. (It also removed a couple of memory leaks, most likely.)
+
+The reason we can do this, is because cfg_tree_stop() (called by
+cfg_deinit()) goes over all the known nodes, and log_pipe_deinit() is
+also smart enough to not deinit a node that has not been inited before.
+
+Signed-off-by: Gergely Nagy <algernon@balabit.hu>
+---
+ lib/mainloop.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/lib/mainloop.c b/lib/mainloop.c
+index 34655fa..e6fbb59 100644
+--- a/lib/mainloop.c
++++ b/lib/mainloop.c
+@@ -510,6 +510,7 @@ main_loop_reload_config_apply(void)
+     {
+       msg_error("Error initializing new configuration, reverting to old config", NULL);
+       cfg_persist_config_move(main_loop_new_config, main_loop_old_config);
++      cfg_deinit(main_loop_new_config);
+       if (!cfg_init(main_loop_old_config))
+         {
+           /* hmm. hmmm, error reinitializing old configuration, we're hosed.
+-- 
+1.8.4.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/fix-a-memory-leak-in-log_driver_free.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/fix-a-memory-leak-in-log_driver_free.patch
new file mode 100644
index 0000000..2603474
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/fix-a-memory-leak-in-log_driver_free.patch
@@ -0,0 +1,33 @@
+From a269669ba3cb6d1c06a3322b4a6a035cb787d085 Mon Sep 17 00:00:00 2001
+From: Gergely Nagy <algernon@balabit.hu>
+Date: Tue, 14 Jan 2014 13:58:05 +0100
+Subject: [PATCH] driver: Fix a memory leak in log_driver_free()
+
+Upstream-Status: Backport
+
+After freeing up the members of self->plugins, free self->plugins itself
+too.
+
+Signed-off-by: Gergely Nagy <algernon@balabit.hu>
+---
+ lib/driver.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/lib/driver.c b/lib/driver.c
+index d77fe57..a6867b9 100644
+--- a/lib/driver.c
++++ b/lib/driver.c
+@@ -91,6 +91,10 @@ log_driver_free(LogPipe *s)
+     {
+       log_driver_plugin_free((LogDriverPlugin *) l->data);
+     }
++  if (self->plugins)
++    {
++      g_list_free(self->plugins);
++    }
+   if (self->group)
+     g_free(self->group);
+   if (self->id)
+-- 
+1.8.4.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/fix-config-libnet.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/fix-config-libnet.patch
new file mode 100644
index 0000000..755803c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/fix-config-libnet.patch
@@ -0,0 +1,66 @@
+Subject: [PATCH] add libnet enable option
+
+Upstream-Status: Pending
+
+This would avoid a implicit auto-detecting result.
+
+Signed-off-by: Ming Liu <ming.liu@windriver.com>
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+---
+ configure.ac |   27 +++++++++++++++++----------
+ 1 files changed, 17 insertions(+), 10 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index b1e18b4..8e13025 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -73,6 +73,9 @@ AC_CONFIG_HEADERS(config.h)
+ dnl ***************************************************************************
+ dnl Arguments
+ 
++AC_ARG_ENABLE(libnet, 
++              [  --enable-libnet      Enable libnet support.],, enable_libnet="no")
++
+ AC_ARG_WITH(libnet,
+    [  --with-libnet=path      use path to libnet-config script],
+    ,
+@@ -768,22 +771,26 @@ dnl ***************************************************************************
+ dnl libnet headers/libraries
+ dnl ***************************************************************************
+ AC_MSG_CHECKING(for LIBNET)
+-if test "x$with_libnet" = "x"; then
+-        LIBNET_CONFIG="`which libnet-config`"
+-else
+-        LIBNET_CONFIG="$with_libnet/libnet-config"
+-fi
++if test "x$enable_libnet" = xyes; then
++        if test "x$with_libnet" = "x"; then
++                LIBNET_CONFIG="`which libnet-config`"
++        else
++                LIBNET_CONFIG="$with_libnet/libnet-config"
++        fi
++ 
++        if test -n "$LIBNET_CONFIG" -a -x "$LIBNET_CONFIG"; then
++                LIBNET_CFLAGS="`$LIBNET_CONFIG --defines`"
++                LIBNET_LIBS="`$LIBNET_CONFIG --libs`"
++                AC_MSG_RESULT(yes)
++        else
++                AC_MSG_ERROR([Could not find libnet, and libnet support was explicitly enabled.])
++        fi
+ 
+-if test -n "$LIBNET_CONFIG" -a -x "$LIBNET_CONFIG"; then
+-        LIBNET_CFLAGS="`$LIBNET_CONFIG --defines`"
+-        LIBNET_LIBS="`$LIBNET_CONFIG --libs`"
+-        AC_MSG_RESULT(yes)
+ else
+         LIBNET_LIBS=
+         AC_MSG_RESULT(no)
+ fi
+ 
+-
+ if test "x$enable_spoof_source" = "xauto"; then
+ 	AC_MSG_CHECKING(whether to enable spoof source support)
+         if test "x$LIBNET_LIBS" != "x"; then
+-- 
+1.7.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/fix-invalid-ownership.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/fix-invalid-ownership.patch
new file mode 100644
index 0000000..faf9672
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/fix-invalid-ownership.patch
@@ -0,0 +1,28 @@
+syslog-ng: fix wrong ownership issue
+
+Upstream-Status: Pending
+
+The ownership of build user is preserved for some target files, fixed it by
+adding --no-same-owner option to tar when extracting files. 
+
+Signed-off-by: Ming Liu <ming.liu@windriver.com>
+---
+ scl/Makefile.am |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/scl/Makefile.am b/scl/Makefile.am
+index 57fad5d..2a29ca5 100644
+--- a/scl/Makefile.am
++++ b/scl/Makefile.am
+@@ -14,7 +14,7 @@ scl-install-data-local:
+ 		fi; \
+ 	done
+ 	$(mkinstalldirs) $(DESTDIR)/$(scldir)
+-	(cd $(srcdir)/scl; tar cf - $(SCL_SUBDIRS)) | (cd $(DESTDIR)/$(scldir) && tar xf -)
++	(cd $(srcdir)/scl; tar cf - $(SCL_SUBDIRS)) | (cd $(DESTDIR)/$(scldir) && tar xf - --no-same-owner)
+ 	chmod -R u+rwX $(DESTDIR)/$(scldir)
+ 
+ scl-uninstall-local:
+-- 
+1.7.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/free-global-LogTemplateOptions.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/free-global-LogTemplateOptions.patch
new file mode 100644
index 0000000..d439a26
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/free-global-LogTemplateOptions.patch
@@ -0,0 +1,30 @@
+From 3ef6ca8044260c77118edca6dead807a2edcb5ef Mon Sep 17 00:00:00 2001
+From: Balazs Scheidler <bazsi@balabit.hu>
+Date: Thu, 31 Oct 2013 13:20:12 +0100
+Subject: [PATCH] cfg: free global LogTemplateOptions
+
+Upstream-Status: Backport
+
+This fixes a potential memory leak when global template specific
+options were specified, such as local-time-zone(), send-time-zone() etc.
+
+Signed-off-by: Balazs Scheidler <bazsi@balabit.hu>
+---
+ lib/cfg.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/lib/cfg.c b/lib/cfg.c
+index 7f040b8..adeaaf8 100644
+--- a/lib/cfg.c
++++ b/lib/cfg.c
+@@ -411,6 +411,7 @@ cfg_free(GlobalConfig *self)
+   g_free(self->proto_template_name);  
+   log_template_unref(self->file_template);
+   log_template_unref(self->proto_template);
++  log_template_options_destroy(&self->template_options);
+ 
+   if (self->bad_hostname_compiled)
+     regfree(&self->bad_hostname);
+-- 
+1.8.4.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/initscript b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/initscript
new file mode 100644
index 0000000..910030f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/initscript
@@ -0,0 +1,62 @@
+#! /bin/sh
+#
+# This is an init script for openembedded
+# Copy it to /etc/init.d/syslog-ng and type
+# > update-rc.d syslog-ng defaults 5
+#
+
+# Source function library
+. /etc/init.d/functions
+
+syslog_ng=/usr/sbin/syslog-ng
+test -x "$syslog_ng" || exit 0
+
+PIDFILE=/var/run/syslog-ng/syslog-ng.pid
+
+create_xconsole() {
+  test -e /dev/xconsole || mknod -m 640 /dev/xconsole p
+  test -x /sbin/restorecon && /sbin/restorecon /dev/xconsole
+}
+
+RETVAL=0
+
+case "$1" in
+  start)
+    [ "${VERBOSE}" != "no" ] && echo -n "Starting syslog-ng:"
+    create_xconsole
+    start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $syslog_ng
+    [ "${VERBOSE}" != "no" ] && echo "."
+    ;;
+  stop)
+    [ "${VERBOSE}" != "no" ] && echo -n "Stopping syslog-ng:"
+    start-stop-daemon --stop --quiet --pidfile $PIDFILE
+    [ "${VERBOSE}" != "no" ] && echo "."
+    ;;
+  reload|force-reload)
+    start-stop-daemon --stop --quiet --signal 1 --exec $syslog_ng
+    ;;
+  restart)
+    echo "Stopping syslog-ng:"
+    start-stop-daemon --stop --quiet --pidfile $PIDFILE
+    echo -n "Waiting for syslog-ng to die off"
+    for i in 1 2 3 ;
+    do
+        sleep 1
+        echo -n "."
+    done
+    echo ""
+    echo -n "Starting syslog-ng:"
+    create_xconsole
+    start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $syslog_ng
+    echo "."
+    ;;
+  status)
+    status $syslog_ng
+    RETVAL=$?
+    ;;
+  *)
+    echo "Usage: $0 {start|stop|reload|restart|force-reload|status}"
+    exit 1
+esac
+
+exit $RETVAL
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/logwriter-dont-allocate-a-new-buffer.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/logwriter-dont-allocate-a-new-buffer.patch
new file mode 100644
index 0000000..9e3d64b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/logwriter-dont-allocate-a-new-buffer.patch
@@ -0,0 +1,26 @@
+logwriter: Don't allocate a new buffer if fails to consume current item
+
+Upstream-Status: Pending
+
+Signed-off-by: Xufeng Zhang <xufeng.zhang@windriver.com>
+---
+--- a/lib/logwriter.c
++++ b/lib/logwriter.c
+@@ -1010,7 +1010,7 @@
+         {
+           status = log_proto_client_post(proto, (guchar *) self->line_buffer->str, self->line_buffer->len, &consumed);
+ 
+-          if (consumed)
++          if (consumed && status != LPS_ERROR)
+             log_writer_realloc_line_buffer(self);
+ 
+           if (status == LPS_ERROR)
+@@ -1028,7 +1028,7 @@
+                     NULL);
+           consumed = TRUE;
+         }
+-      if (consumed)
++      if (consumed && status != LPS_ERROR)
+         {
+           if (lm->flags & LF_LOCAL)
+             step_sequence_number(&self->seq_num);
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/rewrite-expr-grammar.ym-Free-up-token.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/rewrite-expr-grammar.ym-Free-up-token.patch
new file mode 100644
index 0000000..1951af9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/rewrite-expr-grammar.ym-Free-up-token.patch
@@ -0,0 +1,17 @@
+rewrite-expr-grammar.ym: Free up token.
+
+Upsteam-Status: Backport
+
+Reported-by: Xufeng Zhang <xufeng.zhang@windriver.com>
+Signed-off-by: Viktor Tusa <tusavik@gmail.com>
+---
+--- a/lib/rewrite/rewrite-expr-grammar.ym
++++ b/lib/rewrite/rewrite-expr-grammar.ym
+@@ -78,6 +78,7 @@
+ 
+ 	    $$ = log_template_new(configuration, $1);
+ 	    CHECK_ERROR(log_template_compile($$, $1, &error), @1, "Error compiling template (%s)", error->message);
++            free($1);
+ 	  }
+ 	;
+ 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/still-free-the-unconsumed-item.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/still-free-the-unconsumed-item.patch
new file mode 100644
index 0000000..ea18682
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/still-free-the-unconsumed-item.patch
@@ -0,0 +1,90 @@
+From 365020c5c0823c91a8011e34597f970a7cfb4fb3 Mon Sep 17 00:00:00 2001
+From: Tusa Viktor <tusavik@gmail.com>
+Date: Wed, 23 Apr 2014 17:10:58 +0000
+Subject: [PATCH] logwriter: still free the unconsumed item during reloading
+ configuration
+
+Upstream-Status: Backport
+
+Otherwise we have no chance to free this stuff.
+
+Reported-by: Xufeng Zhang <xufeng.zhang@windriver.com>
+Signed-off-by: Tusa Viktor <tusavik@gmail.com>
+Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
+---
+ lib/logproto/logproto-client.h      |    2 +-
+ lib/logproto/logproto-text-client.c |   11 +++++++++++
+ lib/logwriter.c                     |    9 +++++++--
+ 3 files changed, 19 insertions(+), 3 deletions(-)
+
+diff --git a/lib/logproto/logproto-client.h b/lib/logproto/logproto-client.h
+index 254ecf9..5adc917 100644
+--- a/lib/logproto/logproto-client.h
++++ b/lib/logproto/logproto-client.h
+@@ -47,7 +47,6 @@ void log_proto_client_options_defaults(LogProtoClientOptions *options);
+ void log_proto_client_options_init(LogProtoClientOptions *options, GlobalConfig *cfg);
+ void log_proto_client_options_destroy(LogProtoClientOptions *options);
+ 
+-
+ struct _LogProtoClient
+ {
+   LogProtoStatus status;
+@@ -107,6 +106,7 @@ log_proto_client_reset_error(LogProtoClient *s)
+ gboolean log_proto_client_validate_options(LogProtoClient *self);
+ void log_proto_client_init(LogProtoClient *s, LogTransport *transport, const LogProtoClientOptions *options);
+ void log_proto_client_free(LogProtoClient *s);
++void log_proto_client_free_method(LogProtoClient *s);
+ 
+ #define DEFINE_LOG_PROTO_CLIENT(prefix) \
+   static gpointer                                                       \
+diff --git a/lib/logproto/logproto-text-client.c b/lib/logproto/logproto-text-client.c
+index 3248759..a5100f3 100644
+--- a/lib/logproto/logproto-text-client.c
++++ b/lib/logproto/logproto-text-client.c
+@@ -146,12 +146,23 @@ log_proto_text_client_post(LogProtoClient *s, guchar *msg, gsize msg_len, gboole
+ }
+ 
+ void
++log_proto_text_client_free(LogProtoClient *s)
++{
++  LogProtoTextClient *self = (LogProtoTextClient *)s;
++  if (self->partial_free)
++    self->partial_free(self->partial);
++  self->partial = NULL;
++  log_proto_client_free_method(s);
++};
++
++void
+ log_proto_text_client_init(LogProtoTextClient *self, LogTransport *transport, const LogProtoClientOptions *options)
+ {
+   log_proto_client_init(&self->super, transport, options);
+   self->super.prepare = log_proto_text_client_prepare;
+   self->super.flush = log_proto_text_client_flush;
+   self->super.post = log_proto_text_client_post;
++  self->super.free_fn = log_proto_text_client_free;
+   self->super.transport = transport;
+   self->next_state = -1;
+ }
+diff --git a/lib/logwriter.c b/lib/logwriter.c
+index 3292e31..470bcdb 100644
+--- a/lib/logwriter.c
++++ b/lib/logwriter.c
+@@ -1063,8 +1063,13 @@ log_writer_flush(LogWriter *self, LogWriterFlushMode flush_mode)
+         }
+       else
+         {
+-          /* push back to the queue */
+-          log_queue_push_head(self->queue, lm, &path_options);
++          if (flush_mode == LW_FLUSH_QUEUE)
++            log_msg_unref(lm);
++          else
++            {
++              /* push back to the queue */
++              log_queue_push_head(self->queue, lm, &path_options);
++            }
+           msg_set_context(NULL);
+           log_msg_refcache_stop();
+           break;
+-- 
+1.7.10.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng-verify-the-list-before-del.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng-verify-the-list-before-del.patch
new file mode 100644
index 0000000..e8119b8
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng-verify-the-list-before-del.patch
@@ -0,0 +1,38 @@
+Verify the validity of the pointer before delete it
+
+Otherwise, we got a crash at logqueue-fifo.c:344
+  344 iv_list_del(&node->list);
+
+Upstream-Status: Pending
+
+Signed-off-by: Xufeng Zhang <xufeng.zhang@windriver.com>
+---
+--- a/lib/logqueue-fifo.c
++++ b/lib/logqueue-fifo.c
+@@ -339,15 +339,18 @@
+       *msg = node->msg;
+       path_options->ack_needed = node->ack_needed;
+       self->qoverflow_output_len--;
+-      if (!push_to_backlog)
++      if ((&node->list) && (&node->list)->next && (&node->list)->prev)
+         {
+-          iv_list_del(&node->list);
+-          log_msg_free_queue_node(node);
+-        }
+-      else
+-        {
+-          iv_list_del_init(&node->list);
+-        }
++          if (!push_to_backlog)
++            {
++              iv_list_del(&node->list);
++              log_msg_free_queue_node(node);
++            }
++          else
++            {
++              iv_list_del_init(&node->list);
++            }
++        }
+     }
+   else
+     {
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf
new file mode 100644
index 0000000..f0da2b7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf
@@ -0,0 +1,155 @@
+@version: 3.5
+#
+# Syslog-ng configuration file, compatible with default Debian syslogd
+# installation. Originally written by anonymous (I can't find his name)
+# Revised, and rewrited by me (SZALAY Attila <sasa@debian.org>)
+
+# First, set some global options.
+options { chain_hostnames(off); flush_lines(0); use_dns(no); use_fqdn(no);
+	  owner("root"); group("adm"); perm(0640); stats_freq(0);
+	  bad_hostname("^gconfd$");
+};
+
+########################
+# Sources
+########################
+# This is the default behavior of sysklogd package
+# Logs may come from unix stream, but not from another machine.
+#
+source s_src { unix-dgram("/dev/log"); internal();
+       	     file("/proc/kmsg" program_override("kernel"));
+};
+
+# If you wish to get logs from remote machine you should uncomment
+# this and comment the above source line.
+#
+#source s_net { tcp(ip(127.0.0.1) port(1000) authentication(required) encrypt(allow)); };
+
+########################
+# Destinations
+########################
+# First some standard logfile
+#
+destination d_auth { file("/var/log/auth.log"); };
+destination d_cron { file("/var/log/cron.log"); };
+destination d_daemon { file("/var/log/daemon.log"); };
+destination d_kern { file("/var/log/kern.log"); };
+destination d_lpr { file("/var/log/lpr.log"); };
+destination d_mail { file("/var/log/mail.log"); };
+destination d_syslog { file("/var/log/syslog"); };
+destination d_user { file("/var/log/user.log"); };
+destination d_uucp { file("/var/log/uucp.log"); };
+
+# This files are the log come from the mail subsystem.
+#
+destination d_mailinfo { file("/var/log/mail/mail.info"); };
+destination d_mailwarn { file("/var/log/mail/mail.warn"); };
+destination d_mailerr { file("/var/log/mail/mail.err"); };
+
+# Logging for INN news system
+#
+destination d_newscrit { file("/var/log/news/news.crit"); };
+destination d_newserr { file("/var/log/news/news.err"); };
+destination d_newsnotice { file("/var/log/news/news.notice"); };
+
+# Some `catch-all' logfiles.
+#
+destination d_debug { file("/var/log/debug"); };
+destination d_error { file("/var/log/error"); };
+destination d_messages { file("/var/log/messages"); };
+
+# The root's console.
+#
+destination d_console { usertty("root"); };
+
+# Virtual console.
+#
+destination d_console_all { file("/dev/tty10"); };
+
+# The named pipe /dev/xconsole is for the nsole' utility.  To use it,
+# you must invoke nsole' with the -file' option:
+#
+#    $ xconsole -file /dev/xconsole [...]
+#
+destination d_xconsole { pipe("/dev/xconsole"); };
+
+# Send the messages to an other host
+#
+#destination d_net { tcp("127.0.0.1" port(1000) authentication(on) encrypt(on) log_fifo_size(1000)); };
+
+# Debian only
+destination d_ppp { file("/var/log/ppp.log"); };
+
+########################
+# Filters
+########################
+# Here's come the filter options. With this rules, we can set which
+# message go where.
+
+filter f_dbg { level(debug); };
+filter f_info { level(info); };
+filter f_notice { level(notice); };
+filter f_warn { level(warn); };
+filter f_err { level(err); };
+filter f_crit { level(crit .. emerg); };
+
+filter f_debug { level(debug) and not facility(auth, authpriv, news, mail); };
+filter f_error { level(err .. emerg) ; };
+filter f_messages { level(info,notice,warn) and
+                    not facility(auth,authpriv,cron,daemon,mail,news); };
+
+filter f_auth { facility(auth, authpriv) and not filter(f_debug); };
+filter f_cron { facility(cron) and not filter(f_debug); };
+filter f_daemon { facility(daemon) and not filter(f_debug); };
+filter f_kern { facility(kern) and not filter(f_debug); };
+filter f_lpr { facility(lpr) and not filter(f_debug); };
+filter f_local { facility(local0, local1, local3, local4, local5,
+                        local6, local7) and not filter(f_debug); };
+filter f_mail { facility(mail) and not filter(f_debug); };
+filter f_news { facility(news) and not filter(f_debug); };
+filter f_syslog3 { not facility(auth, authpriv, mail) and not filter(f_debug); };
+filter f_user { facility(user) and not filter(f_debug); };
+filter f_uucp { facility(uucp) and not filter(f_debug); };
+
+filter f_cnews { level(notice, err, crit) and facility(news); };
+filter f_cother { level(debug, info, notice, warn) or facility(daemon, mail); };
+
+filter f_ppp { facility(local2) and not filter(f_debug); };
+filter f_console { level(warn .. emerg); };
+
+########################
+# Log paths
+########################
+log { source(s_src); filter(f_auth); destination(d_auth); };
+log { source(s_src); filter(f_cron); destination(d_cron); };
+log { source(s_src); filter(f_daemon); destination(d_daemon); };
+log { source(s_src); filter(f_kern); destination(d_kern); };
+log { source(s_src); filter(f_lpr); destination(d_lpr); };
+log { source(s_src); filter(f_syslog3); destination(d_syslog); };
+log { source(s_src); filter(f_user); destination(d_user); };
+log { source(s_src); filter(f_uucp); destination(d_uucp); };
+
+log { source(s_src); filter(f_mail); destination(d_mail); };
+#log { source(s_src); filter(f_mail); filter(f_info); destination(d_mailinfo); };
+#log { source(s_src); filter(f_mail); filter(f_warn); destination(d_mailwarn); };
+#log { source(s_src); filter(f_mail); filter(f_err); destination(d_mailerr); };
+
+log { source(s_src); filter(f_news); filter(f_crit); destination(d_newscrit); };
+log { source(s_src); filter(f_news); filter(f_err); destination(d_newserr); };
+log { source(s_src); filter(f_news); filter(f_notice); destination(d_newsnotice); };
+#log { source(s_src); filter(f_cnews); destination(d_console_all); };
+#log { source(s_src); filter(f_cother); destination(d_console_all); };
+
+#log { source(s_src); filter(f_ppp); destination(d_ppp); };
+
+log { source(s_src); filter(f_debug); destination(d_debug); };
+log { source(s_src); filter(f_error); destination(d_error); };
+log { source(s_src); filter(f_messages); destination(d_messages); };
+
+log { source(s_src); filter(f_console); destination(d_console_all);
+				    destination(d_xconsole); };
+log { source(s_src); filter(f_crit); destination(d_console); };
+
+# All messages send to a remote site
+#
+#log { source(s_src); destination(d_net); };
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch
new file mode 100644
index 0000000..f53c607
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch
@@ -0,0 +1,32 @@
+From 0be9c08dd3f825e92fa02d4a08d8aff743109e61 Mon Sep 17 00:00:00 2001
+From: Li xin <lixin.fnst@cn.fujitsu.com>
+Date: Wed, 17 Jun 2015 14:46:30 +0900
+Subject: [PATCH] syslog-ng.service: the syslog-ng service can not start
+ successfully,so modify it.
+
+Upstream-Status: pending
+
+Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
+---
+ contrib/systemd/syslog-ng.service | 5 ++---
+ 1 file changed, 2 insertion(+), 3 deletions(-)
+
+diff --git a/contrib/systemd/syslog-ng.service b/contrib/systemd/syslog-ng.service
+index fc16f8d..8e09deb 100644
+--- a/contrib/systemd/syslog-ng.service
++++ b/contrib/systemd/syslog-ng.service
+@@ -3,9 +3,8 @@ Description=System Logger Daemon
+ Documentation=man:syslog-ng(8)
+ 
+ [Service]
+-Type=notify
+-ExecStart=/usr/sbin/syslog-ng -F
+-ExecReload=/bin/kill -HUP $MAINPID
++ExecStart=@SBINDIR@/syslog-ng -F -p @LOCALSTATEDIR@/run/syslogd.pid
++ExecReload=@BASEBINDIR@/kill -HUP $MAINPID
+ StandardOutput=journal
+ StandardError=journal
+ Restart=on-failure
+-- 
+1.8.4.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/volatiles.03_syslog-ng b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/volatiles.03_syslog-ng
new file mode 100644
index 0000000..3c4a50d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/files/volatiles.03_syslog-ng
@@ -0,0 +1 @@
+d root root 0755 /var/run/syslog-ng none
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc
new file mode 100644
index 0000000..4e0f697
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng.inc
@@ -0,0 +1,118 @@
+SUMMARY = "Alternative system logger daemon"
+DESCRIPTION = "syslog-ng, as the name shows, is a syslogd replacement, \
+but with new functionality for the new generation. The original syslogd \
+allows messages only to be sorted based on priority/facility pairs; \
+syslog-ng adds the possibility to filter based on message contents using \
+regular expressions. The new configuration scheme is intuitive and powerful. \
+Forwarding logs over TCP and remembering all forwarding hops makes it \
+ideal for firewalled environments. \
+"
+HOMEPAGE = "http://www.balabit.com/network-security/syslog-ng/opensource-logging-system"
+
+LICENSE = "GPLv2 & LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e0e8658d9be248f01b7933df24dc1408"
+
+# util-linux added to get libuuid
+DEPENDS = "libpcre flex eventlog glib-2.0 util-linux"
+
+SRC_URI = "http://www.balabit.com/downloads/files/syslog-ng/sources/${PV}/source/${BPN}_${PV}.tar.gz \
+           file://syslog-ng.conf \
+           file://initscript \
+           file://volatiles.03_syslog-ng \
+           file://configure.ac-add-option-enable-thread-tls-to-manage-.patch \
+"
+
+inherit autotools systemd pkgconfig update-alternatives update-rc.d
+
+EXTRA_OECONF = " \
+    --enable-dynamic-linking \
+    --disable-sub-streams \
+    --disable-pacct \
+    --localstatedir=${localstatedir}/lib/${BPN} \
+    --sysconfdir=${sysconfdir}/${BPN} \
+    --with-module-dir=${libdir}/${BPN} \
+    --with-sysroot=${STAGING_DIR_HOST} \
+    --with-libmongo-client=no --disable-mongodb \
+    --with-librabbitmq-client=no \
+    ${CONFIG_TLS} \
+"
+
+CONFIG_TLS = "--enable-thread-tls"
+CONFIG_TLS_arm = "${@base_conditional( "DEBUG_BUILD", "1", " --disable-thread-tls", " --enable-thread-tls", d )}"
+
+PACKAGECONFIG ??= "openssl \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \
+"
+PACKAGECONFIG[openssl] = "--enable-ssl,--disable-ssl,openssl,"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,,"
+PACKAGECONFIG[systemd] = "--enable-systemd --with-systemdsystemunitdir=${systemd_unitdir}/system/,--disable-systemd --without-systemdsystemunitdir,systemd,"
+PACKAGECONFIG[linux-caps] = "--enable-linux-caps,--disable-linux-caps,libcap,"
+PACKAGECONFIG[pcre] = "--enable-pcre,--disable-pcre,libpcre,"
+PACKAGECONFIG[dbi] = "--enable-sql,--disable-sql,libdbi,"
+PACKAGECONFIG[libnet] = "--enable-libnet --with-libnet=${STAGING_BINDIR_CROSS},--disable-libnet,libnet,"
+PACKAGECONFIG[smtp] = "--enable-smtp --with-libesmtp=${STAGING_LIBDIR},--disable-smtp,libesmtp,"
+PACKAGECONFIG[json] = "--enable-json,--disable-json,json-c,"
+PACKAGECONFIG[tcp-wrapper] = "--enable-tcp-wrapper,--disable-tcp-wrapper,tcp-wrappers,"
+PACKAGECONFIG[geoip] = "--enable-geoip,--disable-geoip,geoip,"
+
+do_configure_prepend() {
+    eval "${@bb.utils.contains('DISTRO_FEATURES', 'largefile', '', 'sed -i -e "s/-D_LARGEFILE_SOURCE//" -e "s/-D_FILE_OFFSET_BITS=64//" ${S}/configure.in', d)}"
+}
+
+do_install_append() {
+    install -d ${D}/${sysconfdir}/${BPN}
+    install ${WORKDIR}/syslog-ng.conf ${D}${sysconfdir}/${BPN}/${BPN}.conf
+    install -d ${D}/${sysconfdir}/init.d
+    install -m 755 ${WORKDIR}/initscript ${D}/${sysconfdir}/init.d/syslog.${BPN}
+    install -d ${D}/${sysconfdir}/default/volatiles/
+    install -m 755 ${WORKDIR}/volatiles.03_syslog-ng ${D}/${sysconfdir}/default/volatiles/03_syslog-ng
+    install -d ${D}/${localstatedir}/lib/${BPN}
+    # Remove /var/run as it is created on startup
+    rm -rf ${D}${localstatedir}/run
+    sed -i -e 's,@SBINDIR@,${sbindir},g' ${S}/contrib/systemd/*.service
+    sed -i -e 's,@LOCALSTATEDIR@,${localstatedir},g' ${S}/contrib/systemd/*.service
+    sed -i -e 's,@BASEBINDIR@,${base_bindir},g' ${S}/contrib/systemd/*.service
+}
+
+FILES_${PN} += "${datadir}/include/scl/ ${datadir}/xsd ${datadir}/tools"
+RDEPENDS_${PN} += "gawk"
+
+# This overcomes the syslog-ng rdepends on syslog-ng-dev QA Error
+PACKAGES =+ "${PN}-libs ${PN}-libs-dev ${PN}-libs-dbg"
+FILES_${PN}-libs = "${libdir}/${BPN}/*.so ${libdir}/libsyslog-ng-*.so*"
+FILES_${PN}-libs-dev = "${libdir}/${BPN}/lib*.la"
+FILES_${PN}-libs-dbg = "${libdir}/${BPN}/.debug"
+FILES_${PN}-staticdev = "${libdir}/${BPN}/libtest/*.a"
+INSANE_SKIP_${PN}-libs = "dev-so"
+RDEPENDS_${PN} += "${PN}-libs"
+
+CONFFILES_${PN} = "${sysconfdir}/${BPN}.conf ${sysconfdir}/scl.conf"
+
+# syslog initscript is handled explicitly because order of
+# update-rc.d and update-alternatives is important
+RDEPENDS_${PN} += " ${@base_conditional("ONLINE_PACKAGE_MANAGEMENT", "none", "", "update-rc.d", d)}"
+
+RPROVIDES_${PN} += "${PN}-systemd"
+RREPLACES_${PN} += "${PN}-systemd"
+RCONFLICTS_${PN} += "${PN}-systemd"
+SYSTEMD_SERVICE_${PN} = "${BPN}.service"
+
+# no syslog-init for systemd
+python () {
+    if bb.utils.contains('DISTRO_FEATURES', 'sysvinit', True, False, d):
+        pn = d.getVar('PN', True)
+        sysconfdir = d.getVar('sysconfdir', True)
+        d.appendVar('ALTERNATIVE_%s' % (pn), ' syslog-init')
+        d.setVarFlag('ALTERNATIVE_PRIORITY', 'syslog-init', '200')
+        d.setVarFlag('ALTERNATIVE_LINK_NAME', 'syslog-init', '%s/init.d/syslog' % (sysconfdir))
+
+    if bb.utils.contains('DISTRO_FEATURES', 'systemd', True, False, d):
+        pn = d.getVar('PN', True)
+        d.appendVar('ALTERNATIVE_%s' % (pn), ' syslog-service')
+        d.setVarFlag('ALTERNATIVE_LINK_NAME', 'syslog-service', '%s/systemd/system/syslog.service' % (d.getVar('sysconfdir', True)))
+        d.setVarFlag('ALTERNATIVE_TARGET', 'syslog-service', '%s/system/${BPN}.service' % (d.getVar('systemd_unitdir', True)))
+}
+
+INITSCRIPT_NAME = "syslog"
+INITSCRIPT_PARAMS = "start 20 2 3 4 5 . stop 90 0 1 6 ."
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_3.6.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_3.6.4.bb
new file mode 100644
index 0000000..73609af
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_3.6.4.bb
@@ -0,0 +1,15 @@
+require syslog-ng.inc
+
+SRC_URI += " \
+    file://fix-a-memory-leak-in-log_driver_free.patch \
+    file://fix-config-libnet.patch \
+    file://fix-invalid-ownership.patch \
+    file://Fix-the-memory-leak-problem-for-mutex.patch \
+    file://Fix-the-memory-leak-problem-when-HAVE_ENVIRON-defined.patch \
+    file://configure.patch \
+    file://dbifix.patch \
+    file://syslog-ng.service-the-syslog-ng-service.patch \
+"
+
+SRC_URI[md5sum] = "e9f401615e92e5eb27396c995c1446ba"
+SRC_URI[sha256sum] = "7be11df31ac7d716f1f952e22b5ae8e2049edd633a41b223776a853d9106f4e7"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/system-config-keyboard/system-config-keyboard_1.4.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/system-config-keyboard/system-config-keyboard_1.4.0.bb
new file mode 100644
index 0000000..078fcea
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/system-config-keyboard/system-config-keyboard_1.4.0.bb
@@ -0,0 +1,29 @@
+DESCRIPTION = "a graphical user interface that allows the user to \
+change the default keyboard of the system"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+SRC_URI = "https://fedorahosted.org/releases/s/y/${BPN}/${BP}.tar.bz2"
+SRC_URI[md5sum] = "c267db0ee7a2131ba418399dc17f9e72"
+SRC_URI[sha256sum] = "218c883e4e2bfcc82bfe07e785707b5c2ece28df772f2155fd044b9bb1614284"
+inherit python-dir
+
+inherit python-dir gettext
+DEPENDS = "intltool-native"
+
+EXTRA_OEMAKE = " \
+    PYTHON='${STAGING_BINDIR_NATIVE}'/python-native/python \
+    PYTHON_SITELIB=${PYTHON_SITEPACKAGES_DIR} \
+"
+do_install() {
+    oe_runmake 'DESTDIR=${D}' install
+}
+
+do_install_append_class-native() {
+    rm -rf ${D}/usr
+}
+
+FILES_${PN} += " \
+   ${libdir}/python${PYTHON_BASEVERSION}/* \
+   ${datadir}/* \
+"
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/system-setup-keyboard/system-setup-keyboard_0.8.8.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/system-setup-keyboard/system-setup-keyboard_0.8.8.bb
new file mode 100644
index 0000000..fbbfa3d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/system-setup-keyboard/system-setup-keyboard_0.8.8.bb
@@ -0,0 +1,31 @@
+SUMMARY = "xorg.conf keyboard layout callout"
+DESCRIPTION = "system-setup-keyboard is a daemon to monitor the keyboard layout configured in \
+/etc/sysconfig/keyboard and transfer this into the matching xorg.conf.d snippet."
+
+HOMEPAGE = "https://git.fedorahosted.org/git/system-setup-keyboard.git"
+SECTION = "Applications/System"
+
+SRC_URI = "https://git.fedorahosted.org/cgit/${PN}.git/snapshot/${BP}.tar.gz"
+SRC_URI[md5sum] = "399003968ccc739cddd9cc370af377a0"
+SRC_URI[sha256sum] = "1ef6ef79c3588e85d7f42e99eb80a2e459f966284cf029c2d6fc1b645abcb860"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=bf57969a59612c5aca007b340c49d3a2"
+
+inherit pythonnative
+
+DEPENDS = "glib-2.0 system-config-keyboard-native"
+
+EXTRA_OEMAKE = "-e MAKEFLAGS="
+
+do_compile_prepend() {
+    ${PYTHON} -v get_layouts.py > keyboards.h
+}
+
+do_install() {
+    oe_runmake install DESTDIR=${D}
+    install -d ${D}/etc/X11/xorg.conf.d
+    touch ${D}/etc/X11/xorg.conf.d/00-system-setup-keyboard.conf
+}
+
+FILES_${PN} += "${systemd_unitdir}/system/${BPN}.service"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/tbb/tbb/allow-to-build-for-older-arm-cores.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/tbb/tbb/allow-to-build-for-older-arm-cores.patch
new file mode 100644
index 0000000..cd2ec94
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/tbb/tbb/allow-to-build-for-older-arm-cores.patch
@@ -0,0 +1,30 @@
+From: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
+Description: Allow to build TBB for ARM cores older than ARMv7a
+
+| ../../include/tbb/machine/gcc_armv7.h:39:2: error: #error Threading
+Building Blocks ARM port requires an ARMv7-a architecture.
+| make[1]: *** [concurrent_hash_map.o] Error 1
+
+https://bugs.launchpad.net/linaro-oe/+bug/1167144
+
+Upstream-status: pending
+
+---
+ include/tbb/tbb_machine.h |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- tbb41_20130314oss.orig/include/tbb/tbb_machine.h
++++ tbb41_20130314oss/include/tbb/tbb_machine.h
+@@ -237,11 +237,11 @@ template<> struct atomic_selector<8> {
+         #include "machine/linux_intel64.h"
+     #elif __ia64__
+         #include "machine/linux_ia64.h"
+     #elif __powerpc__
+         #include "machine/mac_ppc.h"
+-    #elif __arm__
++    #elif __ARM_ARCH_7A__
+         #include "machine/gcc_armv7.h"
+     #elif __TBB_GCC_BUILTIN_ATOMICS_PRESENT
+         #include "machine/gcc_generic.h"
+     #endif
+     #include "machine/linux_common.h"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/tbb/tbb/cross-compile.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/tbb/tbb/cross-compile.patch
new file mode 100644
index 0000000..b970a37
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/tbb/tbb/cross-compile.patch
@@ -0,0 +1,25 @@
+Author: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
+
+Upstream-Status: unsuitable
+---
+ build/linux.gcc.inc |    5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+--- tbb41_20121003oss.orig/build/linux.gcc.inc
++++ tbb41_20121003oss/build/linux.gcc.inc
+@@ -40,12 +40,13 @@ DYLIB_KEY = -shared
+ EXPORT_KEY = -Wl,--version-script,
+ LIBDL = -ldl
+ 
+ TBB_NOSTRICT = 1
+ 
+-CPLUS = g++
+-CONLY = gcc
++CPLUS = $(CXX)
++CONLY = $(CC)
++CPLUS_FLAGS = $(CXXFLAGS)
+ LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY)
+ LIBS += -lpthread -lrt
+ LINK_FLAGS = -Wl,-rpath-link=.
+ C_FLAGS = $(CPLUS_FLAGS)
+ # gcc 4.4 and higher support -std=c++0x
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/tbb/tbb/tbb.pc b/import-layers/meta-openembedded/meta-oe/recipes-support/tbb/tbb/tbb.pc
new file mode 100644
index 0000000..644b64f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/tbb/tbb/tbb.pc
@@ -0,0 +1,11 @@
+prefix=/usr
+exec_prefix=${prefix}
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include
+
+Name: Threading Building Blocks
+Description: Intel's parallelism library for C++
+URL: http://www.threadingbuildingblocks.org/
+Version: 3.0+r018
+Libs: -L${libdir} -ltbb
+Cflags: -I${includedir} 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/tbb/tbb_4.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/tbb/tbb_4.1.bb
new file mode 100644
index 0000000..09ed6ec
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/tbb/tbb_4.1.bb
@@ -0,0 +1,40 @@
+DESCRIPTION = "Parallelism library for C++ - runtime files \
+    TBB is a library that helps you leverage multi-core processor \
+    performance without having to be a threading expert. It represents a \
+    higher-level, task-based parallelism that abstracts platform details \
+    and threading mechanism for performance and scalability."
+HOMEPAGE = "http://threadingbuildingblocks.org/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2c7f2caf277a3933e3acdf7f89d54cc1"
+PRDATE = "20130314"
+PR = "r${PRDATE}"
+
+SRC_URI = "http://threadingbuildingblocks.org/sites/default/files/software_releases/source/tbb41_${PRDATE}oss_src.tgz \
+           file://cross-compile.patch \
+           file://allow-to-build-for-older-arm-cores.patch \
+           file://tbb.pc"
+
+S = "${WORKDIR}/tbb41_${PRDATE}oss/"
+
+SRC_URI[md5sum] = "ed4af7ccfa122f16cf9920b241633a3a"
+SRC_URI[sha256sum] = "32fd5979971b772caa96d40646cee585ed0070516ba2dbbcb1f9b6033d08a92d"
+
+do_compile() {
+    oe_runmake compiler=gcc arch=${HOST_ARCH} runtime=cc4
+}
+
+do_install() {
+    install -d ${D}${includedir} ${D}${libdir}/pkgconfig
+    rm ${S}/include/tbb/index.html -f
+    cp -R --no-dereference --preserve=mode,links -v ${S}/include/tbb ${D}${includedir}
+    install -m 0755 ${B}/build/linux_*_release/lib*.so* ${D}${libdir}
+    install -m 0644 ${WORKDIR}/tbb.pc ${D}${libdir}/pkgconfig
+}
+
+# fails with thumb enabled:
+# | arm-oe-linux-gnueabi-g++  -march=armv7-a -mthumb -mthumb-interwork -mfloat-abi=softfp -mfpu=neon -mtune=cortex-a9 -mcpu=cortex-a9 -D__ARM__ -D__LINUX_ARM_ARCH__=7 -funwind-tables -mvectorize-with-neon-quad -rdynamic --sysroot=/OE/sysroots/m14tv -c -MMD -DTBB_USE_DEBUG  -g -O0 -DUSE_PTHREAD -fPIC -D__TBB_BUILD=1 -Wall -Wno-parentheses -Wno-non-virtual-dtor -O2 -pipe -g -feliminate-unused-debug-types -fpermissive -fvisibility-inlines-hidden   -I../../src -I../../src/rml/include -I../../include ../../src/tbb/concurrent_queue.cpp
+# | {standard input}: Assembler messages:
+# | {standard input}:250: Error: thumb conditional instruction should be in IT block -- `strexeq r2,r3,[r4]'
+# ...
+# | make[1]: *** [concurrent_queue.o] Error 1
+ARM_INSTRUCTION_SET = "arm"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/tomoyo-tools/tomoyo-tools_2.5.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/tomoyo-tools/tomoyo-tools_2.5.0.bb
new file mode 100644
index 0000000..ac8593c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/tomoyo-tools/tomoyo-tools_2.5.0.bb
@@ -0,0 +1,30 @@
+SUMMARY = "TOMOYO Linux tools"
+DESCRIPTION = "TOMOYO Linux is a Mandatory Access Control (MAC) implementation \
+for Linux that can be used to increase the security of a system, while also \
+being useful purely as a system analysis tool."
+HOMEPAGE = "http://tomoyo.sourceforge.jp/"
+SECTION = "System Environment/Kernel"
+
+SRC_URI = "http://jaist.dl.sourceforge.jp/tomoyo/53357/${BP}-20140601.tar.gz"
+SRC_URI[md5sum] = "888869b793127f00d6439a3246598b83"
+SRC_URI[sha256sum] = "118ef6ba1fbf7c0b83018c3a0d4d5485dfb9b5b7f647f37ce9f63841a3133c2a"
+
+S = "${WORKDIR}/${BPN}"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING.tomoyo;md5=751419260aa954499f7abaabaa882bbe"
+
+FILES_${PN}     += "${libdir}/tomoyo"
+FILES_${PN}-dbg += "${libdir}/tomoyo/.debug"
+
+DEPENDS = "linux-libc-headers ncurses"
+
+EXTRA_OEMAKE = "-e USRLIBDIR=${libdir}"
+
+do_compile () {
+	oe_runmake 'CC=${CC}'
+}
+
+do_install() {
+	oe_runmake install INSTALLDIR=${D}
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/toscoterm/toscoterm_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/toscoterm/toscoterm_git.bb
new file mode 100644
index 0000000..24f813b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/toscoterm/toscoterm_git.bb
@@ -0,0 +1,27 @@
+SUMMARY = "A very small and simple terminal emulator"
+SECTION = "x11/applications"
+DEPENDS = "vte"
+
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://main.c;start_line=5;end_line=16;md5=9ae4bf20caf291afa94530026bd15229"
+
+# 0.2 version
+SRCREV = "8586d617aed19fc75f5ae1e07270752c1b2f9a30"
+SRC_URI = "git://github.com/OSSystems/toscoterm.git"
+
+S = "${WORKDIR}/git"
+
+inherit gitpkgv pkgconfig
+
+do_compile() {
+    oe_runmake \
+        CC="${CC}" \
+        CFLAGS="`pkg-config --cflags vte`${CFLAGS}" \
+        LDFLAGS="`pkg-config --libs vte` ${LDFLAGS}"
+}
+
+do_install() {
+    oe_runmake PREFIX="${prefix}" DESTDIR="${D}" install
+}
+
+RDEPENDS_${PN}_append_libc-glibc += "glibc-gconv-ibm437"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/tree/tree_1.7.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/tree/tree_1.7.0.bb
new file mode 100644
index 0000000..2e8ebdb
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/tree/tree_1.7.0.bb
@@ -0,0 +1,21 @@
+SUMMARY = "A recursive directory listing command"
+HOMEPAGE = "http://mama.indstate.edu/users/ice/tree/"
+SECTION = "console/utils"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=393a5ca445f6965873eca0259a17f833"
+
+SRC_URI = "ftp://mama.indstate.edu/linux/${BPN}/${BP}.tgz"
+SRC_URI[md5sum] = "abe3e03e469c542d8e157cdd93f4d8a6"
+SRC_URI[sha256sum] = "6957c20e82561ac4231638996e74f4cfa4e6faabc5a2f511f0b4e3940e8f7b12"
+
+# tree's default CFLAGS for Linux
+CFLAGS += "-Wall -DLINUX -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
+
+EXTRA_OEMAKE = "CC='${CC}' CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}'"
+
+do_configure[noexec] = "1"
+
+do_install() {
+    install -d ${D}${bindir}
+    install -m 0755 ${S}/${BPN} ${D}${bindir}/
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-fix-build-with-newer-glibc-versions.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-fix-build-with-newer-glibc-versions.patch
new file mode 100644
index 0000000..520655a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks/0001-fix-build-with-newer-glibc-versions.patch
@@ -0,0 +1,29 @@
+From 9829152b12a8924d2e091a00133ed1a3a7ba75c0 Mon Sep 17 00:00:00 2001
+From: Alexandre Rostovtsev <tetromino@gentoo.org>
+Date: Fri, 29 May 2015 21:09:39 -0400
+Subject: [PATCH] fix build with newer glibc versions
+
+https://bugs.freedesktop.org/show_bug.cgi?id=90778
+
+Upstream-Status: Applied [1]
+
+[1] http://cgit.freedesktop.org/udisks/commit/?h=udisks1&id=9829152b12a8924d2e091a00133ed1a3a7ba75c0
+---
+ src/helpers/job-drive-detach.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/helpers/job-drive-detach.c b/src/helpers/job-drive-detach.c
+index eeafcab..d122a1f 100644
+--- a/src/helpers/job-drive-detach.c
++++ b/src/helpers/job-drive-detach.c
+@@ -18,6 +18,7 @@
+  *
+  */
+ 
++#include <sys/stat.h>
+ #include <stdio.h>
+ #include <string.h>
+ #include <errno.h>
+-- 
+2.1.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks/optional-depends.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks/optional-depends.patch
new file mode 100644
index 0000000..6131701
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks/optional-depends.patch
@@ -0,0 +1,484 @@
+From 1b70b7a798eeeec554ab5aa9fcfff96a22e91774 Mon Sep 17 00:00:00 2001
+From: Gustavo Sverzut Barbieri <barbieri@profusion.mobi>
+Date: Thu, 26 May 2011 17:30:04 -0300
+Subject: [PATCH] Allow disabling atasmart, lvm2 and devicemapper support.
+
+https://bugs.freedesktop.org/show_bug.cgi?id=37647
+
+diff --git a/configure.ac b/configure.ac
+index 62cc35d..b664135 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -155,13 +155,33 @@ PKG_CHECK_MODULES(POLKIT_GOBJECT_1, [polkit-gobject-1 >= 0.97])
+ AC_SUBST(POLKIT_GOBJECT_1_CFLAGS)
+ AC_SUBST(POLKIT_GOBJECT_1_LIBS)
+ 
+-PKG_CHECK_MODULES(LIBPARTED, [libparted >= 1.8.8])
+-AC_SUBST(LIBPARTED_CFLAGS)
+-AC_SUBST(LIBPARTED_LIBS)
+-
+-PKG_CHECK_MODULES(DEVMAPPER, [devmapper >= 1.02])
+-AC_SUBST(DEVMAPPER_CFLAGS)
+-AC_SUBST(DEVMAPPER_LIBS)
++have_parted=no
++AC_ARG_ENABLE(parted, AS_HELP_STRING([--disable-parted], [disable disk partitioning]))
++if test "x$enable_parted" != "xno"; then
++  PKG_CHECK_MODULES(LIBPARTED, [libparted >= 1.8.8],
++                    [AC_DEFINE(USE_PARTED, 1, [Define if parted should be used]) have_parted=yes],
++                    have_parted=no)
++  AC_SUBST(LIBPARTED_CFLAGS)
++  AC_SUBST(LIBPARTED_LIBS)
++  if test "x$have_parted" = xno -a "x$enable_parted" = xyes; then
++    AC_MSG_ERROR([parted support requested but libraries not found])
++  fi
++fi
++AM_CONDITIONAL(HAVE_PARTED, [test "$have_parted" = "yes"])
++
++have_devmapper=no
++AC_ARG_ENABLE(devmapper, AS_HELP_STRING([--disable-devmapper], [disable device mapper support]))
++if test "x$enable_devmapper" != "xno"; then
++  PKG_CHECK_MODULES(DEVMAPPER, [devmapper >= 1.02],
++                    [AC_DEFINE(HAVE_DEVMAPPER, 1, [Define if device mapper is available]) have_devmapper=yes],
++                    have_devmapper=no)
++  AC_SUBST(DEVMAPPER_CFLAGS)
++  AC_SUBST(DEVMAPPER_LIBS)
++  if test "x$have_devmapper" = xno -a "x$enable_devmapper" = xyes; then
++    AC_MSG_ERROR([devmapper support requested but libraries not found])
++  fi
++fi
++AM_CONDITIONAL(HAVE_DEVMAPPER, [test "$have_devmapper" = "yes"])
+ 
+ have_lvm2=no
+ AC_ARG_ENABLE(lvm2, AS_HELP_STRING([--disable-lvm2], [disable LVM2 support]))
+@@ -185,9 +205,19 @@ if test "x$enable_dmmp" != "xno"; then
+ fi
+ AM_CONDITIONAL(HAVE_DMMP, [test "$have_dmmp" = "yes"])
+ 
+-PKG_CHECK_MODULES(LIBATASMART, [libatasmart >= 0.14])
+-AC_SUBST(LIBATASMART_CFLAGS)
+-AC_SUBST(LIBATASMART_LIBS)
++have_libatasmart=no
++AC_ARG_ENABLE(libatasmart, AS_HELP_STRING([--disable-libatasmart], [disable libatasmart support]))
++if test "x$enable_libatasmart" != "xno"; then
++  PKG_CHECK_MODULES(LIBATASMART, [libatasmart >= 0.14],
++                    [AC_DEFINE(HAVE_LIBATASMART, 1, [Define if libatasmart is available]) have_libatasmart=yes],
++                    have_libatasmart=no)
++  AC_SUBST(LIBATASMART_CFLAGS)
++  AC_SUBST(LIBATASMART_LIBS)
++  if test "x$have_libatasmart" = xno -a "x$enable_libatasmart" = xyes; then
++    AC_MSG_ERROR([libatasmart support requested but libraries not found])
++  fi
++fi
++AM_CONDITIONAL(HAVE_LIBATASMART, [test "$have_libatasmart" = "yes"])
+ 
+ PKG_CHECK_MODULES(LIBUDEV, [libudev >= 143])
+ AC_SUBST(LIBUDEV_CFLAGS)
+@@ -267,9 +297,12 @@ echo "
+         cppflags:                   ${CPPFLAGS}
+         xsltproc:                   ${XSLTPROC}
+ 
++        Parted support:             ${have_parted}
++        Device Mapper support:      ${have_devmapper}
+         LVM2 support:               ${have_lvm2}
+         dm-multipath:               ${have_dmmp}
+         Remote Access:              ${remote_access}
++        libatasmart support:        ${have_libatasmart}
+ 
+         Maintainer mode:            ${USE_MAINTAINER_MODE}
+         Profiling:                  ${enable_profiling}
+diff --git a/src/adapter-private.h b/src/adapter-private.h
+index 3409e21..ef584e3 100644
+--- a/src/adapter-private.h
++++ b/src/adapter-private.h
+@@ -23,7 +23,6 @@
+ 
+ #include <dbus/dbus-glib.h>
+ #include <gudev/gudev.h>
+-#include <atasmart.h>
+ 
+ #include "types.h"
+ 
+diff --git a/src/adapter.c b/src/adapter.c
+index b85a0ef..802420b 100644
+--- a/src/adapter.c
++++ b/src/adapter.c
+@@ -30,7 +30,6 @@
+ #include <dbus/dbus-glib.h>
+ #include <dbus/dbus-glib-lowlevel.h>
+ #include <gudev/gudev.h>
+-#include <atasmart.h>
+ 
+ #include "daemon.h"
+ #include "adapter.h"
+diff --git a/src/daemon.c b/src/daemon.c
+index 6072502..d043cb0 100644
+--- a/src/daemon.c
++++ b/src/daemon.c
+@@ -1745,6 +1745,7 @@ mdstat_changed_event (GIOChannel *channel,
+   return TRUE;
+ }
+ 
++#ifdef HAVE_LIBATASMART
+ static gboolean
+ refresh_ata_smart_data (Daemon *daemon)
+ {
+@@ -1773,6 +1774,7 @@ refresh_ata_smart_data (Daemon *daemon)
+ 
+   return FALSE;
+ }
++#endif
+ 
+ static gboolean
+ register_disks_daemon (Daemon *daemon)
+@@ -1984,12 +1986,14 @@ daemon_new (void)
+   mount_file_clean_stale (l);
+   g_list_free (l);
+ 
++#ifdef HAVE_LIBATASMART
+   /* set up timer for refreshing ATA SMART data - we don't want to refresh immediately because
+    * when adding a device we also do this...
+    */
+   daemon->priv->ata_smart_refresh_timer_id = g_timeout_add_seconds (ATA_SMART_REFRESH_INTERVAL_SECONDS,
+                                                                     (GSourceFunc) refresh_ata_smart_data,
+                                                                     daemon);
++#endif
+ 
+   PROFILE ("daemon_new(): end");
+   return daemon;
+diff --git a/src/device-private.c b/src/device-private.c
+index 22a0d35..fb96525 100644
+--- a/src/device-private.c
++++ b/src/device-private.c
+@@ -1378,7 +1378,7 @@ device_set_drive_ata_smart_time_collected (Device *device,
+ 
+ void
+ device_set_drive_ata_smart_status (Device *device,
+-                                   SkSmartOverall value)
++                                   guint value)
+ {
+   if (G_UNLIKELY (device->priv->drive_ata_smart_status != value))
+     {
+diff --git a/src/device-private.h b/src/device-private.h
+index a6db7f2..71473a6 100644
+--- a/src/device-private.h
++++ b/src/device-private.h
+@@ -23,7 +23,6 @@
+ 
+ #include <dbus/dbus-glib.h>
+ #include <gudev/gudev.h>
+-#include <atasmart.h>
+ 
+ #include "types.h"
+ 
+@@ -224,7 +223,7 @@ struct DevicePrivate
+ 
+   gboolean drive_ata_smart_is_available;
+   guint64 drive_ata_smart_time_collected;
+-  SkSmartOverall drive_ata_smart_status;
++  guint drive_ata_smart_status;
+   void *drive_ata_smart_blob;
+   gsize drive_ata_smart_blob_size;
+ 
+@@ -391,7 +390,7 @@ void device_set_holders_objpath (Device *device, GStrv value);
+ 
+ void device_set_drive_ata_smart_is_available (Device *device, gboolean value);
+ void device_set_drive_ata_smart_time_collected (Device *device, guint64 value);
+-void device_set_drive_ata_smart_status (Device *device, SkSmartOverall value);
++void device_set_drive_ata_smart_status (Device *device, guint value);
+ void device_set_drive_ata_smart_blob_steal (Device *device, gchar *blob, gsize blob_size);
+ 
+ G_END_DECLS
+diff --git a/src/device.c b/src/device.c
+index 6a34940..7a5a4a9 100644
+--- a/src/device.c
++++ b/src/device.c
+@@ -50,7 +50,9 @@
+ #include <dbus/dbus-glib.h>
+ #include <dbus/dbus-glib-lowlevel.h>
+ #include <gudev/gudev.h>
++#ifdef HAVE_LIBATASMART
+ #include <atasmart.h>
++#endif
+ 
+ #include "daemon.h"
+ #include "device.h"
+@@ -659,10 +661,14 @@ get_property (GObject *object,
+     case PROP_DRIVE_ATA_SMART_STATUS:
+       {
+         const gchar *status;
+-        if (device->priv->drive_ata_smart_status == (SkSmartOverall) - 1)
++#ifdef HAVE_LIBATASMART
++        if (device->priv->drive_ata_smart_status == (guint) - 1)
+           status = "";
+         else
+           status = sk_smart_overall_to_string (device->priv->drive_ata_smart_status);
++#else
++        status = "";
++#endif
+         g_value_set_string (value, status);
+       }
+       break;
+@@ -5114,6 +5120,7 @@ device_new (Daemon *daemon,
+       goto out;
+     }
+ 
++#ifdef HAVE_LIBATASMART
+   /* if just added, update the smart data if applicable */
+   if (device->priv->drive_ata_smart_is_available)
+     {
+@@ -5121,6 +5128,7 @@ device_new (Daemon *daemon,
+       gchar *ata_smart_refresh_data_options[] = { NULL };
+       device_drive_ata_smart_refresh_data (device, ata_smart_refresh_data_options, NULL);
+     }
++#endif
+ 
+   PROFILE ("device_new(native_path=%s): end", native_path);
+  out:
+@@ -9794,16 +9802,18 @@ drive_ata_smart_refresh_data_completed_cb (DBusGMethodInvocation *context,
+                                            const char *stdout,
+                                            gpointer user_data)
+ {
++#ifdef HAVE_LIBATASMART
+   gint rc;
+-  SkDisk *d;
++  SkDisk *d = NULL;
++  SkSmartOverall overall;
+   gchar *blob;
+   gsize blob_size;
+   time_t time_collected;
+-  SkSmartOverall overall;
++#endif
+ 
+   PROFILE ("drive_ata_smart_refresh_data_completed_cb(device=%s) start", device->priv->native_path);
+ 
+-  d = NULL;
++#ifdef HAVE_LIBATASMART
+   blob = NULL;
+ 
+   if (job_was_cancelled || stdout == NULL)
+@@ -9907,6 +9917,11 @@ drive_ata_smart_refresh_data_completed_cb (DBusGMethodInvocation *context,
+   g_free (blob);
+   if (d != NULL)
+     sk_disk_free (d);
++
++#else
++  throw_error (context, ERROR_FAILED, "libatasmart support disabled");
++#endif
++
+   PROFILE ("drive_ata_smart_refresh_data_completed_cb(device=%s) end", device->priv->native_path);
+ }
+ 
+diff --git a/src/expander-private.h b/src/expander-private.h
+index ef4f440..98a8300 100644
+--- a/src/expander-private.h
++++ b/src/expander-private.h
+@@ -23,7 +23,6 @@
+ 
+ #include <dbus/dbus-glib.h>
+ #include <gudev/gudev.h>
+-#include <atasmart.h>
+ 
+ #include "types.h"
+ 
+diff --git a/src/expander.c b/src/expander.c
+index 734ec0a..e799f13 100644
+--- a/src/expander.c
++++ b/src/expander.c
+@@ -34,7 +34,6 @@
+ #include <dbus/dbus-glib.h>
+ #include <dbus/dbus-glib-lowlevel.h>
+ #include <gudev/gudev.h>
+-#include <atasmart.h>
+ #include <stdlib.h>
+ 
+ #include "daemon.h"
+diff --git a/src/helpers/Makefile.am b/src/helpers/Makefile.am
+index 4b863c0..d3ec4e9 100644
+--- a/src/helpers/Makefile.am
++++ b/src/helpers/Makefile.am
+@@ -19,15 +19,9 @@ INCLUDES = \
+ 
+ libexec_PROGRAMS = 					\
+ 	udisks-helper-mkfs                    		\
+-	udisks-helper-delete-partition        		\
+-	udisks-helper-create-partition        		\
+-	udisks-helper-modify-partition        		\
+-	udisks-helper-create-partition-table		\
+ 	udisks-helper-change-filesystem-label 		\
+ 	udisks-helper-linux-md-remove-component		\
+ 	udisks-helper-fstab-mounter			\
+-	udisks-helper-ata-smart-collect			\
+-	udisks-helper-ata-smart-selftest		\
+ 	udisks-helper-drive-detach			\
+ 	udisks-helper-drive-poll			\
+ 	udisks-helper-linux-md-check			\
+@@ -48,6 +42,13 @@ udisks_helper_mkfs_SOURCES = job-shared.h job-mkfs.c
+ udisks_helper_mkfs_CPPFLAGS = $(AM_CPPFLAGS)
+ udisks_helper_mkfs_LDADD = $(GLIB_LIBS)
+ 
++if HAVE_PARTED
++libexec_PROGRAMS +=                                     \
++	udisks-helper-delete-partition        		\
++	udisks-helper-create-partition        		\
++	udisks-helper-modify-partition        		\
++	udisks-helper-create-partition-table
++
+ udisks_helper_delete_partition_SOURCES = job-shared.h job-delete-partition.c
+ udisks_helper_delete_partition_CPPFLAGS = $(AM_CPPFLAGS)
+ udisks_helper_delete_partition_LDADD = $(GLIB_LIBS) libpartutil.la
+@@ -63,11 +64,17 @@ udisks_helper_modify_partition_LDADD = $(GLIB_LIBS) libpartutil.la
+ udisks_helper_create_partition_table_SOURCES = job-shared.h job-create-partition-table.c
+ udisks_helper_create_partition_table_CPPFLAGS = $(AM_CPPFLAGS)
+ udisks_helper_create_partition_table_LDADD = $(GLIB_LIBS) libpartutil.la
++endif
+ 
+ udisks_helper_change_filesystem_label_SOURCES = job-shared.h job-change-filesystem-label.c
+ udisks_helper_change_filesystem_label_CPPFLAGS = $(AM_CPPFLAGS)
+ udisks_helper_change_filesystem_label_LDADD = $(GLIB_LIBS)
+ 
++if HAVE_LIBATASMART
++libexec_PROGRAMS +=                                     \
++	udisks-helper-ata-smart-collect			\
++	udisks-helper-ata-smart-selftest
++
+ udisks_helper_ata_smart_selftest_SOURCES = job-shared.h job-ata-smart-selftest.c
+ udisks_helper_ata_smart_selftest_CPPFLAGS = $(AM_CPPFLAGS) $(LIBATASMART_CFLAGS) $(GLIB_CFLAGS)
+ udisks_helper_ata_smart_selftest_LDADD = $(LIBATASMART_LIBS) $(GLIB_LIBS)
+@@ -75,6 +82,7 @@ udisks_helper_ata_smart_selftest_LDADD = $(LIBATASMART_LIBS) $(GLIB_LIBS)
+ udisks_helper_ata_smart_collect_SOURCES = job-ata-smart-collect.c
+ udisks_helper_ata_smart_collect_CPPFLAGS = $(AM_CPPFLAGS) $(LIBATASMART_CFLAGS) $(GLIB_CFLAGS)
+ udisks_helper_ata_smart_collect_LDADD = $(LIBATASMART_LIBS) $(GLIB_LIBS)
++endif
+ 
+ udisks_helper_linux_md_remove_component_SOURCES = job-shared.h job-linux-md-remove-component.c
+ udisks_helper_linux_md_remove_component_CPPFLAGS = $(AM_CPPFLAGS)
+diff --git a/src/helpers/partutil.c b/src/helpers/partutil.c
+index 72a8fe3..8893a39 100644
+--- a/src/helpers/partutil.c
++++ b/src/helpers/partutil.c
+@@ -62,7 +62,6 @@ DEBUG (const gchar *format,
+ #  include <config.h>
+ #endif
+ 
+-#define USE_PARTED
+ #ifdef USE_PARTED
+ #include <parted/parted.h>
+ #endif
+@@ -928,6 +927,7 @@ part_table_parse_apple (int fd,
+   return p;
+ }
+ 
++#ifdef USE_PARTED
+ static PartitionTable *
+ part_table_load_from_disk_from_file (char *device_file)
+ {
+@@ -948,6 +948,7 @@ part_table_load_from_disk_from_file (char *device_file)
+  out:
+   return ret;
+ }
++#endif
+ 
+ PartitionTable *
+ part_table_load_from_disk (int fd)
+diff --git a/src/port-private.h b/src/port-private.h
+index cc48376..a91532f 100644
+--- a/src/port-private.h
++++ b/src/port-private.h
+@@ -23,7 +23,6 @@
+ 
+ #include <dbus/dbus-glib.h>
+ #include <gudev/gudev.h>
+-#include <atasmart.h>
+ 
+ #include "types.h"
+ 
+diff --git a/src/probers/Makefile.am b/src/probers/Makefile.am
+index 06bb566..01c693b 100644
+--- a/src/probers/Makefile.am
++++ b/src/probers/Makefile.am
+@@ -22,8 +22,6 @@ INCLUDES = \
+ 
+ udevhelperdir = $(slashlibdir)/udev
+ udevhelper_PROGRAMS =	udisks-part-id 			\
+-			udisks-dm-export 		\
+-		      	udisks-probe-ata-smart 		\
+ 			udisks-probe-sas-expander 	\
+ 			$(NULL)
+ 
+@@ -35,17 +33,23 @@ udisks_part_id_SOURCES = part-id.c
+ udisks_part_id_CPPFLAGS = $(AM_CPPFLAGS) $(LIBUDEV_CFLAGS)
+ udisks_part_id_LDADD = $(GLIB_LIBS) $(LIBUDEV_LIBS) $(top_builddir)/src/helpers/libpartutil.la
+ 
++if HAVE_DEVMAPPER
++udevhelper_PROGRAMS += udisks-dm-export
+ udisks_dm_export_SOURCES = udisks-dm-export.c
+ udisks_dm_export_CPPFLAGS = $(AM_CPPFLAGS) $(DEVMAPPER_CFLAGS) $(GLIB_CFLAGS)
+ udisks_dm_export_LDADD = $(DEVMAPPER_LIBS) $(GLIB_LIBS)
++endif
+ 
+ udisks_lvm_pv_export_SOURCES = udisks-lvm-pv-export.c
+ udisks_lvm_pv_export_CPPFLAGS = $(AM_CPPFLAGS) $(DEVMAPPER_CFLAGS) $(LVM2_CFLAGS) $(GLIB_CFLAGS)
+ udisks_lvm_pv_export_LDADD = $(DEVMAPPER_LIBS) $(LVM2_LIBS) $(GLIB_LIBS)
+ 
++if HAVE_LIBATASMART
++udevhelper_PROGRAMS += udisks-probe-ata-smart
+ udisks_probe_ata_smart_SOURCES = udisks-probe-ata-smart.c
+ udisks_probe_ata_smart_CPPFLAGS = $(AM_CPPFLAGS) $(LIBATASMART_CFLAGS)
+ udisks_probe_ata_smart_LDADD = $(LIBATASMART_LIBS)
++endif
+ 
+ udisks_probe_sas_expander_SOURCES = udisks-probe-sas-expander.c
+ udisks_probe_sas_expander_CPPFLAGS = $(AM_CPPFLAGS) $(GLIB_CFLAGS)
+diff --git a/tools/udisks.c b/tools/udisks.c
+index 6fbd6a6..e0c4fbb 100644
+--- a/tools/udisks.c
++++ b/tools/udisks.c
+@@ -43,7 +43,9 @@
+ #include <dbus/dbus-glib.h>
+ #include <dbus/dbus-glib-lowlevel.h>
+ 
++#ifdef HAVE_LIBATASMART
+ #include <atasmart.h>
++#endif
+ 
+ #include "udisks-daemon-glue.h"
+ #include "udisks-device-glue.h"
+@@ -979,6 +981,7 @@ end_highlight (void)
+     g_print ("\x1B[0m");
+ }
+ 
++#ifdef HAVE_LIBATASMART
+ static const gchar *
+ ata_smart_status_to_desc (const gchar *status,
+                           gboolean *out_highlight)
+@@ -1159,6 +1162,7 @@ print_ata_smart_attr (SkDisk *d,
+   g_free (threshold_str);
+   g_free (pretty);
+ }
++#endif
+ 
+ static void
+ do_show_info (const char *object_path)
+@@ -1440,7 +1444,7 @@ do_show_info (const char *object_path)
+         g_print ("    if speed:                  %" G_GINT64_FORMAT " bits/s\n", props->drive_connection_speed);
+ 
+       /* ------------------------------------------------------------------------------------------------- */
+-
++#ifdef HAVE_LIBATASMART
+       if (!props->drive_ata_smart_is_available)
+         {
+           g_print ("    ATA SMART:                 not available\n");
+@@ -1493,7 +1497,9 @@ do_show_info (const char *object_path)
+             }
+ 
+         }
+-
++#else
++          g_print ("    ATA SMART:                 not supported\n");
++#endif
+       /* ------------------------------------------------------------------------------------------------- */
+ 
+     }
+-- 
+1.7.5.rc3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks/udisks-1.0.5-fix-service-file.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks/udisks-1.0.5-fix-service-file.patch
new file mode 100644
index 0000000..d5e84d3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks/udisks-1.0.5-fix-service-file.patch
@@ -0,0 +1,33 @@
+From 7d61ad048856ee239870b917d6933e3ad63f0789 Mon Sep 17 00:00:00 2001
+From: David King <amigadave@amigadave.com>
+Date: Thu, 2 Jul 2015 13:49:22 +0100
+Subject: [PATCH] Fix systemd service file
+
+udisks-daemon is installed to $(libexecdir), not $(prefix)/lib/udisks.
+
+https://bugzilla.redhat.com/show_bug.cgi?id=1238664
+https://bugs.freedesktop.org/show_bug.cgi?id=91191
+
+Taken-From: [1]
+[1] http://pkgs.fedoraproject.org/cgit/udisks.git/tree/udisks-1.0.5-fix-service-file.patch
+
+Upstream-Status: Pending
+---
+ data/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/data/Makefile.am b/data/Makefile.am
+index 411ea0f..08af5f4 100644
+--- a/data/Makefile.am
++++ b/data/Makefile.am
+@@ -31,7 +31,7 @@ systemdservicedir       = $(systemdsystemunitdir)
+ systemdservice_DATA     = $(systemdservice_in_files:.service.in=.service)
+ 
+ $(systemdservice_DATA): $(systemdservice_in_files) Makefile
+-	@sed -e "s|\@libexecdir\@|$(prefix)/lib/udisks|" $< > $@
++	@sed -e "s|\@libexecdir\@|$(libexecdir)|" $< > $@
+ endif
+ 
+ udevrulesdir = $(slashlibdir)/udev/rules.d
+-- 
+2.4.5
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.1.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.1.5.bb
new file mode 100644
index 0000000..f365cfa
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.1.5.bb
@@ -0,0 +1,35 @@
+SUMMARY = "udisks provides dbus interfaces for disks and storage devices"
+LICENSE = "GPLv2+ & LGPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=dd79f6dbbffdbc8e86b086a8f0c0ef43"
+
+DEPENDS = "acl libatasmart polkit libgudev dbus-glib glib-2.0 intltool-native gnome-common-native"
+DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}"
+
+RDEPENDS_${PN} = "acl"
+
+SRC_URI = "http://udisks.freedesktop.org/releases/udisks-${PV}.tar.bz2"
+SRC_URI[md5sum] = "73632501002e6de8244f831e38b2b98e"
+SRC_URI[sha256sum] = "2cfcf560447ea44cba2a683342c7062aaaf35e4eb554bed64ac2dd55a70a5fb6"
+
+inherit autotools systemd gtk-doc gobject-introspection
+
+S = "${WORKDIR}/udisks-${PV}"
+
+EXTRA_OECONF = "--disable-man"
+
+FILES_${PN} += "${libdir}/polkit-1/extensions/*.so \
+                ${datadir}/dbus-1/ \
+                ${datadir}/polkit-1 \
+                ${nonarch_base_libdir}/udev/* \
+                ${exec_prefix}${nonarch_base_libdir}/udisks2/* \
+"
+
+PACKAGES =+ "${PN}-libs"
+
+FILES_${PN} += "${datadir}/bash-completion"
+FILES_${PN}-libs = "${libdir}/lib*${SOLIBS}"
+
+FILES_${PN}-dbg += "${exec_prefix}${nonarch_base_libdir}/udisks2/.debug"
+
+SYSTEMD_SERVICE_${PN} = "${BPN}.service"
+SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks_1.0.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks_1.0.5.bb
new file mode 100644
index 0000000..eec6933
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/udisks/udisks_1.0.5.bb
@@ -0,0 +1,39 @@
+DESCRIPTION = "A storage daemon that implements well-defined D-Bus interfaces that can be used to query and manipulate storage devices."
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=73d83aebe7e4b62346afde80e0e94273"
+
+DEPENDS = "libatasmart sg3-utils polkit libgudev dbus-glib glib-2.0 intltool-native lvm2"
+# optional dependencies: device-mapper parted
+
+DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}"
+
+SRC_URI = " \
+    http://hal.freedesktop.org/releases/${BPN}-${PV}.tar.gz;name=${BPN} \
+    file://optional-depends.patch \
+    file://0001-fix-build-with-newer-glibc-versions.patch \
+    file://udisks-1.0.5-fix-service-file.patch \
+"
+
+SRC_URI[udisks.md5sum] = "70d48dcfe523a74cd7c7fbbc2847fcdd"
+SRC_URI[udisks.sha256sum] = "f2ec82eb0ea7e01dc299b5b29b3c18cdf861236ec43dcff66b3552b4b31c6f71"
+
+inherit autotools-brokensep systemd gtk-doc
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[parted] = "--enable-parted,--disable-parted,parted"
+
+EXTRA_OECONF = "--disable-man-pages"
+
+FILES_${PN} += "${libdir}/polkit-1/extensions/*.so \
+                ${datadir}/dbus-1/ \
+                ${datadir}/polkit-1 \
+                ${nonarch_base_libdir}/udev/* \
+"
+
+FILES_${PN}-dbg += "${nonarch_base_libdir}/udev/.debug"
+
+RPROVIDES_${PN} += "${PN}-systemd"
+RREPLACES_${PN} += "${PN}-systemd"
+RCONFLICTS_${PN} += "${PN}-systemd"
+SYSTEMD_SERVICE_${PN} = "udisks.service"
+SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/uim/uim/0001-fix-bug-for-cross-compile.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/uim/uim/0001-fix-bug-for-cross-compile.patch
new file mode 100644
index 0000000..df82b07
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/uim/uim/0001-fix-bug-for-cross-compile.patch
@@ -0,0 +1,28 @@
+From 2918196ba782dfa4401bdca917ad4de1910505e0 Mon Sep 17 00:00:00 2001
+From: Lei Maohui <leimaohui@cn.fujitsu.com>
+Date: Fri, 21 Aug 2015 15:58:42 +0900
+Subject: [PATCH] fix bug for cross compile
+
+Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
+---
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 9be879c..9249bfd 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1208,8 +1208,8 @@ AC_HELP_STRING([--with-libedit[=DIR], Enable libedit support
+ if test "x$use_libedit" != "xno"; then
+     saved_CPPFLAGS=$CPPFLAGS
+     saved_LDFLAGS=$LDFLAGS
+-    CPPFLAGS="${CPPFLAGS} -I$libedit_path/include"
+-    LDFLAGS="${LDFLAGS} -L$libedit_path/lib"
++    CPPFLAGS="${CPPFLAGS} "
++    LDFLAGS="${LDFLAGS} "
+     AC_CHECK_LIB(curses, tgetent, LIBEDIT_LIBS="-lcurses",
+         [AC_CHECK_LIB(ncurses, tgetent, LIBEDIT_LIBS="-lncurses",
+             AC_MSG_WARN("libedit needs libcurses or libncurses. disabled...")
+-- 
+1.8.4.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/uim/uim/uim-module-manager.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/uim/uim/uim-module-manager.patch
new file mode 100644
index 0000000..8569bf3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/uim/uim/uim-module-manager.patch
@@ -0,0 +1,11 @@
+--- uim-1.1.0/scm/Makefile.am~	2006-06-09 10:46:12.000000000 +0900
++++ uim-1.1.0/scm/Makefile.am	2006-06-19 23:00:15.620000000 +0900
+@@ -58,7 +58,7 @@
+   module_names += "scim"
+ endif
+ 
+-UIM_MODULE_MANAGER = $(top_builddir)/uim/uim-module-manager
++UIM_MODULE_MANAGER = uim-module-manager
+ UIM_MODULE_MANAGER_ENV = \
+         LIBUIM_SCM_FILES=$(abs_srcdir) \
+         LIBUIM_PLUGIN_LIB_DIR=$(abs_top_builddir)/uim/.libs
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.6.bb
new file mode 100644
index 0000000..42788e4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.6.bb
@@ -0,0 +1,152 @@
+DESCRIPTION = "A multilingual user input method library"
+HOMEPAGE = "http://uim.freedesktop.org/"
+LICENSE = "BSD-3-Clause & LGPLv2+"
+SECTION = "inputmethods"
+
+SRC_URI = "http://uim.googlecode.com/files/uim-${PV}.tar.bz2 \
+          "
+
+SRC_URI_append_class-target = "file://uim-module-manager.patch \
+                               file://0001-fix-bug-for-cross-compile.patch"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=32463fd29aa303fb2360faeeae17256b"
+SRC_URI[md5sum] = "ecea4c597bab1fd4ba98ea84edcece59"
+SRC_URI[sha256sum] = "7b1ea803c73f3478917166f04f67cce6e45ad7ea5ab6df99b948c17eb1cb235f"
+
+DEPENDS = "anthy fontconfig libxft libxt glib-2.0 ncurses intltool"
+DEPENDS_class-target += "gtk+ gtk+3 uim-native takao-fonts"
+
+RDEPENDS_uim = "libuim0 libedit"
+RDEPENDS_uim-anthy = "takao-fonts anthy libanthy0"
+
+LEAD_SONAME = "libuim.so.1"
+
+inherit autotools pkgconfig gettext
+
+EXTRA_OECONF += "--disable-emacs \
+                 --without-scim \
+                 --without-m17nlib \
+                 --without-prime \
+                 --without-canna \
+                 --without-mana \
+                 --without-eb"
+
+CONFIGUREOPTS_remove_class-target = "--disable-silent-rules"
+
+#Because m4 file's find maxdepth=2, so copy the m4 files of the deep depth.
+do_configure_prepend () {
+    cp ${S}/sigscheme/m4/* ${S}/m4/
+}
+
+do_install_append() {
+    rm -rf ${D}/${datadir}/applications
+}
+
+PACKAGES += "uim-xim uim-utils uim-skk uim-gtk2.0 uim-gtk3 uim-fep uim-common uim-anthy libuim0 libuim-dev"
+
+FILES_${PN} = "${bindir}/uim-help \
+               ${libdir}/uim/plugin/libuim-* \
+               ${libdir}/libuim-scm* \
+               ${libdir}/libgcroots* \
+               ${libdir}/uim/plugin/libuim-*"
+
+FILES_libuim0 = "${libdir}/uim/plugin/libuim-custom-enabler.* \
+                 ${libdir}/libuim-custom.so.* \
+                 ${datadir}/locale/ja/LC_MESSAGES/uim.mo \
+                 ${datadir}/locale/fr/LC_MESSAGES/uim.mo \
+                 ${datadir}/locale/ko/LC_MESSAGES/uim.mo \
+                 ${libdir}/libuim.so.*"
+
+FILES_libuim-dev = "${libdir}/libuim*.a \
+                    ${libdir}/libuim*.la \
+                    ${libdir}/libuim*.so \
+                    ${includedir}/uim \
+                    ${libdir}/pkgconfig/uim.pc"
+
+FILES_uim-anthy = "${libdir}/uim/plugin/libuim-anthy.* \
+                   ${datadir}/uim/anthy*.scm"
+
+FILES_${PN}-dbg += "${libdir}/*/*/*/.debug ${libdir}/*/*/.debug"
+FILES_${PN}-dev += "${libdir}/uim/plugin/*.la"
+
+FILES_uim-utils = "${bindir}/uim-sh \
+                   ${bindir}/uim-module-manager \
+		   ${libexecdir}/uim-helper-server"
+
+FILES_uim-xim = "${bindir}/uim-xim \
+                 ${libexecdir}/uim-candwin-*gtk \
+                 ${libexecdir}/uim-candwin-*gtk3 \
+                 ${datadir}/man/man1/uim-xim.1 \
+                 ${sysconfdir}/X11/xinit/xinput.d/uim*"
+
+FILES_uim-common = "${datadir}/uim/pixmaps/*.png \
+                    ${datadir}/uim"
+
+FILES_uim-fep = "${bindir}/uim-fep*"
+
+FILES_uim-gtk2.0 = "${libdir}/gtk-2.0 \
+                    ${bindir}/uim-toolbar-gtk \
+                    ${bindir}/uim-toolbar-gtk-systray \
+                    ${bindir}/uim-*-gtk \
+                    ${bindir}/uim-input-pad-ja \
+                    ${libdir}/uim/uim-*-gtk"
+
+FILES_uim-gtk3 = "${libdir}/gtk-3.0 \
+                   ${bindir}/uim-toolbar-gtk3 \
+                   ${bindir}/uim-toolbar-gtk3-systray \
+                   ${bindir}/uim-*-gtk3 \
+                   ${libdir}/uim/uim-*-gtk3"
+
+FILES_uim-skk = "${libdir}/uim/plugin/libuim-skk.* \
+                 ${datadir}/uim/skk*.scm"
+
+pkg_postinst_uim-anthy() {
+    if [ -f /usr/bin/uim-module-manager ]; then
+        /usr/bin/uim-module-manager --register anthy --path /etc/uim
+    fi
+}
+
+pkg_postrm_uim-anthy() {
+    if [ -f /usr/bin/uim-module-manager ]; then
+        /usr/bin/uim-module-manager --path /etc/uim --unregister anthy
+    fi
+}
+
+pkg_prerm_uim-anthy() {
+    if [ -f /usr/bin/uim-module-manager ]; then
+        /usr/bin/uim-module-manager --register anthy --path /etc/uim
+    fi
+}
+
+pkg_postinst_uim-gtk2.0() {
+    gtk-query-immodules-2.0 > /etc/gtk-2.0/gtk.immodules
+}
+
+pkg_postinst_uim-skk() {
+    if [ -f /usr/bin/uim-module-manager ]; then
+        /usr/bin/uim-module-manager --register skk --path /etc/uim
+    fi
+}
+
+pkg_postrm_uim-skk() {
+    if [ -f /usr/bin/uim-module-manager ]; then
+        /usr/bin/uim-module-manager --path /etc/uim --unregister skk
+    fi
+}
+
+pkg_postinst_uim-common() {
+    if [ -f /usr/bin/uim-module-manager ]; then
+        /usr/bin/uim-module-manager --path /etc/uim --register \
+                                    tutcode tcode hangul viqr \
+                                    ipa-x-sampa latin byeoru
+    fi
+}
+
+pkg_prerm_uim-common() {
+    if [ -f /usr/bin/uim-module-manager ]; then
+        /usr/bin/uim-module-manager --path /etc/uim --register \
+        tutcode tcode hangul viqr ipa-x-sampa latin byeoru
+    fi
+}
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/upower/upower_0.9.14.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/upower/upower_0.9.14.bb
new file mode 100644
index 0000000..d2c5943
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/upower/upower_0.9.14.bb
@@ -0,0 +1,35 @@
+DESCRIPTION = "UPower is an abstraction for enumerating power devices, listening to device events and querying history and statistics. "
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0de8fbf1d97a140d1d93b9f14dcfbf08"
+
+PR = "r2"
+
+DEPENDS = "intltool-native libusb1 libgudev glib-2.0 dbus-glib polkit"
+
+SRC_URI = "http://upower.freedesktop.org/releases/${BPN}-${PV}.tar.xz"
+SRC_URI[md5sum] = "18803f82102d56aac90949d1e4251645"
+SRC_URI[sha256sum] = "81eb44c0453b264a737d32f763a31d5b1776f050a47d5be85fc5e9caf874a4c5"
+
+inherit autotools pkgconfig gettext gobject-introspection
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[idevice] = "--with-idevice,--without-idevice,libimobiledevice libplist"
+
+EXTRA_OECONF = " --with-backend=linux"
+
+do_configure_prepend() {
+    sed -i -e s:-nonet:\:g ${S}/doc/man/Makefile.am
+    sed -i -e 's: doc : :g' ${S}/Makefile.am
+}    
+
+
+RRECOMMENDS_${PN} += "pm-utils"
+FILES_${PN} += "${datadir}/dbus-1/ \
+                ${datadir}/polkit-1/ \
+                ${base_libdir}/udev/* \
+"
+
+FILES_${PN}-dbg += "${base_libdir}/udev/.debug"
+
+
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20140529.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20140529.bb
new file mode 100644
index 0000000..a265411
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20140529.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Data files for usbmodeswitch"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+inherit allarch
+
+SRC_URI = "http://www.draisberghof.de/usb_modeswitch/${BP}.tar.bz2"
+SRC_URI[md5sum] = "dff94177781298aaf0b3c2a3c3dea6b2"
+SRC_URI[sha256sum] = "53889157937109e04dafe897c098ec94f3f44f9c0c83fc6ec8417aa9a587e536"
+
+do_install() {
+    oe_runmake install DESTDIR=${D}
+}
+
+RDEPENDS_${PN} = "usb-modeswitch (>= 2.2.0)"
+FILES_${PN} += "${base_libdir}/udev/rules.d/ \
+                ${datadir}/usb_modeswitch"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.2.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.2.0.bb
new file mode 100644
index 0000000..52a2f56
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.2.0.bb
@@ -0,0 +1,19 @@
+SUMMARY = "A mode switching tool for controlling 'flip flop' (multiple device) USB gear"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+DEPENDS = "libusb1"
+
+SRC_URI = "http://www.draisberghof.de/usb_modeswitch/${BP}.tar.bz2"
+SRC_URI[md5sum] = "f323fe700edd6ea404c40934ddf32b22"
+SRC_URI[sha256sum] = "2752103de171ed5f6c8d6a6e3e73e16c9ee3e8e394dd39c5991f7680eb908a3a"
+
+EXTRA_OEMAKE = "TCL=${bindir}/tclsh"
+
+FILES_${PN} = "${bindir} ${sysconfdir} ${nonarch_base_libdir}/udev/usb_modeswitch ${sbindir} ${localstatedir}/lib/usb_modeswitch"
+RDEPENDS_${PN} = "tcl"
+RRECOMMENDS_${PN} = "usb-modeswitch-data"
+
+do_install() {
+	oe_runmake DESTDIR=${D} install
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/usbpath/usbpath/configure.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/usbpath/usbpath/configure.patch
new file mode 100644
index 0000000..271e6a5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/usbpath/usbpath/configure.patch
@@ -0,0 +1,11 @@
+Index: usbpath/configure.ac
+===================================================================
+--- usbpath.orig/configure.ac	2014-07-17 20:40:26.000000000 +0000
++++ usbpath/configure.ac	2014-07-18 07:01:40.933474420 +0000
+@@ -1,5 +1,5 @@
+ AC_INIT([usbpath],[0.1])
+-AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION)
++AM_INIT_AUTOMAKE([foreign])
+ 
+ AC_PROG_CC
+ AC_PROG_RANLIB
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/usbpath/usbpath_svn.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/usbpath/usbpath_svn.bb
new file mode 100644
index 0000000..6c9cd04
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/usbpath/usbpath_svn.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Convert the physical locations of a USB device to/from its number"
+AUTHOR = "Werner Almesberger <werner@openmoko.org>"
+SECTION = "console/utils"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://usbpath.c;endline=20;md5=0aa8c7d2af9110c78a99fbf9a504dc3f"
+DEPENDS = "virtual/libusb0"
+DEPENDS_class-native = "virtual/libusb0-native"
+
+BBCLASSEXTEND = "native"
+
+SRCREV = "3172"
+PV = "0.0+svnr${SRCPV}"
+
+SRC_URI = "svn://svn.openmoko.org/trunk/src/host;module=usbpath;protocol=http \
+           file://configure.patch"
+
+S = "${WORKDIR}/usbpath"
+
+inherit autotools pkgconfig
+
+RDEPENDS_${PN} += "perl"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/uthash/uthash_1.9.7.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/uthash/uthash_1.9.7.bb
new file mode 100644
index 0000000..82a9f2a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/uthash/uthash_1.9.7.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Hash table for C structures"
+SECTION = "base"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=564f9c44927f6247dc810bf557e2b240"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.bz2"
+
+SRC_URI[md5sum] = "1f14bbee7ee73ed0ceb3549f8cf378b4"
+SRC_URI[sha256sum] = "956f5c99798349c413275fe4c9ff128d72e280655dadbe4365f8e9fbda91393f"
+
+do_install () {
+    install -dm755 ${D}${includedir}
+    install -m 0644 ${S}/src/*.h ${D}${includedir}
+}
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/utouch/utouch-evemu_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/utouch/utouch-evemu_git.bb
new file mode 100644
index 0000000..1dd5a86
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/utouch/utouch-evemu_git.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Kernel evdev device emulation"
+DESCRIPTION = "The evemu library and tools are used to describe devices, record data, create devices and replay data from kernel evdev devices. "
+HOMEPAGE = "http://bitmath.org/code/evemu/"
+
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949"
+
+inherit autotools
+
+SRC_URI = "git://bitmath.org/git/evemu.git;protocol=http"
+SRCREV = "9752b50e922572e4cd214ac45ed95e4ee410fe24"
+
+PV = "1.0.5+git${SRCPV}"
+
+S = "${WORKDIR}/git/"
+
+PARALLEL_MAKE = ""
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/utouch/utouch-frame_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/utouch/utouch-frame_git.bb
new file mode 100644
index 0000000..d9b38ae
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/utouch/utouch-frame_git.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Touch Frame Library"
+DESCRIPTION = "The frame library and tools are used to handle touch frames, i.e., collections of tracked contacts. Bindings for mtdev and XI2.1."
+HOMEPAGE = "http://bitmath.org/code/frame/"
+
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2f31b266d3440dd7ee50f92cf67d8e6c"
+
+DEPENDS += "mtdev utouch-evemu"
+
+inherit autotools pkgconfig
+
+SRC_URI = "git://bitmath.org/git/frame.git;protocol=http"
+SRCREV = "95363d5a1f7394d71144bf3b408ef4e6db4350fc"
+
+PV = "1.1.2+git${SRCPV}"
+
+S = "${WORKDIR}/git/"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/utouch/utouch-mtview_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/utouch/utouch-mtview_git.bb
new file mode 100644
index 0000000..8cb180d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/utouch/utouch-mtview_git.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Multitouch viewer"
+DESCRIPTION = "mtview is a small X application that shows a graphical view of your MT-enabled hardware. It uses mtdev."
+HOMEPAGE = "http://bitmath.org/code/mtview/"
+
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4c61b8950dc1aab4d2aa7c2ae6b1cfb3"
+
+inherit autotools pkgconfig distro_features_check
+# depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI = "git://bitmath.org/git/mtview.git;protocol=http"
+SRCREV = "ad437c38dc111cf3990a03abf14efe1b5d89604b"
+
+DEPENDS += "mtdev utouch-frame utouch-evemu libx11"
+
+PV = "1.1.7+git${SRCPV}"
+
+S = "${WORKDIR}/git/"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/vala-terminal/vala-terminal_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/vala-terminal/vala-terminal_git.bb
new file mode 100644
index 0000000..07ff318
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/vala-terminal/vala-terminal_git.bb
@@ -0,0 +1,20 @@
+SUMMARY = "A lightweight Terminal Emulator based on libvte, written in Vala"
+SECTION = "x11/applications"
+DEPENDS = "vte intltool-native"
+SRCREV = "0fefa38087581f85fa0631b40500b9428369c146"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+PV = "1.3+gitr${SRCPV}"
+PE = "1"
+PR = "r1"
+
+PNBLACKLIST[vala-terminal] ?= "BROKEN: Doesn't work with B!=S, touch: cannot touch `src/.stamp': No such file or directory"
+
+inherit autotools perlnative vala
+
+SRC_URI = "${FREESMARTPHONE_GIT}/vala-terminal.git;branch=master"
+S = "${WORKDIR}/git"
+
+RDEPENDS_${PN} = "ttf-liberation-mono"
+RREPLACES_${PN} = "openmoko-terminal2"
+RPROVIDES_${PN} = "openmoko-terminal2"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/Makefile.utils b/import-layers/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/Makefile.utils
new file mode 100644
index 0000000..3749b95
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/Makefile.utils
@@ -0,0 +1,43 @@
+## -----------------------------------------------------------------------
+##
+##   Copyright 2001-2008 H. Peter Anvin - All Rights Reserved
+##
+##   This program is free software; you can redistribute it and/or modify
+##   it under the terms of the GNU General Public License as published by
+##   the Free Software Foundation, Inc., 53 Temple Place Ste 330,
+##   Boston MA 02111-1307, USA; either version 2 of the License, or
+##   (at your option) any later version; incorporated herein by reference.
+##
+## -----------------------------------------------------------------------
+
+INCLUDES = -I. -I../vboxsf
+CFLAGS	 = ${INCLUDES}
+LDFLAGS	 =
+
+SRCS     = mount.vboxsf.c \
+           vbsfmount.c
+
+OBJS	 = $(patsubst %.c,%.o,$(notdir $(SRCS)))
+
+.SUFFIXES: .c .o .i .s .S
+
+
+all: mount.vboxsf
+
+clean:
+	-rm -f *.o mount.vboxsf
+
+spotless: clean
+	-rm -f *~
+
+mount.vboxsf: $(OBJS)
+	$(CC) $(LDFLAGS) -o $@ $^
+
+%.o: %.c
+	$(CC) $(UMAKEDEPS) $(CFLAGS) -c -o $@ $<
+%.i: %.c
+	$(CC) $(UMAKEDEPS) $(CFLAGS) -E -o $@ $<
+%.s: %.c
+	$(CC) $(UMAKEDEPS) $(CFLAGS) -S -o $@ $<
+
+-include .*.d *.tmp
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_4.3.36.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_4.3.36.bb
new file mode 100644
index 0000000..781e3d5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_4.3.36.bb
@@ -0,0 +1,65 @@
+SUMMARY = "VirtualBox Linux Guest Drivers"
+SECTION = "core"
+LICENSE = "GPL-2.0"
+LIC_FILES_CHKSUM = "file://${WORKDIR}/${VBOX_NAME}/COPYING;md5=e197d5641bb35b29d46ca8c4bf7f2660"
+
+DEPENDS = "virtual/kernel"
+
+inherit module kernel-module-split
+
+COMPATIBLE_MACHINE = "(qemux86|qemux86-64)"
+
+VBOX_NAME = "VirtualBox-${PV}"
+
+SRC_URI = "http://download.virtualbox.org/virtualbox/${PV}/${VBOX_NAME}.tar.bz2 \
+           file://Makefile.utils \
+"
+SRC_URI[md5sum] = "8635387dec6cbfd576ba453355d4dc0c"
+SRC_URI[sha256sum] = "af0776df6d03b2709cb76a69f055487bf12bdb3b4163e2a82959860300283046"
+
+S = "${WORKDIR}/vbox_module"
+
+export BUILD_TARGET_ARCH="${ARCH}"
+export BUILD_TARGET_ARCH_x86-64="amd64"
+export KERN_DIR="${STAGING_KERNEL_DIR}"
+
+addtask export_sources before do_patch after do_unpack
+
+do_export_sources() {
+    mkdir -p "${S}"
+    ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/export_modules ${T}/vbox_modules.tar.gz
+    tar -C "${S}" -xzf ${T}/vbox_modules.tar.gz
+
+    # add a mount utility to use shared folder from VBox Addition Source Code
+    mkdir -p "${S}/utils"
+    install ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/sharedfolders/mount.vboxsf.c ${S}/utils
+    install ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/sharedfolders/vbsfmount.c ${S}/utils
+    install ${S}/../Makefile.utils ${S}/utils/Makefile
+
+}
+
+# compile and install mount utility
+do_compile_append() {
+    oe_runmake -C ${S}/utils
+}
+
+module_do_install() {
+    MODULE_DIR=${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION}/kernel/misc
+    install -d $MODULE_DIR
+    install -m 644 vboxguest.ko $MODULE_DIR
+    install -m 644 vboxsf.ko $MODULE_DIR
+    install -m 644 vboxvideo.ko $MODULE_DIR
+}
+
+do_install_append() {
+    install -d ${D}${base_sbindir}
+    install -m 755 ${S}/utils/mount.vboxsf ${D}${base_sbindir}
+}
+
+PACKAGES += "kernel-module-vboxguest kernel-module-vboxsf kernel-module-vboxvideo"
+RRECOMMENDS_${PN} += "kernel-module-vboxguest kernel-module-vboxsf kernel-module-vboxvideo"
+
+FILES_${PN} = "${base_sbindir}"
+
+# autoload if installed
+KERNEL_MODULE_AUTOLOAD += "vboxguest vboxsf vboxvideo"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/vim/files/disable_acl_header_check.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/vim/files/disable_acl_header_check.patch
new file mode 100644
index 0000000..8f824e7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/vim/files/disable_acl_header_check.patch
@@ -0,0 +1,27 @@
+Upstream-Status: pending
+
+Don't check 'sys/acl.h' if acl support disabled for vim/vim-tiny.
+
+Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
+================================================
+diff --git a/src/configure.in b/src/configure.in
+index fb965e5..d734064 100644
+--- a/src/configure.in
++++ b/src/configure.in
+@@ -2511,7 +2511,7 @@ AC_CHECK_HEADERS(stdarg.h stdint.h stdlib.h string.h \
+ 	sys/systeminfo.h locale.h sys/stream.h termios.h \
+ 	libc.h sys/statfs.h poll.h sys/poll.h pwd.h \
+ 	utime.h sys/param.h libintl.h libgen.h \
+-	util/debug.h util/msg18n.h frame.h sys/acl.h \
++	util/debug.h util/msg18n.h frame.h \
+ 	sys/access.h sys/sysinfo.h wchar.h wctype.h)
+ 
+ dnl sys/ptem.h depends on sys/stream.h on Solaris
+@@ -3112,6 +3112,7 @@ AC_ARG_ENABLE(acl,
+ 	, [enable_acl="yes"])
+ if test "$enable_acl" = "yes"; then
+ AC_MSG_RESULT(no)
++AC_CHECK_HEADERS(sys/acl.h)
+ AC_CHECK_LIB(posix1e, acl_get_file, [LIBS="$LIBS -lposix1e"],
+ 	AC_CHECK_LIB(acl, acl_get_file, [LIBS="$LIBS -lacl"
+ 		  AC_CHECK_LIB(attr, fgetxattr, LIBS="$LIBS -lattr",,)],,),)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/vim/files/vim-add-knob-whether-elf.h-are-checked.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/vim/files/vim-add-knob-whether-elf.h-are-checked.patch
new file mode 100644
index 0000000..693d130
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/vim/files/vim-add-knob-whether-elf.h-are-checked.patch
@@ -0,0 +1,38 @@
+vim: add knob whether elf.h are checked
+
+Previously, it still was checked when there was no elf library in sysroots directory.
+Add knob to decide whether elf.h are checked or not.
+
+Upstream-status: Pending
+
+Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
+---
+ src/configure.in |    7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/src/configure.in b/src/configure.in
+index d734064..f504fa6 100644
+--- a/src/configure.in
++++ b/src/configure.in
+@@ -2483,11 +2483,18 @@ AC_TRY_COMPILE([#include <stdio.h>], [int x __attribute__((unused));],
+ 	AC_MSG_RESULT(no))
+ 
+ dnl Checks for header files.
++AC_MSG_CHECKING(whether or not to look for elf.h)
++AC_ARG_ENABLE(elf-check,
++        [  --enable-elf-check      If elfutils, check for elf.h [default=no]],
++        , enable_elf_check="no")
++AC_MSG_RESULT($enable_elf_check)
++if test "x$enable_elf_check" != "xno"; then
+ AC_CHECK_HEADER(elf.h, HAS_ELF=1)
+ dnl AC_CHECK_HEADER(dwarf.h, SVR4=1)
+ if test "$HAS_ELF" = 1; then
+   AC_CHECK_LIB(elf, main)
+ fi
++fi
+ 
+ AC_HEADER_DIRENT
+ 
+-- 
+1.7.9.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/vim/vim-tiny_7.4.769.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/vim/vim-tiny_7.4.769.bb
new file mode 100644
index 0000000..bb8f2b7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/vim/vim-tiny_7.4.769.bb
@@ -0,0 +1,13 @@
+require vim_${PV}.bb
+
+SUMMARY += " (with tiny features)"
+
+PACKAGECONFIG += "tiny"
+
+do_install() {
+    install -d ${D}/${bindir}
+    install -m 0755 ${S}/vim ${D}/${bindir}/vim.tiny
+}
+
+ALTERNATIVE_PRIORITY = "90"
+ALTERNATIVE_TARGET = "${bindir}/vim.tiny"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/vim/vim_7.4.769.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/vim/vim_7.4.769.bb
new file mode 100644
index 0000000..08e5027
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/vim/vim_7.4.769.bb
@@ -0,0 +1,109 @@
+SUMMARY = "Vi IMproved - enhanced vi editor"
+SECTION = "console/utils"
+DEPENDS = "ncurses gettext-native"
+# vimdiff doesn't like busybox diff
+RSUGGESTS_${PN} = "diffutils"
+LICENSE = "vim"
+LIC_FILES_CHKSUM = "file://../runtime/doc/uganda.txt;md5=c74ec0ada9a68354f9461e81d3596f61"
+
+SRC_URI = "git://github.com/vim/vim.git \
+           file://disable_acl_header_check.patch;patchdir=.. \
+           file://vim-add-knob-whether-elf.h-are-checked.patch;patchdir=.. \
+"
+SRCREV = "2693ca21cee8a729d74682fd86a4818f2b050228"
+
+S = "${WORKDIR}/git/src"
+
+VIMDIR = "vim${@d.getVar('PV',1).split('.')[0]}${@d.getVar('PV',1).split('.')[1]}"
+
+inherit autotools update-alternatives
+inherit autotools-brokensep
+
+# vim configure.in contains functions which got 'dropped' by autotools.bbclass
+do_configure () {
+    rm -f auto/*
+    touch auto/config.mk
+    aclocal
+    autoconf
+    oe_runconf
+    touch auto/configure
+    touch auto/config.mk auto/config.h
+}
+
+#Available PACKAGECONFIG options are gtkgui, acl, x11, tiny
+PACKAGECONFIG ??= ""
+PACKAGECONFIG += "${@bb.utils.contains('DISTRO_FEATURES', 'acl', 'acl', '', d)}"
+PACKAGECONFIG += "${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'selinux', '', d)}"
+
+PACKAGECONFIG[gtkgui] = "--enable-gtk2-test --enable-gui=gtk2,--enable-gui=no,gtk+,"
+PACKAGECONFIG[acl] = "--enable-acl,--disable-acl,acl,"
+PACKAGECONFIG[x11] = "--with-x,--without-x,xt,"
+PACKAGECONFIG[tiny] = "--with-features=tiny,--with-features=big,,"
+PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux,"
+PACKAGECONFIG[elfutils] = "--enable-elf-check,,elfutils,"
+
+EXTRA_OECONF = " \
+    --disable-gpm \
+    --disable-gtktest \
+    --disable-xim \
+    --disable-netbeans \
+    --with-tlib=ncurses \
+    ac_cv_small_wchar_t=no \
+    vim_cv_getcwd_broken=no \
+    vim_cv_memmove_handles_overlap=yes \
+    vim_cv_stat_ignores_slash=no \
+    vim_cv_terminfo=yes \
+    vim_cv_tgent=non-zero \
+    vim_cv_toupper_broken=no \
+    vim_cv_tty_group=world \
+    STRIP=/bin/true \
+"
+
+do_install() {
+    autotools_do_install
+
+    # Work around rpm picking up csh or awk or perl as a dep
+    chmod -x ${D}${datadir}/${BPN}/${VIMDIR}/tools/vim132
+    chmod -x ${D}${datadir}/${BPN}/${VIMDIR}/tools/mve.awk
+    chmod -x ${D}${datadir}/${BPN}/${VIMDIR}/tools/*.pl
+
+    # Install example vimrc from runtime files
+    install -m 0644 ../runtime/vimrc_example.vim ${D}/${datadir}/${BPN}/vimrc
+
+    # we use --with-features=big as default
+    mv ${D}${bindir}/${BPN} ${D}${bindir}/${BPN}.${BPN}
+}
+
+PARALLEL_MAKEINST = ""
+
+PACKAGES =+ "${PN}-common ${PN}-syntax ${PN}-help ${PN}-tutor ${PN}-vimrc"
+FILES_${PN}-syntax = "${datadir}/${BPN}/${VIMDIR}/syntax"
+FILES_${PN}-help = "${datadir}/${BPN}/${VIMDIR}/doc"
+FILES_${PN}-tutor = "${datadir}/${BPN}/${VIMDIR}/tutor ${bindir}/${BPN}tutor"
+FILES_${PN}-vimrc = "${datadir}/${BPN}/vimrc"
+FILES_${PN}-data = "${datadir}/${BPN}"
+FILES_${PN}-common = " \
+    ${datadir}/${BPN}/${VIMDIR}/*.vim \
+    ${datadir}/${BPN}/${VIMDIR}/autoload \
+    ${datadir}/${BPN}/${VIMDIR}/colors \
+    ${datadir}/${BPN}/${VIMDIR}/compiler \
+    ${datadir}/${BPN}/${VIMDIR}/ftplugin \
+    ${datadir}/${BPN}/${VIMDIR}/indent \
+    ${datadir}/${BPN}/${VIMDIR}/keymap \
+    ${datadir}/${BPN}/${VIMDIR}/lang \
+    ${datadir}/${BPN}/${VIMDIR}/macros \
+    ${datadir}/${BPN}/${VIMDIR}/plugin \
+    ${datadir}/${BPN}/${VIMDIR}/print \
+    ${datadir}/${BPN}/${VIMDIR}/spell \
+    ${datadir}/${BPN}/${VIMDIR}/tools \
+"
+
+RDEPENDS_${PN} = "ncurses-terminfo-base"
+# Recommend that runtime data is installed along with vim
+RRECOMMENDS_${PN} = "${PN}-syntax ${PN}-help ${PN}-tutor ${PN}-vimrc ${PN}-common"
+
+ALTERNATIVE_${PN} = "vi vim"
+ALTERNATIVE_TARGET = "${bindir}/${BPN}.${BPN}"
+ALTERNATIVE_LINK_NAME[vi] = "${base_bindir}/vi"
+ALTERNATIVE_LINK_NAME[vim] = "${bindir}/vim"
+ALTERNATIVE_PRIORITY = "100"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/wmiconfig/wmiconfig_svn.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/wmiconfig/wmiconfig_svn.bb
new file mode 100644
index 0000000..596a4e6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/wmiconfig/wmiconfig_svn.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Atheros 6K Wifi configuration utility"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://wmiconfig.c;endline=19;md5=4394a56bca1c5b2446c9f8e406c82911"
+SECTION = "console/network"
+SRCREV = "5394"
+PV = "0.0.0+svnr${SRCPV}"
+PR = "r2"
+
+SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=AR6kSDK.build_sw.18;protocol=http"
+S = "${WORKDIR}/AR6kSDK.build_sw.18/host/tools/wmiconfig"
+
+CLEANBROKEN = "1"
+
+EXTRA_OEMAKE = "-e MAKEFLAGS="
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+do_install() {
+    install -d ${D}${bindir}
+    install -m 0755 wmiconfig ${D}${bindir}
+}
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat-2.8.8/automake-foreign.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat-2.8.8/automake-foreign.patch
new file mode 100644
index 0000000..cfa2f6c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat-2.8.8/automake-foreign.patch
@@ -0,0 +1,11 @@
+--- a/configure.in	2014-08-18 01:25:43.911597023 -0700
++++ b/configure.in	2014-08-18 01:26:27.763786629 -0700
+@@ -8,7 +8,7 @@
+ AC_CONFIG_HEADERS([config.h])
+ AC_CONFIG_SRCDIR([configure.in])
+ 
+-AM_INIT_AUTOMAKE([1.9 dist-bzip2 subdir-objects no-define])
++AM_INIT_AUTOMAKE([1.9 foreign dist-bzip2 subdir-objects no-define])
+ 
+ AM_MAINTAINER_MODE
+ AC_PROG_CC
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat-2.8.8/fix-includes-for-separate-build.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat-2.8.8/fix-includes-for-separate-build.patch
new file mode 100644
index 0000000..4394e52
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat-2.8.8/fix-includes-for-separate-build.patch
@@ -0,0 +1,78 @@
+diff -ur xchat-2.8.8-orig/plugins/perl/perl.c xchat-2.8.8/plugins/perl/perl.c
+--- xchat-2.8.8-orig/plugins/perl/perl.c	2014-08-30 14:09:05.125116286 -0700
++++ xchat-2.8.8/plugins/perl/perl.c	2014-08-30 14:09:45.281106532 -0700
+@@ -31,7 +31,7 @@
+ #endif
+ 
+ #undef PACKAGE
+-#include "../../config.h"		  /* for #define OLD_PERL */
++#include <config.h>		  /* for #define OLD_PERL */
+ #include "xchat-plugin.h"
+ 
+ static xchat_plugin *ph;		  /* plugin handle */
+diff -ur xchat-2.8.8-orig/src/common/network.c xchat-2.8.8/src/common/network.c
+--- xchat-2.8.8-orig/src/common/network.c	2014-08-30 14:09:05.137116222 -0700
++++ xchat-2.8.8/src/common/network.c	2014-08-30 14:13:52.729116323 -0700
+@@ -24,7 +24,7 @@
+ #include <unistd.h>
+ #include <glib.h>
+ 
+-#include "../../config.h"				  /* grab USE_IPV6 and LOOKUPD defines */
++#include <config.h>				  /* grab USE_IPV6 and LOOKUPD defines */
+ 
+ #define WANTSOCKET
+ #define WANTARPA
+diff -ur xchat-2.8.8-orig/src/common/ssl.c xchat-2.8.8/src/common/ssl.c
+--- xchat-2.8.8-orig/src/common/ssl.c	2014-08-30 14:09:05.137116222 -0700
++++ xchat-2.8.8/src/common/ssl.c	2014-08-30 14:14:08.449133899 -0700
+@@ -23,7 +23,7 @@
+ #include <string.h>				  /* strncpy() */
+ #include "ssl.h"					  /* struct cert_info */
+ #include "inet.h"
+-#include "../../config.h"		  /* HAVE_SNPRINTF */
++#include <config.h>		  /* HAVE_SNPRINTF */
+ 
+ #ifndef HAVE_SNPRINTF
+ #define snprintf g_snprintf
+diff -ur xchat-2.8.8-orig/src/common/util.c xchat-2.8.8/src/common/util.c
+--- xchat-2.8.8-orig/src/common/util.c	2014-08-30 14:09:05.133116243 -0700
++++ xchat-2.8.8/src/common/util.c	2014-08-30 14:10:23.633116070 -0700
+@@ -41,7 +41,7 @@
+ #include "xchatc.h"
+ #include <ctype.h>
+ #include "util.h"
+-#include "../../config.h"
++#include <config.h>
+ 
+ #define WANTSOCKET
+ #include "inet.h"
+diff -ur xchat-2.8.8-orig/src/common/xchat.h xchat-2.8.8/src/common/xchat.h
+--- xchat-2.8.8-orig/src/common/xchat.h	2014-08-30 14:09:05.133116243 -0700
++++ xchat-2.8.8/src/common/xchat.h	2014-08-30 14:13:42.797116472 -0700
+@@ -1,4 +1,4 @@
+-#include "../../config.h"
++#include <config.h>
+ 
+ #include <glib.h>
+ #include <time.h>			/* need time_t */
+diff -ur xchat-2.8.8-orig/src/fe-gtk/fe-gtk.h xchat-2.8.8/src/fe-gtk/fe-gtk.h
+--- xchat-2.8.8-orig/src/fe-gtk/fe-gtk.h	2014-08-30 14:09:05.129116272 -0700
++++ xchat-2.8.8/src/fe-gtk/fe-gtk.h	2014-08-30 14:10:13.309115951 -0700
+@@ -1,4 +1,4 @@
+-#include "../../config.h"
++#include <config.h>
+ 
+ #ifdef WIN32
+ /* If you're compiling this for Windows, your release is un-official
+diff -ur xchat-2.8.8-orig/src/fe-gtk/xtext.c xchat-2.8.8/src/fe-gtk/xtext.c
+--- xchat-2.8.8-orig/src/fe-gtk/xtext.c	2014-08-30 14:09:05.129116272 -0700
++++ xchat-2.8.8/src/fe-gtk/xtext.c	2014-08-30 14:10:00.313138254 -0700
+@@ -51,7 +51,7 @@
+ #include <gtk/gtkwindow.h>
+ 
+ #ifdef XCHAT
+-#include "../../config.h"			/* can define USE_XLIB here */
++#include <config.h>			/* can define USE_XLIB here */
+ #else
+ #define USE_XLIB
+ #endif
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat-2.8.8/glib-2.32.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat-2.8.8/glib-2.32.patch
new file mode 100644
index 0000000..c9bce6a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat-2.8.8/glib-2.32.patch
@@ -0,0 +1,44 @@
+--- xchat-2.8.8.orig/src/common/xchat.h	2009-08-16 11:40:16.000000000 +0200
++++ xchat-2.8.8/src/common/xchat.h	2012-05-06 08:30:16.125755497 +0200
+@@ -1,10 +1,6 @@
+ #include "../../config.h"
+ 
+-#include <glib/gslist.h>
+-#include <glib/glist.h>
+-#include <glib/gutils.h>
+-#include <glib/giochannel.h>
+-#include <glib/gstrfuncs.h>
++#include <glib.h>
+ #include <time.h>			/* need time_t */
+ 
+ #ifndef XCHAT_H
+--- xchat-2.8.8.orig/src/common/servlist.c	2010-05-16 09:24:26.000000000 +0200
++++ xchat-2.8.8/src/common/servlist.c	2012-05-06 08:30:45.681758019 +0200
+@@ -24,7 +24,6 @@
+ #include <unistd.h>
+ 
+ #include "xchat.h"
+-#include <glib/ghash.h>
+ 
+ #include "cfgfiles.h"
+ #include "fe.h"
+--- xchat-2.8.8.orig/src/common/util.c	2009-08-16 11:40:16.000000000 +0200
++++ xchat-2.8.8/src/common/util.c	2012-05-06 08:31:10.389760122 +0200
+@@ -39,7 +39,6 @@
+ #include <errno.h>
+ #include "xchat.h"
+ #include "xchatc.h"
+-#include <glib/gmarkup.h>
+ #include <ctype.h>
+ #include "util.h"
+ #include "../../config.h"
+--- xchat-2.8.8.orig/src/common/text.c	2010-05-30 04:14:41.000000000 +0200
++++ xchat-2.8.8/src/common/text.c	2012-05-06 08:31:22.300761137 +0200
+@@ -28,7 +28,6 @@
+ #include <sys/mman.h>
+ 
+ #include "xchat.h"
+-#include <glib/ghash.h>
+ #include "cfgfiles.h"
+ #include "chanopt.h"
+ #include "plugin.h"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat_2.8.8.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat_2.8.8.bb
new file mode 100644
index 0000000..6da11cd
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/xchat/xchat_2.8.8.bb
@@ -0,0 +1,37 @@
+SUMMARY = "Full-featured IRC chat client with scripting support"
+LICENSE = "GPLv2+"
+HOMEPAGE = "http://www.xchat.org"
+SECTION = "x11/network"
+
+DEPENDS = "libgcrypt zlib gtk+ libsexy"
+DEPENDS += "gdk-pixbuf-native"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b"
+
+PR = "r2"
+
+SRC_URI = "http://xchat.org/files/source/2.8/xchat-${PV}.tar.bz2 \
+    file://glib-2.32.patch \
+    file://automake-foreign.patch \
+    file://fix-includes-for-separate-build.patch \
+"
+
+inherit autotools gettext pkgconfig
+
+PACKAGECONFIG ??= "dbus"
+PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus-glib"
+PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl"
+PACKAGECONFIG[python] = "--enable-python,--disable-python,python"
+
+EXTRA_OECONF = "\
+    --enable-maintainer-mode \
+    --disable-perl \
+    --disable-tcl \
+"
+
+RDEPENDS_${PN} += "dbus"
+FILES_${PN} += "${datadir}/dbus-1"
+FILES_${PN}-dbg += "${libdir}/xchat/plugins/.debug"
+
+SRC_URI[md5sum] = "6775c44f38e84d06c06c336b32c4a452"
+SRC_URI[sha256sum] = "0d6d69437b5e1e45f3e66270fe369344943de8a1190e498fafa5296315a27db0"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/xdelta/xdelta3_3.0.11.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/xdelta/xdelta3_3.0.11.bb
new file mode 100644
index 0000000..9669d9b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/xdelta/xdelta3_3.0.11.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Xdelta is a tool for differential compression"
+DESCRIPTION = "Open-source binary diff, differential compression tools, \
+               VCDIFF (RFC 3284) delta compression."
+HOMEPAGE = "http://xdelta.org/"
+SECTION = "console/utils"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833"
+SRC_URI = "https://github.com/jmacd/xdelta-devel/releases/download/v${PV}/${BPN}-${PV}.tar.gz  \
+          "
+SRC_URI[md5sum] = "445d8be2ac512113d5ca601ae8359626"
+SRC_URI[sha256sum] = "0ccc9751ceaa4d90d6b06938a4deddb481816f5d9284bd07d2e728609cb300aa"
+
+inherit autotools
+
+# Optional secondary compression
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[lzma] = "--with-liblzma,--without-liblzma,xz"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/xmlstarlet/files/0001-usage2c.awk-fix-wrong-basename-regexp.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/xmlstarlet/files/0001-usage2c.awk-fix-wrong-basename-regexp.patch
new file mode 100644
index 0000000..24b187f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/xmlstarlet/files/0001-usage2c.awk-fix-wrong-basename-regexp.patch
@@ -0,0 +1,37 @@
+Upstream-Status: Submitted [sourceforge]
+
+From 75d789d0ea9716c9a9ae72f42a2fcfa907cf4a12 Mon Sep 17 00:00:00 2001
+From: Matthieu Crapet <mcrapet@gmail.com>
+Date: Mon, 30 Jun 2014 13:52:25 +0200
+Subject: [PATCH] usage2c.awk: fix wrong basename regexp
+
+Previously not matching with filename argument with absolute path.
+
+Signed-off-by: Matthieu Crapet <mcrapet@gmail.com>
+---
+ usage2c.awk | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/usage2c.awk b/usage2c.awk
+index 94b897a..9aea212 100755
+--- a/usage2c.awk
++++ b/usage2c.awk
+@@ -6,13 +6,13 @@ BEGIN {
+ }
+ 
+ # text in src/foo-bar.txt results in
+-#   static const char foo_text[] = {
++#   static const char foo_bar[] = {
+ #     't', 'h', 'e', ' ', 't', 'e', 'x', 't', ...
+ #   }
+ length(command_name) == 0 {
+     command_name = FILENAME;
+     sub(/\.txt$/, "", command_name);
+-    sub(/^([^\/]+\/)*/, "", command_name);
++    sub(/^.*\//, "", command_name);
+     gsub(/-/, "_", command_name);
+     printf("static const char %s[] = {\n", command_name);
+     progs = 0;
+-- 
+2.0.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/xmlstarlet/files/configure.ac.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/xmlstarlet/files/configure.ac.patch
new file mode 100644
index 0000000..e55f4f3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/xmlstarlet/files/configure.ac.patch
@@ -0,0 +1,28 @@
+configure.ac: don't use xml-config if --with-libxml-prefix is specified to configure
+
+Same behavior for xslt-config.
+
+diff --git a/configure.ac b/configure.ac
+index ed04e0c..39d5d4c 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -40,7 +40,8 @@ AC_ARG_PROGRAM          dnl Transforming Program Names When Installing
+ AC_PROG_SED
+ AC_PROG_AWK
+ 
+-XSTAR_LIB_CHECK([LIBXML], [xml2-config])
++AS_IF([test "x$LIBXML_PREFIX" = x],
++      [XSTAR_LIB_CHECK([LIBXML], [xml2-config])])
+ 
+ AS_IF([test "x$LIBXML_SRCDIR" != x],
+       [LIBXML_INCDIR="$LIBXML_SRCDIR/include"])
+@@ -56,7 +57,8 @@ AS_IF([test "x$STATIC_LIBS" != xno],
+ [LIBXML_LDFLAGS="-L$LIBXML_LIBDIR"]
+ 
+ 
+-XSTAR_LIB_CHECK([LIBXSLT], [xslt-config])
++AS_IF([test "x$LIBXSLT_PREFIX" = x],
++      [XSTAR_LIB_CHECK([LIBXSLT], [xslt-config])])
+ 
+ AS_IF([test "x$LIBXSLT_SRCDIR" != x],
+       [XSLTPROC_PATH="$LIBXSLT_SRCDIR/xsltproc:$PATH"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/xmlstarlet/xmlstarlet_1.5.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/xmlstarlet/xmlstarlet_1.5.0.bb
new file mode 100644
index 0000000..bf99aff
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/xmlstarlet/xmlstarlet_1.5.0.bb
@@ -0,0 +1,33 @@
+SUMMARY = "Command line XML toolkit"
+DESCRIPTION = "XMLStarlet is a command line XML toolkit which can be used to \
+               transform, query, validate, and edit XML documents and files \
+               using  simple set of shell commands in similar way it is done \
+               for plain text files using grep/sed/awk/tr/diff/patch."
+HOMEPAGE = "http://xmlstar.sourceforge.net/"
+BUGTRACKER = "http://xmlstar.sourceforge.net/bugs/"
+
+SECTION = "console/utils"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c04760d09e8b0fe73283d0cc9e8bea53"
+
+DEPENDS = "libxml2 libxslt"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/xmlstar/${BP}.tar.gz \
+           file://configure.ac.patch \
+           file://0001-usage2c.awk-fix-wrong-basename-regexp.patch"
+SRC_URI[md5sum] = "0c6db295d0cf9ff0d439edb755b7e8f6"
+SRC_URI[sha256sum] = "47b4ed042ea2909257f2a386001af49fceb303f84da7214779ccf99fffc6bbba"
+
+inherit autotools
+
+# doc build: requires (native) xstlproc, fop, pdf2ps
+EXTRA_OECONF="--disable-build-docs \
+  --with-libxml-prefix=${STAGING_LIBDIR}/.. \
+  --with-libxslt-prefix=${STAGING_LIBDIR}/.."
+
+#Makefile:2116: recipe for target 'src/elem-usage.c' failed
+#make[1]: *** [src/elem-usage.c] Error 1
+#/bin/bash: src/escape-usage.c: No such file or directory
+#Makefile:2116: recipe for target 'src/escape-usage.c' failed
+#make[1]: *** [src/escape-usage.c] Error 1
+PARALLEL_MAKE = ""
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/zile/files/remove-help2man.patch b/import-layers/meta-openembedded/meta-oe/recipes-support/zile/files/remove-help2man.patch
new file mode 100644
index 0000000..c1a63f4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/zile/files/remove-help2man.patch
@@ -0,0 +1,28 @@
+Upstream-Status: Inappropriate [configuration]
+
+diff --git a/Makefile.am b/Makefile.am
+index 54bc59f..46c2650 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -36,7 +36,6 @@ PERL_BUILDTIME =					\
+ 
+ EXTRA_DIST =						\
+ 	FAQ						\
+-	build-aux/zile-help2man-wrapper			\
+ 	$(PERL_BUILDTIME)
+ 
+ doc_DATA = AUTHORS FAQ NEWS
+diff --git a/doc/Makefile.am b/doc/Makefile.am
+index 639f59c..8c5123e 100644
+--- a/doc/Makefile.am
++++ b/doc/Makefile.am
+@@ -33,9 +33,3 @@ doc/zile.1: $(srcdir)/doc/zile.1.in doc/Makefile.am config.status
+ 	$(edit) $(abs_srcdir)/doc/zile.1.in >$@.tmp
+ 	mv $@.tmp $@
+ 
+-$(srcdir)/doc/zile.1.in: doc/man-extras build-aux/zile-help2man-wrapper configure.ac $(builddir)/src/zile$(EXEEXT)
+-	@test -d doc || mkdir doc
+-## Exit gracefully if zile.1.in is not writeable, such as during distcheck!
+-	$(AM_V_GEN)if ( touch $@.w && rm -f $@.w; ) >/dev/null 2>&1; then \
+-	  $(srcdir)/build-aux/missing --run $(HELP2MAN) --output=$@ --no-info --name="Zile Is Lossy Emacs" --include $(srcdir)/doc/man-extras $(srcdir)/build-aux/zile-help2man-wrapper; \
+-	fi
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-support/zile/zile_2.4.9.bb b/import-layers/meta-openembedded/meta-oe/recipes-support/zile/zile_2.4.9.bb
new file mode 100644
index 0000000..2551a80
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-support/zile/zile_2.4.9.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Zile is lossy Emacs"
+HOMEPAGE = "http://zile.sourceforge.net/"
+DEPENDS = "ncurses bdwgc"
+
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+SRC_URI = "http://ftp.gnu.org/gnu/zile/${BP}.tar.gz \
+           file://remove-help2man.patch \
+"
+
+SRC_URI[md5sum] = "84a0af58fb4fbe3af16bde2ef2b8f5ae"
+SRC_URI[sha256sum] = "c71959c7aca02ac66be526ecccbc7954fb0ea7591ed3c13311a95e8f040b0049"
+
+inherit autotools
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-test/fwts/fwts_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-test/fwts/fwts_git.bb
new file mode 100644
index 0000000..b943d6d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-test/fwts/fwts_git.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Firmware testsuite"
+DESCRIPTION = "The tool fwts comprises of over fifty tests that are designed to exercise and test different aspects of a machine's firmware. Many of these tests need super user access to read BIOS data and ACPI tables, so the tool requires running with super user privileges (e.g. with sudo)."
+HOMEPAGE = "https://wiki.ubuntu.com/Kernel/Reference/fwts"
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://src/main.c;beginline=1;endline=16;md5=deb8af5388e838d133eaa036f4d1496f"
+
+PV = "14.12.00"
+
+SRCREV = "efc18d16294f492b7f72bba64344b2eed50e6a69"
+SRC_URI = "git://kernel.ubuntu.com/hwe/fwts.git"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "libpcre json-c glib-2.0"
+
+inherit autotools-brokensep
+
+CFLAGS += "-I${STAGING_INCDIR}/json-c"
+
+FILES_${PN} += "${libdir}/fwts/lib*${SOLIBS}"
+FILES_${PN}-dev += "${libdir}/fwts/lib*${SOLIBSDEV} ${libdir}/fwts/lib*.la"
+FILES_${PN}-staticdev += "${libdir}/fwts/lib*a"
+FILES_${PN}-dbg += "${libdir}/fwts/.debug"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-test/gmock/gmock/cmake-Add-install-command-for-libraries-and-headers.patch b/import-layers/meta-openembedded/meta-oe/recipes-test/gmock/gmock/cmake-Add-install-command-for-libraries-and-headers.patch
new file mode 100644
index 0000000..92a6393
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-test/gmock/gmock/cmake-Add-install-command-for-libraries-and-headers.patch
@@ -0,0 +1,40 @@
+From ba0a7d65c918cb7e3f2073553c4cc7af5858ed03 Mon Sep 17 00:00:00 2001
+From: Otavio Salvador <otavio@ossystems.com.br>
+Date: Thu, 31 Jul 2014 16:54:00 -0300
+Subject: [PATCH] cmake: Add install command for libraries and headers
+Organization: O.S. Systems Software LTDA.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
+---
+ CMakeLists.txt | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 572d044..90e797a 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -63,6 +63,8 @@ include_directories("${gmock_SOURCE_DIR}/include"
+                     # Test sources.
+                     "${gtest_SOURCE_DIR}")
+ 
++install(DIRECTORY ${gmock_SOURCE_DIR}/include/gmock DESTINATION include)
++
+ ########################################################################
+ #
+ # Defines the gmock & gmock_main libraries.  User tests should link
+@@ -82,6 +84,10 @@ cxx_library(gmock_main
+             src/gmock-all.cc
+             src/gmock_main.cc)
+ 
++
++install(TARGETS gmock DESTINATION lib)
++install(TARGETS gmock_main DESTINATION lib)
++
+ ########################################################################
+ #
+ # Google Mock's own tests.
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-test/gmock/gmock/cmake-gmock.pc.in-Add-pkg-config-support.patch b/import-layers/meta-openembedded/meta-oe/recipes-test/gmock/gmock/cmake-gmock.pc.in-Add-pkg-config-support.patch
new file mode 100644
index 0000000..aa38fe4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-test/gmock/gmock/cmake-gmock.pc.in-Add-pkg-config-support.patch
@@ -0,0 +1,56 @@
+From 45661183a7c78d8c4f75adcf53c6ddd663dc8b2d Mon Sep 17 00:00:00 2001
+From: Mario Domenech Goulart <mario@ossystems.com.br>
+Date: Mon, 20 Oct 2014 17:12:58 -0200
+Subject: [PATCH] CMakeLists, gmock.pc.in: Add pkg-config support
+Organization: O.S. Systems Software LTDA.
+
+Signed-off-by: Mario Domenech Goulart <mario@ossystems.com.br>
+---
+ CMakeLists.txt | 7 ++++++-
+ gmock.pc.in    | 9 +++++++++
+ 2 files changed, 15 insertions(+), 1 deletion(-)
+ create mode 100644 gmock.pc.in
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 90e797a..98fd824 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -27,6 +27,9 @@ if (COMMAND pre_project_set_up_hermetic_build)
+   pre_project_set_up_hermetic_build()
+ endif()
+ 
++# pkg-config support
++configure_file("gmock.pc.in" "gmock.pc" @ONLY)
++
+ ########################################################################
+ #
+ # Project-wide settings
+@@ -87,7 +90,9 @@ cxx_library(gmock_main
+ 
+ install(TARGETS gmock DESTINATION lib)
+ install(TARGETS gmock_main DESTINATION lib)
+-
++install(FILES "${CMAKE_CURRENT_BINARY_DIR}/gmock.pc"
++    DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig/"
++)  
+ ########################################################################
+ #
+ # Google Mock's own tests.
+diff --git a/gmock.pc.in b/gmock.pc.in
+new file mode 100644
+index 0000000..08ad8d2
+--- /dev/null
++++ b/gmock.pc.in
+@@ -0,0 +1,9 @@
++Name: libgmock
++Version: 1.7.0
++Description: Google's framework for writing C++ tests on a variety of platforms
++ 
++prefix=@CMAKE_INSTALL_PREFIX@
++includedir=${prefix}/include
++libdir=${prefix}/lib
++Cflags:-I${includedir}/gmock
++Libs: -L${libdir} -lgmock -lgmock_main
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-test/gmock/gmock_1.7.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-test/gmock/gmock_1.7.0.bb
new file mode 100644
index 0000000..a537f4c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-test/gmock/gmock_1.7.0.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "Google C++ Mocking Framework"
+SECTION = "libs"
+HOMEPAGE = "http://code.google.com/p/googlemock/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=cbbd27594afd089daa160d3a16dd515a"
+
+SRC_URI = "\
+    http://googlemock.googlecode.com/files/${BPN}-${PV}.zip \
+    file://cmake-Add-install-command-for-libraries-and-headers.patch \
+    file://cmake-gmock.pc.in-Add-pkg-config-support.patch \
+"
+
+SRC_URI[md5sum] = "073b984d8798ea1594f5e44d85b20d66"
+SRC_URI[sha256sum] = "26fcbb5925b74ad5fc8c26b0495dfc96353f4d553492eb97e85a8a6d2f43095b"
+
+inherit lib_package cmake
+
+ALLOW_EMPTY_${PN} = "1"
+ALLOW_EMPTY_${PN}-dbg = "1"
+
+RDEPENDS_${PN}-dev += "${PN}-staticdev"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-test/gtest/gtest/CMakeLists-gtest.pc.in-Add-pkg-config-support-to-gte.patch b/import-layers/meta-openembedded/meta-oe/recipes-test/gtest/gtest/CMakeLists-gtest.pc.in-Add-pkg-config-support-to-gte.patch
new file mode 100644
index 0000000..1ece136
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-test/gtest/gtest/CMakeLists-gtest.pc.in-Add-pkg-config-support-to-gte.patch
@@ -0,0 +1,55 @@
+From d4b25ce723812faf78d8ee038b7cbed00cbba682 Mon Sep 17 00:00:00 2001
+From: Rodrigo Caimi <caimi@datacom.ind.br>
+Date: Tue, 7 Oct 2014 15:37:10 -0300
+Subject: [PATCH] CMakeLists, gtest.pc.in: Add pkg-config support to gtest
+ 1.7.0
+
+Signed-off-by: Rodrigo Caimi <caimi@datacom.ind.br>
+---
+ CMakeLists.txt | 6 ++++++
+ gtest.pc.in    | 9 +++++++++
+ 2 files changed, 15 insertions(+)
+ create mode 100644 gtest.pc.in
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 281c4c2..e4354a8 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -29,6 +29,9 @@ if (COMMAND pre_project_set_up_hermetic_build)
+   pre_project_set_up_hermetic_build()
+ endif()
+ 
++# pkg-config support
++configure_file("gtest.pc.in" "gtest.pc" @ONLY)
++
+ ########################################################################
+ #
+ # Project-wide settings
+@@ -75,6 +78,9 @@ target_link_libraries(gtest_main gtest)
+ 
+ install(TARGETS gtest DESTINATION lib)
+ install(TARGETS gtest_main DESTINATION lib)
++install(FILES "${CMAKE_CURRENT_BINARY_DIR}/gtest.pc"
++    DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig/"
++)
+ 
+ ########################################################################
+ #
+diff --git a/gtest.pc.in b/gtest.pc.in
+new file mode 100644
+index 0000000..57b1049
+--- /dev/null
++++ b/gtest.pc.in
+@@ -0,0 +1,9 @@
++Name: libgtest
++Version: 1.7.0
++Description: Google's framework for writing C++ tests on a variety of platforms
++
++prefix=@CMAKE_INSTALL_PREFIX@
++includedir=${prefix}/include
++libdir=${prefix}/lib
++Cflags:-I${includedir}/gtest
++Libs: -L${libdir} -lgtest -lgtest_main
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-test/gtest/gtest/cmake-Add-install-command-for-libraries-and-headers.patch b/import-layers/meta-openembedded/meta-oe/recipes-test/gtest/gtest/cmake-Add-install-command-for-libraries-and-headers.patch
new file mode 100644
index 0000000..0c160b0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-test/gtest/gtest/cmake-Add-install-command-for-libraries-and-headers.patch
@@ -0,0 +1,39 @@
+From 5318983562be6babeb5a6996e7dda4b31acfdba8 Mon Sep 17 00:00:00 2001
+From: Otavio Salvador <otavio@ossystems.com.br>
+Date: Wed, 30 Jul 2014 16:49:53 -0300
+Subject: [PATCH] cmake: Add install command for libraries and headers
+Organization: O.S. Systems Software LTDA.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
+---
+ CMakeLists.txt | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 57470c8..281c4c2 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -56,6 +56,8 @@ include_directories(
+   ${gtest_SOURCE_DIR}/include
+   ${gtest_SOURCE_DIR})
+ 
++install(DIRECTORY ${gtest_SOURCE_DIR}/include/gtest DESTINATION include)
++
+ # Where Google Test's libraries can be found.
+ link_directories(${gtest_BINARY_DIR}/src)
+ 
+@@ -71,6 +73,9 @@ cxx_library(gtest "${cxx_strict}" src/gtest-all.cc)
+ cxx_library(gtest_main "${cxx_strict}" src/gtest_main.cc)
+ target_link_libraries(gtest_main gtest)
+ 
++install(TARGETS gtest DESTINATION lib)
++install(TARGETS gtest_main DESTINATION lib)
++
+ ########################################################################
+ #
+ # Samples on how to link user tests with gtest or gtest_main.
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-test/gtest/gtest_1.7.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-test/gtest/gtest_1.7.0.bb
new file mode 100644
index 0000000..edeeab6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-test/gtest/gtest_1.7.0.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "Google's framework for writing C++ tests"
+HOMEPAGE = "http://code.google.com/p/googletest/"
+SECTION = "libs"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=cbbd27594afd089daa160d3a16dd515a"
+
+SRC_URI = "\
+    http://googletest.googlecode.com/files/${BPN}-${PV}.zip \
+    file://cmake-Add-install-command-for-libraries-and-headers.patch \
+    file://CMakeLists-gtest.pc.in-Add-pkg-config-support-to-gte.patch \
+"
+
+SRC_URI[md5sum] = "2d6ec8ccdf5c46b05ba54a9fd1d130d7"
+SRC_URI[sha256sum] = "247ca18dd83f53deb1328be17e4b1be31514cedfc1e3424f672bf11fd7e0d60d"
+
+inherit lib_package cmake
+
+ALLOW_EMPTY_${PN} = "1"
+ALLOW_EMPTY_${PN}-dbg = "1"
+
+RDEPENDS_${PN}-dev += "${PN}-staticdev"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/meta-openembedded/meta-oe/site/endian-big b/import-layers/meta-openembedded/meta-oe/site/endian-big
new file mode 100644
index 0000000..3a968e3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/site/endian-big
@@ -0,0 +1,2 @@
+# rp-pppoe
+rpppoe_cv_pack_bitfields=${rpppoe_cv_pack_bitfields=normal}
diff --git a/import-layers/meta-openembedded/meta-oe/site/endian-little b/import-layers/meta-openembedded/meta-oe/site/endian-little
new file mode 100644
index 0000000..0bcd966
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/site/endian-little
@@ -0,0 +1,2 @@
+# rp-pppoe
+rpppoe_cv_pack_bitfields=${rpppoe_cv_pack_bitfields=rev}