ROS Infrastructure

This is a build of the "base" ROS packages needed to perform the "source" install of ROS.

Currently, we *CAN* build all the metapackage variants for Opensuse 15.1 x86_64. We are missing some graphics libraries on other architectures and SLE, at the moment.
https://github.com/ros/metapackages.

I have created another project called "ROS:External_Dependencies" where I am putting ROS dependencies which are not available with the OS and not a part of ROS.

https://build.opensuse.org/project/show/home:neotinker3:ROS:External_Dependencies

The target for this project is ROS Melodic and newer. It currently builds for SLE 15 SP1, Opensuse Leap 15.1 (x86_64, aarch64, and armv7l) but I have only been testing SLES 15 SP1 and Opensuse Leap 15.1 (x86_64). The Opensuse Leap 15.1 ARM builds should work as long as there are no differences in OS provided package names.

Currently, I am maintaining my own rosdistro with custom modifications for Opensuse Leap 15.1 and SLES 15 SP1 at https://github.com/neotinker/rosdistro. You must use the "opensuse_leap" branch to get functional dependencies for Opensuse Leap 15.1 and the 'sles_15_1' branch for SLES 15 SP1. Eventually, when these changes have stabilized and been tested, I will open pull requests to merge them back into ros/rosdistro.

The goal is to be able to follow the Installing from Source Wiki ( http://wiki.ros.org/melodic/Installation/Source ) but there are currently a few differences.

For section 1.1, "Installing bootstrap dependencies"

1) Install This repository
sudo zypper --gpg-auto-import-keys ar -f -n "ROS Infrastructure (openSUSE_Leap_15.1)" http://download.opensuse.org/repositories/home:/neotinker3:/ROS:/ros-infrastructure/openSUSE_Leap_15.1/ ROS-Infrastructure
sudo zypper --gpg-auto-import-keys ar -f -n "ROS External Dependencies (openSUSE_Leap_15.1)" https://download.opensuse.org/repositories/home:/neotinker3:/ROS:/External_Dependencies/openSUSE_Leap_15.1/ ROS-External-Dependencies
sudo zypper refresh

2) Install "base" packages

sudo zypper in gcc-c++ python2-rosdep python2-rosinstall_generator python2-wstool python2-rosinstall libboost_system1_66_0-devel libboost_chrono1_66_0-devel libboost_date_time1_66_0-devel libboost_serialization1_66_0-devel libboost_thread1_66_0-devel libboost_filesystem1_66_0-devel libboost_program_options1_66_0-devel liblz4-devel libboost_signals1_66_0-devel libboost_regex1_66_0-devel ros_external_cmake_modules

For section 1.2, "Initializing rosdep"

1) Initialize rosdep sources

$ export ROSDISTRO_INDEX_URL=https://raw.githubusercontent.com/neotinker/rosdistro/opensuse_leap/index-v4.yaml
$ sudo rosdep init

2) Update the rosdep sources to point to my git repo

By default, the file created by the previous command (/etc/ros/rosdep/sources.list.d/20-default.list) has multiple entries that point to the Official ROS rosdistro git repo. These need to be modified to point to my fork of rosdistro. It should look something like the following, opensuse is your target.

# os-specific listings first
yaml https://raw.githubusercontent.com/neotinker/rosdistro/opensuse_leap/rosdep/osx-homebrew.yaml osx

# generic
yaml https://raw.githubusercontent.com/neotinker/rosdistro/opensuse_leap/rosdep/base.yaml
yaml https://raw.githubusercontent.com/neotinker/rosdistro/opensuse_leap/rosdep/python.yaml
yaml https://raw.githubusercontent.com/neotinker/rosdistro/opensuse_leap/rosdep/ruby.yaml
gbpdistro https://raw.githubusercontent.com/neotinker/rosdistro/opensuse_leap/releases/fuerte.yaml fuerte

# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead

3) Update sources

$ rosdep update

Follow sections 2 through 2.1.1 as specified in the source install wiki. If any of these don't work, let me know.

For section 2.1.2, "Building the catkin Workspace"

1) Force catkin_make_isolated to use python 2.7

I suppose it should be possible to force python 3.6 but I haven't tested it yet. If you don't force the use of one python interpreter, the packages with use a mix of both and some will fail due to missing dependencies that aren't getting built.

./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=/usr/bin/python

I'll try to keep this description updated with what is working. And this description should shrink as I resolve pending issues.

See also
https://github.com/ros-infrastructure
https://github.com/ros/rosdistro

Name Changed
Comments for home:neotinker3:ROS:ros-infrastructure 0