summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-fs/samba/samba-3.0.2a.ebuild')
-rw-r--r--net-fs/samba/samba-3.0.2a.ebuild419
1 files changed, 419 insertions, 0 deletions
diff --git a/net-fs/samba/samba-3.0.2a.ebuild b/net-fs/samba/samba-3.0.2a.ebuild
new file mode 100644
index 000000000000..40a8731dc619
--- /dev/null
+++ b/net-fs/samba/samba-3.0.2a.ebuild
@@ -0,0 +1,419 @@
+# Copyright 1999-2004 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-fs/samba/samba-3.0.2a.ebuild,v 1.1 2004/02/15 08:04:15 woodchip Exp $
+
+inherit eutils
+
+IUSE="kerberos mysql xml acl cups ldap pam readline python"
+IUSE="${IUSE} oav"
+
+DESCRIPTION="SAMBA is a suite of SMB and CIFS client/server programs for UNIX"
+HOMEPAGE="http://www.samba.org/
+ http://www.openantivirus.org/projects.php"
+
+SMBLDAP_TOOLS_VER=0.8.4
+VSCAN_VER=0.3.4
+VSCAN_MODS=${VSCAN_MODS:=fprot mks openantivirus sophos trend icap clamav} #kapersky
+# To build the "kapersky" plugin, the kapersky lib must be installed.
+
+_CVS="-${PV/_/}"
+S=${WORKDIR}/${PN}${_CVS}
+
+SRC_URI="mirror://samba/${PN}${_CVS}.tar.bz2
+ oav? mirror://sourceforge/openantivirus/${PN}-vscan-${VSCAN_VER}.tar.bz2
+ ldap? http://samba.idealx.org/dist/smbldap-tools-${SMBLDAP_TOOLS_VER}.tgz"
+
+_COMMON_DEPS="dev-libs/popt
+ readline? sys-libs/readline
+ amd64? ( ) : ( ldap? ( kerberos? ( app-crypt/mit-krb5 ) ) )
+ mysql? ( dev-db/mysql sys-libs/zlib )
+ xml? ( dev-libs/libxml2 sys-libs/zlib )
+ acl? sys-apps/acl
+ cups? net-print/cups
+ ldap? net-nds/openldap
+ pam? sys-libs/pam
+ python? dev-lang/python"
+DEPEND="sys-devel/autoconf
+ >=sys-apps/sed-4
+ ${_COMMON_DEPS}"
+#IDEALX scripts are now using Net::LDAP
+RDEPEND="ldap? dev-perl/perl-ldap ${_COMMON_DEPS}"
+
+KEYWORDS="~x86 ~ppc ~sparc ~mips ~hppa ~amd64 ~ppc64 ~ia64 ~alpha"
+LICENSE="GPL-2"
+SLOT="0"
+
+src_unpack() {
+ local i
+ unpack ${A} || die
+ cd ${S} || die
+
+ # Clean up CVS
+ find . -name .cvsignore | xargs rm -f
+ find . -name CVS | xargs rm -rf
+
+ # Add patch(es)
+ #Next one is from eger@cc.gatech.edu :)
+ patch -p1 <${FILESDIR}/samba-3.0.0-python-setup.patch || die
+ #Fix for bug #27858
+ if [ "${ARCH}" = "sparc" -o "${ARCH}" = "ppc" ]
+ then
+ cd ${S}/source/include
+ epatch ${FILESDIR}/samba-2.2.8-statfs.patch
+ fi
+ #Bug #36200; sys-kernel/linux-headers dependent
+ sed -i -e 's:#define LINUX_QUOTAS_2:#define LINUX_QUOTAS_1:' \
+ -e 's:<linux/quota.h>:<sys/quota.h>:' \
+ ${S}/source/smbd/quotas.c
+
+ # For clean docs packaging sake.
+ rm -rf ${S}/examples.bin
+ cp -a ${S}/examples ${S}/examples.bin
+
+ # Prep samba-vscan source.
+ if use oav
+ then
+ cp -a ${WORKDIR}/${PN}-vscan-${VSCAN_VER} \
+ ${S}/examples.bin/VFS
+ fi
+
+ cd ${S}/source
+ echo "Running autoconf ..."
+ autoconf || die
+}
+
+src_compile() {
+ local i
+ local myconf
+ local mymods
+
+ #this is deprecated...
+ #mymods="nisplussam"
+ use xml && mymods="xml,${mymods}"
+ use mysql && mymods="mysql,${mymods}"
+
+ myconf="--with-expsam=${mymods}"
+
+ use acl \
+ && myconf="${myconf} --with-acl-support" \
+ || myconf="${myconf} --without-acl-support"
+
+ use pam \
+ && myconf="${myconf} --with-pam --with-pam_smbpass" \
+ || myconf="${myconf} --without-pam --without-pam_smbpass"
+
+ use cups \
+ && myconf="${myconf} --enable-cups" \
+ || myconf="${myconf} --disable-cups"
+
+ use ldap \
+ && myconf="${myconf} --with-ldap" \
+ || myconf="${myconf} --without-ldap"
+ #this is for old samba 2.x compat
+ #myconf="${myconf} --with-ldapsam"
+ myconf="${myconf} --without-ldapsam"
+
+ if [ "${ARCH}" != "amd64" ]
+ then
+ use kerberos && use ldap \
+ && myconf="${myconf} --with-ads" \
+ || myconf="${myconf} --without-ads"
+ else
+ myconf="${myconf} --without-ads"
+ fi
+
+ use python \
+ && myconf="${myconf} --with-python=yes" \
+ || myconf="${myconf} --with-python=no"
+
+ use readline \
+ && myconf="${myconf} --with-readline" \
+ || myconf="${myconf} --without-readline"
+
+ einfo "\$myconf is: $myconf"
+
+ #default_{static,shared}_modules|source/configure
+ #/usr/lib/samba/auth/............. AUTH_MODULES
+ #/usr/lib/samba/charset/ CHARSET_MODULES
+ #/usr/lib/samba/pdb/.............. PDB_MODULES
+ #/usr/lib/samba/rpc/ RPC_MODULES
+ #/usr/lib/samba/vfs/.............. VFS_MODULES|source/Makefile
+ #/usr/lib/samba/lowcase.dat
+ #/usr/lib/samba/upcase.dat
+ #/usr/lib/samba/valid.dat
+
+ cd source
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc/samba \
+ --localstatedir=/var \
+ --libdir=/usr/lib/samba \
+ --with-privatedir=/etc/samba/private \
+ --with-lockdir=/var/cache/samba \
+ --with-piddir=/var/run/samba \
+ --with-swatdir=/usr/share/swat \
+ --with-configdir=/etc/samba \
+ --with-logfilebase=/var/log/samba \
+ \
+ --enable-static --enable-shared \
+ --with-manpages-langs=en \
+ --without-spinlocks \
+ --with-libsmbclient \
+ --with-automount \
+ --with-smbmount \
+ --with-winbind \
+ --with-quotas \
+ --with-syslog \
+ --with-idmap \
+ --host=${CHOST} ${myconf} || die
+
+ # Compile main SAMBA pieces.
+ make everything || die "SAMBA pieces"
+ make rpctorture || ewarn "rpctorture didnt build"
+
+ # Build selected samba-vscan plugins.
+ if use oav
+ then
+ cd ${S}/examples.bin/VFS/${PN}-vscan-${VSCAN_VER}
+ ./configure
+ assert "bad ${PN}-vscan-${VSCAN_VER} ./configure"
+
+ for i in ${VSCAN_MODS}
+ do
+ cd ${S}/examples.bin/VFS/${PN}-vscan-${VSCAN_VER}/$i
+ make USE_INCLMKSDLIB=1 #needed for the mks build
+ assert "problem building $i vscan module"
+ done
+ fi
+
+ # Build mkntpasswd from the smbldap-tools.
+ if use ldap
+ then
+ cd ${WORKDIR}/smbldap-tools-${SMBLDAP_TOOLS_VER}
+ tar --no-same-owner -zxf mkntpwd.tar.gz
+ cd mkntpwd
+ VISUAL="" make || die "mkntpwd compile problem"
+ fi
+
+ # Build mount.cifs
+ cd ${S}/source
+ gcc ${CFLAGS} client/mount.cifs.c -o bin/mount.cifs
+ assert "mount.cifs compile problem"
+}
+
+src_install() {
+# For testing brokeness of make install
+# cd source
+# make DESTDIR=${D} install installmodules install_python
+# assert "It would be nice if that just worked."
+
+ # Install standard binary files.
+ for i in smbclient net smbspool testparm testprns smbstatus \
+ smbcontrol smbtree tdbbackup nmblookup pdbedit \
+ smbpasswd rpcclient smbcacls profiles ntlm_auth \
+ smbcquotas smbmount smbmnt smbumount wbinfo \
+ debug2html smbfilter talloctort mount.cifs #smbsh editreg
+ do
+ exeinto /usr/bin
+ doexe source/bin/${i}
+ done
+ doexe source/script/{smbtar,findsmb}
+
+ # TORTURE_PROGS / Testing stuff, if they built they will come.
+ for i in smbtorture msgtest masktest locktest locktest2 \
+ nsstest vfstest rpctorture
+ do
+ if [ -x source/bin/${i} ]
+ then
+ exeinto /usr/bin
+ doexe source/bin/${i}
+ fi
+ done
+
+ # Installing these setuid-root allows users to (un)mount smbfs/cifs.
+ fperms 4111 /usr/bin/smbumount
+ fperms 4111 /usr/bin/smbmnt
+ fperms 4111 /usr/bin/mount.cifs
+
+ # Install server binaries.
+ for i in smbd nmbd swat winbindd # wrepld
+ do
+ exeinto /usr/sbin
+ doexe source/bin/${i}
+ done
+
+ # Libraries.
+ exeinto /usr/lib
+ #broken for a while now with some wacky glibc issue
+ #doexe source/bin/smbwrapper.so
+ doexe source/bin/libsmbclient.so
+ insinto /usr/lib
+ doins source/bin/libsmbclient.a
+ insinto /usr/include
+ doins source/include/libsmbclient.h
+ exeinto /lib/security
+ doexe source/nsswitch/pam_winbind.so
+ use pam && doexe source/bin/pam_smbpass.so
+
+ # Nsswitch extensions.
+ for i in wins winbind
+ do
+ exeinto /lib
+ doexe source/nsswitch/libnss_${i}.so
+ done
+ # make link for wins and winbind resolvers..
+ ( cd ${D}/lib ; ln -s libnss_wins.so libnss_wins.so.2 )
+ ( cd ${D}/lib ; ln -s libnss_winbind.so libnss_winbind.so.2 )
+
+ # Python extensions.
+ if use python
+ then
+ cd source
+ python python/setup.py install --root=${D} || die
+ cd ..
+ fi
+
+ # VFS plugin modules.
+ exeinto /usr/lib/samba/vfs
+ if use oav
+ then
+ doexe examples.bin/VFS/${PN}-vscan-${VSCAN_VER}/*/vscan-*.so
+ fi
+ for i in audit cap default_quota extd_audit fake_perms \
+ netatalk readonly recycle
+ do
+ if [ -x source/bin/${i}.so ]
+ then
+ doexe source/bin/${i}.so
+ fi
+ done
+
+ # Passdb modules.
+ exeinto /usr/lib/samba/pdb
+ use mysql && doexe source/bin/mysql.so
+ use xml && doexe source/bin/xml.so
+
+ # Install codepage data files.
+ insinto /usr/lib/samba
+ doins source/codepages/*.dat
+
+ # Install SWAT helper files.
+ for i in swat/help/*.html docs/htmldocs/*.html
+ do
+ insinto /usr/share/swat/help
+ doins ${i}
+ done
+ for i in swat/images/*.gif
+ do
+ insinto /usr/share/swat/images
+ doins ${i}
+ done
+ for i in swat/include/*.html
+ do
+ insinto /usr/share/swat/include
+ doins ${i}
+ done
+
+ # Install IDEALX scripts for LDAP backend administration.
+ if use ldap; then
+ cd ${WORKDIR}/smbldap-tools-${SMBLDAP_TOOLS_VER}
+ exeinto /usr/share/samba/scripts ; doexe smbldap-*.pl
+ exeinto /usr/sbin ; doexe mkntpwd/mkntpwd
+ insinto /etc/samba ; doins smbldap_conf.pm
+ exeinto /etc/samba ; doexe smbldap_tools.pm
+ eval `perl '-V:installarchlib'`
+ dodir ${installarchlib}
+ dosym /etc/samba/smbldap_conf.pm ${installarchlib}
+ dosym /etc/samba/smbldap_conf.pm /usr/share/samba/scripts
+ dosym /etc/samba/smbldap_tools.pm ${installarchlib}
+ dosym /etc/samba/smbldap_tools.pm /usr/share/samba/scripts
+ cd ${S}
+ fi
+
+ # Install man pages.
+ doman docs/manpages/*
+
+ # SAMBA has a lot of docs, so this just basically
+ # installs them all! We don't want two copies of
+ # the book or manpages though, so:
+ rm -rf docs/htmldocs/using_samba docs/manpages
+ #
+ dodoc COPYING Manifest README Roadmap WHATSNEW.txt
+ docinto full_docs
+ cp -a docs/* ${D}/usr/share/doc/${PF}/full_docs
+ docinto examples
+ dodoc ${FILESDIR}/nsswitch.conf-{wins,winbind}
+ cp -a examples/* ${D}/usr/share/doc/${PF}/examples
+ prepalldocs
+ # and we should unzip the html docs..
+ gunzip ${D}/usr/share/doc/${PF}/full_docs/faq/*
+ gunzip ${D}/usr/share/doc/${PF}/full_docs/htmldocs/*
+ if use oav; then
+ docinto ${PN}-vscan-${VSCAN_VER}
+ cd ${WORKDIR}/${PN}-vscan-${VSCAN_VER}
+ dodoc AUTHORS COPYING ChangeLog FAQ INSTALL NEWS README TODO
+ dodoc */*.conf
+ cd ${S}
+ fi
+ if use ldap; then
+ docinto smbldap-tools-${SMBLDAP_TOOLS_VER}
+ cd ${WORKDIR}/smbldap-tools-${SMBLDAP_TOOLS_VER}
+ dodoc CONTRIBUTORS COPYING ChangeLog FILES INFRA INSTALL README TODO
+ cd ${S}
+ fi
+ chown -R root:root ${D}/usr/share/doc/${PF}
+
+ # link /usr/bin/smbmount to /sbin/mount.smbfs which allows it
+ # to work transparently with the standard 'mount' command..
+ dodir /sbin
+ dosym /usr/bin/smbmount /sbin/mount.smbfs
+
+ # make the smb backend symlink for cups printing support..
+ if use cups; then
+ dodir /usr/lib/cups/backend
+ dosym /usr/bin/smbspool /usr/lib/cups/backend/smb
+ fi
+
+ # Now the config files.
+ insinto /etc
+ insinto /etc/samba
+ doins ${FILESDIR}/smbusers
+ newins ${FILESDIR}/smb.conf.example-samba3 smb.conf.example
+ doins ${FILESDIR}/lmhosts
+ doins ${FILESDIR}/recycle.conf
+
+ insinto /etc/pam.d
+ newins ${FILESDIR}/samba.pam samba
+ doins ${FILESDIR}/system-auth-winbind
+
+ exeinto /etc/init.d
+ newexe ${FILESDIR}/samba-init samba
+ newexe ${FILESDIR}/winbind-init winbind
+
+ insinto /etc/xinetd.d
+ newins ${FILESDIR}/swat.xinetd swat
+
+ if use ldap; then
+ insinto /etc/openldap/schema
+ doins examples/LDAP/samba.schema
+ fi
+}
+
+pkg_postinst() {
+ # touch /etc/samba/smb.conf so that people installing samba just
+ # to mount smb shares don't get annoying warnings all the time..
+ if [ ! -e ${ROOT}/etc/samba/smb.conf ] ; then
+ touch ${ROOT}/etc/samba/smb.conf
+ fi
+
+ # empty dirs..
+ install -m0700 -o root -g root -d ${ROOT}/etc/samba/private
+ install -m1777 -o root -g root -d ${ROOT}/var/spool/samba
+ install -m0755 -o root -g root -d ${ROOT}/var/log/samba
+ install -m0755 -o root -g root -d ${ROOT}/var/log/samba3
+ install -m0755 -o root -g root -d ${ROOT}/var/run/samba
+ install -m0755 -o root -g root -d ${ROOT}/var/cache/samba
+ install -m0755 -o root -g root -d ${ROOT}/var/lib/samba/{netlogon,profiles}
+ install -m0755 -o root -g root -d \
+ ${ROOT}/var/lib/samba/printers/{W32X86,WIN40,W32ALPHA,W32MIPS,W32PPC}
+}