ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | Q&A
Ask Your Question

Generating metapackage artifacts with catkin_tools?

asked 2016-08-04 13:17:13 -0500

dustingooding gravatar image

updated 2016-08-04 15:41:09 -0500

My use case is non-standard. I can't use the public Bloom infrastructure because I have non-public packages, and in the past, I created non-Bloom build scripts that helped me generate Debian packages. I can't easily replace them as they're pretty baked into our process.

Previously, with catkin_make, I could build a metapackage and it's share/package_name/package.xml would show up in the install path. I used this to my advantage to create Debians for my metapackages. My workflow was roughly:

  1. Create a workspace dep_ws with the metapackage repo and all its dependencies in it.
  2. Build the "dependency" workspace and source dep_ws/install/setup.bash.
  3. Create a workspace pkg_ws with only the metapackage's repo in it.
  4. Build the "package" workspace.

This resulted in a "clean" install space with just the metapackage in it, as all its dependencies were met in the dependency workspace. I then dumped (more or less) the install path into a Debian and added the metapackage's dependencies as Debian dependencies.

I'm attempting to switch to catkin_tools as it provides many benefits, but I'm running into a problem recreating this workflow. With catkin build, metapackage artifacts don't show up in the install path. In fact, with --summary, it shows the metapackage being [Ignored] (even when I use --whitelist to only allow the metapackage to be built).

How do I generate metapackage artifacts with catkin_tools, such that I can Debianize them and get a "meta-Debian"? Ultimately, the artifacts are important so that I can query the as-built metapackage for its dependencies and add them as Debian dependencies. But if the metapackage's package.xml isn't in the install path, I have no way of doing that.

Or, am I holding it wrong and there's a different/better/correct way to do this (that doesn't involve all of Bloom)? Should I simply treat metapackages differently than normal packages and have a different process for them (now)?

Follow-on: If it is possible to generate metapackage artifacts with catkin_tools, I would also need it to only build the metapackage and not the <exec_depend>s. Currently, even using --whitelist, if I catkin build the metapackage, all its <exec_depend>s get built, too, and pollute the "clean" install space. Is this possible?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2016-08-08 22:50:43 -0500

William gravatar image

Sounds like metapackages are not being built, which is not correct if that's what's happening. You should open a issue on catkin_tools. I guess it has to do with changes that Jonathan Bohren made related to avoiding the case where normal packages that incorrectly depend on metapackages caused catkin build to crash.

edit flag offensive delete link more


Johannes Meyer gravatar image Johannes Meyer  ( 2016-12-29 09:58:36 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools



Asked: 2016-08-04 13:17:13 -0500

Seen: 671 times

Last updated: Aug 08 '16