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
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}
48 Samba is the protocol by which a lot of PC-related machines share
49 files, printers, and other information (such as lists of available
50 files and printers). The Windows NT, OS/2, and Linux operating systems
51 support this natively, and add-on packages can enable the same thing
52 for DOS, Windows, VMS, UNIX of all kinds, MVS, and more. This package
53 provides an SMB server that can be used to provide network services to
54 SMB (sometimes called "Lan Manager") clients. Samba uses NetBIOS over
55 TCP/IP (NetBT) protocols and does NOT need the NetBEUI (Microsoft Raw
56 NetBIOS frame) protocol.
59 ######################################################################
61 Summary: Samba (SMB) client programs.
62 Group: Applications/System
63 Requires: samba-common = %{version}-%{release}
65 Provides: samba-client = %{version}-%{release}
68 The samba-client package provides some SMB clients to compliment the
69 built-in SMB filesystem in Linux. These clients allow access of SMB
70 shares and printing to SMB printers.
73 #######################################################################
75 Summary: Files used by both Samba servers and clients.
76 Group: Applications/System
77 Provides: samba-common = %{version}-%{release}
80 Samba-common provides files necessary for both the server and client
84 #######################################################################
86 Summary: The Samba SMB server configuration program.
87 Group: Applications/System
88 Requires: samba = %{version} xinetd
89 Provides: samba-swat = %{version}-%{release}
92 The samba-swat package includes the new SWAT (Samba Web Administration
93 Tool), for remotely managing Samba's smb.conf file using your favorite
97 %package winbind-32bit
98 Summary: Samba winbind compatibility package for 32bit apps on 64bit archs
99 Group: Applications/System
101 %description winbind-32bit
102 Compatibility package for 32 bit apps on 64 bit architecures
106 #######################################################################
108 Summary: Samba Documentation
109 Group: Documentation/Other
110 Provides: samba-doc = %{version}-%{release}
111 Prereq: /usr/bin/find /bin/rm /usr/bin/xargs
114 The samba-doc package includes the HTML versions of the Samba manpages
115 utilized by SWAT as well as the HTML and PDF version of "Using Samba",
116 "Samba By Example", and "The Official Samba HOWTO and Reference Guide".
119 #######################################################################
124 # setup the vendor files (init scripts, etc...)
125 %setup -T -D -a 999 -n samba-%{version} -q
126 %setup -T -D -a 997 -n samba-%{version} -q
130 /bin/cp setup/filter-requires-samba.sh %{SOURCE998}
133 # RPM_OPT_FLAGS="$RPM_OPT_FLAGS -D_FILE_OFFSET_BITS=64"
136 if ccache -h >/dev/null 2>&1 ; then
144 ## always run autogen.sh
149 ## build the files for the winbind-32bit compat package
150 ## and copy them to a safe location
154 # a directory to store the 32bit compatibility modules for later install
155 %define _32bit_tmp_dir %{_tmppath}/%{name}-%{version}-32bit
160 CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -m32" ./configure \
161 --prefix=%{_prefix} \
162 --localstatedir=/var \
163 --with-configdir=%{_sysconfdir}/samba \
164 --with-libdir=/usr/lib/samba \
165 --with-pammodulesdir=/lib/security \
166 --with-lockdir=/var/lib/samba \
167 --with-logfilebase=/var/log/samba \
168 --with-mandir=%{_mandir} \
169 --with-piddir=/var/run \
170 --with-privatedir=%{_sysconfdir}/samba \
177 --with-libsmbclient \
178 --with-libsmbsharemodes \
179 --without-smbwrapper \
184 --with-cluster-support \
185 --with-ctdb=/usr/include \
187 --without-dnsupdate \
192 make CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -m32" proto
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 CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -m32" %{?_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}/
221 CFLAGS="$RPM_OPT_FLAGS $EXTRA -D_GNU_SOURCE" ./configure \
222 --prefix=%{_prefix} \
223 --localstatedir=/var \
224 --with-configdir=%{_sysconfdir}/samba \
225 --with-libdir=%{_libarchdir}/samba \
226 --with-pammodulesdir=%{_libarch}/security \
227 --with-lockdir=/var/lib/samba \
228 --with-logfilebase=/var/log/samba \
229 --with-mandir=%{_mandir} \
230 --with-piddir=/var/run \
231 --with-privatedir=%{_sysconfdir}/samba \
232 --with-sambabook=%{_datadir}/swat/using_samba \
233 --with-swatdir=%{_datadir}/swat \
240 --with-libsmbclient \
241 --with-libsmbsharemodes \
242 --without-smbwrapper \
245 --with-shared-modules=idmap_rid,idmap_ad,idmap_tdb2,vfs_gpfs \
248 --with-cluster-support \
249 --with-ctdb=/usr/include \
251 --without-dnsupdate \
256 make CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE" proto
258 ## check for gcc 3.4 or later
259 CC_VERSION=`${CC} --version | head -1 | awk '{print $3}'`
260 CC_MAJOR=`echo ${CC_VERSION} | cut -d. -f 1`
261 CC_MINOR=`echo ${CC_VERSION} | cut -d. -f 2`
262 if [ ${CC_MAJOR} -ge 3 ]; then
263 if [ ${CC_MAJOR} -gt 3 -o ${CC_MINOR} -ge 4 ]; then
269 make CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE" %{?_smp_mflags} \
270 all modules pam_smbpass
272 # Remove some permission bits to avoid to many dependencies
274 find examples docs -type f | xargs -r chmod -x
277 # Clean up in case there is trash left from a previous build
278 rm -rf $RPM_BUILD_ROOT
280 # Create the target build directory hierarchy
281 mkdir -p $RPM_BUILD_ROOT%{_datadir}/swat/{help,include,using_samba/{figs,gifsa}}
282 mkdir -p $RPM_BUILD_ROOT%{_includedir}
283 mkdir -p $RPM_BUILD_ROOT%{_initrddir}
284 mkdir -p $RPM_BUILD_ROOT{%{_libarchdir},%{_includedir}}
285 mkdir -p $RPM_BUILD_ROOT%{_libarchdir}/samba/{auth,charset,idmap,vfs,pdb}
286 mkdir -p $RPM_BUILD_ROOT/%{_libarch}/security
287 mkdir -p $RPM_BUILD_ROOT/lib/security
288 mkdir -p $RPM_BUILD_ROOT%{_mandir}
289 mkdir -p $RPM_BUILD_ROOT%{_prefix}/{bin,sbin}
290 mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib
291 mkdir -p $RPM_BUILD_ROOT/sbin
292 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{logrotate.d,pam.d,samba}
293 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{pam.d,logrotate.d}
294 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d
295 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{samba,sysconfig}
296 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d
297 mkdir -p $RPM_BUILD_ROOT/var/lib/samba/winbindd_privileged
298 mkdir -p $RPM_BUILD_ROOT/var/{log,run/winbindd,spool}/samba
301 make DESTDIR=$RPM_BUILD_ROOT \
305 # NSS winbind support
306 install -m 755 source/nsswitch/libnss_winbind.so $RPM_BUILD_ROOT/%{_libarch}/libnss_winbind.so.2
307 ( cd $RPM_BUILD_ROOT/%{_libarch};
308 ln -sf libnss_winbind.so.2 libnss_winbind.so )
310 # do not install libnss_wins.so in order to reduce dependencies
311 # (we do not need it for the samba-ctdb scenario)
313 #install -m 755 source/nsswitch/libnss_wins.so $RPM_BUILD_ROOT/%{_libarch}/libnss_wins.so
314 # ( cd $RPM_BUILD_ROOT/%{_libarch}; ln -sf libnss_wins.so libnss_wins.so.2 )
316 # Put the shared (and possibly static) libraries into /usr/lib{,64}/ .
317 # Samba 3.2.2 installs them into /usr/lib{,64}/samba/ .
318 # This step will become unnecessary in 3.3.0.
320 for library in libsmbclient libsmbsharemodes libwbclient libtalloc libtdb libnetapi
322 mv -f ${RPM_BUILD_ROOT}%{_libarchdir}/samba/${library}.* \
323 ${RPM_BUILD_ROOT}%{_libarchdir}/
326 # install files for winbind-32bit package
329 install -m 755 %{_32bit_tmp_dir}/libnss_winbind.so ${RPM_BUILD_ROOT}/lib/libnss_winbind.so.2
330 ( cd ${RPM_BUILD_ROOT}/lib; ln -sf libnss_winbind.so.2 libnss_winbind.so )
332 mv %{_32bit_tmp_dir}/libtalloc* ${RPM_BUILD_ROOT}/usr/lib
333 mv %{_32bit_tmp_dir}/libtdb* ${RPM_BUILD_ROOT}/usr/lib
334 mv %{_32bit_tmp_dir}/pam_winbind.so ${RPM_BUILD_ROOT}/lib/security
336 rm -rf %{_32bit_tmp_dir}
341 /bin/rm -rf $RPM_BUILD_ROOT/usr/lib*/samba/security
343 # Install the miscellany
344 echo 127.0.0.1 localhost > $RPM_BUILD_ROOT%{_sysconfdir}/samba/lmhosts
346 install -m644 setup/samba.log $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/samba
347 install -m644 setup/swat $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d/swat
348 install -m644 setup/samba.sysconfig $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/samba
349 install -m755 setup/smb.init $RPM_BUILD_ROOT%{initdir}/smb
350 install -m755 setup/winbind.init $RPM_BUILD_ROOT%{initdir}/winbind
351 install -m644 setup/samba.pamd $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/samba
352 install -m755 setup/smbprint $RPM_BUILD_ROOT%{_bindir}
353 install -m644 setup/smbusers $RPM_BUILD_ROOT%{_sysconfdir}/samba/smbusers
354 install -m644 setup/smb.conf $RPM_BUILD_ROOT%{_sysconfdir}/samba/smb.conf
355 install -m755 source/bin/mount.cifs $RPM_BUILD_ROOT/sbin/mount.cifs
356 install -m755 source/bin/umount.cifs $RPM_BUILD_ROOT/sbin/umount.cifs
357 install -m755 source/script/mksmbpasswd.sh $RPM_BUILD_ROOT%{_bindir}
359 /bin/rm $RPM_BUILD_ROOT%{_sbindir}/*mount.cifs
361 ln -s ../..%{initdir}/smb $RPM_BUILD_ROOT%{_sbindir}/samba
362 ln -s ../..%{initdir}/winbind $RPM_BUILD_ROOT%{_sbindir}/winbind
364 # Remove "*.old" files
365 find $RPM_BUILD_ROOT -name "*.old" -exec rm -f {} \;
367 ## don't duplicate the docs. These are installed by/with SWAT
370 ( cd docs; ln -s %{_prefix}/share/swat/help htmldocs )
373 ## Clean out man pages for tools not installed here
375 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/log2pcap.1*
376 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/smbsh.1*
377 rm -f $RPM_BUILD_ROOT%{_mandir}/man5/vfstest.1*
381 rm -rf $RPM_BUILD_ROOT
384 ## deal with an upgrade from a broken 3.0.21b RPM
385 if [ "$1" -eq "2" ]; then
386 if [ -d /var/cache/samba ]; then
387 for file in `ls /var/cache/samba/*tdb`; do
388 /bin/cp -up $file /var/lib/samba/`basename $file`
390 mkdir -p /var/lib/samba/eventlog
391 for file in `ls /var/cache/samba/eventlog/*tdb`; do
392 /bin/cp -up $file /var/lib/samba/eventlog/`basename $file`
394 /bin/mv /var/cache/samba /var/cache/samba.moved
398 if [ "$1" -ge "1" ]; then
399 /sbin/service smb condrestart >/dev/null 2>&1 || :
404 /sbin/service smb stop >/dev/null 2>&1 || :
405 /sbin/chkconfig --del smb
406 # rm -rf /var/log/samba/* /var/lib/samba/*
413 # Add swat entry to /etc/services if not already there.
414 if [ ! "`grep ^\s**swat /etc/services`" ]; then
415 echo 'swat 901/tcp # Add swat service used via inetd' >> /etc/services
421 if [ "$1" -ge "1" ]; then
422 /sbin/service winbind condrestart >/dev/null 2>&1 || :
427 /sbin/service winbind stop >/dev/null 2>&1 || :
428 /sbin/chkconfig --del winbind
435 #######################################################################
437 #######################################################################
440 %defattr(-,root,root)
442 %config(noreplace) %{_sysconfdir}/sysconfig/samba
443 %config(noreplace) %{_sysconfdir}/samba/smbusers
444 %attr(755,root,root) %config %{initdir}/smb
445 %config(noreplace) %{_sysconfdir}/logrotate.d/samba
446 %config(noreplace) %{_sysconfdir}/pam.d/samba
448 %attr(0755,root,root) %dir /var/log/samba
449 %attr(0755,root,root) %dir /var/lib/samba
450 %attr(1777,root,root) %dir /var/spool/samba
457 %{_bindir}/mksmbpasswd.sh
458 %{_bindir}/smbcontrol
463 %{_bindir}/eventlogadm
465 %{_libarchdir}/samba/idmap/*.so
466 %{_libarchdir}/samba/nss_info/*.so
467 %{_libarchdir}/samba/vfs/*.so
468 %{_libarchdir}/samba/auth/*.so
470 %{_mandir}/man1/smbcontrol.1*
471 %{_mandir}/man1/smbstatus.1*
472 %{_mandir}/man1/vfstest.1*
473 %{_mandir}/man5/smbpasswd.5*
474 %{_mandir}/man7/samba.7*
475 %{_mandir}/man8/nmbd.8*
476 %{_mandir}/man8/pdbedit.8*
477 %{_mandir}/man8/smbd.8*
478 %{_mandir}/man8/tdbbackup.8*
479 %{_mandir}/man8/tdbdump.8*
480 %{_mandir}/man8/tdbtool.8*
481 %{_mandir}/man8/eventlogadm.8*
482 %{_mandir}/man8/vfs_*.8*
483 %{_mandir}/man8/idmap_*.8*
489 %defattr(-,root,root)
490 %doc README COPYING Manifest
491 %doc WHATSNEW.txt Roadmap
493 %doc examples/autofs examples/LDAP examples/libsmbclient examples/misc examples/printer-accounting
494 %doc examples/printing
499 %defattr(-,root,root)
500 %config(noreplace) %{_sysconfdir}/xinetd.d/swat
501 %dir %{_datadir}/swat
504 %{_mandir}/man8/swat.8*
505 %attr(755,root,root) %{_libarchdir}/samba/*.msg
510 %defattr(-,root,root)
514 %{_sbindir}/cifs.upcall
527 %{_mandir}/man8/mount.cifs.8.*
528 %{_mandir}/man8/umount.cifs.8.*
529 %{_mandir}/man8/cifs.upcall.8*
530 %{_mandir}/man8/smbspool.8*
531 %{_mandir}/man1/smbget.1*
532 %{_mandir}/man5/smbgetrc.5*
533 %{_mandir}/man1/findsmb.1*
534 %{_mandir}/man1/nmblookup.1*
535 %{_mandir}/man1/rpcclient.1*
536 %{_mandir}/man1/smbcacls.1*
537 %{_mandir}/man1/smbclient.1*
538 %{_mandir}/man1/smbtar.1*
539 %{_mandir}/man1/smbtree.1*
544 %defattr(-,root,root)
545 %dir %{_sysconfdir}/samba
546 %dir %{_libarchdir}/samba
547 %dir %{_libarchdir}/samba/charset
548 %config(noreplace) %{_sysconfdir}/samba/smb.conf
549 %config(noreplace) %{_sysconfdir}/samba/lmhosts
550 %attr(755,root,root) %config %{initdir}/winbind
552 #%attr(755,root,root) /%{_libarch}/libnss_wins.so*
553 %attr(755,root,root) /%{_libarch}/libnss_winbind.so*
554 %attr(755,root,root) /%{_libarch}/security/pam_winbind.so
555 %attr(755,root,root) /%{_libarch}/security/pam_smbpass.so
557 %{_includedir}/libsmbclient.h
558 %{_libarchdir}/libsmbclient.*
559 #%{_includedir}/libmsrpc.h
560 #%{_libarchdir}/libmsrpc.*
561 %{_includedir}/smb_share_modes.h
562 %{_libarchdir}/libsmbsharemodes.*
564 %{_libarchdir}/samba/*.dat
565 %{_libarchdir}/samba/charset/*.so
567 %{_includedir}/netapi.h
568 %{_includedir}/wbclient.h
569 %{_includedir}/talloc.h
571 %{_libarchdir}/libnetapi.so*
572 %{_libarchdir}/libtalloc.so*
573 %{_libarchdir}/libtdb.so*
574 %{_libarchdir}/libwbclient.so*
591 %{_bindir}/smbcquotas
593 %{_mandir}/man1/ntlm_auth.1*
594 %{_mandir}/man1/profiles.1*
595 %{_mandir}/man1/smbcquotas.1*
596 %{_mandir}/man1/testparm.1*
597 %{_mandir}/man5/smb.conf.5*
598 %{_mandir}/man5/lmhosts.5*
599 %{_mandir}/man8/smbpasswd.8*
600 %{_mandir}/man1/wbinfo.1*
601 %{_mandir}/man8/winbindd.8*
602 %{_mandir}/man8/net.8*
603 %{_mandir}/man8/pam_winbind.8*
604 %{_mandir}/man7/libsmbclient.7*
605 %{_mandir}/man1/ldbadd.1*
606 %{_mandir}/man1/ldbdel.1*
607 %{_mandir}/man1/ldbedit.1*
608 %{_mandir}/man1/ldbmodify.1*
609 %{_mandir}/man1/ldbsearch.1*
613 %attr(755,root,root) /lib/libnss_winbind.so*
614 #%attr(755,root,root) /lib/libnss_wins.so*
615 %attr(755,root,root) /usr/lib/libtalloc.so*
616 %attr(755,root,root) /usr/lib/libtdb.so*
617 %attr(755,root,root) /lib/security/pam_winbind.so
623 * Fri Jan 16 2004 Gerald (Jerry) Carter <jerry@samba,org>
624 - Removed ChangeLog entries since they are kept in CVS