package.xml: use 'replace' tag for non-ROS package
When I do this:
foo/package.xml:
...
<replace>bar</replace>
...
I get this:
$ dpkg-deb --info ros-kinetic-foo_0.1.0_amd64.deb
...
Replaces: ros-kinetic-bar
...
What do I do if I _don't_ want that ros-kinetic-
prefix on the replaced package name?
I believe that
ros-kinetic-
prefix is added there by therosdebian
generator in Bloom. I'm not sure it can be removed.Perhaps @William can add something here.
REP 127
does say this though (here):"rosdep key" could only mean "system dependency" (ie: non-ROS pkg), so it would seem this should work.
Is
bar
a ROS pkg?@gvdhoorn , in this example,
bar
need not be a ROS package. It's better (for my use case, at least) ifbar
is _not_ a ROS package. This would allow me to<replace>
arbitrary packages by name and not just the proper subset of packages known torosdep
.Hm.
I can think of one reason why we would not want to do/support/allow this (but this is just me speculating): if arbitrary pkgs could be replaced that way, I would create a "rogue"
package.xml
, release it and replace any arbitrary pkg on a system. That wouldn't be very nice....unless, of course, that was the desired behavior. Any person (or software tool) capable of creating and/or editing a
debian/control
file can effect package removal. Maintainers and system administrators are responsible for package hygiene and installation, respectively.In principle I agree. But we have to remember that releasing a ROS pkg and getting it distributed through the package repositories to thousands of user's machines is way easier than getting something into Debian/Ubuntu -- which have stricter quality control mechanisms.
But again: it was just me speculating.
What you've observed could just be a bug in the generator.
Submitted issue asking for clarification: https://github.com/ros-infrastructure...