mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-16 03:24:07 +00:00
474c6ef520
Sponsored by: ixSystems Inc.
585 lines
20 KiB
Makefile
585 lines
20 KiB
Makefile
# Created by: timur@FreeBSD.org
|
|
# $FreeBSD$
|
|
|
|
PORTNAME= ${SAMBA4_BASENAME}48
|
|
PORTVERSION= ${SAMBA4_VERSION}
|
|
PORTREVISION= 0
|
|
CATEGORIES?= net
|
|
MASTER_SITES= SAMBA/samba/stable SAMBA/samba/rc
|
|
DISTNAME= ${SAMBA4_DISTNAME}
|
|
|
|
MAINTAINER= timur@FreeBSD.org
|
|
COMMENT= Free SMB/CIFS and AD/DC server and client for Unix
|
|
|
|
LICENSE= GPLv3
|
|
|
|
IGNORE_NONTHREAD_PYTHON= needs port lang/python${PYTHON_SUFFIX} to be build with THREADS support
|
|
|
|
CONFLICTS_INSTALL?= samba4-4.0.* samba4[1-79]-4.* p5-Parse-Pidl-4.*
|
|
|
|
EXTRA_PATCHES+= ${PATCHDIR}/0001-Zfs-provision-1.patch:-p1
|
|
EXTRA_PATCHES+= ${PATCHDIR}/0001-Freenas-master-mdns-fixes-22.patch:-p1
|
|
|
|
SAMBA4_BASENAME= samba
|
|
SAMBA4_PORTNAME= ${SAMBA4_BASENAME}4
|
|
SAMBA4_VERSION= 4.8.0
|
|
SAMBA4_DISTNAME= ${SAMBA4_BASENAME}-${SAMBA4_VERSION:S|.p|pre|:S|.r|rc|:S|.t|tp|:S|.a|alpha|}
|
|
|
|
WRKSRC?= ${WRKDIR}/${DISTNAME}
|
|
|
|
.if !defined(SAMBA4_SUBPORT)
|
|
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_MODULEDIR= ${PREFIX}/lib/shared-modules
|
|
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"
|
|
CPPFLAGS+= -I${LOCALBASE}/include
|
|
LDFLAGS+= -L${LOCALBASE}/lib
|
|
|
|
USES= cpe compiler waf pkgconfig perl5 \
|
|
iconv shebangfix
|
|
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
|
|
OPTIONS_SUB= yes
|
|
|
|
OPTIONS_DEFINE= AD_DC ADS DEBUG DOCS FAM LDAP \
|
|
QUOTAS SYSLOG UTMP PROFILE
|
|
# Make those default options
|
|
OPTIONS_DEFAULT:= ${OPTIONS_DEFINE}
|
|
# This shouldn't be default in the release
|
|
OPTIONS_DEFINE+= DEVELOPER MANDOC
|
|
|
|
OPTIONS_DEFINE_amd64= AESNI
|
|
OPTIONS_DEFAULT_amd64= AESNI
|
|
|
|
OPTIONS_DEFINE+= CUPS GPGME NTVFS SPOTLIGHT
|
|
|
|
OPTIONS_RADIO= DNS ZEROCONF
|
|
OPTIONS_RADIO_DNS= NSUPDATE BIND99 BIND910 BIND911
|
|
OPTIONS_RADIO_ZEROCONF= MDNSRESPONDER AVAHI
|
|
##############################################################################
|
|
AD_DC_DESC= Active Directory Domain Controller
|
|
ADS_DESC= Active Directory client(implies LDAP)
|
|
AESNI_DESC= Accelerated AES crypto functions(amd64 only)
|
|
CLUSTER_DESC= Clustering
|
|
DEVELOPER_DESC= With developer framework(implies NTVFS)
|
|
FAM_DESC= File Alteration Monitor
|
|
GPGME_DESC= GpgME
|
|
GLUSTERFS_DESC= GlusterFS
|
|
LDAP_DESC= LDAP client
|
|
LIBZFS_DESC= LibZFS
|
|
SPOTLIGHT_DESC= Spotlight
|
|
MANDOC_DESC= Build manpages from DOCBOOK templates
|
|
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
|
|
UTMP_DESC= UTMP accounting
|
|
|
|
BIND99_DESC= Use Bind 9.9 as AD DC DNS server frontend
|
|
BIND910_DESC= Use Bind 9.10 as AD DC DNS server frontend
|
|
BIND911_DESC= Use Bind 9.11 as AD DC DNS server frontend
|
|
NSUPDATE_DESC= Use samba NSUPDATE utility for AD DC
|
|
##############################################################################
|
|
PLIST_SUB+= CLUSTER="@comment "
|
|
SUB_LIST+= CLUSTER="@comment "
|
|
# XXX: Unconditional dependencies which can't be switched off(if present in the system)
|
|
# popt
|
|
LIB_DEPENDS+= libpopt.so:devel/popt
|
|
# inotify
|
|
LIB_DEPENDS+= libinotify.so:devel/libinotify
|
|
# GNUTLS
|
|
LIB_DEPENDS+= libgnutls.so:security/gnutls
|
|
# NFS4 ACL glue
|
|
LIB_DEPENDS+= libsunacl.so:sysutils/libsunacl
|
|
# Jansson
|
|
BUILD_DEPENDS+= jansson>=2.10:devel/jansson
|
|
RUN_DEPENDS+= jansson>=2.10:devel/jansson
|
|
# 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
|
|
SAMBA4_LDB= 13
|
|
# cmocka
|
|
.if defined(SAMBA4_BUNDLED_CMOCKA)
|
|
SAMBA4_BUNDLED_LIBS+= cmocka
|
|
CONFLICTS+= cmocka-1.*
|
|
PLIST_SUB+= SAMBA4_BUNDLED_CMOCKA=""
|
|
SUB_LIST+= SAMBA4_BUNDLED_CMOCKA=""
|
|
.else
|
|
SAMBA4_BUNDLED_LIBS+= !cmocka
|
|
BUILD_DEPENDS+= cmocka>=1.1.1:sysutils/cmocka
|
|
RUN_DEPENDS+= cmocka>=1.1.1:sysutils/cmocka
|
|
PLIST_SUB+= SAMBA4_BUNDLED_CMOCKA="@comment "
|
|
SUB_LIST+= SAMBA4_BUNDLED_CMOCKA="@comment "
|
|
.endif
|
|
# talloc
|
|
.if defined(SAMBA4_BUNDLED_TALLOC)
|
|
SAMBA4_BUNDLED_LIBS+= talloc
|
|
CONFLICTS+= talloc-2.*
|
|
PLIST_SUB+= SAMBA4_BUNDLED_TALLOC=""
|
|
SUB_LIST+= SAMBA4_BUNDLED_TALLOC=""
|
|
.else
|
|
SAMBA4_BUNDLED_LIBS+= !talloc
|
|
BUILD_DEPENDS+= talloc>=2.1.11:devel/talloc
|
|
RUN_DEPENDS+= talloc>=2.1.11:devel/talloc
|
|
PLIST_SUB+= SAMBA4_BUNDLED_TALLOC="@comment "
|
|
SUB_LIST+= SAMBA4_BUNDLED_TALLOC="@comment "
|
|
.endif
|
|
# tevent
|
|
.if defined(SAMBA4_BUNDLED_TEVENT)
|
|
SAMBA4_BUNDLED_LIBS+= tevent
|
|
CONFLICTS+= tevent-0.*
|
|
PLIST_SUB+= SAMBA4_BUNDLED_TEVENT=""
|
|
SUB_LIST+= SAMBA4_BUNDLED_TEVENT=""
|
|
.else
|
|
SAMBA4_BUNDLED_LIBS+= !tevent
|
|
BUILD_DEPENDS+= tevent>=0.9.36:devel/tevent
|
|
RUN_DEPENDS+= tevent>=0.9.36:devel/tevent
|
|
PLIST_SUB+= SAMBA4_BUNDLED_TEVENT="@comment "
|
|
SUB_LIST+= SAMBA4_BUNDLED_TEVENT="@comment "
|
|
.endif
|
|
# tdb
|
|
.if defined(SAMBA4_BUNDLED_TDB)
|
|
SAMBA4_BUNDLED_LIBS+= tdb
|
|
CONFLICTS+= tdb-1.*
|
|
PLIST_SUB+= SAMBA4_BUNDLED_TDB=""
|
|
SUB_LIST+= SAMBA4_BUNDLED_TDB=""
|
|
.else
|
|
SAMBA4_BUNDLED_LIBS+= !tdb
|
|
BUILD_DEPENDS+= tdb>=1.3.15:databases/tdb
|
|
RUN_DEPENDS+= tdb>=1.3.15:databases/tdb
|
|
PLIST_SUB+= SAMBA4_BUNDLED_TDB="@comment "
|
|
SUB_LIST+= SAMBA4_BUNDLED_TDB="@comment "
|
|
.endif
|
|
# ldb
|
|
.if defined(SAMBA4_BUNDLED_LDB) || !defined(SAMBA4_LDB)
|
|
SAMBA4_BUNDLED_LDB= yes
|
|
SAMBA4_BUNDLED_LIBS+= ldb
|
|
CONFLICTS+= ldb-1.* ldb1[23]-1.*
|
|
PLIST_SUB+= SAMBA4_BUNDLED_LDB=""
|
|
SUB_LIST+= SAMBA4_BUNDLED_LDB=""
|
|
.else
|
|
. if ${SAMBA4_LDB} == 13
|
|
BUILD_DEPENDS+= ldb13>=1.3.2:databases/ldb13
|
|
RUN_DEPENDS+= ldb13>=1.3.2:databases/ldb13
|
|
. elif ${SAMBA4_LDB} == 12
|
|
BUILD_DEPENDS+= ldb12>=1.2.3:databases/ldb12
|
|
RUN_DEPENDS+= ldb12>=1.2.3:databases/ldb12
|
|
. elif ${SAMBA4_LDB} == 11
|
|
BUILD_DEPENDS+= ldb>=1.1.29:databases/ldb
|
|
RUN_DEPENDS+= ldb>=1.1.29:databases/ldb
|
|
. endif
|
|
SAMBA4_BUNDLED_LIBS+= !ldb
|
|
PLIST_SUB+= SAMBA4_BUNDLED_LDB="@comment "
|
|
SUB_LIST+= SAMBA4_BUNDLED_LDB="@comment "
|
|
.endif
|
|
|
|
.if defined(SAMBA4_BUNDLED_TALLOC) || defined(SAMBA4_BUNDLED_TEVENT) || defined(SAMBA4_BUNDLED_TDB)
|
|
SAMBA4_BUNDLED_LIBS+= replace
|
|
.endif
|
|
# Don't use external libcom_err
|
|
SAMBA4_BUNDLED_LIBS+= com_err
|
|
# Set the test environment variables
|
|
TEST_ENV+= PYTHON="${PYTHON_CMD}" \
|
|
SHA1SUM=/sbin/sha1 \
|
|
SHA256SUM=/sbin/sha256 \
|
|
MD5SUM=/sbin/md5
|
|
TEST_DEPENDS+= python:lang/python \
|
|
bash:shells/bash \
|
|
tshark:net/tshark
|
|
##############################################################################
|
|
CONFIGURE_ARGS+= \
|
|
--with-pam \
|
|
--with-iconv \
|
|
--with-winbind \
|
|
--with-regedit \
|
|
--disable-rpath \
|
|
--without-lttng \
|
|
--without-gettext \
|
|
--enable-pthreadpool \
|
|
--without-fake-kaserver \
|
|
--without-systemd \
|
|
--enable-gnutls \
|
|
--with-libarchive \
|
|
--with-acl-support \
|
|
--with-sendfile-support \
|
|
--disable-ctdb-tests \
|
|
${ICONV_CONFIGURE_BASE}
|
|
|
|
##############################################################################
|
|
BIND99_RUN_DEPENDS= bind99>=9.9.0.0:dns/bind99
|
|
BIND910_RUN_DEPENDS= bind910>=9.10.0.0:dns/bind910
|
|
BIND911_RUN_DEPENDS= bind911>=9.11.0.0:dns/bind911
|
|
NSUPDATE_RUN_DEPENDS= samba-nsupdate:dns/samba-nsupdate
|
|
|
|
AVAHI_CONFIGURE_ENABLE= avahi
|
|
AVAHI_LIB_DEPENDS= libavahi-client.so:net/avahi-app
|
|
|
|
MDNSRESPONDER_CONFIGURE_ENABLE= dnssd
|
|
MDNSRESPONDER_LIB_DEPENDS= libdns_sd.so:net/mDNSResponder
|
|
##############################################################################
|
|
DEBUG_CONFIGURE_ON= --verbose --enable-debug
|
|
DEBUG_MAKE_ARGS= --verbose
|
|
DEBUG_FLAGS= -g -ggdb3 -O0
|
|
# 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_BUILD_DEPENDS= ${GDB_CMD}:devel/gdb
|
|
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_CONFIGURE_WITH= ntvfs-fileserver
|
|
NTVFS_PLIST_FILES= lib/shared-modules/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
|
|
|
|
GLUSTERFS_CONFIGURE_ENABLE= glusterfs
|
|
GLUSTERFS_LIB_DEPENDS= libglusterfs.so:net/glusterfs
|
|
GLUSTERFS_VARS= SAMBA4_MODULES+=vfs_glusterfs
|
|
|
|
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
|
|
SPOTLIGHT_USES= bison
|
|
SPOTLIGHT_USE= gnome=glib20
|
|
|
|
SYSLOG_CONFIGURE_WITH= syslog
|
|
|
|
UTMP_CONFIGURE_WITH= utmp
|
|
|
|
AD_DC_CONFIGURE_OFF= --without-ad-dc
|
|
|
|
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
|
|
|
|
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"
|
|
# !SAMBA4_SUBPORT
|
|
.endif
|
|
|
|
##############################################################################
|
|
.include <bsd.port.options.mk>
|
|
##############################################################################
|
|
|
|
.if !defined(SAMBA4_SUBPORT)
|
|
|
|
.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
|
|
.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+= lib/shared-modules/${module:C|_|/|:C|-|_|}.so
|
|
.endfor
|
|
# Python bindings
|
|
.if defined(NO_PYTHON)
|
|
USES+= python:2.7,build,test
|
|
CONFIGURE_ARGS+= --disable-python
|
|
PLIST_SUB+= SAMBA4_PYTHON2="@comment " SAMBA4_PYTHON3="@comment "
|
|
SUB_LIST+= SAMBA4_PYTHON2="@comment " SAMBA4_PYTHON3="@comment "
|
|
.else
|
|
USES+= python:2.7
|
|
PLIST_SUB+= SAMBA4_PYTHON2=""
|
|
SUB_LIST+= SAMBA4_PYTHON2=""
|
|
|
|
.if !defined(SAMBA4_BUNDLED_TALLOC)
|
|
SAMBA4_BUNDLED_LIBS+= !pytalloc-util
|
|
.endif
|
|
.if !defined(SAMBA4_BUNDLED_TEVENT)
|
|
SAMBA4_BUNDLED_LIBS+= !pytevent
|
|
.endif
|
|
.if !defined(SAMBA4_BUNDLED_TDB)
|
|
SAMBA4_BUNDLED_LIBS+= !pytdb
|
|
.endif
|
|
.if !defined(SAMBA4_BUNDLED_LDB)
|
|
SAMBA4_BUNDLED_LIBS+= !pyldb,!pyldb-util
|
|
.endif
|
|
# External Python modules
|
|
BUILD_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}dnspython>=1.15.0:dns/py-dnspython@${PY_FLAVOR}
|
|
RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}dnspython>=1.15.0:dns/py-dnspython@${PY_FLAVOR}
|
|
|
|
BUILD_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}iso8601>=0.1.11:devel/py-iso8601@${PY_FLAVOR}
|
|
RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}iso8601>=0.1.11:devel/py-iso8601@${PY_FLAVOR}
|
|
# XXX: This is a gross hack to make port use both Python 2.7+ and 3.3+
|
|
# This is not officially supported, use at your own risk
|
|
.if defined(WITH_SAMBA4_PYTHON3) && ${WITH_SAMBA4_PYTHON3:Mpython3\.[0-9]}
|
|
SAMBA4_PYTHON3= ${WITH_SAMBA4_PYTHON3}
|
|
SAMBA4_PYTHON3_VERSION:= ${SAMBA4_PYTHON3:S/^python//}
|
|
SAMBA4_PYTHON3_VER:= ${SAMBA4_PYTHON3_VERSION:C/\.//}
|
|
.if !exists(${PORTSDIR}/lang/python${SAMBA4_PYTHON3_VER})
|
|
.error unsupported or unknown Python version ${SAMBA4_PYTHON3_VERSION}
|
|
.endif
|
|
BUILD_DEPENDS+= ${SAMBA4_PYTHON3}:lang/python${SAMBA4_PYTHON3_VER}
|
|
RUN_DEPENDS+= ${SAMBA4_PYTHON3}:lang/python${SAMBA4_PYTHON3_VER}
|
|
# External Python modules
|
|
BUILD_DEPENDS+= py${SAMBA4_PYTHON3_VER}-dnspython>=1.15.0:dns/py-dnspython@py${SAMBA4_PYTHON3_VER}
|
|
RUN_DEPENDS+= py${SAMBA4_PYTHON3_VER}-dnspython>=1.15.0:dns/py-dnspython@py${SAMBA4_PYTHON3_VER}
|
|
|
|
BUILD_DEPENDS+= py${SAMBA4_PYTHON3_VER}-iso8601>=0.1.11:devel/py-iso8601@py${SAMBA4_PYTHON3_VER}
|
|
RUN_DEPENDS+= py${SAMBA4_PYTHON3_VER}-iso8601>=0.1.11:devel/py-iso8601@py${SAMBA4_PYTHON3_VER}
|
|
# cpython-36m
|
|
SAMBA4_PYTHON3_SO_ABI!= [ ! -f "${LOCALBASE}/bin/${SAMBA4_PYTHON3}" ] || ${LOCALBASE}/bin/${SAMBA4_PYTHON3} -c 'import sysconfig; print(sysconfig.get_config_var("SOABI") or "")' 2>/dev/null
|
|
SAMBA4_PYTHON3_SITELIBDIR= lib/python${SAMBA4_PYTHON3_VERSION}/site-packages
|
|
|
|
CONFIGURE_ENV+= PYTHON3_SO_ABI_FLAG=.${SAMBA4_PYTHON3_SO_ABI}
|
|
CONFIGURE_ARGS+= --extra-python=${LOCALBASE}/bin/${SAMBA4_PYTHON3}
|
|
|
|
PLIST_SUB+= SAMBA4_PYTHON3="" SAMBA4_PYTHON3_SITELIBDIR="${SAMBA4_PYTHON3_SITELIBDIR}"
|
|
SUB_LIST+= SAMBA4_PYTHON3="" SAMBA4_PYTHON3_SITELIBDIR="${SAMBA4_PYTHON3_SITELIBDIR}"
|
|
.else
|
|
PLIST_SUB+= SAMBA4_PYTHON3="@comment "
|
|
SUB_LIST+= SAMBA4_PYTHON3="@comment "
|
|
.endif
|
|
.endif
|
|
# !SAMBA4_SUBPORT
|
|
.endif
|
|
|
|
##############################################################################
|
|
.include <bsd.port.pre.mk>
|
|
##############################################################################
|
|
|
|
.if !defined(SAMBA4_SUBPORT)
|
|
# Require llvm 4.0 and AMD64
|
|
.if ${PORT_OPTIONS:MAESNI} && ${ARCH} == "amd64" && ${OSVERSION} >= 1100511
|
|
CONFIGURE_ARGS+= --accel-aes=intelaesni
|
|
PLIST_FILES+= lib/samba4/private/libaesni-intel-samba4.so
|
|
.else
|
|
CONFIGURE_ARGS+= --accel-aes=none
|
|
.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
|
|
#.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}"
|
|
|
|
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
|
|
@${REINPLACE_CMD} -e '1s|/bin/bash|/bin/sh|' \
|
|
${PATCH_WRKSRC}/ctdb/tools/onnode
|
|
|
|
# Use threading (or multiprocessing) but not thread (renamed in python 3+).
|
|
pre-configure:
|
|
@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_gpoupdate.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/man/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/ldbsearch.1 \
|
|
lib/ldb/man/ldbmodify.1 \
|
|
lib/ldb/man/ldbrename.1 \
|
|
lib/ldb/man/ldbdel.1 \
|
|
lib/ldb/man/ldbedit.1
|
|
${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 ctdbd.conf.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:
|
|
.for f in vfs_aio_linux.8 vfs_btrfs.8 vfs_ceph.8 vfs_gpfs.8
|
|
${RM} ${STAGEDIR}${PREFIX}/man/man8/${f}
|
|
.endfor
|
|
|
|
post-install: post-install-rm-junk
|
|
${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
|
|
|
|
post-install-DOCS-on:
|
|
${MKDIR} ${STAGEDIR}${DOCSDIR}
|
|
.for doc in ${PORTDOCS}
|
|
${INSTALL_DATA} ${WRKDIR}/${doc} ${STAGEDIR}${DOCSDIR}
|
|
.endfor
|
|
|
|
# !SAMBA4_SUBPORT
|
|
.endif
|
|
|
|
.include <bsd.port.post.mk>
|