idmap: Fix typos in comments.
[Samba/gebeck_regimport.git] / packaging / RHEL-CTDB / samba.spec
blobbae41121d3fbaff84c40a34d786409f56266ea0f
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: Samba SMB client and server
5 Vendor: Samba Team
6 Packager: Samba Team <samba@samba.org>
7 Name: samba
8 Version: 3.2.0
9 Release: ctdb.27
10 Epoch: 0
11 License: GNU GPL version 3
12 Group: System Environment/Daemons
13 URL: http://www.samba.org/
15 Source: samba-%{version}.tar.bz2
17 # Don't depend on Net::LDAP
18 Source997: docs.tar.bz2
19 Source998: filter-requires-samba.sh
20 Source999: setup.tar.bz2
22 Prereq: /sbin/chkconfig /bin/mktemp /usr/bin/killall
23 Prereq: fileutils sed /etc/init.d
25 Requires: pam >= 0.64 %{auth}
26 Requires: samba-common = %{version}-%{release}
27 Requires: logrotate >= 3.4 initscripts >= 5.54-1
28 Provides: samba = %{version}
30 Prefix: /usr
31 BuildRoot: %{_tmppath}/%{name}-%{version}-root
32 BuildRequires: pam-devel, readline-devel, fileutils, libacl-devel, openldap-devel, krb5-devel, cups-devel, ctdb
34 # Working around perl dependency problem from docs
35 %define __perl_requires %{SOURCE998}
37 # rpm screws up the arch lib dir when using --target on RHEL5
38 %ifarch i386 i486 i586 i686 ppc s390
39 %define _libarch lib
40 %else
41 %define _libarch %_lib
42 %endif
44 # rpm screws up the arch lib dir when using --target on RHEL5
45 %ifarch i386 i486 i586 i686 ppc s390
46 %define _libarch lib
47 %else
48 %define _libarch %_lib
49 %endif
52 %description
53 Samba is the protocol by which a lot of PC-related machines share
54 files, printers, and other information (such as lists of available
55 files and printers). The Windows NT, OS/2, and Linux operating systems
56 support this natively, and add-on packages can enable the same thing
57 for DOS, Windows, VMS, UNIX of all kinds, MVS, and more. This package
58 provides an SMB server that can be used to provide network services to
59 SMB (sometimes called "Lan Manager") clients. Samba uses NetBIOS over
60 TCP/IP (NetBT) protocols and does NOT need the NetBEUI (Microsoft Raw
61 NetBIOS frame) protocol.
64 ######################################################################
65 %package client
66 Summary: Samba (SMB) client programs.
67 Group: Applications/System
68 Requires: samba-common = %{version}-%{release}
69 Obsoletes: smbfs
70 Provides: samba-client = %{version}-%{release}
72 %description client
73 The samba-client package provides some SMB clients to compliment the
74 built-in SMB filesystem in Linux. These clients allow access of SMB
75 shares and printing to SMB printers.
78 #######################################################################
79 %package common
80 Summary: Files used by both Samba servers and clients.
81 Group: Applications/System
82 Provides: samba-common = %{version}-%{release}
84 %description common
85 Samba-common provides files necessary for both the server and client
86 packages of Samba.
89 #######################################################################
90 %package swat
91 Summary: The Samba SMB server configuration program.
92 Group: Applications/System
93 Requires: samba = %{version} xinetd
94 Provides: samba-swat = %{version}-%{release}
96 %description swat
97 The samba-swat package includes the new SWAT (Samba Web Administration
98 Tool), for remotely managing Samba's smb.conf file using your favorite
99 Web browser.
101 %ifarch i386 i486 i586 i686 ppc s390
102 %package winbind-32bit
103 Summary: Samba winbind compatibility package for 32bit apps on 64bit archs
104 Group: Applications/System
106 %description winbind-32bit
107 Compatibility package for 32 bit apps on 64 bit architecures
108 %endif
111 #######################################################################
112 %package doc
113 Summary: Samba Documentation
114 Group: Documentation/Other
115 Provides: samba-doc = %{version}-%{release}
116 Prereq: /usr/bin/find /bin/rm /usr/bin/xargs
118 %description doc
119 The samba-doc package includes the HTML versions of the Samba manpages
120 utilized by SWAT as well as the HTML and PDF version of "Using Samba",
121 "Samba By Example", and "The Official Samba HOWTO and Reference Guide".
124 #######################################################################
126 %prep
127 %setup -q
129 # setup the vendor files (init scripts, etc...)
130 %setup -T -D -a 999 -n samba-%{version} -q
131 %setup -T -D -a 997 -n samba-%{version} -q
133 %build
135 /bin/cp setup/filter-requires-samba.sh %{SOURCE998}
137 cd source
138 # RPM_OPT_FLAGS="$RPM_OPT_FLAGS -D_FILE_OFFSET_BITS=64"
140 ## check for ccache
141 # ccache -h 2>&1 > /dev/null
142 #if [ $? -eq 0 ]; then
143 # CC="ccache gcc"
144 #else
145 CC="gcc"
146 #fi
148 ## always run autogen.sh
149 ./autogen.sh
151 CFLAGS="$RPM_OPT_FLAGS $EXTRA -D_GNU_SOURCE" ./configure \
152 --prefix=%{_prefix} \
153 --localstatedir=/var \
154 --with-configdir=%{_sysconfdir}/samba \
155 --with-libdir=%{_libdir}/samba \
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 --disable-cups \
164 --with-acl-support \
165 --with-ads \
166 --with-automount \
167 --with-fhs \
168 --with-pam_smbpass \
169 --with-libsmbclient \
170 --with-libsmbsharemodes \
171 --without-smbwrapper \
172 --with-pam \
173 --with-quotas \
174 --with-shared-modules=idmap_rid,idmap_ad,idmap_tdb2 \
175 --with-syslog \
176 --with-utmp \
177 --with-cluster-support \
178 --with-ctdb=/usr/include \
179 --without-ldb \
180 --with-dnsupdate \
181 --with-aio-support
183 make showlayout
185 make CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE" proto
187 ## check for gcc 3.4 or later
188 CC_VERSION=`${CC} --version | head -1 | awk '{print $3}'`
189 CC_MAJOR=`echo ${CC_VERSION} | cut -d. -f 1`
190 CC_MINOR=`echo ${CC_VERSION} | cut -d. -f 2`
191 if [ ${CC_MAJOR} -ge 3 ]; then
192 if [ ${CC_MAJOR} -gt 3 -o ${CC_MINOR} -ge 4 ]; then
193 make pch
198 make CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE" %{?_smp_mflags} \
199 all modules pam_smbpass
201 ## build the cifs fs mount helper
202 cd client
203 gcc -o mount.cifs $RPM_OPT_FLAGS -D_GNU_SOURCE -Wall -D_GNU_SOURCE -D_LARGEFILE64_SOURCE mount.cifs.c
204 gcc -o umount.cifs $RPM_OPT_FLAGS -D_GNU_SOURCE -Wall -D_GNU_SOURCE -D_LARGEFILE64_SOURCE umount.cifs.c
205 cd ..
207 # Remove some permission bits to avoid to many dependencies
208 cd ..
209 find examples docs -type f | xargs -r chmod -x
211 %install
212 # Clean up in case there is trash left from a previous build
213 rm -rf $RPM_BUILD_ROOT
215 # Create the target build directory hierarchy
216 mkdir -p $RPM_BUILD_ROOT%{_datadir}/swat/{help,include,using_samba/{figs,gifsa}}
217 mkdir -p $RPM_BUILD_ROOT%{_includedir}
218 mkdir -p $RPM_BUILD_ROOT%{_initrddir}
219 mkdir -p $RPM_BUILD_ROOT{%{_libdir},%{_includedir}}
220 mkdir -p $RPM_BUILD_ROOT%{_libdir}/samba/{auth,charset,idmap,vfs,pdb}
221 mkdir -p $RPM_BUILD_ROOT/%{_libarch}/security
222 mkdir -p $RPM_BUILD_ROOT%{_mandir}
223 mkdir -p $RPM_BUILD_ROOT%{_prefix}/{bin,sbin}
224 mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib
225 mkdir -p $RPM_BUILD_ROOT/sbin
226 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{logrotate.d,pam.d,samba}
227 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{pam.d,logrotate.d}
228 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d
229 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{samba,sysconfig}
230 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d
231 mkdir -p $RPM_BUILD_ROOT/var/lib/samba/winbindd_privileged
232 mkdir -p $RPM_BUILD_ROOT/var/{log,run/winbindd,spool}/samba
234 cd source
235 make DESTDIR=$RPM_BUILD_ROOT \
236 install
237 cd ..
239 # pam_smbpass
240 cp source/bin/pam_smbpass.so $RPM_BUILD_ROOT/%{_libarch}/security/pam_smbpass.so
242 # NSS & PAM winbind support
243 install -m 755 source/bin/pam_winbind.so $RPM_BUILD_ROOT/%{_libarch}/security/pam_winbind.so
244 install -m 755 source/nsswitch/libnss_winbind.so $RPM_BUILD_ROOT/%{_libarch}/libnss_winbind.so
245 install -m 755 source/nsswitch/libnss_wins.so $RPM_BUILD_ROOT/%{_libarch}/libnss_wins.so
246 ( cd $RPM_BUILD_ROOT/%{_libarch};
247 ln -sf libnss_winbind.so libnss_winbind.so.2;
248 ln -sf libnss_wins.so libnss_wins.so.2 )
250 # make install puts libsmbclient.so in the wrong place on x86_64
251 rm -f $RPM_BUILD_ROOT/usr/lib*/samba/libsmbclient.so $RPM_BUILD_ROOT/usr/lib*/samba/libsmbclient.a || true
252 install -m 755 source/bin/libsmbclient.so $RPM_BUILD_ROOT%{_libdir}/libsmbclient.so
253 install -m 755 source/bin/libsmbclient.a $RPM_BUILD_ROOT%{_libdir}/libsmbclient.a
254 install -m 644 source/include/libsmbclient.h $RPM_BUILD_ROOT%{_includedir}
255 ln -s %{_libdir}/libsmbclient.so $RPM_BUILD_ROOT%{_libdir}/libsmbclient.so.0
257 # make install puts libmsrpc.so in the wrong place on x86_64
258 #rm -f $RPM_BUILD_ROOT/usr/lib*/samba/libmsrpc.so $RPM_BUILD_ROOT/usr/lib*/samba/libmsrpc.a || true
259 #install -m 755 source/bin/libmsrpc.so $RPM_BUILD_ROOT%{_libdir}/libmsrpc.so
260 #install -m 755 source/bin/libmsrpc.a $RPM_BUILD_ROOT%{_libdir}/libmsrpc.a
261 #install -m 644 source/include/libmsrpc.h $RPM_BUILD_ROOT%{_includedir}
262 #rm -f $RPM_BUILD_ROOT%{_libdir}/samba/libmsrpc.*
263 #ln -s /%{_libdir}/libmsrpc.so $RPM_BUILD_ROOT%{_libdir}/libmsrpc.so.0
265 # make install puts libsmbsharemodes.so in the wrong place on x86_64
266 rm -f $RPM_BUILD_ROOT/usr/lib*/samba/libsmbsharemodes.so $RPM_BUILD_ROOT/usr/lib*/samba/libsmbsharemodes.a || true
267 install -m 755 source/bin/libsmbsharemodes.so $RPM_BUILD_ROOT%{_libdir}/libsmbsharemodes.so
268 install -m 755 source/bin/libsmbsharemodes.a $RPM_BUILD_ROOT%{_libdir}/libsmbsharemodes.a
269 install -m 644 source/include/smb_share_modes.h $RPM_BUILD_ROOT%{_includedir}
270 rm -f $RPM_BUILD_ROOT%{_libdir}/samba/libsmbsharemodes.*
271 ln -s /%{_libdir}/libsmbsharemodes.so $RPM_BUILD_ROOT%{_libdir}/libsmbsharemodes.so.0
273 # Install pam_smbpass.so
274 install -m755 source/bin/pam_smbpass.so $RPM_BUILD_ROOT/%{_libarch}/security/pam_smbpass.so
277 ln -s %{_libdir}/samba/libwbclient.so $RPM_BUILD_ROOT/%{_libdir}/libwbclient.so.0
278 ln -s %{_libdir}/samba/libtalloc.so $RPM_BUILD_ROOT/%{_libdir}/libtalloc.so.1
279 ln -s %{_libdir}/samba/libtdb.so $RPM_BUILD_ROOT/%{_libdir}/libtdb.so.0
280 ln -s %{_libdir}/samba/libnetapi.so $RPM_BUILD_ROOT/%{_libdir}/libnetapi.so.0
282 ## cleanup
283 /bin/rm -rf $RPM_BUILD_ROOT/usr/lib*/samba/security
285 # Install the miscellany
286 echo 127.0.0.1 localhost > $RPM_BUILD_ROOT%{_sysconfdir}/samba/lmhosts
288 install -m644 setup/samba.log $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/samba
289 install -m644 setup/swat $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d/swat
290 install -m644 setup/samba.sysconfig $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/samba
291 install -m755 setup/smb.init $RPM_BUILD_ROOT%{initdir}/smb
292 install -m755 setup/winbind.init $RPM_BUILD_ROOT%{initdir}/winbind
293 install -m644 setup/samba.pamd $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/samba
294 install -m755 setup/smbprint $RPM_BUILD_ROOT%{_bindir}
295 install -m644 setup/smbusers $RPM_BUILD_ROOT%{_sysconfdir}/samba/smbusers
296 install -m644 setup/smb.conf $RPM_BUILD_ROOT%{_sysconfdir}/samba/smb.conf
297 install -m755 source/client/mount.cifs $RPM_BUILD_ROOT/sbin/mount.cifs
298 install -m755 source/client/umount.cifs $RPM_BUILD_ROOT/sbin/umount.cifs
299 install -m755 source/script/mksmbpasswd.sh $RPM_BUILD_ROOT%{_bindir}
301 /bin/rm $RPM_BUILD_ROOT%{_sbindir}/*mount.cifs
303 ln -s ../..%{initdir}/smb $RPM_BUILD_ROOT%{_sbindir}/samba
304 ln -s ../..%{initdir}/winbind $RPM_BUILD_ROOT%{_sbindir}/winbind
306 # Remove "*.old" files
307 find $RPM_BUILD_ROOT -name "*.old" -exec rm -f {} \;
309 ## don't duplicate the docs. These are installed by/with SWAT
310 rm -rf docs/htmldocs
311 rm -rf docs/manpages
312 ( cd docs; ln -s %{_prefix}/share/swat/help htmldocs )
315 ## Clean out man pages for tools not installed here
317 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/log2pcap.1*
318 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/smbsh.1*
319 rm -f $RPM_BUILD_ROOT%{_mandir}/man5/vfstest.1*
322 %clean
323 rm -rf $RPM_BUILD_ROOT
325 %post
326 ## deal with an upgrade from a broken 3.0.21b RPM
327 if [ "$1" -eq "2" ]; then
328 if [ -d /var/cache/samba ]; then
329 for file in `ls /var/cache/samba/*tdb`; do
330 /bin/cp -up $file /var/lib/samba/`basename $file`
331 done
332 mkdir -p /var/lib/samba/eventlog
333 for file in `ls /var/cache/samba/eventlog/*tdb`; do
334 /bin/cp -up $file /var/lib/samba/eventlog/`basename $file`
335 done
336 /bin/mv /var/cache/samba /var/cache/samba.moved
340 %preun
341 if [ $1 = 0 ] ; then
342 /sbin/chkconfig --del smb
343 /sbin/chkconfig --del winbind
344 # rm -rf /var/log/samba/* /var/lib/samba/*
345 /sbin/service smb stop >/dev/null 2>&1
347 exit 0
349 %postun
350 if [ "$1" -ge "1" ]; then
351 %{initdir}/smb restart >/dev/null 2>&1
355 %post swat
356 # Add swat entry to /etc/services if not already there.
357 if [ ! "`grep ^\s**swat /etc/services`" ]; then
358 echo 'swat 901/tcp # Add swat service used via inetd' >> /etc/services
361 %post common
362 /sbin/ldconfig
364 %postun common
365 /sbin/ldconfig
367 #######################################################################
368 ## Files section ##
369 #######################################################################
371 %files
372 %defattr(-,root,root)
374 %config(noreplace) %{_sysconfdir}/sysconfig/samba
375 %config(noreplace) %{_sysconfdir}/samba/smbusers
376 %attr(755,root,root) %config %{initdir}/smb
377 %attr(755,root,root) %config %{initdir}/winbind
378 %config(noreplace) %{_sysconfdir}/logrotate.d/samba
379 %config(noreplace) %{_sysconfdir}/pam.d/samba
381 %attr(0755,root,root) %dir /var/log/samba
382 %attr(0755,root,root) %dir /var/lib/samba
383 %attr(1777,root,root) %dir /var/spool/samba
385 %{_sbindir}/samba
386 %{_sbindir}/winbind
388 %{_sbindir}/smbd
389 %{_sbindir}/nmbd
391 %{_bindir}/mksmbpasswd.sh
392 %{_bindir}/smbcontrol
393 %{_bindir}/smbstatus
394 %{_bindir}/tdbbackup
395 %{_bindir}/tdbtool
396 %{_bindir}/tdbdump
397 %{_bindir}/eventlogadm
399 %{_libdir}/samba/idmap/*.so
400 %{_libdir}/samba/nss_info/*.so
401 %{_libdir}/samba/vfs/*.so
402 %{_libdir}/samba/auth/*.so
404 %{_mandir}/man1/smbcontrol.1*
405 %{_mandir}/man1/smbstatus.1*
406 %{_mandir}/man1/vfstest.1*
407 %{_mandir}/man5/smbpasswd.5*
408 %{_mandir}/man7/samba.7*
409 %{_mandir}/man8/nmbd.8*
410 %{_mandir}/man8/pdbedit.8*
411 %{_mandir}/man8/smbd.8*
412 %{_mandir}/man8/tdbbackup.8*
413 %{_mandir}/man8/tdbdump.8*
414 %{_mandir}/man8/tdbtool.8*
415 %{_mandir}/man8/eventlogadm.8*
416 %{_mandir}/man8/vfs_*.8*
417 %{_mandir}/man8/idmap_*.8*
420 ##########
422 %files doc
423 %defattr(-,root,root)
424 %doc README COPYING Manifest
425 %doc WHATSNEW.txt Roadmap
426 %doc docs
427 %doc examples/autofs examples/LDAP examples/libsmbclient examples/misc examples/printer-accounting
428 %doc examples/printing
430 ##########
432 %files swat
433 %defattr(-,root,root)
434 %config(noreplace) %{_sysconfdir}/xinetd.d/swat
435 %dir %{_datadir}/swat
436 %{_datadir}/swat/*
437 %{_sbindir}/swat
438 %{_mandir}/man8/swat.8*
439 %attr(755,root,root) %{_libdir}/samba/*.msg
441 ##########
443 %files client
444 %defattr(-,root,root)
445 /sbin/mount.cifs
446 /sbin/umount.cifs
448 %{_bindir}/rpcclient
449 %{_bindir}/smbcacls
450 %{_bindir}/findsmb
451 %{_bindir}/nmblookup
452 %{_bindir}/smbget
453 %{_bindir}/smbclient
454 %{_bindir}/smbprint
455 %{_bindir}/smbspool
456 %{_bindir}/smbtar
457 %{_bindir}/smbtree
459 %{_mandir}/man8/mount.cifs.8.*
460 %{_mandir}/man8/umount.cifs.8.*
461 %{_mandir}/man8/smbspool.8*
462 %{_mandir}/man1/smbget.1*
463 %{_mandir}/man5/smbgetrc.5*
464 %{_mandir}/man1/findsmb.1*
465 %{_mandir}/man1/nmblookup.1*
466 %{_mandir}/man1/rpcclient.1*
467 %{_mandir}/man1/smbcacls.1*
468 %{_mandir}/man1/smbclient.1*
469 %{_mandir}/man1/smbtar.1*
470 %{_mandir}/man1/smbtree.1*
472 ##########
474 %files common
475 %defattr(-,root,root)
476 %dir %{_sysconfdir}/samba
477 %dir %{_libdir}/samba
478 %dir %{_libdir}/samba/charset
479 %config(noreplace) %{_sysconfdir}/samba/smb.conf
480 %config(noreplace) %{_sysconfdir}/samba/lmhosts
481 %{_initrddir}/winbind
483 %attr(755,root,root) /%{_libarch}/libnss_wins.so*
484 %attr(755,root,root) /%{_libarch}/libnss_winbind.so*
485 %attr(755,root,root) /%{_libarch}/security/pam_winbind.so
486 %attr(755,root,root) /%{_libarch}/security/pam_smbpass.so
488 %{_includedir}/libsmbclient.h
489 %{_libdir}/libsmbclient.*
490 #%{_includedir}/libmsrpc.h
491 #%{_libdir}/libmsrpc.*
492 %{_includedir}/smb_share_modes.h
493 %{_libdir}/libsmbsharemodes.*
495 %{_libdir}/samba/*.dat
496 %{_libdir}/samba/charset/*.so
498 %{_includedir}/netapi.h
499 %{_includedir}/wbclient.h
500 %{_includedir}/talloc.h
501 %{_includedir}/tdb.h
502 %{_libdir}/samba/libnetapi.so*
503 %{_libdir}/libnetapi.so*
504 %{_libdir}/samba/libtalloc.so*
505 %{_libdir}/libtalloc.so*
506 %{_libdir}/samba/libtdb.so*
507 %{_libdir}/libtdb.so*
508 %{_libdir}/samba/libwbclient.so*
509 %{_libdir}/libwbclient.so*
511 %{_sbindir}/winbindd
512 %{_bindir}/testparm
513 %{_bindir}/smbpasswd
514 %{_bindir}/profiles
515 %{_bindir}/net
516 %{_bindir}/ldbadd
517 %{_bindir}/ldbdel
518 %{_bindir}/ldbedit
519 %{_bindir}/ldbmodify
520 %{_bindir}/ldbsearch
521 %{_bindir}/wbinfo
522 %{_bindir}/ntlm_auth
523 %{_bindir}/pdbedit
524 %{_bindir}/smbcquotas
526 %{_mandir}/man1/ntlm_auth.1*
527 %{_mandir}/man1/profiles.1*
528 %{_mandir}/man1/smbcquotas.1*
529 %{_mandir}/man1/testparm.1*
530 %{_mandir}/man5/smb.conf.5*
531 %{_mandir}/man5/lmhosts.5*
532 %{_mandir}/man8/smbpasswd.8*
533 %{_mandir}/man1/wbinfo.1*
534 %{_mandir}/man8/winbindd.8*
535 %{_mandir}/man8/net.8*
536 %{_mandir}/man7/pam_winbind.7*
537 %{_mandir}/man7/libsmbclient.7*
539 %ifarch i386 i486 i586 i686 ppc s390
540 %files winbind-32bit
541 %attr(755,root,root) /%{_libarch}/libnss_winbind.so*
542 %attr(755,root,root) /%{_libarch}/libnss_wins.so*
543 %attr(755,root,root) /%{_libarch}/security/pam_winbind.so
544 %endif
548 %changelog
549 * Fri Jan 16 2004 Gerald (Jerry) Carter <jerry@samba,org>
550 - Removed ChangeLog entries since they are kept in CVS