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