r3603: updating packaging for 3.0.8 (sync from 3.0 tree)
[Samba.git] / packaging / Fedora / samba.spec.tmpl
blobb24335387ca6c84b805961f2124fb46523d872cb
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)
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/
12 Source: ftp://www.samba.org/pub/samba/%{name}-%{version}.tar.bz2
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
25 # Don't depend on Net::LDAP
26 Source999: filter-requires-samba.sh
28 # generic patches
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
38 # Working around perl dependency problem from docs
39 %define __perl_requires %{SOURCE999}
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.
52 %package client
53 Summary: Samba (SMB) client programs.
54 Group: Applications/System
55 Requires: samba-common = %{version}
56 Obsoletes: smbfs
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.
63 %package common
64 Summary: Files used by both Samba servers and clients.
65 Group: Applications/System
67 %description common
68 Samba-common provides files necessary for both the server and client
69 packages of Samba.
71 %package swat
72 Summary: The Samba SMB server configuration program.
73 Group: Applications/System
74 Requires: samba = %{version} xinetd
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.
81 %prep
82 %setup -q
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
90 %build
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
103 ## run autogen if missing the configure script
104 if [ ! -f "configure" ]; then
105         ./autogen.sh
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 
129 %install
130 rm -rf $RPM_BUILD_ROOT
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 
140 cd source
142 make DESTDIR=$RPM_BUILD_ROOT \
143         install
145 cd ..
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}
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
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
165 echo 127.0.0.1 localhost > $RPM_BUILD_ROOT%{_sysconfdir}/samba/lmhosts
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
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 )
181 # libsmbclient
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.*
191 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d
192 install -m644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d/swat
194 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig
195 install -m644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/samba
198 ## Clean out man pages for tools not installed here
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*
207 %clean
208 rm -rf $RPM_BUILD_ROOT
210 %post
211 /sbin/chkconfig --add smb
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
219 exit 0
221 %postun
222 if [ "$1" -ge "1" ]; then
223         %{initdir}/smb condrestart >/dev/null 2>&1
224 fi      
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
233 %post common
234 /sbin/chkconfig --add winbind
235 /sbin/ldconfig
237 %preun common
238 if [ $1 = 0 ] ; then
239     /sbin/chkconfig --del winbind
240     /sbin/service winbind stop >/dev/null 2>&1
242 exit 0
244 %postun common -p /sbin/ldconfig
246 %triggerpostun -- samba < 1.9.18p7
247 if [ $1 != 0 ]; then
248     /sbin/chkconfig --add smb
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
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
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/tdbbackup.8*
291 #%{_mandir}/ja/man1/smbstatus.1*
292 #%{_mandir}/ja/man5/smbpasswd.5*
293 #%{_mandir}/ja/man7/samba.7*
294 #%{_mandir}/ja/man8/smbd.8*
295 #%{_mandir}/ja/man8/nmbd.8*
296 %{_libdir}/samba/vfs
298 %attr(0700,root,root) %dir /var/log/samba
299 %attr(1777,root,root) %dir /var/spool/samba
301 %files swat
302 %defattr(-,root,root)
303 %config(noreplace) %{_sysconfdir}/xinetd.d/swat
304 %{_datadir}/swat
305 %{_sbindir}/swat
306 %{_mandir}/man8/swat.8*
307 #%{_mandir}/ja/man8/swat.8*
308 %attr(755,root,root) %{_libdir}/samba/*.msg
310 %files client
311 %defattr(-,root,root)
312 /sbin/mount.smb
313 /sbin/mount.smbfs
314 %{_libdir}/samba/lowcase.dat
315 %{_libdir}/samba/upcase.dat
316 %{_libdir}/samba/valid.dat
317 %{_bindir}/rpcclient
318 %{_bindir}/smbcacls
319 %{_bindir}/smbmount
320 %{_bindir}/smbmnt
321 %{_bindir}/smbumount
322 %{_bindir}/findsmb
323 %{_bindir}/tdbdump
324 %{_mandir}/man8/tdbdump.8*
325 %{_mandir}/man8/smbmnt.8*
326 %{_mandir}/man8/smbmount.8*
327 %{_mandir}/man8/smbumount.8*
328 %{_mandir}/man8/smbspool.8*
329 %{_bindir}/nmblookup
330 %{_bindir}/smbclient
331 %{_bindir}/smbprint
332 %{_bindir}/smbspool
333 %{_bindir}/smbtar
334 %{_bindir}/net
335 %{_bindir}/smbtree
336 %{_mandir}/man1/findsmb.1*
337 %{_mandir}/man1/nmblookup.1*
338 %{_mandir}/man1/rpcclient.1*
339 %{_mandir}/man1/smbcacls.1*
340 %{_mandir}/man1/smbclient.1*
341 %{_mandir}/man1/smbtar.1*
342 %{_mandir}/man1/smbtree.1*
343 %{_mandir}/man8/net.8*
344 #%{_mandir}/ja/man1/smbtar.1*
345 #%{_mandir}/ja/man1/smbclient.1*
346 #%{_mandir}/ja/man1/nmblookup.1*
348 %files common
349 %defattr(-,root,root)
350 /%{_lib}/libnss_wins.so*
351 /%{_lib}/libnss_winbind.so*
352 /%{_lib}/security/pam_winbind.so
353 %{_libdir}/libsmbclient.a
354 %{_libdir}/libsmbclient.so
355 %{_libdir}/samba/charset/CP*.so
356 %{_includedir}/libsmbclient.h
357 %{_bindir}/testparm
358 %{_bindir}/testprns
359 %{_bindir}/smbpasswd
360 # %{_bindir}/make_printerdef
361 %{_bindir}/wbinfo
362 # %{_bindir}/editreg
363 %{_bindir}/ntlm_auth
364 %{_bindir}/pdbedit
365 %{_bindir}/profiles
366 %{_bindir}/smbcquotas
367 #%{_bindir}/vfstest
368 %{_sbindir}/winbindd
369 %config(noreplace) %{_sysconfdir}/samba/smb.conf
370 %config(noreplace) %{_sysconfdir}/samba/lmhosts
371 %dir %{_datadir}/samba
372 %dir %{_datadir}/samba/codepages
373 %dir %{_sysconfdir}/samba
374 %{initdir}/winbind
375 # %{_datadir}/samba/codepages/*
376 # %{_mandir}/man1/make_smbcodepage.1*
377 %{_mandir}/man1/ntlm_auth.1*
378 %{_mandir}/man1/profiles.1*
379 %{_mandir}/man1/smbcquotas.1*
380 %{_mandir}/man1/testparm.1*
381 %{_mandir}/man1/testprns.1*
382 %{_mandir}/man5/smb.conf.5*
383 %{_mandir}/man5/lmhosts.5*
384 %{_mandir}/man8/smbpasswd.8*
385 %{_mandir}/man1/wbinfo.1*
386 %{_mandir}/man8/winbindd.8*
387 %{_mandir}/man1/vfstest.1*
389 # #%lang(ja) %{_mandir}/ja/man1/make_smbcodepage.1*
390 #%lang(ja) %{_mandir}/ja/man1/testparm.1*
391 #%lang(ja) %{_mandir}/ja/man1/testprns.1*
392 #%lang(ja) %{_mandir}/ja/man5/smb.conf.5*
393 #%lang(ja) %{_mandir}/ja/man5/lmhosts.5*
394 #%lang(ja) %{_mandir}/ja/man8/smbpasswd.8*
396 %changelog
397 * Fri Jan 16 2004 Gerald (Jerry) Carter <jerry@samba,org>
398 - Removed ChangeLog entries since they are kept in CVS