On Thu, 25 Aug 2011 13:50:06 -0500 Shirish Pargaonkar <shirishpargaonkar@xxxxxxxxx> wrote: > On Thu, Aug 25, 2011 at 1:40 PM, Shirish Pargaonkar > <shirishpargaonkar@xxxxxxxxx> wrote: > > 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 > > > > I see it. But does not look like a show stopper i.e. getcifsacl, > setcifsacl, cifs.idmap are built and work. > But the error needs to be fixed. I think I had seen this and > could not think of a way to eliminate it (during cifs.idmap code) > but do not remember clearly why. > Yes, we need to work around this, but it's not directly due to your set. I have a patch that should fix it that I'll post in a minute. I'll plan to apply that on top of your series unless there are objections. -- 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