r5271: patch from S Murthy Kambhampaty <smk_va@yahoo.com> to add idmap_rid.so to...
[Samba/gbeck.git] / packaging / Fedora / samba.spec.tmpl
blob7fde5c0e9a512ade36c12a098a052b6eefa54868
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, cups-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         --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 debug2html 
131 %install
132 rm -rf $RPM_BUILD_ROOT
134 mkdir -p $RPM_BUILD_ROOT/sbin
135 mkdir -p $RPM_BUILD_ROOT/usr/{sbin,bin}
136 mkdir -p $RPM_BUILD_ROOT/%{initdir}
137 mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/{pam.d,logrotate.d}
138 mkdir -p $RPM_BUILD_ROOT/var/{log,spool,lib}/samba
139 mkdir -p $RPM_BUILD_ROOT/%{_datadir}/swat/using_samba
140 mkdir -p $RPM_BUILD_ROOT/%{_datadir}/samba/codepages 
142 cd source
144 make DESTDIR=$RPM_BUILD_ROOT \
145         install
147 cd ..
149 # Install other stuff
150 install -m644 %{SOURCE10} $RPM_BUILD_ROOT%{_sysconfdir}/samba/smb.conf
151 install -m644 %{SOURCE9} $RPM_BUILD_ROOT/etc/samba/smbusers
152 install -m755 %{SOURCE8} $RPM_BUILD_ROOT%{_bindir}
153 install -m644 %{SOURCE7} $RPM_BUILD_ROOT/etc/pam.d/samba
154 install -m644 %{SOURCE1} $RPM_BUILD_ROOT/etc/logrotate.d/samba
155 install -m755 source/script/mksmbpasswd.sh $RPM_BUILD_ROOT%{_bindir}
157 install -m755 %{SOURCE5} $RPM_BUILD_ROOT%{initdir}/smb
158 install -m755 %{SOURCE6} $RPM_BUILD_ROOT%{initdir}/winbind
159 ln -s ../..%{initdir}/smb  $RPM_BUILD_ROOT%{_sbindir}/samba
160 ln -s ../..%{initdir}/winbind  $RPM_BUILD_ROOT%{_sbindir}/winbind
162 ln -s ../usr/bin/smbmount $RPM_BUILD_ROOT/sbin/mount.smb
163 ## Samba's Makefile is breaking this currently.  Remove it and set our own
164 /bin/rm -f $RPM_BUILD_ROOT/sbin/mount.smbfs
165 ln -s ../usr/bin/smbmount $RPM_BUILD_ROOT/sbin/mount.smbfs
167 echo 127.0.0.1 localhost > $RPM_BUILD_ROOT%{_sysconfdir}/samba/lmhosts
170 # pam_smbpass
171 mkdir -p $RPM_BUILD_ROOT/%{_lib}/security
172 mv source/bin/pam_smbpass.so $RPM_BUILD_ROOT/%{_lib}/security/pam_smbpass.so
174 # winbind
175 mkdir -p $RPM_BUILD_ROOT/%{_lib}/security
176 install -m 755 source/nsswitch/pam_winbind.so $RPM_BUILD_ROOT/%{_lib}/security/pam_winbind.so
177 install -m 755 source/nsswitch/libnss_winbind.so $RPM_BUILD_ROOT/%{_lib}/libnss_winbind.so
178 install -m 755 source/nsswitch/libnss_wins.so $RPM_BUILD_ROOT/%{_lib}/libnss_wins.so
179 ( cd $RPM_BUILD_ROOT/%{_lib}; 
180   ln -sf libnss_winbind.so  libnss_winbind.so.2;
181   ln -sf libnss_wins.so  libnss_wins.so.2 )
183 # libsmbclient
185 # make install puts libsmbclient.so in the wrong place on x86_64
186 rm -f $RPM_BUILD_ROOT/usr/lib || true
187 mkdir -p $RPM_BUILD_ROOT%{_libdir} $RPM_BUILD_ROOT%{_includedir}
188 install -m 755 source/bin/libsmbclient.so $RPM_BUILD_ROOT%{_libdir}/libsmbclient.so
189 install -m 755 source/bin/libsmbclient.a $RPM_BUILD_ROOT%{_libdir}/libsmbclient.a
190 install -m 644 source/include/libsmbclient.h $RPM_BUILD_ROOT%{_includedir}
191 rm -f $RPM_BUILD_ROOT%{_libdir}/samba/libsmbclient.*
193 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d
194 install -m644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d/swat
196 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig
197 install -m644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/samba
200 ## Clean out man pages for tools not installed here
202 rm -f $RPM_BUILD_ROOT/%{_mandir}/man1/editreg.1*
203 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/log2pcap.1*
204 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/smbsh.1*
205 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/smbget.1*
206 rm -f $RPM_BUILD_ROOT%{_mandir}/man5/smbgetrc.5*
207 rm -f $RPM_BUILD_ROOT/%{_mandir}/man8/mount.cifs.8*
209 %clean
210 rm -rf $RPM_BUILD_ROOT
212 %post
213 /sbin/chkconfig --add smb
215 %preun
216 if [ $1 = 0 ] ; then
217     /sbin/chkconfig --del smb
218     rm -rf /var/log/samba/* /var/cache/samba/*
219     /sbin/service smb stop >/dev/null 2>&1
221 exit 0
223 %postun
224 if [ "$1" -ge "1" ]; then
225         %{initdir}/smb condrestart >/dev/null 2>&1
226 fi      
229 %post swat
230 # Add swat entry to /etc/services if not already there.
231 if [ ! "`grep ^\s**swat /etc/services`" ]; then
232         echo 'swat        901/tcp     # Add swat service used via inetd' >> /etc/services
235 %post common
236 /sbin/chkconfig --add winbind
237 /sbin/ldconfig
239 %preun common
240 if [ $1 = 0 ] ; then
241     /sbin/chkconfig --del winbind
242     /sbin/service winbind stop >/dev/null 2>&1
244 exit 0
246 %postun common -p /sbin/ldconfig
248 %triggerpostun -- samba < 1.9.18p7
249 if [ $1 != 0 ]; then
250     /sbin/chkconfig --add smb
253 %triggerpostun -- samba < 2.0.5a-3
254 if [ $1 != 0 ]; then
255     [ ! -d /var/lock/samba ] && mkdir -m 0755 /var/lock/samba
256     [ ! -d /var/spool/samba ] && mkdir -m 1777 /var/spool/samba
257     chmod 644 /etc/services
258     [ -f /etc/inetd.conf ] && chmod 644 /etc/inetd.conf
261 %files
262 %defattr(-,root,root)
263 %doc README COPYING Manifest 
264 %doc WHATSNEW.txt Roadmap
265 %doc docs
266 %doc examples/autofs examples/LDAP examples/libsmbclient examples/misc examples/printer-accounting
267 %doc examples/printing
269 %attr(755,root,root) /%{_lib}/security/pam_smbpass.so
270 %{_sbindir}/smbd
271 %{_sbindir}/nmbd
272 # %{_bindir}/make_unicodemap
273 %{_bindir}/mksmbpasswd.sh
274 %{_bindir}/smbcontrol
275 %{_bindir}/smbstatus
276 # %{_bindir}/smbadduser
277 %{_bindir}/tdbbackup
278 %{_bindir}/tdbtool
279 %config(noreplace) %{_sysconfdir}/sysconfig/samba
280 %config(noreplace) %{_sysconfdir}/samba/smbusers
281 %attr(755,root,root) %config %{initdir}/smb
282 %config(noreplace) %{_sysconfdir}/logrotate.d/samba
283 %config(noreplace) %{_sysconfdir}/pam.d/samba
284 # %{_mandir}/man1/make_unicodemap.1*
285 %{_mandir}/man1/smbcontrol.1*
286 %{_mandir}/man1/smbstatus.1*
287 %{_mandir}/man5/smbpasswd.5*
288 %{_mandir}/man7/samba.7*
289 %{_mandir}/man8/nmbd.8*
290 %{_mandir}/man8/pdbedit.8*
291 %{_mandir}/man8/smbd.8*
292 %{_mandir}/man8/pam_winbind.8*
293 %{_mandir}/man8/tdbbackup.8*
294 #%{_mandir}/ja/man1/smbstatus.1*
295 #%{_mandir}/ja/man5/smbpasswd.5*
296 #%{_mandir}/ja/man7/samba.7*
297 #%{_mandir}/ja/man8/smbd.8*
298 #%{_mandir}/ja/man8/nmbd.8*
299 %{_libdir}/samba/vfs
301 %attr(0700,root,root) %dir /var/log/samba
302 %attr(1777,root,root) %dir /var/spool/samba
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 #%{_mandir}/ja/man8/swat.8*
311 %attr(755,root,root) %{_libdir}/samba/*.msg
313 %files client
314 %defattr(-,root,root)
315 /sbin/mount.smb
316 /sbin/mount.smbfs
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*
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}/testprns
363 %{_bindir}/smbpasswd
364 # %{_bindir}/make_printerdef
365 %{_bindir}/wbinfo
366 # %{_bindir}/editreg
367 %{_bindir}/ntlm_auth
368 %{_bindir}/pdbedit
369 %{_bindir}/profiles
370 %{_bindir}/smbcquotas
371 #%{_bindir}/vfstest
372 %{_sbindir}/winbindd
373 %config(noreplace) %{_sysconfdir}/samba/smb.conf
374 %config(noreplace) %{_sysconfdir}/samba/lmhosts
375 %dir %{_datadir}/samba
376 %dir %{_datadir}/samba/codepages
377 %dir %{_sysconfdir}/samba
378 %{initdir}/winbind
379 # %{_datadir}/samba/codepages/*
380 # %{_mandir}/man1/make_smbcodepage.1*
381 %{_mandir}/man1/ntlm_auth.1*
382 %{_mandir}/man1/profiles.1*
383 %{_mandir}/man1/smbcquotas.1*
384 %{_mandir}/man1/testparm.1*
385 %{_mandir}/man1/testprns.1*
386 %{_mandir}/man5/smb.conf.5*
387 %{_mandir}/man5/lmhosts.5*
388 %{_mandir}/man8/smbpasswd.8*
389 %{_mandir}/man1/wbinfo.1*
390 %{_mandir}/man8/winbindd.8*
391 %{_mandir}/man1/vfstest.1*
393 # #%lang(ja) %{_mandir}/ja/man1/make_smbcodepage.1*
394 #%lang(ja) %{_mandir}/ja/man1/testparm.1*
395 #%lang(ja) %{_mandir}/ja/man1/testprns.1*
396 #%lang(ja) %{_mandir}/ja/man5/smb.conf.5*
397 #%lang(ja) %{_mandir}/ja/man5/lmhosts.5*
398 #%lang(ja) %{_mandir}/ja/man8/smbpasswd.8*
400 %changelog
401 * Fri Jan 16 2004 Gerald (Jerry) Carter <jerry@samba,org>
402 - Removed ChangeLog entries since they are kept in CVS