diff --git a/classes/catkin.bbclass b/classes/catkin.bbclass
index e865d50f7e6ea8712435a66e984ada293e494b6f..e34178f04769fd8c8ddd7b306c5e97a22a41ab4d 100644
--- a/classes/catkin.bbclass
+++ b/classes/catkin.bbclass
@@ -6,7 +6,6 @@ inherit cmake distutils-base
 
 DEPENDS_prepend = "${@['catkin-native ', ''][d.getVar('BPN', True) == 'catkin']}"
 
-
 EXTRA_OECMAKE_CATKIN = "\
     -DCMAKE_PREFIX_PATH='${STAGING_DIR_HOST}/usr;${STAGING_DIR_NATIVE}/usr' \
     "
@@ -37,9 +36,7 @@ ROS_BP = "${BPN}-${PV}"
 FILES_${PN} += "\
     ${prefix}/etc \
     ${datadir}/ros/config/${ROS_BPN}.config \
-    ${datadir}/${ROS_BPN}/conf \
-    ${datadir}/${ROS_BPN}/scripts \
-    ${datadir}/${ROS_BPN}/msg \
+    ${datadir}/${ROS_BPN} \
     "
 
 FILES_${PN}-dev += "\
@@ -47,3 +44,5 @@ FILES_${PN}-dev += "\
     ${datadir}/${ROS_BPN}/package.xml \
     ${datadir}/${ROS_BPN}/*.template \
     "
+
+BBCLASSEXTEND += "native"
diff --git a/recipes-ros/catkin/catkin/0001-CATKIN_WORKSPACES-Don-t-require-.catkin-file.patch b/recipes-ros/catkin/catkin/0001-CATKIN_WORKSPACES-Don-t-require-.catkin-file.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a69f576b8d8c13666b76ac076321dcfb0cec7459
--- /dev/null
+++ b/recipes-ros/catkin/catkin/0001-CATKIN_WORKSPACES-Don-t-require-.catkin-file.patch
@@ -0,0 +1,54 @@
+From a34e7d9d7f77c123cb8cbf464ead628f97e42fd4 Mon Sep 17 00:00:00 2001
+From: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
+Date: Wed, 13 Mar 2013 11:49:17 +0100
+Subject: [PATCH] CATKIN_WORKSPACES: Don't require .catkin file
+
+Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
+---
+ cmake/all.cmake                            |    8 +++-----
+ cmake/list_insert_in_workspace_order.cmake |    9 ++++-----
+ 2 files changed, 7 insertions(+), 10 deletions(-)
+
+diff --git a/cmake/all.cmake b/cmake/all.cmake
+index 83da965..a5f9df9 100644
+--- a/cmake/all.cmake
++++ b/cmake/all.cmake
+@@ -44,11 +44,9 @@ set(CMAKE_PREFIX_PATH_AS_IS ${CMAKE_PREFIX_PATH})
+ # list of unique catkin workspaces based on CMAKE_PREFIX_PATH
+ set(CATKIN_WORKSPACES "")
+ foreach(path ${CMAKE_PREFIX_PATH})
+-  if(EXISTS "${path}/.catkin")
+-    list(FIND CATKIN_WORKSPACES ${path} _index)
+-    if(_index EQUAL -1)
+-      list(APPEND CATKIN_WORKSPACES ${path})
+-    endif()
++  list(FIND CATKIN_WORKSPACES ${path} _index)
++  if(_index EQUAL -1)
++    list(APPEND CATKIN_WORKSPACES ${path})
+   endif()
+ endforeach()
+ if(CATKIN_WORKSPACES)
+diff --git a/cmake/list_insert_in_workspace_order.cmake b/cmake/list_insert_in_workspace_order.cmake
+index 57ade4a..46887af 100644
+--- a/cmake/list_insert_in_workspace_order.cmake
++++ b/cmake/list_insert_in_workspace_order.cmake
+@@ -4,12 +4,11 @@
+ set(CATKIN_ORDERED_SPACES "")
+ foreach(_space ${CATKIN_DEVEL_PREFIX} ${CATKIN_WORKSPACES})
+   list(APPEND CATKIN_ORDERED_SPACES ${_space})
+-  if(NOT EXISTS "${_space}/.catkin")
+-    message(FATAL_ERROR "The path '${_space}' is in CATKIN_WORKSPACES but does not have a .catkin file")
++  if(EXISTS "${_space}/.catkin")
++    # prepend to existing list of sourcespaces
++    file(READ "${_space}/.catkin" _sourcespaces)
++    list(APPEND CATKIN_ORDERED_SPACES ${_sourcespaces})
+   endif()
+-  # prepend to existing list of sourcespaces
+-  file(READ "${_space}/.catkin" _sourcespaces)
+-  list(APPEND CATKIN_ORDERED_SPACES ${_sourcespaces})
+ endforeach()
+ 
+ debug_message(10 "CATKIN_ORDERED_SPACES ${CATKIN_ORDERED_SPACES}")
+-- 
+1.7.0.4
+
diff --git a/recipes-ros/catkin/catkin/0001-pkgConfig.cmake-use-filenames-in-PKG_CFG_EXTRAS.patch b/recipes-ros/catkin/catkin/0001-pkgConfig.cmake-use-filenames-in-PKG_CFG_EXTRAS.patch
deleted file mode 100644
index 4f5d2ba7eaf2bd238cc0c80ed17f020dcb412f8d..0000000000000000000000000000000000000000
--- a/recipes-ros/catkin/catkin/0001-pkgConfig.cmake-use-filenames-in-PKG_CFG_EXTRAS.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-From 0f10cb9e60b4556e80535c4d67183f056520f4ab Mon Sep 17 00:00:00 2001
-From: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
-Date: Tue, 26 Feb 2013 16:46:27 +0100
-Subject: [PATCH 1/2] pkgConfig.cmake: use filenames in PKG_CFG_EXTRAS
-
-Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
----
- cmake/catkin_package.cmake         |   16 ++++++++++------
- cmake/templates/pkgConfig.cmake.in |    4 +++-
- 2 files changed, 13 insertions(+), 7 deletions(-)
-
-diff --git a/cmake/catkin_package.cmake b/cmake/catkin_package.cmake
-index 7c37d03..c758dae 100644
---- a/cmake/catkin_package.cmake
-+++ b/cmake/catkin_package.cmake
-@@ -328,7 +328,7 @@ function(_catkin_package)
-         ${CMAKE_CURRENT_BINARY_DIR}/catkin_generated/${extra}.develspace.context.cmake.py
-         ${em_template}
-         ${CATKIN_DEVEL_PREFIX}/share/${PROJECT_NAME}/cmake/${extra})
--      list(APPEND PKG_CFG_EXTRAS ${CATKIN_DEVEL_PREFIX}/share/${PROJECT_NAME}/cmake/${extra})
-+      list(APPEND PKG_CFG_EXTRAS ${extra})
-     elseif(EXISTS ${base}.in OR EXISTS ${base}.develspace.in)
-       if(EXISTS ${base}.develspace.in)
-         set(in_template ${base}.develspace.in)
-@@ -339,9 +339,13 @@ function(_catkin_package)
-         ${CATKIN_DEVEL_PREFIX}/share/${PROJECT_NAME}/cmake/${extra}
-         @ONLY
-       )
--      list(APPEND PKG_CFG_EXTRAS ${CATKIN_DEVEL_PREFIX}/share/${PROJECT_NAME}/cmake/${extra})
-+      list(APPEND PKG_CFG_EXTRAS ${extra})
-     elseif(EXISTS ${base})
--      list(APPEND PKG_CFG_EXTRAS ${base})
-+      configure_file(${base}
-+        ${CATKIN_DEVEL_PREFIX}/share/${PROJECT_NAME}/cmake/${extra}
-+        COPYONLY
-+      )
-+      list(APPEND PKG_CFG_EXTRAS ${extra})
-     elseif(NOT EXISTS ${base}.installspace.em AND NOT EXISTS ${base}.installspace.in)
-       message(FATAL_ERROR "catkin_package() could not find CFG_EXTRAS file.  Either 'cmake/${extra}.develspace.em', 'cmake/${extra}.em', 'cmake/${extra}.develspace.in', 'cmake/${extra}.in', 'cmake/${extra}' or a variant specific to the installspace must exist.")
-     endif()
-@@ -430,7 +434,7 @@ function(_catkin_package)
-         ${em_template}
-         ${CMAKE_CURRENT_BINARY_DIR}/catkin_generated/installspace/${extra})
-       list(APPEND installable_cfg_extras ${CMAKE_CURRENT_BINARY_DIR}/catkin_generated/installspace/${extra})
--      list(APPEND PKG_CFG_EXTRAS ${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}/cmake/${extra})
-+      list(APPEND PKG_CFG_EXTRAS ${extra})
-     elseif(EXISTS ${base}.in OR EXISTS ${base}.installspace.in)
-       if(EXISTS ${base}.installspace.in)
-         set(in_template ${base}.installspace.in)
-@@ -442,10 +446,10 @@ function(_catkin_package)
-         @ONLY
-       )
-       list(APPEND installable_cfg_extras ${CMAKE_CURRENT_BINARY_DIR}/catkin_generated/installspace/${extra})
--      list(APPEND PKG_CFG_EXTRAS ${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}/cmake/${extra})
-+      list(APPEND PKG_CFG_EXTRAS ${extra})
-     elseif(EXISTS ${base})
-       list(APPEND installable_cfg_extras ${base})
--      list(APPEND PKG_CFG_EXTRAS ${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}/cmake/${extra})
-+      list(APPEND PKG_CFG_EXTRAS ${extra})
-     elseif(NOT EXISTS ${base}.develspace.em AND NOT EXISTS ${base}.develspace.in)
-       message(FATAL_ERROR "catkin_package() could not find CFG_EXTRAS file.  Either 'cmake/${extra}.installspace.em', 'cmake/${extra}.em', 'cmake/${extra}.installspace.in', 'cmake/${extra}.in', 'cmake/${extra}'or a variant specific to the develspace must exist.")
-     endif()
-diff --git a/cmake/templates/pkgConfig.cmake.in b/cmake/templates/pkgConfig.cmake.in
-index 03e8a1c..0ee9231 100644
---- a/cmake/templates/pkgConfig.cmake.in
-+++ b/cmake/templates/pkgConfig.cmake.in
-@@ -70,6 +70,8 @@ else()
-   set(@PROJECT_NAME@_PREFIX ${@PROJECT_NAME@_INSTALL_PREFIX})
- endif()
- 
-+set(@PROJECT_NAME@_EXTRAS_DIR ${CMAKE_CURRENT_LIST_DIR})
-+
- # warn when using a deprecated package
- if(NOT "@PROJECT_DEPRECATED@" STREQUAL "")
-   set(_msg "WARNING: package '@PROJECT_NAME@' is deprecated")
-@@ -165,5 +167,5 @@ if(@PROJECT_NAME@_LIBRARIES)
- endif()
- 
- foreach(extra @PKG_CFG_EXTRAS@)
--  include(${extra})
-+  include(${@PROJECT_NAME@_EXTRAS_DIR}/${extra})
- endforeach()
--- 
-1.7.0.4
-
diff --git a/recipes-ros/catkin/catkin/0002-catkin_package.cmake-use-PROJECT_NAME-_EXTRAS_DIR-fo.patch b/recipes-ros/catkin/catkin/0002-catkin_package.cmake-use-PROJECT_NAME-_EXTRAS_DIR-fo.patch
deleted file mode 100644
index 11b702b2d8c52224e5ce87a2b35278c9ddddf58c..0000000000000000000000000000000000000000
--- a/recipes-ros/catkin/catkin/0002-catkin_package.cmake-use-PROJECT_NAME-_EXTRAS_DIR-fo.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 11807c9e751f53781419cfc5503e2544aac354d8 Mon Sep 17 00:00:00 2001
-From: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
-Date: Tue, 26 Feb 2013 16:51:30 +0100
-Subject: [PATCH 2/2] catkin_package.cmake: use ${PROJECT_NAME}_EXTRAS_DIR for PKG_CMAKE_DIR
-
-Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
----
- cmake/catkinConfig.cmake.in |    2 +-
- cmake/catkin_package.cmake  |    7 ++-----
- 2 files changed, 3 insertions(+), 6 deletions(-)
-
-diff --git a/cmake/catkinConfig.cmake.in b/cmake/catkinConfig.cmake.in
-index f265b59..2b4fafa 100644
---- a/cmake/catkinConfig.cmake.in
-+++ b/cmake/catkinConfig.cmake.in
-@@ -11,7 +11,7 @@
- #    contains the include dirs / library dirs / libraries of the searched component <comp>.
- 
- if(CATKIN_TOPLEVEL_FIND_PACKAGE OR NOT CATKIN_TOPLEVEL)
--  set(catkin_EXTRAS_DIR "@PKG_CMAKE_DIR@")
-+  set(catkin_EXTRAS_DIR ${CMAKE_CURRENT_LIST_DIR})
- 
-   # prevent multiple inclusion from repeated find_package() calls in non-workspace context
-   # as long as this variable is in the scope the variables from all.cmake are also, so no need to be evaluated again
-diff --git a/cmake/catkin_package.cmake b/cmake/catkin_package.cmake
-index c758dae..b1b7811 100644
---- a/cmake/catkin_package.cmake
-+++ b/cmake/catkin_package.cmake
-@@ -294,10 +294,7 @@ function(_catkin_package)
-   # prepend library path of this workspace
-   set(PKG_CONFIG_LIB_PATHS ${lib_paths})
-   list(INSERT PKG_CONFIG_LIB_PATHS 0 ${PROJECT_SPACE_DIR}/lib)
--  set(PKG_CMAKE_DIR ${PROJECT_SPACE_DIR}/share/${PROJECT_NAME}/cmake)
--  if("${PROJECT_NAME}" STREQUAL "catkin")
--    set(PKG_CMAKE_DIR "${catkin_EXTRAS_DIR}")
--  endif()
-+  set(PKG_CMAKE_DIR "\${${PROJECT_NAME}_EXTRAS_DIR}")
- 
-   if(NOT PROJECT_SKIP_PKG_CONFIG_GENERATION)
-     # ensure that output folder exists
-@@ -398,7 +395,7 @@ function(_catkin_package)
-   # prepend library path of this workspace
-   set(PKG_CONFIG_LIB_PATHS ${lib_paths})
-   list(INSERT PKG_CONFIG_LIB_PATHS 0 ${PROJECT_SPACE_DIR}/lib)
--  set(PKG_CMAKE_DIR ${PROJECT_SPACE_DIR}/share/${PROJECT_NAME}/cmake)
-+  set(PKG_CMAKE_DIR "\${${PROJECT_NAME}_EXTRAS_DIR}")
- 
-   if(NOT PROJECT_SKIP_PKG_CONFIG_GENERATION)
-     # ensure that output folder exists
--- 
-1.7.0.4
-
diff --git a/recipes-ros/catkin/catkin_git.bb b/recipes-ros/catkin/catkin_git.bb
index 666844ea7cb218500a513e671c496c5d7636f1fd..6cae6644c3cca442cc9329119054289b0721511e 100644
--- a/recipes-ros/catkin/catkin_git.bb
+++ b/recipes-ros/catkin/catkin_git.bb
@@ -6,12 +6,11 @@ LIC_FILES_CHKSUM = "file://package.xml;beginline=7;endline=7;md5=d566ef916e9dedc
 DEPENDS = "cmake python-empy python-catkin-pkg"
 
 SRC_URI = "git://github.com/ros/${BPN}.git \
-           file://0001-pkgConfig.cmake-use-filenames-in-PKG_CFG_EXTRAS.patch \
-           file://0002-catkin_package.cmake-use-PROJECT_NAME-_EXTRAS_DIR-fo.patch \
+           file://0001-CATKIN_WORKSPACES-Don-t-require-.catkin-file.patch \
            "
 
-SRCREV = "cbe6a0ce3ac6d13914d3b4b010148f72e7984149"
-PV = "0.5.63+gitr${SRCPV}"
+SRCREV = "041f6fc530b56cb6664824db399416f17c1961dd"
+PV = "0.5.64+gitr${SRCPV}"
 
 S = "${WORKDIR}/git"
 
diff --git a/recipes-ros/gencpp/gencpp_0.4.11.bb b/recipes-ros/gencpp/gencpp_0.4.11.bb
index 574530b1033d556bf9f4f87f0739b50530416cf0..6fa33574a9e19839d17b47596ec3304b76323b05 100644
--- a/recipes-ros/gencpp/gencpp_0.4.11.bb
+++ b/recipes-ros/gencpp/gencpp_0.4.11.bb
@@ -3,7 +3,7 @@ SECTION = "devel"
 LICENSE = "BSD"
 LIC_FILES_CHKSUM = "file://package.xml;beginline=7;endline=7;md5=d566ef916e9dedc494f5f793a6690ba5"
 
-DEPENDS = "genmsg"
+DEPENDS = "genmsg-native"
 
 SRC_URI = "https://github.com/ros/${BPN}/archive/${PV}.tar.gz;downloadfilename=${BP}.tar.gz"
 SRC_URI[md5sum] = "be0b3986e98f3370fef4c1fffe3a69f4"
diff --git a/recipes-ros/genlisp/genlisp_0.4.10.bb b/recipes-ros/genlisp/genlisp_0.4.10.bb
index cf39779e63165fcffaffd5256403bab567d7e3c2..a20b885082a5ec65c05673a40036f4ecbd588ee7 100644
--- a/recipes-ros/genlisp/genlisp_0.4.10.bb
+++ b/recipes-ros/genlisp/genlisp_0.4.10.bb
@@ -3,7 +3,7 @@ SECTION = "devel"
 LICENSE = "BSD"
 LIC_FILES_CHKSUM = "file://package.xml;beginline=9;endline=9;md5=d566ef916e9dedc494f5f793a6690ba5"
 
-DEPENDS = "genmsg"
+DEPENDS = "genmsg-native"
 
 SRC_URI = "https://github.com/ros/${BPN}/archive/${PV}.tar.gz;downloadfilename=${BP}.tar.gz"
 SRC_URI[md5sum] = "ae3026fd36a31d286f79a9111450adfa"
diff --git a/recipes-ros/genmsg/genmsg/0001-modify-msg-file-handling-to-reference-them-relatively.patch b/recipes-ros/genmsg/genmsg/0001-modify-msg-file-handling-to-reference-them-relatively.patch
new file mode 100644
index 0000000000000000000000000000000000000000..cef1be87098b95ced5e921f112c0c4092963b3fd
--- /dev/null
+++ b/recipes-ros/genmsg/genmsg/0001-modify-msg-file-handling-to-reference-them-relatively.patch
@@ -0,0 +1,22 @@
+diff -Naur a/cmake/genmsg-extras.cmake.em b/cmake/genmsg-extras.cmake.em
+--- a/cmake/genmsg-extras.cmake.em	2013-01-19 20:01:11.000000000 +0100
++++ b/cmake/genmsg-extras.cmake.em	2013-03-13 16:39:51.000000000 +0100
+@@ -172,8 +172,7 @@
+     ${CATKIN_DEVEL_PREFIX}/share/${PROJECT_NAME}/cmake/${PROJECT_NAME}-msg-paths.cmake
+     @@ONLY)
+   # generate and install config of message include dirs for project
+-  _prepend_path(${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME} "${${PROJECT_NAME}_MSG_INCLUDE_DIRS_INSTALLSPACE}" INCLUDE_DIRS_W_PATH)
+-  set(PKG_MSG_INCLUDE_DIRS "${INCLUDE_DIRS_W_PATH}")
++  set(PKG_MSG_INCLUDE_DIRS "${${PROJECT_NAME}_MSG_INCLUDE_DIRS_INSTALLSPACE}")
+   configure_file(
+     ${genmsg_CMAKE_DIR}/pkg-msg-paths.cmake.in
+     ${CMAKE_CURRENT_BINARY_DIR}/catkin_generated/installspace/${PROJECT_NAME}-msg-paths.cmake
+diff -Naur a/cmake/pkg-msg-paths.cmake.in b/cmake/pkg-msg-paths.cmake.in
+--- a/cmake/pkg-msg-paths.cmake.in	2013-01-19 20:01:11.000000000 +0100
++++ b/cmake/pkg-msg-paths.cmake.in	2013-03-13 16:37:32.000000000 +0100
+@@ -1,2 +1,5 @@
+ set(@PROJECT_NAME@_MSG_INCLUDE_DIRS @PKG_MSG_INCLUDE_DIRS@)
++if(NOT IS_ABSOLUTE ${@PROJECT_NAME@_MSG_INCLUDE_DIRS})
++  set(@PROJECT_NAME@_MSG_INCLUDE_DIRS ${@PROJECT_NAME@_DIR}/../${@PROJECT_NAME@_MSG_INCLUDE_DIRS})
++endif()
+ set(@PROJECT_NAME@_MSG_DEPENDENCIES @ARG_DEPENDENCIES@)
diff --git a/recipes-ros/genmsg/genmsg_0.4.17.bb b/recipes-ros/genmsg/genmsg_0.4.17.bb
index 5a885b357a70f10ce2679fdc846844956c853503..0f7c6cd3efe06449c1a11ab367cf6132b8cd8486 100644
--- a/recipes-ros/genmsg/genmsg_0.4.17.bb
+++ b/recipes-ros/genmsg/genmsg_0.4.17.bb
@@ -3,7 +3,10 @@ SECTION = "devel"
 LICENSE = "BSD"
 LIC_FILES_CHKSUM = "file://package.xml;beginline=9;endline=9;md5=d566ef916e9dedc494f5f793a6690ba5"
 
-SRC_URI = "https://github.com/ros/${BPN}/archive/${PV}.tar.gz;downloadfilename=${BP}.tar.gz"
+SRC_URI = "https://github.com/ros/${BPN}/archive/${PV}.tar.gz;downloadfilename=${BP}.tar.gz \
+           file://0001-modify-msg-file-handling-to-reference-them-relatively.patch \
+           "
+
 SRC_URI[md5sum] = "de385f1796bf025915ed7b20e1e1acc4"
 SRC_URI[sha256sum] = "e510caa7692a4b0a0948688b9d2d8f6ff2f329980d7f78787276afec030806b7"
 
diff --git a/recipes-ros/genpy/genpy_0.4.10.bb b/recipes-ros/genpy/genpy_0.4.10.bb
index eb413cf8b1c9bf8174268f10d565b76f5ee7db42..13bbd9b233be7cb7f60aebc2a0bfb36b9c4cd496 100644
--- a/recipes-ros/genpy/genpy_0.4.10.bb
+++ b/recipes-ros/genpy/genpy_0.4.10.bb
@@ -3,7 +3,7 @@ SECTION = "devel"
 LICENSE = "BSD"
 LIC_FILES_CHKSUM = "file://package.xml;beginline=7;endline=7;md5=d566ef916e9dedc494f5f793a6690ba5"
 
-DEPENDS = "genmsg"
+DEPENDS = "genmsg-native"
 
 SRC_URI = "https://github.com/ros/${BPN}/archive/${PV}.tar.gz;downloadfilename=${BP}.tar.gz"
 SRC_URI[md5sum] = "23915e68167ba6d58c65920bfabd2fad"
diff --git a/recipes-ros/message-generation/message-generation_0.2.9.bb b/recipes-ros/message-generation/message-generation_0.2.9.bb
index ae7df6d2050a51f4ca3cf4825f19cc2fc5944881..853b131391894836a109b517e054281f8c7d52c1 100644
--- a/recipes-ros/message-generation/message-generation_0.2.9.bb
+++ b/recipes-ros/message-generation/message-generation_0.2.9.bb
@@ -3,7 +3,7 @@ SECTION = "devel"
 LICENSE = "BSD"
 LIC_FILES_CHKSUM = "file://package.xml;beginline=7;endline=7;md5=d566ef916e9dedc494f5f793a6690ba5"
 
-DEPENDS = "gencpp"
+DEPENDS = "gencpp-native genlisp-native genmsg-native genpy-native"
 
 SRC_URI = "https://github.com/ros/${ROS_BPN}/archive/${PV}.tar.gz;downloadfilename=${ROS_BP}.tar.gz"
 SRC_URI[md5sum] = "b3086fbe24cc103f412cb30d83362e36"
diff --git a/recipes-ros/message-runtime/message-runtime_0.4.11.bb b/recipes-ros/message-runtime/message-runtime_0.4.11.bb
index b0b3c310b46e8b75e43df420ccdd0b9dc426eea0..1cadd8c652d94bf12a97b953bf934f0182fbef5d 100644
--- a/recipes-ros/message-runtime/message-runtime_0.4.11.bb
+++ b/recipes-ros/message-runtime/message-runtime_0.4.11.bb
@@ -3,7 +3,7 @@ SECTION = "devel"
 LICENSE = "BSD"
 LIC_FILES_CHKSUM = "file://package.xml;beginline=7;endline=7;md5=d566ef916e9dedc494f5f793a6690ba5"
 
-DEPENDS = "gencpp"
+DEPENDS = "gencpp-native"
 
 SRC_URI = "https://github.com/ros/${ROS_BPN}/archive/${PV}.tar.gz;downloadfilename=${ROS_BP}.tar.gz"
 SRC_URI[md5sum] = "10a516326a3bf18f5b5b4523c6e53940"
diff --git a/recipes-ros/packagegroups/packagegroup-ros-comm.bb b/recipes-ros/packagegroups/packagegroup-ros-comm.bb
index 6fa2a087176ad823edfebfa950fad052dc1c90fd..85fa1d92e4c6da3a5ffe6dc7016fa3d573916594 100644
--- a/recipes-ros/packagegroups/packagegroup-ros-comm.bb
+++ b/recipes-ros/packagegroups/packagegroup-ros-comm.bb
@@ -12,19 +12,41 @@ RDEPENDS_${PN} = "\
     genmsg \
     rosgraph \
     genpy \
+    rosbuild \
     rospack \
+    rosmake \
+    rosboost-cfg \
+    rosbash \
     roslib \
+    roscreate \
+    mk \
+    rosclean \
     rosunit \
+    roslang \
+    roscpp \
+    rosout \
     roscpp-serialization \
     roscpp-traits \
+    topic-tools \
     rostest \
+    rostopic \
     message-generation \
     cpp-common \
     genlisp \
+    message-filters \
+    rosservice \
+    rospy \
     rosgraph-msgs \
+    rosnode \
+    std-srvs \
     xmlrpcpp \
+    roslaunch \
+    rosmaster \
     roswtf \
+    rosbag \
+    rosmsg \
     std-msgs \
+    message-runtime \
     rostime \
     gencpp \
     "
diff --git a/recipes-ros/ros-comm/message-filters_1.9.41.bb b/recipes-ros/ros-comm/message-filters_1.9.41.bb
index d664cac58449fb0963e610f53ace217500f10e2b..dcd5d8e6c00d997be60373dcd0d31153a27ac89b 100644
--- a/recipes-ros/ros-comm/message-filters_1.9.41.bb
+++ b/recipes-ros/ros-comm/message-filters_1.9.41.bb
@@ -3,7 +3,7 @@ SECTION = "devel"
 LICENSE = "BSD"
 LIC_FILES_CHKSUM = "file://package.xml;beginline=8;endline=8;md5=d566ef916e9dedc494f5f793a6690ba5"
 
-DEPENDS = "boost rosconsole roscpp rostest rosunit xmlrpcpp"
+DEPENDS = "boost rosconsole roscpp rostest-native rosunit-native xmlrpcpp"
 
 require ros-comm.inc
 
diff --git a/recipes-ros/ros-comm/roscpp_1.9.41.bb b/recipes-ros/ros-comm/roscpp_1.9.41.bb
index 25d84632361236e96db4e328afbb9c27b5108281..b82669c615ace3c5204f3d4506363c700318967c 100644
--- a/recipes-ros/ros-comm/roscpp_1.9.41.bb
+++ b/recipes-ros/ros-comm/roscpp_1.9.41.bb
@@ -7,10 +7,12 @@ LICENSE = "BSD"
 LIC_FILES_CHKSUM = "file://package.xml;beginline=16;endline=16;md5=d566ef916e9dedc494f5f793a6690ba5"
 
 DEPENDS = "\
-  catkin-native cpp-common message-generation rosconsole roscpp-serialization \
+  catkin-native cpp-common message-generation-native rosconsole roscpp-serialization \
   roscpp-traits rosgraph-msgs roslang rostime std-msgs xmlrpcpp \
 "
 
 require ros-comm.inc
 
 S = "${WORKDIR}/ros_comm-${PV}/clients/${BPN}"
+
+CXXFLAGS_append = " -I${OECMAKE_BUILDPATH}/devel/include"
diff --git a/recipes-ros/ros-comm/rosgraph-msgs_1.9.41.bb b/recipes-ros/ros-comm/rosgraph-msgs_1.9.41.bb
index fd282a831dc5711c56317be152637e3a4f136ded..918212f642dfa3426c7e3c75cbaa71a07a8b3936 100644
--- a/recipes-ros/ros-comm/rosgraph-msgs_1.9.41.bb
+++ b/recipes-ros/ros-comm/rosgraph-msgs_1.9.41.bb
@@ -3,7 +3,7 @@ SECTION = "devel"
 LICENSE = "BSD"
 LIC_FILES_CHKSUM = "file://package.xml;beginline=8;endline=8;md5=d566ef916e9dedc494f5f793a6690ba5"
 
-DEPENDS = "message-generation message-runtime std-msgs"
+DEPENDS = "message-generation-native message-runtime-native std-msgs roscpp-serialization"
 
 require ros-comm.inc
 
diff --git a/recipes-ros/ros-comm/rosnode_1.9.41.bb b/recipes-ros/ros-comm/rosnode_1.9.41.bb
index 766b4e94a81c703235e3f98d2519c84046347d85..89b748060e80cd932ca3812525ff4b4c82ed5a2c 100644
--- a/recipes-ros/ros-comm/rosnode_1.9.41.bb
+++ b/recipes-ros/ros-comm/rosnode_1.9.41.bb
@@ -4,7 +4,7 @@ SECTION = "devel"
 LICENSE = "BSD"
 LIC_FILES_CHKSUM = "file://package.xml;beginline=12;endline=12;md5=d566ef916e9dedc494f5f793a6690ba5"
 
-DEPENDS = "rostest"
+DEPENDS = "rostest-native"
 
 require ros-comm.inc
 
diff --git a/recipes-ros/ros-comm/rostest_1.9.41.bb b/recipes-ros/ros-comm/rostest_1.9.41.bb
index baf723ab57ec3186dea58ac53794774e6ba47fc0..38f77b29d3e0d287ea844c04cf5a988f4473babf 100644
--- a/recipes-ros/ros-comm/rostest_1.9.41.bb
+++ b/recipes-ros/ros-comm/rostest_1.9.41.bb
@@ -8,3 +8,5 @@ DEPENDS = "boost rosunit-native"
 require ros-comm.inc
 
 S = "${WORKDIR}/ros_comm-${PV}/tools/${BPN}"
+
+OECMAKE_EXTRA_ROOT_PATH_class-native = "${OECMAKE_BUILDPATH}/devel"
diff --git a/recipes-ros/ros-comm/rostopic_1.9.41.bb b/recipes-ros/ros-comm/rostopic_1.9.41.bb
index b8f1a00e57cbddf8cfe13c7a643302375375623e..69f4b1a48f6656f0c06403e7a92169d1f813ce3d 100644
--- a/recipes-ros/ros-comm/rostopic_1.9.41.bb
+++ b/recipes-ros/ros-comm/rostopic_1.9.41.bb
@@ -4,7 +4,7 @@ SECTION = "devel"
 LICENSE = "BSD"
 LIC_FILES_CHKSUM = "file://package.xml;beginline=17;endline=17;md5=d566ef916e9dedc494f5f793a6690ba5"
 
-DEPENDS = "rostest"
+DEPENDS = "rostest-native"
 
 require ros-comm.inc
 
diff --git a/recipes-ros/ros-comm/roswtf_1.9.41.bb b/recipes-ros/ros-comm/roswtf_1.9.41.bb
index 11cd30a4c8f0ca72de93c3dc640f435ef144cb25..a321073b4c31aefa84e3593eb4a2cb38a7575ada 100644
--- a/recipes-ros/ros-comm/roswtf_1.9.41.bb
+++ b/recipes-ros/ros-comm/roswtf_1.9.41.bb
@@ -3,7 +3,7 @@ SECTION = "devel"
 LICENSE = "BSD"
 LIC_FILES_CHKSUM = "file://package.xml;beginline=8;endline=8;md5=d566ef916e9dedc494f5f793a6690ba5"
 
-DEPENDS = "rostest"
+DEPENDS = "rostest-native"
 
 require ros-comm.inc
 
diff --git a/recipes-ros/ros-comm/std-srvs_1.9.41.bb b/recipes-ros/ros-comm/std-srvs_1.9.41.bb
index c7ff85fa9a6b098b341245bf3dad202a211cfc5e..b0c7c6cf1e1ceb56e81df7f2fc6d7eb0d1a17c3b 100644
--- a/recipes-ros/ros-comm/std-srvs_1.9.41.bb
+++ b/recipes-ros/ros-comm/std-srvs_1.9.41.bb
@@ -3,7 +3,7 @@ SECTION = "devel"
 LICENSE = "BSD"
 LIC_FILES_CHKSUM = "file://package.xml;beginline=6;endline=6;md5=d566ef916e9dedc494f5f793a6690ba5"
 
-DEPENDS = "message-generation genlisp genpy"
+DEPENDS = "message-generation-native message-runtime-native"
 
 require ros-comm.inc
 
diff --git a/recipes-ros/ros-comm/topic-tools_1.9.41.bb b/recipes-ros/ros-comm/topic-tools_1.9.41.bb
index b8f1a00e57cbddf8cfe13c7a643302375375623e..d1afb6524e3c6362b20eeb44dacd06fffc2b0727 100644
--- a/recipes-ros/ros-comm/topic-tools_1.9.41.bb
+++ b/recipes-ros/ros-comm/topic-tools_1.9.41.bb
@@ -4,8 +4,8 @@ SECTION = "devel"
 LICENSE = "BSD"
 LIC_FILES_CHKSUM = "file://package.xml;beginline=17;endline=17;md5=d566ef916e9dedc494f5f793a6690ba5"
 
-DEPENDS = "rostest"
+DEPENDS = "rostest-native roscpp"
 
 require ros-comm.inc
 
-S = "${WORKDIR}/ros_comm-${PV}/tools/${BPN}"
+S = "${WORKDIR}/ros_comm-${PV}/tools/${ROS_BPN}"
diff --git a/recipes-ros/ros/roslib_1.9.42.bb b/recipes-ros/ros/roslib_1.9.42.bb
index 619a386ab4e56fd7f47f40272a70793bb112c7cf..5fddf5a20f20b4326b1e09c2b0ee265ab48e3ff8 100644
--- a/recipes-ros/ros/roslib_1.9.42.bb
+++ b/recipes-ros/ros/roslib_1.9.42.bb
@@ -3,7 +3,7 @@ SECTION = "devel"
 LICENSE = "BSD"
 LIC_FILES_CHKSUM = "file://package.xml;beginline=9;endline=9;md5=d566ef916e9dedc494f5f793a6690ba5"
 
-DEPENDS = "boost rospack"
+DEPENDS = "boost rospack-native rospack"
 
 require ros.inc
 
diff --git a/recipes-ros/rospack/rospack_2.1.16.bb b/recipes-ros/rospack/rospack_2.1.16.bb
index 456fe72ee735c4e095f4950842b40b738e40b97c..7ffa4395ebd283ef0d531aac60ec4a8cd0fb350e 100644
--- a/recipes-ros/rospack/rospack_2.1.16.bb
+++ b/recipes-ros/rospack/rospack_2.1.16.bb
@@ -3,7 +3,7 @@ SECTION = "devel"
 LICENSE = "BSD"
 LIC_FILES_CHKSUM = "file://package.xml;beginline=6;endline=6;md5=d566ef916e9dedc494f5f793a6690ba5"
 
-DEPENDS = "boost python libtinyxml"
+DEPENDS = "boost python-native libtinyxml"
 
 SRC_URI = "https://github.com/ros/${BPN}/archive/${PV}.tar.gz;downloadfilename=${BP}.tar.gz"
 SRC_URI[md5sum] = "1383bdce36fe6319884e7b158c22d8b4"
diff --git a/recipes-ros/std-msgs/std-msgs_0.5.7.bb b/recipes-ros/std-msgs/std-msgs_0.5.7.bb
index 1178dbd4594995defdcbca8109d93a3ae315bf44..e636d242b467318559fb6614e12acbe2f6d95fd0 100644
--- a/recipes-ros/std-msgs/std-msgs_0.5.7.bb
+++ b/recipes-ros/std-msgs/std-msgs_0.5.7.bb
@@ -4,7 +4,7 @@ SECTION = "devel"
 LICENSE = "BSD"
 LIC_FILES_CHKSUM = "file://package.xml;beginline=9;endline=9;md5=5ee5b8b046ae48ad94a2037ca953a67b"
 
-DEPENDS = "message-generation genlisp genpy"
+DEPENDS = "message-generation-native message-runtime-native"
 
 SRC_URI = "https://github.com/ros/${ROS_BPN}/archive/${PV}.tar.gz;downloadfilename=${ROS_BP}.tar.gz"
 SRC_URI[md5sum] = "ea40e6dd8ea19fe54a2b476358c0ceea"
diff --git a/recipes-support/libtinyxml/libtinyxml_2.6.2.bb b/recipes-support/libtinyxml/libtinyxml_2.6.2.bb
index fdadebdfa9f42d387cffa060aa401c1579fc3794..8670facc8f099987fec180d8de0a5fa044be99a9 100644
--- a/recipes-support/libtinyxml/libtinyxml_2.6.2.bb
+++ b/recipes-support/libtinyxml/libtinyxml_2.6.2.bb
@@ -16,20 +16,21 @@ SRC_URI[sha256sum] = "15bdfdcec58a7da30adc87ac2b078e4417dbe5392f3afb719f9ba6d062
 
 S = "${WORKDIR}/tinyxml"
 
-CXXFLAGS += "-fPIC"
+EXTRA_CXXFLAGS = "-I. -fPIC"
 
 do_compile() {
-    ${CXX} ${CXXFLAGS} -I${S} -c -o ${S}/tinyxml.o ${S}/tinyxml.cpp
-    ${CXX} ${CXXFLAGS} -I${S} -c -o ${S}/tinyxmlerror.o ${S}/tinyxmlerror.cpp
-    ${CXX} ${CXXFLAGS} -I${S} -c -o ${S}/tinyxmlparser.o ${S}/tinyxmlparser.cpp
+    ${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 ${S}/libtinyxml.so.${PV} \
+            -o libtinyxml.so.${PV} \
             ${LDFLAGS} \
-            ${S}/tinyxml.o \
-            ${S}/tinyxmlparser.o \
-            ${S}/tinyxmlerror.o
+            tinyxml.o \
+            tinyxmlparser.o \
+            tinyxmlerror.o
+
 }
 
 do_install() {
@@ -41,3 +42,4 @@ do_install() {
     install -m 0644 ${S}/tinyxml.h ${D}${includedir}
 }
 
+BBCLASSEXTEND += "native"