diff -u ./source3/configure.in.orig ./source3/configure.in --- ./source3/configure.in.orig 2010-10-07 11:41:16.000000000 -0500 +++ ./source3/configure.in 2011-03-01 04:12:57.000000000 -0600 @@ -1627,6 +1628,12 @@ AC_DEFINE(STAT_ST_BLOCKSIZE,8192,[The size of a block]) AC_DEFINE(POSIX_ACL_NEEDS_MASK,1,[Does a POSIX ACL need a mask element]) ;; + *nsk*) # ToDo: shared lib support +# On NonStop we are using HPUX ACLS VFS module, hence we need this flag. + AC_DEFINE(POSIX_ACL_NEEDS_MASK,1,[Does a POSIX ACL need a mask element]) +# while at it, let's set this too + AC_DEFINE(STAT_ST_BLOCKSIZE,4096,[The size of a block]) + ;; *osf*) AC_DEFINE(OSF1,1,[Whether the host os is osf1]) BLDSHARED="true" LDSHFLAGS="-shared" @@ -5402,7 +5409,9 @@ ACL_LIBS="$ACL_LIBS -lsec" default_static_modules="$default_static_modules vfs_solarisacl" ;; - *hpux*) + *hpux*|*nsk) +# On NonStop the ACL API implementation is same as HPUX, so we are using the +# HPUX Samba VFS module to provide the ACL functionality on NonStop samba. AC_MSG_NOTICE(Using HPUX ACLs) AC_DEFINE(HAVE_HPUX_ACLS,1,[Whether HPUX ACLs are available]) default_static_modules="$default_static_modules vfs_hpuxacl" diff -u ./source3/modules/vfs_hpuxacl.c.orig ./source3/modules/vfs_hpuxacl.c --- ./source3/modules/vfs_hpuxacl.c.orig 2010-10-07 11:41:16.000000000 -0500 +++ ./source3/modules/vfs_hpuxacl.c 2011-02-26 09:18:19.000000000 -0600 @@ -58,11 +58,16 @@ * are defined inside . * */ +#ifdef __TANDEM +/* All the ACL APIs are provided through sys/acl.h on NonStop */ +#include +#else /* GROUP is defined somewhere else so undef it here... */ #undef GROUP #include /* dl.h: needed to check for acl call via shl_findsym */ #include +#endif typedef struct acl HPUX_ACE_T; typedef struct acl *HPUX_ACL_T; @@ -1067,11 +1072,17 @@ * isn't defined, it causes the process to core dump * so it is important to check this and avoid acl() * calls if it isn't there. + * + * On HP NonStop we don't need this check because we are + * absolutely sure that we have acl_sort call, since + * acl_sort is provided by some basic run-time libraries. + * To add more checks we could add a check in configure script + * and a preprocessor flag here. */ static bool hpux_acl_call_present(void) { - +#ifndef __TANDEM shl_t handle = NULL; void *value; int ret_val=0; @@ -1095,6 +1106,8 @@ DEBUG(10,("hpux_acl_call_present: acl() system call is present. We have JFS 3.3 or above \n")); already_checked = True; +#endif /* !__TANDEM */ + /*On NonStop we always return True*/ return True; } @@ -1102,10 +1115,17 @@ * runtime check for presence of aclsort library call. * same code as for acl call. if there are more of these, * a dispatcher function could be handy... + * + * On HP NonStop we don't need this check because we are + * absolutely sure that we have acl_sort call, since + * acl_sort is provided by some basic run-time libraries. + * To add more checks we could add a check in configure script + * and a preprocessor flag here. */ static bool hpux_aclsort_call_present(void) { +#ifndef __TANDEM shl_t handle = NULL; void *value; int ret_val = 0; @@ -1127,6 +1147,8 @@ } DEBUG(10,("hpux_aclsort_call_present: aclsort() function present.\n")); already_checked = True; +#endif /* !__TANDEM */ + /*On NonStop we always return True*/ return True; } diff -u ./source3/smbd/posix_acls.c.orig ./source3/smbd/posix_acls.c --- ./source3/smbd/posix_acls.c.orig 2010-10-07 11:41:16.000000000 -0500 +++ ./source3/smbd/posix_acls.c 2011-03-01 04:09:44.000000000 -0600 @@ -2702,7 +2702,7 @@ fsp->fsp_name->st = *psbuf; } -#if defined(POSIX_ACL_NEEDS_MASK) +#if defined(POSIX_ACL_NEEDS_MASK) || defined (__TANDEM) /* or in configure */ /* HP-UX always wants to have a mask (called "class" there). */ needs_mask = True; #endif