diff --git a/changehat/libapparmor/libapparmor1.spec b/changehat/libapparmor/libapparmor1.spec index ced4aeba0..4b956dd2e 100644 --- a/changehat/libapparmor/libapparmor1.spec +++ b/changehat/libapparmor/libapparmor1.spec @@ -22,7 +22,7 @@ Summary: A utility library for AppArmor - %package -n libapparmor-devel -Requires: %{name} = %{version} +Requires: %{name} = %{version}-%{release} Group: Development/Libraries/C and C++ Provides: libapparmor:/usr/include/sys/apparmor.h Summary: - @@ -50,7 +50,7 @@ Summary: - %build ./configure --prefix=%{_prefix} --libdir=%{_libdir} --with-perl -make +make CFLAGS="${RPM_OPT_FLAGS}" %install make install DESTDIR="$RPM_BUILD_ROOT" @@ -100,6 +100,8 @@ rm -rf "$RPM_BUILD_ROOT" %{perl_vendorarch}/LibAppArmor.pm %changelog -- +* Wed Aug 15 2007 - sbeattie@suse.de +- fix braindead symbol versioning issue with old version name +- re-enable CFLAGS=RPM_OPT_FLAGS for build diff --git a/changehat/libapparmor/src/Makefile.am b/changehat/libapparmor/src/Makefile.am index 74edea61a..5878d852b 100644 --- a/changehat/libapparmor/src/Makefile.am +++ b/changehat/libapparmor/src/Makefile.am @@ -16,10 +16,10 @@ lib_LTLIBRARIES = libapparmor.la libimmunix.la noinst_HEADERS = grammar.h parser.h scanner.h libapparmor_la_SOURCES = grammar.y libaalogparse.c change_hat.c scanner.c -libapparmor_la_LDFLAGS = -module -version-info 1:0:0 -XCClinker -dynamic \ +libapparmor_la_LDFLAGS = -version-info 1:0:0 -XCClinker -dynamic \ -Wl,--version-script=libapparmor.map -Wl,-soname=libapparmor.so.1 libimmunix_la_SOURCES = change_hat.c libimmunix_warning.c -libimmunix_la_LDFLAGS = -module -version-info 1:0:0 -Wl,--version-script=libapparmor.map -Wl,-soname=libimmunix.so.1 +libimmunix_la_LDFLAGS = -version-info 1:0:0 -Wl,--version-script=libapparmor.map -Wl,-soname=libimmunix.so.1 EXTRA_DIST = grammar.y scanner.l libapparmor.map diff --git a/changehat/libapparmor/src/change_hat.c b/changehat/libapparmor/src/change_hat.c index f814730de..8ecf0654b 100644 --- a/changehat/libapparmor/src/change_hat.c +++ b/changehat/libapparmor/src/change_hat.c @@ -21,7 +21,12 @@ #include #include -int change_hat(char *subprofile, unsigned int token) +#define symbol_version(real, name, version) \ + __asm__ (".symver " #real "," #name "@" #version) +#define default_symbol_version(real, name, version) \ + __asm__ (".symver " #real "," #name "@@" #version) + +int __change_hat(char *subprofile, unsigned int token) { int rc = -1; int fd, ret, len = 0, ctlerr = 0; @@ -83,3 +88,8 @@ out: } return rc; } + +/* create an alias for the old change_hat@IMMUNIX_1.0 symbol */ +extern typeof((__change_hat)) __old_change_hat __attribute__((alias ("__change_hat"))); +symbol_version(__old_change_hat, change_hat, IMMUNIX_1.0); +default_symbol_version(__change_hat, change_hat, APPARMOR_1.0); diff --git a/changehat/libapparmor/src/libapparmor.map b/changehat/libapparmor/src/libapparmor.map index 93aed6e92..a9fcd2879 100644 --- a/changehat/libapparmor/src/libapparmor.map +++ b/changehat/libapparmor/src/libapparmor.map @@ -12,4 +12,4 @@ APPARMOR_1.0 { free_record; local: *; -}; +} IMMUNIX_1.0;