# New ports collection makefile for: samba # Date created: 11th Feb 1995 # Whom: gpalmer # # $FreeBSD$ # PORTNAME= samba PORTVERSION= 2.2.8a PORTREVISION= 2 CATEGORIES= net MASTER_SITES= ${MASTER_SITE_SAMBA} MASTER_SITE_SUBDIR= . old-versions .if defined(WITH_JAIL) # This patch was originally created by Gerhard Sittig # See PR ports/22316 # Reworked/updated and portsified by anders@FreeBSD.org, 2003-11-08 PATCH_SITES+= ftp://totem.fix.no/pub/mirrors/misc/:smbjail \ ftp://ftp.nuug.no/pub/anders/distfiles/:smbjail PATCHFILES= samba-2.2.8a-freebsd-jail-patch-20040226.gz:smbjail .endif MAINTAINER= ports@FreeBSD.org COMMENT= A free SMB and CIFS client and server for UNIX CONFLICTS= ja-samba-2.* samba-3.* sharity-light-1.* USE_BZIP2= YES USE_SUBMAKE= YES USE_GMAKE= YES USE_LIBTOOL_VER=13 USE_AUTOCONF_VER= 213 # directories .if !defined(BATCH) && !defined(PACKAGE_BUILDING) IS_INTERACTIVE= yes .endif .if exists(${WRKDIRPREFIX}${.CURDIR}/Makefile.inc) .include "${WRKDIRPREFIX}${.CURDIR}/Makefile.inc" .endif AUDIT?= "@comment " RECYCLE?= "@comment " LIBSAMBA?= "@comment " BUILD_VFS?= "@comment " WINBIND?= "@comment " WINBIND_NSS?= "@comment " WINBIND_AUTH_CHALLENGE?= "@comment " .if defined(WITH_AUDIT) AUDIT= "" LIBSAMBA= "" BUILD_VFS= "" .endif .if defined(WITH_RECYCLE) RECYCLE= "" LIBSAMBA= "" BUILD_VFS= "" .endif VARDIR= /var SAMBA_SPOOL= ${VARDIR}/spool/samba SCRIPTS_ENV= WRKDIRPREFIX="${WRKDIRPREFIX}" \ TOUCH="${TOUCH}" \ MKDIR="${MKDIR}" \ CAT="${CAT}" \ SAMBA_OPTIONS="${SAMBA_OPTIONS}" \ REALCURDIR="${.CURDIR}" SAMBA_LOGDIR?= ${VARDIR}/log SAMBA_PRIVATE?= ${PREFIX}/private SAMBA_CONFDIR?= ${PREFIX}/etc SAMBA_VFSDIR?= ${PREFIX}/lib/samba # sample files STARTUP_SCRIPT= ${PREFIX}/etc/rc.d/samba.sh.sample SAMPLE_CONFIG= ${SAMBA_CONFDIR}/smb.conf.default CONFIGURE_ARGS= --libdir=${SAMBA_CONFDIR} \ --localstatedir=${VARDIR} --with-swatdir=${PREFIX}/share/swat \ --with-sambabook=${PREFIX}/share/swat/using_samba \ --with-lockdir=${VARDIR}/lock --with-privatedir=${SAMBA_PRIVATE} \ --with-pam --with-piddir=${VARDIR}/run \ --with-logfilebase=${SAMBA_LOGDIR} .include CONFIGURE_ENV+= TESTDIR=/tmp .if defined(WITH_SYSLOG) CONFIGURE_ARGS+= --with-syslog .endif .if defined(WITH_SSL) CONFIGURE_ARGS+= --with-ssl --with-sslinc=/usr/include/openssl --with-ssllib=/usr/lib .endif .if defined(WITH_QUOTAS) CONFIGURE_ARGS+= --with-quotas .endif .if defined(WITH_UTMP) CONFIGURE_ARGS+= --with-utmp .endif .if defined(WITH_MSDFS) CONFIGURE_ARGS+= --with-msdfs .endif LIB_DEPENDS+= popt.0:${PORTSDIR}/devel/popt .if defined(WITH_LDAP) LIB_DEPENDS+= ldap.2:${PORTSDIR}/net/openldap20-client CONFIGURE_ARGS+= --with-ldapsam CONFIGURE_ENV+= CPPFLAGS=-I${LOCALBASE}/include \ LDFLAGS=-L${LOCALBASE}/lib .endif .if !defined(WITHOUT_CUPS) WITH_CUPS= yes .endif .if defined(WITH_WINBIND) CONFIGURE_ARGS+= --with-winbind WINBIND= "" .endif .if defined(WITH_WINBIND_NSS) .if ${OSVERSION} < 500112 BROKEN= NSS modules only supported on FreeBSD 5.1 or later .else WINBIND_NSS= "" .endif .endif .if defined(WITH_WINBIND_AUTH_CHALLENGE) CONFIGURE_ARGS+= --with-winbind-auth-challenge WINBIND_AUTH_CHALLENGE= "" .endif pre-fetch: @${SETENV} ${SCRIPTS_ENV} ${SH} ${SCRIPTDIR}/configure.samba post-patch: #${FIND} ${PATCH_WRKSRC} -type f -name '*.orig' -exec ${RM} {} \; ${FIND} ${PATCH_WRKSRC} -type f -empty -exec ${RM} {} \; ${CP} ${FILESDIR}/winbind_nss_bsd.c ${WRKSRC}/nsswitch/ post-clean: @${RM} -f ${WRKDIRPREFIX}${.CURDIR}/Makefile.inc .if defined(WITH_CUPS) LIB_DEPENDS+= cups.2:${PORTSDIR}/print/cups-base CONFIGURE_ENV+= CPPFLAGS=-I${LOCALBASE}/include \ LDFLAGS=-L${LOCALBASE}/lib .else CONFIGURE_ARGS+= --disable-cups .endif .if defined(KRB5_HOME) && exists(${KRB5_HOME}) CONFIGURE_ARGS+= --with-krb5=${KRB5_HOME} .endif .if defined(WITH_ACL_SUPPORT) .if ${OSVERSION} < 500018 BROKEN= "ACL support requires a recent FreeBSD 5.0-CURRENT" .else CONFIGURE_ARGS+= --with-acl-support .endif .endif WRKSRC= ${WRKDIR}/${DISTNAME}/source PATCH_WRKSRC= ${WRKDIR}/${DISTNAME} LIBTOOLFILES= ${WRKSRC}/aclocal.m4 MAN1= findsmb.1 make_smbcodepage.1 rpcclient.1 make_unicodemap.1 \ nmblookup.1 smbcacls.1 smbclient.1 smbcontrol.1 \ smbsh.1 smbstatus.1 smbtar.1 testparm.1 \ testprns.1 wbinfo.1 MAN5= lmhosts.5 smb.conf.5 smbpasswd.5 MAN7= samba.7 MAN8= nmbd.8 pdbedit.8 smbd.8 smbmnt.8 smbmount.8 \ smbpasswd.8 smbspool.8 smbumount.8 swat.8 winbindd.8 SED_PLIST= ${SED} -e 's!${PREFIX}!%D!g' PLIST_SUB= AUDIT=${AUDIT} \ RECYCLE=${RECYCLE} \ LIBSAMBA=${LIBSAMBA} \ BUILD_VFS=${BUILD_VFS} \ WINBIND=${WINBIND} \ WINBIND_NSS=${WINBIND_NSS} \ WINBIND_AUTH_CHALLENGE=${WINBIND_AUTH_CHALLENGE} .if defined(WITH_RECYCLE) || defined(WITH_AUDIT) post-build: cd ${WRKDIR}/${DISTNAME}/examples/VFS; \ LIBTOOL=${LIBTOOL} ./configure;${GMAKE}; \ ${RM} -f config.cache config.log config.status .endif pre-build: ${RM} -fr ${WRKSRC}/include/proto.h (cd ${WRKSRC} && make proto) post-install: .if defined(WITH_WINBIND_NSS) ${INSTALL_PROGRAM} ${WRKSRC}/nsswitch/libnss_winbind.so ${PREFIX}/lib/nss_winbind.so.1 .endif .if defined(WITH_AUDIT) || defined(WITH_RECYCLE) @test -d ${SAMBA_VFSDIR} || ${MKDIR} ${SAMBA_VFSDIR} .if defined(WITH_AUDIT) ${INSTALL_PROGRAM} ${WRKDIR}/${DISTNAME}/examples/VFS/audit.so ${SAMBA_VFSDIR} .endif .if defined(WITH_RECYCLE) ${INSTALL_PROGRAM} ${WRKDIR}/${DISTNAME}/examples/VFS/recycle/recycle.so ${SAMBA_VFSDIR} @${INSTALL_DATA} ${WRKDIR}/${DISTNAME}/examples/VFS/recycle/recycle.conf \ ${SAMBA_CONFDIR}/recycle.conf.default .endif .endif ${MKDIR} ${PREFIX}/share/examples/samba -${RM} -f ${WRKDIR}/${DISTNAME}/examples/libsmbclient/*.o ${CP} -rp ${WRKDIR}/${DISTNAME}/examples/* ${PREFIX}/share/examples/samba .if defined(WITH_AUDIT) || defined(WITH_RECYCLE) # @${RM} -rf ${PREFIX}/share/examples/samba/VFS/.libs ${FIND} ${PREFIX}/share/examples/samba/VFS -type d -name ".libs" | ${XARGS} ${RM} -r @for file in audit.o audit.so recycle/recycle.o recycle/recycle.so skel.o skel.so ; do \ ${RM} ${PREFIX}/share/examples/samba/VFS/$${file} ; \ done .endif @if [ ! -f ${STARTUP_SCRIPT} ]; then \ ${ECHO} "Installing ${STARTUP_SCRIPT} startup file." ; \ ${INSTALL_SCRIPT} ${FILESDIR}/samba.sh.sample \ ${STARTUP_SCRIPT} ; \ fi @test -d ${SAMBA_SPOOL} || ${MKDIR} ${SAMBA_SPOOL} && ${CHMOD} 1777 ${SAMBA_SPOOL} @if [ ! -f ${SAMPLE_CONFIG} ]; then \ ${SED} -e 's!%%SAMBA_SPOOL%%!${SAMBA_SPOOL}!' \ -e 's!%%SAMBA_LOGDIR%%!${SAMBA_LOGDIR}!' \ -e 's!%%SAMBA_CONFDIR%%!${SAMBA_CONFDIR}!' \ -e 's!%%SAMBA_VFSDIR%%!${SAMBA_VFSDIR}!' \ ${FILESDIR}/smb.conf.default \ > ${SAMPLE_CONFIG} ; \ fi ${INSTALL_SCRIPT} ${WRKDIR}/${DISTNAME}/source/script/mksmbpasswd.sh ${PREFIX}/bin/make_smbpasswd if [ ! -d ${SAMBA_PRIVATE} ] ; then \ ${MKDIR} ${SAMBA_PRIVATE} ; \ ${CHOWN} root:wheel ${SAMBA_PRIVATE} ; \ fi ${CHMOD} 700 ${SAMBA_PRIVATE} if [ ! -f ${SAMBA_PRIVATE}/smbpasswd.default ] ; then \ ${CAT} /etc/passwd | ${GREP} -v "^#" | ${PREFIX}/bin/make_smbpasswd > ${SAMBA_PRIVATE}/smbpasswd.default ; \ ${CHMOD} 600 ${SAMBA_PRIVATE}/smbpasswd.default ; \ fi if [ ! -f ${SAMBA_PRIVATE}/smbpasswd ] ; then \ ${CP} -p ${SAMBA_PRIVATE}/smbpasswd.default ${SAMBA_PRIVATE}/smbpasswd ; \ ${CHMOD} 600 ${SAMBA_PRIVATE}/smbpasswd ; \ fi ${CHMOD} 500 ${SAMBA_PRIVATE} ${CHOWN} root:wheel ${PREFIX}/bin/smbpasswd ${CHMOD} 111 ${PREFIX}/bin/smbpasswd ${ECHO_CMD} "@exec ${TEST} -d ${SAMBA_SPOOL} || ${MKDIR} ${SAMBA_SPOOL} && ${CHMOD} 1777 ${SAMBA_SPOOL}" | ${SED_PLIST} >> ${TMPPLIST} ${ECHO_CMD} "@unexec ${RM} -rf ${SAMBA_SPOOL}" | ${SED_PLIST} >> ${TMPPLIST} ${ECHO_CMD} "@exec ${MKDIR} -m 500 ${SAMBA_PRIVATE}" | ${SED_PLIST} >> ${TMPPLIST} ${ECHO_CMD} "@exec ${CHOWN} root:wheel ${SAMBA_PRIVATE}" | ${SED_PLIST} >> ${TMPPLIST} ${ECHO_CMD} "@exec ${CAT} /etc/passwd | ${GREP} -v "^#" | ${PREFIX}/bin/make_smbpasswd > ${SAMBA_PRIVATE}/smbpasswd.default" | ${SED_PLIST} >> ${TMPPLIST} ${ECHO_CMD} "@exec ${TEST} -e ${SAMBA_PRIVATE}/smbpasswd || ${CP} -p ${SAMBA_PRIVATE}/smbpasswd.default ${SAMBA_PRIVATE}/smbpasswd" | ${SED_PLIST} >> ${TMPPLIST} ${ECHO_CMD} "@exec ${CHMOD} 600 ${SAMBA_PRIVATE}/smbpasswd*" | ${SED_PLIST} >> ${TMPPLIST} ${ECHO_CMD} "@unexec /usr/bin/cmp -s ${SAMBA_PRIVATE}/smbpasswd ${SAMBA_PRIVATE}/smbpasswd.default && ${RM} -f ${SAMBA_PRIVATE}/smbpasswd ${SAMBA_PRIVATE}/secrets.tdb || ${TRUE}" | ${SED_PLIST} >> ${TMPPLIST} ${ECHO_CMD} "@unexec ${RM} -f ${SAMBA_PRIVATE}/smbpasswd.default" | ${SED_PLIST} >> ${TMPPLIST} ${ECHO_CMD} "@unexec ${RMDIR} ${SAMBA_PRIVATE} || (${ECHO_CMD} \"Warning: If you will *NOT* use this package anymore,\" && ${ECHO_CMD} \" please remove ${SAMBA_PRIVATE} and its contents manually.\")" | ${SED_PLIST} >> ${TMPPLIST} .if !defined(NOPORTDOCS) @${MKDIR} ${DOCSDIR} @${INSTALL_DATA} ${FILESDIR}/README.FreeBSD ${DOCSDIR} for i in ${WRKDIR}/${DISTNAME}/README \ ${WRKDIR}/${DISTNAME}/COPYING \ ${WRKDIR}/${DISTNAME}/Manifest \ ${WRKDIR}/${DISTNAME}/Roadmap \ ${WRKDIR}/${DISTNAME}/WHATSNEW.txt \ ${WRKDIR}/${DISTNAME}/docs/THANKS \ ${WRKDIR}/${DISTNAME}/docs/announce \ ${WRKDIR}/${DISTNAME}/docs/history ; do \ ${INSTALL_DATA} $$i ${DOCSDIR} ; \ done for i in faq htmldocs textdocs Registry ; do \ ${MKDIR} ${DOCSDIR}/$$i ; \ for j in ${WRKDIR}/${DISTNAME}/docs/$$i/* ; do \ if [ $$j != ${WRKDIR}/${DISTNAME}/docs/htmldocs/using_samba ] ; then \ if [ $$j != ${WRKDIR}/${DISTNAME}/docs/textdocs/outdated ] ; then \ ${INSTALL_DATA} $$j ${DOCSDIR}/$$i ;\ fi; \ fi; \ done \ done @${INSTALL_DATA} ${WRKDIR}/${DISTNAME}/swat/README ${DOCSDIR}/README.swat .endif @${CAT} ${PKGMESSAGE} .include