[Fedora Robotics] Re: ROS packages

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Aug 17, 2017 at 5:20 PM, Jose Luis Rivero
<jrivero@xxxxxxxxxxxxxxxxx> wrote:
> Hello Till:
>
> On 16/08/17 22:19, Till Hofmann wrote:
>> 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.
>>
>
> I just want to mention that there was a previous effort to package ROS
> in Fedora in the past, mostly done by Rich Mattes:
> - https://fedoraproject.org/wiki/SIGs/Robotics/ROS_Packaging
>
> A similar work has been done in Debian recently:
> - https://wiki.debian.org/DebianScience/Robotics/ROS/Motivation
>
> You can check their approach which does not rely in ROS distribution
> (ROS debian packages[1] has no ROS distribution in their names) and also
> map one ROS package with one downstream distribution package.
>
> Some patches in Debian and specially the work done in Fedora before
> could be useful to you.
>
> Good luck!
>
> [1] https://wiki.debian.org/DebianScience/Robotics/ROS/Packages
>

Hi Till,

This is great, thanks for taking this on!  Expanding on what Jose
mentioned: there have been a couple efforts to support ROS packaging
in Fedora, none of which made it all the way to a usable product.  A
little bit of history:

As Jose said, I did try to package ROS in Fedora, around the fuerte
timeframe in 2012.  As a result of that effort, about half of the core
ROS stack as outlined on the robotics sig wiki page is packaged for
fedora, and the other half is sitting in review requests.  When I did
it, I took the approach that there would be one ros distro provided in
the core Fedora repositories, and that they would be installed like
any other system package (e.g. libs in /usr/lib<qual>, config in /etc,
data in /usr/share.)  I figured that if anyone needed support for a
separate ros distro, they could continue to build manually and install
to /opt.  I was also creating the specfiles manually, so that I could
create proper subpackages (-devel, -doc, etc.)  in each individual
case.  I think that this effort closely maps to the debian science
efforts, though they got a lot farther than I did.  I did recently
look at trying to bring the debian science patches to fedora to
restart the packaging process, but I haven't had the time to dedicate
to such an effort.

Around the 2014 timeframe, we started to investigate the possibility
of having the ros buildfarm generate fedora RPMs in parallel to the
Ubuntu debs, so that all of the ros distros would be available in a
manner similar to Ubuntu.  Scott Logan did the work there, and landed
patches to the ROS 'bloom' tool enabling it to generate spec files for
fedora.  That infrastructure is in place, but we got hung up in
working with the OSRF to enable RPM building in their buildfarm, and
then that fizzled out as well.

As it stands today, a lot of ROS dependencies are packaged in Fedora,
making it possible to build from source pretty easily.  I think that
to move forward safely, you need to decide for the long term whether
you want to support:
- ROS installation via OSRF resources
- ROS installation via copr
- ROS packages in the distribution proper

Supporting ROS as a copr gives you a lot of leeway to do things that
don't conform to the packaging guidelines, such as installing parallel
stacks to /opt, creating single rpms for each package, etc.  To bring
the packages into fedora proper, as Tom was getting at, you need to
reconcile how to support multiple software stacks within the package
guidelines (and possibly get some exemptions to the guidelines,) and
how to auto-generate specs that meet the packaging guidelines (proper
division of -devel packages, etc.)

In case that wasn't enough to worry about, there is also a
"Modularity" effort going on in Fedora.  I have not been able to
figure out what they're doing, but [1] claims that it's modules can
have different lifecycles than the base distribution.  It may provide
a model to maintain multiple ROS stacks in parallel, but I don't
really have any more information than that.

I'm happy to add you to the existing ROS packages that have been
reviewed, add you to the robotics-sig user group, and continue to
discuss on the mailing list.

As a side note, I've recently been poking at ros2 packaging[2].  The
ecosystem is a lot smaller at the moment, and it may be able to re-use
some of the concepts and tooling that get worked out for ros 1.


[1] https://docs.pagure.org/modularity/
[2] https://copr.fedorainfracloud.org/coprs/g/robotics-sig/ros2/
_______________________________________________
robotics mailing list -- robotics@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to robotics-leave@xxxxxxxxxxxxxxxxxxxxxxx




[Index of Archives]     [Fedora Users]     [Fedora Electronics Lab]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Summer Coding]

  Powered by Linux