Please allow "equals" symbol in snapcraft.yaml

Coming from the ROS and robotics community, it is a bit disappointing that I cannot use the symbol = in the command section of my app in Snapcraft. = is essential for ROS and ROS 2 applications to pass runtime arguments and parameters to ROS nodes and launch files. By default, passing arguments in ROS 1 looks as follows:

roslaunch my_package my_node _example_float_param:=1.0

In ROS 2 it looks like this:

ros2 launch my_package my_node example_float_param:=1.0

Lack of the ability to configure ROS nodes in runtime requires either wrapping existing ROS packages into your own custom ones or writing bash scripts just to launch the nodes. This is very inconvenient in the multi snaps architecture where often everything needed is a preexisting package from github with one additional launch argument passed. Another example is when your package requires passing some arguments, configuring it to work in restricted confinement.

Thanks. Krzysztof.

1 Like

Handing it at https://github.com/snapcore/snapcraft/pull/4477

2 Likes

This needs changes in snapd, we are considering them with some priority but not the highest, but simply adding = to the regexp is probably not sufficient because once = is allowed people will expect quoting support to some extent.