On Fri, Feb 1, 2013 at 11:57 AM, Jeff Layton <jlayton@xxxxxxxxx> wrote: > The idmapwb plugin requires a usable wbcSidsToUnixIds() function. Check > to ensure that the wbclient library provides that symbol, and handle > it appropriately if it doesn't. > > If someone were so inclined they probably could fix idmapwb to fall > back to the older mapping functions if that symbol doesn't exist, > but for now this patch just makes it refuse to build the plugin. > > Reported-by: Shirish Pargaonkar <shirishpargaonkar@xxxxxxxxx> > Signed-off-by: Jeff Layton <jlayton@xxxxxxxxx> > --- > aclocal/idmap.m4 | 20 ++++++++++++++++++++ > 1 file changed, 20 insertions(+) > > diff --git a/aclocal/idmap.m4 b/aclocal/idmap.m4 > index 939a901..4946179 100644 > --- a/aclocal/idmap.m4 > +++ b/aclocal/idmap.m4 > @@ -19,6 +19,26 @@ if test $enable_cifsidmap != "no" -o $enable_cifsacl != "no"; then > ]) > fi > > +if test $enable_cifsacl != "no" -o $enable_cifsacl != "no"; then > + ac_wbc_save_LDFLAGS="$LDFLAGS" > + LDFLAGS="$LDFLAGS $WBCLIENT_LIBS" > + AC_CHECK_LIB(wbclient, wbcSidsToUnixIds, , [ > + if test "$enable_cifsidmap" = "yes"; then > + AC_MSG_ERROR([wbclient library lacks wbcSidsToUnixIds().]) > + else > + AC_MSG_ERROR([wbclient library lacks wbcSidsToUnixIds(). Disabling cifs.idmap.]) > + enable_cifsidmap="no" > + fi > + if test "$enable_cifsacl" = "yes"; then > + AC_MSG_ERROR([wbclient library lacks wbcSidsToUnixIds.]) > + else > + AC_MSG_WARN([wbclient library lacks wbcSidsToUnixIds(). Disabling cifsacl tools.]) > + enable_cifsacl="no" > + fi > + ])cifstest6:/usr/src/cifs.utils.012813.1/cifs-utils # autoreconf # /usr/src/cifs.utils.012813.1/cifs-utils # ./configure checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking for style of include used by make... GNU checking dependency style of gcc... gcc3 checking how to run the C preprocessor... gcc -E checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking minix/config.h usability... no checking minix/config.h presence... no checking for minix/config.h... no checking whether it is safe to define __EXTENSIONS__... yes checking whether gcc and cc understand -c and -o together... yes checking for a sed that does not truncate output... /usr/bin/sed checking for stdbool.h that conforms to C99... yes checking for _Bool... yes checking for uid_t in sys/types.h... yes checking for off_t... yes checking for pid_t... yes checking for size_t... yes checking for ptrdiff_t... yes checking for ssize_t... yes checking for uint32_t... yes checking for uint8_t... yes checking for library containing getmntent... none required checking whether lstat dereferences a symlink specified with a trailing slash... yes checking for stdlib.h... (cached) yes checking for GNU libc compatible malloc... yes checking for stdlib.h... (cached) yes checking for GNU libc compatible realloc... yes checking for working strnlen... yes checking for alarm... yes checking for atexit... yes checking for endpwent... yes checking for getmntent... (cached) yes checking for getpass... yes checking for gettimeofday... yes checking for inet_ntop... yes checking for memset... yes checking for realpath... yes checking for setenv... yes checking for strchr... yes checking for strcmp... yes checking for strdup... yes checking for strerror... yes checking for strncasecmp... yes checking for strndup... yes checking for strpbrk... yes checking for strrchr... yes checking for strstr... yes checking for strtol... yes checking for strtoul... yes checking for tolower... yes checking for uname... yes checking for clock_gettime... no checking for clock_gettime in -lrt... yes checking arpa/inet.h usability... yes checking arpa/inet.h presence... yes checking for arpa/inet.h... yes checking ctype.h usability... yes checking ctype.h presence... yes checking for ctype.h... yes checking fcntl.h usability... yes checking fcntl.h presence... yes checking for fcntl.h... yes checking for inttypes.h... (cached) yes checking limits.h usability... yes checking limits.h presence... yes checking for limits.h... yes checking mntent.h usability... yes checking mntent.h presence... yes checking for mntent.h... yes checking netdb.h usability... yes checking netdb.h presence... yes checking for netdb.h... yes checking stddef.h usability... yes checking stddef.h presence... yes checking for stddef.h... yes checking for stdint.h... (cached) yes checking for stdbool.h... (cached) yes checking for stdlib.h... (cached) yes checking stdio.h usability... yes checking stdio.h presence... yes checking for stdio.h... yes checking errno.h usability... yes checking errno.h presence... yes checking for errno.h... yes checking for string.h... (cached) yes checking for strings.h... (cached) yes checking sys/mount.h usability... yes checking sys/mount.h presence... yes checking for sys/mount.h... yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking sys/socket.h usability... yes checking sys/socket.h presence... yes checking for sys/socket.h... yes checking sys/time.h usability... yes checking sys/time.h presence... yes checking for sys/time.h... yes checking syslog.h usability... yes checking syslog.h presence... yes checking for syslog.h... yes checking for unistd.h... (cached) yes checking sys/fsuid.h usability... yes checking sys/fsuid.h presence... yes checking for sys/fsuid.h... yes checking for setfsuid... yes checking krb5.h usability... yes checking krb5.h presence... yes checking for krb5.h... yes checking krb5/krb5.h usability... yes checking krb5/krb5.h presence... yes checking for krb5/krb5.h... yes checking for keyvalue in krb5_keyblock... no checking talloc.h usability... yes checking talloc.h presence... yes checking for talloc.h... yes checking keyutils.h usability... yes checking keyutils.h presence... yes checking for keyutils.h... yes checking for krb5_init_context in -lkrb5... yes checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.9.0... yes checking for WBCLIENT... yes checking for wbcSidsToUnixIds in -lwbclient... no configure: error: wbclient library lacks wbcSidsToUnixIds(). Disabling cifs.idmap. # /usr/src/cifs.utils.012813.1/cifs-utils # make /bin/sh ./config.status --recheck running CONFIG_SHELL=/bin/sh /bin/sh ./configure --no-create --no-recursion checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking for style of include used by make... GNU checking dependency style of gcc... gcc3 checking how to run the C preprocessor... gcc -E checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking minix/config.h usability... no checking minix/config.h presence... no checking for minix/config.h... no checking whether it is safe to define __EXTENSIONS__... yes checking whether gcc and cc understand -c and -o together... yes checking for a sed that does not truncate output... /usr/bin/sed checking for stdbool.h that conforms to C99... yes checking for _Bool... yes checking for uid_t in sys/types.h... yes checking for off_t... yes checking for pid_t... yes checking for size_t... yes checking for ptrdiff_t... yes checking for ssize_t... yes checking for uint32_t... yes checking for uint8_t... yes checking for library containing getmntent... none required checking whether lstat dereferences a symlink specified with a trailing slash... yes checking for stdlib.h... (cached) yes checking for GNU libc compatible malloc... yes checking for stdlib.h... (cached) yes checking for GNU libc compatible realloc... yes checking for working strnlen... yes checking for alarm... yes checking for atexit... yes checking for endpwent... yes checking for getmntent... (cached) yes checking for getpass... yes checking for gettimeofday... yes checking for inet_ntop... yes checking for memset... yes checking for realpath... yes checking for setenv... yes checking for strchr... yes checking for strcmp... yes checking for strdup... yes checking for strerror... yes checking for strncasecmp... yes checking for strndup... yes checking for strpbrk... yes checking for strrchr... yes checking for strstr... yes checking for strtol... yes checking for strtoul... yes checking for tolower... yes checking for uname... yes checking for clock_gettime... no checking for clock_gettime in -lrt... yes checking arpa/inet.h usability... yes checking arpa/inet.h presence... yes checking for arpa/inet.h... yes checking ctype.h usability... yes checking ctype.h presence... yes checking for ctype.h... yes checking fcntl.h usability... yes checking fcntl.h presence... yes checking for fcntl.h... yes checking for inttypes.h... (cached) yes checking limits.h usability... yes checking limits.h presence... yes checking for limits.h... yes checking mntent.h usability... yes checking mntent.h presence... yes checking for mntent.h... yes checking netdb.h usability... yes checking netdb.h presence... yes checking for netdb.h... yes checking stddef.h usability... yes checking stddef.h presence... yes checking for stddef.h... yes checking for stdint.h... (cached) yes checking for stdbool.h... (cached) yes checking for stdlib.h... (cached) yes checking stdio.h usability... yes checking stdio.h presence... yes checking for stdio.h... yes checking errno.h usability... yes checking errno.h presence... yes checking for errno.h... yes checking for string.h... (cached) yes checking for strings.h... (cached) yes checking sys/mount.h usability... yes checking sys/mount.h presence... yes checking for sys/mount.h... yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking sys/socket.h usability... yes checking sys/socket.h presence... yes checking for sys/socket.h... yes checking sys/time.h usability... yes checking sys/time.h presence... yes checking for sys/time.h... yes checking syslog.h usability... yes checking syslog.h presence... yes checking for syslog.h... yes checking for unistd.h... (cached) yes checking sys/fsuid.h usability... yes checking sys/fsuid.h presence... yes checking for sys/fsuid.h... yes checking for setfsuid... yes checking krb5.h usability... yes checking krb5.h presence... yes checking for krb5.h... yes checking krb5/krb5.h usability... yes checking krb5/krb5.h presence... yes checking for krb5/krb5.h... yes checking for keyvalue in krb5_keyblock... no checking talloc.h usability... yes checking talloc.h presence... yes checking for talloc.h... yes checking keyutils.h usability... yes checking keyutils.h presence... yes checking for keyutils.h... yes checking for krb5_init_context in -lkrb5... yes checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.9.0... yes checking for WBCLIENT... yes checking for wbcSidsToUnixIds in -lwbclient... no configure: error: wbclient library lacks wbcSidsToUnixIds(). Disabling cifs.idmap. make: *** [config.status] Error 1 > + LDFLAGS=$ac_wbc_save_LDFLAGS > +fi > + > if test $enable_cifsacl != "no"; then > AC_CHECK_HEADERS([sys/xattr.h], , [ > if test "$enable_cifsacl" = "yes"; then > -- > 1.7.11.7 > Jeff, is this the intended/expected outcome? -- To unsubscribe from this list: send the line "unsubscribe linux-cifs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html