b7f05445c0
It has been common practice to have one or more URLs at the end of the ports' pkg-descr files, one per line and prefixed with "WWW:". These URLs should point at a project website or other relevant resources. Access to these URLs required processing of the pkg-descr files, and they have often become stale over time. If more than one such URL was present in a pkg-descr file, only the first one was tarnsfered into the port INDEX, but for many ports only the last line did contain the port specific URL to further information. There have been several proposals to make a project URL available as a macro in the ports' Makefiles, over time. This commit implements such a proposal and moves one of the WWW: entries of each pkg-descr file into the respective port's Makefile. A heuristic attempts to identify the most relevant URL in case there is more than one WWW: entry in some pkg-descr file. URLs that are not moved into the Makefile are prefixed with "See also:" instead of "WWW:" in the pkg-descr files in order to preserve them. There are 1256 ports that had no WWW: entries in pkg-descr files. These ports will not be touched in this commit. The portlint port has been adjusted to expect a WWW entry in each port Makefile, and to flag any remaining "WWW:" lines in pkg-descr files as deprecated. Approved by: portmgr (tcberner)
671 lines
24 KiB
Makefile
671 lines
24 KiB
Makefile
PORTNAME= ${SAMBA4_BASENAME}412
|
|
PORTVERSION= ${SAMBA4_VERSION}
|
|
PORTREVISION= 4
|
|
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
|
|
|
|
IGNORE_NONTHREAD_PYTHON= needs port lang/python${PYTHON_SUFFIX} to be build with THREADS support
|
|
CONFLICTS_INSTALL?= samba4* # bin/cifsdd bin/dbwrap_tool bin/dumpmscat bin/findsmb bin/gentest
|
|
|
|
USES= cpe
|
|
|
|
EXTRA_PATCHES+= ${PATCHDIR}/0001-Zfs-provision-1.patch:-p1
|
|
|
|
SAMBA4_BASENAME= samba
|
|
SAMBA4_PORTNAME= ${SAMBA4_BASENAME}4
|
|
SAMBA4_VERSION= 4.12.15
|
|
SAMBA4_DISTNAME= ${SAMBA4_BASENAME}-${SAMBA4_VERSION:S|.p|pre|:S|.r|rc|:S|.t|tp|:S|.a|alpha|}
|
|
|
|
WRKSRC?= ${WRKDIR}/${DISTNAME}
|
|
|
|
CPE_VENDOR= samba
|
|
CPE_PRODUCT= samba
|
|
# Directories
|
|
VARDIR= ${DESTDIR}/var
|
|
SAMBA4_RUNDIR= ${VARDIR}/run/${SAMBA4_PORTNAME}
|
|
SAMBA4_LOGDIR= ${VARDIR}/log/${SAMBA4_PORTNAME}
|
|
SAMBA4_LOCKDIR= ${VARDIR}/db/${SAMBA4_PORTNAME}
|
|
SAMBA4_BINDDNSDIR= ${SAMBA4_LOCKDIR}/bind-dns
|
|
SAMBA4_PRIVATEDIR= ${SAMBA4_LOCKDIR}/private
|
|
SAMBA4_PAMDIR= ${PREFIX}/lib
|
|
SAMBA4_LIBDIR= ${PREFIX}/lib/${SAMBA4_PORTNAME}
|
|
SAMBA4_INCLUDEDIR= ${PREFIX}/include/${SAMBA4_PORTNAME}
|
|
SAMBA4_CONFDIR= ${PREFIX}/etc
|
|
SAMBA4_CONFIG= smb4.conf
|
|
|
|
CONFIGURE_ARGS+= --mandir="${MANPREFIX}/man" \
|
|
--sysconfdir="${SAMBA4_CONFDIR}" \
|
|
--includedir="${SAMBA4_INCLUDEDIR}" \
|
|
--datadir="${DATADIR}" \
|
|
--libdir="${SAMBA4_LIBDIR}" \
|
|
--with-privatelibdir="${SAMBA4_LIBDIR}/private" \
|
|
--with-pammodulesdir="${SAMBA4_PAMDIR}" \
|
|
--with-modulesdir="${SAMBA4_MODULEDIR}" \
|
|
--with-pkgconfigdir="${PKGCONFIGDIR}" \
|
|
--localstatedir="${VARDIR}" \
|
|
--with-piddir="${SAMBA4_RUNDIR}" \
|
|
--with-sockets-dir="${SAMBA4_RUNDIR}" \
|
|
--with-privileged-socket-dir="${SAMBA4_RUNDIR}" \
|
|
--with-lockdir="${SAMBA4_LOCKDIR}" \
|
|
--with-statedir="${SAMBA4_LOCKDIR}" \
|
|
--with-cachedir="${SAMBA4_LOCKDIR}" \
|
|
--with-bind-dns-dir=${SAMBA4_BINDDNSDIR} \
|
|
--with-privatedir="${SAMBA4_PRIVATEDIR}" \
|
|
--with-logfilebase="${SAMBA4_LOGDIR}"
|
|
# XXX: Flags
|
|
CONFIGURE_ENV+= PTHREAD_LDFLAGS="-lpthread"
|
|
MAKE_ENV+= PYTHONHASHSEED=1
|
|
|
|
USES+= compiler:c++11-lang iconv localbase:ldflags \
|
|
perl5 pkgconfig shebangfix ssl waf gettext-runtime
|
|
USE_PERL5= build
|
|
USE_LDCONFIG= ${SAMBA4_LIBDIR}
|
|
WAF_CMD= buildtools/bin/waf
|
|
CONFIGURE_LOG= bin/config.log
|
|
|
|
PKGCONFIGDIR?= ${PREFIX}/libdata/pkgconfig
|
|
PKGCONFIGDIR_REL?= ${PKGCONFIGDIR:S,^${PREFIX}/,,}
|
|
PLIST_SUB+= PKGCONFIGDIR=${PKGCONFIGDIR_REL}
|
|
SUB_LIST+= PKGCONFIGDIR=${PKGCONFIGDIR_REL}
|
|
##############################################################################
|
|
OPTIONS_SUB= yes
|
|
|
|
OPTIONS_DEFINE= AD_DC ADS CLUSTER CUPS DOCS FAM GPGME \
|
|
LDAP NTVFS PROFILE QUOTAS SPOTLIGHT SYSLOG UTMP
|
|
# This shouldn't be default in the release
|
|
OPTIONS_DEFINE+= DEVELOPER MANDOC
|
|
#OPTIONS_DEFINE+= MEMORY_DEBUG
|
|
|
|
OPTIONS_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
|
|
|
|
OPTIONS_RADIO= DNS
|
|
OPTIONS_RADIO_DNS= NSUPDATE BIND911 BIND916
|
|
# Make those default options
|
|
OPTIONS_DEFAULT= AD_DC ADS DOCS FAM LDAP \
|
|
QUOTAS SYSLOG UTMP PROFILE \
|
|
FRUIT GSSAPI_BUILTIN AVAHI
|
|
##############################################################################
|
|
AD_DC_DESC= Active Directory Domain Controller
|
|
ADS_DESC= Active Directory client(implies LDAP)
|
|
CLUSTER_DESC= Clustering support
|
|
DEVELOPER_DESC= With developer framework(implies NTVFS)
|
|
FAM_DESC= File Alteration Monitor
|
|
GPGME_DESC= GpgME support
|
|
LDAP_DESC= LDAP client
|
|
LIBZFS_DESC= LibZFS
|
|
SPOTLIGHT_DESC= Spotlight server-side search support
|
|
MANDOC_DESC= Build manpages from DOCBOOK templates
|
|
MEMORY_DEBUG_DESC= Debug memory allocator
|
|
NTVFS_DESC= Build *DEPRECATED* NTVFS file server
|
|
PICKY_DEVELOPER_DESC= Treat compiler warnings as errors(implies DEVELOPER)
|
|
PROFILE_DESC= Profiling data
|
|
QUOTAS_DESC= Disk quota support
|
|
UTMP_DESC= UTMP accounting
|
|
|
|
VFS_DESC= VFS modules
|
|
GLUSTERFS_DESC= GlusterFS support
|
|
FRUIT_DESC= MacOSX and TimeMachine support
|
|
|
|
GSSAPI_BUILTIN_DESC= GSSAPI support via bundled Heimdal
|
|
|
|
ZEROCONF_DESC= Zero configuration networking
|
|
ZEROCONF_NONE_DESC= Zeroconf support is absent
|
|
|
|
DNS_DESC= DNS frontend
|
|
BIND911_DESC= Use Bind 9.11 as AD DC DNS server frontend
|
|
BIND916_DESC= Use Bind 9.16 as AD DC DNS server frontend
|
|
NSUPDATE_DESC= Use samba NSUPDATE utility for AD DC
|
|
##############################################################################
|
|
# XXX: Unconditional dependencies which can't be switched off(if present in
|
|
# the system)
|
|
|
|
# Iconv(picked up unconditionaly)
|
|
LIB_DEPENDS+= libiconv.so:converters/libiconv
|
|
# Readline(sponsored by Python)
|
|
# XXX: USES=readline pollutes CPPFLAGS, so we explicitly put dependency
|
|
LIB_DEPENDS+= libreadline.so:devel/readline
|
|
# popt
|
|
LIB_DEPENDS+= libpopt.so:devel/popt
|
|
# inotify
|
|
LIB_DEPENDS+= libinotify.so:devel/libinotify
|
|
# GNUTLS
|
|
LIB_DEPENDS+= libgnutls.so:security/gnutls
|
|
LIB_DEPENDS+= libgcrypt.so:security/libgcrypt
|
|
# NFSv4 ACL glue
|
|
LIB_DEPENDS+= libsunacl.so:sysutils/libsunacl
|
|
# Jansson
|
|
BUILD_DEPENDS+= jansson>=2.10:devel/jansson
|
|
RUN_DEPENDS+= jansson>=2.10:devel/jansson
|
|
# tasn1
|
|
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.1:devel/talloc
|
|
RUN_DEPENDS+= talloc>=2.3.1:devel/talloc
|
|
PLIST_SUB+= SAMBA4_BUNDLED_TALLOC="@comment "
|
|
SUB_LIST+= SAMBA4_BUNDLED_TALLOC="@comment "
|
|
.endif
|
|
# tevent
|
|
.if defined(SAMBA4_BUNDLED_TEVENT) && ${SAMBA4_BUNDLED_TEVENT} == yes
|
|
SAMBA4_BUNDLED_LIBS+= tevent
|
|
CONFLICTS_INSTALL+= tevent-* tevent1-*
|
|
PLIST_SUB+= SAMBA4_BUNDLED_TEVENT=""
|
|
SUB_LIST+= SAMBA4_BUNDLED_TEVENT=""
|
|
.else
|
|
SAMBA4_BUNDLED_LIBS+= !tevent
|
|
BUILD_DEPENDS+= tevent>=0.10.2:devel/tevent
|
|
RUN_DEPENDS+= tevent>=0.10.2: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.3:databases/tdb
|
|
RUN_DEPENDS+= tdb>=1.4.3: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+= ldb21>=2.1.2:databases/ldb21
|
|
RUN_DEPENDS+= ldb21>=2.1.2:databases/ldb21
|
|
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_VARS= MAKE_ENV+=ZEROCONF=none
|
|
|
|
AVAHI_CONFIGURE_ENABLE= avahi
|
|
AVAHI_LIB_DEPENDS= libavahi-client.so:net/avahi-app
|
|
AVAHI_VARS= SAMBA4_SERVICES+=avahi_daemon
|
|
|
|
MDNSRESPONDER_CONFIGURE_ENABLE= dnssd
|
|
MDNSRESPONDER_LIB_DEPENDS= libdns_sd.so:net/mDNSResponder
|
|
MDNSRESPONDER_VARS= SAMBA4_SERVICES+=mdnsd
|
|
##############################################################################
|
|
BIND911_RUN_DEPENDS= bind911>=9.11.0.0:dns/bind911
|
|
BIND916_RUN_DEPENDS= bind916>=9.16.0.0:dns/bind916
|
|
NSUPDATE_RUN_DEPENDS= samba-nsupdate:dns/samba-nsupdate
|
|
##############################################################################
|
|
MEMORY_DEBUG_IMPLIES= DEBUG
|
|
MEMORY_DEBUG_CONFIGURE_ENV= ADDITIONAL_CFLAGS="-DENABLE_JEMALLOC `pkg-config --cflags jemalloc`" ADDITIONAL_LDFLAGS="`pkg-config --libs jemalloc`"
|
|
MEMORY_DEBUG_LIB_DEPENDS= libjemalloc.so.2:devel/jemalloc
|
|
# https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=194046
|
|
GDB_CMD?= ${LOCALBASE}/bin/gdb
|
|
# https://bugzilla.samba.org/show_bug.cgi?id=8969
|
|
PICKY_DEVELOPER_IMPLIES= DEVELOPER
|
|
PICKY_DEVELOPER_CONFIGURE_ON= --picky-developer
|
|
|
|
DEVELOPER_IMPLIES= NTVFS
|
|
DEVELOPER_CONFIGURE_ON= --enable-developer --enable-selftest --abi-check-disable
|
|
DEVELOPER_CONFIGURE_ENV= WAF_CMD_FORMAT=string
|
|
DEVELOPER_RUN_DEPENDS= ${SAMBA4_LMDB_DEPENDS}
|
|
DEVELOPER_BUILD_DEPENDS= ${GDB_CMD}:devel/gdb \
|
|
${SAMBA4_LMDB_DEPENDS}
|
|
DEVELOPER_TEST_DEPENDS= ${GDB_CMD}:devel/gdb
|
|
DEVELOPER_VARS_OFF= GDB_CMD=true
|
|
# XXX: Mostly used in conjuction with the DEVELOPER option, don't enable it
|
|
# if you don't know what you are doing
|
|
NTVFS_IMPLIES= AD_DC
|
|
NTVFS_CONFIGURE_WITH= ntvfs-fileserver
|
|
NTVFS_PLIST_FILES= ${SAMBA4_MODULEDIR}/service/smb.so \
|
|
lib/samba4/private/libntvfs-samba4.so
|
|
##############################################################################
|
|
CLUSTER_CONFIGURE_WITH= cluster-support
|
|
|
|
CUPS_CONFIGURE_ENABLE= cups iprint
|
|
CUPS_LIB_DEPENDS= libcups.so:print/cups
|
|
# https://bugzilla.samba.org/show_bug.cgi?id=9545
|
|
FAM_USES= fam
|
|
FAM_CONFIGURE_WITH= fam
|
|
|
|
GPGME_CONFIGURE_WITH= gpgme
|
|
GPGME_LIB_DEPENDS= libgpgme.so:security/gpgme
|
|
|
|
PROFILE_CONFIGURE_WITH= profiling-data
|
|
|
|
QUOTAS_CONFIGURE_WITH= quotas
|
|
|
|
SPOTLIGHT_CONFIGURE_ENABLE= spotlight
|
|
SPOTLIGHT_BUILD_DEPENDS= tracker>=1.4.1:sysutils/tracker
|
|
SPOTLIGHT_RUN_DEPENDS= tracker>=1.4.1:sysutils/tracker
|
|
# ICU
|
|
SPOTLIGHT_LIB_DEPENDS+= libicuuc.so:devel/icu
|
|
SPOTLIGHT_USES= bison gnome
|
|
SPOTLIGHT_USE= gnome=glib20
|
|
|
|
SYSLOG_CONFIGURE_WITH= syslog
|
|
|
|
UTMP_CONFIGURE_WITH= utmp
|
|
|
|
AD_DC_CONFIGURE_OFF= --without-ad-dc
|
|
AD_DC_BUILD_DEPENDS= ${SAMBA4_LMDB_DEPENDS}
|
|
AD_DC_RUN_DEPENDS= ${SAMBA4_LMDB_DEPENDS}
|
|
|
|
ADS_IMPLIES= LDAP
|
|
ADS_CONFIGURE_WITH= ads dnsupdate
|
|
|
|
LDAP_CONFIGURE_WITH= ldap
|
|
LDAP_CONFIGURE_ON= --with-openldap=${LOCALBASE}
|
|
LDAP_USE= OPENLDAP=yes
|
|
LDAP_VARS= SAMBA4_MODULES+=idmap_ldap
|
|
|
|
GSSAPI_MIT_CONFIGURE_ON= --with-system-mitkrb5 ${GSSAPIBASEDIR} \
|
|
--with-system-mitkdc=${GSSAPIBASEDIR}/sbin/krb5kdc \
|
|
--with-experimental-mit-ad-dc
|
|
GSSAPI_MIT_USES= gssapi:mit
|
|
|
|
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
|
|
|
|
LIBZFS_CONFIGURE_WITH= libzfs
|
|
LIBZFS_VARS= SAMBA4_MODULES+=vfs_zfs_space
|
|
|
|
MANDOC_BUILD_DEPENDS= ${LOCALBASE}/share/xsl/docbook/manpages/docbook.xsl:textproc/docbook-xsl \
|
|
xsltproc:textproc/libxslt
|
|
MANDOC_CONFIGURE_ENV_OFF= XSLTPROC="true"
|
|
|
|
##############################################################################
|
|
.include <bsd.port.options.mk>
|
|
##############################################################################
|
|
|
|
.if ${ARCH} == aarch64 || ${ARCH} == amd64 || ${ARCH} == armv7 || ${ARCH} == i386 || ${ARCH} == powerpc64 || ${ARCH} == powerpc64le
|
|
# unwind
|
|
LIB_DEPENDS+= libunwind.so:devel/libunwind
|
|
.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+= vfs_freebsd
|
|
|
|
SAMBA4_MODULES+= idmap_nss idmap_autorid idmap_rid idmap_hash idmap_tdb idmap_tdb2 idmap_script nss-info_hash
|
|
# List of extra modules taken from RHEL build
|
|
# https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=197320
|
|
.if ${PORT_OPTIONS:MADS}
|
|
SAMBA4_MODULES+= idmap_ad idmap_rfc2307 nss-info_template nss-info_rfc2307 nss-info_sfu nss-info_sfu20
|
|
.endif
|
|
|
|
.if ${PORT_OPTIONS:MDEVELOPER}
|
|
SAMBA4_MODULES+= auth_skel pdb_test gpext_security gpext_registry gpext_scripts perfcount_test \
|
|
vfs_fake_dfq vfs_skel_opaque vfs_skel_transparent vfs_shadow_copy_test vfs_fake_acls \
|
|
vfs_nfs4acl_xattr vfs_error_inject vfs_delay_inject
|
|
.endif
|
|
# Python bindings
|
|
.if defined(NO_PYTHON)
|
|
USES+= python:build,test
|
|
CONFIGURE_ARGS+= --disable-python
|
|
PLIST_SUB+= SAMBA4_PYTHON="@comment "
|
|
SUB_LIST+= SAMBA4_PYTHON="@comment "
|
|
.else
|
|
USES+= python:3.5+
|
|
PLIST_SUB+= SAMBA4_PYTHON=""
|
|
SUB_LIST+= SAMBA4_PYTHON=""
|
|
# Don't cache Python modules
|
|
CONFIGURE_ARGS+= --nopycache
|
|
MAKE_ENV+= PYTHONDONTWRITEBYTECODE=1
|
|
|
|
. if defined(SAMBA4_BUNDLED_TALLOC) && ${SAMBA4_BUNDLED_TALLOC} == yes
|
|
SAMBA4_BUNDLED_LIBS+= pytalloc-util
|
|
. else
|
|
SAMBA4_BUNDLED_LIBS+= !pytalloc-util
|
|
. endif
|
|
|
|
. if defined(SAMBA4_BUNDLED_TEVENT) && ${SAMBA4_BUNDLED_TEVENT} == yes
|
|
SAMBA4_BUNDLED_LIBS+= pytevent
|
|
. else
|
|
SAMBA4_BUNDLED_LIBS+= !pytevent
|
|
. endif
|
|
|
|
. if defined(SAMBA4_BUNDLED_TDB) && ${SAMBA4_BUNDLED_TDB} == yes
|
|
SAMBA4_BUNDLED_LIBS+= pytdb
|
|
. else
|
|
SAMBA4_BUNDLED_LIBS+= !pytdb
|
|
. endif
|
|
|
|
. if defined(SAMBA4_BUNDLED_LDB) && ${SAMBA4_BUNDLED_LDB} == yes
|
|
SAMBA4_BUNDLED_LIBS+= pyldb pyldb-util
|
|
. else
|
|
SAMBA4_BUNDLED_LIBS+= !pyldb !pyldb-util
|
|
. endif
|
|
# samba-tool requires those for *upgrade
|
|
. if ${PORT_OPTIONS:MAD_DC}
|
|
RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}dnspython>=1.15.0:dns/py-dnspython@${PY_FLAVOR}
|
|
RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}markdown>=2.6.11:textproc/py-markdown@${PY_FLAVOR}
|
|
. if ${PORT_OPTIONS:MGPGME}
|
|
RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}gpgme>=1.14.0:security/py-gpgme@${PY_FLAVOR}
|
|
. endif
|
|
. 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
|
|
|
|
.if defined(WITH_DEBUG)
|
|
CONFIGURE_ARGS+= --verbose --enable-debug
|
|
MAKE_ARGS+= --verbose
|
|
DEBUG_FLAGS?= -g -ggdb3 -O0
|
|
.endif
|
|
|
|
##############################################################################
|
|
.include <bsd.port.pre.mk>
|
|
##############################################################################
|
|
# 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+= lib/samba4/private/libldb-mdb-int-samba4.so \
|
|
${SAMBA4_MODULEDIR}/ldb/mdb.so
|
|
. endif
|
|
.endif
|
|
|
|
.if ${PORT_OPTIONS:MGSSAPI_MIT}
|
|
PLIST_FILES+= ${SAMBA4_MODULEDIR}/krb5/winbind_krb5_localauth.so \
|
|
man/man8/winbind_krb5_localauth.8.gz
|
|
. if ${PORT_OPTIONS:MAD_DC}
|
|
PLIST_FILES+= lib/samba4/krb5/plugins/kdb/samba.so
|
|
. endif
|
|
.endif
|
|
# for libexecinfo: (so that __builtin_frame_address() finds the top of the stack)
|
|
CFLAGS_amd64+= -fno-omit-frame-pointer
|
|
# No fancy color error messages
|
|
CONFIGURE_ENV+= NOCOLOR=yes WAF_LOG_FORMAT='%(c1)s%(zone)s%(c2)s %(message)s'
|
|
MAKE_ENV+= NOCOLOR=yes WAF_LOG_FORMAT='%(c1)s%(zone)s%(c2)s %(message)s'
|
|
.if ${CHOSEN_COMPILER_TYPE} == clang
|
|
CFLAGS+= -fno-color-diagnostics
|
|
.endif
|
|
# Allow rpcgen to find proper CPP
|
|
MAKE_ENV+= RPCGEN_CPP="${CPP}"
|
|
#.if ${readline_ARGS} == port
|
|
#CFLAGS+= -D_FUNCTION_DEF
|
|
#.endif
|
|
|
|
# Make sure that the right version of Python is used by the tools
|
|
# https://bugzilla.samba.org/show_bug.cgi?id=7305
|
|
SHEBANG_FILES= ${PATCH_WRKSRC}/source4/scripting/bin/* ${PATCH_WRKSRC}/selftest/*
|
|
|
|
SAMBA4_SUB= SAMBA4_LOGDIR="${SAMBA4_LOGDIR}" \
|
|
SAMBA4_RUNDIR="${SAMBA4_RUNDIR}" \
|
|
SAMBA4_LOCKDIR="${SAMBA4_LOCKDIR}" \
|
|
SAMBA4_MODULEDIR="${SAMBA4_MODULEDIR}" \
|
|
SAMBA4_BINDDNSDIR="${SAMBA4_BINDDNSDIR}" \
|
|
SAMBA4_PRIVATEDIR="${SAMBA4_PRIVATEDIR}" \
|
|
SAMBA4_CONFDIR="${SAMBA4_CONFDIR}" \
|
|
SAMBA4_CONFIG="${SAMBA4_CONFIG}" \
|
|
SAMBA4_SERVICES="${SAMBA4_SERVICES}"
|
|
|
|
PLIST_SUB+= ${SAMBA4_SUB}
|
|
SUB_LIST+= ${SAMBA4_SUB}
|
|
|
|
USE_RC_SUBR= samba_server
|
|
SUB_FILES= pkg-message README.FreeBSD
|
|
|
|
PORTDOCS= README.FreeBSD
|
|
|
|
post-extract:
|
|
@${RM} -r ${WRKSRC}/pidl/lib/Parse/Yapp
|
|
|
|
post-patch:
|
|
@${REINPLACE_CMD} -e 's|$${PKGCONFIGDIR}|${PKGCONFIGDIR}|g' \
|
|
${PATCH_WRKSRC}/buildtools/wafsamba/pkgconfig.py
|
|
@${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \
|
|
${PATCH_WRKSRC}/buildtools/wafsamba/wafsamba.py
|
|
@${REINPLACE_CMD} -e 's|%%GDB_CMD%%|${GDB_CMD}|g' \
|
|
${PATCH_WRKSRC}/buildtools/scripts/abi_gen.sh
|
|
@${REINPLACE_CMD} -e 's|%%SAMBA4_CONFIG%%|${SAMBA4_CONFIG}|g' \
|
|
${PATCH_WRKSRC}/dynconfig/wscript
|
|
|
|
# Use threading (or multiprocessing) but not thread (renamed in python 3+).
|
|
pre-configure:
|
|
.if ! ${PORT_OPTIONS:MAD_DC} && ${PORT_OPTIONS:MNTVFS}
|
|
@${ECHO_CMD}; \
|
|
${ECHO_MSG} "===> NTVFS option requires AD_DC to be set"; \
|
|
${ECHO_CMD}; \
|
|
${FALSE}
|
|
.endif
|
|
@if ! ${PYTHON_CMD} -c "import multiprocessing;" 2>/dev/null; then \
|
|
${ECHO_CMD}; \
|
|
${ECHO_MSG} "===> ${PKGNAME} "${IGNORE_NONTHREAD_PYTHON:Q}.; \
|
|
${ECHO_CMD}; \
|
|
${FALSE}; \
|
|
fi
|
|
|
|
pre-build-MANDOC-off:
|
|
${MKDIR} ${BUILD_WRKSRC}/bin/default/docs-xml/
|
|
${CP} -rp ${BUILD_WRKSRC}/docs/manpages ${BUILD_WRKSRC}/bin/default/docs-xml/
|
|
.for man in libcli/nbt/man/nmblookup4.1 \
|
|
librpc/tools/ndrdump.1 \
|
|
source4/lib/registry/man/regdiff.1 \
|
|
source4/lib/registry/man/regpatch.1 \
|
|
source4/lib/registry/man/regshell.1 \
|
|
source4/lib/registry/man/regtree.1 \
|
|
source4/scripting/man/samba-gpupdate.8 \
|
|
source4/torture/man/gentest.1 \
|
|
source4/torture/man/locktest.1 \
|
|
source4/torture/man/masktest.1 \
|
|
source4/torture/man/smbtorture.1 \
|
|
source4/utils/man/ntlm_auth4.1 \
|
|
source4/utils/oLschema2ldif/oLschema2ldif.1 \
|
|
lib/tdb/man/tdbdump.8 \
|
|
lib/tdb/man/tdbbackup.8 \
|
|
lib/tdb/man/tdbtool.8 \
|
|
lib/talloc/man/talloc.3 \
|
|
lib/tdb/man/tdbrestore.8 \
|
|
lib/ldb/man/ldbadd.1 \
|
|
lib/ldb/man/ldbsearch.1 \
|
|
lib/ldb/man/ldbmodify.1 \
|
|
lib/ldb/man/ldbrename.1 \
|
|
lib/ldb/man/ldbdel.1 \
|
|
lib/ldb/man/ldbedit.1 \
|
|
docs-xml/manpages/vfs_freebsd.8
|
|
${MKDIR} `dirname ${BUILD_WRKSRC}/bin/default/${man}`
|
|
${INSTALL_MAN} ${FILESDIR}/man/`basename ${man}` ${BUILD_WRKSRC}/bin/default/${man}
|
|
.endfor
|
|
.if ${PORT_OPTIONS:MCLUSTER}
|
|
${MKDIR} ${BUILD_WRKSRC}/bin/default/ctdb/
|
|
. for man in ctdb_diagnostics.1 ctdb.1 ctdbd_wrapper.1 ctdbd.1 ltdbtool.1 onnode.1 ping_pong.1 \
|
|
ctdb.conf.5 ctdb.sysconfig.5 ctdb-script.options.5 \
|
|
ctdb.7 ctdb-statistics.7 ctdb-tunables.7
|
|
${INSTALL_MAN} ${FILESDIR}/man/${man} ${BUILD_WRKSRC}/bin/default/ctdb/
|
|
. endfor
|
|
.endif
|
|
|
|
post-install-rm-junk:
|
|
${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 dir in auth bind9 gensec gpext idmap ldb nss_info pdb perfcount process_model service vfs
|
|
${INSTALL} -d -m 0755 "${STAGEDIR}${SAMBA4_MODULEDIR}/${dir}"
|
|
.endfor
|
|
.if !defined(WITH_DEBUG)
|
|
-${FIND} ${STAGEDIR}${PREFIX}/bin ${STAGEDIR}${PREFIX}/sbin ${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 <bsd.port.post.mk>
|