Great, thanks for the info Peter, much appreciated. Ollie
----- Original Message ----- > From: "Peter Hillman" <pet...@wetafx.co.nz> > To: openexr-devel@nongnu.org > Sent: Monday, 14 January, 2013 6:45:06 AM > Subject: Re: [Openexr-devel] Patch-compatibilty with versioned > namespaces > Hi Ollie! > > Am I right in saying that, without versioned namespaces, patches > > are always binary compatible and minor versions always > > incompatible? > Yes, this should be the case > > Is there a patch-compatible namespacing method already provided > > (and if so, what is it)? > The existing method is patch-compatible: patches will still be > released > with the _2_0_0 namespace. We will only move from on from _2_0_0 and > .so.20 if binary compatibility has to be broken. > So, v2.0.X releases would all use the _2_0_0 namespace for all > classes. > If binary compatibility needs to be broken, we will most likely > update > the effected libraries to namespace _2_1_0, at which time the .so > version number will be bumped up to .so.21. This way, a large > application can safely load both old and new libraries. Indeed, this > ability is one of the reasons for switching to this versioned > namespace > scheme. > > What's the soname version number based on? > The soname version number (probably) tracks the first two digits of > the > namespace version number. > (the last digit in the namespace version is somewhat misleading, as > it > doesn't imply patch level: it's there only for an edge case of > providing > multiple versions of an object within the same .so but in different > namespaces, which we're really hoping we don't need to do in official > releases, but for internal builds might be the easiest way out of a > hole) > At least, that's my understanding of the plan! > Peter > On 09/01/13 03:10, Ollie Harding wrote: > > Hi, > > > > I wonder if somebody could clarify some versioning info for me, or > > point me at the bits of the docs which I've skimmed over too > > quickly? > > > > I'm building v2.0.0 using the --enable-namespaceversioning flag for > > ./configure, which gives me e.g. > > > > Imath_2_0_0::SingMatrixExc::~SingMatrixExc() > > > > This will of course mean that I cannot drop in a future v2.0.1 > > library since the Imath_2_0_0 symbols will no longer exist, > > although the library will presumably still share the .so.20 > > soname. I suspect I'm using the wrong method of making a unique > > namespace, as I in fact want a namespace which retains patch > > compatibility, e.g. maybe Imath_2_0. > > > > So my questions are: > > > > * Am I right in saying that, without versioned namespaces, patches > > are always binary compatible and minor versions always > > incompatible? > > * Is there a patch-compatible namespacing method already provided > > (and if so, what is it)? > > * What's the soname version number based on? > > > > Many thanks, > > > > Ollie > > > > _______________________________________________ > > Openexr-devel mailing list > > Openexr-devel@nongnu.org > > https://lists.nongnu.org/mailman/listinfo/openexr-devel > _______________________________________________ > Openexr-devel mailing list > Openexr-devel@nongnu.org > https://lists.nongnu.org/mailman/listinfo/openexr-devel
_______________________________________________ Openexr-devel mailing list Openexr-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/openexr-devel