[Documentation] [TitleIndex] [WordIndex

Overview

This tutorial will walkthrough the process I used to work on porting actionlib. Up until this point, actionlib's dependency stacks are already working and in the winros sdk.

Preparation

> call C:\opt\ros\fuerte\x86\env.bat

> cd C:\work
# Create and install minimal source environment in C:\work\ws
> winros ws init 
# Add your own source stacks.
> cd C:\work\ws
> rosws set actionlib --hg https://kforge.ros.org/common/actionlib
> rosws update actionlib

Build

Or attempt to build (probably fail the first time you bring in a new stack). Actionlib is already catkinized (uses the new rosbuild system), so the only problems we should have are due to cross platform coding bugs or not found rosdeps.

I wouldn't worry about trying to do this for a non-catkinized stack - wait for it to be officially catkinized by the developer first otherwise you'll be doing alot of patching.

Do everything in the parallel build directory ./build_ws

# cmake configuration
> winros ws configure
# compile
> winros ws build

Of course here you will find alot of errors in one or both of those steps that need to be fixed. Hack away on your ./ws directory until you are happy.

Hacking

Patches

Next, we need a diff(s) of all the changes in the actionlib stack. Multiple diffs are better - one for each fix. This makes it easier for them to get accepted upstream. Chances are if you do one massive diff for 5+ changes, it will not get accepted.

For each patch I made with actionlib, I typically followed the following process.

> hg clone https://kforge.ros.org/common/actionlib
> cp -r actionlib actionlib_new
# Add my changes to actionlib_new
> diff -NBaur -x ".hg" -x ".svn" -x ".git" -x "*.pyc" actionlib actionlib_new > actionlib_boost_dependencies.patch

Here it will get automatically applied for the sdk and whenever setting up the build environment. Some patches are included that are necessary, but maybe not properly correct, or they are just workarounds till a real solution is available. These are floated in win_ros continuously.

If on the other hand, the patch looks good, and it tests ok, we'll send it upstream for merging into the official stacks (all patches should eventually go this way.

You can see the current and previous status of all patches since fuerte in mainpage.dox.


2022-06-11 13:11