comparison net-fs/samba/samba-3.2.7.ebuild @ 99:1a5038d883b1

samba 3.2.7 bump
author holger@hoho.dyndns.org
date Fri, 09 Jan 2009 21:50:57 +0100
parents net-fs/samba/samba-3.2.6.ebuild@f1ad2db6c510
children 8b40b47c23e5
comparison
equal deleted inserted replaced
98:d8386b80776e 99:1a5038d883b1
1 # Copyright 1999-2008 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3 # $Header: /var/cvsroot/gentoo-x86/net-fs/samba/samba-3.2.0_rc2.ebuild,v 1.1 2008/06/12 12:10:25 dev-zero Exp $
4
5 inherit eutils pam multilib versionator confutils
6
7 MY_P=${PN}-${PV/_/}
8
9 DESCRIPTION="A suite of SMB and CIFS client/server programs for UNIX"
10 HOMEPAGE="http://www.samba.org/"
11 SRC_URI="mirror://samba/${MY_P}.tar.gz"
12 LICENSE="GPL-3"
13 SLOT="0"
14 KEYWORDS="~amd64 ~x86"
15 IUSE_LINGUAS="linguas_ja linguas_pl"
16 IUSE="${IUSE_LINGUAS} acl ads async automount caps cups doc examples ipv6 kernel_linux ldap fam
17 pam quotas readline selinux swat syslog winbind"
18
19 RDEPEND="dev-libs/popt
20 dev-libs/iniparser
21 virtual/libiconv
22 acl? ( kernel_linux? ( sys-apps/acl ) )
23 cups? ( net-print/cups )
24 ipv6? ( sys-apps/xinetd )
25 ads? ( virtual/krb5 sys-fs/e2fsprogs )
26 ldap? ( net-nds/openldap )
27 pam? ( virtual/pam )
28 readline? ( sys-libs/readline )
29 selinux? ( sec-policy/selinux-samba )
30 swat? ( sys-apps/xinetd )
31 syslog? ( virtual/logger )
32 fam? ( virtual/fam )
33 caps? ( sys-libs/libcap )"
34 DEPEND="${RDEPEND}"
35
36 S="${WORKDIR}/${MY_P}"
37 CONFDIR="${FILESDIR}/config-3.2"
38 PRIVATE_DST=/var/lib/samba/private
39
40 # Tests are currently broken due to hardcoded paths (due to --with-fhs)
41 # The problem is that --without-fhs lets samba use lockdir (which can be changed in smb.conf)
42 # which is wrong as well.
43 RESTRICT="test"
44
45 pkg_setup() {
46 confutils_use_depend_all ads ldap
47 }
48
49 src_unpack() {
50 unpack ${A}
51 cd "${S}/source"
52
53 # Ok, agreed, this is ugly. But it avoids a patch we
54 # need for every samba version and we don't need autotools
55 sed -i \
56 -e 's|"lib32" ||' \
57 -e 's|if test -d "$i/$l" ;|if test -d "$i/$l" -o -L "$i/$l";|' \
58 configure || die "sed failed"
59
60 rm "${S}/docs/manpages"/{mount,umount}.cifs.8
61
62 sed -i \
63 -e 's|tdbsam|tdbsam:${PRIVATEDIR}/passdb.tdb|' \
64 "${S}/source/script/tests/selftest.sh" || die "sed failed"
65 }
66
67 src_compile() {
68 cd "${S}/source"
69
70 local myconf
71 local mylangs
72 local mymod_shared
73
74 mylangs="--with-manpages-langs=en"
75 use linguas_ja && mylangs="${mylangs},ja"
76 use linguas_pl && mylangs="${mylangs},pl"
77
78 use winbind && mymod_shared="--with-shared-modules=idmap_rid"
79 if use ldap ; then
80 myconf="${myconf} $(use_with ads)"
81 use winbind && mymod_shared="${mymod_shared},idmap_ad"
82 fi
83
84 [[ ${CHOST} == *-*bsd* ]] && myconf="${myconf} --disable-pie"
85 use hppa && myconf="${myconf} --disable-pie"
86
87 use caps && export ac_cv_header_sys_capability_h=yes || export ac_cv_header_sys_capability_h=no
88
89 # Otherwise we get the whole swat stuff installed
90 if ! use swat ; then
91 sed -i \
92 -e 's/^\(install:.*\)installswat \(.*\)/\1\2/' \
93 Makefile.in || die "sed failed"
94 fi
95
96 econf \
97 --with-fhs \
98 --sysconfdir=/etc/samba \
99 --localstatedir=/var \
100 --with-configdir=/etc/samba \
101 --with-libdir=/usr/$(get_libdir)/samba \
102 --with-pammodulesdir=$(getpam_mod_dir) \
103 --with-swatdir=/usr/share/doc/${PF}/swat \
104 --with-piddir=/var/run/samba \
105 --with-lockdir=/var/cache/samba \
106 --with-logfilebase=/var/log/samba \
107 --with-privatedir=${PRIVATE_DST} \
108 --with-libsmbclient \
109 --without-spinlocks \
110 --enable-socket-wrapper \
111 --enable-nss-wrapper \
112 --with-cifsmount=no \
113 $(use_with acl acl-support) \
114 $(use_with async aio-support) \
115 $(use_with automount) \
116 $(use_enable cups) \
117 $(use_enable fam) \
118 $(use_with ads krb5) \
119 $(use_with ads dnsupdate) \
120 $(use_with ldap) \
121 $(use_with pam) $(use_with pam pam_smbpass) \
122 $(use_with quotas) $(use_with quotas sys-quotas) \
123 $(use_with readline) \
124 $(use_with syslog) \
125 $(use_with winbind) \
126 ${myconf} ${mylangs} ${mymod_shared} || die "econf failed"
127
128 emake proto || die "emake proto failed"
129 emake everything || die "emake everything failed"
130
131 }
132
133 src_test() {
134 cd "${S}/source"
135 emake test || die "tests failed"
136 }
137
138 src_install() {
139 cd "${S}/source"
140
141 emake DESTDIR="${D}" install-everything || die "emake install-everything failed"
142
143 # Extra rpctorture progs
144 local extra_bins="rpctorture"
145 for i in ${extra_bins} ; do
146 [[ -x "${S}/bin/${i}" ]] && dobin "${S}/bin/${i}"
147 done
148
149 # remove .old stuff from /usr/bin:
150 rm -f "${D}"/usr/bin/*.old
151
152 # Removing executable bits from header-files
153 fperms 644 /usr/include/libsmbclient.h
154
155 # Nsswitch extensions. Make link for wins and winbind resolvers
156 if use winbind ; then
157 dolib.so nsswitch/libnss_wins.so
158 dosym libnss_wins.so /usr/$(get_libdir)/libnss_wins.so.2
159 dolib.so nsswitch/libnss_winbind.so
160 dosym libnss_winbind.so /usr/$(get_libdir)/libnss_winbind.so.2
161 fi
162
163 # bug #46389: samba doesn't create symlink anymore
164 # beaviour seems to be changed in 3.0.6, see bug #61046
165 dosym samba/libsmbclient.so /usr/$(get_libdir)/libsmbclient.so
166 dosym samba/libsmbclient.so.0 /usr/$(get_libdir)/libsmbclient.so.0
167 dosym samba/libtalloc.so /usr/$(get_libdir)/libtalloc.so
168 dosym samba/libtalloc.so.1 /usr/$(get_libdir)/libtalloc.so.1
169 dosym samba/libtdb.so /usr/$(get_libdir)/libtdb.so
170 dosym samba/libtdb.so.1 /usr/$(get_libdir)/libtdb.so.1
171
172 # make the smb backend symlink for cups printing support (bug #133133)
173 if use cups ; then
174 dodir $(cups-config --serverbin)/backend
175 dosym /usr/bin/smbspool $(cups-config --serverbin)/backend/smb
176 fi
177
178 cd "${S}/source"
179
180 # General config files
181 insinto /etc/samba
182 doins "${CONFDIR}"/{smbusers,lmhosts}
183 newins "${CONFDIR}/smb.conf.example-samba3" smb.conf.example
184
185 newpamd "${CONFDIR}/samba.pam" samba
186 use winbind && dopamd "${CONFDIR}/system-auth-winbind"
187 if use swat ; then
188 insinto /etc/xinetd.d
189 newins "${CONFDIR}/swat.xinetd" swat
190 else
191 rm -f "${D}/usr/sbin/swat"
192 rm -f "${D}/usr/share/man/man8/swat.8"
193 fi
194
195 newinitd "${FILESDIR}/samba-init" samba
196 newconfd "${FILESDIR}/samba-conf" samba
197
198 if use ldap ; then
199 insinto /etc/openldap/schema
200 doins "${S}/examples/LDAP/samba.schema"
201 fi
202
203 if use ipv6 ; then
204 insinto /etc/xinetd.d
205 newins "${FILESDIR}/samba-xinetd" smb
206 fi
207
208 # dirs
209 diropts -m0700 ; keepdir "${PRIVATE_DST}"
210 diropts -m1777 ; keepdir /var/spool/samba
211
212 diropts -m0755
213 keepdir /var/{log,run,cache}/samba
214 keepdir /var/lib/samba/{netlogon,profiles}
215 keepdir /var/lib/samba/printers/{W32X86,WIN40,W32ALPHA,W32MIPS,W32PPC,X64,IA64,COLOR}
216 keepdir /usr/$(get_libdir)/samba/{rpc,idmap,auth}
217
218 # docs
219 dodoc "${FILESDIR}/README.gentoo"
220 dodoc "${S}"/{MAINTAINERS,README,Roadmap,WHATSNEW.txt}
221 dodoc "${CONFDIR}/nsswitch.conf-wins"
222 use winbind && dodoc "${CONFDIR}/nsswitch.conf-winbind"
223
224 if use examples ; then
225 insinto /usr/share/doc/${PF}
226 doins -r "${S}/examples/"
227 find "${D}/usr/share/doc/${PF}" -type d -print0 | xargs -0 chmod 755
228 find "${D}/usr/share/doc/${PF}/examples" ! -type d -print0 | xargs -0 chmod 644
229 fi
230
231 if ! use doc ; then
232 if ! use swat ; then
233 rm -rf "${D}/usr/share/doc/${PF}/swat"
234 else
235 rm -rf "${D}/usr/share/doc/${PF}/swat/help"/{guide,howto,devel}
236 rm -rf "${D}/usr/share/doc/${PF}/swat/using_samba"
237 fi
238 fi
239
240 }
241
242 pkg_preinst() {
243 local PRIVATE_SRC=/etc/samba/private
244 if [[ ! -r "${ROOT}/${PRIVATE_DST}/secrets.tdb" \
245 && -r "${ROOT}/${PRIVATE_SRC}/secrets.tdb" ]] ; then
246 ebegin "Copying ${ROOT}/${PRIVATE_SRC}/* to ${ROOT}/${PRIVATE_DST}/"
247 mkdir -p "${D}/${PRIVATE_DST}"
248 cp -pPRf "${ROOT}/${PRIVATE_SRC}"/* "${D}/${PRIVATE_DST}/"
249 eend $?
250 fi
251
252 if [[ ! -f "${ROOT}/etc/samba/smb.conf" ]] ; then
253 touch "${D}/etc/samba/smb.conf"
254 fi
255 }
256
257 pkg_postinst() {
258 if use swat ; then
259 einfo "swat must be enabled by xinetd:"
260 einfo " change the /etc/xinetd.d/swat configuration"
261 fi
262
263 if use ipv6 ; then
264 einfo "ipv6 support must be enabled by xinetd:"
265 einfo " change the /etc/xinetd.d/smb configuration"
266 fi
267
268 elog "It is possible to start/stop daemons separately:"
269 elog " Create a symlink from /etc/init.d/samba.{smbd,nmbd,winbind} to"
270 elog " /etc/init.d/samba. Calling /etc/init.d/samba directly will start"
271 elog " the daemons configured in /etc/conf.d/samba"
272
273 elog "The mount/umount.cifs helper applications are not included anymore."
274 elog "Please install net-fs/mount-cifs instead."
275
276 ewarn "If you're upgrading from 3.0.24 or earlier, please make sure to"
277 ewarn "restart your clients to clear any cached information about the server."
278 ewarn "Otherwise they might not be able to connect to the volumes."
279 }