# Copyright 1999-2010 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/net-fs/samba-server/samba-server-3.4.5.ebuild,v 1.1 2010/01/19 19:06:52 patrick Exp $ EAPI="2" inherit pam confutils versionator multilib autotools MY_P="samba-${PV}" DESCRIPTION="Samba Server component" HOMEPAGE="http://www.samba.org/" SRC_URI="mirror://samba/${MY_P}.tar.gz" LICENSE="GPL-3" SLOT="0" KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" IUSE="samba4 acl ads aio avahi caps cluster cups debug doc examples fam ldap pam quota swat syslog winbind zeroconf" DEPEND="!<net-fs/samba-3.3 ads? ( virtual/krb5 sys-fs/e2fsprogs net-fs/samba-libs[ads] ) dev-libs/popt virtual/libiconv avahi? ( net-dns/avahi ) zeroconf? ( !avahi? ( || ( net-dns/avahi[mdnsresponder-compat] net-misc/mDNSResponder ) ) ) caps? ( sys-libs/libcap ) cups? ( net-print/cups ) debug? ( dev-libs/dmalloc ) fam? ( dev-libs/libgamin ) ldap? ( net-nds/openldap ) pam? ( sys-libs/pam ) syslog? ( virtual/logger ) sys-libs/tdb sys-libs/talloc ~net-fs/samba-libs-${PV}[caps?,cluster?,cups?,ldap?,syslog?,winbind?,ads?,samba4?]" RDEPEND="${DEPEND}" S="${WORKDIR}/${MY_P}/source3" RESTRICT="test" CONFDIR="${FILESDIR}/$(get_version_component_range 1-2)" SBINPROGS="bin/smbd bin/nmbd" BINPROGS="bin/testparm bin/smbstatus bin/smbcontrol bin/pdbedit bin/profiles bin/sharesec bin/eventlogadm" #bin/ldbedit bin/ldbsearch bin/ldbadd bin/ldbdel bin/ldbmodify bin/ldbrename" pkg_setup() { confutils_use_depend_all samba4 ads confutils_use_depend_all ads ldap } src_prepare() { cd ".." epatch \ "${FILESDIR}/samba-3.4.2-missing_includes.patch" \ "${FILESDIR}/samba-3.4.2-fix-samba4-automake.patch" \ "${FILESDIR}/samba-3.4.2-insert-AC_LD_VERSIONSCRIPT.patch" # "${FILESDIR}/samba-3.4.2-upgrade-tevent-version.patch" \ cp "${FILESDIR}/samba-3.4.2-lib.tevent.python.mk" "lib/tevent/python.mk" cd "source3" eautoconf -Ilibreplace -Im4 -I../m4 -I../lib/replace -I../source4 } src_configure() { local myconf # compile franky samba4 hybrid # http://wiki.samba.org/index.php/Franky if use samba4 ; then myconf="${myconf} --enable-merged-build --enable-developer" if has_version app-crypt/heimdal ; then myconf="${myconf} --with-krb5=/usr/" elif has_version app-crypt/mit-krb5 ; then die "MIT Kerberos not supported by samba 4, use heimdal" else die "No supported kerberos provider detected" fi fi # Filter out -fPIE [[ ${CHOST} == *-*bsd* ]] && myconf="${myconf} --disable-pie" use hppa && myconf="${myconf} --disable-pie" # Upstream refuses to make this configurable export ac_cv_header_sys_capability_h=no use caps && export ac_cv_header_sys_capability_h=yes local dnssd="--disable-dnssd" use zeroconf && ! use avahi && dnssd="--enable-dnssd" # Notes: # - FAM is a plugin for the server # - DNS-SD is only used in client/server code # - AFS is a pw-auth-method and only used in client/server code # - AFSACL is a server module # - automount is only needed in conjunction with NIS and we don't have that # anymore # - quota-support is only needed in server-code # - acl-support is only used in server-code # - --without-dce-dfs and --without-nisplus-home can't be passed to configure but are disabled by default econf ${myconf} \ --with-piddir=/var/run/samba \ --sysconfdir=/etc/samba \ --localstatedir=/var \ $(use_enable debug developer) \ --enable-largefile \ --enable-socket-wrapper \ --enable-nss-wrapper \ $(use_enable swat) \ $(use_enable debug dmalloc) \ $(use_enable cups) \ --disable-iprint \ $(use_enable fam) \ --enable-shared-libs \ ${dnssd} \ $(use_enable avahi) \ --with-fhs \ --with-privatedir=/var/lib/samba/private \ --with-rootsbindir=/var/cache/samba \ --with-lockdir=/var/cache/samba \ --with-swatdir=/usr/share/doc/${PF}/swat \ --with-configdir=/etc/samba \ --with-logfilebase=/var/log/samba \ --with-pammodulesdir=$(getpam_mod_dir) \ --without-afs \ --without-fake-kaserver \ --without-vfs-afsacl \ $(use_with ldap) \ $(use_with ads) \ $(use_with ads krb5 /usr) \ $(use_with ads dnsupdate) \ --without-automount \ --without-cifsmount \ --without-cifsupcall \ $(use_with pam ) \ $(use_with pam pam_smbpass ) \ $(use_with syslog) \ $(use_with quota quotas) \ $(use_with quota sys-quotas) \ --without-utmp \ --without-lib{talloc,tdb,netapi,smbclient,smbsharemodes} \ --without-libaddns \ $(use_with cluster ctdb /usr) \ $(use_with cluster cluster-support) \ $(use_with acl acl-support) \ $(use_with aio aio-support) \ --with-sendfile-support \ $(use_with winbind) use swat && SBINPROGS="${SBINPROGS} bin/swat" use winbind && SBINPROGS="${SBINPROGS} bin/winbindd" use ads && use winbind && SBIN_PROGS="${SBINPROGS} bin/winbind_krb5_locator" use winbind && BINPROGS="${BINPROGS} bin/wbinfo" } src_compile() { emake ${SBINPROGS} || die "building server binaries failed" emake modules || die "building modules failed" emake ${BINPROGS} || die "building binaries failed" } src_install() { dosbin ${SBINPROGS} || die "installing server binaries failed" emake DESTDIR="${D}" installmodules || die "installing modules failed" dobin ${BINPROGS} || die "installing binaries failed" for prog in ${BINPROGS} ${SBINPROGS} ; do doman ../docs/manpages/${prog/bin\/}* done doman ../docs/manpages/vfs* ../docs/manpages/samba.7 ../docs/manpages/smb.conf.5 diropts -m0700 keepdir /var/lib/samba/private diropts -m1777 keepdir /var/spool/samba diropts -m0755 keepdir /var/{cache,log}/samba keepdir /var/lib/samba/{netlogon,profiles} keepdir /var/lib/samba/printers/{W32X86,WIN40,W32ALPHA,W32MIPS,W32PPC,X64,IA64,COLOR} keepdir /usr/$(get_libdir)/samba/{auth,pdb,rpc,idmap,nss_info,gpext} newconfd "${CONFDIR}/samba.confd" samba newinitd "${CONFDIR}/samba.initd" samba insinto /etc/samba doins "${CONFDIR}"/{smbusers,lmhosts,smb.conf.default} insinto /usr/"$(get_libdir)"/samba doins ../codepages/{valid.dat,upcase.dat,lowcase.dat} if use ldap ; then insinto /etc/openldap/schema doins ../examples/LDAP/samba.schema fi if use swat ; then insinto /etc/xinetd.d newins "${CONFDIR}/swat.xinetd" swat script/installswat.sh "${D}" "${ROOT}/usr/share/doc/${PF}/swat" "${S}" \ || die "installing swat failed" fi dodoc ../MAINTAINERS ../README* ../Roadmap ../WHATSNEW.txt ../docs/THANKS if use doc ; then dohtml -r ../docs/htmldocs/* dodoc ../docs/*.pdf fi if use examples ; then cd ../examples insinto /usr/share/doc/${PF}/examples doins -r \ auth autofs dce-dfs LDAP logon misc pdb perfcounter \ printer-accounting printing scripts tridge validchars VFS fi }