diff --git a/README b/README
index dd0920c5ba6311981fe47c29b1c362a21a652598..c54879443670d215af4c8294dc624709c988bbde 100644
--- a/README
+++ b/README
@@ -10,6 +10,7 @@ CONTRIBUTORS
   Lukas Bulwahn, BMW Car IT GmbH <lukas.bulwahn@oss.bmw-carit.de>
   Stefan Herbrechtsmeier, Bielefeld University <stefan@herbrechtsmeier.net>
   Tobias Weigl, BMW Car IT GmbH <tobias.weigl@bmw-carit.de>
+  Kartik Mohta <kartikmohta@gmail.com>
 
 HOW TO CONTRIBUTE
 
@@ -92,8 +93,11 @@ REDISTRIBUTIONS
   The log4cxx recipe originated from the recipe in the OpenEmbedded (Classic) Development
   (cf. http://cgit.openembedded.org/openembedded/tree/recipes/log4cxx)
   licensed with the MIT License.
+  The eigen recipe originated from the recipe in Kartik Mohta's OpenEmbedded layer
+  (cf. https://github.com/kartikmohta/meta-km/tree/master/recipes-extended/eigen)
+  licensed with the MIT License.
   The core-image-ros-* recipes originated from the core-image-minimal recipe in OpenEmbedded Core
   (cf. http://cgit.openembedded.org/openembedded-core/tree/meta/recipes-core/images/core-image-minimal.bb)
   licensed with the MIT License.
 
-  The modified files are redistributed here under the same MIT License.
+  The original or modified files are redistributed here under the same MIT License.
diff --git a/classes/catkin.bbclass b/classes/catkin.bbclass
index a9af7c55c691fcbebd574cd00ac407575dab723b..de1634daba7a128348e3c9aa81c115d3317cb548 100644
--- a/classes/catkin.bbclass
+++ b/classes/catkin.bbclass
@@ -31,7 +31,7 @@ FILES_SOLIBSDEV = ""
 FILES_${PN} += "${libdir}/lib*${SOLIBSDEV}"
 
 ROS_BPN = "${@d.getVar('BPN', True).replace('-', '_')}"
-ROS_BP = "${BPN}-${PV}"
+ROS_BP = "${ROS_BPN}-${PV}"
 
 FILES_${PN} += "\
     ${prefix}/etc \
diff --git a/recipes-extended/eigen/eigen.inc b/recipes-extended/eigen/eigen.inc
new file mode 100644
index 0000000000000000000000000000000000000000..fdfec389b5b9c8b27ce5b4ad126a14b2643417a3
--- /dev/null
+++ b/recipes-extended/eigen/eigen.inc
@@ -0,0 +1,22 @@
+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"
+
+PR = "r0"
+
+SRC_URI = "http://bitbucket.org/eigen/eigen/get/${PV}.tar.bz2"
+
+inherit cmake
+
+OECMAKE_SOURCEPATH = ".."
+OECMAKE_BUILDPATH = "build"
+
+EXTRA_OECMAKE += "-Dpkg_config_libdir=${libdir}"
+
+FILES_${PN} = "${includedir} ${libdir}"
+
+# ${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/recipes-extended/eigen/eigen_3.1.3.bb b/recipes-extended/eigen/eigen_3.1.3.bb
new file mode 100644
index 0000000000000000000000000000000000000000..208a0a02bb4a9f611db4292f8ccdc4326c91d0f1
--- /dev/null
+++ b/recipes-extended/eigen/eigen_3.1.3.bb
@@ -0,0 +1,10 @@
+require eigen.inc
+
+PR = "r0"
+
+SRC_URI += "file://eigen-disable-tests.patch"
+
+SRC_URI[md5sum] = "43eee0e9252a77149d6b65e93e73b79d"
+SRC_URI[sha256sum] = "1a443145f321dd47a5ca11f176e7319056198a6124a7577723d92e3c3cd59ece"
+
+S = "${WORKDIR}/eigen-eigen-2249f9c22fe8"
diff --git a/recipes-extended/eigen/files/eigen-disable-tests.patch b/recipes-extended/eigen/files/eigen-disable-tests.patch
new file mode 100644
index 0000000000000000000000000000000000000000..c6212ff5850b5bdd7ce1eb1b7a9c3ffee17cd831
--- /dev/null
+++ b/recipes-extended/eigen/files/eigen-disable-tests.patch
@@ -0,0 +1,75 @@
+eigen: don't try building tests
+
+While configuring, if the tests are enabled, it checks some machine specific
+stuff which we don't want to do while cross-compiling.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Kartik Mohta <kartikmohta@gmail.com>
+
+--- a/CMakeLists.txt~	2012-07-02 20:33:20.330773075 -0400
++++ b/CMakeLists.txt	2012-07-02 20:34:23.515778505 -0400
+@@ -307,24 +307,24 @@
+ 
+ add_subdirectory(doc EXCLUDE_FROM_ALL)
+ 
+-include(EigenConfigureTesting)
++#include(EigenConfigureTesting)
+ # fixme, not sure this line is still needed:
+-enable_testing() # must be called from the root CMakeLists, see man page
++#enable_testing() # must be called from the root CMakeLists, see man page
+ 
+ 
+-if(EIGEN_LEAVE_TEST_IN_ALL_TARGET)
+-  add_subdirectory(test) # can't do EXCLUDE_FROM_ALL here, breaks CTest
+-else()
+-  add_subdirectory(test EXCLUDE_FROM_ALL)
+-endif()
+-
+-if(EIGEN_LEAVE_TEST_IN_ALL_TARGET)
+-  add_subdirectory(blas)
+-  add_subdirectory(lapack)
+-else()
+-  add_subdirectory(blas EXCLUDE_FROM_ALL)
+-  add_subdirectory(lapack EXCLUDE_FROM_ALL)
+-endif()
++#if(EIGEN_LEAVE_TEST_IN_ALL_TARGET)
++#  add_subdirectory(test) # can't do EXCLUDE_FROM_ALL here, breaks CTest
++#else()
++#  add_subdirectory(test EXCLUDE_FROM_ALL)
++#endif()
++
++#if(EIGEN_LEAVE_TEST_IN_ALL_TARGET)
++#  add_subdirectory(blas)
++#  add_subdirectory(lapack)
++#else()
++#  add_subdirectory(blas EXCLUDE_FROM_ALL)
++#  add_subdirectory(lapack EXCLUDE_FROM_ALL)
++#endif()
+ 
+ add_subdirectory(unsupported)
+ 
+@@ -342,7 +342,7 @@
+   add_subdirectory(bench/spbench EXCLUDE_FROM_ALL)
+ endif(NOT WIN32)
+ 
+-ei_testing_print_summary()
++#ei_testing_print_summary()
+ 
+ message(STATUS "")
+ message(STATUS "Configured Eigen ${EIGEN_VERSION_NUMBER}")
+--- a/unsupported/CMakeLists.txt~	2012-07-02 20:33:58.775385403 -0400
++++ b/unsupported/CMakeLists.txt	2012-07-02 20:34:06.495509672 -0400
+@@ -1,7 +1,7 @@
+ add_subdirectory(Eigen)
+ add_subdirectory(doc EXCLUDE_FROM_ALL)
+-if(EIGEN_LEAVE_TEST_IN_ALL_TARGET)
+-  add_subdirectory(test) # can't do EXCLUDE_FROM_ALL here, breaks CTest
+-else()
+-  add_subdirectory(test EXCLUDE_FROM_ALL)
+-endif()
++#if(EIGEN_LEAVE_TEST_IN_ALL_TARGET)
++#  add_subdirectory(test) # can't do EXCLUDE_FROM_ALL here, breaks CTest
++#else()
++#  add_subdirectory(test EXCLUDE_FROM_ALL)
++#endif()
diff --git a/recipes-ros/genmsg/genmsg_0.4.17.bb b/recipes-ros/genmsg/genmsg_0.4.17.bb
index 8e7c9f42bee882a7a1eb80a1949e4858d93f48fc..b45e2f9b9499cee30141ed4b617c8f6a52c78ba2 100644
--- a/recipes-ros/genmsg/genmsg_0.4.17.bb
+++ b/recipes-ros/genmsg/genmsg_0.4.17.bb
@@ -15,4 +15,4 @@ RDEPENDS_${PN}_class-native = ""
 SRC_URI[md5sum] = "de385f1796bf025915ed7b20e1e1acc4"
 SRC_URI[sha256sum] = "e510caa7692a4b0a0948688b9d2d8f6ff2f329980d7f78787276afec030806b7"
 
-inherit  catkin 
+inherit catkin