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