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}
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 all 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 \
307 # NSS winbind support
308 install -m 755 nsswitch/libnss_winbind.so $RPM_BUILD_ROOT/%{_libarch}/libnss_winbind.so.2
309 ( cd $RPM_BUILD_ROOT/%{_libarch};
310 ln -sf libnss_winbind.so.2 libnss_winbind.so )
312 # do not install libnss_wins.so in order to reduce dependencies
313 # (we do not need it for the samba-ctdb scenario)
315 #install -m 755 nsswitch/libnss_wins.so $RPM_BUILD_ROOT/%{_libarch}/libnss_wins.so
316 # ( cd $RPM_BUILD_ROOT/%{_libarch}; ln -sf libnss_wins.so libnss_wins.so.2 )
318 cp -p source3/bin/winbind_krb5_locator.so ${RPM_BUILD_ROOT}/%{_libarchdir}/krb5/plugins/libkrb5
320 # install files for winbind-32bit package
323 install -m 755 %{_32bit_tmp_dir}/libnss_winbind.so ${RPM_BUILD_ROOT}/lib/libnss_winbind.so.2
324 ( cd ${RPM_BUILD_ROOT}/lib; ln -sf libnss_winbind.so.2 libnss_winbind.so )
326 mv %{_32bit_tmp_dir}/libtalloc* ${RPM_BUILD_ROOT}/usr/lib
327 mv %{_32bit_tmp_dir}/libtdb* ${RPM_BUILD_ROOT}/usr/lib
328 mv %{_32bit_tmp_dir}/libwbclient* ${RPM_BUILD_ROOT}/usr/lib
329 mv %{_32bit_tmp_dir}/pam_winbind.so ${RPM_BUILD_ROOT}/lib/security
331 rm -rf %{_32bit_tmp_dir}
336 /bin/rm -rf $RPM_BUILD_ROOT/usr/lib*/samba/security
338 # Install the miscellany
339 echo 127.0.0.1 localhost > $RPM_BUILD_ROOT%{_sysconfdir}/samba/lmhosts
341 install -m644 setup/samba.log $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/samba
342 install -m644 setup/swat $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d/swat
343 install -m644 setup/samba.sysconfig $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/samba
344 install -m755 setup/smb.init $RPM_BUILD_ROOT%{initdir}/smb
345 install -m755 setup/winbind.init $RPM_BUILD_ROOT%{initdir}/winbind
346 install -m644 setup/samba.pamd $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/samba
347 install -m755 setup/smbprint $RPM_BUILD_ROOT%{_bindir}
348 install -m644 setup/smbusers $RPM_BUILD_ROOT%{_sysconfdir}/samba/smbusers
349 install -m644 setup/smb.conf $RPM_BUILD_ROOT%{_sysconfdir}/samba/smb.conf
350 install -m755 source3/bin/mount.cifs $RPM_BUILD_ROOT/sbin/mount.cifs
351 install -m755 source3/bin/umount.cifs $RPM_BUILD_ROOT/sbin/umount.cifs
352 install -m755 source3/script/mksmbpasswd.sh $RPM_BUILD_ROOT%{_bindir}
354 /bin/rm $RPM_BUILD_ROOT%{_sbindir}/*mount.cifs
356 ln -s ../..%{initdir}/smb $RPM_BUILD_ROOT%{_sbindir}/samba
357 ln -s ../..%{initdir}/winbind $RPM_BUILD_ROOT%{_sbindir}/winbind
359 # Remove "*.old" files
360 find $RPM_BUILD_ROOT -name "*.old" -exec rm -f {} \;
362 ## don't duplicate the docs. These are installed by/with SWAT
365 ( cd docs; ln -s %{_prefix}/share/swat/help htmldocs )
368 ## Clean out man pages for tools not installed here
370 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/log2pcap.1*
371 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/smbsh.1*
372 rm -f $RPM_BUILD_ROOT%{_mandir}/man5/vfstest.1*
376 rm -rf $RPM_BUILD_ROOT
379 ## deal with an upgrade from a broken 3.0.21b RPM
380 if [ "$1" -eq "2" ]; then
381 if [ -d /var/cache/samba ]; then
382 for file in `ls /var/cache/samba/*tdb`; do
383 /bin/cp -up $file /var/lib/samba/`basename $file`
385 mkdir -p /var/lib/samba/eventlog
386 for file in `ls /var/cache/samba/eventlog/*tdb`; do
387 /bin/cp -up $file /var/lib/samba/eventlog/`basename $file`
389 /bin/mv /var/cache/samba /var/cache/samba.moved
393 if [ "$1" -ge "1" ]; then
394 /sbin/service smb condrestart >/dev/null 2>&1 || :
399 /sbin/service smb stop >/dev/null 2>&1 || :
400 /sbin/chkconfig --del smb
401 # rm -rf /var/log/samba/* /var/lib/samba/*
408 # Add swat entry to /etc/services if not already there.
409 if [ ! "`grep ^\s**swat /etc/services`" ]; then
410 echo 'swat 901/tcp # Add swat service used via inetd' >> /etc/services
416 if [ "$1" -ge "1" ]; then
417 /sbin/service winbind condrestart >/dev/null 2>&1 || :
422 /sbin/service winbind stop >/dev/null 2>&1 || :
423 /sbin/chkconfig --del winbind
430 #######################################################################
432 #######################################################################
435 %defattr(-,root,root)
437 %config(noreplace) %{_sysconfdir}/sysconfig/samba
438 %config(noreplace) %{_sysconfdir}/samba/smbusers
439 %attr(755,root,root) %config %{initdir}/smb
440 %config(noreplace) %{_sysconfdir}/logrotate.d/samba
441 %config(noreplace) %{_sysconfdir}/pam.d/samba
443 %attr(0755,root,root) %dir /var/log/samba
444 %attr(0755,root,root) %dir /var/lib/samba
445 %attr(1777,root,root) %dir /var/spool/samba
452 %{_bindir}/mksmbpasswd.sh
453 %{_bindir}/smbcontrol
458 %{_bindir}/eventlogadm
460 %{_libarchdir}/samba/vfs/*.so
461 %{_libarchdir}/samba/auth/*.so
463 %{_mandir}/man1/smbcontrol.1*
464 %{_mandir}/man1/smbstatus.1*
465 %{_mandir}/man1/vfstest.1*
466 %{_mandir}/man5/smbpasswd.5*
467 %{_mandir}/man7/samba.7*
468 %{_mandir}/man8/nmbd.8*
469 %{_mandir}/man8/pdbedit.8*
470 %{_mandir}/man8/smbd.8*
471 %{_mandir}/man8/tdbbackup.8*
472 %{_mandir}/man8/tdbdump.8*
473 %{_mandir}/man8/tdbtool.8*
474 %{_mandir}/man8/eventlogadm.8*
475 %{_mandir}/man8/vfs_*.8*
481 %defattr(-,root,root)
482 %doc README COPYING Manifest
483 %doc WHATSNEW.txt Roadmap
485 %doc examples/autofs examples/LDAP examples/libsmbclient examples/misc examples/printer-accounting
486 %doc examples/printing
491 %defattr(-,root,root)
492 %config(noreplace) %{_sysconfdir}/xinetd.d/swat
493 %dir %{_datadir}/swat
496 %{_mandir}/man8/swat.8*
497 %attr(755,root,root) %{_libarchdir}/samba/*.msg
502 %defattr(-,root,root)
506 %{_sbindir}/cifs.upcall
520 %{_mandir}/man8/mount.cifs.8.*
521 %{_mandir}/man8/umount.cifs.8.*
522 %{_mandir}/man8/cifs.upcall.8*
523 %{_mandir}/man8/smbspool.8*
524 %{_mandir}/man1/smbget.1*
525 %{_mandir}/man5/smbgetrc.5*
526 %{_mandir}/man1/findsmb.1*
527 %{_mandir}/man1/nmblookup.1*
528 %{_mandir}/man1/rpcclient.1*
529 %{_mandir}/man1/smbcacls.1*
530 %{_mandir}/man1/smbclient.1*
531 %{_mandir}/man1/smbtar.1*
532 %{_mandir}/man1/smbtree.1*
533 %{_mandir}/man1/sharesec.1*
538 %defattr(-,root,root)
539 %dir %{_sysconfdir}/samba
540 %dir %{_libarchdir}/samba
541 %dir %{_libarchdir}/samba/charset
542 %config(noreplace) %{_sysconfdir}/samba/smb.conf
543 %config(noreplace) %{_sysconfdir}/samba/lmhosts
544 %attr(755,root,root) %config %{initdir}/winbind
546 #%attr(755,root,root) /%{_libarch}/libnss_wins.so*
547 %attr(755,root,root) /%{_libarch}/libnss_winbind.so*
548 %attr(755,root,root) /%{_libarch}/security/pam_winbind.so
549 %attr(755,root,root) /%{_libarch}/security/pam_smbpass.so
550 /usr/share/locale/*/LC_MESSAGES/pam_winbind.mo
552 %{_libarchdir}/samba/idmap/*.so
553 %{_libarchdir}/samba/nss_info/*.so
555 %{_includedir}/libsmbclient.h
556 %{_libarchdir}/libsmbclient.*
557 #%{_includedir}/libmsrpc.h
558 #%{_libarchdir}/libmsrpc.*
559 %{_includedir}/smb_share_modes.h
560 %{_libarchdir}/libsmbsharemodes.*
562 %{_libarchdir}/samba/*.dat
563 %{_libarchdir}/samba/charset/*.so
565 %{_includedir}/netapi.h
566 %{_includedir}/wbclient.h
567 %{_includedir}/talloc.h
569 %{_libarchdir}/libnetapi.so*
570 %{_libarchdir}/libtalloc.so*
571 %{_libarchdir}/libtdb.so*
572 %{_libarchdir}/libwbclient.so*
574 %{_libarchdir}/krb5/plugins/libkrb5/winbind_krb5_locator.so
592 %{_bindir}/smbcquotas
594 %{_mandir}/man1/ntlm_auth.1*
595 %{_mandir}/man1/profiles.1*
596 %{_mandir}/man1/smbcquotas.1*
597 %{_mandir}/man1/testparm.1*
598 %{_mandir}/man5/smb.conf.5*
599 %{_mandir}/man5/lmhosts.5*
600 %{_mandir}/man8/smbpasswd.8*
601 %{_mandir}/man1/wbinfo.1*
602 %{_mandir}/man8/winbindd.8*
603 %{_mandir}/man8/net.8*
604 %{_mandir}/man8/pam_winbind.8*
605 %{_mandir}/man7/libsmbclient.7*
606 %{_mandir}/man1/ldbadd.1*
607 %{_mandir}/man1/ldbdel.1*
608 %{_mandir}/man1/ldbedit.1*
609 %{_mandir}/man1/ldbmodify.1*
610 %{_mandir}/man1/ldbsearch.1*
611 %{_mandir}/man1/ldbrename.1*
612 %{_mandir}/man7/winbind_krb5_locator.7*
613 %{_mandir}/man8/idmap_*.8*
617 %attr(755,root,root) /lib/libnss_winbind.so*
618 #%attr(755,root,root) /lib/libnss_wins.so*
619 %attr(755,root,root) /usr/lib/libtalloc.so*
620 %attr(755,root,root) /usr/lib/libtdb.so*
621 %attr(755,root,root) /usr/lib/libwbclient.so*
622 %attr(755,root,root) /lib/security/pam_winbind.so
628 * Fri Jan 16 2004 Gerald (Jerry) Carter <jerry@samba,org>
629 - Removed ChangeLog entries since they are kept in CVS