Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Version numbering of the shared libraries in debian packages #286

Merged
merged 7 commits into from
Jan 1, 2015

Conversation

jslee02
Copy link
Member

@jslee02 jslee02 commented Dec 11, 2014

Version numbering of the shared libraries in debian packages

This PR changes naming of the shared libraries. Since ABI breaking is done per minor version up, minor version number needs to be appear to the shared libraries.

For example:

  • libdart-core4.2 package installs libdart-core.so.4.2
  • libdart-core4-dev package installs libdart-core.so.4 symlink

This PR should fixes #281.

@jslee02 jslee02 reopened this Dec 11, 2014
@jslee02 jslee02 added this to the Release DART 4.2 milestone Dec 11, 2014
@@ -11,3 +11,4 @@ usr/include/dart/simulation/*
usr/share/dartcore/DARTCoreConfig.cmake
usr/share/dartcore/DARTCoreConfigVersion.cmake
usr/share/dartcore/DARTCoreTargets*.cmake
usr/lib/libdart-core.so.4
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The -dev packages usually host the symlinks (.so) that points to real libraries (.so.4.2). Any reason to use here a .so.4?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

First, .so.4 is a symlink as well. When dart-core is built, the following files are generated:

libdart-core.so (symlink points to libdart-core.so.4.2)
libdart-core.so.4 (symlink points to libdart-core.so.4.2)
libdart-core.so.4.2 (real library)

I thought libdart-core[MAJOR_VER]-dev packages host libdart-core.so.[MAJOR_VER], which are symlinks, and libdart-core[MAJOR_VER].[MINOR_VER] pacakges host libdart-core.so.[MAJOR_VER].[MINOR_VER], which is real libraries.

Is it more standard if libdart-core[MAJOR_VER]-dev packages host libdart-core.so?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two thoughts:

1- About SONAME used

When breaking ABI on minors, there is no point for me on having a SONAME (which will be stored in applications using the library) defined only by majors (libdart-core.so.4) since the next version 4.3 is not going to be compatible with 4.2. So, the SONAME should be lib.so.{major}.{minor} and our library real name could be lib.so.{major}.{minor}.{patch}.

2- About packaging

From the debian policy:

Shared libraries are normally split into several binary packages. The SONAME symlink is installed by the runtime shared library package, and the bare .so symlink is installed in the development package since it's only used when linking binaries or shared libraries.

So, we should put .so inside -dev and the .so.Major.Minor (symlink) and .so.Major.Minor.Patch (binary) inside the lib package.

Sorry for the previous confusion, let me know if I need to explain something better.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's an clear explanation, thanks!

I made changes that applies the policy and the other comments of yours. Please let me know if it needs more change.

@jslee02 jslee02 added Comp: Build type: bug Indicates an unexpected problem or unintended behavior priority: medium should be resolved before the next release labels Dec 16, 2014
@jslee02
Copy link
Member Author

jslee02 commented Jan 1, 2015

I think, this pr is ready to merge, if I correctly followed @j-rivero 's comment.
+1

karenliu added a commit that referenced this pull request Jan 1, 2015
Version numbering of the shared libraries in debian packages
@karenliu karenliu merged commit 761baa5 into release-4.2 Jan 1, 2015
@jslee02 jslee02 deleted the debian_install branch January 15, 2015 19:12
@scpeters
Copy link
Collaborator

Fixed #211

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
priority: medium should be resolved before the next release type: bug Indicates an unexpected problem or unintended behavior
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants