Update mailing list references to point at lists.samba.org
[gd/samba-autobuild/.git] / packaging / RHEL / 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 %define this_is_redhat  %(test -e /etc/redhat-release && echo 1 || echo 0)
4 %if %{this_is_redhat} > 0
5 %define rhel_ver %(grep "release" /etc/redhat-release | sed "s/^[^0-9]*\\([0-9]*\\).*/\\1/g")
6 %else
7 %define rhel_ver 0
8 %endif
9
10 Summary: Samba SMB client and server
11 Vendor: Samba Team
12 Packager: Samba Team <samba@lists.samba.org>
13 Name:         samba
14 Version:      PVERSION
15 Release:      PRELEASEPRPMREV
16 Epoch:        0
17 License: GNU GPL version 3
18 Group: System Environment/Daemons
19 URL: http://www.samba.org/
20
21 Source: samba-%{version}.tar.bz2
22
23 # Don't depend on Net::LDAP
24 Source998: filter-requires-samba.sh
25 Source999: setup.tar.bz2
26
27 Prereq: /sbin/chkconfig /bin/mktemp /usr/bin/killall
28 Prereq: fileutils sed /etc/init.d
29
30 Requires: pam >= 0.64 %{auth} 
31 Requires: samba-common = %{version}-%{release}
32 Requires: logrotate >= 3.4 initscripts >= 5.54-1
33 Provides: samba = %{version}
34
35 Prefix: /usr
36 BuildRoot: %{_tmppath}/%{name}-%{version}-root
37 BuildRequires: pam-devel, readline-devel, fileutils, libacl-devel, openldap-devel, krb5-devel, cups-devel
38
39 %if %{rhel_ver} > 4
40 BuildRequires:  keyutils-libs-devel
41 %else
42 BuildRequires:  keyutils-devel
43 %endif
44
45 # Working around perl dependency problem from docs
46 %define __perl_requires %{SOURCE998}
47
48 # rpm screws up the arch lib dir when using --target on RHEL5
49 %ifarch i386 i486 i586 i686 ppc s390
50 %define _libarch lib
51 %else
52 %define _libarch %_lib
53 %endif
54
55 %define _libarchdir /usr/%{_libarch}
56
57
58 %description
59 Samba is the protocol by which a lot of PC-related machines share
60 files, printers, and other information (such as lists of available
61 files and printers). The Windows NT, OS/2, and Linux operating systems
62 support this natively, and add-on packages can enable the same thing
63 for DOS, Windows, VMS, UNIX of all kinds, MVS, and more. This package
64 provides an SMB server that can be used to provide network services to
65 SMB (sometimes called "Lan Manager") clients. Samba uses NetBIOS over
66 TCP/IP (NetBT) protocols and does NOT need the NetBEUI (Microsoft Raw
67 NetBIOS frame) protocol.
68
69
70 #######################################################################
71 %package client
72 Summary: Samba (SMB) client programs.
73 Group: Applications/System
74 Requires: samba-common = %{version}-%{release}
75 Obsoletes: smbfs
76 Provides: samba-client = %{version}-%{release}
77
78 %description client
79 The samba-client package provides some SMB clients to compliment the
80 built-in SMB filesystem in Linux. These clients allow access of SMB
81 shares and printing to SMB printers.
82
83
84 #######################################################################
85 %package common
86 Summary: Files used by both Samba servers and clients.
87 Group: Applications/System
88 Provides: samba-common = %{version}-%{release}
89
90 %description common
91 Samba-common provides files necessary for both the server and client
92 packages of Samba.
93
94
95 #######################################################################
96 %package swat
97 Summary: The Samba SMB server configuration program.
98 Group: Applications/System
99 Requires: samba = %{version} xinetd
100 Provides: samba-swat = %{version}-%{release}
101
102 %description swat
103 The samba-swat package includes the new SWAT (Samba Web Administration
104 Tool), for remotely managing Samba's smb.conf file using your favorite
105 Web browser.
106
107
108 #######################################################################
109 %package doc
110 Summary:      Samba Documentation
111 Group:        Documentation/Other
112 Provides:     samba-doc = %{version}-%{release}
113 Prereq:       /usr/bin/find /bin/rm /usr/bin/xargs
114
115 %description doc
116 The samba-doc package includes the HTML versions of the Samba manpages
117 utilized by SWAT as well as the HTML and PDF version of "Using Samba",
118 "Samba By Example", and "The Official Samba HOWTO and Reference Guide".
119
120
121 #######################################################################
122
123 %prep
124 %setup -q
125
126 # setup the vendor files (init scripts, etc...)
127 %setup -T -D -a 999 -n samba-%{version} -q
128
129 %build
130
131 /bin/cp setup/filter-requires-samba.sh %{SOURCE998}
132
133 cd source3
134 # RPM_OPT_FLAGS="$RPM_OPT_FLAGS -D_FILE_OFFSET_BITS=64"
135
136 ## check for ccache
137 if [ "$(which ccache 2> /dev/null)" != "" ]; then
138         CC="ccache gcc"
139 else
140         CC="gcc"
141 fi 
142
143 ## always run autogen.sh
144 ./autogen.sh
145
146 ## ignore insufficiently linked libreadline (RH bugzilla #499837):
147 export LDFLAGS="$LDFLAGS -Wl,--allow-shlib-undefined,--no-as-needed"
148
149 CC="$CC" CFLAGS="$RPM_OPT_FLAGS $EXTRA -D_GNU_SOURCE" ./configure \
150         --prefix=%{_prefix} \
151         --localstatedir=/var \
152         --with-configdir=%{_sysconfdir}/samba \
153         --libdir=%{_libarchdir} \
154         --with-modulesdir=%{_libarchdir}/samba \
155         --with-pammodulesdir=%{_libarch}/security \
156         --with-lockdir=/var/lib/samba \
157         --with-logfilebase=/var/log/samba \
158         --with-mandir=%{_mandir} \
159         --with-piddir=/var/run \
160         --with-privatedir=%{_sysconfdir}/samba \
161         --with-sambabook=%{_datadir}/swat/using_samba \
162         --with-swatdir=%{_datadir}/swat \
163         --enable-cups \
164         --with-acl-support \
165         --with-ads \
166         --with-automount \
167         --with-fhs \
168         --with-pam_smbpass \
169         --with-libsmbclient \
170         --without-smbwrapper \
171         --with-pam \
172         --with-quotas \
173         --with-shared-modules=idmap_rid,idmap_ad,idmap_hash,idmap_adex \
174         --with-syslog \
175         --with-utmp \
176         --with-dnsupdate
177
178 make showlayout
179
180 ## check for gcc 3.4 or later
181 CC_VERSION=`${CC} --version | head -1 | awk '{print $3}'`
182 CC_MAJOR=`echo ${CC_VERSION} | cut -d. -f 1`
183 CC_MINOR=`echo ${CC_VERSION} | cut -d. -f 2`
184 if [ ${CC_MAJOR} -ge 3 ]; then
185         if [ ${CC_MAJOR} -gt 3 -o ${CC_MINOR} -ge 4 ]; then
186                 make pch
187         fi
188 fi
189
190
191 make all modules pam_smbpass
192
193 # Remove some permission bits to avoid to many dependencies
194 cd ..
195 find examples docs -type f | xargs -r chmod -x
196
197 %install
198 # Clean up in case there is trash left from a previous build
199 rm -rf $RPM_BUILD_ROOT
200
201 # Create the target build directory hierarchy
202 mkdir -p $RPM_BUILD_ROOT%{_datadir}/swat/{help,include,using_samba/{figs,gifsa}}
203 mkdir -p $RPM_BUILD_ROOT%{_includedir}
204 mkdir -p $RPM_BUILD_ROOT%{_initrddir}
205 mkdir -p $RPM_BUILD_ROOT{%{_libarchdir},%{_includedir}}
206 mkdir -p $RPM_BUILD_ROOT%{_libarchdir}/samba/{auth,charset,idmap,vfs,pdb}
207 mkdir -p $RPM_BUILD_ROOT/%{_libarch}/security
208 mkdir -p $RPM_BUILD_ROOT%{_mandir}
209 mkdir -p $RPM_BUILD_ROOT%{_prefix}/{bin,sbin}
210 mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib
211 mkdir -p $RPM_BUILD_ROOT/sbin
212 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{logrotate.d,pam.d,samba}
213 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{pam.d,logrotate.d}
214 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d
215 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{samba,sysconfig}
216 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d
217 mkdir -p $RPM_BUILD_ROOT/var/lib/samba/winbindd_privileged
218 mkdir -p $RPM_BUILD_ROOT/var/{log,run/winbindd,spool}/samba
219
220 cd source3
221 make DESTDIR=$RPM_BUILD_ROOT \
222         install
223 cd ..
224
225 # NSS winbind support
226 install -m 755 nsswitch/libnss_winbind.so $RPM_BUILD_ROOT/%{_libarch}/libnss_winbind.so.2
227 install -m 755 nsswitch/libnss_wins.so $RPM_BUILD_ROOT/%{_libarch}/libnss_wins.so.2
228 ( cd $RPM_BUILD_ROOT/%{_libarch};
229   ln -sf libnss_winbind.so.2  libnss_winbind.so;
230   ln -sf libnss_wins.so.2  libnss_wins.so )
231
232 ## cleanup
233 /bin/rm -rf $RPM_BUILD_ROOT/usr/lib*/samba/security
234
235 # Install the miscellany
236 echo 127.0.0.1 localhost > $RPM_BUILD_ROOT%{_sysconfdir}/samba/lmhosts
237
238 install -m644 setup/samba.log $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/samba
239 install -m644 setup/swat $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d/swat
240 install -m644 setup/samba.sysconfig $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/samba
241 install -m755 setup/smb.init $RPM_BUILD_ROOT%{initdir}/smb
242 install -m755 setup/winbind.init $RPM_BUILD_ROOT%{initdir}/winbind
243 install -m644 setup/samba.pamd $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/samba
244 install -m755 packaging/printing/smbprint $RPM_BUILD_ROOT%{_bindir}
245 install -m644 setup/smbusers $RPM_BUILD_ROOT%{_sysconfdir}/samba/smbusers
246 install -m644 setup/smb.conf $RPM_BUILD_ROOT%{_sysconfdir}/samba/smb.conf
247 install -m755 source3/script/mksmbpasswd.sh $RPM_BUILD_ROOT%{_bindir}
248
249 ln -s ../..%{initdir}/smb  $RPM_BUILD_ROOT%{_sbindir}/samba
250 ln -s ../..%{initdir}/winbind  $RPM_BUILD_ROOT%{_sbindir}/winbind
251
252 # Remove "*.old" files
253 find $RPM_BUILD_ROOT -name "*.old" -exec rm -f {} \;
254
255 ## don't duplicate the docs.  These are installed by/with SWAT
256 rm -rf docs/htmldocs
257 rm -rf docs/manpages
258 ( cd docs; ln -s %{_prefix}/share/swat/help htmldocs )
259
260 ##
261 ## Clean out man pages for tools not installed here
262 ##
263 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/log2pcap.1*
264 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/smbsh.1*
265 rm -f $RPM_BUILD_ROOT%{_mandir}/man5/vfstest.1*
266
267
268 %clean
269 rm -rf $RPM_BUILD_ROOT
270
271 %post
272 ## deal with an upgrade from a broken 3.0.21b RPM
273 if [ "$1" -eq "2" ]; then
274         if [ -d /var/cache/samba ]; then
275                 for file in `ls /var/cache/samba/*tdb`; do
276                         /bin/cp -up $file /var/lib/samba/`basename $file`
277                 done
278                 mkdir -p /var/lib/samba/eventlog
279                 for file in `ls /var/cache/samba/eventlog/*tdb`; do
280                         /bin/cp -up $file /var/lib/samba/eventlog/`basename $file`
281                 done
282                 /bin/mv /var/cache/samba /var/cache/samba.moved
283         fi
284 fi
285
286 %preun
287 if [ $1 = 0 ] ; then
288     /sbin/chkconfig --del smb
289     /sbin/chkconfig --del winbind
290     # rm -rf /var/log/samba/* /var/lib/samba/*
291     /sbin/service smb stop >/dev/null 2>&1
292 fi
293 exit 0
294
295 %postun
296 if [ "$1" -ge "1" ]; then
297         %{initdir}/smb restart >/dev/null 2>&1
298 fi      
299
300
301 %post swat
302 # Add swat entry to /etc/services if not already there.
303 if [ ! "`grep ^\s**swat /etc/services`" ]; then
304         echo 'swat        901/tcp     # Add swat service used via inetd' >> /etc/services
305 fi
306
307 %post common
308 /sbin/ldconfig
309
310 %postun common 
311 /sbin/ldconfig
312
313 #######################################################################
314 ## Files section                                                     ##
315 #######################################################################
316
317 %files
318 %defattr(-,root,root)
319
320 %config(noreplace) %{_sysconfdir}/sysconfig/samba
321 %config(noreplace) %{_sysconfdir}/samba/smbusers
322 %attr(755,root,root) %config %{initdir}/smb
323 %attr(755,root,root) %config %{initdir}/winbind
324 %config(noreplace) %{_sysconfdir}/logrotate.d/samba
325 %config(noreplace) %{_sysconfdir}/pam.d/samba
326
327 %attr(0755,root,root) %dir /var/log/samba
328 %attr(0755,root,root) %dir /var/lib/samba
329 %attr(1777,root,root) %dir /var/spool/samba
330
331 %{_sbindir}/samba
332 %{_sbindir}/winbind
333
334 %{_sbindir}/smbd
335 %{_sbindir}/nmbd
336 %{_sbindir}/winbindd
337
338 %{_bindir}/mksmbpasswd.sh
339 %{_bindir}/smbcontrol
340 %{_bindir}/smbstatus
341 %{_bindir}/smbta-util
342 %{_bindir}/tdbbackup
343 %{_bindir}/tdbtool
344 %{_bindir}/tdbdump
345 %{_bindir}/tdbrestore
346 %{_bindir}/wbinfo
347 %{_bindir}/ntlm_auth
348 %{_bindir}/pdbedit
349 %{_bindir}/eventlogadm
350
351 %{_libarchdir}/samba/idmap/*.so
352 %{_libarchdir}/samba/nss_info/*.so
353 %{_libarchdir}/samba/vfs/*.so
354 %{_libarchdir}/samba/auth/*.so
355
356 %{_mandir}/man1/smbcontrol.1*
357 %{_mandir}/man1/smbstatus.1*
358 %{_mandir}/man1/vfstest.1*
359 %{_mandir}/man5/smbpasswd.5*
360 %{_mandir}/man7/samba.7*
361 %{_mandir}/man7/winbind_krb5_locator.7*
362 %{_mandir}/man8/nmbd.8*
363 %{_mandir}/man8/pdbedit.8*
364 %{_mandir}/man8/smbd.8*
365 %{_mandir}/man8/tdbbackup.8*
366 %{_mandir}/man8/tdbdump.8*
367 %{_mandir}/man8/tdbtool.8*
368 %{_mandir}/man8/eventlogadm.8*
369 %{_mandir}/man8/winbindd.8*
370 %{_mandir}/man1/ntlm_auth.1*
371 %{_mandir}/man1/wbinfo.1*
372 %{_mandir}/man1/dbwrap_*.1*
373 %{_mandir}/man8/vfs_*.8*
374 %{_mandir}/man8/idmap_*.8*
375
376
377 ##########
378
379 %files doc
380 %defattr(-,root,root)
381 %doc README COPYING Manifest 
382 %doc WHATSNEW.txt Roadmap
383 %doc docs
384 %doc examples/autofs examples/LDAP examples/libsmbclient examples/misc examples/printer-accounting
385 %doc examples/printing
386 %doc %{_datadir}/swat/help
387 %doc %{_datadir}/swat/using_samba
388
389 ##########
390
391 %files swat
392 %defattr(-,root,root)
393 %config(noreplace) %{_sysconfdir}/xinetd.d/swat
394 %dir %{_datadir}/swat
395 %{_datadir}/swat/include
396 %{_datadir}/swat/images
397 %{_datadir}/swat/lang
398 %{_sbindir}/swat
399 %{_mandir}/man8/swat.8*
400
401 ##########
402
403 %files client
404 %defattr(-,root,root)
405
406 %{_bindir}/rpcclient
407 %{_bindir}/smbcacls
408 %{_bindir}/sharesec
409 %{_bindir}/findsmb
410 %{_bindir}/smbcquotas
411 %{_bindir}/nmblookup
412 %{_bindir}/smbget
413 %{_bindir}/smbclient
414 %{_bindir}/smbprint
415 %{_bindir}/smbspool
416 %{_bindir}/smbtar
417 %{_bindir}/net
418 %{_bindir}/smbtree
419
420 %{_mandir}/man8/smbspool.8*
421 %{_mandir}/man1/smbget.1*
422 %{_mandir}/man5/smbgetrc.5*
423 %{_mandir}/man1/findsmb.1*
424 %{_mandir}/man1/nmblookup.1*
425 %{_mandir}/man1/rpcclient.1*
426 %{_mandir}/man1/smbcacls.1*
427 %{_mandir}/man1/sharesec.1*
428 %{_mandir}/man1/smbclient.1*
429 %{_mandir}/man1/smbtar.1*
430 %{_mandir}/man1/smbtree.1*
431 %{_mandir}/man8/net.8*
432 %{_mandir}/man1/smbcquotas.1*
433
434 ##########
435
436 %files common
437 %defattr(-,root,root)
438 %dir %{_sysconfdir}/samba
439 %dir %{_libarchdir}/samba
440 %dir %{_libarchdir}/samba/charset
441 %config(noreplace) %{_sysconfdir}/samba/smb.conf
442 %config(noreplace) %{_sysconfdir}/samba/lmhosts
443
444 %attr(755,root,root) /%{_libarch}/libnss_wins.so*
445 %attr(755,root,root) /%{_libarch}/libnss_winbind.so*
446 %attr(755,root,root) /%{_libarch}/security/pam_winbind.so
447 %attr(755,root,root) /%{_libarch}/security/pam_smbpass.so
448 /usr/share/locale/de/LC_MESSAGES/net.mo
449 /usr/share/locale/de/LC_MESSAGES/pam_winbind.mo
450 /usr/share/locale/ar/LC_MESSAGES/pam_winbind.mo
451 /usr/share/locale/cs/LC_MESSAGES/pam_winbind.mo
452 /usr/share/locale/da/LC_MESSAGES/pam_winbind.mo
453 /usr/share/locale/es/LC_MESSAGES/pam_winbind.mo
454 /usr/share/locale/fi/LC_MESSAGES/pam_winbind.mo
455 /usr/share/locale/fr/LC_MESSAGES/pam_winbind.mo
456 /usr/share/locale/hu/LC_MESSAGES/pam_winbind.mo
457 /usr/share/locale/it/LC_MESSAGES/pam_winbind.mo
458 /usr/share/locale/ja/LC_MESSAGES/pam_winbind.mo
459 /usr/share/locale/ko/LC_MESSAGES/pam_winbind.mo
460 /usr/share/locale/nb/LC_MESSAGES/pam_winbind.mo
461 /usr/share/locale/nl/LC_MESSAGES/pam_winbind.mo
462 /usr/share/locale/pl/LC_MESSAGES/pam_winbind.mo
463 /usr/share/locale/pt_BR/LC_MESSAGES/pam_winbind.mo
464 /usr/share/locale/ru/LC_MESSAGES/pam_winbind.mo
465 /usr/share/locale/sv/LC_MESSAGES/pam_winbind.mo
466 /usr/share/locale/zh_CN/LC_MESSAGES/pam_winbind.mo
467 /usr/share/locale/zh_TW/LC_MESSAGES/pam_winbind.mo
468
469 %{_includedir}/libsmbclient.h
470 %{_libarchdir}/libsmbclient.*
471 %{_includedir}/smb_share_modes.h
472
473 %{_libarchdir}/samba/*.dat
474 %{_libarchdir}/samba/*.msg
475 %{_libarchdir}/samba/charset/*.so
476
477 %{_includedir}/netapi.h
478 %{_includedir}/wbclient.h
479 %{_includedir}/talloc.h
480 %{_includedir}/tdb.h
481 %{_libarchdir}/libnetapi.so*
482 %{_libarchdir}/libtalloc.so*
483 %{_libarchdir}/libtdb.so*
484 %{_libarchdir}/libwbclient.so*
485
486 %{_bindir}/testparm
487 %{_bindir}/smbpasswd
488 %{_bindir}/profiles
489
490 %{_mandir}/man1/profiles.1*
491 %{_mandir}/man1/testparm.1*
492 %{_mandir}/man5/smb.conf.5*
493 %{_mandir}/man5/lmhosts.5*
494 %{_mandir}/man8/smbpasswd.8*
495 %{_mandir}/man5/pam_winbind.conf.5.*
496 %{_mandir}/man7/libsmbclient.7*
497 %{_mandir}/man8/smbta-util.8*
498 %{_mandir}/man8/pam_winbind.8*
499
500 %changelog
501 * Fri Jan 16 2004 Gerald (Jerry) Carter <jerry@samba,org>
502 - Removed ChangeLog entries since they are kept in CVS
503
504
505