Catkin: Error no rosdep rule for [build-package]

I’m trying to package a large ROS workspace with snapcraft. I’ve been having a lot of trouble getting pass rosdep.

ERROR: no rosdep rule for 'xslt'
Package 'xslt' isn't a valid system dependency. Did you forget to add it to catkin-packages? If not, add the Ubuntu package containing it to stage-packages until you can get it into the rosdep database.

‘xslt’ should come from libxslt1-dev, which I have listed under build-packages and stage-packages. I assume that it’s only needed for building, but that didn’t work so I threw it under stage.

  1 name: test-ocs-core-eoinnocs
  2 version: '0.1'
  3 summary: OCS core snap, a foundation for everything else
  4 description: |
  5     This snap bundles the OCS Core packages. It should be possbile to build everything else by referencing this snap     od this one
  7 confinement: devmode
  8 base: core18
 10 parts:
 11     ocs-core:
 12         plugin: catkin-tools
 13         source: .
 14         include-roscore>: true
 15         build-packages: 
 16             - libxslt1-dev
 17             - libarmadillo-dev
 18             - libtinyxml2-dev
 19             - libyaml-cpp-dev
 20         stage-packages: 
 21             - libxslt1-dev
 22             - libarmadillo-dev
 23             - libtinyxml2-dev
 24             - libyaml-cpp-dev

‘xslt’ is not the only package that rosdep trips over. If I rerun everything it may land on ‘xml2’ (supplied by libtinyxml2-dev) or nocs_console (which is one of the packages in our catkin workspace)

I’m still very new to snapcraft, I’d like some advice on what to try next.


This turned out to be an error in my package.xml. System dependencies were added under the wrong name. This confused rosdep