VERSION = 4.20.1 DISTNAME = samba-${VERSION} EPOCH = 0 COMMENT-main = SMB and CIFS client and server for UNIX COMMENT-docs = additional documentation and examples for Samba PKGNAME-main = ${PKGNAME} PKGNAME-docs = samba-docs-${VERSION} PKG_ARCH-docs = * SHARED_LIBS = dcerpc 1.1 \ dcerpc-binding 5.0 \ dcerpc-samr 1.0 \ dcerpc-server-core 3.1 \ ldb 2.3 \ ndr 3.2 \ ndr-krb5pac 1.3 \ ndr-nbt 2.1 \ ndr-standard 6.0 \ netapi 3.3 \ samba-credentials 1.5 \ samba-errors 2.1 \ samba-hostconfig 14.0 \ samba-passdb 3.0 \ samba-util 10.1 \ samdb 3.1 \ smbclient 6.2 \ smbconf 15.0 \ smbldap 1.0 \ tevent 2.3 \ tevent-util 2.0 \ wbclient 5.1 # Those have to be handled specially, see "Python ABI" below. SHARED_LIBS += pyldb-util.cpython-${MODPY_MAJORMINOR} 1.0 SHARED_LIBS += samba-policy.cpython-${MODPY_MAJORMINOR} 1.0 CATEGORIES = net sysutils security HOMEPAGE = https://www.samba.org/ MAINTAINER = Ian McWilliam , \ Bjorn Ketelaars # GPLv3, LGPLv3 PERMIT_PACKAGE = Yes WANTLIB-main = ${MODPY_WANTLIB} WANTLIB-main += archive avahi-client avahi-common cups c execinfo WANTLIB-main += iconv jansson lber ldap pam popt pthread gnutls WANTLIB-main += pytalloc-util.cpython-${MODPY_MAJORMINOR} readline WANTLIB-main += talloc tasn1 tdb z lib/inotify/inotify WANTLIB-docs = SITES = https://download.samba.org/pub/samba/stable/ \ https://download.samba.org/pub/samba/old-versions/ MULTI_PACKAGES = -main -docs DEBUG_PACKAGES = ${BUILD_PACKAGES} COMPILER = base-clang ports-gcc COMPILER_LANGS = c MODULES = lang/python perl BUILD_DEPENDS = databases/tdb,-python \ devel/bison \ devel/cmocka \ devel/p5-Parse-Yapp>=1.0.5 \ net/py-dnspython${MODPY_FLAVOR} \ textproc/docbook-xsl RUN_DEPENDS-main = databases/tdb,-python \ net/py-dnspython${MODPY_FLAVOR} RUN_DEPENDS-docs = LIB_DEPENDS-main = archivers/libarchive \ converters/libiconv \ databases/openldap \ databases/tdb>=1.4.10 \ devel/jansson \ devel/libinotify \ devel/libtalloc>=2.4.2 \ devel/libtalloc,-python \ devel/popt \ net/avahi,-libs \ print/cups,-libs \ security/gnutls \ security/openpam LIB_DEPENDS-docs = CONFIGURE_STYLE = simple CONFIGURE_ARGS = --enable-fhs \ --abi-check-disable \ --bundled-libraries="!crypto,ldb,!talloc,!tdb,tevent" \ --prefix=${PREFIX} \ --destdir=${WRKINST} \ --docdir=${PREFIX}/share/doc \ --mandir=${PREFIX}/man \ --localedir=${PREFIX}/share/locale \ --localstatedir=${BASELOCALSTATEDIR} \ --private-libraries="NONE" \ --sharedstatedir=${VARBASE} \ --sysconfdir=${SYSCONFDIR} \ --with-configdir=${SYSCONFDIR}/samba \ --with-statedir=${VARBASE}/samba \ --with-privatedir=${VARBASE}/samba/private \ --with-bind-dns-dir=${VARBASE}/samba/bind-dns \ --with-lockdir=${VARBASE}/run/samba \ --with-privileged-socket-dir=${VARBASE}/samba \ --without-pie \ --pedantic \ --without-regedit \ --without-acl-support \ --disable-rpath \ --without-ad-dc \ --without-gpgme \ --without-ldb-lmdb \ --without-fam # hack for https://bugzilla.samba.org/show_bug.cgi?id=15030 CONFIGURE_ARGS += --without-gettext # XXX Remember to remove --enable-developer, it prints passwords in logs. #CONFIGURE_ARGS += --enable-developer WAF = ${WRKSRC}/buildtools/bin/waf WAF_ARGS = -v -j ${MAKE_JOBS} CONFIGURE_ENV = LC_ALL=en_US.UTF-8 \ CFLAGS="${CFLAGS}" \ LDFLAGS="${LDFLAGS}" \ CPP="/usr/libexec/cpp" \ CPPFLAGS="-I${LOCALBASE}/include/inotify -I${LOCALBASE}/include" \ LDFLAGS="-L${LOCALBASE}/lib/inotify -Wl,-rpath,${LOCALBASE}/lib/inotify -L${LOCALBASE}/lib ${LDFLAGS}" MAKE_ENV = LC_ALL=en_US.UTF-8 \ PYTHON=${MODPY_BIN} \ WAF_ARGS="${WAF_ARGS}" .for _l _v in ${SHARED_LIBS} MAKE_ENV += LIB${_l:S/-/_/g}_VERSION=${_v} .endfor ## Python ABI # The samba project decided to also encode the python ABI name into shared # libraries that link against libpython. Our ports infrastructure barely # copes. # 1. Those shared libraries names contain a variable whose value is not yet # known by the time the .for loop runs MAKE_ENV += LIBpyldb_util_cpython_${MODPY_MAJORMINOR}_VERSION=${LIBpyldb-util.cpython-${MODPY_MAJORMINOR}_VERSION} MAKE_ENV += LIBsamba_policy_cpython_${MODPY_MAJORMINOR}_VERSION=${LIBsamba-policy.cpython-${MODPY_MAJORMINOR}_VERSION} # 2. Said libraries end up as such in pkg/PLIST-foo: # @lib lib/libbar.${MODPY_PYC_MAGIC_TAG}so.${LIBbar.cpython-XY_VERSION} # We don't want to hardcode the XY version number in the PLIST. PYLDB_UTIL_LIBSUFFIX = cpython-${MODPY_MAJORMINOR}.so.${LIBpyldb-util.cpython-${MODPY_MAJORMINOR}_VERSION} SUBST_VARS += PYLDB_UTIL_LIBSUFFIX SAMBA_POLICY_LIBSUFFIX= cpython-${MODPY_MAJORMINOR}.so.${LIBsamba-policy.cpython-${MODPY_MAJORMINOR}_VERSION} SUBST_VARS += SAMBA_POLICY_LIBSUFFIX # 3. Some samba python extension modules don't follow the same naming # pattern as the usual python extension modules. SAMBA_PYTHON_MAGIC_TAG= ${MODPY_PYC_MAGIC_TAG:S/./-samba4/} SUBST_VARS += SAMBA_PYTHON_MAGIC_TAG SAMBA_CONFIG = ${PREFIX}/share/examples/samba/smb.conf.default SAMBA_LOGDIR = ${VARBASE}/log/samba SUBST_VARS += SAMBA_LOGDIR post-patch: find ${WRKSRC} -type f -exec ${MODPY_BIN_ADJ} {} + find ${WRKSRC}/third_party/heimdal/ -name version-script.map -exec \ sed -i "s/^[A-Z0-9._-]* {/{/" {} + post-install: # removing extra files find ${PREFIX} \( \ -name '*${PATCHORIG}' -o \ -name '*.beforesubst' -o \ -name '*.deconforig' \) \ -delete # precompiling Python modules ${MODPY_BIN} ${MODPY_LIBDIR}/compileall.py ${WRKINST}${MODPY_SITEPKG} ${MODPY_BIN} -O ${MODPY_LIBDIR}/compileall.py ${WRKINST}${MODPY_SITEPKG} # install samba docs and sample config ${INSTALL_DATA_DIR} ${PREFIX}/share/{doc,examples}/samba cp -R ${WRKDIST}/examples/* ${PREFIX}/share/examples/samba chown -R ${SHAREOWN}:${SHAREGRP} ${PREFIX}/share/examples/samba find ${PREFIX}/share/examples/samba \ -type f -exec chmod ${SHAREMODE} {} + -o \ -type d -exec chmod ${DIRMODE} {} + sed -e 's:/usr/spool/samba:/var/spool/samba:g' \ -e 's:/usr/local/samba/var/log:${SAMBA_LOGDIR}/smbd:g' \ -e 's:MYGROUP:WORKGROUP:' \ ${WRKDIST}/examples/smb.conf.default > ${SAMBA_CONFIG}.tmp && \ mv ${SAMBA_CONFIG}.tmp ${SAMBA_CONFIG} .include