diff --git a/net/samba423/Makefile b/net/samba423/Makefile index df05b4a2362f..e765790206c8 100644 --- a/net/samba423/Makefile +++ b/net/samba423/Makefile @@ -1,512 +1,512 @@ PORTNAME= samba423 -DISTVERSION= 4.23.4 +DISTVERSION= 4.23.6 CATEGORIES?= net MASTER_SITES= SAMBA/samba/stable SAMBA/samba/rc DISTNAME= samba-${DISTVERSION:S|.p|pre|:S|.r|rc|:S|.t|tp|:S|.a|alpha|} MAINTAINER= samba@FreeBSD.org COMMENT= Free SMB/CIFS and AD/DC server and client for Unix WWW= https://gitlab.com/samba-freebsd/ LICENSE= GPLv3+ LICENSE_FILE= ${WRKSRC}/COPYING # The SAMBA4_BUNDLED_* variables are deprecated. .for bvar in SAMBA4_BUNDLED_CMOCKA SAMBA4_BUNDLED_TALLOC SAMBA4_BUNDLED_TDB SAMBA4_BUNDLED_TEVENT . if defined(${bvar}) && ${${bvar}} == yes IGNORE= does not support bundling dependencies via ${bvar}; use option ${bvar:S/^SAMBA4_//} instead . endif .endfor BUILD_DEPENDS= ${_JANSSON_DEPENDS} \ ${_LIBARCHIVE_DEPENDS} \ ${_TASN1_DEPENDS} \ p5-Parse-Yapp>=0:devel/p5-Parse-Yapp # Unconditional dependencies which can't be switched off if present: # - GnuTLS: libgnutls.so and libgcrypt.so # - Iconv # - inotify # - libsunacl: provides NFSv4 ACL glue. # - libicu # - unwind # - p5-Parse-Yapp: needed for the IDL compiler. # - popt # - Readline: required by Python; USES=readline pollutes CPPFLAGS, so we add # devel/readline to LIB_DEPENDS explicitly instead. LIB_DEPENDS= libgnutls.so:security/gnutls \ libgcrypt.so:security/libgcrypt \ libiconv.so:converters/libiconv \ libinotify.so:devel/libinotify \ libsunacl.so:sysutils/libsunacl \ libreadline.so:devel/readline \ libpopt.so:devel/popt \ libunwind.so:devel/libunwind \ libicui18n.so:devel/icu \ libicuuc.so:devel/icu \ ${_VFS_SNAPPER_LIB_DEPENDS} RUN_DEPENDS= ${_JANSSON_DEPENDS} \ ${_LIBARCHIVE_DEPENDS} \ ${_TASN1_DEPENDS} TEST_DEPENDS= bash:shells/bash \ tshark:net/wireshark@nox11 USES= cpe compiler:c++11-lang iconv \ localbase:ldflags ncurses perl5 pkgconfig \ shebangfix waf gettext-runtime samba:self CPE_VENDOR= samba CPE_PRODUCT= samba USE_LDCONFIG= ${SAMBA_LIBDIR} USE_PERL5= build USE_RC_SUBR= samba_server WAF_CMD= buildtools/bin/waf # Make sure that the right version of Python is used by the tools # https://bugzilla.samba.org/show_bug.cgi?id=7305 SHEBANG_FILES= source3/script* source4/scripting/bin/* selftest/* CONFIGURE_LOG= bin/config.log CONFIGURE_ARGS= --mandir="${PREFIX}/share/man" \ --sysconfdir="${ETCDIR}" \ --includedir="${SAMBA_INCLUDEDIR}" \ --datadir="${DATADIR}" \ --libdir="${SAMBA_LIBDIR}" \ --with-privatelibdir="${SAMBA_LIBDIR}/private" \ --with-pammodulesdir="${_PAMDIR}" \ --with-modulesdir="${SAMBA_MODULESDIR}" \ --with-ldbmodulesdir="${SAMBA_LDB_MODULESDIR}" \ --with-pkgconfigdir="${_PKGCONFIGDIR}" \ --localstatedir="${_LOCALSTATEDIR}" \ --with-piddir="${_RUNDIR}" \ --with-sockets-dir="${_RUNDIR}" \ --with-privileged-socket-dir="${_RUNDIR}" \ --with-lockdir="${_LOCKDIR}" \ --with-statedir="${_LOCKDIR}" \ --with-cachedir="${_LOCKDIR}" \ --with-bind-dns-dir=${_BINDDNSDIR} \ --with-privatedir="${_PRIVATEDIR}" \ --with-logfilebase="${_LOGDIR}" CONFIGURE_ARGS+= \ --with-pam \ --with-iconv \ --with-libiconv="${ICONV_PREFIX}" \ --with-winbind \ --with-regedit \ --disable-rpath \ --without-lttng \ --without-gettext \ --enable-pthreadpool \ --without-fake-kaserver \ --without-systemd \ --with-libarchive \ --with-acl-support \ --with-sendfile-support \ --disable-ctdb-tests \ --disable-spotlight CONFIGURE_ARGS+= ${_PRIVATE_LIBS:D--private-libraries="${_PRIVATE_LIBS:Q:C|(\\\\ )+|,|g:S|\\||g}"} CONFIGURE_ARGS+= ${_BUNDLED_LIBS:D--bundled-libraries="${_BUNDLED_LIBS:Q:C|(\\\\ )+|,|g:S|\\||g}"} CONFIGURE_ARGS+= ${_SHARED_MODULES:D--with-shared-modules="${_SHARED_MODULES:C|-|_|:Q:C|(\\\\ )+|,|g:S|\\||g}"} CONFIGURE_ARGS+= ${WITH_DEBUG:D --verbose --enable-debug} CONFIGURE_ENV= PTHREAD_LDFLAGS="-lpthread" \ PYTHONHASHSEED=1 MAKE_ARGS= ${WITH_DEBUG:D --verbose} MAKE_ENV= PYTHONHASHSEED=1 \ RPCGEN_CPP="${CPP}" TEST_ENV= PYTHON="${PYTHON_CMD}" \ SHA1SUM=/sbin/sha1 \ SHA256SUM=${SHA256} \ MD5SUM=${MD5} \ PYTHONDONTWRITEBYTECODE=1 # No fancy color error messages CFLAGS+= ${_CFLAGS_${CHOSEN_COMPILER_TYPE}} .ifnmake portclippy _CFLAGS_clang= -fno-color-diagnostics .endif CONFIGURE_ENV+= NOCOLOR=yes WAF_LOG_FORMAT='%(c1)s%(zone)s%(c2)s %(message)s' FORTIFY_UNSAFE= yes MAKE_ENV+= NOCOLOR=yes WAF_LOG_FORMAT='%(c1)s%(zone)s%(c2)s %(message)s' # for libexecinfo: (so that __builtin_frame_address() finds the top of the stack) CFLAGS_amd64+= -fno-omit-frame-pointer DEBUG_FLAGS?= -g -ggdb3 -O0 # Some symbols in samba's linker version scripts are not defined, but since the # scripts are generated dynamically, suppress errors with lld >= 17 due to these # undefined symbols. LDFLAGS+= -Wl,--undefined-version CONFLICTS_INSTALL= ldb2[0-9]-* samba4* ETCDIR= ${PREFIX}/etc EXTRA_PATCHES= \ ${PATCHDIR}/0001-Compact-and-simplify-modules-build-and-config-genera.patch:-p1 \ ${PATCHDIR}/0002-Adjust-abi_gen.sh-script-to-run-under-FreeBSD-with-i.patch:-p1 \ ${PATCHDIR}/0003-Mask-CLang-prototype-warnings-in-kadm5-admin.h.patch:-p1 \ ${PATCHDIR}/0004-On-FreeBSD-date-1-has-different-semantics-than-on-Li.patch:-p1 \ ${PATCHDIR}/0005-Include-jemalloc-jemalloc.h-if-ENABLE_JEMALLOC-is-se.patch:-p1 \ ${PATCHDIR}/0006-Install-nss_-modules-into-PAMMODULESDIR-path.patch:-p1 \ ${PATCHDIR}/0007-Use-macro-value-as-a-default-backlog-size-for-the-li.patch:-p1 \ ${PATCHDIR}/0008-Brute-force-work-around-usage-of-Linux-specific-m-fl.patch:-p1 \ ${PATCHDIR}/0009-Make-sure-that-config-checks-fail-if-the-warning-is-.patch:-p1 \ ${PATCHDIR}/0010-Add-option-with-pkgconfigdir-to-specify-alternative-.patch:-p1 \ ${PATCHDIR}/0011-Use-provided-by-port-location-of-the-XML-catalog.patch:-p1 \ ${PATCHDIR}/0012-Create-shared-libraries-according-to-the-FreeBSD-spe.patch:-p1 \ ${PATCHDIR}/0014-Add-option-to-disable-CTDB-tests-failing-on-FreeBSD-.patch:-p1 \ ${PATCHDIR}/0015-Add-extra-debug-class-to-trck-down-DB-locking-code.patch:-p1 \ ${PATCHDIR}/0016-Make-ldb_schema_attribute_compare-a-stable-comparisi.patch:-p1 \ ${PATCHDIR}/0017-Use-arc4random-when-available-to-generate-random-tal.patch:-p1 \ ${PATCHDIR}/0018-Add-configuration-option-that-allows-to-choose-alter.patch:-p1 \ ${PATCHDIR}/0019-From-923bc7a1afeb0b920e60e14846987ae1d2d7dca4-Mon-Se.patch:-p1 \ ${PATCHDIR}/0020-FreeBSD-12-between-r336017-and-r342928-wrongfuly-ret.patch:-p1 \ ${PATCHDIR}/0021-Fix-casting-warnings-in-the-nfs_quota-debug-message.patch:-p1 \ ${PATCHDIR}/0022-Clean-up-UTMP-handling-code-and-add-FreeBSD-support..patch:-p1 \ ${PATCHDIR}/0023-Add-cmd_get_quota-test-function-into-vfstest-to-test.patch:-p1 \ ${PATCHDIR}/0025-From-d9b748869a8f4018ebee302aae8246bf29f60309-Mon-Se.patch:-p1 \ ${PATCHDIR}/0028-s3-lib-system-add-FreeBSD-proc_fd_pattern.patch \ SUB_FILES= pkg-message README.FreeBSD SUB_LIST= ${_SAMBA_SUB} # PLIST must be defined here explicitly as we append to PLIST later on to # handle extra pkg-plist files like pkg-plist.python. PLIST?= ${PKGDIR}/pkg-plist PLIST_DIRS= ${SAMBA_MODULESDIR} \ ${_MODULE_CLASSES:S|^|${SAMBA_MODULESDIR}/|} # ":C|_|/|:C|-|_|" is a workaround for turning "nss-info_*" modules into "nss_info/*". PLIST_FILES+= ${_SHARED_MODULES:C|_|/|:C|-|_|:S|^|${SAMBA_MODULESDIR}/|:S|$|.so|} PLIST_SUB= ${_SAMBA_SUB} PORTDOCS= README.FreeBSD OPTIONS_DEFINE= AD_DC ADS CLUSTER CUPS DOCS FAM LDAP GPGME \ MANPAGES PROFILE PYTHON3 QUOTAS \ SYSLOG UTMP OPTIONS_DEFAULT= AD_DC ADS DOCS FAM LDAP MANPAGES \ PROFILE PYTHON3 QUOTAS SYSLOG UTMP \ FRUIT GSSAPI_BUILTIN AVAHI OPTIONS_GROUP= BUNDLED_DEPS DEVELOPMENT VFS OPTIONS_GROUP_BUNDLED_DEPS= BUNDLED_CMOCKA BUNDLED_TALLOC BUNDLED_TDB BUNDLED_TEVENT OPTIONS_GROUP_DEVELOPMENT= DEVELOPER MEMORY_DEBUG TEST OPTIONS_GROUP_VFS= FRUIT GLUSTERFS OPTIONS_SINGLE= GSSAPI ZEROCONF OPTIONS_SINGLE_GSSAPI= GSSAPI_BUILTIN GSSAPI_MIT OPTIONS_SINGLE_ZEROCONF= ZEROCONF_NONE AVAHI MDNSRESPONDER OPTIONS_SUB= yes ADS_DESC= Active Directory client AD_DC_DESC= Active Directory Domain Controller(implies PYTHON3) BUNDLED_CMOCKA_DESC= Bundle cmocka instead of depending on a standalone port BUNDLED_DEPS_DESC= Bundled dependencies BUNDLED_TALLOC_DESC= Bundle talloc instead of depending on a standalone port BUNDLED_TDB_DESC= Bundle TDB instead of depending on a standalone port BUNDLED_TEVENT_DESC= Bundle Tevent instead of depending on a standalone port CLUSTER_DESC= Clustering support DEVELOPER_DESC= With developer framework DEVELOPMENT_DESC= Testing, debugging, and development FAM_DESC= File Alteration Monitor FRUIT_DESC= MacOSX and TimeMachine support GLUSTERFS_DESC= GlusterFS support GPGME_DESC= GpgME support GSSAPI_BUILTIN_DESC= GSSAPI support via bundled Heimdal LDAP_DESC= LDAP client MEMORY_DEBUG_DESC= Debug memory allocator PROFILE_DESC= Profiling data QUOTAS_DESC= Disk quota support UTMP_DESC= UTMP accounting VFS_DESC= VFS modules ZEROCONF_DESC= Zero configuration networking ZEROCONF_NONE_DESC= Zeroconf support is absent ADS_IMPLIES= LDAP ADS_CONFIGURE_WITH= ads # List of extra modules taken from RHEL build # https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=197320 ADS_VARS= _SHARED_MODULES+="idmap_ad idmap_rfc2307 nss-info_template nss-info_rfc2307 nss-info_sfu nss-info_sfu20" AD_DC_IMPLIES= ADS PYTHON3 AD_DC_BUILD_DEPENDS= ${_LMDB_DEPDENDS} AD_DC_RUN_DEPENDS= ${_LMDB_DEPDENDS} AD_DC_CONFIGURE_OFF= --without-ad-dc --without-ldb-lmdb AD_DC_VARS= PLIST+=${PKGDIR}/pkg-plist.ad_dc # samba-tool requires those for *upgrade AD_DC_BUILD_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}markdown>=3.3.7:textproc/py-markdown@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}dnspython>=2.2.1:dns/py-dnspython@${PY_FLAVOR} AD_DC_RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}markdown>=3.3.7:textproc/py-markdown@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}dnspython>=2.2.1:dns/py-dnspython@${PY_FLAVOR} AVAHI_LIB_DEPENDS= libavahi-client.so:net/avahi-app AVAHI_CONFIGURE_ENABLE= avahi AVAHI_VARS= _SAMBA_SERVICES+=avahi_daemon BUNDLED_CMOCKA_BUILD_DEPENDS_OFF= cmocka>=1.1.3:sysutils/cmocka BUNDLED_CMOCKA_TEST_DEPENDS_OFF= cmocka>=1.1.3:sysutils/cmocka BUNDLED_CMOCKA_CONFLICTS_INSTALL= cmocka-1.* BUNDLED_CMOCKA_VARS= _BUNDLED_LIBS+=cmocka \ _BUNDLED_LIB_replace=replace BUNDLED_CMOCKA_VARS_OFF= _BUNDLED_LIBS+=!cmocka BUNDLED_TALLOC_BUILD_DEPENDS_OFF= talloc243>=2.4.3:devel/talloc243 BUNDLED_TALLOC_RUN_DEPENDS_OFF= talloc243>=2.4.3:devel/talloc243 BUNDLED_TALLOC_CONFLICTS_INSTALL= talloc-* talloc2* BUNDLED_TALLOC_VARS= _BUNDLED_LIBS+=talloc \ _BUNDLED_LIB_replace=replace BUNDLED_TALLOC_VARS_OFF= _BUNDLED_LIBS+=!talloc BUNDLED_TDB_BUILD_DEPENDS_OFF= tdb1>=1.4.14:databases/tdb1 BUNDLED_TDB_RUN_DEPENDS_OFF= tdb1>=1.4.14:databases/tdb1 BUNDLED_TDB_CONFLICTS_INSTALL= tdb-* tdb1* BUNDLED_TDB_VARS= _BUNDLED_LIBS+=tdb \ _BUNDLED_LIB_replace=replace BUNDLED_TDB_VARS_OFF= _BUNDLED_LIBS+=!tdb BUNDLED_TEVENT_BUILD_DEPENDS_OFF= tevent017>=0.17.1:devel/tevent017 BUNDLED_TEVENT_RUN_DEPENDS_OFF= tevent017>=0.17.1:devel/tevent017 BUNDLED_TEVENT_CONFLICTS_INSTALL= tevent-* tevent0* BUNDLED_TEVENT_VARS= _BUNDLED_LIBS+=tevent \ _BUNDLED_LIB_replace=replace BUNDLED_TEVENT_VARS_OFF= _BUNDLED_LIBS+=!tevent CLUSTER_LIB_DEPENDS= libpcap.so:net/libpcap CLUSTER_CONFIGURE_WITH= cluster-support CLUSTER_VARS= PLIST+=${PKGDIR}/pkg-plist.cluster CUPS_LIB_DEPENDS= libcups.so:print/cups CUPS_CONFIGURE_ENABLE= cups iprint DEVELOPER_BUILD_DEPENDS= ${_LMDB_DEPDENDS} \ ${_GDB_CMD}:devel/gdb DEVELOPER_RUN_DEPENDS= ${_LMDB_DEPDENDS} DEVELOPER_TEST_DEPENDS= ${_GDB_CMD}:devel/gdb DEVELOPER_CONFIGURE_ON= --enable-developer --enable-selftest --abi-check-disable DEVELOPER_CONFIGURE_ENV= WAF_CMD_FORMAT=string DEVELOPER_VARS= _SHARED_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" DEVELOPER_VARS_OFF= _GDB_CMD=true # https://bugzilla.samba.org/show_bug.cgi?id=9545 FAM_LIB_DEPENDS= libfam.so.0:devel/gamin FAM_CONFIGURE_WITH= fam FRUIT_PREVENTS= ZEROCONF_NONE FRUIT_PREVENTS_MSG= MacOSX support requires Zeroconf(AVAHI or MDNSRESPONDER) FRUIT_PLIST_FILES= %%MANPAGES%%share/man/man8/vfs_fruit.8.gz FRUIT_VARS= _SHARED_MODULES+=vfs_fruit GLUSTERFS_LIB_DEPENDS= libglusterfs.so:net/glusterfs GLUSTERFS_CONFIGURE_ENABLE= glusterfs GLUSTERFS_PLIST_FILES= %%MANPAGES%%share/man/man8/vfs_glusterfs.8.gz GLUSTERFS_VARS= _SHARED_MODULES+=vfs_glusterfs GPGME_LIB_DEPENDS= libgpgme.so:security/gpgme GPGME_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}gpg>=2.0.0:security/py-gpg@${PY_FLAVOR} GPGME_CONFIGURE_WITH= gpgme GSSAPI_BUILTIN_USES= bison GSSAPI_MIT_USES= bison gssapi:mit GSSAPI_MIT_CONFIGURE_ON= --with-system-mitkrb5 \ --with-system-mitkdc=${GSSAPIBASEDIR}/sbin/krb5kdc \ --with-experimental-mit-ad-dc GSSAPI_MIT_PLIST_FILES= ${SAMBA_MODULESDIR}/krb5/winbind_krb5_localauth.so \ %%MANPAGES%%share/man/man8/winbind_krb5_localauth.8.gz \ %%AD_DC%%${SAMBA_LIBDIR}/krb5/plugins/kdb/samba.so LDAP_USES= ldap LDAP_CONFIGURE_WITH= ldap LDAP_VARS= _SHARED_MODULES+=idmap_ldap MANPAGES_BUILD_DEPENDS= ${LOCALBASE}/share/xsl/docbook/manpages/docbook.xsl:textproc/docbook-xsl \ xsltproc:textproc/libxslt MANPAGES_CONFIGURE_ENV_OFF= XSLTPROC="false" MDNSRESPONDER_LIB_DEPENDS= libdns_sd.so:net/mDNSResponder MDNSRESPONDER_CONFIGURE_ENABLE= dnssd MDNSRESPONDER_VARS= _SAMBA_SERVICES+=mdnsd MEMORY_DEBUG_LIB_DEPENDS= libjemalloc.so.2:devel/jemalloc MEMORY_DEBUG_CONFIGURE_ENV= ADDITIONAL_CFLAGS="-DENABLE_JEMALLOC `pkg-config --cflags jemalloc`" ADDITIONAL_LDFLAGS="`pkg-config --libs jemalloc`" PROFILE_CONFIGURE_WITH= profiling-data PYTHON3_USES= python PYTHON3_USES_OFF= python:build,test # Don't cache Python modules PYTHON3_CONFIGURE_ON= --nopycache # Use PYTHON3_CONFIGURE_OFF instead of PYTHON3_CONFIGURE_ENABLE=python because # Samba's configure script does not recognize --enable-python. PYTHON3_CONFIGURE_OFF= --disable-python PYTHON3_MAKE_ENV= PYTHONDONTWRITEBYTECODE=1 PYTHON3_VARS= PLIST+=${PKGDIR}/pkg-plist.python \ _BUNDLED_LIBS+="pyldb pyldb-util" QUOTAS_CONFIGURE_WITH= quotas SYSLOG_CONFIGURE_WITH= syslog TEST_BUILD_DEPENDS= ${_ISO8601_DEPENDS} TEST_RUN_DEPENDS= ${_ISO8601_DEPENDS} UTMP_CONFIGURE_WITH= utmp ZEROCONF_NONE_MAKE_ENV= ZEROCONF=none .ifnmake portclippy . if !defined(WANT_EXP_MODULES) || empty(WANT_EXP_MODULES) WANT_EXP_MODULES= vfs_cacheprime . endif .endif # https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=194046 _GDB_CMD= ${LOCALBASE}/bin/gdb _ISO8601_DEPENDS= ${PYTHON_PKGNAMEPREFIX}iso8601>=0.1.11:devel/py-iso8601@${PY_FLAVOR} _JANSSON_DEPENDS= jansson>=2.10:devel/jansson _LIBARCHIVE_DEPENDS= libarchive>=3.1.2:archivers/libarchive _TASN1_DEPENDS= libtasn1>=3.8:security/libtasn1 .if ${WANT_EXP_MODULES:Mvfs_snapper} _VFS_SNAPPER_LIB_DEPENDS= libdbus-1.so:devel/dbus \ libdbus-glib-1.so:devel/dbus-glib .endif _BUNDLED_LIBS= !libarchive \ com_err \ ${_BUNDLED_LIB_replace} _MODULE_CLASSES= auth bind9 gensec gpext idmap ldb nss_info \ pdb perfcount process_model service vfs _PRIVATE_LIBS= !ldb _SHARED_MODULES+= ${WANT_EXP_MODULES} _SHARED_MODULES+= krb5_async_dns_krb5_locator krb5_winbind_krb5_locator idmap_nss idmap_autorid \ idmap_rid idmap_hash idmap_tdb idmap_tdb2 idmap_script \ nss-info_hash _SHARED_MODULES+= vfs_freebsd _SHARED_MODULES+= vfs_acl_tdb vfs_acl_xattr vfs_aio_fork vfs_aio_pthread \ vfs_audit vfs_cap vfs_catia vfs_commit vfs_crossrename \ vfs_default_quota vfs_dirsort vfs_expand_msdfs \ vfs_extd_audit vfs_fake_perms vfs_full_audit \ vfs_linux_xfs_sgid vfs_media_harmony vfs_offline \ vfs_preopen vfs_readahead vfs_readonly vfs_recycle \ vfs_shadow_copy vfs_shadow_copy2 vfs_shell_snap \ vfs_streams_depot vfs_streams_xattr vfs_syncops \ vfs_time_audit vfs_unityed_media vfs_virusfilter \ vfs_widelinks vfs_worm vfs_xattr_tdb vfs_zfsacl _SAMBA_MAJVERNAME= samba4 _SAMBA_SUB= PKGCONFIGDIR=${_PKGCONFIGDIR_REL} \ SAMBA4_LOGDIR="${_LOGDIR}" \ SAMBA4_RUNDIR="${_RUNDIR}" \ SAMBA4_LOCKDIR="${_LOCKDIR}" \ SAMBA4_LIBDIR="${SAMBA_LIBDIR}" \ SAMBA4_MODULEDIR="${SAMBA_MODULESDIR}" \ SAMBA_LDB_MODULESDIR="${SAMBA_LDB_MODULESDIR}" \ SAMBA4_BINDDNSDIR="${_BINDDNSDIR}" \ SAMBA4_PRIVATEDIR="${_PRIVATEDIR}" \ SAMBA4_CONFIG="${_SAMBA_CONFIG}" \ SAMBA4_SERVICES="${_SAMBA_SERVICES}" _SAMBA_CONFIG= smb4.conf _BINDDNSDIR= ${_LOCKDIR}/bind-dns _LOCALSTATEDIR= ${_VARDIR} _LOCKDIR= ${_VARDIR}/db/${_SAMBA_MAJVERNAME} _LOGDIR= ${_VARDIR}/log/${_SAMBA_MAJVERNAME} _PAMDIR= ${PREFIX}/lib _PKGCONFIGDIR= ${PREFIX}/${_PKGCONFIGDIR_REL} _PKGCONFIGDIR_REL= libdata/pkgconfig _PRIVATEDIR= ${_LOCKDIR}/private _RUNDIR= ${_VARDIR}/run/${_SAMBA_MAJVERNAME} _VARDIR= /var .include .if ${PORT_OPTIONS:MPYTHON3} _BUNDLED_LIBS+= ${"${PORT_OPTIONS:MBUNDLED_TALLOC}" == "BUNDLED_TALLOC":?:!}pytalloc-util _BUNDLED_LIBS+= ${"${PORT_OPTIONS:MBUNDLED_TEVENT}" == "BUNDLED_TEVENT":?:!}pytevent _BUNDLED_LIBS+= ${"${PORT_OPTIONS:MBUNDLED_TDB}" == "BUNDLED_TDB":?:!}pytdb .endif # Only for 64-bit architectures .if ${ARCH} != armv6 && ${ARCH} != armv7 && ${ARCH} != i386 && ${ARCH} != mips && ${ARCH} != powerpc && ${ARCH} != powerpcspe . if (${PORT_OPTIONS:MAD_DC} || ${PORT_OPTIONS:MDEVELOPER}) # LMDB _LMDB_DEPDENDS= lmdb>=0.9.16:databases/lmdb PLIST_FILES+= ${SAMBA_LIBDIR}/private/libldb-mdb-int-private-samba.so \ ${SAMBA_LDB_MODULESDIR}/mdb.so . endif .endif 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%%|${_SAMBA_CONFIG}|g' \ ${PATCH_WRKSRC}/dynconfig/wscript post-install: ${RM} -r ${STAGEDIR}${PYTHON_SITELIBDIR}/samba/third_party ${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR} -name __pycache__ \ -type d -print0 | ${XARGS} -0 -n 1 -t ${RM} -r ${FIND} ${STAGEDIR} -type f -empty -delete .for dir in ${_LOGDIR} ${_RUNDIR} ${_LOCKDIR} ${SAMBA_MODULESDIR} ${INSTALL} -d -m 0755 "${STAGEDIR}${dir}" .endfor ${INSTALL} -d -m 0750 "${STAGEDIR}${_BINDDNSDIR}" ${INSTALL} -d -m 0750 "${STAGEDIR}${_PRIVATEDIR}" .for module_class in ${_MODULE_CLASSES} ${INSTALL} -d -m 0755 "${STAGEDIR}${SAMBA_MODULESDIR}/${module_class}" .endfor .if !defined(WITH_DEBUG) -${FIND} ${STAGEDIR}${PREFIX}/bin ${STAGEDIR}${PREFIX}/sbin ${STAGEDIR}${PREFIX}/libexec \ -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-BUNDLED_TALLOC-on: .if ${PORT_OPTIONS:MMANPAGES} . for f in talloc.3 ${MV} ${STAGEDIR}${PREFIX}/share/man/man3/${f} ${STAGEDIR}${PREFIX}/share/man/man3/samba-${f} . endfor .endif post-install-BUNDLED_TDB-on: .if ${PORT_OPTIONS:MMANPAGES} . for f in tdbbackup.8 tdbdump.8 tdbrestore.8 tdbtool.8 ${MV} ${STAGEDIR}${PREFIX}/share/man/man8/${f} ${STAGEDIR}${PREFIX}/share/man/man8/samba-${f} . endfor .endif post-install-CLUSTER-on: ${RLN} ${STAGEDIR}${PREFIX}/share/ctdb/events/legacy/00.ctdb.script ${STAGEDIR}${PREFIX}/etc/ctdb/events/legacy/00.ctdb.script ${RLN} ${STAGEDIR}${PREFIX}/share/ctdb/events/legacy/01.reclock.script ${STAGEDIR}${PREFIX}/etc/ctdb/events/legacy/01.reclock.script ${RLN} ${STAGEDIR}${PREFIX}/share/ctdb/events/legacy/05.system.script ${STAGEDIR}${PREFIX}/etc/ctdb/events/legacy/05.system.script ${RLN} ${STAGEDIR}${PREFIX}/share/ctdb/events/legacy/10.interface.script ${STAGEDIR}${PREFIX}/etc/ctdb/events/legacy/10.interface.script ${RLN} ${STAGEDIR}${PREFIX}/share/ctdb/events/legacy/95.database.script ${STAGEDIR}${PREFIX}/etc/ctdb/events/legacy/95.database.script ${RLN} ${STAGEDIR}${PREFIX}/libexec/ctdb/statd_callout ${STAGEDIR}${PREFIX}/etc/ctdb/statd-callout post-install-DOCS-on: ${MKDIR} ${STAGEDIR}${DOCSDIR} .for doc in ${PORTDOCS} ${INSTALL_DATA} ${WRKDIR}/${doc} ${STAGEDIR}${DOCSDIR} .endfor post-install-FRUIT-off: ${RM} ${STAGEDIR}${SAMBA_MODULESDIR}/vfs/fruit.so ${RM} ${STAGEDIR}${PREFIX}/share/man/man8/vfs_fruit.8 post-install-MANPAGES-on: ${RLN} ${STAGEDIR}${PREFIX}/share/man/man5/smb.conf.5 ${STAGEDIR}${PREFIX}/share/man/man5/smb4.conf.5 .for f in vfs_aio_linux.8 vfs_btrfs.8 vfs_ceph.8 vfs_gpfs.8 ${RM} ${STAGEDIR}${PREFIX}/share/man/man8/${f} .endfor .include diff --git a/net/samba423/distinfo b/net/samba423/distinfo index bca243260984..feb2b9f3bba8 100644 --- a/net/samba423/distinfo +++ b/net/samba423/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1765737076 -SHA256 (samba-4.23.4.tar.gz) = af429d078a86f1ce16d0d1ecee35c42a3610790b47b84468f31284a8c4060140 -SIZE (samba-4.23.4.tar.gz) = 43298526 +TIMESTAMP = 1773026158 +SHA256 (samba-4.23.6.tar.gz) = e3dabd8b5e42dc97669fa0faef032510a94e496b58f7067082e5036d88f0e702 +SIZE (samba-4.23.6.tar.gz) = 43306831 diff --git a/net/samba423/files/0001-Compact-and-simplify-modules-build-and-config-genera.patch b/net/samba423/files/0001-Compact-and-simplify-modules-build-and-config-genera.patch index d34395bf6f22..bd718febea26 100644 --- a/net/samba423/files/0001-Compact-and-simplify-modules-build-and-config-genera.patch +++ b/net/samba423/files/0001-Compact-and-simplify-modules-build-and-config-genera.patch @@ -1,292 +1,293 @@ From 05e3cc236406680a55e19b204202b63cdaf48ea1 Mon Sep 17 00:00:00 2001 From: "Timur I. Bakeyev" Date: Mon, 1 Aug 2022 04:15:43 +0200 Subject: [PATCH 01/28] Compact and simplify modules build and config generation for Bind 9.x AD DLZ. Signed-off-by: Timur I. Bakeyev --- python/samba/provision/sambadns.py | 68 ++++++++++++------------------ source4/dns_server/dlz_minimal.h | 44 +++++++++---------- source4/dns_server/wscript_build | 62 +++------------------------ source4/setup/named.conf.dlz | 25 +---------- source4/torture/dns/wscript_build | 2 +- 5 files changed, 55 insertions(+), 146 deletions(-) diff --git a/python/samba/provision/sambadns.py b/python/samba/provision/sambadns.py index 404b346a885..8e5a8ba5f25 100644 --- a/python/samba/provision/sambadns.py +++ b/python/samba/provision/sambadns.py @@ -21,6 +21,7 @@ """DNS-related provisioning""" import os +import re import uuid import shutil import time -@@ -1010,52 +1011,37 @@ def create_named_conf(paths, realm, dnsdomain, dns_backend, logger): +@@ -1008,53 +1009,37 @@ stderr=subprocess.STDOUT, cwd='.').communicate()[0] bind_info = get_string(bind_info) - bind9_8 = '#' - bind9_9 = '#' - bind9_10 = '#' - bind9_11 = '#' - bind9_12 = '#' - bind9_14 = '#' - bind9_16 = '#' - bind9_18 = '#' - 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.14') != -1: - bind9_14 = '' - elif bind_info.upper().find('BIND 9.16') != -1: - bind9_16 = '' -- elif bind_info.upper().find('BIND 9.18') != -1: +- elif bind_info.upper().find('BIND 9.18') != -1 \ +- or bind_info.upper().find('BIND 9.20') != -1: - bind9_18 = '' - elif bind_info.upper().find('BIND 9.7') != -1: - raise ProvisioningError("DLZ option incompatible with BIND 9.7.") - elif bind_info.upper().find('BIND_9.13') != -1: - raise ProvisioningError("Only stable/esv releases of BIND are supported.") - elif bind_info.upper().find('BIND_9.15') != -1: - raise ProvisioningError("Only stable/esv releases of BIND are supported.") - elif bind_info.upper().find('BIND_9.17') != -1: - raise ProvisioningError("Only stable/esv releases of BIND are supported.") + 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" + elif bind9_version_minor in [13, 15, 17]: + raise ProvisioningError("Only stable/esv releases of BIND are supported.") + 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 "dlopen %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_14": bind9_14, - "BIND9_16": bind9_16, - "BIND9_18": bind9_18 - }) + "BIND9_DLZ": bind9_dlz + }) def create_named_txt(path, realm, dnsdomain, dnsname, binddns_dir, -diff --git a/source4/dns_server/dlz_minimal.h b/source4/dns_server/dlz_minimal.h + index b7e36e7f8e6..bbdb616deb2 100644 --- a/source4/dns_server/dlz_minimal.h +++ b/source4/dns_server/dlz_minimal.h @@ -26,31 +26,25 @@ #include #include -#if defined (BIND_VERSION_9_8) -# error Bind 9.8 is not supported! -#elif defined (BIND_VERSION_9_9) -# error Bind 9.9 is not supported! -#elif defined (BIND_VERSION_9_10) -# define DLZ_DLOPEN_VERSION 3 -# define DNS_CLIENTINFO_VERSION 1 -# define ISC_BOOLEAN_AS_BOOL 0 -#elif defined (BIND_VERSION_9_11) -# define DLZ_DLOPEN_VERSION 3 -# define DNS_CLIENTINFO_VERSION 2 -# define ISC_BOOLEAN_AS_BOOL 0 -#elif defined (BIND_VERSION_9_12) -# define DLZ_DLOPEN_VERSION 3 -# define DNS_CLIENTINFO_VERSION 2 -# define ISC_BOOLEAN_AS_BOOL 0 -#elif defined (BIND_VERSION_9_14) -# define DLZ_DLOPEN_VERSION 3 -# define DNS_CLIENTINFO_VERSION 2 -#elif defined (BIND_VERSION_9_16) -# define DLZ_DLOPEN_VERSION 3 -# define DNS_CLIENTINFO_VERSION 2 -#elif defined (BIND_VERSION_9_18) -# define DLZ_DLOPEN_VERSION 3 -# define DNS_CLIENTINFO_VERSION 2 +#if defined (BIND_VERSION) +# if BIND_VERSION == 908 +# error Bind 9.8 is not supported! +# elif BIND_VERSION == 909 +# error Bind 9.9 is not supported! +# elif BIND_VERSION == 910 +# define DLZ_DLOPEN_VERSION 3 +# define DNS_CLIENTINFO_VERSION 1 +# define ISC_BOOLEAN_AS_BOOL 0 +# elif BIND_VERSION == 911 || BIND_VERSION == 912 +# define DLZ_DLOPEN_VERSION 3 +# define DNS_CLIENTINFO_VERSION 2 +# define ISC_BOOLEAN_AS_BOOL 0 +# elif BIND_VERSION >= 914 +# define DLZ_DLOPEN_VERSION 3 +# define DNS_CLIENTINFO_VERSION 2 +# else +# error Unsupported BIND version +# endif #else # error Unsupported BIND version #endif diff --git a/source4/dns_server/wscript_build b/source4/dns_server/wscript_build index ab0a241b937..3743753504c 100644 --- a/source4/dns_server/wscript_build +++ b/source4/dns_server/wscript_build @@ -20,69 +20,21 @@ bld.SAMBA_MODULE('service_dns', ) # a bind9 dlz module giving access to the Samba DNS SAM -bld.SAMBA_LIBRARY('dlz_bind9_10', +for bind_version in (910, 911, 912, 914, 916, 918, 920): + 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_10', + cflags='-DBIND_VERSION=%d' % bind_version, 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_14', - source='dlz_bind9.c', - cflags='-DBIND_VERSION_9_14', - private_library=True, - link_name='modules/bind9/dlz_bind9_14.so', - realname='dlz_bind9_14.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_16', - source='dlz_bind9.c', - cflags='-DBIND_VERSION_9_16', - private_library=True, - link_name='modules/bind9/dlz_bind9_16.so', - realname='dlz_bind9_16.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_18', - source='dlz_bind9.c', - cflags='-DBIND_VERSION_9_18', - private_library=True, - link_name='modules/bind9/dlz_bind9_18.so', - realname='dlz_bind9_18.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_for_torture', source='dlz_bind9.c', - cflags='-DBIND_VERSION_9_16', + cflags='-DBIND_VERSION=920', private_library=True, deps='samba-hostconfig samdb-common gensec popt dnsserver_common', enabled=bld.AD_DC_BUILD_IS_ENABLED()) diff --git a/source4/setup/named.conf.dlz b/source4/setup/named.conf.dlz index cbe7d805f58..32672768af4 100644 --- a/source4/setup/named.conf.dlz +++ b/source4/setup/named.conf.dlz @@ -10,28 +10,5 @@ # 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"; - - # 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"; - - # For BIND 9.14.x - ${BIND9_14} database "dlopen ${MODULESDIR}/bind9/dlz_bind9_14.so"; - - # For BIND 9.16.x - ${BIND9_16} database "dlopen ${MODULESDIR}/bind9/dlz_bind9_16.so"; -- # -- # For BIND 9.18.x +- +- # For BIND 9.18.x and 9.20.x - ${BIND9_18} database "dlopen ${MODULESDIR}/bind9/dlz_bind9_18.so"; +${BIND9_DLZ} }; - diff --git a/source4/torture/dns/wscript_build b/source4/torture/dns/wscript_build index 0b40e03e370..bf7415ff88a 100644 --- a/source4/torture/dns/wscript_build +++ b/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_16', + cflags='-DBIND_VERSION=920', deps='torture talloc torturemain dlz_bind9_for_torture', internal_module=True ) -- 2.37.1