# $Id: samba-3.4.8-r1.smage2 5455 2010-06-24 22:24:45Z niro $ PNAME="samba" PVER="3.5.5" PBUILD="r1" PCATEGORIE="net-fs" STATE="unstable" DESCRIPTION="Samba provides seamless file and print services to SMB/CIFS clients." HOMEPAGE="http://www.samba.org" DEPEND=">= virtual/glibc >= net-print/cups-1.4 >= dev-libs/popt-1.16 >= sys-libs/ncurses-5.7 >= sys-libs/readline-6.1 >= app-admin/gamin-0.1.10 >= dev-libs/openssl-1.0.0 >= net-dns/avahi-0.6.27" SDEPEND=">= sys-dev/automake-4 >= sys-dev/autoconf-5 >= sys-apps/sed-4" SRCFILE="${PNAME}-${PVER}.tar.gz" SRCDIR="${BUILDDIR}/${PNAME}-${PVER}" FILESDIR="${SOURCEDIR}/samba" sminclude mtools 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.rc ) UP2DATE="updatecmd http://ftp.samba.org/samba/ftp | grep ${PNAME}-[0-9].* | lasttarball gz" src_prepare() { munpack ${SRCFILE} || die cd ${SRCDIR} # examples: to be copied as docs rm -rf ${SRCDIR}/examples.ORIG || die # add our vendor suffix sed -i "s:^\(SAMBA_VERSION_VENDOR_SUFFIX=\).*:\1\"magellan\":" ${SRCDIR}/source3/VERSION || die cd ${SRCDIR}/source3 sh script/mkversion.sh || die # compilation fix # (u)mount.cifs is broken; missing include/version.h header ln -snf ../include ${SRCDIR}/source3/client || die } src_compile() { cd ${SRCDIR}/source3 # remove swat completely now; since we have no httpd server yet # if really needed we make an extra package to save diskspace # --disable-swat option is there, no patches needed anymore ;) 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=/var/run/samba \ --with-lockdir=/var/cache/samba \ --with-logfilebase=/var/log/samba \ --with-privatedir=/var/lib/samba/private \ --enable-shared-libs \ --with-cifsmount \ --with-automount \ --with-libsmbclient \ --with-syslog \ --without-acl-support \ --enable-cups \ --without-krb5 \ --without-ldap \ --with-readline \ --with-winbind \ --without-pam \ --without-pam_smbpass \ --with-quotas \ --with-sys-quotas \ --with-cifsmount=no \ --disable-swat \ --enable-avahi \ --disable-developer \ --disable-dmalloc \ || die mmake proto || die mmake everything || die # build mount.cifs separatly to fix pic issues mmake bin/mount.cifs || die mmake bin/umount.cifs || die } src_install() { cd ${SRCDIR}/source3 # needed directories minstalldir /etc/samba || die minstalldir /sbin || die 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 /var/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 make 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 minstalldir /usr/$(mlibdir) || die minstallfile ${SRCDIR}/nsswitch/libnss_wins.so /usr/$(mlibdir) || die mlink libnss_wins.so /usr/$(mlibdir)/libnss_wins.so.2 || die minstallfile ${SRCDIR}/nsswitch/libnss_winbind.so /usr/$(mlibdir) || die mlink libnss_winbind.so /usr/$(mlibdir)/libnss_winbind.so.2 || die # install cifs tools minstallexec bin/mount.cifs || die minstallexec bin/umount.cifs || die mchmod 4755 /usr/bin/mount.cifs || die mchmod 4755 /usr/bin/umount.cifs || die # add support for mount mlink ../usr/bin/mount.cifs /sbin/mount.cifs || die # samba doesn't create these symlinks anymore mlink samba/libsmbclient.so /usr/$(mlibdir)/libsmbclient.so.0 || die mlink samba/libsmbclient.so /usr/$(mlibdir)/libsmbclient.so || die mlink samba/libtalloc.so /usr/$(mlibdir)/libtalloc.so.1 || die mlink samba/libtalloc.so /usr/$(mlibdir)/libtalloc.so || die mlink samba/libtdb.so /usr/$(mlibdir)/libtdb.so.1 || die mlink samba/libtdb.so /usr/$(mlibdir)/libtdb.so || die mlink samba/libwbclient.so /usr/$(mlibdir)/libwbclient.so.0 || die mlink samba/libwbclient.so /usr/$(mlibdir)/libwbclient.so || die # add cups printing support 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 # our initscript minstallrc samba.rc 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 cd ${SRCDIR} minstalldocs COPYING Manifest README REVISION Read-Manifest-Now Roadmap WHATSNEW.txt || die } postinstall() { 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 }