summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-fs/samba/samba-3.0.6-r3.ebuild')
-rw-r--r--net-fs/samba/samba-3.0.6-r3.ebuild375
1 files changed, 375 insertions, 0 deletions
diff --git a/net-fs/samba/samba-3.0.6-r3.ebuild b/net-fs/samba/samba-3.0.6-r3.ebuild
new file mode 100644
index 000000000000..a7f34342757d
--- /dev/null
+++ b/net-fs/samba/samba-3.0.6-r3.ebuild
@@ -0,0 +1,375 @@
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-fs/samba/samba-3.0.6-r3.ebuild,v 1.1 2004/09/01 09:36:26 satya Exp $
+
+inherit eutils flag-o-matic
+
+IUSE="kerberos mysql postgres xml xml2 acl cups ldap pam readline python doc"
+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
+ http://samba.idealx.org"
+
+SMBLDAP_TOOLS_VER=0.8.5
+VSCAN_VER=0.3.5
+# all vscan modules are being installed
+#VSCAN_MODS="oav sophos fprotd fsav trend icap mksd kavp clamav nai"
+
+_CVS="-${PV/_/}"
+S=${WORKDIR}/${PN}${_CVS}
+
+SRC_URI="mirror://samba/${PN}${_CVS}.tar.gz
+ 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
+ ldap? ( kerberos? ( virtual/krb5 ) )
+ mysql? ( dev-db/mysql sys-libs/zlib )
+ postgres? ( dev-db/postgresql sys-libs/zlib )
+ xml? ( dev-libs/libxml2 sys-libs/zlib )
+ xml2? ( dev-libs/libxml2 sys-libs/zlib )
+ acl? sys-apps/acl
+ cups? net-print/cups
+ ldap? ( net-nds/openldap dev-perl/Crypt-SmbHash )
+ 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}"
+
+# some archs are removed due to dependency tree integrity for ldap and
+# dev-perl/Crypt-SmbHash flags
+# should be: KEYWORDS="~arm ~alpha ~amd64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+KEYWORDS="~arm ~mips ~sparc ~x86"
+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) --------------------------------------------------------
+ # This patchset fixes Samba bugs #1315, #1319 and #1345
+ # courtesy of Gerald Carter (jerry@samba.org)
+ # they are hopefully fixed in this version !
+ # epatch ${FILESDIR}/samba-3.0.x.patch
+ #Next one is from eger@cc.gatech.edu
+ epatch ${FILESDIR}/samba-3.0.x-python-setup.patch || die
+ #bug #44743 ------------------------------------------------------------
+ if [ ${ARCH} = "amd64" -o ${ARCH} = "ppc" -o ${ARCH} = "ppc64" ]; then
+ cd ${S} && epatch ${FILESDIR}/samba-3.0.x-smbumount-uid32.patch
+ fi
+ #Fix for bug #27858 ----------------------------------------------------
+ if [ ${ARCH} = "sparc" -o ${ARCH} = "ppc" -o ${ARCH} = "ppc64" ]; 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
+ #samba 3.0.6: bugs 61055 and 62476 -------------------------------------
+ cd ${S}/source || die
+ epatch ${FILESDIR}/samba-3.0.6-homes-reuse_v2.patch || die
+ epatch ${FILESDIR}/samba-3.0.6-winbind_getpwnam_v1.patch || die
+ cp ${FILESDIR}/samba-3.0.6-samba.schema ${S}/examples/LDAP/samba.schema
+ cd ${S} || die
+ # examples: to be copied as docs ---------------------------------------
+ rm -rf ${S}/examples.ORIG
+ cp -a ${S}/examples ${S}/examples.ORIG
+ # Prep samba-vscan source.
+ use oav && cp -a ${WORKDIR}/${PN}-vscan-${VSCAN_VER} ${S}/examples/VFS
+ #-----------------------------------------------------------------------
+ cd ${S}/source
+ echo "Running autoconf ..."
+ autoconf || die
+}
+
+src_compile() {
+ local i
+ local myconf
+ local mymods
+ #mymods="nisplussam" #this is deprecated...
+ #-----------------------------------------------------------------------
+ use xml || use xml2 && mymods="xml,${mymods}"
+ use mysql && mymods="mysql,${mymods}"
+ use postgres && mymods="pgsql,${mymods}"
+ [ -n "${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"
+ use python \
+ && myconf="${myconf} --with-python=yes" \
+ || myconf="${myconf} --with-python=no"
+ use readline \
+ && myconf="${myconf} --with-readline" \
+ || myconf="${myconf} --without-readline"
+ #Fix #57063 ------------------------------------------------------------
+ # too cautious for some archs: maybe -O2 is sufficient on some of them
+ strip-flags
+ if [ "${ARCH}" = "ppc" -o "${ARCH}" = "ppc64" ]; then
+ replace-flags -O? -O1
+ else
+ replace-flags -O? -O1
+ fi
+ #-----------------------------------------------------------------------
+ if [ "${ARCH}" != "amd64" ]; then
+ use kerberos && use ldap \
+ && myconf="${myconf} --with-ads" \
+ || myconf="${myconf} --without-ads"
+ else
+ myconf="${myconf} --without-ads"
+ fi
+ #-----------------------------------------------------------------------
+ #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
+ #-----------------------------------------------------------------------
+ for info_var in myconf CFLAGS CFLAGS; do
+ einfo "${info_var} is: ${!info_var}"
+ done
+ cd ${S}/source
+ ./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib/samba \
+ --with-libdir=/usr/lib/samba \
+ --with-swatdir=/usr/share/doc/${PF}/swat \
+ --localstatedir=/var \
+ --with-piddir=/var/run/samba \
+ --with-lockdir=/var/cache/samba \
+ --with-logfilebase=/var/log/samba \
+ --sysconfdir=/etc/samba \
+ --with-configdir=/etc/samba \
+ --with-privatedir=/etc/samba/private \
+ \
+ --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
+ # Show install dirs ----------------------------------------------------
+ einfo "Dir conf:"
+ make showlayout
+ # serialized headers make ----------------------------------------------
+ make proto
+ # Compile main SAMBA pieces --------------------------------------------
+ einfo "make everything" && emake everything || die "SAMBA make everything error"
+ einfo "make rpctorture" && emake rpctorture || ewarn "rpctorture didn't build"
+ # Build mount.cifs -----------------------------------------------------
+ einfo "mount.cifs"
+ cd ${S}/source
+ gcc ${CFLAGS} client/mount.cifs.c -o bin/mount.cifs
+ assert "mount.cifs compile problem"
+ # build smbget ---------------------------------------------------------
+ einfo "smbget"
+ emake bin/smbget; assert "smbget compile error"
+ # Build selected samba-vscan plugins -----------------------------------
+ if use oav; then
+ cd ${S}/examples/VFS/${PN}-vscan-${VSCAN_VER}
+ ./configure --prefix=/usr --libdir=/usr/lib/samba
+ assert "bad ${PN}-vscan-${VSCAN_VER} ./configure"
+ emake #${VSCAN_MODS}
+ fi
+ # Build mkntpasswd from the smbldap-tools ------------------------------
+ # Attention: usage of dev-perl/Crypt-SmbHash for smbldap-tool > 0.8.5
+ if use ldap; then
+ cd ${WORKDIR}/smbldap-tools-${SMBLDAP_TOOLS_VER}
+ if [ -f mkntpwd.tar.gz ]; then
+ tar --no-same-owner -zxf mkntpwd.tar.gz
+ cd mkntpwd
+ VISUAL="" make || die "mkntpwd compile problem"
+ fi
+ fi
+}
+
+src_install() {
+ local extra_bins="debug2html smbfilter talloctort mount.cifs smbget"
+ #smbsh editreg
+ extra_bins="${extra_bins} smbtorture msgtest masktest locktest \
+ locktest2 nsstest vfstest rpctorture"
+ # ----------------------------------------------------------------------
+ cd ${S}/source
+ make DESTDIR=${D} install-everything
+ # Extra binary files, testing/torture progs ----------------------------
+ exeinto /usr/bin
+ for i in ${extra_bins}; do
+ [ -x ${S}/source/bin/${i} ] && doexe ${S}/source/bin/${i} && \
+ einfo "Extra binaries: ${i}"
+ done
+ # Installing these setuid-root allows users to (un)mount smbfs/cifs ----
+ for i in /usr/bin/smbumount /usr/bin/smbmnt /usr/bin/mount.cifs; do
+ fperms 4111 ${i} || die "No perms: ${i}"
+ einfo "suid: ${i}"
+ done
+ # Nsswitch extensions. Make link for wins and winbind resolvers --------
+ exeinto /lib
+ for i in wins winbind; do
+ doexe ${S}/source/nsswitch/libnss_${i}.so
+ ( cd ${D}/lib; ln -s libnss_${i}.so libnss_${i}.so.2 )
+ done
+ exeinto /lib/security
+ doexe ${S}/source/nsswitch/pam_winbind.so
+ use pam && doexe ${S}/source/bin/pam_smbpass.so
+ # mount backend --------------------------------------------------------
+ dodir /sbin
+ dosym ../usr/bin/smbmount /sbin/mount.smbfs
+ dosym ../usr/bin/mount.cifs /sbin/mount.cifs
+ # bug #46389: samba doesn't create symlink anymore
+ # beaviour seems to be changed in 3.0.6, see bug #61046
+ dosym /usr/lib/samba/libsmbclient.so /usr/lib/libsmbclient.so.0
+ dosym /usr/lib/samba/libsmbclient.so /usr/lib/libsmbclient.so
+ # 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
+ # Install IDEALX scripts for LDAP backend administration ---------------
+ if use ldap; then
+ # corrections as per bug #41796
+ cd ${WORKDIR}/smbldap-tools-${SMBLDAP_TOOLS_VER}
+ exeinto /usr/share/samba/scripts; doexe smbldap-*
+ exeinto /etc/samba ; doexe smbldap_tools.pm
+ insinto /etc/smbldap-tools ; doins *.conf
+ fperms 644 /etc/smbldap-tools/smbldap.conf
+ fperms 600 /etc/smbldap-tools/smbldap_bind.conf
+ 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
+ if [ -f mkntpwd/mkntpwd ]; then
+ exeinto /usr/sbin ; doexe mkntpwd/mkntpwd
+ fi
+ fi
+ # VFS plugin modules ---------------------------------------------------
+ if use oav; then
+ #exeinto /usr/lib/samba/vfs
+ #doexe ${S}/examples/VFS/${PN}-vscan-${VSCAN_VER}/vscan-*.so
+ cd ${S}/examples/VFS/${PN}-vscan-${VSCAN_VER}
+ make install DESTDIR=${D} || die "VFS: vscan error"
+ insinto /etc/samba
+ doins ${S}/examples/VFS/${PN}-vscan-${VSCAN_VER}/openantivirus/*conf
+ fi
+ # Python extensions ----------------------------------------------------
+ if use python; then
+ cd ${S}/source
+ python python/setup.py install --root=${D} || die
+ fi
+ # General config files -------------------------------------------------
+ insinto /etc/samba
+ touch ${D}/etc/samba/smb.conf
+ 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
+ insinto /etc/xinetd.d
+ newins ${FILESDIR}/swat.xinetd swat
+ exeinto /etc/init.d; newexe ${FILESDIR}/samba-init samba
+ insinto /etc/conf.d; newins ${FILESDIR}/samba-conf samba
+ if use ldap; then
+ insinto /etc/openldap/schema
+ doins ${S}/examples/LDAP/samba.schema
+ fi
+ # dirs -----------------------------------------------------------------
+ diropts -m0700
+ dodir /etc/samba/private
+ touch ${D}/etc/samba/private/.keep
+ diropts -m1777
+ dodir /var/spool/samba
+ touch ${D}/var/spool/samba/.keep
+ diropts -m0755
+ dodir /var/{log,run,cache}/samba
+ dodir /var/lib/samba/{netlogon,profiles}
+ dodir /var/lib/samba/printers/{W32X86,WIN40,W32ALPHA,W32MIPS,W32PPC}
+ touch ${D}/var/{log,run,cache}/samba/.keep
+ touch ${D}/var/lib/samba/{netlogon,profiles}/.keep
+ touch ${D}/var/lib/samba/printers/{W32X86,WIN40,W32ALPHA,W32MIPS,W32PPC}/.keep
+ # docs -----------------------------------------------------------------
+ docinto ""
+ dodoc ${S}/COPYING ${S}/Manifest ${S}/README ${S}/Roadmap ${S}/WHATSNEW.txt
+ docinto examples
+ dodoc ${FILESDIR}/nsswitch.conf-{wins,winbind}
+ cp -a ${S}/examples.ORIG/* ${D}/usr/share/doc/${PF}/examples
+ 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
+ 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
+ fi
+ if ! use doc; then
+ rm -rf ${D}/usr/share/doc/${PF}/swat/help/{guide,howto,devel}
+ rm -rf ${D}/usr/share/doc/${PF}/swat/using_samba
+ fi
+ chown -R root:root ${D}/usr/share/doc/${PF}
+ # moving manpages ------------------------------------------------------
+ mv ${D}/usr/man ${D}/usr/share/man
+}
+
+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..
+ #[ ! -e ${ROOT}/etc/samba/smb.conf ] && touch ${ROOT}/etc/samba/smb.conf
+
+ ewarn ""
+ ewarn "If you are upgrading from a Samba version prior to 3.0.2, and you"
+ ewarn "use Samba's password database, you must run the following command:"
+ ewarn ""
+ ewarn " pdbedit --force-initialized-passwords"
+ ewarn ""
+ ewarn "LIBs location change: /usr/lib/samba/*"
+ ewarn " (due to ldap/vfs external tools assumptions)"
+ ewarn ""
+ if use ldap; then
+ ewarn "If you are upgrading from prior to 3.0.2, and you are using LDAP"
+ ewarn " for Samba authentication, you must check the sambaPwdLastSet"
+ ewarn " attribute on all accounts, and ensure it is not 0."
+ einfo "WARNING: smbldap-tools changes"
+ einfo " smbldap-tools conf changed to /etc/smbldap-tools"
+ einfo " /usr/shared/samba/scripts: some script names changed"
+ einfo " dev-perl/Crypt-SmbHash: new pwd hash validation/conversion system"
+ einfo ""
+ fi
+}
+