[SSSD] [PATCHES] libwbclient: user _sssd suffix to avoid collision with Samba version

Lukas Slebodnik lslebodn at redhat.com
Mon Sep 8 12:58:08 UTC 2014


On (05/09/14 18:07), Sumit Bose wrote:
>Hi,
>
>currently if libwbclient is enabled (and it is enabled be default) 'make
>install' might overwrite the already installed Samba version of the
>library.
>
>To make this more robust but keep the library enabled by default I would
>suggest to add a _sssd suffix to all installed files to avoid
>collisions. If an admin want to use the SSSD version instead of the
>Samba version the libraries must be replaced manually. Distributions can
>you their scheme to handle different implementations of the same binary
>during building the packages, e.g. for Fedora and RHEL this would be
>/sbin/alternatives.
>
>All renaming is done in the second patch. The first patch just fixes an
>issue during make test when disabling libwbclient and should be applied
>even if the second is NACKed.
>
>bye,
>Sumit

>From e2243251fe5917fbcb7ec28128697936966fa9eb Mon Sep 17 00:00:00 2001
>From: Sumit Bose <sbose at redhat.com>
>Date: Fri, 5 Sep 2014 10:33:21 +0200
>Subject: [PATCH 1/2] dlopen test: only test libwbclient when it is build
>
>---
> src/tests/dlopen-tests.c | 2 ++
> 1 file changed, 2 insertions(+)
>
Obvious ACK

>From 9ebb9b66fdd730448014d4bf3b984fd861214a86 Mon Sep 17 00:00:00 2001
>From: Sumit Bose <sbose at redhat.com>
>Date: Fri, 5 Sep 2014 12:30:43 +0200
>Subject: [PATCH 2/2] libwbclient: user _sssd suffix to avoid collision with
> Samba version
>
>---
> Makefile.am                                    |   15 +-
> configure.ac                                   |    2 +-
> contrib/sssd.spec.in                           |    8 +-
> src/sss_client/libwbclient/libwbclient.h       |    2 +-
> src/sss_client/libwbclient/wbclient.h          | 1372 ------------------------
> src/sss_client/libwbclient/wbclient.pc.in      |   11 -
> src/sss_client/libwbclient/wbclient_sssd.h     | 1372 ++++++++++++++++++++++++
> src/sss_client/libwbclient/wbclient_sssd.pc.in |   11 +
> src/tests/dlopen-tests.c                       |    2 +-
> 9 files changed, 1398 insertions(+), 1397 deletions(-)
> delete mode 100644 src/sss_client/libwbclient/wbclient.h
> delete mode 100644 src/sss_client/libwbclient/wbclient.pc.in
> create mode 100644 src/sss_client/libwbclient/wbclient_sssd.h
> create mode 100644 src/sss_client/libwbclient/wbclient_sssd.pc.in
>
>diff --git a/Makefile.am b/Makefile.am
>index ce9063e..a8ab100 100644
>--- a/Makefile.am
>+++ b/Makefile.am
>@@ -793,11 +793,12 @@ include_HEADERS = \
>     $(NULL)
> 
> if BUILD_LIBWBCLIENT
>-lib_LTLIBRARIES += libwbclient.la
>-pkgconfig_DATA += src/sss_client/libwbclient/wbclient.pc
>+lib_LTLIBRARIES += libwbclient_sssd.la
>+pkgconfig_DATA += src/sss_client/libwbclient/wbclient_sssd.pc
> 
>-EXTRA_libwbclient_la_DEPENDENCIES = src/sss_client/libwbclient/wbclient.exports
>-libwbclient_la_SOURCES = \
>+EXTRA_libwbclient_sssd_la_DEPENDENCIES = \
>+    src/sss_client/libwbclient/wbclient.exports
>+libwbclient_sssd_la_SOURCES = \
>     src/sss_client/libwbclient/wbc_guid.c \
>     src/sss_client/libwbclient/wbc_idmap_common.c \
>     src/sss_client/libwbclient/wbc_idmap_sssd.c \
>@@ -810,16 +811,16 @@ libwbclient_la_SOURCES = \
>     src/sss_client/libwbclient/wbc_sssd_internal.h \
>     src/sss_client/libwbclient/wbc_util_common.c \
>     src/sss_client/libwbclient/wbc_util_sssd.c
>-libwbclient_la_LIBADD = \
>+libwbclient_sssd_la_LIBADD = \
>     libsss_nss_idmap.la \
>     $(CLIENT_LIBS)
>-libwbclient_la_LDFLAGS = \
>+libwbclient_sssd_la_LDFLAGS = \
>     -Wl,--version-script,$(srcdir)/src/sss_client/libwbclient/wbclient.exports \
>     -version-info 11:0:11
I am not really sure it will work.
The problem with colliding names is fixed, but utilities will not work with
this new library. The side effect of renaming is that soname is changed.

   sh-4.3$ objdump -p .libs/libwbclient_sssd.so | grep -i wbclient
   .libs/libwbclient_sssd.so:     file format elf64-x86-64
     SONAME               libwbclient_sssd.so.0
   1 0x01 0x0af71cb0 libwbclient_sssd.so.0
   2 0x00 0x0d90a3c9 WBCLIENT_0.9
   3 0x00 0x090a3c90 WBCLIENT_0.10
           WBCLIENT_0.9
   4 0x00 0x090a3c91 WBCLIENT_0.11


   sh-4.3$ objdump -p /usr/lib64/libwbclient.so | grep -i wbclient
   /usr/lib64/libwbclient.so:     file format elf64-x86-64
     SONAME               libwbclient.so.0
   1 0x01 0x08faa220 libwbclient.so.0
   2 0x00 0x0d90a3c9 WBCLIENT_0.9
   3 0x00 0x090a3c90 WBCLIENT_0.10
           WBCLIENT_0.9
   4 0x00 0x090a3c91 WBCLIENT_0.11

And winbind utilities require different soname than we have.
   bash-4.3$ objdump -p /usr/bin/wbinfo | grep -A2  wbclient
     NEEDED               libwbclient.so.0
     NEEDED               libreplace.so
     NEEDED               libsamba-hostconfig.so.0
   --
     required from libwbclient.so.0:
       0x090a3c90 0x00 13 WBCLIENT_0.10
       0x0d90a3c9 0x00 07 WBCLIENT_0.9

LS



More information about the sssd-devel mailing list