[Pkg-samba-maint] vfs_zfsacl module on Debian

Fred Donck fred at procolix.com
Wed Apr 14 09:23:10 BST 2021


To whom this may concern,

I am looking for information on how to get the above module to work on 
Debian Bulls Eye.

I am trying to get a (ZFS) client on Windows to be able to hand out 
privileges from Windows. As far as I can tell the module to cater for 
this is the one mentioned in the subject.

I have noticed that this module is by default not part of the 
distribution. I have some questions about this.

- Is this intentionally?
- Will there be support in the near future?
- Trying to solve my problem, made me run into compilation-errors
   because it does not seem to compile.

A simple change in the rules file:

:~/work/samba-4.13.5+dfsg/debian$ diff -c rules-20210319FD rules
*** rules-20210319FD    2021-02-09 21:00:30.000000000 +0100
--- rules       2021-04-14 10:06:21.326931259 +0200
***************
*** 5,10 ****
--- 5,11 ----

   export DEB_BUILD_MAINT_OPTIONS = hardening=+all
   export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
+
   DPKG_EXPORT_BUILDFLAGS = 1
   include /usr/share/dpkg/buildflags.mk
   include /usr/share/dpkg/pkg-info.mk
***************
*** 50,56 ****
                 --with-utmp \
                 --with-winbind \
                 --with-quota \
! 
--with-shared-modules=idmap_rid,idmap_ad,idmap_adex,idmap_hash,idmap_ldap,idmap_tdb2,vfs_dfs_samba4,auth_samba4,vfs_nfs4acl_xattr 
\
                 --with-automount \
                 --with-ldap \
                 --with-ads \
--- 51,57 ----
                 --with-utmp \
                 --with-winbind \
                 --with-quota \
! 
--with-shared-modules=idmap_rid,idmap_ad,idmap_adex,idmap_hash,idmap_ldap,idmap_tdb2,vfs_dfs_samba4,auth_samba4,vfs_nfs4acl_xattr,vfs_zfsacl 
\
                 --with-automount \
                 --with-ldap \
                 --with-ads \
:~/work/samba-4.13.5+dfsg/debian$


:~/work/samba-4.13.5+dfsg/debian$ dpkg-buildpackage -us -uc

This fails.

../../source3/modules/vfs_zfsacl.c:54:17: error: unknown type name ‘ace_t’
    54 |           const ace_t *acebuf,
       |                 ^~~~~
../../source3/modules/vfs_zfsacl.c: In function ‘zfs_get_nt_acl_common’:
../../source3/modules/vfs_zfsacl.c:93:42: error: request for member 
‘a_type’ in something not a structure or union
    93 |   aceprop.aceType  = (uint32_t) acebuf[i].a_type;
       |                                          ^
../../source3/modules/vfs_zfsacl.c:94:42: error: request for member 
‘a_flags’ in something not a structure or union
    94 |   aceprop.aceFlags = (uint32_t) acebuf[i].a_flags;
       |                                          ^
../../source3/modules/vfs_zfsacl.c:95:42: error: request for member 
‘a_access_mask’ in something not a structure or union
    95 |   aceprop.aceMask  = (uint32_t) acebuf[i].a_access_mask;
       |                                          ^
../../source3/modules/vfs_zfsacl.c:96:42: error: request for member 
‘a_who’ in something not a structure or union
    96 |   aceprop.who.id   = (uint32_t) acebuf[i].a_who;
       |                                          ^
../../source3/modules/vfs_zfsacl.c:100:27: error: ‘ACE_EVERYONE’ 
undeclared (first use in this function)
   100 |       (aceprop.aceFlags & ACE_EVERYONE) &&
       |                           ^~~~~~~~~~~~
../../source3/modules/vfs_zfsacl.c:100:27: note: each undeclared 
identifier is reported only once for each function it appears in
../../source3/modules/vfs_zfsacl.c:101:27: error: ‘ACE_INHERITED_ACE’ 
undeclared (first use in this function); did you mean 
‘SMB_ACE4_INHERITED_ACE’?
   101 |       (aceprop.aceFlags & ACE_INHERITED_ACE))
       |                           ^~~~~~~~~~~~~~~~~
       |                           SMB_ACE4_INHERITED_ACE
../../source3/modules/vfs_zfsacl.c:114:22: error: request for member 
‘a_flags’ in something not a structure or union
   114 |   special = acebuf[i].a_flags & (ACE_OWNER|ACE_GROUP|ACE_EVERYONE);
       |                      ^
../../source3/modules/vfs_zfsacl.c:114:34: error: ‘ACE_OWNER’ undeclared 
(first use in this function); did you mean ‘ACL_OTHER’?
   114 |   special = acebuf[i].a_flags & (ACE_OWNER|ACE_GROUP|ACE_EVERYONE);
       |                                  ^~~~~~~~~
       |                                  ACL_OTHER
../../source3/modules/vfs_zfsacl.c:114:44: error: ‘ACE_GROUP’ undeclared 
(first use in this function); did you mean ‘ACL_GROUP’?
   114 |   special = acebuf[i].a_flags & (ACE_OWNER|ACE_GROUP|ACE_EVERYONE);
       |                                            ^~~~~~~~~
       |                                            ACL_GROUP



ace_t is defined in /usr/include/libspl/sys/acl.h.

Is there a way to get this fixed?
Thanks for any hint.

Best regards
--

fred donck



More information about the Pkg-samba-maint mailing list