# New ports collection makefile for: samba # Date created: 11th Feb 1995 # Whom: Gary Palmer # # $FreeBSD$ # PORTNAME= samba PORTVERSION?= 3.0.23c PORTREVISION?= 0 PORTEPOCH?= 1 CATEGORIES?= net MASTER_SITES= ${MASTER_SITE_SAMBA} MASTER_SITE_SUBDIR= . old-versions rc pre DISTNAME= ${PORTNAME}-${PORTVERSION:S/.p/pre/:S/.r/rc/} MAINTAINER?= timur@gnu.org COMMENT?= A free SMB and CIFS client and server for UNIX CONFLICTS?= ja-samba-2.* ja-samba-3.* samba-2.* sharity-light-1.* USE_ICONV= yes GNU_CONFIGURE= yes USE_AUTOTOOLS= autoconf:259 autoheader:259 LATEST_LINK?= ${PKGNAMEPREFIX}${PORTNAME}3${PKGNAMESUFFIX} EXAMPLESDIR= ${PREFIX}/share/examples/${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX} WRKSRC= ${WRKDIR}/${DISTNAME}/source # directories VARDIR?= ${DESTDIR}/var SAMBA_SPOOL= ${VARDIR}/spool/samba SAMBA_LOGDIR= ${VARDIR}/log/samba SAMBA_RUNDIR= ${VARDIR}/run SAMBA_LOCKDIR= ${VARDIR}/db/samba SAMBA_SWATDIR= ${PREFIX}/share/swat # DEPRECATED: This is an old location of the private dir SAMBA_PRIVATE?= ${PREFIX}/private SAMBA_CONFDIR?= ${PREFIX}/etc SAMBA_PRIVATEDIR?= ${SAMBA_CONFDIR}/samba SAMBA_CONFIG= smb.conf SAMBA_LIB= lib SAMBA_LIBDIR= ${PREFIX}/${SAMBA_LIB} SAMBA_MODULEDIR= ${SAMBA_LIBDIR}/samba CONFIGURE_TARGET= --build=${MACHINE_ARCH}-portbld-freebsd${OSREL} CONFIGURE_ARGS+= --exec-prefix=${PREFIX} \ --localstatedir=${VARDIR} \ --with-configdir=${SAMBA_CONFDIR} \ --with-pammodulesdir=${SAMBA_LIBDIR} \ --with-libdir=${SAMBA_MODULEDIR} \ --with-swatdir=${SAMBA_SWATDIR} \ --with-piddir=${SAMBA_RUNDIR} \ --with-lockdir=${SAMBA_LOCKDIR} \ --with-privatedir=${SAMBA_PRIVATEDIR} \ --with-logfilebase=${SAMBA_LOGDIR} CONFIGURE_ARGS+= --with-libiconv=${LOCALBASE} .if !defined(SAMBA_SUBPORT) # Samba server itself OPTIONS= LDAP "With LDAP support" on \ ADS "With Active Directory support" off \ CUPS "With CUPS printing support" on \ WINBIND "With WinBIND support" on \ ACL_SUPPORT "With ACL support" off \ AIO_SUPPORT "With experimental AIO support" off \ FAM_SUPPORT "With File Alteration Monitor" off \ SYSLOG "With Syslog support" off \ QUOTAS "With Disk quota support" off \ UTMP "With UTMP accounting support" on \ MSDFS "With MSDFS support" off \ SMBSH "With SMBSH wrapper for UNIX commands" off \ PAM_SMBPASS "With PAM authentication vs passdb backends" off \ EXP_MODULES "With experimental modules" off \ POPT "With system-wide POPT library" on .endif .include .if defined(SAMBA_SUBPORT) # Switch off all extra functionality CONFIGURE_ARGS+= --disable-cups --without-winbind --without-syslog \ --without-quotas --without-utmp --without-pam \ --without-pam_smbpass --without-aio-support # Dirty hack to work around usage of OPTIONS in slave ports . if exists(${.CURDIR}/Makefile.inc) . include "${.CURDIR}/Makefile.inc" . endif .else # Samba server itself USE_RC_SUBR= samba SUB_FILES= pkg-install pkg-message pkg-deinstall smb.conf.sample PLIST= ${WRKDIR}/.PLIST CONFIGURE_ARGS+= --with-pam --with-readline --with-sendfile-support \ --without-libsmbclient --without-libmsrpc \ --without-libsmbsharemodes --without-python \ --with-included-iniparser .if !defined(WITHOUT_LDAP) SAMBA_WANT_LDAP= yes .endif .if !defined(WITHOUT_CUPS) LIB_DEPENDS+= cups.2:${PORTSDIR}/print/cups-base CONFIGURE_ARGS+= --enable-cups SUB_LIST+= CUPSD="" .else CONFIGURE_ARGS+= --disable-cups SUB_LIST+= CUPSD="@comment " .endif .if defined(WITH_SYSLOG) CONFIGURE_ARGS+= --with-syslog .else CONFIGURE_ARGS+= --without-syslog .endif .if defined(WITH_QUOTAS) CONFIGURE_ARGS+= --with-quotas .else CONFIGURE_ARGS+= --without-quotas .endif .if !defined(WITHOUT_UTMP) CONFIGURE_ARGS+= --with-utmp .else CONFIGURE_ARGS+= --without-utmp .endif .if defined(WITH_MSDFS) CONFIGURE_ARGS+= --with-msdfs .else CONFIGURE_ARGS+= --without-msdfs .endif .if !defined(WITHOUT_WINBIND) CONFIGURE_ARGS+= --with-winbind PLIST_SUB+= WINBIND="" SUB_LIST+= WINBIND="" . if ${OSVERSION} >= 500112 WITH_WINBIND_NSS= yes PLIST_SUB+= WINBIND_NSS="" . else PLIST_SUB+= WINBIND_NSS="@comment " . endif .else CONFIGURE_ARGS+= --without-winbind PLIST_SUB+= WINBIND="@comment " SUB_LIST+= WINBIND="@comment " .endif # Taken from bsd.port.mk .if exists(${LOCALBASE}/libexec/gam_server) WANT_FAM_SYSTEM= gamin WITH_FAM_SUPPORT= on . undef WITHOUT_FAM_SUPPORT .elif exists(${LOCALBASE}/bin/fam) WANT_FAM_SYSTEM= fam WITH_FAM_SUPPORT= on . undef WITHOUT_FAM_SUPPORT .endif .if defined(WITH_FAM_SUPPORT) || defined(WANT_FAM_SYSTEM) USE_FAM= yes .endif .if defined(WITH_EXP_MODULES) .if !defined(WANT_EXP_MODULES) || empty(WANT_EXP_MODULES) WANT_EXP_MODULES= rpc_echo idmap_ad idmap_rid charset_weird .endif WANT_EXP_MODULES!= ${ECHO_CMD} ${WANT_EXP_MODULES} | ${SED} -E 's/ +/,/g' CONFIGURE_ARGS+= --with-shared-modules=${WANT_EXP_MODULES} .endif .if defined(WITH_PAM_SMBPASS) CONFIGURE_ARGS+= --with-pam_smbpass PLIST_SUB+= SMBPASS="" .else CONFIGURE_ARGS+= --without-pam_smbpass PLIST_SUB+= SMBPASS="@comment " .endif .if defined(WITH_ACL_SUPPORT) .if ${OSVERSION} < 500018 BROKEN= ACL support requires FreeBSD 5.x at least after 20010326 .endif CONFIGURE_ARGS+= --with-acl-support .else CONFIGURE_ARGS+= --without-acl-support .endif .if defined(WITH_SMBSH) IGNORE= broken IPC and code CONFIGURE_ARGS+= --with-smbwrapper PLIST_SUB+= SMBSH="" .else CONFIGURE_ARGS+= --without-smbwrapper PLIST_SUB+= SMBSH="@comment " .endif .if defined(WITH_AIO_SUPPORT) IGNORE= broken kernel API until now (7-CURRENT) CONFIGURE_ARGS+= --with-aio-support .else CONFIGURE_ARGS+= --without-aio-support .endif .if !defined(WITHOUT_POPT) LIB_DEPENDS+= popt.0:${PORTSDIR}/devel/popt CONFIGURE_ARGS+= --without-included-popt .else CONFIGURE_ARGS+= --with-included-popt .endif # !SAMBA_SUBPORT .endif ### ### Common part for port and it's subports ### # For 4.8 - 4.11 combination of Kerberos and OpenLDAP is broken # due the conflict between system and OpenSSL port libcrypto libraries .if ${OSVERSION} > 470103 && ${OSVERSION} < 500000 . if defined(WITH_ADS) IGNORE= broken dependency between OpenSSL, OpenLDAP and Heimdal for FreeBSD 4.x. Disable ADS support . endif . undef WITH_ADS WITHOUT_ADS= on .endif .if defined(WITH_ADS) SAMBA_WANT_LDAP= yes SAMBA_WANT_KRB5= yes CONFIGURE_ARGS+= --with-ads .else CONFIGURE_ARGS+= --without-ads .endif # Kerberos5 is necessary for ADS .if defined(SAMBA_WANT_KRB5) .if defined(KRB5_HOME) && exists(${KRB5_HOME}/lib/libgssapi_krb5.a) CONFIGURE_ARGS+= --with-krb5=${KRB5_HOME} .elif defined(HEIMDAL_HOME) && exists(${HEIMDAL_HOME}/lib/libgssapi.a) CONFIGURE_ARGS+= --with-krb5=${HEIMDAL_HOME} .elif exists(${DESTDIR}/usr/lib/libkrb5.a) && exists(${DESTDIR}/usr/bin/krb5-config) CONFIGURE_ARGS+= --with-krb5=${DESTDIR}/usr .else LIB_DEPENDS+= krb5:${PORTSDIR}/security/heimdal CONFIGURE_ARGS+= --with-krb5=${LOCALBASE} .endif .else CONFIGURE_ARGS+= --without-krb5 .endif .if defined(SAMBA_WANT_LDAP) USE_OPENLDAP= yes CONFIGURE_ARGS+= --with-ldap .else CONFIGURE_ARGS+= --without-ldap .endif .if !defined(SAMBA_SUBPORT) # Samba server itself MAN1= findsmb.1 log2pcap.1 nmblookup.1 ntlm_auth.1 profiles.1 \ rpcclient.1 smbcacls.1 smbclient.1 smbcontrol.1 smbcquotas.1 \ smbget.1 smbstatus.1 smbtar.1 smbtree.1 testparm.1 vfstest.1 MAN5= lmhosts.5 smb.conf.5 smbgetrc.5 smbpasswd.5 MAN7= samba.7 MAN8= net.8 nmbd.8 pdbedit.8 smbd.8 smbpasswd.8 smbspool.8 \ swat.8 tdbbackup.8 tdbdump.8 .if defined(WITH_SMBSH) MAN1+= smbsh.1 .endif .if !defined(WITHOUT_WINBIND) MAN1+= wbinfo.1 MAN7+= pam_winbind.7 MAN8+= winbindd.8 .endif PLIST_SUB+= SAMBA_LOGDIR=${SAMBA_LOGDIR} \ SAMBA_LOCKDIR=${SAMBA_LOCKDIR} \ SAMBA_CONFDIR=${SAMBA_CONFDIR} \ SAMBA_CONFIG=${SAMBA_CONFIG} \ SAMBA_RUNDIR=${SAMBA_RUNDIR} \ SAMBA_SWATDIR=${SAMBA_SWATDIR} \ SAMBA_SPOOL=${SAMBA_SPOOL} \ SAMBA_PRIVATEDIR=${SAMBA_PRIVATEDIR} SUB_LIST+= SAMBA_LOGDIR=${SAMBA_LOGDIR} \ SAMBA_LOCKDIR=${SAMBA_LOCKDIR} \ SAMBA_CONFDIR=${SAMBA_CONFDIR} \ SAMBA_CONFIG=${SAMBA_CONFIG} \ SAMBA_RUNDIR=${SAMBA_RUNDIR} \ SAMBA_SWATDIR=${SAMBA_SWATDIR} \ SAMBA_SPOOL=${SAMBA_SPOOL} \ SAMBA_PRIVATEDIR=${SAMBA_PRIVATEDIR} \ SAMBA_PRIVATE=${SAMBA_PRIVATE} pre-everything:: .if defined(WANT_FAM_SYSTEM) @${ECHO_CMD} "===> NOTICE: ${WANT_FAM_SYSTEM} detected, forcing FAM_SUPPORT" @${ECHO_CMD} "" .endif @${ECHO_CMD} "===> NOTICE: This version of port has changed location of Samba password" @${ECHO_CMD} "===> NOTICE: (smbpasswd) directory. Files in '${SAMBA_PRIVATE}'" @${ECHO_CMD} "===> NOTICE: have moved to '${SAMBA_PRIVATEDIR}'." @if [ -d ${SAMBA_PRIVATE} -a -n "`${LS} ${SAMBA_PRIVATE}/*.tdb 2>/dev/null`" ]; then \ ${ECHO_CMD} ""; \ ${ECHO_CMD} "===> The directory '${SAMBA_PRIVATE}' is not empty. You possibly need"; \ ${ECHO_CMD} "===> to move its files to '${SAMBA_PRIVATEDIR}' and remove directory."; \ ${ECHO_CMD} ""; \ fi pre-fetch: @${ECHO_MSG} "===> -------------------------------------------" @${ECHO_MSG} "===> Run 'make config' to (re)configure the port" @${ECHO_MSG} "===> -------------------------------------------" post-patch: @${RM} -rf ${WRKDIR}/${DISTNAME}/examples/LDAP/smbldap-tools-* @${RM} -rf ${WRKDIR}/${DISTNAME}/examples/libsmbclient @${RM} -rf ${WRKDIR}/${DISTNAME}/examples/libmsrpc @${RM} -rf ${WRKDIR}/${DISTNAME}/swat/lang @${RM} -f ${WRKDIR}/${DISTNAME}/docs/htmldocs/manpages/libsmbclient.7.html @${FIND} ${WRKSRC} -name CVS -o -name .cvsignore | ${XARGS} ${RM} @${FIND} ${WRKDIR}/${DISTNAME} -type d | ${XARGS} ${CHMOD} u+w,a+rx @${FIND} ${WRKDIR}/${DISTNAME} -type f | ${XARGS} ${CHMOD} u+w,a+r pre-install: -@${FIND} ${SAMBA_MODULEDIR} -type f 2>/dev/null | ${SORT} | ${SED} -E 's|^${PREFIX}/?||;' >> ${WRKDIR}/.PLIST.exclude @${CAT} ${PKGDIR}/pkg-plist > ${PLIST} @${CAT} ${PKGDIR}/pkg-plist.swat >> ${PLIST} post-install: .for sect in 1 5 7 8 @${MKDIR} ${MAN${sect}PREFIX}/man/man${sect} . for man in ${MAN${sect}} @${INSTALL_MAN} ${WRKDIR}/${DISTNAME}/docs/manpages/${man} ${MAN${sect}PREFIX}/man/man${sect} . endfor .endfor @${MKDIR} ${EXAMPLESDIR} @${CP} -Rp ${WRKDIR}/${DISTNAME}/examples/* ${EXAMPLESDIR} .if defined(WITH_PAM_SMBPASS) @${MKDIR} ${EXAMPLESDIR}/pam_smbpass @${CP} -Rp ${WRKSRC}/pam_smbpass/samples/* ${EXAMPLESDIR}/pam_smbpass .endif ${INSTALL_DATA} ${WRKDIR}/${SAMBA_CONFIG}.sample ${SAMBA_CONFDIR} @if [ ! -f ${SAMBA_CONFDIR}/${SAMBA_CONFIG} ]; then \ ${INSTALL_DATA} ${WRKDIR}/${SAMBA_CONFIG}.sample ${SAMBA_CONFDIR}/${SAMBA_CONFIG} ; \ fi ${INSTALL_SCRIPT} ${WRKSRC}/script/mksmbpasswd.sh ${PREFIX}/bin/make_smbpasswd # Winbind .if !defined(WITHOUT_WINBIND) . if defined(WITH_WINBIND_NSS) ${INSTALL_PROGRAM} ${WRKSRC}/nsswitch/nss_winbind.so ${SAMBA_LIBDIR}/nss_winbind.so.1 ${INSTALL_PROGRAM} ${WRKSRC}/nsswitch/nss_wins.so ${SAMBA_LIBDIR}/nss_wins.so.1 @${ECHO_CMD} "${SAMBA_LIB}/nss_winbind.so.1" >> ${TMPPLIST}; @${ECHO_CMD} "${SAMBA_LIB}/nss_wins.so.1" >> ${TMPPLIST}; . endif ${INSTALL_PROGRAM} ${WRKSRC}/bin/pam_winbind.so ${SAMBA_LIBDIR} @${ECHO_CMD} "${SAMBA_LIB}/pam_winbind.so" >> ${TMPPLIST}; .endif .if defined(WITH_PAM_SMBPASS) ${INSTALL_PROGRAM} ${WRKSRC}/bin/pam_smbpass.so ${SAMBA_LIBDIR} @${ECHO_CMD} "${SAMBA_LIB}/pam_smbpass.so" >> ${TMPPLIST}; .endif # smbwrapper.so .if defined(WITH_SMBSH) ${INSTALL_PROGRAM} ${WRKSRC}/bin/smbsh ${PREFIX}/bin ${INSTALL_PROGRAM} ${WRKSRC}/bin/smbwrapper.so ${SAMBA_MODULEDIR} .endif # Lib @${FIND} ${SAMBA_MODULEDIR} -type f | ${SED} -E 's|^${PREFIX}/?||;' | ${EGREP} -F -v -f ${WRKDIR}/.PLIST.exclude | ${SORT} >> ${TMPPLIST} @for d in `${FIND} ${SAMBA_MODULEDIR} -type d | ${SORT} -r`; do \ ${ECHO_CMD} "@unexec ${RMDIR} $$d 2>/dev/null || true" >> ${TMPPLIST}; \ done # Documentation .if !defined(NOPORTDOCS) @${MKDIR} ${DOCSDIR} @${CP} -Rp ${WRKDIR}/${DISTNAME}/docs/registry ${DOCSDIR} . for f in Samba3-ByExample.pdf Samba3-HOWTO.pdf Samba3-Developers-Guide.pdf @${INSTALL_DATA} ${WRKDIR}/${DISTNAME}/docs/${f} ${DOCSDIR} . endfor @${INSTALL_DATA} ${FILESDIR}/README.FreeBSD ${DOCSDIR} . for f in README COPYING Manifest Read-Manifest-Now Roadmap \ WHATSNEW.txt docs/THANKS docs/history @${INSTALL_DATA} ${WRKDIR}/${DISTNAME}/${f} ${DOCSDIR} . endfor # !NOPORTDOCS .endif @${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL @${CAT} ${PKGMESSAGE} # !SAMBA_SUBPORT .endif .include