# $Id$ PNAME="samba" PVER="3.6.25" PBUILD="r1" PCAT="net-fs" DESCRIPTION="Samba provides seamless file and print services to SMB/CIFS clients." HOMEPAGE="http://www.samba.org" DEPEND=">= virtual/glibc >= net-print/cups-1.7 >= dev-db/tdb-1.3 >= dev-libs/popt-1.16 >= dev-libs/talloc-2.1 >= sys-libs/ncurses-5.9 >= sys-libs/readline-6.3 >= app-admin/gamin-0.1.10 >= dev-libs/openssl-1.0.1 >= net-dns/avahi-0.6.31 >= net-fs/cifs-utils-6.3" SDEPEND=">= sys-dev/automake-4 >= sys-dev/autoconf-5 >= virtual/sed" SRCFILE="${PNAME}-${PVER}.tar.gz" SRCDIR="${BUILDDIR}/${PNAME}-${PVER}" SRCSUBDIR="source3" msetfeature "!check" # no check target in Makefile sminclude mtools multilib systemd SMBD_SVC_VER=1.3 NMBD_SVC_VER=1.2 SRC_URI=( http://us1.samba.org/samba/ftp/stable/${SRCFILE} mirror://${PNAME}/${SRCFILE} mirror://${PNAME}/smb.conf-3.0.14a mirror://${PNAME}/lmhosts mirror://${PNAME}/smbusers mirror://${PNAME}/samba.confd mirror://${PNAME}/samba.logrotate mirror://${PNAME}/nmbd.service-${NMBD_SVC_VER} mirror://${PNAME}/smbd.service-${SMBD_SVC_VER} mirror://${PNAME}/winbindd.service ) UP2DATE="updatecmd http://ftp.samba.org/pub/samba | grep '${PNAME}-3.6.*' | lasttarball gz" src_prepare() { munpack ${SRCFILE} || die # add our vendor suffix all-abis 'sed -i "s:^\(SAMBA_VERSION_VENDOR_SUFFIX=\).*:\1\"magellan\":" VERSION || die' all-abis 'sh script/mkversion.sh || die' # compilation fix # (u)mount.cifs is broken; missing include/version.h header all-abis 'ln -snf ../include client || die' } src_compile() { # remove swat completely now; since we have no httpd server yet # if really needed we make an extra package to save diskspace mconfigure \ --with-fhs \ --sysconfdir=/etc/samba \ --localstatedir=/var \ --with-configdir=/etc/samba \ --libdir=/usr/'$(mlibdir)'/samba \ --with-swatdir=/usr/share/doc/${PNAME}-${PVER}/swat \ --with-piddir=/run/samba \ --with-lockdir=/var/cache/samba \ --with-logfilebase=/var/log/samba \ --with-privatedir=/var/lib/samba/private \ --enable-shared-libs \ --with-automount \ --with-libsmbclient \ --with-syslog \ --without-acl-support \ --enable-cups \ --without-krb5 \ --without-ldap \ --with-readline \ --with-winbind \ --without-pam \ --without-pam_smbpass \ --without-libtdb \ --enable-external-libtdb \ --without-libtalloc \ --enable-external-libtalloc \ --with-quotas \ --with-sys-quotas \ --with-cifsmount=no \ --disable-swat \ --enable-avahi \ --disable-developer \ --disable-dmalloc \ || die mmake || die } src_install() { # needed directories minstalldir /etc/samba || die all-abis 'minstalldir /usr/$(mlibdir)/cups/backend || die' minstalldir /usr/share/doc/${PNAME}-${PVER}/examples || die # needed directories by samba at runtime mkeepdir /var/log/samba || die mkeepdir /run/samba || die mkeepdir /var/cache/samba || die mkeepdir /var/lib/samba/netlogon || die mkeepdir /var/lib/samba/profiles || die mkeepdir /var/lib/samba/printers/W32X86 || die mkeepdir /var/lib/samba/printers/WIN40 || die mkeepdir /var/lib/samba/printers/W32ALPHA || die mkeepdir /var/lib/samba/printers/W32MIPS || die mkeepdir /var/lib/samba/printers/W32PPC || die mkeepdir /var/lib/samba/private || die mkeepdir /var/spool/samba || die # fix permissions mchmod 0700 /var/lib/samba/private || die mchmod 1777 /var/spool/samba || die mmake DESTDIR=${BINDIR} install-everything || die # if exist remove *.old binaries if [[ -n $(find ${BINDIR}/usr/bin -type f -name '*.old') ]] then for i in ${BINDIR}/usr/bin/*.old do [[ -e ${i} ]] && rm -f ${i} || die done fi # install wins nsswitch extensions SRCSUBDIR="" # nsswitch resides under $SRCDIR all-abis 'minstalldir /usr/$(mlibdir) || die' all-abis 'minstallfile nsswitch/libnss_wins.so /usr/$(mlibdir) || die' all-abis 'mlink libnss_wins.so /usr/$(mlibdir)/libnss_wins.so.2 || die' all-abis 'minstallfile nsswitch/libnss_winbind.so /usr/$(mlibdir) || die' all-abis 'mlink libnss_winbind.so /usr/$(mlibdir)/libnss_winbind.so.2 || die' # samba doesn't create these symlinks anymore all-abis 'mlink samba/libsmbclient.so /usr/$(mlibdir)/libsmbclient.so.0 || die' all-abis 'mlink samba/libsmbclient.so /usr/$(mlibdir)/libsmbclient.so || die' # using external talloc # all-abis 'mlink samba/libtalloc.so /usr/$(mlibdir)/libtalloc.so.1 || die' # all-abis 'mlink samba/libtalloc.so /usr/$(mlibdir)/libtalloc.so || die' all-abis 'mlink samba/libwbclient.so /usr/$(mlibdir)/libwbclient.so.0 || die' all-abis 'mlink samba/libwbclient.so /usr/$(mlibdir)/libwbclient.so || die' all-abis 'mlink samba/libtevent.so /usr/$(mlibdir)/libtevent.so || die' all-abis 'mlink samba/libtevent.so /usr/$(mlibdir)/libtevent.so.0 || die' # add cups printing support all-abis 'mlink ../../../bin/smbspool /usr/$(mlibdir)/cups/backend/smb || die' # install our config files # fake smb.conf to get smbmount work memptyfile /etc/samba/smb.conf || die # our smb example config minstalletc smb.conf-3.0.14a smb.conf.example /etc/samba || die # our lmhosts and smbusers config minstalletc lmhosts lmhosts /etc/samba || die minstalletc smbusers smbusers /etc/samba || die # install systemd units minstallconf samba.confd samba || die minstallunit nmbd.service-${NMBD_SVC_VER} nmbd.service || die minstallunit smbd.service-${SMBD_SVC_VER} smbd.service || die minstallunit winbindd.service || die minstalldir /etc/tmpfiles.d || die MCONFIG=/etc/tmpfiles.d/samba.conf mclearconfig || die maddconfig 'd /run/samba 0755 root root -' # install logrotate config minstalllog samba.logrotate samba || die # # install example docs - not wanted anymore to save some space # cp -a ${SRCDIR}/examples/* ${BINDIR}/usr/share/doc/${PNAME}-${PVER}/examples || die # # # fix all permissions # chmod -R 755 $(find ${BINDIR}/usr/share/doc/${PNAME}-${PVER}/examples -type d) || die # chmod -R 644 $(find ${BINDIR}/usr/share/doc/${PNAME}-${PVER}/examples ! -type d) || die # # remove unneeded docs, this saves some space ;) # rm -rf ${BINDIR}/usr/share/doc/${PNAME}-${PVER}/swat/help/{guide,howto,devel} || die # rm -rf ${BINDIR}/usr/share/doc/${PNAME}-${PVER}/swat/using_samba || die # using a patch now # # remove swat completely now; since we have no httpd server yet # # if really needed we make an extra package to save diskspace # rm -f ${BINDIR}/usr/sbin/swat || die # rm -f ${BINDIR}/usr/share/man/man8/swat.8 || die # rm -rf ${BINDIR}/usr/share/doc/${PNAME}-${PVER}/swat || die # other docs minstalldocs COPYING Manifest README REVISION Read-Manifest-Now Roadmap WHATSNEW.txt || die } postinstall() { mstartunit nmbd.service mstartunit winbindd.service mstartunit smbd.service echo echo "To initialize samba's password database, please run:" echo " pdbedit --force-initialized-passwords" echo echo "If you experience client locks in file transfers _only_, try the parameter" echo " use sendfile = no (man smb.conf(5), man sendfile(2))" echo echo "There also seem some problems with the smbfs implementation of the recent 2.6 kernels." echo "If you experience problems (lockups) with smbfs, try cifs as an alternative." echo } postremove() { mstopunit nmbd.service mstopunit winbindd.service mstopunit smbd.service }