/[gentoo-x86]/net-fs/samba/samba-3.5.18.ebuild
Gentoo

Contents of /net-fs/samba/samba-3.5.18.ebuild

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (hide annotations) (download)
Fri Oct 19 08:10:00 2012 UTC (20 months, 3 weeks ago) by swift
Branch: MAIN
Changes since 1.1: +3 -2 lines
Refix bug #62907 - Add in dependency on SELinux samba policy

(Portage version: 2.1.11.9/cvs/Linux x86_64)

1 vostorga 1.1 # Copyright 1999-2012 Gentoo Foundation
2     # Distributed under the terms of the GNU General Public License v2
3 swift 1.2 # $Header: /var/cvsroot/gentoo-x86/net-fs/samba/samba-3.5.18.ebuild,v 1.1 2012/10/17 22:05:43 vostorga Exp $
4 vostorga 1.1
5     EAPI=4
6    
7     inherit pam versionator multilib eutils
8    
9     MY_PV=${PV/_/}
10     MY_P="${PN}-${MY_PV}"
11    
12     DESCRIPTION="Library bits of the samba network filesystem"
13     HOMEPAGE="http://www.samba.org/"
14     SRC_URI="mirror://samba/${P}.tar.gz
15     http://dev.gentoo.org/~dagger/files/smb_traffic_analyzer_v2.diff.bz2"
16     LICENSE="GPL-3"
17     SLOT="0"
18     KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd"
19     IUSE="acl addns ads +aio avahi caps +client cluster cups debug doc examples fam
20 swift 1.2 ldap ldb +netapi pam quota +readline selinux +server +smbclient smbsharemodes smbtav2
21 vostorga 1.1 swat syslog winbind"
22    
23     # upstream doesn't support cups 1.6 for samba 3.5
24     DEPEND="dev-libs/popt
25     !net-fs/samba-client
26     !net-fs/samba-libs
27     !net-fs/samba-server
28     !net-fs/cifs-utils
29     sys-libs/talloc
30     sys-libs/tdb
31     virtual/libiconv
32     ads? ( virtual/krb5 sys-fs/e2fsprogs
33     client? ( sys-apps/keyutils ) )
34     avahi? ( net-dns/avahi[dbus] )
35     caps? ( sys-libs/libcap )
36     client? ( !net-fs/mount-cifs
37     dev-libs/iniparser )
38     cluster? ( >=dev-db/ctdb-1.0.114_p1 )
39     cups? ( <net-print/cups-1.6 )
40     fam? ( virtual/fam )
41     ldap? ( net-nds/openldap )
42     pam? ( virtual/pam
43     winbind? ( dev-libs/iniparser )
44     )
45     readline? ( >=sys-libs/readline-5.2 )
46 swift 1.2 selinux? ( sec-policy/selinux-samba )
47 vostorga 1.1 syslog? ( virtual/logger )"
48    
49     RDEPEND="${DEPEND}"
50    
51     # Disable tests since we don't want to build that much here
52     RESTRICT="test"
53    
54     SBINPROGS=""
55     BINPROGS=""
56     KRBPLUGIN=""
57     PLUGINEXT=".so"
58     SHAREDMODS=""
59    
60     S="${WORKDIR}/${MY_P}/source3"
61    
62     # TODO:
63     # - enable iPrint on Prefix/OSX and Darwin?
64     # - selftest-prefix? selftest?
65     # - AFS?
66    
67     CONFDIR="${FILESDIR}/$(get_version_component_range 1-2)"
68    
69     REQUIRED_USE="
70     ads? ( ldap )
71     swat? ( server )
72     "
73    
74     pkg_setup() {
75     if use server ; then
76     SBINPROGS="${SBINPROGS} bin/smbd bin/nmbd"
77     BINPROGS="${BINPROGS} bin/testparm bin/smbstatus bin/smbcontrol bin/pdbedit
78     bin/profiles bin/sharesec bin/eventlogadm"
79    
80     use smbtav2 && BINPROGS="${BINPROGS} bin/smbta-util"
81     use swat && SBINPROGS="${SBINPROGS} bin/swat"
82     use winbind && SBINPROGS="${SBINPROGS} bin/winbindd"
83     use ads && use winbind && KRBPLUGIN="${KRBPLUGIN} bin/winbind_krb5_locator"
84     fi
85    
86     if use client ; then
87     BINPROGS="${BINPROGS} bin/smbclient bin/net bin/smbget bin/smbtree
88     bin/nmblookup bin/smbpasswd bin/rpcclient bin/smbcacls bin/smbcquotas
89     bin/ntlm_auth"
90    
91     use ads && SBINPROGS="${SBINPROGS} bin/cifs.upcall"
92     fi
93    
94     use cups && BINPROGS="${BINPROGS} bin/smbspool"
95     use ldb && BINPROGS="${BINPROGS} bin/ldbedit bin/ldbsearch bin/ldbadd bin/ldbdel bin/ldbmodify bin/ldbrename";
96    
97     if use winbind ; then
98     BINPROGS="${BINPROGS} bin/wbinfo"
99     SHAREDMODS="${SHAREDMODS}idmap_rid,idmap_hash"
100     use ads && SHAREDMODS="${SHAREDMODS},idmap_ad"
101     use ldap && SHAREDMODS="${SHAREDMODS},idmap_ldap,idmap_adex"
102     fi
103    
104     if use winbind &&
105     [[ $(tc-getCC)$ == *gcc* ]] &&
106     [[ $(gcc-major-version)$(gcc-minor-version) -lt 43 ]]
107     then
108     eerror "It is a known issue that ${P} will not build with "
109     eerror "winbind use flag enabled when using gcc < 4.3 ."
110     eerror "Please use at least the latest stable gcc version."
111     die "Using sys-devel/gcc < 4.3 with winbind use flag."
112     fi
113     }
114    
115     src_prepare() {
116     cp "${FILESDIR}/samba-3.4.2-lib.tevent.python.mk" "../lib/tevent/python.mk"
117    
118     # ensure that winbind has correct ldflags (QA notice)
119     sed -i \
120     -e 's|LDSHFLAGS="|LDSHFLAGS="\\${LDFLAGS} |g' \
121     configure || die "sed failed"
122    
123     epatch "${CONFDIR}"/${PN}-3.5.6-kerberos-dummy.patch
124     use smbtav2 && cd "${WORKDIR}/${P}" && epatch "${WORKDIR}"/smb_traffic_analyzer_v2.diff
125     cd "${WORKDIR}/${MY_P}" && epatch "${CONFDIR}"/${PN}-3.5.8-uclib-build.patch
126     epatch "${CONFDIR}"/smb.conf.default.patch
127     }
128    
129     src_configure() {
130     local myconf
131    
132     # Filter out -fPIE
133     [[ ${CHOST} == *-*bsd* ]] && myconf+=" --disable-pie"
134    
135     # Upstream refuses to make this configurable
136     use caps && export ac_cv_header_sys_capability_h=yes || export ac_cv_header_sys_capability_h=no
137    
138     # use_with doesn't accept 2 USE-flags
139     if use client && use ads ; then
140     myconf+=" --with-cifsupcall"
141     else
142     myconf+=" --without-cifsupcall"
143     fi
144    
145     if use client && use kernel_linux ; then
146     myconf+=" --with-cifsmount --with-cifsumount"
147     else
148     myconf+=" --without-cifsmount --without-cifsumount"
149     fi
150    
151     #bug #399141 wrap newer iniparser version
152     has_version ">=dev-libs/iniparser-3.0.0" && \
153     export CPPFLAGS+=" -Diniparser_getstr\(d,i\)=iniparser_getstring\(d,i,NULL\)"
154    
155     # Notes:
156     # - automount is only needed in conjunction with NIS and we don't have that
157     # anymore => LDAP?
158     # - --without-dce-dfs and --without-nisplus-home can't be passed to configure but are disabled by default
159     econf ${myconf} \
160     --with-piddir=/var/run/samba \
161     --sysconfdir=/etc/samba \
162     --localstatedir=/var \
163     $(use_enable debug developer) \
164     --enable-largefile \
165     --enable-socket-wrapper \
166     --enable-nss-wrapper \
167     $(use_enable swat) \
168     $(use_enable cups) \
169     --disable-iprint \
170     $(use_enable fam) \
171     --enable-shared-libs \
172     --disable-dnssd \
173     $(use_enable avahi) \
174     --with-fhs \
175     --with-privatedir=/var/lib/samba/private \
176     --with-rootsbindir=/var/cache/samba \
177     --with-lockdir=/var/cache/samba \
178     --with-swatdir=/usr/share/doc/${PF}/swat \
179     --with-configdir=/etc/samba \
180     --with-logfilebase=/var/log/samba \
181     --with-pammodulesdir=$(getpam_mod_dir) \
182     --without-afs \
183     --without-fake-kaserver \
184     --without-vfs-afsacl \
185     $(use_with ldap) \
186     $(use_with ads) \
187     $(use_with ads krb5 /usr) \
188     $(use_with ads dnsupdate) \
189     --without-automount \
190     $(use_with pam) \
191     $(use_with pam pam_smbpass) \
192     $(use_with syslog) \
193     $(use_with quota quotas) \
194     $(use_with quota sys-quotas) \
195     --without-utmp \
196     --without-lib{talloc,tdb} \
197     $(use_with netapi libnetapi) \
198     $(use_with smbclient libsmbclient) \
199     $(use_with smbsharemodes libsmbsharemodes) \
200     $(use_with addns libaddns) \
201     $(use_with cluster ctdb /usr) \
202     $(use_with cluster cluster-support) \
203     $(use_with acl acl-support) \
204     $(use_with aio aio-support) \
205     --with-sendfile-support \
206     $(use_with winbind) \
207     --with-shared-modules=${SHAREDMODS} \
208     --without-included-popt \
209     --without-included-iniparser
210     }
211    
212     src_compile() {
213     # compile libs
214     if use addns ; then
215     einfo "make addns library"
216     emake libaddns
217     fi
218     if use netapi ; then
219     einfo "make netapi library"
220     emake libnetapi
221     fi
222     if use smbclient ; then
223     einfo "make smbclient library"
224     emake libsmbclient
225     fi
226     if use smbsharemodes ; then
227     einfo "make smbsharemodes library"
228     emake libsmbsharemodes
229     fi
230    
231     # compile modules
232     emake modules
233    
234     # compile pam moudles
235     if use pam ; then
236     einfo "make pam modules"
237     emake pam_modules
238     fi
239    
240     # compile winbind nss modules
241     if use winbind ; then
242     einfo "make nss modules"
243     emake nss_modules
244     fi
245    
246     # compile utilities
247     if [ -n "${BINPROGS}" ] ; then
248     einfo "make binprogs"
249     emake ${BINPROGS}
250     fi
251     if [ -n "${SBINPROGS}" ] ; then
252     einfo "make sbinprogs"
253     emake ${SBINPROGS}
254     fi
255    
256     if [ -n "${KRBPLUGIN}" ] ; then
257     einfo "make krbplugin"
258     emake ${KRBPLUGIN}${PLUGINEXT}
259     fi
260    
261     if use client && use kernel_linux; then
262     einfo "make {,u}mount.cifs"
263     emake bin/{,u}mount.cifs
264     fi
265     }
266    
267     src_install() {
268     # install libs
269     if use addns ; then
270     einfo "install addns library"
271     emake installlibaddns DESTDIR="${D}"
272     fi
273     if use netapi ; then
274     einfo "install netapi library"
275     emake installlibnetapi DESTDIR="${D}"
276     fi
277     if use smbclient ; then
278     einfo "install smbclient library"
279     emake installlibsmbclient DESTDIR="${D}"
280     fi
281     if use smbsharemodes ; then
282     einfo "install smbsharemodes library"
283     emake installlibsmbsharemodes DESTDIR="${D}"
284     fi
285    
286     # install modules
287     emake installmodules DESTDIR="${D}"
288    
289     if use pam ; then
290     einfo "install pam modules"
291     emake installpammodules DESTDIR="${D}"
292    
293     if use winbind ; then
294     newpamd "${CONFDIR}/system-auth-winbind.pam" system-auth-winbind
295     doman ../docs/manpages/pam_winbind.8
296     # bug #376853
297     insinto /etc/security
298     doins ../examples/pam_winbind/pam_winbind.conf || die
299     fi
300    
301     newpamd "${CONFDIR}/samba.pam" samba
302     dodoc pam_smbpass/README
303     fi
304    
305     # Nsswitch extensions. Make link for wins and winbind resolvers
306     if use winbind ; then
307     einfo "install libwbclient"
308     emake installlibwbclient DESTDIR="${D}"
309     dolib.so ../nsswitch/libnss_wins.so
310     dosym libnss_wins.so /usr/$(get_libdir)/libnss_wins.so.2
311     dolib.so ../nsswitch/libnss_winbind.so
312     dosym libnss_winbind.so /usr/$(get_libdir)/libnss_winbind.so.2
313     einfo "install libwbclient related manpages"
314     doman ../docs/manpages/idmap_rid.8
315     doman ../docs/manpages/idmap_hash.8
316     if use ldap ; then
317     doman ../docs/manpages/idmap_adex.8
318     doman ../docs/manpages/idmap_ldap.8
319     fi
320     if use ads ; then
321     doman ../docs/manpages/idmap_ad.8
322     fi
323     fi
324    
325     # install binaries
326     insinto /usr
327     for prog in ${SBINPROGS} ; do
328     dosbin ${prog}
329     doman ../docs/manpages/${prog/bin\/}*
330     done
331    
332     for prog in ${BINPROGS} ; do
333     dobin ${prog}
334     doman ../docs/manpages/${prog/bin\/}*
335     done
336    
337     # install krbplugin
338     if [ -n "${KRBPLUGIN}" ] ; then
339     if has_version app-crypt/mit-krb5 ; then
340     insinto /usr/$(get_libdir)/krb5/plugins/libkrb5
341     doins ${KRBPLUGIN}${PLUGINEXT}
342     elif has_version app-crypt/heimdal ; then
343     insinto /usr/$(get_libdir)/plugin/krb5
344     doins ${KRBPLUGIN}${PLUGINEXT}
345     fi
346     insinto /usr
347     for prog in ${KRBPLUGIN} ; do
348     doman ../docs/manpages/${prog/bin\/}*
349     done
350     fi
351    
352     # install server components
353     if use server ; then
354     doman ../docs/manpages/vfs* ../docs/manpages/samba.7
355    
356     diropts -m0700
357     keepdir /var/lib/samba/private
358    
359     diropts -m1777
360     keepdir /var/spool/samba
361    
362     diropts -m0755
363     keepdir /var/{cache,log}/samba
364     keepdir /var/lib/samba/{netlogon,profiles}
365     keepdir /var/lib/samba/printers/{W32X86,WIN40,W32ALPHA,W32MIPS,W32PPC,X64,IA64,COLOR}
366     keepdir /usr/$(get_libdir)/samba/{auth,pdb,rpc,idmap,nss_info,gpext}
367    
368     newconfd "${CONFDIR}/samba.confd" samba
369     newinitd "${CONFDIR}/samba.initd" samba
370    
371     insinto /etc/samba
372     doins "${CONFDIR}"/{smbusers,lmhosts}
373    
374     if use ldap ; then
375     insinto /etc/openldap/schema
376     doins ../examples/LDAP/samba.schema
377     fi
378    
379     if use swat ; then
380     insinto /etc/xinetd.d
381     newins "${CONFDIR}/swat.xinetd" swat
382     script/installswat.sh "${D}" "${ROOT}/usr/share/doc/${PF}/swat" "${S}"
383     fi
384    
385     dodoc ../MAINTAINERS ../README* ../Roadmap ../WHATSNEW.txt ../docs/THANKS
386     fi
387    
388     # install client files ({u,}mount.cifs into /)
389     if use client && use kernel_linux ; then
390     into /
391     dosbin bin/{u,}mount.cifs
392     doman ../docs/manpages/{u,}mount.cifs.8
393     fi
394    
395     # install the spooler to cups
396     if use cups ; then
397     dosym /usr/bin/smbspool $(cups-config --serverbin)/backend/smb
398     fi
399    
400     # install misc files
401     insinto /etc/samba
402     doins ../examples/smb.conf.default
403     doman ../docs/manpages/smb.conf.5
404    
405     insinto /usr/"$(get_libdir)"/samba
406     doins ../codepages/{valid.dat,upcase.dat,lowcase.dat}
407    
408     # install docs
409     if use doc ; then
410     dohtml -r ../docs/htmldocs/*
411     dodoc ../docs/*.pdf
412     fi
413    
414     # install examples
415     if use examples ; then
416     insinto /usr/share/doc/${PF}/examples
417    
418     if use smbclient ; then
419     doins -r ../examples/libsmbclient
420     fi
421    
422     if use winbind ; then
423     doins -r ../examples/pam_winbind ../examples/nss
424     fi
425    
426     if use server ; then
427     cd ../examples
428     doins -r auth autofs dce-dfs LDAP logon misc pdb \
429     perfcounter printer-accounting printing scripts tridge \
430     validchars VFS
431     fi
432     fi
433    
434     # Remove empty installation directories
435     rmdir --ignore-fail-on-non-empty \
436     "${D}/usr/$(get_libdir)/samba" \
437     "${D}/usr"/{sbin,bin} \
438     "${D}/usr/share"/{man,locale,} \
439     "${D}/var"/{run,lib/samba/private,lib/samba,lib,cache/samba,cache,} \
440     # || die "tried to remove non-empty dirs, this seems like a bug in the ebuild"
441     }
442    
443     pkg_postinst() {
444     elog "The default value of 'wide links' has been changed to 'no' in samba 3.5"
445     elog "to avoid an insecure default configuration"
446     elog "('wide links = yes' and 'unix extensions = yes'). For more details,"
447     elog "please see http://www.samba.org/samba/news/symlink_attack.html ."
448     elog ""
449     elog "An EXPERIMENTAL implementation of the SMB2 protocol has been added."
450     elog "SMB2 can be enabled by setting 'max protocol = smb2'. SMB2 is a new "
451     elog "implementation of the SMB protocol used by Windows Vista and higher"
452     elog ""
453     elog "For further information make sure to read the release notes at"
454     elog "http://samba.org/samba/history/${P}.html and "
455     elog "http://samba.org/samba/history/${PN}-3.5.0.html"
456     }

  ViewVC Help
Powered by ViewVC 1.1.20