packaging: Remove long-gone --disable-merged-build from RHEL-CTDB packaging
[Samba/vl.git] / packaging / RHEL-CTDB / samba.spec.tmpl
blobe79674f46749b2d1ba27be599f4176bf9cc54582
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:      PVERSION
9 Release:      1GITHASH
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 Source998: filter-requires-samba.sh
19 Source999: setup.tar.bz2
21 Requires: /sbin/chkconfig /bin/mktemp /usr/bin/killall
22 Requires: fileutils sed /etc/init.d
24 Requires: pam >= 0.64 %{auth} 
25 Requires: samba-common = %{version}-%{release}
26 Provides: samba = %{version}
28 Prefix: /usr
29 BuildRoot: %{_tmppath}/%{name}-%{version}-root
30 BuildRequires: pam-devel, readline-devel, fileutils, libacl-devel, openldap-devel, krb5-devel, cups-devel, e2fsprogs-devel, gettext
31 # requirements for building the man pages:
32 BuildRequires: libxslt, docbook-utils, docbook-style-xsl, rsync
33 BuildRequires: ctdb-devel >= 1.2.25
35 # Working around perl dependency problem from docs
36 %define __perl_requires %{SOURCE998}
38 # rpm screws up the arch lib dir when using --target on RHEL5
39 %ifarch i386 i486 i586 i686 ppc s390
40 %define _libarch lib
41 %else
42 %define _libarch %_lib
43 %endif
45 %define _libarchdir /usr/%{_libarch}
47 %define numcpu  %(grep "^processor" /proc/cpuinfo |wc -l | sed -e 's/^0$/1/')
49 %define with_vfs_gpfs PGPFS_DEFAULT
50 %define with_vfs_tsmsm PGPFS_DEFAULT
52 %if %{with_vfs_tsmsm}
53 %define         vfs_tsmsm       ,vfs_tsmsm
54 %endif
56 %if %{with_vfs_gpfs}
57 %define         vfs_gpfs        ,vfs_gpfs
58 %endif
60 %define         vfs_modules %{?vfs_gpfs}%{?vfs_tsmsm}
62 %define         shared_modules idmap_rid,idmap_ad,idmap_tdb2%{vfs_modules}
64 %description
65 Samba is the protocol by which a lot of PC-related machines share
66 files, printers, and other information (such as lists of available
67 files and printers). The Windows NT, OS/2, and Linux operating systems
68 support this natively, and add-on packages can enable the same thing
69 for DOS, Windows, VMS, UNIX of all kinds, MVS, and more. This package
70 provides an SMB server that can be used to provide network services to
71 SMB (sometimes called "Lan Manager") clients. Samba uses NetBIOS over
72 TCP/IP (NetBT) protocols and does NOT need the NetBEUI (Microsoft Raw
73 NetBIOS frame) protocol.
76 ######################################################################
77 %package client
78 Summary: Samba (SMB) client programs.
79 Group: Applications/System
80 Requires: samba-common = %{version}-%{release}
81 Obsoletes: smbfs
82 Provides: samba-client = %{version}-%{release}
84 %description client
85 The samba-client package provides some SMB clients to compliment the
86 built-in SMB filesystem in Linux. These clients allow access of SMB
87 shares and printing to SMB printers.
90 #######################################################################
91 %package common
92 Summary: Files used by both Samba servers and clients.
93 Group: Applications/System
94 Provides: samba-common = %{version}-%{release}
96 %description common
97 Samba-common provides files necessary for both the server and client
98 packages of Samba.
102 #######################################################################
103 %package swat
104 Summary: The Samba SMB server configuration program.
105 Group: Applications/System
106 Requires: samba = %{version} xinetd
107 Provides: samba-swat = %{version}-%{release}
109 %description swat
110 The samba-swat package includes the new SWAT (Samba Web Administration
111 Tool), for remotely managing Samba's smb.conf file using your favorite
112 Web browser.
115 #######################################################################
116 %package doc
117 Summary:      Samba Documentation
118 Group:        Documentation/Other
119 Provides:     samba-doc = %{version}-%{release}
120 Requires:       /usr/bin/find /bin/rm /usr/bin/xargs
122 %description doc
123 The samba-doc package includes the HTML versions of the Samba manpages
124 utilized by SWAT as well as the HTML and PDF version of "Using Samba",
125 "Samba By Example", and "The Official Samba HOWTO and Reference Guide".
128 #######################################################################
130 %prep
131 %setup -q
133 # setup the vendor files (init scripts, etc...)
134 %setup -T -D -a 999 -n samba-%{version} -q
136 %build
138 /bin/cp setup/filter-requires-samba.sh %{SOURCE998}
140 cd source3
141 # RPM_OPT_FLAGS="$RPM_OPT_FLAGS -D_FILE_OFFSET_BITS=64"
143 ## check for ccache
144 if ccache -h >/dev/null 2>&1 ; then
145         CC="ccache gcc"
146 else
147         CC="gcc"
150 export CC
152 ## always run autogen.sh
153 ./autogen.sh
155 CFLAGS="$RPM_OPT_FLAGS $EXTRA -D_GNU_SOURCE" ./configure \
156         --prefix=%{_prefix} \
157         --localstatedir=/var \
158         --with-configdir=%{_sysconfdir}/samba \
159         --libdir=%{_libarchdir} \
160         --with-modulesdir=%{_libarchdir}/samba \
161         --with-pammodulesdir=/%{_libarch}/security \
162         --with-lockdir=/var/lib/samba \
163         --with-logfilebase=/var/log/samba \
164         --mandir=%{_mandir} \
165         --with-piddir=/var/run \
166         --with-privatedir=%{_sysconfdir}/samba \
167         --disable-cups \
168         --with-acl-support \
169         --with-ads \
170         --with-automount \
171         --enable-fhs \
172         --with-pam_smbpass \
173         --with-libsmbclient \
174         --with-libsmbsharemodes \
175         --without-smbwrapper \
176         --with-pam \
177         --with-quotas \
178         --with-shared-modules=%{shared_modules} \
179         --with-syslog \
180         --with-utmp \
181         --with-cluster-support \
182         --with-ctdb=/usr/include \
183         --without-ldb \
184         --without-dnsupdate \
185         --with-aio-support \
186         --disable-external-libtalloc \
187         --disable-external-libtdb
189 make showlayout
191 ## check for gcc 3.4 or later
192 CC_VERSION=`${CC} --version | head -1 | awk '{print $3}'`
193 CC_MAJOR=`echo ${CC_VERSION} | cut -d. -f 1`
194 CC_MINOR=`echo ${CC_VERSION} | cut -d. -f 2`
195 if [ ${CC_MAJOR} -ge 3 ]; then
196         if [ ${CC_MAJOR} -gt 3 -o ${CC_MINOR} -ge 4 ]; then
197                 make pch
198         fi
202 make -j %{numcpu} %{?_smp_mflags} \
203         everything modules pam_smbpass
205 # check that desired suppor has been compiled into smbd:
206 export LD_LIBRARY_PATH=./bin
208 HAVE_VARS="HAVE_POSIX_ACLS HAVE_LDAP HAVE_KRB5 CLUSTER_SUPPORT"
209 %if %{with_vfs_gpfs}
210         HAVE_VARS="${HAVE_VARS} HAVE_GPFS"
211 %endif
212 for test in ${HAVE_VARS}
214         if ! $(./bin/smbd -b | grep -q $test ) ; then
215                 echo "ERROR: '$test' is not in smbd. Build stopped."
216                 exit 1;
217         fi
218 done
220 # try and build the manpages
221 cd ..
222 ./release-scripts/build-manpages-nogit
224 # Remove some permission bits to avoid to many dependencies
225 find examples docs -type f | xargs -r chmod -x
227 %install
228 # Clean up in case there is trash left from a previous build
229 rm -rf $RPM_BUILD_ROOT
231 # Create the target build directory hierarchy
232 mkdir -p $RPM_BUILD_ROOT%{_datadir}/samba/swat/{help,include,using_samba/{figs,gifsa}}
233 mkdir -p $RPM_BUILD_ROOT%{_includedir}
234 mkdir -p $RPM_BUILD_ROOT%{_initrddir}
235 mkdir -p $RPM_BUILD_ROOT{%{_libarchdir},%{_includedir}}
236 mkdir -p $RPM_BUILD_ROOT%{_libarchdir}/samba/{auth,charset,idmap,vfs,pdb}
237 mkdir -p $RPM_BUILD_ROOT/%{_libarch}/security
238 mkdir -p $RPM_BUILD_ROOT/lib/security
239 mkdir -p $RPM_BUILD_ROOT%{_mandir}
240 mkdir -p $RPM_BUILD_ROOT%{_prefix}/{bin,sbin}
241 mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib
242 mkdir -p $RPM_BUILD_ROOT/sbin
243 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{pam.d,samba}
244 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{pam.d}
245 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d
246 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{samba,sysconfig}
247 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d
248 mkdir -p $RPM_BUILD_ROOT/var/lib/samba/winbindd_privileged
249 mkdir -p $RPM_BUILD_ROOT/var/{log,run/winbindd,spool}/samba
250 mkdir -p $RPM_BUILD_ROOT/%{_libarchdir}/krb5/plugins/libkrb5
252 cd source3
253 make DESTDIR=$RPM_BUILD_ROOT \
254         install
256 make DESTDIR=$RPM_BUILD_ROOT \
257         install-dbwrap_tool install-dbwrap_torture
258 cd ..
260 # NSS winbind support
261 install -m 755 nsswitch/libnss_winbind.so $RPM_BUILD_ROOT/%{_libarch}/libnss_winbind.so.2
262 ( cd $RPM_BUILD_ROOT/%{_libarch};
263   ln -sf libnss_winbind.so.2  libnss_winbind.so )
265 # do not install libnss_wins.so in order to reduce dependencies
266 # (we do not need it for the samba-ctdb scenario)
268 #install -m 755 nsswitch/libnss_wins.so $RPM_BUILD_ROOT/%{_libarch}/libnss_wins.so
269 # ( cd $RPM_BUILD_ROOT/%{_libarch}; ln -sf libnss_wins.so  libnss_wins.so.2 )
271 cp -p source3/bin/winbind_krb5_locator.so ${RPM_BUILD_ROOT}/%{_libarchdir}/krb5/plugins/libkrb5
274 ## cleanup
275 /bin/rm -rf $RPM_BUILD_ROOT/usr/lib*/samba/security
277 # remove installed but unpackaged files:
278 /bin/rm -f $RPM_BUILD_ROOT/usr/lib*/libtalloc.so
279 /bin/rm -f $RPM_BUILD_ROOT/usr/lib*/libtdb.so
280 /bin/rm -f $RPM_BUILD_ROOT/usr/lib*/samba/perfcount/pc_test.so
283 # Install the miscellany
284 echo 127.0.0.1 localhost > $RPM_BUILD_ROOT%{_sysconfdir}/samba/lmhosts
286 install -m644 setup/swat $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d/swat
287 install -m644 setup/samba.sysconfig $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/samba
288 install -m755 setup/smb.init $RPM_BUILD_ROOT%{initdir}/smb
289 install -m755 setup/winbind.init $RPM_BUILD_ROOT%{initdir}/winbind
290 install -m644 setup/samba.pamd $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/samba
291 install -m755 packaging/printing/smbprint $RPM_BUILD_ROOT%{_bindir}
292 install -m644 setup/smbusers $RPM_BUILD_ROOT%{_sysconfdir}/samba/smbusers
293 install -m644 setup/smb.conf $RPM_BUILD_ROOT%{_sysconfdir}/samba/smb.conf
294 install -m755 source3/script/mksmbpasswd.sh $RPM_BUILD_ROOT%{_bindir}
296 ln -s ../..%{initdir}/smb  $RPM_BUILD_ROOT%{_sbindir}/samba
297 ln -s ../..%{initdir}/winbind  $RPM_BUILD_ROOT%{_sbindir}/winbind
299 # Remove "*.old" files
300 find $RPM_BUILD_ROOT -name "*.old" -exec rm -f {} \;
304 ## Clean out man pages for tools not installed here
306 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/log2pcap.1*
307 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/smbsh.1*
308 rm -f $RPM_BUILD_ROOT%{_mandir}/man5/vfstest.1*
311 %clean
312 rm -rf $RPM_BUILD_ROOT
314 %post
315 ## deal with an upgrade from a broken 3.0.21b RPM
316 if [ "$1" -eq "2" ]; then
317         if [ -d /var/cache/samba ]; then
318                 for file in `ls /var/cache/samba/*tdb`; do
319                         /bin/cp -up $file /var/lib/samba/`basename $file`
320                 done
321                 mkdir -p /var/lib/samba/eventlog
322                 for file in `ls /var/cache/samba/eventlog/*tdb`; do
323                         /bin/cp -up $file /var/lib/samba/eventlog/`basename $file`
324                 done
325                 /bin/mv /var/cache/samba /var/cache/samba.moved
326         fi
329 if [ "$1" -ge "1" ]; then
330         /sbin/service smb condrestart >/dev/null 2>&1 || :
333 %preun
334 if [ $1 = 0 ] ; then
335     /sbin/service smb stop >/dev/null 2>&1 || :
336     /sbin/chkconfig --del smb
337     # rm -rf /var/log/samba/* /var/lib/samba/*
339 exit 0
341 #%postun
343 %post swat
344 # Add swat entry to /etc/services if not already there.
345 if [ ! "`grep ^\s**swat /etc/services`" ]; then
346         echo 'swat        901/tcp     # Add swat service used via inetd' >> /etc/services
349 %post common
350 /sbin/ldconfig
352 if [ "$1" -ge "1" ]; then
353         /sbin/service winbind condrestart >/dev/null 2>&1 || :
356 %preun common
357 if [ $1 = 0 ] ; then
358     /sbin/service winbind stop >/dev/null 2>&1 || :
359     /sbin/chkconfig --del winbind
361 exit 0
363 %postun common 
364 /sbin/ldconfig
366 #######################################################################
367 ## Files section                                                     ##
368 #######################################################################
370 %files
371 %defattr(-,root,root)
373 %config(noreplace) %{_sysconfdir}/sysconfig/samba
374 %config(noreplace) %{_sysconfdir}/samba/smbusers
375 %attr(755,root,root) %config %{initdir}/smb
376 %config(noreplace) %{_sysconfdir}/pam.d/samba
378 %attr(0755,root,root) %dir /var/log/samba
379 %attr(0755,root,root) %dir /var/lib/samba
380 %attr(1777,root,root) %dir /var/spool/samba
382 %{_sbindir}/samba
384 %{_sbindir}/smbd
385 %{_sbindir}/nmbd
387 %{_bindir}/mksmbpasswd.sh
388 %{_bindir}/smbcontrol
389 %{_bindir}/smbstatus
390 %{_bindir}/tdbbackup
391 %{_bindir}/tdbtool
392 %{_bindir}/tdbdump
393 %{_bindir}/tdbrestore
394 %{_bindir}/eventlogadm
396 %{_libarchdir}/samba/auth/script.so
397 %{_libarchdir}/samba/vfs/acl_tdb.so
398 %{_libarchdir}/samba/vfs/acl_xattr.so
399 %{_libarchdir}/samba/vfs/aio_fork.so
400 %{_libarchdir}/samba/vfs/audit.so
401 %{_libarchdir}/samba/vfs/cap.so
402 %{_libarchdir}/samba/vfs/catia.so
403 %{_libarchdir}/samba/vfs/crossrename.so
404 %{_libarchdir}/samba/vfs/default_quota.so
405 %{_libarchdir}/samba/vfs/dirsort.so
406 %{_libarchdir}/samba/vfs/expand_msdfs.so
407 %{_libarchdir}/samba/vfs/extd_audit.so
408 %{_libarchdir}/samba/vfs/fake_perms.so
409 %{_libarchdir}/samba/vfs/fileid.so
410 %{_libarchdir}/samba/vfs/full_audit.so
411 %if %{with_vfs_gpfs}
412 %{_libarchdir}/samba/vfs/gpfs.so
413 %endif
414 %{_libarchdir}/samba/vfs/linux_xfs_sgid.so
415 %{_libarchdir}/samba/vfs/netatalk.so
416 %{_libarchdir}/samba/vfs/preopen.so
417 %{_libarchdir}/samba/vfs/readahead.so
418 %{_libarchdir}/samba/vfs/readonly.so
419 %{_libarchdir}/samba/vfs/recycle.so
420 %{_libarchdir}/samba/vfs/scannedonly.so
421 %{_libarchdir}/samba/vfs/shadow_copy.so
422 %{_libarchdir}/samba/vfs/shadow_copy2.so
423 %{_libarchdir}/samba/vfs/smb_traffic_analyzer.so
424 %{_libarchdir}/samba/vfs/streams_depot.so
425 %{_libarchdir}/samba/vfs/streams_xattr.so
426 %{_libarchdir}/samba/vfs/syncops.so
427 %{_libarchdir}/samba/vfs/time_audit.so
428 %if %{with_vfs_tsmsm}
429 %{_libarchdir}/samba/vfs/tsmsm.so
430 %endif
431 %{_libarchdir}/samba/vfs/xattr_tdb.so
432 %{_libarchdir}/samba/vfs/aio_posix.so
433 %{_libarchdir}/samba/vfs/aio_pthread.so
434 %{_libarchdir}/samba/vfs/media_harmony.so
436 %{_mandir}/man1/smbcontrol.1*
437 %{_mandir}/man1/smbstatus.1*
438 %{_mandir}/man1/vfstest.1*
439 %{_mandir}/man5/smbpasswd.5*
440 %{_mandir}/man5/pam_winbind.conf.5*
441 %{_mandir}/man7/samba.7*
442 %{_mandir}/man8/nmbd.8*
443 %{_mandir}/man8/pdbedit.8*
444 %{_mandir}/man8/smbd.8*
445 %{_mandir}/man8/eventlogadm.8*
446 %{_mandir}/man8/vfs_*.8*
447 %{_mandir}/man8/smbta-util.8*
450 ##########
452 %files doc
453 %defattr(-,root,root)
454 %doc README
455 %doc COPYING
456 %doc WHATSNEW.txt
457 %doc Roadmap
458 %doc docs-xml/archives/THANKS
459 %doc docs-xml/archives/history
460 %doc docs-xml/registry
461 %doc examples/autofs
462 %doc examples/LDAP
463 %doc examples/libsmbclient
464 %doc examples/misc
465 %doc examples/printer-accounting
466 %doc examples/printing
468 ##########
470 %files swat
471 %defattr(-,root,root)
472 %config(noreplace) %{_sysconfdir}/xinetd.d/swat
473 %dir %{_datadir}/samba/swat
474 %{_datadir}/samba/swat/*
475 %{_sbindir}/swat
476 %{_mandir}/man8/swat.8*
477 %attr(755,root,root) %{_datadir}/samba/codepages/*.msg
479 ##########
481 %files client
482 %defattr(-,root,root)
484 %{_bindir}/rpcclient
485 %{_bindir}/smbcacls
486 %{_bindir}/findsmb
487 %{_bindir}/nmblookup
488 %{_bindir}/smbget
489 %{_bindir}/smbclient
490 %{_bindir}/smbprint
491 %{_bindir}/smbspool
492 %{_bindir}/smbtar
493 %{_bindir}/smbtree
494 %{_bindir}/sharesec
495 %{_bindir}/smbta-util
497 %{_mandir}/man8/smbspool.8*
498 %{_mandir}/man1/smbget.1*
499 %{_mandir}/man5/smbgetrc.5*
500 %{_mandir}/man1/findsmb.1*
501 %{_mandir}/man1/nmblookup.1*
502 %{_mandir}/man1/rpcclient.1*
503 %{_mandir}/man1/smbcacls.1*
504 %{_mandir}/man1/smbclient.1*
505 %{_mandir}/man1/smbtar.1*
506 %{_mandir}/man1/smbtree.1*
507 %{_mandir}/man1/sharesec.1*
509 ##########
512 %files common
513 %defattr(-,root,root)
514 %dir %{_sysconfdir}/samba
515 %dir %{_libarchdir}/samba
516 %dir %{_libarchdir}/samba/charset
517 %config(noreplace) %{_sysconfdir}/samba/smb.conf
518 %config(noreplace) %{_sysconfdir}/samba/lmhosts
519 %attr(755,root,root) %config %{initdir}/winbind
521 %attr(755,root,root) /%{_libarch}/libnss_winbind.so
522 %attr(755,root,root) /%{_libarch}/libnss_winbind.so.2
523 %attr(755,root,root) /%{_libarch}/security/pam_winbind.so
524 %attr(755,root,root) /%{_libarch}/security/pam_smbpass.so
525 /usr/share/locale/*/LC_MESSAGES/pam_winbind.mo
526 /usr/share/locale/*/LC_MESSAGES/net.mo
528 %{_libarchdir}/samba/idmap/ad.so
529 %{_libarchdir}/samba/idmap/rid.so
530 %{_libarchdir}/samba/idmap/tdb2.so
531 %{_libarchdir}/samba/idmap/autorid.so
532 %{_libarchdir}/samba/idmap/hash.so
533 %{_libarchdir}/samba/nss_info/hash.so
534 %{_libarchdir}/samba/nss_info/rfc2307.so
535 %{_libarchdir}/samba/nss_info/sfu.so
536 %{_libarchdir}/samba/nss_info/sfu20.so
537 %{_datadir}/samba/codepages/lowcase.dat
538 %{_datadir}/samba/codepages/upcase.dat
539 %{_datadir}/samba/codepages/valid.dat
541 %{_includedir}/libsmbclient.h
542 %{_libarchdir}/libsmbclient.*
543 %{_includedir}/smb_share_modes.h
544 %{_libarchdir}/libsmbsharemodes.so
545 %{_libarchdir}/libsmbsharemodes.so.0
547 %{_includedir}/netapi.h
548 %{_includedir}/wbclient.h
549 %{_libarchdir}/libnetapi.so
550 %{_libarchdir}/libnetapi.so.0
551 %{_libarchdir}/libwbclient.so
552 %{_libarchdir}/libwbclient.so.0
554 %{_libarchdir}/krb5/plugins/libkrb5/winbind_krb5_locator.so
556 %{_sbindir}/winbind
558 %{_sbindir}/winbindd
559 %{_bindir}/testparm
560 %{_bindir}/smbpasswd
561 %{_bindir}/profiles
562 %{_bindir}/net
563 %{_bindir}/wbinfo
564 %{_bindir}/ntlm_auth
565 %{_bindir}/pdbedit
566 %{_bindir}/smbcquotas
567 %{_bindir}/dbwrap_tool
568 %{_bindir}/dbwrap_torture
570 %{_mandir}/man1/ntlm_auth.1*
571 %{_mandir}/man1/profiles.1*
572 %{_mandir}/man1/smbcquotas.1*
573 %{_mandir}/man1/testparm.1*
574 %{_mandir}/man5/smb.conf.5*
575 %{_mandir}/man5/lmhosts.5*
576 %{_mandir}/man8/smbpasswd.8*
577 %{_mandir}/man1/wbinfo.1*
578 %{_mandir}/man8/winbindd.8*
579 %{_mandir}/man8/net.8*
580 %{_mandir}/man8/pam_winbind.8*
581 %{_mandir}/man7/libsmbclient.7*
582 %{_mandir}/man7/winbind_krb5_locator.7*
583 %{_mandir}/man8/idmap_*.8*
587 %changelog
588 * Fri Jan 16 2004 Gerald (Jerry) Carter <jerry@samba,org>
589 - Removed ChangeLog entries since they are kept in CVS