fixes for fedora packaging
[tprouty/samba.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 %{SOURCE8} $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 644 source/bin/libsmbclient.so $RPM_BUILD_ROOT%{_libdir}/libsmbclient.so
187 install -m 644 source/bin/libsmbclient.a $RPM_BUILD_ROOT%{_libdir}/libsmbclient.a
188 install -m 644 source/include/libsmbclient.h $RPM_BUILD_ROOT%{_includedir}
189
190 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d
191 install -m644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d/swat
192
193 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig
194 install -m644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/samba
195
196 ##
197 ## Clean out man pages for tools not installed here
198 ##
199 rm -f $RPM_BUILD_ROOT/%{_mandir}/man1/editreg.1*
200 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/log2pcap.1*
201 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/smbsh.1*
202 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/smbget.1*
203 rm -f $RPM_BUILD_ROOT/%{_mandir}/man8/mount.cifs.8*
204
205 %clean
206 rm -rf $RPM_BUILD_ROOT
207
208 %post
209 /sbin/chkconfig --add smb
210
211 %preun
212 if [ $1 = 0 ] ; then
213     /sbin/chkconfig --del smb
214     rm -rf /var/log/samba/* /var/cache/samba/*
215     /sbin/service smb stop >/dev/null 2>&1
216 fi
217 exit 0
218
219 %postun
220 if [ "$1" -ge "1" ]; then
221         %{initdir}/smb condrestart >/dev/null 2>&1
222 fi      
223
224
225 %post swat
226 # Add swat entry to /etc/services if not already there.
227 if [ ! "`grep ^\s**swat /etc/services`" ]; then
228         echo 'swat        901/tcp     # Add swat service used via inetd' >> /etc/services
229 fi
230
231 %post common
232 /sbin/chkconfig --add winbind
233 /sbin/ldconfig
234
235 %preun common
236 if [ $1 = 0 ] ; then
237     /sbin/chkconfig --del winbind
238     /sbin/service winbind stop >/dev/null 2>&1
239 fi
240 exit 0
241
242 %postun common -p /sbin/ldconfig
243
244 %triggerpostun -- samba < 1.9.18p7
245 if [ $1 != 0 ]; then
246     /sbin/chkconfig --add smb
247 fi
248
249 %triggerpostun -- samba < 2.0.5a-3
250 if [ $1 != 0 ]; then
251     [ ! -d /var/lock/samba ] && mkdir -m 0755 /var/lock/samba
252     [ ! -d /var/spool/samba ] && mkdir -m 1777 /var/spool/samba
253     chmod 644 /etc/services
254     [ -f /etc/inetd.conf ] && chmod 644 /etc/inetd.conf
255 fi
256
257 %files
258 %defattr(-,root,root)
259 %doc README COPYING Manifest 
260 %doc WHATSNEW.txt Roadmap
261 %doc docs
262 %doc examples/autofs examples/LDAP examples/libsmbclient examples/misc examples/printer-accounting
263 %doc examples/printing
264
265 %attr(755,root,root) /%{_lib}/security/pam_smbpass.so
266 %{_sbindir}/smbd
267 %{_sbindir}/nmbd
268 # %{_bindir}/make_unicodemap
269 %{_bindir}/mksmbpasswd.sh
270 %{_bindir}/smbcontrol
271 %{_bindir}/smbstatus
272 # %{_bindir}/smbadduser
273 %{_bindir}/tdbbackup
274 %config(noreplace) %{_sysconfdir}/sysconfig/samba
275 %config(noreplace) %{_sysconfdir}/samba/smbusers
276 %attr(755,root,root) %config %{initdir}/smb
277 %config(noreplace) %{_sysconfdir}/logrotate.d/samba
278 %config(noreplace) %{_sysconfdir}/pam.d/samba
279 # %{_mandir}/man1/make_unicodemap.1*
280 %{_mandir}/man1/smbcontrol.1*
281 %{_mandir}/man1/smbstatus.1*
282 %{_mandir}/man5/smbpasswd.5*
283 %{_mandir}/man7/samba.7*
284 %{_mandir}/man8/nmbd.8*
285 %{_mandir}/man8/pdbedit.8*
286 %{_mandir}/man8/smbd.8*
287 %{_mandir}/man8/tdbbackup.8*
288 #%{_mandir}/ja/man1/smbstatus.1*
289 #%{_mandir}/ja/man5/smbpasswd.5*
290 #%{_mandir}/ja/man7/samba.7*
291 #%{_mandir}/ja/man8/smbd.8*
292 #%{_mandir}/ja/man8/nmbd.8*
293 %{_libdir}/samba/vfs
294
295 %attr(0700,root,root) %dir /var/log/samba
296 %attr(1777,root,root) %dir /var/spool/samba
297
298 %files swat
299 %defattr(-,root,root)
300 %config(noreplace) %{_sysconfdir}/xinetd.d/swat
301 %{_datadir}/swat
302 %{_sbindir}/swat
303 %{_mandir}/man8/swat.8*
304 #%{_mandir}/ja/man8/swat.8*
305 %attr(755,root,root) %{_libdir}/samba/*.msg
306
307 %files client
308 %defattr(-,root,root)
309 /sbin/mount.smb
310 /sbin/mount.smbfs
311 %{_libdir}/samba/lowcase.dat
312 %{_libdir}/samba/upcase.dat
313 %{_libdir}/samba/valid.dat
314 %{_bindir}/rpcclient
315 %{_bindir}/smbcacls
316 %{_bindir}/smbmount
317 %{_bindir}/smbmnt
318 %{_bindir}/smbumount
319 %{_bindir}/findsmb
320 %{_bindir}/tdbdump
321 %{_mandir}/man8/tdbdump.8*
322 %{_mandir}/man8/smbmnt.8*
323 %{_mandir}/man8/smbmount.8*
324 %{_mandir}/man8/smbumount.8*
325 %{_mandir}/man8/smbspool.8*
326 %{_bindir}/nmblookup
327 %{_bindir}/smbclient
328 %{_bindir}/smbprint
329 %{_bindir}/smbspool
330 %{_bindir}/smbtar
331 %{_bindir}/net
332 %{_bindir}/smbtree
333 %{_mandir}/man1/findsmb.1*
334 %{_mandir}/man1/nmblookup.1*
335 %{_mandir}/man1/rpcclient.1*
336 %{_mandir}/man1/smbcacls.1*
337 %{_mandir}/man1/smbclient.1*
338 %{_mandir}/man1/smbtar.1*
339 %{_mandir}/man1/smbtree.1*
340 %{_mandir}/man8/net.8*
341 #%{_mandir}/ja/man1/smbtar.1*
342 #%{_mandir}/ja/man1/smbclient.1*
343 #%{_mandir}/ja/man1/nmblookup.1*
344
345 %files common
346 %defattr(-,root,root)
347 /%{_lib}/libnss_wins.so*
348 /%{_lib}/libnss_winbind.so*
349 /%{_lib}/security/pam_winbind.so
350 %{_libdir}/libsmbclient.a
351 %{_libdir}/libsmbclient.so
352 %{_libdir}/samba/charset/CP*.so
353 %{_includedir}/libsmbclient.h
354 %{_bindir}/testparm
355 %{_bindir}/testprns
356 %{_bindir}/smbpasswd
357 # %{_bindir}/make_printerdef
358 %{_bindir}/wbinfo
359 # %{_bindir}/editreg
360 %{_bindir}/ntlm_auth
361 %{_bindir}/pdbedit
362 %{_bindir}/profiles
363 %{_bindir}/smbcquotas
364 #%{_bindir}/vfstest
365 %{_sbindir}/winbindd
366 %config(noreplace) %{_sysconfdir}/samba/smb.conf
367 %config(noreplace) %{_sysconfdir}/samba/lmhosts
368 %dir %{_datadir}/samba
369 %dir %{_datadir}/samba/codepages
370 %dir %{_sysconfdir}/samba
371 %{initdir}/winbind
372 # %{_datadir}/samba/codepages/*
373 # %{_mandir}/man1/make_smbcodepage.1*
374 %{_mandir}/man1/ntlm_auth.1*
375 %{_mandir}/man1/profiles.1*
376 %{_mandir}/man1/smbcquotas.1*
377 %{_mandir}/man1/testparm.1*
378 %{_mandir}/man1/testprns.1*
379 %{_mandir}/man5/smb.conf.5*
380 %{_mandir}/man5/lmhosts.5*
381 %{_mandir}/man8/smbpasswd.8*
382 %{_mandir}/man1/wbinfo.1*
383 %{_mandir}/man8/winbindd.8*
384 %{_mandir}/man1/vfstest.1*
385
386 # #%lang(ja) %{_mandir}/ja/man1/make_smbcodepage.1*
387 #%lang(ja) %{_mandir}/ja/man1/testparm.1*
388 #%lang(ja) %{_mandir}/ja/man1/testprns.1*
389 #%lang(ja) %{_mandir}/ja/man5/smb.conf.5*
390 #%lang(ja) %{_mandir}/ja/man5/lmhosts.5*
391 #%lang(ja) %{_mandir}/ja/man8/smbpasswd.8*
392
393 %changelog
394 * Fri Jan 16 2004 Gerald (Jerry) Carter <jerry@samba,org>
395 - Removed ChangeLog entries since they are kept in CVS
396
397
398