Enhancement #1127

Make multiple RSC versions installable in parallel

Added by J. Moringen over 11 years ago. Updated over 11 years ago.

Status:ResolvedStart date:08/03/2012
Priority:NormalDue date:
Assignee:J. Wienke% Done:

100%

Category:cmake
Target version:Robotics Service Bus - rsb-0.9

Description

Since the shared objects are already versioned, this should be achievable by installing headers into versioned directories. E.g. /usr/include/rsc-0.8.

multiple-install.patch Magnifier (7.4 KB) J. Wienke, 08/03/2012 07:37 PM

0001-Make-RSC-installable-in-parallel-with-several-versio.patch Magnifier (6.31 KB) J. Moringen, 08/03/2012 11:38 PM

0002-Fixed-quoting-in-src-CMakeLists.txt.patch Magnifier (1.61 KB) J. Moringen, 08/03/2012 11:38 PM

0003-Use-the-fully-versioned-so-file-in-pkg-config-to-rea.patch Magnifier (2.71 KB) J. Wienke, 08/06/2012 05:56 PM

Associated revisions

Revision d1e7989f
Added by J. Wienke over 11 years ago

Make RSC installable in parallel with several versions refs #1127 This means: * provide a subdirectory for include files * install share files in a versioned subfolder * rename the pkg-config file to rsc0.X.pc (this breaks backwards compatibility) * fix pkg-config and cmake config files to include the new directories

Signed-off-by: Johannes Wienke <>

Revision 36ceb37a
Added by J. Wienke over 11 years ago

Use the fully versioned so file in pkg-config to really allow parallel installations.
As the hacked generation of the pc file really only works on linux, do not build the pc file on other platforms

fixes #1127

Revision afe974a9
Added by J. Wienke over 11 years ago

Do not install an "unversioned" symlink to the library to prevent clashes between different versions of RSC.
refs #1127

History

#1 Updated by J. Wienke over 11 years ago

  • Status changed from New to In Progress

#2 Updated by J. Wienke over 11 years ago

Attached is a patch which should allow to install multiple versions of RSC. However, especially with pkg-config this changes backwards compatibility as the file has to be named with the version in its name. Jan, can you look if this fix is really correct and acceptable?

#3 Updated by J. Moringen over 11 years ago

Apart from the very minor changes in the attached files, the patch looks fine to me. I tried it and it seemed to work.

However, I noticed the following problem:

Installing: /homes/jmoringe/opt-x86_64/rsc/lib/librsc.so

What should we do about this?

#4 Updated by J. Wienke over 11 years ago

We can't do anything. The usual cmake logic always redirects the symlink. Anyhow, the cmake config file will point to the specific version, not the general link.

What I am not sure about is how to create this behavior also in the pkg-config file.

#5 Updated by J. Wienke over 11 years ago

Attached is a patch which hacks using fully versioned libraries in pc files. Should we also disable pc files on MAC? Won't work right now.

#6 Updated by J. Moringen over 11 years ago

Debian packages will still not be installable in parallel due to the duplicate shared object file.

#7 Updated by J. Wienke over 11 years ago

Shouldn't cpack ignore this and instead call libtool?

#8 Updated by J. Wienke over 11 years ago

Anyway, I don't think this is an issue we should directly care for generally, but only for debian packaging.

#9 Updated by J. Wienke over 11 years ago

  • Status changed from In Progress to Resolved
  • % Done changed from 0 to 100

Applied in changeset rsc|commit:36ceb37a943dd002bac0f4653b5c5dacf911ebca.

Also available in: Atom PDF