The branch, master has been updated via ff7df3d build: fix ceph_statx check when configured with libcephfs_dir via c57dcaf s3/utils: smbcacls failed to detect DIRECTORIES using SMB2 (windows only) from 7313e7c s4-torture: point out why we cannot validate MSZIP compressed files
https://git.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit ff7df3d3f5259362a6bb6780d6b532e57e89681d Author: David Disseldorp <dd...@suse.de> Date: Thu Jul 20 11:10:57 2017 +0200 build: fix ceph_statx check when configured with libcephfs_dir When configured with a custom libcephfs_dir, the ceph_statx check fails to link. This is due to the location of the ceph-common dependency, which is installed under a ceph subdirectory. ceph/build > make DESTDIR=./inst install ... ceph/build > find inst/|grep -e /libcephfs -e /libceph-common inst/usr/local/lib64/ceph/libceph-common.so.0 inst/usr/local/lib64/ceph/libceph-common.so inst/usr/local/lib64/libcephfs.so.2.0.0 inst/usr/local/lib64/libcephfs.so.2 inst/usr/local/lib64/libcephfs.so inst/usr/local/include/cephfs/libcephfs.h Signed-off-by: David Disseldorp <dd...@suse.de> Reviewed-by: Jeff Layton <jlay...@samba.org> Autobuild-User(master): David Disseldorp <dd...@samba.org> Autobuild-Date(master): Thu Jul 20 23:02:27 CEST 2017 on sn-devel-144 commit c57dcafb150823b00fd873046e65a966a8488fa8 Author: Noel Power <noel.po...@suse.com> Date: Thu Jul 20 13:01:50 2017 +0100 s3/utils: smbcacls failed to detect DIRECTORIES using SMB2 (windows only) uint16_t get_fileinfo(...) returns file attributes, this function called cli_qfileinfo_basic(cli, fnum, &mode, NULL, NULL, NULL, NULL, NULL, NULL); which was failing with NT_STATUS_ACCESS_DENIED errors when fnum above was obtained via (when using protocol > SMB). Note: This only seems to be an issue when run against a windows server, with smbd SMB1 & SMB2 work fine. status = cli_ntcreate(cli, filename, 0, CREATE_ACCESS_READ, 0, FILE_SHARE_READ|FILE_SHARE_WRITE, FILE_OPEN, 0x0, 0x0, &fnum, NULL); The failing cli_qfileinfo_basic call above is unnecessary as we can already obtain the required information from the cli_ntcreate call Signed-off-by: Noel Power <noel.po...@suse.com> Reviewed-by: Jeremy Allison <j...@samba.org> Reviewed-by: David Disseldorp <dd...@samba.org> ----------------------------------------------------------------------- Summary of changes: source3/utils/smbcacls.c | 14 +++----------- source3/wscript | 9 +++++++-- 2 files changed, 10 insertions(+), 13 deletions(-) Changeset truncated at 500 lines: diff --git a/source3/utils/smbcacls.c b/source3/utils/smbcacls.c index 86b4591..6bf32e5 100644 --- a/source3/utils/smbcacls.c +++ b/source3/utils/smbcacls.c @@ -229,30 +229,22 @@ get fileinfo for filename static uint16_t get_fileinfo(struct cli_state *cli, const char *filename) { uint16_t fnum = (uint16_t)-1; - uint16_t mode = 0; NTSTATUS status; + struct smb_create_returns cr = {0}; /* The desired access below is the only one I could find that works with NT4, W2KP and Samba */ status = cli_ntcreate(cli, filename, 0, CREATE_ACCESS_READ, 0, FILE_SHARE_READ|FILE_SHARE_WRITE, - FILE_OPEN, 0x0, 0x0, &fnum, NULL); + FILE_OPEN, 0x0, 0x0, &fnum, &cr); if (!NT_STATUS_IS_OK(status)) { printf("Failed to open %s: %s\n", filename, nt_errstr(status)); return 0; } - status = cli_qfileinfo_basic(cli, fnum, &mode, NULL, NULL, NULL, - NULL, NULL, NULL); - if (!NT_STATUS_IS_OK(status)) { - printf("Failed to file info %s: %s\n", filename, - nt_errstr(status)); - } - cli_close(cli, fnum); - - return mode; + return cr.file_attributes; } /***************************************************** diff --git a/source3/wscript b/source3/wscript index 8fa51fb..534ff44 100644 --- a/source3/wscript +++ b/source3/wscript @@ -1575,11 +1575,16 @@ main() { if Options.options.libcephfs_dir: conf.env['CPPPATH_CEPHFS'] = Options.options.libcephfs_dir + '/include' conf.env['LIBPATH_CEPHFS'] = Options.options.libcephfs_dir + '/lib' + conf.env['LIBPATH_CEPH-COMMON'] = Options.options.libcephfs_dir + '/lib/ceph' - if conf.CHECK_HEADERS('cephfs/libcephfs.h', False, False, 'cephfs') and conf.CHECK_LIB('cephfs', shlib=True) and Options.options.with_cephfs: + if (Options.options.with_cephfs and + conf.CHECK_HEADERS('cephfs/libcephfs.h', False, False, 'cephfs') and + conf.CHECK_LIB('cephfs', shlib=True) and + conf.CHECK_LIB('ceph-common', shlib=True)): if Options.options.with_acl_support: conf.DEFINE('HAVE_CEPH', '1') - if conf.CHECK_FUNCS_IN('ceph_statx', 'cephfs', headers='cephfs/libcephfs.h'): + if conf.CHECK_FUNCS_IN('ceph_statx', 'cephfs ceph-common', + headers='cephfs/libcephfs.h'): conf.DEFINE('HAVE_CEPH_STATX', '1') else: Logs.warn("ceph support disabled due to --without-acl-support") -- Samba Shared Repository