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

infernalis: librados (C++) linker error (undefined reference) #7835

Closed
wants to merge 2 commits into from

Conversation

smithfarm
Copy link
Contributor

buffer::list::iterator_impl symbols are referenced by const_iterator
and iterator, and are exposed as weak symbols. if a source file is
compiled using the buffer.h, the produced object file will reference
these symbols as well, so we'd better hiding them and avoid using
them in the header file.
as a side-effect, buffer::list::const_iterator is also hidden, but
currently we don't have any librados client using this class, so
we can just leave it as an internal class at this moment.

Fixes: ceph#14788
Signed-off-by: Kefu Chai <kchai@redhat.com>
(cherry picked from commit 6c64578)
the symbols of buffer::list::iterator_impl<> were wrongly exposed
in previous infernalis release, and the clients linked against
librados are very likely using them. so we need to document this
change.

Signed-off-by: Kefu Chai <kchai@redhat.com>
(cherry picked from commit 694f92f)

Conflicts:
	PendingReleaseNotes
           fix is backported to v9.2.2 - adjust version number to reflect
           this
@smithfarm smithfarm self-assigned this Feb 28, 2016
@smithfarm smithfarm added this to the infernalis milestone Feb 28, 2016
@tchaikov
Copy link
Contributor

tchaikov commented Mar 1, 2016

@smithfarm i rethought about this. i'd suggest not bump the so version.

in theory, we should change "2:0:0" to "3:0:0", as we removed some of the interfaces from librados. and the produced shared object would be librados.so.3.0.0. but that would break the soname dependency of rpm packages depending on librados.

    failed dependencies:
        librados.so.2  is needed by foobar-pacakge-2.11-1

among them, the most notably package is qemu. so as long as foobar-package is not linked against v9.1.0 or v9.2.0. it will continue to work when the librados v10.* is installed. and since hammer is the last LTS, most (if not all) distros are packaging hammer. so there is less chance that it will break. what do you think?

@smithfarm
Copy link
Contributor Author

@tchaikov OK, so we leave the versioning unchanged in infernalis, but what about jewel?

@tchaikov
Copy link
Contributor

tchaikov commented Mar 2, 2016

@smithfarm we leave it unchanged in jewel also. @liewegas what do you think?

@smithfarm
Copy link
Contributor Author

@tchaikov, @liewegas: The reason I'm asking is that I'd dearly love to drop the hard librados dependencies (Requires: librados2 = %{epoch}:%{version}-%{release}) from the libradosstriper1 and librbd1 packages, but this requires that librados2 be "properly versioned" (whatever that means).

@tchaikov
Copy link
Contributor

@smithfarm #7974 (comment) does this convince you?

@smithfarm
Copy link
Contributor Author

@tchaikov I'm OK to leave the major so version number unchanged in infernalis.

@tchaikov
Copy link
Contributor

@smithfarm so you are suggesting bump up the release number?

@smithfarm
Copy link
Contributor Author

@tchaikov I don't know. I want to drop the inter-shared-library runtime dependencies from the spec file (see the Requires: librados2 = %{epoch}:%{version}-%{release} lines in libradosstriper1 and librbd1 packages) because they make it impossible for folks to have different versions of these shared libraries installed at the same time.

I have a problem, but I don't have a solution.

@ghost
Copy link

ghost commented Aug 8, 2016

infernalis has been EOL for a few months now, there does not seem to be a need for another release, even for upgrade purposes

@ghost ghost closed this Aug 8, 2016
@jan--f jan--f deleted the wip-14916-infernalis branch February 8, 2017 20:14
This pull request was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants