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
6 Packager: Samba Team <samba@samba.org>
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}
29 BuildRoot: %{_tmppath}/%{name}-%{version}-root
30 BuildRequires: pam-devel, readline-devel, fileutils, libacl-devel, openldap-devel, krb5-devel, cups-devel, e2fsprogs-devel
31 # requirements for building the man pages:
32 BuildRequires: libxslt, docbook-utils, docbook-style-xsl
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
42 %define _libarch %_lib
45 %define _libarchdir /usr/%{_libarch}
47 %define numcpu %(grep "^processor" /proc/cpuinfo |wc -l | sed -e 's/^0$/1/')
50 Samba is the protocol by which a lot of PC-related machines share
51 files, printers, and other information (such as lists of available
52 files and printers). The Windows NT, OS/2, and Linux operating systems
53 support this natively, and add-on packages can enable the same thing
54 for DOS, Windows, VMS, UNIX of all kinds, MVS, and more. This package
55 provides an SMB server that can be used to provide network services to
56 SMB (sometimes called "Lan Manager") clients. Samba uses NetBIOS over
57 TCP/IP (NetBT) protocols and does NOT need the NetBEUI (Microsoft Raw
58 NetBIOS frame) protocol.
61 ######################################################################
63 Summary: Samba (SMB) client programs.
64 Group: Applications/System
65 Requires: samba-common = %{version}-%{release}
67 Provides: samba-client = %{version}-%{release}
70 The samba-client package provides some SMB clients to compliment the
71 built-in SMB filesystem in Linux. These clients allow access of SMB
72 shares and printing to SMB printers.
75 #######################################################################
77 Summary: Files used by both Samba servers and clients.
78 Group: Applications/System
79 Provides: samba-common = %{version}-%{release}
82 Samba-common provides files necessary for both the server and client
86 #######################################################################
88 Summary: The Samba SMB server configuration program.
89 Group: Applications/System
90 Requires: samba = %{version} xinetd
91 Provides: samba-swat = %{version}-%{release}
94 The samba-swat package includes the new SWAT (Samba Web Administration
95 Tool), for remotely managing Samba's smb.conf file using your favorite
99 %package winbind-32bit
100 Summary: Samba winbind compatibility package for 32bit apps on 64bit archs
101 Group: Applications/System
103 %description winbind-32bit
104 Compatibility package for 32 bit apps on 64 bit architecures
108 #######################################################################
110 Summary: Samba Documentation
111 Group: Documentation/Other
112 Provides: samba-doc = %{version}-%{release}
113 Requires: /usr/bin/find /bin/rm /usr/bin/xargs
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".
121 #######################################################################
126 # setup the vendor files (init scripts, etc...)
127 %setup -T -D -a 999 -n samba-%{version} -q
131 /bin/cp setup/filter-requires-samba.sh %{SOURCE998}
134 # RPM_OPT_FLAGS="$RPM_OPT_FLAGS -D_FILE_OFFSET_BITS=64"
137 if ccache -h >/dev/null 2>&1 ; then
145 ## always run autogen.sh
150 ## build the files for the winbind-32bit compat package
151 ## and copy them to a safe location
155 # a directory to store the 32bit compatibility modules for later install
156 %define _32bit_tmp_dir %{_tmppath}/%{name}-%{version}-32bit
161 CFLAGS="$RPM_OPT_FLAGS -O3 -D_GNU_SOURCE -m32" ./configure \
162 --prefix=%{_prefix} \
163 --localstatedir=/var \
164 --with-configdir=%{_sysconfdir}/samba \
165 --with-libdir=/usr/lib/samba \
166 --with-pammodulesdir=/lib/security \
167 --with-lockdir=/var/lib/samba \
168 --with-logfilebase=/var/log/samba \
169 --with-mandir=%{_mandir} \
170 --with-piddir=/var/run \
171 --with-privatedir=%{_sysconfdir}/samba \
178 --with-libsmbclient \
179 --with-libsmbsharemodes \
180 --without-smbwrapper \
185 --with-cluster-support \
186 --with-ctdb=/usr/include \
188 --without-dnsupdate \
190 --disable-merged-build
196 ## check for gcc 3.4 or later
197 CC_VERSION=`${CC} --version | head -1 | awk '{print $3}'`
198 CC_MAJOR=`echo ${CC_VERSION} | cut -d. -f 1`
199 CC_MINOR=`echo ${CC_VERSION} | cut -d. -f 2`
200 if [ ${CC_MAJOR} -ge 3 ]; then
201 if [ ${CC_MAJOR} -gt 3 -o ${CC_MINOR} -ge 4 ]; then
206 make -j%{numcpu} %{?_smp_mflags} \
207 nss_modules pam_modules
209 rm -rf %{_32bit_tmp_dir}
210 mkdir %{_32bit_tmp_dir}
212 mv ../nsswitch/libnss_winbind.so %{_32bit_tmp_dir}/
213 mv bin/pam_winbind.so %{_32bit_tmp_dir}/
214 mv bin/libtalloc.so* %{_32bit_tmp_dir}/
215 mv bin/libtdb.so* %{_32bit_tmp_dir}/
216 mv bin/libwbclient.so* %{_32bit_tmp_dir}/
224 CFLAGS="$RPM_OPT_FLAGS $EXTRA -D_GNU_SOURCE" ./configure \
225 --prefix=%{_prefix} \
226 --localstatedir=/var \
227 --with-configdir=%{_sysconfdir}/samba \
228 --libdir=%{_libarchdir} \
229 --with-modulesdir=%{_libarchdir}/samba \
230 --with-pammodulesdir=%{_libarch}/security \
231 --with-lockdir=/var/lib/samba \
232 --with-logfilebase=/var/log/samba \
233 --with-mandir=%{_mandir} \
234 --with-piddir=/var/run \
235 --with-privatedir=%{_sysconfdir}/samba \
236 --with-sambabook=%{_datadir}/swat/using_samba \
237 --with-swatdir=%{_datadir}/swat \
244 --with-libsmbclient \
245 --with-libsmbsharemodes \
246 --without-smbwrapper \
249 --with-shared-modules=idmap_rid,idmap_ad,idmap_tdb2,vfs_gpfs,vfs_tsmsm,vfs_gpfs_hsm_notify \
252 --with-cluster-support \
253 --with-ctdb=/usr/include \
255 --without-dnsupdate \
257 --disable-merged-build
261 ## check for gcc 3.4 or later
262 CC_VERSION=`${CC} --version | head -1 | awk '{print $3}'`
263 CC_MAJOR=`echo ${CC_VERSION} | cut -d. -f 1`
264 CC_MINOR=`echo ${CC_VERSION} | cut -d. -f 2`
265 if [ ${CC_MAJOR} -ge 3 ]; then
266 if [ ${CC_MAJOR} -gt 3 -o ${CC_MINOR} -ge 4 ]; then
272 make -j %{numcpu} %{?_smp_mflags} \
273 everything modules pam_smbpass
275 # check that desired suppor has been compiled into smbd:
276 export LD_LIBRARY_PATH=./bin
277 for test in HAVE_POSIX_ACLS HAVE_LDAP HAVE_KRB5 HAVE_GPFS CLUSTER_SUPPORT
279 if ! $(./bin/smbd -b | grep -q $test ) ; then
280 echo "ERROR: '$test' is not in smbd. Build stopped."
285 # try and build the manpages
287 ./release-scripts/build-manpages-nogit
289 # Remove some permission bits to avoid to many dependencies
290 find examples docs -type f | xargs -r chmod -x
293 # Clean up in case there is trash left from a previous build
294 rm -rf $RPM_BUILD_ROOT
296 # Create the target build directory hierarchy
297 mkdir -p $RPM_BUILD_ROOT%{_datadir}/swat/{help,include,using_samba/{figs,gifsa}}
298 mkdir -p $RPM_BUILD_ROOT%{_includedir}
299 mkdir -p $RPM_BUILD_ROOT%{_initrddir}
300 mkdir -p $RPM_BUILD_ROOT{%{_libarchdir},%{_includedir}}
301 mkdir -p $RPM_BUILD_ROOT%{_libarchdir}/samba/{auth,charset,idmap,vfs,pdb}
302 mkdir -p $RPM_BUILD_ROOT/%{_libarch}/security
303 mkdir -p $RPM_BUILD_ROOT/lib/security
304 mkdir -p $RPM_BUILD_ROOT%{_mandir}
305 mkdir -p $RPM_BUILD_ROOT%{_prefix}/{bin,sbin}
306 mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib
307 mkdir -p $RPM_BUILD_ROOT/sbin
308 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{pam.d,samba}
309 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{pam.d}
310 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d
311 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{samba,sysconfig}
312 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d
313 mkdir -p $RPM_BUILD_ROOT/var/lib/samba/winbindd_privileged
314 mkdir -p $RPM_BUILD_ROOT/var/{log,run/winbindd,spool}/samba
315 mkdir -p $RPM_BUILD_ROOT/%{_libarchdir}/krb5/plugins/libkrb5
318 make DESTDIR=$RPM_BUILD_ROOT \
321 make DESTDIR=$RPM_BUILD_ROOT \
322 install-dbwrap_tool install-dbwrap_torture
325 # NSS winbind support
326 install -m 755 nsswitch/libnss_winbind.so $RPM_BUILD_ROOT/%{_libarch}/libnss_winbind.so.2
327 ( cd $RPM_BUILD_ROOT/%{_libarch};
328 ln -sf libnss_winbind.so.2 libnss_winbind.so )
330 # do not install libnss_wins.so in order to reduce dependencies
331 # (we do not need it for the samba-ctdb scenario)
333 #install -m 755 nsswitch/libnss_wins.so $RPM_BUILD_ROOT/%{_libarch}/libnss_wins.so
334 # ( cd $RPM_BUILD_ROOT/%{_libarch}; ln -sf libnss_wins.so libnss_wins.so.2 )
336 cp -p source3/bin/winbind_krb5_locator.so ${RPM_BUILD_ROOT}/%{_libarchdir}/krb5/plugins/libkrb5
338 # install files for winbind-32bit package
341 install -m 755 %{_32bit_tmp_dir}/libnss_winbind.so ${RPM_BUILD_ROOT}/lib/libnss_winbind.so.2
342 ( cd ${RPM_BUILD_ROOT}/lib; ln -sf libnss_winbind.so.2 libnss_winbind.so )
344 mv %{_32bit_tmp_dir}/libtalloc* ${RPM_BUILD_ROOT}/usr/lib
345 mv %{_32bit_tmp_dir}/libtdb* ${RPM_BUILD_ROOT}/usr/lib
346 mv %{_32bit_tmp_dir}/libwbclient* ${RPM_BUILD_ROOT}/usr/lib
347 mv %{_32bit_tmp_dir}/pam_winbind.so ${RPM_BUILD_ROOT}/lib/security
349 rm -rf %{_32bit_tmp_dir}
354 /bin/rm -rf $RPM_BUILD_ROOT/usr/lib*/samba/security
356 # Install the miscellany
357 echo 127.0.0.1 localhost > $RPM_BUILD_ROOT%{_sysconfdir}/samba/lmhosts
359 install -m644 setup/swat $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d/swat
360 install -m644 setup/samba.sysconfig $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/samba
361 install -m755 setup/smb.init $RPM_BUILD_ROOT%{initdir}/smb
362 install -m755 setup/winbind.init $RPM_BUILD_ROOT%{initdir}/winbind
363 install -m644 setup/samba.pamd $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/samba
364 install -m755 setup/smbprint $RPM_BUILD_ROOT%{_bindir}
365 install -m644 setup/smbusers $RPM_BUILD_ROOT%{_sysconfdir}/samba/smbusers
366 install -m644 setup/smb.conf $RPM_BUILD_ROOT%{_sysconfdir}/samba/smb.conf
367 install -m755 source3/script/mksmbpasswd.sh $RPM_BUILD_ROOT%{_bindir}
369 ln -s ../..%{initdir}/smb $RPM_BUILD_ROOT%{_sbindir}/samba
370 ln -s ../..%{initdir}/winbind $RPM_BUILD_ROOT%{_sbindir}/winbind
372 # Remove "*.old" files
373 find $RPM_BUILD_ROOT -name "*.old" -exec rm -f {} \;
377 ## Clean out man pages for tools not installed here
379 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/log2pcap.1*
380 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/smbsh.1*
381 rm -f $RPM_BUILD_ROOT%{_mandir}/man5/vfstest.1*
385 rm -rf $RPM_BUILD_ROOT
388 ## deal with an upgrade from a broken 3.0.21b RPM
389 if [ "$1" -eq "2" ]; then
390 if [ -d /var/cache/samba ]; then
391 for file in `ls /var/cache/samba/*tdb`; do
392 /bin/cp -up $file /var/lib/samba/`basename $file`
394 mkdir -p /var/lib/samba/eventlog
395 for file in `ls /var/cache/samba/eventlog/*tdb`; do
396 /bin/cp -up $file /var/lib/samba/eventlog/`basename $file`
398 /bin/mv /var/cache/samba /var/cache/samba.moved
402 if [ "$1" -ge "1" ]; then
403 /sbin/service smb condrestart >/dev/null 2>&1 || :
408 /sbin/service smb stop >/dev/null 2>&1 || :
409 /sbin/chkconfig --del smb
410 # rm -rf /var/log/samba/* /var/lib/samba/*
417 # Add swat entry to /etc/services if not already there.
418 if [ ! "`grep ^\s**swat /etc/services`" ]; then
419 echo 'swat 901/tcp # Add swat service used via inetd' >> /etc/services
425 if [ "$1" -ge "1" ]; then
426 /sbin/service winbind condrestart >/dev/null 2>&1 || :
431 /sbin/service winbind stop >/dev/null 2>&1 || :
432 /sbin/chkconfig --del winbind
439 #######################################################################
441 #######################################################################
444 %defattr(-,root,root)
446 %config(noreplace) %{_sysconfdir}/sysconfig/samba
447 %config(noreplace) %{_sysconfdir}/samba/smbusers
448 %attr(755,root,root) %config %{initdir}/smb
449 %config(noreplace) %{_sysconfdir}/pam.d/samba
451 %attr(0755,root,root) %dir /var/log/samba
452 %attr(0755,root,root) %dir /var/lib/samba
453 %attr(1777,root,root) %dir /var/spool/samba
460 %{_bindir}/mksmbpasswd.sh
461 %{_bindir}/smbcontrol
466 %{_bindir}/tdbrestore
467 %{_bindir}/eventlogadm
469 %{_libarchdir}/samba/auth/script.so
470 %{_libarchdir}/samba/vfs/acl_tdb.so
471 %{_libarchdir}/samba/vfs/acl_xattr.so
472 %{_libarchdir}/samba/vfs/aio_fork.so
473 %{_libarchdir}/samba/vfs/audit.so
474 %{_libarchdir}/samba/vfs/cap.so
475 %{_libarchdir}/samba/vfs/catia.so
476 %{_libarchdir}/samba/vfs/crossrename.so
477 %{_libarchdir}/samba/vfs/default_quota.so
478 %{_libarchdir}/samba/vfs/dirsort.so
479 %{_libarchdir}/samba/vfs/expand_msdfs.so
480 %{_libarchdir}/samba/vfs/extd_audit.so
481 %{_libarchdir}/samba/vfs/fake_perms.so
482 %{_libarchdir}/samba/vfs/fileid.so
483 %{_libarchdir}/samba/vfs/full_audit.so
484 %{_libarchdir}/samba/vfs/gpfs.so
485 %{_libarchdir}/samba/vfs/gpfs_hsm_notify.so
486 %{_libarchdir}/samba/vfs/linux_xfs_sgid.so
487 %{_libarchdir}/samba/vfs/netatalk.so
488 %{_libarchdir}/samba/vfs/preopen.so
489 %{_libarchdir}/samba/vfs/readahead.so
490 %{_libarchdir}/samba/vfs/readonly.so
491 %{_libarchdir}/samba/vfs/recycle.so
492 %{_libarchdir}/samba/vfs/scannedonly.so
493 %{_libarchdir}/samba/vfs/shadow_copy.so
494 %{_libarchdir}/samba/vfs/shadow_copy2.so
495 %{_libarchdir}/samba/vfs/smb_traffic_analyzer.so
496 %{_libarchdir}/samba/vfs/streams_depot.so
497 %{_libarchdir}/samba/vfs/streams_xattr.so
498 %{_libarchdir}/samba/vfs/syncops.so
499 %{_libarchdir}/samba/vfs/time_audit.so
500 %{_libarchdir}/samba/vfs/tsmsm.so
501 %{_libarchdir}/samba/vfs/xattr_tdb.so
504 %{_mandir}/man1/smbcontrol.1*
505 %{_mandir}/man1/smbstatus.1*
506 %{_mandir}/man1/vfstest.1*
507 %{_mandir}/man5/smbpasswd.5*
508 %{_mandir}/man5/pam_winbind.conf.5*
509 %{_mandir}/man7/samba.7*
510 %{_mandir}/man8/nmbd.8*
511 %{_mandir}/man8/pdbedit.8*
512 %{_mandir}/man8/smbd.8*
513 %{_mandir}/man8/tdbbackup.8*
514 %{_mandir}/man8/tdbdump.8*
515 %{_mandir}/man8/tdbtool.8*
516 %{_mandir}/man8/eventlogadm.8*
517 %{_mandir}/man8/vfs_*.8*
518 %{_mandir}/man8/smbta-util.8*
524 %defattr(-,root,root)
530 %doc docs-xml/archives/THANKS
531 %doc docs-xml/archives/history
532 %doc docs-xml/registry
535 %doc examples/libsmbclient
537 %doc examples/printer-accounting
538 %doc examples/printing
543 %defattr(-,root,root)
544 %config(noreplace) %{_sysconfdir}/xinetd.d/swat
545 %dir %{_datadir}/swat
548 %{_mandir}/man8/swat.8*
549 %attr(755,root,root) %{_libarchdir}/samba/*.msg
554 %defattr(-,root,root)
567 %{_bindir}/smbta-util
569 %{_mandir}/man8/smbspool.8*
570 %{_mandir}/man1/smbget.1*
571 %{_mandir}/man5/smbgetrc.5*
572 %{_mandir}/man1/findsmb.1*
573 %{_mandir}/man1/nmblookup.1*
574 %{_mandir}/man1/rpcclient.1*
575 %{_mandir}/man1/smbcacls.1*
576 %{_mandir}/man1/smbclient.1*
577 %{_mandir}/man1/smbtar.1*
578 %{_mandir}/man1/smbtree.1*
579 %{_mandir}/man1/sharesec.1*
584 %defattr(-,root,root)
585 %dir %{_sysconfdir}/samba
586 %dir %{_libarchdir}/samba
587 %dir %{_libarchdir}/samba/charset
588 %config(noreplace) %{_sysconfdir}/samba/smb.conf
589 %config(noreplace) %{_sysconfdir}/samba/lmhosts
590 %attr(755,root,root) %config %{initdir}/winbind
592 %attr(755,root,root) /%{_libarch}/libnss_winbind.so
593 %attr(755,root,root) /%{_libarch}/libnss_winbind.so.2
594 %attr(755,root,root) /%{_libarch}/security/pam_winbind.so
595 %attr(755,root,root) /%{_libarch}/security/pam_smbpass.so
596 /usr/share/locale/*/LC_MESSAGES/pam_winbind.mo
597 /usr/share/locale/*/LC_MESSAGES/net.mo
599 %{_libarchdir}/samba/charset/CP437.so
600 %{_libarchdir}/samba/charset/CP850.so
601 %{_libarchdir}/samba/idmap/ad.so
602 %{_libarchdir}/samba/idmap/rid.so
603 %{_libarchdir}/samba/idmap/tdb2.so
604 %{_libarchdir}/samba/idmap/autorid.so
605 %{_libarchdir}/samba/lowcase.dat
606 %{_libarchdir}/samba/nss_info/rfc2307.so
607 %{_libarchdir}/samba/nss_info/sfu.so
608 %{_libarchdir}/samba/nss_info/sfu20.so
609 %{_libarchdir}/samba/upcase.dat
610 %{_libarchdir}/samba/valid.dat
612 %{_includedir}/libsmbclient.h
613 %{_libarchdir}/libsmbclient.*
614 %{_includedir}/smb_share_modes.h
615 %{_libarchdir}/libsmbsharemodes.so
616 %{_libarchdir}/libsmbsharemodes.so.0
618 %{_includedir}/netapi.h
619 %{_includedir}/wbclient.h
620 %{_includedir}/talloc.h
622 %{_libarchdir}/libnetapi.so
623 %{_libarchdir}/libnetapi.so.0
624 %{_libarchdir}/libtalloc.so
625 %{_libarchdir}/libtalloc.so.2
626 %{_libarchdir}/libtdb.so
627 %{_libarchdir}/libtdb.so.1
628 %{_libarchdir}/libwbclient.so
629 %{_libarchdir}/libwbclient.so.0
631 %{_libarchdir}/krb5/plugins/libkrb5/winbind_krb5_locator.so
643 %{_bindir}/smbcquotas
644 %{_bindir}/dbwrap_tool
645 %{_bindir}/dbwrap_torture
647 %{_mandir}/man1/ntlm_auth.1*
648 %{_mandir}/man1/profiles.1*
649 %{_mandir}/man1/smbcquotas.1*
650 %{_mandir}/man1/testparm.1*
651 %{_mandir}/man5/smb.conf.5*
652 %{_mandir}/man5/lmhosts.5*
653 %{_mandir}/man8/smbpasswd.8*
654 %{_mandir}/man1/wbinfo.1*
655 %{_mandir}/man8/winbindd.8*
656 %{_mandir}/man8/net.8*
657 %{_mandir}/man8/pam_winbind.8*
658 %{_mandir}/man7/libsmbclient.7*
659 %{_mandir}/man1/ldbadd.1*
660 %{_mandir}/man1/ldbdel.1*
661 %{_mandir}/man1/ldbedit.1*
662 %{_mandir}/man1/ldbmodify.1*
663 %{_mandir}/man1/ldbsearch.1*
664 %{_mandir}/man1/ldbrename.1*
665 %{_mandir}/man7/winbind_krb5_locator.7*
666 %{_mandir}/man8/idmap_*.8*
670 %attr(755,root,root) /lib/libnss_winbind.so
671 %attr(755,root,root) /lib/libnss_winbind.so.2
672 %attr(755,root,root) /usr/lib/libtalloc.so
673 %attr(755,root,root) /usr/lib/libtalloc.so.2
674 %attr(755,root,root) /usr/lib/libtdb.so
675 %attr(755,root,root) /usr/lib/libtdb.so.1
676 %attr(755,root,root) /usr/lib/libwbclient.so
677 %attr(755,root,root) /usr/lib/libwbclient.so.0
678 %attr(755,root,root) /lib/security/pam_winbind.so
684 * Fri Jan 16 2004 Gerald (Jerry) Carter <jerry@samba,org>
685 - Removed ChangeLog entries since they are kept in CVS