diff --git a/libnabo/DESCR b/libnabo/DESCR
new file mode 100644
index 0000000000000000000000000000000000000000..006c9b179e992b5a8d241a968b6db9d3489f0153
--- /dev/null
+++ b/libnabo/DESCR
@@ -0,0 +1 @@
+A fast K Nearset Neighbor library for low-dimensional spaces
diff --git a/libnabo/Makefile b/libnabo/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..dd02f6aa34f8ca99f9ca0f8a9eaee6d87e1d55bb
--- /dev/null
+++ b/libnabo/Makefile
@@ -0,0 +1,31 @@
+# robotpkg depend.mk for:	mapping/libnabo
+# Created:			Pierrick Koch on Thu, 27 Mar 2014
+#
+NAME=			libnabo
+VERSION=		1.0.4
+GITHUB_USER=		ethz-asl
+CATEGORIES=		mapping
+
+DISTNAME=		${NAME}-${VERSION}
+DISTBASE=		${GITHUB_USER}/${NAME}/archive/
+MASTER_SITES=		${MASTER_SITE_GITHUB:=${DISTBASE}${VERSION}${EXTRACT_SUFX}?f=}
+MASTER_REPOSITORY=	${MASTER_REPOSITORY_GITHUB}/${GITHUB_USER}/${NAME}.git
+
+MAINTAINER=		pierrick.koch@laas.fr
+COMMENT=		A fast K Nearset Neighbor library for low-dimensional spaces
+LICENSE=		2-clause-bsd
+
+CMAKE_ARGS+=		-DSHARED_LIBS=ON
+CMAKE_ARGS+=		-DBOOST_INCLUDEDIR=${PREFIX.boost-headers}/include
+CMAKE_ARGS+=		-DBOOST_LIBDIR=${PREFIX.boost-libs}/include
+
+include ../../graphics/flann/depend.mk
+include ../../devel/boost-headers/depend.mk
+include ../../devel/boost-libs/depend.mk
+include ../../pkgtools/pkg-config/depend.mk
+include ../../mk/sysdep/cmake.mk
+include ../../mk/language/c.mk
+include ../../mk/language/c++.mk
+include ../../mk/sysdep/python.mk
+include ../../mk/robotpkg.mk
+include ../../mk/sysdep/doxygen.mk
diff --git a/libnabo/PLIST b/libnabo/PLIST
new file mode 100644
index 0000000000000000000000000000000000000000..dad14d9ea0b63e8d112992eee27d6b155ad3bd42
--- /dev/null
+++ b/libnabo/PLIST
@@ -0,0 +1,105 @@
+@comment Thu Mar 27 11:20:26 CET 2014
+include/nabo/nabo.h
+lib/libnabo.so
+lib/libnabo.so.1
+lib/libnabo.so.${PKGVERSION}
+${PYTHON_SITELIB}/pynabo.so
+share/doc/libnabo/README.md
+share/doc/libnabo/api/html/annotated.html
+share/doc/libnabo/api/html/bc_s.png
+share/doc/libnabo/api/html/brute__force__cpu_8cpp.html
+share/doc/libnabo/api/html/classNabo_1_1ContextManager-members.html
+share/doc/libnabo/api/html/classNabo_1_1ContextManager.html
+share/doc/libnabo/api/html/classes.html
+share/doc/libnabo/api/html/closed.png
+share/doc/libnabo/api/html/doxygen.css
+share/doc/libnabo/api/html/doxygen.png
+share/doc/libnabo/api/html/files.html
+share/doc/libnabo/api/html/functions.html
+share/doc/libnabo/api/html/functions_enum.html
+share/doc/libnabo/api/html/functions_eval.html
+share/doc/libnabo/api/html/functions_func.html
+share/doc/libnabo/api/html/functions_rela.html
+share/doc/libnabo/api/html/functions_type.html
+share/doc/libnabo/api/html/functions_vars.html
+share/doc/libnabo/api/html/globals.html
+share/doc/libnabo/api/html/globals_defs.html
+share/doc/libnabo/api/html/group__private.html
+share/doc/libnabo/api/html/group__public.html
+share/doc/libnabo/api/html/hierarchy.html
+share/doc/libnabo/api/html/index.html
+share/doc/libnabo/api/html/index__heap_8h.html
+share/doc/libnabo/api/html/index__heap_8h_source.html
+share/doc/libnabo/api/html/kdtree__cpu_8cpp.html
+share/doc/libnabo/api/html/kdtree__opencl_8cpp.html
+share/doc/libnabo/api/html/modules.html
+share/doc/libnabo/api/html/nabo_8cpp.html
+share/doc/libnabo/api/html/nabo_8h.html
+share/doc/libnabo/api/html/nabo_8h_source.html
+share/doc/libnabo/api/html/nabo__private_8h.html
+share/doc/libnabo/api/html/nabo__private_8h_source.html
+share/doc/libnabo/api/html/namespaceNabo.html
+share/doc/libnabo/api/html/namespacemembers.html
+share/doc/libnabo/api/html/namespacemembers_func.html
+share/doc/libnabo/api/html/namespacemembers_type.html
+share/doc/libnabo/api/html/namespaces.html
+share/doc/libnabo/api/html/nav_f.png
+share/doc/libnabo/api/html/nav_h.png
+share/doc/libnabo/api/html/open.png
+share/doc/libnabo/api/html/structNabo_1_1BruteForceSearch-members.html
+share/doc/libnabo/api/html/structNabo_1_1BruteForceSearch.html
+share/doc/libnabo/api/html/structNabo_1_1BruteForceSearch.png
+share/doc/libnabo/api/html/structNabo_1_1BruteForceSearchOpenCL-members.html
+share/doc/libnabo/api/html/structNabo_1_1BruteForceSearchOpenCL.html
+share/doc/libnabo/api/html/structNabo_1_1BruteForceSearchOpenCL.png
+share/doc/libnabo/api/html/structNabo_1_1EnableCLTypeSupport.html
+share/doc/libnabo/api/html/structNabo_1_1EnableCLTypeSupport_3_01double_01_4-members.html
+share/doc/libnabo/api/html/structNabo_1_1EnableCLTypeSupport_3_01double_01_4.html
+share/doc/libnabo/api/html/structNabo_1_1EnableCLTypeSupport_3_01float_01_4-members.html
+share/doc/libnabo/api/html/structNabo_1_1EnableCLTypeSupport_3_01float_01_4.html
+share/doc/libnabo/api/html/structNabo_1_1IndexHeapBruteForceVector-members.html
+share/doc/libnabo/api/html/structNabo_1_1IndexHeapBruteForceVector.html
+share/doc/libnabo/api/html/structNabo_1_1IndexHeapBruteForceVector_1_1Entry-members.html
+share/doc/libnabo/api/html/structNabo_1_1IndexHeapBruteForceVector_1_1Entry.html
+share/doc/libnabo/api/html/structNabo_1_1IndexHeapSTL-members.html
+share/doc/libnabo/api/html/structNabo_1_1IndexHeapSTL.html
+share/doc/libnabo/api/html/structNabo_1_1IndexHeapSTL_1_1Entry-members.html
+share/doc/libnabo/api/html/structNabo_1_1IndexHeapSTL_1_1Entry.html
+share/doc/libnabo/api/html/structNabo_1_1KDTreeBalancedPtInLeavesStackOpenCL-members.html
+share/doc/libnabo/api/html/structNabo_1_1KDTreeBalancedPtInLeavesStackOpenCL.html
+share/doc/libnabo/api/html/structNabo_1_1KDTreeBalancedPtInLeavesStackOpenCL.png
+share/doc/libnabo/api/html/structNabo_1_1KDTreeBalancedPtInLeavesStackOpenCL_1_1BuildPoint-members.html
+share/doc/libnabo/api/html/structNabo_1_1KDTreeBalancedPtInLeavesStackOpenCL_1_1BuildPoint.html
+share/doc/libnabo/api/html/structNabo_1_1KDTreeBalancedPtInLeavesStackOpenCL_1_1CompareDim-members.html
+share/doc/libnabo/api/html/structNabo_1_1KDTreeBalancedPtInLeavesStackOpenCL_1_1CompareDim.html
+share/doc/libnabo/api/html/structNabo_1_1KDTreeBalancedPtInLeavesStackOpenCL_1_1Node-members.html
+share/doc/libnabo/api/html/structNabo_1_1KDTreeBalancedPtInLeavesStackOpenCL_1_1Node.html
+share/doc/libnabo/api/html/structNabo_1_1KDTreeBalancedPtInNodesStackOpenCL-members.html
+share/doc/libnabo/api/html/structNabo_1_1KDTreeBalancedPtInNodesStackOpenCL.html
+share/doc/libnabo/api/html/structNabo_1_1KDTreeBalancedPtInNodesStackOpenCL.png
+share/doc/libnabo/api/html/structNabo_1_1KDTreeBalancedPtInNodesStackOpenCL_1_1CompareDim-members.html
+share/doc/libnabo/api/html/structNabo_1_1KDTreeBalancedPtInNodesStackOpenCL_1_1CompareDim.html
+share/doc/libnabo/api/html/structNabo_1_1KDTreeBalancedPtInNodesStackOpenCL_1_1Node-members.html
+share/doc/libnabo/api/html/structNabo_1_1KDTreeBalancedPtInNodesStackOpenCL_1_1Node.html
+share/doc/libnabo/api/html/structNabo_1_1KDTreeUnbalancedPtInLeavesImplicitBoundsStackOpt-members.html
+share/doc/libnabo/api/html/structNabo_1_1KDTreeUnbalancedPtInLeavesImplicitBoundsStackOpt.html
+share/doc/libnabo/api/html/structNabo_1_1KDTreeUnbalancedPtInLeavesImplicitBoundsStackOpt.png
+share/doc/libnabo/api/html/structNabo_1_1KDTreeUnbalancedPtInLeavesImplicitBoundsStackOpt_1_1BucketEntry-members.html
+share/doc/libnabo/api/html/structNabo_1_1KDTreeUnbalancedPtInLeavesImplicitBoundsStackOpt_1_1BucketEntry.html
+share/doc/libnabo/api/html/structNabo_1_1KDTreeUnbalancedPtInLeavesImplicitBoundsStackOpt_1_1Node-members.html
+share/doc/libnabo/api/html/structNabo_1_1KDTreeUnbalancedPtInLeavesImplicitBoundsStackOpt_1_1Node.html
+share/doc/libnabo/api/html/structNabo_1_1NearestNeighbourSearch-members.html
+share/doc/libnabo/api/html/structNabo_1_1NearestNeighbourSearch.html
+share/doc/libnabo/api/html/structNabo_1_1NearestNeighbourSearch.png
+share/doc/libnabo/api/html/structNabo_1_1OpenCLSearch-members.html
+share/doc/libnabo/api/html/structNabo_1_1OpenCLSearch.html
+share/doc/libnabo/api/html/structNabo_1_1OpenCLSearch.png
+share/doc/libnabo/api/html/structNabo_1_1Parameters-members.html
+share/doc/libnabo/api/html/structNabo_1_1Parameters.html
+share/doc/libnabo/api/html/structNabo_1_1SourceCacher-members.html
+share/doc/libnabo/api/html/structNabo_1_1SourceCacher.html
+share/doc/libnabo/api/html/tab_a.png
+share/doc/libnabo/api/html/tab_b.png
+share/doc/libnabo/api/html/tab_h.png
+share/doc/libnabo/api/html/tab_s.png
+share/doc/libnabo/api/html/tabs.css
diff --git a/libnabo/depend.mk b/libnabo/depend.mk
new file mode 100644
index 0000000000000000000000000000000000000000..f9940aa068910bc407c96f021a47a06309653f38
--- /dev/null
+++ b/libnabo/depend.mk
@@ -0,0 +1,25 @@
+# robotpkg depend.mk for:	mapping/libnabo
+# Created:			Pierrick Koch on Thu, 27 Mar 2014
+#
+
+DEPEND_DEPTH:=		${DEPEND_DEPTH}+
+LIBNABO_DEPEND_MK:=${LIBNABO_DEPEND_MK}+
+
+ifeq (+,$(DEPEND_DEPTH))
+DEPEND_PKG+=		libnabo
+endif
+
+ifeq (+,$(LIBNABO_DEPEND_MK))
+PREFER.libnabo?=	robotpkg
+
+DEPEND_USE+=		libnabo
+
+DEPEND_ABI.libnabo?=	libnabo>=1.0.4
+DEPEND_DIR.libnabo?=	../../wip/libnabo
+
+SYSTEM_SEARCH.libnabo= \
+	include/nabo/nabo.h \
+	lib/libnabo.so
+endif
+
+DEPEND_DEPTH:=		${DEPEND_DEPTH:+=}
diff --git a/libnabo/distinfo b/libnabo/distinfo
new file mode 100644
index 0000000000000000000000000000000000000000..dce27783322757ff3e925058c5e6491635be84b4
--- /dev/null
+++ b/libnabo/distinfo
@@ -0,0 +1,4 @@
+SHA1 (libnabo-1.0.4.tar.gz) = 1f71f0f6caf50996e3e61b87b2ac2c05c834518e
+RMD160 (libnabo-1.0.4.tar.gz) = 5e025ce60f8c773178ce8c1ef7328608a16b63ca
+Size (libnabo-1.0.4.tar.gz) = 963380 bytes
+SHA1 (patch-aa) = fe3c4640351d88000aa694055468612a7c25ce43
diff --git a/libnabo/patches/patch-aa b/libnabo/patches/patch-aa
new file mode 100644
index 0000000000000000000000000000000000000000..1b2f898984685064d53a1e24c44292d9d0d8d27c
--- /dev/null
+++ b/libnabo/patches/patch-aa
@@ -0,0 +1,46 @@
+diff --git CMakeLists.txt CMakeLists.txt
+index b37b3ed..3ea0739 100644
+--- CMakeLists.txt
++++ CMakeLists.txt
+@@ -101,10 +101,12 @@ set(DOC_INSTALL_TARGET "share/doc/${PROJECT_NAME}/api" CACHE STRING "Target wher
+ add_dependencies(${LIB_NAME} doc)
+ install(FILES nabo/nabo.h DESTINATION include/nabo)
+ install(FILES README.md DESTINATION share/doc/${PROJECT_NAME})
+-install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doc/html DESTINATION ${DOC_INSTALL_TARGET})
++if (DOXYGEN_FOUND)
++	install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doc/html DESTINATION ${DOC_INSTALL_TARGET})
++endif(DOXYGEN_FOUND)
+ 
+ enable_testing()
+ 
+ add_subdirectory(examples)
+ add_subdirectory(tests)
+-add_subdirectory(python)
+\ No newline at end of file
++add_subdirectory(python)
+diff --git nabo/kdtree_opencl.cpp nabo/kdtree_opencl.cpp
+index 1912bbe..7fcd8ea 100644
+--- nabo/kdtree_opencl.cpp
++++ nabo/kdtree_opencl.cpp
+@@ -145,7 +145,7 @@ namespace Nabo
+ 			try {
+ 				context = cl::Context(deviceType, properties);
+ 				deviceFound = true;
+-			} catch (cl::Error e) {
++			} catch (const cl::Error& e) {
+ 				cerr << "Cannot find device type " << deviceType << " for OpenCL, falling back to any device" << endl;
+ 			}
+ 			if (!deviceFound)
+diff --git python/CMakeLists.txt python/CMakeLists.txt
+index 3eb3ae2..a69a315 100644
+--- python/CMakeLists.txt
++++ python/CMakeLists.txt
+@@ -53,7 +53,7 @@ if (PYTHONLIBS_FOUND AND PYTHONINTERP_FOUND)
+ 			if (PYTHON_DEB_INSTALL_TARGET)
+ 				set(PYTHON_COMMAND "import sys; print '/usr/lib/python'+str(sys.version_info[0])+'.'+str(sys.version_info[1])+'/dist-packages'")
+ 			else (PYTHON_DEB_INSTALL_TARGET)
+-				set(PYTHON_COMMAND "from distutils.sysconfig import get_python_lib; print get_python_lib()")
++				set(PYTHON_COMMAND "from distutils.sysconfig import get_python_lib; print get_python_lib(prefix='${CMAKE_INSTALL_PREFIX}')")
+ 			endif (PYTHON_DEB_INSTALL_TARGET)
+ 			execute_process(COMMAND "${PYTHON_EXECUTABLE}" "-c" "${PYTHON_COMMAND}" OUTPUT_VARIABLE PYTHON_SITE_MODULES OUTPUT_STRIP_TRAILING_WHITESPACE)
+ 			install(TARGETS pynabo LIBRARY DESTINATION ${PYTHON_SITE_MODULES})