From nobody Sun Oct 16 23:23:49 2022 X-Original-To: dev-commits-ports-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4MrGQt2zHsz4gLPT; Sun, 16 Oct 2022 23:23:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4MrGQt2pjYz3dSD; Sun, 16 Oct 2022 23:23:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1665962630; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=tZnK9LhA2HebSEJhCFgq/I1R8PXgsaxzChEEIUeNTI8=; b=veWzqd/xwuc8qVn2QQ7xni1Xcm53g2QkkINBgHdCkJkqpQy53mIuRPYv6IzAcV6MllLVsf Y2VaayMR7Mcfh2S5xLBvifal2ZV2yrhmJoXH+5PAIz1MWzqOuw2zn4zr37b2v+PFWcEy0/ LRxj/kwVI5Hg2rekqeYan1jXgUGNIZLpytDi7hGyHf66BWF2fuVldENY84D/QKWCYG0kKl KdS2Q80AxpmTXzgwE7FnagyzIyn5Ok1uPLB5TaboTqtmut1QRik9IM+IAKfVGSZOiMLSc/ cnUhO+Ju1MBufYjmTAVGGHS0tkdZg17WFU/wReYQ4xke+HrzTdzW+P5T6ODcUA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4MrGQt1twRzd8r; Sun, 16 Oct 2022 23:23:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 29GNNoZg096469; Sun, 16 Oct 2022 23:23:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 29GNNnE7096459; Sun, 16 Oct 2022 23:23:49 GMT (envelope-from git) Date: Sun, 16 Oct 2022 23:23:49 GMT Message-Id: <202210162323.29GNNnE7096459@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: "Timur I. Bakeyev" Subject: git: 2daf87ac1983 - main - net/samba416: New port for Samba 4.16 List-Id: Commits to the main branch of the FreeBSD ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-ports-main@freebsd.org X-BeenThere: dev-commits-ports-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: timur X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 2daf87ac19838c9a36f56fb51b0678d193921771 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1665962630; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=tZnK9LhA2HebSEJhCFgq/I1R8PXgsaxzChEEIUeNTI8=; b=Q8KhlGzwU0J3YuLZGTKmRRoNKnlO6isd75D4Y1VlrT8k4mEe/EW8Ltkw4ewJRAhH3Didiq TSDTmBevFoZXTUu4TP6sMUH9c/fhif6iS6HgbJdcJUaEbWE3MCLVuR8E6bzp7IwYnjQBB8 CWAIZam4zaQV1/69AnKUoZ0lW4vBiGM7Vjd4SMprPSdlgixWMjbxxqqlxtnPrTo9EHrFZ3 4VDOWJHq5OCRQXQzAYHzPTs8Ncru6VQm5fsDTATZ+XY7ZXkoWqPY/aDW3N8Lz+FmJSRdhs 6PLvEYPFQMnvmWI0rb5E89RKWRbgJAX6l8lz1uqNkfw3dgb3NwNs++6iembLsQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1665962630; a=rsa-sha256; cv=none; b=A//NKpLnxs5WJm0jS5VDtuVIAqoO7nnJeZsWD9iqYOJnreCSFoUpYLUAXj8t7L1sy1S+i4 do0n4Lw88WZ/6u54dvhlKAbHz4TErxv4erThXLGBZWpirT5ilDUGTNsXSDLKbzsX9cabql fXBn3Dkk39uilW0pefuJnVVLQVOJzhiX//NojEFgJBpAatbwm+gVX3xVlmR2am+dHWolke nxurO0yTpebhD31Vlw1uM4U/Y889XYrZnxzeJRDL2qVzZ0Fcyq3P0r81nD+7n1mQXxkrob YcSI6lei8SoXZo2OBglbDW3ERVpCx+jiLRC5n3LBeeTXX2mvsZ9O+eGW2lY4+Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by timur: URL: https://cgit.FreeBSD.org/ports/commit/?id=2daf87ac19838c9a36f56fb51b0678d193921771 commit 2daf87ac19838c9a36f56fb51b0678d193921771 Author: Timur I. Bakeyev AuthorDate: 2022-10-16 23:06:57 +0000 Commit: Timur I. Bakeyev CommitDate: 2022-10-16 23:23:12 +0000 net/samba416: New port for Samba 4.16 This is an initial attempt to add Samba to the FreeBSD after major rewrite of the VFS code in the upstream. Most of the port development is now carried in: https://gitlab.com/samba-freebsd Due to the way how new Samba VFS code is written there is a constrain that Samba 4.14+ can run only on FreeBSD 13.1+, as it requires support of the `nodup` option for the `fdesc` file system, as well as it's presence in the system in general. https://gitlab.com/samba-freebsd/-/wikis/The-New-VFS I'd like to thank CyberSecure Pty Ltd. company for their supoort of the port development and Andrew Walker from iXsystems Inc. for the patches he created and made available for the Samba4 on TrueNAS. PR: 263874 --- net/Makefile | 1 + net/samba416/Makefile | 700 + net/samba416/distinfo | 3 + ...-simplify-modules-build-and-config-genera.patch | 292 + ...gen.sh-script-to-run-under-FreeBSD-with-i.patch | 35 + ...CLang-prototype-warnings-in-kadm5-admin.h.patch | 32 + ...date-1-has-different-semantics-than-on-Li.patch | 38 + ...alloc-jemalloc.h-if-ENABLE_JEMALLOC-is-se.patch | 26 + ...tall-nss_-modules-into-PAMMODULESDIR-path.patch | 32 + ...alue-as-a-default-backlog-size-for-the-li.patch | 105 + ...-work-around-usage-of-Linux-specific-m-fl.patch | 111 + ...hat-config-checks-fail-if-the-warning-is-.patch | 39 + ...with-pkgconfigdir-to-specify-alternative-.patch | 54 + ...vided-by-port-location-of-the-XML-catalog.patch | 28 + ...ed-libraries-according-to-the-FreeBSD-spe.patch | 29 + ...onal-msg-parameter-to-CHECK_LIB-so-it-can.patch | 70 + ...to-disable-CTDB-tests-failing-on-FreeBSD-.patch | 77 + ...-debug-class-to-trck-down-DB-locking-code.patch | 132 + ...hema_attribute_compare-a-stable-comparisi.patch | 29 + ...dom-when-available-to-generate-random-tal.patch | 49 + ...ration-option-that-allows-to-choose-alter.patch | 65 + ...a1afeb0b920e60e14846987ae1d2d7dca4-Mon-Se.patch | 544 + ...between-r336017-and-r342928-wrongfuly-ret.patch | 35 + ...g-warnings-in-the-nfs_quota-debug-message.patch | 36 + ...MP-handling-code-and-add-FreeBSD-support..patch | 340 + ..._quota-test-function-into-vfstest-to-test.patch | 121 + ...ck-ZFS-provisioning-code-by-iXsystems-Inc.patch | 367 + ...869a8f4018ebee302aae8246bf29f60309-Mon-Se.patch | 101 + ...ompatibility-option-to-the-vfs_streams_xa.patch | 336 + ...ule-vfs_freebsd-that-implements-FreeBSD-s.patch | 932 ++ ...s3-lib-system-add-FreeBSD-proc_fd_pattern.patch | 149 + ...ules-zfsacl-fix-get-set-ACL-on-FreeBSD-13.patch | 105 + ...-mitkdc-Add-support-for-MIT-Kerberos-1.20.patch | 947 ++ net/samba416/files/README.FreeBSD.in | 94 + net/samba416/files/man/ctdb-script.options.5 | 558 + net/samba416/files/man/ctdb-statistics.7 | 550 + net/samba416/files/man/ctdb-tunables.7 | 406 + net/samba416/files/man/ctdb.1 | 1526 ++ net/samba416/files/man/ctdb.7 | 783 ++ net/samba416/files/man/ctdb.conf.5 | 359 + net/samba416/files/man/ctdb.sysconfig.5 | 139 + net/samba416/files/man/ctdb_diagnostics.1 | 79 + net/samba416/files/man/ctdbd.1 | 83 + net/samba416/files/man/ctdbd_wrapper.1 | 63 + net/samba416/files/man/dbwrap_tool.1 | 329 + net/samba416/files/man/gentest.1 | 133 + net/samba416/files/man/ldb.3 | 427 + net/samba416/files/man/ldbadd.1 | 78 + net/samba416/files/man/ldbdel.1 | 80 + net/samba416/files/man/ldbedit.1 | 111 + net/samba416/files/man/ldbmodify.1 | 73 + net/samba416/files/man/ldbrename.1 | 81 + net/samba416/files/man/ldbsearch.1 | 91 + net/samba416/files/man/libsmbclient.7 | 94 + net/samba416/files/man/lmhosts.5 | 123 + net/samba416/files/man/locktest.1 | 137 + net/samba416/files/man/log2pcap.1 | 124 + net/samba416/files/man/ltdbtool.1 | 256 + net/samba416/files/man/masktest.1 | 113 + net/samba416/files/man/mdfind.1 | 166 + net/samba416/files/man/mdsearch.1 | 357 + net/samba416/files/man/mvxattr.1 | 84 + net/samba416/files/man/ndrdump.1 | 84 + net/samba416/files/man/nmblookup.1 | 341 + net/samba416/files/man/nmblookup4.1 | 157 + net/samba416/files/man/ntlm_auth.1 | 458 + net/samba416/files/man/ntlm_auth4.1 | 233 + net/samba416/files/man/oLschema2ldif.1 | 74 + net/samba416/files/man/onnode.1 | 218 + net/samba416/files/man/pam_winbind.conf.5 | 161 + net/samba416/files/man/ping_pong.1 | 122 + net/samba416/files/man/profiles.1 | 136 + net/samba416/files/man/regdiff.1 | 87 + net/samba416/files/man/regpatch.1 | 81 + net/samba416/files/man/regshell.1 | 177 + net/samba416/files/man/regtree.1 | 89 + net/samba416/files/man/rpcclient.1 | 1961 +++ net/samba416/files/man/samba-gpupdate.8 | 122 + net/samba416/files/man/samba.7 | 254 + net/samba416/files/man/sharesec.1 | 364 + net/samba416/files/man/smb.conf.5 | 13994 +++++++++++++++++++ net/samba416/files/man/smbcacls.1 | 1044 ++ net/samba416/files/man/smbclient.1 | 1253 ++ net/samba416/files/man/smbcontrol.1 | 343 + net/samba416/files/man/smbcquotas.1 | 440 + net/samba416/files/man/smbget.1 | 197 + net/samba416/files/man/smbgetrc.5 | 100 + net/samba416/files/man/smbpasswd.5 | 175 + net/samba416/files/man/smbstatus.1 | 186 + net/samba416/files/man/smbtar.1 | 163 + net/samba416/files/man/smbtorture.1 | 362 + net/samba416/files/man/smbtree.1 | 252 + net/samba416/files/man/talloc.3 | 683 + net/samba416/files/man/tdbbackup.8 | 129 + net/samba416/files/man/tdbdump.8 | 72 + net/samba416/files/man/tdbrestore.8 | 54 + net/samba416/files/man/tdbtool.8 | 170 + net/samba416/files/man/testparm.1 | 194 + net/samba416/files/man/traffic_learner.7 | 128 + net/samba416/files/man/traffic_replay.7 | 380 + net/samba416/files/man/vfs_freebsd.8 | 204 + net/samba416/files/man/wbinfo.1 | 490 + .../files/patch-examples_pdb_wscript__build | 11 + net/samba416/files/patch-lib_ldb_wscript | 61 + net/samba416/files/patch-lib_talloc_wscript | 10 + net/samba416/files/patch-lib_tdb_wscript | 27 + net/samba416/files/patch-lib_util_wscript__build | 11 + net/samba416/files/patch-source3_lib_util.c | 14 + .../files/patch-source3_librpc_crypto_gse.c | 16 + ...patch-source3_modules_vfs__virusfilter__utils.c | 36 + .../patch-source3_registry_tests_test__regfio.c | 10 + .../files/patch-source3_winbindd_wscript__build | 11 + net/samba416/files/patch-source3_wscript__build | 44 + net/samba416/files/pkg-message.in | 30 + net/samba416/files/samba_server.in | 251 + net/samba416/pkg-descr | 6 + net/samba416/pkg-plist | 451 + net/samba416/pkg-plist.ad_dc | 183 + net/samba416/pkg-plist.cluster | 78 + net/samba416/pkg-plist.python | 427 + 120 files changed, 41266 insertions(+) diff --git a/net/Makefile b/net/Makefile index 44a1130e2c68..a27797afb95c 100644 --- a/net/Makefile +++ b/net/Makefile @@ -1395,6 +1395,7 @@ SUBDIR += sakisafecli SUBDIR += samba412 SUBDIR += samba413 + SUBDIR += samba416 SUBDIR += samplicator SUBDIR += savvycan SUBDIR += sbd diff --git a/net/samba416/Makefile b/net/samba416/Makefile new file mode 100644 index 000000000000..96424eef6b37 --- /dev/null +++ b/net/samba416/Makefile @@ -0,0 +1,700 @@ +PORTNAME= ${SAMBA4_BASENAME}416 +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 +WWW= https://www.samba.org/ + +LICENSE= GPLv3+ +LICENSE_FILE= ${WRKSRC}/COPYING + +USES= cpe + +CONFLICTS_INSTALL?= samba4* + +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}/0013-Pass-additional-msg-parameter-to-CHECK_LIB-so-it-can.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}/0024-Cherry-pick-ZFS-provisioning-code-by-iXsystems-Inc.patch:-p1 \ + ${PATCHDIR}/0025-From-d9b748869a8f4018ebee302aae8246bf29f60309-Mon-Se.patch:-p1 \ + ${PATCHDIR}/0026-vfs-add-a-compatibility-option-to-the-vfs_streams_xa.patch:-p1 \ + ${PATCHDIR}/0027-Add-VFS-module-vfs_freebsd-that-implements-FreeBSD-s.patch:-p1 \ + ${PATCHDIR}/0028-s3-lib-system-add-FreeBSD-proc_fd_pattern.patch:-p1 \ + ${PATCHDIR}/0099-s3-modules-zfsacl-fix-get-set-ACL-on-FreeBSD-13.patch:-p1 \ + ${PATCHDIR}/0099-s4-mitkdc-Add-support-for-MIT-Kerberos-1.20.patch:-p1 + +SAMBA4_BASENAME= samba +SAMBA4_PORTNAME= ${SAMBA4_BASENAME}4 +SAMBA4_VERSION= 4.16.5 +SAMBA4_DISTNAME= ${SAMBA4_BASENAME}-${SAMBA4_VERSION:S|.p|pre|:S|.r|rc|:S|.t|tp|:S|.a|alpha|} + +WRKSRC?= ${WRKDIR}/${DISTNAME} +PLIST?= ${PKGDIR}/pkg-plist + +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 +SAMBA4_MODULES_CLASS= auth bind9 gensec gpext idmap ldb nss_info \ + pdb perfcount process_model service vfs + +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" +MAKE_ENV+= PYTHONHASHSEED=1 + +USES+= compiler:c++11-lang iconv localbase:ldflags \ + perl5 pkgconfig shebangfix 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 MANDOC PROFILE PYTHON3 QUOTAS \ + SPOTLIGHT SYSLOG UTMP +#OPTIONS_DEFINE+= DEVELOPER MEMORY_DEBUG + +OPTIONS_GROUP= VFS +OPTIONS_GROUP_VFS= FRUIT GLUSTERFS + +OPTIONS_SINGLE= GSSAPI ZEROCONF + +OPTIONS_SINGLE_GSSAPI= GSSAPI_BUILTIN GSSAPI_MIT +#GSSAPI_HEIMDAL +OPTIONS_SINGLE_ZEROCONF= ZEROCONF_NONE AVAHI MDNSRESPONDER + +# Make those default options +OPTIONS_DEFAULT= AD_DC ADS DOCS FAM LDAP \ + PROFILE PYTHON3 QUOTAS SYSLOG UTMP \ + FRUIT GSSAPI_BUILTIN AVAHI +############################################################################## +ADS_DESC= Active Directory client(implies LDAP) +AD_DC_DESC= Active Directory Domain Controller(implies PYTHON3) +CLUSTER_DESC= Clustering support +DEVELOPER_DESC= With developer framework +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 +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 +FRUIT_DESC= MacOSX and TimeMachine support +GLUSTERFS_DESC= GlusterFS support + +GSSAPI_BUILTIN_DESC= GSSAPI support via bundled Heimdal + +ZEROCONF_DESC= Zero configuration networking +ZEROCONF_NONE_DESC= Zeroconf support is absent +############################################################################## +# XXX: Unconditional dependencies which can't be switched off(if present in +# the system) + +# Iconv(picked up unconditionaly) +LIB_DEPENDS+= libiconv.so:converters/libiconv +# unwind +LIB_DEPENDS+= libunwind.so:devel/libunwind +# 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 +BUILD_DEPENDS+= libtasn1>=3.8:security/libtasn1 +RUN_DEPENDS+= libtasn1>=3.8: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 +TEST_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.3.3:devel/talloc +RUN_DEPENDS+= talloc>=2.3.3: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.11.0:devel/tevent +RUN_DEPENDS+= tevent>=0.11.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.6:databases/tdb +RUN_DEPENDS+= tdb>=1.4.6: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+= ldb25>=2.5.2:databases/ldb25 +RUN_DEPENDS+= ldb25>=2.5.2:databases/ldb25 +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 +# External Python modules +TEST_BUILD_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}iso8601>=0.1.11:devel/py-iso8601@${PY_FLAVOR} +TEST_RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}iso8601>=0.1.11:devel/py-iso8601@${PY_FLAVOR} +############################################################################## +CONFIGURE_ARGS+= \ + --with-pam \ + --with-iconv \ + --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 +# ${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_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 +############################################################################## +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_CONFIGURE_ON= --enable-developer --enable-selftest --abi-check-disable +DEVELOPER_CONFIGURE_ENV= WAF_CMD_FORMAT=string +DEVELOPER_BUILD_DEPENDS= ${SAMBA4_LMDB_DEPENDS} \ + ${GDB_CMD}:devel/gdb +DEVELOPER_RUN_DEPENDS= ${SAMBA4_LMDB_DEPENDS} +DEVELOPER_TEST_DEPENDS= ${GDB_CMD}:devel/gdb +DEVELOPER_VARS_OFF= GDB_CMD=true +############################################################################## +AD_DC_IMPLIES= PYTHON3 +AD_DC_CONFIGURE_OFF= --without-ad-dc +AD_DC_BUILD_DEPENDS= ${SAMBA4_LMDB_DEPENDS} +AD_DC_RUN_DEPENDS= ${SAMBA4_LMDB_DEPENDS} +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} + +ADS_IMPLIES= LDAP +ADS_CONFIGURE_WITH= ads + +CLUSTER_CONFIGURE_WITH= cluster-support +CLUSTER_VARS= PLIST+=${PKGDIR}/pkg-plist.cluster + +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 +GPGME_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}gpgme>=1.14.0:security/py-gpgme@${PY_FLAVOR} + +GSSAPI_BUILTIN_USES= bison +GSSAPI_BUILTIN_BUILD_DEPENDS= p5-JSON>=4.0:converters/p5-JSON + +GSSAPI_MIT_CONFIGURE_ON= --with-system-mitkrb5 ${GSSAPIBASEDIR} \ + --with-system-mitkdc=${GSSAPIBASEDIR}/sbin/krb5kdc \ + --with-experimental-mit-ad-dc +GSSAPI_MIT_USES= gssapi:mit + +GSSAPI_HEIMDAL_CONFIGURE_ON= --with-system-heimdalkrb5 ${GSSAPIBASEDIR} +GSSAPI_HEIMDAL_USES= gssapi:heimdal +GSSAPI_HEIMDAL_PREVENTS= AD_DC +GSSAPI_HEIMDAL_PREVENTS_MSG= GSSAPI_HEIMDAL and AD_DC enable conflicting options + +LDAP_CONFIGURE_WITH= ldap +LDAP_CONFIGURE_ON= --with-openldap=${LOCALBASE} +LDAP_USE= OPENLDAP=yes +LDAP_VARS= SAMBA4_MODULES+=idmap_ldap + +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" + +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 +# ICU +SPOTLIGHT_LIB_DEPENDS= libicuuc.so:devel/icu +SPOTLIGHT_USES= bison gnome +SPOTLIGHT_USE= gnome=glib20 + +SYSLOG_CONFIGURE_WITH= syslog + +UTMP_CONFIGURE_WITH= utmp + +############################################################################## +.include +############################################################################## +.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1300076 +IGNORE=runs only on FreeBSD 13.1 and above due use of O_EMPTY_PATH +.endif + +.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+= 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 +# 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 +# This kind of special for this distribution +SAMBA4_MODULES+= vfs_freebsd + +SAMBA4_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 + +.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 ! ${PORT_OPTIONS:MPYTHON3} || defined(NO_PYTHON) +USES+= python:build,test +CONFIGURE_ARGS+= --disable-python +.else +USES+= python:3.6+ +PLIST+= ${PKGDIR}/pkg-plist.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 +.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 + +.for module_class in ${SAMBA4_MODULES_CLASS} +PLIST_DIRS+= ${SAMBA4_MODULEDIR}/${module_class} +.endfor +PLIST_DIRS+= ${SAMBA4_MODULEDIR} + +.if defined(WITH_DEBUG) +CONFIGURE_ARGS+= --verbose --enable-debug +MAKE_ARGS+= --verbose +DEBUG_FLAGS?= -g -ggdb3 -O0 +.endif + +############################################################################## +.include +############################################################################## +# Implemented in the gcrypt on AMD64 +.if ${ARCH} == "amd64" +CONFIGURE_ARGS+= --accel-aes=intelaesni +.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+= ${SAMBA4_LIBDIR}/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+= ${SAMBA4_LIBDIR}/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 +CFLAGS+= ${CFLAGS_${CHOSEN_COMPILER_TYPE}} +CFLAGS_clang= -fno-color-diagnostics +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' +# 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_LIBDIR="${SAMBA4_LIBDIR}" \ + 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:MPYTHON3} || defined(NO_PYTHON)) && ${PORT_OPTIONS:MAD_DC} + @${ECHO_CMD}; \ + ${ECHO_MSG} "===> AD_DC option requires PYTHON3 to be set"; \ + ${ECHO_CMD}; \ + ${FALSE} +.endif + +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/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/ldb.3 \ + lib/ldb/man/ldbadd.1 \ + lib/ldb/man/ldbdel.1 \ + lib/ldb/man/ldbedit.1 \ + lib/ldb/man/ldbmodify.1 \ + lib/ldb/man/ldbrename.1 \ + lib/ldb/man/ldbsearch.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: + ${RM} -r ${STAGEDIR}${PYTHON_SITELIBDIR}/samba/third_party + ${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR} -name __pycache__ \ + -type d -print0 | ${XARGS} -0 -n 1 -t ${RM} -r + +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 module_class in ${SAMBA4_MODULES_CLASS} + ${INSTALL} -d -m 0755 "${STAGEDIR}${SAMBA4_MODULEDIR}/${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-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 diff --git a/net/samba416/distinfo b/net/samba416/distinfo new file mode 100644 index 000000000000..3d86f57054fd --- /dev/null +++ b/net/samba416/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1663020631 +SHA256 (samba-4.16.5.tar.gz) = c73c092017d2d1dd270709c8597321d0dd667c882a1b2470cf60f8ee56d3fd44 +SIZE (samba-4.16.5.tar.gz) = 30613439 diff --git a/net/samba416/files/0001-Compact-and-simplify-modules-build-and-config-genera.patch b/net/samba416/files/0001-Compact-and-simplify-modules-build-and-config-genera.patch new file mode 100644 index 000000000000..b4bc56519f7e --- /dev/null +++ b/net/samba416/files/0001-Compact-and-simplify-modules-build-and-config-genera.patch @@ -0,0 +1,292 @@ +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): + 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: +- 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 *** 41158 LINES SKIPPED ***