Re: [PATCH 7/8] cifs-utils: cifsacl utilities: Add configure and make directives for cifsacl (try #2)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Aug 25, 2011 at 1:34 PM, Jeff Layton <jlayton@xxxxxxxxx> wrote:
> On Tue, 23 Aug 2011 14:04:24 -0500
> shirishpargaonkar@xxxxxxxxx wrote:
>
>> From: Shirish Pargaonkar <shirishpargaonkar@xxxxxxxxx>
>>
>>
>> Add configure directives for option cifsacl.  The default action is
>> to enable cifsacl option.
>> cifsacl option is enabled or disabled in a similar way to cifs.idmap
>> in the same function. In addition, for cifsacl, check for sys/xattr.h
>> is done in the smae .m4 file.
>>
>> Add directives to build getcifsacl in Makefile.
>>
>> Signed-off-by: Shirish Pargaonkar <shirishpargaonkar@xxxxxxxxx>
>> ---
>>  Makefile.am      |   17 ++++++++++++++++-
>>  aclocal/idmap.m4 |   23 ++++++++++++++++++++---
>>  configure.ac     |   17 +++++++++++++++++
>>  3 files changed, 53 insertions(+), 4 deletions(-)
>>
>> diff --git a/Makefile.am b/Makefile.am
>> index 4938447..3ec6b7e 100644
>> --- a/Makefile.am
>> +++ b/Makefile.am
>> @@ -9,7 +9,7 @@ mount_cifs_LDADD = $(LIBCAP) $(CAPNG_LDADD)
>>  man_MANS = mount.cifs.8
>>
>>  sbin_PROGRAMS =
>> -clean-local: clean-local-upcall clean-local-idmap
>> +clean-local: clean-local-upcall clean-local-idmap clean-local-aclprogs
>>
>>  if CONFIG_CIFSUPCALL
>>  sbin_PROGRAMS += cifs.upcall
>> @@ -50,3 +50,18 @@ clean-local-idmap:
>>  if CONFIG_CIFSIDMAP
>>       rm -f cifs.idmap.8 cifs.idmap.8-t
>>  endif
>> +
>> +if CONFIG_CIFSACL
>> +sbin_PROGRAMS += getcifsacl
>> +getcifsacl_SOURCES = getcifsacl.c
>> +getcifsacl_LDADD = -lkeyutils $(WINB_LDADD)
>> +man_MANS += getcifsacl.8
>> +
>> +getcifsacl.8: getcifsacl.8.in
>> +     $(SED) 's,[@]sbindir@,$(sbindir),' $(srcdir)/$@.in > $@-t && mv $@-t $@
>> +endif
>> +
>> +clean-local-aclprogs:
>> +if CONFIG_CIFSACL
>> +     rm -f getcifsacl.8 getcifsacl.8-t
>> +endif
>> diff --git a/aclocal/idmap.m4 b/aclocal/idmap.m4
>> index 211d372..ada73f0 100644
>> --- a/aclocal/idmap.m4
>> +++ b/aclocal/idmap.m4
>> @@ -23,10 +23,10 @@ AC_DEFUN([AC_WBCH_COMPL],[
>>  #endif
>>  ]])
>>
>> -dnl Check for wbclient.h header and libwbclietn.so
>> +dnl Check for wbclient.h header and libwbclient.so
>>  dnl
>>  AC_DEFUN([AC_TEST_WBCHL],[
>> -if test $enable_cifsidmap != "no"; then
>> +if test $enable_cifsidmap != "no" -o $enable_cifsacl != "no"; then
>>       AC_CHECK_HEADERS([wbclient.h], , [
>>                               if test "$enable_cifsidmap" = "yes"; then
>>                                       AC_MSG_ERROR([wbclient.h not found, consider installing libwbclient-devel.])
>> @@ -34,10 +34,27 @@ if test $enable_cifsidmap != "no"; then
>>                                       AC_MSG_WARN([wbclient.h not found, consider installing libwbclient-devel. Disabling cifs.idmap.])
>>                                       enable_cifsidmap="no"
>>                               fi
>> +                             if test "$enable_cifsacl" = "yes"; then
>> +                                     AC_MSG_ERROR([wbclient.h not found, consider installing libwbclient-devel.])
>> +                             else
>> +                                     AC_MSG_WARN([wbclient.h not found, consider installing libwbclient-devel. Disabling cifsacl.])
>> +                                     enable_cifsacl="no"
>> +                             fi
>>                       ], [ AC_WBCH_COMPL ])
>>  fi
>>
>> -if test $enable_cifsidmap != "no"; then
>> +if test $enable_cifsacl != "no"; then
>> +     AC_CHECK_HEADERS([sys/xattr.h], , [
>> +                             if test "$enable_cifsacl" = "yes"; then
>> +                                     AC_MSG_ERROR([/usr/include/sys/xattr.h not found])
>> +                             else
>> +                                     AC_MSG_WARN([/usr/include/sys/xattr.h not found. Disabling cifsacl.])
>> +                                     enable_cifsacl="no"
>> +                             fi
>> +                     ], [ ])
>> +fi
>> +
>> +if test $enable_cifsidmap != "no" -o $enable_cifsacl != "no"; then
>>       AC_CHECK_LIB([wbclient], [wbcStringToSid],
>>               [ WINB_LDADD='-lwbclient' ] [ AC_DEFINE(HAVE_LIBWBCLIENT, 1, ["Define var have_libwbclient"]) ], [AC_MSG_ERROR([No functioning wbclient library found!])])
>>       AC_SUBST(WINB_LDADD)
>> diff --git a/configure.ac b/configure.ac
>> index 780abe7..293415f 100644
>> --- a/configure.ac
>> +++ b/configure.ac
>> @@ -28,6 +28,12 @@ AC_ARG_ENABLE(cifsidmap,
>>       enable_cifsidmap=$enableval,
>>       enable_cifsidmap="maybe")
>>
>> +AC_ARG_ENABLE(cifsacl,
>> +     [AC_HELP_STRING([--enable-cifsacl],
>> +                     [Create get/set cifsacl binary @<:@default=yes@:>@])],
>> +     enable_cifsacl=$enableval,
>> +     enable_cifsacl="maybe")
>> +
>>  # Checks for programs.
>>  AC_PROG_CC
>>  AC_PROG_SED
>> @@ -94,6 +100,16 @@ if test $enable_cifsupcall != "no" -o $enable_cifsidmap != "no"; then
>>                               fi
>>                       ])
>>  fi
>> +if test $enable_cifsacl != "no"; then
>> +     AC_CHECK_HEADERS([wbclient.h], , [
>> +                             if test "$enable_cifsacl" = "yes"; then
>> +                                     AC_MSG_ERROR([wbclient.h not found, consider installing libwbclient-devel.])
>> +                             else
>> +                                     AC_MSG_WARN([wbclient.h not found, consider installing libwbclient-devel. Disabling getcifsacl.])
>> +                                     enable_cifsacl="no"
>> +                             fi
>> +                     ])
>> +fi
>>  if test $enable_cifsupcall != "no"; then
>>       AC_CHECK_LIB([krb5], [krb5_init_context],
>>                       [ KRB5_LDADD='-lkrb5' ],
>> @@ -156,6 +172,7 @@ LIBS=$cu_saved_libs
>>  AM_CONDITIONAL(CONFIG_CIFSUPCALL, [test "$enable_cifsupcall" != "no"])
>>  AM_CONDITIONAL(CONFIG_CIFSCREDS, [test "$enable_cifscreds" = "yes"])
>>  AM_CONDITIONAL(CONFIG_CIFSIDMAP, [test "$enable_cifsidmap" != "no"])
>> +AM_CONDITIONAL(CONFIG_CIFSACL, [test "$enable_cifsacl" != "no"])
>>
>>  LIBCAP_NG_PATH
>>
>> --
>> 1.6.0.2
>>
>> --
>> 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
>
>
> I started pulling these in and ran into a snag...
>
> checking wbclient.h presence... yes
> configure: WARNING: wbclient.h: present but cannot be compiled
> configure: WARNING: wbclient.h:     check for missing prerequisite headers?
> configure: WARNING: wbclient.h: see the Autoconf documentation
> configure: WARNING: wbclient.h:     section "Present But Cannot Be Compiled"
> configure: WARNING: wbclient.h: proceeding with the compiler's result
> configure: WARNING:     ## ----------------------------------- ##
> configure: WARNING:     ## Report this to cifs-utils@xxxxxxxxx ##
> configure: WARNING:     ## ----------------------------------- ##
>
> ...according to config.log:
>
> configure:4410: gcc -c -g -O2  conftest.c >&5
> In file included from conftest.c:84:0:
> /usr/include/wbclient.h:664:5: error: unknown type name 'bool'
> configure:4410: $? = 1
> configure: failed program was:
>
> ...this looks like a bug in wbclient.h, actually. It should be
> including stdbool.h before trying to use a bool. Unfortunately though,
> we're likely going to need to work around this bug. I know there's a
> way to make autoconf tests pull in extra includes, but I don't have my
> autoconf book handy.
>
> Shirish, can you look into this, fix it and resubmit this patch?
>
> Simo tells me there's an open samba bug to fix this...
>
> --
> Jeff Layton <jlayton@xxxxxxxxx>
>

Jeff, yes. But this is not the first time wbclient.h has been used,
cifs.idmap.c needed it earlier. Has something changed now that
this is popping up? Looking into it.

Regards,

Shirish
--
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


[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux