From nobody Fri Feb 9 15:33:58 2024 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 4TWdDl1grWz59sqF; Fri, 9 Feb 2024 15:33:59 +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 4TWdDl1Jg2z4K4s; Fri, 9 Feb 2024 15:33:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1707492839; 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=Qy4Cl9tFfuu8DjjbqTnHBbeop+4lrJ+Knx+jYyNJVw8=; b=qnz+Bemiey1ohUgwfPKjx0ihJaxJCEs5tEQwaeLjUmPFECKX6yoIWUMD8Hs3fKgPrylwUO VCoa3VE67q1MuYe+ubQHyFNtyvBiQO3PHnIrZLFPJLgNbOQKO+lvKN6HNSftCO9VPLFXil eo6ObO85IdOZ0NYEgwCWOg+wH8sBh3/blnWqRU58YweEUhwRF5LfR3DhZG29jd3ghMM1KD EZSojZIpGB8LQJVXfMrZ+/zi/YeurPdjsYpZ4pufKyC/+K3PGdIEKRmGG9WvoHGwA0E7tl 2a1KdORTGxL5UYJ6LBNPRkNzxl2Nnt1LBy3Yr1KnlGJPTBPfGufJ8srt3fgitw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1707492839; 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=Qy4Cl9tFfuu8DjjbqTnHBbeop+4lrJ+Knx+jYyNJVw8=; b=VyFLRBo6rDmb3hNyF8Ncql03nd+Zl8py2fqhgcnKraedKKvXO8seHwUly6ddPrFJ4SqeFq 1UqUGRZeOCY0XGDgHK+HmNMW4JJqPioFH2Mv/XO8pQL6d+f72+bJHrqZGa+iHffwsSX45J bKLnWtWSWrq49aHzGfNlnoyqInQlBe/c1trgFKAEcpXxASQMFU41tts4BJuPURk56PLYvw WCYVwh/iTS79RXAGaWze4WEVwEm3t52zjNvJJwMo6QJ9Ej2z3Icpzm+EAbDGOXsY1cuCt3 wl0CUCzfHGJVids/gOKdqJxgz7yJynuyJ+628nVONvsE7h03HXBOCumFOn+o6g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1707492839; a=rsa-sha256; cv=none; b=JGbLyCdWRp0cVT+u2hUpUEA3WnetMmvGsTWMLdc0Koo9BYGZqfxNqEwZqUWGAcUV237yw9 b/rFfNPbxciU+7n5y56+gZ0or5S3QCU9YeQM+3ukG17LM9v842U5EenCUpBTTgvUker1UH tSrfqiTGahatCPHyduLA4BYVHKhxeDVJ3PuCIReic7jds1kucpf/mRlR0/Isx2mx91M0Mo RY5AW+XItET5uG169TFayYz9d07sq/GjDigSfMoip+y6A6Nsd/XiOJaSsWpAJzZgDPdS3P /ESz6Xdwll6qNcTsrHKlGlBpz5S0/gFljYfcag4gs2lhBPWnN8FBk5tYckDjcQ== 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 4TWdDl0KNYzf8H; Fri, 9 Feb 2024 15:33:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 419FXx0g035745; Fri, 9 Feb 2024 15:33:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 419FXwfR035742; Fri, 9 Feb 2024 15:33:58 GMT (envelope-from git) Date: Fri, 9 Feb 2024 15:33:58 GMT Message-Id: <202402091533.419FXwfR035742@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Mikael Urankar Subject: git: b0a4fa4a12b0 - main - net/samba419: Add new port 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: mikael X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: b0a4fa4a12b096897f347755106940220e94c114 Auto-Submitted: auto-generated The branch main has been updated by mikael: URL: https://cgit.FreeBSD.org/ports/commit/?id=b0a4fa4a12b096897f347755106940220e94c114 commit b0a4fa4a12b096897f347755106940220e94c114 Author: Mikael Urankar AuthorDate: 2024-02-05 12:56:27 +0000 Commit: Mikael Urankar CommitDate: 2024-02-09 15:33:54 +0000 net/samba419: Add new port Many thanks to Joshua Kinard, Siva Mahadevan, Yasuhiro Kimura, Andrew Walker, and Peter Eriksson for their patches. PR: 270383 --- Mk/Uses/samba.mk | 2 +- Mk/bsd.default-versions.mk | 2 +- net/Makefile | 1 + net/samba419/Makefile | 701 + net/samba419/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 | 335 + ...ule-vfs_freebsd-that-implements-FreeBSD-s.patch | 932 ++ ...ules-zfsacl-fix-get-set-ACL-on-FreeBSD-13.patch | 164 + ...0-Fix-pathref-handling-for-FreeBSD-13plus.patch | 485 + net/samba419/files/README.FreeBSD.in | 94 + net/samba419/files/man/ctdb-script.options.5 | 558 + net/samba419/files/man/ctdb-statistics.7 | 550 + net/samba419/files/man/ctdb-tunables.7 | 406 + net/samba419/files/man/ctdb.1 | 1526 ++ net/samba419/files/man/ctdb.7 | 783 ++ net/samba419/files/man/ctdb.conf.5 | 359 + net/samba419/files/man/ctdb.sysconfig.5 | 139 + net/samba419/files/man/ctdb_diagnostics.1 | 79 + net/samba419/files/man/ctdbd.1 | 83 + net/samba419/files/man/ctdbd_wrapper.1 | 63 + net/samba419/files/man/dbwrap_tool.1 | 329 + net/samba419/files/man/gentest.1 | 133 + net/samba419/files/man/ldb.3 | 427 + net/samba419/files/man/ldbadd.1 | 78 + net/samba419/files/man/ldbdel.1 | 80 + net/samba419/files/man/ldbedit.1 | 111 + net/samba419/files/man/ldbmodify.1 | 73 + net/samba419/files/man/ldbrename.1 | 81 + net/samba419/files/man/ldbsearch.1 | 91 + net/samba419/files/man/libsmbclient.7 | 94 + net/samba419/files/man/lmhosts.5 | 123 + net/samba419/files/man/locktest.1 | 137 + net/samba419/files/man/log2pcap.1 | 124 + net/samba419/files/man/ltdbtool.1 | 256 + net/samba419/files/man/masktest.1 | 113 + net/samba419/files/man/mdfind.1 | 166 + net/samba419/files/man/mdsearch.1 | 357 + net/samba419/files/man/mvxattr.1 | 84 + net/samba419/files/man/ndrdump.1 | 84 + net/samba419/files/man/nmblookup.1 | 341 + net/samba419/files/man/nmblookup4.1 | 157 + net/samba419/files/man/ntlm_auth.1 | 458 + net/samba419/files/man/ntlm_auth4.1 | 233 + net/samba419/files/man/oLschema2ldif.1 | 74 + net/samba419/files/man/onnode.1 | 218 + net/samba419/files/man/pam_winbind.conf.5 | 161 + net/samba419/files/man/ping_pong.1 | 122 + net/samba419/files/man/profiles.1 | 136 + net/samba419/files/man/regdiff.1 | 87 + net/samba419/files/man/regpatch.1 | 81 + net/samba419/files/man/regshell.1 | 177 + net/samba419/files/man/regtree.1 | 89 + net/samba419/files/man/rpcclient.1 | 1961 +++ net/samba419/files/man/samba-gpupdate.8 | 122 + net/samba419/files/man/samba.7 | 254 + net/samba419/files/man/sharesec.1 | 364 + net/samba419/files/man/smb.conf.5 | 13994 +++++++++++++++++++ net/samba419/files/man/smbcacls.1 | 1044 ++ net/samba419/files/man/smbclient.1 | 1253 ++ net/samba419/files/man/smbcontrol.1 | 343 + net/samba419/files/man/smbcquotas.1 | 440 + net/samba419/files/man/smbget.1 | 197 + net/samba419/files/man/smbgetrc.5 | 100 + net/samba419/files/man/smbpasswd.5 | 175 + net/samba419/files/man/smbstatus.1 | 186 + net/samba419/files/man/smbtar.1 | 163 + net/samba419/files/man/smbtorture.1 | 362 + net/samba419/files/man/smbtree.1 | 252 + net/samba419/files/man/talloc.3 | 683 + net/samba419/files/man/tdbbackup.8 | 129 + net/samba419/files/man/tdbdump.8 | 72 + net/samba419/files/man/tdbrestore.8 | 54 + net/samba419/files/man/tdbtool.8 | 170 + net/samba419/files/man/testparm.1 | 194 + net/samba419/files/man/traffic_learner.7 | 128 + net/samba419/files/man/traffic_replay.7 | 380 + net/samba419/files/man/vfs_freebsd.8 | 204 + net/samba419/files/man/wbinfo.1 | 490 + .../files/patch-examples_pdb_wscript__build | 11 + net/samba419/files/patch-lib_ldb_wscript | 61 + net/samba419/files/patch-lib_talloc_wscript | 11 + net/samba419/files/patch-lib_util_wscript__build | 11 + net/samba419/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/samba419/files/patch-source3_wscript__build | 44 + net/samba419/files/pkg-message.in | 31 + net/samba419/files/samba_server.in | 251 + net/samba419/pkg-descr | 6 + net/samba419/pkg-plist | 467 + net/samba419/pkg-plist.ad_dc | 179 + net/samba419/pkg-plist.cluster | 76 + net/samba419/pkg-plist.python | 505 + 120 files changed, 40779 insertions(+), 2 deletions(-) diff --git a/Mk/Uses/samba.mk b/Mk/Uses/samba.mk index bd4ccb0a6189..40e8cac30403 100644 --- a/Mk/Uses/samba.mk +++ b/Mk/Uses/samba.mk @@ -21,7 +21,7 @@ IGNORE= USES=samba has invalid arguments: ${samba_ARGS:Nbuild:Nenv:Nlib:Nrun} SAMBAPORT= net/samba${SAMBA_DEFAULT:S/.//} SAMBAINCLUDES= ${LOCALBASE}/include/samba4 -. if ${SAMBA_DEFAULT} == 4.13 || ${SAMBA_DEFAULT} == 4.16 +. if ${SAMBA_DEFAULT} == 4.13 || ${SAMBA_DEFAULT} == 4.16 || ${SAMBA_DEFAULT} == 4.19 SAMBALIBS= ${LOCALBASE}/lib/samba4 . else IGNORE= Invalid version of samba: ${SAMBA_DEFAULT} diff --git a/Mk/bsd.default-versions.mk b/Mk/bsd.default-versions.mk index 4747af6c8296..40ffd9a959b2 100644 --- a/Mk/bsd.default-versions.mk +++ b/Mk/bsd.default-versions.mk @@ -142,7 +142,7 @@ PYTHON2_DEFAULT?= 2.7 RUBY_DEFAULT?= 3.1 # Possible values: rust, rust-nightly RUST_DEFAULT?= rust -# Possible values: 4.13, 4.16 +# Possible values: 4.13, 4.16, 4.19 SAMBA_DEFAULT?= 4.16 # Possible values: base, openssl, openssl111, openssl31, openssl32, libressl, libressl-devel . if !defined(SSL_DEFAULT) diff --git a/net/Makefile b/net/Makefile index 85d381a126b4..fe3e44a9f8a4 100644 --- a/net/Makefile +++ b/net/Makefile @@ -1435,6 +1435,7 @@ SUBDIR += sakisafecli SUBDIR += samba413 SUBDIR += samba416 + SUBDIR += samba419 SUBDIR += samplicator SUBDIR += savvycan SUBDIR += sbd diff --git a/net/samba419/Makefile b/net/samba419/Makefile new file mode 100644 index 000000000000..de9c52a381a1 --- /dev/null +++ b/net/samba419/Makefile @@ -0,0 +1,701 @@ +PORTNAME= ${SAMBA4_BASENAME}419 +PORTVERSION= ${SAMBA4_VERSION} +PORTREVISION= 0 +CATEGORIES?= net +MASTER_SITES= SAMBA/samba/stable SAMBA/samba/rc +DISTNAME= ${SAMBA4_DISTNAME} + +MAINTAINER= mikael@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 + +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}/0100-Fix-pathref-handling-for-FreeBSD-13plus.patch + +SAMBA4_BASENAME= samba +SAMBA4_PORTNAME= ${SAMBA4_BASENAME}4 +SAMBA4_VERSION= 4.19.4 +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="${PREFIX}/share/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" \ + PYTHONHASHSEED=1 +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 + +# 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/* + +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= yes +SAMBA4_BUNDLED_TALLOC= yes +SAMBA4_BUNDLED_TEVENT= yes +SAMBA4_BUNDLED_TDB= yes +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/wireshark@nox11 +# 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= share/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= share/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_USES= ldap +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 !${PORT_OPTIONS:MADS} && ${PORT_OPTIONS:MAD_DC} +IGNORE=To disable ADS option you also need to disable AD_DC option +.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 +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 +############################################################################## +# 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 \ + share/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 +# 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 + +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 + ${FIND} ${STAGEDIR} -type f -empty -delete + +post-install-fix-manpages: +.for f in vfs_aio_linux.8 vfs_btrfs.8 vfs_ceph.8 vfs_gpfs.8 + ${RM} ${STAGEDIR}${PREFIX}/share/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}/share/man/man1/${f} ${STAGEDIR}${PREFIX}/share/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}/share/man/man8/${f} ${STAGEDIR}${PREFIX}/share/man/man8/samba-${f} +. endfor +.endif + +post-install: post-install-rm-junk post-install-fix-manpages + ${LN} -sf smb.conf.5.gz ${STAGEDIR}${PREFIX}/share/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}/share/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/samba419/distinfo b/net/samba419/distinfo new file mode 100644 index 000000000000..6f25c656ce50 --- /dev/null +++ b/net/samba419/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1705944756 +SHA256 (samba-4.19.4.tar.gz) = 4026d93b866db198c8ca1685b0f5d52793f65c6e63cb364163af661fdff0968c +SIZE (samba-4.19.4.tar.gz) = 41839810 diff --git a/net/samba419/files/0001-Compact-and-simplify-modules-build-and-config-genera.patch b/net/samba419/files/0001-Compact-and-simplify-modules-build-and-config-genera.patch new file mode 100644 index 000000000000..b4bc56519f7e --- /dev/null +++ b/net/samba419/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 ++ ) *** 40667 LINES SKIPPED ***