ROS packages for Slackware 14.2 and serious p— in the a…bdomen-related orifices

Since as of today nobody has packaged the ROS into Slackware packages, time to do it! And invent new curse-words that shall be timeless as the invention of flugelhorn itself.

First a disclaimer: dear ROS developers, I would rather jet-ski across the Atlantic ocean on a skateboard powered by a couple of fluorescent hamsters than openly use rosinstall_generator/wstool/rosdep/catkin_make/catkin_make_install combo in the package script and rely only on its magic. I’m dead serious.

So, I retraced what is happening when you use rosinstall_generator and wstool, and the conclusion is: I can do it before performing SlackBuild script. First of all, all github releases have a similar pattern for downloads: 

Now, if you try downloading it with Firefox – you will get gencpp-0.5.5.tar.gz and it is completely normal. But with wget – 0.5.5.tar.gz, but the file inside is the same (the tar-gzipped directory is still gencpp-0.5.5), and in order for wget to download a file with NAME-VERSION.tar.gz you can actually change the link to a patter:

So I compile a list of all packages that rosinstall_generator fetches in order to create ros_comm:

if you are trying to follow what I have done – save it as LINKS and do a simple

 wget `cat LINKS` 

but better use the sbopkg or sbotools and the scripts from (hopefully I have already finished uploading them and they are up)

Starting with catkin – and it is a first package that will require some patches. So, how to create a proper patch for the source code? Unpack catkin two times:

tar -xzf catkin-0.7.6.tar.gz
cp -R catkin-0.7.6 catkin-0.7.6-patched

now modify the catkin-0.7.6-patched directory as needed and create a diff file that will be later on used to patch the original directory:

diff -ru catkin-0.7.6 catkin-0.7.6-patched > catkin.patch

and … that’s pretty much it.

So what changes did I do to a poor catkin? Well, first of all – lib directory on pure 64bit system is a goddammit lib64! Learn a bloody difference!