dev-ros/pluginlib: look for package.xml in ros_packages too for plugins.
authorAlexis Ballier <aballier@gentoo.org>
Mon, 28 Nov 2016 15:04:16 +0000 (16:04 +0100)
committerAlexis Ballier <aballier@gentoo.org>
Mon, 28 Nov 2016 15:04:28 +0000 (16:04 +0100)
Package-Manager: portage-2.3.2

dev-ros/pluginlib/files/gentoo.patch [new file with mode: 0644]
dev-ros/pluginlib/pluginlib-1.10.4-r1.ebuild [moved from dev-ros/pluginlib/pluginlib-1.10.4.ebuild with 93% similarity]
dev-ros/pluginlib/pluginlib-9999.ebuild

diff --git a/dev-ros/pluginlib/files/gentoo.patch b/dev-ros/pluginlib/files/gentoo.patch
new file mode 100644 (file)
index 0000000..6737f76
--- /dev/null
@@ -0,0 +1,34 @@
+Find package.xml in ros_packages/package_name too as we moved it here.
+
+Index: pluginlib-1.10.4/include/pluginlib/class_loader_imp.h
+===================================================================
+--- pluginlib-1.10.4.orig/include/pluginlib/class_loader_imp.h
++++ pluginlib-1.10.4/include/pluginlib/class_loader_imp.h
+@@ -444,6 +444,7 @@ namespace pluginlib
+     std::string package_name;
+     boost::filesystem::path p(plugin_xml_file_path);
+     boost::filesystem::path parent = p.parent_path();
++    boost::filesystem::path basename = p.filename();
+ 
+     //Figure out exactly which package the passed XML file is exported by.
+     while (true)
+@@ -453,6 +454,11 @@ namespace pluginlib
+         std::string package_file_path = (boost::filesystem::path(parent / "package.xml")).string();
+         return(extractPackageNameFromPackageXML(package_file_path));
+       }
++      else if(boost::filesystem::exists(parent / "ros_packages" / basename / "package.xml"))
++      {
++        std::string package_file_path = (boost::filesystem::path(parent / "ros_packages" / basename / "package.xml")).string();
++        return(extractPackageNameFromPackageXML(package_file_path));
++      }
+       else if (boost::filesystem::exists(parent / "manifest.xml"))
+       {
+ #if BOOST_FILESYSTEM_VERSION >= 3
+@@ -470,6 +476,7 @@ namespace pluginlib
+       }
+ 
+       //Recursive case - hop one folder up
++      basename = parent.filename();
+       parent = parent.parent_path().string();
+ 
+       //Base case - reached root and cannot find what we're looking for
similarity index 93%
rename from dev-ros/pluginlib/pluginlib-1.10.4.ebuild
rename to dev-ros/pluginlib/pluginlib-1.10.4-r1.ebuild
index 2791a4dd846027fea0899a793c726baa1ffc4ab7..a96bdaea328a4111cdccabeb9749f9d1db433ece 100644 (file)
@@ -25,3 +25,4 @@ RDEPEND="
 "
 DEPEND="${RDEPEND}
        test? ( dev-cpp/gtest )"
+PATCHES=( "${FILESDIR}/gentoo.patch" )
index 2791a4dd846027fea0899a793c726baa1ffc4ab7..a96bdaea328a4111cdccabeb9749f9d1db433ece 100644 (file)
@@ -25,3 +25,4 @@ RDEPEND="
 "
 DEPEND="${RDEPEND}
        test? ( dev-cpp/gtest )"
+PATCHES=( "${FILESDIR}/gentoo.patch" )