[apparmor] [patch] libapparmor: libtool versioning
John Johansen
john.johansen at canonical.com
Tue Feb 25 08:40:18 UTC 2014
On 02/25/2014 12:35 AM, Steve Beattie wrote:
> On Mon, Feb 24, 2014 at 11:17:59PM -0800, Steve Beattie wrote:
>> On Mon, Feb 24, 2014 at 11:13:23PM -0800, Steve Beattie wrote:
>>> On Mon, Feb 24, 2014 at 04:23:13PM -0800, Seth Arnold wrote:
>>>> In the course of building updated apparmor 2.8.95 packages for Ubuntu, I
>>>> updated the libtool variables to:
>>>>
>>>> AA_LIB_CURRENT = 2
>>>> AA_LIB_REVISION = 0
>>>> AA_LIB_AGE = 0
>>>>
>>>> To match the new '2' version we need to update the
>>>> libraries/libapparmor/configure.ac to know that this is libapparmor2.
>>>>
>>>> I propose this patch for trunk.
>>>
>>> I'm not happy about the .so version bump, but since that appears to be
>>> what we've done, we need to make the library name consistent.
>>>
>>>> Signed-of-by: Seth Arnold <seth.arnold at canonical.com>
>>>
>>> Signed-off-by: Steve Beattie <steve at nxnw.org>
>>
>> Sorry, that should be: Acked-by: Steve Beattie <steve at nxnw.org>
>
> Actually, NACK.
>
> I think we all have agreed that the library changes that have occurred
> on trunk should be considered as having added only new interfaces
> over 2.8. Given that, we should not be bumping the SO version.
>
> Part of the confusion on our part extends from not understanding the
> libtool versioning and how it translates into the library version
> and the SONAME. Our rules in libapparmor/src/Makefile.am should be
> stepped through without selectively applying them. Also, the resulting
> library version is:
> (AA_LIB_CURRENT - AA_LIB_AGE).AA_LIB_AGE.AA_LIB_REVISION
>
> For more details, see:
> http://www.gnu.org/software/libtool/manual/html_node/Libtool-versioning.html
> http://openbooks.sourceforge.net/books/wga/dealing-with-libraries.html
> (see the section A Note about Version Numbers)
>
> The following patch adjusts the trunk libtool versions in accordance
> with the outlined rules. It also adds clarifying text to the
> documentation comment to explain how to use the rules and what the
> resulting outcome is. Finally, it removes a bogus argument to linker
> to forcibly set the SONAME in the library, as libtool will do this
> automatically (and override the passed argument).
>
> Signed-off-by: Steve Beattie <steve at nxnw.org>
much better
Acked-by: John Johansen <john.johansen at canonical.com>
> ---
> libraries/libapparmor/src/Makefile.am | 14 +++++++++++---
> 1 file changed, 11 insertions(+), 3 deletions(-)
>
> Index: b/libraries/libapparmor/src/Makefile.am
> ===================================================================
> --- a/libraries/libapparmor/src/Makefile.am
> +++ b/libraries/libapparmor/src/Makefile.am
> @@ -1,7 +1,7 @@
> INCLUDES = $(all_includes)
>
> # variables to set the library versions used by libtool
> -# Use these rules to update the library version.
> +# Step through these rules IN ORDER to update the library version.
> # 1. Update the version information only immediately before a public release
> # of your software. More frequent updates are unnecessary, and only
> # guarantee that the current interface number gets larger faster.
> @@ -18,9 +18,17 @@ INCLUDES = $(all_includes)
> # release, then
> # - set AA_LIB_AGE to 0.
> #
> +# The resulting library version triplet will be:
> +# (AA_LIB_CURRENT - AA_LIB_AGE).AA_LIB_AGE.AA_LIB_REVISION
> +# and the SONAME will be:
> +# libapparmor.so.(AA_LIB_CURRENT - AA_LIB_AGE)
> +#
> +# For more information, see:
> +# http://www.gnu.org/software/libtool/manual/html_node/Libtool-versioning.html
> +#
> AA_LIB_CURRENT = 2
> AA_LIB_REVISION = 0
> -AA_LIB_AGE = 0
> +AA_LIB_AGE = 1
>
> SUFFIXES = .pc.in .pc
>
> @@ -42,7 +50,7 @@ noinst_HEADERS = grammar.h parser.h scan
>
> libapparmor_la_SOURCES = grammar.y libaalogparse.c kernel_interface.c scanner.c
> libapparmor_la_LDFLAGS = -version-info $(AA_LIB_CURRENT):$(AA_LIB_REVISION):$(AA_LIB_AGE) -XCClinker -dynamic -pthread \
> - -Wl,--version-script=$(top_srcdir)/src/libapparmor.map -Wl,-soname=libapparmor.so.1
> + -Wl,--version-script=$(top_srcdir)/src/libapparmor.map
>
> pkgconfigdir = $(libdir)/pkgconfig
> pkgconfig_DATA = libapparmor.pc
>
>
>
More information about the AppArmor
mailing list