f587232a0cdb748cae8b9ac0baa2424a36de0495
[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
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 make showlayout
125 make proto
126 make %{?_smp_mflags} all nsswitch/libnss_wins.so debug2html 
127
128
129 %install
130 rm -rf $RPM_BUILD_ROOT
131
132 mkdir -p $RPM_BUILD_ROOT/sbin
133 mkdir -p $RPM_BUILD_ROOT/usr/{sbin,bin}
134 mkdir -p $RPM_BUILD_ROOT/%{initdir}
135 mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/{pam.d,logrotate.d}
136 mkdir -p $RPM_BUILD_ROOT/var/{log,spool,lib}/samba
137 mkdir -p $RPM_BUILD_ROOT/%{_datadir}/swat/using_samba
138 mkdir -p $RPM_BUILD_ROOT/%{_datadir}/samba/codepages 
139
140 cd source
141
142 make DESTDIR=$RPM_BUILD_ROOT \
143         install
144
145 cd ..
146
147 # Install other stuff
148 install -m644 %{SOURCE10} $RPM_BUILD_ROOT%{_sysconfdir}/samba/smb.conf
149 install -m644 %{SOURCE9} $RPM_BUILD_ROOT/etc/samba/smbusers
150 install -m755 %{SOURCE8} $RPM_BUILD_ROOT%{_bindir}
151 install -m644 %{SOURCE7} $RPM_BUILD_ROOT/etc/pam.d/samba
152 install -m644 %{SOURCE1} $RPM_BUILD_ROOT/etc/logrotate.d/samba
153 install -m755 source/script/mksmbpasswd.sh $RPM_BUILD_ROOT%{_bindir}
154
155 install -m755 %{SOURCE5} $RPM_BUILD_ROOT%{initdir}/smb
156 install -m755 %{SOURCE6} $RPM_BUILD_ROOT%{initdir}/winbind
157 ln -s ../..%{initdir}/smb  $RPM_BUILD_ROOT%{_sbindir}/samba
158 ln -s ../..%{initdir}/winbind  $RPM_BUILD_ROOT%{_sbindir}/winbind
159
160 ln -s ../usr/bin/smbmount $RPM_BUILD_ROOT/sbin/mount.smb
161 ## Samba's Makefile is breaking this currently.  Remove it and set our own
162 /bin/rm -f $RPM_BUILD_ROOT/sbin/mount.smbfs
163 ln -s ../usr/bin/smbmount $RPM_BUILD_ROOT/sbin/mount.smbfs
164
165 echo 127.0.0.1 localhost > $RPM_BUILD_ROOT%{_sysconfdir}/samba/lmhosts
166
167
168 # pam_smbpass
169 mkdir -p $RPM_BUILD_ROOT/%{_lib}/security
170 mv source/bin/pam_smbpass.so $RPM_BUILD_ROOT/%{_lib}/security/pam_smbpass.so
171
172 # winbind
173 mkdir -p $RPM_BUILD_ROOT/%{_lib}/security
174 install -m 755 source/nsswitch/pam_winbind.so $RPM_BUILD_ROOT/%{_lib}/security/pam_winbind.so
175 install -m 755 source/nsswitch/libnss_winbind.so $RPM_BUILD_ROOT/%{_lib}/libnss_winbind.so
176 install -m 755 source/nsswitch/libnss_wins.so $RPM_BUILD_ROOT/%{_lib}/libnss_wins.so
177 ( cd $RPM_BUILD_ROOT/%{_lib}; 
178   ln -sf libnss_winbind.so  libnss_winbind.so.2;
179   ln -sf libnss_wins.so  libnss_wins.so.2 )
180
181 # libsmbclient
182
183 # make install puts libsmbclient.so in the wrong place on x86_64
184 rm -f $RPM_BUILD_ROOT/usr/lib || true
185 mkdir -p $RPM_BUILD_ROOT%{_libdir} $RPM_BUILD_ROOT%{_includedir}
186 install -m 755 source/bin/libsmbclient.so $RPM_BUILD_ROOT%{_libdir}/libsmbclient.so
187 install -m 755 source/bin/libsmbclient.a $RPM_BUILD_ROOT%{_libdir}/libsmbclient.a
188 install -m 644 source/include/libsmbclient.h $RPM_BUILD_ROOT%{_includedir}
189 rm -f $RPM_BUILD_ROOT%{_libdir}/samba/libsmbclient.*
190
191 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d
192 install -m644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d/swat
193
194 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig
195 install -m644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/samba
196
197 ##
198 ## Clean out man pages for tools not installed here
199 ##
200 rm -f $RPM_BUILD_ROOT/%{_mandir}/man1/editreg.1*
201 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/log2pcap.1*
202 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/smbsh.1*
203 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/smbget.1*
204 rm -f $RPM_BUILD_ROOT%{_mandir}/man5/smbgetrc.5*
205 rm -f $RPM_BUILD_ROOT/%{_mandir}/man8/mount.cifs.8*
206
207 %clean
208 rm -rf $RPM_BUILD_ROOT
209
210 %post
211 /sbin/chkconfig --add smb
212
213 %preun
214 if [ $1 = 0 ] ; then
215     /sbin/chkconfig --del smb
216     rm -rf /var/log/samba/* /var/cache/samba/*
217     /sbin/service smb stop >/dev/null 2>&1
218 fi
219 exit 0
220
221 %postun
222 if [ "$1" -ge "1" ]; then
223         %{initdir}/smb condrestart >/dev/null 2>&1
224 fi      
225
226
227 %post swat
228 # Add swat entry to /etc/services if not already there.
229 if [ ! "`grep ^\s**swat /etc/services`" ]; then
230         echo 'swat        901/tcp     # Add swat service used via inetd' >> /etc/services
231 fi
232
233 %post common
234 /sbin/chkconfig --add winbind
235 /sbin/ldconfig
236
237 %preun common
238 if [ $1 = 0 ] ; then
239     /sbin/chkconfig --del winbind
240     /sbin/service winbind stop >/dev/null 2>&1
241 fi
242 exit 0
243
244 %postun common -p /sbin/ldconfig
245
246 %triggerpostun -- samba < 1.9.18p7
247 if [ $1 != 0 ]; then
248     /sbin/chkconfig --add smb
249 fi
250
251 %triggerpostun -- samba < 2.0.5a-3
252 if [ $1 != 0 ]; then
253     [ ! -d /var/lock/samba ] && mkdir -m 0755 /var/lock/samba
254     [ ! -d /var/spool/samba ] && mkdir -m 1777 /var/spool/samba
255     chmod 644 /etc/services
256     [ -f /etc/inetd.conf ] && chmod 644 /etc/inetd.conf
257 fi
258
259 %files
260 %defattr(-,root,root)
261 %doc README COPYING Manifest 
262 %doc WHATSNEW.txt Roadmap
263 %doc docs
264 %doc examples/autofs examples/LDAP examples/libsmbclient examples/misc examples/printer-accounting
265 %doc examples/printing
266
267 %attr(755,root,root) /%{_lib}/security/pam_smbpass.so
268 %{_sbindir}/smbd
269 %{_sbindir}/nmbd
270 # %{_bindir}/make_unicodemap
271 %{_bindir}/mksmbpasswd.sh
272 %{_bindir}/smbcontrol
273 %{_bindir}/smbstatus
274 # %{_bindir}/smbadduser
275 %{_bindir}/tdbbackup
276 %{_bindir}/tdbtool
277 %config(noreplace) %{_sysconfdir}/sysconfig/samba
278 %config(noreplace) %{_sysconfdir}/samba/smbusers
279 %attr(755,root,root) %config %{initdir}/smb
280 %config(noreplace) %{_sysconfdir}/logrotate.d/samba
281 %config(noreplace) %{_sysconfdir}/pam.d/samba
282 # %{_mandir}/man1/make_unicodemap.1*
283 %{_mandir}/man1/smbcontrol.1*
284 %{_mandir}/man1/smbstatus.1*
285 %{_mandir}/man5/smbpasswd.5*
286 %{_mandir}/man7/samba.7*
287 %{_mandir}/man8/nmbd.8*
288 %{_mandir}/man8/pdbedit.8*
289 %{_mandir}/man8/smbd.8*
290 %{_mandir}/man8/pam_winbind.8*
291 %{_mandir}/man8/tdbbackup.8*
292 #%{_mandir}/ja/man1/smbstatus.1*
293 #%{_mandir}/ja/man5/smbpasswd.5*
294 #%{_mandir}/ja/man7/samba.7*
295 #%{_mandir}/ja/man8/smbd.8*
296 #%{_mandir}/ja/man8/nmbd.8*
297 %{_libdir}/samba/vfs
298
299 %attr(0700,root,root) %dir /var/log/samba
300 %attr(1777,root,root) %dir /var/spool/samba
301
302 %files swat
303 %defattr(-,root,root)
304 %config(noreplace) %{_sysconfdir}/xinetd.d/swat
305 %{_datadir}/swat
306 %{_sbindir}/swat
307 %{_mandir}/man8/swat.8*
308 #%{_mandir}/ja/man8/swat.8*
309 %attr(755,root,root) %{_libdir}/samba/*.msg
310
311 %files client
312 %defattr(-,root,root)
313 /sbin/mount.smb
314 /sbin/mount.smbfs
315 %{_libdir}/samba/lowcase.dat
316 %{_libdir}/samba/upcase.dat
317 %{_libdir}/samba/valid.dat
318 %{_bindir}/rpcclient
319 %{_bindir}/smbcacls
320 %{_bindir}/smbmount
321 %{_bindir}/smbmnt
322 %{_bindir}/smbumount
323 %{_bindir}/findsmb
324 %{_bindir}/tdbdump
325 %{_mandir}/man8/tdbdump.8*
326 %{_mandir}/man8/smbmnt.8*
327 %{_mandir}/man8/smbmount.8*
328 %{_mandir}/man8/smbumount.8*
329 %{_mandir}/man8/smbspool.8*
330 %{_bindir}/nmblookup
331 %{_bindir}/smbclient
332 %{_bindir}/smbprint
333 %{_bindir}/smbspool
334 %{_bindir}/smbtar
335 %{_bindir}/net
336 %{_bindir}/smbtree
337 %{_mandir}/man1/findsmb.1*
338 %{_mandir}/man1/nmblookup.1*
339 %{_mandir}/man1/rpcclient.1*
340 %{_mandir}/man1/smbcacls.1*
341 %{_mandir}/man1/smbclient.1*
342 %{_mandir}/man1/smbtar.1*
343 %{_mandir}/man1/smbtree.1*
344 %{_mandir}/man8/net.8*
345 #%{_mandir}/ja/man1/smbtar.1*
346 #%{_mandir}/ja/man1/smbclient.1*
347 #%{_mandir}/ja/man1/nmblookup.1*
348
349 %files common
350 %defattr(-,root,root)
351 /%{_lib}/libnss_wins.so*
352 /%{_lib}/libnss_winbind.so*
353 /%{_lib}/security/pam_winbind.so
354 %{_libdir}/libsmbclient.a
355 %{_libdir}/libsmbclient.so
356 %{_libdir}/samba/charset/CP*.so
357 %{_includedir}/libsmbclient.h
358 %{_bindir}/testparm
359 %{_bindir}/testprns
360 %{_bindir}/smbpasswd
361 # %{_bindir}/make_printerdef
362 %{_bindir}/wbinfo
363 # %{_bindir}/editreg
364 %{_bindir}/ntlm_auth
365 %{_bindir}/pdbedit
366 %{_bindir}/profiles
367 %{_bindir}/smbcquotas
368 #%{_bindir}/vfstest
369 %{_sbindir}/winbindd
370 %config(noreplace) %{_sysconfdir}/samba/smb.conf
371 %config(noreplace) %{_sysconfdir}/samba/lmhosts
372 %dir %{_datadir}/samba
373 %dir %{_datadir}/samba/codepages
374 %dir %{_sysconfdir}/samba
375 %{initdir}/winbind
376 # %{_datadir}/samba/codepages/*
377 # %{_mandir}/man1/make_smbcodepage.1*
378 %{_mandir}/man1/ntlm_auth.1*
379 %{_mandir}/man1/profiles.1*
380 %{_mandir}/man1/smbcquotas.1*
381 %{_mandir}/man1/testparm.1*
382 %{_mandir}/man1/testprns.1*
383 %{_mandir}/man5/smb.conf.5*
384 %{_mandir}/man5/lmhosts.5*
385 %{_mandir}/man8/smbpasswd.8*
386 %{_mandir}/man1/wbinfo.1*
387 %{_mandir}/man8/winbindd.8*
388 %{_mandir}/man1/vfstest.1*
389
390 # #%lang(ja) %{_mandir}/ja/man1/make_smbcodepage.1*
391 #%lang(ja) %{_mandir}/ja/man1/testparm.1*
392 #%lang(ja) %{_mandir}/ja/man1/testprns.1*
393 #%lang(ja) %{_mandir}/ja/man5/smb.conf.5*
394 #%lang(ja) %{_mandir}/ja/man5/lmhosts.5*
395 #%lang(ja) %{_mandir}/ja/man8/smbpasswd.8*
396
397 %changelog
398 * Fri Jan 16 2004 Gerald (Jerry) Carter <jerry@samba,org>
399 - Removed ChangeLog entries since they are kept in CVS
400
401
402