Index: head/databases/ldb20/Makefile =================================================================== --- head/databases/ldb20/Makefile (revision 532259) +++ head/databases/ldb20/Makefile (revision 532260) @@ -1,168 +1,165 @@ # $FreeBSD$ PORTNAME= ldb -PORTVERSION= 1.5.6 +PORTVERSION= 2.0.9 PORTREVISION= 0 PORTEPOCH= 0 CATEGORIES= databases MASTER_SITES= SAMBA -PKGNAMESUFFIX?= 15 +PKGNAMESUFFIX?= 20 MAINTAINER= timur@FreeBSD.org COMMENT= LDAP-like embedded database LICENSE= GPLv3 IGNORE_NONTHREAD_PYTHON=needs port lang/python${PYTHON_SUFFIX} to be build with THREADS support BUILD_DEPENDS= ${LDB_DEPENDS} RUN_DEPENDS= ${LDB_DEPENDS} LDB_DEPENDS= talloc>=2.2.0:devel/talloc \ tevent>=0.10.0:devel/tevent \ tdb>=1.4.0:databases/tdb \ lmdb>=0.9.23:databases/lmdb \ cmocka>=1.1.3:sysutils/cmocka \ popt>=0:devel/popt -CONFLICTS_INSTALL= ldb-1.1.* ldb1[2-46]-1.* +CONFLICTS_INSTALL= ldb-1.1.* ldb1[2-9]-1.* ldb2[1-9]-2.* -#FLAVORS= default nopython -#nopython_PKGNAMESUFFIX= -nopython -#nopython_CONFLICTS= ldb -#default_CONFLICTS= ldb-nopython - USES= compiler pkgconfig waf USE_LDCONFIG= yes WAF_CMD= ${BUILD_WRKSRC}/buildtools/bin/waf CONFIGURE_LOG= ${BUILD_WRKSRC}/bin/config.log USE_OPENLDAP= yes PKGCONFIGDIR?= ${PREFIX}/libdata/pkgconfig PLIST_SUB+= PKGCONFIGDIR=${PKGCONFIGDIR:S;${PREFIX}/;;} CONFIGURE_ARGS+= --bundled-libraries=!talloc,!tevent,!tdb,!popt,!cmocka \ --with-modulesdir=${PREFIX}/lib/shared-modules \ --with-privatelibdir=${PREFIX}/lib/ldb \ --mandir=${MANPREFIX}/man \ --with-openldap=${LOCALBASE} \ --disable-rpath \ --without-gettext -OPTIONS_DEFINE= MANPAGES DEBUG +OPTIONS_DEFINE= MANPAGES DEBUG PYTHON3 MANPAGES_DESC= Build and install manpages (requires textproc/docbook-xsl) DEBUG_CONFIGURE_ON= --verbose --enable-debug DEBUG_MAKE_ARGS= --verbose DEBUG_FLAGS= -g -ggdb3 -O0 .include LDB_BINS= bin/ldbedit \ bin/ldbmodify \ bin/ldbadd \ bin/ldbdel \ bin/ldbsearch \ bin/ldbrename LDB_LIBS= lib/libldb.so \ - lib/libldb.so.1 \ + lib/libldb.so.2 \ lib/ldb/libldb-tdb-int.so \ lib/ldb/libldb-tdb-err-map.so \ lib/ldb/libldb-key-value.so \ lib/ldb/libldb-cmdline.so \ lib/shared-modules/ldb/skel.so \ lib/shared-modules/ldb/server_sort.so \ lib/shared-modules/ldb/sample.so \ lib/shared-modules/ldb/rdn_name.so \ lib/shared-modules/ldb/paged_searches.so \ lib/shared-modules/ldb/ldb.so \ lib/shared-modules/ldb/ldap.so \ lib/shared-modules/ldb/asq.so \ lib/shared-modules/ldb/tdb.so # Only for 64-bit architectures .if ${ARCH} != armv6 && ${ARCH} != armv7 && ${ARCH} != i386 && ${ARCH} != mips && ${ARCH} != powerpc && ${ARCH} != powerpcspe LDB_LIBS+= lib/ldb/libldb-mdb-int.so \ lib/shared-modules/ldb/mdb.so .endif PLIST_FILES= include/ldb_version.h \ include/ldb_handlers.h \ include/ldb_errors.h \ include/ldb.h \ include/ldb_module.h \ ${LDB_BINS} \ ${LDB_LIBS} \ ${PKGCONFIGDIR}/ldb.pc -.if defined(NO_PYTHON) -USES+= python:build,test + +.include + +CONFIGURE_ENV+= CFLAGS=-I${LOCALBASE}/include LDFLAGS=-L${LOCALBASE}/lib + +.if ! ${PORT_OPTIONS:MMANPAGES} +CONFIGURE_ENV+= XSLTPROC="true" +.else +BUILD_DEPENDS+= ${LOCALBASE}/share/xsl/docbook/manpages/docbook.xsl:textproc/docbook-xsl \ + xsltproc:textproc/libxslt +.endif + +.if ! ${PORT_OPTIONS:MPYTHON3} || defined(NO_PYTHON) +USES+= python:2.7+,build,test CONFIGURE_ARGS+= --disable-python .else USES+= python:3.4+ PLIST_FILES+= include/pyldb.h \ lib/libpyldb-util.so \ - lib/libpyldb-util.so.1 \ + lib/libpyldb-util.so.2 \ ${PYTHON_SITELIBDIR}/ldb.so \ ${PYTHON_SITELIBDIR}/_ldb_text.py \ ${PKGCONFIGDIR}/pyldb-util.pc .endif -.include - -.if ! ${PORT_OPTIONS:MMANPAGES} -CONFIGURE_ENV+= XSLTPROC="true" -.else -BUILD_DEPENDS+= ${LOCALBASE}/share/xsl/docbook/manpages/docbook.xsl:textproc/docbook-xsl \ - xsltproc:textproc/libxslt -.endif -CONFIGURE_ENV+= CFLAGS=-I${LOCALBASE}/include LDFLAGS=-L${LOCALBASE}/lib - # No fancy color error messages .if ${COMPILER_TYPE} == "clang" CFLAGS+= -fno-color-diagnostics .endif CONFIGURE_ENV+= NOCOLOR=yes MAKE_ENV+= NOCOLOR=yes LDB_MAN1= man/man1/ldbadd.1.gz \ man/man1/ldbdel.1.gz \ man/man1/ldbedit.1.gz \ man/man1/ldbmodify.1.gz \ man/man1/ldbrename.1.gz \ man/man1/ldbsearch.1.gz LDB_MAN3= man/man3/ldb.3.gz PLIST_FILES+= ${LDB_MAN1} ${LDB_MAN3} post-patch: @${REINPLACE_CMD} -e 's|%%PKGCONFIGDIR%%|${PKGCONFIGDIR}|g' \ ${BUILD_WRKSRC}/wscript # Use threading (or multiprocessing) but not thread (renamed in python 3+). pre-configure: @if ! ${PYTHON_CMD} -c "import multiprocessing;" 2>/dev/null; then \ ${ECHO_CMD}; \ ${ECHO_MSG} "===> ${PKGNAME} "${IGNORE_NONTHREAD_PYTHON:Q}.; \ ${ECHO_CMD}; \ ${FALSE}; \ fi pre-build-MANPAGES-off: -${MKDIR} ${BUILD_WRKSRC}/bin/default/man .for man in ${LDB_MAN1} ${LDB_MAN3} ${INSTALL_MAN} ${FILESDIR}/`basename ${man} .gz` ${BUILD_WRKSRC}/bin/default/man .endfor post-install: .for lib in ${LDB_BINS} ${LDB_LIBS} ${STRIP_CMD} ${STAGEDIR}${PREFIX}/${lib} .endfor -.if !defined(NO_PYTHON) +.if ${PORT_OPTIONS:MPYTHON3} && !defined(NO_PYTHON) ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libpyldb-util.so ${STRIP_CMD} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/ldb.so .endif .include Index: head/databases/ldb20/distinfo =================================================================== --- head/databases/ldb20/distinfo (revision 532259) +++ head/databases/ldb20/distinfo (revision 532260) @@ -1,3 +1,3 @@ -TIMESTAMP = 1572420489 -SHA256 (ldb-1.5.6.tar.gz) = ff82474d0bf109e415a2d50334bde5715f486a53ff4bb8c7f74459dd229e975b -SIZE (ldb-1.5.6.tar.gz) = 1637795 +TIMESTAMP = 1585957021 +SHA256 (ldb-2.0.9.tar.gz) = 64c1e9866e59c791db683298627f0313b8fa6c9d7a205f98a01ced5e78cb18c8 +SIZE (ldb-2.0.9.tar.gz) = 1676176 Index: head/databases/ldb20/files/patch-buildtools_wafsamba_samba__autoconf.py =================================================================== --- head/databases/ldb20/files/patch-buildtools_wafsamba_samba__autoconf.py (revision 532259) +++ head/databases/ldb20/files/patch-buildtools_wafsamba_samba__autoconf.py (revision 532260) @@ -1,36 +1,50 @@ ---- buildtools/wafsamba/samba_autoconf.py.orig 2019-03-21 10:12:32 UTC +--- buildtools/wafsamba/samba_autoconf.py.orig 2019-09-04 10:53:16 UTC +++ buildtools/wafsamba/samba_autoconf.py @@ -573,7 +573,7 @@ def library_flags(self, libs): @conf -def CHECK_LIB(conf, libs, mandatory=False, empty_decl=True, set_target=True, shlib=False): +def CHECK_LIB(conf, libs, mandatory=False, empty_decl=True, set_target=True, shlib=False, msg=None): '''check if a set of libraries exist as system libraries returns the sublist of libs that do exist as a syslib or [] -@@ -593,11 +593,14 @@ int foo() +@@ -593,11 +593,29 @@ int foo() ret.append(lib) continue + if msg is None: + msg = 'Checking for library %s' % lib + (ccflags, ldflags, cpppath) = library_flags(conf, lib) ++ if shlib: - res = conf.check(features='c cshlib', fragment=fragment, lib=lib, uselib_store=lib, cflags=ccflags, ldflags=ldflags, uselib=lib.upper(), mandatory=False) -+ res = conf.check(features='c cshlib', fragment=fragment, lib=lib, uselib_store=lib, cflags=ccflags, ldflags=ldflags, uselib=lib.upper(), mandatory=False, msg=msg) ++ res = conf.check(features='c cshlib', ++ fragment=fragment, ++ lib=lib, ++ uselib_store=lib, ++ cflags=ccflags, ++ ldflags=ldflags, ++ uselib=lib.upper(), ++ mandatory=False, ++ msg=msg) else: - res = conf.check(lib=lib, uselib_store=lib, cflags=ccflags, ldflags=ldflags, uselib=lib.upper(), mandatory=False) -+ res = conf.check(lib=lib, uselib_store=lib, cflags=ccflags, ldflags=ldflags, uselib=lib.upper(), mandatory=False, msg=msg) ++ res = conf.check(lib=lib, ++ uselib_store=lib, ++ cflags=ccflags, ++ ldflags=ldflags, ++ uselib=lib.upper(), ++ mandatory=False, ++ msg=msg) if not res: if mandatory: -@@ -925,6 +928,5 @@ def SAMBA_CHECK_UNDEFINED_SYMBOL_FLAGS(c +@@ -944,5 +962,5 @@ def SAMBA_CHECK_UNDEFINED_SYMBOL_FLAGS(c conf.env.undefined_ldflags = conf.ADD_LDFLAGS('-Wl,-no-undefined', testflags=True) - if not sys.platform.startswith("openbsd") and conf.env.undefined_ignore_ldflags == []: -- if conf.CHECK_LDFLAGS(['-undefined', 'dynamic_lookup']): -+ if conf.CHECK_LDFLAGS(['-undefined', 'dynamic_lookup'] + conf.env.WERROR_CFLAGS): + if (conf.env.undefined_ignore_ldflags == [] and +- conf.CHECK_LDFLAGS(['-undefined', 'dynamic_lookup'])): ++ conf.CHECK_LDFLAGS(['-undefined', 'dynamic_lookup'] + conf.env.WERROR_CFLAGS)): conf.env.undefined_ignore_ldflags = ['-undefined', 'dynamic_lookup'] -- Index: head/databases/ldb20/files/patch-wscript =================================================================== --- head/databases/ldb20/files/patch-wscript (revision 532259) +++ head/databases/ldb20/files/patch-wscript (revision 532260) @@ -1,33 +1,31 @@ ---- wscript.orig 2019-02-26 17:12:23 UTC +--- wscript.orig 2019-09-04 10:53:16 UTC +++ wscript -@@ -218,7 +218,7 @@ def build(bld): +@@ -207,7 +207,7 @@ def build(bld): if bld.env.standalone_ldb: if not 'PACKAGE_VERSION' in bld.env: bld.env.PACKAGE_VERSION = VERSION - bld.env.PKGCONFIGDIR = '${LIBDIR}/pkgconfig' + bld.env.PKGCONFIGDIR = '%%PKGCONFIGDIR%%' private_library = False else: private_library = True -@@ -511,11 +511,6 @@ def build(bld): +@@ -497,11 +497,6 @@ def build(bld): deps='cmocka ldb', install=False) - bld.SAMBA_BINARY('ldb_match_test', - source='tests/ldb_match_test.c', - deps='cmocka ldb', - install=False) - - if bld.CONFIG_SET('HAVE_LMDB'): - bld.SAMBA_BINARY('ldb_mdb_mod_op_test', - source='tests/ldb_mod_op_test.c', -@@ -583,8 +578,7 @@ def test(ctx): - # we don't want to run ldb_lmdb_size_test (which proves we can - # fit > 4G of data into the DB), it would fill up the disk on - # many of our test instances -- 'ldb_mdb_kv_ops_test', -- 'ldb_match_test'] -+ 'ldb_mdb_kv_ops_test'] - - for test_exe in test_exes: - cmd = os.path.join(Context.g_module.out, test_exe) + bld.SAMBA_BINARY('ldb_key_value_test', + source='tests/ldb_key_value_test.c', + deps='cmocka ldb ldb_tdb_err_map', +@@ -614,7 +609,6 @@ def test(ctx): + 'ldb_msg_test', + 'ldb_tdb_kv_ops_test', + 'ldb_tdb_test', +- 'ldb_match_test', + 'ldb_key_value_test', + # we currently don't run ldb_key_value_sub_txn_tdb_test as it + # tests the nested/sub transaction handling Index: head/net/samba411/Makefile =================================================================== --- head/net/samba411/Makefile (revision 532259) +++ head/net/samba411/Makefile (revision 532260) @@ -1,657 +1,655 @@ # Created by: timur@FreeBSD.org # $FreeBSD$ -PORTNAME= ${SAMBA4_BASENAME}410 +PORTNAME= ${SAMBA4_BASENAME}411 PORTVERSION= ${SAMBA4_VERSION} PORTREVISION= 0 CATEGORIES?= net MASTER_SITES= SAMBA/samba/stable SAMBA/samba/rc DISTNAME= ${SAMBA4_DISTNAME} MAINTAINER= timur@FreeBSD.org COMMENT= Free SMB/CIFS and AD/DC server and client for Unix LICENSE= GPLv3+ LICENSE_FILE= ${WRKSRC}/COPYING IGNORE_NONTHREAD_PYTHON= needs port lang/python${PYTHON_SUFFIX} to be build with THREADS support -CONFLICTS_INSTALL?= samba4-4.0.* samba4[1-9]-4.* p5-Parse-Pidl-4.* +CONFLICTS_INSTALL?= samba4-4.0.* samba4[1-9]-4.* samba410-4.10.* p5-Parse-Pidl-4.* USES= cpe EXTRA_PATCHES+= ${PATCHDIR}/0001-Zfs-provision-1.patch:-p1 -EXTRA_PATCHES+= ${PATCHDIR}/0001-provision-use-ASCII-quotes.patch:-p1 SAMBA4_BASENAME= samba SAMBA4_PORTNAME= ${SAMBA4_BASENAME}4 -SAMBA4_VERSION= 4.10.14 +SAMBA4_VERSION= 4.11.7 SAMBA4_DISTNAME= ${SAMBA4_BASENAME}-${SAMBA4_VERSION:S|.p|pre|:S|.r|rc|:S|.t|tp|:S|.a|alpha|} WRKSRC?= ${WRKDIR}/${DISTNAME} CPE_VENDOR= samba CPE_PRODUCT= samba # Directories VARDIR= ${DESTDIR}/var SAMBA4_RUNDIR= ${VARDIR}/run/${SAMBA4_PORTNAME} SAMBA4_LOGDIR= ${VARDIR}/log/${SAMBA4_PORTNAME} SAMBA4_LOCKDIR= ${VARDIR}/db/${SAMBA4_PORTNAME} SAMBA4_BINDDNSDIR= ${SAMBA4_LOCKDIR}/bind-dns SAMBA4_PRIVATEDIR= ${SAMBA4_LOCKDIR}/private SAMBA4_PAMDIR= ${PREFIX}/lib SAMBA4_LIBDIR= ${PREFIX}/lib/${SAMBA4_PORTNAME} SAMBA4_INCLUDEDIR= ${PREFIX}/include/${SAMBA4_PORTNAME} SAMBA4_CONFDIR= ${PREFIX}/etc SAMBA4_CONFIG= smb4.conf CONFIGURE_ARGS+= --mandir="${MANPREFIX}/man" \ --sysconfdir="${SAMBA4_CONFDIR}" \ --includedir="${SAMBA4_INCLUDEDIR}" \ --datadir="${DATADIR}" \ --libdir="${SAMBA4_LIBDIR}" \ --with-privatelibdir="${SAMBA4_LIBDIR}/private" \ --with-pammodulesdir="${SAMBA4_PAMDIR}" \ --with-modulesdir="${SAMBA4_MODULEDIR}" \ --with-pkgconfigdir="${PKGCONFIGDIR}" \ --localstatedir="${VARDIR}" \ --with-piddir="${SAMBA4_RUNDIR}" \ --with-sockets-dir="${SAMBA4_RUNDIR}" \ --with-privileged-socket-dir="${SAMBA4_RUNDIR}" \ --with-lockdir="${SAMBA4_LOCKDIR}" \ --with-statedir="${SAMBA4_LOCKDIR}" \ --with-cachedir="${SAMBA4_LOCKDIR}" \ --with-bind-dns-dir=${SAMBA4_BINDDNSDIR} \ --with-privatedir="${SAMBA4_PRIVATEDIR}" \ --with-logfilebase="${SAMBA4_LOGDIR}" # XXX: Flags CONFIGURE_ENV+= PTHREAD_LDFLAGS="-lpthread" USES+= compiler:c++11-lang iconv localbase:ldflags \ perl5 pkgconfig shebangfix ssl waf gettext-runtime USE_PERL5= build USE_LDCONFIG= ${SAMBA4_LIBDIR} WAF_CMD= buildtools/bin/waf CONFIGURE_LOG= bin/config.log PKGCONFIGDIR?= ${PREFIX}/libdata/pkgconfig PKGCONFIGDIR_REL?= ${PKGCONFIGDIR:S,^${PREFIX}/,,} PLIST_SUB+= PKGCONFIGDIR=${PKGCONFIGDIR_REL} SUB_LIST+= PKGCONFIGDIR=${PKGCONFIGDIR_REL} ############################################################################## OPTIONS_SUB= yes OPTIONS_DEFINE= AD_DC ADS CLUSTER CUPS DOCS FAM GPGME \ LDAP NTVFS PROFILE QUOTAS SPOTLIGHT SYSLOG UTMP # This shouldn't be default in the release OPTIONS_DEFINE+= DEVELOPER MANDOC #OPTIONS_DEFINE+= MEMORY_DEBUG OPTIONS_DEFINE_amd64= AESNI OPTIONS_DEFAULT_amd64= AESNI OPTIONS_GROUP= VFS OPTIONS_GROUP_VFS= FRUIT GLUSTERFS OPTIONS_SINGLE= GSSAPI ZEROCONF # GSSAPI_HEIMDAL OPTIONS_SINGLE_GSSAPI= GSSAPI_BUILTIN GSSAPI_MIT OPTIONS_SINGLE_ZEROCONF= ZEROCONF_NONE AVAHI MDNSRESPONDER OPTIONS_RADIO= DNS OPTIONS_RADIO_DNS= NSUPDATE BIND911 BIND916 # Make those default options OPTIONS_DEFAULT= AD_DC ADS DOCS FAM LDAP \ QUOTAS SYSLOG UTMP PROFILE \ FRUIT GSSAPI_BUILTIN AVAHI ############################################################################## AD_DC_DESC= Active Directory Domain Controller ADS_DESC= Active Directory client(implies LDAP) AESNI_DESC= Accelerated AES crypto functions(amd64 only) CLUSTER_DESC= Clustering support DEVELOPER_DESC= With developer framework(implies NTVFS) FAM_DESC= File Alteration Monitor GPGME_DESC= GpgME support LDAP_DESC= LDAP client LIBZFS_DESC= LibZFS SPOTLIGHT_DESC= Spotlight server-side search support MANDOC_DESC= Build manpages from DOCBOOK templates MEMORY_DEBUG_DESC= Debug memory allocator NTVFS_DESC= Build *DEPRECATED* NTVFS file server PICKY_DEVELOPER_DESC= Treat compiler warnings as errors(implies DEVELOPER) PROFILE_DESC= Profiling data QUOTAS_DESC= Disk quota support UTMP_DESC= UTMP accounting VFS_DESC= VFS modules GLUSTERFS_DESC= GlusterFS support FRUIT_DESC= MacOSX and TimeMachine support GSSAPI_BUILTIN_DESC= GSSAPI support via bundled Heimdal ZEROCONF_DESC= Zero configuration networking ZEROCONF_NONE_DESC= Zeroconf support is absent DNS_DESC= DNS frontend BIND911_DESC= Use Bind 9.11 as AD DC DNS server frontend BIND916_DESC= Use Bind 9.16 as AD DC DNS server frontend NSUPDATE_DESC= Use samba NSUPDATE utility for AD DC ############################################################################## # XXX: Unconditional dependencies which can't be switched off(if present in # the system) # Iconv(picked up unconditionaly) LIB_DEPENDS+= libiconv.so:converters/libiconv # Readline(sponsored by Python) # XXX: USES=readline pollutes CPPFLAGS, so we explicitly put dependency LIB_DEPENDS+= libreadline.so:devel/readline # popt LIB_DEPENDS+= libpopt.so:devel/popt # inotify LIB_DEPENDS+= libinotify.so:devel/libinotify # GNUTLS LIB_DEPENDS+= libgnutls.so:security/gnutls LIB_DEPENDS+= libgcrypt.so:security/libgcrypt # NFSv4 ACL glue LIB_DEPENDS+= libsunacl.so:sysutils/libsunacl # Jansson BUILD_DEPENDS+= jansson>=2.10:devel/jansson RUN_DEPENDS+= jansson>=2.10:devel/jansson # tasn1 LIB_DEPENDS+= libtasn1.so:security/libtasn1 # External Samba dependencies # Needed for IDL compiler BUILD_DEPENDS+= p5-Parse-Yapp>=0:devel/p5-Parse-Yapp # Libarchive SAMBA4_BUNDLED_LIBS+= !libarchive BUILD_DEPENDS+= libarchive>=3.1.2:archivers/libarchive RUN_DEPENDS+= libarchive>=3.1.2:archivers/libarchive ### Bundled libraries SAMBA4_BUNDLED_CMOCKA?= no SAMBA4_BUNDLED_TALLOC?= no SAMBA4_BUNDLED_TEVENT?= no SAMBA4_BUNDLED_TDB?= no SAMBA4_BUNDLED_LDB?= yes # cmocka .if defined(SAMBA4_BUNDLED_CMOCKA) && ${SAMBA4_BUNDLED_CMOCKA} == yes SAMBA4_BUNDLED_LIBS+= cmocka CONFLICTS_INSTALL+= cmocka-1.* PLIST_SUB+= SAMBA4_BUNDLED_CMOCKA="" SUB_LIST+= SAMBA4_BUNDLED_CMOCKA="" .else SAMBA4_BUNDLED_LIBS+= !cmocka BUILD_DEPENDS+= cmocka>=1.1.3:sysutils/cmocka PLIST_SUB+= SAMBA4_BUNDLED_CMOCKA="@comment " SUB_LIST+= SAMBA4_BUNDLED_CMOCKA="@comment " .endif # talloc .if defined(SAMBA4_BUNDLED_TALLOC) && ${SAMBA4_BUNDLED_TALLOC} == yes SAMBA4_BUNDLED_LIBS+= talloc CONFLICTS_INSTALL+= talloc-* talloc1-* PLIST_SUB+= SAMBA4_BUNDLED_TALLOC="" SUB_LIST+= SAMBA4_BUNDLED_TALLOC="" .else SAMBA4_BUNDLED_LIBS+= !talloc BUILD_DEPENDS+= talloc>=2.2.0:devel/talloc RUN_DEPENDS+= talloc>=2.2.0:devel/talloc PLIST_SUB+= SAMBA4_BUNDLED_TALLOC="@comment " SUB_LIST+= SAMBA4_BUNDLED_TALLOC="@comment " .endif # tevent .if defined(SAMBA4_BUNDLED_TEVENT) && ${SAMBA4_BUNDLED_TEVENT} == yes SAMBA4_BUNDLED_LIBS+= tevent CONFLICTS_INSTALL+= tevent-* tevent1-* PLIST_SUB+= SAMBA4_BUNDLED_TEVENT="" SUB_LIST+= SAMBA4_BUNDLED_TEVENT="" .else SAMBA4_BUNDLED_LIBS+= !tevent BUILD_DEPENDS+= tevent>=0.10.0:devel/tevent RUN_DEPENDS+= tevent>=0.10.0:devel/tevent PLIST_SUB+= SAMBA4_BUNDLED_TEVENT="@comment " SUB_LIST+= SAMBA4_BUNDLED_TEVENT="@comment " .endif # tdb .if defined(SAMBA4_BUNDLED_TDB) && ${SAMBA4_BUNDLED_TDB} == yes SAMBA4_BUNDLED_LIBS+= tdb CONFLICTS_INSTALL+= tdb-* tdb1-* PLIST_SUB+= SAMBA4_BUNDLED_TDB="" SUB_LIST+= SAMBA4_BUNDLED_TDB="" .else SAMBA4_BUNDLED_LIBS+= !tdb -BUILD_DEPENDS+= tdb>=1.4.0:databases/tdb -RUN_DEPENDS+= tdb>=1.4.0:databases/tdb +BUILD_DEPENDS+= tdb>=1.4.2:databases/tdb +RUN_DEPENDS+= tdb>=1.4.2:databases/tdb PLIST_SUB+= SAMBA4_BUNDLED_TDB="@comment " SUB_LIST+= SAMBA4_BUNDLED_TDB="@comment " .endif # ldb .if defined(SAMBA4_BUNDLED_LDB) && ${SAMBA4_BUNDLED_LDB} == yes SAMBA4_BUNDLED_LDB= yes SAMBA4_BUNDLED_LIBS+= ldb PLIST_SUB+= SAMBA4_BUNDLED_LDB="" SUB_LIST+= SAMBA4_BUNDLED_LDB="" SAMBA4_MODULEDIR= ${SAMBA4_LIBDIR}/modules .else SAMBA4_BUNDLED_LIBS+= !ldb -BUILD_DEPENDS+= ldb15>=1.5.4:databases/ldb15 -RUN_DEPENDS+= ldb15>=1.5.4:databases/ldb15 +BUILD_DEPENDS+= ldb20>=2.0.8:databases/ldb20 +RUN_DEPENDS+= ldb20>=2.0.8:databases/ldb20 PLIST_SUB+= SAMBA4_BUNDLED_LDB="@comment " SUB_LIST+= SAMBA4_BUNDLED_LDB="@comment " SAMBA4_MODULEDIR= ${PREFIX}/lib/shared-modules .endif .if (defined(SAMBA4_BUNDLED_TALLOC) && ${SAMBA4_BUNDLED_TALLOC} == yes) \ || (defined(SAMBA4_BUNDLED_TDB) && ${SAMBA4_BUNDLED_TDB} == yes) \ || (defined(SAMBA4_BUNDLED_LDB) && ${SAMBA4_BUNDLED_LDB} == yes) \ || (defined(SAMBA4_BUNDLED_TEVENT) && ${SAMBA4_BUNDLED_TEVENT} == yes) SAMBA4_BUNDLED_LIBS+= replace .endif # Don't use external libcom_err SAMBA4_BUNDLED_LIBS+= com_err # Set the test environment variables TEST_USES= python TEST_ENV+= PYTHON="${PYTHON_CMD}" \ SHA1SUM=/sbin/sha1 \ SHA256SUM=/sbin/sha256 \ MD5SUM=/sbin/md5 \ PYTHONDONTWRITEBYTECODE=1 TEST_DEPENDS+= bash:shells/bash \ tshark:net/tshark ############################################################################## CONFIGURE_ARGS+= \ --with-pam \ --with-iconv \ --with-winbind \ --with-regedit \ --disable-rpath \ --without-lttng \ --without-gettext \ --enable-pthreadpool \ --without-fake-kaserver \ --without-systemd \ - --enable-gnutls \ --with-libarchive \ --with-acl-support \ --with-sendfile-support \ --disable-ctdb-tests \ # ${ICONV_CONFIGURE_BASE} ############################################################################## FRUIT_PREVENTS= ZEROCONF_NONE FRUIT_PREVENTS_MSG= MacOSX support requires Zeroconf(AVAHI or MDNSRESPONDER) FRUIT_VARS= SAMBA4_MODULES+=vfs_fruit FRUIT_PLIST_FILES+= man/man8/vfs_fruit.8.gz GLUSTERFS_CONFIGURE_ENABLE= glusterfs GLUSTERFS_LIB_DEPENDS= libglusterfs.so:net/glusterfs GLUSTERFS_VARS= SAMBA4_MODULES+=vfs_glusterfs GLUSTERFS_PLIST_FILES+= man/man8/vfs_glusterfs.8.gz ############################################################################## ZEROCONF_NONE_VARS= MAKE_ENV+=ZEROCONF=none AVAHI_CONFIGURE_ENABLE= avahi AVAHI_LIB_DEPENDS= libavahi-client.so:net/avahi-app AVAHI_VARS= SAMBA4_SERVICES+=avahi_daemon MDNSRESPONDER_CONFIGURE_ENABLE= dnssd MDNSRESPONDER_LIB_DEPENDS= libdns_sd.so:net/mDNSResponder MDNSRESPONDER_VARS= SAMBA4_SERVICES+=mdnsd ############################################################################## BIND911_RUN_DEPENDS= bind911>=9.11.0.0:dns/bind911 BIND916_RUN_DEPENDS= bind916>=9.16.0.0:dns/bind916 NSUPDATE_RUN_DEPENDS= samba-nsupdate:dns/samba-nsupdate ############################################################################## MEMORY_DEBUG_IMPLIES= DEBUG MEMORY_DEBUG_CONFIGURE_ENV= ADDITIONAL_CFLAGS="-DENABLE_JEMALLOC `pkg-config --cflags jemalloc`" ADDITIONAL_LDFLAGS="`pkg-config --libs jemalloc`" MEMORY_DEBUG_LIB_DEPENDS= libjemalloc.so.2:devel/jemalloc # https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=194046 GDB_CMD?= ${LOCALBASE}/bin/gdb # https://bugzilla.samba.org/show_bug.cgi?id=8969 PICKY_DEVELOPER_IMPLIES= DEVELOPER PICKY_DEVELOPER_CONFIGURE_ON= --picky-developer DEVELOPER_IMPLIES= NTVFS DEVELOPER_CONFIGURE_ON= --enable-developer --enable-selftest --abi-check-disable DEVELOPER_RUN_DEPENDS= ${SAMBA4_LMDB_DEPENDS} DEVELOPER_BUILD_DEPENDS= ${GDB_CMD}:devel/gdb \ ${SAMBA4_LMDB_DEPENDS} DEVELOPER_TEST_DEPENDS= ${GDB_CMD}:devel/gdb DEVELOPER_VARS_OFF= GDB_CMD=true # XXX: Mostly used in conjuction with the DEVELOPER option, don't enable it # if you don't know what you are doing NTVFS_IMPLIES= AD_DC NTVFS_CONFIGURE_WITH= ntvfs-fileserver NTVFS_PLIST_FILES= ${SAMBA4_MODULEDIR}/service/smb.so \ lib/samba4/private/libntvfs-samba4.so ############################################################################## CLUSTER_CONFIGURE_WITH= cluster-support CUPS_CONFIGURE_ENABLE= cups iprint CUPS_LIB_DEPENDS= libcups.so:print/cups # https://bugzilla.samba.org/show_bug.cgi?id=9545 FAM_USES= fam FAM_CONFIGURE_WITH= fam GPGME_CONFIGURE_WITH= gpgme GPGME_LIB_DEPENDS= libgpgme.so:security/gpgme PROFILE_CONFIGURE_WITH= profiling-data QUOTAS_CONFIGURE_WITH= quotas SPOTLIGHT_CONFIGURE_ENABLE= spotlight SPOTLIGHT_BUILD_DEPENDS= tracker>=1.4.1:sysutils/tracker SPOTLIGHT_RUN_DEPENDS= tracker>=1.4.1:sysutils/tracker SPOTLIGHT_USES= bison gnome SPOTLIGHT_USE= gnome=glib20 SYSLOG_CONFIGURE_WITH= syslog UTMP_CONFIGURE_WITH= utmp AD_DC_CONFIGURE_OFF= --without-ad-dc AD_DC_BUILD_DEPENDS= ${SAMBA4_LMDB_DEPENDS} AD_DC_RUN_DEPENDS= ${SAMBA4_LMDB_DEPENDS} ADS_IMPLIES= LDAP ADS_CONFIGURE_WITH= ads dnsupdate LDAP_CONFIGURE_WITH= ldap LDAP_CONFIGURE_ON= --with-openldap=${LOCALBASE} LDAP_USE= OPENLDAP=yes LDAP_VARS= SAMBA4_MODULES+=idmap_ldap GSSAPI_MIT_CONFIGURE_ON= --with-system-mitkrb5 ${GSSAPIBASEDIR} \ --with-system-mitkdc=${GSSAPIBASEDIR}/sbin/krb5kdc \ --with-experimental-mit-ad-dc GSSAPI_MIT_USES= gssapi:mit LIBZFS_CONFIGURE_WITH= libzfs LIBZFS_VARS= SAMBA4_MODULES+=vfs_zfs_space MANDOC_BUILD_DEPENDS= ${LOCALBASE}/share/xsl/docbook/manpages/docbook.xsl:textproc/docbook-xsl \ xsltproc:textproc/libxslt MANDOC_CONFIGURE_ENV_OFF= XSLTPROC="true" ############################################################################## .include ############################################################################## .if !defined(WANT_EXP_MODULES) || empty(WANT_EXP_MODULES) WANT_EXP_MODULES= vfs_cacheprime .endif .if ${WANT_EXP_MODULES:Mvfs_snapper} # snapper needs dbus LIB_DEPENDS+= libdbus-1.so:devel/dbus LIB_DEPENDS+= libdbus-glib-1.so:devel/dbus-glib .endif SAMBA4_MODULES+= vfs_freebsd SAMBA4_MODULES+= idmap_nss idmap_autorid idmap_rid idmap_hash idmap_tdb idmap_tdb2 idmap_script nss-info_hash # List of extra modules taken from RHEL build # https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=197320 .if ${PORT_OPTIONS:MADS} SAMBA4_MODULES+= idmap_ad idmap_rfc2307 nss-info_template nss-info_rfc2307 nss-info_sfu nss-info_sfu20 .endif .if ${PORT_OPTIONS:MDEVELOPER} SAMBA4_MODULES+= auth_skel pdb_test gpext_security gpext_registry gpext_scripts perfcount_test \ vfs_fake_dfq vfs_skel_opaque vfs_skel_transparent vfs_shadow_copy_test vfs_fake_acls \ vfs_nfs4acl_xattr vfs_error_inject vfs_delay_inject .endif # Python bindings .if defined(NO_PYTHON) USES+= python:build,test CONFIGURE_ARGS+= --disable-python PLIST_SUB+= SAMBA4_PYTHON="@comment " SUB_LIST+= SAMBA4_PYTHON="@comment " .else USES+= python:3.4+ PLIST_SUB+= SAMBA4_PYTHON="" SUB_LIST+= SAMBA4_PYTHON="" # Don't cache Python modules CONFIGURE_ARGS+= --nopycache MAKE_ENV+= PYTHONDONTWRITEBYTECODE=1 .if defined(SAMBA4_BUNDLED_TALLOC) && ${SAMBA4_BUNDLED_TALLOC} == yes SAMBA4_BUNDLED_LIBS+= pytalloc-util .else SAMBA4_BUNDLED_LIBS+= !pytalloc-util .endif .if defined(SAMBA4_BUNDLED_TEVENT) && ${SAMBA4_BUNDLED_TEVENT} == yes SAMBA4_BUNDLED_LIBS+= pytevent .else SAMBA4_BUNDLED_LIBS+= !pytevent .endif .if defined(SAMBA4_BUNDLED_TDB) && ${SAMBA4_BUNDLED_TDB} == yes SAMBA4_BUNDLED_LIBS+= pytdb .else SAMBA4_BUNDLED_LIBS+= !pytdb .endif .if defined(SAMBA4_BUNDLED_LDB) && ${SAMBA4_BUNDLED_LDB} == yes SAMBA4_BUNDLED_LIBS+= pyldb pyldb-util .else SAMBA4_BUNDLED_LIBS+= !pyldb !pyldb-util .endif # External Python modules BUILD_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}iso8601>=0.1.11:devel/py-iso8601@${PY_FLAVOR} RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}iso8601>=0.1.11:devel/py-iso8601@${PY_FLAVOR} .endif .if defined(WANT_EXP_MODULES) && !empty(WANT_EXP_MODULES) SAMBA4_MODULES+= ${WANT_EXP_MODULES} .endif .if defined(SAMBA4_BUNDLED_LIBS) && !empty(SAMBA4_BUNDLED_LIBS) CONFIGURE_ARGS+= --bundled-libraries="${SAMBA4_BUNDLED_LIBS:Q:C|(\\\\ )+|,|g:S|\\||g}" .endif .if defined(SAMBA4_MODULES) && !empty(SAMBA4_MODULES) CONFIGURE_ARGS+= --with-shared-modules="${SAMBA4_MODULES:C|-|_|:Q:C|(\\\\ )+|,|g:S|\\||g}" .endif # XXX: Hack for nss-info_* -> nss_info/* modules # Add selected modules to the plist .for module in ${SAMBA4_MODULES} PLIST_FILES+= ${SAMBA4_MODULEDIR}/${module:C|_|/|:C|-|_|}.so .endfor .if defined(WITH_DEBUG) CONFIGURE_ARGS+= --verbose --enable-debug MAKE_ARGS+= --verbose DEBUG_FLAGS?= -g -ggdb3 -O0 .endif ############################################################################## .include ############################################################################## # Require llvm 4.0 and AMD64 .if ${PORT_OPTIONS:MAESNI} && ${ARCH} == "amd64" CONFIGURE_ARGS+= --accel-aes=intelaesni PLIST_FILES+= lib/samba4/private/libaesni-intel-samba4.so .else CONFIGURE_ARGS+= --accel-aes=none .endif # Only for 64-bit architectures .if ${ARCH} != armv6 && ${ARCH} != armv7 && ${ARCH} != i386 && ${ARCH} != mips && ${ARCH} != powerpc && ${ARCH} != powerpcspe . if defined(SAMBA4_BUNDLED_LDB) && ${SAMBA4_BUNDLED_LDB} == yes && (${PORT_OPTIONS:MAD_DC} || ${PORT_OPTIONS:MDEVELOPER}) # LMDB SAMBA4_LMDB_DEPENDS= lmdb>=0.9.16:databases/lmdb PLIST_FILES+= lib/samba4/private/libldb-mdb-int-samba4.so \ ${SAMBA4_MODULEDIR}/ldb/mdb.so . endif .endif .if ${PORT_OPTIONS:MGSSAPI_MIT} PLIST_FILES+= ${SAMBA4_MODULEDIR}/krb5/winbind_krb5_localauth.so \ man/man8/winbind_krb5_localauth.8.gz . if ${PORT_OPTIONS:MAD_DC} PLIST_FILES+= lib/samba4/krb5/plugins/kdb/samba.so . endif .endif # for libexecinfo: (so that __builtin_frame_address() finds the top of the stack) CFLAGS_amd64+= -fno-omit-frame-pointer # No fancy color error messages CONFIGURE_ENV+= NOCOLOR=yes WAF_LOG_FORMAT='%(c1)s%(zone)s%(c2)s %(message)s' MAKE_ENV+= NOCOLOR=yes WAF_LOG_FORMAT='%(c1)s%(zone)s%(c2)s %(message)s' .if ${CHOSEN_COMPILER_TYPE} == clang CFLAGS+= -fno-color-diagnostics .endif # Allow rpcgen to find proper CPP MAKE_ENV+= RPCGEN_CPP="${CPP}" #.if ${readline_ARGS} == port #CFLAGS+= -D_FUNCTION_DEF #.endif # Make sure that the right version of Python is used by the tools # https://bugzilla.samba.org/show_bug.cgi?id=7305 SHEBANG_FILES= ${PATCH_WRKSRC}/source4/scripting/bin/* ${PATCH_WRKSRC}/selftest/* SAMBA4_SUB= SAMBA4_LOGDIR="${SAMBA4_LOGDIR}" \ SAMBA4_RUNDIR="${SAMBA4_RUNDIR}" \ SAMBA4_LOCKDIR="${SAMBA4_LOCKDIR}" \ SAMBA4_MODULEDIR="${SAMBA4_MODULEDIR}" \ SAMBA4_BINDDNSDIR="${SAMBA4_BINDDNSDIR}" \ SAMBA4_PRIVATEDIR="${SAMBA4_PRIVATEDIR}" \ SAMBA4_CONFDIR="${SAMBA4_CONFDIR}" \ SAMBA4_CONFIG="${SAMBA4_CONFIG}" \ SAMBA4_SERVICES="${SAMBA4_SERVICES}" PLIST_SUB+= ${SAMBA4_SUB} SUB_LIST+= ${SAMBA4_SUB} USE_RC_SUBR= samba_server SUB_FILES= pkg-message README.FreeBSD PORTDOCS= README.FreeBSD post-extract: @${RM} -r ${WRKSRC}/pidl/lib/Parse/Yapp post-patch: @${REINPLACE_CMD} -e 's|$${PKGCONFIGDIR}|${PKGCONFIGDIR}|g' \ ${PATCH_WRKSRC}/buildtools/wafsamba/pkgconfig.py @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \ ${PATCH_WRKSRC}/buildtools/wafsamba/wafsamba.py @${REINPLACE_CMD} -e 's|%%GDB_CMD%%|${GDB_CMD}|g' \ ${PATCH_WRKSRC}/buildtools/scripts/abi_gen.sh @${REINPLACE_CMD} -e 's|%%SAMBA4_CONFIG%%|${SAMBA4_CONFIG}|g' \ ${PATCH_WRKSRC}/dynconfig/wscript # Use threading (or multiprocessing) but not thread (renamed in python 3+). pre-configure: .if ! ${PORT_OPTIONS:MAD_DC} && ${PORT_OPTIONS:MNTVFS} @${ECHO_CMD}; \ ${ECHO_MSG} "===> NTVFS option requires AD_DC to be set"; \ ${ECHO_CMD}; \ ${FALSE} .endif @if ! ${PYTHON_CMD} -c "import multiprocessing;" 2>/dev/null; then \ ${ECHO_CMD}; \ ${ECHO_MSG} "===> ${PKGNAME} "${IGNORE_NONTHREAD_PYTHON:Q}.; \ ${ECHO_CMD}; \ ${FALSE}; \ fi pre-build-MANDOC-off: ${MKDIR} ${BUILD_WRKSRC}/bin/default/docs-xml/ ${CP} -rp ${BUILD_WRKSRC}/docs/manpages ${BUILD_WRKSRC}/bin/default/docs-xml/ .for man in libcli/nbt/man/nmblookup4.1 \ librpc/tools/ndrdump.1 \ source4/lib/registry/man/regdiff.1 \ source4/lib/registry/man/regpatch.1 \ source4/lib/registry/man/regshell.1 \ source4/lib/registry/man/regtree.1 \ source4/scripting/man/samba-gpupdate.8 \ source4/torture/man/gentest.1 \ source4/torture/man/locktest.1 \ source4/torture/man/masktest.1 \ source4/torture/man/smbtorture.1 \ source4/utils/man/ntlm_auth4.1 \ - source4/utils/man/oLschema2ldif.1 \ + source4/utils/oLschema2ldif/oLschema2ldif.1 \ lib/tdb/man/tdbdump.8 \ lib/tdb/man/tdbbackup.8 \ lib/tdb/man/tdbtool.8 \ lib/talloc/man/talloc.3 \ lib/tdb/man/tdbrestore.8 \ lib/ldb/man/ldbadd.1 \ lib/ldb/man/ldbsearch.1 \ lib/ldb/man/ldbmodify.1 \ lib/ldb/man/ldbrename.1 \ lib/ldb/man/ldbdel.1 \ lib/ldb/man/ldbedit.1 \ docs-xml/manpages/vfs_freebsd.8 ${MKDIR} `dirname ${BUILD_WRKSRC}/bin/default/${man}` ${INSTALL_MAN} ${FILESDIR}/man/`basename ${man}` ${BUILD_WRKSRC}/bin/default/${man} .endfor .if ${PORT_OPTIONS:MCLUSTER} ${MKDIR} ${BUILD_WRKSRC}/bin/default/ctdb/ . for man in ctdb_diagnostics.1 ctdb.1 ctdbd_wrapper.1 ctdbd.1 ltdbtool.1 onnode.1 ping_pong.1 \ ctdb.conf.5 ctdb.sysconfig.5 ctdb-script.options.5 \ ctdb.7 ctdb-statistics.7 ctdb-tunables.7 ${INSTALL_MAN} ${FILESDIR}/man/${man} ${BUILD_WRKSRC}/bin/default/ctdb/ . endfor .endif post-install-rm-junk: .if defined(NO_PYTHON) ${RM} -r ${STAGEDIR}${PYTHON_SITELIBDIR}/samba/third_party/dns \ ${STAGEDIR}${PYTHON_SITELIBDIR}/samba/third_party/iso8601 .endif post-install-fix-manpages: .for f in vfs_aio_linux.8 vfs_btrfs.8 vfs_ceph.8 vfs_gpfs.8 ${RM} ${STAGEDIR}${PREFIX}/man/man8/${f} .endfor .if defined(SAMBA4_BUNDLED_LDB) && ${SAMBA4_BUNDLED_LDB} == yes . for f in ldbadd.1 ldbdel.1 ldbedit.1 ldbmodify.1 ldbrename.1 ldbsearch.1 ${MV} ${STAGEDIR}${PREFIX}/man/man1/${f} ${STAGEDIR}${PREFIX}/man/man1/samba-${f} . endfor .endif .if defined(SAMBA4_BUNDLED_TDB) && ${SAMBA4_BUNDLED_TDB} == yes . for f in tdbbackup.8 tdbdump.8 tdbrestore.8 tdbtool.8 ${MV} ${STAGEDIR}${PREFIX}/man/man8/${f} ${STAGEDIR}${PREFIX}/man/man8/samba-${f} . endfor .endif post-install: post-install-rm-junk post-install-fix-manpages ${LN} -sf smb.conf.5.gz ${STAGEDIR}${PREFIX}/man/man5/smb4.conf.5.gz # Run post-install script .for dir in ${SAMBA4_LOGDIR} ${SAMBA4_RUNDIR} ${SAMBA4_LOCKDIR} ${SAMBA4_MODULEDIR} ${INSTALL} -d -m 0755 "${STAGEDIR}${dir}" .endfor ${INSTALL} -d -m 0750 "${STAGEDIR}${SAMBA4_BINDDNSDIR}" ${INSTALL} -d -m 0750 "${STAGEDIR}${SAMBA4_PRIVATEDIR}" .for dir in auth bind9 gensec gpext idmap ldb nss_info pdb perfcount process_model service vfs ${INSTALL} -d -m 0755 "${STAGEDIR}${SAMBA4_MODULEDIR}/${dir}" .endfor .if !defined(WITH_DEBUG) -${FIND} ${STAGEDIR}${PREFIX}/bin ${STAGEDIR}${PREFIX}/sbin \ -type f -print0 | ${XARGS} -0 -n 1 -t ${STRIP_CMD} -${FIND} ${STAGEDIR}${PREFIX}/lib -name '*.so*' \ -type f -print0 | ${XARGS} -0 -n 1 -t ${STRIP_CMD} .endif post-install-FRUIT-off: ${RM} ${STAGEDIR}${SAMBA4_MODULEDIR}/vfs/fruit.so ${RM} ${STAGEDIR}${PREFIX}/man/man8/vfs_fruit.8 post-install-DOCS-on: ${MKDIR} ${STAGEDIR}${DOCSDIR} .for doc in ${PORTDOCS} ${INSTALL_DATA} ${WRKDIR}/${doc} ${STAGEDIR}${DOCSDIR} .endfor post-install-CLUSTER-on: ${LN} -nfs ../../../../share/ctdb/events/legacy/00.ctdb.script ${STAGEDIR}${PREFIX}/etc/ctdb/events/legacy/00.ctdb.script ${LN} -nfs ../../../../share/ctdb/events/legacy/10.interface.script ${STAGEDIR}${PREFIX}/etc/ctdb/events/legacy/10.interface.script ${LN} -nfs ../../../../share/ctdb/events/legacy/05.system.script ${STAGEDIR}${PREFIX}/etc/ctdb/events/legacy/05.system.script ${LN} -nfs ../../../../share/ctdb/events/legacy/01.reclock.script ${STAGEDIR}${PREFIX}/etc/ctdb/events/legacy/01.reclock.script .include Index: head/net/samba411/distinfo =================================================================== --- head/net/samba411/distinfo (revision 532259) +++ head/net/samba411/distinfo (revision 532260) @@ -1,3 +1,3 @@ -TIMESTAMP = 1585962923 -SHA256 (samba-4.10.14.tar.gz) = dc67f8ef9093c4fc63551cf24b05e77551dabaefcf5761945b938bbe2c036ea0 -SIZE (samba-4.10.14.tar.gz) = 18352989 +TIMESTAMP = 1586645355 +SHA256 (samba-4.11.7.tar.gz) = 79b6f9ebc357373f885153e2d5d26dc6def9f4511ee4bcbe8a8e2622acc42143 +SIZE (samba-4.11.7.tar.gz) = 18541292 Index: head/net/samba411/files/0001-provision-use-ASCII-quotes.patch =================================================================== --- head/net/samba411/files/0001-provision-use-ASCII-quotes.patch (revision 532259) +++ head/net/samba411/files/0001-provision-use-ASCII-quotes.patch (nonexistent) @@ -1,30 +0,0 @@ -From d01c5bc9fbe316d2358ead6382f4e7e3bf5fc000 Mon Sep 17 00:00:00 2001 -From: Philipp Gesang -Date: Tue, 12 Mar 2019 15:51:16 +0100 -Subject: [PATCH] provision: use ASCII quotes - -Remove some Unicode quotes that cause problems under the C -locale. - -Signed-off-by: Philipp Gesang -Reviewed-by: Douglas Bagnall ---- - source4/setup/extended-rights.ldif | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/source4/setup/extended-rights.ldif b/source4/setup/extended-rights.ldif -index ef4c3049601..67417b7d020 100644 ---- a/source4/setup/extended-rights.ldif -+++ b/source4/setup/extended-rights.ldif -@@ -11,7 +11,7 @@ - # - - # Technical Documentation. Microsoft publishes Open Specifications --# documentation (“this documentation”) for protocols, file formats, -+# documentation ("this documentation") for protocols, file formats, - # data portability, computer languages, and standards - # support. Additionally, overview documents cover inter-protocol - # relationships and interactions. --- -2.18.0 - Property changes on: head/net/samba411/files/0001-provision-use-ASCII-quotes.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/net/samba411/files/patch-lib_crypto_wscript__configure =================================================================== --- head/net/samba411/files/patch-lib_crypto_wscript__configure (revision 532259) +++ head/net/samba411/files/patch-lib_crypto_wscript__configure (nonexistent) @@ -1,15 +0,0 @@ ---- lib/crypto/wscript_configure.orig 2019-01-15 10:07:00 UTC -+++ lib/crypto/wscript_configure -@@ -4,10 +4,10 @@ from waflib import Errors, Logs - - if not conf.CHECK_FUNCS_IN('MD5Init', 'bsd', headers='bsd/md5.h', - checklibc=True): -- conf.CHECK_FUNCS_IN('MD5Init', 'md5', headers='sys/md5.h', -- checklibc=True) - conf.CHECK_FUNCS_IN('MD5Init', 'md', headers='sys/md5.h', - checklibc=True) -+ conf.CHECK_FUNCS_IN('MD5Init', 'md5', headers='sys/md5.h', -+ checklibc=True) - conf.CHECK_FUNCS_IN('CC_MD5_Init', '', headers='CommonCrypto/CommonDigest.h', - checklibc=True) - Property changes on: head/net/samba411/files/patch-lib_crypto_wscript__configure ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/net/samba411/files/patch-source4_heimdal__build_wscript__configure =================================================================== --- head/net/samba411/files/patch-source4_heimdal__build_wscript__configure (revision 532259) +++ head/net/samba411/files/patch-source4_heimdal__build_wscript__configure (nonexistent) @@ -1,20 +0,0 @@ ---- source4/heimdal_build/wscript_configure.orig 2019-01-15 10:07:00 UTC -+++ source4/heimdal_build/wscript_configure -@@ -171,7 +171,7 @@ if not krb5_config: - krb5_config = conf.find_program("krb5-config", var="HEIMDAL_KRB5_CONFIG") - if krb5_config: - # Not ideal, but seems like the best way to get at these paths: -- f = open(krb5_config[0], 'r') -+ f = open(krb5_config[0], 'r', errors='ignore') - try: - for l in f: - if l.startswith("libdir="): -@@ -181,6 +181,8 @@ if krb5_config: - heimdal_includedirs.append(include_path) - conf.define('HEIMDAL_KRB5_TYPES_PATH', - include_path + "/krb5-types.h") -+ except: -+ pass - finally: - f.close() - Property changes on: head/net/samba411/files/patch-source4_heimdal__build_wscript__configure ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/net/samba411/files/0001-Zfs-provision-1.patch =================================================================== --- head/net/samba411/files/0001-Zfs-provision-1.patch (revision 532259) +++ head/net/samba411/files/0001-Zfs-provision-1.patch (revision 532260) @@ -1,325 +1,329 @@ From 2664c997587416a2c8c911a75158485a5c98b70b Mon Sep 17 00:00:00 2001 From: John Hixon Date: Sat, 20 May 2017 04:39:37 +0200 Subject: [PATCH] Zfs provision (#1) Cherry-pick ZFS provisioning code by iXsystems Inc. * Check if sysvol is on filesystem with NFSv4 ACL's (cherry picked from commit ca86f52b78a7b6e7537454a69cf93e7b96210cba) * Only check targetdir if it is defined (I had assumed it was) (cherry picked from commit a29050cb2978ce23e3c04a859340dc2664c77a8a) * Kick samba a little bit into understanding NFSv4 ACL's (cherry picked from commit 1c7542ff4904b729e311e17464ee76582760c219) Signed-off-by: Timur I. Bakeyev --- python/samba/provision/__init__.py | 25 ++++-- source3/lib/sysacls.c | 10 +++ source3/param/loadparm.c | 7 ++ source3/smbd/pysmbd.c | 156 ++++++++++++++++++++++++++++++++++++- 4 files changed, 191 insertions(+), 7 deletions(-) diff --git a/python/samba/provision/__init__.py b/python/samba/provision/__init__.py index 5de986463a5..cd3b91f41b9 100644 --- a/python/samba/provision/__init__.py +++ b/python/samba/provision/__init__.py @@ -1556,19 +1556,24 @@ def setsysvolacl(samdb, netlogon, sysvol, uid, gid, domainsid, dnsdomain, s3conf = s3param.get_context() s3conf.load(lp.configfile) - file = tempfile.NamedTemporaryFile(dir=os.path.abspath(sysvol)) + sysvol_dir = os.path.abspath(sysvol) + + set_simple_acl = smbd.set_simple_acl + if smbd.has_nfsv4_acls(sysvol_dir): + set_simple_acl = smbd.set_simple_nfsv4_acl + + file = tempfile.NamedTemporaryFile(dir=sysvol_dir) try: try: - smbd.set_simple_acl(file.name, 0o755, gid) + set_simple_acl(file.name, 0o755, gid) except OSError: - if not smbd.have_posix_acls(): + if not smbd.have_posix_acls() and not smbd.have_nfsv4_acls(): # This clue is only strictly correct for RPM and # Debian-like Linux systems, but hopefully other users # will get enough clue from it. - raise ProvisioningError("Samba was compiled without the posix ACL support that s3fs requires. " + raise ProvisioningError("Samba was compiled without the ACL support that s3fs requires. " "Try installing libacl1-dev or libacl-devel, then re-run configure and make.") - - raise ProvisioningError("Your filesystem or build does not support posix ACLs, which s3fs requires. " + raise ProvisioningError("Your filesystem or build does not support ACLs, which s3fs requires. " "Try the mounting the filesystem with the 'acl' option.") try: smbd.chown(file.name, uid, gid) @@ -1821,6 +1828,9 @@ def provision_fill(samdb, secrets_ldb, logger, names, paths, samdb.transaction_commit() if serverrole == "active directory domain controller": + if targetdir and smbd.have_nfsv4_acls() and smbd.has_nfsv4_acls(targetdir): + smbd.set_nfsv4_defaults() + # Continue setting up sysvol for GPO. This appears to require being # outside a transaction. if not skip_sysvolacl: @@ -2184,6 +2194,9 @@ def provision(logger, session_info, smbconf=None, if not os.path.isdir(paths.netlogon): os.makedirs(paths.netlogon, 0o755) + if smbd.have_nfsv4_acls() and smbd.has_nfsv4_acls(paths.sysvol): + smbd.set_nfsv4_defaults() + if adminpass is None: adminpass = samba.generate_random_password(12, 32) adminpass_generated = True diff --git a/source3/lib/sysacls.c b/source3/lib/sysacls.c index 0bf3c37edfa..786cd39b5bc 100644 --- a/source3/lib/sysacls.c +++ b/source3/lib/sysacls.c @@ -38,6 +38,16 @@ #include "modules/vfs_hpuxacl.h" #endif +/* + * NFSv4 ACL's should be understood and a first class citizen. Work + * needs to be done in librpc/idl/smb_acl.idl for this to occur. + */ +#if defined(HAVE_LIBSUNACL) && defined(FREEBSD) +#if 0 +#include "modules/nfs4_acls.h" +#endif +#endif + #undef DBGC_CLASS #define DBGC_CLASS DBGC_ACLS diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c index a2fcc4246c9..4b676897fc1 100644 --- a/source3/param/loadparm.c +++ b/source3/param/loadparm.c @@ -2740,6 +2740,13 @@ static void init_locals(void) } else if (lp_parm_const_string(-1, "posix", "eadb", NULL)) { lp_do_parameter(-1, "vfs objects", "dfs_samba4 acl_xattr posix_eadb"); } else { + /* + * This should only set dfs_samba4 and leave acl_xattr + * to be set later (or zfsacl). The only reason the decision + * can't be made here to load acl_xattr or zfsacl is + * that we don't have access to what the target + * directory is. + */ lp_do_parameter(-1, "vfs objects", "dfs_samba4 acl_xattr"); } } diff --git a/source3/smbd/pysmbd.c b/source3/smbd/pysmbd.c index 63fc5d68c33..f5a536ee186 100644 --- a/source3/smbd/pysmbd.c +++ b/source3/smbd/pysmbd.c -@@ -392,6 +392,20 @@ static SMB_ACL_T make_simple_acl(TALLOC_ +@@ -393,6 +393,20 @@ static SMB_ACL_T make_simple_acl(TALLOC_ return acl; } +static SMB_ACL_T make_simple_nfsv4_acl(TALLOC_CTX *mem_ctx, + gid_t gid, + mode_t chmod_mode) +{ + /* + * This function needs to create an NFSv4 ACL. Currently, the only way + * to do so is to use the operating system interface, or to use the + * functions in source3/modules/nfs4_acls.c. These seems ugly and + * hacky. NFSv4 ACL's should be a first class citizen and + * librpc/idl/smb_acl.idl should be modified accordingly. + */ + return NULL; +} + /* set a simple ACL on a file, as a test */ -@@ -437,6 +451,57 @@ static PyObject *py_smbd_set_simple_acl( +@@ -438,6 +452,57 @@ static PyObject *py_smbd_set_simple_acl( Py_RETURN_NONE; } + +/* + set a simple NFSv4 ACL on a file, as a test + */ +static PyObject *py_smbd_set_simple_nfsv4_acl(PyObject *self, PyObject *args, PyObject *kwargs) +{ + const char * const kwnames[] = { "fname", "mode", "gid", "service", NULL }; + char *fname, *service = NULL; + int ret; + int mode, gid = -1; + SMB_ACL_T acl; + TALLOC_CTX *frame; + connection_struct *conn; + + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "si|iz", + discard_const_p(char *, kwnames), + &fname, &mode, &gid, &service)) + return NULL; + + frame = talloc_stackframe(); + + acl = make_simple_nfsv4_acl(frame, gid, mode); + if (acl == NULL) { + TALLOC_FREE(frame); + Py_RETURN_NONE; + } + + conn = get_conn_tos(service, NULL); + if (!conn) { + TALLOC_FREE(frame); + Py_RETURN_NONE; + } + + /* + * SMB_ACL_TYPE_ACCESS -> ACL_TYPE_ACCESS -> Not valid for NFSv4 ACL + */ + ret = 0; + + /* ret = set_sys_acl_conn(fname, SMB_ACL_TYPE_ACCESS, acl, conn); */ + + if (ret != 0) { + TALLOC_FREE(frame); + errno = ret; + return PyErr_SetFromErrno(PyExc_OSError); + } + + TALLOC_FREE(frame); + + Py_RETURN_NONE; +} + /* chown a file */ -@@ -536,7 +601,7 @@ static PyObject *py_smbd_unlink(PyObject +@@ -537,7 +602,7 @@ static PyObject *py_smbd_unlink(PyObject } /* - check if we have ACL support + check if we have POSIX.1e ACL support */ - static PyObject *py_smbd_have_posix_acls(PyObject *self) - { -@@ -547,6 +612,86 @@ static PyObject *py_smbd_have_posix_acls + static PyObject *py_smbd_have_posix_acls(PyObject *self, + PyObject *Py_UNUSED(ignored)) +@@ -549,6 +614,86 @@ static PyObject *py_smbd_have_posix_acls #endif } +static PyObject *py_smbd_has_posix_acls(PyObject *self, PyObject *args, PyObject *kwargs) +{ + const char * const kwnames[] = { "path", NULL }; + char *path = NULL; + TALLOC_CTX *frame; + struct statfs fs; + int ret = false; + + frame = talloc_stackframe(); + + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s|z", + discard_const_p(char *, kwnames), &path)) { + TALLOC_FREE(frame); + return NULL; + } + + if (statfs(path, &fs) != 0) { + TALLOC_FREE(frame); + return NULL; + } + + if (fs.f_flags & MNT_ACLS) + ret = true; + + TALLOC_FREE(frame); + return PyBool_FromLong(ret); +} + +/* + check if we have NFSv4 ACL support + */ +static PyObject *py_smbd_have_nfsv4_acls(PyObject *self) +{ +#ifdef HAVE_LIBSUNACL + return PyBool_FromLong(true); +#else + return PyBool_FromLong(false); +#endif +} + +static PyObject *py_smbd_has_nfsv4_acls(PyObject *self, PyObject *args, PyObject *kwargs) +{ + const char * const kwnames[] = { "path", NULL }; + char *path = NULL; + TALLOC_CTX *frame; + struct statfs fs; + int ret = false; + + frame = talloc_stackframe(); + + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s|z", + discard_const_p(char *, kwnames), &path)) { + TALLOC_FREE(frame); + return NULL; + } + + if (statfs(path, &fs) != 0) { + TALLOC_FREE(frame); + return NULL; + } + + if (fs.f_flags & MNT_NFS4ACLS) + ret = true; + + TALLOC_FREE(frame); + return PyBool_FromLong(ret); +} + + +static PyObject *py_smbd_set_nfsv4_defaults(PyObject *self) +{ + /* + * This should really be done in source3/param/loadparm.c + */ +#if defined(HAVE_LIBSUNACL) && defined(FREEBSD) + lp_do_parameter(-1, "vfs objects", "dfs_samba4 zfsacl"); +#endif + Py_RETURN_NONE; +} + /* set the NT ACL on a file */ -@@ -881,9 +1026,24 @@ static PyMethodDef py_smbd_methods[] = { +@@ -883,10 +1028,28 @@ static PyMethodDef py_smbd_methods[] = { { "have_posix_acls", (PyCFunction)py_smbd_have_posix_acls, METH_NOARGS, NULL }, + { "has_posix_acls", -+ (PyCFunction)py_smbd_has_posix_acls, METH_VARARGS|METH_KEYWORDS, ++ PY_DISCARD_FUNC_SIG(PyCFunction, py_smbd_has_posix_acls), ++ METH_VARARGS|METH_KEYWORDS, + NULL }, + { "have_nfsv4_acls", + (PyCFunction)py_smbd_have_nfsv4_acls, METH_NOARGS, + NULL }, + { "has_nfsv4_acls", -+ (PyCFunction)py_smbd_has_nfsv4_acls, METH_VARARGS|METH_KEYWORDS, ++ PY_DISCARD_FUNC_SIG(PyCFunction, py_smbd_has_nfsv4_acls), ++ METH_VARARGS|METH_KEYWORDS, + NULL }, + { "set_nfsv4_defaults", + (PyCFunction)py_smbd_set_nfsv4_defaults, METH_NOARGS, + NULL }, { "set_simple_acl", - (PyCFunction)py_smbd_set_simple_acl, METH_VARARGS|METH_KEYWORDS, + PY_DISCARD_FUNC_SIG(PyCFunction, py_smbd_set_simple_acl), + METH_VARARGS|METH_KEYWORDS, NULL }, + { "set_simple_nfsv4_acl", -+ (PyCFunction)py_smbd_set_simple_nfsv4_acl, METH_VARARGS|METH_KEYWORDS, ++ PY_DISCARD_FUNC_SIG(PyCFunction, py_smbd_set_simple_nfsv4_acl), ++ METH_VARARGS|METH_KEYWORDS, + NULL }, { "set_nt_acl", - (PyCFunction)py_smbd_set_nt_acl, METH_VARARGS|METH_KEYWORDS, - NULL }, + PY_DISCARD_FUNC_SIG(PyCFunction, py_smbd_set_nt_acl), + METH_VARARGS|METH_KEYWORDS, -- 2.14.2 Index: head/net/samba411/files/patch-bind =================================================================== --- head/net/samba411/files/patch-bind (revision 532259) +++ head/net/samba411/files/patch-bind (revision 532260) @@ -1,215 +1,215 @@ --- python/samba/provision/sambadns.py.orig 2020-03-26 08:58:46 UTC +++ python/samba/provision/sambadns.py @@ -27,6 +27,7 @@ import time import ldb from base64 import b64encode import subprocess +import re import samba from samba.tdb_util import tdb_copy from samba.mdb_util import mdb_copy @@ -965,34 +966,35 @@ def create_named_conf(paths, realm, dnsdomain, dns_bac stderr=subprocess.STDOUT, cwd='.').communicate()[0] bind_info = get_string(bind_info) - bind9_8 = '#' - bind9_9 = '#' - bind9_10 = '#' - bind9_11 = '#' - bind9_12 = '#' - if bind_info.upper().find('BIND 9.8') != -1: - bind9_8 = '' - elif bind_info.upper().find('BIND 9.9') != -1: - bind9_9 = '' - elif bind_info.upper().find('BIND 9.10') != -1: - bind9_10 = '' - elif bind_info.upper().find('BIND 9.11') != -1: - bind9_11 = '' - elif bind_info.upper().find('BIND 9.12') != -1: - bind9_12 = '' - elif bind_info.upper().find('BIND 9.7') != -1: - raise ProvisioningError("DLZ option incompatible with BIND 9.7.") + bind9_release = re.search('BIND (9)\.(\d+)\.', bind_info, re.I) + if bind9_release: + bind9_disabled = '' + bind9_version = bind9_release.group(0) + "x" + bind9_version_major = int(bind9_release.group(1)) + bind9_version_minor = int(bind9_release.group(2)) + if bind9_version_minor == 7: + raise ProvisioningError("DLZ option incompatible with BIND 9.7.") + elif bind9_version_minor == 8: + bind9_dlz_version = "9" + else: + bind9_dlz_version = "%d_%d" % (bind9_version_major, bind9_version_minor) else: + bind9_disabled = '# ' + bind9_version = "BIND z.y.x" + bind9_dlz_version = "z_y" logger.warning("BIND version unknown, please modify %s manually." % paths.namedconf) + + bind9_dlz = ( + ' # For %s\n' + ' %sdatabase %s/bind9/dlz_bind%s.so";' + ) % ( + bind9_version, bind9_disabled, samba.param.modules_dir(), bind9_dlz_version + ) + setup_file(setup_path("named.conf.dlz"), paths.namedconf, { "NAMED_CONF": paths.namedconf, "MODULESDIR": samba.param.modules_dir(), - "BIND9_8": bind9_8, - "BIND9_9": bind9_9, - "BIND9_10": bind9_10, - "BIND9_11": bind9_11, - "BIND9_12": bind9_12 - + "BIND9_DLZ": bind9_dlz }) --- source4/dns_server/dlz_minimal.h.orig 2019-12-06 10:10:30 UTC +++ source4/dns_server/dlz_minimal.h @@ -23,22 +23,23 @@ #ifndef DLZ_MINIMAL_H #define DLZ_MINIMAL_H 1 -#if defined (BIND_VERSION_9_8) -# define DLZ_DLOPEN_VERSION 1 -#elif defined (BIND_VERSION_9_9) -# define DLZ_DLOPEN_VERSION 2 -# define DNS_CLIENTINFO_VERSION 1 -#elif defined (BIND_VERSION_9_10) -# define DLZ_DLOPEN_VERSION 3 -# define DNS_CLIENTINFO_VERSION 1 -#elif defined (BIND_VERSION_9_11) -# define DLZ_DLOPEN_VERSION 3 -# define DNS_CLIENTINFO_VERSION 2 -#elif defined (BIND_VERSION_9_12) -# define DLZ_DLOPEN_VERSION 3 -# define DNS_CLIENTINFO_VERSION 2 +#if defined (BIND_VERSION) +# if BIND_VERSION == 908 +# define DLZ_DLOPEN_VERSION 1 +# elif BIND_VERSION == 909 +# define DLZ_DLOPEN_VERSION 2 +# define DNS_CLIENTINFO_VERSION 1 +# elif BIND_VERSION == 910 +# define DLZ_DLOPEN_VERSION 3 +# define DNS_CLIENTINFO_VERSION 1 +# elif BIND_VERSION >= 911 +# define DLZ_DLOPEN_VERSION 3 +# define DNS_CLIENTINFO_VERSION 2 +# else +# error Unsupported BIND version +# endif #else -# error Unsupported BIND version +# error BIND_VERSION undefined #endif #if DLZ_DLOPEN_VERSION > 1 --- source4/dns_server/wscript_build.orig 2019-12-06 10:11:08 UTC +++ source4/dns_server/wscript_build @@ -20,7 +20,7 @@ bld.SAMBA_MODULE('service_dns', # a bind9 dlz module giving access to the Samba DNS SAM bld.SAMBA_LIBRARY('dlz_bind9', source='dlz_bind9.c', - cflags='-DBIND_VERSION_9_8', + cflags='-DBIND_VERSION=908', private_library=True, link_name='modules/bind9/dlz_bind9.so', realname='dlz_bind9.so', @@ -28,49 +28,21 @@ bld.SAMBA_LIBRARY('dlz_bind9', deps='samba-hostconfig samdb-common gensec popt dnsserver_common', enabled=bld.AD_DC_BUILD_IS_ENABLED()) -bld.SAMBA_LIBRARY('dlz_bind9_9', -+for bind_version in (909, 910, 911, 912, 914, 916): ++for bind_version in (909, 910, 911, 912, 913, 914, 916): + string_version='%d_%d' % (bind_version//100, bind_version % 100) + bld.SAMBA_LIBRARY('dlz_bind%s' % (string_version), source='dlz_bind9.c', - cflags='-DBIND_VERSION_9_9', + cflags='-DBIND_VERSION=%d' % bind_version, private_library=True, - link_name='modules/bind9/dlz_bind9_9.so', - realname='dlz_bind9_9.so', + link_name='modules/bind9/dlz_bind%s.so' % (string_version), + realname='dlz_bind%s.so' % (string_version), install_path='${MODULESDIR}/bind9', deps='samba-hostconfig samdb-common gensec popt dnsserver_common', enabled=bld.AD_DC_BUILD_IS_ENABLED()) -bld.SAMBA_LIBRARY('dlz_bind9_10', - source='dlz_bind9.c', - cflags='-DBIND_VERSION_9_10', - private_library=True, - link_name='modules/bind9/dlz_bind9_10.so', - realname='dlz_bind9_10.so', - install_path='${MODULESDIR}/bind9', - deps='samba-hostconfig samdb-common gensec popt dnsserver_common', - enabled=bld.AD_DC_BUILD_IS_ENABLED()) - -bld.SAMBA_LIBRARY('dlz_bind9_11', - source='dlz_bind9.c', - cflags='-DBIND_VERSION_9_11', - private_library=True, - link_name='modules/bind9/dlz_bind9_11.so', - realname='dlz_bind9_11.so', - install_path='${MODULESDIR}/bind9', - deps='samba-hostconfig samdb-common gensec popt dnsserver_common', - enabled=bld.AD_DC_BUILD_IS_ENABLED()) - -bld.SAMBA_LIBRARY('dlz_bind9_12', - source='dlz_bind9.c', - cflags='-DBIND_VERSION_9_12', - private_library=True, - link_name='modules/bind9/dlz_bind9_12.so', - realname='dlz_bind9_12.so', - install_path='${MODULESDIR}/bind9', - deps='samba-hostconfig samdb-common gensec popt dnsserver_common', - enabled=bld.AD_DC_BUILD_IS_ENABLED()) - bld.SAMBA_LIBRARY('dlz_bind9_for_torture', source='dlz_bind9.c', - cflags='-DBIND_VERSION_9_8', + cflags='-DBIND_VERSION=908', private_library=True, deps='samba-hostconfig samdb-common gensec popt dnsserver_common', enabled=bld.AD_DC_BUILD_IS_ENABLED()) --- source4/setup/named.conf.dlz.orig 2019-12-06 10:10:31 UTC +++ source4/setup/named.conf.dlz @@ -7,22 +7,10 @@ # # This configures dynamically loadable zones (DLZ) from AD schema -# Uncomment only single database line, depending on your BIND version # dlz "AD DNS Zone" { - # For BIND 9.8.x - ${BIND9_8} database "dlopen ${MODULESDIR}/bind9/dlz_bind9.so"; - # For BIND 9.9.x - ${BIND9_9} database "dlopen ${MODULESDIR}/bind9/dlz_bind9_9.so"; +${BIND9_DLZ} - # For BIND 9.10.x - ${BIND9_10} database "dlopen ${MODULESDIR}/bind9/dlz_bind9_10.so"; - - # For BIND 9.11.x - ${BIND9_11} database "dlopen ${MODULESDIR}/bind9/dlz_bind9_11.so"; - - # For BIND 9.12.x - ${BIND9_12} database "dlopen ${MODULESDIR}/bind9/dlz_bind9_12.so"; }; --- source4/torture/dns/wscript_build.orig 2020-04-11 03:26:46 UTC +++ source4/torture/dns/wscript_build @@ -5,7 +5,7 @@ if bld.AD_DC_BUILD_IS_ENABLED(): source='dlz_bind9.c', subsystem='smbtorture', init_function='torture_bind_dns_init', - cflags='-DBIND_VERSION_9_8', + cflags='-DBIND_VERSION=908', deps='torture talloc torturemain dlz_bind9_for_torture', internal_module=True ) Index: head/net/samba411/files/patch-buildtools_wafsamba_samba__autoconf.py =================================================================== --- head/net/samba411/files/patch-buildtools_wafsamba_samba__autoconf.py (revision 532259) +++ head/net/samba411/files/patch-buildtools_wafsamba_samba__autoconf.py (revision 532260) @@ -1,51 +1,35 @@ ---- buildtools/wafsamba/samba_autoconf.py.orig 2019-01-15 10:07:00 UTC +--- buildtools/wafsamba/samba_autoconf.py.orig 2019-08-20 15:35:08 UTC +++ buildtools/wafsamba/samba_autoconf.py -@@ -575,7 +575,7 @@ def library_flags(self, libs): +@@ -573,7 +573,7 @@ def library_flags(self, libs): @conf -def CHECK_LIB(conf, libs, mandatory=False, empty_decl=True, set_target=True, shlib=False): +def CHECK_LIB(conf, libs, mandatory=False, empty_decl=True, set_target=True, shlib=False, msg=None): '''check if a set of libraries exist as system libraries returns the sublist of libs that do exist as a syslib or [] -@@ -595,11 +595,29 @@ int foo() +@@ -593,11 +593,14 @@ int foo() ret.append(lib) continue + if msg is None: + msg = 'Checking for library %s' % lib + (ccflags, ldflags, cpppath) = library_flags(conf, lib) -+ if shlib: - res = conf.check(features='c cshlib', fragment=fragment, lib=lib, uselib_store=lib, cflags=ccflags, ldflags=ldflags, uselib=lib.upper(), mandatory=False) -+ res = conf.check(features='c cshlib', -+ fragment=fragment, -+ lib=lib, -+ uselib_store=lib, -+ cflags=ccflags, -+ ldflags=ldflags, -+ uselib=lib.upper(), -+ mandatory=False, -+ msg=msg) ++ res = conf.check(features='c cshlib', fragment=fragment, lib=lib, uselib_store=lib, cflags=ccflags, ldflags=ldflags, uselib=lib.upper(), mandatory=False, msg=msg) else: - res = conf.check(lib=lib, uselib_store=lib, cflags=ccflags, ldflags=ldflags, uselib=lib.upper(), mandatory=False) -+ res = conf.check(lib=lib, -+ uselib_store=lib, -+ cflags=ccflags, -+ ldflags=ldflags, -+ uselib=lib.upper(), -+ mandatory=False, -+ msg=msg) ++ res = conf.check(lib=lib, uselib_store=lib, cflags=ccflags, ldflags=ldflags, uselib=lib.upper(), mandatory=False, msg=msg) if not res: if mandatory: -@@ -927,6 +945,6 @@ def SAMBA_CHECK_UNDEFINED_SYMBOL_FLAGS(c +@@ -949,5 +952,5 @@ def SAMBA_CHECK_UNDEFINED_SYMBOL_FLAGS(c conf.env.undefined_ldflags = conf.ADD_LDFLAGS('-Wl,-no-undefined', testflags=True) - if not sys.platform.startswith("openbsd") and conf.env.undefined_ignore_ldflags == []: -- if conf.CHECK_LDFLAGS(['-undefined', 'dynamic_lookup']): -+ if conf.CHECK_LDFLAGS(['-undefined', 'dynamic_lookup'] + conf.env.WERROR_CFLAGS): + if (conf.env.undefined_ignore_ldflags == [] and +- conf.CHECK_LDFLAGS(['-undefined', 'dynamic_lookup'])): ++ conf.CHECK_LDFLAGS(['-undefined', 'dynamic_lookup'] + conf.env.WERROR_CFLAGS)): conf.env.undefined_ignore_ldflags = ['-undefined', 'dynamic_lookup'] - Index: head/net/samba411/files/patch-buildtools_wafsamba_wafsamba.py =================================================================== --- head/net/samba411/files/patch-buildtools_wafsamba_wafsamba.py (revision 532259) +++ head/net/samba411/files/patch-buildtools_wafsamba_wafsamba.py (revision 532260) @@ -1,11 +1,11 @@ --- ./buildtools/wafsamba/wafsamba.py.orig 2015-07-21 09:47:48 UTC +++ ./buildtools/wafsamba/wafsamba.py -@@ -892,7 +892,7 @@ +@@ -919,7 +919,7 @@ def SAMBAMANPAGES(bld, manpages, extra_s bld.env.SAMBA_EXPAND_XSL = bld.srcnode.abspath() + '/docs-xml/xslt/expand-sambadoc.xsl' bld.env.SAMBA_MAN_XSL = bld.srcnode.abspath() + '/docs-xml/xslt/man.xsl' - bld.env.SAMBA_CATALOG = bld.srcnode.abspath() + '/bin/default/docs-xml/build/catalog.xml' + bld.env.SAMBA_CATALOG = bld.bldnode.abspath() + '/docs-xml/build/catalog.xml' - bld.env.SAMBA_CATALOGS = 'file:///etc/xml/catalog file:///usr/local/share/xml/catalog file://' + bld.env.SAMBA_CATALOG + bld.env.SAMBA_CATALOGS = 'file:///etc/xml/catalog file://%%LOCALBASE%%/share/xml/catalog file://' + bld.env.SAMBA_CATALOG for m in manpages.split(): source = m + '.xml' Index: head/net/samba411/files/patch-ctdb_wscript =================================================================== --- head/net/samba411/files/patch-ctdb_wscript (revision 532259) +++ head/net/samba411/files/patch-ctdb_wscript (revision 532260) @@ -1,61 +1,61 @@ --- ctdb/wscript.orig 2019-05-22 10:16:26 UTC +++ ctdb/wscript @@ -104,6 +104,9 @@ def options(opt): opt.add_option('--enable-ceph-reclock', help=("Enable Ceph CTDB recovery lock helper (default=no)"), action="store_true", dest='ctdb_ceph_reclock', default=False) + opt.add_option('--disable-ctdb-tests', + help=("Disable CTDB tests (default=no)"), + action="store_true", dest='ctdb_no_tests', default=False) opt.add_option('--with-logdir', help=("Path to log directory"), -@@ -260,7 +263,7 @@ def configure(conf): +@@ -263,7 +266,7 @@ def configure(conf): conf.env['LIBPATH_CEPH-COMMON'] = conf.env['LIBPATH_RADOS'] + '/ceph' if (conf.CHECK_HEADERS('rados/librados.h', False, False, 'rados') and - conf.CHECK_LIB('rados', shlib=True)): + conf.CHECK_LIB('rados', shlib=True)): conf.CHECK_LIB('ceph-common', shlib=True) Logs.info('Building with Ceph librados recovery lock support') conf.define('HAVE_LIBRADOS', 1) -@@ -300,8 +303,14 @@ def configure(conf): +@@ -303,8 +306,14 @@ def configure(conf): conf.env.CTDB_VARDIR, conf.env.CTDB_RUNDIR)) - conf.env.CTDB_TEST_DATADIR = os.path.join(conf.env.CTDB_DATADIR, 'tests') - conf.env.CTDB_TEST_LIBEXECDIR = os.path.join(conf.env.LIBEXECDIR, 'ctdb/tests') + if Options.options.ctdb_no_tests: + conf.env.ctdb_tests = False + else: + conf.env.ctdb_tests = True + + if conf.env.ctdb_tests: + conf.env.CTDB_TEST_DATADIR = os.path.join(conf.env.CTDB_DATADIR, 'tests') + conf.env.CTDB_TEST_LIBEXECDIR = os.path.join(conf.env.LIBEXECDIR, 'ctdb/tests') # Allow unified compilation and separate compilation of utilities # to find includes -@@ -679,9 +688,9 @@ def build(bld): - if bld.env.HAVE_LIBRADOS: +@@ -685,9 +694,9 @@ def build(bld): + rados_inc = bld.CONFIG_GET('CPPPATH_RADOS') + rados_inc bld.SAMBA_BINARY('ctdb_mutex_ceph_rados_helper', source='utils/ceph/ctdb_mutex_ceph_rados_helper.c', - deps='talloc tevent rados ceph-common', -- includes='include', +- includes=rados_inc, - install_path='${CTDB_HELPER_BINDIR}') + deps='talloc tevent rados ceph-common', -+ includes='include', ++ includes=rados_inc, + install_path='${CTDB_HELPER_BINDIR}') sed_expr1 = 's|/usr/local/var/lib/ctdb|%s|g' % (bld.env.CTDB_VARDIR) sed_expr2 = 's|/usr/local/etc/ctdb|%s|g' % (bld.env.CTDB_ETCDIR) -@@ -858,6 +867,9 @@ def build(bld): +@@ -864,6 +873,9 @@ def build(bld): for d in ['volatile', 'persistent', 'state']: bld.INSTALL_DIR(os.path.join(bld.env.CTDB_VARDIR, d)) + if not bld.env.ctdb_tests: + return + bld.SAMBA_BINARY('errcode', source='tests/src/errcode.c', deps='replace', Index: head/net/samba411/files/patch-lib_ldb_wscript =================================================================== --- head/net/samba411/files/patch-lib_ldb_wscript (revision 532259) +++ head/net/samba411/files/patch-lib_ldb_wscript (revision 532260) @@ -1,63 +1,61 @@ --- lib/ldb/wscript.orig 2019-07-08 12:47:51 UTC +++ lib/ldb/wscript -@@ -218,7 +218,7 @@ def build(bld): +@@ -207,7 +207,7 @@ def build(bld): if bld.env.standalone_ldb: if not 'PACKAGE_VERSION' in bld.env: bld.env.PACKAGE_VERSION = VERSION - bld.env.PKGCONFIGDIR = '${LIBDIR}/pkgconfig' + bld.env.PKGCONFIGDIR = '%%PKGCONFIGDIR%%' private_library = False else: private_library = True -@@ -298,7 +298,6 @@ def build(bld): +@@ -284,7 +284,6 @@ def build(bld): pc_files='ldb.pc', vnum=VERSION, private_library=private_library, - manpages='man/ldb.3', abi_directory='ABI', abi_match = abi_match) -@@ -451,7 +450,7 @@ def build(bld): +@@ -437,7 +436,7 @@ def build(bld): LDB_TOOLS='ldbadd ldbsearch ldbdel ldbmodify ldbedit ldbrename' for t in LDB_TOOLS.split(): - bld.SAMBA_BINARY(t, 'tools/%s.c' % t, deps='ldb-cmdline ldb', + bld.SAMBA_BINARY('samba-%s' % t, 'tools/%s.c' % t, deps='ldb-cmdline ldb', manpages='man/%s.1' % t) # ldbtest doesn't get installed -@@ -463,10 +462,10 @@ def build(bld): +@@ -449,10 +448,10 @@ def build(bld): else: lmdb_deps = '' # ldbdump doesn't get installed - bld.SAMBA_BINARY('ldbdump', + bld.SAMBA_BINARY('samba-ldbdump', 'tools/ldbdump.c', deps='ldb-cmdline ldb' + lmdb_deps, - install=False) + install=True) bld.SAMBA_LIBRARY('ldb-cmdline', source='tools/ldbutil.c tools/cmdline.c', -@@ -511,11 +510,6 @@ def build(bld): +@@ -497,11 +496,6 @@ def build(bld): deps='cmocka ldb', install=False) - bld.SAMBA_BINARY('ldb_match_test', - source='tests/ldb_match_test.c', - deps='cmocka ldb', - install=False) - - if bld.CONFIG_SET('HAVE_LMDB'): - bld.SAMBA_BINARY('ldb_mdb_mod_op_test', - source='tests/ldb_mod_op_test.c', -@@ -583,8 +577,7 @@ def test(ctx): - # we don't want to run ldb_lmdb_size_test (which proves we can - # fit > 4G of data into the DB), it would fill up the disk on - # many of our test instances -- 'ldb_mdb_kv_ops_test', -- 'ldb_match_test'] -+ 'ldb_mdb_kv_ops_test'] - - for test_exe in test_exes: - cmd = os.path.join(Context.g_module.out, test_exe) + bld.SAMBA_BINARY('ldb_key_value_test', + source='tests/ldb_key_value_test.c', + deps='cmocka ldb ldb_tdb_err_map', +@@ -609,7 +603,6 @@ def test(ctx): + 'ldb_msg_test', + 'ldb_tdb_kv_ops_test', + 'ldb_tdb_test', +- 'ldb_match_test', + 'ldb_key_value_test', + # we currently don't run ldb_key_value_sub_txn_tdb_test as it + # tests the nested/sub transaction handling Index: head/net/samba411/files/patch-source3_lib_sysquotas__4B.c =================================================================== --- head/net/samba411/files/patch-source3_lib_sysquotas__4B.c (revision 532259) +++ head/net/samba411/files/patch-source3_lib_sysquotas__4B.c (revision 532260) @@ -1,18 +1,18 @@ --- source3/lib/sysquotas_4B.c.orig 2019-01-15 10:07:00 UTC +++ source3/lib/sysquotas_4B.c -@@ -141,7 +141,14 @@ static int sys_quotactl_4B(const char * +@@ -140,7 +140,14 @@ static int sys_quotactl_4B(const char * /* ENOTSUP means quota support is not compiled in. EINVAL * means that quotas are not configured (commonly). */ - if (errno != ENOTSUP && errno != EINVAL) { + if (errno != ENOTSUP && errno != EINVAL +/* + * FreeBSD 12 between r336017 and r342928 wrongfuly return ENOENT for the not enabled qoutas on ZFS. + */ +#if defined(__FreeBSD__) && ((__FreeBSD_version >= 1102503 && __FreeBSD_version <= 1102506) || (__FreeBSD_version >= 1200072 && __FreeBSD_version <= 1200503) || (__FreeBSD_version >= 1300000 && __FreeBSD_version <= 1300009)) + && errno != ENOENT +#endif + ) { - DEBUG(0, ("failed to %s quota for %s ID %u on %s: %s\n", + DEBUG(5, ("failed to %s quota for %s ID %u on %s: %s\n", (cmd & QCMD(Q_GETQUOTA, 0)) ? "get" : "set", (cmd & QCMD(0, GRPQUOTA)) ? "group" : "user", Index: head/net/samba411/files/patch-source3_wscript =================================================================== --- head/net/samba411/files/patch-source3_wscript (revision 532259) +++ head/net/samba411/files/patch-source3_wscript (revision 532260) @@ -1,94 +1,94 @@ ---- source3/wscript.orig 2019-05-07 08:38:21 UTC +--- source3/wscript.orig 2019-07-09 10:08:41 UTC +++ source3/wscript @@ -50,6 +50,7 @@ def options(opt): - opt.SAMBA3_ADD_OPTION('sendfile-support', default=None) - opt.SAMBA3_ADD_OPTION('utmp') - opt.SAMBA3_ADD_OPTION('avahi', with_name="enable", without_name="disable") -+ opt.SAMBA3_ADD_OPTION('dnssd', with_name="enable", without_name="disable") - opt.SAMBA3_ADD_OPTION('iconv') - opt.SAMBA3_ADD_OPTION('acl-support') - opt.SAMBA3_ADD_OPTION('dnsupdate') -@@ -787,34 +788,39 @@ msg.msg_accrightslen = sizeof(fd); + opt.samba_add_onoff_option('sendfile-support', default=None) + opt.samba_add_onoff_option('utmp') + opt.samba_add_onoff_option('avahi', with_name="enable", without_name="disable") ++ opt.samba_add_onoff_option('dnssd', with_name="enable", without_name="disable") + opt.samba_add_onoff_option('iconv') + opt.samba_add_onoff_option('acl-support') + opt.samba_add_onoff_option('dnsupdate') +@@ -784,34 +785,39 @@ msg.msg_accrightslen = sizeof(fd); if Options.options.with_utmp: conf.env.with_utmp = True - if not conf.CHECK_HEADERS('utmp.h'): conf.env.with_utmp = False - conf.CHECK_FUNCS('pututline pututxline updwtmp updwtmpx getutmpx getutxent') - conf.CHECK_STRUCTURE_MEMBER('struct utmp', 'ut_name', headers='utmp.h', + if not conf.CHECK_HEADERS('utmpx.h') and not conf.CHECK_HEADERS('utmp.h'): + conf.env.with_utmp = False + if conf.CONFIG_SET('HAVE_UTMPX_H'): + conf.DEFINE('STRUCT_UTMP', 'struct utmpx') + elif conf.CONFIG_SET('HAVE_UTMP_H'): + conf.DEFINE('STRUCT_UTMP', 'struct utmp') + conf.CHECK_FUNCS('pututxline getutxid getutxline updwtmpx getutmpx setutxent endutxent') + conf.CHECK_FUNCS('pututline getutid getutline updwtmp getutmp setutent endutent') + conf.CHECK_STRUCTURE_MEMBER('STRUCT_UTMP', 'ut_name', headers='utmpx.h utmp.h', define='HAVE_UT_UT_NAME') - conf.CHECK_STRUCTURE_MEMBER('struct utmp', 'ut_user', headers='utmp.h', + + conf.CHECK_STRUCTURE_MEMBER('STRUCT_UTMP', 'ut_user', headers='utmpx.h utmp.h', define='HAVE_UT_UT_USER') - conf.CHECK_STRUCTURE_MEMBER('struct utmp', 'ut_id', headers='utmp.h', + conf.CHECK_STRUCTURE_MEMBER('STRUCT_UTMP', 'ut_id', headers='utmpx.h utmp.h', define='HAVE_UT_UT_ID') - conf.CHECK_STRUCTURE_MEMBER('struct utmp', 'ut_host', headers='utmp.h', + conf.CHECK_STRUCTURE_MEMBER('STRUCT_UTMP', 'ut_host', headers='utmpx.h utmp.h', define='HAVE_UT_UT_HOST') - conf.CHECK_STRUCTURE_MEMBER('struct utmp', 'ut_time', headers='utmp.h', + conf.CHECK_STRUCTURE_MEMBER('STRUCT_UTMP', 'ut_time', headers='utmpx.h utmp.h', define='HAVE_UT_UT_TIME') - conf.CHECK_STRUCTURE_MEMBER('struct utmp', 'ut_tv', headers='utmp.h', + conf.CHECK_STRUCTURE_MEMBER('STRUCT_UTMP', 'ut_tv', headers='utmpx.h utmp.h', define='HAVE_UT_UT_TV') - conf.CHECK_STRUCTURE_MEMBER('struct utmp', 'ut_type', headers='utmp.h', + conf.CHECK_STRUCTURE_MEMBER('STRUCT_UTMP', 'ut_type', headers='utmpx.h utmp.h', define='HAVE_UT_UT_TYPE') - conf.CHECK_STRUCTURE_MEMBER('struct utmp', 'ut_pid', headers='utmp.h', + conf.CHECK_STRUCTURE_MEMBER('STRUCT_UTMP', 'ut_pid', headers='utmpx.h utmp.h', define='HAVE_UT_UT_PID') - conf.CHECK_STRUCTURE_MEMBER('struct utmp', 'ut_exit.e_exit', headers='utmp.h', + conf.CHECK_STRUCTURE_MEMBER('STRUCT_UTMP', 'ut_exit.e_exit', headers='utmpx.h utmp.h', define='HAVE_UT_UT_EXIT') - conf.CHECK_STRUCTURE_MEMBER('struct utmpx', 'ut_syslen', headers='utmpx.h', - define='HAVE_UX_UT_SYSLEN') - conf.CHECK_STRUCTURE_MEMBER('struct utmpx', 'ut_host', headers='utmpx.h', - define='HAVE_UX_UT_HOST') + conf.CHECK_STRUCTURE_MEMBER('STRUCT_UTMP', 'ut_syslen', headers='utmpx.h utmp.h', + define='HAVE_UT_UT_SYSLEN') conf.CHECK_CODE('struct utmp utarg; struct utmp *utreturn; utreturn = pututline(&utarg);', 'PUTUTLINE_RETURNS_UTMP', headers='utmp.h', msg="Checking whether pututline returns pointer") - conf.CHECK_SIZEOF(['((struct utmp *)NULL)->ut_line'], headers='utmp.h', + conf.CHECK_SIZEOF(['((STRUCT_UTMP *)NULL)->ut_line'], headers='utmpx.h utmp.h', define='SIZEOF_UTMP_UT_LINE', critical=False) if not conf.CONFIG_SET('SIZEOF_UTMP_UT_LINE'): conf.env.with_utmp = False -@@ -836,6 +842,17 @@ msg.msg_accrightslen = sizeof(fd); +@@ -833,6 +839,17 @@ msg.msg_accrightslen = sizeof(fd); conf.SET_TARGET_TYPE('avahi-common', 'EMPTY') conf.SET_TARGET_TYPE('avahi-client', 'EMPTY') + if Options.options.with_dnssd: + conf.env.with_dnssd = True + if not conf.CHECK_HEADERS('dns_sd.h'): + conf.env.with_dnssd = False + if not conf.CHECK_FUNCS_IN('DNSServiceRegister', 'dns_sd'): + conf.env.with_dnssd = False + if conf.env.with_dnssd: + conf.DEFINE('WITH_DNSSD_SUPPORT', 1) + else: + conf.SET_TARGET_TYPE('dns_sd', 'EMPTY') + if Options.options.with_iconv: conf.env.with_iconv = True if not conf.CHECK_FUNCS_IN('iconv_open', 'iconv', headers='iconv.h'): -@@ -1730,9 +1747,6 @@ main() { +@@ -1778,9 +1795,6 @@ main() { if conf.CONFIG_SET('HAVE_VXFS'): default_shared_modules.extend(TO_LIST('vfs_vxfs')) - if conf.CONFIG_SET('HAVE_DBUS'): - default_shared_modules.extend(TO_LIST('vfs_snapper')) - explicit_shared_modules = TO_LIST(Options.options.shared_modules, delimiter=',') explicit_static_modules = TO_LIST(Options.options.static_modules, delimiter=',') Index: head/net/samba411/files/patch-source4_dsdb_samdb_ldb__modules_count_attrs.c =================================================================== --- head/net/samba411/files/patch-source4_dsdb_samdb_ldb__modules_count_attrs.c (nonexistent) +++ head/net/samba411/files/patch-source4_dsdb_samdb_ldb__modules_count_attrs.c (revision 532260) @@ -0,0 +1,20 @@ +--- source4/dsdb/samdb/ldb_modules/count_attrs.c.orig 2019-09-20 00:03:10 UTC ++++ source4/dsdb/samdb/ldb_modules/count_attrs.c +@@ -222,7 +222,7 @@ static const char **get_sorted_attrs(TAL + attrs[i] = a; + } + +- qsort(attrs, n_attrs, sizeof(char *), (__compar_fn_t)strcasecmp_ptr); ++ qsort(attrs, n_attrs, sizeof(char *), QSORT_CAST(strcasecmp_ptr)); + return attrs; + } + +@@ -313,7 +313,7 @@ static int count_attrs_search_callback(s + } + + qsort(found_attrs, msg->num_elements, sizeof(char *), +- (__compar_fn_t)strcasecmp_ptr); ++ QSORT_CAST(strcasecmp_ptr)); + + + /* find and report duplicates */ Property changes on: head/net/samba411/files/patch-source4_dsdb_samdb_ldb__modules_count_attrs.c ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/net/samba411/files/patch-vfs_freebsd =================================================================== --- head/net/samba411/files/patch-vfs_freebsd (revision 532259) +++ head/net/samba411/files/patch-vfs_freebsd (revision 532260) @@ -1,1002 +1,1000 @@ --- docs-xml/wscript_build.orig 2019-06-25 00:52:38 UTC +++ docs-xml/wscript_build @@ -79,6 +79,7 @@ vfs_module_manpages = ['vfs_acl_tdb', 'vfs_extd_audit', 'vfs_fake_perms', 'vfs_fileid', + 'vfs_freebsd', 'vfs_fruit', 'vfs_full_audit', 'vfs_glusterfs', --- source3/modules/wscript_build.orig 2019-05-07 08:38:21 UTC +++ source3/modules/wscript_build -@@ -243,6 +243,14 @@ bld.SAMBA3_MODULE('vfs_zfsacl', - internal_module=bld.SAMBA3_IS_STATIC_MODULE('vfs_zfsacl'), - enabled=bld.SAMBA3_IS_ENABLED_MODULE('vfs_zfsacl')) - +@@ -613,3 +613,11 @@ bld.SAMBA3_MODULE('vfs_delay_inject', + init_function='', + internal_module=bld.SAMBA3_IS_STATIC_MODULE('vfs_delay_inject'), + enabled=bld.SAMBA3_IS_ENABLED_MODULE('vfs_delay_inject')) ++ +bld.SAMBA3_MODULE('vfs_freebsd', + subsystem='vfs', + source='vfs_freebsd.c', + deps='samba-util', + init_function='', + internal_module=bld.SAMBA3_IS_STATIC_MODULE('vfs_freebsd'), + enabled=bld.SAMBA3_IS_ENABLED_MODULE('vfs_freebsd')) -+ - xdr_buf_hack = 'sed -e "s@^\([ \t]*register int32_t \*buf\);@\\1 = buf;@"' - bld.SAMBA_GENERATOR('nfs41acl-xdr-c', --- source3/modules/vfs_freebsd.c.orig 2019-06-22 11:56:57 UTC +++ source3/modules/vfs_freebsd.c @@ -0,0 +1,800 @@ +/* + * This module implements VFS calls specific to FreeBSD + * + * Copyright (C) Timur I. Bakeyev, 2018 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + */ + +#include "includes.h" + +#include "lib/util/tevent_unix.h" +#include "lib/util/tevent_ntstatus.h" +#include "system/filesys.h" + +#include + +static int vfs_freebsd_debug_level = DBGC_VFS; + +#undef DBGC_CLASS +#define DBGC_CLASS vfs_freebsd_debug_level + +#ifndef EXTATTR_MAXNAMELEN +#define EXTATTR_MAXNAMELEN UINT8_MAX +#endif + +#define EXTATTR_NAMESPACE(NS) EXTATTR_NAMESPACE_ ## NS, \ + EXTATTR_NAMESPACE_ ## NS ## _STRING ".", \ + .data.len = (sizeof(EXTATTR_NAMESPACE_ ## NS ## _STRING ".") - 1) + +#define EXTATTR_EMPTY 0x00 +#define EXTATTR_USER 0x01 +#define EXTATTR_SYSTEM 0x02 +#define EXTATTR_SECURITY 0x03 +#define EXTATTR_TRUSTED 0x04 + +enum extattr_mode { + FREEBSD_EXTATTR_SECURE, + FREEBSD_EXTATTR_COMPAT, + FREEBSD_EXTATTR_LEGACY +}; + +typedef struct { + int namespace; + char name[EXTATTR_MAXNAMELEN+1]; + union { + uint16_t len; + uint16_t flags; + } data; +} extattr_attr; + +typedef struct { + enum { + EXTATTR_FILE, EXTATTR_LINK, EXTATTR_FDES + } method; + union { + const char *path; + int filedes; + } param; +} extattr_arg; + +static const struct enum_list extattr_mode_param[] = { + { FREEBSD_EXTATTR_SECURE, "secure" }, /* */ + { FREEBSD_EXTATTR_COMPAT, "compat" }, /* */ + { FREEBSD_EXTATTR_LEGACY, "legacy" }, /* */ + { -1, NULL } +}; + + +/* */ +struct freebsd_handle_data { + enum extattr_mode extattr_mode; +}; + + +/* XXX: This order doesn't match namespace ids order! */ +static extattr_attr extattr[] = { + { EXTATTR_NAMESPACE(EMPTY) }, + { EXTATTR_NAMESPACE(SYSTEM) }, + { EXTATTR_NAMESPACE(USER) }, +}; + + +static bool freebsd_in_jail(void) { + int val = 0; + size_t val_len = sizeof(val); + + if((sysctlbyname("security.jail.jailed", &val, &val_len, NULL, 0) != -1) && val == 1) { + return true; + } + return false; +} + +static uint16_t freebsd_map_attrname(const char *name) +{ + if(name == NULL || name[0] == '\0') { + return EXTATTR_EMPTY; + } + + switch(name[0]) { + case 'u': + if(strncmp(name, "user.", 5) == 0) + return EXTATTR_USER; + break; + case 't': + if(strncmp(name, "trusted.", 8) == 0) + return EXTATTR_TRUSTED; + break; + case 's': + /* name[1] could be any character, including '\0' */ + switch(name[1]) { + case 'e': + if(strncmp(name, "security.", 9) == 0) + return EXTATTR_SECURITY; + break; + case 'y': + if(strncmp(name, "system.", 7) == 0) + return EXTATTR_SYSTEM; + break; + } + break; + } + return EXTATTR_USER; +} + +/* security, system, trusted or user */ +static extattr_attr* freebsd_map_xattr(enum extattr_mode extattr_mode, const char *name, extattr_attr *attr) +{ + int attrnamespace = EXTATTR_NAMESPACE_EMPTY; + const char *p, *attrname = name; + + if(name == NULL || name[0] == '\0') { + return NULL; + } + + if(attr == NULL) { + return NULL; + } + + uint16_t flags = freebsd_map_attrname(name); + + switch(flags) { + case EXTATTR_SECURITY: + case EXTATTR_TRUSTED: + case EXTATTR_SYSTEM: + attrnamespace = (extattr_mode == FREEBSD_EXTATTR_SECURE) ? + EXTATTR_NAMESPACE_SYSTEM : + EXTATTR_NAMESPACE_USER; + break; + case EXTATTR_USER: + attrnamespace = EXTATTR_NAMESPACE_USER; + break; + default: + /* Default to "user" namespace if nothing else was specified */ + attrnamespace = EXTATTR_NAMESPACE_USER; + flags = EXTATTR_USER; + break; + } + + if (extattr_mode == FREEBSD_EXTATTR_LEGACY) { + switch(flags) { + case EXTATTR_SECURITY: + attrname = name + 9; + break; + case EXTATTR_TRUSTED: + attrname = name + 8; + break; + case EXTATTR_SYSTEM: + attrname = name + 7; + break; + case EXTATTR_USER: + attrname = name + 5; + break; + default: + attrname = ((p=strchr(name, '.')) != NULL) ? p + 1 : name; + break; + } + } + + attr->namespace = attrnamespace; + attr->data.flags = flags; + strlcpy(attr->name, attrname, EXTATTR_MAXNAMELEN + 1); + + return attr; +} + +static ssize_t extattr_size(extattr_arg arg, extattr_attr *attr) +{ + ssize_t result; + + switch(arg.method) { +#if defined(HAVE_XATTR_EXTATTR) + case EXTATTR_FILE: + result = extattr_get_file(arg.param.path, attr->namespace, attr->name, NULL, 0); + break; + case EXTATTR_LINK: + result = extattr_get_link(arg.param.path, attr->namespace, attr->name, NULL, 0); + break; + case EXTATTR_FDES: + result = extattr_get_fd(arg.param.filedes, attr->namespace, attr->name, NULL, 0); + break; +#endif + default: + errno = ENOSYS; + return -1; + } + + if(result < 0) { + errno = EINVAL; + return -1; + } + + return result; +} + + +/* + * The list of names is returned as an unordered array of NULL-terminated + * character strings (attribute names are separated by NULL characters), + * like this: + * user.name1\0system.name1\0user.name2\0 + * + * Filesystems like ext2, ext3 and XFS which implement POSIX ACLs using + * extended attributes, might return a list like this: + * system.posix_acl_access\0system.posix_acl_default\0 + */ +/* + * The extattr_list_file() returns a list of attributes present in the + * requested namespace. Each list entry consists of a single byte containing + * the length of the attribute name, followed by the attribute name. The + * attribute name is not terminated by ASCII 0 (nul). +*/ + +static ssize_t freebsd_extattr_list(extattr_arg arg, enum extattr_mode extattr_mode, char *list, size_t size) +{ + ssize_t list_size, total_size = 0; + char *p, *q, *list_end; + int len; + /* + Ignore all but user namespace when we are not root or in jail + See: https://bugzilla.samba.org/show_bug.cgi?id=10247 + */ + bool as_root = (geteuid() == 0); + + int ns = (extattr_mode == FREEBSD_EXTATTR_SECURE && as_root) ? 1 : 2; + + /* Iterate through extattr(2) namespaces */ + for(; ns < ARRAY_SIZE(extattr); ns++) { + switch(arg.method) { +#if defined(HAVE_XATTR_EXTATTR) + case EXTATTR_FILE: + list_size = extattr_list_file(arg.param.path, extattr[ns].namespace, list, size); + break; + case EXTATTR_LINK: + list_size = extattr_list_link(arg.param.path, extattr[ns].namespace, list, size); + break; + case EXTATTR_FDES: + list_size = extattr_list_fd(arg.param.filedes, extattr[ns].namespace, list, size); + break; +#endif + default: + errno = ENOSYS; + return -1; + } + /* Some error happend. Errno should be set by the previous call */ + if(list_size < 0) + return -1; + /* No attributes in this namespace */ + if(list_size == 0) + continue; + /* + Call with an empty buffer may be used to calculate + necessary buffer size. + */ + if(list == NULL) { + /* + XXX: Unfortunately, we can't say, how many attributes were + returned, so here is the potential problem with the emulation. + */ + if(extattr_mode == FREEBSD_EXTATTR_LEGACY) { + /* + Take the worse case of one char attribute names - + two bytes per name plus one more for sanity. + */ + total_size += list_size + (list_size/2 + 1)*extattr[ns].data.len; + } + else { + total_size += list_size; + } + continue; + } + + if(extattr_mode == FREEBSD_EXTATTR_LEGACY) { + /* Count necessary offset to fit namespace prefixes */ + int extra_len = 0; + uint16_t flags; + list_end = list + list_size; + for(list_size = 0, p = q = list; p < list_end; p += len) { + len = p[0] + 1; + (void)strlcpy(q, p + 1, len); + flags = freebsd_map_attrname(q); + /* Skip secure attributes for non-root user */ + if(extattr_mode != FREEBSD_EXTATTR_SECURE && !as_root && flags > EXTATTR_USER) { + continue; + } + if(flags <= EXTATTR_USER) { + /* Don't count trailing '\0' */ + extra_len += extattr[ns].data.len; + } + list_size += len; + q += len; + } + total_size += list_size + extra_len; + /* Buffer is too small to fit the results */ + if(total_size > size) { + errno = ERANGE; + return -1; + } + /* Shift results backwards, so we can prepend prefixes */ + list_end = list + extra_len; + p = (char*)memmove(list_end, list, list_size); + /* + We enter the loop with `p` pointing to the shifted list and + `extra_len` having the total margin between `list` and `p` + */ + for(list_end += list_size; p < list_end; p += len) { + len = strlen(p) + 1; + flags = freebsd_map_attrname(p); + if(flags <= EXTATTR_USER) { + /* Add namespace prefix */ + (void)strncpy(list, extattr[ns].name, extattr[ns].data.len); + list += extattr[ns].data.len; + } + /* Append attribute name */ + (void)strlcpy(list, p, len); + list += len; + } + } + else { + /* Convert UCSD strings into nul-terminated strings */ + for(list_end = list + list_size; list < list_end; list += len) { + len = list[0] + 1; + (void)strlcpy(list, list + 1, len); + } + total_size += list_size; + } + } + return total_size; +} + +/* +static ssize_t freebsd_getxattr_size(vfs_handle_struct *handle, + const struct smb_filename *smb_fname, + const char *name) +{ + struct freebsd_handle_data *data; + extattr_arg arg = { EXTATTR_FILE, smb_fname->base_name }; + extattr_attr attr; + + + SMB_VFS_HANDLE_GET_DATA(handle, data, + struct freebsd_handle_data, + return -1); + + if(!freebsd_map_xattr(data->extattr_mode, name, &attr)) { + errno = EINVAL; + return -1; + } + + if(data->extattr_mode != FREEBSD_EXTATTR_SECURE && geteuid() != 0 && attr.data.flags > EXTATTR_USER) { + errno = ENOATTR; + return -1; + } + + return extattr_size(arg, &attr); +} +*/ + +/* VFS entries */ +static ssize_t freebsd_getxattr(vfs_handle_struct *handle, + const struct smb_filename *smb_fname, + const char *name, + void *value, + size_t size) +{ +#if defined(HAVE_XATTR_EXTATTR) + struct freebsd_handle_data *data; + extattr_arg arg = { EXTATTR_FILE, .param.path = smb_fname->base_name }; + extattr_attr attr; + ssize_t res; + + SMB_VFS_HANDLE_GET_DATA(handle, data, + struct freebsd_handle_data, + return -1); + + if(!freebsd_map_xattr(data->extattr_mode, name, &attr)) { + errno = EINVAL; + return -1; + } + + /* Filter out 'secure' entries */ + if(data->extattr_mode != FREEBSD_EXTATTR_SECURE && geteuid() != 0 && attr.data.flags > EXTATTR_USER) { + errno = ENOATTR; + return -1; + } + + /* + * The BSD implementation has a nasty habit of silently truncating + * the returned value to the size of the buffer, so we have to check + * that the buffer is large enough to fit the returned value. + */ + if((res=extattr_size(arg, &attr)) < 0) { + return -1; + } + + if (size == 0) { + return res; + } + else if (res > size) { + errno = ERANGE; + return -1; + } + + if((res=extattr_get_file(smb_fname->base_name, attr.namespace, attr.name, value, size)) >= 0) { + return res; + } + return -1; +#else + errno = ENOSYS; + return -1; +#endif +} + + +static ssize_t freebsd_fgetxattr(vfs_handle_struct *handle, + struct files_struct *fsp, const char *name, + void *value, size_t size) +{ +#if defined(HAVE_XATTR_EXTATTR) + struct freebsd_handle_data *data; + extattr_arg arg = { EXTATTR_FDES, .param.filedes = fsp->fh->fd }; + extattr_attr attr; + ssize_t res; + + SMB_VFS_HANDLE_GET_DATA(handle, data, + struct freebsd_handle_data, + return -1); + + if(!freebsd_map_xattr(data->extattr_mode, name, &attr)) { + errno = EINVAL; + return -1; + } + + /* Filter out 'secure' entries */ + if(data->extattr_mode != FREEBSD_EXTATTR_SECURE && geteuid() != 0 && attr.data.flags > EXTATTR_USER) { + errno = ENOATTR; + return -1; + } + + /* + * The BSD implementation has a nasty habit of silently truncating + * the returned value to the size of the buffer, so we have to check + * that the buffer is large enough to fit the returned value. + */ + if((res=extattr_size(arg, &attr)) < 0) { + return -1; + } + + if (size == 0) { + return res; + } + else if (res > size) { + errno = ERANGE; + return -1; + } + + if((res=extattr_get_fd(fsp->fh->fd, attr.namespace, attr.name, value, size)) >= 0) { + return res; + } + return -1; +#else + errno = ENOSYS; + return -1; +#endif +} + + +static ssize_t freebsd_listxattr(vfs_handle_struct *handle, + const struct smb_filename *smb_fname, + char *list, + size_t size) +{ +#if defined(HAVE_XATTR_EXTATTR) + struct freebsd_handle_data *data; + + SMB_VFS_HANDLE_GET_DATA(handle, data, + struct freebsd_handle_data, + return -1); + + extattr_arg arg = { EXTATTR_FILE, .param.path = smb_fname->base_name }; + + return freebsd_extattr_list(arg, data->extattr_mode, list, size); +#else + errno = ENOSYS; + return -1; +#endif +} + + +static ssize_t freebsd_flistxattr(vfs_handle_struct *handle, + struct files_struct *fsp, char *list, + size_t size) +{ +#if defined(HAVE_XATTR_EXTATTR) + struct freebsd_handle_data *data; + extattr_arg arg = { EXTATTR_FDES, .param.filedes = fsp->fh->fd }; + + SMB_VFS_HANDLE_GET_DATA(handle, data, + struct freebsd_handle_data, + return -1); + + return freebsd_extattr_list(arg, data->extattr_mode, list, size); +#else + errno = ENOSYS; + return -1; +#endif +} + +static int freebsd_removexattr(vfs_handle_struct *handle, + const struct smb_filename *smb_fname, + const char *name) +{ +#if defined(HAVE_XATTR_EXTATTR) + struct freebsd_handle_data *data; + extattr_attr attr; + + SMB_VFS_HANDLE_GET_DATA(handle, data, + struct freebsd_handle_data, + return -1); + + + /* Filter out 'secure' entries */ + if(data->extattr_mode != FREEBSD_EXTATTR_SECURE && geteuid() != 0 && attr.data.flags > EXTATTR_USER) { + errno = ENOATTR; + return -1; + } + + return extattr_delete_file(smb_fname->base_name, attr.namespace, attr.name); +#else + errno = ENOSYS; + return -1; +#endif +} + + +static int freebsd_fremovexattr(vfs_handle_struct *handle, + struct files_struct *fsp, const char *name) +{ +#if defined(HAVE_XATTR_EXTATTR) + struct freebsd_handle_data *data; + extattr_attr attr; + + SMB_VFS_HANDLE_GET_DATA(handle, data, + struct freebsd_handle_data, + return -1); + + if(!freebsd_map_xattr(data->extattr_mode, name, &attr)) { + errno = EINVAL; + return -1; + } + + /* Filter out 'secure' entries */ + if(data->extattr_mode != FREEBSD_EXTATTR_SECURE && geteuid() != 0 && attr.data.flags > EXTATTR_USER) { + errno = ENOATTR; + return -1; + } + + return extattr_delete_fd(fsp->fh->fd, attr.namespace, attr.name); +#else + errno = ENOSYS; + return -1; +#endif +} + + +static int freebsd_setxattr(vfs_handle_struct *handle, + const struct smb_filename *smb_fname, + const char *name, + const void *value, + size_t size, + int flags) +{ +#if defined(HAVE_XATTR_EXTATTR) + struct freebsd_handle_data *data; + extattr_attr attr; + ssize_t res; + + SMB_VFS_HANDLE_GET_DATA(handle, data, + struct freebsd_handle_data, + return -1); + + if(!freebsd_map_xattr(data->extattr_mode, name, &attr)) { + errno = EINVAL; + return -1; + } + + /* Filter out 'secure' entries */ + if(data->extattr_mode != FREEBSD_EXTATTR_SECURE && geteuid() != 0 && attr.data.flags > EXTATTR_USER) { + errno = ENOATTR; + return -1; + } + + if (flags) { + extattr_arg arg = { EXTATTR_FILE, .param.path = smb_fname->base_name }; + /* Check attribute existence */ + res = extattr_size(arg, &attr); + if (res < 0) { + /* REPLACE attribute, that doesn't exist */ + if ((flags & XATTR_REPLACE) && errno == ENOATTR) { + errno = ENOATTR; + return -1; + } + /* Ignore other errors */ + } + else { + /* CREATE attribute, that already exists */ + if (flags & XATTR_CREATE) { + errno = EEXIST; + return -1; + } + } + } + res = extattr_set_file(smb_fname->base_name, attr.namespace, attr.name, value, size); + + return (res >= 0) ? 0 : -1; +#else + errno = ENOSYS; + return -1; +#endif +} + + +static int freebsd_fsetxattr(vfs_handle_struct *handle, struct files_struct *fsp, + const char *name, const void *value, size_t size, + int flags) +{ +#if defined(HAVE_XATTR_EXTATTR) + struct freebsd_handle_data *data; + extattr_attr attr; + ssize_t res; + + SMB_VFS_HANDLE_GET_DATA(handle, data, + struct freebsd_handle_data, + return -1); + + if(!freebsd_map_xattr(data->extattr_mode, name, &attr)) { + errno = EINVAL; + return -1; + } + + /* Filter out 'secure' entries */ + if(data->extattr_mode != FREEBSD_EXTATTR_SECURE && geteuid() != 0 && attr.data.flags > EXTATTR_USER) { + errno = ENOATTR; + return -1; + } + + if (flags) { + extattr_arg arg = { EXTATTR_FDES, .param.filedes = fsp->fh->fd }; + /* Check attribute existence */ + res = extattr_size(arg, &attr); + if (res < 0) { + /* REPLACE attribute, that doesn't exist */ + if ((flags & XATTR_REPLACE) && errno == ENOATTR) { + errno = ENOATTR; + return -1; + } + /* Ignore other errors */ + } + else { + /* CREATE attribute, that already exists */ + if (flags & XATTR_CREATE) { + errno = EEXIST; + return -1; + } + } + } + + res = extattr_set_fd(fsp->fh->fd, attr.namespace, attr.name, value, size); + + return (res >= 0) ? 0 : -1; +#else + errno = ENOSYS; + return -1; +#endif +} + +static int freebsd_connect(vfs_handle_struct *handle, const char *service, + const char *user) +{ + struct freebsd_handle_data *data; + int enumval, saved_errno; + + int ret = SMB_VFS_NEXT_CONNECT(handle, service, user); + + if (ret < 0) { + return ret; + } + + data = talloc_zero(handle->conn, struct freebsd_handle_data); + if (!data) { + saved_errno = errno; + SMB_VFS_NEXT_DISCONNECT(handle); + DEBUG(0, ("talloc_zero() failed\n")); + errno = saved_errno; + return -1; + } + + enumval = lp_parm_enum(SNUM(handle->conn), "freebsd", + "extattr mode", extattr_mode_param, FREEBSD_EXTATTR_LEGACY); + if (enumval == -1) { + saved_errno = errno; + SMB_VFS_NEXT_DISCONNECT(handle); + DBG_DEBUG("value for freebsd: 'extattr mode' is unknown\n"); + errno = saved_errno; + return -1; + } + + if(freebsd_in_jail()) { + enumval = FREEBSD_EXTATTR_COMPAT; + DBG_WARNING("running in jail, enforcing 'compat' mode\n"); + } + + data->extattr_mode = (enum extattr_mode)enumval; + + SMB_VFS_HANDLE_SET_DATA(handle, data, NULL, + struct freebsd_handle_data, + return -1); + + DBG_DEBUG("connect to service[%s] with '%s' extattr mode\n", + service, extattr_mode_param[data->extattr_mode].name); + + return 0; +} + +static void freebsd_disconnect(vfs_handle_struct *handle) +{ + SMB_VFS_NEXT_DISCONNECT(handle); +} + +/* VFS operations structure */ + +struct vfs_fn_pointers freebsd_fns = { + /* Disk operations */ + + .connect_fn = freebsd_connect, + .disconnect_fn = freebsd_disconnect, + + /* EA operations. */ + .getxattr_fn = freebsd_getxattr, + .fgetxattr_fn = freebsd_fgetxattr, + .listxattr_fn = freebsd_listxattr, + .flistxattr_fn = freebsd_flistxattr, + .removexattr_fn = freebsd_removexattr, + .fremovexattr_fn = freebsd_fremovexattr, + .setxattr_fn = freebsd_setxattr, + .fsetxattr_fn = freebsd_fsetxattr, +}; + +static_decl_vfs; +NTSTATUS vfs_freebsd_init(TALLOC_CTX *ctx) +{ + NTSTATUS ret; + + ret = smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "freebsd", + &freebsd_fns); + + if (!NT_STATUS_IS_OK(ret)) { + return ret; + } + + vfs_freebsd_debug_level = debug_add_class("freebsd"); + if (vfs_freebsd_debug_level == -1) { + vfs_freebsd_debug_level = DBGC_VFS; + DEBUG(0, ("vfs_freebsd: Couldn't register custom debugging class!\n")); + } else { + DEBUG(10, ("vfs_freebsd: Debug class number of 'fileid': %d\n", vfs_freebsd_debug_level)); + } + + return ret; +} --- docs-xml/manpages/vfs_freebsd.8.xml.orig 2019-06-25 00:51:54 UTC +++ docs-xml/manpages/vfs_freebsd.8.xml @@ -0,0 +1,169 @@ + + + + + + vfs_freebsd + 8 + Samba + System Administration tools + &doc.version; + + + + vfs_freebsd + FreeBSD-specific VFS functions + + + + + vfs objects = freebsd + + + + + DESCRIPTION + + This VFS module is part of the samba + 7 suite. + + The vfs_freebsd module implements some of the FreeBSD-specific VFS functions. + + This module is stackable. + + + + + OPTIONS + + + + + freebsd:extattr mode=[legacy|compat|secure] + + This parameter defines how the emulation of the Linux attr(5) extended attributes + is performed through the FreeBSD native extattr(9) system calls. + + Currently the security, system, + trusted and user extended attribute(xattr) + classes are defined in Linux. Contrary FreeBSD has only USER + and SYSTEM extended attribute(extattr) namespaces, so mapping + of one set into another isn't straightforward and can be done in different ways. + + Historically the Samba(7) built-in xattr mapping implementation simply converted + system and user xattr into corresponding + SYSTEM and USER extattr namespaces, dropping + the class prefix name with the separating dot and using attribute name only within the + mapped namespace. It also rejected any other xattr classes, like security + and trusted as invalid. Such behavior in particular broke AD + provisioning on UFS2 file systems as essential security.NTACL + xattr was rejected as invalid. + + This module tries to address this problem and provide secure, where it's possible, + way to map Linux xattr into FreeBSD's extattr. + + When mode is set to the legacy (default) + then modified version of built-in mapping is used, where system xattr + is mapped into SYSTEM namespace, while secure, trusted + and user xattr are all mapped into the USER namespace, dropping class + prefixes and mix them all together. This is the way how Samba FreeBSD ports were patched + up to the 4.9 version and that created multiple potential security issues. This mode is aimed for + the compatibility with the legacy installations only and should be avoided in new setups. + + The compat mode is mostly designed for the jailed environments, + where it's not possible to write extattrs into the secure SYSTEM namespace, so all four + classes are mapped into the USER namespace. To preserve information about origin of the + extended attribute it is stored together with the class preffix in the class.attribute + format. + + The secure mode is meant for storing extended attributes in a secure + manner, so that security, system and trusted + are stored in the SYSTEM namespace, which can be modified only by root. + + + + + + + + + + + Attributes mapping + + + + + built-in + legacy + compat/jail + secure + + + + + user + USER; attribute + USER; attribute + USER; user.attribute + USER; user.attribute + + + system + SYSTEM; attribute + SYSTEM; attribute + USER; system.attribute + SYSTEM; system.attribute + + + trusted + FAIL + USER; attribute + USER; trusted.attribute + SYSTEM; trusted.attribute + + + security + FAIL + USER; attribute + USER; security.attribute + SYSTEM; security.attribute + + + +
+
+ + + EXAMPLES + + Use secure method of setting extended attributes on the share: + + + + freebsd + secure + + + + + + VERSION + + This man page is part of version &doc.version; of the Samba suite. + + + + + AUTHOR + + The original Samba software and related utilities + were created by Andrew Tridgell. Samba is now developed + by the Samba Team as an Open Source project similar + to the way the Linux kernel is developed. + + This module was written by Timur I. Bakeyev + + + +
Index: head/net/samba411/pkg-plist =================================================================== --- head/net/samba411/pkg-plist (revision 532259) +++ head/net/samba411/pkg-plist (revision 532260) @@ -1,1152 +1,1122 @@ bin/cifsdd bin/dbwrap_tool bin/dumpmscat bin/findsmb bin/gentest bin/locktest bin/masktest bin/mvxattr bin/ndrdump bin/net bin/nmblookup bin/ntlm_auth bin/oLschema2ldif bin/pdbedit -bin/pidl bin/profiles bin/regdiff bin/regpatch bin/regshell bin/regtree bin/rpcclient bin/samba-regedit %%AD_DC%%bin/samba-tool bin/sharesec bin/smbcacls bin/smbclient bin/smbcontrol bin/smbcquotas bin/smbget bin/smbpasswd bin/smbspool bin/smbstatus bin/smbtar %%SAMBA4_PYTHON%%bin/smbtorture bin/smbtree bin/testparm bin/vfstest bin/wbinfo sbin/eventlogadm sbin/nmbd +%%AD_DC%%sbin/samba_downgrade_db sbin/smbd sbin/winbindd %%AD_DC%%sbin/samba %%AD_DC%%sbin/samba_dnsupdate %%AD_DC%%sbin/samba-gpupdate %%AD_DC%%sbin/samba_kcc %%AD_DC%%sbin/samba_spnupdate %%AD_DC%%sbin/samba_upgradedns include/samba4/charset.h include/samba4/core/doserr.h include/samba4/core/error.h include/samba4/core/hresult.h include/samba4/core/ntstatus_gen.h include/samba4/core/ntstatus.h include/samba4/core/werror_gen.h include/samba4/core/werror.h include/samba4/credentials.h include/samba4/dcerpc.h %%AD_DC%%include/samba4/dcerpc_server.h %%LDAP%%include/samba4/smb_ldap.h %%LDAP%%include/samba4/smbldap.h include/samba4/domain_credentials.h include/samba4/gen_ndr/atsvc.h include/samba4/gen_ndr/auth.h include/samba4/gen_ndr/dcerpc.h include/samba4/gen_ndr/drsblobs.h include/samba4/gen_ndr/drsuapi.h include/samba4/gen_ndr/krb5pac.h include/samba4/gen_ndr/lsa.h include/samba4/gen_ndr/misc.h include/samba4/gen_ndr/nbt.h include/samba4/gen_ndr/ndr_atsvc.h include/samba4/gen_ndr/ndr_dcerpc.h include/samba4/gen_ndr/ndr_drsblobs.h include/samba4/gen_ndr/ndr_drsuapi.h include/samba4/gen_ndr/ndr_krb5pac.h include/samba4/gen_ndr/ndr_misc.h include/samba4/gen_ndr/ndr_nbt.h include/samba4/gen_ndr/ndr_samr_c.h include/samba4/gen_ndr/ndr_samr.h include/samba4/gen_ndr/ndr_svcctl_c.h include/samba4/gen_ndr/ndr_svcctl.h include/samba4/gen_ndr/netlogon.h include/samba4/gen_ndr/samr.h include/samba4/gen_ndr/security.h include/samba4/gen_ndr/server_id.h include/samba4/gen_ndr/svcctl.h include/samba4/ldb_wrap.h include/samba4/libsmbclient.h include/samba4/lookup_sid.h include/samba4/machine_sid.h include/samba4/ndr.h include/samba4/ndr/ndr_dcerpc.h include/samba4/ndr/ndr_drsblobs.h include/samba4/ndr/ndr_drsuapi.h include/samba4/ndr/ndr_krb5pac.h include/samba4/ndr/ndr_nbt.h include/samba4/ndr/ndr_svcctl.h include/samba4/netapi.h include/samba4/param.h include/samba4/passdb.h %%SAMBA4_PYTHON%%include/samba4/policy.h include/samba4/rpc_common.h include/samba4/samba/session.h include/samba4/samba/version.h include/samba4/share.h include/samba4/smb2_lease_struct.h include/samba4/smbconf.h include/samba4/tdr.h include/samba4/tsocket_internal.h include/samba4/tsocket.h include/samba4/util_ldb.h include/samba4/util/attr.h include/samba4/util/blocking.h include/samba4/util/byteorder.h include/samba4/util/data_blob.h include/samba4/util/debug.h include/samba4/util/discard.h include/samba4/util/fault.h include/samba4/util/genrand.h include/samba4/util/idtree_random.h include/samba4/util/idtree.h include/samba4/util/signal.h include/samba4/util/string_wrappers.h include/samba4/util/substitute.h include/samba4/util/tevent_ntstatus.h include/samba4/util/tevent_unix.h include/samba4/util/tevent_werror.h include/samba4/util/tfork.h include/samba4/util/time.h include/samba4/wbclient.h @dir include/samba4/util @dir include/samba4/samba @dir include/samba4/ndr @dir include/samba4/gen_ndr @dir include/samba4/core @dir include/samba4 lib/samba4/libdcerpc-binding.so lib/samba4/libdcerpc-binding.so.0 lib/samba4/libdcerpc-samr.so lib/samba4/libdcerpc-samr.so.0 %%AD_DC%%lib/samba4/libdcerpc-server.so %%AD_DC%%lib/samba4/libdcerpc-server.so.0 lib/samba4/libdcerpc.so lib/samba4/libdcerpc.so.0 lib/samba4/libndr-krb5pac.so lib/samba4/libndr-krb5pac.so.0 lib/samba4/libndr-nbt.so lib/samba4/libndr-nbt.so.0 lib/samba4/libndr-standard.so lib/samba4/libndr-standard.so.0 lib/samba4/libndr.so lib/samba4/libndr.so.0 lib/samba4/libnetapi.so lib/samba4/libnetapi.so.0 lib/samba4/libsamba-credentials.so lib/samba4/libsamba-credentials.so.0 lib/samba4/libsamba-errors.so lib/samba4/libsamba-errors.so.1 lib/samba4/libsamba-hostconfig.so lib/samba4/libsamba-hostconfig.so.0 lib/samba4/libsamba-passdb.so lib/samba4/libsamba-passdb.so.0 %%SAMBA4_PYTHON%%lib/samba4/libsamba-policy.so %%SAMBA4_PYTHON%%lib/samba4/libsamba-policy.so.0 lib/samba4/libsamba-util.so lib/samba4/libsamba-util.so.0 lib/samba4/libsamdb.so lib/samba4/libsamdb.so.0 lib/samba4/libsmbclient.so lib/samba4/libsmbclient.so.0 lib/samba4/libsmbconf.so lib/samba4/libsmbconf.so.0 %%LDAP%%lib/samba4/libsmbldap.so %%LDAP%%lib/samba4/libsmbldap.so.2 lib/samba4/libtevent-util.so lib/samba4/libtevent-util.so.0 lib/samba4/libwbclient.so lib/samba4/libwbclient.so.0 lib/nss_winbind.so.1 lib/nss_wins.so.1 lib/pam_winbind.so %%CUPS%%libexec/samba/smbspool_krb5_wrapper %%AD_DC%%lib/samba4/private/libdlz-bind9-for-torture-samba4.so %%AD_DC%%lib/samba4/private/libposix-eadb-samba4.so %%AD_DC%%lib/samba4/private/libprocess-model-samba4.so %%AD_DC%%lib/samba4/private/libservice-samba4.so lib/samba4/private/libCHARSET3-samba4.so %%AD_DC%%%%GSSAPI_BUILTIN%%lib/samba4/private/libHDB-SAMBA4-samba4.so lib/samba4/private/libLIBWBCLIENT-OLD-samba4.so lib/samba4/private/libMESSAGING-samba4.so lib/samba4/private/libMESSAGING-SEND-samba4.so lib/samba4/private/libaddns-samba4.so lib/samba4/private/libads-samba4.so %%GSSAPI_BUILTIN%%lib/samba4/private/libasn1-samba4.so.8 lib/samba4/private/libasn1util-samba4.so lib/samba4/private/libauth-samba4.so lib/samba4/private/libauth-unix-token-samba4.so lib/samba4/private/libauth4-samba4.so lib/samba4/private/libauthkrb5-samba4.so lib/samba4/private/libcli-cldap-samba4.so lib/samba4/private/libcli-ldap-common-samba4.so lib/samba4/private/libcli-ldap-samba4.so lib/samba4/private/libcli-nbt-samba4.so lib/samba4/private/libcli-smb-common-samba4.so lib/samba4/private/libclidns-samba4.so lib/samba4/private/libcli-spoolss-samba4.so lib/samba4/private/libcliauth-samba4.so lib/samba4/private/libcluster-samba4.so lib/samba4/private/libcmdline-contexts-samba4.so lib/samba4/private/libcmdline-credentials-samba4.so %%GSSAPI_BUILTIN%%lib/samba4/private/libcom_err-samba4.so.0 lib/samba4/private/libcommon-auth-samba4.so %%AD_DC%%lib/samba4/private/libdb-glue-samba4.so lib/samba4/private/libdbwrap-samba4.so lib/samba4/private/libdcerpc-samba-samba4.so lib/samba4/private/libdcerpc-samba4.so %%AD_DC%%lib/samba4/private/libdfs-server-ad-samba4.so %%AD_DC%%lib/samba4/private/libdnsserver-common-samba4.so lib/samba4/private/libdsdb-module-samba4.so %%AD_DC%%lib/samba4/private/libdsdb-garbage-collect-tombstones-samba4.so lib/samba4/private/libevents-samba4.so lib/samba4/private/libflag-mapping-samba4.so lib/samba4/private/libgenrand-samba4.so lib/samba4/private/libgensec-samba4.so lib/samba4/private/libgpext-samba4.so +lib/samba4/private/libgpo-samba4.so lib/samba4/private/libgse-samba4.so %%GSSAPI_BUILTIN%%lib/samba4/private/libgssapi-samba4.so.2 %%GSSAPI_BUILTIN%%lib/samba4/private/libhcrypto-samba4.so.5 %%GSSAPI_BUILTIN%%lib/samba4/private/libhdb-samba4.so.11 %%GSSAPI_BUILTIN%%lib/samba4/private/libheimbase-samba4.so.1 %%GSSAPI_BUILTIN%%lib/samba4/private/libheimntlm-samba4.so.1 lib/samba4/private/libhttp-samba4.so %%GSSAPI_BUILTIN%%lib/samba4/private/libhx509-samba4.so.5 lib/samba4/private/libidmap-samba4.so lib/samba4/private/libinterfaces-samba4.so lib/samba4/private/libiov-buf-samba4.so %%GSSAPI_BUILTIN%%lib/samba4/private/libkdc-samba4.so.2 %%GSSAPI_BUILTIN%%lib/samba4/private/libkrb5-samba4.so.26 lib/samba4/private/libkrb5samba-samba4.so lib/samba4/private/libldbsamba-samba4.so lib/samba4/private/liblibcli-lsa3-samba4.so lib/samba4/private/liblibcli-netlogon3-samba4.so lib/samba4/private/liblibsmb-samba4.so lib/samba4/private/libmessages-dgm-samba4.so lib/samba4/private/libmessages-util-samba4.so lib/samba4/private/libmscat-samba4.so lib/samba4/private/libmsghdr-samba4.so lib/samba4/private/libmsrpc3-samba4.so lib/samba4/private/libndr-samba-samba4.so lib/samba4/private/libndr-samba4.so lib/samba4/private/libnet-keytab-samba4.so lib/samba4/private/libnetif-samba4.so -lib/samba4/private/libnon-posix-acls-samba4.so lib/samba4/private/libnpa-tstream-samba4.so lib/samba4/private/libnss-info-samba4.so %%AD_DC%%lib/samba4/private/libpac-samba4.so lib/samba4/private/libpopt-samba3-cmdline-samba4.so lib/samba4/private/libpopt-samba3-samba4.so +lib/samba4/private/libprinter-driver-samba4.so lib/samba4/private/libprinting-migrate-samba4.so lib/samba4/private/libregistry-samba4.so lib/samba4/private/libreplace-samba4.so %%GSSAPI_BUILTIN%%lib/samba4/private/libroken-samba4.so.19 lib/samba4/private/libsamba-cluster-support-samba4.so lib/samba4/private/libsamba-debug-samba4.so lib/samba4/private/libsamba-modules-samba4.so %%SAMBA4_PYTHON%%lib/samba4/private/libsamba-net-samba4.so %%SAMBA4_PYTHON%%lib/samba4/private/libsamba-python-samba4.so lib/samba4/private/libsamba-security-samba4.so lib/samba4/private/libsamba-sockets-samba4.so lib/samba4/private/libsamba3-util-samba4.so lib/samba4/private/libsamdb-common-samba4.so %%AD_DC%%lib/samba4/private/libscavenge-dns-records-samba4.so lib/samba4/private/libsecrets3-samba4.so lib/samba4/private/libserver-id-db-samba4.so lib/samba4/private/libserver-role-samba4.so lib/samba4/private/libshares-samba4.so lib/samba4/private/libsmb-transport-samba4.so lib/samba4/private/libsmbclient-raw-samba4.so lib/samba4/private/libsmbd-base-samba4.so lib/samba4/private/libsmbd-conn-samba4.so lib/samba4/private/libsmbd-shim-samba4.so %%LDAP%%lib/samba4/private/libsmbldaphelper-samba4.so lib/samba4/private/libsmbpasswdparser-samba4.so lib/samba4/private/libsocket-blocking-samba4.so lib/samba4/private/libsys-rw-samba4.so lib/samba4/private/libtalloc-report-samba4.so lib/samba4/private/libtdb-wrap-samba4.so lib/samba4/private/libtime-basic-samba4.so lib/samba4/private/libtorture-samba4.so lib/samba4/private/libtrusts-util-samba4.so lib/samba4/private/libutil-cmdline-samba4.so lib/samba4/private/libutil-reg-samba4.so lib/samba4/private/libutil-setid-samba4.so lib/samba4/private/libutil-tdb-samba4.so lib/samba4/private/libwinbind-client-samba4.so %%GSSAPI_BUILTIN%%lib/samba4/private/libwind-samba4.so.0 lib/samba4/private/libxattr-tdb-samba4.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/bind9/dlz_bind9.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/bind9/dlz_bind9_9.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/bind9/dlz_bind9_10.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/bind9/dlz_bind9_11.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/bind9/dlz_bind9_12.so +%%AD_DC%%%%SAMBA4_MODULEDIR%%/bind9/dlz_bind9_13.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/bind9/dlz_bind9_14.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/bind9/dlz_bind9_16.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/gensec/krb5.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/krb5/winbind_krb5_locator.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/acl.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/aclread.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/anr.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/audit_log.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/descriptor.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/dirsync.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/dns_notify.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/dsdb_notification.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/encrypted_secrets.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/extended_dn_in.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/extended_dn_out.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/extended_dn_store.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/group_audit_log.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/ildap.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/instancetype.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/lazy_commit.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/ldbsamba_extensions.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/linked_attributes.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/local_password.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/new_partition.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/objectclass_attrs.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/objectclass.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/objectguid.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/operational.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/paged_results.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/partition.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/password_hash.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/ranged_results.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/repl_meta_data.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/resolve_oids.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/rootdse.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/samba_dsdb.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/samba_secrets.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/samba3sam.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/samba3sid.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/samldb.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/schema_data.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/schema_load.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/secrets_tdb_sync.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/show_deleted.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/simple_dn.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/simple_ldap_map.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/subtree_delete.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/subtree_rename.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/tombstone_reanimate.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/unique_object_sids.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/update_keytab.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/vlv.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/ldb/wins_ldb.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/process_model/prefork.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/process_model/standard.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/service/cldap.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/service/dcerpc.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/service/dns_update.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/service/dns.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/service/drepl.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/service/kcc.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/service/kdc.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/service/ldap.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/service/nbtd.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/service/ntp_signd.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/service/s3fs.so -%%AD_DC%%%%SAMBA4_MODULEDIR%%/service/web.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/service/winbindd.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/service/wrepl.so %%AD_DC%%%%SAMBA4_MODULEDIR%%/vfs/posix_eadb.so %%SAMBA4_MODULEDIR%%/auth/script.so %%SAMBA4_MODULEDIR%%/vfs/acl_tdb.so %%SAMBA4_MODULEDIR%%/vfs/acl_xattr.so %%SAMBA4_MODULEDIR%%/vfs/aio_fork.so %%SAMBA4_MODULEDIR%%/vfs/aio_pthread.so %%SAMBA4_MODULEDIR%%/vfs/audit.so %%SAMBA4_MODULEDIR%%/vfs/cap.so %%SAMBA4_MODULEDIR%%/vfs/catia.so %%SAMBA4_MODULEDIR%%/vfs/commit.so %%SAMBA4_MODULEDIR%%/vfs/crossrename.so %%SAMBA4_MODULEDIR%%/vfs/default_quota.so %%SAMBA4_MODULEDIR%%/vfs/dirsort.so %%SAMBA4_MODULEDIR%%/vfs/expand_msdfs.so %%SAMBA4_MODULEDIR%%/vfs/extd_audit.so %%SAMBA4_MODULEDIR%%/vfs/fake_perms.so %%SAMBA4_MODULEDIR%%/vfs/full_audit.so %%SAMBA4_MODULEDIR%%/vfs/linux_xfs_sgid.so %%SAMBA4_MODULEDIR%%/vfs/media_harmony.so %%SAMBA4_MODULEDIR%%/vfs/netatalk.so %%SAMBA4_MODULEDIR%%/vfs/offline.so %%SAMBA4_MODULEDIR%%/vfs/preopen.so %%SAMBA4_MODULEDIR%%/vfs/readahead.so %%SAMBA4_MODULEDIR%%/vfs/readonly.so %%SAMBA4_MODULEDIR%%/vfs/recycle.so %%SAMBA4_MODULEDIR%%/vfs/shadow_copy.so %%SAMBA4_MODULEDIR%%/vfs/shadow_copy2.so %%SAMBA4_MODULEDIR%%/vfs/shell_snap.so %%SAMBA4_MODULEDIR%%/vfs/streams_depot.so %%SAMBA4_MODULEDIR%%/vfs/streams_xattr.so %%SAMBA4_MODULEDIR%%/vfs/syncops.so %%SAMBA4_MODULEDIR%%/vfs/time_audit.so %%SAMBA4_MODULEDIR%%/vfs/unityed_media.so %%SAMBA4_MODULEDIR%%/vfs/virusfilter.so %%SAMBA4_MODULEDIR%%/vfs/worm.so %%SAMBA4_MODULEDIR%%/vfs/xattr_tdb.so %%SAMBA4_MODULEDIR%%/vfs/zfsacl.so @dir %%SAMBA4_MODULEDIR%%/vfs %%AD_DC%%@dir %%SAMBA4_MODULEDIR%%/service %%AD_DC%%@dir %%SAMBA4_MODULEDIR%%/process_model @dir %%SAMBA4_MODULEDIR%%/perfcount @dir %%SAMBA4_MODULEDIR%%/pdb @dir %%SAMBA4_MODULEDIR%%/nss_info @dir %%SAMBA4_MODULEDIR%%/ldb @dir %%SAMBA4_MODULEDIR%%/idmap @dir %%SAMBA4_MODULEDIR%%/gpext @dir %%SAMBA4_MODULEDIR%%/gensec @dir %%SAMBA4_MODULEDIR%%/bind9 @dir %%SAMBA4_MODULEDIR%%/auth @dir %%SAMBA4_MODULEDIR%% @dir lib/samba4/private @dir lib/samba4 %%PKGCONFIGDIR%%/dcerpc.pc %%PKGCONFIGDIR%%/dcerpc_samr.pc %%AD_DC%%%%PKGCONFIGDIR%%/dcerpc_server.pc %%PKGCONFIGDIR%%/ndr.pc %%PKGCONFIGDIR%%/ndr_krb5pac.pc %%PKGCONFIGDIR%%/ndr_nbt.pc %%PKGCONFIGDIR%%/ndr_standard.pc %%PKGCONFIGDIR%%/netapi.pc %%PKGCONFIGDIR%%/samba-credentials.pc %%PKGCONFIGDIR%%/samba-hostconfig.pc %%SAMBA4_PYTHON%%%%PKGCONFIGDIR%%/samba-policy.pc %%PKGCONFIGDIR%%/samba-util.pc %%PKGCONFIGDIR%%/samdb.pc %%PKGCONFIGDIR%%/smbclient.pc %%PKGCONFIGDIR%%/wbclient.pc -@comment Pidl block -%%DATADIR%%/perl5/Parse/Pidl.pm -%%DATADIR%%/perl5/Parse/Pidl/CUtil.pm -%%DATADIR%%/perl5/Parse/Pidl/Compat.pm -%%DATADIR%%/perl5/Parse/Pidl/Dump.pm -%%DATADIR%%/perl5/Parse/Pidl/Expr.pm -%%DATADIR%%/perl5/Parse/Pidl/IDL.pm -%%DATADIR%%/perl5/Parse/Pidl/NDR.pm -%%DATADIR%%/perl5/Parse/Pidl/ODL.pm -%%DATADIR%%/perl5/Parse/Pidl/Samba3/ClientNDR.pm -%%DATADIR%%/perl5/Parse/Pidl/Samba3/ServerNDR.pm -%%DATADIR%%/perl5/Parse/Pidl/Samba4.pm -%%DATADIR%%/perl5/Parse/Pidl/Samba4/COM/Header.pm -%%DATADIR%%/perl5/Parse/Pidl/Samba4/COM/Proxy.pm -%%DATADIR%%/perl5/Parse/Pidl/Samba4/COM/Stub.pm -%%DATADIR%%/perl5/Parse/Pidl/Samba4/Header.pm -%%DATADIR%%/perl5/Parse/Pidl/Samba4/NDR/Client.pm -%%DATADIR%%/perl5/Parse/Pidl/Samba4/NDR/Parser.pm -%%DATADIR%%/perl5/Parse/Pidl/Samba4/NDR/Server.pm -%%DATADIR%%/perl5/Parse/Pidl/Samba4/Python.pm -%%DATADIR%%/perl5/Parse/Pidl/Samba4/TDR.pm -%%DATADIR%%/perl5/Parse/Pidl/Samba4/Template.pm -%%DATADIR%%/perl5/Parse/Pidl/Typelist.pm -%%DATADIR%%/perl5/Parse/Pidl/Util.pm -%%DATADIR%%/perl5/Parse/Pidl/Wireshark/Conformance.pm -%%DATADIR%%/perl5/Parse/Pidl/Wireshark/NDR.pm -@dir %%DATADIR%%/perl5/Parse/Pidl/Wireshark -@dir %%DATADIR%%/perl5/Parse/Pidl/Samba4/NDR -@dir %%DATADIR%%/perl5/Parse/Pidl/Samba4/COM -@dir %%DATADIR%%/perl5/Parse/Pidl/Samba4 -@dir %%DATADIR%%/perl5/Parse/Pidl/Samba3 -@dir %%DATADIR%%/perl5/Parse/Pidl -@dir %%DATADIR%%/perl5/Parse -@dir %%DATADIR%%/perl5 +@comment Setup files %%AD_DC%%%%DATADIR%%/setup/ad-schema/AD_DS_Attributes__Windows_Server_2012_R2.ldf %%AD_DC%%%%DATADIR%%/setup/ad-schema/AD_DS_Attributes__Windows_Server_2016.ldf %%AD_DC%%%%DATADIR%%/setup/ad-schema/AD_DS_Classes__Windows_Server_2012_R2.ldf %%AD_DC%%%%DATADIR%%/setup/ad-schema/AD_DS_Classes__Windows_Server_2016.ldf %%AD_DC%%%%DATADIR%%/setup/ad-schema/Attributes_for_AD_DS__Windows_Server_2008_R2.ldf %%AD_DC%%%%DATADIR%%/setup/ad-schema/Attributes_for_AD_DS__Windows_Server_2012.ldf %%AD_DC%%%%DATADIR%%/setup/ad-schema/Classes_for_AD_DS__Windows_Server_2008_R2.ldf %%AD_DC%%%%DATADIR%%/setup/ad-schema/Classes_for_AD_DS__Windows_Server_2012.ldf %%AD_DC%%%%DATADIR%%/setup/ad-schema/licence.txt %%AD_DC%%%%DATADIR%%/setup/ad-schema/MS-AD_Schema_2K8_Attributes.txt %%AD_DC%%%%DATADIR%%/setup/ad-schema/MS-AD_Schema_2K8_Classes.txt %%AD_DC%%%%DATADIR%%/setup/ad-schema/MS-AD_Schema_2K8_R2_Attributes.txt %%AD_DC%%%%DATADIR%%/setup/ad-schema/MS-AD_Schema_2K8_R2_Classes.txt %%AD_DC%%%%DATADIR%%/setup/adprep/fix-forest-rev.ldf %%AD_DC%%%%DATADIR%%/setup/adprep/WindowsServerDocs/Forest-Wide-Updates.md %%AD_DC%%%%DATADIR%%/setup/adprep/WindowsServerDocs/Sch49.ldf.diff %%AD_DC%%%%DATADIR%%/setup/adprep/WindowsServerDocs/Sch50.ldf.diff %%AD_DC%%%%DATADIR%%/setup/adprep/WindowsServerDocs/Sch51.ldf.diff %%AD_DC%%%%DATADIR%%/setup/adprep/WindowsServerDocs/Sch57.ldf.diff %%AD_DC%%%%DATADIR%%/setup/adprep/WindowsServerDocs/Sch59.ldf.diff %%AD_DC%%%%DATADIR%%/setup/adprep/WindowsServerDocs/Schema-Updates.md %%AD_DC%%%%DATADIR%%/setup/aggregate_schema.ldif %%AD_DC%%%%DATADIR%%/setup/cn=samba.ldif %%AD_DC%%%%DATADIR%%/setup/DB_CONFIG %%AD_DC%%%%DATADIR%%/setup/display-specifiers/DisplaySpecifiers-Win2k0.txt %%AD_DC%%%%DATADIR%%/setup/display-specifiers/DisplaySpecifiers-Win2k3.txt %%AD_DC%%%%DATADIR%%/setup/display-specifiers/DisplaySpecifiers-Win2k3R2.txt %%AD_DC%%%%DATADIR%%/setup/display-specifiers/DisplaySpecifiers-Win2k8.txt %%AD_DC%%%%DATADIR%%/setup/display-specifiers/DisplaySpecifiers-Win2k8R2.txt %%AD_DC%%%%DATADIR%%/setup/dns_update_list %%AD_DC%%%%DATADIR%%/setup/extended-rights.ldif %%AD_DC%%%%DATADIR%%/setup/fedora-ds-init.ldif %%AD_DC%%%%DATADIR%%/setup/fedorads-dna.ldif %%AD_DC%%%%DATADIR%%/setup/fedorads-index.ldif %%AD_DC%%%%DATADIR%%/setup/fedorads-linked-attributes.ldif %%AD_DC%%%%DATADIR%%/setup/fedorads-pam.ldif %%AD_DC%%%%DATADIR%%/setup/fedorads-partitions.ldif %%AD_DC%%%%DATADIR%%/setup/fedorads-refint-add.ldif %%AD_DC%%%%DATADIR%%/setup/fedorads-refint-delete.ldif %%AD_DC%%%%DATADIR%%/setup/fedorads-samba.ldif %%AD_DC%%%%DATADIR%%/setup/fedorads-sasl.ldif %%AD_DC%%%%DATADIR%%/setup/fedorads.inf %%AD_DC%%%%DATADIR%%/setup/idmap_init.ldif %%AD_DC%%%%DATADIR%%/setup/krb5.conf %%AD_DC%%%%DATADIR%%/setup/memberof.conf %%AD_DC%%%%DATADIR%%/setup/mmr_serverids.conf %%AD_DC%%%%DATADIR%%/setup/mmr_syncrepl.conf %%AD_DC%%%%DATADIR%%/setup/modules.conf %%AD_DC%%%%DATADIR%%/setup/named.conf %%AD_DC%%%%DATADIR%%/setup/named.conf.dlz %%AD_DC%%%%DATADIR%%/setup/named.conf.update %%AD_DC%%%%DATADIR%%/setup/named.txt %%AD_DC%%%%DATADIR%%/setup/olc_mmr.conf %%AD_DC%%%%DATADIR%%/setup/olc_seed.ldif %%AD_DC%%%%DATADIR%%/setup/olc_serverid.conf %%AD_DC%%%%DATADIR%%/setup/olc_syncrepl_seed.conf %%AD_DC%%%%DATADIR%%/setup/olc_syncrepl.conf %%AD_DC%%%%DATADIR%%/setup/prefixMap.txt %%AD_DC%%%%DATADIR%%/setup/provision_basedn_modify.ldif %%AD_DC%%%%DATADIR%%/setup/provision_basedn_options.ldif %%AD_DC%%%%DATADIR%%/setup/provision_basedn_references.ldif %%AD_DC%%%%DATADIR%%/setup/provision_basedn.ldif %%AD_DC%%%%DATADIR%%/setup/provision_computers_add.ldif %%AD_DC%%%%DATADIR%%/setup/provision_computers_modify.ldif %%AD_DC%%%%DATADIR%%/setup/provision_configuration_basedn.ldif %%AD_DC%%%%DATADIR%%/setup/provision_configuration_modify.ldif %%AD_DC%%%%DATADIR%%/setup/provision_configuration_references.ldif %%AD_DC%%%%DATADIR%%/setup/provision_configuration.ldif %%AD_DC%%%%DATADIR%%/setup/provision_dns_accounts_add.ldif %%AD_DC%%%%DATADIR%%/setup/provision_dns_add_samba.ldif %%AD_DC%%%%DATADIR%%/setup/provision_dnszones_add.ldif %%AD_DC%%%%DATADIR%%/setup/provision_dnszones_modify.ldif %%AD_DC%%%%DATADIR%%/setup/provision_dnszones_partitions.ldif %%AD_DC%%%%DATADIR%%/setup/provision_group_policy.ldif %%AD_DC%%%%DATADIR%%/setup/provision_init.ldif %%AD_DC%%%%DATADIR%%/setup/provision_partitions.ldif %%AD_DC%%%%DATADIR%%/setup/provision_privilege.ldif %%AD_DC%%%%DATADIR%%/setup/provision_rootdse_add.ldif %%AD_DC%%%%DATADIR%%/setup/provision_rootdse_modify.ldif %%AD_DC%%%%DATADIR%%/setup/provision_schema_basedn_modify.ldif %%AD_DC%%%%DATADIR%%/setup/provision_schema_basedn.ldif %%AD_DC%%%%DATADIR%%/setup/provision_self_join_config.ldif %%AD_DC%%%%DATADIR%%/setup/provision_self_join_modify_config.ldif %%AD_DC%%%%DATADIR%%/setup/provision_self_join_modify_schema.ldif %%AD_DC%%%%DATADIR%%/setup/provision_self_join_modify.ldif %%AD_DC%%%%DATADIR%%/setup/provision_self_join.ldif %%AD_DC%%%%DATADIR%%/setup/provision_users_add.ldif %%AD_DC%%%%DATADIR%%/setup/provision_users_modify.ldif %%AD_DC%%%%DATADIR%%/setup/provision_users.ldif %%AD_DC%%%%DATADIR%%/setup/provision_well_known_sec_princ.ldif %%AD_DC%%%%DATADIR%%/setup/provision.ldif %%AD_DC%%%%DATADIR%%/setup/provision.reg %%AD_DC%%%%DATADIR%%/setup/provision.zone %%AD_DC%%%%DATADIR%%/setup/refint.conf %%AD_DC%%%%DATADIR%%/setup/schema_samba4.ldif %%AD_DC%%%%DATADIR%%/setup/schema-map-fedora-ds-1.0 %%AD_DC%%%%DATADIR%%/setup/schema-map-openldap-2.3 %%AD_DC%%%%DATADIR%%/setup/secrets_dns.ldif %%AD_DC%%%%DATADIR%%/setup/secrets_init.ldif %%AD_DC%%%%DATADIR%%/setup/secrets_sasl_ldap.ldif %%AD_DC%%%%DATADIR%%/setup/secrets_simple_ldap.ldif %%AD_DC%%%%DATADIR%%/setup/secrets.ldif %%AD_DC%%%%DATADIR%%/setup/share.ldif %%AD_DC%%%%DATADIR%%/setup/slapd.conf %%AD_DC%%%%DATADIR%%/setup/spn_update_list %%AD_DC%%%%DATADIR%%/setup/ypServ30.ldif %%AD_DC%%@dir %%DATADIR%%/setup/display-specifiers %%AD_DC%%@dir %%DATADIR%%/setup/ad-schema %%AD_DC%%@dir %%DATADIR%%/setup %%AD_DC%%@dir %%DATADIR%% @comment Man pages man/man1/dbwrap_tool.1.gz man/man1/findsmb.1.gz man/man1/gentest.1.gz man/man1/locktest.1.gz man/man1/log2pcap.1.gz man/man1/masktest.1.gz man/man1/mvxattr.1.gz man/man1/ndrdump.1.gz man/man1/nmblookup.1.gz man/man1/ntlm_auth.1.gz man/man1/oLschema2ldif.1.gz -man/man1/pidl.1.gz man/man1/profiles.1.gz man/man1/regdiff.1.gz man/man1/regpatch.1.gz man/man1/regshell.1.gz man/man1/regtree.1.gz man/man1/rpcclient.1.gz man/man1/sharesec.1.gz man/man1/smbcacls.1.gz man/man1/smbclient.1.gz man/man1/smbcontrol.1.gz man/man1/smbcquotas.1.gz man/man1/smbget.1.gz man/man1/smbstatus.1.gz man/man1/smbtar.1.gz %%SAMBA4_PYTHON%%man/man1/smbtorture.1.gz man/man1/smbtree.1.gz man/man1/testparm.1.gz man/man1/vfstest.1.gz man/man1/wbinfo.1.gz -man/man3/Parse::Pidl::Dump.3.gz -man/man3/Parse::Pidl::NDR.3.gz -man/man3/Parse::Pidl::Util.3.gz -man/man3/Parse::Pidl::Wireshark::Conformance.3.gz -man/man3/Parse::Pidl::Wireshark::NDR.3.gz man/man5/lmhosts.5.gz man/man5/pam_winbind.conf.5.gz man/man5/smb.conf.5.gz man/man5/smb4.conf.5.gz man/man5/smbgetrc.5.gz man/man5/smbpasswd.5.gz man/man7/libsmbclient.7.gz man/man7/samba.7.gz man/man7/traffic_learner.7.gz man/man7/traffic_replay.7.gz man/man8/cifsdd.8.gz man/man8/eventlogadm.8.gz man/man8/idmap_ad.8.gz man/man8/idmap_autorid.8.gz man/man8/idmap_hash.8.gz man/man8/idmap_ldap.8.gz man/man8/idmap_nss.8.gz man/man8/idmap_rfc2307.8.gz man/man8/idmap_rid.8.gz man/man8/idmap_script.8.gz man/man8/idmap_tdb.8.gz man/man8/idmap_tdb2.8.gz man/man8/net.8.gz man/man8/nmbd.8.gz man/man8/pam_winbind.8.gz man/man8/pdbedit.8.gz +man/man8/samba_downgrade_db.8.gz man/man8/samba-gpupdate.8.gz man/man8/samba-regedit.8.gz man/man8/samba-tool.8.gz man/man8/samba.8.gz man/man8/smbd.8.gz man/man8/smbpasswd.8.gz man/man8/smbspool_krb5_wrapper.8.gz man/man8/smbspool.8.gz man/man8/vfs_acl_tdb.8.gz man/man8/vfs_acl_xattr.8.gz man/man8/vfs_aio_fork.8.gz man/man8/vfs_aio_pthread.8.gz man/man8/vfs_audit.8.gz man/man8/vfs_cacheprime.8.gz man/man8/vfs_cap.8.gz man/man8/vfs_catia.8.gz man/man8/vfs_commit.8.gz man/man8/vfs_crossrename.8.gz man/man8/vfs_default_quota.8.gz man/man8/vfs_dirsort.8.gz man/man8/vfs_extd_audit.8.gz man/man8/vfs_fake_perms.8.gz man/man8/vfs_freebsd.8.gz man/man8/vfs_full_audit.8.gz man/man8/vfs_linux_xfs_sgid.8.gz man/man8/vfs_media_harmony.8.gz man/man8/vfs_netatalk.8.gz man/man8/vfs_offline.8.gz man/man8/vfs_preopen.8.gz man/man8/vfs_readahead.8.gz man/man8/vfs_readonly.8.gz man/man8/vfs_recycle.8.gz man/man8/vfs_shadow_copy.8.gz man/man8/vfs_shadow_copy2.8.gz man/man8/vfs_shell_snap.8.gz man/man8/vfs_streams_depot.8.gz man/man8/vfs_streams_xattr.8.gz man/man8/vfs_syncops.8.gz man/man8/vfs_time_audit.8.gz man/man8/vfs_unityed_media.8.gz man/man8/vfs_virusfilter.8.gz man/man8/vfs_worm.8.gz man/man8/vfs_xattr_tdb.8.gz man/man8/vfs_zfsacl.8.gz man/man8/winbind_krb5_locator.8.gz man/man8/winbindd.8.gz @dir %%SAMBA4_RUNDIR%% @dir %%SAMBA4_LOGDIR%% @dir %%SAMBA4_LOCKDIR%% @dir %%SAMBA4_PRIVATEDIR%% @dir %%SAMBA4_BINDDNSDIR%% @comment Cluster %%CLUSTER%%bin/ctdb %%CLUSTER%%bin/ctdb_diagnostics %%CLUSTER%%bin/ltdbtool %%CLUSTER%%bin/onnode %%CLUSTER%%bin/ping_pong %%CLUSTER%%etc/ctdb/ctdb-crash-cleanup.sh %%CLUSTER%%etc/ctdb/debug_locks.sh %%CLUSTER%%etc/ctdb/debug-hung-script.sh %%CLUSTER%%etc/ctdb/events/legacy/00.ctdb.script %%CLUSTER%%etc/ctdb/events/legacy/01.reclock.script %%CLUSTER%%etc/ctdb/events/legacy/05.system.script %%CLUSTER%%etc/ctdb/events/legacy/10.interface.script %%CLUSTER%%etc/ctdb/events/notification/README %%CLUSTER%%etc/ctdb/functions %%CLUSTER%%etc/ctdb/nfs-checks.d/00.portmapper.check %%CLUSTER%%etc/ctdb/nfs-checks.d/10.status.check %%CLUSTER%%etc/ctdb/nfs-checks.d/20.nfs.check %%CLUSTER%%etc/ctdb/nfs-checks.d/30.nlockmgr.check %%CLUSTER%%etc/ctdb/nfs-checks.d/40.mountd.check %%CLUSTER%%etc/ctdb/nfs-checks.d/50.rquotad.check %%CLUSTER%%etc/ctdb/nfs-checks.d/README %%CLUSTER%%etc/ctdb/nfs-linux-kernel-callout %%CLUSTER%%etc/ctdb/notify.sh %%CLUSTER%%etc/ctdb/statd-callout %%CLUSTER%%etc/sudoers.d/ctdb %%CLUSTER%%lib/samba4/private/libctdb-event-client-samba4.so %%CLUSTER%%libexec/ctdb/ctdb_killtcp %%CLUSTER%%libexec/ctdb/ctdb_lock_helper %%CLUSTER%%libexec/ctdb/ctdb_lvs %%CLUSTER%%libexec/ctdb/ctdb_mutex_fcntl_helper %%CLUSTER%%libexec/ctdb/ctdb_natgw %%CLUSTER%%libexec/ctdb/ctdb_recovery_helper %%CLUSTER%%libexec/ctdb/ctdb_takeover_helper %%CLUSTER%%libexec/ctdb/ctdb-config %%CLUSTER%%libexec/ctdb/ctdb-event %%CLUSTER%%libexec/ctdb/ctdb-eventd %%CLUSTER%%libexec/ctdb/ctdb-path %%CLUSTER%%libexec/ctdb/smnotify %%CLUSTER%%man/man1/ctdb_diagnostics.1.gz %%CLUSTER%%man/man1/ctdb.1.gz %%CLUSTER%%man/man1/ctdbd_wrapper.1.gz %%CLUSTER%%man/man1/ctdbd.1.gz %%CLUSTER%%man/man1/ltdbtool.1.gz %%CLUSTER%%man/man1/onnode.1.gz %%CLUSTER%%man/man1/ping_pong.1.gz %%CLUSTER%%man/man5/ctdb-script.options.5.gz %%CLUSTER%%man/man5/ctdb.conf.5.gz %%CLUSTER%%man/man5/ctdb.sysconfig.5.gz %%CLUSTER%%man/man7/ctdb-statistics.7.gz %%CLUSTER%%man/man7/ctdb-tunables.7.gz %%CLUSTER%%man/man7/ctdb.7.gz %%CLUSTER%%sbin/ctdbd %%CLUSTER%%sbin/ctdbd_wrapper %%CLUSTER%%share/ctdb/events/legacy/00.ctdb.script %%CLUSTER%%share/ctdb/events/legacy/01.reclock.script %%CLUSTER%%share/ctdb/events/legacy/05.system.script %%CLUSTER%%share/ctdb/events/legacy/06.nfs.script %%CLUSTER%%share/ctdb/events/legacy/10.interface.script %%CLUSTER%%share/ctdb/events/legacy/11.natgw.script %%CLUSTER%%share/ctdb/events/legacy/11.routing.script %%CLUSTER%%share/ctdb/events/legacy/13.per_ip_routing.script %%CLUSTER%%share/ctdb/events/legacy/20.multipathd.script %%CLUSTER%%share/ctdb/events/legacy/31.clamd.script %%CLUSTER%%share/ctdb/events/legacy/40.vsftpd.script %%CLUSTER%%share/ctdb/events/legacy/41.httpd.script %%CLUSTER%%share/ctdb/events/legacy/49.winbind.script %%CLUSTER%%share/ctdb/events/legacy/50.samba.script %%CLUSTER%%share/ctdb/events/legacy/60.nfs.script %%CLUSTER%%share/ctdb/events/legacy/70.iscsi.script %%CLUSTER%%share/ctdb/events/legacy/91.lvs.script %%CLUSTER%%@dir /var/lib/ctdb/volatile %%CLUSTER%%@dir /var/lib/ctdb/state %%CLUSTER%%@dir /var/lib/ctdb/persistent %%CLUSTER%%@dir /var/lib/ctdb %%CLUSTER%%@dir /var/lib %%CLUSTER%%@dir /var/run/ctdb @comment Python block %%AD_DC%%%%PYTHON_SITELIBDIR%%/samba/dckeytab.so %%AD_DC%%%%PYTHON_SITELIBDIR%%/samba/posix_eadb.so %%AD_DC%%%%PYTHON_SITELIBDIR%%/samba/xattr_native.so %%AD_DC%%%%PYTHON_SITELIBDIR%%/samba/xattr_tdb.so %%PYTHON_SITELIBDIR%%/samba/__init__.py %%PYTHON_SITELIBDIR%%/samba/_glue.so %%PYTHON_SITELIBDIR%%/samba/_ldb.so %%PYTHON_SITELIBDIR%%/samba/auth.so %%PYTHON_SITELIBDIR%%/samba/colour.py %%PYTHON_SITELIBDIR%%/samba/common.py %%PYTHON_SITELIBDIR%%/samba/compat.py %%PYTHON_SITELIBDIR%%/samba/credentials.so %%PYTHON_SITELIBDIR%%/samba/crypto.so %%PYTHON_SITELIBDIR%%/samba/dbchecker.py %%PYTHON_SITELIBDIR%%/samba/dcerpc/__init__.py %%PYTHON_SITELIBDIR%%/samba/dcerpc/atsvc.so %%PYTHON_SITELIBDIR%%/samba/dcerpc/auth.so %%PYTHON_SITELIBDIR%%/samba/dcerpc/base.so %%PYTHON_SITELIBDIR%%/samba/dcerpc/dcerpc.so %%PYTHON_SITELIBDIR%%/samba/dcerpc/dfs.so %%PYTHON_SITELIBDIR%%/samba/dcerpc/dns.so %%PYTHON_SITELIBDIR%%/samba/dcerpc/dnsp.so %%PYTHON_SITELIBDIR%%/samba/dcerpc/dnsserver.so %%PYTHON_SITELIBDIR%%/samba/dcerpc/drsblobs.so %%PYTHON_SITELIBDIR%%/samba/dcerpc/drsuapi.so %%PYTHON_SITELIBDIR%%/samba/dcerpc/echo.so %%PYTHON_SITELIBDIR%%/samba/dcerpc/epmapper.so %%PYTHON_SITELIBDIR%%/samba/dcerpc/idmap.so %%PYTHON_SITELIBDIR%%/samba/dcerpc/initshutdown.so %%PYTHON_SITELIBDIR%%/samba/dcerpc/irpc.so %%PYTHON_SITELIBDIR%%/samba/dcerpc/krb5pac.so %%PYTHON_SITELIBDIR%%/samba/dcerpc/lsa.so %%PYTHON_SITELIBDIR%%/samba/dcerpc/messaging.so %%PYTHON_SITELIBDIR%%/samba/dcerpc/mgmt.so %%PYTHON_SITELIBDIR%%/samba/dcerpc/misc.so %%PYTHON_SITELIBDIR%%/samba/dcerpc/nbt.so %%PYTHON_SITELIBDIR%%/samba/dcerpc/netlogon.so %%PYTHON_SITELIBDIR%%/samba/dcerpc/ntlmssp.so %%PYTHON_SITELIBDIR%%/samba/dcerpc/preg.so %%PYTHON_SITELIBDIR%%/samba/dcerpc/samr.so %%PYTHON_SITELIBDIR%%/samba/dcerpc/security.so %%PYTHON_SITELIBDIR%%/samba/dcerpc/server_id.so %%PYTHON_SITELIBDIR%%/samba/dcerpc/smb_acl.so %%PYTHON_SITELIBDIR%%/samba/dcerpc/spoolss.so %%PYTHON_SITELIBDIR%%/samba/dcerpc/srvsvc.so %%PYTHON_SITELIBDIR%%/samba/dcerpc/svcctl.so %%PYTHON_SITELIBDIR%%/samba/dcerpc/unixinfo.so %%PYTHON_SITELIBDIR%%/samba/dcerpc/winbind.so %%PYTHON_SITELIBDIR%%/samba/dcerpc/windows_event_ids.so %%PYTHON_SITELIBDIR%%/samba/dcerpc/winreg.so %%PYTHON_SITELIBDIR%%/samba/dcerpc/winspool.so %%PYTHON_SITELIBDIR%%/samba/dcerpc/witness.so %%PYTHON_SITELIBDIR%%/samba/dcerpc/wkssvc.so %%PYTHON_SITELIBDIR%%/samba/dcerpc/xattr.so %%PYTHON_SITELIBDIR%%/samba/descriptor.py %%PYTHON_SITELIBDIR%%/samba/dnsserver.py %%PYTHON_SITELIBDIR%%/samba/domain_update.py %%PYTHON_SITELIBDIR%%/samba/drs_utils.py %%AD_DC%%%%PYTHON_SITELIBDIR%%/samba/dsdb_dns.so %%AD_DC%%%%PYTHON_SITELIBDIR%%/samba/dsdb.so %%PYTHON_SITELIBDIR%%/samba/emulate/__init__.py %%PYTHON_SITELIBDIR%%/samba/emulate/traffic_packets.py %%PYTHON_SITELIBDIR%%/samba/emulate/traffic.py %%PYTHON_SITELIBDIR%%/samba/forest_update.py %%PYTHON_SITELIBDIR%%/samba/gensec.so %%PYTHON_SITELIBDIR%%/samba/getopt.py %%PYTHON_SITELIBDIR%%/samba/gp_ext_loader.py %%PYTHON_SITELIBDIR%%/samba/gp_parse/__init__.py %%PYTHON_SITELIBDIR%%/samba/gp_parse/gp_aas.py %%PYTHON_SITELIBDIR%%/samba/gp_parse/gp_csv.py %%PYTHON_SITELIBDIR%%/samba/gp_parse/gp_inf.py %%PYTHON_SITELIBDIR%%/samba/gp_parse/gp_ini.py %%PYTHON_SITELIBDIR%%/samba/gp_parse/gp_pol.py %%PYTHON_SITELIBDIR%%/samba/gp_sec_ext.py %%PYTHON_SITELIBDIR%%/samba/gpclass.py %%PYTHON_SITELIBDIR%%/samba/gpo.so %%PYTHON_SITELIBDIR%%/samba/graph.py %%PYTHON_SITELIBDIR%%/samba/hostconfig.py %%PYTHON_SITELIBDIR%%/samba/idmap.py %%PYTHON_SITELIBDIR%%/samba/join.py %%PYTHON_SITELIBDIR%%/samba/kcc/__init__.py %%PYTHON_SITELIBDIR%%/samba/kcc/debug.py %%PYTHON_SITELIBDIR%%/samba/kcc/graph_utils.py %%PYTHON_SITELIBDIR%%/samba/kcc/graph.py %%PYTHON_SITELIBDIR%%/samba/kcc/kcc_utils.py %%PYTHON_SITELIBDIR%%/samba/kcc/ldif_import_export.py %%PYTHON_SITELIBDIR%%/samba/logger.py %%PYTHON_SITELIBDIR%%/samba/mdb_util.py %%PYTHON_SITELIBDIR%%/samba/messaging.so %%PYTHON_SITELIBDIR%%/samba/ms_display_specifiers.py %%PYTHON_SITELIBDIR%%/samba/ms_forest_updates_markdown.py %%PYTHON_SITELIBDIR%%/samba/ms_schema_markdown.py %%PYTHON_SITELIBDIR%%/samba/ms_schema.py %%PYTHON_SITELIBDIR%%/samba/ndr.py %%PYTHON_SITELIBDIR%%/samba/net.so %%PYTHON_SITELIBDIR%%/samba/netbios.so %%PYTHON_SITELIBDIR%%/samba/netcmd/__init__.py %%PYTHON_SITELIBDIR%%/samba/netcmd/common.py %%PYTHON_SITELIBDIR%%/samba/netcmd/computer.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/contact.py %%PYTHON_SITELIBDIR%%/samba/netcmd/dbcheck.py %%PYTHON_SITELIBDIR%%/samba/netcmd/delegation.py %%PYTHON_SITELIBDIR%%/samba/netcmd/dns.py %%PYTHON_SITELIBDIR%%/samba/netcmd/domain_backup.py %%PYTHON_SITELIBDIR%%/samba/netcmd/domain.py %%PYTHON_SITELIBDIR%%/samba/netcmd/drs.py %%PYTHON_SITELIBDIR%%/samba/netcmd/dsacl.py %%PYTHON_SITELIBDIR%%/samba/netcmd/forest.py %%PYTHON_SITELIBDIR%%/samba/netcmd/fsmo.py %%PYTHON_SITELIBDIR%%/samba/netcmd/gpo.py %%PYTHON_SITELIBDIR%%/samba/netcmd/group.py %%PYTHON_SITELIBDIR%%/samba/netcmd/ldapcmp.py %%PYTHON_SITELIBDIR%%/samba/netcmd/main.py %%PYTHON_SITELIBDIR%%/samba/netcmd/nettime.py %%PYTHON_SITELIBDIR%%/samba/netcmd/ntacl.py %%PYTHON_SITELIBDIR%%/samba/netcmd/ou.py %%PYTHON_SITELIBDIR%%/samba/netcmd/processes.py %%PYTHON_SITELIBDIR%%/samba/netcmd/pso.py %%PYTHON_SITELIBDIR%%/samba/netcmd/rodc.py %%PYTHON_SITELIBDIR%%/samba/netcmd/schema.py %%PYTHON_SITELIBDIR%%/samba/netcmd/sites.py %%PYTHON_SITELIBDIR%%/samba/netcmd/spn.py %%PYTHON_SITELIBDIR%%/samba/netcmd/testparm.py %%PYTHON_SITELIBDIR%%/samba/netcmd/user.py %%PYTHON_SITELIBDIR%%/samba/netcmd/visualize.py %%PYTHON_SITELIBDIR%%/samba/ntacls.py %%PYTHON_SITELIBDIR%%/samba/ntstatus.so %%PYTHON_SITELIBDIR%%/samba/param.so %%PYTHON_SITELIBDIR%%/samba/policy.so %%PYTHON_SITELIBDIR%%/samba/provision/__init__.py %%PYTHON_SITELIBDIR%%/samba/provision/backend.py %%PYTHON_SITELIBDIR%%/samba/provision/common.py %%PYTHON_SITELIBDIR%%/samba/provision/kerberos_implementation.py %%PYTHON_SITELIBDIR%%/samba/provision/kerberos.py %%PYTHON_SITELIBDIR%%/samba/provision/sambadns.py %%PYTHON_SITELIBDIR%%/samba/registry.so %%PYTHON_SITELIBDIR%%/samba/remove_dc.py %%PYTHON_SITELIBDIR%%/samba/samba3/__init__.py %%PYTHON_SITELIBDIR%%/samba/samba3/libsmb_samba_internal.so %%PYTHON_SITELIBDIR%%/samba/samba3/param.so %%PYTHON_SITELIBDIR%%/samba/samba3/passdb.so %%PYTHON_SITELIBDIR%%/samba/samba3/smbd.so %%PYTHON_SITELIBDIR%%/samba/samdb.py %%PYTHON_SITELIBDIR%%/samba/schema.py %%PYTHON_SITELIBDIR%%/samba/sd_utils.py %%PYTHON_SITELIBDIR%%/samba/security.so %%PYTHON_SITELIBDIR%%/samba/sites.py -%%PYTHON_SITELIBDIR%%/samba/smb.so %%PYTHON_SITELIBDIR%%/samba/subnets.py %%PYTHON_SITELIBDIR%%/samba/subunit/__init__.py %%PYTHON_SITELIBDIR%%/samba/subunit/run.py %%PYTHON_SITELIBDIR%%/samba/tdb_util.py %%PYTHON_SITELIBDIR%%/samba/tests/__init__.py %%PYTHON_SITELIBDIR%%/samba/tests/audit_log_base.py %%PYTHON_SITELIBDIR%%/samba/tests/audit_log_dsdb.py %%PYTHON_SITELIBDIR%%/samba/tests/audit_log_pass_change.py %%PYTHON_SITELIBDIR%%/samba/tests/auth_log_base.py %%PYTHON_SITELIBDIR%%/samba/tests/auth_log_ncalrpc.py %%PYTHON_SITELIBDIR%%/samba/tests/auth_log_netlogon_bad_creds.py %%PYTHON_SITELIBDIR%%/samba/tests/auth_log_netlogon.py %%PYTHON_SITELIBDIR%%/samba/tests/auth_log_pass_change.py %%PYTHON_SITELIBDIR%%/samba/tests/auth_log_samlogon.py +%%PYTHON_SITELIBDIR%%/samba/tests/auth_log_winbind.py %%PYTHON_SITELIBDIR%%/samba/tests/auth_log.py %%PYTHON_SITELIBDIR%%/samba/tests/auth.py %%PYTHON_SITELIBDIR%%/samba/tests/blackbox/__init__.py %%PYTHON_SITELIBDIR%%/samba/tests/blackbox/bug13653.py %%PYTHON_SITELIBDIR%%/samba/tests/blackbox/check_output.py +%%PYTHON_SITELIBDIR%%/samba/tests/blackbox/downgradedatabase.py %%PYTHON_SITELIBDIR%%/samba/tests/blackbox/ndrdump.py %%PYTHON_SITELIBDIR%%/samba/tests/blackbox/netads_json.py %%PYTHON_SITELIBDIR%%/samba/tests/blackbox/samba_dnsupdate.py %%PYTHON_SITELIBDIR%%/samba/tests/blackbox/smbcontrol_process.py %%PYTHON_SITELIBDIR%%/samba/tests/blackbox/smbcontrol.py %%PYTHON_SITELIBDIR%%/samba/tests/blackbox/traffic_learner.py %%PYTHON_SITELIBDIR%%/samba/tests/blackbox/traffic_replay.py %%PYTHON_SITELIBDIR%%/samba/tests/blackbox/traffic_summary.py -%%PYTHON_SITELIBDIR%%/samba/tests/blackbox/undoguididx.py %%PYTHON_SITELIBDIR%%/samba/tests/common.py %%PYTHON_SITELIBDIR%%/samba/tests/complex_expressions.py %%PYTHON_SITELIBDIR%%/samba/tests/core.py %%PYTHON_SITELIBDIR%%/samba/tests/credentials.py %%PYTHON_SITELIBDIR%%/samba/tests/dcerpc/__init__.py %%PYTHON_SITELIBDIR%%/samba/tests/dcerpc/array.py %%PYTHON_SITELIBDIR%%/samba/tests/dcerpc/bare.py %%PYTHON_SITELIBDIR%%/samba/tests/dcerpc/dnsserver.py %%PYTHON_SITELIBDIR%%/samba/tests/dcerpc/integer.py %%PYTHON_SITELIBDIR%%/samba/tests/dcerpc/misc.py %%PYTHON_SITELIBDIR%%/samba/tests/dcerpc/raw_protocol.py %%PYTHON_SITELIBDIR%%/samba/tests/dcerpc/raw_testcase.py %%PYTHON_SITELIBDIR%%/samba/tests/dcerpc/registry.py %%PYTHON_SITELIBDIR%%/samba/tests/dcerpc/rpc_talloc.py %%PYTHON_SITELIBDIR%%/samba/tests/dcerpc/rpcecho.py %%PYTHON_SITELIBDIR%%/samba/tests/dcerpc/sam.py %%PYTHON_SITELIBDIR%%/samba/tests/dcerpc/srvsvc.py %%PYTHON_SITELIBDIR%%/samba/tests/dcerpc/string_tests.py %%PYTHON_SITELIBDIR%%/samba/tests/dcerpc/testrpc.py %%PYTHON_SITELIBDIR%%/samba/tests/dcerpc/unix.py %%PYTHON_SITELIBDIR%%/samba/tests/dckeytab.py %%PYTHON_SITELIBDIR%%/samba/tests/dns_base.py -%%PYTHON_SITELIBDIR%%/samba/tests/dns_forwarder_helpers/dns_hub.py %%PYTHON_SITELIBDIR%%/samba/tests/dns_forwarder_helpers/server.py %%PYTHON_SITELIBDIR%%/samba/tests/dns_forwarder.py %%PYTHON_SITELIBDIR%%/samba/tests/dns_invalid.py %%PYTHON_SITELIBDIR%%/samba/tests/dns_tkey.py %%PYTHON_SITELIBDIR%%/samba/tests/dns_wildcard.py %%PYTHON_SITELIBDIR%%/samba/tests/dns.py %%PYTHON_SITELIBDIR%%/samba/tests/docs.py %%PYTHON_SITELIBDIR%%/samba/tests/domain_backup_offline.py %%PYTHON_SITELIBDIR%%/samba/tests/domain_backup.py %%PYTHON_SITELIBDIR%%/samba/tests/dsdb_lock.py %%PYTHON_SITELIBDIR%%/samba/tests/dsdb_schema_attributes.py %%PYTHON_SITELIBDIR%%/samba/tests/dsdb.py %%PYTHON_SITELIBDIR%%/samba/tests/emulate/__init__.py %%PYTHON_SITELIBDIR%%/samba/tests/emulate/traffic_packet.py %%PYTHON_SITELIBDIR%%/samba/tests/emulate/traffic.py %%PYTHON_SITELIBDIR%%/samba/tests/encrypted_secrets.py %%PYTHON_SITELIBDIR%%/samba/tests/gensec.py %%PYTHON_SITELIBDIR%%/samba/tests/get_opt.py %%PYTHON_SITELIBDIR%%/samba/tests/getdcname.py %%PYTHON_SITELIBDIR%%/samba/tests/glue.py %%PYTHON_SITELIBDIR%%/samba/tests/gpo.py %%PYTHON_SITELIBDIR%%/samba/tests/graph.py %%PYTHON_SITELIBDIR%%/samba/tests/group_audit.py %%PYTHON_SITELIBDIR%%/samba/tests/hostconfig.py %%PYTHON_SITELIBDIR%%/samba/tests/join.py %%PYTHON_SITELIBDIR%%/samba/tests/kcc/__init__.py %%PYTHON_SITELIBDIR%%/samba/tests/kcc/graph_utils.py %%PYTHON_SITELIBDIR%%/samba/tests/kcc/graph.py %%PYTHON_SITELIBDIR%%/samba/tests/kcc/kcc_utils.py %%PYTHON_SITELIBDIR%%/samba/tests/kcc/ldif_import_export.py %%PYTHON_SITELIBDIR%%/samba/tests/krb5_credentials.py %%PYTHON_SITELIBDIR%%/samba/tests/ldap_referrals.py %%PYTHON_SITELIBDIR%%/samba/tests/libsmb.py %%PYTHON_SITELIBDIR%%/samba/tests/loadparm.py %%PYTHON_SITELIBDIR%%/samba/tests/lsa_string.py %%PYTHON_SITELIBDIR%%/samba/tests/messaging.py %%PYTHON_SITELIBDIR%%/samba/tests/net_join_no_spnego.py %%PYTHON_SITELIBDIR%%/samba/tests/net_join.py %%PYTHON_SITELIBDIR%%/samba/tests/netbios.py %%PYTHON_SITELIBDIR%%/samba/tests/netcmd.py %%PYTHON_SITELIBDIR%%/samba/tests/netlogonsvc.py %%PYTHON_SITELIBDIR%%/samba/tests/ntacls_backup.py %%PYTHON_SITELIBDIR%%/samba/tests/ntacls.py %%PYTHON_SITELIBDIR%%/samba/tests/ntlm_auth_base.py %%PYTHON_SITELIBDIR%%/samba/tests/ntlm_auth_krb5.py %%PYTHON_SITELIBDIR%%/samba/tests/ntlm_auth.py %%PYTHON_SITELIBDIR%%/samba/tests/ntlmdisabled.py %%PYTHON_SITELIBDIR%%/samba/tests/pam_winbind_chauthtok.py %%PYTHON_SITELIBDIR%%/samba/tests/pam_winbind_warn_pwd_expire.py %%PYTHON_SITELIBDIR%%/samba/tests/pam_winbind.py %%PYTHON_SITELIBDIR%%/samba/tests/param.py %%PYTHON_SITELIBDIR%%/samba/tests/password_hash_fl2003.py %%PYTHON_SITELIBDIR%%/samba/tests/password_hash_fl2008.py %%PYTHON_SITELIBDIR%%/samba/tests/password_hash_gpgme.py %%PYTHON_SITELIBDIR%%/samba/tests/password_hash_ldap.py %%PYTHON_SITELIBDIR%%/samba/tests/password_hash.py %%PYTHON_SITELIBDIR%%/samba/tests/password_quality.py %%PYTHON_SITELIBDIR%%/samba/tests/password_test.py %%PYTHON_SITELIBDIR%%/samba/tests/policy.py %%PYTHON_SITELIBDIR%%/samba/tests/posixacl.py %%PYTHON_SITELIBDIR%%/samba/tests/prefork_restart.py %%PYTHON_SITELIBDIR%%/samba/tests/process_limits.py %%PYTHON_SITELIBDIR%%/samba/tests/provision.py %%PYTHON_SITELIBDIR%%/samba/tests/pso.py %%PYTHON_SITELIBDIR%%/samba/tests/py_credentials.py %%PYTHON_SITELIBDIR%%/samba/tests/registry.py %%PYTHON_SITELIBDIR%%/samba/tests/s3idmapdb.py %%PYTHON_SITELIBDIR%%/samba/tests/s3param.py %%PYTHON_SITELIBDIR%%/samba/tests/s3passdb.py %%PYTHON_SITELIBDIR%%/samba/tests/s3registry.py %%PYTHON_SITELIBDIR%%/samba/tests/s3windb.py %%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/__init__.py %%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/base.py %%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/computer.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/contact.py %%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/demote.py %%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/dnscmd.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/drs_clone_dc_data_lmdb_size.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/dsacl.py %%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/forest.py %%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/fsmo.py %%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/gpo.py %%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/group.py %%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/help.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/join_lmdb_size.py %%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/join.py %%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/ntacl.py %%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/ou.py %%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/passwordsettings.py %%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/processes.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/promote_dc_lmdb_size.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/provision_lmdb_size.py %%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/provision_password_check.py %%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/rodc.py %%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/schema.py %%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/sites.py %%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/timecmd.py %%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/user_check_password_script.py %%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/user_virtualCryptSHA.py %%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/user_wdigest.py %%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/user.py %%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/visualize_drs.py %%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/visualize.py %%PYTHON_SITELIBDIR%%/samba/tests/samba_upgradedns_lmdb.py %%PYTHON_SITELIBDIR%%/samba/tests/samba3sam.py %%PYTHON_SITELIBDIR%%/samba/tests/samdb_api.py %%PYTHON_SITELIBDIR%%/samba/tests/samdb.py %%PYTHON_SITELIBDIR%%/samba/tests/security.py +%%PYTHON_SITELIBDIR%%/samba/tests/segfault.py %%PYTHON_SITELIBDIR%%/samba/tests/smb.py %%PYTHON_SITELIBDIR%%/samba/tests/smbd_base.py %%PYTHON_SITELIBDIR%%/samba/tests/smbd_fuzztest.py %%PYTHON_SITELIBDIR%%/samba/tests/source.py %%PYTHON_SITELIBDIR%%/samba/tests/strings.py %%PYTHON_SITELIBDIR%%/samba/tests/subunitrun.py %%PYTHON_SITELIBDIR%%/samba/tests/tdb_util.py %%PYTHON_SITELIBDIR%%/samba/tests/upgrade.py %%PYTHON_SITELIBDIR%%/samba/tests/upgradeprovision.py %%PYTHON_SITELIBDIR%%/samba/tests/upgradeprovisionneeddc.py +%%PYTHON_SITELIBDIR%%/samba/tests/usage.py %%PYTHON_SITELIBDIR%%/samba/tests/xattr.py %%PYTHON_SITELIBDIR%%/samba/third_party/__init__.py %%PYTHON_SITELIBDIR%%/samba/upgrade.py %%PYTHON_SITELIBDIR%%/samba/upgradehelpers.py -%%PYTHON_SITELIBDIR%%/samba/web_server/__init__.py %%PYTHON_SITELIBDIR%%/samba/uptodateness.py %%PYTHON_SITELIBDIR%%/samba/werror.so %%PYTHON_SITELIBDIR%%/samba/xattr.py -@dir %%PYTHON_SITELIBDIR%%/samba/web_server @dir %%PYTHON_SITELIBDIR%%/samba/tests/samba_tool @dir %%PYTHON_SITELIBDIR%%/samba/tests/dcerpc @dir %%PYTHON_SITELIBDIR%%/samba/tests/blackbox @dir %%PYTHON_SITELIBDIR%%/samba/tests @dir %%PYTHON_SITELIBDIR%%/samba/samba3 @dir %%PYTHON_SITELIBDIR%%/samba/provision @dir %%PYTHON_SITELIBDIR%%/samba/netcmd @dir %%PYTHON_SITELIBDIR%%/samba/dcerpc @dir %%PYTHON_SITELIBDIR%%/samba @comment Use bundled libraries %%SAMBA4_BUNDLED_CMOCKA%%lib/samba4/private/libcmocka-samba4.so %%SAMBA4_BUNDLED_LDB%%%%SAMBA4_PYTHON%%%%PYTHON_SITELIBDIR%%/_ldb_text.py %%SAMBA4_BUNDLED_LDB%%%%SAMBA4_PYTHON%%%%PYTHON_SITELIBDIR%%/ldb.so -%%SAMBA4_BUNDLED_LDB%%%%SAMBA4_PYTHON%%lib/samba4/private/libpyldb-util.so.1 +%%SAMBA4_BUNDLED_LDB%%%%SAMBA4_PYTHON%%lib/samba4/private/libpyldb-util.so.2 %%SAMBA4_BUNDLED_LDB%%bin/samba-ldbdump %%SAMBA4_BUNDLED_LDB%%bin/samba-ldbadd %%SAMBA4_BUNDLED_LDB%%bin/samba-ldbdel %%SAMBA4_BUNDLED_LDB%%bin/samba-ldbedit %%SAMBA4_BUNDLED_LDB%%bin/samba-ldbmodify %%SAMBA4_BUNDLED_LDB%%bin/samba-ldbrename %%SAMBA4_BUNDLED_LDB%%bin/samba-ldbsearch %%SAMBA4_BUNDLED_LDB%%lib/samba4/private/libldb-cmdline-samba4.so %%SAMBA4_BUNDLED_LDB%%lib/samba4/private/libldb-key-value-samba4.so %%SAMBA4_BUNDLED_LDB%%lib/samba4/private/libldb-tdb-err-map-samba4.so %%SAMBA4_BUNDLED_LDB%%lib/samba4/private/libldb-tdb-int-samba4.so -%%SAMBA4_BUNDLED_LDB%%lib/samba4/private/libldb.so.1 +%%SAMBA4_BUNDLED_LDB%%lib/samba4/private/libldb.so.2 +%%AD_DC%%%%SAMBA4_BUNDLED_LDB%%%%SAMBA4_MODULEDIR%%/ldb/count_attrs.so %%SAMBA4_BUNDLED_LDB%%%%SAMBA4_MODULEDIR%%/ldb/asq.so %%SAMBA4_BUNDLED_LDB%%%%SAMBA4_MODULEDIR%%/ldb/ldb.so %%SAMBA4_BUNDLED_LDB%%%%SAMBA4_MODULEDIR%%/ldb/paged_searches.so %%SAMBA4_BUNDLED_LDB%%%%SAMBA4_MODULEDIR%%/ldb/rdn_name.so %%SAMBA4_BUNDLED_LDB%%%%SAMBA4_MODULEDIR%%/ldb/sample.so %%SAMBA4_BUNDLED_LDB%%%%SAMBA4_MODULEDIR%%/ldb/server_sort.so %%SAMBA4_BUNDLED_LDB%%%%SAMBA4_MODULEDIR%%/ldb/skel.so %%SAMBA4_BUNDLED_LDB%%%%SAMBA4_MODULEDIR%%/ldb/tdb.so %%SAMBA4_BUNDLED_TALLOC%%%%SAMBA4_PYTHON%%%%PYTHON_SITELIBDIR%%/talloc.so %%SAMBA4_BUNDLED_TALLOC%%%%SAMBA4_PYTHON%%lib/samba4/private/libpytalloc-util.so.2 %%SAMBA4_BUNDLED_TALLOC%%lib/samba4/private/libtalloc.so.2 %%SAMBA4_BUNDLED_TALLOC%%man/man3/talloc.3.gz %%SAMBA4_BUNDLED_TDB%%%%SAMBA4_PYTHON%%%%PYTHON_SITELIBDIR%%/_tdb_text.py %%SAMBA4_BUNDLED_TDB%%%%SAMBA4_PYTHON%%%%PYTHON_SITELIBDIR%%/tdb.so %%SAMBA4_BUNDLED_TDB%%bin/samba-tdbbackup %%SAMBA4_BUNDLED_TDB%%bin/samba-tdbdump %%SAMBA4_BUNDLED_TDB%%bin/samba-tdbrestore %%SAMBA4_BUNDLED_TDB%%bin/samba-tdbtool %%SAMBA4_BUNDLED_TDB%%lib/samba4/private/libtdb.so.1 %%SAMBA4_BUNDLED_TEVENT%%%%SAMBA4_PYTHON%%%%PYTHON_SITELIBDIR%%/_tevent.so %%SAMBA4_BUNDLED_TEVENT%%%%SAMBA4_PYTHON%%%%PYTHON_SITELIBDIR%%/tevent.py %%SAMBA4_BUNDLED_TEVENT%%lib/samba4/private/libtevent.so.0 %%SAMBA4_BUNDLED_LDB%%man/man1/samba-ldbadd.1.gz %%SAMBA4_BUNDLED_LDB%%man/man1/samba-ldbdel.1.gz %%SAMBA4_BUNDLED_LDB%%man/man1/samba-ldbedit.1.gz %%SAMBA4_BUNDLED_LDB%%man/man1/samba-ldbmodify.1.gz %%SAMBA4_BUNDLED_LDB%%man/man1/samba-ldbrename.1.gz %%SAMBA4_BUNDLED_LDB%%man/man1/samba-ldbsearch.1.gz %%SAMBA4_BUNDLED_TDB%%man/man8/samba-tdbbackup.8.gz %%SAMBA4_BUNDLED_TDB%%man/man8/samba-tdbdump.8.gz %%SAMBA4_BUNDLED_TDB%%man/man8/samba-tdbrestore.8.gz %%SAMBA4_BUNDLED_TDB%%man/man8/samba-tdbtool.8.gz