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>
9 Release: ctdb.41.transactions3
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
96 %ifarch i386 i486 i586 i686 ppc s390
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 # ccache -h 2>&1 > /dev/null
137 #if [ $? -eq 0 ]; then
143 ## always run autogen.sh
146 CFLAGS="$RPM_OPT_FLAGS $EXTRA -D_GNU_SOURCE" ./configure \
147 --prefix=%{_prefix} \
148 --localstatedir=/var \
149 --with-configdir=%{_sysconfdir}/samba \
150 --with-libdir=%{_libarchdir}/samba \
151 --with-lockdir=/var/lib/samba \
152 --with-logfilebase=/var/log/samba \
153 --with-mandir=%{_mandir} \
154 --with-piddir=/var/run \
155 --with-privatedir=%{_sysconfdir}/samba \
156 --with-sambabook=%{_datadir}/swat/using_samba \
157 --with-swatdir=%{_datadir}/swat \
164 --with-libsmbclient \
165 --with-libsmbsharemodes \
166 --without-smbwrapper \
169 --with-shared-modules=idmap_rid,idmap_ad,idmap_tdb2 \
172 --with-cluster-support \
173 --with-ctdb=/usr/include \
180 make CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE" proto
182 ## check for gcc 3.4 or later
183 CC_VERSION=`${CC} --version | head -1 | awk '{print $3}'`
184 CC_MAJOR=`echo ${CC_VERSION} | cut -d. -f 1`
185 CC_MINOR=`echo ${CC_VERSION} | cut -d. -f 2`
186 if [ ${CC_MAJOR} -ge 3 ]; then
187 if [ ${CC_MAJOR} -gt 3 -o ${CC_MINOR} -ge 4 ]; then
193 make CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE" %{?_smp_mflags} \
194 all modules pam_smbpass
196 ## build the cifs fs mount helper
198 gcc -o mount.cifs $RPM_OPT_FLAGS -D_GNU_SOURCE -Wall -D_GNU_SOURCE -D_LARGEFILE64_SOURCE mount.cifs.c
199 gcc -o umount.cifs $RPM_OPT_FLAGS -D_GNU_SOURCE -Wall -D_GNU_SOURCE -D_LARGEFILE64_SOURCE umount.cifs.c
202 # Remove some permission bits to avoid to many dependencies
204 find examples docs -type f | xargs -r chmod -x
207 # Clean up in case there is trash left from a previous build
208 rm -rf $RPM_BUILD_ROOT
210 # Create the target build directory hierarchy
211 mkdir -p $RPM_BUILD_ROOT%{_datadir}/swat/{help,include,using_samba/{figs,gifsa}}
212 mkdir -p $RPM_BUILD_ROOT%{_includedir}
213 mkdir -p $RPM_BUILD_ROOT%{_initrddir}
214 mkdir -p $RPM_BUILD_ROOT{%{_libarchdir},%{_includedir}}
215 mkdir -p $RPM_BUILD_ROOT%{_libarchdir}/samba/{auth,charset,idmap,vfs,pdb}
216 mkdir -p $RPM_BUILD_ROOT/%{_libarch}/security
217 mkdir -p $RPM_BUILD_ROOT%{_mandir}
218 mkdir -p $RPM_BUILD_ROOT%{_prefix}/{bin,sbin}
219 mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib
220 mkdir -p $RPM_BUILD_ROOT/sbin
221 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{logrotate.d,pam.d,samba}
222 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{pam.d,logrotate.d}
223 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d
224 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{samba,sysconfig}
225 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d
226 mkdir -p $RPM_BUILD_ROOT/var/lib/samba/winbindd_privileged
227 mkdir -p $RPM_BUILD_ROOT/var/{log,run/winbindd,spool}/samba
230 make DESTDIR=$RPM_BUILD_ROOT \
235 cp source/bin/pam_smbpass.so $RPM_BUILD_ROOT/%{_libarch}/security/pam_smbpass.so
237 # NSS & PAM winbind support
238 install -m 755 source/bin/pam_winbind.so $RPM_BUILD_ROOT/%{_libarch}/security/pam_winbind.so
239 install -m 755 source/nsswitch/libnss_winbind.so $RPM_BUILD_ROOT/%{_libarch}/libnss_winbind.so
240 #install -m 755 source/nsswitch/libnss_wins.so $RPM_BUILD_ROOT/%{_libarch}/libnss_wins.so
241 ( cd $RPM_BUILD_ROOT/%{_libarch};
242 ln -sf libnss_winbind.so libnss_winbind.so.2 )
243 # ( cd $RPM_BUILD_ROOT/%{_libarch}; ln -sf libnss_wins.so libnss_wins.so.2 )
245 # make install puts libsmbclient.so in the wrong place on x86_64
246 rm -f $RPM_BUILD_ROOT/usr/lib*/samba/libsmbclient.so $RPM_BUILD_ROOT/usr/lib*/samba/libsmbclient.a || true
247 install -m 755 source/bin/libsmbclient.so $RPM_BUILD_ROOT%{_libarchdir}/libsmbclient.so
248 install -m 755 source/bin/libsmbclient.a $RPM_BUILD_ROOT%{_libarchdir}/libsmbclient.a
249 install -m 644 source/include/libsmbclient.h $RPM_BUILD_ROOT%{_includedir}
250 ln -s %{_libarchdir}/libsmbclient.so $RPM_BUILD_ROOT%{_libarchdir}/libsmbclient.so.0
252 # make install puts libmsrpc.so in the wrong place on x86_64
253 #rm -f $RPM_BUILD_ROOT/usr/lib*/samba/libmsrpc.so $RPM_BUILD_ROOT/usr/lib*/samba/libmsrpc.a || true
254 #install -m 755 source/bin/libmsrpc.so $RPM_BUILD_ROOT%{_libarchdir}/libmsrpc.so
255 #install -m 755 source/bin/libmsrpc.a $RPM_BUILD_ROOT%{_libarchdir}/libmsrpc.a
256 #install -m 644 source/include/libmsrpc.h $RPM_BUILD_ROOT%{_includedir}
257 #rm -f $RPM_BUILD_ROOT%{_libarchdir}/samba/libmsrpc.*
258 #ln -s /%{_libarchdir}/libmsrpc.so $RPM_BUILD_ROOT%{_libarchdir}/libmsrpc.so.0
260 # make install puts libsmbsharemodes.so in the wrong place on x86_64
261 rm -f $RPM_BUILD_ROOT/usr/lib*/samba/libsmbsharemodes.so $RPM_BUILD_ROOT/usr/lib*/samba/libsmbsharemodes.a || true
262 install -m 755 source/bin/libsmbsharemodes.so $RPM_BUILD_ROOT%{_libarchdir}/libsmbsharemodes.so
263 install -m 755 source/bin/libsmbsharemodes.a $RPM_BUILD_ROOT%{_libarchdir}/libsmbsharemodes.a
264 install -m 644 source/include/smb_share_modes.h $RPM_BUILD_ROOT%{_includedir}
265 rm -f $RPM_BUILD_ROOT%{_libarchdir}/samba/libsmbsharemodes.*
266 ln -s /%{_libarchdir}/libsmbsharemodes.so $RPM_BUILD_ROOT%{_libarchdir}/libsmbsharemodes.so.0
268 # Install pam_smbpass.so
269 install -m755 source/bin/pam_smbpass.so $RPM_BUILD_ROOT/%{_libarch}/security/pam_smbpass.so
271 # Put the shared libraries to their SONAME under /usr/lib{,64}
272 # and create the proper .so symlinks
275 rm -f $RPM_BUILD_ROOT%{_libarchdir}/samba/libwbclient.so*
276 install -m 755 source/bin/libwbclient.so \
277 $RPM_BUILD_ROOT%{_libarchdir}/libwbclient.so.0
278 ln -s libwbclient.so.0 $RPM_BUILD_ROOT%{_libarchdir}/libwbclient.so
280 rm -f $RPM_BUILD_ROOT%{_libarchdir}/samba/libtalloc.so*
281 install -m 755 source/bin/libtalloc.so \
282 $RPM_BUILD_ROOT%{_libarchdir}/libtalloc.so.1
283 ln -s libtalloc.so.1 $RPM_BUILD_ROOT%{_libarchdir}/libtalloc.so
285 rm -f $RPM_BUILD_ROOT%{_libarchdir}/samba/libtdb.so*
286 install -m 755 source/bin/libtdb.so \
287 $RPM_BUILD_ROOT%{_libarchdir}/libtdb.so.1
288 ln -s libtdb.so.1 $RPM_BUILD_ROOT%{_libarchdir}/libtdb.so
290 rm -f $RPM_BUILD_ROOT%{_libarchdir}/samba/libnetapi.so*
291 install -m 755 source/bin/libnetapi.so \
292 $RPM_BUILD_ROOT%{_libarchdir}/libnetapi.so.0
293 ln -s libnetapi.so.0 $RPM_BUILD_ROOT%{_libarchdir}/libnetapi.so
296 /bin/rm -rf $RPM_BUILD_ROOT/usr/lib*/samba/security
298 # Install the miscellany
299 echo 127.0.0.1 localhost > $RPM_BUILD_ROOT%{_sysconfdir}/samba/lmhosts
301 install -m644 setup/samba.log $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/samba
302 install -m644 setup/swat $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d/swat
303 install -m644 setup/samba.sysconfig $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/samba
304 install -m755 setup/smb.init $RPM_BUILD_ROOT%{initdir}/smb
305 install -m755 setup/winbind.init $RPM_BUILD_ROOT%{initdir}/winbind
306 install -m644 setup/samba.pamd $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/samba
307 install -m755 setup/smbprint $RPM_BUILD_ROOT%{_bindir}
308 install -m644 setup/smbusers $RPM_BUILD_ROOT%{_sysconfdir}/samba/smbusers
309 install -m644 setup/smb.conf $RPM_BUILD_ROOT%{_sysconfdir}/samba/smb.conf
310 install -m755 source/client/mount.cifs $RPM_BUILD_ROOT/sbin/mount.cifs
311 install -m755 source/client/umount.cifs $RPM_BUILD_ROOT/sbin/umount.cifs
312 install -m755 source/script/mksmbpasswd.sh $RPM_BUILD_ROOT%{_bindir}
314 /bin/rm $RPM_BUILD_ROOT%{_sbindir}/*mount.cifs
316 ln -s ../..%{initdir}/smb $RPM_BUILD_ROOT%{_sbindir}/samba
317 ln -s ../..%{initdir}/winbind $RPM_BUILD_ROOT%{_sbindir}/winbind
319 # Remove "*.old" files
320 find $RPM_BUILD_ROOT -name "*.old" -exec rm -f {} \;
322 ## don't duplicate the docs. These are installed by/with SWAT
325 ( cd docs; ln -s %{_prefix}/share/swat/help htmldocs )
328 ## Clean out man pages for tools not installed here
330 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/log2pcap.1*
331 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/smbsh.1*
332 rm -f $RPM_BUILD_ROOT%{_mandir}/man5/vfstest.1*
336 rm -rf $RPM_BUILD_ROOT
339 ## deal with an upgrade from a broken 3.0.21b RPM
340 if [ "$1" -eq "2" ]; then
341 if [ -d /var/cache/samba ]; then
342 for file in `ls /var/cache/samba/*tdb`; do
343 /bin/cp -up $file /var/lib/samba/`basename $file`
345 mkdir -p /var/lib/samba/eventlog
346 for file in `ls /var/cache/samba/eventlog/*tdb`; do
347 /bin/cp -up $file /var/lib/samba/eventlog/`basename $file`
349 /bin/mv /var/cache/samba /var/cache/samba.moved
353 if [ "$1" -ge "1" ]; then
354 /sbin/service smb condrestart >/dev/null 2>&1 || :
359 /sbin/service smb stop >/dev/null 2>&1 || :
360 /sbin/chkconfig --del smb
361 # rm -rf /var/log/samba/* /var/lib/samba/*
368 # Add swat entry to /etc/services if not already there.
369 if [ ! "`grep ^\s**swat /etc/services`" ]; then
370 echo 'swat 901/tcp # Add swat service used via inetd' >> /etc/services
376 if [ "$1" -ge "1" ]; then
377 /sbin/service winbind condrestart >/dev/null 2>&1 || :
382 /sbin/service winbind stop >/dev/null 2>&1 || :
383 /sbin/chkconfig --del winbind
390 #######################################################################
392 #######################################################################
395 %defattr(-,root,root)
397 %config(noreplace) %{_sysconfdir}/sysconfig/samba
398 %config(noreplace) %{_sysconfdir}/samba/smbusers
399 %attr(755,root,root) %config %{initdir}/smb
400 %config(noreplace) %{_sysconfdir}/logrotate.d/samba
401 %config(noreplace) %{_sysconfdir}/pam.d/samba
403 %attr(0755,root,root) %dir /var/log/samba
404 %attr(0755,root,root) %dir /var/lib/samba
405 %attr(1777,root,root) %dir /var/spool/samba
412 %{_bindir}/mksmbpasswd.sh
413 %{_bindir}/smbcontrol
418 %{_bindir}/eventlogadm
420 %{_libarchdir}/samba/idmap/*.so
421 %{_libarchdir}/samba/nss_info/*.so
422 %{_libarchdir}/samba/vfs/*.so
423 %{_libarchdir}/samba/auth/*.so
425 %{_mandir}/man1/smbcontrol.1*
426 %{_mandir}/man1/smbstatus.1*
427 %{_mandir}/man1/vfstest.1*
428 %{_mandir}/man5/smbpasswd.5*
429 %{_mandir}/man7/samba.7*
430 %{_mandir}/man8/nmbd.8*
431 %{_mandir}/man8/pdbedit.8*
432 %{_mandir}/man8/smbd.8*
433 %{_mandir}/man8/tdbbackup.8*
434 %{_mandir}/man8/tdbdump.8*
435 %{_mandir}/man8/tdbtool.8*
436 %{_mandir}/man8/eventlogadm.8*
437 %{_mandir}/man8/vfs_*.8*
438 %{_mandir}/man8/idmap_*.8*
444 %defattr(-,root,root)
445 %doc README COPYING Manifest
446 %doc WHATSNEW.txt Roadmap
448 %doc examples/autofs examples/LDAP examples/libsmbclient examples/misc examples/printer-accounting
449 %doc examples/printing
454 %defattr(-,root,root)
455 %config(noreplace) %{_sysconfdir}/xinetd.d/swat
456 %dir %{_datadir}/swat
459 %{_mandir}/man8/swat.8*
460 %attr(755,root,root) %{_libarchdir}/samba/*.msg
465 %defattr(-,root,root)
480 %{_mandir}/man8/mount.cifs.8.*
481 %{_mandir}/man8/umount.cifs.8.*
482 %{_mandir}/man8/smbspool.8*
483 %{_mandir}/man1/smbget.1*
484 %{_mandir}/man5/smbgetrc.5*
485 %{_mandir}/man1/findsmb.1*
486 %{_mandir}/man1/nmblookup.1*
487 %{_mandir}/man1/rpcclient.1*
488 %{_mandir}/man1/smbcacls.1*
489 %{_mandir}/man1/smbclient.1*
490 %{_mandir}/man1/smbtar.1*
491 %{_mandir}/man1/smbtree.1*
496 %defattr(-,root,root)
497 %dir %{_sysconfdir}/samba
498 %dir %{_libarchdir}/samba
499 %dir %{_libarchdir}/samba/charset
500 %config(noreplace) %{_sysconfdir}/samba/smb.conf
501 %config(noreplace) %{_sysconfdir}/samba/lmhosts
502 %attr(755,root,root) %config %{initdir}/winbind
504 #%attr(755,root,root) /%{_libarch}/libnss_wins.so*
505 %attr(755,root,root) /%{_libarch}/libnss_winbind.so*
506 %attr(755,root,root) /%{_libarch}/security/pam_winbind.so
507 %attr(755,root,root) /%{_libarch}/security/pam_smbpass.so
509 %{_includedir}/libsmbclient.h
510 %{_libarchdir}/libsmbclient.*
511 #%{_includedir}/libmsrpc.h
512 #%{_libarchdir}/libmsrpc.*
513 %{_includedir}/smb_share_modes.h
514 %{_libarchdir}/libsmbsharemodes.*
516 %{_libarchdir}/samba/*.dat
517 %{_libarchdir}/samba/charset/*.so
519 %{_includedir}/netapi.h
520 %{_includedir}/wbclient.h
521 %{_includedir}/talloc.h
523 %{_libarchdir}/libnetapi.so*
524 %{_libarchdir}/libtalloc.so*
525 %{_libarchdir}/libtdb.so*
526 %{_libarchdir}/libwbclient.so*
543 %{_bindir}/smbcquotas
545 %{_mandir}/man1/ntlm_auth.1*
546 %{_mandir}/man1/profiles.1*
547 %{_mandir}/man1/smbcquotas.1*
548 %{_mandir}/man1/testparm.1*
549 %{_mandir}/man5/smb.conf.5*
550 %{_mandir}/man5/lmhosts.5*
551 %{_mandir}/man8/smbpasswd.8*
552 %{_mandir}/man1/wbinfo.1*
553 %{_mandir}/man8/winbindd.8*
554 %{_mandir}/man8/net.8*
555 %{_mandir}/man7/pam_winbind.7*
556 %{_mandir}/man7/libsmbclient.7*
558 %ifarch i386 i486 i586 i686 ppc s390
560 %attr(755,root,root) /%{_libarch}/libnss_winbind.so*
561 #%attr(755,root,root) /%{_libarch}/libnss_wins.so*
562 %attr(755,root,root) /%{_libarchdir}/libtalloc.so*
563 %attr(755,root,root) /%{_libarchdir}/libtdb.so*
564 %attr(755,root,root) /%{_libarch}/security/pam_winbind.so
570 * Fri Jan 16 2004 Gerald (Jerry) Carter <jerry@samba,org>
571 - Removed ChangeLog entries since they are kept in CVS