r5265: ensure that the Fedora RPMS build with cups support
[ira/wip.git] / packaging / Fedora / samba.spec.tmpl
1 %define initdir %{_sysconfdir}/rc.d/init.d
2 %define auth %(test -f /etc/pam.d/system-auth && echo /etc/pam.d/system-auth || echo)
3
4 Summary: The Samba SMB server.
5 Name: samba
6 Version: PVERSION
7 Release: PRELEASE
8 License: GNU GPL Version 2
9 Group: System Environment/Daemons
10 URL: http://www.samba.org/
11
12 Source: ftp://www.samba.org/pub/samba/%{name}-%{version}.tar.bz2
13
14 # Red Hat specific replacement-files
15 Source1:  samba.log
16 Source2:  samba.xinetd
17 Source4:  samba.sysconfig
18 Source5:  smb.init
19 Source6:  winbind.init
20 Source7:  samba.pamd
21 Source8:  smbprint
22 Source9:  smbusers
23 Source10: smb.conf
24
25 # Don't depend on Net::LDAP
26 Source999: filter-requires-samba.sh
27
28 # generic patches
29
30 Requires: pam >= 0.64 %{auth} samba-common = %{version} 
31 Requires: logrotate >= 3.4 initscripts >= 5.54-1 
32 BuildRoot: %{_tmppath}/%{name}-%{version}-root
33 Prereq: /sbin/chkconfig /bin/mktemp /usr/bin/killall
34 Prereq: fileutils sed /etc/init.d 
35 BuildRequires: pam-devel, readline-devel, ncurses-devel, fileutils, libacl-devel, openldap-devel, krb5-devel, cups-devel
36
37
38 # Working around perl dependency problem from docs
39 %define __perl_requires %{SOURCE999}
40
41 %description
42 Samba is the protocol by which a lot of PC-related machines share
43 files, printers, and other information (such as lists of available
44 files and printers). The Windows NT, OS/2, and Linux operating systems
45 support this natively, and add-on packages can enable the same thing
46 for DOS, Windows, VMS, UNIX of all kinds, MVS, and more. This package
47 provides an SMB server that can be used to provide network services to
48 SMB (sometimes called "Lan Manager") clients. Samba uses NetBIOS over
49 TCP/IP (NetBT) protocols and does NOT need the NetBEUI (Microsoft Raw
50 NetBIOS frame) protocol.
51
52 %package client
53 Summary: Samba (SMB) client programs.
54 Group: Applications/System
55 Requires: samba-common = %{version}
56 Obsoletes: smbfs
57
58 %description client
59 The samba-client package provides some SMB clients to compliment the
60 built-in SMB filesystem in Linux. These clients allow access of SMB
61 shares and printing to SMB printers.
62
63 %package common
64 Summary: Files used by both Samba servers and clients.
65 Group: Applications/System
66
67 %description common
68 Samba-common provides files necessary for both the server and client
69 packages of Samba.
70
71 %package swat
72 Summary: The Samba SMB server configuration program.
73 Group: Applications/System
74 Requires: samba = %{version} xinetd
75
76 %description swat
77 The samba-swat package includes the new SWAT (Samba Web Administration
78 Tool), for remotely managing Samba's smb.conf file using your favorite
79 Web browser.
80
81 %prep
82 %setup -q
83
84 # copy Red Hat specific scripts
85 cp %{SOURCE5} packaging/Fedora/
86 cp %{SOURCE6} packaging/Fedora/
87 cp %{SOURCE7} packaging/Fedora/
88 cp %{SOURCE8} packaging/Fedora/winbind.init
89
90 %build
91
92 cd source
93 %ifarch i386 sparc
94 RPM_OPT_FLAGS="$RPM_OPT_FLAGS -D_FILE_OFFSET_BITS=64"
95 %endif
96 %ifarch ia64
97 libtoolize --copy --force     # get it to recognize IA-64
98 autoheader                                               
99 autoconf
100 EXTRA="-D_LARGEFILE64_SOURCE"
101 %endif
102
103 ## run autogen if missing the configure script
104 if [ ! -f "configure" ]; then
105         ./autogen.sh
106 fi
107
108 CFLAGS="$RPM_OPT_FLAGS" ./configure \
109         --prefix=%{_prefix} \
110         --localstatedir=/var \
111         --sysconfdir=/etc \
112         --with-privatedir=%{_sysconfdir}/samba \
113         --with-fhs \
114         --with-quotas \
115         --with-smbmount \
116         --with-pam \
117         --with-pam_smbpass \
118         --with-syslog \
119         --with-utmp \
120         --with-sambabook=%{_datadir}/swat/using_samba \
121         --with-swatdir=%{_datadir}/swat \
122         --with-libsmbclient \
123         --with-acl-support \
124         --enable-cups=yes
125 make showlayout
126 make proto
127 make %{?_smp_mflags} all nsswitch/libnss_wins.so debug2html 
128
129
130 %install
131 rm -rf $RPM_BUILD_ROOT
132
133 mkdir -p $RPM_BUILD_ROOT/sbin
134 mkdir -p $RPM_BUILD_ROOT/usr/{sbin,bin}
135 mkdir -p $RPM_BUILD_ROOT/%{initdir}
136 mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/{pam.d,logrotate.d}
137 mkdir -p $RPM_BUILD_ROOT/var/{log,spool,lib}/samba
138 mkdir -p $RPM_BUILD_ROOT/%{_datadir}/swat/using_samba
139 mkdir -p $RPM_BUILD_ROOT/%{_datadir}/samba/codepages 
140
141 cd source
142
143 make DESTDIR=$RPM_BUILD_ROOT \
144         install
145
146 cd ..
147
148 # Install other stuff
149 install -m644 %{SOURCE10} $RPM_BUILD_ROOT%{_sysconfdir}/samba/smb.conf
150 install -m644 %{SOURCE9} $RPM_BUILD_ROOT/etc/samba/smbusers
151 install -m755 %{SOURCE8} $RPM_BUILD_ROOT%{_bindir}
152 install -m644 %{SOURCE7} $RPM_BUILD_ROOT/etc/pam.d/samba
153 install -m644 %{SOURCE1} $RPM_BUILD_ROOT/etc/logrotate.d/samba
154 install -m755 source/script/mksmbpasswd.sh $RPM_BUILD_ROOT%{_bindir}
155
156 install -m755 %{SOURCE5} $RPM_BUILD_ROOT%{initdir}/smb
157 install -m755 %{SOURCE6} $RPM_BUILD_ROOT%{initdir}/winbind
158 ln -s ../..%{initdir}/smb  $RPM_BUILD_ROOT%{_sbindir}/samba
159 ln -s ../..%{initdir}/winbind  $RPM_BUILD_ROOT%{_sbindir}/winbind
160
161 ln -s ../usr/bin/smbmount $RPM_BUILD_ROOT/sbin/mount.smb
162 ## Samba's Makefile is breaking this currently.  Remove it and set our own
163 /bin/rm -f $RPM_BUILD_ROOT/sbin/mount.smbfs
164 ln -s ../usr/bin/smbmount $RPM_BUILD_ROOT/sbin/mount.smbfs
165
166 echo 127.0.0.1 localhost > $RPM_BUILD_ROOT%{_sysconfdir}/samba/lmhosts
167
168
169 # pam_smbpass
170 mkdir -p $RPM_BUILD_ROOT/%{_lib}/security
171 mv source/bin/pam_smbpass.so $RPM_BUILD_ROOT/%{_lib}/security/pam_smbpass.so
172
173 # winbind
174 mkdir -p $RPM_BUILD_ROOT/%{_lib}/security
175 install -m 755 source/nsswitch/pam_winbind.so $RPM_BUILD_ROOT/%{_lib}/security/pam_winbind.so
176 install -m 755 source/nsswitch/libnss_winbind.so $RPM_BUILD_ROOT/%{_lib}/libnss_winbind.so
177 install -m 755 source/nsswitch/libnss_wins.so $RPM_BUILD_ROOT/%{_lib}/libnss_wins.so
178 ( cd $RPM_BUILD_ROOT/%{_lib}; 
179   ln -sf libnss_winbind.so  libnss_winbind.so.2;
180   ln -sf libnss_wins.so  libnss_wins.so.2 )
181
182 # libsmbclient
183
184 # make install puts libsmbclient.so in the wrong place on x86_64
185 rm -f $RPM_BUILD_ROOT/usr/lib || true
186 mkdir -p $RPM_BUILD_ROOT%{_libdir} $RPM_BUILD_ROOT%{_includedir}
187 install -m 755 source/bin/libsmbclient.so $RPM_BUILD_ROOT%{_libdir}/libsmbclient.so
188 install -m 755 source/bin/libsmbclient.a $RPM_BUILD_ROOT%{_libdir}/libsmbclient.a
189 install -m 644 source/include/libsmbclient.h $RPM_BUILD_ROOT%{_includedir}
190 rm -f $RPM_BUILD_ROOT%{_libdir}/samba/libsmbclient.*
191
192 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d
193 install -m644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d/swat
194
195 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig
196 install -m644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/samba
197
198 ##
199 ## Clean out man pages for tools not installed here
200 ##
201 rm -f $RPM_BUILD_ROOT/%{_mandir}/man1/editreg.1*
202 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/log2pcap.1*
203 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/smbsh.1*
204 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/smbget.1*
205 rm -f $RPM_BUILD_ROOT%{_mandir}/man5/smbgetrc.5*
206 rm -f $RPM_BUILD_ROOT/%{_mandir}/man8/mount.cifs.8*
207
208 %clean
209 rm -rf $RPM_BUILD_ROOT
210
211 %post
212 /sbin/chkconfig --add smb
213
214 %preun
215 if [ $1 = 0 ] ; then
216     /sbin/chkconfig --del smb
217     rm -rf /var/log/samba/* /var/cache/samba/*
218     /sbin/service smb stop >/dev/null 2>&1
219 fi
220 exit 0
221
222 %postun
223 if [ "$1" -ge "1" ]; then
224         %{initdir}/smb condrestart >/dev/null 2>&1
225 fi      
226
227
228 %post swat
229 # Add swat entry to /etc/services if not already there.
230 if [ ! "`grep ^\s**swat /etc/services`" ]; then
231         echo 'swat        901/tcp     # Add swat service used via inetd' >> /etc/services
232 fi
233
234 %post common
235 /sbin/chkconfig --add winbind
236 /sbin/ldconfig
237
238 %preun common
239 if [ $1 = 0 ] ; then
240     /sbin/chkconfig --del winbind
241     /sbin/service winbind stop >/dev/null 2>&1
242 fi
243 exit 0
244
245 %postun common -p /sbin/ldconfig
246
247 %triggerpostun -- samba < 1.9.18p7
248 if [ $1 != 0 ]; then
249     /sbin/chkconfig --add smb
250 fi
251
252 %triggerpostun -- samba < 2.0.5a-3
253 if [ $1 != 0 ]; then
254     [ ! -d /var/lock/samba ] && mkdir -m 0755 /var/lock/samba
255     [ ! -d /var/spool/samba ] && mkdir -m 1777 /var/spool/samba
256     chmod 644 /etc/services
257     [ -f /etc/inetd.conf ] && chmod 644 /etc/inetd.conf
258 fi
259
260 %files
261 %defattr(-,root,root)
262 %doc README COPYING Manifest 
263 %doc WHATSNEW.txt Roadmap
264 %doc docs
265 %doc examples/autofs examples/LDAP examples/libsmbclient examples/misc examples/printer-accounting
266 %doc examples/printing
267
268 %attr(755,root,root) /%{_lib}/security/pam_smbpass.so
269 %{_sbindir}/smbd
270 %{_sbindir}/nmbd
271 # %{_bindir}/make_unicodemap
272 %{_bindir}/mksmbpasswd.sh
273 %{_bindir}/smbcontrol
274 %{_bindir}/smbstatus
275 # %{_bindir}/smbadduser
276 %{_bindir}/tdbbackup
277 %{_bindir}/tdbtool
278 %config(noreplace) %{_sysconfdir}/sysconfig/samba
279 %config(noreplace) %{_sysconfdir}/samba/smbusers
280 %attr(755,root,root) %config %{initdir}/smb
281 %config(noreplace) %{_sysconfdir}/logrotate.d/samba
282 %config(noreplace) %{_sysconfdir}/pam.d/samba
283 # %{_mandir}/man1/make_unicodemap.1*
284 %{_mandir}/man1/smbcontrol.1*
285 %{_mandir}/man1/smbstatus.1*
286 %{_mandir}/man5/smbpasswd.5*
287 %{_mandir}/man7/samba.7*
288 %{_mandir}/man8/nmbd.8*
289 %{_mandir}/man8/pdbedit.8*
290 %{_mandir}/man8/smbd.8*
291 %{_mandir}/man8/pam_winbind.8*
292 %{_mandir}/man8/tdbbackup.8*
293 #%{_mandir}/ja/man1/smbstatus.1*
294 #%{_mandir}/ja/man5/smbpasswd.5*
295 #%{_mandir}/ja/man7/samba.7*
296 #%{_mandir}/ja/man8/smbd.8*
297 #%{_mandir}/ja/man8/nmbd.8*
298 %{_libdir}/samba/vfs
299
300 %attr(0700,root,root) %dir /var/log/samba
301 %attr(1777,root,root) %dir /var/spool/samba
302
303 %files swat
304 %defattr(-,root,root)
305 %config(noreplace) %{_sysconfdir}/xinetd.d/swat
306 %{_datadir}/swat
307 %{_sbindir}/swat
308 %{_mandir}/man8/swat.8*
309 #%{_mandir}/ja/man8/swat.8*
310 %attr(755,root,root) %{_libdir}/samba/*.msg
311
312 %files client
313 %defattr(-,root,root)
314 /sbin/mount.smb
315 /sbin/mount.smbfs
316 %{_libdir}/samba/lowcase.dat
317 %{_libdir}/samba/upcase.dat
318 %{_libdir}/samba/valid.dat
319 %{_bindir}/rpcclient
320 %{_bindir}/smbcacls
321 %{_bindir}/smbmount
322 %{_bindir}/smbmnt
323 %{_bindir}/smbumount
324 %{_bindir}/findsmb
325 %{_bindir}/tdbdump
326 %{_mandir}/man8/tdbdump.8*
327 %{_mandir}/man8/smbmnt.8*
328 %{_mandir}/man8/smbmount.8*
329 %{_mandir}/man8/smbumount.8*
330 %{_mandir}/man8/smbspool.8*
331 %{_bindir}/nmblookup
332 %{_bindir}/smbclient
333 %{_bindir}/smbprint
334 %{_bindir}/smbspool
335 %{_bindir}/smbtar
336 %{_bindir}/net
337 %{_bindir}/smbtree
338 %{_mandir}/man1/findsmb.1*
339 %{_mandir}/man1/nmblookup.1*
340 %{_mandir}/man1/rpcclient.1*
341 %{_mandir}/man1/smbcacls.1*
342 %{_mandir}/man1/smbclient.1*
343 %{_mandir}/man1/smbtar.1*
344 %{_mandir}/man1/smbtree.1*
345 %{_mandir}/man8/net.8*
346 #%{_mandir}/ja/man1/smbtar.1*
347 #%{_mandir}/ja/man1/smbclient.1*
348 #%{_mandir}/ja/man1/nmblookup.1*
349
350 %files common
351 %defattr(-,root,root)
352 /%{_lib}/libnss_wins.so*
353 /%{_lib}/libnss_winbind.so*
354 /%{_lib}/security/pam_winbind.so
355 %{_libdir}/libsmbclient.a
356 %{_libdir}/libsmbclient.so
357 %{_libdir}/samba/charset/CP*.so
358 %{_includedir}/libsmbclient.h
359 %{_bindir}/testparm
360 %{_bindir}/testprns
361 %{_bindir}/smbpasswd
362 # %{_bindir}/make_printerdef
363 %{_bindir}/wbinfo
364 # %{_bindir}/editreg
365 %{_bindir}/ntlm_auth
366 %{_bindir}/pdbedit
367 %{_bindir}/profiles
368 %{_bindir}/smbcquotas
369 #%{_bindir}/vfstest
370 %{_sbindir}/winbindd
371 %config(noreplace) %{_sysconfdir}/samba/smb.conf
372 %config(noreplace) %{_sysconfdir}/samba/lmhosts
373 %dir %{_datadir}/samba
374 %dir %{_datadir}/samba/codepages
375 %dir %{_sysconfdir}/samba
376 %{initdir}/winbind
377 # %{_datadir}/samba/codepages/*
378 # %{_mandir}/man1/make_smbcodepage.1*
379 %{_mandir}/man1/ntlm_auth.1*
380 %{_mandir}/man1/profiles.1*
381 %{_mandir}/man1/smbcquotas.1*
382 %{_mandir}/man1/testparm.1*
383 %{_mandir}/man1/testprns.1*
384 %{_mandir}/man5/smb.conf.5*
385 %{_mandir}/man5/lmhosts.5*
386 %{_mandir}/man8/smbpasswd.8*
387 %{_mandir}/man1/wbinfo.1*
388 %{_mandir}/man8/winbindd.8*
389 %{_mandir}/man1/vfstest.1*
390
391 # #%lang(ja) %{_mandir}/ja/man1/make_smbcodepage.1*
392 #%lang(ja) %{_mandir}/ja/man1/testparm.1*
393 #%lang(ja) %{_mandir}/ja/man1/testprns.1*
394 #%lang(ja) %{_mandir}/ja/man5/smb.conf.5*
395 #%lang(ja) %{_mandir}/ja/man5/lmhosts.5*
396 #%lang(ja) %{_mandir}/ja/man8/smbpasswd.8*
397
398 %changelog
399 * Fri Jan 16 2004 Gerald (Jerry) Carter <jerry@samba,org>
400 - Removed ChangeLog entries since they are kept in CVS
401
402
403