Hi all,
I'm currently working on packaging the whole ROS stack by automatically
generating SPEC files with the help of the rosinstall_generator. I think
the project is far enough to be shared on this list, but it is still
work in progress.
The SPEC files are generated with a python script. You can check it out
here: https://pagure.io/ros
I've created a COPR for ROS Kinetic that contains all packages from
desktop_full and move_base for F24+ (currently only for x86_64):
https://copr.fedorainfracloud.org/coprs/thofmann/ros/
The scripts should also work for ROS Lunar (and possibly other
releases), but I've only tested Kinetic so far.
I decided to package each ROS package into a separate Fedora package,
because imho that's the best mapping from ROS to Fedora: Each package
has its own sources, different dependencies, and some packages require
different build arguments. This way, it's also much easier to add new
(ROS) packages to Fedora.
I picked /usr/lib64/ros as ROS_ROOT. Currently, this does not allow
having two separate ROS installations. But moving it to e.g.,
/usr/lib64/ros/kinetic should be as simple as adapting the template
file. Is that something we would want to have?
There are still some remaining tasks on my list:
- Provides: for ros-$pkgname (currently, the packages are all called
ros-kinetic-$pkgname)
- Clean up dependencies, many packages have explicit runtime
dependencies that they don't need because they are automatic
dependencies on the sonames. Some packages also have devel packages as
runtime dependency, which is of course incorrect.
- Splitting devel packages. I'm not sure how useful this would be, but I
think it is required by the packaging guidelines.
- I thought about adding the ROS lib dir to /etc/ld.so.conf.d, but I'm
not sure whether this is a good idea because most libraries have
unversioned sonames. On the other hand, all the packages currently
Provide: their (unversioned) libraries, which may have unexpected
effects, e.g., a program linking (and requiring) a ros lib without
sourcing the ROS environment.
- As it is, the ROS packages have a lot of bundled third-party
libraries. This may require some work to separate if at all possible.
- I haven't really checked any existing Fedora ROS packages other than
catkin_pkg.
In the long run, it would be awesome to get those packages into Fedora
(one-by-one), maybe even with different modules for the different ROS
versions - modularity could be very useful here!
In the meantime, I'd appreciate any feedback, test results, RFEs,
package requests, etc. The best place for this would be the repository:
https://pagure.io/ros/issues
We (team Carologistics, RCLL) have successfully tested some of those
packages on Fedora 25 at the last RoboCup in Japan, but of course more
tests would be nice, as we only use a few packages.
Please let me know what you think!
Kind regards,
Till
_______________________________________________
robotics mailing list -- robotics@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to robotics-leave@xxxxxxxxxxxxxxxxxxxxxxx