summaryrefslogtreecommitdiff
path: root/net/samba422/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'net/samba422/Makefile')
-rw-r--r--net/samba422/Makefile429
1 files changed, 193 insertions, 236 deletions
diff --git a/net/samba422/Makefile b/net/samba422/Makefile
index 35329138fecf..c45dadb106fd 100644
--- a/net/samba422/Makefile
+++ b/net/samba422/Makefile
@@ -1,9 +1,9 @@
-PORTNAME= ${SAMBA4_BASENAME}422
-PORTVERSION= ${SAMBA4_VERSION}
-PORTREVISION= 5
+PORTNAME= samba422
+DISTVERSION= 4.22.6
+PORTREVISION= 6
CATEGORIES?= net
MASTER_SITES= SAMBA/samba/stable SAMBA/samba/rc
-DISTNAME= ${SAMBA4_DISTNAME}
+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
@@ -12,6 +12,13 @@ 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} \
@@ -36,54 +43,20 @@ LIB_DEPENDS= libgnutls.so:security/gnutls \
libpopt.so:devel/popt \
libunwind.so:devel/libunwind \
libicui18n.so:devel/icu \
- libicuuc.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
-SAMBA4_BUNDLED_LIBS= !libarchive
-
-SAMBA4_BASENAME= samba
-SAMBA4_PORTNAME= ${SAMBA4_BASENAME}4
-SAMBA4_VERSION= 4.22.6
-SAMBA4_DISTNAME= ${SAMBA4_BASENAME}-${SAMBA4_VERSION:S|.p|pre|:S|.r|rc|:S|.t|tp|:S|.a|alpha|}
-
-# 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= ${SAMBA_LIBDIR}
-SAMBA4_MODULEDIR= ${SAMBA_MODULESDIR}
-SAMBA4_INCLUDEDIR= ${SAMBA_INCLUDEDIR}
-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
-
-SAMBA4_SUB+= SAMBA4_LOGDIR="${SAMBA4_LOGDIR}" \
- SAMBA4_RUNDIR="${SAMBA4_RUNDIR}" \
- SAMBA4_LOCKDIR="${SAMBA4_LOCKDIR}" \
- SAMBA4_LIBDIR="${SAMBA4_LIBDIR}" \
- SAMBA4_MODULEDIR="${SAMBA4_MODULEDIR}" \
- SAMBA_LDB_MODULESDIR="${SAMBA_LDB_MODULESDIR}" \
- SAMBA4_BINDDNSDIR="${SAMBA4_BINDDNSDIR}" \
- SAMBA4_PRIVATEDIR="${SAMBA4_PRIVATEDIR}" \
- SAMBA4_CONFDIR="${SAMBA4_CONFDIR}" \
- SAMBA4_CONFIG="${SAMBA4_CONFIG}" \
- SAMBA4_SERVICES="${SAMBA4_SERVICES}"
-
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= ${SAMBA4_LIBDIR}
+USE_LDCONFIG= ${SAMBA_LIBDIR}
USE_PERL5= build
USE_RC_SUBR= samba_server
WAF_CMD= buildtools/bin/waf
@@ -93,25 +66,25 @@ SHEBANG_FILES= source3/script* source4/scripting/bin/* selftest/*
CONFIGURE_LOG= bin/config.log
CONFIGURE_ARGS= --mandir="${PREFIX}/share/man" \
- --sysconfdir="${SAMBA4_CONFDIR}" \
- --includedir="${SAMBA4_INCLUDEDIR}" \
+ --sysconfdir="${_CONFDIR}" \
+ --includedir="${SAMBA_INCLUDEDIR}" \
--datadir="${DATADIR}" \
- --libdir="${SAMBA4_LIBDIR}" \
- --with-privatelibdir="${SAMBA4_LIBDIR}/private" \
- --with-pammodulesdir="${SAMBA4_PAMDIR}" \
- --with-modulesdir="${SAMBA4_MODULEDIR}" \
+ --libdir="${SAMBA_LIBDIR}" \
+ --with-privatelibdir="${SAMBA_LIBDIR}/private" \
+ --with-pammodulesdir="${_PAMDIR}" \
+ --with-modulesdir="${SAMBA_MODULESDIR}" \
--with-ldbmodulesdir="${SAMBA_LDB_MODULESDIR}" \
- --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}"
+ --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 \
@@ -129,8 +102,14 @@ CONFIGURE_ARGS+= \
--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}" \
@@ -140,21 +119,21 @@ TEST_ENV= PYTHON="${PYTHON_CMD}" \
PYTHONDONTWRITEBYTECODE=1
# No fancy color error messages
-CFLAGS+= ${CFLAGS_${CHOSEN_COMPILER_TYPE}}
-CFLAGS_clang= -fno-color-diagnostics
+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'
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?= samba4*
-
-PKGCONFIGDIR?= ${PREFIX}/libdata/pkgconfig
-PKGCONFIGDIR_REL?= ${PKGCONFIGDIR:S,^${PREFIX}/,,}
+CONFLICTS_INSTALL= ldb2[0-9]-* samba4*
EXTRA_PATCHES= \
${PATCHDIR}/0001-Compact-and-simplify-modules-build-and-config-genera.patch:-p1 \
@@ -183,24 +162,28 @@ EXTRA_PATCHES= \
${PATCHDIR}/0028-s3-lib-system-add-FreeBSD-proc_fd_pattern.patch \
SUB_FILES= pkg-message README.FreeBSD
-SUB_LIST= PKGCONFIGDIR=${PKGCONFIGDIR_REL} \
- ${SAMBA4_SUB}
+SUB_LIST= PKGCONFIGDIR=${_PKGCONFIGDIR_REL} \
+ ${_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_SUB= PKGCONFIGDIR=${PKGCONFIGDIR_REL} \
- ${SAMBA4_SUB}
+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= PKGCONFIGDIR=${_PKGCONFIGDIR_REL} \
+ ${_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= DEVELOPMENT VFS
+OPTIONS_GROUP= BUNDLED_DEPS DEVELOPMENT VFS
+OPTIONS_GROUP_BUNDLED_DEPS= BUNDLED_CMOCKA BUNDLED_TALLOC BUNDLED_TDB BUNDLED_TEVENT
OPTIONS_GROUP_DEVELOPMENT= DEVELOPER MEMORY_DEBUG PICKY_DEVELOPER TEST
OPTIONS_GROUP_VFS= FRUIT GLUSTERFS
OPTIONS_SINGLE= GSSAPI ZEROCONF
@@ -208,9 +191,13 @@ 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
@@ -228,79 +215,16 @@ UTMP_DESC= UTMP accounting
VFS_DESC= VFS modules
ZEROCONF_DESC= Zero configuration networking
ZEROCONF_NONE_DESC= Zeroconf support is absent
-##############################################################################
-### Bundled libraries
-SAMBA4_BUNDLED_CMOCKA?= no
-SAMBA4_BUNDLED_TALLOC?= no
-SAMBA4_BUNDLED_TEVENT?= no
-SAMBA4_BUNDLED_TDB?= no
-# cmocka
-.if defined(SAMBA4_BUNDLED_CMOCKA) && ${SAMBA4_BUNDLED_CMOCKA} == yes
-SAMBA4_BUNDLED_LIBS+= cmocka
-CONFLICTS_INSTALL+= cmocka-1.*
-SAMBA4_SUB+= SAMBA4_BUNDLED_CMOCKA=""
-.else
-SAMBA4_BUNDLED_LIBS+= !cmocka
-BUILD_DEPENDS+= cmocka>=1.1.3:sysutils/cmocka
-TEST_DEPENDS+= cmocka>=1.1.3:sysutils/cmocka
-SAMBA4_SUB+= SAMBA4_BUNDLED_CMOCKA="@comment "
-.endif
-# talloc
-.if defined(SAMBA4_BUNDLED_TALLOC) && ${SAMBA4_BUNDLED_TALLOC} == yes
-SAMBA4_BUNDLED_LIBS+= talloc
-SAMBA4_SUB+= SAMBA4_BUNDLED_TALLOC=""
-.else
-SAMBA4_BUNDLED_LIBS+= !talloc
-BUILD_DEPENDS+= talloc243>=2.4.3:devel/talloc243
-RUN_DEPENDS+= talloc243>=2.4.3:devel/talloc243
-SAMBA4_SUB+= SAMBA4_BUNDLED_TALLOC="@comment "
-.endif
-# tevent
-.if defined(SAMBA4_BUNDLED_TEVENT) && ${SAMBA4_BUNDLED_TEVENT} == yes
-SAMBA4_BUNDLED_LIBS+= tevent
-CONFLICTS_INSTALL+= tevent-* tevent1-*
-SAMBA4_SUB+= SAMBA4_BUNDLED_TEVENT=""
-.else
-SAMBA4_BUNDLED_LIBS+= !tevent
-BUILD_DEPENDS+= tevent017>=0.17:devel/tevent017
-RUN_DEPENDS+= tevent017>=0.17:devel/tevent017
-SAMBA4_SUB+= SAMBA4_BUNDLED_TEVENT="@comment "
-.endif
-# tdb
-.if defined(SAMBA4_BUNDLED_TDB) && ${SAMBA4_BUNDLED_TDB} == yes
-SAMBA4_BUNDLED_LIBS+= tdb
-CONFLICTS_INSTALL+= tdb-* tdb1-*
-SAMBA4_SUB+= SAMBA4_BUNDLED_TDB=""
-.else
-SAMBA4_BUNDLED_LIBS+= !tdb
-BUILD_DEPENDS+= tdb1413>=1.4.13:databases/tdb1413
-RUN_DEPENDS+= tdb1413>=1.4.13:databases/tdb1413
-SAMBA4_SUB+= SAMBA4_BUNDLED_TDB="@comment "
-.endif
-.if (defined(SAMBA4_BUNDLED_TALLOC) && ${SAMBA4_BUNDLED_TALLOC} == yes) \
- || (defined(SAMBA4_BUNDLED_TDB) && ${SAMBA4_BUNDLED_TDB} == 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
-
-### Public libraries
-# ldb
-SAMBA4_PRIVATE_LIBS+= !ldb
-CONFLICTS_INSTALL+= ldb-* ldb2[0-9]-*
-
-##############################################################################
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= SAMBA4_MODULES+="idmap_ad idmap_rfc2307 nss-info_template nss-info_rfc2307 nss-info_sfu nss-info_sfu20"
+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= ${SAMBA4_LMDB_DEPENDS}
-AD_DC_RUN_DEPENDS= ${SAMBA4_LMDB_DEPENDS}
+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
@@ -311,7 +235,35 @@ AD_DC_RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}markdown>=3.3.7:textproc/py-markdown
AVAHI_LIB_DEPENDS= libavahi-client.so:net/avahi-app
AVAHI_CONFIGURE_ENABLE= avahi
-AVAHI_VARS= SAMBA4_SERVICES+=avahi_daemon
+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= tdb1413>=1.4.13:databases/tdb1413
+BUNDLED_TDB_RUN_DEPENDS_OFF= tdb1413>=1.4.13:databases/tdb1413
+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:devel/tevent017
+BUNDLED_TEVENT_RUN_DEPENDS_OFF= tevent017>=0.17: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
@@ -320,18 +272,18 @@ CLUSTER_VARS= PLIST+=${PKGDIR}/pkg-plist.cluster
CUPS_LIB_DEPENDS= libcups.so:print/cups
CUPS_CONFIGURE_ENABLE= cups iprint
-DEVELOPER_BUILD_DEPENDS= ${SAMBA4_LMDB_DEPENDS} \
- ${GDB_CMD}:devel/gdb
-DEVELOPER_RUN_DEPENDS= ${SAMBA4_LMDB_DEPENDS}
-DEVELOPER_TEST_DEPENDS= ${GDB_CMD}:devel/gdb
+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= SAMBA4_MODULES+="auth_skel pdb_test gpext_security gpext_registry \
+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
+DEVELOPER_VARS_OFF= _GDB_CMD=true
# https://bugzilla.samba.org/show_bug.cgi?id=9545
FAM_USES= fam
@@ -340,12 +292,12 @@ 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= SAMBA4_MODULES+=vfs_fruit
+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= SAMBA4_MODULES+=vfs_glusterfs
+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}
@@ -357,13 +309,13 @@ GSSAPI_MIT_USES= bison gssapi:mit
GSSAPI_MIT_CONFIGURE_ON= --with-system-mitkrb5 ${GSSAPIBASEDIR} \
--with-system-mitkdc=${GSSAPIBASEDIR}/sbin/krb5kdc \
--with-experimental-mit-ad-dc
-GSSAPI_MIT_PLIST_FILES= ${SAMBA4_MODULEDIR}/krb5/winbind_krb5_localauth.so \
+GSSAPI_MIT_PLIST_FILES= ${SAMBA_MODULESDIR}/krb5/winbind_krb5_localauth.so \
%%MANPAGES%%share/man/man8/winbind_krb5_localauth.8.gz \
- %%AD_DC%%${SAMBA4_LIBDIR}/krb5/plugins/kdb/samba.so
+ %%AD_DC%%${SAMBA_LIBDIR}/krb5/plugins/kdb/samba.so
LDAP_USES= ldap
LDAP_CONFIGURE_WITH= ldap
-LDAP_VARS= SAMBA4_MODULES+=idmap_ldap
+LDAP_VARS= _SHARED_MODULES+=idmap_ldap
MANPAGES_BUILD_DEPENDS= ${LOCALBASE}/share/xsl/docbook/manpages/docbook.xsl:textproc/docbook-xsl \
xsltproc:textproc/libxslt
@@ -371,9 +323,8 @@ MANPAGES_CONFIGURE_ENV_OFF= XSLTPROC="false"
MDNSRESPONDER_LIB_DEPENDS= libdns_sd.so:net/mDNSResponder
MDNSRESPONDER_CONFIGURE_ENABLE= dnssd
-MDNSRESPONDER_VARS= SAMBA4_SERVICES+=mdnsd
+MDNSRESPONDER_VARS= _SAMBA_SERVICES+=mdnsd
-MEMORY_DEBUG_IMPLIES= DEBUG
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`"
@@ -392,10 +343,7 @@ PYTHON3_CONFIGURE_ON= --nopycache
PYTHON3_CONFIGURE_OFF= --disable-python
PYTHON3_MAKE_ENV= PYTHONDONTWRITEBYTECODE=1
PYTHON3_VARS= PLIST+=${PKGDIR}/pkg-plist.python \
- SAMBA4_BUNDLED_LIBS+=${"${SAMBA4_BUNDLED_TALLOC:Myes}" == "yes":?:!}pytalloc-util \
- SAMBA4_BUNDLED_LIBS+=${"${SAMBA4_BUNDLED_TEVENT:Myes}" == "yes":?:!}pytevent \
- SAMBA4_BUNDLED_LIBS+=${"${SAMBA4_BUNDLED_TDB:Myes}" == "yes":?:!}pytdb \
- SAMBA4_BUNDLED_LIBS+="pyldb pyldb-util"
+ _BUNDLED_LIBS+="pyldb pyldb-util"
QUOTAS_CONFIGURE_WITH= quotas
@@ -407,26 +355,38 @@ TEST_RUN_DEPENDS= ${_ISO8601_DEPENDS}
UTMP_CONFIGURE_WITH= utmp
ZEROCONF_NONE_MAKE_ENV= ZEROCONF=none
-##############################################################################
-.include <bsd.port.options.mk>
-##############################################################################
-.if !defined(WANT_EXP_MODULES) || empty(WANT_EXP_MODULES)
+
+.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}
-# snapper needs dbus
-LIB_DEPENDS+= libdbus-1.so:devel/dbus
-LIB_DEPENDS+= libdbus-glib-1.so:devel/dbus-glib
+_VFS_SNAPPER_LIB_DEPENDS= libdbus-1.so:devel/dbus \
+ libdbus-glib-1.so:devel/dbus-glib
.endif
-SAMBA4_MODULES+= krb5_async_dns_krb5_locator krb5_winbind_krb5_locator idmap_nss idmap_autorid \
+_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
-# 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 \
+_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 \
@@ -437,55 +397,48 @@ SAMBA4_MODULES+= vfs_acl_tdb vfs_acl_xattr vfs_aio_fork vfs_aio_pthread \
vfs_time_audit vfs_unityed_media vfs_virusfilter \
vfs_widelinks vfs_worm vfs_xattr_tdb vfs_zfsacl
-.if defined(WANT_EXP_MODULES) && !empty(WANT_EXP_MODULES)
-SAMBA4_MODULES+= ${WANT_EXP_MODULES}
-.endif
-
-.if defined(SAMBA4_PRIVATE_LIBS) && !empty(SAMBA4_PRIVATE_LIBS)
-CONFIGURE_ARGS+= --private-libraries="${SAMBA4_PRIVATE_LIBS:Q:C|(\\\\ )+|,|g:S|\\||g}"
-.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
+_SAMBA_MAJVERNAME= samba4
+_SAMBA_SUB= 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_CONFDIR="${_CONFDIR}" \
+ SAMBA4_CONFIG="${_SAMBA_CONFIG}" \
+ SAMBA4_SERVICES="${_SAMBA_SERVICES}"
+
+_SAMBA_CONFIG= smb4.conf
+
+# XXX: Instead of defining _CONFDIR we could probably just set ETCDIR.
+_CONFDIR= ${PREFIX}/etc
+_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
-.for module_class in ${SAMBA4_MODULES_CLASS}
-PLIST_DIRS+= ${SAMBA4_MODULEDIR}/${module_class}
-.endfor
-PLIST_DIRS+= ${SAMBA4_MODULEDIR}
+.include <bsd.port.options.mk>
-.if defined(WITH_DEBUG)
-CONFIGURE_ARGS+= --verbose --enable-debug
-MAKE_ARGS+= --verbose
-DEBUG_FLAGS?= -g -ggdb3 -O0
+.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
-# 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
-
-##############################################################################
-.include <bsd.port.pre.mk>
-##############################################################################
# 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
-SAMBA4_LMDB_DEPENDS= lmdb>=0.9.16:databases/lmdb
-PLIST_FILES+= ${SAMBA4_LIBDIR}/private/libldb-mdb-int-private-samba.so \
+_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
@@ -494,13 +447,13 @@ post-extract:
@${RM} -r ${WRKSRC}/pidl/lib/Parse/Yapp
post-patch:
- @${REINPLACE_CMD} -e 's|$${PKGCONFIGDIR}|${PKGCONFIGDIR}|g' \
+ @${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' \
+ @${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' \
+ @${REINPLACE_CMD} -e 's|%%SAMBA4_CONFIG%%|${_SAMBA_CONFIG}|g' \
${PATCH_WRKSRC}/dynconfig/wscript
post-install:
@@ -509,13 +462,13 @@ post-install:
-type d -print0 | ${XARGS} -0 -n 1 -t ${RM} -r
${FIND} ${STAGEDIR} -type f -empty -delete
-.for dir in ${SAMBA4_LOGDIR} ${SAMBA4_RUNDIR} ${SAMBA4_LOCKDIR} ${SAMBA4_MODULEDIR}
+.for dir in ${_LOGDIR} ${_RUNDIR} ${_LOCKDIR} ${SAMBA_MODULESDIR}
${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}"
+ ${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 \
@@ -524,11 +477,19 @@ post-install:
-type f -print0 | ${XARGS} -0 -n 1 -t ${STRIP_CMD}
.endif
-post-install-DOCS-on:
- ${MKDIR} ${STAGEDIR}${DOCSDIR}
-.for doc in ${PORTDOCS}
- ${INSTALL_DATA} ${WRKDIR}/${doc} ${STAGEDIR}${DOCSDIR}
-.endfor
+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
@@ -537,8 +498,16 @@ post-install-CLUSTER-on:
${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}${SAMBA4_MODULEDIR}/vfs/fruit.so
+ ${RM} ${STAGEDIR}${SAMBA_MODULESDIR}/vfs/fruit.so
${RM} ${STAGEDIR}${PREFIX}/share/man/man8/vfs_fruit.8
post-install-MANPAGES-on:
@@ -548,16 +517,4 @@ post-install-MANPAGES-on:
${RM} ${STAGEDIR}${PREFIX}/share/man/man8/${f}
.endfor
-.if defined(SAMBA4_BUNDLED_TALLOC) && ${SAMBA4_BUNDLED_TALLOC} == yes
-. for f in talloc.3
- ${MV} ${STAGEDIR}${PREFIX}/share/man/man3/${f} ${STAGEDIR}${PREFIX}/share/man/man3/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
-
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>