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 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}
31 BuildRoot: %{_tmppath}/%{name}-%{version}-root
32 BuildRequires: pam-devel, readline-devel, fileutils, libacl-devel, openldap-devel, krb5-devel, cups-devel, ctdb, e2fsprogs-devel
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
41 %define _libarch %_lib
44 %define _libarchdir /usr/%{_libarch}
46 %define numcpu %(grep "^processor" /proc/cpuinfo |wc -l | sed -e 's/^0$/1/')
49 Samba is the protocol by which a lot of PC-related machines share
50 files, printers, and other information (such as lists of available
51 files and printers). The Windows NT, OS/2, and Linux operating systems
52 support this natively, and add-on packages can enable the same thing
53 for DOS, Windows, VMS, UNIX of all kinds, MVS, and more. This package
54 provides an SMB server that can be used to provide network services to
55 SMB (sometimes called "Lan Manager") clients. Samba uses NetBIOS over
56 TCP/IP (NetBT) protocols and does NOT need the NetBEUI (Microsoft Raw
57 NetBIOS frame) protocol.
60 ######################################################################
62 Summary: Samba (SMB) client programs.
63 Group: Applications/System
64 Requires: samba-common = %{version}-%{release}
66 Provides: samba-client = %{version}-%{release}
69 The samba-client package provides some SMB clients to compliment the
70 built-in SMB filesystem in Linux. These clients allow access of SMB
71 shares and printing to SMB printers.
74 #######################################################################
76 Summary: Files used by both Samba servers and clients.
77 Group: Applications/System
78 Provides: samba-common = %{version}-%{release}
81 Samba-common provides files necessary for both the server and client
85 #######################################################################
87 Summary: The Samba SMB server configuration program.
88 Group: Applications/System
89 Requires: samba = %{version} xinetd
90 Provides: samba-swat = %{version}-%{release}
93 The samba-swat package includes the new SWAT (Samba Web Administration
94 Tool), for remotely managing Samba's smb.conf file using your favorite
98 %package winbind-32bit
99 Summary: Samba winbind compatibility package for 32bit apps on 64bit archs
100 Group: Applications/System
102 %description winbind-32bit
103 Compatibility package for 32 bit apps on 64 bit architecures
107 #######################################################################
109 Summary: Samba Documentation
110 Group: Documentation/Other
111 Provides: samba-doc = %{version}-%{release}
112 Prereq: /usr/bin/find /bin/rm /usr/bin/xargs
115 The samba-doc package includes the HTML versions of the Samba manpages
116 utilized by SWAT as well as the HTML and PDF version of "Using Samba",
117 "Samba By Example", and "The Official Samba HOWTO and Reference Guide".
120 #######################################################################
125 # setup the vendor files (init scripts, etc...)
126 %setup -T -D -a 999 -n samba-%{version} -q
127 %setup -T -D -a 997 -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 -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
194 ## check for gcc 3.4 or later
195 CC_VERSION=`${CC} --version | head -1 | awk '{print $3}'`
196 CC_MAJOR=`echo ${CC_VERSION} | cut -d. -f 1`
197 CC_MINOR=`echo ${CC_VERSION} | cut -d. -f 2`
198 if [ ${CC_MAJOR} -ge 3 ]; then
199 if [ ${CC_MAJOR} -gt 3 -o ${CC_MINOR} -ge 4 ]; then
204 make -j%{numcpu} %{?_smp_mflags} \
205 nss_modules pam_modules
207 rm -rf %{_32bit_tmp_dir}
208 mkdir %{_32bit_tmp_dir}
210 mv ../nsswitch/libnss_winbind.so %{_32bit_tmp_dir}/
211 mv bin/pam_winbind.so %{_32bit_tmp_dir}/
212 mv bin/libtalloc.so* %{_32bit_tmp_dir}/
213 mv bin/libtdb.so* %{_32bit_tmp_dir}/
214 mv bin/libwbclient.so* %{_32bit_tmp_dir}/
222 CFLAGS="$RPM_OPT_FLAGS $EXTRA -D_GNU_SOURCE" ./configure \
223 --prefix=%{_prefix} \
224 --localstatedir=/var \
225 --with-configdir=%{_sysconfdir}/samba \
226 --libdir=%{_libarchdir} \
227 --with-modulesdir=%{_libarchdir}/samba \
228 --with-pammodulesdir=%{_libarch}/security \
229 --with-lockdir=/var/lib/samba \
230 --with-logfilebase=/var/log/samba \
231 --with-mandir=%{_mandir} \
232 --with-piddir=/var/run \
233 --with-privatedir=%{_sysconfdir}/samba \
234 --with-sambabook=%{_datadir}/swat/using_samba \
235 --with-swatdir=%{_datadir}/swat \
242 --with-libsmbclient \
243 --with-libsmbsharemodes \
244 --without-smbwrapper \
247 --with-shared-modules=idmap_rid,idmap_ad,idmap_tdb2,vfs_gpfs \
250 --with-cluster-support \
251 --with-ctdb=/usr/include \
253 --without-dnsupdate \
255 --disable-merged-build
259 ## check for gcc 3.4 or later
260 CC_VERSION=`${CC} --version | head -1 | awk '{print $3}'`
261 CC_MAJOR=`echo ${CC_VERSION} | cut -d. -f 1`
262 CC_MINOR=`echo ${CC_VERSION} | cut -d. -f 2`
263 if [ ${CC_MAJOR} -ge 3 ]; then
264 if [ ${CC_MAJOR} -gt 3 -o ${CC_MINOR} -ge 4 ]; then
270 make -j %{numcpu} %{?_smp_mflags} \
271 everything modules pam_smbpass
273 # Remove some permission bits to avoid to many dependencies
275 find examples docs -type f | xargs -r chmod -x
278 # Clean up in case there is trash left from a previous build
279 rm -rf $RPM_BUILD_ROOT
281 # Create the target build directory hierarchy
282 mkdir -p $RPM_BUILD_ROOT%{_datadir}/swat/{help,include,using_samba/{figs,gifsa}}
283 mkdir -p $RPM_BUILD_ROOT%{_includedir}
284 mkdir -p $RPM_BUILD_ROOT%{_initrddir}
285 mkdir -p $RPM_BUILD_ROOT{%{_libarchdir},%{_includedir}}
286 mkdir -p $RPM_BUILD_ROOT%{_libarchdir}/samba/{auth,charset,idmap,vfs,pdb}
287 mkdir -p $RPM_BUILD_ROOT/%{_libarch}/security
288 mkdir -p $RPM_BUILD_ROOT/lib/security
289 mkdir -p $RPM_BUILD_ROOT%{_mandir}
290 mkdir -p $RPM_BUILD_ROOT%{_prefix}/{bin,sbin}
291 mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib
292 mkdir -p $RPM_BUILD_ROOT/sbin
293 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{logrotate.d,pam.d,samba}
294 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{pam.d,logrotate.d}
295 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d
296 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{samba,sysconfig}
297 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d
298 mkdir -p $RPM_BUILD_ROOT/var/lib/samba/winbindd_privileged
299 mkdir -p $RPM_BUILD_ROOT/var/{log,run/winbindd,spool}/samba
300 mkdir -p $RPM_BUILD_ROOT/%{_libarchdir}/krb5/plugins/libkrb5
303 make DESTDIR=$RPM_BUILD_ROOT \
306 make DESTDIR=$RPM_BUILD_ROOT \
307 install-dbwrap_tool install-dbwrap_torture
310 # NSS winbind support
311 install -m 755 nsswitch/libnss_winbind.so $RPM_BUILD_ROOT/%{_libarch}/libnss_winbind.so.2
312 ( cd $RPM_BUILD_ROOT/%{_libarch};
313 ln -sf libnss_winbind.so.2 libnss_winbind.so )
315 # do not install libnss_wins.so in order to reduce dependencies
316 # (we do not need it for the samba-ctdb scenario)
318 #install -m 755 nsswitch/libnss_wins.so $RPM_BUILD_ROOT/%{_libarch}/libnss_wins.so
319 # ( cd $RPM_BUILD_ROOT/%{_libarch}; ln -sf libnss_wins.so libnss_wins.so.2 )
321 cp -p source3/bin/winbind_krb5_locator.so ${RPM_BUILD_ROOT}/%{_libarchdir}/krb5/plugins/libkrb5
323 # install files for winbind-32bit package
326 install -m 755 %{_32bit_tmp_dir}/libnss_winbind.so ${RPM_BUILD_ROOT}/lib/libnss_winbind.so.2
327 ( cd ${RPM_BUILD_ROOT}/lib; ln -sf libnss_winbind.so.2 libnss_winbind.so )
329 mv %{_32bit_tmp_dir}/libtalloc* ${RPM_BUILD_ROOT}/usr/lib
330 mv %{_32bit_tmp_dir}/libtdb* ${RPM_BUILD_ROOT}/usr/lib
331 mv %{_32bit_tmp_dir}/libwbclient* ${RPM_BUILD_ROOT}/usr/lib
332 mv %{_32bit_tmp_dir}/pam_winbind.so ${RPM_BUILD_ROOT}/lib/security
334 rm -rf %{_32bit_tmp_dir}
339 /bin/rm -rf $RPM_BUILD_ROOT/usr/lib*/samba/security
341 # Install the miscellany
342 echo 127.0.0.1 localhost > $RPM_BUILD_ROOT%{_sysconfdir}/samba/lmhosts
344 install -m644 setup/samba.log $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/samba
345 install -m644 setup/swat $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d/swat
346 install -m644 setup/samba.sysconfig $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/samba
347 install -m755 setup/smb.init $RPM_BUILD_ROOT%{initdir}/smb
348 install -m755 setup/winbind.init $RPM_BUILD_ROOT%{initdir}/winbind
349 install -m644 setup/samba.pamd $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/samba
350 install -m755 setup/smbprint $RPM_BUILD_ROOT%{_bindir}
351 install -m644 setup/smbusers $RPM_BUILD_ROOT%{_sysconfdir}/samba/smbusers
352 install -m644 setup/smb.conf $RPM_BUILD_ROOT%{_sysconfdir}/samba/smb.conf
353 install -m755 source3/bin/mount.cifs $RPM_BUILD_ROOT/sbin/mount.cifs
354 install -m755 source3/bin/umount.cifs $RPM_BUILD_ROOT/sbin/umount.cifs
355 install -m755 source3/script/mksmbpasswd.sh $RPM_BUILD_ROOT%{_bindir}
357 /bin/rm $RPM_BUILD_ROOT%{_sbindir}/*mount.cifs
359 ln -s ../..%{initdir}/smb $RPM_BUILD_ROOT%{_sbindir}/samba
360 ln -s ../..%{initdir}/winbind $RPM_BUILD_ROOT%{_sbindir}/winbind
362 # Remove "*.old" files
363 find $RPM_BUILD_ROOT -name "*.old" -exec rm -f {} \;
365 ## don't duplicate the docs. These are installed by/with SWAT
368 ( cd docs; ln -s %{_prefix}/share/swat/help htmldocs )
371 ## Clean out man pages for tools not installed here
373 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/log2pcap.1*
374 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/smbsh.1*
375 rm -f $RPM_BUILD_ROOT%{_mandir}/man5/vfstest.1*
379 rm -rf $RPM_BUILD_ROOT
382 ## deal with an upgrade from a broken 3.0.21b RPM
383 if [ "$1" -eq "2" ]; then
384 if [ -d /var/cache/samba ]; then
385 for file in `ls /var/cache/samba/*tdb`; do
386 /bin/cp -up $file /var/lib/samba/`basename $file`
388 mkdir -p /var/lib/samba/eventlog
389 for file in `ls /var/cache/samba/eventlog/*tdb`; do
390 /bin/cp -up $file /var/lib/samba/eventlog/`basename $file`
392 /bin/mv /var/cache/samba /var/cache/samba.moved
396 if [ "$1" -ge "1" ]; then
397 /sbin/service smb condrestart >/dev/null 2>&1 || :
402 /sbin/service smb stop >/dev/null 2>&1 || :
403 /sbin/chkconfig --del smb
404 # rm -rf /var/log/samba/* /var/lib/samba/*
411 # Add swat entry to /etc/services if not already there.
412 if [ ! "`grep ^\s**swat /etc/services`" ]; then
413 echo 'swat 901/tcp # Add swat service used via inetd' >> /etc/services
419 if [ "$1" -ge "1" ]; then
420 /sbin/service winbind condrestart >/dev/null 2>&1 || :
425 /sbin/service winbind stop >/dev/null 2>&1 || :
426 /sbin/chkconfig --del winbind
433 #######################################################################
435 #######################################################################
438 %defattr(-,root,root)
440 %config(noreplace) %{_sysconfdir}/sysconfig/samba
441 %config(noreplace) %{_sysconfdir}/samba/smbusers
442 %attr(755,root,root) %config %{initdir}/smb
443 %config(noreplace) %{_sysconfdir}/logrotate.d/samba
444 %config(noreplace) %{_sysconfdir}/pam.d/samba
446 %attr(0755,root,root) %dir /var/log/samba
447 %attr(0755,root,root) %dir /var/lib/samba
448 %attr(1777,root,root) %dir /var/spool/samba
455 %{_bindir}/mksmbpasswd.sh
456 %{_bindir}/smbcontrol
461 %{_bindir}/eventlogadm
463 %{_libarchdir}/samba/vfs/*.so
464 %{_libarchdir}/samba/auth/*.so
466 %{_mandir}/man1/smbcontrol.1*
467 %{_mandir}/man1/smbstatus.1*
468 %{_mandir}/man1/vfstest.1*
469 %{_mandir}/man5/smbpasswd.5*
470 %{_mandir}/man7/samba.7*
471 %{_mandir}/man8/nmbd.8*
472 %{_mandir}/man8/pdbedit.8*
473 %{_mandir}/man8/smbd.8*
474 %{_mandir}/man8/tdbbackup.8*
475 %{_mandir}/man8/tdbdump.8*
476 %{_mandir}/man8/tdbtool.8*
477 %{_mandir}/man8/eventlogadm.8*
478 %{_mandir}/man8/vfs_*.8*
484 %defattr(-,root,root)
485 %doc README COPYING Manifest
486 %doc WHATSNEW.txt Roadmap
488 %doc examples/autofs examples/LDAP examples/libsmbclient examples/misc examples/printer-accounting
489 %doc examples/printing
494 %defattr(-,root,root)
495 %config(noreplace) %{_sysconfdir}/xinetd.d/swat
496 %dir %{_datadir}/swat
499 %{_mandir}/man8/swat.8*
500 %attr(755,root,root) %{_libarchdir}/samba/*.msg
505 %defattr(-,root,root)
509 %{_sbindir}/cifs.upcall
523 %{_mandir}/man8/mount.cifs.8.*
524 %{_mandir}/man8/umount.cifs.8.*
525 %{_mandir}/man8/cifs.upcall.8*
526 %{_mandir}/man8/smbspool.8*
527 %{_mandir}/man1/smbget.1*
528 %{_mandir}/man5/smbgetrc.5*
529 %{_mandir}/man1/findsmb.1*
530 %{_mandir}/man1/nmblookup.1*
531 %{_mandir}/man1/rpcclient.1*
532 %{_mandir}/man1/smbcacls.1*
533 %{_mandir}/man1/smbclient.1*
534 %{_mandir}/man1/smbtar.1*
535 %{_mandir}/man1/smbtree.1*
536 %{_mandir}/man1/sharesec.1*
541 %defattr(-,root,root)
542 %dir %{_sysconfdir}/samba
543 %dir %{_libarchdir}/samba
544 %dir %{_libarchdir}/samba/charset
545 %config(noreplace) %{_sysconfdir}/samba/smb.conf
546 %config(noreplace) %{_sysconfdir}/samba/lmhosts
547 %attr(755,root,root) %config %{initdir}/winbind
549 #%attr(755,root,root) /%{_libarch}/libnss_wins.so*
550 %attr(755,root,root) /%{_libarch}/libnss_winbind.so*
551 %attr(755,root,root) /%{_libarch}/security/pam_winbind.so
552 %attr(755,root,root) /%{_libarch}/security/pam_smbpass.so
553 /usr/share/locale/*/LC_MESSAGES/pam_winbind.mo
555 %{_libarchdir}/samba/idmap/*.so
556 %{_libarchdir}/samba/nss_info/*.so
558 %{_includedir}/libsmbclient.h
559 %{_libarchdir}/libsmbclient.*
560 #%{_includedir}/libmsrpc.h
561 #%{_libarchdir}/libmsrpc.*
562 %{_includedir}/smb_share_modes.h
563 %{_libarchdir}/libsmbsharemodes.*
565 %{_libarchdir}/samba/*.dat
566 %{_libarchdir}/samba/charset/*.so
568 %{_includedir}/netapi.h
569 %{_includedir}/wbclient.h
570 %{_includedir}/talloc.h
572 %{_libarchdir}/libnetapi.so*
573 %{_libarchdir}/libtalloc.so*
574 %{_libarchdir}/libtdb.so*
575 %{_libarchdir}/libwbclient.so*
577 %{_libarchdir}/krb5/plugins/libkrb5/winbind_krb5_locator.so
595 %{_bindir}/smbcquotas
596 %{_bindir}/dbwrap_tool
597 %{_bindir}/dbwrap_torture
599 %{_mandir}/man1/ntlm_auth.1*
600 %{_mandir}/man1/profiles.1*
601 %{_mandir}/man1/smbcquotas.1*
602 %{_mandir}/man1/testparm.1*
603 %{_mandir}/man5/smb.conf.5*
604 %{_mandir}/man5/lmhosts.5*
605 %{_mandir}/man8/smbpasswd.8*
606 %{_mandir}/man1/wbinfo.1*
607 %{_mandir}/man8/winbindd.8*
608 %{_mandir}/man8/net.8*
609 %{_mandir}/man8/pam_winbind.8*
610 %{_mandir}/man7/libsmbclient.7*
611 %{_mandir}/man1/ldbadd.1*
612 %{_mandir}/man1/ldbdel.1*
613 %{_mandir}/man1/ldbedit.1*
614 %{_mandir}/man1/ldbmodify.1*
615 %{_mandir}/man1/ldbsearch.1*
616 %{_mandir}/man1/ldbrename.1*
617 %{_mandir}/man7/winbind_krb5_locator.7*
618 %{_mandir}/man8/idmap_*.8*
622 %attr(755,root,root) /lib/libnss_winbind.so*
623 #%attr(755,root,root) /lib/libnss_wins.so*
624 %attr(755,root,root) /usr/lib/libtalloc.so*
625 %attr(755,root,root) /usr/lib/libtdb.so*
626 %attr(755,root,root) /usr/lib/libwbclient.so*
627 %attr(755,root,root) /lib/security/pam_winbind.so
633 * Fri Jan 16 2004 Gerald (Jerry) Carter <jerry@samba,org>
634 - Removed ChangeLog entries since they are kept in CVS